@kingsoft-ai/design 0.1.10 → 0.1.11
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/index.cjs +336 -329
- package/dist/index.cjs.map +1 -1
- package/dist/index.mjs +1217 -1208
- package/dist/index.mjs.map +1 -1
- package/dist/types/select/Select.d.ts +2 -0
- package/dist/types/select/Select.style.d.ts +6 -0
- package/package.json +1 -1
package/dist/index.mjs.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.mjs","sources":["../../../node_modules/.pnpm/react@19.2.0/node_modules/react/cjs/react-jsx-runtime.production.js","../../../node_modules/.pnpm/react@19.2.0/node_modules/react/cjs/react-jsx-runtime.development.js","../../../node_modules/.pnpm/react@19.2.0/node_modules/react/jsx-runtime.js","../../../node_modules/.pnpm/@react-aria+utils@3.31.0_react-dom@19.2.0_react@19.2.0__react@19.2.0/node_modules/@react-aria/utils/dist/useId.mjs","../../../node_modules/.pnpm/@react-aria+utils@3.31.0_react-dom@19.2.0_react@19.2.0__react@19.2.0/node_modules/@react-aria/utils/dist/chain.mjs","../../../node_modules/.pnpm/clsx@2.1.1/node_modules/clsx/dist/clsx.mjs","../../../node_modules/.pnpm/@react-aria+utils@3.31.0_react-dom@19.2.0_react@19.2.0__react@19.2.0/node_modules/@react-aria/utils/dist/mergeProps.mjs","../../../node_modules/.pnpm/@react-aria+utils@3.31.0_react-dom@19.2.0_react@19.2.0__react@19.2.0/node_modules/@react-aria/utils/dist/focusWithoutScrolling.mjs","../../../node_modules/.pnpm/@react-stately+utils@3.10.8_react@19.2.0/node_modules/@react-stately/utils/dist/useControlledState.mjs","../src/button/Button.style.ts","../src/button/Button.tsx","../src/button/IconButton.style.ts","../src/button/IconButton.tsx","../../../node_modules/.pnpm/@emotion+sheet@1.4.0/node_modules/@emotion/sheet/dist/emotion-sheet.esm.js","../../../node_modules/.pnpm/stylis@4.2.0/node_modules/stylis/src/Enum.js","../../../node_modules/.pnpm/stylis@4.2.0/node_modules/stylis/src/Utility.js","../../../node_modules/.pnpm/stylis@4.2.0/node_modules/stylis/src/Tokenizer.js","../../../node_modules/.pnpm/stylis@4.2.0/node_modules/stylis/src/Parser.js","../../../node_modules/.pnpm/stylis@4.2.0/node_modules/stylis/src/Serializer.js","../../../node_modules/.pnpm/stylis@4.2.0/node_modules/stylis/src/Middleware.js","../../../node_modules/.pnpm/@emotion+memoize@0.9.0/node_modules/@emotion/memoize/dist/emotion-memoize.esm.js","../../../node_modules/.pnpm/@emotion+cache@11.14.0/node_modules/@emotion/cache/dist/emotion-cache.browser.esm.js","../../../node_modules/.pnpm/react-is@16.13.1/node_modules/react-is/cjs/react-is.production.min.js","../../../node_modules/.pnpm/react-is@16.13.1/node_modules/react-is/cjs/react-is.development.js","../../../node_modules/.pnpm/react-is@16.13.1/node_modules/react-is/index.js","../../../node_modules/.pnpm/hoist-non-react-statics@3.3.2/node_modules/hoist-non-react-statics/dist/hoist-non-react-statics.cjs.js","../../../node_modules/.pnpm/@emotion+utils@1.4.2/node_modules/@emotion/utils/dist/emotion-utils.browser.esm.js","../../../node_modules/.pnpm/@emotion+hash@0.9.2/node_modules/@emotion/hash/dist/emotion-hash.esm.js","../../../node_modules/.pnpm/@emotion+unitless@0.10.0/node_modules/@emotion/unitless/dist/emotion-unitless.esm.js","../../../node_modules/.pnpm/@emotion+serialize@1.3.3/node_modules/@emotion/serialize/dist/emotion-serialize.esm.js","../../../node_modules/.pnpm/@emotion+use-insertion-effect-with-fallbacks@1.2.0_react@19.2.0/node_modules/@emotion/use-insertion-effect-with-fallbacks/dist/emotion-use-insertion-effect-with-fallbacks.browser.esm.js","../../../node_modules/.pnpm/@emotion+react@11.14.0_@types+react@19.2.2_react@19.2.0/node_modules/@emotion/react/dist/emotion-element-f0de968e.browser.esm.js","../../../node_modules/.pnpm/@emotion+react@11.14.0_@types+react@19.2.2_react@19.2.0/node_modules/@emotion/react/jsx-runtime/dist/emotion-react-jsx-runtime.browser.esm.js","../../../node_modules/.pnpm/react@19.2.0/node_modules/react/cjs/react-compiler-runtime.production.js","../../../node_modules/.pnpm/react@19.2.0/node_modules/react/cjs/react-compiler-runtime.development.js","../../../node_modules/.pnpm/react@19.2.0/node_modules/react/compiler-runtime.js","../src/checkbox/Checkbox.style.ts","../src/checkbox/Checkbox.tsx","../../icons/dist/index.mjs","../src/checkbox/CheckboxButton.style.ts","../src/checkbox/CheckboxButton.tsx","../src/collapse/Collapse.style.ts","../src/collapse/Collapse.tsx","../src/collapse/CollapseItem.tsx","../src/input/Input.style.ts","../src/input/Input.tsx","../src/menu/Menu.style.ts","../src/menu/Menu.tsx","../src/menu/SubMenuPopover.tsx","../src/menu/MenuItem.tsx","../src/menu/MenuGroup.tsx","../src/menu/SubMenuItem.tsx","../src/numberInput/NumberInput.style.ts","../src/numberInput/NumberInput.tsx","../src/radio/Radio.style.ts","../src/radio/Radio.tsx","../src/skeleton/Skeleton.style.ts","../src/skeleton/Skeleton.tsx","../src/stepper/Stepper.style.ts","../src/stepper/Stepper.tsx","../src/stepper/Step.tsx","../src/progress/Progress.style.ts","../src/progress/Progress.tsx","../../../node_modules/.pnpm/@react-stately+form@3.2.2_react@19.2.0/node_modules/@react-stately/form/dist/useFormValidationState.mjs","../../../node_modules/.pnpm/@react-stately+list@3.13.1_react@19.2.0/node_modules/@react-stately/list/dist/ListCollection.mjs","../../../node_modules/.pnpm/@react-stately+selection@3.20.6_react@19.2.0/node_modules/@react-stately/selection/dist/Selection.mjs","../../../node_modules/.pnpm/@react-stately+selection@3.20.6_react@19.2.0/node_modules/@react-stately/selection/dist/useMultipleSelectionState.mjs","../../../node_modules/.pnpm/@react-stately+collections@3.12.8_react@19.2.0/node_modules/@react-stately/collections/dist/Item.mjs","../../../node_modules/.pnpm/@react-stately+collections@3.12.8_react@19.2.0/node_modules/@react-stately/collections/dist/Section.mjs","../../../node_modules/.pnpm/@react-stately+collections@3.12.8_react@19.2.0/node_modules/@react-stately/collections/dist/CollectionBuilder.mjs","../../../node_modules/.pnpm/@react-stately+collections@3.12.8_react@19.2.0/node_modules/@react-stately/collections/dist/useCollection.mjs","../../../node_modules/.pnpm/@react-stately+collections@3.12.8_react@19.2.0/node_modules/@react-stately/collections/dist/getChildNodes.mjs","../../../node_modules/.pnpm/@react-stately+selection@3.20.6_react@19.2.0/node_modules/@react-stately/selection/dist/SelectionManager.mjs","../../../node_modules/.pnpm/@react-stately+list@3.13.1_react@19.2.0/node_modules/@react-stately/list/dist/useListState.mjs","../../../node_modules/.pnpm/@react-stately+overlays@3.6.20_react@19.2.0/node_modules/@react-stately/overlays/dist/useOverlayTriggerState.mjs","../../../node_modules/.pnpm/@react-stately+select@3.8.0_react@19.2.0/node_modules/@react-stately/select/dist/useSelectState.mjs","../src/tag/Tag.style.ts","../src/tag/Tag.tsx","../src/select/Select.style.ts","../src/select/Popover.tsx","../src/select/ListBox.tsx","../src/select/Select.tsx","../src/table/Table.style.ts","../src/table/Table.tsx","../../../node_modules/.pnpm/@react-stately+toggle@3.9.2_react@19.2.0/node_modules/@react-stately/toggle/dist/useToggleState.mjs","../src/switch/Switch.style.ts","../src/switch/Switch.tsx","../src/upload/Upload.style.ts","../src/upload/Upload.tsx","../src/button/tokens.ts","../src/checkbox/tokens.ts","../src/radio/tokens.ts","../src/switch/tokens.ts","../src/input/tokens.ts","../src/select/tokens.ts","../src/numberInput/tokens.ts","../src/collapse/tokens.ts","../src/tag/tokens.ts","../src/skeleton/tokens.ts","../src/stepper/tokens.ts","../src/menu/tokens.ts","../src/theme.ts","../src/DesignThemeProvider.tsx"],"sourcesContent":["/**\n * @license React\n * react-jsx-runtime.production.js\n *\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\n\"use strict\";\nvar REACT_ELEMENT_TYPE = Symbol.for(\"react.transitional.element\"),\n REACT_FRAGMENT_TYPE = Symbol.for(\"react.fragment\");\nfunction jsxProd(type, config, maybeKey) {\n var key = null;\n void 0 !== maybeKey && (key = \"\" + maybeKey);\n void 0 !== config.key && (key = \"\" + config.key);\n if (\"key\" in config) {\n maybeKey = {};\n for (var propName in config)\n \"key\" !== propName && (maybeKey[propName] = config[propName]);\n } else maybeKey = config;\n config = maybeKey.ref;\n return {\n $$typeof: REACT_ELEMENT_TYPE,\n type: type,\n key: key,\n ref: void 0 !== config ? config : null,\n props: maybeKey\n };\n}\nexports.Fragment = REACT_FRAGMENT_TYPE;\nexports.jsx = jsxProd;\nexports.jsxs = jsxProd;\n","/**\n * @license React\n * react-jsx-runtime.development.js\n *\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\n\"use strict\";\n\"production\" !== process.env.NODE_ENV &&\n (function () {\n function getComponentNameFromType(type) {\n if (null == type) return null;\n if (\"function\" === typeof type)\n return type.$$typeof === REACT_CLIENT_REFERENCE\n ? null\n : type.displayName || type.name || null;\n if (\"string\" === typeof type) return type;\n switch (type) {\n case REACT_FRAGMENT_TYPE:\n return \"Fragment\";\n case REACT_PROFILER_TYPE:\n return \"Profiler\";\n case REACT_STRICT_MODE_TYPE:\n return \"StrictMode\";\n case REACT_SUSPENSE_TYPE:\n return \"Suspense\";\n case REACT_SUSPENSE_LIST_TYPE:\n return \"SuspenseList\";\n case REACT_ACTIVITY_TYPE:\n return \"Activity\";\n }\n if (\"object\" === typeof type)\n switch (\n (\"number\" === typeof type.tag &&\n console.error(\n \"Received an unexpected object in getComponentNameFromType(). This is likely a bug in React. Please file an issue.\"\n ),\n type.$$typeof)\n ) {\n case REACT_PORTAL_TYPE:\n return \"Portal\";\n case REACT_CONTEXT_TYPE:\n return type.displayName || \"Context\";\n case REACT_CONSUMER_TYPE:\n return (type._context.displayName || \"Context\") + \".Consumer\";\n case REACT_FORWARD_REF_TYPE:\n var innerType = type.render;\n type = type.displayName;\n type ||\n ((type = innerType.displayName || innerType.name || \"\"),\n (type = \"\" !== type ? \"ForwardRef(\" + type + \")\" : \"ForwardRef\"));\n return type;\n case REACT_MEMO_TYPE:\n return (\n (innerType = type.displayName || null),\n null !== innerType\n ? innerType\n : getComponentNameFromType(type.type) || \"Memo\"\n );\n case REACT_LAZY_TYPE:\n innerType = type._payload;\n type = type._init;\n try {\n return getComponentNameFromType(type(innerType));\n } catch (x) {}\n }\n return null;\n }\n function testStringCoercion(value) {\n return \"\" + value;\n }\n function checkKeyStringCoercion(value) {\n try {\n testStringCoercion(value);\n var JSCompiler_inline_result = !1;\n } catch (e) {\n JSCompiler_inline_result = !0;\n }\n if (JSCompiler_inline_result) {\n JSCompiler_inline_result = console;\n var JSCompiler_temp_const = JSCompiler_inline_result.error;\n var JSCompiler_inline_result$jscomp$0 =\n (\"function\" === typeof Symbol &&\n Symbol.toStringTag &&\n value[Symbol.toStringTag]) ||\n value.constructor.name ||\n \"Object\";\n JSCompiler_temp_const.call(\n JSCompiler_inline_result,\n \"The provided key is an unsupported type %s. This value must be coerced to a string before using it here.\",\n JSCompiler_inline_result$jscomp$0\n );\n return testStringCoercion(value);\n }\n }\n function getTaskName(type) {\n if (type === REACT_FRAGMENT_TYPE) return \"<>\";\n if (\n \"object\" === typeof type &&\n null !== type &&\n type.$$typeof === REACT_LAZY_TYPE\n )\n return \"<...>\";\n try {\n var name = getComponentNameFromType(type);\n return name ? \"<\" + name + \">\" : \"<...>\";\n } catch (x) {\n return \"<...>\";\n }\n }\n function getOwner() {\n var dispatcher = ReactSharedInternals.A;\n return null === dispatcher ? null : dispatcher.getOwner();\n }\n function UnknownOwner() {\n return Error(\"react-stack-top-frame\");\n }\n function hasValidKey(config) {\n if (hasOwnProperty.call(config, \"key\")) {\n var getter = Object.getOwnPropertyDescriptor(config, \"key\").get;\n if (getter && getter.isReactWarning) return !1;\n }\n return void 0 !== config.key;\n }\n function defineKeyPropWarningGetter(props, displayName) {\n function warnAboutAccessingKey() {\n specialPropKeyWarningShown ||\n ((specialPropKeyWarningShown = !0),\n console.error(\n \"%s: `key` is not a prop. Trying to access it will result in `undefined` being returned. If you need to access the same value within the child component, you should pass it as a different prop. (https://react.dev/link/special-props)\",\n displayName\n ));\n }\n warnAboutAccessingKey.isReactWarning = !0;\n Object.defineProperty(props, \"key\", {\n get: warnAboutAccessingKey,\n configurable: !0\n });\n }\n function elementRefGetterWithDeprecationWarning() {\n var componentName = getComponentNameFromType(this.type);\n didWarnAboutElementRef[componentName] ||\n ((didWarnAboutElementRef[componentName] = !0),\n console.error(\n \"Accessing element.ref was removed in React 19. ref is now a regular prop. It will be removed from the JSX Element type in a future release.\"\n ));\n componentName = this.props.ref;\n return void 0 !== componentName ? componentName : null;\n }\n function ReactElement(type, key, props, owner, debugStack, debugTask) {\n var refProp = props.ref;\n type = {\n $$typeof: REACT_ELEMENT_TYPE,\n type: type,\n key: key,\n props: props,\n _owner: owner\n };\n null !== (void 0 !== refProp ? refProp : null)\n ? Object.defineProperty(type, \"ref\", {\n enumerable: !1,\n get: elementRefGetterWithDeprecationWarning\n })\n : Object.defineProperty(type, \"ref\", { enumerable: !1, value: null });\n type._store = {};\n Object.defineProperty(type._store, \"validated\", {\n configurable: !1,\n enumerable: !1,\n writable: !0,\n value: 0\n });\n Object.defineProperty(type, \"_debugInfo\", {\n configurable: !1,\n enumerable: !1,\n writable: !0,\n value: null\n });\n Object.defineProperty(type, \"_debugStack\", {\n configurable: !1,\n enumerable: !1,\n writable: !0,\n value: debugStack\n });\n Object.defineProperty(type, \"_debugTask\", {\n configurable: !1,\n enumerable: !1,\n writable: !0,\n value: debugTask\n });\n Object.freeze && (Object.freeze(type.props), Object.freeze(type));\n return type;\n }\n function jsxDEVImpl(\n type,\n config,\n maybeKey,\n isStaticChildren,\n debugStack,\n debugTask\n ) {\n var children = config.children;\n if (void 0 !== children)\n if (isStaticChildren)\n if (isArrayImpl(children)) {\n for (\n isStaticChildren = 0;\n isStaticChildren < children.length;\n isStaticChildren++\n )\n validateChildKeys(children[isStaticChildren]);\n Object.freeze && Object.freeze(children);\n } else\n console.error(\n \"React.jsx: Static children should always be an array. You are likely explicitly calling React.jsxs or React.jsxDEV. Use the Babel transform instead.\"\n );\n else validateChildKeys(children);\n if (hasOwnProperty.call(config, \"key\")) {\n children = getComponentNameFromType(type);\n var keys = Object.keys(config).filter(function (k) {\n return \"key\" !== k;\n });\n isStaticChildren =\n 0 < keys.length\n ? \"{key: someKey, \" + keys.join(\": ..., \") + \": ...}\"\n : \"{key: someKey}\";\n didWarnAboutKeySpread[children + isStaticChildren] ||\n ((keys =\n 0 < keys.length ? \"{\" + keys.join(\": ..., \") + \": ...}\" : \"{}\"),\n console.error(\n 'A props object containing a \"key\" prop is being spread into JSX:\\n let props = %s;\\n <%s {...props} />\\nReact keys must be passed directly to JSX without using spread:\\n let props = %s;\\n <%s key={someKey} {...props} />',\n isStaticChildren,\n children,\n keys,\n children\n ),\n (didWarnAboutKeySpread[children + isStaticChildren] = !0));\n }\n children = null;\n void 0 !== maybeKey &&\n (checkKeyStringCoercion(maybeKey), (children = \"\" + maybeKey));\n hasValidKey(config) &&\n (checkKeyStringCoercion(config.key), (children = \"\" + config.key));\n if (\"key\" in config) {\n maybeKey = {};\n for (var propName in config)\n \"key\" !== propName && (maybeKey[propName] = config[propName]);\n } else maybeKey = config;\n children &&\n defineKeyPropWarningGetter(\n maybeKey,\n \"function\" === typeof type\n ? type.displayName || type.name || \"Unknown\"\n : type\n );\n return ReactElement(\n type,\n children,\n maybeKey,\n getOwner(),\n debugStack,\n debugTask\n );\n }\n function validateChildKeys(node) {\n isValidElement(node)\n ? node._store && (node._store.validated = 1)\n : \"object\" === typeof node &&\n null !== node &&\n node.$$typeof === REACT_LAZY_TYPE &&\n (\"fulfilled\" === node._payload.status\n ? isValidElement(node._payload.value) &&\n node._payload.value._store &&\n (node._payload.value._store.validated = 1)\n : node._store && (node._store.validated = 1));\n }\n function isValidElement(object) {\n return (\n \"object\" === typeof object &&\n null !== object &&\n object.$$typeof === REACT_ELEMENT_TYPE\n );\n }\n var React = require(\"react\"),\n REACT_ELEMENT_TYPE = Symbol.for(\"react.transitional.element\"),\n REACT_PORTAL_TYPE = Symbol.for(\"react.portal\"),\n REACT_FRAGMENT_TYPE = Symbol.for(\"react.fragment\"),\n REACT_STRICT_MODE_TYPE = Symbol.for(\"react.strict_mode\"),\n REACT_PROFILER_TYPE = Symbol.for(\"react.profiler\"),\n REACT_CONSUMER_TYPE = Symbol.for(\"react.consumer\"),\n REACT_CONTEXT_TYPE = Symbol.for(\"react.context\"),\n REACT_FORWARD_REF_TYPE = Symbol.for(\"react.forward_ref\"),\n REACT_SUSPENSE_TYPE = Symbol.for(\"react.suspense\"),\n REACT_SUSPENSE_LIST_TYPE = Symbol.for(\"react.suspense_list\"),\n REACT_MEMO_TYPE = Symbol.for(\"react.memo\"),\n REACT_LAZY_TYPE = Symbol.for(\"react.lazy\"),\n REACT_ACTIVITY_TYPE = Symbol.for(\"react.activity\"),\n REACT_CLIENT_REFERENCE = Symbol.for(\"react.client.reference\"),\n ReactSharedInternals =\n React.__CLIENT_INTERNALS_DO_NOT_USE_OR_WARN_USERS_THEY_CANNOT_UPGRADE,\n hasOwnProperty = Object.prototype.hasOwnProperty,\n isArrayImpl = Array.isArray,\n createTask = console.createTask\n ? console.createTask\n : function () {\n return null;\n };\n React = {\n react_stack_bottom_frame: function (callStackForError) {\n return callStackForError();\n }\n };\n var specialPropKeyWarningShown;\n var didWarnAboutElementRef = {};\n var unknownOwnerDebugStack = React.react_stack_bottom_frame.bind(\n React,\n UnknownOwner\n )();\n var unknownOwnerDebugTask = createTask(getTaskName(UnknownOwner));\n var didWarnAboutKeySpread = {};\n exports.Fragment = REACT_FRAGMENT_TYPE;\n exports.jsx = function (type, config, maybeKey) {\n var trackActualOwner =\n 1e4 > ReactSharedInternals.recentlyCreatedOwnerStacks++;\n return jsxDEVImpl(\n type,\n config,\n maybeKey,\n !1,\n trackActualOwner\n ? Error(\"react-stack-top-frame\")\n : unknownOwnerDebugStack,\n trackActualOwner ? createTask(getTaskName(type)) : unknownOwnerDebugTask\n );\n };\n exports.jsxs = function (type, config, maybeKey) {\n var trackActualOwner =\n 1e4 > ReactSharedInternals.recentlyCreatedOwnerStacks++;\n return jsxDEVImpl(\n type,\n config,\n maybeKey,\n !0,\n trackActualOwner\n ? Error(\"react-stack-top-frame\")\n : unknownOwnerDebugStack,\n trackActualOwner ? createTask(getTaskName(type)) : unknownOwnerDebugTask\n );\n };\n })();\n","'use strict';\n\nif (process.env.NODE_ENV === 'production') {\n module.exports = require('./cjs/react-jsx-runtime.production.js');\n} else {\n module.exports = require('./cjs/react-jsx-runtime.development.js');\n}\n","import {useLayoutEffect as $f0a04ccd8dbdd83b$export$e5c5a5f917a5871c} from \"./useLayoutEffect.mjs\";\nimport {useValueEffect as $1dbecbe27a04f9af$export$14d238f342723f25} from \"./useValueEffect.mjs\";\nimport {useState as $eKkEp$useState, useRef as $eKkEp$useRef, useEffect as $eKkEp$useEffect, useCallback as $eKkEp$useCallback} from \"react\";\nimport {useSSRSafeId as $eKkEp$useSSRSafeId} from \"@react-aria/ssr\";\n\n/*\n * Copyright 2020 Adobe. All rights reserved.\n * This file is licensed to you under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License. You may obtain a copy\n * of the License at http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software distributed under\n * the License is distributed on an \"AS IS\" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS\n * OF ANY KIND, either express or implied. See the License for the specific language\n * governing permissions and limitations under the License.\n */ \n\n\n\n// copied from SSRProvider.tsx to reduce exports, if needed again, consider sharing\nlet $bdb11010cef70236$var$canUseDOM = Boolean(typeof window !== 'undefined' && window.document && window.document.createElement);\nlet $bdb11010cef70236$export$d41a04c74483c6ef = new Map();\n// This allows us to clean up the idsUpdaterMap when the id is no longer used.\n// Map is a strong reference, so unused ids wouldn't be cleaned up otherwise.\n// This can happen in suspended components where mount/unmount is not called.\nlet $bdb11010cef70236$var$registry;\nif (typeof FinalizationRegistry !== 'undefined') $bdb11010cef70236$var$registry = new FinalizationRegistry((heldValue)=>{\n $bdb11010cef70236$export$d41a04c74483c6ef.delete(heldValue);\n});\nfunction $bdb11010cef70236$export$f680877a34711e37(defaultId) {\n let [value, setValue] = (0, $eKkEp$useState)(defaultId);\n let nextId = (0, $eKkEp$useRef)(null);\n let res = (0, $eKkEp$useSSRSafeId)(value);\n let cleanupRef = (0, $eKkEp$useRef)(null);\n if ($bdb11010cef70236$var$registry) $bdb11010cef70236$var$registry.register(cleanupRef, res);\n if ($bdb11010cef70236$var$canUseDOM) {\n const cacheIdRef = $bdb11010cef70236$export$d41a04c74483c6ef.get(res);\n if (cacheIdRef && !cacheIdRef.includes(nextId)) cacheIdRef.push(nextId);\n else $bdb11010cef70236$export$d41a04c74483c6ef.set(res, [\n nextId\n ]);\n }\n (0, $f0a04ccd8dbdd83b$export$e5c5a5f917a5871c)(()=>{\n let r = res;\n return ()=>{\n // In Suspense, the cleanup function may be not called\n // when it is though, also remove it from the finalization registry.\n if ($bdb11010cef70236$var$registry) $bdb11010cef70236$var$registry.unregister(cleanupRef);\n $bdb11010cef70236$export$d41a04c74483c6ef.delete(r);\n };\n }, [\n res\n ]);\n // This cannot cause an infinite loop because the ref is always cleaned up.\n // eslint-disable-next-line\n (0, $eKkEp$useEffect)(()=>{\n let newId = nextId.current;\n if (newId) setValue(newId);\n return ()=>{\n if (newId) nextId.current = null;\n };\n });\n return res;\n}\nfunction $bdb11010cef70236$export$cd8c9cb68f842629(idA, idB) {\n if (idA === idB) return idA;\n let setIdsA = $bdb11010cef70236$export$d41a04c74483c6ef.get(idA);\n if (setIdsA) {\n setIdsA.forEach((ref)=>ref.current = idB);\n return idB;\n }\n let setIdsB = $bdb11010cef70236$export$d41a04c74483c6ef.get(idB);\n if (setIdsB) {\n setIdsB.forEach((ref)=>ref.current = idA);\n return idA;\n }\n return idB;\n}\nfunction $bdb11010cef70236$export$b4cc09c592e8fdb8(depArray = []) {\n let id = $bdb11010cef70236$export$f680877a34711e37();\n let [resolvedId, setResolvedId] = (0, $1dbecbe27a04f9af$export$14d238f342723f25)(id);\n let updateId = (0, $eKkEp$useCallback)(()=>{\n setResolvedId(function*() {\n yield id;\n yield document.getElementById(id) ? id : undefined;\n });\n }, [\n id,\n setResolvedId\n ]);\n (0, $f0a04ccd8dbdd83b$export$e5c5a5f917a5871c)(updateId, [\n id,\n updateId,\n ...depArray\n ]);\n return resolvedId;\n}\n\n\nexport {$bdb11010cef70236$export$d41a04c74483c6ef as idsUpdaterMap, $bdb11010cef70236$export$f680877a34711e37 as useId, $bdb11010cef70236$export$cd8c9cb68f842629 as mergeIds, $bdb11010cef70236$export$b4cc09c592e8fdb8 as useSlotId};\n//# sourceMappingURL=useId.module.js.map\n","/*\n * Copyright 2020 Adobe. All rights reserved.\n * This file is licensed to you under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License. You may obtain a copy\n * of the License at http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software distributed under\n * the License is distributed on an \"AS IS\" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS\n * OF ANY KIND, either express or implied. See the License for the specific language\n * governing permissions and limitations under the License.\n */ /**\n * Calls all functions in the order they were chained with the same arguments.\n */ function $ff5963eb1fccf552$export$e08e3b67e392101e(...callbacks) {\n return (...args)=>{\n for (let callback of callbacks)if (typeof callback === 'function') callback(...args);\n };\n}\n\n\nexport {$ff5963eb1fccf552$export$e08e3b67e392101e as chain};\n//# sourceMappingURL=chain.module.js.map\n","function r(e){var t,f,n=\"\";if(\"string\"==typeof e||\"number\"==typeof e)n+=e;else if(\"object\"==typeof e)if(Array.isArray(e)){var o=e.length;for(t=0;t<o;t++)e[t]&&(f=r(e[t]))&&(n&&(n+=\" \"),n+=f)}else for(f in e)e[f]&&(n&&(n+=\" \"),n+=f);return n}export function clsx(){for(var e,t,f=0,n=\"\",o=arguments.length;f<o;f++)(e=arguments[f])&&(t=r(e))&&(n&&(n+=\" \"),n+=t);return n}export default clsx;","import {chain as $ff5963eb1fccf552$export$e08e3b67e392101e} from \"./chain.mjs\";\nimport {mergeIds as $bdb11010cef70236$export$cd8c9cb68f842629} from \"./useId.mjs\";\nimport $7jXr9$clsx from \"clsx\";\n\n/*\n * Copyright 2020 Adobe. All rights reserved.\n * This file is licensed to you under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License. You may obtain a copy\n * of the License at http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software distributed under\n * the License is distributed on an \"AS IS\" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS\n * OF ANY KIND, either express or implied. See the License for the specific language\n * governing permissions and limitations under the License.\n */ \n\n\nfunction $3ef42575df84b30b$export$9d1611c77c2fe928(...args) {\n // Start with a base clone of the first argument. This is a lot faster than starting\n // with an empty object and adding properties as we go.\n let result = {\n ...args[0]\n };\n for(let i = 1; i < args.length; i++){\n let props = args[i];\n for(let key in props){\n let a = result[key];\n let b = props[key];\n // Chain events\n if (typeof a === 'function' && typeof b === 'function' && // This is a lot faster than a regex.\n key[0] === 'o' && key[1] === 'n' && key.charCodeAt(2) >= /* 'A' */ 65 && key.charCodeAt(2) <= /* 'Z' */ 90) result[key] = (0, $ff5963eb1fccf552$export$e08e3b67e392101e)(a, b);\n else if ((key === 'className' || key === 'UNSAFE_className') && typeof a === 'string' && typeof b === 'string') result[key] = (0, $7jXr9$clsx)(a, b);\n else if (key === 'id' && a && b) result.id = (0, $bdb11010cef70236$export$cd8c9cb68f842629)(a, b);\n else result[key] = b !== undefined ? b : a;\n }\n }\n return result;\n}\n\n\nexport {$3ef42575df84b30b$export$9d1611c77c2fe928 as mergeProps};\n//# sourceMappingURL=mergeProps.module.js.map\n","/*\n * Copyright 2020 Adobe. All rights reserved.\n * This file is licensed to you under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License. You may obtain a copy\n * of the License at http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software distributed under\n * the License is distributed on an \"AS IS\" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS\n * OF ANY KIND, either express or implied. See the License for the specific language\n * governing permissions and limitations under the License.\n */ function $7215afc6de606d6b$export$de79e2c695e052f3(element) {\n if ($7215afc6de606d6b$var$supportsPreventScroll()) element.focus({\n preventScroll: true\n });\n else {\n let scrollableElements = $7215afc6de606d6b$var$getScrollableElements(element);\n element.focus();\n $7215afc6de606d6b$var$restoreScrollPosition(scrollableElements);\n }\n}\nlet $7215afc6de606d6b$var$supportsPreventScrollCached = null;\nfunction $7215afc6de606d6b$var$supportsPreventScroll() {\n if ($7215afc6de606d6b$var$supportsPreventScrollCached == null) {\n $7215afc6de606d6b$var$supportsPreventScrollCached = false;\n try {\n let focusElem = document.createElement('div');\n focusElem.focus({\n get preventScroll () {\n $7215afc6de606d6b$var$supportsPreventScrollCached = true;\n return true;\n }\n });\n } catch {\n // Ignore\n }\n }\n return $7215afc6de606d6b$var$supportsPreventScrollCached;\n}\nfunction $7215afc6de606d6b$var$getScrollableElements(element) {\n let parent = element.parentNode;\n let scrollableElements = [];\n let rootScrollingElement = document.scrollingElement || document.documentElement;\n while(parent instanceof HTMLElement && parent !== rootScrollingElement){\n if (parent.offsetHeight < parent.scrollHeight || parent.offsetWidth < parent.scrollWidth) scrollableElements.push({\n element: parent,\n scrollTop: parent.scrollTop,\n scrollLeft: parent.scrollLeft\n });\n parent = parent.parentNode;\n }\n if (rootScrollingElement instanceof HTMLElement) scrollableElements.push({\n element: rootScrollingElement,\n scrollTop: rootScrollingElement.scrollTop,\n scrollLeft: rootScrollingElement.scrollLeft\n });\n return scrollableElements;\n}\nfunction $7215afc6de606d6b$var$restoreScrollPosition(scrollableElements) {\n for (let { element: element, scrollTop: scrollTop, scrollLeft: scrollLeft } of scrollableElements){\n element.scrollTop = scrollTop;\n element.scrollLeft = scrollLeft;\n }\n}\n\n\nexport {$7215afc6de606d6b$export$de79e2c695e052f3 as focusWithoutScrolling};\n//# sourceMappingURL=focusWithoutScrolling.module.js.map\n","import {useState as $3whtM$useState, useRef as $3whtM$useRef, useEffect as $3whtM$useEffect, useCallback as $3whtM$useCallback} from \"react\";\n\n/*\n * Copyright 2020 Adobe. All rights reserved.\n * This file is licensed to you under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License. You may obtain a copy\n * of the License at http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software distributed under\n * the License is distributed on an \"AS IS\" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS\n * OF ANY KIND, either express or implied. See the License for the specific language\n * governing permissions and limitations under the License.\n */ \nfunction $458b0a5536c1a7cf$export$40bfa8c7b0832715(value, defaultValue, onChange) {\n let [stateValue, setStateValue] = (0, $3whtM$useState)(value || defaultValue);\n let isControlledRef = (0, $3whtM$useRef)(value !== undefined);\n let isControlled = value !== undefined;\n (0, $3whtM$useEffect)(()=>{\n let wasControlled = isControlledRef.current;\n if (wasControlled !== isControlled && process.env.NODE_ENV !== 'production') console.warn(`WARN: A component changed from ${wasControlled ? 'controlled' : 'uncontrolled'} to ${isControlled ? 'controlled' : 'uncontrolled'}.`);\n isControlledRef.current = isControlled;\n }, [\n isControlled\n ]);\n let currentValue = isControlled ? value : stateValue;\n let setValue = (0, $3whtM$useCallback)((value, ...args)=>{\n let onChangeCaller = (value, ...onChangeArgs)=>{\n if (onChange) {\n if (!Object.is(currentValue, value)) onChange(value, ...onChangeArgs);\n }\n if (!isControlled) // If uncontrolled, mutate the currentValue local variable so that\n // calling setState multiple times with the same value only emits onChange once.\n // We do not use a ref for this because we specifically _do_ want the value to\n // reset every render, and assigning to a ref in render breaks aborted suspended renders.\n // eslint-disable-next-line react-hooks/exhaustive-deps\n currentValue = value;\n };\n if (typeof value === 'function') {\n if (process.env.NODE_ENV !== 'production') console.warn('We can not support a function callback. See Github Issues for details https://github.com/adobe/react-spectrum/issues/2320');\n // this supports functional updates https://reactjs.org/docs/hooks-reference.html#functional-updates\n // when someone using useControlledState calls setControlledState(myFunc)\n // this will call our useState setState with a function as well which invokes myFunc and calls onChange with the value from myFunc\n // if we're in an uncontrolled state, then we also return the value of myFunc which to setState looks as though it was just called with myFunc from the beginning\n // otherwise we just return the controlled value, which won't cause a rerender because React knows to bail out when the value is the same\n let updateFunction = (oldValue, ...functionArgs)=>{\n let interceptedValue = value(isControlled ? currentValue : oldValue, ...functionArgs);\n onChangeCaller(interceptedValue, ...args);\n if (!isControlled) return interceptedValue;\n return oldValue;\n };\n setStateValue(updateFunction);\n } else {\n if (!isControlled) setStateValue(value);\n onChangeCaller(value, ...args);\n }\n }, [\n isControlled,\n currentValue,\n onChange\n ]);\n return [\n currentValue,\n setValue\n ];\n}\n\n\nexport {$458b0a5536c1a7cf$export$40bfa8c7b0832715 as useControlledState};\n//# sourceMappingURL=useControlledState.module.js.map\n","/**\n * Button 按钮样式\n * \n * 基于三层 Token 体系:\n * - Tier 1 (Global): 全局基础值\n * - Tier 2 (Semantic): 语义化映射\n * - Tier 3 (Component): 组件专用 Token\n * \n * 完全还原 Figma 设计稿规范\n */\n\nimport styled from '@emotion/styled'\nimport { css } from '@emotion/react'\nimport type { AppTheme } from '@kingsoft-ai/theme'\n\n// ============================================================================\n// 类型定义\n// ============================================================================\n\nexport const buttonVariants = ['primary', 'secondary', 'text', 'danger', 'gradient'] as const\nexport const buttonSizes = ['sm', 'md', 'lg'] as const\n\nexport type ButtonVariant = (typeof buttonVariants)[number]\nexport type ButtonSize = (typeof buttonSizes)[number]\n\n// ============================================================================\n// 变体样式生成器\n// ============================================================================\n\ntype ButtonState = 'default' | 'hover' | 'active'\ntype PartialStateToken = { default: string } & Partial<Record<'hover' | 'active', string>>\ntype WithOptionalShadow = { shadow: { default: string; hover?: string } }\n\n/**\n * 获取按钮变体样式\n * 优先使用 Tier 3 组件层 Token\n */\nconst getVariantStyles = (variant: ButtonVariant, theme: AppTheme) => {\n const variantToken = theme.components.button[variant]\n const hasShadow = 'shadow' in variantToken\n \n // 渐变按钮使用特殊的渐变样式逻辑\n if (variant === 'gradient') {\n const gradientToken = variantToken as typeof theme.components.button.gradient\n const defaultShadow = gradientToken.shadow.default\n const hoverShadow = gradientToken.shadow.hover\n \n return css`\n position: relative;\n overflow: hidden;\n color: ${gradientToken.text.default};\n border-color: transparent; /* 渐变无边框,保留 1px 以保持高度一致 */\n box-shadow: ${defaultShadow};\n \n /* 默认渐变背景 */\n background: linear-gradient(\n 90deg, \n ${gradientToken.background.gradientFrom} 0%, \n ${gradientToken.background.gradientTo} 100%\n );\n \n /* 使用伪元素创建反向渐变层 */\n &::before {\n content: '';\n position: absolute;\n top: 0;\n left: 0;\n right: 0;\n bottom: 0;\n background: linear-gradient(\n 90deg, \n ${gradientToken.background.gradientTo} 0%, \n ${gradientToken.background.gradientFrom} 100%\n );\n opacity: 0;\n transition: opacity 0.6s ease;\n z-index: 0;\n }\n \n /* 确保内容在渐变层上方 */\n & > * {\n position: relative;\n z-index: 1;\n }\n\n /* Hover 状态 - 显示反向渐变层 */\n &:hover:not(:disabled):not([data-loading='true'])::before {\n opacity: 1;\n }\n \n &:hover:not(:disabled):not([data-loading='true']) {\n box-shadow: ${hoverShadow};\n }\n\n /* Active/Pressed 状态(点击态) */\n &:active:not(:disabled):not([data-loading='true']),\n &[data-pressed='true']:not(:disabled):not([data-loading='true']) {\n box-shadow: none;\n transform: translateY(1px);\n }\n `\n }\n \n // 常规变体样式\n // 获取指定状态值(带默认回退)\n const getStateValue = (obj: PartialStateToken, state: ButtonState) => obj[state] ?? obj.default\n\n // 获取边框颜色\n const getBorderColor = (state: ButtonState) => {\n return getStateValue(variantToken.border as PartialStateToken, state)\n }\n\n // 获取背景颜色\n const getBackground = (state: ButtonState) => {\n return getStateValue(variantToken.background as PartialStateToken, state)\n }\n\n // 阴影(某些变体无阴影)\n const defaultShadow = hasShadow ? (variantToken as WithOptionalShadow).shadow.default : 'none'\n const hoverShadow = hasShadow ? ((variantToken as WithOptionalShadow).shadow.hover ?? 'none') : 'none'\n\n return css`\n background: ${variantToken.background.default};\n color: ${variantToken.text.default};\n border-color: ${variantToken.border.default};\n box-shadow: ${defaultShadow};\n\n /* Hover 状态 */\n &:hover:not(:disabled):not([data-loading='true']) {\n background: ${getBackground('hover')};\n border-color: ${getBorderColor('hover')};\n box-shadow: ${hoverShadow};\n }\n\n /* Active/Pressed 状态(点击态) */\n &:active:not(:disabled):not([data-loading='true']),\n &[data-pressed='true']:not(:disabled):not([data-loading='true']) {\n background: ${getBackground('active')};\n border-color: ${getBorderColor('active')};\n box-shadow: none;\n transform: translateY(1px);\n }\n `\n}\n\n/**\n * 获取按钮尺寸样式\n * 使用 Tier 3 组件层尺寸 Token\n */\nconst getSizeStyles = (size: ButtonSize, theme: AppTheme) => {\n const sizeToken = theme.components.button.size[size]\n\n return css`\n height: ${sizeToken.height};\n font-size: ${sizeToken.fontSize};\n padding-inline: ${sizeToken.paddingInline};\n\n /* 图标尺寸 */\n svg {\n width: ${sizeToken.iconSize};\n height: ${sizeToken.iconSize};\n }\n `\n}\n\n// ============================================================================\n// 样式组件\n// ============================================================================\n\n/**\n * Button 根元素\n * \n * 特性:\n * - 基于三层 Token 设计\n * - 完整的交互状态(hover, active, focus, disabled)\n * - 支持加载状态\n * - 支持全宽模式\n */\nexport const ButtonRoot = styled.button<{\n variant: ButtonVariant\n size: ButtonSize\n fullWidth: boolean\n isPressed: boolean\n isDisabled: boolean\n isLoading: boolean\n}>`\n /* 基础样式 - 使用 Tier 3 组件层 Token */\n position: relative;\n display: inline-flex;\n align-items: center;\n justify-content: center;\n box-sizing: border-box;\n \n /* 字体样式 */\n font-family: ${({ theme }) => theme?.global?.typography?.fontFamily || '-apple-system, BlinkMacSystemFont, \"Segoe UI\", Roboto, sans-serif'};\n font-weight: ${({ theme }) => theme?.components?.button?.fontWeight || 500};\n line-height: 1;\n white-space: nowrap;\n \n /* 边框样式 */\n border-width: 1px;\n border-style: solid;\n border-radius: ${({ theme }) => theme?.components?.button?.borderRadius || '6px'};\n \n /* 交互样式 */\n cursor: pointer;\n user-select: none;\n outline: none;\n \n /* 过渡动画 */\n transition: \n background ${({ theme }) => theme?.components?.button?.transition || '0.2s ease'},\n border-color ${({ theme }) => theme?.components?.button?.transition || '0.2s ease'},\n box-shadow ${({ theme }) => theme?.components?.button?.transition || '0.2s ease'},\n transform ${({ theme }) => theme?.components?.button?.transition || '0.2s ease'};\n\n /* 变体样式 */\n ${({ variant, theme }) => getVariantStyles(variant, theme)}\n\n /* 尺寸样式 */\n ${({ size, theme }) => getSizeStyles(size, theme)}\n\n /* 全宽模式 */\n ${({ fullWidth }) =>\n fullWidth &&\n css`\n width: 100%;\n `}\n\n /* Focus 可见状态 - 键盘导航时显示 */\n &:focus-visible {\n outline: 2px solid ${({ theme }) => theme?.components?.button?.primary?.background?.default || '#1677ff'};\n outline-offset: 2px;\n }\n\n /* 禁用状态 */\n &:disabled {\n cursor: not-allowed;\n opacity: ${({ theme }) => theme?.components?.button?.disabled?.opacity || 0.5};\n background: ${({ theme }) => theme?.components?.button?.disabled?.background?.default || '#f5f5f5'};\n color: ${({ theme }) => theme?.components?.button?.disabled?.text?.default || 'rgba(0, 0, 0, 0.25)'};\n border-color: transparent;\n box-shadow: none;\n }\n\n /* 加载状态 - 阻止交互 */\n &[data-loading='true'] {\n pointer-events: none;\n }\n\n /* 加载状态 - 使用伪元素实现 cursor: wait */\n &[data-loading='true']::after {\n content: '';\n position: absolute;\n inset: 0;\n cursor: wait;\n pointer-events: auto; /* 伪元素接收鼠标事件以显示 cursor */\n z-index: 10; /* 确保在所有内容之上 */\n }\n\n /* 添加旋转动画的关键帧 */\n @keyframes spin {\n to {\n transform: rotate(360deg);\n }\n }\n`\n\n/**\n * 按钮内容容器\n * \n * 用于布局图标和文本\n */\nexport const ButtonContent = styled.span`\n display: inline-flex;\n align-items: center;\n justify-content: center;\n gap: ${({ theme }) => theme?.components?.button?.gap || '8px'};\n position: relative;\n`\n\n/**\n * 图标包装器\n * \n * 特性:\n * - 在加载状态下淡出\n * - 保持布局稳定\n */\nexport const IconWrapper = styled.span<{\n isLoading: boolean\n}>`\n display: inline-flex;\n align-items: center;\n justify-content: center;\n flex-shrink: 0;\n \n transition: opacity ${({ theme }) => theme?.components?.button?.transition || '0.2s ease'};\n \n ${({ isLoading }) =>\n isLoading &&\n css`\n opacity: 0;\n pointer-events: none;\n `}\n`\n\n/**\n * 按钮文本标签\n * \n * 特性:\n * - 在加载状态下淡出\n * - 保持文本居中\n */\nexport const Label = styled.span<{\n isLoading: boolean\n}>`\n display: inline-flex;\n align-items: center;\n justify-content: center;\n \n transition: opacity ${({ theme }) => theme?.components?.button?.transition || '0.2s ease'};\n \n ${({ isLoading }) =>\n isLoading &&\n css`\n opacity: 0.4;\n `}\n`\n","/**\n * Button 按钮组件\n * \n * 基于 react-aria 实现无障碍访问的按钮组件\n * 完全符合 Figma 设计稿规范\n * \n * @example\n * ```tsx\n * <Button variant=\"primary\" size=\"md\">\n * 按钮文字\n * </Button>\n * ```\n */\n\nimport { forwardRef, useRef } from 'react'\nimport type { ReactNode } from 'react'\nimport { useButton } from 'react-aria'\nimport type { AriaButtonProps } from 'react-aria'\nimport { mergeProps } from '@react-aria/utils'\nimport {\n ButtonRoot,\n ButtonContent,\n IconWrapper,\n Label,\n buttonVariants,\n buttonSizes,\n type ButtonVariant,\n type ButtonSize,\n} from './Button.style'\n\n// 导出常量供外部使用\nexport const VARIANTS = buttonVariants\nexport const SIZES = buttonSizes\n\nexport type ButtonProps = Omit<AriaButtonProps, 'elementType'> & {\n /** 按钮类型:主按钮、次按钮、文本按钮、危险按钮 */\n variant?: ButtonVariant\n /** 按钮尺寸:小号(24px)、标准(32px)、大号(40px) */\n size?: ButtonSize\n /** 前置图标 */\n icon?: ReactNode\n /** 加载状态 */\n loading?: boolean\n /** 全宽按钮 */\n fullWidth?: boolean\n /** 自定义类名 */\n className?: string\n /** 子元素 */\n children?: ReactNode\n}\n\n/**\n * Button 按钮组件\n * \n * 基于 Figma 设计规范实现的按钮组件,支持多种变体和尺寸\n * 使用 react-aria 保证无障碍访问性\n */\nexport const Button = forwardRef<HTMLButtonElement, ButtonProps>(\n (\n {\n variant = 'primary',\n size = 'md',\n icon,\n loading = false,\n fullWidth = false,\n isDisabled,\n className,\n children,\n ...ariaProps\n },\n forwardedRef,\n ) => {\n const innerRef = useRef<HTMLButtonElement>(null)\n const ref = forwardedRef || innerRef\n\n // 按钮禁用状态:明确禁用或加载中\n const disabled = isDisabled || loading\n\n // 使用 react-aria 的 useButton hook\n const { buttonProps, isPressed } = useButton(\n {\n ...ariaProps,\n isDisabled: disabled,\n elementType: 'button',\n },\n innerRef,\n )\n\n return (\n <ButtonRoot\n {...mergeProps(buttonProps, {\n ref,\n className,\n })}\n variant={variant}\n size={size}\n fullWidth={fullWidth}\n isPressed={isPressed}\n isDisabled={disabled}\n isLoading={loading}\n data-variant={variant}\n data-size={size}\n data-loading={loading ? 'true' : undefined}\n data-pressed={isPressed ? 'true' : undefined}\n >\n <ButtonContent>\n {/* 前置图标 */}\n {icon && (\n <IconWrapper isLoading={loading} aria-hidden=\"true\">\n {icon}\n </IconWrapper>\n )}\n\n {/* 按钮文本 */}\n <Label isLoading={loading}>{children}</Label>\n\n {/* 加载状态指示器 */}\n {loading && (\n <IconWrapper isLoading={false} aria-label=\"加载中\" role=\"status\">\n <svg\n width=\"16\"\n height=\"16\"\n viewBox=\"0 0 16 16\"\n fill=\"none\"\n xmlns=\"http://www.w3.org/2000/svg\"\n style={{\n animation: 'spin 0.8s linear infinite',\n }}\n >\n <circle\n cx=\"8\"\n cy=\"8\"\n r=\"6\"\n stroke=\"currentColor\"\n strokeWidth=\"2\"\n strokeLinecap=\"round\"\n strokeDasharray=\"30 10\"\n />\n </svg>\n </IconWrapper>\n )}\n </ButtonContent>\n </ButtonRoot>\n )\n },\n)\n\nButton.displayName = 'Button'\n","/**\n * IconButton 图标按钮样式\n *\n * 依赖三层 Token 体系,并对尺寸/变体进行语义化封装\n */\n\nimport styled from '@emotion/styled'\nimport { css } from '@emotion/react'\nimport type { AppTheme } from '@kingsoft-ai/theme'\n\nexport const iconButtonAppearances = ['solid', 'outline', 'ghost'] as const\nexport const iconButtonTones = ['primary', 'neutral', 'danger'] as const\nexport const iconButtonSizes = ['sm', 'md', 'lg'] as const\n\nexport type IconButtonAppearance = (typeof iconButtonAppearances)[number]\nexport type IconButtonTone = (typeof iconButtonTones)[number]\nexport type IconButtonSize = (typeof iconButtonSizes)[number]\n\ntype InteractionState = 'default' | 'hover' | 'active'\n\nconst getVariantStyles = (appearance: IconButtonAppearance, tone: IconButtonTone, theme: AppTheme) => {\n const tokens = theme.components.iconButton.appearance[appearance][tone]\n\n const resolve = (state: InteractionState) => ({\n background: tokens.background[state],\n border: tokens.border[state] ?? tokens.border.hover ?? tokens.border.default,\n icon: tokens.icon[state] ?? tokens.icon.hover ?? tokens.icon.default,\n })\n\n const defaultState = resolve('default')\n const hoverState = resolve('hover')\n const activeState = resolve('active')\n\n const defaultShadow = tokens.shadow?.default ?? 'none'\n const hoverShadow = tokens.shadow?.hover ?? defaultShadow\n\n return css`\n background: ${defaultState.background};\n border-color: ${defaultState.border};\n color: ${defaultState.icon};\n box-shadow: ${defaultShadow};\n\n &:hover:not(:disabled):not([data-loading='true']) {\n background: ${hoverState.background};\n border-color: ${hoverState.border};\n color: ${hoverState.icon};\n box-shadow: ${hoverShadow};\n }\n\n &:active:not(:disabled):not([data-loading='true']),\n &[data-pressed='true']:not(:disabled):not([data-loading='true']) {\n background: ${activeState.background};\n border-color: ${activeState.border};\n color: ${activeState.icon};\n box-shadow: none;\n transform: translateY(1px);\n }\n `\n}\n\nconst getSizeStyles = (size: IconButtonSize, theme: AppTheme) => {\n const sizeToken = theme.components.iconButton.size[size]\n\n return css`\n --icon-button-icon-size: ${sizeToken.iconSize};\n width: ${sizeToken.edge};\n height: ${sizeToken.edge};\n min-width: ${sizeToken.edge};\n min-height: ${sizeToken.edge};\n\n svg {\n width: var(--icon-button-icon-size);\n height: var(--icon-button-icon-size);\n }\n `\n}\n\nexport const IconButtonRoot = styled.button<{\n appearance: IconButtonAppearance\n tone: IconButtonTone\n size: IconButtonSize\n isPressed: boolean\n isDisabled: boolean\n isLoading: boolean\n}>`\n position: relative;\n display: inline-flex;\n align-items: center;\n justify-content: center;\n box-sizing: border-box;\n border-width: 1px;\n border-style: solid;\n border-radius: ${({ theme }) => theme.components.iconButton.borderRadius};\n padding: 0;\n cursor: pointer;\n user-select: none;\n line-height: 1;\n background: transparent;\n\n transition:\n background ${({ theme }) => theme.components.iconButton.transition},\n border-color ${({ theme }) => theme.components.iconButton.transition},\n color ${({ theme }) => theme.components.iconButton.transition},\n box-shadow ${({ theme }) => theme.components.iconButton.transition},\n transform ${({ theme }) => theme.components.iconButton.transition};\n\n ${({ appearance, tone, theme }) => getVariantStyles(appearance, tone, theme)}\n ${({ size, theme }) => getSizeStyles(size, theme)}\n\n &:focus-visible {\n outline: ${({ theme }) => theme.components.iconButton.focusRing.width} solid\n ${({ theme }) => theme.components.iconButton.focusRing.color};\n outline-offset: ${({ theme }) => theme.components.iconButton.focusRing.offset};\n }\n\n &:disabled {\n cursor: not-allowed;\n background: ${({ theme }) => theme.components.iconButton.disabled.background};\n border-color: ${({ theme }) => theme.components.iconButton.disabled.border};\n color: ${({ theme }) => theme.components.iconButton.disabled.icon};\n opacity: ${({ theme }) => theme.components.iconButton.disabled.opacity};\n }\n\n &[data-loading='true'] {\n pointer-events: none;\n }\n\n @keyframes icon-button-spin {\n to {\n transform: rotate(360deg);\n }\n }\n`\n\nexport const IconSlot = styled.span<{\n isHidden: boolean\n}>`\n display: inline-flex;\n align-items: center;\n justify-content: center;\n color: inherit;\n transition: opacity ${({ theme }) => theme.components.iconButton.transition};\n pointer-events: none;\n\n ${({ isHidden }) =>\n isHidden &&\n css`\n opacity: 0;\n `}\n`\n\nexport const LoadingSpinner = styled.span`\n position: absolute;\n inset: 0;\n display: inline-flex;\n align-items: center;\n justify-content: center;\n color: inherit;\n pointer-events: none;\n\n svg {\n width: var(--icon-button-icon-size);\n height: var(--icon-button-icon-size);\n animation: icon-button-spin 0.8s linear infinite;\n }\n`\n\n","/**\n * IconButton 图标按钮组件\n *\n * 适用于仅展示图标的高频交互,支持多种外观与语义色彩\n */\n\nimport { forwardRef, useMemo, useRef } from 'react'\nimport type { ReactNode } from 'react'\nimport { useButton, VisuallyHidden } from 'react-aria'\nimport type { AriaButtonProps } from 'react-aria'\nimport { mergeProps } from '@react-aria/utils'\nimport {\n IconButtonRoot,\n IconSlot,\n LoadingSpinner,\n iconButtonAppearances,\n iconButtonTones,\n iconButtonSizes,\n type IconButtonAppearance,\n type IconButtonTone,\n type IconButtonSize,\n} from './IconButton.style'\n\nexport const ICON_BUTTON_APPEARANCES = iconButtonAppearances\nexport const ICON_BUTTON_TONES = iconButtonTones\nexport const ICON_BUTTON_SIZES = iconButtonSizes\n\nexport type IconButtonProps = Omit<AriaButtonProps, 'elementType' | 'children'> & {\n /** 图标按钮的视觉外观:实心、描边、幽灵 */\n appearance?: IconButtonAppearance\n /** 语义色彩:主题、自然、危险 */\n tone?: IconButtonTone\n /** 尺寸:24px / 32px / 40px */\n size?: IconButtonSize\n /** 需要展示的图标 */\n icon: ReactNode\n /** 提供屏幕阅读器可见文本(会以 VisuallyHidden 的形式注入) */\n label?: ReactNode\n /** 加载状态 */\n loading?: boolean\n /** 自定义加载状态的无障碍文本 */\n loadingLabel?: string\n /** 自定义类名 */\n className?: string\n}\n\nexport const IconButton = forwardRef<HTMLButtonElement, IconButtonProps>(\n (\n {\n appearance = 'solid',\n tone = 'primary',\n size = 'md',\n icon,\n label,\n loading = false,\n loadingLabel = '加载中',\n isDisabled,\n className,\n ...ariaProps\n },\n forwardedRef,\n ) => {\n const isDevEnvironment = useMemo(() => {\n if (typeof globalThis === 'undefined') {\n return true\n }\n const nodeEnv =\n (globalThis as { process?: { env?: { NODE_ENV?: string } } }).process?.env?.NODE_ENV\n return nodeEnv !== 'production'\n }, [])\n\n const innerRef = useRef<HTMLButtonElement>(null)\n const ref = forwardedRef || innerRef\n const disabled = isDisabled || loading\n\n if (isDevEnvironment) {\n const ariaLabel = (ariaProps as Record<string, unknown>)['aria-label']\n const ariaLabelledby = (ariaProps as Record<string, unknown>)['aria-labelledby']\n if (!label && !ariaLabel && !ariaLabelledby) {\n console.warn(\n 'IconButton 需要可感知的文本。请传入 label、aria-label 或 aria-labelledby。',\n )\n }\n }\n\n const { buttonProps, isPressed } = useButton(\n {\n ...ariaProps,\n isDisabled: disabled,\n elementType: 'button',\n },\n innerRef,\n )\n\n return (\n <IconButtonRoot\n {...mergeProps(buttonProps, {\n ref,\n className,\n })}\n appearance={appearance}\n tone={tone}\n size={size}\n isPressed={isPressed}\n isDisabled={Boolean(disabled)}\n isLoading={loading}\n data-appearance={appearance}\n data-tone={tone}\n data-size={size}\n data-loading={loading ? 'true' : undefined}\n data-pressed={isPressed ? 'true' : undefined}\n >\n <IconSlot isHidden={loading} aria-hidden=\"true\">\n {icon}\n </IconSlot>\n {loading && (\n <LoadingSpinner role=\"status\" aria-live=\"polite\" aria-label={loadingLabel}>\n <svg\n viewBox=\"0 0 16 16\"\n fill=\"none\"\n xmlns=\"http://www.w3.org/2000/svg\"\n >\n <circle\n cx=\"8\"\n cy=\"8\"\n r=\"6\"\n stroke=\"currentColor\"\n strokeWidth=\"2\"\n strokeLinecap=\"round\"\n strokeDasharray=\"30 10\"\n />\n </svg>\n </LoadingSpinner>\n )}\n {label ? <VisuallyHidden>{label}</VisuallyHidden> : null}\n </IconButtonRoot>\n )\n },\n)\n\nIconButton.displayName = 'IconButton'\n\n","var isDevelopment = false;\n\n/*\n\nBased off glamor's StyleSheet, thanks Sunil ❤️\n\nhigh performance StyleSheet for css-in-js systems\n\n- uses multiple style tags behind the scenes for millions of rules\n- uses `insertRule` for appending in production for *much* faster performance\n\n// usage\n\nimport { StyleSheet } from '@emotion/sheet'\n\nlet styleSheet = new StyleSheet({ key: '', container: document.head })\n\nstyleSheet.insert('#box { border: 1px solid red; }')\n- appends a css rule into the stylesheet\n\nstyleSheet.flush()\n- empties the stylesheet of all its contents\n\n*/\n\nfunction sheetForTag(tag) {\n if (tag.sheet) {\n return tag.sheet;\n } // this weirdness brought to you by firefox\n\n /* istanbul ignore next */\n\n\n for (var i = 0; i < document.styleSheets.length; i++) {\n if (document.styleSheets[i].ownerNode === tag) {\n return document.styleSheets[i];\n }\n } // this function should always return with a value\n // TS can't understand it though so we make it stop complaining here\n\n\n return undefined;\n}\n\nfunction createStyleElement(options) {\n var tag = document.createElement('style');\n tag.setAttribute('data-emotion', options.key);\n\n if (options.nonce !== undefined) {\n tag.setAttribute('nonce', options.nonce);\n }\n\n tag.appendChild(document.createTextNode(''));\n tag.setAttribute('data-s', '');\n return tag;\n}\n\nvar StyleSheet = /*#__PURE__*/function () {\n // Using Node instead of HTMLElement since container may be a ShadowRoot\n function StyleSheet(options) {\n var _this = this;\n\n this._insertTag = function (tag) {\n var before;\n\n if (_this.tags.length === 0) {\n if (_this.insertionPoint) {\n before = _this.insertionPoint.nextSibling;\n } else if (_this.prepend) {\n before = _this.container.firstChild;\n } else {\n before = _this.before;\n }\n } else {\n before = _this.tags[_this.tags.length - 1].nextSibling;\n }\n\n _this.container.insertBefore(tag, before);\n\n _this.tags.push(tag);\n };\n\n this.isSpeedy = options.speedy === undefined ? !isDevelopment : options.speedy;\n this.tags = [];\n this.ctr = 0;\n this.nonce = options.nonce; // key is the value of the data-emotion attribute, it's used to identify different sheets\n\n this.key = options.key;\n this.container = options.container;\n this.prepend = options.prepend;\n this.insertionPoint = options.insertionPoint;\n this.before = null;\n }\n\n var _proto = StyleSheet.prototype;\n\n _proto.hydrate = function hydrate(nodes) {\n nodes.forEach(this._insertTag);\n };\n\n _proto.insert = function insert(rule) {\n // the max length is how many rules we have per style tag, it's 65000 in speedy mode\n // it's 1 in dev because we insert source maps that map a single rule to a location\n // and you can only have one source map per style tag\n if (this.ctr % (this.isSpeedy ? 65000 : 1) === 0) {\n this._insertTag(createStyleElement(this));\n }\n\n var tag = this.tags[this.tags.length - 1];\n\n if (this.isSpeedy) {\n var sheet = sheetForTag(tag);\n\n try {\n // this is the ultrafast version, works across browsers\n // the big drawback is that the css won't be editable in devtools\n sheet.insertRule(rule, sheet.cssRules.length);\n } catch (e) {\n }\n } else {\n tag.appendChild(document.createTextNode(rule));\n }\n\n this.ctr++;\n };\n\n _proto.flush = function flush() {\n this.tags.forEach(function (tag) {\n var _tag$parentNode;\n\n return (_tag$parentNode = tag.parentNode) == null ? void 0 : _tag$parentNode.removeChild(tag);\n });\n this.tags = [];\n this.ctr = 0;\n };\n\n return StyleSheet;\n}();\n\nexport { StyleSheet };\n","export var MS = '-ms-'\nexport var MOZ = '-moz-'\nexport var WEBKIT = '-webkit-'\n\nexport var COMMENT = 'comm'\nexport var RULESET = 'rule'\nexport var DECLARATION = 'decl'\n\nexport var PAGE = '@page'\nexport var MEDIA = '@media'\nexport var IMPORT = '@import'\nexport var CHARSET = '@charset'\nexport var VIEWPORT = '@viewport'\nexport var SUPPORTS = '@supports'\nexport var DOCUMENT = '@document'\nexport var NAMESPACE = '@namespace'\nexport var KEYFRAMES = '@keyframes'\nexport var FONT_FACE = '@font-face'\nexport var COUNTER_STYLE = '@counter-style'\nexport var FONT_FEATURE_VALUES = '@font-feature-values'\nexport var LAYER = '@layer'\n","/**\n * @param {number}\n * @return {number}\n */\nexport var abs = Math.abs\n\n/**\n * @param {number}\n * @return {string}\n */\nexport var from = String.fromCharCode\n\n/**\n * @param {object}\n * @return {object}\n */\nexport var assign = Object.assign\n\n/**\n * @param {string} value\n * @param {number} length\n * @return {number}\n */\nexport function hash (value, length) {\n\treturn charat(value, 0) ^ 45 ? (((((((length << 2) ^ charat(value, 0)) << 2) ^ charat(value, 1)) << 2) ^ charat(value, 2)) << 2) ^ charat(value, 3) : 0\n}\n\n/**\n * @param {string} value\n * @return {string}\n */\nexport function trim (value) {\n\treturn value.trim()\n}\n\n/**\n * @param {string} value\n * @param {RegExp} pattern\n * @return {string?}\n */\nexport function match (value, pattern) {\n\treturn (value = pattern.exec(value)) ? value[0] : value\n}\n\n/**\n * @param {string} value\n * @param {(string|RegExp)} pattern\n * @param {string} replacement\n * @return {string}\n */\nexport function replace (value, pattern, replacement) {\n\treturn value.replace(pattern, replacement)\n}\n\n/**\n * @param {string} value\n * @param {string} search\n * @return {number}\n */\nexport function indexof (value, search) {\n\treturn value.indexOf(search)\n}\n\n/**\n * @param {string} value\n * @param {number} index\n * @return {number}\n */\nexport function charat (value, index) {\n\treturn value.charCodeAt(index) | 0\n}\n\n/**\n * @param {string} value\n * @param {number} begin\n * @param {number} end\n * @return {string}\n */\nexport function substr (value, begin, end) {\n\treturn value.slice(begin, end)\n}\n\n/**\n * @param {string} value\n * @return {number}\n */\nexport function strlen (value) {\n\treturn value.length\n}\n\n/**\n * @param {any[]} value\n * @return {number}\n */\nexport function sizeof (value) {\n\treturn value.length\n}\n\n/**\n * @param {any} value\n * @param {any[]} array\n * @return {any}\n */\nexport function append (value, array) {\n\treturn array.push(value), value\n}\n\n/**\n * @param {string[]} array\n * @param {function} callback\n * @return {string}\n */\nexport function combine (array, callback) {\n\treturn array.map(callback).join('')\n}\n","import {from, trim, charat, strlen, substr, append, assign} from './Utility.js'\n\nexport var line = 1\nexport var column = 1\nexport var length = 0\nexport var position = 0\nexport var character = 0\nexport var characters = ''\n\n/**\n * @param {string} value\n * @param {object | null} root\n * @param {object | null} parent\n * @param {string} type\n * @param {string[] | string} props\n * @param {object[] | string} children\n * @param {number} length\n */\nexport function node (value, root, parent, type, props, children, length) {\n\treturn {value: value, root: root, parent: parent, type: type, props: props, children: children, line: line, column: column, length: length, return: ''}\n}\n\n/**\n * @param {object} root\n * @param {object} props\n * @return {object}\n */\nexport function copy (root, props) {\n\treturn assign(node('', null, null, '', null, null, 0), root, {length: -root.length}, props)\n}\n\n/**\n * @return {number}\n */\nexport function char () {\n\treturn character\n}\n\n/**\n * @return {number}\n */\nexport function prev () {\n\tcharacter = position > 0 ? charat(characters, --position) : 0\n\n\tif (column--, character === 10)\n\t\tcolumn = 1, line--\n\n\treturn character\n}\n\n/**\n * @return {number}\n */\nexport function next () {\n\tcharacter = position < length ? charat(characters, position++) : 0\n\n\tif (column++, character === 10)\n\t\tcolumn = 1, line++\n\n\treturn character\n}\n\n/**\n * @return {number}\n */\nexport function peek () {\n\treturn charat(characters, position)\n}\n\n/**\n * @return {number}\n */\nexport function caret () {\n\treturn position\n}\n\n/**\n * @param {number} begin\n * @param {number} end\n * @return {string}\n */\nexport function slice (begin, end) {\n\treturn substr(characters, begin, end)\n}\n\n/**\n * @param {number} type\n * @return {number}\n */\nexport function token (type) {\n\tswitch (type) {\n\t\t// \\0 \\t \\n \\r \\s whitespace token\n\t\tcase 0: case 9: case 10: case 13: case 32:\n\t\t\treturn 5\n\t\t// ! + , / > @ ~ isolate token\n\t\tcase 33: case 43: case 44: case 47: case 62: case 64: case 126:\n\t\t// ; { } breakpoint token\n\t\tcase 59: case 123: case 125:\n\t\t\treturn 4\n\t\t// : accompanied token\n\t\tcase 58:\n\t\t\treturn 3\n\t\t// \" ' ( [ opening delimit token\n\t\tcase 34: case 39: case 40: case 91:\n\t\t\treturn 2\n\t\t// ) ] closing delimit token\n\t\tcase 41: case 93:\n\t\t\treturn 1\n\t}\n\n\treturn 0\n}\n\n/**\n * @param {string} value\n * @return {any[]}\n */\nexport function alloc (value) {\n\treturn line = column = 1, length = strlen(characters = value), position = 0, []\n}\n\n/**\n * @param {any} value\n * @return {any}\n */\nexport function dealloc (value) {\n\treturn characters = '', value\n}\n\n/**\n * @param {number} type\n * @return {string}\n */\nexport function delimit (type) {\n\treturn trim(slice(position - 1, delimiter(type === 91 ? type + 2 : type === 40 ? type + 1 : type)))\n}\n\n/**\n * @param {string} value\n * @return {string[]}\n */\nexport function tokenize (value) {\n\treturn dealloc(tokenizer(alloc(value)))\n}\n\n/**\n * @param {number} type\n * @return {string}\n */\nexport function whitespace (type) {\n\twhile (character = peek())\n\t\tif (character < 33)\n\t\t\tnext()\n\t\telse\n\t\t\tbreak\n\n\treturn token(type) > 2 || token(character) > 3 ? '' : ' '\n}\n\n/**\n * @param {string[]} children\n * @return {string[]}\n */\nexport function tokenizer (children) {\n\twhile (next())\n\t\tswitch (token(character)) {\n\t\t\tcase 0: append(identifier(position - 1), children)\n\t\t\t\tbreak\n\t\t\tcase 2: append(delimit(character), children)\n\t\t\t\tbreak\n\t\t\tdefault: append(from(character), children)\n\t\t}\n\n\treturn children\n}\n\n/**\n * @param {number} index\n * @param {number} count\n * @return {string}\n */\nexport function escaping (index, count) {\n\twhile (--count && next())\n\t\t// not 0-9 A-F a-f\n\t\tif (character < 48 || character > 102 || (character > 57 && character < 65) || (character > 70 && character < 97))\n\t\t\tbreak\n\n\treturn slice(index, caret() + (count < 6 && peek() == 32 && next() == 32))\n}\n\n/**\n * @param {number} type\n * @return {number}\n */\nexport function delimiter (type) {\n\twhile (next())\n\t\tswitch (character) {\n\t\t\t// ] ) \" '\n\t\t\tcase type:\n\t\t\t\treturn position\n\t\t\t// \" '\n\t\t\tcase 34: case 39:\n\t\t\t\tif (type !== 34 && type !== 39)\n\t\t\t\t\tdelimiter(character)\n\t\t\t\tbreak\n\t\t\t// (\n\t\t\tcase 40:\n\t\t\t\tif (type === 41)\n\t\t\t\t\tdelimiter(type)\n\t\t\t\tbreak\n\t\t\t// \\\n\t\t\tcase 92:\n\t\t\t\tnext()\n\t\t\t\tbreak\n\t\t}\n\n\treturn position\n}\n\n/**\n * @param {number} type\n * @param {number} index\n * @return {number}\n */\nexport function commenter (type, index) {\n\twhile (next())\n\t\t// //\n\t\tif (type + character === 47 + 10)\n\t\t\tbreak\n\t\t// /*\n\t\telse if (type + character === 42 + 42 && peek() === 47)\n\t\t\tbreak\n\n\treturn '/*' + slice(index, position - 1) + '*' + from(type === 47 ? type : next())\n}\n\n/**\n * @param {number} index\n * @return {string}\n */\nexport function identifier (index) {\n\twhile (!token(peek()))\n\t\tnext()\n\n\treturn slice(index, position)\n}\n","import {COMMENT, RULESET, DECLARATION} from './Enum.js'\nimport {abs, charat, trim, from, sizeof, strlen, substr, append, replace, indexof} from './Utility.js'\nimport {node, char, prev, next, peek, caret, alloc, dealloc, delimit, whitespace, escaping, identifier, commenter} from './Tokenizer.js'\n\n/**\n * @param {string} value\n * @return {object[]}\n */\nexport function compile (value) {\n\treturn dealloc(parse('', null, null, null, [''], value = alloc(value), 0, [0], value))\n}\n\n/**\n * @param {string} value\n * @param {object} root\n * @param {object?} parent\n * @param {string[]} rule\n * @param {string[]} rules\n * @param {string[]} rulesets\n * @param {number[]} pseudo\n * @param {number[]} points\n * @param {string[]} declarations\n * @return {object}\n */\nexport function parse (value, root, parent, rule, rules, rulesets, pseudo, points, declarations) {\n\tvar index = 0\n\tvar offset = 0\n\tvar length = pseudo\n\tvar atrule = 0\n\tvar property = 0\n\tvar previous = 0\n\tvar variable = 1\n\tvar scanning = 1\n\tvar ampersand = 1\n\tvar character = 0\n\tvar type = ''\n\tvar props = rules\n\tvar children = rulesets\n\tvar reference = rule\n\tvar characters = type\n\n\twhile (scanning)\n\t\tswitch (previous = character, character = next()) {\n\t\t\t// (\n\t\t\tcase 40:\n\t\t\t\tif (previous != 108 && charat(characters, length - 1) == 58) {\n\t\t\t\t\tif (indexof(characters += replace(delimit(character), '&', '&\\f'), '&\\f') != -1)\n\t\t\t\t\t\tampersand = -1\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t// \" ' [\n\t\t\tcase 34: case 39: case 91:\n\t\t\t\tcharacters += delimit(character)\n\t\t\t\tbreak\n\t\t\t// \\t \\n \\r \\s\n\t\t\tcase 9: case 10: case 13: case 32:\n\t\t\t\tcharacters += whitespace(previous)\n\t\t\t\tbreak\n\t\t\t// \\\n\t\t\tcase 92:\n\t\t\t\tcharacters += escaping(caret() - 1, 7)\n\t\t\t\tcontinue\n\t\t\t// /\n\t\t\tcase 47:\n\t\t\t\tswitch (peek()) {\n\t\t\t\t\tcase 42: case 47:\n\t\t\t\t\t\tappend(comment(commenter(next(), caret()), root, parent), declarations)\n\t\t\t\t\t\tbreak\n\t\t\t\t\tdefault:\n\t\t\t\t\t\tcharacters += '/'\n\t\t\t\t}\n\t\t\t\tbreak\n\t\t\t// {\n\t\t\tcase 123 * variable:\n\t\t\t\tpoints[index++] = strlen(characters) * ampersand\n\t\t\t// } ; \\0\n\t\t\tcase 125 * variable: case 59: case 0:\n\t\t\t\tswitch (character) {\n\t\t\t\t\t// \\0 }\n\t\t\t\t\tcase 0: case 125: scanning = 0\n\t\t\t\t\t// ;\n\t\t\t\t\tcase 59 + offset: if (ampersand == -1) characters = replace(characters, /\\f/g, '')\n\t\t\t\t\t\tif (property > 0 && (strlen(characters) - length))\n\t\t\t\t\t\t\tappend(property > 32 ? declaration(characters + ';', rule, parent, length - 1) : declaration(replace(characters, ' ', '') + ';', rule, parent, length - 2), declarations)\n\t\t\t\t\t\tbreak\n\t\t\t\t\t// @ ;\n\t\t\t\t\tcase 59: characters += ';'\n\t\t\t\t\t// { rule/at-rule\n\t\t\t\t\tdefault:\n\t\t\t\t\t\tappend(reference = ruleset(characters, root, parent, index, offset, rules, points, type, props = [], children = [], length), rulesets)\n\n\t\t\t\t\t\tif (character === 123)\n\t\t\t\t\t\t\tif (offset === 0)\n\t\t\t\t\t\t\t\tparse(characters, root, reference, reference, props, rulesets, length, points, children)\n\t\t\t\t\t\t\telse\n\t\t\t\t\t\t\t\tswitch (atrule === 99 && charat(characters, 3) === 110 ? 100 : atrule) {\n\t\t\t\t\t\t\t\t\t// d l m s\n\t\t\t\t\t\t\t\t\tcase 100: case 108: case 109: case 115:\n\t\t\t\t\t\t\t\t\t\tparse(value, reference, reference, rule && append(ruleset(value, reference, reference, 0, 0, rules, points, type, rules, props = [], length), children), rules, children, length, points, rule ? props : children)\n\t\t\t\t\t\t\t\t\t\tbreak\n\t\t\t\t\t\t\t\t\tdefault:\n\t\t\t\t\t\t\t\t\t\tparse(characters, reference, reference, reference, [''], children, 0, points, children)\n\t\t\t\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t\tindex = offset = property = 0, variable = ampersand = 1, type = characters = '', length = pseudo\n\t\t\t\tbreak\n\t\t\t// :\n\t\t\tcase 58:\n\t\t\t\tlength = 1 + strlen(characters), property = previous\n\t\t\tdefault:\n\t\t\t\tif (variable < 1)\n\t\t\t\t\tif (character == 123)\n\t\t\t\t\t\t--variable\n\t\t\t\t\telse if (character == 125 && variable++ == 0 && prev() == 125)\n\t\t\t\t\t\tcontinue\n\n\t\t\t\tswitch (characters += from(character), character * variable) {\n\t\t\t\t\t// &\n\t\t\t\t\tcase 38:\n\t\t\t\t\t\tampersand = offset > 0 ? 1 : (characters += '\\f', -1)\n\t\t\t\t\t\tbreak\n\t\t\t\t\t// ,\n\t\t\t\t\tcase 44:\n\t\t\t\t\t\tpoints[index++] = (strlen(characters) - 1) * ampersand, ampersand = 1\n\t\t\t\t\t\tbreak\n\t\t\t\t\t// @\n\t\t\t\t\tcase 64:\n\t\t\t\t\t\t// -\n\t\t\t\t\t\tif (peek() === 45)\n\t\t\t\t\t\t\tcharacters += delimit(next())\n\n\t\t\t\t\t\tatrule = peek(), offset = length = strlen(type = characters += identifier(caret())), character++\n\t\t\t\t\t\tbreak\n\t\t\t\t\t// -\n\t\t\t\t\tcase 45:\n\t\t\t\t\t\tif (previous === 45 && strlen(characters) == 2)\n\t\t\t\t\t\t\tvariable = 0\n\t\t\t\t}\n\t\t}\n\n\treturn rulesets\n}\n\n/**\n * @param {string} value\n * @param {object} root\n * @param {object?} parent\n * @param {number} index\n * @param {number} offset\n * @param {string[]} rules\n * @param {number[]} points\n * @param {string} type\n * @param {string[]} props\n * @param {string[]} children\n * @param {number} length\n * @return {object}\n */\nexport function ruleset (value, root, parent, index, offset, rules, points, type, props, children, length) {\n\tvar post = offset - 1\n\tvar rule = offset === 0 ? rules : ['']\n\tvar size = sizeof(rule)\n\n\tfor (var i = 0, j = 0, k = 0; i < index; ++i)\n\t\tfor (var x = 0, y = substr(value, post + 1, post = abs(j = points[i])), z = value; x < size; ++x)\n\t\t\tif (z = trim(j > 0 ? rule[x] + ' ' + y : replace(y, /&\\f/g, rule[x])))\n\t\t\t\tprops[k++] = z\n\n\treturn node(value, root, parent, offset === 0 ? RULESET : type, props, children, length)\n}\n\n/**\n * @param {number} value\n * @param {object} root\n * @param {object?} parent\n * @return {object}\n */\nexport function comment (value, root, parent) {\n\treturn node(value, root, parent, COMMENT, from(char()), substr(value, 2, -2), 0)\n}\n\n/**\n * @param {string} value\n * @param {object} root\n * @param {object?} parent\n * @param {number} length\n * @return {object}\n */\nexport function declaration (value, root, parent, length) {\n\treturn node(value, root, parent, DECLARATION, substr(value, 0, length), substr(value, length + 1, -1), length)\n}\n","import {IMPORT, LAYER, COMMENT, RULESET, DECLARATION, KEYFRAMES} from './Enum.js'\nimport {strlen, sizeof} from './Utility.js'\n\n/**\n * @param {object[]} children\n * @param {function} callback\n * @return {string}\n */\nexport function serialize (children, callback) {\n\tvar output = ''\n\tvar length = sizeof(children)\n\n\tfor (var i = 0; i < length; i++)\n\t\toutput += callback(children[i], i, children, callback) || ''\n\n\treturn output\n}\n\n/**\n * @param {object} element\n * @param {number} index\n * @param {object[]} children\n * @param {function} callback\n * @return {string}\n */\nexport function stringify (element, index, children, callback) {\n\tswitch (element.type) {\n\t\tcase LAYER: if (element.children.length) break\n\t\tcase IMPORT: case DECLARATION: return element.return = element.return || element.value\n\t\tcase COMMENT: return ''\n\t\tcase KEYFRAMES: return element.return = element.value + '{' + serialize(element.children, callback) + '}'\n\t\tcase RULESET: element.value = element.props.join(',')\n\t}\n\n\treturn strlen(children = serialize(element.children, callback)) ? element.return = element.value + '{' + children + '}' : ''\n}\n","import {MS, MOZ, WEBKIT, RULESET, KEYFRAMES, DECLARATION} from './Enum.js'\nimport {match, charat, substr, strlen, sizeof, replace, combine} from './Utility.js'\nimport {copy, tokenize} from './Tokenizer.js'\nimport {serialize} from './Serializer.js'\nimport {prefix} from './Prefixer.js'\n\n/**\n * @param {function[]} collection\n * @return {function}\n */\nexport function middleware (collection) {\n\tvar length = sizeof(collection)\n\n\treturn function (element, index, children, callback) {\n\t\tvar output = ''\n\n\t\tfor (var i = 0; i < length; i++)\n\t\t\toutput += collection[i](element, index, children, callback) || ''\n\n\t\treturn output\n\t}\n}\n\n/**\n * @param {function} callback\n * @return {function}\n */\nexport function rulesheet (callback) {\n\treturn function (element) {\n\t\tif (!element.root)\n\t\t\tif (element = element.return)\n\t\t\t\tcallback(element)\n\t}\n}\n\n/**\n * @param {object} element\n * @param {number} index\n * @param {object[]} children\n * @param {function} callback\n */\nexport function prefixer (element, index, children, callback) {\n\tif (element.length > -1)\n\t\tif (!element.return)\n\t\t\tswitch (element.type) {\n\t\t\t\tcase DECLARATION: element.return = prefix(element.value, element.length, children)\n\t\t\t\t\treturn\n\t\t\t\tcase KEYFRAMES:\n\t\t\t\t\treturn serialize([copy(element, {value: replace(element.value, '@', '@' + WEBKIT)})], callback)\n\t\t\t\tcase RULESET:\n\t\t\t\t\tif (element.length)\n\t\t\t\t\t\treturn combine(element.props, function (value) {\n\t\t\t\t\t\t\tswitch (match(value, /(::plac\\w+|:read-\\w+)/)) {\n\t\t\t\t\t\t\t\t// :read-(only|write)\n\t\t\t\t\t\t\t\tcase ':read-only': case ':read-write':\n\t\t\t\t\t\t\t\t\treturn serialize([copy(element, {props: [replace(value, /:(read-\\w+)/, ':' + MOZ + '$1')]})], callback)\n\t\t\t\t\t\t\t\t// :placeholder\n\t\t\t\t\t\t\t\tcase '::placeholder':\n\t\t\t\t\t\t\t\t\treturn serialize([\n\t\t\t\t\t\t\t\t\t\tcopy(element, {props: [replace(value, /:(plac\\w+)/, ':' + WEBKIT + 'input-$1')]}),\n\t\t\t\t\t\t\t\t\t\tcopy(element, {props: [replace(value, /:(plac\\w+)/, ':' + MOZ + '$1')]}),\n\t\t\t\t\t\t\t\t\t\tcopy(element, {props: [replace(value, /:(plac\\w+)/, MS + 'input-$1')]})\n\t\t\t\t\t\t\t\t\t], callback)\n\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\treturn ''\n\t\t\t\t\t\t})\n\t\t\t}\n}\n\n/**\n * @param {object} element\n * @param {number} index\n * @param {object[]} children\n */\nexport function namespace (element) {\n\tswitch (element.type) {\n\t\tcase RULESET:\n\t\t\telement.props = element.props.map(function (value) {\n\t\t\t\treturn combine(tokenize(value), function (value, index, children) {\n\t\t\t\t\tswitch (charat(value, 0)) {\n\t\t\t\t\t\t// \\f\n\t\t\t\t\t\tcase 12:\n\t\t\t\t\t\t\treturn substr(value, 1, strlen(value))\n\t\t\t\t\t\t// \\0 ( + > ~\n\t\t\t\t\t\tcase 0: case 40: case 43: case 62: case 126:\n\t\t\t\t\t\t\treturn value\n\t\t\t\t\t\t// :\n\t\t\t\t\t\tcase 58:\n\t\t\t\t\t\t\tif (children[++index] === 'global')\n\t\t\t\t\t\t\t\tchildren[index] = '', children[++index] = '\\f' + substr(children[index], index = 1, -1)\n\t\t\t\t\t\t// \\s\n\t\t\t\t\t\tcase 32:\n\t\t\t\t\t\t\treturn index === 1 ? '' : value\n\t\t\t\t\t\tdefault:\n\t\t\t\t\t\t\tswitch (index) {\n\t\t\t\t\t\t\t\tcase 0: element = value\n\t\t\t\t\t\t\t\t\treturn sizeof(children) > 1 ? '' : value\n\t\t\t\t\t\t\t\tcase index = sizeof(children) - 1: case 2:\n\t\t\t\t\t\t\t\t\treturn index === 2 ? value + element + element : value + element\n\t\t\t\t\t\t\t\tdefault:\n\t\t\t\t\t\t\t\t\treturn value\n\t\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t})\n\t\t\t})\n\t}\n}\n","function memoize(fn) {\n var cache = Object.create(null);\n return function (arg) {\n if (cache[arg] === undefined) cache[arg] = fn(arg);\n return cache[arg];\n };\n}\n\nexport { memoize as default };\n","import { StyleSheet } from '@emotion/sheet';\nimport { dealloc, alloc, next, token, from, peek, delimit, slice, position, RULESET, combine, match, serialize, copy, replace, WEBKIT, MOZ, MS, KEYFRAMES, DECLARATION, hash, charat, strlen, indexof, stringify, rulesheet, middleware, compile } from 'stylis';\nimport '@emotion/weak-memoize';\nimport '@emotion/memoize';\n\nvar identifierWithPointTracking = function identifierWithPointTracking(begin, points, index) {\n var previous = 0;\n var character = 0;\n\n while (true) {\n previous = character;\n character = peek(); // &\\f\n\n if (previous === 38 && character === 12) {\n points[index] = 1;\n }\n\n if (token(character)) {\n break;\n }\n\n next();\n }\n\n return slice(begin, position);\n};\n\nvar toRules = function toRules(parsed, points) {\n // pretend we've started with a comma\n var index = -1;\n var character = 44;\n\n do {\n switch (token(character)) {\n case 0:\n // &\\f\n if (character === 38 && peek() === 12) {\n // this is not 100% correct, we don't account for literal sequences here - like for example quoted strings\n // stylis inserts \\f after & to know when & where it should replace this sequence with the context selector\n // and when it should just concatenate the outer and inner selectors\n // it's very unlikely for this sequence to actually appear in a different context, so we just leverage this fact here\n points[index] = 1;\n }\n\n parsed[index] += identifierWithPointTracking(position - 1, points, index);\n break;\n\n case 2:\n parsed[index] += delimit(character);\n break;\n\n case 4:\n // comma\n if (character === 44) {\n // colon\n parsed[++index] = peek() === 58 ? '&\\f' : '';\n points[index] = parsed[index].length;\n break;\n }\n\n // fallthrough\n\n default:\n parsed[index] += from(character);\n }\n } while (character = next());\n\n return parsed;\n};\n\nvar getRules = function getRules(value, points) {\n return dealloc(toRules(alloc(value), points));\n}; // WeakSet would be more appropriate, but only WeakMap is supported in IE11\n\n\nvar fixedElements = /* #__PURE__ */new WeakMap();\nvar compat = function compat(element) {\n if (element.type !== 'rule' || !element.parent || // positive .length indicates that this rule contains pseudo\n // negative .length indicates that this rule has been already prefixed\n element.length < 1) {\n return;\n }\n\n var value = element.value;\n var parent = element.parent;\n var isImplicitRule = element.column === parent.column && element.line === parent.line;\n\n while (parent.type !== 'rule') {\n parent = parent.parent;\n if (!parent) return;\n } // short-circuit for the simplest case\n\n\n if (element.props.length === 1 && value.charCodeAt(0) !== 58\n /* colon */\n && !fixedElements.get(parent)) {\n return;\n } // if this is an implicitly inserted rule (the one eagerly inserted at the each new nested level)\n // then the props has already been manipulated beforehand as they that array is shared between it and its \"rule parent\"\n\n\n if (isImplicitRule) {\n return;\n }\n\n fixedElements.set(element, true);\n var points = [];\n var rules = getRules(value, points);\n var parentRules = parent.props;\n\n for (var i = 0, k = 0; i < rules.length; i++) {\n for (var j = 0; j < parentRules.length; j++, k++) {\n element.props[k] = points[i] ? rules[i].replace(/&\\f/g, parentRules[j]) : parentRules[j] + \" \" + rules[i];\n }\n }\n};\nvar removeLabel = function removeLabel(element) {\n if (element.type === 'decl') {\n var value = element.value;\n\n if ( // charcode for l\n value.charCodeAt(0) === 108 && // charcode for b\n value.charCodeAt(2) === 98) {\n // this ignores label\n element[\"return\"] = '';\n element.value = '';\n }\n }\n};\n\n/* eslint-disable no-fallthrough */\n\nfunction prefix(value, length) {\n switch (hash(value, length)) {\n // color-adjust\n case 5103:\n return WEBKIT + 'print-' + value + value;\n // animation, animation-(delay|direction|duration|fill-mode|iteration-count|name|play-state|timing-function)\n\n case 5737:\n case 4201:\n case 3177:\n case 3433:\n case 1641:\n case 4457:\n case 2921: // text-decoration, filter, clip-path, backface-visibility, column, box-decoration-break\n\n case 5572:\n case 6356:\n case 5844:\n case 3191:\n case 6645:\n case 3005: // mask, mask-image, mask-(mode|clip|size), mask-(repeat|origin), mask-position, mask-composite,\n\n case 6391:\n case 5879:\n case 5623:\n case 6135:\n case 4599:\n case 4855: // background-clip, columns, column-(count|fill|gap|rule|rule-color|rule-style|rule-width|span|width)\n\n case 4215:\n case 6389:\n case 5109:\n case 5365:\n case 5621:\n case 3829:\n return WEBKIT + value + value;\n // appearance, user-select, transform, hyphens, text-size-adjust\n\n case 5349:\n case 4246:\n case 4810:\n case 6968:\n case 2756:\n return WEBKIT + value + MOZ + value + MS + value + value;\n // flex, flex-direction\n\n case 6828:\n case 4268:\n return WEBKIT + value + MS + value + value;\n // order\n\n case 6165:\n return WEBKIT + value + MS + 'flex-' + value + value;\n // align-items\n\n case 5187:\n return WEBKIT + value + replace(value, /(\\w+).+(:[^]+)/, WEBKIT + 'box-$1$2' + MS + 'flex-$1$2') + value;\n // align-self\n\n case 5443:\n return WEBKIT + value + MS + 'flex-item-' + replace(value, /flex-|-self/, '') + value;\n // align-content\n\n case 4675:\n return WEBKIT + value + MS + 'flex-line-pack' + replace(value, /align-content|flex-|-self/, '') + value;\n // flex-shrink\n\n case 5548:\n return WEBKIT + value + MS + replace(value, 'shrink', 'negative') + value;\n // flex-basis\n\n case 5292:\n return WEBKIT + value + MS + replace(value, 'basis', 'preferred-size') + value;\n // flex-grow\n\n case 6060:\n return WEBKIT + 'box-' + replace(value, '-grow', '') + WEBKIT + value + MS + replace(value, 'grow', 'positive') + value;\n // transition\n\n case 4554:\n return WEBKIT + replace(value, /([^-])(transform)/g, '$1' + WEBKIT + '$2') + value;\n // cursor\n\n case 6187:\n return replace(replace(replace(value, /(zoom-|grab)/, WEBKIT + '$1'), /(image-set)/, WEBKIT + '$1'), value, '') + value;\n // background, background-image\n\n case 5495:\n case 3959:\n return replace(value, /(image-set\\([^]*)/, WEBKIT + '$1' + '$`$1');\n // justify-content\n\n case 4968:\n return replace(replace(value, /(.+:)(flex-)?(.*)/, WEBKIT + 'box-pack:$3' + MS + 'flex-pack:$3'), /s.+-b[^;]+/, 'justify') + WEBKIT + value + value;\n // (margin|padding)-inline-(start|end)\n\n case 4095:\n case 3583:\n case 4068:\n case 2532:\n return replace(value, /(.+)-inline(.+)/, WEBKIT + '$1$2') + value;\n // (min|max)?(width|height|inline-size|block-size)\n\n case 8116:\n case 7059:\n case 5753:\n case 5535:\n case 5445:\n case 5701:\n case 4933:\n case 4677:\n case 5533:\n case 5789:\n case 5021:\n case 4765:\n // stretch, max-content, min-content, fill-available\n if (strlen(value) - 1 - length > 6) switch (charat(value, length + 1)) {\n // (m)ax-content, (m)in-content\n case 109:\n // -\n if (charat(value, length + 4) !== 45) break;\n // (f)ill-available, (f)it-content\n\n case 102:\n return replace(value, /(.+:)(.+)-([^]+)/, '$1' + WEBKIT + '$2-$3' + '$1' + MOZ + (charat(value, length + 3) == 108 ? '$3' : '$2-$3')) + value;\n // (s)tretch\n\n case 115:\n return ~indexof(value, 'stretch') ? prefix(replace(value, 'stretch', 'fill-available'), length) + value : value;\n }\n break;\n // position: sticky\n\n case 4949:\n // (s)ticky?\n if (charat(value, length + 1) !== 115) break;\n // display: (flex|inline-flex)\n\n case 6444:\n switch (charat(value, strlen(value) - 3 - (~indexof(value, '!important') && 10))) {\n // stic(k)y\n case 107:\n return replace(value, ':', ':' + WEBKIT) + value;\n // (inline-)?fl(e)x\n\n case 101:\n return replace(value, /(.+:)([^;!]+)(;|!.+)?/, '$1' + WEBKIT + (charat(value, 14) === 45 ? 'inline-' : '') + 'box$3' + '$1' + WEBKIT + '$2$3' + '$1' + MS + '$2box$3') + value;\n }\n\n break;\n // writing-mode\n\n case 5936:\n switch (charat(value, length + 11)) {\n // vertical-l(r)\n case 114:\n return WEBKIT + value + MS + replace(value, /[svh]\\w+-[tblr]{2}/, 'tb') + value;\n // vertical-r(l)\n\n case 108:\n return WEBKIT + value + MS + replace(value, /[svh]\\w+-[tblr]{2}/, 'tb-rl') + value;\n // horizontal(-)tb\n\n case 45:\n return WEBKIT + value + MS + replace(value, /[svh]\\w+-[tblr]{2}/, 'lr') + value;\n }\n\n return WEBKIT + value + MS + value + value;\n }\n\n return value;\n}\n\nvar prefixer = function prefixer(element, index, children, callback) {\n if (element.length > -1) if (!element[\"return\"]) switch (element.type) {\n case DECLARATION:\n element[\"return\"] = prefix(element.value, element.length);\n break;\n\n case KEYFRAMES:\n return serialize([copy(element, {\n value: replace(element.value, '@', '@' + WEBKIT)\n })], callback);\n\n case RULESET:\n if (element.length) return combine(element.props, function (value) {\n switch (match(value, /(::plac\\w+|:read-\\w+)/)) {\n // :read-(only|write)\n case ':read-only':\n case ':read-write':\n return serialize([copy(element, {\n props: [replace(value, /:(read-\\w+)/, ':' + MOZ + '$1')]\n })], callback);\n // :placeholder\n\n case '::placeholder':\n return serialize([copy(element, {\n props: [replace(value, /:(plac\\w+)/, ':' + WEBKIT + 'input-$1')]\n }), copy(element, {\n props: [replace(value, /:(plac\\w+)/, ':' + MOZ + '$1')]\n }), copy(element, {\n props: [replace(value, /:(plac\\w+)/, MS + 'input-$1')]\n })], callback);\n }\n\n return '';\n });\n }\n};\n\nvar defaultStylisPlugins = [prefixer];\n\nvar createCache = function createCache(options) {\n var key = options.key;\n\n if (key === 'css') {\n var ssrStyles = document.querySelectorAll(\"style[data-emotion]:not([data-s])\"); // get SSRed styles out of the way of React's hydration\n // document.head is a safe place to move them to(though note document.head is not necessarily the last place they will be)\n // note this very very intentionally targets all style elements regardless of the key to ensure\n // that creating a cache works inside of render of a React component\n\n Array.prototype.forEach.call(ssrStyles, function (node) {\n // we want to only move elements which have a space in the data-emotion attribute value\n // because that indicates that it is an Emotion 11 server-side rendered style elements\n // while we will already ignore Emotion 11 client-side inserted styles because of the :not([data-s]) part in the selector\n // Emotion 10 client-side inserted styles did not have data-s (but importantly did not have a space in their data-emotion attributes)\n // so checking for the space ensures that loading Emotion 11 after Emotion 10 has inserted some styles\n // will not result in the Emotion 10 styles being destroyed\n var dataEmotionAttribute = node.getAttribute('data-emotion');\n\n if (dataEmotionAttribute.indexOf(' ') === -1) {\n return;\n }\n\n document.head.appendChild(node);\n node.setAttribute('data-s', '');\n });\n }\n\n var stylisPlugins = options.stylisPlugins || defaultStylisPlugins;\n\n var inserted = {};\n var container;\n var nodesToHydrate = [];\n\n {\n container = options.container || document.head;\n Array.prototype.forEach.call( // this means we will ignore elements which don't have a space in them which\n // means that the style elements we're looking at are only Emotion 11 server-rendered style elements\n document.querySelectorAll(\"style[data-emotion^=\\\"\" + key + \" \\\"]\"), function (node) {\n var attrib = node.getAttribute(\"data-emotion\").split(' ');\n\n for (var i = 1; i < attrib.length; i++) {\n inserted[attrib[i]] = true;\n }\n\n nodesToHydrate.push(node);\n });\n }\n\n var _insert;\n\n var omnipresentPlugins = [compat, removeLabel];\n\n {\n var currentSheet;\n var finalizingPlugins = [stringify, rulesheet(function (rule) {\n currentSheet.insert(rule);\n })];\n var serializer = middleware(omnipresentPlugins.concat(stylisPlugins, finalizingPlugins));\n\n var stylis = function stylis(styles) {\n return serialize(compile(styles), serializer);\n };\n\n _insert = function insert(selector, serialized, sheet, shouldCache) {\n currentSheet = sheet;\n\n stylis(selector ? selector + \"{\" + serialized.styles + \"}\" : serialized.styles);\n\n if (shouldCache) {\n cache.inserted[serialized.name] = true;\n }\n };\n }\n\n var cache = {\n key: key,\n sheet: new StyleSheet({\n key: key,\n container: container,\n nonce: options.nonce,\n speedy: options.speedy,\n prepend: options.prepend,\n insertionPoint: options.insertionPoint\n }),\n nonce: options.nonce,\n inserted: inserted,\n registered: {},\n insert: _insert\n };\n cache.sheet.hydrate(nodesToHydrate);\n return cache;\n};\n\nexport { createCache as default };\n","/** @license React v16.13.1\n * react-is.production.min.js\n *\n * Copyright (c) Facebook, Inc. and its affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\n'use strict';var b=\"function\"===typeof Symbol&&Symbol.for,c=b?Symbol.for(\"react.element\"):60103,d=b?Symbol.for(\"react.portal\"):60106,e=b?Symbol.for(\"react.fragment\"):60107,f=b?Symbol.for(\"react.strict_mode\"):60108,g=b?Symbol.for(\"react.profiler\"):60114,h=b?Symbol.for(\"react.provider\"):60109,k=b?Symbol.for(\"react.context\"):60110,l=b?Symbol.for(\"react.async_mode\"):60111,m=b?Symbol.for(\"react.concurrent_mode\"):60111,n=b?Symbol.for(\"react.forward_ref\"):60112,p=b?Symbol.for(\"react.suspense\"):60113,q=b?\nSymbol.for(\"react.suspense_list\"):60120,r=b?Symbol.for(\"react.memo\"):60115,t=b?Symbol.for(\"react.lazy\"):60116,v=b?Symbol.for(\"react.block\"):60121,w=b?Symbol.for(\"react.fundamental\"):60117,x=b?Symbol.for(\"react.responder\"):60118,y=b?Symbol.for(\"react.scope\"):60119;\nfunction z(a){if(\"object\"===typeof a&&null!==a){var u=a.$$typeof;switch(u){case c:switch(a=a.type,a){case l:case m:case e:case g:case f:case p:return a;default:switch(a=a&&a.$$typeof,a){case k:case n:case t:case r:case h:return a;default:return u}}case d:return u}}}function A(a){return z(a)===m}exports.AsyncMode=l;exports.ConcurrentMode=m;exports.ContextConsumer=k;exports.ContextProvider=h;exports.Element=c;exports.ForwardRef=n;exports.Fragment=e;exports.Lazy=t;exports.Memo=r;exports.Portal=d;\nexports.Profiler=g;exports.StrictMode=f;exports.Suspense=p;exports.isAsyncMode=function(a){return A(a)||z(a)===l};exports.isConcurrentMode=A;exports.isContextConsumer=function(a){return z(a)===k};exports.isContextProvider=function(a){return z(a)===h};exports.isElement=function(a){return\"object\"===typeof a&&null!==a&&a.$$typeof===c};exports.isForwardRef=function(a){return z(a)===n};exports.isFragment=function(a){return z(a)===e};exports.isLazy=function(a){return z(a)===t};\nexports.isMemo=function(a){return z(a)===r};exports.isPortal=function(a){return z(a)===d};exports.isProfiler=function(a){return z(a)===g};exports.isStrictMode=function(a){return z(a)===f};exports.isSuspense=function(a){return z(a)===p};\nexports.isValidElementType=function(a){return\"string\"===typeof a||\"function\"===typeof a||a===e||a===m||a===g||a===f||a===p||a===q||\"object\"===typeof a&&null!==a&&(a.$$typeof===t||a.$$typeof===r||a.$$typeof===h||a.$$typeof===k||a.$$typeof===n||a.$$typeof===w||a.$$typeof===x||a.$$typeof===y||a.$$typeof===v)};exports.typeOf=z;\n","/** @license React v16.13.1\n * react-is.development.js\n *\n * Copyright (c) Facebook, Inc. and its affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\n'use strict';\n\n\n\nif (process.env.NODE_ENV !== \"production\") {\n (function() {\n'use strict';\n\n// The Symbol used to tag the ReactElement-like types. If there is no native Symbol\n// nor polyfill, then a plain number is used for performance.\nvar hasSymbol = typeof Symbol === 'function' && Symbol.for;\nvar REACT_ELEMENT_TYPE = hasSymbol ? Symbol.for('react.element') : 0xeac7;\nvar REACT_PORTAL_TYPE = hasSymbol ? Symbol.for('react.portal') : 0xeaca;\nvar REACT_FRAGMENT_TYPE = hasSymbol ? Symbol.for('react.fragment') : 0xeacb;\nvar REACT_STRICT_MODE_TYPE = hasSymbol ? Symbol.for('react.strict_mode') : 0xeacc;\nvar REACT_PROFILER_TYPE = hasSymbol ? Symbol.for('react.profiler') : 0xead2;\nvar REACT_PROVIDER_TYPE = hasSymbol ? Symbol.for('react.provider') : 0xeacd;\nvar REACT_CONTEXT_TYPE = hasSymbol ? Symbol.for('react.context') : 0xeace; // TODO: We don't use AsyncMode or ConcurrentMode anymore. They were temporary\n// (unstable) APIs that have been removed. Can we remove the symbols?\n\nvar REACT_ASYNC_MODE_TYPE = hasSymbol ? Symbol.for('react.async_mode') : 0xeacf;\nvar REACT_CONCURRENT_MODE_TYPE = hasSymbol ? Symbol.for('react.concurrent_mode') : 0xeacf;\nvar REACT_FORWARD_REF_TYPE = hasSymbol ? Symbol.for('react.forward_ref') : 0xead0;\nvar REACT_SUSPENSE_TYPE = hasSymbol ? Symbol.for('react.suspense') : 0xead1;\nvar REACT_SUSPENSE_LIST_TYPE = hasSymbol ? Symbol.for('react.suspense_list') : 0xead8;\nvar REACT_MEMO_TYPE = hasSymbol ? Symbol.for('react.memo') : 0xead3;\nvar REACT_LAZY_TYPE = hasSymbol ? Symbol.for('react.lazy') : 0xead4;\nvar REACT_BLOCK_TYPE = hasSymbol ? Symbol.for('react.block') : 0xead9;\nvar REACT_FUNDAMENTAL_TYPE = hasSymbol ? Symbol.for('react.fundamental') : 0xead5;\nvar REACT_RESPONDER_TYPE = hasSymbol ? Symbol.for('react.responder') : 0xead6;\nvar REACT_SCOPE_TYPE = hasSymbol ? Symbol.for('react.scope') : 0xead7;\n\nfunction isValidElementType(type) {\n return typeof type === 'string' || typeof type === 'function' || // Note: its typeof might be other than 'symbol' or 'number' if it's a polyfill.\n type === REACT_FRAGMENT_TYPE || type === REACT_CONCURRENT_MODE_TYPE || type === REACT_PROFILER_TYPE || type === REACT_STRICT_MODE_TYPE || type === REACT_SUSPENSE_TYPE || type === REACT_SUSPENSE_LIST_TYPE || typeof type === 'object' && type !== null && (type.$$typeof === REACT_LAZY_TYPE || type.$$typeof === REACT_MEMO_TYPE || type.$$typeof === REACT_PROVIDER_TYPE || type.$$typeof === REACT_CONTEXT_TYPE || type.$$typeof === REACT_FORWARD_REF_TYPE || type.$$typeof === REACT_FUNDAMENTAL_TYPE || type.$$typeof === REACT_RESPONDER_TYPE || type.$$typeof === REACT_SCOPE_TYPE || type.$$typeof === REACT_BLOCK_TYPE);\n}\n\nfunction typeOf(object) {\n if (typeof object === 'object' && object !== null) {\n var $$typeof = object.$$typeof;\n\n switch ($$typeof) {\n case REACT_ELEMENT_TYPE:\n var type = object.type;\n\n switch (type) {\n case REACT_ASYNC_MODE_TYPE:\n case REACT_CONCURRENT_MODE_TYPE:\n case REACT_FRAGMENT_TYPE:\n case REACT_PROFILER_TYPE:\n case REACT_STRICT_MODE_TYPE:\n case REACT_SUSPENSE_TYPE:\n return type;\n\n default:\n var $$typeofType = type && type.$$typeof;\n\n switch ($$typeofType) {\n case REACT_CONTEXT_TYPE:\n case REACT_FORWARD_REF_TYPE:\n case REACT_LAZY_TYPE:\n case REACT_MEMO_TYPE:\n case REACT_PROVIDER_TYPE:\n return $$typeofType;\n\n default:\n return $$typeof;\n }\n\n }\n\n case REACT_PORTAL_TYPE:\n return $$typeof;\n }\n }\n\n return undefined;\n} // AsyncMode is deprecated along with isAsyncMode\n\nvar AsyncMode = REACT_ASYNC_MODE_TYPE;\nvar ConcurrentMode = REACT_CONCURRENT_MODE_TYPE;\nvar ContextConsumer = REACT_CONTEXT_TYPE;\nvar ContextProvider = REACT_PROVIDER_TYPE;\nvar Element = REACT_ELEMENT_TYPE;\nvar ForwardRef = REACT_FORWARD_REF_TYPE;\nvar Fragment = REACT_FRAGMENT_TYPE;\nvar Lazy = REACT_LAZY_TYPE;\nvar Memo = REACT_MEMO_TYPE;\nvar Portal = REACT_PORTAL_TYPE;\nvar Profiler = REACT_PROFILER_TYPE;\nvar StrictMode = REACT_STRICT_MODE_TYPE;\nvar Suspense = REACT_SUSPENSE_TYPE;\nvar hasWarnedAboutDeprecatedIsAsyncMode = false; // AsyncMode should be deprecated\n\nfunction isAsyncMode(object) {\n {\n if (!hasWarnedAboutDeprecatedIsAsyncMode) {\n hasWarnedAboutDeprecatedIsAsyncMode = true; // Using console['warn'] to evade Babel and ESLint\n\n console['warn']('The ReactIs.isAsyncMode() alias has been deprecated, ' + 'and will be removed in React 17+. Update your code to use ' + 'ReactIs.isConcurrentMode() instead. It has the exact same API.');\n }\n }\n\n return isConcurrentMode(object) || typeOf(object) === REACT_ASYNC_MODE_TYPE;\n}\nfunction isConcurrentMode(object) {\n return typeOf(object) === REACT_CONCURRENT_MODE_TYPE;\n}\nfunction isContextConsumer(object) {\n return typeOf(object) === REACT_CONTEXT_TYPE;\n}\nfunction isContextProvider(object) {\n return typeOf(object) === REACT_PROVIDER_TYPE;\n}\nfunction isElement(object) {\n return typeof object === 'object' && object !== null && object.$$typeof === REACT_ELEMENT_TYPE;\n}\nfunction isForwardRef(object) {\n return typeOf(object) === REACT_FORWARD_REF_TYPE;\n}\nfunction isFragment(object) {\n return typeOf(object) === REACT_FRAGMENT_TYPE;\n}\nfunction isLazy(object) {\n return typeOf(object) === REACT_LAZY_TYPE;\n}\nfunction isMemo(object) {\n return typeOf(object) === REACT_MEMO_TYPE;\n}\nfunction isPortal(object) {\n return typeOf(object) === REACT_PORTAL_TYPE;\n}\nfunction isProfiler(object) {\n return typeOf(object) === REACT_PROFILER_TYPE;\n}\nfunction isStrictMode(object) {\n return typeOf(object) === REACT_STRICT_MODE_TYPE;\n}\nfunction isSuspense(object) {\n return typeOf(object) === REACT_SUSPENSE_TYPE;\n}\n\nexports.AsyncMode = AsyncMode;\nexports.ConcurrentMode = ConcurrentMode;\nexports.ContextConsumer = ContextConsumer;\nexports.ContextProvider = ContextProvider;\nexports.Element = Element;\nexports.ForwardRef = ForwardRef;\nexports.Fragment = Fragment;\nexports.Lazy = Lazy;\nexports.Memo = Memo;\nexports.Portal = Portal;\nexports.Profiler = Profiler;\nexports.StrictMode = StrictMode;\nexports.Suspense = Suspense;\nexports.isAsyncMode = isAsyncMode;\nexports.isConcurrentMode = isConcurrentMode;\nexports.isContextConsumer = isContextConsumer;\nexports.isContextProvider = isContextProvider;\nexports.isElement = isElement;\nexports.isForwardRef = isForwardRef;\nexports.isFragment = isFragment;\nexports.isLazy = isLazy;\nexports.isMemo = isMemo;\nexports.isPortal = isPortal;\nexports.isProfiler = isProfiler;\nexports.isStrictMode = isStrictMode;\nexports.isSuspense = isSuspense;\nexports.isValidElementType = isValidElementType;\nexports.typeOf = typeOf;\n })();\n}\n","'use strict';\n\nif (process.env.NODE_ENV === 'production') {\n module.exports = require('./cjs/react-is.production.min.js');\n} else {\n module.exports = require('./cjs/react-is.development.js');\n}\n","'use strict';\n\nvar reactIs = require('react-is');\n\n/**\n * Copyright 2015, Yahoo! Inc.\n * Copyrights licensed under the New BSD License. See the accompanying LICENSE file for terms.\n */\nvar REACT_STATICS = {\n childContextTypes: true,\n contextType: true,\n contextTypes: true,\n defaultProps: true,\n displayName: true,\n getDefaultProps: true,\n getDerivedStateFromError: true,\n getDerivedStateFromProps: true,\n mixins: true,\n propTypes: true,\n type: true\n};\nvar KNOWN_STATICS = {\n name: true,\n length: true,\n prototype: true,\n caller: true,\n callee: true,\n arguments: true,\n arity: true\n};\nvar FORWARD_REF_STATICS = {\n '$$typeof': true,\n render: true,\n defaultProps: true,\n displayName: true,\n propTypes: true\n};\nvar MEMO_STATICS = {\n '$$typeof': true,\n compare: true,\n defaultProps: true,\n displayName: true,\n propTypes: true,\n type: true\n};\nvar TYPE_STATICS = {};\nTYPE_STATICS[reactIs.ForwardRef] = FORWARD_REF_STATICS;\nTYPE_STATICS[reactIs.Memo] = MEMO_STATICS;\n\nfunction getStatics(component) {\n // React v16.11 and below\n if (reactIs.isMemo(component)) {\n return MEMO_STATICS;\n } // React v16.12 and above\n\n\n return TYPE_STATICS[component['$$typeof']] || REACT_STATICS;\n}\n\nvar defineProperty = Object.defineProperty;\nvar getOwnPropertyNames = Object.getOwnPropertyNames;\nvar getOwnPropertySymbols = Object.getOwnPropertySymbols;\nvar getOwnPropertyDescriptor = Object.getOwnPropertyDescriptor;\nvar getPrototypeOf = Object.getPrototypeOf;\nvar objectPrototype = Object.prototype;\nfunction hoistNonReactStatics(targetComponent, sourceComponent, blacklist) {\n if (typeof sourceComponent !== 'string') {\n // don't hoist over string (html) components\n if (objectPrototype) {\n var inheritedComponent = getPrototypeOf(sourceComponent);\n\n if (inheritedComponent && inheritedComponent !== objectPrototype) {\n hoistNonReactStatics(targetComponent, inheritedComponent, blacklist);\n }\n }\n\n var keys = getOwnPropertyNames(sourceComponent);\n\n if (getOwnPropertySymbols) {\n keys = keys.concat(getOwnPropertySymbols(sourceComponent));\n }\n\n var targetStatics = getStatics(targetComponent);\n var sourceStatics = getStatics(sourceComponent);\n\n for (var i = 0; i < keys.length; ++i) {\n var key = keys[i];\n\n if (!KNOWN_STATICS[key] && !(blacklist && blacklist[key]) && !(sourceStatics && sourceStatics[key]) && !(targetStatics && targetStatics[key])) {\n var descriptor = getOwnPropertyDescriptor(sourceComponent, key);\n\n try {\n // Avoid failures from read-only properties\n defineProperty(targetComponent, key, descriptor);\n } catch (e) {}\n }\n }\n }\n\n return targetComponent;\n}\n\nmodule.exports = hoistNonReactStatics;\n","var isBrowser = true;\n\nfunction getRegisteredStyles(registered, registeredStyles, classNames) {\n var rawClassName = '';\n classNames.split(' ').forEach(function (className) {\n if (registered[className] !== undefined) {\n registeredStyles.push(registered[className] + \";\");\n } else if (className) {\n rawClassName += className + \" \";\n }\n });\n return rawClassName;\n}\nvar registerStyles = function registerStyles(cache, serialized, isStringTag) {\n var className = cache.key + \"-\" + serialized.name;\n\n if ( // we only need to add the styles to the registered cache if the\n // class name could be used further down\n // the tree but if it's a string tag, we know it won't\n // so we don't have to add it to registered cache.\n // this improves memory usage since we can avoid storing the whole style string\n (isStringTag === false || // we need to always store it if we're in compat mode and\n // in node since emotion-server relies on whether a style is in\n // the registered cache to know whether a style is global or not\n // also, note that this check will be dead code eliminated in the browser\n isBrowser === false ) && cache.registered[className] === undefined) {\n cache.registered[className] = serialized.styles;\n }\n};\nvar insertStyles = function insertStyles(cache, serialized, isStringTag) {\n registerStyles(cache, serialized, isStringTag);\n var className = cache.key + \"-\" + serialized.name;\n\n if (cache.inserted[serialized.name] === undefined) {\n var current = serialized;\n\n do {\n cache.insert(serialized === current ? \".\" + className : '', current, cache.sheet, true);\n\n current = current.next;\n } while (current !== undefined);\n }\n};\n\nexport { getRegisteredStyles, insertStyles, registerStyles };\n","/* eslint-disable */\n// Inspired by https://github.com/garycourt/murmurhash-js\n// Ported from https://github.com/aappleby/smhasher/blob/61a0530f28277f2e850bfc39600ce61d02b518de/src/MurmurHash2.cpp#L37-L86\nfunction murmur2(str) {\n // 'm' and 'r' are mixing constants generated offline.\n // They're not really 'magic', they just happen to work well.\n // const m = 0x5bd1e995;\n // const r = 24;\n // Initialize the hash\n var h = 0; // Mix 4 bytes at a time into the hash\n\n var k,\n i = 0,\n len = str.length;\n\n for (; len >= 4; ++i, len -= 4) {\n k = str.charCodeAt(i) & 0xff | (str.charCodeAt(++i) & 0xff) << 8 | (str.charCodeAt(++i) & 0xff) << 16 | (str.charCodeAt(++i) & 0xff) << 24;\n k =\n /* Math.imul(k, m): */\n (k & 0xffff) * 0x5bd1e995 + ((k >>> 16) * 0xe995 << 16);\n k ^=\n /* k >>> r: */\n k >>> 24;\n h =\n /* Math.imul(k, m): */\n (k & 0xffff) * 0x5bd1e995 + ((k >>> 16) * 0xe995 << 16) ^\n /* Math.imul(h, m): */\n (h & 0xffff) * 0x5bd1e995 + ((h >>> 16) * 0xe995 << 16);\n } // Handle the last few bytes of the input array\n\n\n switch (len) {\n case 3:\n h ^= (str.charCodeAt(i + 2) & 0xff) << 16;\n\n case 2:\n h ^= (str.charCodeAt(i + 1) & 0xff) << 8;\n\n case 1:\n h ^= str.charCodeAt(i) & 0xff;\n h =\n /* Math.imul(h, m): */\n (h & 0xffff) * 0x5bd1e995 + ((h >>> 16) * 0xe995 << 16);\n } // Do a few final mixes of the hash to ensure the last few\n // bytes are well-incorporated.\n\n\n h ^= h >>> 13;\n h =\n /* Math.imul(h, m): */\n (h & 0xffff) * 0x5bd1e995 + ((h >>> 16) * 0xe995 << 16);\n return ((h ^ h >>> 15) >>> 0).toString(36);\n}\n\nexport { murmur2 as default };\n","var unitlessKeys = {\n animationIterationCount: 1,\n aspectRatio: 1,\n borderImageOutset: 1,\n borderImageSlice: 1,\n borderImageWidth: 1,\n boxFlex: 1,\n boxFlexGroup: 1,\n boxOrdinalGroup: 1,\n columnCount: 1,\n columns: 1,\n flex: 1,\n flexGrow: 1,\n flexPositive: 1,\n flexShrink: 1,\n flexNegative: 1,\n flexOrder: 1,\n gridRow: 1,\n gridRowEnd: 1,\n gridRowSpan: 1,\n gridRowStart: 1,\n gridColumn: 1,\n gridColumnEnd: 1,\n gridColumnSpan: 1,\n gridColumnStart: 1,\n msGridRow: 1,\n msGridRowSpan: 1,\n msGridColumn: 1,\n msGridColumnSpan: 1,\n fontWeight: 1,\n lineHeight: 1,\n opacity: 1,\n order: 1,\n orphans: 1,\n scale: 1,\n tabSize: 1,\n widows: 1,\n zIndex: 1,\n zoom: 1,\n WebkitLineClamp: 1,\n // SVG-related properties\n fillOpacity: 1,\n floodOpacity: 1,\n stopOpacity: 1,\n strokeDasharray: 1,\n strokeDashoffset: 1,\n strokeMiterlimit: 1,\n strokeOpacity: 1,\n strokeWidth: 1\n};\n\nexport { unitlessKeys as default };\n","import hashString from '@emotion/hash';\nimport unitless from '@emotion/unitless';\nimport memoize from '@emotion/memoize';\n\nvar isDevelopment = false;\n\nvar hyphenateRegex = /[A-Z]|^ms/g;\nvar animationRegex = /_EMO_([^_]+?)_([^]*?)_EMO_/g;\n\nvar isCustomProperty = function isCustomProperty(property) {\n return property.charCodeAt(1) === 45;\n};\n\nvar isProcessableValue = function isProcessableValue(value) {\n return value != null && typeof value !== 'boolean';\n};\n\nvar processStyleName = /* #__PURE__ */memoize(function (styleName) {\n return isCustomProperty(styleName) ? styleName : styleName.replace(hyphenateRegex, '-$&').toLowerCase();\n});\n\nvar processStyleValue = function processStyleValue(key, value) {\n switch (key) {\n case 'animation':\n case 'animationName':\n {\n if (typeof value === 'string') {\n return value.replace(animationRegex, function (match, p1, p2) {\n cursor = {\n name: p1,\n styles: p2,\n next: cursor\n };\n return p1;\n });\n }\n }\n }\n\n if (unitless[key] !== 1 && !isCustomProperty(key) && typeof value === 'number' && value !== 0) {\n return value + 'px';\n }\n\n return value;\n};\n\nvar noComponentSelectorMessage = 'Component selectors can only be used in conjunction with ' + '@emotion/babel-plugin, the swc Emotion plugin, or another Emotion-aware ' + 'compiler transform.';\n\nfunction handleInterpolation(mergedProps, registered, interpolation) {\n if (interpolation == null) {\n return '';\n }\n\n var componentSelector = interpolation;\n\n if (componentSelector.__emotion_styles !== undefined) {\n\n return componentSelector;\n }\n\n switch (typeof interpolation) {\n case 'boolean':\n {\n return '';\n }\n\n case 'object':\n {\n var keyframes = interpolation;\n\n if (keyframes.anim === 1) {\n cursor = {\n name: keyframes.name,\n styles: keyframes.styles,\n next: cursor\n };\n return keyframes.name;\n }\n\n var serializedStyles = interpolation;\n\n if (serializedStyles.styles !== undefined) {\n var next = serializedStyles.next;\n\n if (next !== undefined) {\n // not the most efficient thing ever but this is a pretty rare case\n // and there will be very few iterations of this generally\n while (next !== undefined) {\n cursor = {\n name: next.name,\n styles: next.styles,\n next: cursor\n };\n next = next.next;\n }\n }\n\n var styles = serializedStyles.styles + \";\";\n return styles;\n }\n\n return createStringFromObject(mergedProps, registered, interpolation);\n }\n\n case 'function':\n {\n if (mergedProps !== undefined) {\n var previousCursor = cursor;\n var result = interpolation(mergedProps);\n cursor = previousCursor;\n return handleInterpolation(mergedProps, registered, result);\n }\n\n break;\n }\n } // finalize string values (regular strings and functions interpolated into css calls)\n\n\n var asString = interpolation;\n\n if (registered == null) {\n return asString;\n }\n\n var cached = registered[asString];\n return cached !== undefined ? cached : asString;\n}\n\nfunction createStringFromObject(mergedProps, registered, obj) {\n var string = '';\n\n if (Array.isArray(obj)) {\n for (var i = 0; i < obj.length; i++) {\n string += handleInterpolation(mergedProps, registered, obj[i]) + \";\";\n }\n } else {\n for (var key in obj) {\n var value = obj[key];\n\n if (typeof value !== 'object') {\n var asString = value;\n\n if (registered != null && registered[asString] !== undefined) {\n string += key + \"{\" + registered[asString] + \"}\";\n } else if (isProcessableValue(asString)) {\n string += processStyleName(key) + \":\" + processStyleValue(key, asString) + \";\";\n }\n } else {\n if (key === 'NO_COMPONENT_SELECTOR' && isDevelopment) {\n throw new Error(noComponentSelectorMessage);\n }\n\n if (Array.isArray(value) && typeof value[0] === 'string' && (registered == null || registered[value[0]] === undefined)) {\n for (var _i = 0; _i < value.length; _i++) {\n if (isProcessableValue(value[_i])) {\n string += processStyleName(key) + \":\" + processStyleValue(key, value[_i]) + \";\";\n }\n }\n } else {\n var interpolated = handleInterpolation(mergedProps, registered, value);\n\n switch (key) {\n case 'animation':\n case 'animationName':\n {\n string += processStyleName(key) + \":\" + interpolated + \";\";\n break;\n }\n\n default:\n {\n\n string += key + \"{\" + interpolated + \"}\";\n }\n }\n }\n }\n }\n }\n\n return string;\n}\n\nvar labelPattern = /label:\\s*([^\\s;{]+)\\s*(;|$)/g; // this is the cursor for keyframes\n// keyframes are stored on the SerializedStyles object as a linked list\n\nvar cursor;\nfunction serializeStyles(args, registered, mergedProps) {\n if (args.length === 1 && typeof args[0] === 'object' && args[0] !== null && args[0].styles !== undefined) {\n return args[0];\n }\n\n var stringMode = true;\n var styles = '';\n cursor = undefined;\n var strings = args[0];\n\n if (strings == null || strings.raw === undefined) {\n stringMode = false;\n styles += handleInterpolation(mergedProps, registered, strings);\n } else {\n var asTemplateStringsArr = strings;\n\n styles += asTemplateStringsArr[0];\n } // we start at 1 since we've already handled the first arg\n\n\n for (var i = 1; i < args.length; i++) {\n styles += handleInterpolation(mergedProps, registered, args[i]);\n\n if (stringMode) {\n var templateStringsArr = strings;\n\n styles += templateStringsArr[i];\n }\n } // using a global regex with .exec is stateful so lastIndex has to be reset each time\n\n\n labelPattern.lastIndex = 0;\n var identifierName = '';\n var match; // https://esbench.com/bench/5b809c2cf2949800a0f61fb5\n\n while ((match = labelPattern.exec(styles)) !== null) {\n identifierName += '-' + match[1];\n }\n\n var name = hashString(styles) + identifierName;\n\n return {\n name: name,\n styles: styles,\n next: cursor\n };\n}\n\nexport { serializeStyles };\n","import * as React from 'react';\n\nvar syncFallback = function syncFallback(create) {\n return create();\n};\n\nvar useInsertionEffect = React['useInsertion' + 'Effect'] ? React['useInsertion' + 'Effect'] : false;\nvar useInsertionEffectAlwaysWithSyncFallback = useInsertionEffect || syncFallback;\nvar useInsertionEffectWithLayoutFallback = useInsertionEffect || React.useLayoutEffect;\n\nexport { useInsertionEffectAlwaysWithSyncFallback, useInsertionEffectWithLayoutFallback };\n","import * as React from 'react';\nimport { useContext, forwardRef } from 'react';\nimport createCache from '@emotion/cache';\nimport _extends from '@babel/runtime/helpers/esm/extends';\nimport weakMemoize from '@emotion/weak-memoize';\nimport hoistNonReactStatics from '../_isolated-hnrs/dist/emotion-react-_isolated-hnrs.browser.esm.js';\nimport { getRegisteredStyles, registerStyles, insertStyles } from '@emotion/utils';\nimport { serializeStyles } from '@emotion/serialize';\nimport { useInsertionEffectAlwaysWithSyncFallback } from '@emotion/use-insertion-effect-with-fallbacks';\n\nvar isDevelopment = false;\n\nvar EmotionCacheContext = /* #__PURE__ */React.createContext( // we're doing this to avoid preconstruct's dead code elimination in this one case\n// because this module is primarily intended for the browser and node\n// but it's also required in react native and similar environments sometimes\n// and we could have a special build just for that\n// but this is much easier and the native packages\n// might use a different theme context in the future anyway\ntypeof HTMLElement !== 'undefined' ? /* #__PURE__ */createCache({\n key: 'css'\n}) : null);\n\nvar CacheProvider = EmotionCacheContext.Provider;\nvar __unsafe_useEmotionCache = function useEmotionCache() {\n return useContext(EmotionCacheContext);\n};\n\nvar withEmotionCache = function withEmotionCache(func) {\n return /*#__PURE__*/forwardRef(function (props, ref) {\n // the cache will never be null in the browser\n var cache = useContext(EmotionCacheContext);\n return func(props, cache, ref);\n });\n};\n\nvar ThemeContext = /* #__PURE__ */React.createContext({});\n\nvar useTheme = function useTheme() {\n return React.useContext(ThemeContext);\n};\n\nvar getTheme = function getTheme(outerTheme, theme) {\n if (typeof theme === 'function') {\n var mergedTheme = theme(outerTheme);\n\n return mergedTheme;\n }\n\n return _extends({}, outerTheme, theme);\n};\n\nvar createCacheWithTheme = /* #__PURE__ */weakMemoize(function (outerTheme) {\n return weakMemoize(function (theme) {\n return getTheme(outerTheme, theme);\n });\n});\nvar ThemeProvider = function ThemeProvider(props) {\n var theme = React.useContext(ThemeContext);\n\n if (props.theme !== theme) {\n theme = createCacheWithTheme(theme)(props.theme);\n }\n\n return /*#__PURE__*/React.createElement(ThemeContext.Provider, {\n value: theme\n }, props.children);\n};\nfunction withTheme(Component) {\n var componentName = Component.displayName || Component.name || 'Component';\n var WithTheme = /*#__PURE__*/React.forwardRef(function render(props, ref) {\n var theme = React.useContext(ThemeContext);\n return /*#__PURE__*/React.createElement(Component, _extends({\n theme: theme,\n ref: ref\n }, props));\n });\n WithTheme.displayName = \"WithTheme(\" + componentName + \")\";\n return hoistNonReactStatics(WithTheme, Component);\n}\n\nvar hasOwn = {}.hasOwnProperty;\n\nvar typePropName = '__EMOTION_TYPE_PLEASE_DO_NOT_USE__';\nvar createEmotionProps = function createEmotionProps(type, props) {\n\n var newProps = {};\n\n for (var _key in props) {\n if (hasOwn.call(props, _key)) {\n newProps[_key] = props[_key];\n }\n }\n\n newProps[typePropName] = type; // Runtime labeling is an opt-in feature because:\n\n return newProps;\n};\n\nvar Insertion = function Insertion(_ref) {\n var cache = _ref.cache,\n serialized = _ref.serialized,\n isStringTag = _ref.isStringTag;\n registerStyles(cache, serialized, isStringTag);\n useInsertionEffectAlwaysWithSyncFallback(function () {\n return insertStyles(cache, serialized, isStringTag);\n });\n\n return null;\n};\n\nvar Emotion = /* #__PURE__ */withEmotionCache(function (props, cache, ref) {\n var cssProp = props.css; // so that using `css` from `emotion` and passing the result to the css prop works\n // not passing the registered cache to serializeStyles because it would\n // make certain babel optimisations not possible\n\n if (typeof cssProp === 'string' && cache.registered[cssProp] !== undefined) {\n cssProp = cache.registered[cssProp];\n }\n\n var WrappedComponent = props[typePropName];\n var registeredStyles = [cssProp];\n var className = '';\n\n if (typeof props.className === 'string') {\n className = getRegisteredStyles(cache.registered, registeredStyles, props.className);\n } else if (props.className != null) {\n className = props.className + \" \";\n }\n\n var serialized = serializeStyles(registeredStyles, undefined, React.useContext(ThemeContext));\n\n className += cache.key + \"-\" + serialized.name;\n var newProps = {};\n\n for (var _key2 in props) {\n if (hasOwn.call(props, _key2) && _key2 !== 'css' && _key2 !== typePropName && (!isDevelopment )) {\n newProps[_key2] = props[_key2];\n }\n }\n\n newProps.className = className;\n\n if (ref) {\n newProps.ref = ref;\n }\n\n return /*#__PURE__*/React.createElement(React.Fragment, null, /*#__PURE__*/React.createElement(Insertion, {\n cache: cache,\n serialized: serialized,\n isStringTag: typeof WrappedComponent === 'string'\n }), /*#__PURE__*/React.createElement(WrappedComponent, newProps));\n});\n\nvar Emotion$1 = Emotion;\n\nexport { CacheProvider as C, Emotion$1 as E, ThemeContext as T, __unsafe_useEmotionCache as _, ThemeProvider as a, withTheme as b, createEmotionProps as c, hasOwn as h, isDevelopment as i, useTheme as u, withEmotionCache as w };\n","import * as ReactJSXRuntime from 'react/jsx-runtime';\nimport { h as hasOwn, E as Emotion, c as createEmotionProps } from '../../dist/emotion-element-f0de968e.browser.esm.js';\nimport 'react';\nimport '@emotion/cache';\nimport '@babel/runtime/helpers/extends';\nimport '@emotion/weak-memoize';\nimport '../../_isolated-hnrs/dist/emotion-react-_isolated-hnrs.browser.esm.js';\nimport 'hoist-non-react-statics';\nimport '@emotion/utils';\nimport '@emotion/serialize';\nimport '@emotion/use-insertion-effect-with-fallbacks';\n\nvar Fragment = ReactJSXRuntime.Fragment;\nvar jsx = function jsx(type, props, key) {\n if (!hasOwn.call(props, 'css')) {\n return ReactJSXRuntime.jsx(type, props, key);\n }\n\n return ReactJSXRuntime.jsx(Emotion, createEmotionProps(type, props), key);\n};\nvar jsxs = function jsxs(type, props, key) {\n if (!hasOwn.call(props, 'css')) {\n return ReactJSXRuntime.jsxs(type, props, key);\n }\n\n return ReactJSXRuntime.jsxs(Emotion, createEmotionProps(type, props), key);\n};\n\nexport { Fragment, jsx, jsxs };\n","/**\n * @license React\n * react-compiler-runtime.production.js\n *\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\n\"use strict\";\nvar ReactSharedInternals =\n require(\"react\").__CLIENT_INTERNALS_DO_NOT_USE_OR_WARN_USERS_THEY_CANNOT_UPGRADE;\nexports.c = function (size) {\n return ReactSharedInternals.H.useMemoCache(size);\n};\n","/**\n * @license React\n * react-compiler-runtime.development.js\n *\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\n\"use strict\";\n\"production\" !== process.env.NODE_ENV &&\n (function () {\n var ReactSharedInternals =\n require(\"react\").__CLIENT_INTERNALS_DO_NOT_USE_OR_WARN_USERS_THEY_CANNOT_UPGRADE;\n exports.c = function (size) {\n var dispatcher = ReactSharedInternals.H;\n null === dispatcher &&\n console.error(\n \"Invalid hook call. Hooks can only be called inside of the body of a function component. This could happen for one of the following reasons:\\n1. You might have mismatching versions of React and the renderer (such as React DOM)\\n2. You might be breaking the Rules of Hooks\\n3. You might have more than one copy of React in the same app\\nSee https://react.dev/link/invalid-hook-call for tips about how to debug and fix this problem.\"\n );\n return dispatcher.useMemoCache(size);\n };\n })();\n","/**\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\n'use strict';\n\nif (process.env.NODE_ENV === 'production') {\n module.exports = require('./cjs/react-compiler-runtime.production.js');\n} else {\n module.exports = require('./cjs/react-compiler-runtime.development.js');\n}\n","/**\n * Checkbox 组件样式\n * 基于 Emotion + Theme Token\n */\n\nimport { css } from '@emotion/react';\nimport type { Theme } from '@kingsoft-ai/theme';\n\n// Checkbox 容器样式\nexport const checkboxContainer = css`\n display: inline-flex;\n align-items: center;\n cursor: pointer;\n user-select: none;\n position: relative;\n \n input[type=\"checkbox\"] {\n position: absolute;\n opacity: 0;\n width: 1px;\n height: 1px;\n margin: 0;\n padding: 0;\n border: 0;\n clip: rect(0 0 0 0);\n clip-path: inset(50%);\n white-space: nowrap;\n overflow: hidden;\n left: -9999px;\n -webkit-appearance: none;\n appearance: none;\n }\n \n &[data-disabled=\"true\"] {\n cursor: not-allowed;\n }\n`;\n\n// Checkbox 控件样式(实际的复选框)\nexport const checkboxControl = (theme: Theme) => css`\n position: relative;\n display: inline-flex;\n align-items: center;\n justify-content: center;\n flex-shrink: 0;\n width: ${theme.components.checkbox.control.size};\n height: ${theme.components.checkbox.control.size};\n border-radius: ${theme.components.checkbox.control.borderRadius};\n border: ${theme.components.checkbox.control.borderWidth} solid ${theme.components.checkbox.control.borderColor.default};\n background-color: ${theme.components.checkbox.control.background.default};\n transition: all ${theme.components.checkbox.transition};\n \n /* Hover 状态 */\n &[data-hover=\"true\"]:not([data-disabled=\"true\"]) {\n border-color: ${theme.components.checkbox.control.borderColor.hover};\n }\n \n /* Checked 状态 */\n &[data-checked=\"true\"]:not([data-disabled=\"true\"]) {\n background-color: ${theme.components.checkbox.control.background.checked};\n border-color: ${theme.components.checkbox.control.borderColor.checked};\n }\n \n /* Indeterminate 状态(半选) */\n &[data-indeterminate=\"true\"]:not([data-disabled=\"true\"]) {\n background-color: ${theme.components.checkbox.control.background.checked};\n border-color: ${theme.components.checkbox.control.borderColor.checked};\n }\n \n /* Disabled 未选中状态 */\n &[data-disabled=\"true\"]:not([data-checked=\"true\"]):not([data-indeterminate=\"true\"]) {\n background-color: ${theme.components.checkbox.control.background.disabled};\n border-color: ${theme.components.checkbox.control.borderColor.disabled};\n }\n \n /* Disabled 选中状态 */\n &[data-disabled=\"true\"][data-checked=\"true\"],\n &[data-disabled=\"true\"][data-indeterminate=\"true\"] {\n background-color: ${theme.components.checkbox.control.background.disabledChecked};\n border-color: ${theme.components.checkbox.control.borderColor.disabledChecked};\n }\n \n /* Focus 状态 */\n input:focus-visible + & {\n box-shadow: ${theme.components.checkbox.focusRing};\n }\n`;\n\n// Checkbox 图标样式\nexport const checkboxIcon = (theme: Theme) => css`\n color: ${theme.components.checkbox.control.icon.color};\n width: ${theme.components.checkbox.control.icon.size};\n height: ${theme.components.checkbox.control.icon.size};\n opacity: 0;\n transform: scale(0.8);\n transition: all ${theme.components.checkbox.transition};\n \n &[data-checked=\"true\"] {\n opacity: 1;\n transform: scale(1);\n }\n`;\n\n// Checkbox 标签文字样式\nexport const checkboxLabel = (theme: Theme) => css`\n margin-left: ${theme.components.checkbox.gap};\n font-size: ${theme.components.checkbox.text.label.fontSize};\n line-height: ${theme.components.checkbox.text.label.lineHeight};\n font-weight: ${theme.components.checkbox.text.label.fontWeight};\n color: ${theme.components.checkbox.text.label.color};\n transition: color ${theme.components.checkbox.transition};\n \n &[data-disabled=\"true\"] {\n color: ${theme.components.checkbox.text.label.disabled};\n }\n`;\n\n","/**\n * Checkbox 组件\n * 基于 Figma 设计稿 1:1 还原\n */\n\n/** @jsxImportSource @emotion/react */\nimport React, { forwardRef, useEffect, useRef, useState } from 'react';\nimport { useTheme } from '@emotion/react';\nimport type { Theme } from '@kingsoft-ai/theme';\nimport {\n checkboxContainer,\n checkboxControl,\n checkboxIcon,\n checkboxLabel,\n} from './Checkbox.style';\n\n// ============================================================================\n// 类型定义\n// ============================================================================\n\nexport interface CheckboxProps\n extends Omit<React.InputHTMLAttributes<HTMLInputElement>, 'type' | 'size' | 'onChange'> {\n /**\n * 是否选中\n */\n checked?: boolean;\n \n /**\n * 默认是否选中(非受控)\n */\n defaultChecked?: boolean;\n \n /**\n * 半选状态(用于全选场景)\n */\n indeterminate?: boolean;\n \n /**\n * 是否禁用\n */\n disabled?: boolean;\n \n /**\n * 标签文字\n */\n label?: React.ReactNode;\n \n /**\n * 值改变回调\n */\n onChange?: (checked: boolean, event: React.ChangeEvent<HTMLInputElement>) => void;\n \n /**\n * 自定义类名\n */\n className?: string;\n \n /**\n * 自定义样式\n */\n style?: React.CSSProperties;\n}\n\n// ============================================================================\n// Checkbox 图标组件\n// ============================================================================\n\n/**\n * 勾选图标(✓)\n */\nconst CheckIcon: React.FC<{ checked: boolean }> = ({ checked }) => {\n const theme = useTheme() as Theme;\n \n return (\n <svg\n css={checkboxIcon(theme)}\n data-checked={checked}\n viewBox=\"0 0 16 16\"\n fill=\"none\"\n xmlns=\"http://www.w3.org/2000/svg\"\n >\n <path\n d=\"M13.3332 4.5L5.99984 11.8333L2.6665 8.5\"\n stroke=\"currentColor\"\n strokeWidth=\"2\"\n strokeLinecap=\"round\"\n strokeLinejoin=\"round\"\n />\n </svg>\n );\n};\n\n/**\n * 半选图标(—)\n */\nconst IndeterminateIcon: React.FC<{ checked: boolean }> = ({ checked }) => {\n const theme = useTheme() as Theme;\n \n return (\n <svg\n css={checkboxIcon(theme)}\n data-checked={checked}\n viewBox=\"0 0 16 16\"\n fill=\"none\"\n xmlns=\"http://www.w3.org/2000/svg\"\n >\n <path\n d=\"M3.5 8H12.5\"\n stroke=\"currentColor\"\n strokeWidth=\"2\"\n strokeLinecap=\"round\"\n />\n </svg>\n );\n};\n\n// ============================================================================\n// Checkbox 组件\n// ============================================================================\n\nexport const Checkbox = forwardRef<HTMLInputElement, CheckboxProps>(\n (props, ref) => {\n const {\n checked: controlledChecked,\n defaultChecked = false,\n indeterminate = false,\n disabled = false,\n label,\n onChange,\n className,\n style,\n ...inputProps\n } = props;\n\n const theme = useTheme() as Theme;\n const inputRef = useRef<HTMLInputElement>(null);\n const [hover, setHover] = useState(false);\n \n // 内部状态管理(非受控)\n const [internalChecked, setInternalChecked] = useState(defaultChecked);\n \n // 判断是否受控\n const isControlled = controlledChecked !== undefined;\n const checked = isControlled ? controlledChecked : internalChecked;\n\n // 合并 refs\n useEffect(() => {\n if (ref) {\n if (typeof ref === 'function') {\n ref(inputRef.current);\n } else {\n ref.current = inputRef.current;\n }\n }\n }, [ref]);\n\n // 设置 indeterminate 属性(原生 HTML 属性只能通过 JS 设置)\n useEffect(() => {\n if (inputRef.current) {\n inputRef.current.indeterminate = indeterminate;\n }\n }, [indeterminate]);\n\n // 处理点击\n const handleChange = (event: React.ChangeEvent<HTMLInputElement>) => {\n if (disabled) return;\n \n const newChecked = event.target.checked;\n \n if (!isControlled) {\n setInternalChecked(newChecked);\n }\n \n onChange?.(newChecked, event);\n };\n\n return (\n <label\n css={checkboxContainer}\n data-disabled={disabled}\n className={className}\n style={style}\n onMouseEnter={() => !disabled && setHover(true)}\n onMouseLeave={() => !disabled && setHover(false)}\n >\n <input\n ref={inputRef}\n type=\"checkbox\"\n checked={checked}\n disabled={disabled}\n onChange={handleChange}\n {...inputProps}\n />\n \n <span\n css={checkboxControl(theme)}\n data-hover={hover}\n data-checked={checked && !indeterminate}\n data-indeterminate={indeterminate}\n data-disabled={disabled}\n >\n {indeterminate ? (\n <IndeterminateIcon checked={true} />\n ) : (\n <CheckIcon checked={checked} />\n )}\n </span>\n \n {label && (\n <span\n css={checkboxLabel(theme)}\n data-disabled={disabled}\n >\n {label}\n </span>\n )}\n </label>\n );\n }\n);\n\nCheckbox.displayName = 'Checkbox';\n\nexport default Checkbox;\n\n","import r1, { forwardRef as o } from \"react\";\nvar w = { exports: {} }, m = {};\n/**\n * @license React\n * react-jsx-runtime.production.js\n *\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\nvar F;\nfunction t1() {\n if (F) return m;\n F = 1;\n var t = Symbol.for(\"react.transitional.element\"), n = Symbol.for(\"react.fragment\");\n function C(f, d, c) {\n var p = null;\n if (c !== void 0 && (p = \"\" + c), d.key !== void 0 && (p = \"\" + d.key), \"key\" in d) {\n c = {};\n for (var h in d)\n h !== \"key\" && (c[h] = d[h]);\n } else c = d;\n return d = c.ref, {\n $$typeof: t,\n type: f,\n key: p,\n ref: d !== void 0 ? d : null,\n props: c\n };\n }\n return m.Fragment = n, m.jsx = C, m.jsxs = C, m;\n}\nvar x = {};\n/**\n * @license React\n * react-jsx-runtime.development.js\n *\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\nvar W;\nfunction n1() {\n return W || (W = 1, process.env.NODE_ENV !== \"production\" && function() {\n function t(e) {\n if (e == null) return null;\n if (typeof e == \"function\")\n return e.$$typeof === Q ? null : e.displayName || e.name || null;\n if (typeof e == \"string\") return e;\n switch (e) {\n case R:\n return \"Fragment\";\n case I:\n return \"Profiler\";\n case D:\n return \"StrictMode\";\n case G:\n return \"Suspense\";\n case z:\n return \"SuspenseList\";\n case X:\n return \"Activity\";\n }\n if (typeof e == \"object\")\n switch (typeof e.tag == \"number\" && console.error(\n \"Received an unexpected object in getComponentNameFromType(). This is likely a bug in React. Please file an issue.\"\n ), e.$$typeof) {\n case U:\n return \"Portal\";\n case B:\n return e.displayName || \"Context\";\n case $:\n return (e._context.displayName || \"Context\") + \".Consumer\";\n case q:\n var l = e.render;\n return e = e.displayName, e || (e = l.displayName || l.name || \"\", e = e !== \"\" ? \"ForwardRef(\" + e + \")\" : \"ForwardRef\"), e;\n case J:\n return l = e.displayName || null, l !== null ? l : t(e.type) || \"Memo\";\n case O:\n l = e._payload, e = e._init;\n try {\n return t(e(l));\n } catch {\n }\n }\n return null;\n }\n function n(e) {\n return \"\" + e;\n }\n function C(e) {\n try {\n n(e);\n var l = !1;\n } catch {\n l = !0;\n }\n if (l) {\n l = console;\n var s = l.error, a = typeof Symbol == \"function\" && Symbol.toStringTag && e[Symbol.toStringTag] || e.constructor.name || \"Object\";\n return s.call(\n l,\n \"The provided key is an unsupported type %s. This value must be coerced to a string before using it here.\",\n a\n ), n(e);\n }\n }\n function f(e) {\n if (e === R) return \"<>\";\n if (typeof e == \"object\" && e !== null && e.$$typeof === O)\n return \"<...>\";\n try {\n var l = t(e);\n return l ? \"<\" + l + \">\" : \"<...>\";\n } catch {\n return \"<...>\";\n }\n }\n function d() {\n var e = M.A;\n return e === null ? null : e.getOwner();\n }\n function c() {\n return Error(\"react-stack-top-frame\");\n }\n function p(e) {\n if (A.call(e, \"key\")) {\n var l = Object.getOwnPropertyDescriptor(e, \"key\").get;\n if (l && l.isReactWarning) return !1;\n }\n return e.key !== void 0;\n }\n function h(e, l) {\n function s() {\n S || (S = !0, console.error(\n \"%s: `key` is not a prop. Trying to access it will result in `undefined` being returned. If you need to access the same value within the child component, you should pass it as a different prop. (https://react.dev/link/special-props)\",\n l\n ));\n }\n s.isReactWarning = !0, Object.defineProperty(e, \"key\", {\n get: s,\n configurable: !0\n });\n }\n function j() {\n var e = t(this.type);\n return V[e] || (V[e] = !0, console.error(\n \"Accessing element.ref was removed in React 19. ref is now a regular prop. It will be removed from the JSX Element type in a future release.\"\n )), e = this.props.ref, e !== void 0 ? e : null;\n }\n function Y(e, l, s, a, k, E) {\n var u = s.ref;\n return e = {\n $$typeof: g,\n type: e,\n key: l,\n props: s,\n _owner: a\n }, (u !== void 0 ? u : null) !== null ? Object.defineProperty(e, \"ref\", {\n enumerable: !1,\n get: j\n }) : Object.defineProperty(e, \"ref\", { enumerable: !1, value: null }), e._store = {}, Object.defineProperty(e._store, \"validated\", {\n configurable: !1,\n enumerable: !1,\n writable: !0,\n value: 0\n }), Object.defineProperty(e, \"_debugInfo\", {\n configurable: !1,\n enumerable: !1,\n writable: !0,\n value: null\n }), Object.defineProperty(e, \"_debugStack\", {\n configurable: !1,\n enumerable: !1,\n writable: !0,\n value: k\n }), Object.defineProperty(e, \"_debugTask\", {\n configurable: !1,\n enumerable: !1,\n writable: !0,\n value: E\n }), Object.freeze && (Object.freeze(e.props), Object.freeze(e)), e;\n }\n function b(e, l, s, a, k, E) {\n var u = l.children;\n if (u !== void 0)\n if (a)\n if (K(u)) {\n for (a = 0; a < u.length; a++)\n T(u[a]);\n Object.freeze && Object.freeze(u);\n } else\n console.error(\n \"React.jsx: Static children should always be an array. You are likely explicitly calling React.jsxs or React.jsxDEV. Use the Babel transform instead.\"\n );\n else T(u);\n if (A.call(l, \"key\")) {\n u = t(e);\n var L = Object.keys(l).filter(function(e1) {\n return e1 !== \"key\";\n });\n a = 0 < L.length ? \"{key: someKey, \" + L.join(\": ..., \") + \": ...}\" : \"{key: someKey}\", Z[u + a] || (L = 0 < L.length ? \"{\" + L.join(\": ..., \") + \": ...}\" : \"{}\", console.error(\n `A props object containing a \"key\" prop is being spread into JSX:\n let props = %s;\n <%s {...props} />\nReact keys must be passed directly to JSX without using spread:\n let props = %s;\n <%s key={someKey} {...props} />`,\n a,\n u,\n L,\n u\n ), Z[u + a] = !0);\n }\n if (u = null, s !== void 0 && (C(s), u = \"\" + s), p(l) && (C(l.key), u = \"\" + l.key), \"key\" in l) {\n s = {};\n for (var y in l)\n y !== \"key\" && (s[y] = l[y]);\n } else s = l;\n return u && h(\n s,\n typeof e == \"function\" ? e.displayName || e.name || \"Unknown\" : e\n ), Y(\n e,\n u,\n s,\n d(),\n k,\n E\n );\n }\n function T(e) {\n N(e) ? e._store && (e._store.validated = 1) : typeof e == \"object\" && e !== null && e.$$typeof === O && (e._payload.status === \"fulfilled\" ? N(e._payload.value) && e._payload.value._store && (e._payload.value._store.validated = 1) : e._store && (e._store.validated = 1));\n }\n function N(e) {\n return typeof e == \"object\" && e !== null && e.$$typeof === g;\n }\n var v = r1, g = Symbol.for(\"react.transitional.element\"), U = Symbol.for(\"react.portal\"), R = Symbol.for(\"react.fragment\"), D = Symbol.for(\"react.strict_mode\"), I = Symbol.for(\"react.profiler\"), $ = Symbol.for(\"react.consumer\"), B = Symbol.for(\"react.context\"), q = Symbol.for(\"react.forward_ref\"), G = Symbol.for(\"react.suspense\"), z = Symbol.for(\"react.suspense_list\"), J = Symbol.for(\"react.memo\"), O = Symbol.for(\"react.lazy\"), X = Symbol.for(\"react.activity\"), Q = Symbol.for(\"react.client.reference\"), M = v.__CLIENT_INTERNALS_DO_NOT_USE_OR_WARN_USERS_THEY_CANNOT_UPGRADE, A = Object.prototype.hasOwnProperty, K = Array.isArray, _ = console.createTask ? console.createTask : function() {\n return null;\n };\n v = {\n react_stack_bottom_frame: function(e) {\n return e();\n }\n };\n var S, V = {}, H = v.react_stack_bottom_frame.bind(\n v,\n c\n )(), P = _(f(c)), Z = {};\n x.Fragment = R, x.jsx = function(e, l, s) {\n var a = 1e4 > M.recentlyCreatedOwnerStacks++;\n return b(\n e,\n l,\n s,\n !1,\n a ? Error(\"react-stack-top-frame\") : H,\n a ? _(f(e)) : P\n );\n }, x.jsxs = function(e, l, s) {\n var a = 1e4 > M.recentlyCreatedOwnerStacks++;\n return b(\n e,\n l,\n s,\n !0,\n a ? Error(\"react-stack-top-frame\") : H,\n a ? _(f(e)) : P\n );\n };\n }()), x;\n}\nprocess.env.NODE_ENV === \"production\" ? w.exports = t1() : w.exports = n1();\nvar r = w.exports;\nconst i = o(\n ({\n children: t,\n size: n = 24,\n color: C = \"currentColor\",\n viewBox: f = \"0 0 24 24\",\n useFill: d = !1,\n strokeWidth: c = 1.5,\n ...p\n }, h) => {\n const j = {\n ref: h,\n xmlns: \"http://www.w3.org/2000/svg\",\n width: n,\n height: n,\n viewBox: f,\n ...p\n };\n return d ? /* @__PURE__ */ r.jsx(\"svg\", { ...j, fill: C, children: t }) : /* @__PURE__ */ r.jsx(\n \"svg\",\n {\n ...j,\n fill: \"none\",\n stroke: C,\n strokeWidth: c,\n strokeLinecap: \"round\",\n strokeLinejoin: \"round\",\n children: t\n }\n );\n }\n);\ni.displayName = \"IconBase\";\nconst l1 = o((t, n) => /* @__PURE__ */ r.jsx(i, { ref: n, ...t, viewBox: \"0 0 22 22\", useFill: !0, children: /* @__PURE__ */ r.jsx(\n \"path\",\n {\n d: \"M0.31074 10.9704C0.310783 10.5562 0.646483 10.2205 1.06066 10.2205L10.2213 10.2218L10.222 1.06742C10.2223 0.653481 10.5579 0.317504 10.9719 0.317505C11.3858 0.317611 11.7215 0.653547 11.7218 1.06742L11.7211 10.2218L20.8824 10.2225C21.2965 10.2227 21.6324 10.5583 21.6324 10.9724C21.6323 11.3865 21.2965 11.7222 20.8824 11.7224L11.7211 11.7217L11.7218 20.8706C11.7218 21.2847 11.386 21.6204 10.9719 21.6205C10.5577 21.6205 10.222 21.2847 10.222 20.8706L10.2213 11.7217L1.06066 11.7203C0.646473 11.7202 0.310739 11.3845 0.31074 10.9704Z\",\n fill: \"currentColor\"\n }\n) }));\nl1.displayName = \"AddOutline\";\nconst o1 = o((t, n) => /* @__PURE__ */ r.jsx(i, { ref: n, ...t, children: /* @__PURE__ */ r.jsx(\"path\", { d: \"M5 12h14m0 0l-7-7m7 7l-7 7\" }) }));\no1.displayName = \"ArrowRightOutline\";\nconst i1 = o((t, n) => /* @__PURE__ */ r.jsx(i, { ref: n, ...t, children: /* @__PURE__ */ r.jsx(\"path\", { d: \"M19 12H5m0 0l7-7m-7 7l7 7\" }) }));\ni1.displayName = \"ArrowLeftOutline\";\nconst s1 = o((t, n) => /* @__PURE__ */ r.jsxs(i, { ref: n, ...t, useFill: !0, children: [\n /* @__PURE__ */ r.jsx(\n \"path\",\n {\n fillRule: \"evenodd\",\n clipRule: \"evenodd\",\n d: \"M3.80273 8.19824C3.38873 8.19824 3.05273 7.86224 3.05273 7.44824V5.30124C3.06573 2.36324 5.44173 0.000244141 8.35473 0.000244141H8.37473C10.6307 0.000244141 12.6447 1.43324 13.3837 3.56724C13.5197 3.95824 13.3117 4.38524 12.9197 4.52124C12.5287 4.65824 12.1017 4.44924 11.9657 4.05724C11.4367 2.52824 9.99173 1.50024 8.37173 1.50024H8.35773C6.26573 1.50024 4.56173 3.19424 4.55273 5.28424V7.44824C4.55273 7.86224 4.21673 8.19824 3.80273 8.19824Z\"\n }\n ),\n /* @__PURE__ */ r.jsx(\n \"path\",\n {\n fillRule: \"evenodd\",\n clipRule: \"evenodd\",\n d: \"M4.542 8.12695C2.864 8.12695 1.5 9.49195 1.5 11.17V15.458C1.5 17.136 2.864 18.501 4.542 18.501H12.184C13.861 18.501 15.226 17.136 15.226 15.458V11.17C15.226 9.49195 13.861 8.12695 12.184 8.12695H4.542ZM12.184 20.001H4.542C2.037 20.001 0 17.963 0 15.458V11.17C0 8.66495 2.037 6.62695 4.542 6.62695H12.184C14.688 6.62695 16.726 8.66495 16.726 11.17V15.458C16.726 17.963 14.688 20.001 12.184 20.001Z\"\n }\n ),\n /* @__PURE__ */ r.jsx(\n \"path\",\n {\n fillRule: \"evenodd\",\n clipRule: \"evenodd\",\n d: \"M8.36328 15.1748C7.94928 15.1748 7.61328 14.8388 7.61328 14.4248V12.2028C7.61328 11.7888 7.94928 11.4528 8.36328 11.4528C8.77728 11.4528 9.11328 11.7888 9.11328 12.2028V14.4248C9.11328 14.8388 8.77728 15.1748 8.36328 15.1748Z\"\n }\n )\n] }));\ns1.displayName = \"UnlockOutline\";\nconst a1 = o((t, n) => /* @__PURE__ */ r.jsxs(i, { ref: n, ...t, useFill: !0, children: [\n /* @__PURE__ */ r.jsx(\n \"path\",\n {\n fillRule: \"evenodd\",\n clipRule: \"evenodd\",\n d: \"M10 1.5C5.313 1.5 1.5 5.313 1.5 10C1.5 14.687 5.313 18.5 10 18.5C14.687 18.5 18.5 14.687 18.5 10C18.5 5.313 14.687 1.5 10 1.5ZM10 20C4.486 20 0 15.514 0 10C0 4.486 4.486 0 10 0C15.514 0 20 4.486 20 10C20 15.514 15.514 20 10 20Z\"\n }\n ),\n /* @__PURE__ */ r.jsx(\n \"path\",\n {\n fillRule: \"evenodd\",\n clipRule: \"evenodd\",\n d: \"M8.55858 14.2207C8.36658 14.2207 8.17358 14.1477 8.02758 13.9997C7.73558 13.7057 7.73658 13.2317 8.02958 12.9397L10.9816 9.99968L8.02958 7.06068C7.73658 6.76868 7.73558 6.29368 8.02758 5.99968C8.31958 5.70468 8.79358 5.70668 9.08758 5.99768L12.5736 9.46868C12.7146 9.60968 12.7936 9.80068 12.7936 9.99968C12.7936 10.1997 12.7146 10.3907 12.5736 10.5317L9.08758 14.0017C8.94158 14.1477 8.74958 14.2207 8.55858 14.2207Z\"\n }\n )\n] }));\na1.displayName = \"ArrowRightCircleOutline\";\nconst u1 = o((t, n) => /* @__PURE__ */ r.jsx(i, { ref: n, ...t, children: /* @__PURE__ */ r.jsx(\"path\", { d: \"M9 6l6 6-6 6\" }) }));\nu1.displayName = \"ChevronRightOutline\";\nconst d1 = o((t, n) => /* @__PURE__ */ r.jsx(i, { ref: n, ...t, children: /* @__PURE__ */ r.jsx(\"path\", { d: \"M15 6l-6 6 6 6\" }) }));\nd1.displayName = \"ChevronLeftOutline\";\nconst c1 = o((t, n) => /* @__PURE__ */ r.jsx(i, { ref: n, ...t, children: /* @__PURE__ */ r.jsx(\"path\", { d: \"M6 9l6 6 6-6\" }) }));\nc1.displayName = \"ChevronDownOutline\";\nconst C1 = o((t, n) => /* @__PURE__ */ r.jsx(i, { ref: n, ...t, children: /* @__PURE__ */ r.jsx(\"path\", { d: \"M18 15l-6-6-6 6\" }) }));\nC1.displayName = \"ChevronUpOutline\";\nconst f1 = o((t, n) => /* @__PURE__ */ r.jsx(i, { ref: n, ...t, children: /* @__PURE__ */ r.jsx(\"path\", { d: \"M12 5v14m-7-7h14\", stroke: \"currentColor\", strokeWidth: \"1.5\", strokeLinecap: \"round\", strokeLinejoin: \"round\" }) }));\nf1.displayName = \"PlusOutline\";\nconst p1 = o((t, n) => /* @__PURE__ */ r.jsxs(i, { ref: n, ...t, children: [\n /* @__PURE__ */ r.jsx(\n \"path\",\n {\n d: \"M11 2H9C4 2 2 4 2 9v6c0 5 2 7 7 7h6c5 0 7-2 7-7v-2\",\n stroke: \"currentColor\",\n strokeWidth: \"1.5\",\n strokeLinecap: \"round\",\n strokeLinejoin: \"round\"\n }\n ),\n /* @__PURE__ */ r.jsx(\n \"path\",\n {\n d: \"M16.04 3.02001L8.16 10.9C7.86 11.2 7.56 11.79 7.5 12.22L7.07 15.23C6.91 16.32 7.68 17.08 8.77 16.93L11.78 16.5C12.2 16.44 12.79 16.14 13.1 15.84L20.98 7.96001C22.34 6.60001 22.98 5.02001 20.98 3.02001C18.98 1.02001 17.4 1.66001 16.04 3.02001Z\",\n stroke: \"currentColor\",\n strokeWidth: \"1.5\",\n strokeMiterlimit: \"10\",\n strokeLinecap: \"round\",\n strokeLinejoin: \"round\"\n }\n ),\n /* @__PURE__ */ r.jsx(\n \"path\",\n {\n d: \"M14.91 4.1499C15.58 6.5399 17.45 8.4099 19.85 9.0899\",\n stroke: \"currentColor\",\n strokeWidth: \"1.5\",\n strokeMiterlimit: \"10\",\n strokeLinecap: \"round\",\n strokeLinejoin: \"round\"\n }\n )\n] }));\np1.displayName = \"EditSquareOutline\";\nconst h1 = o((t, n) => /* @__PURE__ */ r.jsxs(i, { ref: n, ...t, children: [\n /* @__PURE__ */ r.jsx(\n \"path\",\n {\n d: \"M13.26 3.6L5.05 12.29C4.74 12.62 4.44 13.27 4.38 13.72L4.01 16.96C3.88 18.13 4.72 18.93 5.88 18.73L9.1 18.18C9.55 18.1 10.18 17.77 10.49 17.43L18.7 8.74C20.12 7.24 20.76 5.53 18.55 3.44C16.35 1.37 14.68 2.1 13.26 3.6Z\",\n stroke: \"currentColor\",\n strokeWidth: \"1.5\",\n strokeMiterlimit: \"10\",\n strokeLinecap: \"round\",\n strokeLinejoin: \"round\"\n }\n ),\n /* @__PURE__ */ r.jsx(\n \"path\",\n {\n d: \"M11.89 5.05C12.32 7.81 14.56 9.92 17.34 10.2\",\n stroke: \"currentColor\",\n strokeWidth: \"1.5\",\n strokeMiterlimit: \"10\",\n strokeLinecap: \"round\",\n strokeLinejoin: \"round\"\n }\n ),\n /* @__PURE__ */ r.jsx(\n \"path\",\n {\n d: \"M3 22H21\",\n stroke: \"currentColor\",\n strokeWidth: \"1.5\",\n strokeMiterlimit: \"10\",\n strokeLinecap: \"round\",\n strokeLinejoin: \"round\"\n }\n )\n] }));\nh1.displayName = \"EditOutline\";\nconst L1 = o((t, n) => /* @__PURE__ */ r.jsx(i, { ref: n, ...t, children: /* @__PURE__ */ r.jsx(\"path\", { d: \"M21 5.98C17.67 5.65 14.32 5.48 10.98 5.48C9 5.48 7.02 5.58 5.04 5.78L3 5.98M8.5 4.97L8.72 3.66C8.88 2.71 9 2 10.69 2H13.31C15 2 15.13 2.75 15.28 3.67L15.5 4.97M18.85 9.14L18.2 19.21C18.09 20.78 18 22 15.21 22H8.79C6 22 5.91 20.78 5.8 19.21L5.15 9.14M10.33 16.5H13.66M9.5 12.5H14.5\" }) }));\nL1.displayName = \"DeleteOutline\";\nconst m1 = o((t, n) => /* @__PURE__ */ r.jsxs(i, { ref: n, ...t, children: [\n /* @__PURE__ */ r.jsx(\n \"path\",\n {\n d: \"M17 20.5H7C4 20.5 2 19 2 15.5V8.5C2 5 4 3.5 7 3.5H17C20 3.5 22 5 22 8.5V15.5C22 19 20 20.5 17 20.5Z\",\n stroke: \"currentColor\",\n strokeWidth: \"1.5\",\n strokeMiterlimit: \"10\",\n strokeLinecap: \"round\",\n strokeLinejoin: \"round\",\n fill: \"none\"\n }\n ),\n /* @__PURE__ */ r.jsx(\n \"path\",\n {\n d: \"M17 9L13.87 11.5C12.84 12.32 11.15 12.32 10.12 11.5L7 9\",\n stroke: \"currentColor\",\n strokeWidth: \"1.5\",\n strokeMiterlimit: \"10\",\n strokeLinecap: \"round\",\n strokeLinejoin: \"round\",\n fill: \"none\"\n }\n )\n] }));\nm1.displayName = \"MessageOutline\";\nconst x1 = o((t, n) => /* @__PURE__ */ r.jsxs(i, { ref: n, ...t, children: [\n /* @__PURE__ */ r.jsx(\n \"circle\",\n {\n cx: \"11.7666\",\n cy: \"11.7666\",\n r: \"8.98856\",\n stroke: \"currentColor\",\n strokeWidth: \"1.5\",\n strokeLinecap: \"round\",\n strokeLinejoin: \"round\",\n fill: \"none\"\n }\n ),\n /* @__PURE__ */ r.jsx(\n \"path\",\n {\n d: \"M18.0183 18.4851L21.5423 22\",\n stroke: \"currentColor\",\n strokeWidth: \"1.5\",\n strokeLinecap: \"round\",\n strokeLinejoin: \"round\",\n fill: \"none\"\n }\n )\n] }));\nx1.displayName = \"SearchOutline\";\nconst j1 = o((t, n) => /* @__PURE__ */ r.jsxs(i, { ref: n, ...t, viewBox: \"0 0 22 22\", useFill: !0, children: [\n /* @__PURE__ */ r.jsx(\"path\", { fillRule: \"evenodd\", clipRule: \"evenodd\", d: \"M7.5979 15.5596C7.1839 15.5596 6.8479 15.2236 6.8479 14.8096V11.0646C6.8479 10.6506 7.1839 10.3146 7.5979 10.3146C8.0119 10.3146 8.3479 10.6506 8.3479 11.0646V14.8096C8.3479 15.2236 8.0119 15.5596 7.5979 15.5596Z\", fill: \"currentColor\" }),\n /* @__PURE__ */ r.jsx(\"path\", { fillRule: \"evenodd\", clipRule: \"evenodd\", d: \"M9.50862 13.6865H5.68762C5.27362 13.6865 4.93762 13.3505 4.93762 12.9365C4.93762 12.5225 5.27362 12.1865 5.68762 12.1865H9.50862C9.92262 12.1865 10.2586 12.5225 10.2586 12.9365C10.2586 13.3505 9.92262 13.6865 9.50862 13.6865Z\", fill: \"currentColor\" }),\n /* @__PURE__ */ r.jsx(\"path\", { fillRule: \"evenodd\", clipRule: \"evenodd\", d: \"M14.116 11.9287H14.009C13.595 11.9287 13.259 11.5927 13.259 11.1787C13.259 10.7647 13.595 10.4287 14.009 10.4287H14.116C14.53 10.4287 14.866 10.7647 14.866 11.1787C14.866 11.5927 14.53 11.9287 14.116 11.9287Z\", fill: \"currentColor\" }),\n /* @__PURE__ */ r.jsx(\"path\", { fillRule: \"evenodd\", clipRule: \"evenodd\", d: \"M15.9295 15.5029H15.8225C15.4085 15.5029 15.0725 15.1669 15.0725 14.7529C15.0725 14.3389 15.4085 14.0029 15.8225 14.0029H15.9295C16.3435 14.0029 16.6795 14.3389 16.6795 14.7529C16.6795 15.1669 16.3435 15.5029 15.9295 15.5029Z\", fill: \"currentColor\" }),\n /* @__PURE__ */ r.jsx(\"mask\", { id: \"mask0_6909_3794\", style: { maskType: \"luminance\" }, maskUnits: \"userSpaceOnUse\", x: \"6\", y: \"0\", width: \"7\", height: \"6\", children: /* @__PURE__ */ r.jsx(\"path\", { fillRule: \"evenodd\", clipRule: \"evenodd\", d: \"M6.07166 0H12.1117V5.5879H6.07166V0Z\", fill: \"white\" }) }),\n /* @__PURE__ */ r.jsx(\"g\", { mask: \"url(#mask0_6909_3794)\", children: /* @__PURE__ */ r.jsx(\"path\", { fillRule: \"evenodd\", clipRule: \"evenodd\", d: \"M11.3617 5.58788C10.9477 5.58788 10.6117 5.25188 10.6117 4.83788V4.16288C10.6087 3.43888 9.99466 2.84388 9.24366 2.84088H8.18966C7.02266 2.84088 6.07166 1.90288 6.07166 0.749878C6.07166 0.335878 6.40766 -0.00012207 6.82166 -0.00012207C7.23666 -0.00012207 7.57166 0.335878 7.57166 0.749878C7.57166 1.07588 7.84866 1.34088 8.18966 1.34088H9.24666C10.8197 1.34588 12.1047 2.60988 12.1117 4.15888V4.83788C12.1117 5.25188 11.7757 5.58788 11.3617 5.58788Z\", fill: \"currentColor\" }) }),\n /* @__PURE__ */ r.jsx(\"mask\", { id: \"mask1_6909_3794\", style: { maskType: \"luminance\" }, maskUnits: \"userSpaceOnUse\", x: \"0\", y: \"4\", width: \"22\", height: \"18\", children: /* @__PURE__ */ r.jsx(\"path\", { fillRule: \"evenodd\", clipRule: \"evenodd\", d: \"M0 4.37329H21.4998V21.5H0V4.37329Z\", fill: \"white\" }) }),\n /* @__PURE__ */ r.jsx(\"g\", { mask: \"url(#mask1_6909_3794)\", children: /* @__PURE__ */ r.jsx(\"path\", { fillRule: \"evenodd\", clipRule: \"evenodd\", d: \"M10.701 5.87304C9.225 5.87304 7.767 5.88604 6.335 5.91004C3.528 5.91004 1.5 7.88804 1.5 10.612V15.262C1.5 17.985 3.528 19.963 6.323 19.963C9.27 20.012 12.241 20.012 15.165 19.963H15.178C17.972 19.963 20 17.985 20 15.262V10.612C20 7.88804 17.972 5.91004 15.178 5.91004C13.674 5.88604 12.179 5.87304 10.701 5.87304ZM10.754 21.5C9.271 21.5 7.786 21.487 6.31 21.463C2.659 21.463 0 18.854 0 15.262V10.612C0 7.01904 2.659 4.41004 6.323 4.41004C9.192 4.36104 12.18 4.36104 15.19 4.41004C18.841 4.41004 21.5 7.01904 21.5 10.612V15.262C21.5 18.852 18.845 21.46 15.184 21.463C13.716 21.487 12.236 21.5 10.754 21.5Z\", fill: \"currentColor\" }) })\n] }));\nj1.displayName = \"GameOutline\";\nconst v1 = o((t, n) => /* @__PURE__ */ r.jsx(i, { ref: n, ...t, viewBox: \"0 0 12 12\", useFill: !0, children: /* @__PURE__ */ r.jsx(\"path\", { fillRule: \"evenodd\", clipRule: \"evenodd\", d: \"M9.41575 3.81219C9.53779 3.93423 9.53779 4.1321 9.41575 4.25414L4.90757 8.76231L2.58467 6.4468C2.46243 6.32496 2.46212 6.12709 2.58396 6.00486L2.93695 5.65074C3.05879 5.52851 3.25666 5.52819 3.37889 5.65004L3.46421 5.73508L4.90631 7.17259L8.62025 3.45864C8.74229 3.3366 8.94015 3.3366 9.06219 3.45864L9.41575 3.81219Z\", fill: \"currentColor\" }) }));\nv1.displayName = \"CheckOutline\";\nconst k1 = o((t, n) => /* @__PURE__ */ r.jsx(i, { ref: n, ...t, children: /* @__PURE__ */ r.jsx(\"path\", { d: \"M18 6L6 18M6 6l12 12\" }) }));\nk1.displayName = \"CloseOutline\";\nconst R1 = o((t, n) => /* @__PURE__ */ r.jsx(i, { ref: n, ...t, viewBox: \"0 0 20 19\", useFill: !0, children: /* @__PURE__ */ r.jsx(\n \"path\",\n {\n fillRule: \"evenodd\",\n clipRule: \"evenodd\",\n d: \"M9.74992 1.5C9.65892 1.5 9.43492 1.525 9.31592 1.763L7.48992 5.414C7.20092 5.991 6.64392 6.392 5.99992 6.484L1.91192 7.073C1.64192 7.112 1.54992 7.312 1.52192 7.396C1.49692 7.477 1.45692 7.683 1.64292 7.861L4.59892 10.701C5.06992 11.154 5.28392 11.807 5.17192 12.446L4.47592 16.456C4.43292 16.707 4.58992 16.853 4.65992 16.903C4.73392 16.959 4.93192 17.07 5.17692 16.942L8.83192 15.047C9.40792 14.75 10.0939 14.75 10.6679 15.047L14.3219 16.941C14.5679 17.068 14.7659 16.957 14.8409 16.903C14.9109 16.853 15.0679 16.707 15.0249 16.456L14.3269 12.446C14.2149 11.807 14.4289 11.154 14.8999 10.701L17.8559 7.861C18.0429 7.683 18.0029 7.476 17.9769 7.396C17.9499 7.312 17.8579 7.112 17.5879 7.073L13.4999 6.484C12.8569 6.392 12.2999 5.991 12.0109 5.413L10.1829 1.763C10.0649 1.525 9.84092 1.5 9.74992 1.5ZM4.94692 18.5C4.53392 18.5 4.12392 18.37 3.77292 18.114C3.16692 17.67 2.86992 16.937 2.99892 16.199L3.69492 12.189C3.72092 12.04 3.66992 11.889 3.55992 11.783L0.603916 8.943C0.0599161 8.422 -0.135084 7.652 0.0949161 6.937C0.326916 6.214 0.940916 5.697 1.69792 5.589L5.78592 5C5.94392 4.978 6.07992 4.881 6.14792 4.743L7.97492 1.091C8.31192 0.418 8.99192 0 9.74992 0C10.5079 0 11.1879 0.418 11.5249 1.091L13.3529 4.742C13.4219 4.881 13.5569 4.978 13.7139 5L17.8019 5.589C18.5589 5.697 19.1729 6.214 19.4049 6.937C19.6349 7.652 19.4389 8.422 18.8949 8.943L15.9389 11.783C15.8289 11.889 15.7789 12.04 15.8049 12.188L16.5019 16.199C16.6299 16.938 16.3329 17.671 15.7259 18.114C15.1109 18.565 14.3099 18.626 13.6309 18.272L9.97792 16.379C9.83492 16.305 9.66392 16.305 9.52092 16.379L5.86792 18.273C5.57592 18.425 5.26092 18.5 4.94692 18.5Z\",\n fill: \"currentColor\"\n }\n) }));\nR1.displayName = \"StartOutline\";\nconst O1 = o((t, n) => /* @__PURE__ */ r.jsxs(i, { ref: n, ...t, viewBox: \"0 0 20 19\", useFill: !0, children: [\n /* @__PURE__ */ r.jsx(\n \"path\",\n {\n fillRule: \"evenodd\",\n clipRule: \"evenodd\",\n d: \"M1.5 11.979V14.024C1.5 14.73 1.774 15.393 2.273 15.892C2.772 16.391 3.436 16.666 4.141 16.666H15.857C17.313 16.666 18.499 15.482 18.5 14.026V11.978C17.214 11.645 16.261 10.474 16.26 9.085C16.26 7.696 17.213 6.525 18.499 6.191L18.5 4.146C18.501 2.688 17.318 1.501 15.861 1.5H4.144C2.687 1.5 1.501 2.685 1.5 4.142V6.259C1.986 6.375 2.437 6.614 2.812 6.964C3.381 7.495 3.709 8.215 3.737 8.993C3.74 10.459 2.787 11.643 1.5 11.979ZM15.857 18.166H4.142C3.035 18.166 1.995 17.736 1.212 16.953C0.43 16.17 0 15.13 0 14.024V11.324C0 10.91 0.336 10.574 0.75 10.574C1.574 10.573 2.24 9.905 2.239 9.085C2.225 8.667 2.065 8.319 1.789 8.061C1.514 7.803 1.158 7.662 0.776 7.683C0.569 7.685 0.375 7.614 0.229 7.473C0.083 7.332 0 7.136 0 6.933V4.143C0.001 1.858 1.86 0 4.144 0H15.856C18.146 0.001 20.002 1.863 20 4.147V6.846C20 7.26 19.664 7.596 19.25 7.596C18.429 7.596 17.76 8.264 17.76 9.084C17.761 9.906 18.429 10.574 19.25 10.574C19.664 10.574 20 10.91 20 11.324V14.024C19.999 16.308 18.14 18.166 15.857 18.166Z\"\n }\n ),\n /* @__PURE__ */ r.jsx(\n \"path\",\n {\n fillRule: \"evenodd\",\n clipRule: \"evenodd\",\n d: \"M8.10395 8.38103L8.61295 8.87703C8.88895 9.14803 9.01395 9.53403 8.94795 9.91103L8.82795 10.609L9.45695 10.278C9.79595 10.097 10.203 10.098 10.545 10.28L11.17 10.608L11.05 9.90903C10.987 9.52603 11.113 9.14303 11.386 8.87703L11.8949 8.38103L11.1899 8.27903C10.812 8.22403 10.484 7.98603 10.3149 7.64103L9.99995 7.00403L9.68495 7.64203C9.51595 7.98603 9.18795 8.22403 8.80795 8.27903L8.10395 8.38103ZM11.6179 12.387C11.432 12.387 11.246 12.342 11.074 12.251L9.99995 11.688L8.92495 12.252C8.52895 12.459 8.05795 12.426 7.69795 12.164C7.33695 11.901 7.15995 11.465 7.23495 11.025L7.43995 9.82903L6.57095 8.98203C6.25195 8.67103 6.13795 8.21403 6.27495 7.79003C6.41295 7.36503 6.77295 7.06003 7.21395 6.99603L8.41795 6.82003L8.95495 5.73103C9.15195 5.33103 9.55195 5.08203 9.99995 5.08203C10.446 5.08203 10.847 5.33103 11.044 5.73203L11.582 6.82003L12.784 6.99603C13.226 7.06003 13.5869 7.36503 13.7239 7.79003C13.8609 8.21403 13.748 8.67103 13.4279 8.98303L12.558 9.83003L12.7639 11.025C12.8389 11.466 12.661 11.903 12.299 12.165C12.095 12.312 11.8569 12.387 11.6179 12.387Z\"\n }\n )\n] }));\nO1.displayName = \"TicketOutline\";\nconst M1 = o((t, n) => /* @__PURE__ */ r.jsxs(i, { ref: n, ...t, viewBox: \"0 0 20 20\", useFill: !0, children: [\n /* @__PURE__ */ r.jsx(\n \"path\",\n {\n fillRule: \"evenodd\",\n clipRule: \"evenodd\",\n d: \"M10 1.5C5.313 1.5 1.5 5.313 1.5 10C1.5 14.687 5.313 18.5 10 18.5C14.687 18.5 18.5 14.687 18.5 10C18.5 5.313 14.687 1.5 10 1.5ZM10 20C4.486 20 0 15.514 0 10C0 4.486 4.486 0 10 0C15.514 0 20 4.486 20 10C20 15.514 15.514 20 10 20Z\",\n fill: \"currentColor\"\n }\n ),\n /* @__PURE__ */ r.jsx(\n \"path\",\n {\n fillRule: \"evenodd\",\n clipRule: \"evenodd\",\n d: \"M13.9482 11.0137C13.3952 11.0137 12.9432 10.5667 12.9432 10.0137C12.9432 9.46067 13.3862 9.01367 13.9382 9.01367H13.9482C14.5012 9.01367 14.9482 9.46067 14.9482 10.0137C14.9482 10.5667 14.5012 11.0137 13.9482 11.0137Z\",\n fill: \"currentColor\"\n }\n ),\n /* @__PURE__ */ r.jsx(\n \"path\",\n {\n fillRule: \"evenodd\",\n clipRule: \"evenodd\",\n d: \"M9.93845 11.0137C9.38545 11.0137 8.93445 10.5667 8.93445 10.0137C8.93445 9.46067 9.37645 9.01367 9.92945 9.01367H9.93845C10.4914 9.01367 10.9384 9.46067 10.9384 10.0137C10.9384 10.5667 10.4914 11.0137 9.93845 11.0137Z\",\n fill: \"currentColor\"\n }\n ),\n /* @__PURE__ */ r.jsx(\n \"path\",\n {\n fillRule: \"evenodd\",\n clipRule: \"evenodd\",\n d: \"M5.92968 11.0137C5.37668 11.0137 4.92468 10.5667 4.92468 10.0137C4.92468 9.46067 5.36768 9.01367 5.92068 9.01367H5.92968C6.48268 9.01367 6.92968 9.46067 6.92968 10.0137C6.92968 10.5667 6.48268 11.0137 5.92968 11.0137Z\",\n fill: \"currentColor\"\n }\n )\n] }));\nM1.displayName = \"MoreCircleOutline\";\nconst _1 = o((t, n) => /* @__PURE__ */ r.jsxs(i, { ref: n, ...t, children: [\n /* @__PURE__ */ r.jsx(\"path\", { d: \"M9 22H15C20 22 22 20 22 15V9C22 4 20 2 15 2H9C4 2 2 4 2 9V15C2 20 4 22 9 22Z\" }),\n /* @__PURE__ */ r.jsx(\"circle\", { cx: \"15.5\", cy: \"12\", r: \"1\" }),\n /* @__PURE__ */ r.jsx(\"circle\", { cx: \"11.5\", cy: \"12\", r: \"1\" }),\n /* @__PURE__ */ r.jsx(\"circle\", { cx: \"7.5\", cy: \"12\", r: \"1\" })\n] }));\n_1.displayName = \"MoreSquareOutline\";\nconst E1 = o((t, n) => /* @__PURE__ */ r.jsx(i, { ref: n, ...t, viewBox: \"0 0 19 19\", useFill: !0, children: /* @__PURE__ */ r.jsx(\"path\", { d: \"M12.2871 7.28027C11.9093 7.28115 11.596 7.00252 11.543 6.63965L11.5352 6.5293L11.5488 0.749023C11.5498 0.33481 11.8866 -0.000957489 12.3008 0C12.6771 0.00109291 12.9883 0.279963 13.041 0.641602L13.0488 0.751953L13.0371 5.77832L18.0635 5.76758C18.4777 5.76662 18.8145 6.10141 18.8154 6.51562C18.8163 6.89214 18.5392 7.20439 18.1777 7.25879L18.0674 7.26758L12.2871 7.28027ZM6.51465 18.8164C6.1383 18.8153 5.82712 18.5364 5.77441 18.1748L5.7666 18.0645L5.77832 13.0371L0.751953 13.0488C0.375542 13.0497 0.0633717 12.7734 0.00878906 12.4121L0 12.3008C-0.000797272 11.9243 0.276207 11.612 0.637695 11.5576L0.748047 11.5488L6.52832 11.5361C6.90611 11.5353 7.2194 11.8139 7.27246 12.1768L7.28027 12.2871L7.2666 18.0674C7.26564 18.4816 6.92886 18.8174 6.51465 18.8164Z\" }) }));\nE1.displayName = \"ShrinkOutline\";\nconst y1 = o((t, n) => /* @__PURE__ */ r.jsx(i, { ref: n, ...t, children: /* @__PURE__ */ r.jsx(\"path\", { d: \"M21 9V3h-6M3 15v6h6M21 3l-7 7M10 14l-7 7\" }) }));\ny1.displayName = \"ExpandOutline\";\nconst w1 = o((t, n) => /* @__PURE__ */ r.jsx(i, { ref: n, ...t, viewBox: \"0 0 20 20\", useFill: !0, children: /* @__PURE__ */ r.jsx(\n \"path\",\n {\n fillRule: \"evenodd\",\n clipRule: \"evenodd\",\n d: \"M6.773 9.59876C6.791 9.61476 6.808 9.62976 6.825 9.64776C7.904 10.7538 8.499 12.2188 8.499 13.7738V17.7578L10.735 16.5398C10.911 16.4438 11.02 16.2558 11.02 16.0488V13.7618C11.02 12.2128 11.609 10.7528 12.678 9.65276L17.515 4.50776C17.828 4.17476 18 3.73776 18 3.27676V2.34076C18 1.87676 17.634 1.49976 17.186 1.49976H2.315C1.866 1.49976 1.5 1.87676 1.5 2.34076V3.27676C1.5 3.73776 1.672 4.17476 1.985 4.50676L6.773 9.59876ZM8.146 19.5008C7.944 19.5008 7.744 19.4468 7.562 19.3388C7.21 19.1288 6.999 18.7578 6.999 18.3458V13.7738C6.999 12.6388 6.576 11.5698 5.805 10.7508C5.782 10.7318 5.759 10.7108 5.739 10.6888L0.893 5.53576C0.317 4.92376 0 4.12076 0 3.27676V2.34076C0 1.04976 1.039 -0.000244141 2.315 -0.000244141H17.186C18.461 -0.000244141 19.5 1.04976 19.5 2.34076V3.27676C19.5 4.11976 19.183 4.92176 18.609 5.53476L13.762 10.6888C12.959 11.5168 12.52 12.6058 12.52 13.7618V16.0488C12.52 16.8048 12.111 17.4968 11.453 17.8568L8.692 19.3608C8.52 19.4538 8.333 19.5008 8.146 19.5008Z\",\n fill: \"currentColor\"\n }\n) }));\nw1.displayName = \"FunnelOutline\";\nconst b1 = o((t, n) => /* @__PURE__ */ r.jsx(i, { ref: n, ...t, children: /* @__PURE__ */ r.jsx(\"path\", { d: \"M2 12H22\", stroke: \"currentColor\", strokeWidth: \"1.5\", strokeLinecap: \"round\", strokeLinejoin: \"round\" }) }));\nb1.displayName = \"MinusOutline\";\nconst T1 = o((t, n) => /* @__PURE__ */ r.jsxs(i, { ref: n, useFill: !0, ...t, children: [\n /* @__PURE__ */ r.jsx(\n \"path\",\n {\n fillRule: \"evenodd\",\n clipRule: \"evenodd\",\n d: \"M4.25 12a.75.75 0 0 1 .75-.75h14a.75.75 0 0 1 0 1.5H5a.75.75 0 0 1-.75-.75Z\"\n }\n ),\n /* @__PURE__ */ r.jsx(\n \"path\",\n {\n fillRule: \"evenodd\",\n clipRule: \"evenodd\",\n d: \"M12.47 4.47a.75.75 0 0 1 1.06 0l7 7a.75.75 0 0 1 0 1.06l-7 7a.75.75 0 1 1-1.06-1.06L18.94 12l-6.47-6.47a.75.75 0 0 1 0-1.06Z\"\n }\n )\n] }));\nT1.displayName = \"ArrowRightBold\";\nconst N1 = o((t, n) => /* @__PURE__ */ r.jsx(i, { ref: n, ...t, children: /* @__PURE__ */ r.jsx(\"path\", { d: \"M5 12h7m5 0h2m-2 0l-7-7m7 7l-7 7\" }) }));\nN1.displayName = \"ArrowRightBroken\";\nexport {\n l1 as AddOutline,\n i1 as ArrowLeftOutline,\n T1 as ArrowRightBold,\n N1 as ArrowRightBroken,\n a1 as ArrowRightCircleOutline,\n o1 as ArrowRightOutline,\n v1 as CheckOutline,\n c1 as ChevronDownOutline,\n d1 as ChevronLeftOutline,\n u1 as ChevronRightOutline,\n C1 as ChevronUpOutline,\n k1 as CloseOutline,\n L1 as DeleteOutline,\n h1 as EditOutline,\n p1 as EditSquareOutline,\n y1 as ExpandOutline,\n w1 as FunnelOutline,\n j1 as GameOutline,\n i as IconBase,\n m1 as MessageOutline,\n b1 as MinusOutline,\n M1 as MoreCircleOutline,\n _1 as MoreSquareOutline,\n f1 as PlusOutline,\n x1 as SearchOutline,\n E1 as ShrinkOutline,\n R1 as StartOutline,\n O1 as TicketOutline,\n s1 as UnlockOutline\n};\n//# sourceMappingURL=index.mjs.map\n","/**\n * CheckboxButton 组件样式\n * 基于 Emotion + Theme Token\n * \n * 设计规范:\n * - 按钮样式的 checkbox\n * - 右下角勾选标记\n * - 完整的交互状态\n */\n\nimport { css } from '@emotion/react';\nimport type { Theme } from '@kingsoft-ai/theme';\n\nexport type CheckboxButtonSize = 'sm' | 'md' | 'lg';\n\ninterface CheckboxButtonSizeConfig {\n paddingX: number;\n paddingY: number;\n gap: number;\n minHeight: number;\n fontSize: number;\n lineHeight: number;\n checkmarkSize: number;\n checkmarkIcon: number;\n}\n\nexport const checkboxButtonSizeTokens: Record<CheckboxButtonSize, CheckboxButtonSizeConfig> = {\n sm: {\n paddingX: 12,\n paddingY: 5,\n gap: 8,\n minHeight: 28,\n fontSize: 12,\n lineHeight: 18,\n checkmarkSize: 10,\n checkmarkIcon: 7,\n },\n md: {\n paddingX: 16,\n paddingY: 7,\n gap: 10,\n minHeight: 32,\n fontSize: 12,\n lineHeight: 18,\n checkmarkSize: 12,\n checkmarkIcon: 8,\n },\n lg: {\n paddingX: 20,\n paddingY: 9,\n gap: 12,\n minHeight: 38,\n fontSize: 14,\n lineHeight: 20,\n checkmarkSize: 14,\n checkmarkIcon: 9,\n },\n};\n\n// ============================================================================\n// CheckboxButton 容器样式\n// ============================================================================\n\nexport const checkboxButtonContainer = css`\n display: inline-flex;\n cursor: pointer;\n user-select: none;\n position: relative;\n \n /* 隐藏原生 checkbox */\n input[type=\"checkbox\"] {\n position: absolute;\n opacity: 0;\n width: 1px;\n height: 1px;\n margin: 0;\n padding: 0;\n border: 0;\n clip: rect(0 0 0 0);\n clip-path: inset(50%);\n white-space: nowrap;\n overflow: hidden;\n left: -9999px;\n -webkit-appearance: none;\n appearance: none;\n }\n \n &[data-disabled=\"true\"] {\n cursor: not-allowed;\n }\n`;\n\n// ============================================================================\n// CheckboxButton 包装器样式(按钮外观)\n// ============================================================================\n\nexport const checkboxButtonWrapper = (theme: Theme, size: CheckboxButtonSize = 'md') => {\n const sizeToken = checkboxButtonSizeTokens[size];\n \n return css`\n position: relative;\n display: inline-flex;\n align-items: center;\n justify-content: center;\n box-sizing: border-box;\n \n /* 尺寸与间距 - 按照设计稿 */\n padding: ${sizeToken.paddingY}px ${sizeToken.paddingX}px;\n gap: ${sizeToken.gap}px;\n min-height: ${sizeToken.minHeight}px;\n \n /* 字体样式 */\n font-family: ${theme.global.typography.fontFamily};\n font-size: ${sizeToken.fontSize}px;\n line-height: ${sizeToken.lineHeight}px;\n font-weight: 400;\n white-space: nowrap;\n \n /* 边框与圆角 */\n border: 1px solid ${theme.global.colors.neutral[200]}; /* #e1e1e1 - b4 组件描边 */\n border-radius: 4px;\n \n /* 默认状态 - 未选中 */\n background-color: ${theme.global.colors.common.white};\n color: rgba(10, 24, 51, 0.7); /* f4 正文文字色 */\n \n /* 过渡动画 */\n transition: \n background-color 0.2s ease,\n border-color 0.2s ease,\n color 0.2s ease;\n \n /* Hover 状态 - 未选中 */\n &[data-hover=\"true\"]:not([data-checked=\"true\"]):not([data-disabled=\"true\"]) {\n border-color: ${theme.global.colors.blue[500]}; /* #2c6fe7 - b5 主按钮色 */\n color: ${theme.global.colors.blue[500]};\n }\n \n /* Checked 状态 - 已选中 */\n &[data-checked=\"true\"]:not([data-disabled=\"true\"]) {\n background-color: ${theme.global.colors.blue[100]}; /* #d4e9fd - b1 选中背景面 */\n border-color: ${theme.global.colors.blue[500]}; /* #2c6fe7 - b5 主按钮色 */\n color: ${theme.global.colors.blue[500]};\n }\n \n /* Disabled 未选中状态 */\n &[data-disabled=\"true\"]:not([data-checked=\"true\"]) {\n background-color: ${theme.global.colors.neutral[100]}; /* #f0f0f0 - b5 禁用背景色 */\n border-color: ${theme.global.colors.neutral[200]}; /* #e1e1e1 */\n color: rgba(10, 24, 51, 0.3); /* f8 禁用文字色 */\n }\n \n /* Disabled 选中状态 */\n &[data-disabled=\"true\"][data-checked=\"true\"] {\n background-color: ${theme.global.colors.neutral[100]}; /* #f0f0f0 - b5 禁用背景色 */\n border-color: ${theme.global.colors.neutral[400]}; /* #c2c5cc - b6 选中边框色 */\n color: rgba(10, 24, 51, 0.3); /* f8 禁用文字色 */\n }\n \n /* Focus 状态 - 键盘导航 */\n input:focus-visible + & {\n outline: 2px solid ${theme.global.colors.blue[500]};\n outline-offset: 2px;\n }\n `;\n};\n\n// ============================================================================\n// CheckboxButton 勾选标记样式(右下角)\n// ============================================================================\n\nexport const checkboxButtonCheckmark = (theme: Theme, size: CheckboxButtonSize = 'md') => {\n const { checkmarkSize, checkmarkIcon } = checkboxButtonSizeTokens[size];\n \n return css`\n position: absolute;\n bottom: 0;\n right: 0;\n \n display: flex;\n align-items: flex-end;\n justify-content: flex-end;\n \n /* 勾选标记的背景三角形区域 */\n width: ${checkmarkSize}px;\n height: ${checkmarkSize}px;\n overflow: hidden;\n \n /* 过渡动画 */\n transition: background-color 0.2s ease;\n \n /* 背景三角形 */\n &::before {\n content: '';\n position: absolute;\n bottom: 0;\n right: 0;\n width: 0;\n height: 0;\n border-style: solid;\n border-width: 0 0 ${checkmarkSize}px ${checkmarkSize}px;\n border-color: transparent transparent ${theme.global.colors.blue[500]} transparent;\n transition: border-color 0.2s ease;\n }\n \n /* 禁用状态的背景 */\n &[data-disabled=\"true\"]::before {\n border-color: transparent transparent ${theme.global.colors.neutral[400]} transparent;\n }\n \n /* 图标样式 */\n svg {\n position: relative;\n color: ${theme.global.colors.common.white};\n width: ${checkmarkIcon}px;\n height: ${checkmarkIcon}px;\n margin: 0;\n z-index: 1;\n }\n \n /* 禁用状态的图标 */\n &[data-disabled=\"true\"] svg {\n color: ${theme.global.colors.neutral[100]}; /* #f0f2f4 */\n }\n `;\n};\n\n","/**\n * CheckboxButton 组件 - 按钮风格的 Checkbox\n * \n * 特性:\n * - 按钮样式的 checkbox 外观\n * - 右下角显示勾选标记\n * - 支持受控/非受控模式\n */\n\n/** @jsxImportSource @emotion/react */\nimport React, { forwardRef, useEffect, useRef, useState } from 'react';\nimport { useTheme } from '@emotion/react';\nimport type { Theme } from '@kingsoft-ai/theme';\nimport { CheckOutline } from '@kingsoft-ai/icons';\nimport {\n checkboxButtonContainer,\n checkboxButtonWrapper,\n checkboxButtonCheckmark,\n checkboxButtonSizeTokens,\n} from './CheckboxButton.style';\nimport type { CheckboxButtonSize } from './CheckboxButton.style';\n\n// ============================================================================\n// 类型定义\n// ============================================================================\n\nexport interface CheckboxButtonProps\n extends Omit<React.InputHTMLAttributes<HTMLInputElement>, 'type' | 'size' | 'onChange' | 'indeterminate'> {\n /**\n * 是否选中\n */\n checked?: boolean;\n \n /**\n * 默认是否选中(非受控)\n */\n defaultChecked?: boolean;\n \n /**\n * 是否禁用\n */\n disabled?: boolean;\n \n /**\n * 标签文字(必填)\n */\n label: React.ReactNode;\n \n /**\n * 值改变回调\n */\n onChange?: (checked: boolean, event: React.ChangeEvent<HTMLInputElement>) => void;\n \n /**\n * 尺寸\n */\n size?: CheckboxButtonSize;\n \n /**\n * 自定义类名\n */\n className?: string;\n \n /**\n * 自定义样式\n */\n style?: React.CSSProperties;\n}\n\n// ============================================================================\n// CheckboxButton 组件\n// ============================================================================\n\n/**\n * CheckboxButton - 按钮风格的复选框组件\n * \n * 按照设计稿,呈现为按钮样式,右下角带勾选标记\n */\nexport const CheckboxButton = forwardRef<HTMLInputElement, CheckboxButtonProps>(\n (props, ref) => {\n const {\n checked: controlledChecked,\n defaultChecked = false,\n disabled = false,\n label,\n size = 'md',\n onChange,\n className,\n style,\n ...inputProps\n } = props;\n\n const theme = useTheme() as Theme;\n const inputRef = useRef<HTMLInputElement>(null);\n const [hover, setHover] = useState(false);\n \n // 内部状态管理(非受控)\n const [internalChecked, setInternalChecked] = useState(defaultChecked);\n \n // 判断是否受控\n const isControlled = controlledChecked !== undefined;\n const checked = isControlled ? controlledChecked : internalChecked;\n\n // 合并 refs\n useEffect(() => {\n if (ref) {\n if (typeof ref === 'function') {\n ref(inputRef.current);\n } else {\n ref.current = inputRef.current;\n }\n }\n }, [ref]);\n\n // 处理点击\n const handleChange = (event: React.ChangeEvent<HTMLInputElement>) => {\n if (disabled) return;\n \n const newChecked = event.target.checked;\n \n if (!isControlled) {\n setInternalChecked(newChecked);\n }\n \n onChange?.(newChecked, event);\n };\n\n const sizeToken = checkboxButtonSizeTokens[size];\n \n return (\n <label\n css={checkboxButtonContainer}\n data-disabled={disabled}\n className={className}\n style={style}\n onMouseEnter={() => !disabled && setHover(true)}\n onMouseLeave={() => !disabled && setHover(false)}\n >\n <input\n ref={inputRef}\n type=\"checkbox\"\n checked={checked}\n disabled={disabled}\n onChange={handleChange}\n {...inputProps}\n />\n \n <span\n css={checkboxButtonWrapper(theme, size)}\n data-hover={hover}\n data-checked={checked}\n data-disabled={disabled}\n data-size={size}\n >\n {/* 标签文字 */}\n {label}\n \n {/* 右下角勾选标记 */}\n {checked && (\n <span\n css={checkboxButtonCheckmark(theme, size)}\n data-disabled={disabled}\n data-size={size}\n >\n <CheckOutline size={sizeToken.checkmarkIcon} />\n </span>\n )}\n </span>\n </label>\n );\n }\n);\n\nCheckboxButton.displayName = 'CheckboxButton';\n\nexport default CheckboxButton;\n\n","/**\n * Collapse 折叠面板样式\n * \n * 基于三层 Token 体系:\n * - Tier 1 (Global): 全局基础值\n * - Tier 2 (Semantic): 语义化映射\n * - Tier 3 (Component): 组件专用 Token\n * \n * 完全还原 Figma 设计稿规范\n */\n\nimport styled from '@emotion/styled'\nimport { css, keyframes } from '@emotion/react'\n\n// ============================================================================\n// 动画定义\n// ============================================================================\n\n/**\n * 折叠内容展开动画\n */\nconst slideDown = keyframes`\n from {\n opacity: 0;\n transform: translateY(-8px);\n }\n to {\n opacity: 1;\n transform: translateY(0);\n }\n`\n\n/**\n * 折叠内容收起动画\n */\nconst slideUp = keyframes`\n from {\n opacity: 1;\n transform: translateY(0);\n }\n to {\n opacity: 0;\n transform: translateY(-8px);\n }\n`\n\n/**\n * 箭头旋转动画(展开)\n */\nexport const rotateArrowDown = keyframes`\n from {\n transform: rotate(-90deg);\n }\n to {\n transform: rotate(0deg);\n }\n`\n\n/**\n * 箭头旋转动画(收起)\n */\nexport const rotateArrowUp = keyframes`\n from {\n transform: rotate(0deg);\n }\n to {\n transform: rotate(-90deg);\n }\n`\n\n// ============================================================================\n// 样式组件\n// ============================================================================\n\n/**\n * Collapse 根容器\n * \n * 特性:\n * - 完整的边框和圆角\n * - 使用 Tier 3 组件层 Token\n */\nexport const CollapseRoot = styled.div`\n width: 100%;\n border: 1px solid ${({ theme }) => theme.components.collapse.border.default};\n border-radius: ${({ theme }) => theme.components.collapse.borderRadius};\n background: ${({ theme }) => theme.components.collapse.background.default};\n overflow: hidden;\n`\n\n/**\n * CollapseItem 容器\n * \n * 特性:\n * - 包含标题栏和内容区\n * - 底部边框作为分隔线\n */\nexport const CollapseItemWrapper = styled.div<{\n isLast?: boolean\n}>`\n border-bottom: ${({ isLast, theme }) =>\n isLast ? 'none' : `1px solid ${theme.components.collapse.divider}`};\n`\n\n/**\n * 折叠面板标题栏\n * \n * 特性:\n * - 可点击区域\n * - hover 状态背景色变化\n * - 支持键盘导航\n * - 完整的无障碍支持\n */\nexport const CollapseHeader = styled.div<{\n isExpanded: boolean\n isDisabled?: boolean\n}>`\n display: flex;\n align-items: center;\n gap: ${({ theme }) => theme.components.collapse.gap};\n padding: ${({ theme }) => theme.components.collapse.padding.header};\n cursor: ${({ isDisabled }) => (isDisabled ? 'not-allowed' : 'pointer')};\n user-select: none;\n transition: background ${({ theme }) => theme.components.collapse.transition};\n \n /* Hover 状态 */\n ${({ isDisabled, theme }) =>\n !isDisabled &&\n css`\n &:hover {\n background: ${theme.components.collapse.background.hover};\n }\n `}\n\n /* Focus 可见状态 - 键盘导航时显示 */\n &:focus-visible {\n outline: 2px solid ${({ theme }) => theme.components.collapse.arrow.default};\n outline-offset: -2px;\n }\n \n /* 禁用状态 */\n ${({ isDisabled }) =>\n isDisabled &&\n css`\n opacity: 0.5;\n `}\n`\n\n/**\n * 箭头图标容器\n * \n * 特性:\n * - 平滑的旋转动画\n * - 展开时旋转 90 度(从右箭头变为下箭头)\n */\nexport const ArrowWrapper = styled.div<{\n isExpanded: boolean\n}>`\n display: inline-flex;\n align-items: center;\n justify-content: center;\n flex-shrink: 0;\n width: ${({ theme }) => theme.components.collapse.arrowSize};\n height: ${({ theme }) => theme.components.collapse.arrowSize};\n color: ${({ theme }) => theme.components.collapse.arrow.default};\n transition: transform ${({ theme }) => theme.components.collapse.transition};\n transform: rotate(${({ isExpanded }) => (isExpanded ? '0deg' : '-90deg')});\n \n svg {\n width: 100%;\n height: 100%;\n }\n`\n\n/**\n * 标题内容区\n * \n * 特性:\n * - 弹性布局,支持多行换行\n * - 可容纳自定义内容\n */\nexport const TitleWrapper = styled.div`\n flex: 1;\n display: flex;\n align-items: center;\n gap: ${({ theme }) => theme.components.collapse.gap};\n min-width: 0; /* 允许内容收缩 */\n`\n\n/**\n * 标题文本\n * \n * 特性:\n * - 使用 Tier 3 文字颜色 Token\n * - 支持多行文本\n */\nexport const TitleText = styled.p`\n margin: 0;\n font-family: ${({ theme }) => theme.global.typography.fontFamily};\n font-size: 14px;\n line-height: 22px;\n color: ${({ theme }) => theme.components.collapse.text.title};\n white-space: pre-wrap;\n word-break: break-word;\n`\n\n/**\n * 右侧后缀内容区\n * \n * 特性:\n * - 固定在右侧\n * - 支持图标、按钮等自定义内容\n */\nexport const SuffixWrapper = styled.div`\n display: flex;\n align-items: center;\n gap: 12px;\n flex-shrink: 0;\n`\n\n/**\n * 折叠内容外层容器\n * \n * 特性:\n * - 控制高度和 overflow\n * - 平滑的高度过渡动画\n */\nexport const CollapseContentWrapper = styled.div<{\n isExpanded: boolean\n contentHeight: number\n}>`\n max-height: ${({ isExpanded, contentHeight }) =>\n isExpanded ? `${contentHeight}px` : '0px'};\n overflow: hidden;\n transition: max-height ${({ theme }) => theme.components.collapse.transition};\n`\n\n/**\n * 折叠内容内层容器\n * \n * 特性:\n * - 实际内容区域\n * - 内边距\n * - 淡入淡出动画\n */\nexport const CollapseContentInner = styled.div<{\n isExpanded: boolean\n}>`\n padding: ${({ theme }) => theme.components.collapse.padding.content};\n border-top: 1px solid ${({ theme }) => theme.components.collapse.divider};\n \n ${({ isExpanded }) =>\n isExpanded\n ? css`\n animation: ${slideDown} 0.3s cubic-bezier(0.4, 0, 0.2, 1) forwards;\n `\n : css`\n animation: ${slideUp} 0.3s cubic-bezier(0.4, 0, 0.2, 1) forwards;\n `}\n`\n\n/**\n * 折叠内容文本区域\n * \n * 特性:\n * - 使用 Tier 3 文字颜色 Token\n * - 支持富文本内容\n */\nexport const ContentText = styled.div`\n font-family: ${({ theme }) => theme.global.typography.fontFamily};\n font-size: 12px;\n line-height: 22px;\n color: ${({ theme }) => theme.components.collapse.text.default};\n \n p {\n margin: 0 0 12px 0;\n \n &:last-child {\n margin-bottom: 0;\n }\n }\n`\n\n","/**\n * Collapse 折叠面板组件\n * \n * 可以折叠/展开的内容区域\n * 支持手风琴模式(同时只能展开一个)和普通模式(可同时展开多个)\n * \n * @example\n * ```tsx\n * // 非受控模式\n * <Collapse defaultActiveKey={['1']}>\n * <CollapseItem itemKey=\"1\" title=\"标题1\">内容1</CollapseItem>\n * <CollapseItem itemKey=\"2\" title=\"标题2\">内容2</CollapseItem>\n * </Collapse>\n * \n * // 受控模式 + 手风琴\n * <Collapse\n * activeKey={activeKey}\n * onChange={setActiveKey}\n * accordion\n * >\n * <CollapseItem itemKey=\"1\" title=\"标题1\">内容1</CollapseItem>\n * <CollapseItem itemKey=\"2\" title=\"标题2\">内容2</CollapseItem>\n * </Collapse>\n * ```\n */\n\nimport { useState, Children, cloneElement, isValidElement, forwardRef } from 'react'\nimport type { ReactElement, ReactNode } from 'react'\nimport { CollapseRoot } from './Collapse.style'\nimport type { CollapseItemProps } from './CollapseItem'\n\nexport interface CollapseProps {\n /** 当前激活的面板(受控) */\n activeKey?: string | number | (string | number)[]\n /** 默认激活的面板(非受控) */\n defaultActiveKey?: string | number | (string | number)[]\n /** 手风琴模式,每次只能展开一个面板 */\n accordion?: boolean\n /** 展开/收起回调 */\n onChange?: (activeKey: string | number | (string | number)[]) => void\n /** 子元素(CollapseItem) */\n children?: ReactNode\n /** 自定义类名 */\n className?: string\n}\n\n/**\n * Collapse 折叠面板\n * \n * 特性:\n * - 支持受控和非受控模式\n * - 支持手风琴模式(accordion)\n * - 平滑的展开/收起动画\n * - 完整的键盘导航和无障碍支持\n */\nexport const Collapse = forwardRef<HTMLDivElement, CollapseProps>(\n (\n {\n activeKey: activeKeyProp,\n defaultActiveKey = [],\n accordion = false,\n onChange,\n children,\n className,\n },\n ref,\n ) => {\n // 内部状态(非受控模式)\n const [internalActiveKey, setInternalActiveKey] = useState<\n string | number | (string | number)[]\n >(defaultActiveKey)\n\n // 判断是否为受控模式\n const isControlled = activeKeyProp !== undefined\n const activeKey = isControlled ? activeKeyProp : internalActiveKey\n\n // 将 activeKey 统一转换为数组形式处理\n const activeKeys = Array.isArray(activeKey) ? activeKey : [activeKey]\n\n /**\n * 处理面板展开/收起\n */\n const handleChange = (itemKey: string | number, expanded: boolean) => {\n let newActiveKey: string | number | (string | number)[]\n\n if (accordion) {\n // 手风琴模式:只能展开一个\n newActiveKey = expanded ? itemKey : ''\n } else {\n // 普通模式:可以展开多个\n const currentKeys = Array.isArray(activeKey) ? [...activeKey] : activeKey ? [activeKey] : []\n \n if (expanded) {\n // 添加到激活列表\n newActiveKey = [...currentKeys, itemKey]\n } else {\n // 从激活列表移除\n newActiveKey = currentKeys.filter((key) => key !== itemKey)\n }\n }\n\n // 更新状态\n if (!isControlled) {\n setInternalActiveKey(newActiveKey)\n }\n\n // 触发回调\n onChange?.(newActiveKey)\n }\n\n /**\n * 渲染子元素\n */\n const renderChildren = () => {\n const items = Children.toArray(children).filter(isValidElement) as ReactElement<CollapseItemProps>[]\n const itemCount = items.length\n\n return items.map((child, index) => {\n const itemKey = child.props.itemKey\n const expanded = activeKeys.includes(itemKey)\n const last = index === itemCount - 1\n\n return cloneElement(child, {\n ...child.props,\n expanded,\n last,\n onChange: handleChange,\n })\n })\n }\n\n return (\n <CollapseRoot ref={ref} className={className} role=\"region\">\n {renderChildren()}\n </CollapseRoot>\n )\n },\n)\n\nCollapse.displayName = 'Collapse'\n\n\n\n\n\n","/**\n * CollapseItem 折叠面板项组件\n * \n * 单个可折叠的面板项,支持自定义标题、内容和后缀\n * \n * @example\n * ```tsx\n * <CollapseItem\n * title=\"折叠面板\"\n * suffix={<Tag>Red</Tag>}\n * >\n * 这是折叠面板的内容\n * </CollapseItem>\n * ```\n */\n\nimport { useRef, useEffect, useState, forwardRef } from 'react'\nimport type { ReactNode } from 'react'\nimport { ChevronDownOutline } from '@kingsoft-ai/icons'\nimport {\n CollapseItemWrapper,\n CollapseHeader,\n ArrowWrapper,\n TitleWrapper,\n TitleText,\n SuffixWrapper,\n CollapseContentWrapper,\n CollapseContentInner,\n ContentText,\n} from './Collapse.style'\n\nexport interface CollapseItemProps {\n /** 面板唯一标识 */\n itemKey: string | number\n /** 标题内容(可以是字符串或自定义 ReactNode) */\n title?: ReactNode\n /** 面板内容 */\n children?: ReactNode\n /** 右侧后缀内容(如标签、图标等) */\n suffix?: ReactNode\n /** 是否展开(受控) */\n expanded?: boolean\n /** 是否禁用 */\n disabled?: boolean\n /** 是否是最后一项(控制底部边框) */\n last?: boolean\n /** 展开/收起回调 */\n onChange?: (itemKey: string | number, expanded: boolean) => void\n /** 自定义类名 */\n className?: string\n}\n\n/**\n * CollapseItem 折叠面板项\n * \n * 特性:\n * - 平滑的展开/收起动画\n * - 支持自定义标题和后缀\n * - 完整的键盘导航支持\n * - 自适应内容高度\n */\nexport const CollapseItem = forwardRef<HTMLDivElement, CollapseItemProps>(\n (\n {\n itemKey,\n title,\n children,\n suffix,\n expanded = false,\n disabled = false,\n last = false,\n onChange,\n className,\n },\n ref,\n ) => {\n const contentRef = useRef<HTMLDivElement>(null)\n const [contentHeight, setContentHeight] = useState(0)\n\n // 计算内容高度\n useEffect(() => {\n if (contentRef.current) {\n // 使用 scrollHeight 获取实际内容高度\n setContentHeight(contentRef.current.scrollHeight)\n }\n }, [children, expanded])\n\n // 处理点击\n const handleToggle = () => {\n if (disabled) return\n onChange?.(itemKey, !expanded)\n }\n\n // 处理键盘事件\n const handleKeyDown = (event: React.KeyboardEvent) => {\n if (disabled) return\n\n // 空格或回车键切换展开状态\n if (event.key === ' ' || event.key === 'Enter') {\n event.preventDefault()\n handleToggle()\n }\n }\n\n return (\n <CollapseItemWrapper ref={ref} isLast={last} className={className}>\n {/* 标题栏 */}\n <CollapseHeader\n isExpanded={expanded}\n isDisabled={disabled}\n onClick={handleToggle}\n onKeyDown={handleKeyDown}\n role=\"button\"\n tabIndex={disabled ? -1 : 0}\n aria-expanded={expanded}\n aria-disabled={disabled}\n aria-controls={`collapse-content-${itemKey}`}\n >\n {/* 箭头图标 */}\n <ArrowWrapper isExpanded={expanded} aria-hidden=\"true\">\n <ChevronDownOutline />\n </ArrowWrapper>\n\n {/* 标题内容 */}\n <TitleWrapper>\n {typeof title === 'string' ? <TitleText>{title}</TitleText> : title}\n </TitleWrapper>\n\n {/* 右侧后缀 */}\n {suffix && <SuffixWrapper>{suffix}</SuffixWrapper>}\n </CollapseHeader>\n\n {/* 折叠内容 */}\n <CollapseContentWrapper\n isExpanded={expanded}\n contentHeight={contentHeight}\n id={`collapse-content-${itemKey}`}\n role=\"region\"\n aria-labelledby={`collapse-header-${itemKey}`}\n >\n <CollapseContentInner ref={contentRef} isExpanded={expanded}>\n {typeof children === 'string' ? (\n <ContentText>{children}</ContentText>\n ) : (\n children\n )}\n </CollapseContentInner>\n </CollapseContentWrapper>\n </CollapseItemWrapper>\n )\n },\n)\n\nCollapseItem.displayName = 'CollapseItem'\n\n\n\n\n\n","/**\n * Input 输入框样式\n * \n * 基于三层 Token 体系:\n * - Tier 1 (Global): 全局基础值\n * - Tier 2 (Semantic): 语义化映射\n * - Tier 3 (Component): 组件专用 Token\n * \n * 完全还原 Figma 设计稿规范\n */\n\nimport styled from '@emotion/styled'\nimport { css } from '@emotion/react'\nimport type { AppTheme } from '@kingsoft-ai/theme'\n\n// ============================================================================\n// 类型定义\n// ============================================================================\n\nexport const inputSizes = ['sm', 'md', 'lg'] as const\nexport type InputSize = (typeof inputSizes)[number]\n\n// ============================================================================\n// 样式辅助函数\n// ============================================================================\n\n/**\n * 获取边框颜色(根据状态优先级)\n */\nconst getBorderColor = (\n isFocused: boolean,\n isError: boolean,\n isDisabled: boolean,\n isHovered: boolean,\n theme: AppTheme\n) => {\n if (isDisabled) return theme.components.input.border.disabled\n if (isError) return theme.components.input.border.error\n if (isFocused) return theme.components.input.border.focus\n if (isHovered) return theme.components.input.border.hover\n return theme.components.input.border.default\n}\n\n/**\n * 获取输入框尺寸样式\n */\nconst getSizeStyles = (size: InputSize, theme: AppTheme) => {\n const sizeToken = theme.components.input.size[size]\n\n return css`\n height: ${sizeToken.height};\n font-size: ${sizeToken.fontSize};\n padding-inline: ${sizeToken.paddingInline};\n\n /* 图标尺寸 */\n svg {\n width: ${sizeToken.iconSize};\n height: ${sizeToken.iconSize};\n flex-shrink: 0;\n }\n `\n}\n\n// ============================================================================\n// 样式组件\n// ============================================================================\n\n/**\n * Input 根容器\n * \n * 特性:\n * - 处理边框颜色状态切换\n * - 支持全宽模式\n * - 基于三层 Token 设计\n */\nexport const InputRoot = styled.div<{\n size: InputSize\n fullWidth: boolean\n isFocused: boolean\n isError: boolean\n isDisabled: boolean\n isHovered: boolean\n}>`\n /* 基础样式 */\n position: relative;\n display: inline-flex;\n align-items: center;\n box-sizing: border-box;\n width: ${({ fullWidth }) => (fullWidth ? '100%' : '200px')};\n min-width: 200px; /* 防止内容动态变化导致宽度闪烁 */\n\n /* 边框样式 */\n border: 1px solid;\n border-color: ${({ isFocused, isError, isDisabled, isHovered, theme }) =>\n getBorderColor(isFocused, isError, isDisabled, isHovered, theme)};\n border-radius: ${({ theme }) => theme.components.input.borderRadius};\n\n /* 背景色 */\n background: ${({ isDisabled, theme }) =>\n isDisabled\n ? theme.components.input.background.disabled\n : theme.components.input.background.default};\n\n /* 过渡动画 */\n transition: border-color ${({ theme }) => theme.components.input.transition},\n background ${({ theme }) => theme.components.input.transition};\n\n /* 尺寸样式 */\n ${({ size, theme }) => getSizeStyles(size, theme)}\n\n /* 禁用状态 */\n ${({ isDisabled }) =>\n isDisabled &&\n css`\n cursor: not-allowed;\n opacity: 0.6;\n `}\n\n /* 全宽模式 */\n ${({ fullWidth }) =>\n fullWidth &&\n css`\n width: 100%;\n `}\n`\n\n/**\n * 输入框内部包装器\n * \n * 用于布局前缀图标、输入框、后缀图标、清除按钮和计数器\n */\nexport const InputWrapper = styled.div`\n display: flex;\n align-items: center;\n gap: ${({ theme }) => theme.components.input.gap};\n width: 100%;\n height: 100%;\n`\n\n/**\n * 原生 input 元素\n * \n * 特性:\n * - 无边框、背景透明(由容器处理)\n * - 支持错误状态文字颜色\n * - 占位符样式\n */\nexport const StyledInput = styled.input<{\n isError: boolean\n isDisabled: boolean\n}>`\n /* 重置默认样式 */\n flex: 1;\n min-width: 0;\n border: none;\n outline: none;\n background: transparent;\n padding: 0;\n margin: 0;\n\n /* 字体样式 */\n font-family: ${({ theme }) => theme.global.typography.fontFamily};\n font-size: inherit;\n line-height: 1.5;\n color: ${({ isError, isDisabled, theme }) => {\n if (isDisabled) return theme.components.input.text.disabled\n if (isError) return theme.components.input.text.error\n return theme.components.input.text.default\n }};\n\n /* 占位符样式 */\n &::placeholder {\n color: ${({ theme }) => theme.components.input.text.placeholder};\n opacity: 1;\n }\n\n /* 禁用状态 */\n ${({ isDisabled }) =>\n isDisabled &&\n css`\n cursor: not-allowed;\n user-select: none;\n `}\n\n /* 移除默认的 focus 样式 */\n &:focus {\n outline: none;\n }\n\n /* 移除数字输入框的箭头(Chrome, Safari, Edge, Opera) */\n &::-webkit-outer-spin-button,\n &::-webkit-inner-spin-button {\n -webkit-appearance: none;\n margin: 0;\n }\n\n /* 移除数字输入框的箭头(Firefox) */\n &[type='number'] {\n -moz-appearance: textfield;\n }\n`\n\n/**\n * 图标包装器(前缀/后缀图标)\n * \n * 特性:\n * - 灵活的尺寸适配\n * - 颜色自动继承或根据状态调整\n */\nexport const IconWrapper = styled.span<{\n isError: boolean\n isDisabled: boolean\n position: 'prefix' | 'suffix'\n}>`\n display: inline-flex;\n align-items: center;\n justify-content: center;\n flex-shrink: 0;\n line-height: 0;\n\n /* 颜色继承或根据状态调整 */\n color: ${({ isError, isDisabled, theme }) => {\n if (isDisabled) return theme.components.input.text.disabled\n if (isError) return theme.components.input.text.error\n return theme.components.input.text.default\n }};\n\n /* 确保图标大小一致 */\n svg {\n display: block;\n }\n`\n\n/**\n * 清除按钮\n * \n * 特性:\n * - 仅在有内容且未禁用时显示\n * - hover 时有反馈效果\n * - 无障碍友好\n */\nexport const ClearButton = styled.button<{\n isError: boolean\n}>`\n /* 重置按钮样式 */\n display: inline-flex;\n align-items: center;\n justify-content: center;\n flex-shrink: 0;\n padding: 0;\n margin: 0;\n border: none;\n background: transparent;\n cursor: pointer;\n outline: none;\n line-height: 0;\n\n /* 颜色 */\n color: ${({ isError, theme }) =>\n isError\n ? theme.components.input.text.error\n : theme.components.input.text.counter};\n\n /* 过渡动画 */\n transition: opacity ${({ theme }) => theme.components.input.transition},\n color ${({ theme }) => theme.components.input.transition};\n\n /* hover 状态 */\n &:hover {\n opacity: 0.7;\n }\n\n /* active 状态 */\n &:active {\n opacity: 0.5;\n }\n\n /* focus 可见状态 */\n &:focus-visible {\n outline: 2px solid ${({ theme }) => theme.components.input.border.focus};\n outline-offset: 2px;\n border-radius: 2px;\n }\n\n /* 图标尺寸 */\n svg {\n width: 16px;\n height: 16px;\n display: block;\n }\n`\n\n/**\n * 字符计数器\n * \n * 显示格式:当前字数/最大字数\n */\nexport const Counter = styled.span<{\n isError: boolean\n isDisabled: boolean\n}>`\n display: inline-flex;\n align-items: center;\n flex-shrink: 0;\n font-family: ${({ theme }) => theme.global.typography.fontFamily};\n font-size: inherit;\n line-height: 1.5;\n white-space: nowrap;\n user-select: none;\n\n /* 颜色 */\n color: ${({ isError, isDisabled, theme }) => {\n if (isDisabled) return theme.components.input.text.disabled\n if (isError) return theme.components.input.text.error\n return theme.components.input.text.counter\n }};\n`\n\n","/**\n * Input 输入框组件\n * \n * 基于 react-aria 实现无障碍访问的输入框组件\n * 完全符合 Figma 设计稿规范\n * \n * @example\n * ```tsx\n * <Input\n * size=\"md\"\n * placeholder=\"请输入内容\"\n * clearable\n * showCounter\n * maxLength={100}\n * />\n * ```\n */\n\nimport { forwardRef, useRef, useState, type ReactNode, type ChangeEvent, type FocusEvent } from 'react'\nimport {\n InputRoot,\n InputWrapper,\n StyledInput,\n IconWrapper,\n ClearButton,\n Counter,\n inputSizes,\n type InputSize,\n} from './Input.style'\n\n// 导出常量供外部使用\nexport const SIZES = inputSizes\n\nexport type InputProps = Omit<\n React.InputHTMLAttributes<HTMLInputElement>,\n 'size' | 'prefix'\n> & {\n /** 输入框尺寸:小号(24px)、标准(32px)、大号(40px) */\n size?: InputSize\n /** 前缀图标 */\n prefix?: ReactNode\n /** 后缀图标 */\n suffix?: ReactNode\n /** 是否显示清除按钮(有值时显示) */\n clearable?: boolean\n /** 错误状态 */\n error?: boolean\n /** 错误提示信息 */\n errorMessage?: ReactNode\n /** 是否显示字符计数器 */\n showCounter?: boolean\n /** 全宽输入框 */\n fullWidth?: boolean\n /** 是否禁用 */\n disabled?: boolean\n /** 输入框标签 */\n label?: ReactNode\n /** 输入框描述 */\n description?: ReactNode\n}\n\n/**\n * 清除图标 SVG\n */\nconst CloseIcon = () => (\n <svg\n width=\"16\"\n height=\"16\"\n viewBox=\"0 0 16 16\"\n fill=\"none\"\n xmlns=\"http://www.w3.org/2000/svg\"\n >\n <path\n d=\"M12 4L4 12M4 4L12 12\"\n stroke=\"currentColor\"\n strokeWidth=\"1.5\"\n strokeLinecap=\"round\"\n strokeLinejoin=\"round\"\n />\n </svg>\n)\n\n/**\n * Input 输入框组件\n * \n * 基于 Figma 设计规范实现的输入框组件,支持多种尺寸和状态\n */\nexport const Input = forwardRef<HTMLInputElement, InputProps>(\n (\n {\n size = 'md',\n prefix,\n suffix,\n clearable = false,\n error = false,\n errorMessage,\n showCounter = false,\n fullWidth = false,\n disabled,\n className,\n type = 'text',\n value,\n defaultValue,\n onChange,\n onFocus,\n onBlur,\n maxLength,\n label,\n description,\n id,\n 'aria-label': ariaLabel,\n 'aria-describedby': ariaDescribedBy,\n ...restProps\n },\n forwardedRef\n ) => {\n const innerRef = useRef<HTMLInputElement>(null)\n const ref = (forwardedRef || innerRef) as React.RefObject<HTMLInputElement>\n \n // 生成唯一 ID(只在组件初始化时生成一次)\n const generatedId = useRef(`input-${Math.random().toString(36).slice(2, 9)}`)\n\n // 内部状态管理(用于 UI 反馈)\n const [isFocused, setIsFocused] = useState(false)\n const [isHovered, setIsHovered] = useState(false)\n const [internalValue, setInternalValue] = useState(defaultValue || '')\n\n // 获取当前值(受控或非受控)\n const isControlled = value !== undefined\n const currentValue = isControlled ? String(value) : String(internalValue)\n\n // 处理输入变化\n const handleChange = (e: ChangeEvent<HTMLInputElement>) => {\n if (!isControlled) {\n setInternalValue(e.target.value)\n }\n onChange?.(e)\n }\n\n // 处理焦点事件\n const handleFocus = (e: FocusEvent<HTMLInputElement>) => {\n setIsFocused(true)\n onFocus?.(e)\n }\n\n const handleBlur = (e: FocusEvent<HTMLInputElement>) => {\n setIsFocused(false)\n onBlur?.(e)\n }\n\n // 清除按钮点击处理\n const handleClear = () => {\n if (disabled || !ref.current) return\n\n // 创建合成事件以触发 onChange\n const nativeInputValueSetter = Object.getOwnPropertyDescriptor(\n window.HTMLInputElement.prototype,\n 'value'\n )?.set\n nativeInputValueSetter?.call(ref.current, '')\n\n const event = new Event('input', { bubbles: true })\n Object.defineProperty(event, 'target', {\n writable: false,\n value: ref.current,\n })\n \n if (!isControlled) {\n setInternalValue('')\n }\n onChange?.(event as unknown as ChangeEvent<HTMLInputElement>)\n\n // 聚焦回输入框\n ref.current.focus()\n }\n\n // 计算字符数\n const currentLength = currentValue.length\n const showClearButton = clearable && currentLength > 0 && !disabled\n\n // 使用提供的 ID 或生成的唯一 ID\n const inputId = id || generatedId.current\n const descriptionId = description ? `${inputId}-description` : undefined\n const errorId = errorMessage && error ? `${inputId}-error` : undefined\n \n const describedBy = [ariaDescribedBy, descriptionId, errorId]\n .filter(Boolean)\n .join(' ') || undefined\n\n return (\n <div>\n {/* Label 如果提供 */}\n {label && (\n <label htmlFor={inputId} style={{ display: 'block', marginBottom: 4 }}>\n {label}\n </label>\n )}\n\n <InputRoot\n size={size}\n fullWidth={fullWidth}\n isFocused={isFocused}\n isError={error}\n isDisabled={!!disabled}\n isHovered={isHovered}\n className={className}\n onMouseEnter={() => setIsHovered(true)}\n onMouseLeave={() => setIsHovered(false)}\n >\n <InputWrapper>\n {/* 前缀图标 */}\n {prefix && (\n <IconWrapper\n isError={error}\n isDisabled={!!disabled}\n position=\"prefix\"\n aria-hidden=\"true\"\n >\n {prefix}\n </IconWrapper>\n )}\n\n {/* 输入框 */}\n <StyledInput\n {...restProps}\n ref={ref}\n id={inputId}\n type={type}\n value={value}\n defaultValue={defaultValue}\n onChange={handleChange}\n onFocus={handleFocus}\n onBlur={handleBlur}\n maxLength={maxLength}\n disabled={disabled}\n aria-label={ariaLabel}\n aria-describedby={describedBy}\n aria-invalid={error}\n isError={error}\n isDisabled={!!disabled}\n />\n\n {/* 清除按钮 */}\n {showClearButton && (\n <ClearButton\n type=\"button\"\n onClick={handleClear}\n aria-label=\"清除内容\"\n isError={error}\n tabIndex={-1}\n >\n <CloseIcon />\n </ClearButton>\n )}\n\n {/* 后缀图标 */}\n {suffix && (\n <IconWrapper\n isError={error}\n isDisabled={!!disabled}\n position=\"suffix\"\n aria-hidden=\"true\"\n >\n {suffix}\n </IconWrapper>\n )}\n\n {/* 字符计数器 */}\n {showCounter && maxLength !== undefined && (\n <Counter\n isError={error}\n isDisabled={!!disabled}\n aria-live=\"polite\"\n aria-atomic=\"true\"\n >\n {currentLength}/{maxLength}\n </Counter>\n )}\n </InputWrapper>\n </InputRoot>\n\n {/* Description 如果提供 */}\n {description && (\n <div id={descriptionId} style={{ marginTop: 4, fontSize: 12 }}>\n {description}\n </div>\n )}\n\n {/* Error Message 如果提供 */}\n {errorMessage && error && (\n <div\n id={errorId}\n role=\"alert\"\n style={{ marginTop: 4, fontSize: 12, color: 'inherit' }}\n >\n {errorMessage}\n </div>\n )}\n </div>\n )\n }\n)\n\nInput.displayName = 'Input'\n\n","/**\n * Menu 菜单样式\n * \n * 基于三层 Token 体系的侧边栏导航菜单组件样式\n * 完全还原 Figma 设计稿规范\n */\n\nimport styled from '@emotion/styled'\n\n// ============================================================================\n// 类型定义\n// ============================================================================\n\nexport interface MenuStyleProps {\n collapsed?: boolean\n}\n\nexport interface MenuItemStyleProps {\n active?: boolean\n disabled?: boolean\n isSubItem?: boolean\n collapsed?: boolean\n}\n\n// ============================================================================\n// Menu 容器样式\n// ============================================================================\n\n/**\n * Menu 根容器\n * \n * 特性:\n * - 支持展开/折叠状态\n * - 固定宽度\n * - 滚动区域\n */\nexport const MenuContainer = styled.div<MenuStyleProps>`\n display: flex;\n flex-direction: column;\n width: ${({ collapsed, theme }) => \n collapsed ? theme.components.menu.container.width.collapsed : theme.components.menu.container.width.expanded};\n height: 100%;\n background: ${({ theme }) => theme.components.menu.container.background};\n transition: width 0.3s cubic-bezier(0.4, 0, 0.2, 1);\n overflow: hidden;\n\n /* 滚动条样式 */\n &::-webkit-scrollbar {\n width: ${({ theme }) => theme.components.menu.scrollbar.width};\n }\n\n &::-webkit-scrollbar-track {\n background: ${({ theme }) => theme.components.menu.scrollbar.trackColor};\n }\n\n &::-webkit-scrollbar-thumb {\n background: ${({ theme }) => theme.components.menu.scrollbar.thumbColor};\n border-radius: 4px;\n }\n\n &::-webkit-scrollbar-thumb:hover {\n background: rgba(0, 0, 0, 0.3);\n }\n`\n\n/**\n * Menu 内容滚动区域\n */\nexport const MenuContent = styled.div`\n flex: 1;\n overflow-y: auto;\n overflow-x: hidden;\n padding: ${({ theme }) => theme.components.menu.container.padding};\n padding-top: 0;\n\n /* 滚动条样式 */\n &::-webkit-scrollbar {\n width: ${({ theme }) => theme.components.menu.scrollbar.width};\n }\n\n &::-webkit-scrollbar-track {\n background: ${({ theme }) => theme.components.menu.scrollbar.trackColor};\n }\n\n &::-webkit-scrollbar-thumb {\n background: ${({ theme }) => theme.components.menu.scrollbar.thumbColor};\n border-radius: 4px;\n }\n\n &::-webkit-scrollbar-thumb:hover {\n background: rgba(0, 0, 0, 0.3);\n }\n`\n\n// ============================================================================\n// MenuItem 样式\n// ============================================================================\n\n/**\n * MenuItem 容器\n * \n * 支持:\n * - 激活状态\n * - 禁用状态\n * - 子菜单缩进\n */\nexport const MenuItemContainer = styled.button<MenuItemStyleProps>`\n display: flex;\n align-items: center;\n justify-content: flex-start;\n width: 100%;\n height: ${({ theme }) => theme.components.menu.item.height};\n padding-inline: ${({ theme, isSubItem }) => \n isSubItem ? theme.components.menu.subItem.paddingLeft : theme.components.menu.item.paddingInline};\n gap: ${({ theme }) => theme.components.menu.item.gap};\n border: none;\n border-radius: ${({ theme }) => theme.components.menu.item.borderRadius};\n position: relative;\n overflow: hidden;\n background: ${({ theme, active, isSubItem, collapsed }) =>\n collapsed\n ? 'transparent'\n : active\n ? 'transparent'\n : isSubItem\n ? theme.components.menu.subItem.background.default\n : theme.components.menu.item.background.default};\n color: ${({ theme, active, collapsed }) =>\n collapsed && active\n ? theme.semantic.colors.brand.primaryActive\n : active\n ? theme.components.menu.item.text.active\n : theme.components.menu.item.text.default};\n font-size: ${({ theme }) => theme.components.menu.item.fontSize};\n font-weight: ${({ theme }) => theme.components.menu.item.fontWeight};\n font-family: ${({ theme }) => theme.global.typography.fontFamily};\n text-align: left;\n cursor: ${({ disabled }) => (disabled ? 'not-allowed' : 'pointer')};\n transition: ${({ theme }) => theme.components.menu.item.transition};\n user-select: none;\n outline: none;\n\n &::before {\n content: '';\n position: absolute;\n inset: 0;\n border-radius: inherit;\n background: ${({ theme, isSubItem }) =>\n isSubItem\n ? theme.components.menu.subItem.background.active\n : theme.components.menu.item.background.active};\n transform-origin: left center;\n transform: ${({ active, collapsed }) => (collapsed ? 'scaleX(0)' : active ? 'scaleX(1)' : 'scaleX(0)')};\n opacity: ${({ active, collapsed }) => (collapsed ? 0 : active ? 1 : 0)};\n transition: transform 0.35s cubic-bezier(0.4, 0, 0.2, 1), opacity 0.2s ease;\n z-index: 0;\n }\n\n &::after {\n content: '';\n position: absolute;\n inset: 0;\n border-radius: inherit;\n background: ${({ theme, isSubItem }) =>\n isSubItem\n ? theme.components.menu.subItem.background.hover\n : theme.components.menu.item.background.hover};\n transform: translateX(-100%);\n opacity: 0;\n transition: transform 0.3s ease, opacity 0.2s ease;\n z-index: 0;\n }\n\n & > * {\n position: relative;\n z-index: 1;\n }\n\n /* Hover 状态 */\n &:hover:not(:disabled) {\n background: ${({ theme, active, isSubItem, collapsed }) =>\n collapsed\n ? 'transparent'\n : active\n ? 'transparent'\n : isSubItem\n ? theme.components.menu.subItem.background.hover\n : theme.components.menu.item.background.hover};\n color: ${({ theme, active, collapsed }) =>\n collapsed\n ? theme.semantic.colors.brand.primaryActive\n : active\n ? theme.components.menu.item.text.active\n : theme.components.menu.item.text.hover};\n }\n\n &:hover:not(:disabled)::after {\n transform: ${({ collapsed, active }) =>\n !collapsed && !active ? 'translateX(0)' : 'translateX(-100%)'};\n opacity: ${({ collapsed, active }) => (!collapsed && !active ? 1 : 0)};\n }\n\n /* 禁用状态 */\n &:disabled {\n opacity: 0.5;\n cursor: not-allowed;\n }\n\n /* Focus 状态 */\n &:focus-visible {\n outline: 2px solid ${({ theme }) => theme.semantic.colors.brand.primary};\n outline-offset: -2px;\n }\n`\n\n/**\n * MenuItem 图标容器\n */\nexport const MenuItemIcon = styled.span`\n display: inline-flex;\n align-items: center;\n justify-content: center;\n flex-shrink: 0;\n width: ${({ theme }) => theme.components.menu.item.iconSize};\n height: ${({ theme }) => theme.components.menu.item.iconSize};\n\n svg {\n width: 100%;\n height: 100%;\n }\n`\n\n/**\n * MenuItem 文字标签\n */\nexport const MenuItemLabel = styled.span<{ collapsed?: boolean }>`\n flex: 1;\n overflow: hidden;\n text-overflow: ellipsis;\n white-space: nowrap;\n opacity: ${({ collapsed }) => (collapsed ? 0 : 1)};\n transition: opacity 0.2s ease;\n`\n\n/**\n * MenuItem 箭头图标\n */\nexport const MenuItemArrow = styled.span<{ collapsed?: boolean; expanded?: boolean }>`\n display: inline-flex;\n align-items: center;\n justify-content: center;\n flex-shrink: 0;\n width: 14px;\n height: 14px;\n opacity: ${({ collapsed }) => (collapsed ? 0 : 1)};\n transition: transform 0.2s ease, opacity 0.2s ease;\n transform: ${({ expanded }) => (expanded ? 'rotate(90deg)' : 'rotate(0deg)')};\n\n svg {\n width: 100%;\n height: 100%;\n }\n`\n\n// ============================================================================\n// MenuGroup 样式\n// ============================================================================\n\n/**\n * MenuGroup 容器\n */\nexport const MenuGroupContainer = styled.div`\n display: flex;\n flex-direction: column;\n gap: ${({ theme }) => theme.components.menu.group.gap};\n margin-top: ${({ theme }) => theme.components.menu.group.marginTop};\n\n &:first-of-type {\n margin-top: 0;\n }\n`\n\n/**\n * MenuGroup 标题\n */\nexport const MenuGroupTitle = styled.div<{ collapsed?: boolean }>`\n display: flex;\n align-items: center;\n height: ${({ theme }) => theme.components.menu.groupTitle.height};\n padding-inline: ${({ theme }) => theme.components.menu.groupTitle.paddingInline};\n margin-bottom: ${({ theme }) => theme.components.menu.groupTitle.marginBottom};\n font-size: ${({ theme }) => theme.components.menu.groupTitle.fontSize};\n font-weight: ${({ theme }) => theme.components.menu.groupTitle.fontWeight};\n color: ${({ theme }) => theme.components.menu.groupTitle.color};\n opacity: ${({ collapsed }) => (collapsed ? 0 : 1)};\n transition: opacity 0.2s ease;\n overflow: hidden;\n\n /* 分割线 */\n &::after {\n content: '';\n flex: 1;\n height: 1px;\n background: ${({ theme }) => theme.semantic.colors.border.primary};\n margin-left: 8px;\n opacity: ${({ collapsed }) => (collapsed ? 0 : 1)};\n }\n`\n\n/**\n * MenuGroup 项目容器\n */\nexport const MenuGroupItems = styled.div`\n display: flex;\n flex-direction: column;\n gap: ${({ theme }) => theme.components.menu.group.gap};\n`\n\n// ============================================================================\n// SubMenuPopover 悬浮层样式\n// ============================================================================\n\n/**\n * SubMenuPopover 容器\n * \n * 折叠状态下的二级菜单悬浮层\n */\nexport const SubMenuPopoverContainer = styled.div`\n position: fixed;\n z-index: 9999;\n min-width: 200px;\n background: ${({ theme }) => theme.components.menu.popover.background};\n border: ${({ theme }) => theme.components.menu.popover.border};\n border-radius: ${({ theme }) => theme.components.menu.popover.borderRadius};\n box-shadow: ${({ theme }) => theme.components.menu.popover.boxShadow};\n padding: ${({ theme }) => theme.components.menu.popover.padding};\n animation: slideIn 0.2s cubic-bezier(0.4, 0, 0.2, 1);\n\n @keyframes slideIn {\n from {\n opacity: 0;\n transform: translateX(-8px);\n }\n to {\n opacity: 1;\n transform: translateX(0);\n }\n }\n`\n\n/**\n * SubMenuPopover 内容区域\n */\nexport const SubMenuPopoverContent = styled.div`\n display: flex;\n flex-direction: column;\n gap: ${({ theme }) => theme.components.menu.group.gap};\n`\n\n/**\n * SubMenuPopover 菜单项容器\n * \n * 悬浮层中的菜单项样式\n */\nexport const SubMenuPopoverItem = styled.button<{ active?: boolean }>`\n display: flex;\n align-items: center;\n justify-content: flex-start;\n width: 100%;\n height: ${({ theme }) => theme.components.menu.item.height};\n padding-inline: ${({ theme }) => theme.components.menu.item.paddingInline};\n gap: ${({ theme }) => theme.components.menu.item.gap};\n border: none;\n border-radius: ${({ theme }) => theme.components.menu.item.borderRadius};\n background: ${({ theme, active }) =>\n active\n ? theme.components.menu.popover.item.background.active\n : theme.components.menu.popover.item.background.default};\n color: ${({ theme, active }) =>\n active\n ? theme.components.menu.popover.item.text.active\n : theme.components.menu.popover.item.text.default};\n font-size: ${({ theme }) => theme.components.menu.item.fontSize};\n font-weight: ${({ theme }) => theme.components.menu.item.fontWeight};\n font-family: ${({ theme }) => theme.global.typography.fontFamily};\n text-align: left;\n cursor: pointer;\n transition: ${({ theme }) => theme.components.menu.item.transition};\n user-select: none;\n outline: none;\n white-space: nowrap;\n\n &:hover {\n background: ${({ theme, active }) =>\n active\n ? theme.components.menu.popover.item.background.active\n : theme.components.menu.popover.item.background.hover};\n color: ${({ theme, active }) =>\n active\n ? theme.components.menu.popover.item.text.active\n : theme.components.menu.popover.item.text.hover};\n }\n\n &:focus-visible {\n outline: 2px solid ${({ theme }) => theme.semantic.colors.brand.primary};\n outline-offset: -2px;\n }\n`\n\n","/**\n * Menu 侧边栏菜单组件\n * \n * 基于 Figma 设计稿的导航菜单组件\n * 支持展开/折叠、分组、子菜单等功能\n */\n\nimport { forwardRef, type ReactNode } from 'react'\nimport { MenuContainer, MenuContent } from './Menu.style'\n\nexport interface MenuProps {\n /** 菜单是否折叠 */\n collapsed?: boolean\n /** 子元素(自定义内容、MenuGroup、MenuItem等) */\n children: ReactNode\n /** 自定义类名 */\n className?: string\n /** 自定义样式 */\n style?: React.CSSProperties\n}\n\n/**\n * Menu 侧边栏菜单组件\n * \n * 主容器组件,用于包裹所有菜单相关子组件\n * \n * @example\n * ```tsx\n * <Menu collapsed={false}>\n * <div style={{ padding: 24 }}>自定义头部</div>\n *\n * <MenuGroup title=\"主要功能\">\n * <MenuItem icon={<HomeIcon />} label=\"首页\" active />\n * <MenuItem icon={<UserIcon />} label=\"用户\" />\n * </MenuGroup>\n * \n * <div style={{ padding: 24 }}>自定义底部</div>\n * </Menu>\n * ```\n */\nexport const Menu = forwardRef<HTMLDivElement, MenuProps>(\n ({ collapsed = false, children, className, style }, ref) => {\n return (\n <MenuContainer\n ref={ref}\n collapsed={collapsed}\n className={className}\n style={style}\n role=\"navigation\"\n aria-label=\"主导航\"\n >\n <MenuContent role=\"menu\">{children}</MenuContent>\n </MenuContainer>\n )\n },\n)\n\nMenu.displayName = 'Menu'\n\n","/**\n * SubMenuPopover 子菜单悬浮层组件\n * \n * 用于在折叠状态下显示二级菜单\n */\n\nimport { type ReactNode, useEffect, useRef, useState } from 'react'\n// @ts-ignore - react-dom type issue\nimport { createPortal } from 'react-dom'\nimport { SubMenuPopoverContainer, SubMenuPopoverContent } from './Menu.style'\n\nexport interface SubMenuPopoverProps {\n /** 是否显示 */\n visible: boolean\n /** 触发元素的引用 */\n anchorRef: React.RefObject<HTMLElement>\n /** 子菜单内容 */\n children: ReactNode\n /** 关闭回调 */\n onClose?: () => void\n /** 鼠标移入事件 */\n onMouseEnter?: () => void\n /** 鼠标移出事件 */\n onMouseLeave?: () => void\n}\n\n/**\n * SubMenuPopover 子菜单悬浮层组件\n * \n * 在折叠状态下,鼠标悬浮一级菜单时展示二级菜单\n */\nexport const SubMenuPopover = ({\n visible,\n anchorRef,\n children,\n onClose,\n onMouseEnter,\n onMouseLeave,\n}: SubMenuPopoverProps) => {\n const popoverRef = useRef<HTMLDivElement>(null)\n const [position, setPosition] = useState({ top: 0, left: 0 })\n\n // 计算弹出层位置\n useEffect(() => {\n if (!visible || !anchorRef.current) return\n\n const updatePosition = () => {\n if (!anchorRef.current) return\n\n const rect = anchorRef.current.getBoundingClientRect()\n const gap = 4 // 与触发元素的间距\n\n setPosition({\n top: rect.top,\n left: rect.right + gap,\n })\n }\n\n updatePosition()\n\n // 监听滚动和窗口大小变化\n window.addEventListener('scroll', updatePosition, true)\n window.addEventListener('resize', updatePosition)\n\n return () => {\n window.removeEventListener('scroll', updatePosition, true)\n window.removeEventListener('resize', updatePosition)\n }\n }, [visible, anchorRef])\n\n // 处理点击外部关闭\n useEffect(() => {\n if (!visible) return\n\n const handleClickOutside = (e: MouseEvent) => {\n if (\n popoverRef.current &&\n !popoverRef.current.contains(e.target as Node) &&\n anchorRef.current &&\n !anchorRef.current.contains(e.target as Node)\n ) {\n onClose?.()\n }\n }\n\n // 延迟添加监听器,避免立即触发\n const timer = setTimeout(() => {\n document.addEventListener('mousedown', handleClickOutside)\n }, 100)\n\n return () => {\n clearTimeout(timer)\n document.removeEventListener('mousedown', handleClickOutside)\n }\n }, [visible, onClose, anchorRef])\n\n if (!visible) return null\n\n return createPortal(\n <SubMenuPopoverContainer\n ref={popoverRef}\n style={{\n top: position.top,\n left: position.left,\n }}\n role=\"menu\"\n aria-label=\"子菜单\"\n onMouseEnter={onMouseEnter}\n onMouseLeave={onMouseLeave}\n >\n <SubMenuPopoverContent>{children}</SubMenuPopoverContent>\n </SubMenuPopoverContainer>,\n document.body,\n )\n}\n\nSubMenuPopover.displayName = 'SubMenuPopover'\n\n","/**\n * MenuItem 菜单项组件\n * \n * 基于 react-aria 实现无障碍访问的菜单项\n * 支持图标、文字、箭头指示器、悬浮子菜单\n */\n\nimport { forwardRef, type ReactNode, useRef, useState } from 'react'\nimport {\n MenuItemContainer,\n MenuItemIcon,\n MenuItemLabel,\n MenuItemArrow,\n} from './Menu.style'\nimport { SubMenuPopover } from './SubMenuPopover'\n\nexport interface MenuItemProps {\n /** 唯一标识符 */\n id?: string\n /** 菜单项图标 */\n icon?: ReactNode\n /** 菜单项文字 */\n label: string\n /** 是否激活/选中 */\n active?: boolean\n /** 是否禁用 */\n disabled?: boolean\n /** 是否为子菜单项 */\n isSubItem?: boolean\n /** 是否显示箭头(用于可展开项) */\n showArrow?: boolean\n /** 箭头是否展开 */\n arrowExpanded?: boolean\n /** 菜单是否折叠 */\n collapsed?: boolean\n /** 子菜单内容(折叠状态下悬浮显示) */\n subMenu?: ReactNode\n /** 点击事件 */\n onClick?: () => void\n /** 自定义类名 */\n className?: string\n}\n\n/**\n * MenuItem 菜单项组件\n * \n * 用于侧边栏导航的单个菜单项\n * 支持激活状态、禁用状态、子菜单缩进、折叠时的悬浮子菜单\n */\nexport const MenuItem = forwardRef<HTMLButtonElement, MenuItemProps>(\n (\n {\n id,\n icon,\n label,\n active = false,\n disabled = false,\n isSubItem = false,\n showArrow = false,\n arrowExpanded = false,\n collapsed = false,\n subMenu,\n onClick,\n className,\n },\n ref,\n ) => {\n const itemRef = useRef<HTMLButtonElement>(null)\n const [showPopover, setShowPopover] = useState(false)\n const hoverTimerRef = useRef<ReturnType<typeof setTimeout> | undefined>(undefined)\n const closeTimerRef = useRef<ReturnType<typeof setTimeout> | undefined>(undefined)\n\n // 清除所有定时器\n const clearTimers = () => {\n if (hoverTimerRef.current) {\n clearTimeout(hoverTimerRef.current)\n hoverTimerRef.current = undefined\n }\n if (closeTimerRef.current) {\n clearTimeout(closeTimerRef.current)\n closeTimerRef.current = undefined\n }\n }\n\n // 处理鼠标进入\n const handleMouseEnter = () => {\n clearTimers()\n \n if (collapsed && subMenu) {\n if (showPopover) return\n\n // 延迟显示,避免误触\n hoverTimerRef.current = setTimeout(() => {\n setShowPopover(true)\n }, 200)\n }\n }\n\n // 处理鼠标离开\n const handleMouseLeave = () => {\n clearTimers()\n \n // 延迟隐藏,让用户有时间移动到悬浮层\n closeTimerRef.current = setTimeout(() => {\n setShowPopover(false)\n }, 100)\n }\n\n return (\n <>\n <MenuItemContainer\n ref={(node) => {\n // 合并 refs\n if (typeof ref === 'function') {\n ref(node)\n } else if (ref) {\n ref.current = node\n }\n if (node) {\n itemRef.current = node\n }\n }}\n id={id}\n active={active}\n disabled={disabled}\n isSubItem={isSubItem}\n onClick={onClick}\n collapsed={collapsed}\n className={className}\n role=\"menuitem\"\n aria-disabled={disabled}\n aria-current={active ? 'page' : undefined}\n aria-haspopup={collapsed && subMenu ? 'menu' : undefined}\n type=\"button\"\n onMouseEnter={handleMouseEnter}\n onMouseLeave={handleMouseLeave}\n >\n {/* 图标 */}\n {icon && <MenuItemIcon aria-hidden=\"true\">{icon}</MenuItemIcon>}\n\n {/* 文字标签 */}\n <MenuItemLabel collapsed={collapsed}>{label}</MenuItemLabel>\n\n {/* 箭头指示器 */}\n {showArrow && !collapsed && (\n <MenuItemArrow collapsed={collapsed} expanded={arrowExpanded} aria-hidden=\"true\">\n <svg\n width=\"14\"\n height=\"14\"\n viewBox=\"0 0 14 14\"\n fill=\"none\"\n xmlns=\"http://www.w3.org/2000/svg\"\n >\n <path\n d=\"M5.25 3.5L8.75 7L5.25 10.5\"\n stroke=\"currentColor\"\n strokeWidth=\"1.5\"\n strokeLinecap=\"round\"\n strokeLinejoin=\"round\"\n />\n </svg>\n </MenuItemArrow>\n )}\n </MenuItemContainer>\n\n {/* 折叠状态下的悬浮子菜单 */}\n {collapsed && subMenu && (\n <SubMenuPopover\n visible={showPopover}\n anchorRef={itemRef as React.RefObject<HTMLElement>}\n onClose={() => setShowPopover(false)}\n onMouseEnter={handleMouseEnter}\n onMouseLeave={handleMouseLeave}\n >\n {subMenu}\n </SubMenuPopover>\n )}\n </>\n )\n },\n)\n\nMenuItem.displayName = 'MenuItem'\n\n","/**\n * MenuGroup 菜单分组组件\n * \n * 用于对菜单项进行分组,并显示分组标题\n */\n\nimport { type ReactNode } from 'react'\nimport {\n MenuGroupContainer,\n MenuGroupTitle,\n MenuGroupItems,\n} from './Menu.style'\n\nexport interface MenuGroupProps {\n /** 分组标题 */\n title?: string\n /** 子元素(菜单项) */\n children: ReactNode\n /** 菜单是否折叠 */\n collapsed?: boolean\n /** 自定义类名 */\n className?: string\n}\n\n/**\n * MenuGroup 菜单分组组件\n * \n * 用于将相关的菜单项组织在一起\n * 可选的分组标题和分割线\n */\nexport const MenuGroup = ({\n title,\n children,\n collapsed = false,\n className,\n}: MenuGroupProps) => {\n return (\n <MenuGroupContainer className={className} role=\"group\" aria-label={title}>\n {/* 分组标题 */}\n {title && (\n <MenuGroupTitle collapsed={collapsed} aria-hidden={collapsed}>\n {title}\n </MenuGroupTitle>\n )}\n\n {/* 菜单项列表 */}\n <MenuGroupItems>{children}</MenuGroupItems>\n </MenuGroupContainer>\n )\n}\n\nMenuGroup.displayName = 'MenuGroup'\n\n","/**\n * SubMenuItem 子菜单项组件\n * \n * 用于在悬浮层中展示的子菜单项\n */\n\nimport { SubMenuPopoverItem } from './Menu.style'\n\nexport interface SubMenuItemProps {\n /** 唯一标识符 */\n id?: string\n /** 菜单项文字 */\n label: string\n /** 是否激活/选中 */\n active?: boolean\n /** 点击事件 */\n onClick?: () => void\n /** 自定义类名 */\n className?: string\n}\n\n/**\n * SubMenuItem 子菜单项组件\n * \n * 用于悬浮层中的子菜单项\n */\nexport const SubMenuItem = ({\n id,\n label,\n active = false,\n onClick,\n className,\n}: SubMenuItemProps) => {\n return (\n <SubMenuPopoverItem\n id={id}\n active={active}\n onClick={onClick}\n className={className}\n role=\"menuitem\"\n aria-current={active ? 'page' : undefined}\n type=\"button\"\n >\n {label}\n </SubMenuPopoverItem>\n )\n}\n\nSubMenuItem.displayName = 'SubMenuItem'\n\n","import styled from '@emotion/styled'\n// 提取公共禁用样式函数\nconst getDisabledStyles = (theme: any) => ({\n cursor: 'not-allowed',\n backgroundColor: theme.components.numberfield?.background?.disabled ?? '#f5f5f5',\n color: theme.components.numberfield?.text?.disabled ?? '#9aa0a6',\n opacity: 0.6\n})\n\nexport const NumberRoot = styled.div`\n display: inline-flex;\n flex-direction: column;\n`\n\nexport const Label = styled.label`\n margin-bottom: 6px;\n font-size: 12px;\n`\n\n// 修改NumberGroup组件的类型定义,添加controls属性\n export const NumberGroup = styled.div<{ \n size?: 'md' | 'lg'; \n disabled?: boolean;\n controls?: 'buttons' | 'arrows' // 添加controls属性\n }>`\n display: inline-flex;\n align-items: center;\n justify-content: space-between;\n text-align: center;\n gap: ${({ theme }) => theme.components.numberfield?.control?.side?.gap ?? '8px'};\n padding: ${({ theme }) => theme.components.numberfield?.control?.side?.inset};\n border: 1px solid ${({ theme }) => theme.components.numberfield?.border?.default ?? '#d9d9d9'};\n border-radius: ${({ theme }) => theme.components.numberfield?.borderRadius ?? '4px'};\n color: ${({ theme }) => theme.components.numberfield?.text?.default ?? '#0A1833'};\n background: ${({ disabled, theme }) => disabled ? theme.components.numberfield?.background?.disabled : theme.components.numberfield?.background?.default};\n height: ${({ theme, size }) => \n size === 'md' \n ? theme.components.numberfield?.size?.md?.height ?? '24px' \n : theme.components.numberfield?.size?.lg?.height ?? '32px'};\n font-size: ${({ theme, size }) => \n size === 'md' \n ? theme.components.numberfield?.size?.md?.fontSize ?? '12px' \n : theme.components.numberfield?.size?.lg?.fontSize ?? '14px'};\n \n // 优化宽度设置逻辑:先判断控件类型,再根据size设置不同宽度\n width: ${({ controls, size, theme }) => {\n // 先判断是buttons还是arrows类型\n if (controls === 'arrows') {\n // 箭头类型根据size设置不同宽度\n return size === 'md' ? theme.components.numberfield?.control?.arrows?.widthsm : theme.components.numberfield?.control?.arrows?.widthLg;\n }\n // 按钮类型根据size设置不同宽度(默认)\n return size === 'md' ? theme.components.numberfield?.control?.side?.widthsm : theme.components.numberfield?.control?.side?.widthLg;\n }};\n \n // 状态样式\n &:disabled,\n &[data-disabled=\"true\"] {\n ${({ theme }) => getDisabledStyles(theme)}\n opacity: 0.8;\n // 强制所有子元素不响应事件\n * {\n pointer-events: none !important;\n }\n }\n &:not(:disabled):not([data-disabled=\"true\"]):hover {\n border-color: ${({ theme }) => theme.components.numberfield?.border?.hover};\n button:not(:disabled):not(:hover) {\n background: ${({ theme }) => theme.components.numberfield?.background.hover};\n color: ${({ theme }) => theme.components.numberfield?.text?.default};\n }\n }\n \n // 禁用状态保持原有边框颜色\n &:disabled,\n &[data-disabled=\"true\"] {\n border-color: ${({ theme }) => theme.components.numberfield?.border?.default ?? '#d9d9d9'} !important;\n }\n }\n `\n\n// NumberField 简化后的样式\nexport const NumberField = styled.input`\n text-align: center;\n border:none;\n outline: none;\n width: ${({ theme }) => theme.components.numberfield?.input?.width ?? '40px'};\n height: ${({ theme }) => theme.components.numberfield?.input?.height ?? '18px'};\n font-size: ${({ theme }) => theme.components.numberfield?.input?.fontSize ?? '12px'};\n font-weight: ${({ theme }) => theme.components.numberfield?.input?.fontWeight ?? 400};\n line-height: ${({ theme }) => theme.components.numberfield?.input?.lineHeight ?? '18px'};\n font-family: ${({ theme }) => theme.components.numberfield?.input?.fontFamily ?? 'sans-serif'};\n \n // 移除默认箭头\n &::-webkit-outer-spin-button,\n &::-webkit-inner-spin-button {\n -webkit-appearance: none;\n margin: 0;\n }\n -moz-appearance: textfield;\n appearance: textfield;\n\n // 状态样式\n &:disabled,\n &[data-disabled=\"true\"] {\n ${({ theme }) => getDisabledStyles(theme)}\n }\n \n`\nexport const Description = styled.div`\n margin-top: 6px;\n font-size: 12px;\n color: ${({ theme }) => theme.components.numberfield?.text?.placeholder ?? '#6b6b6b'};\n`\n/** 竖直箭头控件(展示在输入右侧) */\nexport const ArrowGroup = styled.div`\n display: inline-flex;\n flex-direction: column; \n gap: 1px;\n`\n\n// 在文件末尾添加ArrowButton组件\nexport const ArrowButton = styled.button<{ direction: 'up' | 'down'; size?: 'md' | 'lg' ;disabled?: boolean}>`\n background: transparent;\n border: none;\n border-radius: ${({ direction }) => direction === 'up' ? '4px 4px 0 0' : '0 0 4px 4px'};\n display: inline-flex;\n align-items: center;\n justify-content: center;\n width: ${({ theme, size }) => {\n const heightValue = size === 'md' \n ? theme.components.numberfield?.control?.arrows?.buttonSizeSm \n : theme.components.numberfield?.control?.arrows?.buttonSizeLg;\n return `calc(${heightValue} * 2)`;\n}};\n height: ${({ theme, size }) => {\n const heightValue = size === 'md' \n ? theme.components.numberfield?.control?.arrows?.buttonSizeSm \n : theme.components.numberfield?.control?.arrows?.buttonSizeLg;\n return heightValue;\n}};\n color: ${({ theme }) => theme.components.numberfield?.border.default ?? '#0A1833'};\n cursor: pointer;\n // 使用主题中numberfield定义的transition参数\n transition: background-color ${({ theme }) => theme.components.numberfield?.transition || '0.2s ease'}, \n color ${({ theme }) => theme.components.numberfield?.transition || '0.2s ease'}, \n transform ${({ theme }) => theme.components.numberfield?.transition || '0.2s ease'};\n \n &:disabled,\n &[data-disabled=\"true\"] {\n ${({ theme }) => getDisabledStyles(theme)}\n transition: none; // 禁用状态不使用过渡\n }\n \n &:not(:disabled):hover:not([data-disabled=\"true\"]) {\n background-color: ${({ theme }) => theme.components.numberfield?.border?.default};\n color: ${({ theme }) => theme.components.numberfield?.border?.hover ?? '#1890ff'};\n }\n \n // 添加点击效果:点击变大一点再变回来\n &:not(:disabled):active:not([data-disabled=\"true\"]) {\n animation: clickScale ${({ theme }) => theme.components.numberfield?.transition?.replace('0.2s', '0.3s') || '0.3s ease'};\n }\n \n // 定义点击缩放动画\n @keyframes clickScale {\n 0% { transform: scale(1); }\n 50% { transform: scale(1.1); }\n 100% { transform: scale(1); }\n }\n`\n\n// 在SideButton组件中添加hover状态以控制背景颜色\nexport const SideButton = styled.button<{ pos?: 'left' | 'right'; size?: 'md' | 'lg' }>`\n display: inline-flex;\n align-items: center;\n justify-content: center;\n width: ${({ theme, size }) =>\n size === 'md'\n ? theme.components.numberfield?.control?.side?.buttonSizeSm \n : theme.components.numberfield?.control?.side?.buttonSizeLg };\n height: ${({ theme, size }) =>\n size === 'md'\n ? theme.components.numberfield?.control?.side?.buttonSizeSm \n : theme.components.numberfield?.control?.side?.buttonSizeLg };\n background: transparent;\n color: ${({ theme }) => theme.components.numberfield?.border.default ?? '#d9d9d9'};\n border: none;\n cursor: pointer;\n border-radius: 6px; \n padding: 2px;\n // 使用主题中numberfield定义的transition参数\n transition: background-color ${({ theme }) => theme.components.numberfield?.transition || '0.2s ease'}, \n color ${({ theme }) => theme.components.numberfield?.transition || '0.2s ease'}, \n transform ${({ theme }) => theme.components.numberfield?.transition || '0.2s ease'};\n \n &:disabled,\n &[data-disabled=\"true\"] {\n ${({ theme }) => getDisabledStyles(theme)}\n transition: none; // 禁用状态不使用过渡\n }\n \n // 添加hover状态控制背景颜色和图标颜色\n &:not(:disabled):hover:not([data-disabled=\"true\"]) {\n background-color: ${({ theme }) => theme.components.numberfield?.border.default};\n color: ${({ theme }) => theme.components.numberfield?.border?.hover ?? '#1890ff'};\n }\n \n // 添加点击效果:点击变大一点再变回来\n &:not(:disabled):active:not([data-disabled=\"true\"]) {\n animation: clickScale ${({ theme }) => theme.components.numberfield?.transition?.replace('0.2s', '0.3s') || '0.3s ease'};\n }\n \n // 定义点击缩放动画\n @keyframes clickScale {\n 0% { transform: scale(1); }\n 50% { transform: scale(1.1); }\n 100% { transform: scale(1); }\n }\n`","/**\n * 数字输入框组件\n * \n * 基于 react-aria 实现无障碍访问的数字输入框组件\n * 完全符合 Figma 设计稿规范\n * \n * @example\n * ```tsx\n * <NumberInput\n * size=\"md\"\n * defaultValue={10}\n * min={0}\n * max={100}\n * step={1}\n * label=\"数量\"\n * description=\"请输入数量\"\n * controls=\"buttons\"\n * onValueChange={(v) => console.log(v)}\n * />\n * ```\n */\n\nimport {\n forwardRef,\n useRef,\n useState,\n useEffect,\n type ReactNode,\n type ChangeEvent,\n type KeyboardEvent,\n} from 'react'\nimport {\n\tNumberRoot,\n\tNumberGroup,\n\tNumberField,\n\tLabel,\n\tDescription,\n\tArrowGroup,\n\tSideButton,\n\tArrowButton\n} from './NumberInput.style'\nimport { PlusOutline, ChevronUpOutline, ChevronDownOutline, MinusOutline } from '@kingsoft-ai/icons'\nexport type NumberInputProps = {\n\t/** 初始数值(受控请使用 value) */\n\tdefaultValue?: number\n\t/** 受控数值 */\n\tvalue?: number\n\t/** 最小值 */\n\tmin?: number\n\t/** 最大值 */\n\tmax?: number\n\t/** 步长 */\n\tstep?: number\n /** 控件样式:'buttons' - 左右 加/减 按钮;'arrows' - 右侧竖直箭头 */\n\tcontrols?: 'buttons' | 'arrows'\n /** 大小:'md' | 'lg' */\n size?: 'md' | 'lg'\n\t/** 值变化回调(返回 number | undefined) */\n\tonValueChange?: (v: number | undefined) => void\n\t/** 标签文本 */\n\tlabel?: ReactNode\n\t/** 描述文本 */\n\tdescription?: ReactNode\n\t/** 是否显示错误状态 */\n\terror?: boolean\n\t/** 错误提示文本 */\n\terrorMessage?: ReactNode\n\t/** 是否禁用 */\n\tdisabled?: boolean\n\t/** 自定义类名 */\n\tclassName?: string\n\t/** 自定义 ID */\n\tid?: string\n\t/** 原生 onChange 保留以便外部使用 */\n\tonChange?: (e: ChangeEvent<HTMLInputElement>) => void\n}\n/** 加图标 */\nconst PlusIcon = PlusOutline\n/** 减图标 */\nconst MinusIcon = MinusOutline\n/** 上箭头图标 */\nconst UpIcon = ChevronUpOutline\n/** 下箭头图标 */\nconst DownIcon = ChevronDownOutline\n/** 数字输入框组件 */\nexport const NumberInput = forwardRef<HTMLInputElement, NumberInputProps>(\n\t(\n\t\t\t{\n\t\t\tmin,\n\t\t\tmax,\n\t\t\tstep = 1,\n\t\t\tvalue,\n\t\t\tdefaultValue,\n\t\t\tonChange,\n\t\t\tonValueChange,\n\t\t\tdisabled,\n\t\t\tclassName,\n\t\t\tlabel,\n\t\t\tdescription,\n\t\t\terror = false,\n\t\t\tid,\n\t\t\tcontrols = 'buttons',\n\t\t\tsize = 'md',\n\t\t\t...rest\n\t\t},\n\t\tforwardedRef,\n\t) => {\n\t\tconst innerRef = useRef<HTMLInputElement | null>(null)\n\t\t// 同步 forwardedRef 到内部 ref(支持 object ref 与回调 ref)\n\t\tuseEffect(() => {\n\t\t\tif (!forwardedRef) return\n\t\t\tif (typeof forwardedRef === 'function') {\n\t\t\t\tforwardedRef(innerRef.current)\n\t\t\t} else {\n\t\t\t\t;(forwardedRef as React.MutableRefObject<HTMLInputElement | null>).current = innerRef.current\n\t\t\t}\n\t\t}, [forwardedRef])\n\t\tconst isControlled = value !== undefined\n\t\tconst [internal, setInternal] = useState<number | undefined>(defaultValue)\n\t\tconst currentValue = isControlled ? value : internal\n\t\t// clamp 工具\n\t\tconst clamp = (v: number) => {\n\t\t\tlet next = v\n\t\t\tif (min !== undefined) next = Math.max(next, min)\n\t\t\tif (max !== undefined) next = Math.min(next, max)\n\t\t\treturn next\n\t\t}\n\t\tconst setValue = (v: number | undefined) => {\n\t\t\tif (!isControlled) setInternal(v)\n\t\t\t// 更新原生 input 的 value 并触发 input 事件,兼容外部监听\n\t\t\tif (innerRef.current) {\n\t\t\t\tconst nativeSetter = Object.getOwnPropertyDescriptor(window.HTMLInputElement.prototype, 'value')?.set\n\t\t\t\tnativeSetter?.call(innerRef.current, v === undefined ? '' : String(v))\n\t\t\t\tconst ev = new Event('input', { bubbles: true })\n\t\t\t\tObject.defineProperty(ev, 'target', { writable: false, value: innerRef.current })\n\t\t\t\t// 触发原生 onChange 回调(如果有人依赖)\n\t\t\t\tonChange?.(ev as unknown as ChangeEvent<HTMLInputElement>)\n\t\t\t}\n\t\t\tonValueChange?.(v)\n\t\t}\n\t\t// 修改handleInputChange函数\n\t\tconst handleInputChange = (e: ChangeEvent<HTMLInputElement>) => {\n\t\t const raw = e.target.value\n\t\t // 当输入为空时,使用min或0作为默认值,而不是undefined\n\t\t const parsed = raw === '' ? (min !== undefined ? min : 0) : Number(raw)\n\t\t const final = Number.isNaN(parsed) ? (min !== undefined ? min : 0) : clamp(parsed)\n\t\t if (!isControlled) setInternal(final)\n\t\t onValueChange?.(final)\n\t\t onChange?.(e)\n\t\t}\n\n\t\tconst increment = () => {\n\t\t\tconst base = currentValue ?? 0\n\t\t\tconst next = clamp(base + (step ?? 1))\n\t\t\tsetValue(next)\n\t\t}\n\n\t\tconst decrement = () => {\n\t\t\tconst base = currentValue ?? 0\n\t\t\tconst next = clamp(base - (step ?? 1))\n\t\t\tsetValue(next)\n\t\t}\n\t\tconst handleKeyDown = (e: KeyboardEvent<HTMLInputElement>) => {\n\t\t\tif (e.key === 'ArrowUp') {\n\t\t\t\te.preventDefault()\n\t\t\t\tincrement()\n\t\t\t} else if (e.key === 'ArrowDown') {\n\t\t\t\te.preventDefault()\n\t\t\t\tdecrement()\n\t\t\t}\n\t\t}\n\n\t\tconst inputId = id || `number-${Math.random().toString(36).slice(2, 9)}`\n\n\t\tconst atMin = currentValue !== undefined && min !== undefined && currentValue <= min\n\t\tconst atMax = currentValue !== undefined && max !== undefined && currentValue >= max\n\n\t\treturn (\n\t\t\t<NumberRoot className={className}>\n\t\t\t\t{label && (\n\t\t\t\t\t<Label htmlFor={inputId} aria-hidden={false}>\n\t\t\t\t\t\t{label}\n\t\t\t\t\t</Label>\n\t\t\t\t)}\n\t\t\t\t<NumberGroup className={`controls-${controls} size-${size}`} size={size} disabled={disabled} controls={controls}>\n\t\t\t\t\t{controls === 'buttons' && (\n\t\t\t\t\t\t<SideButton\n\t\t\t\t\t\tclassName=\"btn-decrement\"\n\t\t\t\t\t\tpos=\"left\"\n\t\t\t\t\t\tsize={size}\n\t\t\t\t\t\ttype=\"button\"\n\t\t\t\t\t\tonClick={decrement}\n\t\t\t\t\t\tdisabled={disabled || atMin}\n\t\t\t\t\t>\n\t\t\t\t\t\t<MinusIcon size={size === 'lg' ? 12 : 8.571} />\n\t\t\t\t\t</SideButton>\n\t\t\t\t\t)}\n\t\t\t\t\t<NumberField\n\t\t\t\t\t\t{...(rest as any)}\n\t\t\t\t\t\tid={inputId}\n\t\t\t\t\t\tref={innerRef}\n\t\t\t\t\t\ttype=\"number\"\n\t\t\t\t\t\tvalue={currentValue === undefined ? '' : String(currentValue)}\n\t\t\t\t\t\tonChange={handleInputChange}\n\t\t\t\t\t\tonKeyDown={handleKeyDown}\n\t\t\t\t\t\tmin={min}\n\t\t\t\t\t\tmax={max}\n\t\t\t\t\t\tstep={step}\n\t\t\t\t\t\tdisabled={disabled}\n\t\t\t\t\t\taria-invalid={error}\n\t\t\t\t\t\taria-describedby={description ? `${inputId}-desc` : undefined}\n\t\t\t\t\t\tclassName={controls === 'buttons' ? 'with-side-controls' : undefined}\n\t\t\t\t\t\tdata-size={size}\n\t\t\t\t\t/>\n\t\t\t\t\t{controls === 'buttons' && (\n\t\t\t\t\t\t<SideButton\n\t\t\t\t\t\tclassName=\"btn-increment\"\n\t\t\t\t\t\tpos=\"right\"\n\t\t\t\t\t\tsize={size}\n\t\t\t\t\t\ttype=\"button\"\n\t\t\t\t\t\tonClick={increment}\n\t\t\t\t\t\tdisabled={disabled || atMax}\n\t\t\t\t\t>\n\t\t\t\t\t\t<PlusIcon size={size === 'lg' ? 12 : 8.571} />\n\t\t\t\t\t</SideButton>\n\t\t\t\t\t)}\n\t\t\t\t\t{controls === 'arrows' && (\n\t\t\t\t\t\t<ArrowGroup className=\"arrow-group\" >\n\t\t\t\t\t\t\t<ArrowButton\n\t\t\t direction=\"up\"\n\t\t\t type=\"button\"\n\t\t\t size={size}\n\t\t\t onClick={increment}\n\t\t\t disabled={disabled || atMax}\n\t\t\t className=\"arrow-up\"\n\t\t >\n\t\t\t <UpIcon />\n\t\t </ArrowButton>\n\t\t <ArrowButton\n\t\t\t direction=\"down\"\n\t\t\t type=\"button\"\n\t\t\t aria-label=\"减小\"\n\t\t\t title=\"减小\"\n\t\t\t size={size}\n\t\t\t onClick={decrement}\n\t\t\t disabled={disabled || atMin}\n\t\t\t className=\"arrow-down\"\n\t\t >\n\t\t\t <DownIcon />\n\t\t </ArrowButton>\n\t\t\t\t\t\t</ArrowGroup>\n\t\t\t\t\t)}\n\t\t\t\t</NumberGroup>\n\t\t\t\t{description && <Description id={`${inputId}-desc`}>{description}</Description>}\n\t\t\t</NumberRoot>\n\t\t)\n\t},\n)\nNumberInput.displayName = 'NumberInput'\nexport default NumberInput","import styled from '@emotion/styled'\n\nexport const RadioWrapper = styled('label', {\n shouldForwardProp: (prop) => prop !== 'disabled',\n})<{ disabled: boolean }>(({ theme, disabled }) => ({\n display: 'inline-flex',\n alignItems: 'center',\n gap: theme.components.radio.gap,\n cursor: disabled ? 'not-allowed' : 'pointer',\n opacity: disabled ? theme.components.radio.disabled.opacity : 1,\n transition: `opacity ${theme.components.radio.transition}`,\n}))\n\nexport const RadioRoot = styled('span', {\n shouldForwardProp: (prop) => prop !== 'disabled',\n})<{ disabled?: boolean }>(({ theme, disabled }) => ({\n position: 'relative',\n display: 'inline-flex',\n alignItems: 'center',\n justifyContent: 'center',\n width: theme.components.radio.control.size,\n height: theme.components.radio.control.size,\n borderRadius: theme.components.radio.control.borderRadius,\n borderWidth: theme.components.radio.control.borderWidth,\n borderStyle: 'solid',\n borderColor: disabled\n ? theme.components.radio.control.borderColor.disabled\n : theme.components.radio.control.borderColor.default,\n background: theme.components.radio.control.background,\n transition: `border-color ${theme.components.radio.transition}, box-shadow ${theme.components.radio.transition}, transform ${theme.components.radio.transition}`,\n flexShrink: 0,\n}))\n\nexport const RadioNative = styled('input')(({ theme }) => ({\n position: 'absolute',\n inset: 0,\n width: '100%',\n height: '100%',\n margin: 0,\n opacity: 0,\n cursor: 'inherit',\n '&:focus-visible + span': {\n boxShadow: theme.components.radio.focusRing,\n },\n '&:hover:not(:disabled) + span': {\n borderColor: theme.components.radio.control.borderColor.hover,\n transform: 'translateY(-0.5px)',\n },\n '&:checked + span': {\n borderColor: theme.components.radio.control.borderColor.checked,\n },\n '&:checked + span::after': {\n transform: 'translate(-50%, -50%) scale(1)',\n opacity: 1,\n },\n '&:disabled + span': {\n borderColor: theme.components.radio.control.borderColor.disabled,\n },\n '&:disabled + span::after': {\n background: theme.components.radio.control.indicator.disabled,\n },\n}))\n\nexport const RadioIndicator = styled('span')(({ theme }) => ({\n position: 'relative',\n inset: 0,\n width: '100%',\n height: '100%',\n borderRadius: 'inherit',\n boxShadow: 'none',\n '&::after': {\n content: '\"\"',\n position: 'absolute',\n top: '50%',\n left: '50%',\n width: theme.components.radio.control.indicator.size,\n height: theme.components.radio.control.indicator.size,\n background: theme.components.radio.control.indicator.color,\n borderRadius: 'inherit',\n transform: 'translate(-50%, -50%) scale(0.35)',\n opacity: 0,\n transition: `transform ${theme.components.radio.transition}, opacity ${theme.components.radio.transition}`,\n },\n}))\n\nexport const RadioText = styled('span')({\n display: 'flex',\n flexDirection: 'column',\n gap: '0.25rem',\n minWidth: 0,\n})\n\nexport const RadioLabel = styled('span', {\n shouldForwardProp: (prop) => prop !== 'disabled',\n})<{ disabled: boolean }>(({ theme, disabled }) => ({\n fontSize: theme.components.radio.text.label.fontSize,\n fontWeight: theme.components.radio.text.label.fontWeight,\n color: disabled ? theme.components.radio.text.label.disabled : theme.components.radio.text.label.color,\n lineHeight: 1.5,\n transition: `color ${theme.components.radio.transition}`,\n}))\n\nexport const RadioDescription = styled('span', {\n shouldForwardProp: (prop) => prop !== 'disabled',\n})<{ disabled: boolean }>(({ theme, disabled }) => ({\n margin: 0,\n color: disabled\n ? theme.components.radio.text.description.disabled\n : theme.components.radio.text.description.color,\n fontSize: theme.components.radio.text.description.fontSize,\n lineHeight: 1.4,\n transition: `color ${theme.components.radio.transition}`,\n}))\n\n","import { forwardRef } from 'react'\nimport type { InputHTMLAttributes, ReactNode } from 'react'\nimport {\n RadioDescription,\n RadioIndicator,\n RadioLabel,\n RadioNative,\n RadioRoot,\n RadioText,\n RadioWrapper,\n} from './Radio.style'\n\nexport type RadioProps = Omit<InputHTMLAttributes<HTMLInputElement>, 'type'> & {\n label?: ReactNode\n description?: ReactNode\n}\n\nexport const Radio = forwardRef<HTMLInputElement, RadioProps>(\n ({ label, description, className, ...inputProps }, ref) => {\n const isDisabled = Boolean(inputProps.disabled)\n\n return (\n <RadioWrapper disabled={isDisabled} className={className} data-disabled={isDisabled ? 'true' : undefined}>\n <RadioRoot disabled={isDisabled}>\n <RadioNative ref={ref} type=\"radio\" disabled={isDisabled} {...inputProps} />\n <RadioIndicator aria-hidden />\n </RadioRoot>\n {(label || description) && (\n <RadioText>\n {label ? <RadioLabel disabled={isDisabled}>{label}</RadioLabel> : null}\n {description ? <RadioDescription disabled={isDisabled}>{description}</RadioDescription> : null}\n </RadioText>\n )}\n </RadioWrapper>\n )\n },\n)\n\nRadio.displayName = 'Radio'\n\n","import styled from '@emotion/styled'\nimport { css, keyframes } from '@emotion/react'\nimport type { AppTheme } from '@kingsoft-ai/theme'\n\nexport const skeletonVariants = ['rect', 'text', 'circle'] as const\nexport type SkeletonVariant = (typeof skeletonVariants)[number]\n\nexport const skeletonRadii = ['sm', 'md', 'lg', 'pill'] as const\nexport type SkeletonRadius = (typeof skeletonRadii)[number]\n\ntype SkeletonRootProps = {\n $variant: SkeletonVariant\n $animate: boolean\n $radius: SkeletonRadius\n $width?: string\n $height?: string\n}\n\ntype SkeletonLineProps = {\n $animate: boolean\n $isLast: boolean\n $customWidth?: string\n}\n\ntype SkeletonStackProps = {\n $width?: string\n}\n\nconst shimmerKeyframes = keyframes`\n 0% {\n transform: translateX(-100%);\n }\n 100% {\n transform: translateX(100%);\n }\n`\n\nconst shimmerMixin = ({ theme }: { theme: AppTheme }) => css`\n &::after {\n content: '';\n position: absolute;\n inset: 0;\n background: linear-gradient(\n 90deg,\n transparent 0%,\n ${theme.components.skeleton.background.highlight} 50%,\n transparent 100%\n );\n animation: ${shimmerKeyframes} ${theme.components.skeleton.animation.duration}\n ${theme.components.skeleton.animation.easing} infinite;\n transform: translateX(-100%);\n }\n\n @media (prefers-reduced-motion: reduce) {\n &::after {\n animation-duration: 0.01ms;\n animation-iteration-count: 1;\n transform: translateX(-50%);\n }\n }\n`\n\nexport const SkeletonRoot = styled.div<SkeletonRootProps>`\n position: relative;\n overflow: hidden;\n display: block;\n background: ${({ theme }) => theme.components.skeleton.background.base};\n border-radius: ${({ theme, $variant, $radius }) =>\n $variant === 'circle' ? theme.components.skeleton.radius.circle : theme.components.skeleton.radius[$radius]};\n width: ${({ $variant, $width, theme }) => {\n if ($variant === 'circle') {\n return $width ?? theme.components.skeleton.circle.size\n }\n\n return $width ?? '100%'\n }};\n height: ${({ $variant, $height, theme }) => {\n if ($variant === 'circle') {\n return $height ?? theme.components.skeleton.circle.size\n }\n\n if ($variant === 'text') {\n return $height ?? theme.components.skeleton.text.lineHeight\n }\n\n return $height ?? theme.components.skeleton.block.height\n }};\n\n ${({ $animate, theme }) =>\n $animate &&\n css`\n ${shimmerMixin({ theme })}\n `}\n`\n\nexport const SkeletonStack = styled.div<SkeletonStackProps>`\n display: flex;\n flex-direction: column;\n gap: ${({ theme }) => theme.components.skeleton.text.gap};\n width: ${({ $width }) => $width ?? '100%'};\n`\n\nexport const SkeletonLine = styled.span<SkeletonLineProps>`\n position: relative;\n overflow: hidden;\n display: block;\n background: ${({ theme }) => theme.components.skeleton.background.base};\n height: ${({ theme }) => theme.components.skeleton.text.lineHeight};\n border-radius: ${({ theme }) => theme.components.skeleton.radius.pill};\n width: ${({ $customWidth, $isLast, theme }) =>\n $customWidth ?? ($isLast ? theme.components.skeleton.text.lastLineWidth : '100%')};\n\n ${({ $animate, theme }) =>\n $animate &&\n css`\n ${shimmerMixin({ theme })}\n `}\n`\n\n","import { forwardRef } from 'react'\nimport type { HTMLAttributes, ReactNode } from 'react'\nimport {\n SkeletonRoot,\n SkeletonLine,\n SkeletonStack,\n skeletonVariants,\n skeletonRadii,\n type SkeletonVariant,\n type SkeletonRadius,\n} from './Skeleton.style'\n\nconst toCssSize = (value?: number | string) => {\n if (value === undefined) return undefined\n return typeof value === 'number' ? `${value}px` : value\n}\n\nexport interface SkeletonProps extends HTMLAttributes<HTMLDivElement> {\n /** Skeleton 展示形态 */\n variant?: SkeletonVariant\n /** 自定义宽度,支持 number(px) 或 string */\n width?: number | string\n /** 自定义高度,支持 number(px) 或 string */\n height?: number | string\n /** 文本模式下的行数 */\n lines?: number\n /** 是否展示骨架动画 */\n animate?: boolean\n /** 方形/矩形骨架的圆角尺寸 */\n radius?: SkeletonRadius\n /** 加载完成后展示真实内容 */\n loaded?: boolean\n /** 加载完成后展示的真实内容 */\n children?: ReactNode\n}\n\nexport const Skeleton = forwardRef<HTMLDivElement, SkeletonProps>(\n (\n {\n variant = 'rect',\n width,\n height,\n lines = variant === 'text' ? 3 : 1,\n animate = true,\n radius = 'md',\n loaded = false,\n className,\n children,\n style,\n ...rest\n },\n ref,\n ) => {\n const resolvedWidth = toCssSize(width)\n const resolvedHeight = toCssSize(height)\n const lineCount = Math.max(1, lines)\n const shouldRenderStack = variant === 'text' && lineCount > 1\n\n if (loaded) {\n if (!children) {\n return null\n }\n\n return (\n <div ref={ref} className={className} style={style} {...rest}>\n {children}\n </div>\n )\n }\n\n const accessibilityProps = {\n role: 'status' as const,\n 'aria-live': 'polite' as const,\n 'aria-busy': true,\n }\n\n if (shouldRenderStack) {\n return (\n <SkeletonStack\n ref={ref}\n className={className}\n style={style}\n $width={resolvedWidth}\n data-variant=\"text\"\n {...accessibilityProps}\n {...rest}\n >\n {Array.from({ length: lineCount }).map((_, index) => (\n <SkeletonLine\n key={index}\n $animate={animate}\n $isLast={index === lineCount - 1}\n $customWidth={index === lineCount - 1 ? resolvedWidth : undefined}\n aria-hidden=\"true\"\n />\n ))}\n </SkeletonStack>\n )\n }\n\n return (\n <SkeletonRoot\n ref={ref}\n className={className}\n style={style}\n $variant={variant}\n $animate={animate}\n $radius={radius}\n $width={resolvedWidth}\n $height={resolvedHeight}\n data-variant={variant}\n {...accessibilityProps}\n {...rest}\n />\n )\n },\n)\n\nSkeleton.displayName = 'Skeleton'\n\nexport { skeletonVariants, skeletonRadii }\nexport type { SkeletonVariant, SkeletonRadius }\n\n","import styled from '@emotion/styled'\nimport { css, keyframes } from '@emotion/react'\n\n// ============================================================================\n// Types\n// ============================================================================\n\nexport type StepperOrientation = 'horizontal' | 'vertical'\nexport type StepperLabelPlacement = 'right' | 'bottom'\nexport type StepStatus = 'wait' | 'process' | 'finish' | 'error'\nexport type StepSize = 'md' | 'sm'\nexport type StepperVariant = 'default' | 'dot'\n\nconst dotPulse = keyframes`\n 0% {\n transform: scale(1);\n opacity: 0.6;\n }\n 50% {\n transform: scale(1.6);\n opacity: 0.3;\n }\n 100% {\n transform: scale(1);\n opacity: 0.6;\n }\n`\n\n// ============================================================================\n// Styled Components\n// ============================================================================\n\nexport const StepperRoot = styled.div<{\n orientation: StepperOrientation\n}>`\n display: flex;\n flex-direction: ${({ orientation }) => (orientation === 'vertical' ? 'column' : 'row')};\n width: 100%;\n \n ${({ orientation }) => orientation === 'horizontal' && css`\n align-items: flex-start;\n `}\n`\n\nexport const StepRoot = styled.div<{\n orientation: StepperOrientation\n labelPlacement: StepperLabelPlacement\n status: StepStatus\n isLast: boolean\n flexBasis?: string\n variant: StepperVariant\n}>`\n position: relative;\n display: flex;\n flex: ${({ isLast, orientation }) => (isLast || orientation === 'vertical' ? '0 0 auto' : '1')};\n flex-direction: ${({ orientation, labelPlacement }) => \n orientation === 'horizontal' && labelPlacement === 'bottom' ? 'column' : 'row'};\n align-items: ${({ orientation, labelPlacement }) => \n orientation === 'horizontal' && labelPlacement === 'bottom' ? 'center' : 'flex-start'};\n\n /* Gap between content elements */\n gap: ${({ theme }) => theme.components.stepper.gap};\n`\n\nexport const StepIconContainer = styled.div<{\n status: StepStatus\n size: StepSize\n variant: StepperVariant\n}>`\n position: relative;\n display: flex;\n align-items: center;\n justify-content: center;\n z-index: 1; /* To stay above line */\n \n /* Size */\n width: ${({ theme, size, variant }) =>\n variant === 'dot'\n ? theme.components.stepper.dot.size[size]\n : theme.components.stepper.circle.size[size]};\n height: ${({ theme, size, variant }) =>\n variant === 'dot'\n ? theme.components.stepper.dot.size[size]\n : theme.components.stepper.circle.size[size]};\n\n border-radius: 50%;\n border: ${({ variant }) => (variant === 'dot' ? 'none' : '1px solid')};\n transition: all 0.2s ease;\n\n /* Colors based on Status */\n ${({ theme, status, variant }) => {\n const stepper = theme.components.stepper;\n const state = stepper.state[status];\n \n // Default styles (Wait)\n let borderColor = state.color;\n let bgColor = 'transparent';\n let color = state.color;\n\n if (variant === 'dot') {\n if (status === 'wait') {\n bgColor = stepper.line.color.default;\n } else {\n bgColor = state.color;\n }\n color = 'transparent';\n\n return css`\n background-color: ${bgColor};\n color: ${color};\n ${status === 'process'\n ? `\n &::after {\n content: '';\n position: absolute;\n inset: -4px;\n border-radius: 50%;\n background-color: ${stepper.dot.pulseColor};\n animation: ${dotPulse} 1.5s ease-in-out infinite;\n will-change: transform, opacity;\n z-index: -1;\n }\n `\n : ''}\n `;\n } else {\n if (status === 'process') {\n borderColor = state.color;\n bgColor = state.bg;\n color = theme.global.colors.common.white;\n } else if (status === 'finish') {\n borderColor = state.color;\n bgColor = state.bg; \n color = state.color;\n } else if (status === 'error') {\n borderColor = state.color;\n bgColor = state.bg;\n color = state.color;\n } else {\n // Wait\n color = state.color;\n }\n\n return css`\n border-color: ${borderColor};\n background-color: ${bgColor};\n color: ${color};\n ${status === 'process'\n ? `\n &::after {\n content: '';\n position: absolute;\n inset: -4px;\n border-radius: 50%;\n border: 2px solid ${state.color};\n opacity: 0.6;\n animation: ${dotPulse} 1.5s ease-in-out infinite;\n will-change: transform, opacity;\n z-index: -1;\n }\n `\n : ''}\n `;\n }\n }}\n\n /* Text style inside circle */\n font-size: ${({ theme, size }) => theme.components.stepper.circle.fontSize[size]};\n font-weight: 500;\n\n /* Icon size control */\n svg {\n width: ${({ theme, size }) => theme.components.stepper.circle.iconSize[size]};\n height: ${({ theme, size }) => theme.components.stepper.circle.iconSize[size]};\n flex-shrink: 0;\n }\n`\n\nexport const StepContent = styled.div<{\n orientation: StepperOrientation\n labelPlacement: StepperLabelPlacement\n}>`\n display: flex;\n flex-direction: column;\n justify-content: center;\n \n ${({ orientation, labelPlacement }) => \n orientation === 'horizontal' && labelPlacement === 'bottom' && css`\n align-items: center;\n text-align: center;\n padding-top: 4px; /* Space between icon and text */\n `}\n\n ${({ orientation, labelPlacement }) => \n (orientation === 'vertical' || labelPlacement === 'right') && css`\n padding-left: 4px; /* Space between icon and text */\n /* Adjust for vertical alignment with icon center if needed */\n padding-top: 4px; \n `}\n`\n\nexport const StepTitle = styled.div<{\n status: StepStatus\n}>`\n font-size: ${({ theme }) => theme.components.stepper.text.title.fontSize};\n font-weight: ${({ theme }) => theme.components.stepper.text.title.fontWeight};\n line-height: 1.4;\n \n color: ${({ theme, status }) => {\n const titleColors = theme.components.stepper.text.title.color;\n switch (status) {\n case 'process': return titleColors.active;\n case 'finish': return titleColors.default; \n case 'error': return titleColors.error;\n case 'wait': return titleColors.waiting;\n default: return titleColors.default;\n }\n }};\n`\n\nexport const StepDescription = styled.div`\n font-size: ${({ theme }) => theme.components.stepper.text.description.fontSize};\n color: ${({ theme }) => theme.components.stepper.text.description.color};\n line-height: 1.4;\n margin-top: 2px;\n`\n\nexport const StepConnector = styled.div<{\n orientation: StepperOrientation\n labelPlacement: StepperLabelPlacement\n isFinished: boolean\n size: StepSize\n variant: StepperVariant\n}>`\n transition: background-color 0.2s ease;\n \n ${({ orientation, theme, isFinished, size, labelPlacement, variant }) => {\n const iconSizeToken =\n variant === 'dot'\n ? theme.components.stepper.dot.size[size]\n : theme.components.stepper.circle.size[size];\n const iconSizeVal = parseInt(iconSizeToken);\n const topPos = iconSizeVal / 2;\n\n if (orientation === 'horizontal') {\n // Horizontal Connector\n return css`\n flex: 1;\n height: 1px;\n background-color: ${isFinished ? theme.components.stepper.line.color.active : theme.components.stepper.line.color.default};\n margin: 0 ${theme.components.stepper.gap};\n margin-top: ${topPos}px;\n ${labelPlacement === 'bottom' ? 'align-self: flex-start;' : ''}\n `;\n } else {\n // Vertical Connector\n return css`\n width: 1px;\n min-height: 40px;\n flex: 1;\n background-color: ${isFinished ? theme.components.stepper.line.color.active : theme.components.stepper.line.color.default};\n margin-top: 4px;\n `;\n }\n }}\n`\n\n","import { Children, cloneElement, forwardRef, isValidElement } from 'react'\nimport type { ReactNode } from 'react'\nimport {\n StepperRoot,\n type StepperOrientation,\n type StepperLabelPlacement,\n type StepSize,\n type StepStatus,\n type StepperVariant,\n} from './Stepper.style'\nimport type { StepProps } from './Step'\n\nexport interface StepperProps {\n /** Current active step index (0-indexed) */\n active?: number\n /** Orientation of the stepper */\n orientation?: StepperOrientation\n /** Label placement (only for horizontal orientation) */\n labelPlacement?: StepperLabelPlacement\n /** Size of the stepper */\n size?: StepSize\n /** Visual variant */\n variant?: StepperVariant\n /** Children (Step components) */\n children: ReactNode\n className?: string\n /** Callback when step is clicked */\n onChange?: (index: number) => void\n}\n\nexport const Stepper = forwardRef<HTMLDivElement, StepperProps>((props, ref) => {\n const {\n active = 0,\n orientation = 'horizontal',\n labelPlacement = 'right',\n size = 'md',\n variant = 'default',\n children,\n className,\n onChange,\n ...rest\n } = props\n\n const steps = Children.toArray(children).filter(isValidElement)\n\n return (\n <StepperRoot\n ref={ref}\n orientation={orientation}\n className={className}\n role=\"list\"\n aria-label=\"Progress\"\n {...rest}\n >\n {steps.map((step, index) => {\n const stepProps = step.props as StepProps\n \n // Determine status\n let status: StepStatus = 'wait'\n \n if (stepProps.status) {\n // If step has explicit status, use it (useful for error state or static steppers)\n status = stepProps.status\n } else {\n // Calculate status based on active index\n if (index < active) {\n status = 'finish'\n } else if (index === active) {\n status = 'process'\n } else {\n status = 'wait'\n }\n }\n\n return cloneElement(step, {\n index,\n last: index === steps.length - 1,\n orientation,\n labelPlacement: orientation === 'vertical' ? 'right' : labelPlacement, // Vertical always right (or maybe bottom doesn't make sense)\n size,\n status,\n variant,\n onClick: () => {\n if (onChange && !stepProps.disabled) {\n onChange(index)\n }\n stepProps.onClick?.()\n },\n } as StepProps)\n })}\n </StepperRoot>\n )\n})\n\nStepper.displayName = 'Stepper'\n\n","import { forwardRef } from 'react'\nimport type { ReactNode } from 'react'\nimport { CheckOutline, CloseOutline } from '@kingsoft-ai/icons'\nimport {\n StepRoot,\n StepIconContainer,\n StepContent,\n StepTitle,\n StepDescription,\n StepConnector,\n type StepperOrientation,\n type StepperLabelPlacement,\n type StepStatus,\n type StepSize,\n type StepperVariant,\n} from './Stepper.style'\n\nexport interface StepProps {\n /** Title of the step */\n title?: ReactNode\n /** Description of the step */\n description?: ReactNode\n /** Icon of the step */\n icon?: ReactNode\n /** Status of the step, determined by Stepper if not provided */\n status?: StepStatus\n /** Disable the step */\n disabled?: boolean\n /** Click handler */\n onClick?: () => void\n className?: string\n \n // Internal props passed by Stepper\n index?: number\n orientation?: StepperOrientation\n labelPlacement?: StepperLabelPlacement\n size?: StepSize\n last?: boolean\n variant?: StepperVariant\n}\n\nexport const Step = forwardRef<HTMLDivElement, StepProps>((props, ref) => {\n const {\n title,\n description,\n icon,\n status = 'wait',\n index = 0,\n orientation = 'horizontal',\n labelPlacement = 'right',\n size = 'md',\n last = false,\n variant = 'default',\n className,\n onClick,\n ...rest\n } = props\n\n // Render icon based on status\n const renderIcon = () => {\n if (icon) return icon\n\n switch (status) {\n case 'finish':\n return <CheckOutline />\n case 'error':\n return <CloseOutline />\n default:\n // For process and wait, show number\n return <span>{index + 1}</span>\n }\n }\n\n const resolvedLabelPlacement =\n orientation === 'horizontal' && variant === 'dot' ? 'bottom' : labelPlacement\n\n const shouldRenderIcon = !(variant === 'dot' && !icon)\n const iconContent = shouldRenderIcon ? renderIcon() : null\n\n // Vertical line logic:\n // In vertical mode, the line connects from bottom of current icon to top of next icon.\n // It should be visible if not the last item.\n const showVerticalLine = orientation === 'vertical' && !last\n\n // Horizontal line logic:\n // In horizontal mode, the line connects current step to next step.\n const showHorizontalLine = orientation === 'horizontal' && !last\n\n return (\n <StepRoot\n ref={ref}\n className={className}\n orientation={orientation}\n labelPlacement={resolvedLabelPlacement}\n status={status}\n isLast={last}\n variant={variant}\n onClick={onClick}\n role=\"listitem\"\n aria-current={status === 'process' ? 'step' : undefined}\n {...rest}\n >\n {/* Vertical Mode: Icon column with line below */}\n {orientation === 'vertical' && (\n <>\n <div style={{ display: 'flex', flexDirection: 'column', alignItems: 'center', flexShrink: 0, minHeight: last ? 'auto' : '80px' }}>\n <StepIconContainer status={status} size={size} variant={variant}>\n {iconContent}\n </StepIconContainer>\n {showVerticalLine && (\n <StepConnector\n orientation=\"vertical\"\n labelPlacement={resolvedLabelPlacement}\n isFinished={status === 'finish'}\n size={size}\n variant={variant}\n />\n )}\n </div>\n <StepContent orientation={orientation} labelPlacement={resolvedLabelPlacement}>\n <StepTitle status={status}>{title}</StepTitle>\n {description && <StepDescription>{description}</StepDescription>}\n </StepContent>\n </>\n )}\n\n {/* Horizontal Mode */}\n {orientation === 'horizontal' && (\n <>\n {/* Icon and horizontal line for bottom placement */}\n {resolvedLabelPlacement === 'bottom' ? (\n <div style={{ display: 'flex', flexDirection: 'row', alignItems: 'center', width: '100%' }}>\n <div style={{ display: 'flex', flexDirection: 'column', alignItems: 'center', flexShrink: 0 }}>\n <StepIconContainer status={status} size={size} variant={variant}>\n {iconContent}\n </StepIconContainer>\n <StepContent orientation={orientation} labelPlacement={resolvedLabelPlacement}>\n <StepTitle status={status}>{title}</StepTitle>\n {description && <StepDescription>{description}</StepDescription>}\n </StepContent>\n </div>\n {showHorizontalLine && (\n <StepConnector\n orientation=\"horizontal\"\n labelPlacement={resolvedLabelPlacement}\n isFinished={status === 'finish'}\n size={size}\n variant={variant}\n />\n )}\n </div>\n ) : (\n <>\n <StepIconContainer status={status} size={size} variant={variant}>\n {iconContent}\n </StepIconContainer>\n <StepContent orientation={orientation} labelPlacement={resolvedLabelPlacement}>\n <StepTitle status={status}>{title}</StepTitle>\n {description && <StepDescription>{description}</StepDescription>}\n </StepContent>\n {showHorizontalLine && (\n <StepConnector\n orientation=\"horizontal\"\n labelPlacement={resolvedLabelPlacement}\n isFinished={status === 'finish'}\n size={size}\n variant={variant}\n />\n )}\n </>\n )}\n </>\n )}\n </StepRoot>\n )\n})\n\nStep.displayName = 'Step'\n\n","/**\n * Progress 进度条样式\n * \n * 基于三层 Token 体系:\n * - Tier 1 (Global): 全局基础值\n * - Tier 2 (Semantic): 语义化映射\n * - Tier 3 (Component): 组件专用 Token\n * \n * 完全还原 Figma 设计稿规范\n */\n\nimport styled from '@emotion/styled'\nimport { css } from '@emotion/react'\nimport type { AppTheme } from '@kingsoft-ai/theme'\n\n// ============================================================================\n// 类型定义\n// ============================================================================\n\nexport const progressTypes = ['line', 'circle'] as const\nexport const progressSizes = ['sm', 'md', 'lg'] as const\nexport const progressStatuses = ['normal', 'error', 'warning', 'success'] as const\n\nexport type ProgressType = (typeof progressTypes)[number]\nexport type ProgressSize = (typeof progressSizes)[number]\nexport type ProgressStatus = (typeof progressStatuses)[number]\n\n// ============================================================================\n// 状态颜色映射\n// ============================================================================\n\nconst getStatusColor = (status: ProgressStatus, theme: AppTheme): string => {\n const colorMap = {\n normal: theme.semantic.colors.brand.primary, // 蓝色\n error: theme.semantic.colors.state.danger, // 红色\n warning: theme.semantic.colors.state.warning, // 橙色\n success: theme.semantic.colors.state.success, // 绿色\n }\n return colorMap[status]\n}\n\n// ============================================================================\n// 线型进度条样式\n// ============================================================================\n\n/**\n * 线型进度条容器\n */\nexport const LineProgressRoot = styled.div<{\n size: ProgressSize\n}>`\n display: flex;\n align-items: center;\n gap: 16px;\n width: 100%;\n`\n\n/**\n * 线型进度条轨道\n */\nexport const LineProgressTrack = styled.div<{\n size: ProgressSize\n}>`\n position: relative;\n flex: 1;\n background: ${({ theme }) => theme.semantic.colors.background.secondary};\n border-radius: 5px;\n overflow: hidden;\n \n ${({ size }) => {\n if (size === 'sm') {\n return css`\n height: 6px;\n `\n }\n // md 和 lg 都是 8px\n return css`\n height: 8px;\n `\n }}\n`\n\n/**\n * 线型进度条填充\n */\nexport const LineProgressBar = styled.div<{\n status: ProgressStatus\n percent: number\n}>`\n height: 100%;\n width: ${({ percent }) => percent}%;\n background: ${({ status, theme }) => getStatusColor(status, theme)};\n border-radius: 5px;\n transition: width 0.3s ease, background 0.3s ease;\n`\n\n/**\n * 进度百分比文字\n */\nexport const ProgressText = styled.span`\n font-family: ${({ theme }) => theme.global.typography.fontFamily};\n font-size: 12px;\n line-height: 18px;\n color: ${({ theme }) => theme.semantic.colors.text.secondary};\n white-space: nowrap;\n flex-shrink: 0;\n`\n\n/**\n * 状态图标容器\n */\nexport const StatusIcon = styled.span<{\n status: ProgressStatus\n}>`\n display: inline-flex;\n align-items: center;\n justify-content: center;\n width: 16px;\n height: 16px;\n flex-shrink: 0;\n color: ${({ status, theme }) => getStatusColor(status, theme)};\n \n svg {\n width: 100%;\n height: 100%;\n }\n`\n\n/**\n * 线型进度条信息区域(百分比+图标)\n */\nexport const LineProgressInfo = styled.div`\n display: flex;\n align-items: center;\n gap: 10px;\n flex-shrink: 0;\n`\n\n// ============================================================================\n// 环形进度条样式\n// ============================================================================\n\n/**\n * 环形进度条容器\n */\nexport const CircleProgressRoot = styled.div<{\n size: ProgressSize\n}>`\n position: relative;\n display: inline-flex;\n align-items: center;\n justify-content: center;\n \n ${({ size }) => {\n if (size === 'sm') {\n return css`\n width: 24px;\n height: 24px;\n `\n }\n if (size === 'md') {\n return css`\n width: 80px;\n height: 80px;\n `\n }\n // lg\n return css`\n width: 160px;\n height: 160px;\n `\n }}\n`\n\n/**\n * 环形进度条 SVG\n */\nexport const CircleProgressSvg = styled.svg`\n transform: rotate(-90deg);\n width: 100%;\n height: 100%;\n`\n\n/**\n * 环形进度条轨道圆\n */\nexport const CircleProgressTrack = styled.circle`\n fill: none;\n stroke: ${({ theme }) => theme.semantic.colors.background.secondary};\n`\n\n/**\n * 环形进度条填充圆\n */\nexport const CircleProgressBar = styled.circle<{\n status: ProgressStatus\n}>`\n fill: none;\n stroke: ${({ status, theme }) => getStatusColor(status, theme)};\n stroke-linecap: round;\n transition: stroke-dashoffset 0.3s ease, stroke 0.3s ease;\n`\n\n/**\n * 环形进度条内容(百分比文字或图标)\n */\nexport const CircleProgressContent = styled.div<{\n size: ProgressSize\n}>`\n position: absolute;\n top: 50%;\n left: 50%;\n transform: translate(-50%, -50%);\n display: flex;\n align-items: center;\n justify-content: center;\n \n ${({ size, theme }: { size: ProgressSize; theme: AppTheme }) => {\n if (size === 'sm') {\n return css`\n width: 16px;\n height: 16px;\n `\n }\n if (size === 'md') {\n return css`\n font-family: 'Barlow', ${theme.global.typography.fontFamily};\n font-size: 20px;\n font-weight: 500;\n line-height: 30px;\n color: ${theme.semantic.colors.text.secondary};\n `\n }\n // lg\n return css`\n font-family: 'Barlow', ${theme.global.typography.fontFamily};\n font-size: 36px;\n font-weight: 500;\n line-height: 54px;\n color: ${theme.semantic.colors.text.secondary};\n `\n }}\n`\n\n/**\n * 小号环形进度条的图标\n */\nexport const CircleProgressIcon = styled.span<{\n status: ProgressStatus\n}>`\n display: inline-flex;\n align-items: center;\n justify-content: center;\n color: ${({ status, theme }) => getStatusColor(status, theme)};\n \n svg {\n width: 100%;\n height: 100%;\n }\n`\n\n","/**\n * Progress 进度条组件\n * \n * 基于 react-aria 实现无障碍访问的进度条组件\n * 完全符合 Figma 设计稿规范\n * \n * @example\n * ```tsx\n * // 线型进度条\n * <Progress value={60} />\n * \n * // 环形进度条\n * <Progress type=\"circle\" value={80} />\n * \n * // 带状态的进度条\n * <Progress value={100} status=\"success\" />\n * \n * // 不显示百分比\n * <Progress value={60} showPercent={false} />\n * ```\n */\n\nimport { forwardRef } from 'react'\nimport { useProgressBar } from 'react-aria'\nimport type { AriaProgressBarProps } from 'react-aria'\nimport {\n LineProgressRoot,\n LineProgressTrack,\n LineProgressBar,\n LineProgressInfo,\n ProgressText,\n StatusIcon,\n CircleProgressRoot,\n CircleProgressSvg,\n CircleProgressTrack,\n CircleProgressBar,\n CircleProgressContent,\n CircleProgressIcon,\n progressTypes,\n progressSizes,\n progressStatuses,\n type ProgressType,\n type ProgressSize,\n type ProgressStatus,\n} from './Progress.style'\n\n// 导出常量供外部使用\nexport const TYPES = progressTypes\nexport const SIZES = progressSizes\nexport const STATUSES = progressStatuses\n\nexport type ProgressProps = Omit<AriaProgressBarProps, 'value'> & {\n /** 进度条类型:线型、环形 */\n type?: ProgressType\n /** 进度条尺寸:小号、中号、大号 */\n size?: ProgressSize\n /** 进度状态:进行中、失败、警示、成功 */\n status?: ProgressStatus\n /** 当前进度值(0-100) */\n value?: number\n /** 是否显示百分比文字 */\n showPercent?: boolean\n /** 是否显示状态图标(仅线型进度条) */\n showIcon?: boolean\n /** 自定义类名 */\n className?: string\n}\n\n/**\n * 成功图标\n */\nconst SuccessIcon = () => (\n <svg viewBox=\"0 0 16 16\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\n <circle cx=\"8\" cy=\"8\" r=\"8\" fill=\"currentColor\" />\n <path\n d=\"M11.3333 5.5L6.75 10.0833L4.66667 8\"\n stroke=\"white\"\n strokeWidth=\"1.5\"\n strokeLinecap=\"round\"\n strokeLinejoin=\"round\"\n />\n </svg>\n)\n\n/**\n * 失败图标\n */\nconst ErrorIcon = () => (\n <svg viewBox=\"0 0 16 16\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\n <circle cx=\"8\" cy=\"8\" r=\"8\" fill=\"currentColor\" />\n <path\n d=\"M10 6L6 10M6 6L10 10\"\n stroke=\"white\"\n strokeWidth=\"1.5\"\n strokeLinecap=\"round\"\n />\n </svg>\n)\n\n/**\n * 警示图标\n */\nconst WarningIcon = () => (\n <svg viewBox=\"0 0 16 16\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\n <circle cx=\"8\" cy=\"8\" r=\"8\" fill=\"currentColor\" />\n <path\n d=\"M8 4.66667V8.66667M8 11.3333H8.00667\"\n stroke=\"white\"\n strokeWidth=\"1.5\"\n strokeLinecap=\"round\"\n strokeLinejoin=\"round\"\n />\n </svg>\n)\n\n/**\n * 根据状态获取对应图标\n */\nconst getStatusIcon = (status: ProgressStatus) => {\n switch (status) {\n case 'success':\n return <SuccessIcon />\n case 'error':\n return <ErrorIcon />\n case 'warning':\n return <WarningIcon />\n default:\n return null\n }\n}\n\n/**\n * Progress 进度条组件\n * \n * 基于 Figma 设计规范实现的进度条组件,支持线型和环形两种类型\n * 使用 react-aria 保证无障碍访问性\n */\nexport const Progress = forwardRef<HTMLDivElement, ProgressProps>(\n (\n {\n type = 'line',\n size = 'md',\n status = 'normal',\n value = 0,\n showPercent = true,\n showIcon = true,\n className,\n ...ariaProps\n },\n ref,\n ) => {\n // 限制进度值在 0-100 之间\n const percent = Math.min(Math.max(value, 0), 100)\n \n // 使用 react-aria 的 useProgressBar hook\n const { progressBarProps, labelProps } = useProgressBar({\n ...ariaProps,\n value: percent,\n minValue: 0,\n maxValue: 100,\n })\n\n // 根据状态显示图标\n const shouldShowIcon = showIcon && status !== 'normal'\n const icon = shouldShowIcon ? getStatusIcon(status) : null\n\n // 线型进度条\n if (type === 'line') {\n return (\n <LineProgressRoot\n {...progressBarProps}\n ref={ref}\n size={size}\n className={className}\n role=\"progressbar\"\n aria-valuenow={percent}\n aria-valuemin={0}\n aria-valuemax={100}\n >\n <LineProgressTrack size={size}>\n <LineProgressBar status={status} percent={percent} />\n </LineProgressTrack>\n \n <LineProgressInfo>\n {showPercent && (\n <ProgressText {...labelProps}>\n {Math.round(percent)}%\n </ProgressText>\n )}\n \n {shouldShowIcon && icon && (\n <StatusIcon status={status}>\n {icon}\n </StatusIcon>\n )}\n </LineProgressInfo>\n </LineProgressRoot>\n )\n }\n\n // 环形进度条\n // 根据尺寸计算圆的参数\n const getSizeConfig = () => {\n switch (size) {\n case 'sm':\n return { circleSize: 24, strokeWidth: 3 }\n case 'md':\n return { circleSize: 80, strokeWidth: 6 }\n case 'lg':\n return { circleSize: 160, strokeWidth: 8 }\n default:\n return { circleSize: 80, strokeWidth: 6 }\n }\n }\n \n const { circleSize, strokeWidth } = getSizeConfig()\n const radius = (circleSize - strokeWidth) / 2\n const circumference = 2 * Math.PI * radius\n const strokeDashoffset = circumference - (percent / 100) * circumference\n \n // 是否显示百分比文字(小号显示图标,中号和大号显示百分比)\n const showPercentInCircle = size !== 'sm'\n\n return (\n <CircleProgressRoot\n {...progressBarProps}\n ref={ref}\n size={size}\n className={className}\n role=\"progressbar\"\n aria-valuenow={percent}\n aria-valuemin={0}\n aria-valuemax={100}\n >\n <CircleProgressSvg>\n {/* 轨道 */}\n <CircleProgressTrack\n cx={circleSize / 2}\n cy={circleSize / 2}\n r={radius}\n strokeWidth={strokeWidth}\n />\n \n {/* 进度条 */}\n <CircleProgressBar\n status={status}\n cx={circleSize / 2}\n cy={circleSize / 2}\n r={radius}\n strokeWidth={strokeWidth}\n strokeDasharray={circumference}\n strokeDashoffset={strokeDashoffset}\n />\n </CircleProgressSvg>\n \n {/* 中心内容 */}\n <CircleProgressContent size={size}>\n {showPercentInCircle ? (\n // 中号和大号显示百分比文字\n showPercent && <span {...labelProps}>{Math.round(percent)}%</span>\n ) : (\n // 小号显示状态图标\n shouldShowIcon && icon && (\n <CircleProgressIcon status={status}>\n {icon}\n </CircleProgressIcon>\n )\n )}\n </CircleProgressContent>\n </CircleProgressRoot>\n )\n },\n)\n\nProgress.displayName = 'Progress'\n\n","import {createContext as $69F46$createContext, useMemo as $69F46$useMemo, useContext as $69F46$useContext, useState as $69F46$useState, useRef as $69F46$useRef, useEffect as $69F46$useEffect} from \"react\";\n\n/*\n * Copyright 2023 Adobe. All rights reserved.\n * This file is licensed to you under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License. You may obtain a copy\n * of the License at http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software distributed under\n * the License is distributed on an \"AS IS\" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS\n * OF ANY KIND, either express or implied. See the License for the specific language\n * governing permissions and limitations under the License.\n */ \nconst $e5be200c675c3b3a$export$aca958c65c314e6c = {\n badInput: false,\n customError: false,\n patternMismatch: false,\n rangeOverflow: false,\n rangeUnderflow: false,\n stepMismatch: false,\n tooLong: false,\n tooShort: false,\n typeMismatch: false,\n valueMissing: false,\n valid: true\n};\nconst $e5be200c675c3b3a$var$CUSTOM_VALIDITY_STATE = {\n ...$e5be200c675c3b3a$export$aca958c65c314e6c,\n customError: true,\n valid: false\n};\nconst $e5be200c675c3b3a$export$dad6ae84456c676a = {\n isInvalid: false,\n validationDetails: $e5be200c675c3b3a$export$aca958c65c314e6c,\n validationErrors: []\n};\nconst $e5be200c675c3b3a$export$571b5131b7e65c11 = (0, $69F46$createContext)({});\nconst $e5be200c675c3b3a$export$a763b9476acd3eb = '__formValidationState' + Date.now();\nfunction $e5be200c675c3b3a$export$fc1a364ae1f3ff10(props) {\n // Private prop for parent components to pass state to children.\n if (props[$e5be200c675c3b3a$export$a763b9476acd3eb]) {\n let { realtimeValidation: realtimeValidation, displayValidation: displayValidation, updateValidation: updateValidation, resetValidation: resetValidation, commitValidation: commitValidation } = props[$e5be200c675c3b3a$export$a763b9476acd3eb];\n return {\n realtimeValidation: realtimeValidation,\n displayValidation: displayValidation,\n updateValidation: updateValidation,\n resetValidation: resetValidation,\n commitValidation: commitValidation\n };\n }\n // eslint-disable-next-line react-hooks/rules-of-hooks\n return $e5be200c675c3b3a$var$useFormValidationStateImpl(props);\n}\nfunction $e5be200c675c3b3a$var$useFormValidationStateImpl(props) {\n let { isInvalid: isInvalid, validationState: validationState, name: name, value: value, builtinValidation: builtinValidation, validate: validate, validationBehavior: validationBehavior = 'aria' } = props;\n // backward compatibility.\n if (validationState) isInvalid || (isInvalid = validationState === 'invalid');\n // If the isInvalid prop is controlled, update validation result in realtime.\n let controlledError = isInvalid !== undefined ? {\n isInvalid: isInvalid,\n validationErrors: [],\n validationDetails: $e5be200c675c3b3a$var$CUSTOM_VALIDITY_STATE\n } : null;\n // Perform custom client side validation.\n let clientError = (0, $69F46$useMemo)(()=>{\n if (!validate || value == null) return null;\n let validateErrors = $e5be200c675c3b3a$var$runValidate(validate, value);\n return $e5be200c675c3b3a$var$getValidationResult(validateErrors);\n }, [\n validate,\n value\n ]);\n if (builtinValidation === null || builtinValidation === void 0 ? void 0 : builtinValidation.validationDetails.valid) builtinValidation = undefined;\n // Get relevant server errors from the form.\n let serverErrors = (0, $69F46$useContext)($e5be200c675c3b3a$export$571b5131b7e65c11);\n let serverErrorMessages = (0, $69F46$useMemo)(()=>{\n if (name) return Array.isArray(name) ? name.flatMap((name)=>$e5be200c675c3b3a$var$asArray(serverErrors[name])) : $e5be200c675c3b3a$var$asArray(serverErrors[name]);\n return [];\n }, [\n serverErrors,\n name\n ]);\n // Show server errors when the form gets a new value, and clear when the user changes the value.\n let [lastServerErrors, setLastServerErrors] = (0, $69F46$useState)(serverErrors);\n let [isServerErrorCleared, setServerErrorCleared] = (0, $69F46$useState)(false);\n if (serverErrors !== lastServerErrors) {\n setLastServerErrors(serverErrors);\n setServerErrorCleared(false);\n }\n let serverError = (0, $69F46$useMemo)(()=>$e5be200c675c3b3a$var$getValidationResult(isServerErrorCleared ? [] : serverErrorMessages), [\n isServerErrorCleared,\n serverErrorMessages\n ]);\n // Track the next validation state in a ref until commitValidation is called.\n let nextValidation = (0, $69F46$useRef)($e5be200c675c3b3a$export$dad6ae84456c676a);\n let [currentValidity, setCurrentValidity] = (0, $69F46$useState)($e5be200c675c3b3a$export$dad6ae84456c676a);\n let lastError = (0, $69F46$useRef)($e5be200c675c3b3a$export$dad6ae84456c676a);\n let commitValidation = ()=>{\n if (!commitQueued) return;\n setCommitQueued(false);\n let error = clientError || builtinValidation || nextValidation.current;\n if (!$e5be200c675c3b3a$var$isEqualValidation(error, lastError.current)) {\n lastError.current = error;\n setCurrentValidity(error);\n }\n };\n let [commitQueued, setCommitQueued] = (0, $69F46$useState)(false);\n (0, $69F46$useEffect)(commitValidation);\n // realtimeValidation is used to update the native input element's state based on custom validation logic.\n // displayValidation is the currently displayed validation state that the user sees (e.g. on input change/form submit).\n // With validationBehavior=\"aria\", all errors are displayed in realtime rather than on submit.\n let realtimeValidation = controlledError || serverError || clientError || builtinValidation || $e5be200c675c3b3a$export$dad6ae84456c676a;\n let displayValidation = validationBehavior === 'native' ? controlledError || serverError || currentValidity : controlledError || serverError || clientError || builtinValidation || currentValidity;\n return {\n realtimeValidation: realtimeValidation,\n displayValidation: displayValidation,\n updateValidation (value) {\n // If validationBehavior is 'aria', update in realtime. Otherwise, store in a ref until commit.\n if (validationBehavior === 'aria' && !$e5be200c675c3b3a$var$isEqualValidation(currentValidity, value)) setCurrentValidity(value);\n else nextValidation.current = value;\n },\n resetValidation () {\n // Update the currently displayed validation state to valid on form reset,\n // even if the native validity says it isn't. It'll show again on the next form submit.\n let error = $e5be200c675c3b3a$export$dad6ae84456c676a;\n if (!$e5be200c675c3b3a$var$isEqualValidation(error, lastError.current)) {\n lastError.current = error;\n setCurrentValidity(error);\n }\n // Do not commit validation after the next render. This avoids a condition where\n // useSelect calls commitValidation inside an onReset handler.\n if (validationBehavior === 'native') setCommitQueued(false);\n setServerErrorCleared(true);\n },\n commitValidation () {\n // Commit validation state so the user sees it on blur/change/submit. Also clear any server errors.\n // Wait until after the next render to commit so that the latest value has been validated.\n if (validationBehavior === 'native') setCommitQueued(true);\n setServerErrorCleared(true);\n }\n };\n}\nfunction $e5be200c675c3b3a$var$asArray(v) {\n if (!v) return [];\n return Array.isArray(v) ? v : [\n v\n ];\n}\nfunction $e5be200c675c3b3a$var$runValidate(validate, value) {\n if (typeof validate === 'function') {\n let e = validate(value);\n if (e && typeof e !== 'boolean') return $e5be200c675c3b3a$var$asArray(e);\n }\n return [];\n}\nfunction $e5be200c675c3b3a$var$getValidationResult(errors) {\n return errors.length ? {\n isInvalid: true,\n validationErrors: errors,\n validationDetails: $e5be200c675c3b3a$var$CUSTOM_VALIDITY_STATE\n } : null;\n}\nfunction $e5be200c675c3b3a$var$isEqualValidation(a, b) {\n if (a === b) return true;\n return !!a && !!b && a.isInvalid === b.isInvalid && a.validationErrors.length === b.validationErrors.length && a.validationErrors.every((a, i)=>a === b.validationErrors[i]) && Object.entries(a.validationDetails).every(([k, v])=>b.validationDetails[k] === v);\n}\nfunction $e5be200c675c3b3a$export$75ee7c75d68f5b0e(...results) {\n let errors = new Set();\n let isInvalid = false;\n let validationDetails = {\n ...$e5be200c675c3b3a$export$aca958c65c314e6c\n };\n for (let v of results){\n var _validationDetails, _key;\n for (let e of v.validationErrors)errors.add(e);\n // Only these properties apply for checkboxes.\n isInvalid || (isInvalid = v.isInvalid);\n for(let key in validationDetails)(_validationDetails = validationDetails)[_key = key] || (_validationDetails[_key] = v.validationDetails[key]);\n }\n validationDetails.valid = !isInvalid;\n return {\n isInvalid: isInvalid,\n validationErrors: [\n ...errors\n ],\n validationDetails: validationDetails\n };\n}\n\n\nexport {$e5be200c675c3b3a$export$aca958c65c314e6c as VALID_VALIDITY_STATE, $e5be200c675c3b3a$export$dad6ae84456c676a as DEFAULT_VALIDATION_RESULT, $e5be200c675c3b3a$export$571b5131b7e65c11 as FormValidationContext, $e5be200c675c3b3a$export$a763b9476acd3eb as privateValidationStateProp, $e5be200c675c3b3a$export$fc1a364ae1f3ff10 as useFormValidationState, $e5be200c675c3b3a$export$75ee7c75d68f5b0e as mergeValidation};\n//# sourceMappingURL=useFormValidationState.module.js.map\n","/*\n * Copyright 2020 Adobe. All rights reserved.\n * This file is licensed to you under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License. You may obtain a copy\n * of the License at http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software distributed under\n * the License is distributed on an \"AS IS\" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS\n * OF ANY KIND, either express or implied. See the License for the specific language\n * governing permissions and limitations under the License.\n */ class $a02d57049d202695$export$d085fb9e920b5ca7 {\n *[Symbol.iterator]() {\n yield* this.iterable;\n }\n get size() {\n return this._size;\n }\n getKeys() {\n return this.keyMap.keys();\n }\n getKeyBefore(key) {\n let node = this.keyMap.get(key);\n var _node_prevKey;\n return node ? (_node_prevKey = node.prevKey) !== null && _node_prevKey !== void 0 ? _node_prevKey : null : null;\n }\n getKeyAfter(key) {\n let node = this.keyMap.get(key);\n var _node_nextKey;\n return node ? (_node_nextKey = node.nextKey) !== null && _node_nextKey !== void 0 ? _node_nextKey : null : null;\n }\n getFirstKey() {\n return this.firstKey;\n }\n getLastKey() {\n return this.lastKey;\n }\n getItem(key) {\n var _this_keyMap_get;\n return (_this_keyMap_get = this.keyMap.get(key)) !== null && _this_keyMap_get !== void 0 ? _this_keyMap_get : null;\n }\n at(idx) {\n const keys = [\n ...this.getKeys()\n ];\n return this.getItem(keys[idx]);\n }\n getChildren(key) {\n let node = this.keyMap.get(key);\n return (node === null || node === void 0 ? void 0 : node.childNodes) || [];\n }\n constructor(nodes){\n this.keyMap = new Map();\n this.firstKey = null;\n this.lastKey = null;\n this.iterable = nodes;\n let visit = (node)=>{\n this.keyMap.set(node.key, node);\n if (node.childNodes && node.type === 'section') for (let child of node.childNodes)visit(child);\n };\n for (let node of nodes)visit(node);\n let last = null;\n let index = 0;\n let size = 0;\n for (let [key, node] of this.keyMap){\n if (last) {\n last.nextKey = key;\n node.prevKey = last.key;\n } else {\n this.firstKey = key;\n node.prevKey = undefined;\n }\n if (node.type === 'item') node.index = index++;\n // Only count sections and items when determining size so that\n // loaders and separators in RAC/S2 don't influence the emptyState determination\n if (node.type === 'section' || node.type === 'item') size++;\n last = node;\n // Set nextKey as undefined since this might be the last node\n // If it isn't the last node, last.nextKey will properly set at start of new loop\n last.nextKey = undefined;\n }\n this._size = size;\n var _last_key;\n this.lastKey = (_last_key = last === null || last === void 0 ? void 0 : last.key) !== null && _last_key !== void 0 ? _last_key : null;\n }\n}\n\n\nexport {$a02d57049d202695$export$d085fb9e920b5ca7 as ListCollection};\n//# sourceMappingURL=ListCollection.module.js.map\n","/*\n * Copyright 2020 Adobe. All rights reserved.\n * This file is licensed to you under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License. You may obtain a copy\n * of the License at http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software distributed under\n * the License is distributed on an \"AS IS\" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS\n * OF ANY KIND, either express or implied. See the License for the specific language\n * governing permissions and limitations under the License.\n */ class $e40ea825a81a3709$export$52baac22726c72bf extends Set {\n constructor(keys, anchorKey, currentKey){\n super(keys);\n if (keys instanceof $e40ea825a81a3709$export$52baac22726c72bf) {\n this.anchorKey = anchorKey !== null && anchorKey !== void 0 ? anchorKey : keys.anchorKey;\n this.currentKey = currentKey !== null && currentKey !== void 0 ? currentKey : keys.currentKey;\n } else {\n this.anchorKey = anchorKey !== null && anchorKey !== void 0 ? anchorKey : null;\n this.currentKey = currentKey !== null && currentKey !== void 0 ? currentKey : null;\n }\n }\n}\n\n\nexport {$e40ea825a81a3709$export$52baac22726c72bf as Selection};\n//# sourceMappingURL=Selection.module.js.map\n","import {Selection as $e40ea825a81a3709$export$52baac22726c72bf} from \"./Selection.mjs\";\nimport {useControlledState as $6tM1y$useControlledState} from \"@react-stately/utils\";\nimport {useRef as $6tM1y$useRef, useState as $6tM1y$useState, useMemo as $6tM1y$useMemo, useEffect as $6tM1y$useEffect} from \"react\";\n\n/*\n * Copyright 2020 Adobe. All rights reserved.\n * This file is licensed to you under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License. You may obtain a copy\n * of the License at http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software distributed under\n * the License is distributed on an \"AS IS\" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS\n * OF ANY KIND, either express or implied. See the License for the specific language\n * governing permissions and limitations under the License.\n */ \n\n\nfunction $7af3f5b51489e0b5$var$equalSets(setA, setB) {\n if (setA.size !== setB.size) return false;\n for (let item of setA){\n if (!setB.has(item)) return false;\n }\n return true;\n}\nfunction $7af3f5b51489e0b5$export$253fe78d46329472(props) {\n let { selectionMode: selectionMode = 'none', disallowEmptySelection: disallowEmptySelection = false, allowDuplicateSelectionEvents: allowDuplicateSelectionEvents, selectionBehavior: selectionBehaviorProp = 'toggle', disabledBehavior: disabledBehavior = 'all' } = props;\n // We want synchronous updates to `isFocused` and `focusedKey` after their setters are called.\n // But we also need to trigger a react re-render. So, we have both a ref (sync) and state (async).\n let isFocusedRef = (0, $6tM1y$useRef)(false);\n let [, setFocused] = (0, $6tM1y$useState)(false);\n let focusedKeyRef = (0, $6tM1y$useRef)(null);\n let childFocusStrategyRef = (0, $6tM1y$useRef)(null);\n let [, setFocusedKey] = (0, $6tM1y$useState)(null);\n let selectedKeysProp = (0, $6tM1y$useMemo)(()=>$7af3f5b51489e0b5$var$convertSelection(props.selectedKeys), [\n props.selectedKeys\n ]);\n let defaultSelectedKeys = (0, $6tM1y$useMemo)(()=>$7af3f5b51489e0b5$var$convertSelection(props.defaultSelectedKeys, new (0, $e40ea825a81a3709$export$52baac22726c72bf)()), [\n props.defaultSelectedKeys\n ]);\n let [selectedKeys, setSelectedKeys] = (0, $6tM1y$useControlledState)(selectedKeysProp, defaultSelectedKeys, props.onSelectionChange);\n let disabledKeysProp = (0, $6tM1y$useMemo)(()=>props.disabledKeys ? new Set(props.disabledKeys) : new Set(), [\n props.disabledKeys\n ]);\n let [selectionBehavior, setSelectionBehavior] = (0, $6tM1y$useState)(selectionBehaviorProp);\n // If the selectionBehavior prop is set to replace, but the current state is toggle (e.g. due to long press\n // to enter selection mode on touch), and the selection becomes empty, reset the selection behavior.\n if (selectionBehaviorProp === 'replace' && selectionBehavior === 'toggle' && typeof selectedKeys === 'object' && selectedKeys.size === 0) setSelectionBehavior('replace');\n // If the selectionBehavior prop changes, update the state as well.\n let lastSelectionBehavior = (0, $6tM1y$useRef)(selectionBehaviorProp);\n (0, $6tM1y$useEffect)(()=>{\n if (selectionBehaviorProp !== lastSelectionBehavior.current) {\n setSelectionBehavior(selectionBehaviorProp);\n lastSelectionBehavior.current = selectionBehaviorProp;\n }\n }, [\n selectionBehaviorProp\n ]);\n return {\n selectionMode: selectionMode,\n disallowEmptySelection: disallowEmptySelection,\n selectionBehavior: selectionBehavior,\n setSelectionBehavior: setSelectionBehavior,\n get isFocused () {\n return isFocusedRef.current;\n },\n setFocused (f) {\n isFocusedRef.current = f;\n setFocused(f);\n },\n get focusedKey () {\n return focusedKeyRef.current;\n },\n get childFocusStrategy () {\n return childFocusStrategyRef.current;\n },\n setFocusedKey (k, childFocusStrategy = 'first') {\n focusedKeyRef.current = k;\n childFocusStrategyRef.current = childFocusStrategy;\n setFocusedKey(k);\n },\n selectedKeys: selectedKeys,\n setSelectedKeys (keys) {\n if (allowDuplicateSelectionEvents || !$7af3f5b51489e0b5$var$equalSets(keys, selectedKeys)) setSelectedKeys(keys);\n },\n disabledKeys: disabledKeysProp,\n disabledBehavior: disabledBehavior\n };\n}\nfunction $7af3f5b51489e0b5$var$convertSelection(selection, defaultValue) {\n if (!selection) return defaultValue;\n return selection === 'all' ? 'all' : new (0, $e40ea825a81a3709$export$52baac22726c72bf)(selection);\n}\n\n\nexport {$7af3f5b51489e0b5$export$253fe78d46329472 as useMultipleSelectionState};\n//# sourceMappingURL=useMultipleSelectionState.module.js.map\n","import $6Fm0V$react from \"react\";\n\n/*\n * Copyright 2020 Adobe. All rights reserved.\n * This file is licensed to you under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License. You may obtain a copy\n * of the License at http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software distributed under\n * the License is distributed on an \"AS IS\" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS\n * OF ANY KIND, either express or implied. See the License for the specific language\n * governing permissions and limitations under the License.\n */ \nfunction $c1d7fb2ec91bae71$var$Item(props) {\n return null;\n}\n$c1d7fb2ec91bae71$var$Item.getCollectionNode = function* getCollectionNode(props, context) {\n let { childItems: childItems, title: title, children: children } = props;\n let rendered = props.title || props.children;\n let textValue = props.textValue || (typeof rendered === 'string' ? rendered : '') || props['aria-label'] || '';\n // suppressTextValueWarning is used in components like Tabs, which don't have type to select support.\n if (!textValue && !(context === null || context === void 0 ? void 0 : context.suppressTextValueWarning) && process.env.NODE_ENV !== 'production') console.warn('<Item> with non-plain text contents is unsupported by type to select for accessibility. Please add a `textValue` prop.');\n yield {\n type: 'item',\n props: props,\n rendered: rendered,\n textValue: textValue,\n 'aria-label': props['aria-label'],\n hasChildNodes: $c1d7fb2ec91bae71$var$hasChildItems(props),\n *childNodes () {\n if (childItems) for (let child of childItems)yield {\n type: 'item',\n value: child\n };\n else if (title) {\n let items = [];\n (0, $6Fm0V$react).Children.forEach(children, (child)=>{\n items.push({\n type: 'item',\n element: child\n });\n });\n yield* items;\n }\n }\n };\n};\nfunction $c1d7fb2ec91bae71$var$hasChildItems(props) {\n if (props.hasChildItems != null) return props.hasChildItems;\n if (props.childItems) return true;\n if (props.title && (0, $6Fm0V$react).Children.count(props.children) > 0) return true;\n return false;\n}\n// We don't want getCollectionNode to show up in the type definition\nlet $c1d7fb2ec91bae71$export$6d08773d2e66f8f2 = $c1d7fb2ec91bae71$var$Item;\n\n\nexport {$c1d7fb2ec91bae71$export$6d08773d2e66f8f2 as Item};\n//# sourceMappingURL=Item.module.js.map\n","import $gtysd$react from \"react\";\n\n/*\n * Copyright 2020 Adobe. All rights reserved.\n * This file is licensed to you under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License. You may obtain a copy\n * of the License at http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software distributed under\n * the License is distributed on an \"AS IS\" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS\n * OF ANY KIND, either express or implied. See the License for the specific language\n * governing permissions and limitations under the License.\n */ \nfunction $9fc4852771d079eb$var$Section(props) {\n return null;\n}\n$9fc4852771d079eb$var$Section.getCollectionNode = function* getCollectionNode(props) {\n let { children: children, title: title, items: items } = props;\n yield {\n type: 'section',\n props: props,\n hasChildNodes: true,\n rendered: title,\n 'aria-label': props['aria-label'],\n *childNodes () {\n if (typeof children === 'function') {\n if (!items) throw new Error('props.children was a function but props.items is missing');\n for (let item of items)yield {\n type: 'item',\n value: item,\n renderer: children\n };\n } else {\n let items = [];\n (0, $gtysd$react).Children.forEach(children, (child)=>{\n items.push({\n type: 'item',\n element: child\n });\n });\n yield* items;\n }\n }\n };\n};\n// We don't want getCollectionNode to show up in the type definition\nlet $9fc4852771d079eb$export$6e2c8f0811a474ce = $9fc4852771d079eb$var$Section;\n\n\nexport {$9fc4852771d079eb$export$6e2c8f0811a474ce as Section};\n//# sourceMappingURL=Section.module.js.map\n","import $fzaAv$react from \"react\";\n\n/*\n * Copyright 2020 Adobe. All rights reserved.\n * This file is licensed to you under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License. You may obtain a copy\n * of the License at http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software distributed under\n * the License is distributed on an \"AS IS\" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS\n * OF ANY KIND, either express or implied. See the License for the specific language\n * governing permissions and limitations under the License.\n */ \nclass $eb2240fc39a57fa5$export$bf788dd355e3a401 {\n build(props, context) {\n this.context = context;\n return $eb2240fc39a57fa5$var$iterable(()=>this.iterateCollection(props));\n }\n *iterateCollection(props) {\n let { children: children, items: items } = props;\n if ((0, $fzaAv$react).isValidElement(children) && children.type === (0, $fzaAv$react).Fragment) yield* this.iterateCollection({\n children: children.props.children,\n items: items\n });\n else if (typeof children === 'function') {\n if (!items) throw new Error('props.children was a function but props.items is missing');\n let index = 0;\n for (let item of items){\n yield* this.getFullNode({\n value: item,\n index: index\n }, {\n renderer: children\n });\n index++;\n }\n } else {\n let items = [];\n (0, $fzaAv$react).Children.forEach(children, (child)=>{\n if (child) items.push(child);\n });\n let index = 0;\n for (let item of items){\n let nodes = this.getFullNode({\n element: item,\n index: index\n }, {});\n for (let node of nodes){\n index++;\n yield node;\n }\n }\n }\n }\n getKey(item, partialNode, state, parentKey) {\n if (item.key != null) return item.key;\n if (partialNode.type === 'cell' && partialNode.key != null) return `${parentKey}${partialNode.key}`;\n let v = partialNode.value;\n if (v != null) {\n var _v_key;\n let key = (_v_key = v.key) !== null && _v_key !== void 0 ? _v_key : v.id;\n if (key == null) throw new Error('No key found for item');\n return key;\n }\n return parentKey ? `${parentKey}.${partialNode.index}` : `$.${partialNode.index}`;\n }\n getChildState(state, partialNode) {\n return {\n renderer: partialNode.renderer || state.renderer\n };\n }\n *getFullNode(partialNode, state, parentKey, parentNode) {\n if ((0, $fzaAv$react).isValidElement(partialNode.element) && partialNode.element.type === (0, $fzaAv$react).Fragment) {\n let children = [];\n (0, $fzaAv$react).Children.forEach(partialNode.element.props.children, (child)=>{\n children.push(child);\n });\n var _partialNode_index;\n let index = (_partialNode_index = partialNode.index) !== null && _partialNode_index !== void 0 ? _partialNode_index : 0;\n for (const child of children)yield* this.getFullNode({\n element: child,\n index: index++\n }, state, parentKey, parentNode);\n return;\n }\n // If there's a value instead of an element on the node, and a parent renderer function is available,\n // use it to render an element for the value.\n let element = partialNode.element;\n if (!element && partialNode.value && state && state.renderer) {\n let cached = this.cache.get(partialNode.value);\n if (cached && (!cached.shouldInvalidate || !cached.shouldInvalidate(this.context))) {\n cached.index = partialNode.index;\n cached.parentKey = parentNode ? parentNode.key : null;\n yield cached;\n return;\n }\n element = state.renderer(partialNode.value);\n }\n // If there's an element with a getCollectionNode function on its type, then it's a supported component.\n // Call this function to get a partial node, and recursively build a full node from there.\n if ((0, $fzaAv$react).isValidElement(element)) {\n let type = element.type;\n if (typeof type !== 'function' && typeof type.getCollectionNode !== 'function') {\n let name = element.type;\n throw new Error(`Unknown element <${name}> in collection.`);\n }\n let childNodes = type.getCollectionNode(element.props, this.context);\n var _partialNode_index1;\n let index = (_partialNode_index1 = partialNode.index) !== null && _partialNode_index1 !== void 0 ? _partialNode_index1 : 0;\n let result = childNodes.next();\n while(!result.done && result.value){\n let childNode = result.value;\n partialNode.index = index;\n var _childNode_key;\n let nodeKey = (_childNode_key = childNode.key) !== null && _childNode_key !== void 0 ? _childNode_key : null;\n if (nodeKey == null) nodeKey = childNode.element ? null : this.getKey(element, partialNode, state, parentKey);\n let nodes = this.getFullNode({\n ...childNode,\n key: nodeKey,\n index: index,\n wrapper: $eb2240fc39a57fa5$var$compose(partialNode.wrapper, childNode.wrapper)\n }, this.getChildState(state, childNode), parentKey ? `${parentKey}${element.key}` : element.key, parentNode);\n let children = [\n ...nodes\n ];\n for (let node of children){\n var _childNode_value, _ref;\n // Cache the node based on its value\n node.value = (_ref = (_childNode_value = childNode.value) !== null && _childNode_value !== void 0 ? _childNode_value : partialNode.value) !== null && _ref !== void 0 ? _ref : null;\n if (node.value) this.cache.set(node.value, node);\n var _parentNode_type;\n // The partial node may have specified a type for the child in order to specify a constraint.\n // Verify that the full node that was built recursively matches this type.\n if (partialNode.type && node.type !== partialNode.type) throw new Error(`Unsupported type <${$eb2240fc39a57fa5$var$capitalize(node.type)}> in <${$eb2240fc39a57fa5$var$capitalize((_parentNode_type = parentNode === null || parentNode === void 0 ? void 0 : parentNode.type) !== null && _parentNode_type !== void 0 ? _parentNode_type : 'unknown parent type')}>. Only <${$eb2240fc39a57fa5$var$capitalize(partialNode.type)}> is supported.`);\n index++;\n yield node;\n }\n result = childNodes.next(children);\n }\n return;\n }\n // Ignore invalid elements\n if (partialNode.key == null || partialNode.type == null) return;\n // Create full node\n let builder = this;\n var _partialNode_value, _partialNode_textValue;\n let node = {\n type: partialNode.type,\n props: partialNode.props,\n key: partialNode.key,\n parentKey: parentNode ? parentNode.key : null,\n value: (_partialNode_value = partialNode.value) !== null && _partialNode_value !== void 0 ? _partialNode_value : null,\n level: parentNode ? parentNode.level + 1 : 0,\n index: partialNode.index,\n rendered: partialNode.rendered,\n textValue: (_partialNode_textValue = partialNode.textValue) !== null && _partialNode_textValue !== void 0 ? _partialNode_textValue : '',\n 'aria-label': partialNode['aria-label'],\n wrapper: partialNode.wrapper,\n shouldInvalidate: partialNode.shouldInvalidate,\n hasChildNodes: partialNode.hasChildNodes || false,\n childNodes: $eb2240fc39a57fa5$var$iterable(function*() {\n if (!partialNode.hasChildNodes || !partialNode.childNodes) return;\n let index = 0;\n for (let child of partialNode.childNodes()){\n // Ensure child keys are globally unique by prepending the parent node's key\n if (child.key != null) // TODO: Remove this line entirely and enforce that users always provide unique keys.\n // Currently this line will have issues when a parent has a key `a` and a child with key `bc`\n // but another parent has key `ab` and its child has a key `c`. The combined keys would result in both\n // children having a key of `abc`.\n child.key = `${node.key}${child.key}`;\n let nodes = builder.getFullNode({\n ...child,\n index: index\n }, builder.getChildState(state, child), node.key, node);\n for (let node of nodes){\n index++;\n yield node;\n }\n }\n })\n };\n yield node;\n }\n constructor(){\n this.cache = new WeakMap();\n }\n}\n// Wraps an iterator function as an iterable object, and caches the results.\nfunction $eb2240fc39a57fa5$var$iterable(iterator) {\n let cache = [];\n let iterable = null;\n return {\n *[Symbol.iterator] () {\n for (let item of cache)yield item;\n if (!iterable) iterable = iterator();\n for (let item of iterable){\n cache.push(item);\n yield item;\n }\n }\n };\n}\nfunction $eb2240fc39a57fa5$var$compose(outer, inner) {\n if (outer && inner) return (element)=>outer(inner(element));\n if (outer) return outer;\n if (inner) return inner;\n}\nfunction $eb2240fc39a57fa5$var$capitalize(str) {\n return str[0].toUpperCase() + str.slice(1);\n}\n\n\nexport {$eb2240fc39a57fa5$export$bf788dd355e3a401 as CollectionBuilder};\n//# sourceMappingURL=CollectionBuilder.module.js.map\n","import {CollectionBuilder as $eb2240fc39a57fa5$export$bf788dd355e3a401} from \"./CollectionBuilder.mjs\";\nimport {useMemo as $lbNth$useMemo} from \"react\";\n\n/*\n * Copyright 2020 Adobe. All rights reserved.\n * This file is licensed to you under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License. You may obtain a copy\n * of the License at http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software distributed under\n * the License is distributed on an \"AS IS\" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS\n * OF ANY KIND, either express or implied. See the License for the specific language\n * governing permissions and limitations under the License.\n */ \n\nfunction $7613b1592d41b092$export$6cd28814d92fa9c9(props, factory, context) {\n let builder = (0, $lbNth$useMemo)(()=>new (0, $eb2240fc39a57fa5$export$bf788dd355e3a401)(), []);\n let { children: children, items: items, collection: collection } = props;\n let result = (0, $lbNth$useMemo)(()=>{\n if (collection) return collection;\n let nodes = builder.build({\n children: children,\n items: items\n }, context);\n return factory(nodes);\n }, [\n builder,\n children,\n items,\n collection,\n context,\n factory\n ]);\n return result;\n}\n\n\nexport {$7613b1592d41b092$export$6cd28814d92fa9c9 as useCollection};\n//# sourceMappingURL=useCollection.module.js.map\n","/*\n * Copyright 2020 Adobe. All rights reserved.\n * This file is licensed to you under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License. You may obtain a copy\n * of the License at http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software distributed under\n * the License is distributed on an \"AS IS\" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS\n * OF ANY KIND, either express or implied. See the License for the specific language\n * governing permissions and limitations under the License.\n */ function $c5a24bc478652b5f$export$1005530eda016c13(node, collection) {\n // New API: call collection.getChildren with the node key.\n if (typeof collection.getChildren === 'function') return collection.getChildren(node.key);\n // Old API: access childNodes directly.\n return node.childNodes;\n}\nfunction $c5a24bc478652b5f$export$fbdeaa6a76694f71(iterable) {\n return $c5a24bc478652b5f$export$5f3398f8733f90e2(iterable, 0);\n}\nfunction $c5a24bc478652b5f$export$5f3398f8733f90e2(iterable, index) {\n if (index < 0) return undefined;\n let i = 0;\n for (let item of iterable){\n if (i === index) return item;\n i++;\n }\n}\nfunction $c5a24bc478652b5f$export$7475b2c64539e4cf(iterable) {\n let lastItem = undefined;\n for (let value of iterable)lastItem = value;\n return lastItem;\n}\nfunction $c5a24bc478652b5f$export$8c434b3a7a4dad6(collection, a, b) {\n // If the two nodes have the same parent, compare their indices.\n if (a.parentKey === b.parentKey) return a.index - b.index;\n // Otherwise, collect all of the ancestors from each node, and find the first one that doesn't match starting from the root.\n // Include the base nodes in case we are comparing nodes of different levels so that we can compare the higher node to the lower level node's\n // ancestor of the same level\n let aAncestors = [\n ...$c5a24bc478652b5f$var$getAncestors(collection, a),\n a\n ];\n let bAncestors = [\n ...$c5a24bc478652b5f$var$getAncestors(collection, b),\n b\n ];\n let firstNonMatchingAncestor = aAncestors.slice(0, bAncestors.length).findIndex((a, i)=>a !== bAncestors[i]);\n if (firstNonMatchingAncestor !== -1) {\n // Compare the indices of two children within the common ancestor.\n a = aAncestors[firstNonMatchingAncestor];\n b = bAncestors[firstNonMatchingAncestor];\n return a.index - b.index;\n }\n // If there isn't a non matching ancestor, we might be in a case where one of the nodes is the ancestor of the other.\n if (aAncestors.findIndex((node)=>node === b) >= 0) return 1;\n else if (bAncestors.findIndex((node)=>node === a) >= 0) return -1;\n // 🤷\n return -1;\n}\nfunction $c5a24bc478652b5f$var$getAncestors(collection, node) {\n let parents = [];\n let currNode = node;\n while((currNode === null || currNode === void 0 ? void 0 : currNode.parentKey) != null){\n currNode = collection.getItem(currNode.parentKey);\n if (currNode) parents.unshift(currNode);\n }\n return parents;\n}\n\n\nexport {$c5a24bc478652b5f$export$1005530eda016c13 as getChildNodes, $c5a24bc478652b5f$export$fbdeaa6a76694f71 as getFirstItem, $c5a24bc478652b5f$export$5f3398f8733f90e2 as getNthItem, $c5a24bc478652b5f$export$7475b2c64539e4cf as getLastItem, $c5a24bc478652b5f$export$8c434b3a7a4dad6 as compareNodeOrder};\n//# sourceMappingURL=getChildNodes.module.js.map\n","import {Selection as $e40ea825a81a3709$export$52baac22726c72bf} from \"./Selection.mjs\";\nimport {compareNodeOrder as $jkhUT$compareNodeOrder, getFirstItem as $jkhUT$getFirstItem, getChildNodes as $jkhUT$getChildNodes} from \"@react-stately/collections\";\n\n/*\n * Copyright 2020 Adobe. All rights reserved.\n * This file is licensed to you under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License. You may obtain a copy\n * of the License at http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software distributed under\n * the License is distributed on an \"AS IS\" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS\n * OF ANY KIND, either express or implied. See the License for the specific language\n * governing permissions and limitations under the License.\n */ \n\nclass $d496c0a20b6e58ec$export$6c8a5aaad13c9852 {\n /**\n * The type of selection that is allowed in the collection.\n */ get selectionMode() {\n return this.state.selectionMode;\n }\n /**\n * Whether the collection allows empty selection.\n */ get disallowEmptySelection() {\n return this.state.disallowEmptySelection;\n }\n /**\n * The selection behavior for the collection.\n */ get selectionBehavior() {\n return this.state.selectionBehavior;\n }\n /**\n * Sets the selection behavior for the collection.\n */ setSelectionBehavior(selectionBehavior) {\n this.state.setSelectionBehavior(selectionBehavior);\n }\n /**\n * Whether the collection is currently focused.\n */ get isFocused() {\n return this.state.isFocused;\n }\n /**\n * Sets whether the collection is focused.\n */ setFocused(isFocused) {\n this.state.setFocused(isFocused);\n }\n /**\n * The current focused key in the collection.\n */ get focusedKey() {\n return this.state.focusedKey;\n }\n /** Whether the first or last child of the focused key should receive focus. */ get childFocusStrategy() {\n return this.state.childFocusStrategy;\n }\n /**\n * Sets the focused key.\n */ setFocusedKey(key, childFocusStrategy) {\n if (key == null || this.collection.getItem(key)) this.state.setFocusedKey(key, childFocusStrategy);\n }\n /**\n * The currently selected keys in the collection.\n */ get selectedKeys() {\n return this.state.selectedKeys === 'all' ? new Set(this.getSelectAllKeys()) : this.state.selectedKeys;\n }\n /**\n * The raw selection value for the collection.\n * Either 'all' for select all, or a set of keys.\n */ get rawSelection() {\n return this.state.selectedKeys;\n }\n /**\n * Returns whether a key is selected.\n */ isSelected(key) {\n if (this.state.selectionMode === 'none') return false;\n let mappedKey = this.getKey(key);\n if (mappedKey == null) return false;\n return this.state.selectedKeys === 'all' ? this.canSelectItem(mappedKey) : this.state.selectedKeys.has(mappedKey);\n }\n /**\n * Whether the selection is empty.\n */ get isEmpty() {\n return this.state.selectedKeys !== 'all' && this.state.selectedKeys.size === 0;\n }\n /**\n * Whether all items in the collection are selected.\n */ get isSelectAll() {\n if (this.isEmpty) return false;\n if (this.state.selectedKeys === 'all') return true;\n if (this._isSelectAll != null) return this._isSelectAll;\n let allKeys = this.getSelectAllKeys();\n let selectedKeys = this.state.selectedKeys;\n this._isSelectAll = allKeys.every((k)=>selectedKeys.has(k));\n return this._isSelectAll;\n }\n get firstSelectedKey() {\n let first = null;\n for (let key of this.state.selectedKeys){\n let item = this.collection.getItem(key);\n if (!first || item && (0, $jkhUT$compareNodeOrder)(this.collection, item, first) < 0) first = item;\n }\n var _first_key;\n return (_first_key = first === null || first === void 0 ? void 0 : first.key) !== null && _first_key !== void 0 ? _first_key : null;\n }\n get lastSelectedKey() {\n let last = null;\n for (let key of this.state.selectedKeys){\n let item = this.collection.getItem(key);\n if (!last || item && (0, $jkhUT$compareNodeOrder)(this.collection, item, last) > 0) last = item;\n }\n var _last_key;\n return (_last_key = last === null || last === void 0 ? void 0 : last.key) !== null && _last_key !== void 0 ? _last_key : null;\n }\n get disabledKeys() {\n return this.state.disabledKeys;\n }\n get disabledBehavior() {\n return this.state.disabledBehavior;\n }\n /**\n * Extends the selection to the given key.\n */ extendSelection(toKey) {\n if (this.selectionMode === 'none') return;\n if (this.selectionMode === 'single') {\n this.replaceSelection(toKey);\n return;\n }\n let mappedToKey = this.getKey(toKey);\n if (mappedToKey == null) return;\n let selection;\n // Only select the one key if coming from a select all.\n if (this.state.selectedKeys === 'all') selection = new (0, $e40ea825a81a3709$export$52baac22726c72bf)([\n mappedToKey\n ], mappedToKey, mappedToKey);\n else {\n let selectedKeys = this.state.selectedKeys;\n var _selectedKeys_anchorKey;\n let anchorKey = (_selectedKeys_anchorKey = selectedKeys.anchorKey) !== null && _selectedKeys_anchorKey !== void 0 ? _selectedKeys_anchorKey : mappedToKey;\n selection = new (0, $e40ea825a81a3709$export$52baac22726c72bf)(selectedKeys, anchorKey, mappedToKey);\n var _selectedKeys_currentKey;\n for (let key of this.getKeyRange(anchorKey, (_selectedKeys_currentKey = selectedKeys.currentKey) !== null && _selectedKeys_currentKey !== void 0 ? _selectedKeys_currentKey : mappedToKey))selection.delete(key);\n for (let key of this.getKeyRange(mappedToKey, anchorKey))if (this.canSelectItem(key)) selection.add(key);\n }\n this.state.setSelectedKeys(selection);\n }\n getKeyRange(from, to) {\n let fromItem = this.collection.getItem(from);\n let toItem = this.collection.getItem(to);\n if (fromItem && toItem) {\n if ((0, $jkhUT$compareNodeOrder)(this.collection, fromItem, toItem) <= 0) return this.getKeyRangeInternal(from, to);\n return this.getKeyRangeInternal(to, from);\n }\n return [];\n }\n getKeyRangeInternal(from, to) {\n var _this_layoutDelegate;\n if ((_this_layoutDelegate = this.layoutDelegate) === null || _this_layoutDelegate === void 0 ? void 0 : _this_layoutDelegate.getKeyRange) return this.layoutDelegate.getKeyRange(from, to);\n let keys = [];\n let key = from;\n while(key != null){\n let item = this.collection.getItem(key);\n if (item && (item.type === 'item' || item.type === 'cell' && this.allowsCellSelection)) keys.push(key);\n if (key === to) return keys;\n key = this.collection.getKeyAfter(key);\n }\n return [];\n }\n getKey(key) {\n let item = this.collection.getItem(key);\n if (!item) // ¯\\_(ツ)_/¯\n return key;\n // If cell selection is allowed, just return the key.\n if (item.type === 'cell' && this.allowsCellSelection) return key;\n // Find a parent item to select\n while(item && item.type !== 'item' && item.parentKey != null)item = this.collection.getItem(item.parentKey);\n if (!item || item.type !== 'item') return null;\n return item.key;\n }\n /**\n * Toggles whether the given key is selected.\n */ toggleSelection(key) {\n if (this.selectionMode === 'none') return;\n if (this.selectionMode === 'single' && !this.isSelected(key)) {\n this.replaceSelection(key);\n return;\n }\n let mappedKey = this.getKey(key);\n if (mappedKey == null) return;\n let keys = new (0, $e40ea825a81a3709$export$52baac22726c72bf)(this.state.selectedKeys === 'all' ? this.getSelectAllKeys() : this.state.selectedKeys);\n if (keys.has(mappedKey)) keys.delete(mappedKey);\n else if (this.canSelectItem(mappedKey)) {\n keys.add(mappedKey);\n keys.anchorKey = mappedKey;\n keys.currentKey = mappedKey;\n }\n if (this.disallowEmptySelection && keys.size === 0) return;\n this.state.setSelectedKeys(keys);\n }\n /**\n * Replaces the selection with only the given key.\n */ replaceSelection(key) {\n if (this.selectionMode === 'none') return;\n let mappedKey = this.getKey(key);\n if (mappedKey == null) return;\n let selection = this.canSelectItem(mappedKey) ? new (0, $e40ea825a81a3709$export$52baac22726c72bf)([\n mappedKey\n ], mappedKey, mappedKey) : new (0, $e40ea825a81a3709$export$52baac22726c72bf)();\n this.state.setSelectedKeys(selection);\n }\n /**\n * Replaces the selection with the given keys.\n */ setSelectedKeys(keys) {\n if (this.selectionMode === 'none') return;\n let selection = new (0, $e40ea825a81a3709$export$52baac22726c72bf)();\n for (let key of keys){\n let mappedKey = this.getKey(key);\n if (mappedKey != null) {\n selection.add(mappedKey);\n if (this.selectionMode === 'single') break;\n }\n }\n this.state.setSelectedKeys(selection);\n }\n getSelectAllKeys() {\n let keys = [];\n let addKeys = (key)=>{\n while(key != null){\n if (this.canSelectItem(key)) {\n var _getFirstItem;\n let item = this.collection.getItem(key);\n if ((item === null || item === void 0 ? void 0 : item.type) === 'item') keys.push(key);\n var _getFirstItem_key;\n // Add child keys. If cell selection is allowed, then include item children too.\n if ((item === null || item === void 0 ? void 0 : item.hasChildNodes) && (this.allowsCellSelection || item.type !== 'item')) addKeys((_getFirstItem_key = (_getFirstItem = (0, $jkhUT$getFirstItem)((0, $jkhUT$getChildNodes)(item, this.collection))) === null || _getFirstItem === void 0 ? void 0 : _getFirstItem.key) !== null && _getFirstItem_key !== void 0 ? _getFirstItem_key : null);\n }\n key = this.collection.getKeyAfter(key);\n }\n };\n addKeys(this.collection.getFirstKey());\n return keys;\n }\n /**\n * Selects all items in the collection.\n */ selectAll() {\n if (!this.isSelectAll && this.selectionMode === 'multiple') this.state.setSelectedKeys('all');\n }\n /**\n * Removes all keys from the selection.\n */ clearSelection() {\n if (!this.disallowEmptySelection && (this.state.selectedKeys === 'all' || this.state.selectedKeys.size > 0)) this.state.setSelectedKeys(new (0, $e40ea825a81a3709$export$52baac22726c72bf)());\n }\n /**\n * Toggles between select all and an empty selection.\n */ toggleSelectAll() {\n if (this.isSelectAll) this.clearSelection();\n else this.selectAll();\n }\n select(key, e) {\n if (this.selectionMode === 'none') return;\n if (this.selectionMode === 'single') {\n if (this.isSelected(key) && !this.disallowEmptySelection) this.toggleSelection(key);\n else this.replaceSelection(key);\n } else if (this.selectionBehavior === 'toggle' || e && (e.pointerType === 'touch' || e.pointerType === 'virtual')) // if touch or virtual (VO) then we just want to toggle, otherwise it's impossible to multi select because they don't have modifier keys\n this.toggleSelection(key);\n else this.replaceSelection(key);\n }\n /**\n * Returns whether the current selection is equal to the given selection.\n */ isSelectionEqual(selection) {\n if (selection === this.state.selectedKeys) return true;\n // Check if the set of keys match.\n let selectedKeys = this.selectedKeys;\n if (selection.size !== selectedKeys.size) return false;\n for (let key of selection){\n if (!selectedKeys.has(key)) return false;\n }\n for (let key of selectedKeys){\n if (!selection.has(key)) return false;\n }\n return true;\n }\n canSelectItem(key) {\n var _item_props;\n if (this.state.selectionMode === 'none' || this.state.disabledKeys.has(key)) return false;\n let item = this.collection.getItem(key);\n if (!item || (item === null || item === void 0 ? void 0 : (_item_props = item.props) === null || _item_props === void 0 ? void 0 : _item_props.isDisabled) || item.type === 'cell' && !this.allowsCellSelection) return false;\n return true;\n }\n isDisabled(key) {\n var _this_collection_getItem_props, _this_collection_getItem;\n return this.state.disabledBehavior === 'all' && (this.state.disabledKeys.has(key) || !!((_this_collection_getItem = this.collection.getItem(key)) === null || _this_collection_getItem === void 0 ? void 0 : (_this_collection_getItem_props = _this_collection_getItem.props) === null || _this_collection_getItem_props === void 0 ? void 0 : _this_collection_getItem_props.isDisabled));\n }\n isLink(key) {\n var _this_collection_getItem_props, _this_collection_getItem;\n return !!((_this_collection_getItem = this.collection.getItem(key)) === null || _this_collection_getItem === void 0 ? void 0 : (_this_collection_getItem_props = _this_collection_getItem.props) === null || _this_collection_getItem_props === void 0 ? void 0 : _this_collection_getItem_props.href);\n }\n getItemProps(key) {\n var _this_collection_getItem;\n return (_this_collection_getItem = this.collection.getItem(key)) === null || _this_collection_getItem === void 0 ? void 0 : _this_collection_getItem.props;\n }\n withCollection(collection) {\n return new $d496c0a20b6e58ec$export$6c8a5aaad13c9852(collection, this.state, {\n allowsCellSelection: this.allowsCellSelection,\n layoutDelegate: this.layoutDelegate || undefined\n });\n }\n constructor(collection, state, options){\n this.collection = collection;\n this.state = state;\n var _options_allowsCellSelection;\n this.allowsCellSelection = (_options_allowsCellSelection = options === null || options === void 0 ? void 0 : options.allowsCellSelection) !== null && _options_allowsCellSelection !== void 0 ? _options_allowsCellSelection : false;\n this._isSelectAll = null;\n this.layoutDelegate = (options === null || options === void 0 ? void 0 : options.layoutDelegate) || null;\n }\n}\n\n\nexport {$d496c0a20b6e58ec$export$6c8a5aaad13c9852 as SelectionManager};\n//# sourceMappingURL=SelectionManager.module.js.map\n","import {ListCollection as $a02d57049d202695$export$d085fb9e920b5ca7} from \"./ListCollection.mjs\";\nimport {useMultipleSelectionState as $d5vlZ$useMultipleSelectionState, SelectionManager as $d5vlZ$SelectionManager} from \"@react-stately/selection\";\nimport {useMemo as $d5vlZ$useMemo, useCallback as $d5vlZ$useCallback, useRef as $d5vlZ$useRef, useEffect as $d5vlZ$useEffect} from \"react\";\nimport {useCollection as $d5vlZ$useCollection} from \"@react-stately/collections\";\n\n/*\n * Copyright 2020 Adobe. All rights reserved.\n * This file is licensed to you under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License. You may obtain a copy\n * of the License at http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software distributed under\n * the License is distributed on an \"AS IS\" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS\n * OF ANY KIND, either express or implied. See the License for the specific language\n * governing permissions and limitations under the License.\n */ \n\n\n\nfunction $e72dd72e1c76a225$export$2f645645f7bca764(props) {\n let { filter: filter, layoutDelegate: layoutDelegate } = props;\n let selectionState = (0, $d5vlZ$useMultipleSelectionState)(props);\n let disabledKeys = (0, $d5vlZ$useMemo)(()=>props.disabledKeys ? new Set(props.disabledKeys) : new Set(), [\n props.disabledKeys\n ]);\n let factory = (0, $d5vlZ$useCallback)((nodes)=>filter ? new (0, $a02d57049d202695$export$d085fb9e920b5ca7)(filter(nodes)) : new (0, $a02d57049d202695$export$d085fb9e920b5ca7)(nodes), [\n filter\n ]);\n let context = (0, $d5vlZ$useMemo)(()=>({\n suppressTextValueWarning: props.suppressTextValueWarning\n }), [\n props.suppressTextValueWarning\n ]);\n let collection = (0, $d5vlZ$useCollection)(props, factory, context);\n let selectionManager = (0, $d5vlZ$useMemo)(()=>new (0, $d5vlZ$SelectionManager)(collection, selectionState, {\n layoutDelegate: layoutDelegate\n }), [\n collection,\n selectionState,\n layoutDelegate\n ]);\n $e72dd72e1c76a225$var$useFocusedKeyReset(collection, selectionManager);\n return {\n collection: collection,\n disabledKeys: disabledKeys,\n selectionManager: selectionManager\n };\n}\nfunction $e72dd72e1c76a225$export$ba9d38c0f1bf2b36(state, filterFn) {\n let collection = (0, $d5vlZ$useMemo)(()=>filterFn ? state.collection.filter(filterFn) : state.collection, [\n state.collection,\n filterFn\n ]);\n let selectionManager = state.selectionManager.withCollection(collection);\n $e72dd72e1c76a225$var$useFocusedKeyReset(collection, selectionManager);\n return {\n collection: collection,\n selectionManager: selectionManager,\n disabledKeys: state.disabledKeys\n };\n}\nfunction $e72dd72e1c76a225$var$useFocusedKeyReset(collection, selectionManager) {\n // Reset focused key if that item is deleted from the collection.\n const cachedCollection = (0, $d5vlZ$useRef)(null);\n (0, $d5vlZ$useEffect)(()=>{\n if (selectionManager.focusedKey != null && !collection.getItem(selectionManager.focusedKey) && cachedCollection.current) {\n const startItem = cachedCollection.current.getItem(selectionManager.focusedKey);\n const cachedItemNodes = [\n ...cachedCollection.current.getKeys()\n ].map((key)=>{\n const itemNode = cachedCollection.current.getItem(key);\n return (itemNode === null || itemNode === void 0 ? void 0 : itemNode.type) === 'item' ? itemNode : null;\n }).filter((node)=>node !== null);\n const itemNodes = [\n ...collection.getKeys()\n ].map((key)=>{\n const itemNode = collection.getItem(key);\n return (itemNode === null || itemNode === void 0 ? void 0 : itemNode.type) === 'item' ? itemNode : null;\n }).filter((node)=>node !== null);\n var _cachedItemNodes_length, _itemNodes_length;\n const diff = ((_cachedItemNodes_length = cachedItemNodes === null || cachedItemNodes === void 0 ? void 0 : cachedItemNodes.length) !== null && _cachedItemNodes_length !== void 0 ? _cachedItemNodes_length : 0) - ((_itemNodes_length = itemNodes === null || itemNodes === void 0 ? void 0 : itemNodes.length) !== null && _itemNodes_length !== void 0 ? _itemNodes_length : 0);\n var _startItem_index, _startItem_index1, _itemNodes_length1;\n let index = Math.min(diff > 1 ? Math.max(((_startItem_index = startItem === null || startItem === void 0 ? void 0 : startItem.index) !== null && _startItem_index !== void 0 ? _startItem_index : 0) - diff + 1, 0) : (_startItem_index1 = startItem === null || startItem === void 0 ? void 0 : startItem.index) !== null && _startItem_index1 !== void 0 ? _startItem_index1 : 0, ((_itemNodes_length1 = itemNodes === null || itemNodes === void 0 ? void 0 : itemNodes.length) !== null && _itemNodes_length1 !== void 0 ? _itemNodes_length1 : 0) - 1);\n let newNode = null;\n let isReverseSearching = false;\n while(index >= 0){\n if (!selectionManager.isDisabled(itemNodes[index].key)) {\n newNode = itemNodes[index];\n break;\n }\n // Find next, not disabled item.\n if (index < itemNodes.length - 1 && !isReverseSearching) index++;\n else {\n isReverseSearching = true;\n var _startItem_index2, _startItem_index3;\n if (index > ((_startItem_index2 = startItem === null || startItem === void 0 ? void 0 : startItem.index) !== null && _startItem_index2 !== void 0 ? _startItem_index2 : 0)) index = (_startItem_index3 = startItem === null || startItem === void 0 ? void 0 : startItem.index) !== null && _startItem_index3 !== void 0 ? _startItem_index3 : 0;\n index--;\n }\n }\n selectionManager.setFocusedKey(newNode ? newNode.key : null);\n }\n cachedCollection.current = collection;\n }, [\n collection,\n selectionManager\n ]);\n}\n\n\nexport {$e72dd72e1c76a225$export$2f645645f7bca764 as useListState, $e72dd72e1c76a225$export$ba9d38c0f1bf2b36 as UNSTABLE_useFilteredListState};\n//# sourceMappingURL=useListState.module.js.map\n","import {useCallback as $hnMvi$useCallback} from \"react\";\nimport {useControlledState as $hnMvi$useControlledState} from \"@react-stately/utils\";\n\n/*\n * Copyright 2020 Adobe. All rights reserved.\n * This file is licensed to you under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License. You may obtain a copy\n * of the License at http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software distributed under\n * the License is distributed on an \"AS IS\" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS\n * OF ANY KIND, either express or implied. See the License for the specific language\n * governing permissions and limitations under the License.\n */ \n\nfunction $fc909762b330b746$export$61c6a8c84e605fb6(props) {\n let [isOpen, setOpen] = (0, $hnMvi$useControlledState)(props.isOpen, props.defaultOpen || false, props.onOpenChange);\n const open = (0, $hnMvi$useCallback)(()=>{\n setOpen(true);\n }, [\n setOpen\n ]);\n const close = (0, $hnMvi$useCallback)(()=>{\n setOpen(false);\n }, [\n setOpen\n ]);\n const toggle = (0, $hnMvi$useCallback)(()=>{\n setOpen(!isOpen);\n }, [\n setOpen,\n isOpen\n ]);\n return {\n isOpen: isOpen,\n setOpen: setOpen,\n open: open,\n close: close,\n toggle: toggle\n };\n}\n\n\nexport {$fc909762b330b746$export$61c6a8c84e605fb6 as useOverlayTriggerState};\n//# sourceMappingURL=useOverlayTriggerState.module.js.map\n","import {useFormValidationState as $6FfNf$useFormValidationState} from \"@react-stately/form\";\nimport {useListState as $6FfNf$useListState} from \"@react-stately/list\";\nimport {useOverlayTriggerState as $6FfNf$useOverlayTriggerState} from \"@react-stately/overlays\";\nimport {useControlledState as $6FfNf$useControlledState} from \"@react-stately/utils\";\nimport {useState as $6FfNf$useState, useMemo as $6FfNf$useMemo} from \"react\";\n\n/*\n * Copyright 2020 Adobe. All rights reserved.\n * This file is licensed to you under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License. You may obtain a copy\n * of the License at http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software distributed under\n * the License is distributed on an \"AS IS\" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS\n * OF ANY KIND, either express or implied. See the License for the specific language\n * governing permissions and limitations under the License.\n */ \n\n\n\n\nfunction $2bc3a590c5373a4e$export$5159ec8b34d4ec12(props) {\n let { selectionMode: selectionMode = 'single' } = props;\n let triggerState = (0, $6FfNf$useOverlayTriggerState)(props);\n let [focusStrategy, setFocusStrategy] = (0, $6FfNf$useState)(null);\n let defaultValue = (0, $6FfNf$useMemo)(()=>{\n var _props_defaultSelectedKey;\n return props.defaultValue !== undefined ? props.defaultValue : selectionMode === 'single' ? (_props_defaultSelectedKey = props.defaultSelectedKey) !== null && _props_defaultSelectedKey !== void 0 ? _props_defaultSelectedKey : null : [];\n }, [\n props.defaultValue,\n props.defaultSelectedKey,\n selectionMode\n ]);\n let value = (0, $6FfNf$useMemo)(()=>{\n return props.value !== undefined ? props.value : selectionMode === 'single' ? props.selectedKey : undefined;\n }, [\n props.value,\n props.selectedKey,\n selectionMode\n ]);\n let [controlledValue, setControlledValue] = (0, $6FfNf$useControlledState)(value, defaultValue, props.onChange);\n // Only display the first selected item if in single selection mode but the value is an array.\n let displayValue = selectionMode === 'single' && Array.isArray(controlledValue) ? controlledValue[0] : controlledValue;\n let setValue = (value)=>{\n if (selectionMode === 'single') {\n var _props_onSelectionChange;\n var _value_;\n let key = Array.isArray(value) ? (_value_ = value[0]) !== null && _value_ !== void 0 ? _value_ : null : value;\n setControlledValue(key);\n if (key !== displayValue) (_props_onSelectionChange = props.onSelectionChange) === null || _props_onSelectionChange === void 0 ? void 0 : _props_onSelectionChange.call(props, key);\n } else {\n let keys = [];\n if (Array.isArray(value)) keys = value;\n else if (value != null) keys = [\n value\n ];\n setControlledValue(keys);\n }\n };\n let listState = (0, $6FfNf$useListState)({\n ...props,\n selectionMode: selectionMode,\n disallowEmptySelection: selectionMode === 'single',\n allowDuplicateSelectionEvents: true,\n selectedKeys: (0, $6FfNf$useMemo)(()=>$2bc3a590c5373a4e$var$convertValue(displayValue), [\n displayValue\n ]),\n onSelectionChange: (keys)=>{\n // impossible, but TS doesn't know that\n if (keys === 'all') return;\n if (selectionMode === 'single') {\n var _keys_values_next_value;\n let key = (_keys_values_next_value = keys.values().next().value) !== null && _keys_values_next_value !== void 0 ? _keys_values_next_value : null;\n setValue(key);\n triggerState.close();\n } else setValue([\n ...keys\n ]);\n validationState.commitValidation();\n }\n });\n let selectedKey = listState.selectionManager.firstSelectedKey;\n let selectedItems = (0, $6FfNf$useMemo)(()=>{\n return [\n ...listState.selectionManager.selectedKeys\n ].map((key)=>listState.collection.getItem(key)).filter((item)=>item != null);\n }, [\n listState.selectionManager.selectedKeys,\n listState.collection\n ]);\n let validationState = (0, $6FfNf$useFormValidationState)({\n ...props,\n value: Array.isArray(displayValue) && displayValue.length === 0 ? null : displayValue\n });\n let [isFocused, setFocused] = (0, $6FfNf$useState)(false);\n let [initialValue] = (0, $6FfNf$useState)(displayValue);\n var _selectedItems_, _props_defaultSelectedKey;\n return {\n ...validationState,\n ...listState,\n ...triggerState,\n value: displayValue,\n defaultValue: defaultValue !== null && defaultValue !== void 0 ? defaultValue : initialValue,\n setValue: setValue,\n selectedKey: selectedKey,\n setSelectedKey: setValue,\n selectedItem: (_selectedItems_ = selectedItems[0]) !== null && _selectedItems_ !== void 0 ? _selectedItems_ : null,\n selectedItems: selectedItems,\n defaultSelectedKey: (_props_defaultSelectedKey = props.defaultSelectedKey) !== null && _props_defaultSelectedKey !== void 0 ? _props_defaultSelectedKey : props.selectionMode === 'single' ? initialValue : null,\n focusStrategy: focusStrategy,\n open (focusStrategy = null) {\n // Don't open if the collection is empty.\n if (listState.collection.size !== 0) {\n setFocusStrategy(focusStrategy);\n triggerState.open();\n }\n },\n toggle (focusStrategy = null) {\n if (listState.collection.size !== 0) {\n setFocusStrategy(focusStrategy);\n triggerState.toggle();\n }\n },\n isFocused: isFocused,\n setFocused: setFocused\n };\n}\nfunction $2bc3a590c5373a4e$var$convertValue(value) {\n if (value === undefined) return undefined;\n if (value === null) return [];\n return Array.isArray(value) ? value : [\n value\n ];\n}\n\n\nexport {$2bc3a590c5373a4e$export$5159ec8b34d4ec12 as useSelectState};\n//# sourceMappingURL=useSelectState.module.js.map\n","/**\n * Tag 标签样式\n * \n * 基于三层 Token 体系:\n * - Tier 1 (Global): 全局基础值\n * - Tier 2 (Semantic): 语义化映射\n * - Tier 3 (Component): 组件专用 Token\n * \n * 完全还原 Figma 设计稿规范\n */\n\nimport styled from '@emotion/styled'\nimport { css } from '@emotion/react'\nimport type { AppTheme } from '@kingsoft-ai/theme'\n\n// ============================================================================\n// 类型定义\n// ============================================================================\n\nexport const tagVariants = ['default', 'checkable'] as const\nexport const tagSizes = ['sm', 'md', 'lg'] as const\nexport const tagColors = [\n 'default',\n 'red',\n 'orange', \n 'yellow',\n 'green',\n 'lavender',\n 'lilac',\n 'carmine',\n 'rose',\n 'mint',\n 'olive',\n 'blue'\n] as const\n\nexport type TagVariant = (typeof tagVariants)[number]\nexport type TagSize = (typeof tagSizes)[number]\nexport type TagColor = (typeof tagColors)[number]\n\n// ============================================================================\n// 变体样式生成器\n// ============================================================================\n\n/**\n * 获取 Tag 变体样式\n * 优先使用 Tier 3 组件层 Token\n */\nconst getVariantStyles = (\n variant: TagVariant,\n color: TagColor,\n bordered: boolean,\n checked: boolean,\n theme: AppTheme\n) => {\n // 获取颜色 Token\n const colorToken = theme.components.tag.colors[color]\n \n // 可选择标签样式\n if (variant === 'checkable') {\n if (checked) {\n return css`\n background: ${colorToken.background.checked};\n color: ${colorToken.text.checked};\n border-color: ${colorToken.border.checked};\n \n &:hover:not(:disabled) {\n background: ${colorToken.background.checkedHover};\n border-color: ${colorToken.border.checkedHover};\n }\n \n &:active:not(:disabled) {\n background: ${colorToken.background.checkedActive};\n border-color: ${colorToken.border.checkedActive};\n }\n `\n } else {\n return css`\n background: ${colorToken.background.default};\n color: ${colorToken.text.default};\n border-color: ${colorToken.border.default};\n cursor: pointer;\n \n &:hover:not(:disabled) {\n background: ${colorToken.background.hover};\n border-color: ${colorToken.border.hover};\n }\n \n &:active:not(:disabled) {\n background: ${colorToken.background.active};\n border-color: ${colorToken.border.active};\n }\n `\n }\n }\n \n // 默认标签样式\n if (bordered) {\n return css`\n background: ${colorToken.background.default};\n color: ${colorToken.text.default};\n border-color: ${colorToken.border.default};\n `\n } else {\n return css`\n background: ${colorToken.background.default};\n color: ${colorToken.text.default};\n border-color: transparent;\n `\n }\n}\n\n/**\n * 获取 Tag 尺寸样式\n * 使用 Tier 3 组件层尺寸 Token\n */\nconst getSizeStyles = (size: TagSize, theme: AppTheme) => {\n const sizeToken = theme.components.tag.size[size]\n\n return css`\n height: ${sizeToken.height};\n font-size: ${sizeToken.fontSize};\n line-height: ${sizeToken.lineHeight};\n padding-inline: ${sizeToken.paddingInline};\n gap: ${sizeToken.gap};\n\n /* 图标尺寸 */\n svg {\n width: ${sizeToken.iconSize};\n height: ${sizeToken.iconSize};\n }\n `\n}\n\n// ============================================================================\n// 样式组件\n// ============================================================================\n\n/**\n * Tag 根元素\n * \n * 特性:\n * - 基于三层 Token 设计\n * - 支持多种颜色和变体\n * - 完整的交互状态(hover, active, disabled)\n * - 支持边框和无边框模式\n */\nexport const TagRoot = styled.span<{\n variant: TagVariant\n size: TagSize\n color: TagColor\n bordered: boolean\n checked: boolean\n closable: boolean\n isDisabled: boolean\n}>`\n /* 基础样式 - 使用 Tier 3 组件层 Token */\n position: relative;\n display: inline-flex;\n align-items: center;\n justify-content: center;\n box-sizing: border-box;\n \n /* 字体样式 */\n font-family: ${({ theme }) => theme.global.typography.fontFamily};\n font-weight: ${({ theme }) => theme.components.tag.fontWeight};\n white-space: nowrap;\n \n /* 边框样式 */\n border-width: 1px;\n border-style: solid;\n border-radius: ${({ theme }) => theme.components.tag.borderRadius};\n \n /* 交互样式 */\n user-select: none;\n outline: none;\n \n /* 过渡动画 */\n transition: \n background ${({ theme }) => theme.components.tag.transition},\n border-color ${({ theme }) => theme.components.tag.transition},\n color ${({ theme }) => theme.components.tag.transition},\n opacity ${({ theme }) => theme.components.tag.transition};\n\n /* 变体和颜色样式 */\n ${({ variant, color, bordered, checked, theme }) =>\n getVariantStyles(variant, color, bordered, checked, theme)}\n\n /* 尺寸样式 */\n ${({ size, theme }) => getSizeStyles(size, theme)}\n\n /* 可选择标签的 cursor */\n ${({ variant, checked }) =>\n variant === 'checkable' &&\n !checked &&\n css`\n cursor: pointer;\n `}\n\n /* 禁用状态 */\n &:disabled,\n &[data-disabled='true'] {\n cursor: not-allowed;\n opacity: ${({ theme }) => theme.components.tag.disabled.opacity};\n }\n\n /* Focus 可见状态 - 键盘导航时显示 */\n &:focus-visible {\n outline: 2px solid ${({ theme }) => theme.components.tag.colors.default.border.checked};\n outline-offset: 2px;\n }\n`\n\n/**\n * Tag 内容容器\n * \n * 用于布局图标和文本\n */\nexport const TagContent = styled.span`\n display: inline-flex;\n align-items: center;\n justify-content: center;\n gap: inherit;\n`\n\n/**\n * 图标包装器\n * \n * 特性:\n * - 保持布局稳定\n * - 支持前置图标\n */\nexport const IconWrapper = styled.span`\n display: inline-flex;\n align-items: center;\n justify-content: center;\n flex-shrink: 0;\n color: inherit;\n`\n\n/**\n * 关闭按钮\n * \n * 使用 span 而非 button,避免在 Select 等组件中嵌套 button 导致的 HTML 错误\n * \n * 特性:\n * - 独立的交互区域\n * - hover 时显示反馈\n */\nexport const CloseButton = styled.span<{\n size: TagSize\n}>`\n display: inline-flex;\n align-items: center;\n justify-content: center;\n flex-shrink: 0;\n \n border: none;\n background: transparent;\n padding: 0;\n margin: 0;\n cursor: pointer;\n color: inherit;\n \n transition: opacity ${({ theme }) => theme.components.tag.transition};\n \n &:hover {\n opacity: 0.7;\n }\n \n &:active {\n opacity: 0.5;\n }\n \n /* 图标尺寸 */\n svg {\n width: ${({ size, theme }) => theme.components.tag.size[size].closeIconSize};\n height: ${({ size, theme }) => theme.components.tag.size[size].closeIconSize};\n }\n`\n\n/**\n * 添加按钮(New Tag)\n * \n * 专门用于添加新标签的按钮样式\n */\nexport const AddButton = styled.button<{\n size: TagSize\n}>`\n display: inline-flex;\n align-items: center;\n justify-content: center;\n box-sizing: border-box;\n gap: ${({ size, theme }) => theme.components.tag.size[size].gap};\n \n height: ${({ size, theme }) => theme.components.tag.size[size].height};\n padding-inline: ${({ size, theme }) => theme.components.tag.size[size].paddingInline};\n \n font-family: ${({ theme }) => theme.global.typography.fontFamily};\n font-size: ${({ size, theme }) => theme.components.tag.size[size].fontSize};\n line-height: ${({ size, theme }) => theme.components.tag.size[size].lineHeight};\n font-weight: ${({ theme }) => theme.components.tag.fontWeight};\n color: ${({ theme }) => theme.components.tag.colors.default.text.default};\n \n background: ${({ theme }) => theme.components.tag.colors.default.background.default};\n border: 1px solid ${({ theme }) => theme.components.tag.colors.default.border.default};\n border-radius: ${({ theme }) => theme.components.tag.borderRadius};\n \n cursor: pointer;\n user-select: none;\n white-space: nowrap;\n \n transition: \n background ${({ theme }) => theme.components.tag.transition},\n border-color ${({ theme }) => theme.components.tag.transition};\n \n &:hover:not(:disabled) {\n background: ${({ theme }) => theme.components.tag.colors.default.background.hover};\n border-color: ${({ theme }) => theme.components.tag.colors.default.border.hover};\n }\n \n &:active:not(:disabled) {\n background: ${({ theme }) => theme.components.tag.colors.default.background.active};\n border-color: ${({ theme }) => theme.components.tag.colors.default.border.active};\n }\n \n &:disabled {\n cursor: not-allowed;\n opacity: ${({ theme }) => theme.components.tag.disabled.opacity};\n }\n \n &:focus-visible {\n outline: 2px solid ${({ theme }) => theme.components.tag.colors.default.border.checked};\n outline-offset: 2px;\n }\n \n svg {\n width: ${({ size, theme }) => theme.components.tag.size[size].iconSize};\n height: ${({ size, theme }) => theme.components.tag.size[size].iconSize};\n }\n`\n\n","/**\n * Tag 标签组件\n * \n * 基于 react-aria 实现无障碍访问的标签组件\n * 完全符合 Figma 设计稿规范\n * \n * @example\n * ```tsx\n * // 基础用法\n * <Tag>标签</Tag>\n * \n * // 可关闭\n * <Tag closable onClose={() => console.log('closed')}>标签</Tag>\n * \n * // 带图标\n * <Tag icon={<IconOutline />}>标签</Tag>\n * \n * // 可选择\n * <Tag checkable checked onChange={(checked) => console.log(checked)}>标签</Tag>\n * \n * // 彩色标签\n * <Tag color=\"red\">红色</Tag>\n * <Tag color=\"blue\" bordered>蓝色带边框</Tag>\n * ```\n */\n\nimport { forwardRef, useRef, type ReactNode } from 'react'\nimport { useButton } from 'react-aria'\nimport type { AriaButtonProps } from 'react-aria'\nimport { mergeProps } from '@react-aria/utils'\nimport { CloseOutline, PlusOutline } from '@kingsoft-ai/icons'\nimport {\n TagRoot,\n TagContent,\n IconWrapper,\n CloseButton,\n AddButton,\n type TagVariant,\n type TagSize,\n type TagColor,\n} from './Tag.style'\n\n// 导出类型供外部使用\nexport type { TagVariant, TagSize, TagColor }\n\nexport interface TagProps {\n /** 标签变体:默认 | 可选择 */\n variant?: TagVariant\n /** 标签尺寸:小号(18px) | 中号(24px) | 大号(32px) */\n size?: TagSize\n /** 标签颜色 */\n color?: TagColor\n /** 是否显示边框(仅彩色标签适用) */\n bordered?: boolean\n /** 是否可关闭 */\n closable?: boolean\n /** 是否可选择(checkable 变体) */\n checkable?: boolean\n /** 是否已选中(checkable 变体) */\n checked?: boolean\n /** 前置图标 */\n icon?: ReactNode\n /** 是否禁用 */\n disabled?: boolean\n /** 自定义类名 */\n className?: string\n /** 子元素 */\n children?: ReactNode\n /** 关闭回调 */\n onClose?: () => void\n /** 选中状态变化回调(checkable 变体) */\n onChange?: (checked: boolean) => void\n /** 点击回调 */\n onClick?: () => void\n}\n\n/**\n * Tag 标签组件\n * \n * 基于 Figma 设计规范实现的标签组件,支持多种变体、颜色和尺寸\n * 使用 react-aria 保证无障碍访问性\n */\nexport const Tag = forwardRef<HTMLSpanElement, TagProps>(\n (\n {\n variant = 'default',\n size = 'md',\n color = 'default',\n bordered = false,\n closable = false,\n checkable = false,\n checked = false,\n icon,\n disabled = false,\n className,\n children,\n onClose,\n onChange,\n onClick,\n },\n forwardedRef,\n ) => {\n // 确定实际使用的变体\n const actualVariant: TagVariant = checkable ? 'checkable' : variant\n const isChecked = checkable ? checked : false\n\n // 处理点击事件\n const handleClick = () => {\n if (disabled) return\n \n if (checkable && onChange) {\n onChange(!isChecked)\n }\n \n if (onClick) {\n onClick()\n }\n }\n\n const handleKeyDown = (event: React.KeyboardEvent<HTMLSpanElement>) => {\n if (disabled) return\n\n if (actualVariant === 'checkable' && (event.key === 'Enter' || event.key === ' ')) {\n event.preventDefault()\n handleClick()\n }\n }\n\n // 处理关闭事件\n const handleClose = (e: React.MouseEvent) => {\n e.stopPropagation() // 防止触发标签的点击事件\n if (onClose && !disabled) {\n onClose()\n }\n }\n\n return (\n <TagRoot\n ref={forwardedRef}\n variant={actualVariant}\n size={size}\n color={color}\n bordered={bordered}\n checked={isChecked}\n closable={closable}\n isDisabled={disabled}\n className={className}\n onClick={actualVariant === 'checkable' ? handleClick : onClick}\n onKeyDown={handleKeyDown}\n data-variant={actualVariant}\n data-size={size}\n data-color={color}\n data-checked={isChecked ? 'true' : undefined}\n data-disabled={disabled ? 'true' : undefined}\n tabIndex={actualVariant === 'checkable' && !disabled ? 0 : undefined}\n role={actualVariant === 'checkable' ? 'checkbox' : undefined}\n aria-checked={actualVariant === 'checkable' ? isChecked : undefined}\n aria-disabled={disabled}\n >\n <TagContent>\n {/* 前置图标 */}\n {icon && (\n <IconWrapper aria-hidden=\"true\">\n {icon}\n </IconWrapper>\n )}\n\n {/* 标签文本 */}\n {children}\n\n {/* 关闭按钮 */}\n {closable && (\n <CloseButton\n size={size}\n onClick={handleClose}\n aria-label=\"关闭\"\n role=\"button\"\n tabIndex={disabled ? -1 : 0}\n onKeyDown={(e) => {\n if (!disabled && (e.key === 'Enter' || e.key === ' ')) {\n e.preventDefault()\n handleClose(e as any)\n }\n }}\n aria-disabled={disabled}\n >\n <CloseOutline />\n </CloseButton>\n )}\n </TagContent>\n </TagRoot>\n )\n },\n)\n\nTag.displayName = 'Tag'\n\n// ============================================================================\n// 复合组件:Tag.Add\n// ============================================================================\n\nexport interface TagAddProps extends Omit<AriaButtonProps, 'elementType'> {\n /** 标签尺寸 */\n size?: TagSize\n /** 自定义类名 */\n className?: string\n /** 子元素 */\n children?: ReactNode\n}\n\n/**\n * Tag.Add 添加标签按钮\n * \n * 用于添加新标签的按钮组件\n */\nexport const TagAdd = forwardRef<HTMLButtonElement, TagAddProps>(\n ({ size = 'md', className, children = 'New Tag', ...ariaProps }, forwardedRef) => {\n const innerRef = useRef<HTMLButtonElement>(null)\n const ref = forwardedRef || innerRef\n\n const { buttonProps } = useButton(\n {\n ...ariaProps,\n elementType: 'button',\n },\n innerRef,\n )\n\n return (\n <AddButton\n {...mergeProps(buttonProps, {\n ref,\n className,\n })}\n size={size}\n data-size={size}\n >\n <PlusOutline />\n {children}\n </AddButton>\n )\n },\n)\n\nTagAdd.displayName = 'Tag.Add'\n\n// 将 Add 作为 Tag 的静态属性\n;(Tag as any).Add = TagAdd\n\n","/**\n * Select 样式组件\n * \n * 基于三层 Token 体系\n */\n\nimport styled from '@emotion/styled'\nimport { css } from '@emotion/react'\nimport type { AppTheme } from '@kingsoft-ai/theme'\n\nexport const selectSizes = ['sm', 'md', 'lg'] as const\nexport type SelectSize = (typeof selectSizes)[number]\n\n// ============================================================================\n// 样式辅助函数\n// ============================================================================\n\nconst getBorderColor = (\n isFocused: boolean,\n isError: boolean,\n isDisabled: boolean,\n isHovered: boolean,\n theme: AppTheme\n) => {\n if (isDisabled) return theme.components.select.border.disabled\n if (isError) return theme.components.select.border.error\n if (isFocused) return theme.components.select.border.focus\n if (isHovered) return theme.components.select.border.hover\n return theme.components.select.border.default\n}\n\nconst getSizeStyles = (size: SelectSize, isMultiple: boolean, theme: AppTheme) => {\n const sizeToken = theme.components.select.size[size]\n\n return css`\n ${isMultiple ? `min-height: ${sizeToken.height};` : `height: ${sizeToken.height};`}\n font-size: ${sizeToken.fontSize};\n padding-inline: ${sizeToken.paddingInline};\n ${isMultiple ? 'padding-block: 4px;' : ''}\n\n svg {\n /* No global svg sizing here to avoid affecting Tag icons */\n }\n `\n}\n\n// ============================================================================\n// Select Trigger Styles\n// ============================================================================\n\nexport const SelectTrigger = styled.button<{\n size: SelectSize\n fullWidth?: boolean\n isFocused?: boolean\n isError?: boolean\n isDisabled?: boolean\n isHovered?: boolean\n isOpen?: boolean\n isMultiple?: boolean\n}>`\n /* 基础重置 */\n position: relative;\n display: inline-flex;\n align-items: center;\n justify-content: space-between;\n box-sizing: border-box;\n width: ${({ fullWidth }) => (fullWidth ? '100%' : '200px')};\n min-width: 120px;\n \n /* 样式 */\n border: 1px solid;\n border-color: ${({ isFocused, isError, isDisabled, isHovered, isOpen, theme }) =>\n getBorderColor(isFocused || !!isOpen, !!isError, !!isDisabled, !!isHovered, theme)};\n border-radius: ${({ theme }) => theme.components.select.borderRadius};\n \n background: ${({ isDisabled, theme }) =>\n isDisabled\n ? theme.components.select.background.disabled\n : theme.components.select.background.default};\n \n color: ${({ isDisabled, isError, theme }) => {\n if (isDisabled) return theme.components.select.text.disabled\n if (isError) return theme.components.select.text.error\n return theme.components.select.text.default\n }};\n\n cursor: ${({ isDisabled }) => (isDisabled ? 'not-allowed' : 'pointer')};\n outline: none;\n \n transition: all ${({ theme }) => theme.components.select.transition};\n\n /* 尺寸 */\n ${({ size, isMultiple, theme }) => getSizeStyles(size, !!isMultiple, theme)}\n \n /* 禁用状态 */\n ${({ isDisabled }) =>\n isDisabled &&\n css`\n opacity: 0.6;\n `}\n`\n\nexport const SelectValue = styled.span<{ isPlaceholder?: boolean }>`\n flex: 1;\n overflow: hidden;\n text-overflow: ellipsis;\n white-space: nowrap;\n text-align: left;\n margin-right: 8px;\n color: ${({ isPlaceholder, theme }) => \n isPlaceholder ? theme.components.select.text.placeholder : 'inherit'};\n`\n\nexport const SelectIcon = styled.span<{ isOpen?: boolean; size?: SelectSize }>`\n display: inline-flex;\n align-items: center;\n justify-content: center;\n align-self: center;\n flex-shrink: 0;\n transition: transform 0.2s ease;\n transform: ${({ isOpen }) => (isOpen ? 'rotate(180deg)' : 'rotate(0deg)')};\n color: inherit;\n opacity: 0.5;\n \n svg {\n width: ${({ size, theme }) => size ? theme.components.select.size[size].iconSize : '16px'};\n height: ${({ size, theme }) => size ? theme.components.select.size[size].iconSize : '16px'};\n }\n`\n\n// ============================================================================\n// Popover/ListBox Styles\n// ============================================================================\n\nexport const ListBoxPopup = styled.div`\n background: ${({ theme }) => theme.components.select.popover.background};\n border: ${({ theme }) => theme.components.select.popover.border};\n border-radius: ${({ theme }) => theme.components.select.popover.borderRadius};\n box-shadow: ${({ theme }) => theme.components.select.popover.boxShadow};\n padding: ${({ theme }) => theme.components.select.popover.padding};\n overflow: hidden;\n min-width: 100%;\n max-height: 300px;\n display: flex;\n flex-direction: column;\n`\n\nexport const ListBoxContent = styled.ul`\n margin: 0;\n padding: 0;\n list-style: none;\n overflow-y: auto;\n outline: none;\n flex: 1;\n\n /* Scrollbar styling if needed */\n &::-webkit-scrollbar {\n width: 4px;\n }\n &::-webkit-scrollbar-track {\n background: transparent;\n }\n &::-webkit-scrollbar-thumb {\n background: rgba(0,0,0,0.2);\n border-radius: 4px;\n }\n`\n\nexport const OptionItem = styled.li<{\n isSelected?: boolean\n isFocused?: boolean\n isDisabled?: boolean\n}>`\n position: relative;\n display: flex;\n align-items: center;\n justify-content: space-between;\n height: ${({ theme }) => theme.components.select.option.height};\n padding-inline: ${({ theme }) => theme.components.select.option.paddingInline};\n margin-bottom: 2px;\n border-radius: ${({ theme }) => theme.components.select.option.borderRadius};\n cursor: ${({ isDisabled }) => (isDisabled ? 'not-allowed' : 'pointer')};\n outline: none;\n user-select: none;\n font-size: ${({ theme }) => theme.components.select.option.fontSize};\n \n background: ${({ isSelected, isFocused, theme }) => {\n if (isSelected) return theme.components.select.option.background.selected\n if (isFocused) return theme.components.select.option.background.focused\n return theme.components.select.option.background.default\n }};\n \n color: ${({ isSelected, isDisabled, theme }) => {\n if (isDisabled) return theme.components.select.option.text.disabled\n if (isSelected) return theme.components.select.option.text.selected\n return theme.components.select.option.text.default\n }};\n\n &:hover {\n background: ${({ isSelected, isDisabled, theme }) => {\n if (isDisabled) return 'transparent'\n if (isSelected) return theme.components.select.option.background.selected\n return theme.components.select.option.background.hover\n }};\n }\n\n &:last-child {\n margin-bottom: 0;\n }\n`\n\nexport const OptionText = styled.span`\n flex: 1;\n overflow: hidden;\n text-overflow: ellipsis;\n white-space: nowrap;\n`\n\nexport const OptionIcon = styled.span`\n margin-left: 8px;\n display: flex;\n align-items: center;\n color: ${({ theme }) => theme.components.select.option.text.selected};\n font-size: 14px;\n`\n\nexport const LoadingWrapper = styled.div`\n display: flex;\n align-items: center;\n justify-content: center;\n padding: 8px;\n color: ${({ theme }) => theme.components.select.text.placeholder};\n font-size: ${({ theme }) => theme.global.typography.fontSize.xs};\n`\n\nexport const EmptyState = styled.div`\n padding: 8px 12px;\n color: ${({ theme }) => theme.components.select.text.disabled};\n font-size: ${({ theme }) => theme.global.typography.fontSize.xs};\n text-align: center;\n`\n\n// ============================================================================\n// Multiple Select Styles\n// ============================================================================\n\nexport const TagsContainer = styled.div`\n flex: 1;\n display: flex;\n flex-wrap: wrap;\n gap: 4px;\n align-items: center;\n min-height: 22px;\n padding-right: 4px;\n`\n\nexport const CheckboxWrapper = styled.span`\n display: inline-flex;\n align-items: center;\n margin-right: 8px;\n flex-shrink: 0;\n pointer-events: none;\n`\n\n","import { useRef, useLayoutEffect, useState, useEffect, type ReactNode, type RefObject } from 'react'\nimport { useOverlay, Overlay, useOverlayPosition, type AriaPopoverProps, FocusScope, DismissButton } from 'react-aria'\nimport { ListBoxPopup } from './Select.style'\n\ninterface PopoverProps extends Omit<AriaPopoverProps, 'popoverRef'> {\n children: ReactNode\n state: any\n triggerRef: RefObject<Element>\n className?: string\n}\n\nexport function Popover({ children, state, offset = 4, triggerRef, placement = 'bottom start', ...props }: PopoverProps) {\n const popoverRef = useRef<HTMLDivElement>(null)\n const [triggerWidth, setTriggerWidth] = useState<number | undefined>(undefined)\n \n // 使用 useLayoutEffect 确保在渲染前获取正确的宽度\n useLayoutEffect(() => {\n if (triggerRef.current) {\n setTriggerWidth(triggerRef.current.getBoundingClientRect().width)\n }\n }, [triggerRef, state.isOpen])\n\n const { overlayProps: overlayPropsFromUseOverlay } = useOverlay(\n {\n ...props,\n shouldCloseOnBlur: false, // 禁用默认的 blur 关闭,使用自定义逻辑\n isDismissable: true,\n onClose: state.close\n },\n popoverRef\n )\n\n const { overlayProps, placement: resolvedPlacement } = useOverlayPosition({\n targetRef: triggerRef,\n overlayRef: popoverRef,\n placement,\n offset,\n isOpen: state.isOpen,\n onClose: state.close\n })\n\n // 全局事件监听:点击外部和焦点移出\n useEffect(() => {\n if (!state.isOpen) return\n\n const onInteractOutside = (event: Event) => {\n const target = event.target as Node\n const popover = popoverRef.current\n const trigger = triggerRef.current\n\n // 如果交互目标既不在弹窗内部也不是触发器,则关闭\n if (\n popover && \n !popover.contains(target) && \n trigger && \n !trigger.contains(target)\n ) {\n state.close()\n }\n }\n\n // mousedown 处理点击外部\n document.addEventListener('mousedown', onInteractOutside)\n // focusin 处理 Tab 键焦点移出 (focusin 支持冒泡,focus 不支持)\n document.addEventListener('focusin', onInteractOutside)\n\n return () => {\n document.removeEventListener('mousedown', onInteractOutside)\n document.removeEventListener('focusin', onInteractOutside)\n }\n }, [state.isOpen, state.close, triggerRef])\n\n return (\n <Overlay>\n <FocusScope restoreFocus>\n <ListBoxPopup\n {...overlayPropsFromUseOverlay}\n {...overlayProps}\n ref={popoverRef}\n data-placement={resolvedPlacement}\n style={{\n ...overlayProps.style,\n zIndex: 10000,\n width: triggerWidth ? `${triggerWidth}px` : 'auto',\n minWidth: triggerWidth ? `${triggerWidth}px` : '120px',\n }}\n >\n <DismissButton onDismiss={state.close} />\n {children}\n <DismissButton onDismiss={state.close} />\n </ListBoxPopup>\n </FocusScope>\n </Overlay>\n )\n}\n","import { useRef } from 'react'\nimport { useListBox, useOption, type AriaListBoxProps } from 'react-aria'\nimport { ListBoxContent, OptionItem, OptionText, OptionIcon, CheckboxWrapper } from './Select.style'\nimport { Checkbox } from '../checkbox'\nimport type { ListState } from '@react-stately/list'\nimport type { Node } from '@react-types/shared'\n\ninterface ListBoxProps extends Omit<AriaListBoxProps<unknown>, 'children'> {\n state: ListState<unknown>\n}\n\nexport function ListBox({ state, ...props }: ListBoxProps) {\n const ref = useRef<HTMLUListElement>(null)\n const { listBoxProps } = useListBox(props, state, ref)\n\n return (\n <ListBoxContent {...listBoxProps} ref={ref}>\n {[...state.collection].map((item) => (\n <Option key={item.key} item={item} state={state} />\n ))}\n </ListBoxContent>\n )\n}\n\ninterface OptionProps {\n item: Node<unknown>\n state: ListState<unknown>\n isMultiple?: boolean\n}\n\nfunction Option({ item, state, isMultiple }: OptionProps) {\n const ref = useRef<HTMLLIElement>(null)\n const { optionProps, isSelected, isFocused, isDisabled } = useOption(\n { key: item.key },\n state,\n ref\n )\n\n return (\n <OptionItem\n {...optionProps}\n ref={ref}\n isSelected={isSelected}\n isFocused={isFocused}\n isDisabled={isDisabled}\n >\n {isMultiple && (\n <CheckboxWrapper aria-hidden=\"true\" onClick={(e) => e.stopPropagation()}>\n <Checkbox checked={isSelected} disabled={isDisabled} tabIndex={-1} />\n </CheckboxWrapper>\n )}\n <OptionText>{item.rendered}</OptionText>\n {!isMultiple && isSelected && (\n <OptionIcon aria-hidden=\"true\">\n <svg width=\"12\" height=\"12\" viewBox=\"0 0 12 12\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\n <path d=\"M10 3L4.5 8.5L2 6\" stroke=\"currentColor\" strokeWidth=\"1.5\" strokeLinecap=\"round\" strokeLinejoin=\"round\"/>\n </svg>\n </OptionIcon>\n )}\n </OptionItem>\n )\n}\n\n// 多选模式 ListBox\ninterface MultiListBoxProps {\n state: ListState<unknown>\n}\n\nexport function MultiListBox({ state }: MultiListBoxProps) {\n const ref = useRef<HTMLUListElement>(null)\n const { listBoxProps } = useListBox(\n { selectionMode: 'multiple' },\n state,\n ref\n )\n\n return (\n <ListBoxContent {...listBoxProps} ref={ref}>\n {[...state.collection].map((item) => (\n <Option key={item.key} item={item} state={state} isMultiple />\n ))}\n </ListBoxContent>\n )\n}\n\n","import React, { forwardRef, useRef, useMemo, useState } from 'react'\nimport { useSelectState } from '@react-stately/select'\nimport { useListState } from '@react-stately/list'\nimport { useSelect, useButton, HiddenSelect, type AriaSelectProps } from 'react-aria'\nimport { Item, Section } from '@react-stately/collections'\nimport { focusWithoutScrolling } from '@react-aria/utils'\nimport type { PressEvent, Selection as SelectionType, Key } from '@react-types/shared'\n\n// Re-export Selection type for external use\nexport type { Selection } from '@react-types/shared'\nimport { ChevronDownOutline } from '@kingsoft-ai/icons'\nimport { Tag } from '../tag'\nimport { SelectTrigger, SelectValue, SelectIcon, LoadingWrapper, TagsContainer } from './Select.style'\nimport { Popover } from './Popover'\nimport { ListBox, MultiListBox } from './ListBox'\nimport type { SelectSize } from './Select.style'\n\nexport type SelectionMode = 'single' | 'multiple'\n\n/**\n * 选项类型定义\n * 推荐使用 options 属性传入选项数据\n */\nexport interface SelectOptionType {\n /** 选项值,作为唯一标识 */\n value: string | number\n /** 选项显示文本 */\n label: React.ReactNode\n /** 是否禁用该选项 */\n disabled?: boolean\n}\n\nexport interface SelectProps<T> extends Omit<AriaSelectProps<T>, 'errorMessage' | 'selectedKey' | 'defaultSelectedKey' | 'onSelectionChange' | 'selectionMode' | 'children' | 'isDisabled'> {\n /** 选择模式:single 单选 | multiple 多选 */\n selectionMode?: SelectionMode\n /** 是否正在加载 */\n loading?: boolean\n /** 是否禁用 */\n disabled?: boolean\n /** 尺寸 */\n size?: SelectSize\n /** 是否全宽 */\n fullWidth?: boolean\n /** 自定义类名 */\n className?: string\n /** 自定义样式 */\n style?: React.CSSProperties\n /** 占位符 */\n placeholder?: string\n /** 错误信息 */\n errorMessage?: React.ReactNode\n /** 多选时最大展示的 Tag 数量 */\n maxTagCount?: number\n /** 单选时选中的 key */\n selectedKey?: React.Key | null\n /** 单选时默认选中的 key */\n defaultSelectedKey?: React.Key\n /** 多选时选中的 keys */\n selectedKeys?: Iterable<React.Key>\n /** 多选时默认选中的 keys */\n defaultSelectedKeys?: Iterable<React.Key>\n /** 选择变化回调(单选返回 key,多选返回 Set) */\n onSelectionChange?: (keys: SelectionType) => void\n /**\n * 选项数据(推荐使用)\n * \n * 提供 options 时会自动渲染选项列表,无需手动编写 <Select.Item>\n * \n * @example\n * ```tsx\n * <Select\n * options={[\n * { value: 'apple', label: '苹果' },\n * { value: 'banana', label: '香蕉' },\n * { value: 'orange', label: '橙子', disabled: true },\n * ]}\n * />\n * ```\n */\n options?: SelectOptionType[]\n /**\n * 子元素(手动编写选项时使用)\n * \n * 推荐使用 options 属性代替 children\n * \n * @example\n * ```tsx\n * <Select>\n * <Select.Item key=\"apple\">苹果</Select.Item>\n * <Select.Item key=\"banana\">香蕉</Select.Item>\n * </Select>\n * ```\n */\n children?: React.ReactNode\n}\n\n// 内部使用的 Select 组件\nconst SelectInner = forwardRef(function Select<T extends object>(\n props: SelectProps<T>,\n ref: React.ForwardedRef<HTMLButtonElement>\n) {\n const {\n selectionMode = 'single',\n loading,\n disabled,\n size = 'md',\n fullWidth = false,\n className,\n style,\n placeholder = '请选择',\n label,\n description,\n errorMessage,\n maxTagCount,\n selectedKeys,\n defaultSelectedKeys,\n onSelectionChange,\n options,\n children,\n } = props\n\n // 根据 options 或 children 生成内容\n const renderItems = useMemo(() => {\n if (options && options.length > 0) {\n return options.map((option) => (\n <Item key={option.value} textValue={typeof option.label === 'string' ? option.label : String(option.value)}>\n {option.label}\n </Item>\n ))\n }\n return children\n }, [options, children])\n\n // 合并 props,将 children 替换为实际渲染内容\n const mergedProps = {\n ...props,\n children: renderItems,\n }\n\n const innerRef = useRef<HTMLButtonElement>(null)\n const triggerRef = (ref as React.RefObject<HTMLButtonElement>) || innerRef\n const lastPointerTypeRef = useRef<PressEvent['pointerType'] | null>(null)\n\n // 单选模式状态\n const singleState = useSelectState(mergedProps as any)\n \n // 多选模式状态\n const multiState = useListState({\n ...mergedProps,\n selectionMode: 'multiple',\n selectedKeys,\n defaultSelectedKeys,\n onSelectionChange,\n } as any)\n\n const isMultiple = selectionMode === 'multiple'\n \n // 多选时的打开状态需要单独管理\n const [multiOpen, setMultiOpen] = useState(false)\n const effectiveOpen = isMultiple ? multiOpen : singleState.isOpen\n\n // 获取选中项用于渲染 Tags\n const selectedItems = useMemo(() => {\n if (!isMultiple) return []\n const items: Array<{ key: Key; rendered: React.ReactNode }> = []\n const selectedKeySet = multiState.selectionManager.selectedKeys\n for (const item of multiState.collection) {\n if (selectedKeySet.has(item.key)) {\n items.push({ key: item.key, rendered: item.rendered })\n }\n }\n return items\n }, [isMultiple, multiState.selectionManager.selectedKeys, multiState.collection])\n\n // 计算要展示的 Tags\n const { visibleTags, overflowCount } = useMemo(() => {\n if (!isMultiple || selectedItems.length === 0) {\n return { visibleTags: [], overflowCount: 0 }\n }\n if (maxTagCount !== undefined && selectedItems.length > maxTagCount) {\n return {\n visibleTags: selectedItems.slice(0, maxTagCount),\n overflowCount: selectedItems.length - maxTagCount,\n }\n }\n return { visibleTags: selectedItems, overflowCount: 0 }\n }, [isMultiple, selectedItems, maxTagCount])\n\n // 单选模式的 hooks\n const {\n labelProps,\n triggerProps,\n valueProps,\n menuProps,\n descriptionProps,\n errorMessageProps\n } = useSelect(mergedProps as any, singleState, triggerRef)\n\n const handlePressStart = (event: PressEvent) => {\n lastPointerTypeRef.current = event.pointerType\n if (event.pointerType !== 'touch' && event.pointerType !== 'keyboard' && triggerRef.current) {\n focusWithoutScrolling(triggerRef.current)\n }\n }\n\n const handlePress = (event: PressEvent) => {\n const pointerType = event.pointerType || lastPointerTypeRef.current\n if (pointerType === 'keyboard') return\n\n if (isMultiple) {\n setMultiOpen(!multiOpen)\n } else {\n const focusStrategy = pointerType === 'mouse' || pointerType === 'pen' ? null : 'first'\n singleState.toggle(focusStrategy)\n }\n }\n\n const { buttonProps } = useButton(\n {\n ...triggerProps,\n onPressStart: handlePressStart,\n onPress: handlePress\n },\n triggerRef\n )\n\n // 移除 Tag\n const handleRemoveTag = (key: Key) => {\n const newKeys = new Set(multiState.selectionManager.selectedKeys)\n newKeys.delete(key)\n multiState.selectionManager.setSelectedKeys(newKeys)\n onSelectionChange?.(newKeys)\n }\n\n // 渲染触发器内容\n const renderTriggerContent = () => {\n if (isMultiple) {\n if (selectedItems.length === 0) {\n return <SelectValue isPlaceholder>{placeholder}</SelectValue>\n }\n return (\n <TagsContainer>\n {visibleTags.map((item) => (\n <Tag\n key={item.key}\n size=\"sm\"\n closable\n onClose={() => handleRemoveTag(item.key)}\n >\n {item.rendered}\n </Tag>\n ))}\n {overflowCount > 0 && <Tag size=\"sm\">+{overflowCount}</Tag>}\n </TagsContainer>\n )\n }\n return (\n <SelectValue {...valueProps} isPlaceholder={!singleState.selectedItem}>\n {singleState.selectedItem ? singleState.selectedItem.rendered : placeholder}\n </SelectValue>\n )\n }\n\n const popoverState = isMultiple \n ? { isOpen: multiOpen, close: () => setMultiOpen(false) }\n : singleState\n\n return (\n <div \n style={{ \n display: fullWidth ? 'flex' : 'inline-flex', \n flexDirection: 'column', \n width: fullWidth ? '100%' : 'auto',\n ...style \n }} \n className={className}\n >\n {label && (\n <label \n {...labelProps} \n style={{ \n fontSize: '12px', \n marginBottom: '4px', \n display: 'block',\n color: 'inherit'\n }}\n >\n {label}\n </label>\n )}\n \n {!isMultiple && (\n <HiddenSelect\n state={singleState}\n triggerRef={triggerRef}\n label={label}\n name={props.name}\n isDisabled={disabled}\n />\n )}\n\n <SelectTrigger\n {...buttonProps}\n ref={triggerRef}\n size={size}\n fullWidth={fullWidth}\n isOpen={effectiveOpen}\n isDisabled={disabled}\n isError={!!errorMessage}\n isMultiple={isMultiple}\n >\n {renderTriggerContent()}\n <SelectIcon isOpen={effectiveOpen} aria-hidden=\"true\" size={size}>\n <ChevronDownOutline width={12} height={12} />\n </SelectIcon>\n </SelectTrigger>\n\n {effectiveOpen && (\n <Popover state={popoverState} triggerRef={triggerRef} placement=\"bottom start\" offset={4}>\n {loading ? (\n <LoadingWrapper>\n <svg \n width=\"16\" \n height=\"16\" \n viewBox=\"0 0 16 16\" \n fill=\"none\" \n xmlns=\"http://www.w3.org/2000/svg\"\n style={{ animation: 'spin 1s linear infinite', marginRight: 8 }}\n >\n <style>{`@keyframes spin { 100% { transform: rotate(360deg); } }`}</style>\n <path d=\"M8 1.5C4.41015 1.5 1.5 4.41015 1.5 8C1.5 11.5899 4.41015 14.5 8 14.5C11.5899 14.5 14.5 11.5899 14.5 8\" stroke=\"currentColor\" strokeWidth=\"1.5\" strokeLinecap=\"round\"/>\n </svg>\n 加载中...\n </LoadingWrapper>\n ) : isMultiple ? (\n <MultiListBox state={multiState} />\n ) : (\n <ListBox {...menuProps} state={singleState} />\n )}\n </Popover>\n )}\n \n {/* Description & Error Message */}\n {description && (\n <div {...descriptionProps} style={{ fontSize: '12px', marginTop: '4px', opacity: 0.6 }}>\n {description}\n </div>\n )}\n {errorMessage && (\n <div {...errorMessageProps} style={{ fontSize: '12px', marginTop: '4px', color: '#ff4d4f' }}>\n {errorMessage}\n </div>\n )}\n </div>\n )\n}) as <T extends object>(props: SelectProps<T> & { ref?: React.Ref<HTMLButtonElement> }) => React.ReactElement\n\n// 为 Select 组件添加静态属性类型\ninterface SelectComponent {\n <T extends object>(props: SelectProps<T> & { ref?: React.Ref<HTMLButtonElement> }): React.ReactElement\n /**\n * 选项组件\n * \n * @example\n * ```tsx\n * <Select>\n * <Select.Item key=\"apple\">苹果</Select.Item>\n * <Select.Item key=\"banana\">香蕉</Select.Item>\n * </Select>\n * ```\n */\n Item: typeof Item\n /**\n * 分组组件\n * \n * @example\n * ```tsx\n * <Select>\n * <Select.Section title=\"水果\">\n * <Select.Item key=\"apple\">苹果</Select.Item>\n * </Select.Section>\n * </Select>\n * ```\n */\n Section: typeof Section\n}\n\n/**\n * Select 选择器组件\n * \n * 基于 react-aria 实现的无障碍选择器\n * 支持单选和多选模式\n * \n * @example 使用 options(推荐)\n * ```tsx\n * <Select\n * options={[\n * { value: 'apple', label: '苹果' },\n * { value: 'banana', label: '香蕉' },\n * ]}\n * onSelectionChange={(key) => console.log(key)}\n * />\n * ```\n * \n * @example 使用 Select.Item\n * ```tsx\n * const { Item } = Select\n * \n * <Select>\n * <Item key=\"apple\">苹果</Item>\n * <Item key=\"banana\">香蕉</Item>\n * </Select>\n * ```\n */\nexport const Select = SelectInner as SelectComponent\n\n// 挂载静态属性\nSelect.Item = Item\nSelect.Section = Section\n","/**\n * Table 样式定义\n * \n * 基于 Figma 设计稿的表格样式实现\n */\n\nimport styled from '@emotion/styled'\nimport { css } from '@emotion/react'\nimport type { AppTheme } from '@kingsoft-ai/theme'\n\n// ============================================================================\n// 类型定义\n// ============================================================================\n\nexport const tableSizes = ['sm', 'md', 'lg'] as const\nexport type TableSize = (typeof tableSizes)[number]\n\nexport const tableVariants = ['default', 'bordered', 'striped'] as const\nexport type TableVariant = (typeof tableVariants)[number]\n\nconst tableBorderRadiusMap: Record<TableSize, number> = {\n sm: 4,\n md: 4,\n lg: 6,\n}\n\nconst getTableRadius = (size?: TableSize) => `${tableBorderRadiusMap[size ?? 'md']}px`\n\n// ============================================================================\n// 容器样式\n// ============================================================================\n\nexport const TableContainer = styled.div<{\n size?: TableSize\n fullWidth?: boolean\n scrollX?: number | string\n scrollY?: number | string\n showScrollbar?: boolean\n}>`\n width: ${props => props.fullWidth ? '100%' : 'auto'};\n overflow: auto;\n /* 移除边框,设计稿中表格没有外围边框 */\n scrollbar-width: ${props => props.showScrollbar ? 'thin' : 'none'};\n scrollbar-color: ${({ theme }) => (theme as AppTheme).semantic.colors.border.primary} transparent;\n border-top-left-radius: ${props => getTableRadius(props.size)};\n border-top-right-radius: ${props => getTableRadius(props.size)};\n \n &::-webkit-scrollbar {\n width: ${props => props.showScrollbar ? '8px' : '0px'};\n height: ${props => props.showScrollbar ? '8px' : '0px'};\n }\n\n &::-webkit-scrollbar-thumb {\n background-color: ${({ theme }) => (theme as AppTheme).semantic.colors.border.primary};\n border-radius: 999px;\n }\n\n &::-webkit-scrollbar-track {\n background: transparent;\n }\n \n ${props => props.scrollX && css`\n max-width: ${typeof props.scrollX === 'number' ? `${props.scrollX}px` : props.scrollX};\n `}\n \n ${props => props.scrollY && css`\n max-height: ${typeof props.scrollY === 'number' ? `${props.scrollY}px` : props.scrollY};\n `}\n`\n\n// ============================================================================\n// Table 根元素\n// ============================================================================\n\nexport const StyledTable = styled.table<{\n size?: TableSize\n variant?: TableVariant\n scrollX?: number | string\n}>`\n width: 100%;\n ${props => props.scrollX && css`\n min-width: ${typeof props.scrollX === 'number' ? `${props.scrollX}px` : props.scrollX};\n `}\n border-collapse: separate;\n border-spacing: 0;\n /* 调整基础字体为 12px */\n font-family: ${({ theme }) => (theme as AppTheme).semantic.typography.component.fontSizeSm};\n background-color: ${({ theme }) => (theme as AppTheme).semantic.colors.background.surface};\n \n ${props => props.variant === 'bordered' && css`\n border: 1px solid ${(props.theme as AppTheme).semantic.colors.border.primary};\n border-radius: ${getTableRadius(props.size)} ${getTableRadius(props.size)} 0 0;\n `}\n\n ${props => props.variant === 'striped' && css`\n tbody tr:nth-of-type(even) {\n --row-bg: ${(props.theme as AppTheme).semantic.colors.background.surfaceSubtle};\n }\n `}\n`\n\n// ============================================================================\n// 表头样式\n// ============================================================================\n\nexport const TableHeader = styled.thead`\n background-color: ${({ theme }) => (theme as AppTheme).semantic.colors.background.surfaceSubtle};\n position: sticky;\n top: 0;\n z-index: 10;\n`\n\nexport const TableHeaderRow = styled.tr`\n border-bottom: 1px solid ${({ theme }) => (theme as AppTheme).semantic.colors.border.primary};\n`\n\nexport const TableHeaderCell = styled.th<{\n size?: TableSize\n sortable?: boolean\n fixed?: 'left' | 'right'\n align?: 'left' | 'center' | 'right'\n width?: number | string\n}>`\n padding: ${props => {\n switch (props.size) {\n case 'sm': return '8px 12px'\n case 'lg': return '16px 16px'\n case 'md':\n default: return '12px 16px'\n }\n }};\n text-align: ${props => props.align || 'left'};\n font-weight: 400; /* Regular font weight based on design (H9/H11) */\n font-size: 12px; /* Explicitly 12px based on design */\n color: ${({ theme }) => (theme as AppTheme).semantic.colors.text.caption}; /* Use caption color for headers */\n white-space: nowrap;\n user-select: none;\n position: ${props => props.fixed ? 'sticky' : 'static'};\n background-color: ${({ theme }) => (theme as AppTheme).semantic.colors.background.surfaceSubtle};\n \n ${props => props.width && css`\n width: ${typeof props.width === 'number' ? `${props.width}px` : props.width};\n `}\n\n ${props => props.fixed === 'left' && css`\n left: 0;\n z-index: 11;\n /* 调整固定列阴影,使其更柔和 */\n box-shadow: 4px 0 8px -4px rgba(0, 0, 0, 0.1);\n `}\n\n ${props => props.fixed === 'right' && css`\n right: 0;\n z-index: 11;\n box-shadow: -4px 0 8px -4px rgba(0, 0, 0, 0.1);\n `}\n\n ${props => props.sortable && css`\n cursor: pointer;\n transition: background-color 0.15s ease;\n\n &:hover {\n background-color: ${(props.theme as AppTheme).semantic.colors.background.surfaceStrong};\n }\n `}\n\n &:first-of-type {\n border-top-left-radius: ${props => getTableRadius(props.size)};\n }\n\n &:last-of-type {\n border-top-right-radius: ${props => getTableRadius(props.size)};\n }\n`\n\nexport const SortIndicator = styled.span<{ direction?: 'asc' | 'desc' | null }>`\n display: inline-flex;\n flex-direction: column;\n align-items: center;\n justify-content: center;\n margin-left: 4px;\n line-height: 1;\n gap: 2px;\n\n svg {\n width: 12px;\n height: 12px;\n color: ${({ theme }) => (theme as AppTheme).semantic.colors.text.disabled};\n transition: color 0.2s ease, opacity 0.2s ease;\n opacity: 0.4;\n }\n\n svg[data-active='true'] {\n color: ${({ theme }) => (theme as AppTheme).semantic.colors.brand.primary};\n opacity: 1;\n }\n`\n\n// ============================================================================\n// 表体样式\n// ============================================================================\n\nexport const TableBody = styled.tbody``\n\nexport const TableRow = styled.tr<{\n selectable?: boolean\n selected?: boolean\n expandable?: boolean\n expanded?: boolean\n isSubRow?: boolean\n level?: number\n}>`\n /* 定义背景色变量,用于同步固定列的背景 */\n --row-bg: ${({ theme }) => (theme as AppTheme).semantic.colors.background.surface};\n\n ${props => props.isSubRow && css`\n --row-bg: ${(props.theme as AppTheme).semantic.colors.background.surfaceSubtle};\n `}\n\n ${props => props.selected && css`\n --row-bg: ${(props.theme as AppTheme).semantic.colors.brand.primarySubtle};\n `}\n\n background-color: var(--row-bg);\n transition: background-color 0.15s ease;\n\n /* 将边框移动到单元格上,确保在 separate 模式下显示且连续 */\n & > td {\n border-bottom: 1px solid ${({ theme }) => (theme as AppTheme).semantic.colors.border.primary};\n }\n\n &:last-of-type > td {\n border-bottom: none;\n }\n\n ${props => (props.selectable || props.expandable) && css`\n cursor: pointer;\n `}\n\n ${props => css`\n &:hover {\n --row-bg: ${props.selected\n ? ((props.theme as AppTheme).semantic.colors.brand.primarySubtle)\n : ((props.theme as AppTheme).semantic.colors.background.surfaceSubtle)};\n }\n\n &:active {\n --row-bg: ${props.selected\n ? ((props.theme as AppTheme).semantic.colors.brand.primarySubtle)\n : ((props.theme as AppTheme).semantic.colors.background.surfaceStrong)};\n }\n `}\n`\n\nexport const TableCell = styled.td<{\n size?: TableSize\n fixed?: 'left' | 'right'\n align?: 'left' | 'center' | 'right'\n width?: number | string\n level?: number\n}>`\n padding: ${props => {\n switch (props.size) {\n case 'sm': return '8px 12px'\n case 'lg': return '16px 16px'\n case 'md':\n default: return '12px 16px'\n }\n }};\n \n ${props => props.level && props.level > 0 && css`\n padding-left: ${16 + props.level * 24}px;\n `}\n \n text-align: ${props => props.align || 'left'};\n font-size: 12px; /* Explicitly 12px */\n color: ${({ theme }) => (theme as AppTheme).semantic.colors.text.primary};\n position: ${props => props.fixed ? 'sticky' : 'static'};\n /* 使用变量确保固定列背景与行背景同步,且不透明 */\n background-color: ${props => props.fixed \n ? 'var(--row-bg, inherit)' \n : 'inherit'};\n transition: background-color 0.15s ease;\n \n ${props => props.width && css`\n width: ${typeof props.width === 'number' ? `${props.width}px` : props.width};\n `}\n\n ${props => props.fixed === 'left' && css`\n left: 0;\n z-index: 9;\n box-shadow: 4px 0 8px -4px rgba(0, 0, 0, 0.1);\n `}\n\n ${props => props.fixed === 'right' && css`\n right: 0;\n z-index: 9;\n box-shadow: -4px 0 8px -4px rgba(0, 0, 0, 0.1);\n `}\n`\n\n// ============================================================================\n// 辅助组件样式\n// ============================================================================\n\nexport const CheckboxCell = styled.div`\n display: flex;\n align-items: center;\n justify-content: center;\n width: 40px;\n`\n\nexport const ExpandButton = styled.button<{ expanded?: boolean }>`\n display: inline-flex;\n align-items: center;\n justify-content: center;\n width: 20px;\n height: 20px;\n border: none;\n background: transparent;\n cursor: pointer;\n padding: 0;\n margin-right: 8px;\n color: ${({ theme }) => (theme as AppTheme).semantic.colors.text.tertiary};\n transition: transform 0.15s ease, color 0.15s ease;\n\n &:hover {\n color: ${({ theme }) => (theme as AppTheme).semantic.colors.text.primary};\n }\n\n svg {\n width: 16px;\n height: 16px;\n transform: ${props => props.expanded ? 'rotate(90deg)' : 'none'};\n }\n`\n\nexport const EmptyState = styled.div`\n padding: 48px 24px;\n text-align: center;\n color: ${({ theme }) => (theme as AppTheme).semantic.colors.text.tertiary};\n font-size: 12px;\n`\n\nexport const CellContent = styled.div<{\n ellipsis?: boolean\n wrapText?: boolean\n}>`\n ${props => props.ellipsis && css`\n overflow: hidden;\n text-overflow: ellipsis;\n white-space: nowrap;\n `}\n\n ${props => props.wrapText && css`\n white-space: normal;\n word-break: break-word;\n `}\n`\n","import { forwardRef, useState, useCallback, useMemo, useEffect, useRef, type ReactNode } from 'react'\nimport { Checkbox } from '../checkbox'\nimport { Radio } from '../radio'\nimport { ChevronUpOutline, ChevronDownOutline, ChevronRightOutline } from '@kingsoft-ai/icons'\nimport {\n TableContainer,\n StyledTable,\n TableHeader,\n TableHeaderRow,\n TableHeaderCell,\n TableBody,\n TableRow,\n TableCell,\n CheckboxCell,\n ExpandButton,\n EmptyState,\n CellContent,\n SortIndicator,\n tableSizes,\n tableVariants,\n type TableSize,\n type TableVariant,\n} from './Table.style'\n\n// 导出类型供外部使用\nexport type { TableSize, TableVariant } from './Table.style'\n\n// 导出常量供外部使用\nexport const SIZES = tableSizes\nexport const VARIANTS = tableVariants\n\n// ============================================================================\n// 类型定义\n// ============================================================================\n\nexport interface TableColumn<T = any> {\n /** 列唯一标识 */\n key: string\n /** 列标题 */\n title?: ReactNode\n /** 列宽度 */\n width?: number | string\n /** 对齐方式 */\n align?: 'left' | 'center' | 'right'\n /** 是否可排序 */\n sortable?: boolean\n /** 固定列 */\n fixed?: 'left' | 'right'\n /** 自定义渲染 */\n render?: (value: any, record: T, index: number) => ReactNode\n /** 是否省略文本 */\n ellipsis?: boolean\n}\n\nexport interface TableDataSource<T = any> {\n /** 唯一标识 */\n id: string | number\n /** 子数据(用于树形结构) */\n children?: TableDataSource<T>[]\n /** 其他数据字段 */\n [key: string]: any\n}\n\nexport interface TableProps<T extends Record<string, any> = Record<string, any>> {\n /** 列配置 */\n columns: TableColumn<T>[]\n /** 数据源 */\n dataSource: T[]\n /** 表格尺寸 */\n size?: TableSize\n /** 表格变体 */\n variant?: TableVariant\n /** 是否显示边框 */\n bordered?: boolean\n /** 是否全宽 */\n fullWidth?: boolean\n /** 滚动配置 */\n scroll?: {\n /** 横向滚动宽度 */\n x?: number | string\n /** 纵向滚动高度 */\n y?: number | string\n }\n /** 是否可选择 */\n selectable?: boolean\n /** 选择类型 */\n selectionMode?: 'single' | 'multiple'\n /** 选中的行 */\n selectedKeys?: Set<string | number> | 'all'\n /** 选中行变化回调 */\n onSelectionChange?: (keys: Set<string | number> | 'all') => void\n /** 是否可展开 */\n expandable?: boolean\n /** 展开的行 */\n expandedKeys?: Set<string | number>\n /** 展开行变化回调 */\n onExpandChange?: (keys: Set<string | number>) => void\n /** 自定义展开内容 */\n expandedRowRender?: (record: T, index: number) => ReactNode\n /** 排序配置 */\n sortConfig?: {\n key: string\n direction: 'asc' | 'desc' | null\n }\n /** 排序变化回调 */\n onSortChange?: (key: string, direction: 'asc' | 'desc' | null) => void\n /** 行点击事件 */\n onRowClick?: (record: T, index: number) => void\n /** 空数据展示 */\n emptyText?: ReactNode\n /** 自定义类名 */\n className?: string\n /** 是否允许折行 */\n wrapText?: boolean\n /** Loading 状态 */\n loading?: boolean\n}\n\n// ============================================================================\n// Table 组件\n// ============================================================================\n\nfunction TableInner<T extends Record<string, any> = Record<string, any>>(\n {\n columns,\n dataSource,\n size = 'md',\n variant = 'default',\n bordered = false,\n fullWidth = true,\n scroll,\n selectable = false,\n selectionMode = 'multiple',\n selectedKeys: controlledSelectedKeys,\n onSelectionChange,\n expandable = false,\n expandedKeys: controlledExpandedKeys,\n onExpandChange,\n expandedRowRender,\n sortConfig,\n onSortChange,\n onRowClick,\n emptyText = '暂无数据',\n className,\n wrapText = false,\n loading = false,\n }: TableProps<T>,\n ref: React.ForwardedRef<HTMLTableElement>\n) {\n // 内部状态管理\n const [internalSelectedKeys, setInternalSelectedKeys] = useState<Set<string | number>>(new Set())\n const [internalExpandedKeys, setInternalExpandedKeys] = useState<Set<string | number>>(new Set())\n const [isScrollbarVisible, setIsScrollbarVisible] = useState(false)\n const containerRef = useRef<HTMLDivElement | null>(null)\n const scrollHideTimerRef = useRef<number | null>(null)\n\n // 选中状态\n const selectedKeys = controlledSelectedKeys ?? internalSelectedKeys\n const handleSelectionChange = useCallback((keys: Set<string | number> | 'all') => {\n // 总是将 'all' 转换为包含所有 ID 的 Set,确保外部接收到的是具体的 key 集合\n const newKeys = keys === 'all' ? new Set(dataSource.map(d => d.id)) : keys\n \n if (!controlledSelectedKeys) {\n setInternalSelectedKeys(newKeys)\n }\n onSelectionChange?.(newKeys)\n }, [controlledSelectedKeys, onSelectionChange, dataSource])\n\n // 展开状态\n const expandedKeys = controlledExpandedKeys ?? internalExpandedKeys\n const handleExpandChange = useCallback((key: string | number) => {\n const newKeys = new Set(expandedKeys)\n if (newKeys.has(key)) {\n newKeys.delete(key)\n } else {\n newKeys.add(key)\n }\n if (!controlledExpandedKeys) {\n setInternalExpandedKeys(newKeys)\n }\n onExpandChange?.(newKeys)\n }, [expandedKeys, controlledExpandedKeys, onExpandChange])\n\n // 排序处理\n const handleSort = useCallback((key: string) => {\n if (!onSortChange) return\n \n let newDirection: 'asc' | 'desc' | null = 'asc'\n \n // 如果当前是该列且正在排序\n if (sortConfig?.key === key) {\n if (sortConfig.direction === 'asc') {\n newDirection = 'desc'\n } else if (sortConfig.direction === 'desc') {\n // 从降序切换到取消排序\n newDirection = null\n }\n }\n \n onSortChange(key, newDirection)\n }, [sortConfig, onSortChange])\n\n // 全选状态计算\n const allSelected = useMemo(() => {\n if (!selectable || selectionMode === 'single') return false\n if (selectedKeys === 'all') return true\n if (dataSource.length === 0) return false\n return dataSource.every(record => selectedKeys.has(record.id))\n }, [selectable, selectionMode, selectedKeys, dataSource])\n\n const indeterminate = useMemo(() => {\n if (!selectable || selectionMode === 'single' || selectedKeys === 'all') return false\n if (dataSource.length === 0) return false\n const selectedCount = dataSource.filter(record => selectedKeys.has(record.id)).length\n return selectedCount > 0 && selectedCount < dataSource.length\n }, [selectable, selectionMode, selectedKeys, dataSource])\n\n // 滚动条显示/隐藏\n useEffect(() => {\n const container = containerRef.current\n if (!container) return\n\n const handleScroll = () => {\n setIsScrollbarVisible(true)\n if (scrollHideTimerRef.current) {\n window.clearTimeout(scrollHideTimerRef.current)\n }\n scrollHideTimerRef.current = window.setTimeout(() => {\n setIsScrollbarVisible(false)\n }, 800)\n }\n\n container.addEventListener('scroll', handleScroll, { passive: true })\n\n return () => {\n container.removeEventListener('scroll', handleScroll)\n if (scrollHideTimerRef.current) {\n window.clearTimeout(scrollHideTimerRef.current)\n }\n }\n }, [])\n\n // 渲染行数据(包含树形结构)\n const renderRows = useCallback((\n data: T[],\n level = 0\n ): React.ReactNode[] => {\n return data.flatMap((record, index) => {\n const isExpanded = expandedKeys.has(record.id)\n const isSelected = selectedKeys instanceof Set && selectedKeys.has(record.id)\n const hasChildren = record.children && record.children.length > 0\n\n const mainRow = (\n <TableRow\n key={record.id}\n selectable={selectable}\n selected={isSelected}\n expandable={expandable}\n expanded={isExpanded}\n level={level}\n onClick={() => {\n if (selectable && selectionMode === 'single') {\n handleSelectionChange(new Set([record.id]))\n }\n onRowClick?.(record, index)\n }}\n >\n {selectable && (\n <TableCell\n key=\"selection-column\"\n size={size}\n width={48}\n align=\"center\"\n >\n <CheckboxCell onClick={(e) => e.stopPropagation()}>\n {selectionMode === 'single' ? (\n <Radio\n checked={isSelected}\n onChange={() => {\n handleSelectionChange(new Set([record.id]))\n }}\n />\n ) : (\n <Checkbox\n checked={isSelected}\n onChange={(checked) => {\n const newKeys = new Set(selectedKeys === 'all' ? dataSource.map(d => d.id) : selectedKeys)\n if (checked) {\n newKeys.add(record.id)\n } else {\n newKeys.delete(record.id)\n }\n handleSelectionChange(newKeys)\n }}\n />\n )}\n </CheckboxCell>\n </TableCell>\n )}\n {columns.map((column, colIndex) => {\n const value = record[column.key]\n const isFirstColumn = colIndex === 0\n\n return (\n <TableCell\n key={column.key}\n size={size}\n fixed={column.fixed}\n align={column.align}\n width={column.width}\n level={isFirstColumn ? level : 0}\n >\n <div style={{ display: 'flex', alignItems: 'center' }}>\n {isFirstColumn && expandable && hasChildren && (\n <ExpandButton\n expanded={isExpanded}\n onClick={(e) => {\n e.stopPropagation()\n handleExpandChange(record.id)\n }}\n aria-label={isExpanded ? '收起' : '展开'}\n >\n <ChevronRightOutline />\n </ExpandButton>\n )}\n \n <CellContent ellipsis={column.ellipsis} wrapText={wrapText}>\n {column.render ? column.render(value, record, index) : value}\n </CellContent>\n </div>\n </TableCell>\n )\n })}\n </TableRow>\n )\n\n const expandedRow = isExpanded && expandedRowRender && (\n <TableRow key={`${record.id}-expanded`} isSubRow>\n <TableCell colSpan={columns.length + (selectable ? 1 : 0)} size={size}>\n {expandedRowRender(record, index)}\n </TableCell>\n </TableRow>\n )\n\n const childRows = isExpanded && hasChildren\n ? renderRows(record.children as T[], level + 1)\n : []\n\n return [mainRow, expandedRow, ...childRows].filter(Boolean)\n })\n }, [\n columns,\n size,\n expandable,\n expandedKeys,\n selectedKeys,\n selectable,\n selectionMode,\n expandedRowRender,\n wrapText,\n handleExpandChange,\n handleSelectionChange,\n onRowClick,\n ])\n\n if (dataSource.length === 0 && !loading) {\n return (\n <TableContainer \n size={size}\n ref={containerRef}\n fullWidth={fullWidth} \n scrollX={scroll?.x}\n scrollY={scroll?.y}\n showScrollbar={isScrollbarVisible}\n className={className}\n >\n <EmptyState>{emptyText}</EmptyState>\n </TableContainer>\n )\n }\n\n return (\n <TableContainer \n size={size}\n ref={containerRef}\n fullWidth={fullWidth} \n scrollX={scroll?.x}\n scrollY={scroll?.y}\n showScrollbar={isScrollbarVisible}\n className={className}\n >\n <StyledTable \n ref={ref} \n size={size} \n variant={bordered ? 'bordered' : variant}\n scrollX={scroll?.x}\n >\n <TableHeader>\n <TableHeaderRow>\n {selectable && (\n <TableHeaderCell\n key=\"selection-column\"\n size={size}\n width={48}\n align=\"center\"\n >\n {selectionMode === 'multiple' && (\n <CheckboxCell>\n <Checkbox\n checked={allSelected}\n indeterminate={indeterminate}\n onChange={(checked) => {\n handleSelectionChange(checked ? 'all' : new Set())\n }}\n />\n </CheckboxCell>\n )}\n </TableHeaderCell>\n )}\n {columns.map((column) => (\n <TableHeaderCell\n key={column.key}\n size={size}\n fixed={column.fixed}\n align={column.align}\n width={column.width}\n sortable={column.sortable}\n onClick={() => column.sortable && handleSort(column.key)}\n >\n <div style={{ display: 'flex', alignItems: 'center', justifyContent: 'space-between', gap: '8px' }}>\n <span>{column.title}</span>\n {column.sortable && (\n <SortIndicator\n direction={sortConfig?.key === column.key ? sortConfig.direction : undefined}\n >\n <ChevronUpOutline data-active={sortConfig?.key === column.key && sortConfig.direction === 'asc'} />\n <ChevronDownOutline data-active={sortConfig?.key === column.key && sortConfig.direction === 'desc'} />\n </SortIndicator>\n )}\n </div>\n </TableHeaderCell>\n ))}\n </TableHeaderRow>\n </TableHeader>\n\n <TableBody>\n {loading ? (\n <TableRow>\n <TableCell colSpan={columns.length + (selectable ? 1 : 0)} size={size}>\n <div style={{ textAlign: 'center', padding: '24px' }}>加载中...</div>\n </TableCell>\n </TableRow>\n ) : (\n renderRows(dataSource)\n )}\n </TableBody>\n </StyledTable>\n </TableContainer>\n )\n}\n\nconst TableWithRef = forwardRef(TableInner) as <T extends Record<string, any> = Record<string, any>>(\n props: TableProps<T> & { ref?: React.ForwardedRef<HTMLTableElement> }\n) => React.ReactElement\n\n;(TableWithRef as any).displayName = 'Table'\n\nexport const Table = TableWithRef\n","import {useControlledState as $d8rik$useControlledState} from \"@react-stately/utils\";\nimport {useState as $d8rik$useState} from \"react\";\n\n/*\n * Copyright 2020 Adobe. All rights reserved.\n * This file is licensed to you under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License. You may obtain a copy\n * of the License at http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software distributed under\n * the License is distributed on an \"AS IS\" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS\n * OF ANY KIND, either express or implied. See the License for the specific language\n * governing permissions and limitations under the License.\n */ \n\nfunction $3017fa7ffdddec74$export$8042c6c013fd5226(props = {}) {\n let { isReadOnly: isReadOnly } = props;\n // have to provide an empty function so useControlledState doesn't throw a fit\n // can't use useControlledState's prop calling because we need the event object from the change\n let [isSelected, setSelected] = (0, $d8rik$useControlledState)(props.isSelected, props.defaultSelected || false, props.onChange);\n let [initialValue] = (0, $d8rik$useState)(isSelected);\n function updateSelected(value) {\n if (!isReadOnly) setSelected(value);\n }\n function toggleState() {\n if (!isReadOnly) setSelected(!isSelected);\n }\n var _props_defaultSelected;\n return {\n isSelected: isSelected,\n defaultSelected: (_props_defaultSelected = props.defaultSelected) !== null && _props_defaultSelected !== void 0 ? _props_defaultSelected : initialValue,\n setSelected: updateSelected,\n toggle: toggleState\n };\n}\n\n\nexport {$3017fa7ffdddec74$export$8042c6c013fd5226 as useToggleState};\n//# sourceMappingURL=useToggleState.module.js.map\n","/**\n * Switch 开关样式\n * \n * 基于三层 Token 体系:\n * - Tier 1 (Global): 全局基础值\n * - Tier 2 (Semantic): 语义化映射\n * - Tier 3 (Component): 组件专用 Token\n * \n * 完全还原 Figma 设计稿规范\n * 支持带文字的开关组件(如 ON/OFF、开/关)\n */\n\nimport styled from '@emotion/styled'\nimport { css } from '@emotion/react'\nimport type { AppTheme } from '@kingsoft-ai/theme'\n\n// ============================================================================\n// 类型定义\n// ============================================================================\n\nexport const switchSizes = ['sm', 'md'] as const\nexport type SwitchSize = (typeof switchSizes)[number]\n\n// ============================================================================\n// 辅助函数\n// ============================================================================\n\n/**\n * 获取尺寸样式\n * 使用 Tier 3 组件层尺寸 Token\n */\nconst getSizeStyles = (size: SwitchSize, theme: AppTheme) => {\n const sizeToken = theme.components.switch.size[size]\n\n return css`\n /* 提供尺寸相关的 CSS 变量,方便内部元素计算占位 */\n --switch-thumb-size: ${sizeToken.thumbSize};\n --switch-inner-gap: ${theme.components.switch.gap};\n\n min-width: ${sizeToken.width};\n height: ${sizeToken.height};\n font-size: ${sizeToken.fontSize};\n\n /* 滑块尺寸 - 使用后代选择器 */\n & span[data-thumb] {\n width: ${sizeToken.thumbSize};\n height: ${sizeToken.thumbSize};\n }\n `\n}\n\n// ============================================================================\n// 样式组件\n// ============================================================================\n\n/**\n * Switch 根元素(label 标签)\n * \n * 特性:\n * - 基于三层 Token 设计\n * - 完整的交互状态(hover, focus, disabled)\n * - 支持带文字的开关\n * - 平滑的动画过渡\n */\nexport const SwitchRoot = styled.label<{\n size: SwitchSize\n isSelected: boolean\n isDisabled: boolean\n isFocusVisible: boolean\n hasInnerLabel: boolean\n}>`\n /* 基础布局 */\n position: relative;\n display: inline-flex;\n align-items: center;\n box-sizing: border-box;\n cursor: ${({ isDisabled }) => (isDisabled ? 'not-allowed' : 'pointer')};\n user-select: none;\n \n /* 背景和圆角 - 使用 Tier 3 Token */\n background: ${({ isSelected, isDisabled, theme }) =>\n isDisabled\n ? theme.components.switch.background.disabled\n : isSelected\n ? theme.components.switch.background.checked\n : theme.components.switch.background.unchecked};\n border-radius: ${({ theme }) => theme.components.switch.borderRadius};\n \n /* \n * 内边距 - 根据 Figma 设计:\n * - 有文字时:选中状态左8px右3px,未选中状态左3px右8px\n * - 无文字时:始终左右各3px\n * - 上下始终3px\n */\n padding: 3px;\n ${({ hasInnerLabel, isSelected }) => {\n if (!hasInnerLabel) {\n // 无文字时,左右都是 3px\n return css`\n padding-left: 3px;\n padding-right: 3px;\n `\n }\n // 有文字时,根据选中状态调整\n return css`\n padding-left: ${isSelected ? '8px' : '3px'};\n padding-right: ${isSelected ? '3px' : '8px'};\n `\n }}\n \n /* 过渡动画 - 只对背景色做动画,padding 瞬间切换以配合滑块动画 */\n transition: background-color ${({ theme }) => theme.components.switch.transition};\n \n /* 尺寸样式 */\n ${({ size, theme }) => getSizeStyles(size, theme)}\n \n /* Focus 可见状态 - 键盘导航时显示 */\n ${({ isFocusVisible, theme }) =>\n isFocusVisible &&\n css`\n outline: none;\n box-shadow: 0 0 0 ${theme.components.switch.focusRing.offset} ${theme.components.switch.focusRing.color};\n `}\n \n /* 禁用状态 */\n ${({ isDisabled, theme }) =>\n isDisabled &&\n css`\n opacity: ${theme.components.switch.disabled.opacity};\n cursor: not-allowed;\n `}\n`\n\n/**\n * Switch 内容容器\n * \n * 用于布局文字和滑块,确保正确的间距和对齐\n * 根据 Figma 设计,元素间距为 4px\n * \n * 布局策略:\n * - 文字使用相对定位,根据状态调整 justify-content\n * - 滑块使用绝对定位 + left/right 切换实现平滑动画\n */\nexport const SwitchContent = styled.span<{\n isSelected: boolean\n hasInnerLabel: boolean\n}>`\n display: flex;\n align-items: center;\n width: 100%;\n height: 100%;\n position: relative;\n z-index: 1;\n \n /* 当存在内部文字时,为滑块预留占位,避免文字与滑块重叠\n 预留尺寸 = 滑块尺寸 + 设计间距 */\n ${({ hasInnerLabel, isSelected, theme }) =>\n hasInnerLabel &&\n css`\n padding-right: ${isSelected\n ? `calc(var(--switch-thumb-size) + ${theme.components.switch.gap})`\n : '0'};\n padding-left: ${!isSelected\n ? `calc(var(--switch-thumb-size) + ${theme.components.switch.gap})`\n : '0'};\n `}\n \n /* 有文字时,根据选中状态调整文字位置 */\n ${({ hasInnerLabel, isSelected }) =>\n hasInnerLabel &&\n css`\n justify-content: ${isSelected ? 'flex-start' : 'flex-end'};\n `}\n`\n\n/**\n * Switch 文字标签\n * \n * 显示开关状态文字(如 ON/OFF、开/关)\n * 使用 Tier 3 组件层文字 Token\n * \n * 使用相对定位,不影响滑块的绝对定位计算\n */\nexport const SwitchLabel = styled.span<{\n isSelected: boolean\n}>`\n display: inline-flex;\n align-items: center;\n color: ${({ theme }) => theme.components.switch.text.color};\n font-size: ${({ theme }) => theme.components.switch.text.fontSize};\n font-weight: ${({ theme }) => theme.components.switch.text.fontWeight};\n line-height: 1.5;\n white-space: nowrap;\n user-select: none;\n position: relative;\n z-index: 2;\n`\n\n/**\n * Switch 滑块(Thumb)\n * \n * 白色圆形滑块,根据开关状态滑动\n * 使用 Tier 3 组件层滑块 Token\n * \n * 使用绝对定位 + transform 实现平滑的位置动画\n * 根据 Figma 设计:\n * - 未选中时:left: 0(紧贴左边缘,实际距离容器边缘 3px)\n * - 选中时:right: 0(紧贴右边缘,实际距离容器边缘 3px)\n */\nexport const SwitchThumb = styled.span<{\n isSelected: boolean\n}>`\n display: block;\n position: absolute;\n top: 50%;\n transform: translateY(-50%);\n border-radius: 50%;\n background: ${({ theme }) => theme.components.switch.thumb.background};\n box-shadow: ${({ theme }) => theme.components.switch.thumb.shadow};\n \n /* 位置控制:未选中在左,选中在右 */\n ${({ isSelected }) =>\n isSelected\n ? css`\n right: 0;\n left: auto;\n `\n : css`\n left: 0;\n right: auto;\n `}\n \n /* 平滑的位置过渡动画 */\n transition: left ${({ theme }) => theme.components.switch.transition},\n right ${({ theme }) => theme.components.switch.transition};\n`\n\n/**\n * 外部标签容器\n * \n * 用于在 Switch 外部显示描述性标签\n */\nexport const SwitchLabelWrapper = styled.div`\n display: flex;\n align-items: center;\n gap: 8px;\n`\n\n/**\n * 外部标签文字\n * \n * Switch 旁边的描述性文字\n */\nexport const SwitchLabelText = styled.span<{\n isDisabled: boolean\n}>`\n font-size: ${({ theme }) => theme.global.typography.fontSize.sm};\n color: ${({ isDisabled, theme }) =>\n isDisabled\n ? theme.semantic.colors.text.disabled\n : theme.semantic.colors.text.primary};\n user-select: none;\n cursor: ${({ isDisabled }) => (isDisabled ? 'not-allowed' : 'pointer')};\n`\n\n","/**\n * Switch 开关组件\n * \n * 基于 react-aria 实现无障碍访问的开关组件\n * 完全符合 Figma 设计稿规范\n * 支持带文字的开关(如 ON/OFF、开/关)\n * \n * @example\n * ```tsx\n * // 基础用法\n * <Switch>开启通知</Switch>\n * \n * // 带状态文字\n * <Switch \n * checkedLabel=\"开\" \n * uncheckedLabel=\"关\"\n * >\n * 夜间模式\n * </Switch>\n * \n * // 受控组件\n * <Switch \n * isSelected={enabled} \n * onChange={setEnabled}\n * >\n * 自动保存\n * </Switch>\n * ```\n */\n\nimport { forwardRef, useRef } from 'react'\nimport type { ReactNode } from 'react'\nimport { useSwitch, useFocusRing, VisuallyHidden } from 'react-aria'\nimport type { AriaSwitchProps } from 'react-aria'\nimport { useToggleState } from '@react-stately/toggle'\nimport type { ToggleProps } from '@react-types/checkbox'\nimport { mergeProps } from '@react-aria/utils'\nimport {\n SwitchRoot,\n SwitchContent,\n SwitchLabel,\n SwitchThumb,\n SwitchLabelWrapper,\n SwitchLabelText,\n switchSizes,\n type SwitchSize,\n} from './Switch.style'\n\n// 导出常量供外部使用\nexport const SIZES = switchSizes\n\nexport type SwitchProps = Omit<AriaSwitchProps, 'children' | 'isDisabled'> & \n Omit<ToggleProps, 'children' | 'isDisabled'> & {\n /** 开关尺寸:小号(20px)、标准(24px) */\n size?: SwitchSize\n /** 选中状态的文字标签(显示在开关内部) */\n checkedLabel?: string\n /** 未选中状态的文字标签(显示在开关内部) */\n uncheckedLabel?: string\n /** 是否禁用(替代 isDisabled) */\n disabled?: boolean\n /** 外部描述性标签(显示在开关旁边) */\n children?: ReactNode\n /** 自定义类名 */\n className?: string\n}\n\n/**\n * Switch 开关组件\n * \n * 基于 Figma 设计规范实现的开关组件,支持带文字的开关\n * 使用 react-aria 保证无障碍访问性\n */\nexport const Switch = forwardRef<HTMLInputElement, SwitchProps>(\n (\n {\n size = 'md',\n checkedLabel,\n uncheckedLabel,\n disabled = false,\n children,\n className,\n ...props\n },\n forwardedRef,\n ) => {\n // 使用 react-stately 管理开关状态\n const state = useToggleState(props)\n const innerRef = useRef<HTMLInputElement>(null)\n const ref = forwardedRef || innerRef\n\n // 使用 react-aria 的 useSwitch hook 获取无障碍属性\n const { inputProps } = useSwitch(\n {\n ...props,\n isDisabled: disabled,\n },\n state,\n innerRef,\n )\n\n // 使用 useFocusRing 处理键盘焦点样式\n const { isFocusVisible, focusProps } = useFocusRing()\n\n // 当前显示的标签文字\n const currentLabel = state.isSelected ? checkedLabel : uncheckedLabel\n \n // 是否有内部文字标签\n const hasInnerLabel = Boolean(checkedLabel || uncheckedLabel)\n\n // Switch 主体\n const switchElement = (\n <SwitchRoot\n size={size}\n isSelected={state.isSelected}\n isDisabled={disabled}\n isFocusVisible={isFocusVisible}\n hasInnerLabel={hasInnerLabel}\n className={className}\n data-selected={state.isSelected ? 'true' : undefined}\n data-disabled={disabled ? 'true' : undefined}\n >\n {/* 隐藏的原生 input,用于无障碍访问 */}\n <VisuallyHidden>\n <input\n {...mergeProps(inputProps, focusProps)}\n ref={ref}\n />\n </VisuallyHidden>\n\n {/* 开关内容:文字 + 滑块 */}\n <SwitchContent isSelected={state.isSelected} hasInnerLabel={hasInnerLabel}>\n {/* 滑块 - 使用绝对定位,始终渲染 */}\n <SwitchThumb\n isSelected={state.isSelected}\n data-thumb\n aria-hidden=\"true\"\n />\n \n {/* 内部状态文字(如果有) - 相对定位,在滑块上方 */}\n {hasInnerLabel && currentLabel && (\n <SwitchLabel isSelected={state.isSelected}>\n {currentLabel}\n </SwitchLabel>\n )}\n </SwitchContent>\n </SwitchRoot>\n )\n\n // 如果有外部标签,使用 wrapper 包装\n if (children) {\n return (\n <SwitchLabelWrapper>\n {switchElement}\n <SwitchLabelText\n isDisabled={disabled}\n onClick={() => {\n if (!disabled) {\n state.toggle()\n }\n }}\n >\n {children}\n </SwitchLabelText>\n </SwitchLabelWrapper>\n )\n }\n\n return switchElement\n },\n)\n\nSwitch.displayName = 'Switch'\n\n","/**\n * Upload 上传组件样式\n * \n * 基于三层 Token 体系:\n * - Tier 1 (Global): 全局基础值\n * - Tier 2 (Semantic): 语义化映射\n * - Tier 3 (Component): 组件专用 Token\n * \n * 完全还原 Figma 设计稿规范\n */\n\nimport styled from '@emotion/styled'\nimport { css } from '@emotion/react'\n\n// ============================================================================\n// 类型定义\n// ============================================================================\n\nexport const uploadStatuses = ['idle', 'uploading', 'success', 'error'] as const\nexport type UploadStatus = (typeof uploadStatuses)[number]\n\n// ============================================================================\n// 上传区域样式\n// ============================================================================\n\n/**\n * 上传区域容器\n */\nexport const UploadRoot = styled.div`\n width: 100%;\n`\n\n/**\n * 拖拽区域\n */\nexport const UploadDropzone = styled.div<{\n isDragActive: boolean\n isDisabled: boolean\n}>`\n position: relative;\n display: flex;\n flex-direction: column;\n align-items: center;\n justify-content: center;\n gap: 24px;\n padding: 40px 0;\n border: 1px solid ${({ theme, isDragActive }) => \n isDragActive ? theme.semantic.colors.brand.primary : theme.semantic.colors.border.primary};\n border-radius: 16px;\n background: ${({ theme, isDragActive }) => \n isDragActive ? '#EEF6FD' : theme.semantic.colors.background.surface};\n cursor: ${({ isDisabled }) => (isDisabled ? 'not-allowed' : 'pointer')};\n transition: all 0.2s ease;\n outline: none;\n\n ${({ isDisabled, theme }) =>\n !isDisabled &&\n css`\n &:hover {\n border-color: ${theme.semantic.colors.brand.primary};\n }\n\n &:focus-visible {\n border-color: ${theme.semantic.colors.brand.primary};\n box-shadow: 0 0 0 4px rgba(44, 111, 231, 0.18);\n }\n `}\n\n ${({ isDisabled, theme }) =>\n isDisabled &&\n css`\n opacity: 0.5;\n background: ${theme.semantic.colors.background.secondary};\n `}\n`\n\n/**\n * 上传图标容器\n */\nexport const UploadIconWrapper = styled.div`\n width: 100px;\n height: 100px;\n display: flex;\n align-items: center;\n justify-content: center;\n`\n\n/**\n * 上传提示文本容器\n */\nexport const UploadTextWrapper = styled.div`\n display: flex;\n flex-direction: column;\n align-items: center;\n gap: 4px;\n width: 100%;\n font-family: ${({ theme }) => theme.global.typography.fontFamily};\n`\n\n/**\n * 主要提示文本\n */\nexport const UploadMainText = styled.div`\n font-size: 14px;\n line-height: 20px;\n color: ${({ theme }) => theme.semantic.colors.text.primary};\n text-align: center;\n width: 100%;\n`\n\n/**\n * 次要提示文本\n */\nexport const UploadSecondaryText = styled.p`\n font-size: 12px;\n line-height: 18px;\n color: rgba(10, 24, 51, 0.4);\n margin: 0;\n white-space: pre;\n`\n\n/**\n * 链接文本\n */\nexport const UploadLink = styled.span`\n color: ${({ theme }) => theme.semantic.colors.brand.primary};\n cursor: pointer;\n \n &:hover {\n text-decoration: underline;\n }\n`\n\n// ============================================================================\n// 文件列表样式\n// ============================================================================\n\n/**\n * 文件列表容器\n */\nexport const FileList = styled.div`\n display: flex;\n flex-direction: column;\n gap: 16px;\n margin-top: 16px;\n width: 100%;\n`\n\n/**\n * 文件项容器\n */\nexport const FileItem = styled.div<{\n status: UploadStatus\n}>`\n display: flex;\n flex-direction: column;\n gap: 0;\n width: 100%;\n`\n\n/**\n * 文件信息行\n */\nexport const FileInfoRow = styled.div<{\n status: UploadStatus\n}>`\n display: flex;\n align-items: center;\n gap: 8px;\n padding: 7px 8px;\n border-radius: 4px;\n background: ${({ status, theme }) => {\n if (status === 'success') return '#FAFAFB'\n if (status === 'error') return '#FEF6F1'\n return theme.semantic.colors.background.surface\n }};\n flex: 1;\n`\n\n/**\n * 文件图标\n */\nexport const FileIcon = styled.span`\n display: inline-flex;\n align-items: center;\n justify-content: center;\n width: 16px;\n height: 16px;\n flex-shrink: 0;\n color: ${({ theme }) => theme.semantic.colors.text.primary};\n`\n\n/**\n * 文件名\n */\nexport const FileName = styled.div<{\n status: UploadStatus\n}>`\n flex: 1;\n font-family: ${({ theme }) => theme.global.typography.fontFamily};\n font-size: 12px;\n line-height: 18px;\n color: ${({ status, theme }) => {\n if (status === 'error') return theme.semantic.colors.state.danger\n return theme.semantic.colors.text.primary\n }};\n overflow: hidden;\n text-overflow: ellipsis;\n white-space: nowrap;\n`\n\n/**\n * 状态图标\n */\nexport const StatusIcon = styled.span<{\n status: UploadStatus\n}>`\n display: inline-flex;\n align-items: center;\n justify-content: center;\n width: 16px;\n height: 16px;\n flex-shrink: 0;\n color: ${({ status, theme }) => {\n if (status === 'success') return theme.semantic.colors.state.success\n if (status === 'error') return theme.semantic.colors.state.danger\n return theme.semantic.colors.text.secondary\n }};\n`\n\n/**\n * 删除按钮\n */\nexport const DeleteButton = styled.button`\n display: inline-flex;\n align-items: center;\n justify-content: center;\n width: 16px;\n height: 16px;\n padding: 0;\n border: none;\n background: transparent;\n color: ${({ theme }) => theme.semantic.colors.text.secondary};\n cursor: pointer;\n flex-shrink: 0;\n transition: color 0.2s ease;\n\n &:hover {\n color: ${({ theme }) => theme.semantic.colors.text.primary};\n }\n\n &:focus-visible {\n outline: 2px solid ${({ theme }) => theme.semantic.colors.brand.primary};\n outline-offset: 2px;\n border-radius: 2px;\n }\n`\n\n/**\n * 进度条容器\n */\nexport const ProgressWrapper = styled.div`\n display: flex;\n align-items: center;\n gap: 16px;\n height: 16px;\n margin-top: 0;\n`\n\n/**\n * 进度条轨道\n */\nexport const ProgressTrack = styled.div`\n flex: 1;\n height: 6px;\n background: ${({ theme }) => theme.semantic.colors.background.secondary};\n border-radius: 5px;\n overflow: hidden;\n`\n\n/**\n * 进度条填充\n */\nexport const ProgressBar = styled.div<{\n percent: number\n}>`\n height: 100%;\n width: ${({ percent }) => percent}%;\n background: ${({ theme }) => theme.semantic.colors.brand.primary};\n border-radius: 12px;\n transition: width 0.3s ease;\n`\n\n/**\n * 进度百分比文本\n */\nexport const ProgressText = styled.span`\n font-family: ${({ theme }) => theme.global.typography.fontFamily};\n font-size: 12px;\n line-height: 18px;\n color: ${({ theme }) => theme.semantic.colors.text.secondary};\n white-space: nowrap;\n flex-shrink: 0;\n width: 40px;\n text-align: right;\n`\n\n/**\n * 隐藏的文件输入框\n */\nexport const HiddenInput = styled.input`\n position: absolute;\n width: 1px;\n height: 1px;\n padding: 0;\n margin: -1px;\n overflow: hidden;\n clip: rect(0, 0, 0, 0);\n white-space: nowrap;\n border-width: 0;\n`\n\n","/**\n * Upload 上传组件\n * \n * 基于 react-aria 实现无障碍访问的上传组件\n * 完全符合 Figma 设计稿规范\n * \n * @example\n * ```tsx\n * <Upload\n * accept=\".xls,.xlsx\"\n * maxSize={5 * 1024 * 1024}\n * onChange={(files) => console.log(files)}\n * />\n * ```\n */\n\nimport { forwardRef, useRef, useState, type ReactNode, type ChangeEvent, type DragEvent } from 'react'\nimport { useButton } from 'react-aria'\nimport type { AriaButtonProps } from 'react-aria'\nimport {\n UploadRoot,\n UploadDropzone,\n UploadIconWrapper,\n UploadTextWrapper,\n UploadMainText,\n UploadSecondaryText,\n UploadLink,\n FileList,\n FileItem,\n FileInfoRow,\n FileIcon,\n FileName,\n StatusIcon,\n DeleteButton,\n ProgressWrapper,\n ProgressTrack,\n ProgressBar,\n ProgressText,\n HiddenInput,\n uploadStatuses,\n type UploadStatus,\n} from './Upload.style'\n\n// 导出常量供外部使用\nexport const STATUSES = uploadStatuses\n\nexport interface UploadFile {\n /** 文件唯一标识 */\n uid: string\n /** 文件名 */\n name: string\n /** 文件对象 */\n file?: File\n /** 上传状态 */\n status: UploadStatus\n /** 上传进度 (0-100) */\n percent?: number\n /** 错误信息 */\n error?: string\n}\n\nexport type UploadProps = {\n /** 接受的文件类型 */\n accept?: string\n /** 是否支持多选 */\n multiple?: boolean\n /** 最大文件大小(字节) */\n maxSize?: number\n /** 最大文件数量 */\n maxCount?: number\n /** 是否禁用 */\n disabled?: boolean\n /** 文件列表 */\n fileList?: UploadFile[]\n /** 默认文件列表 */\n defaultFileList?: UploadFile[]\n /** 文件变化回调 */\n onChange?: (fileList: UploadFile[]) => void\n /** 文件上传前的钩子 */\n beforeUpload?: (file: File) => boolean | Promise<boolean>\n /** 自定义上传逻辑 */\n customRequest?: (options: {\n file: File\n onProgress: (percent: number) => void\n onSuccess: () => void\n onError: (error: Error) => void\n }) => void\n /** 主要提示文本 */\n mainText?: ReactNode\n /** 次要提示文本 */\n secondaryText?: ReactNode\n /** 文件类型提示 */\n fileTypeHint?: ReactNode\n /** 下载模板文本 */\n downloadTemplateText?: ReactNode\n /** 下载模板回调 */\n onDownloadTemplate?: () => void\n /** 自定义类名 */\n className?: string\n /** 自定义上传图标 */\n icon?: ReactNode\n}\n\n/**\n * 默认上传图标\n */\nconst DefaultUploadIcon = () => (\n <svg xmlns=\"http://www.w3.org/2000/svg\" width=\"100\" height=\"100\" viewBox=\"0 0 100 100\" fill=\"none\">\n <g clipPath=\"url(#clip0_6955_14967)\">\n <path d=\"M6.25 63.1836L28.525 52.195C28.8475 52.0359 29.2023 51.9531 29.5619 51.9531H70.6424C71.0049 51.9531 71.3625 52.0372 71.687 52.1988L93.75 63.1836V91.4062C93.75 92.7007 92.7007 93.75 91.4062 93.75H8.59375C7.29932 93.75 6.25 92.7007 6.25 91.4062V63.1836Z\" fill=\"#F0F0F0\"/>\n <path d=\"M6.25 63.1836H34.4859C35.7804 63.1836 36.8297 64.2329 36.8297 65.5273V69.8906C36.8297 71.185 37.879 72.2344 39.1734 72.2344H60.7687C62.0632 72.2344 63.1125 71.185 63.1125 69.8906V65.5273C63.1125 64.2329 64.1618 63.1836 65.4562 63.1836H93.75V92.9688C93.75 93.176 93.6677 93.3747 93.5212 93.5212C93.3747 93.6677 93.1759 93.75 92.9688 93.75H7.03125C6.82405 93.75 6.62534 93.6677 6.47882 93.5212C6.33231 93.3747 6.25 93.176 6.25 92.9688V63.1836Z\" fill=\"#FAFAFB\"/>\n <path d=\"M19.1445 39.9733C19.3009 39.41 20.0994 39.41 20.2558 39.9733C20.797 41.9242 22.3218 43.449 24.2727 43.9902C24.836 44.1466 24.836 44.9451 24.2727 45.1015C22.3218 45.6427 20.797 47.1675 20.2558 49.1184C20.0994 49.6817 19.3009 49.6817 19.1445 49.1184C18.6033 47.1675 17.0785 45.6427 15.1276 45.1015C14.5642 44.9451 14.5643 44.1466 15.1276 43.9902C17.0785 43.449 18.6033 41.9242 19.1445 39.9733Z\" fill=\"#F0F0F0\"/>\n <path d=\"M78.1066 35.6488C78.3468 34.7837 79.573 34.7837 79.8132 35.6488C80.6443 38.6449 82.9858 40.9864 85.9819 41.8175C86.8469 42.0577 86.8469 43.2839 85.9819 43.5241C82.9858 44.3552 80.6443 46.6968 79.8132 49.6929C79.573 50.5579 78.3468 50.5579 78.1066 49.6929C77.2755 46.6968 74.9339 44.3552 71.9379 43.5241C71.0728 43.2839 71.0728 42.0577 71.9379 41.8175C74.9339 40.9864 77.2755 38.6449 78.1066 35.6488Z\" fill=\"#F0F0F0\"/>\n <path d=\"M49.0173 14.5685C49.733 13.8105 50.9389 13.8105 51.6547 14.5685L62.8375 26.4101C63.9294 27.5668 63.1096 29.469 61.5188 29.4691H57.591C56.0884 29.4691 54.8704 30.6871 54.8704 32.1897L54.8703 41C54.8703 41.5523 54.4226 42 53.8703 42H46.8015C46.2492 42 45.8015 41.5523 45.8015 41L45.8016 32.1897C45.8016 30.6871 44.5835 29.4691 43.0809 29.4691H39.1532C37.5623 29.4691 36.7424 27.5669 37.8345 26.4101L49.0173 14.5685Z\" fill=\"#F0F0F0\"/>\n </g>\n <defs>\n <clipPath id=\"clip0_6955_14967\">\n <rect width=\"100\" height=\"100\" fill=\"white\"/>\n </clipPath>\n </defs>\n </svg>\n)\n\n/**\n * 文件图标\n */\nconst FileIconSvg = () => (\n <svg width=\"16\" height=\"16\" viewBox=\"0 0 16 16\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\n <path d=\"M9 1H3.5C2.67157 1 2 1.67157 2 2.5V13.5C2 14.3284 2.67157 15 3.5 15H12.5C13.3284 15 14 14.3284 14 13.5V6M9 1L14 6M9 1V6H14\" stroke=\"currentColor\" strokeWidth=\"1.2\" strokeLinecap=\"round\" strokeLinejoin=\"round\" />\n <path d=\"M5 7H7\" stroke=\"currentColor\" strokeWidth=\"1.2\" strokeLinecap=\"round\" />\n <path d=\"M5 10H11\" stroke=\"currentColor\" strokeWidth=\"1.2\" strokeLinecap=\"round\" />\n </svg>\n)\n\n/**\n * 成功图标\n */\nconst SuccessIcon = () => (\n <svg width=\"16\" height=\"16\" viewBox=\"0 0 16 16\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\n <circle cx=\"8\" cy=\"8\" r=\"8\" fill=\"currentColor\" />\n <path d=\"M11.3333 5.5L6.75 10.0833L4.66667 8\" stroke=\"white\" strokeWidth=\"1.5\" strokeLinecap=\"round\" strokeLinejoin=\"round\" />\n </svg>\n)\n\n/**\n * 错误图标\n */\nconst ErrorIcon = () => (\n <svg width=\"16\" height=\"16\" viewBox=\"0 0 16 16\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\n <circle cx=\"8\" cy=\"8\" r=\"8\" fill=\"currentColor\" />\n <path d=\"M10 6L6 10M6 6L10 10\" stroke=\"white\" strokeWidth=\"1.5\" strokeLinecap=\"round\" />\n </svg>\n)\n\n/**\n * 删除图标\n */\nconst DeleteIcon = () => (\n <svg width=\"16\" height=\"16\" viewBox=\"0 0 16 16\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\n <path d=\"M3.5 4.5H12.5M6.5 7V11.5M9.5 7V11.5M10.5 4.5V2.5C10.5 2.22386 10.2761 2 10 2H6C5.72386 2 5.5 2.22386 5.5 2.5V4.5M4.5 4.5H11.5V13C11.5 13.2761 11.2761 13.5 11 13.5H5C4.72386 13.5 4.5 13.2761 4.5 13V4.5Z\" stroke=\"currentColor\" strokeWidth=\"1.2\" strokeLinecap=\"round\" strokeLinejoin=\"round\" />\n </svg>\n)\n\n/**\n * 生成唯一 ID\n */\nconst generateUid = () => `upload-${Date.now()}-${Math.random().toString(36).slice(2, 9)}`\n\n/**\n * Upload 上传组件\n * \n * 基于 Figma 设计规范实现的上传组件,支持拖拽上传和点击上传\n * 使用 react-aria 保证无障碍访问性\n */\nexport const Upload = forwardRef<HTMLDivElement, UploadProps>(\n (\n {\n accept,\n multiple = false,\n maxSize,\n maxCount,\n disabled = false,\n fileList: controlledFileList,\n defaultFileList = [],\n onChange,\n beforeUpload,\n customRequest,\n mainText,\n secondaryText,\n fileTypeHint,\n downloadTemplateText,\n onDownloadTemplate,\n className,\n icon,\n },\n ref\n ) => {\n const inputRef = useRef<HTMLInputElement>(null)\n const dropzoneRef = useRef<HTMLDivElement>(null)\n\n // 内部文件列表状态\n const [internalFileList, setInternalFileList] = useState<UploadFile[]>(defaultFileList)\n const [isDragActive, setIsDragActive] = useState(false)\n\n // 判断是否受控\n const isControlled = controlledFileList !== undefined\n const fileList = isControlled ? controlledFileList : internalFileList\n\n // 更新文件列表\n const updateFileList = (newFileList: UploadFile[]) => {\n if (!isControlled) {\n setInternalFileList(newFileList)\n }\n onChange?.(newFileList)\n }\n\n // 处理文件选择\n const handleFiles = async (files: FileList | null) => {\n if (!files || files.length === 0) return\n\n const filesArray = Array.from(files)\n\n // 检查文件数量限制\n if (maxCount && fileList.length + filesArray.length > maxCount) {\n console.warn(`最多只能上传 ${maxCount} 个文件`)\n return\n }\n\n // 处理每个文件\n const newFiles: UploadFile[] = []\n \n for (const file of filesArray) {\n // 检查文件大小\n if (maxSize && file.size > maxSize) {\n console.warn(`文件 ${file.name} 超过大小限制`)\n continue\n }\n\n // 执行 beforeUpload 钩子\n if (beforeUpload) {\n try {\n const result = await beforeUpload(file)\n if (!result) continue\n } catch (error) {\n console.error('beforeUpload error:', error)\n continue\n }\n }\n\n const uploadFile: UploadFile = {\n uid: generateUid(),\n name: file.name,\n file,\n status: 'uploading',\n percent: 0,\n }\n\n newFiles.push(uploadFile)\n }\n\n if (newFiles.length === 0) return\n\n // 更新文件列表\n const updatedFileList = [...fileList, ...newFiles]\n updateFileList(updatedFileList)\n\n // 执行上传\n newFiles.forEach((uploadFile) => {\n if (customRequest) {\n customRequest({\n file: uploadFile.file!,\n onProgress: (percent) => {\n updateFileList(\n updatedFileList.map((f) =>\n f.uid === uploadFile.uid ? { ...f, percent } : f\n )\n )\n },\n onSuccess: () => {\n updateFileList(\n updatedFileList.map((f) =>\n f.uid === uploadFile.uid ? { ...f, status: 'success', percent: 100 } : f\n )\n )\n },\n onError: (error) => {\n updateFileList(\n updatedFileList.map((f) =>\n f.uid === uploadFile.uid\n ? { ...f, status: 'error', error: error.message }\n : f\n )\n )\n },\n })\n } else {\n // 默认模拟上传\n simulateUpload(uploadFile.uid, updatedFileList)\n }\n })\n }\n\n // 模拟上传进度\n const simulateUpload = (uid: string, currentFileList: UploadFile[]) => {\n let percent = 0\n const interval = setInterval(() => {\n percent += 10\n if (percent >= 100) {\n clearInterval(interval)\n updateFileList(\n currentFileList.map((f) =>\n f.uid === uid ? { ...f, status: 'success', percent: 100 } : f\n )\n )\n } else {\n updateFileList(\n currentFileList.map((f) =>\n f.uid === uid ? { ...f, percent } : f\n )\n )\n }\n }, 200)\n }\n\n // 处理文件输入变化\n const handleInputChange = (e: ChangeEvent<HTMLInputElement>) => {\n handleFiles(e.target.files)\n // 清空 input 值,允许重复选择同一文件\n if (inputRef.current) {\n inputRef.current.value = ''\n }\n }\n\n // 处理拖拽进入\n const handleDragEnter = (e: DragEvent<HTMLDivElement>) => {\n e.preventDefault()\n e.stopPropagation()\n if (!disabled) {\n setIsDragActive(true)\n }\n }\n\n // 处理拖拽离开\n const handleDragLeave = (e: DragEvent<HTMLDivElement>) => {\n e.preventDefault()\n e.stopPropagation()\n setIsDragActive(false)\n }\n\n // 处理拖拽悬停\n const handleDragOver = (e: DragEvent<HTMLDivElement>) => {\n e.preventDefault()\n e.stopPropagation()\n }\n\n // 处理文件放置\n const handleDrop = (e: DragEvent<HTMLDivElement>) => {\n e.preventDefault()\n e.stopPropagation()\n setIsDragActive(false)\n\n if (disabled) return\n\n const files = e.dataTransfer.files\n handleFiles(files)\n }\n\n // 处理点击上传区域\n const handleClick = () => {\n if (!disabled) {\n inputRef.current?.click()\n }\n }\n\n // 处理删除文件\n const handleDelete = (uid: string) => {\n const newFileList = fileList.filter((f) => f.uid !== uid)\n updateFileList(newFileList)\n }\n\n // 使用 react-aria 的 useButton\n const { buttonProps } = useButton(\n {\n onPress: handleClick,\n isDisabled: disabled,\n } as AriaButtonProps,\n dropzoneRef\n )\n\n // 渲染状态图标\n const renderStatusIcon = (status: UploadStatus) => {\n switch (status) {\n case 'success':\n return <SuccessIcon />\n case 'error':\n return <ErrorIcon />\n default:\n return null\n }\n }\n\n return (\n <UploadRoot ref={ref} className={className}>\n <UploadDropzone\n {...buttonProps}\n ref={dropzoneRef}\n isDragActive={isDragActive}\n isDisabled={disabled}\n onDragEnter={handleDragEnter}\n onDragLeave={handleDragLeave}\n onDragOver={handleDragOver}\n onDrop={handleDrop}\n role=\"button\"\n tabIndex={disabled ? -1 : 0}\n aria-label=\"上传文件区域\"\n >\n <UploadIconWrapper>\n {icon || <DefaultUploadIcon />}\n </UploadIconWrapper>\n\n <UploadTextWrapper>\n <UploadMainText>\n {mainText || (\n <>\n 将文件拖到此处,或<UploadLink>点击上传</UploadLink>\n </>\n )}\n </UploadMainText>\n\n {secondaryText && (\n <UploadSecondaryText>{secondaryText}</UploadSecondaryText>\n )}\n\n {(fileTypeHint || downloadTemplateText) && (\n <UploadSecondaryText>\n {fileTypeHint}\n {downloadTemplateText && onDownloadTemplate && (\n <>\n {' '}\n <UploadLink onClick={(e) => {\n e.stopPropagation()\n onDownloadTemplate()\n }}>\n {downloadTemplateText}\n </UploadLink>\n </>\n )}\n </UploadSecondaryText>\n )}\n </UploadTextWrapper>\n\n <HiddenInput\n ref={inputRef}\n type=\"file\"\n accept={accept}\n multiple={multiple}\n onChange={handleInputChange}\n disabled={disabled}\n aria-hidden=\"true\"\n />\n </UploadDropzone>\n\n {fileList.length > 0 && (\n <FileList>\n {fileList.map((file) => (\n <FileItem key={file.uid} status={file.status}>\n <FileInfoRow status={file.status}>\n <FileIcon>\n <FileIconSvg />\n </FileIcon>\n <FileName status={file.status}>{file.name}</FileName>\n {(file.status === 'success' || file.status === 'error') && (\n <>\n <StatusIcon status={file.status}>\n {renderStatusIcon(file.status)}\n </StatusIcon>\n <DeleteButton\n onClick={() => handleDelete(file.uid)}\n aria-label={`删除文件 ${file.name}`}\n >\n <DeleteIcon />\n </DeleteButton>\n </>\n )}\n </FileInfoRow>\n\n {file.status === 'uploading' && (\n <ProgressWrapper>\n <ProgressTrack>\n <ProgressBar percent={file.percent || 0} />\n </ProgressTrack>\n <ProgressText>{file.percent || 0}%</ProgressText>\n </ProgressWrapper>\n )}\n </FileItem>\n ))}\n </FileList>\n )}\n </UploadRoot>\n )\n }\n)\n\nUpload.displayName = 'Upload'\n\n","import { TokenGenerator } from '../types/theme-utils';\nimport { ButtonTokens, IconButtonTokens } from '../types/component-tokens.types';\n\nexport const getButtonTokens: TokenGenerator<ButtonTokens> = ({ global, semantic }) => ({\n primary: {\n background: {\n default: semantic.colors.brand.primary,\n hover: semantic.colors.brand.primaryHover,\n active: semantic.colors.brand.primaryActive,\n },\n text: {\n default: semantic.colors.text.onBrand,\n },\n border: {\n default: 'transparent',\n },\n shadow: {\n default: 'none',\n hover: 'none',\n },\n },\n secondary: {\n background: {\n default: semantic.colors.background.surface,\n hover: semantic.colors.background.surfaceSubtle,\n active: semantic.colors.background.surfaceSubtle,\n },\n text: {\n default: semantic.colors.brand.primary,\n },\n border: {\n default: semantic.colors.border.primary,\n hover: semantic.colors.brand.primary,\n active: semantic.colors.brand.primaryActive,\n },\n shadow: {\n default: 'none',\n },\n },\n text: {\n background: {\n default: 'transparent',\n hover: semantic.colors.brand.primarySubtle,\n active: '#F0F0F0', // 文本按钮点击态背景 - note: this was hardcoded in original\n },\n text: {\n default: semantic.colors.brand.primary,\n },\n border: {\n default: 'transparent',\n hover: 'transparent',\n active: 'transparent',\n },\n },\n danger: {\n background: {\n default: semantic.colors.state.danger,\n hover: semantic.colors.state.dangerHover,\n active: semantic.colors.state.dangerActive,\n },\n text: {\n default: semantic.colors.state.dangerOn,\n },\n border: {\n default: 'transparent',\n },\n shadow: {\n default: 'none',\n hover: 'none',\n },\n },\n gradient: {\n background: {\n default: global.gradients.blueViolet,\n gradientFrom: '#0194FF',\n gradientTo: '#D581FF',\n },\n text: {\n default: global.colors.common.white,\n },\n border: {\n default: 'transparent',\n },\n shadow: {\n default: 'none',\n hover: 'none',\n },\n },\n disabled: {\n background: {\n default: semantic.colors.border.primary,\n },\n text: {\n default: semantic.colors.text.disabled,\n },\n opacity: 0.6,\n },\n size: {\n sm: {\n height: '24px',\n fontSize: global.typography.fontSize.sm, // 14px\n paddingInline: global.spacing.lg, // 16px\n iconSize: '16px',\n },\n md: {\n height: '32px',\n fontSize: global.typography.fontSize.sm, // 14px\n paddingInline: global.spacing.lg, // 16px\n iconSize: '16px',\n },\n lg: {\n height: '40px',\n fontSize: global.typography.fontSize.sm, // 14px\n paddingInline: global.spacing.lg, // 16px\n iconSize: '16px',\n },\n },\n borderRadius: global.radii.r3, // 6px - Figma 设计稿圆角\n fontWeight: global.typography.fontWeight.regular, // 400\n gap: global.spacing.sm, // 8px 图标和文字间距\n transition: '0.2s ease',\n});\n\nexport const getIconButtonTokens: TokenGenerator<IconButtonTokens> = ({ global, semantic }) => ({\n appearance: {\n solid: {\n primary: {\n background: {\n default: semantic.colors.brand.primary,\n hover: semantic.colors.brand.primaryHover,\n active: semantic.colors.brand.primaryActive,\n },\n border: {\n default: 'transparent',\n },\n icon: {\n default: semantic.colors.text.onBrand,\n },\n },\n neutral: {\n background: {\n default: semantic.colors.background.surface,\n hover: semantic.colors.background.surfaceSubtle,\n active: semantic.colors.background.surfaceStrong,\n },\n border: {\n default: 'transparent',\n },\n icon: {\n default: semantic.colors.text.primary,\n },\n },\n danger: {\n background: {\n default: semantic.colors.state.danger,\n hover: semantic.colors.state.dangerHover,\n active: semantic.colors.state.dangerActive,\n },\n border: {\n default: 'transparent',\n },\n icon: {\n default: semantic.colors.state.dangerOn,\n },\n },\n },\n outline: {\n primary: {\n background: {\n default: 'transparent',\n hover: semantic.colors.brand.primarySubtle,\n active: 'rgba(44, 111, 231, 0.16)',\n },\n border: {\n default: semantic.colors.brand.primary,\n hover: semantic.colors.brand.primary,\n active: semantic.colors.brand.primary,\n },\n icon: {\n default: semantic.colors.brand.primary,\n hover: semantic.colors.brand.primaryHover,\n active: semantic.colors.brand.primaryActive,\n },\n },\n neutral: {\n background: {\n default: 'transparent',\n hover: semantic.colors.background.surfaceSubtle,\n active: semantic.colors.background.surfaceStrong,\n },\n border: {\n default: semantic.colors.border.primary,\n hover: semantic.colors.border.strong,\n active: semantic.colors.border.strong,\n },\n icon: {\n default: semantic.colors.text.primary,\n hover: semantic.colors.text.primary,\n active: semantic.colors.text.primary,\n },\n },\n danger: {\n background: {\n default: 'transparent',\n hover: semantic.colors.state.dangerSubtle,\n active: 'rgba(237, 28, 28, 0.18)',\n },\n border: {\n default: semantic.colors.state.danger,\n hover: semantic.colors.state.danger,\n active: semantic.colors.state.danger,\n },\n icon: {\n default: semantic.colors.state.danger,\n hover: semantic.colors.state.dangerHover,\n active: semantic.colors.state.dangerActive,\n },\n },\n },\n ghost: {\n primary: {\n background: {\n default: 'transparent',\n hover: semantic.colors.brand.primarySubtle,\n active: 'rgba(44, 111, 231, 0.16)',\n },\n border: {\n default: 'transparent',\n },\n icon: {\n default: semantic.colors.brand.primary,\n hover: semantic.colors.brand.primaryHover,\n active: semantic.colors.brand.primaryActive,\n },\n },\n neutral: {\n background: {\n default: 'transparent',\n hover: 'rgba(10, 24, 51, 0.05)',\n active: 'rgba(10, 24, 51, 0.1)',\n },\n border: {\n default: 'transparent',\n },\n icon: {\n default: semantic.colors.text.primary,\n },\n },\n danger: {\n background: {\n default: 'transparent',\n hover: semantic.colors.state.dangerSubtle,\n active: 'rgba(237, 28, 28, 0.18)',\n },\n border: {\n default: 'transparent',\n },\n icon: {\n default: semantic.colors.state.danger,\n hover: semantic.colors.state.dangerHover,\n active: semantic.colors.state.dangerActive,\n },\n },\n },\n },\n disabled: {\n background: semantic.colors.background.surfaceSubtle,\n border: semantic.colors.border.primary,\n icon: semantic.colors.text.disabled,\n opacity: 0.6,\n },\n size: {\n sm: {\n edge: '24px',\n iconSize: '16px',\n },\n md: {\n edge: '32px',\n iconSize: '18px',\n },\n lg: {\n edge: '40px',\n iconSize: '20px',\n },\n },\n borderRadius: global.radii.r3,\n transition: '0.2s ease',\n focusRing: {\n color: 'rgba(44, 111, 231, 0.35)',\n offset: '2px',\n width: '2px',\n },\n});\n\n","import { TokenGenerator } from '../types/theme-utils';\nimport { CheckboxTokens } from '../types/component-tokens.types';\n\nexport const getCheckboxTokens: TokenGenerator<CheckboxTokens> = ({ global, semantic }) => ({\n control: {\n size: \"16px\", // Checkbox 尺寸\n borderRadius: global.radii.r2, // 4px - 最小组件圆角\n borderWidth: \"1px\",\n background: {\n default: global.colors.common.white, // 未选中背景:白色\n checked: semantic.colors.brand.primary, // 选中背景:#2C6FE7\n disabled: global.colors.neutral[100], // 禁用未选中:#F0F2F4\n disabledChecked: global.colors.blue[200], // 禁用选中:#AAD1FC\n },\n borderColor: {\n default: global.colors.neutral[400], // 未选中边框:#C2C5CC\n hover: semantic.colors.brand.primary, // hover边框:#2C6FE7\n checked: semantic.colors.brand.primary, // 选中边框:#2C6FE7\n disabled: global.colors.neutral[400], // 禁用边框:#C2C5CC\n disabledChecked: global.colors.blue[200], // 禁用选中边框:#AAD1FC\n },\n icon: {\n color: global.colors.common.white, // 勾选图标颜色:白色\n size: \"10px\", // 图标大小\n },\n },\n focusRing: \"0 0 0 4px rgba(44, 111, 231, 0.18)\",\n gap: global.spacing.sm, // 8px - checkbox和文字间距\n text: {\n label: {\n fontSize: global.typography.fontSize.xs, // 12px\n lineHeight: \"18px\", // 行高18px\n color: global.colors.word[900], // #0A1833\n disabled: global.colors.word[300], // 禁用:#B6BEC2 (实际是#B5BAC2)\n fontWeight: global.typography.fontWeight.regular, // 400\n },\n },\n transition: \"0.16s ease\",\n});\n\n","import { TokenGenerator } from '../types/theme-utils';\nimport { RadioTokens } from '../types/component-tokens.types';\n\nexport const getRadioTokens: TokenGenerator<RadioTokens> = ({ global }) => ({\n control: {\n size: \"16px\",\n borderRadius: \"999px\",\n borderWidth: \"1.5px\",\n background: global.colors.common.white,\n borderColor: {\n default: global.colors.neutral[300],\n hover: global.colors.blue[500],\n checked: global.colors.blue[500],\n disabled: global.colors.neutral[200],\n },\n indicator: {\n size: \"8px\",\n color: global.colors.blue[500],\n disabled: global.colors.word[300],\n },\n },\n focusRing: \"0 0 0 4px rgba(44, 111, 231, 0.18)\",\n gap: \"0.5rem\",\n text: {\n label: {\n fontSize: global.typography.fontSize.xs,\n color: global.colors.word[900],\n disabled: global.colors.word[300],\n fontWeight: global.typography.fontWeight.regular,\n },\n description: {\n color: global.colors.word[600],\n disabled: global.colors.word[300],\n fontSize: global.typography.fontSize.xs,\n },\n },\n disabled: {\n opacity: 0.55,\n },\n transition: \"0.16s ease\",\n});\n\n","import { TokenGenerator } from '../types/theme-utils';\nimport { SwitchTokens } from '../types/component-tokens.types';\n\nexport const getSwitchTokens: TokenGenerator<SwitchTokens> = ({ global, semantic }) => ({\n size: {\n sm: {\n width: '36px', // 小尺寸开关宽度\n height: '20px', // 小尺寸开关高度\n thumbSize: '16px', // 小尺寸滑块\n fontSize: global.typography.fontSize.xs, // 12px\n paddingInline: '6px', // 左右内边距\n },\n md: {\n width: '44px', // 中等尺寸开关宽度(根据 Figma: 文字+滑块+间距)\n height: '24px', // 中等尺寸开关高度(Figma 设计)\n thumbSize: '18px', // 滑块尺寸(Figma 设计)\n fontSize: global.typography.fontSize.xs, // 12px(Figma 设计)\n paddingInline: '8px', // 左右内边距(左8px,右3px考虑滑块位置)\n },\n },\n background: {\n unchecked: global.colors.neutral[300], // 未选中状态:灰色 #D4D6D9\n checked: semantic.colors.brand.primary, // 选中状态:品牌蓝 #2C6FE7\n disabled: global.colors.neutral[200], // 禁用状态:浅灰\n },\n thumb: {\n background: global.colors.common.white, // 滑块:白色\n shadow: '0 1px 3px rgba(0, 0, 0, 0.12)', // 滑块阴影\n },\n text: {\n color: global.colors.common.white, // 文字颜色:白色\n fontSize: global.typography.fontSize.xs, // 12px\n fontWeight: global.typography.fontWeight.regular, // 400\n },\n borderRadius: global.radii.r5, // 12px - 中型容器圆角(Figma 设计)\n gap: global.spacing.xs, // 4px - 文字和滑块的间距(Figma 设计)\n transition: '0.2s cubic-bezier(0.4, 0, 0.2, 1)', // 平滑过渡动画\n disabled: {\n opacity: 0.5, // 禁用时的透明度\n },\n focusRing: {\n color: 'rgba(44, 111, 231, 0.3)', // Focus 环颜色\n offset: '2px', // Focus 环偏移\n },\n});\n\n","import { TokenGenerator } from '../types/theme-utils';\nimport { InputTokens } from '../types/component-tokens.types';\n\nexport const getInputTokens: TokenGenerator<InputTokens> = ({ global, semantic }) => ({\n size: {\n sm: {\n height: '24px', // 小号输入框高度\n fontSize: global.typography.fontSize.xs, // 12px\n paddingInline: global.spacing.md, // 12px 左右内边距\n iconSize: '14px', // 小号图标尺寸\n },\n md: {\n height: '32px', // 标准输入框高度(Figma 设计)\n fontSize: global.typography.fontSize.xs, // 12px\n paddingInline: global.spacing.md, // 12px 左右内边距\n iconSize: '16px', // 标准图标尺寸\n },\n lg: {\n height: '40px', // 大号输入框高度\n fontSize: global.typography.fontSize.xs, // 12px\n paddingInline: global.spacing.md, // 12px 左右内边距\n iconSize: '18px', // 大号图标尺寸\n },\n },\n border: {\n default: semantic.colors.border.primary,\n hover: semantic.colors.border.strong,\n focus: semantic.colors.brand.primary,\n error: semantic.colors.state.danger,\n disabled: semantic.colors.border.primary,\n },\n background: {\n default: semantic.colors.background.surface,\n disabled: semantic.colors.background.secondary,\n },\n text: {\n default: semantic.colors.text.primary,\n placeholder: semantic.colors.text.placeholder,\n disabled: semantic.colors.text.disabled,\n error: semantic.colors.state.danger,\n counter: semantic.colors.text.caption,\n },\n borderRadius: global.radii.r3, // 6px - 基础组件圆角\n gap: global.spacing.sm, // 8px - 图标与文字间距(Figma 设计)\n transition: '0.2s ease', // 过渡动画\n});\n\n","import { TokenGenerator } from '../types/theme-utils';\nimport { SelectTokens } from '../types/component-tokens.types';\n\nexport const getSelectTokens: TokenGenerator<SelectTokens> = ({ global, semantic }) => ({\n size: {\n sm: {\n height: '24px',\n fontSize: global.typography.fontSize.xs,\n paddingInline: global.spacing.md,\n iconSize: '14px',\n },\n md: {\n height: '32px',\n fontSize: global.typography.fontSize.xs,\n paddingInline: global.spacing.md,\n iconSize: '16px',\n },\n lg: {\n height: '40px',\n fontSize: global.typography.fontSize.xs,\n paddingInline: global.spacing.md,\n iconSize: '18px',\n },\n },\n border: {\n default: semantic.colors.border.primary,\n hover: semantic.colors.border.strong,\n focus: semantic.colors.brand.primary,\n error: semantic.colors.state.danger,\n disabled: semantic.colors.border.primary,\n },\n background: {\n default: semantic.colors.background.surface,\n hover: semantic.colors.background.surface,\n disabled: semantic.colors.background.secondary,\n },\n text: {\n default: semantic.colors.text.primary,\n placeholder: semantic.colors.text.placeholder,\n disabled: semantic.colors.text.disabled,\n error: semantic.colors.state.danger,\n },\n borderRadius: global.radii.r3,\n gap: global.spacing.sm,\n transition: '0.2s ease',\n popover: {\n background: semantic.colors.background.surface,\n border: `1px solid ${semantic.colors.border.primary}`,\n borderRadius: global.radii.r3,\n boxShadow: '0 4px 12px rgba(0, 0, 0, 0.08)',\n padding: '4px',\n },\n option: {\n height: '32px',\n paddingInline: '8px',\n fontSize: global.typography.fontSize.xs,\n borderRadius: global.radii.r2,\n gap: '8px',\n background: {\n default: 'transparent',\n hover: semantic.colors.background.surfaceSubtle,\n selected: semantic.colors.brand.primarySubtle,\n focused: semantic.colors.background.surfaceSubtle,\n },\n text: {\n default: semantic.colors.text.primary,\n hover: semantic.colors.text.primary,\n selected: semantic.colors.brand.primary,\n disabled: semantic.colors.text.disabled,\n },\n },\n});\n\n","import { TokenGenerator } from '../types/theme-utils';\nimport { NumberFieldTokens } from '../types/component-tokens.types';\n\nexport const getNumberFieldTokens: TokenGenerator<NumberFieldTokens> = ({ global, semantic }) => ({\n controls: {\n default: 'buttons',\n },\n size: {\n md: {\n height: '24px',\n fontSize: global.typography.fontSize.xs,\n paddingInline: global.spacing.sm,\n },\n lg: {\n height: '32px',\n fontSize: global.typography.fontSize.sm,\n paddingInline: global.spacing.sm,\n },\n },\n input: {\n width: '40px',\n height: '18px',\n paddingInline: global.spacing.sm,\n fontSize: global.typography.fontSize.xs,\n fontWeight: global.typography.fontWeight.regular,\n lineHeight: '18px',\n fontFamily: global.typography.fontFamily,\n },\n control: {\n side: {\n buttonSizeSm: '20px',\n buttonSizeLg: '28px',\n inset: '1px',\n gap: '8px',\n iconSize: '12px',\n widthsm: '100px',\n widthLg: '116px',\n },\n arrows: {\n buttonSizeSm: '10px',\n buttonSizeLg: '14px',\n iconSize: '12px',\n gap: '0px',\n widthsm: '72px',\n widthLg: '80px',\n },\n },\n borderRadius: global.radii.r3,\n border: {\n default: semantic.colors.border.strong,\n hover: semantic.colors.brand.primaryHover,\n disabled: semantic.colors.border.strong,\n },\n background: {\n default: semantic.colors.background.surface,\n hover: semantic.colors.background.surfaceSubtle,\n disabled: semantic.colors.background.secondary,\n },\n text: {\n default: semantic.colors.text.primary,\n placeholder: semantic.colors.text.placeholder,\n disabled: semantic.colors.text.disabled,\n },\n transition: '0.2s ease',\n});\n\n","import { TokenGenerator } from '../types/theme-utils';\nimport { CollapseTokens } from '../types/component-tokens.types';\n\nexport const getCollapseTokens: TokenGenerator<CollapseTokens> = ({ global, semantic }) => ({\n border: {\n default: semantic.colors.border.primary,\n },\n background: {\n default: semantic.colors.background.surface,\n hover: semantic.colors.background.surfaceSubtle,\n },\n text: {\n default: semantic.colors.text.secondary, // Note: Light used 'rgba(10, 24, 51, 0.6)' (f5), Dark used text.secondary. Assuming text.secondary is correct abstraction.\n title: semantic.colors.text.primary, // Light: 'rgba(10, 24, 51, 0.7)' (f4), Dark: text.primary.\n },\n divider: semantic.colors.border.primary,\n arrow: {\n default: semantic.colors.text.secondary,\n },\n padding: {\n header: '12px 24px',\n content: '0 24px 12px 24px',\n },\n borderRadius: global.radii.r3,\n gap: global.spacing.sm,\n transition: '0.3s cubic-bezier(0.4, 0, 0.2, 1)',\n arrowSize: '16px',\n});\n\n","import { TokenGenerator } from '../types/theme-utils';\nimport { TagTokens } from '../types/component-tokens.types';\n\nexport const getTagTokens: TokenGenerator<TagTokens> = ({ global, semantic, mode }) => {\n const isDark = mode === 'dark';\n\n return {\n colors: {\n // 默认颜色(灰色)\n default: {\n background: {\n default: isDark ? 'rgba(148, 163, 184, 0.15)' : global.colors.neutral[100],\n hover: isDark ? 'rgba(148, 163, 184, 0.2)' : global.colors.neutral[200],\n active: isDark ? 'rgba(148, 163, 184, 0.25)' : global.colors.neutral[300],\n checked: semantic.colors.brand.primary,\n checkedHover: semantic.colors.brand.primaryHover,\n checkedActive: semantic.colors.brand.primaryActive,\n },\n text: {\n default: isDark ? global.colors.word[100] : 'rgba(10, 24, 51, 0.7)',\n checked: global.colors.common.white,\n },\n border: {\n default: isDark ? 'rgba(148, 163, 184, 0.28)' : global.colors.neutral[400],\n hover: isDark ? 'rgba(148, 163, 184, 0.38)' : global.colors.neutral[500],\n active: isDark ? 'rgba(148, 163, 184, 0.48)' : global.colors.word[600],\n checked: semantic.colors.brand.primary,\n checkedHover: semantic.colors.brand.primaryHover,\n checkedActive: semantic.colors.brand.primaryActive,\n },\n },\n // 红色 Red\n red: {\n background: {\n default: isDark ? 'rgba(170, 14, 41, 0.12)' : 'rgba(170, 14, 41, 0.08)',\n hover: isDark ? 'rgba(170, 14, 41, 0.16)' : 'rgba(170, 14, 41, 0.12)',\n active: isDark ? 'rgba(170, 14, 41, 0.2)' : 'rgba(170, 14, 41, 0.16)',\n },\n text: {\n default: isDark ? global.colors.red[300] : global.colors.red[700],\n },\n border: {\n default: isDark ? 'rgba(170, 14, 41, 0.3)' : 'rgba(170, 14, 41, 0.25)',\n },\n },\n // 橙色 Orange\n orange: {\n background: {\n default: isDark ? 'rgba(237, 154, 0, 0.12)' : 'rgba(237, 154, 0, 0.08)',\n hover: isDark ? 'rgba(237, 154, 0, 0.16)' : 'rgba(237, 154, 0, 0.12)',\n active: isDark ? 'rgba(237, 154, 0, 0.2)' : 'rgba(237, 154, 0, 0.16)',\n },\n text: {\n default: isDark ? global.colors.orange[300] : global.colors.orange[500],\n },\n border: {\n default: isDark ? 'rgba(237, 154, 0, 0.3)' : 'rgba(237, 154, 0, 0.25)',\n },\n },\n // 黄色 Yellow\n yellow: {\n background: {\n default: isDark ? 'rgba(250, 208, 0, 0.12)' : 'rgba(250, 208, 0, 0.08)',\n hover: isDark ? 'rgba(250, 208, 0, 0.16)' : 'rgba(250, 208, 0, 0.12)',\n active: isDark ? 'rgba(250, 208, 0, 0.2)' : 'rgba(250, 208, 0, 0.16)',\n },\n text: {\n default: isDark ? global.colors.yellow[300] : global.colors.yellow[500],\n },\n border: {\n default: isDark ? 'rgba(250, 208, 0, 0.3)' : 'rgba(250, 208, 0, 0.25)',\n },\n },\n // 绿色 Green\n green: {\n background: {\n default: isDark ? 'rgba(51, 189, 72, 0.12)' : 'rgba(51, 189, 72, 0.08)',\n hover: isDark ? 'rgba(51, 189, 72, 0.16)' : 'rgba(51, 189, 72, 0.12)',\n active: isDark ? 'rgba(51, 189, 72, 0.2)' : 'rgba(51, 189, 72, 0.16)',\n },\n text: {\n default: isDark ? global.colors.green[300] : global.colors.green[500],\n },\n border: {\n default: isDark ? 'rgba(51, 189, 72, 0.3)' : 'rgba(51, 189, 72, 0.25)',\n },\n },\n // 薰衣草色 Lavender\n lavender: {\n background: {\n default: isDark ? 'rgba(99, 79, 214, 0.12)' : 'rgba(99, 79, 214, 0.08)',\n hover: isDark ? 'rgba(99, 79, 214, 0.16)' : 'rgba(99, 79, 214, 0.12)',\n active: isDark ? 'rgba(99, 79, 214, 0.2)' : 'rgba(99, 79, 214, 0.16)',\n },\n text: {\n default: isDark ? global.colors.lavender[300] : global.colors.lavender[500],\n },\n border: {\n default: isDark ? 'rgba(99, 79, 214, 0.3)' : 'rgba(99, 79, 214, 0.25)',\n },\n },\n // 丁香色 Lilac\n lilac: {\n background: {\n default: isDark ? 'rgba(159, 58, 214, 0.12)' : 'rgba(159, 58, 214, 0.08)',\n hover: isDark ? 'rgba(159, 58, 214, 0.16)' : 'rgba(159, 58, 214, 0.12)',\n active: isDark ? 'rgba(159, 58, 214, 0.2)' : 'rgba(159, 58, 214, 0.16)',\n },\n text: {\n default: isDark ? global.colors.lilac[300] : global.colors.lilac[500],\n },\n border: {\n default: isDark ? 'rgba(159, 58, 214, 0.3)' : 'rgba(159, 58, 214, 0.25)',\n },\n },\n // 胭脂红 Carmine\n carmine: {\n background: {\n default: isDark ? 'rgba(214, 58, 191, 0.12)' : 'rgba(214, 58, 191, 0.08)',\n hover: isDark ? 'rgba(214, 58, 191, 0.16)' : 'rgba(214, 58, 191, 0.12)',\n active: isDark ? 'rgba(214, 58, 191, 0.2)' : 'rgba(214, 58, 191, 0.16)',\n },\n text: {\n default: isDark ? global.colors.carmine[300] : global.colors.carmine[500],\n },\n border: {\n default: isDark ? 'rgba(214, 58, 191, 0.3)' : 'rgba(214, 58, 191, 0.25)',\n },\n },\n // 玫瑰色 Rose\n rose: {\n background: {\n default: isDark ? 'rgba(229, 30, 100, 0.12)' : 'rgba(229, 30, 100, 0.08)',\n hover: isDark ? 'rgba(229, 30, 100, 0.16)' : 'rgba(229, 30, 100, 0.12)',\n active: isDark ? 'rgba(229, 30, 100, 0.2)' : 'rgba(229, 30, 100, 0.16)',\n },\n text: {\n default: isDark ? global.colors.rose[300] : global.colors.rose[500],\n },\n border: {\n default: isDark ? 'rgba(229, 30, 100, 0.3)' : 'rgba(229, 30, 100, 0.25)',\n },\n },\n // 薄荷色 Mint\n mint: {\n background: {\n default: isDark ? 'rgba(71, 192, 214, 0.12)' : 'rgba(71, 192, 214, 0.08)',\n hover: isDark ? 'rgba(71, 192, 214, 0.16)' : 'rgba(71, 192, 214, 0.12)',\n active: isDark ? 'rgba(71, 192, 214, 0.2)' : 'rgba(71, 192, 214, 0.16)',\n },\n text: {\n default: isDark ? global.colors.mint[300] : global.colors.mint[500],\n },\n border: {\n default: isDark ? 'rgba(71, 192, 214, 0.3)' : 'rgba(71, 192, 214, 0.25)',\n },\n },\n // 橄榄色 Olive\n olive: {\n background: {\n default: isDark ? 'rgba(187, 214, 36, 0.12)' : 'rgba(187, 214, 36, 0.08)',\n hover: isDark ? 'rgba(187, 214, 36, 0.16)' : 'rgba(187, 214, 36, 0.12)',\n active: isDark ? 'rgba(187, 214, 36, 0.2)' : 'rgba(187, 214, 36, 0.16)',\n },\n text: {\n default: isDark ? global.colors.olive[300] : global.colors.olive[500],\n },\n border: {\n default: isDark ? 'rgba(187, 214, 36, 0.3)' : 'rgba(187, 214, 36, 0.25)',\n },\n },\n // 蓝色 Blue\n blue: {\n background: {\n default: isDark ? 'rgba(44, 111, 231, 0.12)' : 'rgba(44, 111, 231, 0.08)',\n hover: isDark ? 'rgba(44, 111, 231, 0.16)' : 'rgba(44, 111, 231, 0.12)',\n active: isDark ? 'rgba(44, 111, 231, 0.2)' : 'rgba(44, 111, 231, 0.16)',\n },\n text: {\n default: semantic.colors.brand.primary,\n },\n border: {\n default: isDark ? 'rgba(44, 111, 231, 0.3)' : 'rgba(44, 111, 231, 0.25)',\n },\n },\n },\n size: {\n sm: {\n height: '18px', // 小号标签高度(Figma 设计)\n fontSize: '10px', // H11-最小标签字号(Figma 设计)\n lineHeight: '16px', // 行高\n paddingInline: global.spacing.sm, // 8px 左右内边距\n gap: global.spacing.xs, // 4px 图标和文字间距\n iconSize: '12px', // 图标尺寸\n closeIconSize: '8px', // 关闭图标尺寸\n },\n md: {\n height: '24px', // 中号标签高度(Figma 设计)\n fontSize: '10px', // H11-最小标签字号(Figma 设计)\n lineHeight: '16px', // 行高\n paddingInline: global.spacing.sm, // 8px 左右内边距\n gap: global.spacing.xs, // 4px 图标和文字间距\n iconSize: '14px', // 图标尺寸\n closeIconSize: '10px', // 关闭图标尺寸\n },\n lg: {\n height: '32px',\n fontSize: global.typography.fontSize.xs, // 12px\n lineHeight: '20px',\n paddingInline: global.spacing.md, // 12px\n gap: global.spacing.sm, // 8px\n iconSize: '16px',\n closeIconSize: '12px',\n },\n },\n fontWeight: global.typography.fontWeight.regular, // 400\n borderRadius: global.radii.r2, // 4px - 最小组件圆角\n transition: '0.2s ease',\n disabled: {\n opacity: 0.5,\n },\n };\n};\n\n","import { TokenGenerator } from '../types/theme-utils';\nimport { SkeletonTokens } from '../types/component-tokens.types';\n\nexport const getSkeletonTokens: TokenGenerator<SkeletonTokens> = ({ global, mode }) => {\n const isDark = mode === 'dark';\n return {\n background: {\n base: isDark ? 'rgba(148, 163, 184, 0.12)' : 'rgba(10, 24, 51, 0.05)',\n highlight: isDark ? 'rgba(148, 163, 184, 0.22)' : 'rgba(10, 24, 51, 0.12)',\n },\n animation: {\n duration: '1.4s',\n easing: 'ease-in-out',\n },\n radius: {\n sm: global.radii.r2,\n md: global.radii.r3,\n lg: global.radii.r4,\n pill: global.radii.r5,\n circle: global.radii.r0,\n },\n block: {\n height: '16px',\n },\n text: {\n lineHeight: '12px',\n gap: global.spacing.sm,\n lastLineWidth: '62%',\n },\n circle: {\n size: '40px',\n },\n };\n};\n\n","import { TokenGenerator } from '../types/theme-utils';\nimport { StepperTokens } from '../types/component-tokens.types';\n\nexport const getStepperTokens: TokenGenerator<StepperTokens> = ({ global, semantic, mode }) => {\n const isDark = mode === 'dark';\n return {\n circle: {\n size: {\n md: '32px',\n sm: '24px',\n },\n fontSize: {\n md: global.typography.fontSize.sm,\n sm: global.typography.fontSize.xs,\n },\n iconSize: {\n md: '14px',\n sm: '10px',\n },\n },\n dot: {\n size: {\n md: '10px',\n sm: '8px',\n },\n pulseColor: isDark ? 'rgba(44, 111, 231, 0.35)' : 'rgba(44, 111, 231, 0.25)',\n },\n line: {\n color: {\n default: semantic.colors.border.primary,\n active: semantic.colors.brand.primary,\n },\n size: '1px',\n },\n text: {\n title: {\n color: {\n default: semantic.colors.text.primary,\n active: semantic.colors.brand.primary,\n error: semantic.colors.state.danger,\n waiting: semantic.colors.text.tertiary,\n },\n fontWeight: global.typography.fontWeight.medium,\n fontSize: global.typography.fontSize.sm,\n },\n description: {\n color: semantic.colors.text.secondary,\n fontSize: global.typography.fontSize.xs,\n },\n },\n state: {\n process: {\n color: semantic.colors.brand.primary,\n bg: semantic.colors.brand.primary,\n },\n wait: {\n color: semantic.colors.text.tertiary,\n bg: isDark ? 'rgba(148, 163, 184, 0.2)' : global.colors.neutral[200],\n },\n finish: {\n color: semantic.colors.brand.primary,\n bg: isDark ? 'rgba(44, 111, 231, 0.15)' : semantic.colors.brand.primarySubtle,\n },\n error: {\n color: semantic.colors.state.danger,\n bg: isDark ? 'rgba(170, 14, 41, 0.15)' : semantic.colors.state.dangerSubtle,\n },\n },\n gap: global.spacing.sm,\n };\n};\n\n","import { TokenGenerator } from '../types/theme-utils';\nimport { MenuTokens } from '../types/component-tokens.types';\n\nexport const getMenuTokens: TokenGenerator<MenuTokens> = ({ global, semantic, mode }) => {\n const isDark = mode === 'dark';\n return {\n container: {\n width: {\n expanded: '240px', // 展开宽度(Figma 设计)\n collapsed: '68px', // 折叠宽度(Figma 设计)\n },\n background: isDark ? semantic.colors.background.surface : global.colors.common.white,\n border: `1px solid ${semantic.colors.border.primary}`,\n padding: global.spacing.lg, // 16px 左右内边距\n },\n item: {\n height: '40px', // 菜单项高度(Figma 设计)\n paddingInline: global.spacing.lg, // 16px 左右内边距\n fontSize: global.typography.fontSize.sm, // 14px\n fontWeight: global.typography.fontWeight.regular, // 400\n iconSize: '20px', // 图标尺寸(Figma 设计)\n gap: global.spacing.sm, // 8px 图标和文字间距\n borderRadius: global.radii.r3, // 4px 圆角\n background: {\n default: 'transparent',\n hover: isDark ? semantic.colors.background.surfaceStrong : semantic.colors.background.surfaceSubtle, // hover 背景\n active: isDark ? 'linear-gradient(90deg, rgba(1, 148, 255, 0) 0%, rgba(1, 148, 255, 0.2) 100%)' \n : 'linear-gradient(90deg, rgba(1, 148, 255, 0) 0%, rgba(1, 148, 255, 0.15) 100%)', // 选中渐变背景\n },\n text: {\n default: semantic.colors.text.primary,\n hover: semantic.colors.text.primary,\n active: semantic.colors.text.primary,\n },\n transition: '0.2s ease',\n },\n subItem: {\n paddingLeft: '20px', // 子菜单左缩进(Figma 设计有4px额外缩进)\n background: {\n default: 'transparent',\n hover: isDark ? semantic.colors.background.surfaceStrong : semantic.colors.background.surfaceSubtle,\n active: isDark ? 'linear-gradient(90deg, rgba(1, 148, 255, 0) 0%, rgba(1, 148, 255, 0.2) 100%)' \n : 'linear-gradient(90deg, rgba(1, 148, 255, 0) 0%, rgba(1, 148, 255, 0.15) 100%)',\n },\n },\n group: {\n marginTop: global.spacing.xl, // 24px 分组上边距\n marginBottom: global.spacing.md, // 12px 分组下边距\n gap: global.spacing.xs, // 4px 项目间距\n },\n groupTitle: {\n height: '18px', // 标题高度(Figma 设计)\n fontSize: global.typography.fontSize.xs, // 12px\n fontWeight: global.typography.fontWeight.regular, // 400\n color: semantic.colors.text.secondary, // 辅助文字颜色\n paddingInline: '0',\n marginBottom: global.spacing.sm, // 8px 标题下边距\n },\n scrollbar: {\n width: '8px', // 滚动条宽度(Figma 设计)\n thumbColor: isDark ? 'rgba(255, 255, 255, 0.2)' : 'rgba(0, 0, 0, 0.2)', // 滑块颜色\n trackColor: 'transparent', // 轨道颜色\n },\n popover: {\n background: isDark ? semantic.colors.background.surface : global.colors.common.white,\n border: `1px solid ${semantic.colors.border.primary}`,\n borderRadius: global.radii.r4, // 8px 圆角\n boxShadow: isDark ? '0 4px 12px rgba(0, 0, 0, 0.4)' : '0 4px 12px rgba(0, 0, 0, 0.08)', // 悬浮层阴影\n padding: global.spacing.xs, // 4px 内边距\n item: {\n background: {\n default: 'transparent',\n hover: isDark ? semantic.colors.background.surfaceStrong : semantic.colors.background.surfaceSubtle,\n active: isDark ? 'linear-gradient(90deg, rgba(1, 148, 255, 0) 0%, rgba(1, 148, 255, 0.2) 100%)' \n : 'linear-gradient(90deg, rgba(1, 148, 255, 0) 0%, rgba(1, 148, 255, 0.15) 100%)',\n },\n text: {\n default: semantic.colors.text.primary,\n hover: semantic.colors.text.primary,\n active: semantic.colors.brand.primary,\n },\n },\n },\n };\n};\n\n","import {\n AppTheme,\n ComponentTokens,\n globalColors,\n globalSpacing,\n globalRadii,\n globalTypography,\n globalShadows,\n globalGradients,\n lightSemantic,\n darkSemantic,\n SemanticColors,\n SemanticSpacing,\n SemanticBorderRadius,\n SemanticTypography,\n SemanticShadows,\n} from '@kingsoft-ai/theme';\nimport { ThemeContext } from './types/theme-utils';\n\nimport { getButtonTokens, getIconButtonTokens } from './button/tokens';\nimport { getCheckboxTokens } from './checkbox/tokens';\nimport { getRadioTokens } from './radio/tokens';\nimport { getSwitchTokens } from './switch/tokens';\nimport { getInputTokens } from './input/tokens';\nimport { getSelectTokens } from './select/tokens';\nimport { getNumberFieldTokens } from './numberInput/tokens';\nimport { getCollapseTokens } from './collapse/tokens';\nimport { getTagTokens } from './tag/tokens';\nimport { getSkeletonTokens } from './skeleton/tokens';\nimport { getStepperTokens } from './stepper/tokens';\nimport { getMenuTokens } from './menu/tokens';\n\nexport const createComponentTokens = (context: ThemeContext): ComponentTokens => ({\n button: getButtonTokens(context),\n iconButton: getIconButtonTokens(context),\n checkbox: getCheckboxTokens(context),\n radio: getRadioTokens(context),\n switch: getSwitchTokens(context),\n input: getInputTokens(context),\n select: getSelectTokens(context),\n numberfield: getNumberFieldTokens(context),\n collapse: getCollapseTokens(context),\n tag: getTagTokens(context),\n skeleton: getSkeletonTokens(context),\n stepper: getStepperTokens(context),\n menu: getMenuTokens(context),\n});\n\ninterface SemanticTheme {\n colors: SemanticColors;\n spacing: SemanticSpacing;\n borderRadius: SemanticBorderRadius;\n typography: SemanticTypography;\n shadows: SemanticShadows;\n}\n\nexport const createDesignTheme = (\n semantic: SemanticTheme,\n mode: 'light' | 'dark' = 'light'\n): AppTheme => {\n const global = {\n colors: globalColors,\n spacing: globalSpacing,\n radii: globalRadii,\n typography: globalTypography,\n shadows: globalShadows,\n gradients: globalGradients,\n };\n\n const context: ThemeContext = {\n global,\n semantic,\n mode,\n };\n\n return {\n global,\n semantic,\n components: createComponentTokens(context),\n };\n};\n\nexport const defaultLightDesignTheme = createDesignTheme(lightSemantic, 'light');\nexport const defaultDarkDesignTheme = createDesignTheme(darkSemantic, 'dark');\n\n","/**\n * Design 组件的主题提供者\n * \n * 这是一个便捷的包装器,自动使用默认的设计主题\n * 用户可以直接使用而不需要手动导入 theme\n */\n\nimport type { ReactNode } from 'react'\nimport { CustomThemeProvider } from '@kingsoft-ai/theme'\nimport { defaultLightDesignTheme, defaultDarkDesignTheme } from './theme'\nimport type { AppTheme } from '@kingsoft-ai/theme'\n\nexport interface DesignThemeProviderProps {\n /** 子组件 */\n children: ReactNode\n /** \n * 主题模式\n * @default 'light'\n */\n mode?: 'light' | 'dark'\n /**\n * 自定义主题对象(可选)\n * 如果提供,将覆盖默认主题\n */\n theme?: AppTheme\n}\n\n/**\n * Design 组件主题提供者\n * \n * @example\n * ```tsx\n * // 使用默认亮色主题\n * <DesignThemeProvider>\n * <Button>点击我</Button>\n * </DesignThemeProvider>\n * \n * // 使用暗色主题\n * <DesignThemeProvider mode=\"dark\">\n * <Button>点击我</Button>\n * </DesignThemeProvider>\n * \n * // 使用自定义主题\n * <DesignThemeProvider theme={customTheme}>\n * <Button>点击我</Button>\n * </DesignThemeProvider>\n * ```\n */\nexport const DesignThemeProvider = ({ \n children, \n mode = 'light',\n theme \n}: DesignThemeProviderProps) => {\n // 如果提供了自定义主题,使用自定义主题;否则根据 mode 选择默认主题\n const selectedTheme = theme ?? (mode === 'dark' ? defaultDarkDesignTheme : defaultLightDesignTheme)\n \n return (\n <CustomThemeProvider theme={selectedTheme}>\n {children}\n </CustomThemeProvider>\n )\n}\n\n"],"names":["REACT_ELEMENT_TYPE","REACT_FRAGMENT_TYPE","jsxProd","type","config","maybeKey","key","propName","reactJsxRuntime_production","getComponentNameFromType","REACT_CLIENT_REFERENCE","REACT_PROFILER_TYPE","REACT_STRICT_MODE_TYPE","REACT_SUSPENSE_TYPE","REACT_SUSPENSE_LIST_TYPE","REACT_ACTIVITY_TYPE","REACT_PORTAL_TYPE","REACT_CONTEXT_TYPE","REACT_CONSUMER_TYPE","REACT_FORWARD_REF_TYPE","innerType","REACT_MEMO_TYPE","REACT_LAZY_TYPE","testStringCoercion","value","checkKeyStringCoercion","JSCompiler_inline_result","JSCompiler_temp_const","JSCompiler_inline_result$jscomp$0","getTaskName","name","getOwner","dispatcher","ReactSharedInternals","UnknownOwner","hasValidKey","hasOwnProperty","getter","defineKeyPropWarningGetter","props","displayName","warnAboutAccessingKey","specialPropKeyWarningShown","elementRefGetterWithDeprecationWarning","componentName","didWarnAboutElementRef","ReactElement","owner","debugStack","debugTask","refProp","jsxDEVImpl","isStaticChildren","children","isArrayImpl","validateChildKeys","keys","k","didWarnAboutKeySpread","node","isValidElement","object","React","require$$0","createTask","callStackForError","unknownOwnerDebugStack","unknownOwnerDebugTask","reactJsxRuntime_development","trackActualOwner","jsxRuntimeModule","require$$1","$bdb11010cef70236$export$d41a04c74483c6ef","heldValue","$bdb11010cef70236$export$cd8c9cb68f842629","idA","idB","setIdsA","ref","setIdsB","$ff5963eb1fccf552$export$e08e3b67e392101e","callbacks","args","callback","r","e","t","f","n","o","clsx","$3ef42575df84b30b$export$9d1611c77c2fe928","result","i","a","b","$7jXr9$clsx","$7215afc6de606d6b$export$de79e2c695e052f3","element","$7215afc6de606d6b$var$supportsPreventScroll","scrollableElements","$7215afc6de606d6b$var$getScrollableElements","$7215afc6de606d6b$var$restoreScrollPosition","$7215afc6de606d6b$var$supportsPreventScrollCached","parent","rootScrollingElement","scrollTop","scrollLeft","$458b0a5536c1a7cf$export$40bfa8c7b0832715","defaultValue","onChange","stateValue","setStateValue","$3whtM$useState","isControlledRef","$3whtM$useRef","isControlled","$3whtM$useEffect","wasControlled","currentValue","setValue","$3whtM$useCallback","onChangeCaller","onChangeArgs","oldValue","functionArgs","interceptedValue","buttonVariants","buttonSizes","getVariantStyles","variant","theme","variantToken","components","button","hasShadow","gradientToken","defaultShadow","shadow","default","hoverShadow","hover","css","text","background","gradientFrom","gradientTo","getStateValue","obj","state","getBorderColor","border","getBackground","getSizeStyles","size","sizeToken","height","fontSize","paddingInline","iconSize","ButtonRoot","styled","global","typography","fontFamily","fontWeight","borderRadius","transition","fullWidth","primary","disabled","opacity","ButtonContent","span","gap","IconWrapper","isLoading","Label","VARIANTS","SIZES","Button","forwardRef","icon","loading","isDisabled","className","ariaProps","forwardedRef","innerRef","useRef","buttonProps","isPressed","useButton","elementType","jsx","mergeProps","undefined","jsxs","animation","iconButtonAppearances","iconButtonTones","iconButtonSizes","appearance","tone","tokens","iconButton","resolve","defaultState","hoverState","activeState","edge","IconButtonRoot","focusRing","width","color","offset","IconSlot","isHidden","LoadingSpinner","ICON_BUTTON_APPEARANCES","ICON_BUTTON_TONES","ICON_BUTTON_SIZES","IconButton","label","loadingLabel","isDevEnvironment","useMemo","globalThis","process","env","NODE_ENV","ariaLabel","ariaLabelledby","console","warn","Boolean","VisuallyHidden","sheetForTag","tag","createStyleElement","options","StyleSheet","_this","before","_proto","nodes","rule","sheet","_tag$parentNode","MS","MOZ","WEBKIT","COMMENT","RULESET","DECLARATION","IMPORT","KEYFRAMES","LAYER","abs","from","assign","hash","length","charat","trim","match","pattern","replace","replacement","indexof","search","index","substr","begin","end","strlen","sizeof","append","array","combine","line","column","position","character","characters","root","copy","char","prev","next","peek","caret","slice","token","alloc","dealloc","delimit","delimiter","whitespace","escaping","count","commenter","identifier","compile","parse","rules","rulesets","pseudo","points","declarations","atrule","property","previous","variable","scanning","ampersand","reference","comment","declaration","ruleset","post","j","x","y","z","serialize","output","stringify","middleware","collection","rulesheet","memoize","fn","cache","arg","identifierWithPointTracking","toRules","parsed","getRules","fixedElements","compat","isImplicitRule","parentRules","removeLabel","prefix","prefixer","defaultStylisPlugins","createCache","ssrStyles","dataEmotionAttribute","stylisPlugins","inserted","container","nodesToHydrate","attrib","_insert","omnipresentPlugins","currentSheet","finalizingPlugins","serializer","stylis","styles","selector","serialized","shouldCache","c","d","g","h","l","m","p","q","v","w","u","A","reactIs_production_min","hasSymbol","REACT_PROVIDER_TYPE","REACT_ASYNC_MODE_TYPE","REACT_CONCURRENT_MODE_TYPE","REACT_BLOCK_TYPE","REACT_FUNDAMENTAL_TYPE","REACT_RESPONDER_TYPE","REACT_SCOPE_TYPE","isValidElementType","typeOf","$$typeof","$$typeofType","AsyncMode","ConcurrentMode","ContextConsumer","ContextProvider","Element","ForwardRef","Fragment","Lazy","Memo","Portal","Profiler","StrictMode","Suspense","hasWarnedAboutDeprecatedIsAsyncMode","isAsyncMode","isConcurrentMode","isContextConsumer","isContextProvider","isElement","isForwardRef","isFragment","isLazy","isMemo","isPortal","isProfiler","isStrictMode","isSuspense","reactIs_development","reactIsModule","reactIs","FORWARD_REF_STATICS","MEMO_STATICS","TYPE_STATICS","isBrowser","getRegisteredStyles","registered","registeredStyles","classNames","rawClassName","registerStyles","isStringTag","insertStyles","current","murmur2","str","len","unitlessKeys","hyphenateRegex","animationRegex","isCustomProperty","isProcessableValue","processStyleName","styleName","processStyleValue","p1","p2","cursor","unitless","handleInterpolation","mergedProps","interpolation","componentSelector","keyframes","serializedStyles","createStringFromObject","previousCursor","asString","string","_i","interpolated","labelPattern","serializeStyles","stringMode","strings","asTemplateStringsArr","templateStringsArr","identifierName","hashString","syncFallback","create","useInsertionEffect","useInsertionEffectAlwaysWithSyncFallback","EmotionCacheContext","withEmotionCache","func","useContext","ThemeContext","hasOwn","typePropName","createEmotionProps","newProps","_key","Insertion","_ref","Emotion","cssProp","WrappedComponent","_key2","Emotion$1","ReactJSXRuntime.jsx","ReactJSXRuntime.jsxs","reactCompilerRuntime_production","reactCompilerRuntime_development","compilerRuntimeModule","checkboxContainer","checkboxControl","checkbox","control","borderWidth","borderColor","checked","disabledChecked","checkboxIcon","checkboxLabel","lineHeight","CheckIcon","t0","$","_c","useTheme","t1","t2","Symbol","for","t3","IndeterminateIcon","Checkbox","controlledChecked","inputProps","style","defaultChecked","indeterminate","inputRef","setHover","useState","internalChecked","setInternalChecked","t4","useEffect","t5","t6","t7","event","newChecked","target","handleChange","t8","t9","t10","t11","t12","t13","t14","t15","t16","F","C","W","n1","Q","R","I","D","G","X","U","B","J","O","s","M","S","V","Y","E","K","T","L","e1","Z","N","r1","_","H","P","l1","o1","i1","s1","a1","u1","d1","c1","C1","f1","h1","L1","m1","x1","j1","v1","k1","R1","O1","M1","_1","E1","y1","w1","b1","T1","N1","checkboxButtonSizeTokens","sm","paddingX","paddingY","minHeight","checkmarkSize","checkmarkIcon","md","lg","checkboxButtonContainer","checkboxButtonWrapper","colors","neutral","common","white","blue","checkboxButtonCheckmark","CheckboxButton","CheckOutline","slideDown","slideUp","CollapseRoot","div","collapse","CollapseItemWrapper","isLast","divider","CollapseHeader","padding","header","arrow","ArrowWrapper","arrowSize","isExpanded","TitleWrapper","TitleText","title","SuffixWrapper","CollapseContentWrapper","contentHeight","CollapseContentInner","content","ContentText","Collapse","activeKey","activeKeyProp","defaultActiveKey","accordion","internalActiveKey","setInternalActiveKey","Array","isArray","activeKeys","itemKey","expanded","newActiveKey","currentKeys","filter","items","Children","toArray","itemCount","map","child","itemKey_0","expanded_0","includes","last","cloneElement","renderChildren","CollapseItem","suffix","contentRef","setContentHeight","scrollHeight","handleToggle","preventDefault","handleKeyDown","ChevronDownOutline","t17","t18","t19","t20","t21","isFocused","isError","isHovered","input","error","focus","InputRoot","InputWrapper","StyledInput","placeholder","ClearButton","counter","Counter","CloseIcon","Input","clearable","errorMessage","showCounter","onFocus","onBlur","maxLength","description","id","ariaDescribedBy","restProps","generatedId","Math","random","toString","setIsFocused","setIsHovered","internalValue","setInternalValue","String","handleFocus","handleBlur","handleClear","nativeInputValueSetter","Object","getOwnPropertyDescriptor","window","HTMLInputElement","prototype","set","call","Event","bubbles","defineProperty","writable","currentLength","showClearButton","inputId","descriptionId","errorId","describedBy","join","display","marginBottom","marginTop","MenuContainer","collapsed","menu","scrollbar","trackColor","thumbColor","MenuContent","MenuItemContainer","item","isSubItem","subItem","paddingLeft","active","semantic","brand","primaryActive","MenuItemIcon","MenuItemLabel","MenuItemArrow","MenuGroupContainer","group","MenuGroupTitle","groupTitle","MenuGroupItems","SubMenuPopoverContainer","popover","boxShadow","SubMenuPopoverContent","SubMenuPopoverItem","Menu","SubMenuPopover","visible","anchorRef","onClose","onMouseEnter","onMouseLeave","popoverRef","top","left","setPosition","updatePosition","rect","getBoundingClientRect","right","addEventListener","removeEventListener","handleClickOutside","contains","timer","setTimeout","document","clearTimeout","createPortal","body","MenuItem","showArrow","arrowExpanded","subMenu","onClick","itemRef","showPopover","setShowPopover","hoverTimerRef","closeTimerRef","clearTimers","handleMouseEnter","handleMouseLeave","MenuGroup","SubMenuItem","getDisabledStyles","backgroundColor","numberfield","NumberRoot","NumberGroup","side","inset","controls","arrows","widthsm","widthLg","NumberField","Description","ArrowGroup","ArrowButton","direction","buttonSizeSm","buttonSizeLg","SideButton","PlusIcon","PlusOutline","MinusIcon","MinusOutline","UpIcon","ChevronUpOutline","DownIcon","NumberInput","max","min","onValueChange","rest","step","internal","setInternal","clamp","v_0","nativeSetter","ev","raw","Number","final","isNaN","handleInputChange","next_0","increment","next_1","decrement","e_0","atMin","atMax","t22","t23","t24","t25","RadioWrapper","shouldForwardProp","prop","alignItems","radio","RadioRoot","justifyContent","borderStyle","flexShrink","RadioNative","margin","transform","indicator","RadioIndicator","RadioText","flexDirection","minWidth","RadioLabel","RadioDescription","Radio","skeletonVariants","skeletonRadii","shimmerKeyframes","shimmerMixin","skeleton","highlight","duration","easing","SkeletonRoot","base","$variant","$radius","radius","circle","$width","$height","block","$animate","SkeletonStack","SkeletonLine","pill","$customWidth","$isLast","lastLineWidth","toCssSize","Skeleton","lines","animate","loaded","resolvedWidth","resolvedHeight","lineCount","shouldRenderStack","accessibilityProps","role","dotPulse","StepperRoot","orientation","StepRoot","labelPlacement","stepper","StepIconContainer","dot","status","bgColor","pulseColor","bg","StepContent","StepTitle","titleColors","waiting","StepDescription","StepConnector","isFinished","iconSizeToken","topPos","parseInt","Stepper","T0","steps","stepProps","Step","CloseOutline","renderIcon","resolvedLabelPlacement","shouldRenderIcon","iconContent","showVerticalLine","showHorizontalLine","progressTypes","progressSizes","progressStatuses","getStatusColor","normal","danger","warning","success","LineProgressRoot","LineProgressTrack","secondary","LineProgressBar","percent","ProgressText","StatusIcon","LineProgressInfo","CircleProgressRoot","CircleProgressSvg","svg","CircleProgressTrack","CircleProgressBar","CircleProgressContent","CircleProgressIcon","TYPES","STATUSES","SuccessIcon","ErrorIcon","WarningIcon","getStatusIcon","Progress","showPercent","showIcon","minValue","maxValue","progressBarProps","labelProps","useProgressBar","shouldShowIcon","round","circleSize","strokeWidth","getSizeConfig","circumference","PI","strokeDashoffset","showPercentInCircle","$e5be200c675c3b3a$export$aca958c65c314e6c","$e5be200c675c3b3a$var$CUSTOM_VALIDITY_STATE","$e5be200c675c3b3a$export$dad6ae84456c676a","$e5be200c675c3b3a$export$571b5131b7e65c11","$69F46$createContext","$e5be200c675c3b3a$export$a763b9476acd3eb","$e5be200c675c3b3a$export$fc1a364ae1f3ff10","realtimeValidation","displayValidation","updateValidation","resetValidation","commitValidation","$e5be200c675c3b3a$var$useFormValidationStateImpl","isInvalid","validationState","builtinValidation","validate","validationBehavior","controlledError","clientError","$69F46$useMemo","validateErrors","$e5be200c675c3b3a$var$runValidate","$e5be200c675c3b3a$var$getValidationResult","serverErrors","$69F46$useContext","serverErrorMessages","$e5be200c675c3b3a$var$asArray","lastServerErrors","setLastServerErrors","$69F46$useState","isServerErrorCleared","setServerErrorCleared","serverError","nextValidation","$69F46$useRef","currentValidity","setCurrentValidity","lastError","commitQueued","setCommitQueued","$e5be200c675c3b3a$var$isEqualValidation","$69F46$useEffect","errors","$a02d57049d202695$export$d085fb9e920b5ca7","_node_prevKey","_node_nextKey","_this_keyMap_get","idx","visit","_last_key","$e40ea825a81a3709$export$52baac22726c72bf","anchorKey","currentKey","$7af3f5b51489e0b5$var$equalSets","setA","setB","$7af3f5b51489e0b5$export$253fe78d46329472","selectionMode","disallowEmptySelection","allowDuplicateSelectionEvents","selectionBehaviorProp","disabledBehavior","isFocusedRef","$6tM1y$useRef","setFocused","$6tM1y$useState","focusedKeyRef","childFocusStrategyRef","setFocusedKey","selectedKeysProp","$6tM1y$useMemo","$7af3f5b51489e0b5$var$convertSelection","defaultSelectedKeys","selectedKeys","setSelectedKeys","$6tM1y$useControlledState","disabledKeysProp","selectionBehavior","setSelectionBehavior","lastSelectionBehavior","$6tM1y$useEffect","childFocusStrategy","selection","$c1d7fb2ec91bae71$var$Item","context","childItems","rendered","textValue","$c1d7fb2ec91bae71$var$hasChildItems","$6Fm0V$react","$c1d7fb2ec91bae71$export$6d08773d2e66f8f2","$9fc4852771d079eb$var$Section","$gtysd$react","$9fc4852771d079eb$export$6e2c8f0811a474ce","$eb2240fc39a57fa5$export$bf788dd355e3a401","$eb2240fc39a57fa5$var$iterable","$fzaAv$react","partialNode","parentKey","_v_key","parentNode","_partialNode_index","cached","childNodes","_partialNode_index1","childNode","_childNode_key","nodeKey","$eb2240fc39a57fa5$var$compose","_childNode_value","_parentNode_type","$eb2240fc39a57fa5$var$capitalize","builder","_partialNode_value","_partialNode_textValue","iterator","iterable","outer","inner","$7613b1592d41b092$export$6cd28814d92fa9c9","factory","$lbNth$useMemo","$c5a24bc478652b5f$export$1005530eda016c13","$c5a24bc478652b5f$export$fbdeaa6a76694f71","$c5a24bc478652b5f$export$5f3398f8733f90e2","$c5a24bc478652b5f$export$8c434b3a7a4dad6","aAncestors","$c5a24bc478652b5f$var$getAncestors","bAncestors","firstNonMatchingAncestor","parents","currNode","$d496c0a20b6e58ec$export$6c8a5aaad13c9852","mappedKey","allKeys","first","$jkhUT$compareNodeOrder","_first_key","toKey","mappedToKey","_selectedKeys_anchorKey","_selectedKeys_currentKey","to","fromItem","toItem","_this_layoutDelegate","addKeys","_getFirstItem","_getFirstItem_key","$jkhUT$getFirstItem","$jkhUT$getChildNodes","_item_props","_this_collection_getItem_props","_this_collection_getItem","_options_allowsCellSelection","$e72dd72e1c76a225$export$2f645645f7bca764","layoutDelegate","selectionState","$d5vlZ$useMultipleSelectionState","disabledKeys","$d5vlZ$useMemo","$d5vlZ$useCallback","$d5vlZ$useCollection","selectionManager","$d5vlZ$SelectionManager","$e72dd72e1c76a225$var$useFocusedKeyReset","cachedCollection","$d5vlZ$useRef","$d5vlZ$useEffect","startItem","cachedItemNodes","itemNode","itemNodes","_cachedItemNodes_length","_itemNodes_length","diff","_startItem_index","_startItem_index1","_itemNodes_length1","newNode","isReverseSearching","_startItem_index2","_startItem_index3","$fc909762b330b746$export$61c6a8c84e605fb6","isOpen","setOpen","$hnMvi$useControlledState","open","$hnMvi$useCallback","close","toggle","$2bc3a590c5373a4e$export$5159ec8b34d4ec12","triggerState","$6FfNf$useOverlayTriggerState","focusStrategy","setFocusStrategy","$6FfNf$useState","$6FfNf$useMemo","_props_defaultSelectedKey","controlledValue","setControlledValue","$6FfNf$useControlledState","displayValue","_props_onSelectionChange","_value_","listState","$6FfNf$useListState","$2bc3a590c5373a4e$var$convertValue","_keys_values_next_value","selectedKey","selectedItems","$6FfNf$useFormValidationState","initialValue","_selectedItems_","bordered","colorToken","checkedHover","checkedActive","TagRoot","TagContent","CloseButton","closeIconSize","AddButton","Tag","closable","checkable","actualVariant","isChecked","handleClick","stopPropagation","handleClose","TagAdd","Add","selectSizes","select","isMultiple","SelectTrigger","SelectValue","isPlaceholder","SelectIcon","ListBoxPopup","ListBoxContent","ul","OptionItem","li","option","isSelected","selected","focused","OptionText","OptionIcon","LoadingWrapper","xs","EmptyState","TagsContainer","CheckboxWrapper","Popover","triggerRef","placement","triggerWidth","setTriggerWidth","useLayoutEffect","shouldCloseOnBlur","isDismissable","overlayProps","overlayPropsFromUseOverlay","useOverlay","targetRef","overlayRef","resolvedPlacement","useOverlayPosition","onInteractOutside","trigger","zIndex","DismissButton","Overlay","FocusScope","ListBox","listBoxProps","useListBox","Option","optionProps","useOption","_temp","MultiListBox","SelectInner","maxTagCount","onSelectionChange","renderItems","Item","lastPointerTypeRef","singleState","useSelectState","multiState","useListState","multiOpen","setMultiOpen","effectiveOpen","selectedKeySet","has","push","visibleTags","overflowCount","triggerProps","valueProps","menuProps","descriptionProps","errorMessageProps","useSelect","handlePressStart","pointerType","focusWithoutScrolling","handlePress","onPressStart","onPress","handleRemoveTag","newKeys","Set","delete","renderTriggerContent","selectedItem","popoverState","HiddenSelect","marginRight","Select","Section","tableSizes","tableVariants","tableBorderRadiusMap","getTableRadius","TableContainer","showScrollbar","scrollX","scrollY","StyledTable","table","component","fontSizeSm","surface","surfaceSubtle","TableHeader","thead","TableHeaderRow","tr","TableHeaderCell","th","align","caption","fixed","sortable","surfaceStrong","SortIndicator","TableBody","tbody","TableRow","isSubRow","primarySubtle","selectable","expandable","TableCell","td","level","CheckboxCell","ExpandButton","tertiary","CellContent","ellipsis","wrapText","TableInner","columns","dataSource","scroll","controlledSelectedKeys","expandedKeys","controlledExpandedKeys","onExpandChange","expandedRowRender","sortConfig","onSortChange","onRowClick","emptyText","internalSelectedKeys","setInternalSelectedKeys","internalExpandedKeys","setInternalExpandedKeys","isScrollbarVisible","setIsScrollbarVisible","containerRef","scrollHideTimerRef","handleSelectionChange","useCallback","handleExpandChange","add","handleSort","newDirection","allSelected","every","record","selectedCount","handleScroll","passive","renderRows","data","flatMap","hasChildren","mainRow","colIndex","isFirstColumn","ChevronRightOutline","render","expandedRow","childRows","textAlign","TableWithRef","Table","$3017fa7ffdddec74$export$8042c6c013fd5226","isReadOnly","setSelected","$d8rik$useControlledState","$d8rik$useState","updateSelected","toggleState","_props_defaultSelected","switchSizes","switch","thumbSize","SwitchRoot","unchecked","hasInnerLabel","isFocusVisible","SwitchContent","SwitchLabel","SwitchThumb","thumb","SwitchLabelWrapper","SwitchLabelText","Switch","checkedLabel","uncheckedLabel","useToggleState","useSwitch","focusProps","useFocusRing","currentLabel","switchElement","uploadStatuses","UploadRoot","UploadDropzone","isDragActive","UploadIconWrapper","UploadTextWrapper","UploadMainText","UploadSecondaryText","UploadLink","FileList","FileItem","FileInfoRow","FileIcon","FileName","DeleteButton","ProgressWrapper","ProgressTrack","ProgressBar","HiddenInput","DefaultUploadIcon","FileIconSvg","DeleteIcon","generateUid","Date","now","Upload","accept","multiple","maxSize","maxCount","fileList","controlledFileList","defaultFileList","beforeUpload","customRequest","mainText","secondaryText","fileTypeHint","downloadTemplateText","onDownloadTemplate","dropzoneRef","internalFileList","setInternalFileList","setIsDragActive","newFileList","updateFileList","handleFiles","files","filesArray","newFiles","file","uploadFile","uid","updatedFileList","forEach","uploadFile_0","onProgress","onSuccess","f_0","onError","error_0","f_1","message","simulateUpload","currentFileList","percent_0","interval","setInterval","clearInterval","f_2","f_3","handleDragEnter","e_1","handleDragLeave","handleDragOver","e_3","files_0","dataTransfer","handleDrop","click","uid_0","newFileList_0","f_4","handleDelete","renderStatusIcon","_temp2","e_4","file_0","e_2","getButtonTokens","primaryHover","onBrand","dangerHover","dangerActive","dangerOn","gradient","gradients","blueViolet","spacing","radii","r3","regular","getIconButtonTokens","solid","outline","strong","dangerSubtle","ghost","getCheckboxTokens","r2","word","getRadioTokens","getSwitchTokens","r5","getInputTokens","getSelectTokens","getNumberFieldTokens","getCollapseTokens","getTagTokens","mode","isDark","red","orange","yellow","green","lavender","lilac","carmine","rose","mint","olive","getSkeletonTokens","r4","r0","getStepperTokens","medium","wait","finish","getMenuTokens","xl","createComponentTokens","createDesignTheme","globalColors","globalSpacing","globalRadii","globalTypography","shadows","globalShadows","globalGradients","defaultLightDesignTheme","lightSemantic","defaultDarkDesignTheme","darkSemantic","DesignThemeProvider","selectedTheme","CustomThemeProvider"],"mappings":"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","x_google_ignoreList":[0,1,2,3,4,5,6,7,8,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,63,64,65,66,67,68,69,70,71,72,73,74,75,84]}
|
|
1
|
+
{"version":3,"file":"index.mjs","sources":["../../../node_modules/.pnpm/react@19.2.0/node_modules/react/cjs/react-jsx-runtime.production.js","../../../node_modules/.pnpm/react@19.2.0/node_modules/react/cjs/react-jsx-runtime.development.js","../../../node_modules/.pnpm/react@19.2.0/node_modules/react/jsx-runtime.js","../../../node_modules/.pnpm/@react-aria+utils@3.31.0_react-dom@19.2.0_react@19.2.0__react@19.2.0/node_modules/@react-aria/utils/dist/useId.mjs","../../../node_modules/.pnpm/@react-aria+utils@3.31.0_react-dom@19.2.0_react@19.2.0__react@19.2.0/node_modules/@react-aria/utils/dist/chain.mjs","../../../node_modules/.pnpm/clsx@2.1.1/node_modules/clsx/dist/clsx.mjs","../../../node_modules/.pnpm/@react-aria+utils@3.31.0_react-dom@19.2.0_react@19.2.0__react@19.2.0/node_modules/@react-aria/utils/dist/mergeProps.mjs","../../../node_modules/.pnpm/@react-aria+utils@3.31.0_react-dom@19.2.0_react@19.2.0__react@19.2.0/node_modules/@react-aria/utils/dist/focusWithoutScrolling.mjs","../../../node_modules/.pnpm/@react-stately+utils@3.10.8_react@19.2.0/node_modules/@react-stately/utils/dist/useControlledState.mjs","../src/button/Button.style.ts","../src/button/Button.tsx","../src/button/IconButton.style.ts","../src/button/IconButton.tsx","../../../node_modules/.pnpm/@emotion+sheet@1.4.0/node_modules/@emotion/sheet/dist/emotion-sheet.esm.js","../../../node_modules/.pnpm/stylis@4.2.0/node_modules/stylis/src/Enum.js","../../../node_modules/.pnpm/stylis@4.2.0/node_modules/stylis/src/Utility.js","../../../node_modules/.pnpm/stylis@4.2.0/node_modules/stylis/src/Tokenizer.js","../../../node_modules/.pnpm/stylis@4.2.0/node_modules/stylis/src/Parser.js","../../../node_modules/.pnpm/stylis@4.2.0/node_modules/stylis/src/Serializer.js","../../../node_modules/.pnpm/stylis@4.2.0/node_modules/stylis/src/Middleware.js","../../../node_modules/.pnpm/@emotion+memoize@0.9.0/node_modules/@emotion/memoize/dist/emotion-memoize.esm.js","../../../node_modules/.pnpm/@emotion+cache@11.14.0/node_modules/@emotion/cache/dist/emotion-cache.browser.esm.js","../../../node_modules/.pnpm/react-is@16.13.1/node_modules/react-is/cjs/react-is.production.min.js","../../../node_modules/.pnpm/react-is@16.13.1/node_modules/react-is/cjs/react-is.development.js","../../../node_modules/.pnpm/react-is@16.13.1/node_modules/react-is/index.js","../../../node_modules/.pnpm/hoist-non-react-statics@3.3.2/node_modules/hoist-non-react-statics/dist/hoist-non-react-statics.cjs.js","../../../node_modules/.pnpm/@emotion+utils@1.4.2/node_modules/@emotion/utils/dist/emotion-utils.browser.esm.js","../../../node_modules/.pnpm/@emotion+hash@0.9.2/node_modules/@emotion/hash/dist/emotion-hash.esm.js","../../../node_modules/.pnpm/@emotion+unitless@0.10.0/node_modules/@emotion/unitless/dist/emotion-unitless.esm.js","../../../node_modules/.pnpm/@emotion+serialize@1.3.3/node_modules/@emotion/serialize/dist/emotion-serialize.esm.js","../../../node_modules/.pnpm/@emotion+use-insertion-effect-with-fallbacks@1.2.0_react@19.2.0/node_modules/@emotion/use-insertion-effect-with-fallbacks/dist/emotion-use-insertion-effect-with-fallbacks.browser.esm.js","../../../node_modules/.pnpm/@emotion+react@11.14.0_@types+react@19.2.2_react@19.2.0/node_modules/@emotion/react/dist/emotion-element-f0de968e.browser.esm.js","../../../node_modules/.pnpm/@emotion+react@11.14.0_@types+react@19.2.2_react@19.2.0/node_modules/@emotion/react/jsx-runtime/dist/emotion-react-jsx-runtime.browser.esm.js","../../../node_modules/.pnpm/react@19.2.0/node_modules/react/cjs/react-compiler-runtime.production.js","../../../node_modules/.pnpm/react@19.2.0/node_modules/react/cjs/react-compiler-runtime.development.js","../../../node_modules/.pnpm/react@19.2.0/node_modules/react/compiler-runtime.js","../src/checkbox/Checkbox.style.ts","../src/checkbox/Checkbox.tsx","../../icons/dist/index.mjs","../src/checkbox/CheckboxButton.style.ts","../src/checkbox/CheckboxButton.tsx","../src/collapse/Collapse.style.ts","../src/collapse/Collapse.tsx","../src/collapse/CollapseItem.tsx","../src/input/Input.style.ts","../src/input/Input.tsx","../src/menu/Menu.style.ts","../src/menu/Menu.tsx","../src/menu/SubMenuPopover.tsx","../src/menu/MenuItem.tsx","../src/menu/MenuGroup.tsx","../src/menu/SubMenuItem.tsx","../src/numberInput/NumberInput.style.ts","../src/numberInput/NumberInput.tsx","../src/radio/Radio.style.ts","../src/radio/Radio.tsx","../src/skeleton/Skeleton.style.ts","../src/skeleton/Skeleton.tsx","../src/stepper/Stepper.style.ts","../src/stepper/Stepper.tsx","../src/stepper/Step.tsx","../src/progress/Progress.style.ts","../src/progress/Progress.tsx","../../../node_modules/.pnpm/@react-stately+form@3.2.2_react@19.2.0/node_modules/@react-stately/form/dist/useFormValidationState.mjs","../../../node_modules/.pnpm/@react-stately+list@3.13.1_react@19.2.0/node_modules/@react-stately/list/dist/ListCollection.mjs","../../../node_modules/.pnpm/@react-stately+selection@3.20.6_react@19.2.0/node_modules/@react-stately/selection/dist/Selection.mjs","../../../node_modules/.pnpm/@react-stately+selection@3.20.6_react@19.2.0/node_modules/@react-stately/selection/dist/useMultipleSelectionState.mjs","../../../node_modules/.pnpm/@react-stately+collections@3.12.8_react@19.2.0/node_modules/@react-stately/collections/dist/Item.mjs","../../../node_modules/.pnpm/@react-stately+collections@3.12.8_react@19.2.0/node_modules/@react-stately/collections/dist/Section.mjs","../../../node_modules/.pnpm/@react-stately+collections@3.12.8_react@19.2.0/node_modules/@react-stately/collections/dist/CollectionBuilder.mjs","../../../node_modules/.pnpm/@react-stately+collections@3.12.8_react@19.2.0/node_modules/@react-stately/collections/dist/useCollection.mjs","../../../node_modules/.pnpm/@react-stately+collections@3.12.8_react@19.2.0/node_modules/@react-stately/collections/dist/getChildNodes.mjs","../../../node_modules/.pnpm/@react-stately+selection@3.20.6_react@19.2.0/node_modules/@react-stately/selection/dist/SelectionManager.mjs","../../../node_modules/.pnpm/@react-stately+list@3.13.1_react@19.2.0/node_modules/@react-stately/list/dist/useListState.mjs","../../../node_modules/.pnpm/@react-stately+overlays@3.6.20_react@19.2.0/node_modules/@react-stately/overlays/dist/useOverlayTriggerState.mjs","../../../node_modules/.pnpm/@react-stately+select@3.8.0_react@19.2.0/node_modules/@react-stately/select/dist/useSelectState.mjs","../src/tag/Tag.style.ts","../src/tag/Tag.tsx","../src/select/Select.style.ts","../src/select/Popover.tsx","../src/select/ListBox.tsx","../src/select/Select.tsx","../src/table/Table.style.ts","../src/table/Table.tsx","../../../node_modules/.pnpm/@react-stately+toggle@3.9.2_react@19.2.0/node_modules/@react-stately/toggle/dist/useToggleState.mjs","../src/switch/Switch.style.ts","../src/switch/Switch.tsx","../src/upload/Upload.style.ts","../src/upload/Upload.tsx","../src/button/tokens.ts","../src/checkbox/tokens.ts","../src/radio/tokens.ts","../src/switch/tokens.ts","../src/input/tokens.ts","../src/select/tokens.ts","../src/numberInput/tokens.ts","../src/collapse/tokens.ts","../src/tag/tokens.ts","../src/skeleton/tokens.ts","../src/stepper/tokens.ts","../src/menu/tokens.ts","../src/theme.ts","../src/DesignThemeProvider.tsx"],"sourcesContent":["/**\n * @license React\n * react-jsx-runtime.production.js\n *\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\n\"use strict\";\nvar REACT_ELEMENT_TYPE = Symbol.for(\"react.transitional.element\"),\n REACT_FRAGMENT_TYPE = Symbol.for(\"react.fragment\");\nfunction jsxProd(type, config, maybeKey) {\n var key = null;\n void 0 !== maybeKey && (key = \"\" + maybeKey);\n void 0 !== config.key && (key = \"\" + config.key);\n if (\"key\" in config) {\n maybeKey = {};\n for (var propName in config)\n \"key\" !== propName && (maybeKey[propName] = config[propName]);\n } else maybeKey = config;\n config = maybeKey.ref;\n return {\n $$typeof: REACT_ELEMENT_TYPE,\n type: type,\n key: key,\n ref: void 0 !== config ? config : null,\n props: maybeKey\n };\n}\nexports.Fragment = REACT_FRAGMENT_TYPE;\nexports.jsx = jsxProd;\nexports.jsxs = jsxProd;\n","/**\n * @license React\n * react-jsx-runtime.development.js\n *\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\n\"use strict\";\n\"production\" !== process.env.NODE_ENV &&\n (function () {\n function getComponentNameFromType(type) {\n if (null == type) return null;\n if (\"function\" === typeof type)\n return type.$$typeof === REACT_CLIENT_REFERENCE\n ? null\n : type.displayName || type.name || null;\n if (\"string\" === typeof type) return type;\n switch (type) {\n case REACT_FRAGMENT_TYPE:\n return \"Fragment\";\n case REACT_PROFILER_TYPE:\n return \"Profiler\";\n case REACT_STRICT_MODE_TYPE:\n return \"StrictMode\";\n case REACT_SUSPENSE_TYPE:\n return \"Suspense\";\n case REACT_SUSPENSE_LIST_TYPE:\n return \"SuspenseList\";\n case REACT_ACTIVITY_TYPE:\n return \"Activity\";\n }\n if (\"object\" === typeof type)\n switch (\n (\"number\" === typeof type.tag &&\n console.error(\n \"Received an unexpected object in getComponentNameFromType(). This is likely a bug in React. Please file an issue.\"\n ),\n type.$$typeof)\n ) {\n case REACT_PORTAL_TYPE:\n return \"Portal\";\n case REACT_CONTEXT_TYPE:\n return type.displayName || \"Context\";\n case REACT_CONSUMER_TYPE:\n return (type._context.displayName || \"Context\") + \".Consumer\";\n case REACT_FORWARD_REF_TYPE:\n var innerType = type.render;\n type = type.displayName;\n type ||\n ((type = innerType.displayName || innerType.name || \"\"),\n (type = \"\" !== type ? \"ForwardRef(\" + type + \")\" : \"ForwardRef\"));\n return type;\n case REACT_MEMO_TYPE:\n return (\n (innerType = type.displayName || null),\n null !== innerType\n ? innerType\n : getComponentNameFromType(type.type) || \"Memo\"\n );\n case REACT_LAZY_TYPE:\n innerType = type._payload;\n type = type._init;\n try {\n return getComponentNameFromType(type(innerType));\n } catch (x) {}\n }\n return null;\n }\n function testStringCoercion(value) {\n return \"\" + value;\n }\n function checkKeyStringCoercion(value) {\n try {\n testStringCoercion(value);\n var JSCompiler_inline_result = !1;\n } catch (e) {\n JSCompiler_inline_result = !0;\n }\n if (JSCompiler_inline_result) {\n JSCompiler_inline_result = console;\n var JSCompiler_temp_const = JSCompiler_inline_result.error;\n var JSCompiler_inline_result$jscomp$0 =\n (\"function\" === typeof Symbol &&\n Symbol.toStringTag &&\n value[Symbol.toStringTag]) ||\n value.constructor.name ||\n \"Object\";\n JSCompiler_temp_const.call(\n JSCompiler_inline_result,\n \"The provided key is an unsupported type %s. This value must be coerced to a string before using it here.\",\n JSCompiler_inline_result$jscomp$0\n );\n return testStringCoercion(value);\n }\n }\n function getTaskName(type) {\n if (type === REACT_FRAGMENT_TYPE) return \"<>\";\n if (\n \"object\" === typeof type &&\n null !== type &&\n type.$$typeof === REACT_LAZY_TYPE\n )\n return \"<...>\";\n try {\n var name = getComponentNameFromType(type);\n return name ? \"<\" + name + \">\" : \"<...>\";\n } catch (x) {\n return \"<...>\";\n }\n }\n function getOwner() {\n var dispatcher = ReactSharedInternals.A;\n return null === dispatcher ? null : dispatcher.getOwner();\n }\n function UnknownOwner() {\n return Error(\"react-stack-top-frame\");\n }\n function hasValidKey(config) {\n if (hasOwnProperty.call(config, \"key\")) {\n var getter = Object.getOwnPropertyDescriptor(config, \"key\").get;\n if (getter && getter.isReactWarning) return !1;\n }\n return void 0 !== config.key;\n }\n function defineKeyPropWarningGetter(props, displayName) {\n function warnAboutAccessingKey() {\n specialPropKeyWarningShown ||\n ((specialPropKeyWarningShown = !0),\n console.error(\n \"%s: `key` is not a prop. Trying to access it will result in `undefined` being returned. If you need to access the same value within the child component, you should pass it as a different prop. (https://react.dev/link/special-props)\",\n displayName\n ));\n }\n warnAboutAccessingKey.isReactWarning = !0;\n Object.defineProperty(props, \"key\", {\n get: warnAboutAccessingKey,\n configurable: !0\n });\n }\n function elementRefGetterWithDeprecationWarning() {\n var componentName = getComponentNameFromType(this.type);\n didWarnAboutElementRef[componentName] ||\n ((didWarnAboutElementRef[componentName] = !0),\n console.error(\n \"Accessing element.ref was removed in React 19. ref is now a regular prop. It will be removed from the JSX Element type in a future release.\"\n ));\n componentName = this.props.ref;\n return void 0 !== componentName ? componentName : null;\n }\n function ReactElement(type, key, props, owner, debugStack, debugTask) {\n var refProp = props.ref;\n type = {\n $$typeof: REACT_ELEMENT_TYPE,\n type: type,\n key: key,\n props: props,\n _owner: owner\n };\n null !== (void 0 !== refProp ? refProp : null)\n ? Object.defineProperty(type, \"ref\", {\n enumerable: !1,\n get: elementRefGetterWithDeprecationWarning\n })\n : Object.defineProperty(type, \"ref\", { enumerable: !1, value: null });\n type._store = {};\n Object.defineProperty(type._store, \"validated\", {\n configurable: !1,\n enumerable: !1,\n writable: !0,\n value: 0\n });\n Object.defineProperty(type, \"_debugInfo\", {\n configurable: !1,\n enumerable: !1,\n writable: !0,\n value: null\n });\n Object.defineProperty(type, \"_debugStack\", {\n configurable: !1,\n enumerable: !1,\n writable: !0,\n value: debugStack\n });\n Object.defineProperty(type, \"_debugTask\", {\n configurable: !1,\n enumerable: !1,\n writable: !0,\n value: debugTask\n });\n Object.freeze && (Object.freeze(type.props), Object.freeze(type));\n return type;\n }\n function jsxDEVImpl(\n type,\n config,\n maybeKey,\n isStaticChildren,\n debugStack,\n debugTask\n ) {\n var children = config.children;\n if (void 0 !== children)\n if (isStaticChildren)\n if (isArrayImpl(children)) {\n for (\n isStaticChildren = 0;\n isStaticChildren < children.length;\n isStaticChildren++\n )\n validateChildKeys(children[isStaticChildren]);\n Object.freeze && Object.freeze(children);\n } else\n console.error(\n \"React.jsx: Static children should always be an array. You are likely explicitly calling React.jsxs or React.jsxDEV. Use the Babel transform instead.\"\n );\n else validateChildKeys(children);\n if (hasOwnProperty.call(config, \"key\")) {\n children = getComponentNameFromType(type);\n var keys = Object.keys(config).filter(function (k) {\n return \"key\" !== k;\n });\n isStaticChildren =\n 0 < keys.length\n ? \"{key: someKey, \" + keys.join(\": ..., \") + \": ...}\"\n : \"{key: someKey}\";\n didWarnAboutKeySpread[children + isStaticChildren] ||\n ((keys =\n 0 < keys.length ? \"{\" + keys.join(\": ..., \") + \": ...}\" : \"{}\"),\n console.error(\n 'A props object containing a \"key\" prop is being spread into JSX:\\n let props = %s;\\n <%s {...props} />\\nReact keys must be passed directly to JSX without using spread:\\n let props = %s;\\n <%s key={someKey} {...props} />',\n isStaticChildren,\n children,\n keys,\n children\n ),\n (didWarnAboutKeySpread[children + isStaticChildren] = !0));\n }\n children = null;\n void 0 !== maybeKey &&\n (checkKeyStringCoercion(maybeKey), (children = \"\" + maybeKey));\n hasValidKey(config) &&\n (checkKeyStringCoercion(config.key), (children = \"\" + config.key));\n if (\"key\" in config) {\n maybeKey = {};\n for (var propName in config)\n \"key\" !== propName && (maybeKey[propName] = config[propName]);\n } else maybeKey = config;\n children &&\n defineKeyPropWarningGetter(\n maybeKey,\n \"function\" === typeof type\n ? type.displayName || type.name || \"Unknown\"\n : type\n );\n return ReactElement(\n type,\n children,\n maybeKey,\n getOwner(),\n debugStack,\n debugTask\n );\n }\n function validateChildKeys(node) {\n isValidElement(node)\n ? node._store && (node._store.validated = 1)\n : \"object\" === typeof node &&\n null !== node &&\n node.$$typeof === REACT_LAZY_TYPE &&\n (\"fulfilled\" === node._payload.status\n ? isValidElement(node._payload.value) &&\n node._payload.value._store &&\n (node._payload.value._store.validated = 1)\n : node._store && (node._store.validated = 1));\n }\n function isValidElement(object) {\n return (\n \"object\" === typeof object &&\n null !== object &&\n object.$$typeof === REACT_ELEMENT_TYPE\n );\n }\n var React = require(\"react\"),\n REACT_ELEMENT_TYPE = Symbol.for(\"react.transitional.element\"),\n REACT_PORTAL_TYPE = Symbol.for(\"react.portal\"),\n REACT_FRAGMENT_TYPE = Symbol.for(\"react.fragment\"),\n REACT_STRICT_MODE_TYPE = Symbol.for(\"react.strict_mode\"),\n REACT_PROFILER_TYPE = Symbol.for(\"react.profiler\"),\n REACT_CONSUMER_TYPE = Symbol.for(\"react.consumer\"),\n REACT_CONTEXT_TYPE = Symbol.for(\"react.context\"),\n REACT_FORWARD_REF_TYPE = Symbol.for(\"react.forward_ref\"),\n REACT_SUSPENSE_TYPE = Symbol.for(\"react.suspense\"),\n REACT_SUSPENSE_LIST_TYPE = Symbol.for(\"react.suspense_list\"),\n REACT_MEMO_TYPE = Symbol.for(\"react.memo\"),\n REACT_LAZY_TYPE = Symbol.for(\"react.lazy\"),\n REACT_ACTIVITY_TYPE = Symbol.for(\"react.activity\"),\n REACT_CLIENT_REFERENCE = Symbol.for(\"react.client.reference\"),\n ReactSharedInternals =\n React.__CLIENT_INTERNALS_DO_NOT_USE_OR_WARN_USERS_THEY_CANNOT_UPGRADE,\n hasOwnProperty = Object.prototype.hasOwnProperty,\n isArrayImpl = Array.isArray,\n createTask = console.createTask\n ? console.createTask\n : function () {\n return null;\n };\n React = {\n react_stack_bottom_frame: function (callStackForError) {\n return callStackForError();\n }\n };\n var specialPropKeyWarningShown;\n var didWarnAboutElementRef = {};\n var unknownOwnerDebugStack = React.react_stack_bottom_frame.bind(\n React,\n UnknownOwner\n )();\n var unknownOwnerDebugTask = createTask(getTaskName(UnknownOwner));\n var didWarnAboutKeySpread = {};\n exports.Fragment = REACT_FRAGMENT_TYPE;\n exports.jsx = function (type, config, maybeKey) {\n var trackActualOwner =\n 1e4 > ReactSharedInternals.recentlyCreatedOwnerStacks++;\n return jsxDEVImpl(\n type,\n config,\n maybeKey,\n !1,\n trackActualOwner\n ? Error(\"react-stack-top-frame\")\n : unknownOwnerDebugStack,\n trackActualOwner ? createTask(getTaskName(type)) : unknownOwnerDebugTask\n );\n };\n exports.jsxs = function (type, config, maybeKey) {\n var trackActualOwner =\n 1e4 > ReactSharedInternals.recentlyCreatedOwnerStacks++;\n return jsxDEVImpl(\n type,\n config,\n maybeKey,\n !0,\n trackActualOwner\n ? Error(\"react-stack-top-frame\")\n : unknownOwnerDebugStack,\n trackActualOwner ? createTask(getTaskName(type)) : unknownOwnerDebugTask\n );\n };\n })();\n","'use strict';\n\nif (process.env.NODE_ENV === 'production') {\n module.exports = require('./cjs/react-jsx-runtime.production.js');\n} else {\n module.exports = require('./cjs/react-jsx-runtime.development.js');\n}\n","import {useLayoutEffect as $f0a04ccd8dbdd83b$export$e5c5a5f917a5871c} from \"./useLayoutEffect.mjs\";\nimport {useValueEffect as $1dbecbe27a04f9af$export$14d238f342723f25} from \"./useValueEffect.mjs\";\nimport {useState as $eKkEp$useState, useRef as $eKkEp$useRef, useEffect as $eKkEp$useEffect, useCallback as $eKkEp$useCallback} from \"react\";\nimport {useSSRSafeId as $eKkEp$useSSRSafeId} from \"@react-aria/ssr\";\n\n/*\n * Copyright 2020 Adobe. All rights reserved.\n * This file is licensed to you under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License. You may obtain a copy\n * of the License at http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software distributed under\n * the License is distributed on an \"AS IS\" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS\n * OF ANY KIND, either express or implied. See the License for the specific language\n * governing permissions and limitations under the License.\n */ \n\n\n\n// copied from SSRProvider.tsx to reduce exports, if needed again, consider sharing\nlet $bdb11010cef70236$var$canUseDOM = Boolean(typeof window !== 'undefined' && window.document && window.document.createElement);\nlet $bdb11010cef70236$export$d41a04c74483c6ef = new Map();\n// This allows us to clean up the idsUpdaterMap when the id is no longer used.\n// Map is a strong reference, so unused ids wouldn't be cleaned up otherwise.\n// This can happen in suspended components where mount/unmount is not called.\nlet $bdb11010cef70236$var$registry;\nif (typeof FinalizationRegistry !== 'undefined') $bdb11010cef70236$var$registry = new FinalizationRegistry((heldValue)=>{\n $bdb11010cef70236$export$d41a04c74483c6ef.delete(heldValue);\n});\nfunction $bdb11010cef70236$export$f680877a34711e37(defaultId) {\n let [value, setValue] = (0, $eKkEp$useState)(defaultId);\n let nextId = (0, $eKkEp$useRef)(null);\n let res = (0, $eKkEp$useSSRSafeId)(value);\n let cleanupRef = (0, $eKkEp$useRef)(null);\n if ($bdb11010cef70236$var$registry) $bdb11010cef70236$var$registry.register(cleanupRef, res);\n if ($bdb11010cef70236$var$canUseDOM) {\n const cacheIdRef = $bdb11010cef70236$export$d41a04c74483c6ef.get(res);\n if (cacheIdRef && !cacheIdRef.includes(nextId)) cacheIdRef.push(nextId);\n else $bdb11010cef70236$export$d41a04c74483c6ef.set(res, [\n nextId\n ]);\n }\n (0, $f0a04ccd8dbdd83b$export$e5c5a5f917a5871c)(()=>{\n let r = res;\n return ()=>{\n // In Suspense, the cleanup function may be not called\n // when it is though, also remove it from the finalization registry.\n if ($bdb11010cef70236$var$registry) $bdb11010cef70236$var$registry.unregister(cleanupRef);\n $bdb11010cef70236$export$d41a04c74483c6ef.delete(r);\n };\n }, [\n res\n ]);\n // This cannot cause an infinite loop because the ref is always cleaned up.\n // eslint-disable-next-line\n (0, $eKkEp$useEffect)(()=>{\n let newId = nextId.current;\n if (newId) setValue(newId);\n return ()=>{\n if (newId) nextId.current = null;\n };\n });\n return res;\n}\nfunction $bdb11010cef70236$export$cd8c9cb68f842629(idA, idB) {\n if (idA === idB) return idA;\n let setIdsA = $bdb11010cef70236$export$d41a04c74483c6ef.get(idA);\n if (setIdsA) {\n setIdsA.forEach((ref)=>ref.current = idB);\n return idB;\n }\n let setIdsB = $bdb11010cef70236$export$d41a04c74483c6ef.get(idB);\n if (setIdsB) {\n setIdsB.forEach((ref)=>ref.current = idA);\n return idA;\n }\n return idB;\n}\nfunction $bdb11010cef70236$export$b4cc09c592e8fdb8(depArray = []) {\n let id = $bdb11010cef70236$export$f680877a34711e37();\n let [resolvedId, setResolvedId] = (0, $1dbecbe27a04f9af$export$14d238f342723f25)(id);\n let updateId = (0, $eKkEp$useCallback)(()=>{\n setResolvedId(function*() {\n yield id;\n yield document.getElementById(id) ? id : undefined;\n });\n }, [\n id,\n setResolvedId\n ]);\n (0, $f0a04ccd8dbdd83b$export$e5c5a5f917a5871c)(updateId, [\n id,\n updateId,\n ...depArray\n ]);\n return resolvedId;\n}\n\n\nexport {$bdb11010cef70236$export$d41a04c74483c6ef as idsUpdaterMap, $bdb11010cef70236$export$f680877a34711e37 as useId, $bdb11010cef70236$export$cd8c9cb68f842629 as mergeIds, $bdb11010cef70236$export$b4cc09c592e8fdb8 as useSlotId};\n//# sourceMappingURL=useId.module.js.map\n","/*\n * Copyright 2020 Adobe. All rights reserved.\n * This file is licensed to you under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License. You may obtain a copy\n * of the License at http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software distributed under\n * the License is distributed on an \"AS IS\" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS\n * OF ANY KIND, either express or implied. See the License for the specific language\n * governing permissions and limitations under the License.\n */ /**\n * Calls all functions in the order they were chained with the same arguments.\n */ function $ff5963eb1fccf552$export$e08e3b67e392101e(...callbacks) {\n return (...args)=>{\n for (let callback of callbacks)if (typeof callback === 'function') callback(...args);\n };\n}\n\n\nexport {$ff5963eb1fccf552$export$e08e3b67e392101e as chain};\n//# sourceMappingURL=chain.module.js.map\n","function r(e){var t,f,n=\"\";if(\"string\"==typeof e||\"number\"==typeof e)n+=e;else if(\"object\"==typeof e)if(Array.isArray(e)){var o=e.length;for(t=0;t<o;t++)e[t]&&(f=r(e[t]))&&(n&&(n+=\" \"),n+=f)}else for(f in e)e[f]&&(n&&(n+=\" \"),n+=f);return n}export function clsx(){for(var e,t,f=0,n=\"\",o=arguments.length;f<o;f++)(e=arguments[f])&&(t=r(e))&&(n&&(n+=\" \"),n+=t);return n}export default clsx;","import {chain as $ff5963eb1fccf552$export$e08e3b67e392101e} from \"./chain.mjs\";\nimport {mergeIds as $bdb11010cef70236$export$cd8c9cb68f842629} from \"./useId.mjs\";\nimport $7jXr9$clsx from \"clsx\";\n\n/*\n * Copyright 2020 Adobe. All rights reserved.\n * This file is licensed to you under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License. You may obtain a copy\n * of the License at http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software distributed under\n * the License is distributed on an \"AS IS\" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS\n * OF ANY KIND, either express or implied. See the License for the specific language\n * governing permissions and limitations under the License.\n */ \n\n\nfunction $3ef42575df84b30b$export$9d1611c77c2fe928(...args) {\n // Start with a base clone of the first argument. This is a lot faster than starting\n // with an empty object and adding properties as we go.\n let result = {\n ...args[0]\n };\n for(let i = 1; i < args.length; i++){\n let props = args[i];\n for(let key in props){\n let a = result[key];\n let b = props[key];\n // Chain events\n if (typeof a === 'function' && typeof b === 'function' && // This is a lot faster than a regex.\n key[0] === 'o' && key[1] === 'n' && key.charCodeAt(2) >= /* 'A' */ 65 && key.charCodeAt(2) <= /* 'Z' */ 90) result[key] = (0, $ff5963eb1fccf552$export$e08e3b67e392101e)(a, b);\n else if ((key === 'className' || key === 'UNSAFE_className') && typeof a === 'string' && typeof b === 'string') result[key] = (0, $7jXr9$clsx)(a, b);\n else if (key === 'id' && a && b) result.id = (0, $bdb11010cef70236$export$cd8c9cb68f842629)(a, b);\n else result[key] = b !== undefined ? b : a;\n }\n }\n return result;\n}\n\n\nexport {$3ef42575df84b30b$export$9d1611c77c2fe928 as mergeProps};\n//# sourceMappingURL=mergeProps.module.js.map\n","/*\n * Copyright 2020 Adobe. All rights reserved.\n * This file is licensed to you under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License. You may obtain a copy\n * of the License at http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software distributed under\n * the License is distributed on an \"AS IS\" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS\n * OF ANY KIND, either express or implied. See the License for the specific language\n * governing permissions and limitations under the License.\n */ function $7215afc6de606d6b$export$de79e2c695e052f3(element) {\n if ($7215afc6de606d6b$var$supportsPreventScroll()) element.focus({\n preventScroll: true\n });\n else {\n let scrollableElements = $7215afc6de606d6b$var$getScrollableElements(element);\n element.focus();\n $7215afc6de606d6b$var$restoreScrollPosition(scrollableElements);\n }\n}\nlet $7215afc6de606d6b$var$supportsPreventScrollCached = null;\nfunction $7215afc6de606d6b$var$supportsPreventScroll() {\n if ($7215afc6de606d6b$var$supportsPreventScrollCached == null) {\n $7215afc6de606d6b$var$supportsPreventScrollCached = false;\n try {\n let focusElem = document.createElement('div');\n focusElem.focus({\n get preventScroll () {\n $7215afc6de606d6b$var$supportsPreventScrollCached = true;\n return true;\n }\n });\n } catch {\n // Ignore\n }\n }\n return $7215afc6de606d6b$var$supportsPreventScrollCached;\n}\nfunction $7215afc6de606d6b$var$getScrollableElements(element) {\n let parent = element.parentNode;\n let scrollableElements = [];\n let rootScrollingElement = document.scrollingElement || document.documentElement;\n while(parent instanceof HTMLElement && parent !== rootScrollingElement){\n if (parent.offsetHeight < parent.scrollHeight || parent.offsetWidth < parent.scrollWidth) scrollableElements.push({\n element: parent,\n scrollTop: parent.scrollTop,\n scrollLeft: parent.scrollLeft\n });\n parent = parent.parentNode;\n }\n if (rootScrollingElement instanceof HTMLElement) scrollableElements.push({\n element: rootScrollingElement,\n scrollTop: rootScrollingElement.scrollTop,\n scrollLeft: rootScrollingElement.scrollLeft\n });\n return scrollableElements;\n}\nfunction $7215afc6de606d6b$var$restoreScrollPosition(scrollableElements) {\n for (let { element: element, scrollTop: scrollTop, scrollLeft: scrollLeft } of scrollableElements){\n element.scrollTop = scrollTop;\n element.scrollLeft = scrollLeft;\n }\n}\n\n\nexport {$7215afc6de606d6b$export$de79e2c695e052f3 as focusWithoutScrolling};\n//# sourceMappingURL=focusWithoutScrolling.module.js.map\n","import {useState as $3whtM$useState, useRef as $3whtM$useRef, useEffect as $3whtM$useEffect, useCallback as $3whtM$useCallback} from \"react\";\n\n/*\n * Copyright 2020 Adobe. All rights reserved.\n * This file is licensed to you under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License. You may obtain a copy\n * of the License at http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software distributed under\n * the License is distributed on an \"AS IS\" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS\n * OF ANY KIND, either express or implied. See the License for the specific language\n * governing permissions and limitations under the License.\n */ \nfunction $458b0a5536c1a7cf$export$40bfa8c7b0832715(value, defaultValue, onChange) {\n let [stateValue, setStateValue] = (0, $3whtM$useState)(value || defaultValue);\n let isControlledRef = (0, $3whtM$useRef)(value !== undefined);\n let isControlled = value !== undefined;\n (0, $3whtM$useEffect)(()=>{\n let wasControlled = isControlledRef.current;\n if (wasControlled !== isControlled && process.env.NODE_ENV !== 'production') console.warn(`WARN: A component changed from ${wasControlled ? 'controlled' : 'uncontrolled'} to ${isControlled ? 'controlled' : 'uncontrolled'}.`);\n isControlledRef.current = isControlled;\n }, [\n isControlled\n ]);\n let currentValue = isControlled ? value : stateValue;\n let setValue = (0, $3whtM$useCallback)((value, ...args)=>{\n let onChangeCaller = (value, ...onChangeArgs)=>{\n if (onChange) {\n if (!Object.is(currentValue, value)) onChange(value, ...onChangeArgs);\n }\n if (!isControlled) // If uncontrolled, mutate the currentValue local variable so that\n // calling setState multiple times with the same value only emits onChange once.\n // We do not use a ref for this because we specifically _do_ want the value to\n // reset every render, and assigning to a ref in render breaks aborted suspended renders.\n // eslint-disable-next-line react-hooks/exhaustive-deps\n currentValue = value;\n };\n if (typeof value === 'function') {\n if (process.env.NODE_ENV !== 'production') console.warn('We can not support a function callback. See Github Issues for details https://github.com/adobe/react-spectrum/issues/2320');\n // this supports functional updates https://reactjs.org/docs/hooks-reference.html#functional-updates\n // when someone using useControlledState calls setControlledState(myFunc)\n // this will call our useState setState with a function as well which invokes myFunc and calls onChange with the value from myFunc\n // if we're in an uncontrolled state, then we also return the value of myFunc which to setState looks as though it was just called with myFunc from the beginning\n // otherwise we just return the controlled value, which won't cause a rerender because React knows to bail out when the value is the same\n let updateFunction = (oldValue, ...functionArgs)=>{\n let interceptedValue = value(isControlled ? currentValue : oldValue, ...functionArgs);\n onChangeCaller(interceptedValue, ...args);\n if (!isControlled) return interceptedValue;\n return oldValue;\n };\n setStateValue(updateFunction);\n } else {\n if (!isControlled) setStateValue(value);\n onChangeCaller(value, ...args);\n }\n }, [\n isControlled,\n currentValue,\n onChange\n ]);\n return [\n currentValue,\n setValue\n ];\n}\n\n\nexport {$458b0a5536c1a7cf$export$40bfa8c7b0832715 as useControlledState};\n//# sourceMappingURL=useControlledState.module.js.map\n","/**\n * Button 按钮样式\n * \n * 基于三层 Token 体系:\n * - Tier 1 (Global): 全局基础值\n * - Tier 2 (Semantic): 语义化映射\n * - Tier 3 (Component): 组件专用 Token\n * \n * 完全还原 Figma 设计稿规范\n */\n\nimport styled from '@emotion/styled'\nimport { css } from '@emotion/react'\nimport type { AppTheme } from '@kingsoft-ai/theme'\n\n// ============================================================================\n// 类型定义\n// ============================================================================\n\nexport const buttonVariants = ['primary', 'secondary', 'text', 'danger', 'gradient'] as const\nexport const buttonSizes = ['sm', 'md', 'lg'] as const\n\nexport type ButtonVariant = (typeof buttonVariants)[number]\nexport type ButtonSize = (typeof buttonSizes)[number]\n\n// ============================================================================\n// 变体样式生成器\n// ============================================================================\n\ntype ButtonState = 'default' | 'hover' | 'active'\ntype PartialStateToken = { default: string } & Partial<Record<'hover' | 'active', string>>\ntype WithOptionalShadow = { shadow: { default: string; hover?: string } }\n\n/**\n * 获取按钮变体样式\n * 优先使用 Tier 3 组件层 Token\n */\nconst getVariantStyles = (variant: ButtonVariant, theme: AppTheme) => {\n const variantToken = theme.components.button[variant]\n const hasShadow = 'shadow' in variantToken\n \n // 渐变按钮使用特殊的渐变样式逻辑\n if (variant === 'gradient') {\n const gradientToken = variantToken as typeof theme.components.button.gradient\n const defaultShadow = gradientToken.shadow.default\n const hoverShadow = gradientToken.shadow.hover\n \n return css`\n position: relative;\n color: ${gradientToken.text.default};\n border-color: transparent; /* 渐变无边框,保留 1px 以保持高度一致 */\n box-shadow: ${defaultShadow};\n \n /* 默认渐变背景 */\n background: linear-gradient(\n 90deg, \n ${gradientToken.background.gradientFrom} 0%, \n ${gradientToken.background.gradientTo} 100%\n );\n background-origin: border-box;\n \n /* 使用伪元素创建反向渐变层 */\n &::before {\n content: '';\n position: absolute;\n top: -1px;\n left: -1px;\n right: -1px;\n bottom: -1px;\n border-radius: inherit;\n background: linear-gradient(\n 90deg, \n ${gradientToken.background.gradientTo} 0%, \n ${gradientToken.background.gradientFrom} 100%\n );\n opacity: 0;\n transition: opacity 0.6s ease;\n z-index: 0;\n }\n \n /* 确保内容在渐变层上方 */\n & > * {\n position: relative;\n z-index: 1;\n }\n\n /* Hover 状态 - 显示反向渐变层 */\n &:hover:not(:disabled):not([data-loading='true'])::before {\n opacity: 1;\n }\n \n &:hover:not(:disabled):not([data-loading='true']) {\n box-shadow: ${hoverShadow};\n }\n\n /* Active/Pressed 状态(点击态) */\n &:active:not(:disabled):not([data-loading='true']),\n &[data-pressed='true']:not(:disabled):not([data-loading='true']) {\n box-shadow: none;\n transform: translateY(1px);\n }\n `\n }\n \n // 常规变体样式\n // 获取指定状态值(带默认回退)\n const getStateValue = (obj: PartialStateToken, state: ButtonState) => obj[state] ?? obj.default\n\n // 获取边框颜色\n const getBorderColor = (state: ButtonState) => {\n return getStateValue(variantToken.border as PartialStateToken, state)\n }\n\n // 获取背景颜色\n const getBackground = (state: ButtonState) => {\n return getStateValue(variantToken.background as PartialStateToken, state)\n }\n\n // 阴影(某些变体无阴影)\n const defaultShadow = hasShadow ? (variantToken as WithOptionalShadow).shadow.default : 'none'\n const hoverShadow = hasShadow ? ((variantToken as WithOptionalShadow).shadow.hover ?? 'none') : 'none'\n\n return css`\n background: ${variantToken.background.default};\n color: ${variantToken.text.default};\n border-color: ${variantToken.border.default};\n box-shadow: ${defaultShadow};\n\n /* Hover 状态 */\n &:hover:not(:disabled):not([data-loading='true']) {\n background: ${getBackground('hover')};\n border-color: ${getBorderColor('hover')};\n box-shadow: ${hoverShadow};\n }\n\n /* Active/Pressed 状态(点击态) */\n &:active:not(:disabled):not([data-loading='true']),\n &[data-pressed='true']:not(:disabled):not([data-loading='true']) {\n background: ${getBackground('active')};\n border-color: ${getBorderColor('active')};\n box-shadow: none;\n transform: translateY(1px);\n }\n `\n}\n\n/**\n * 获取按钮尺寸样式\n * 使用 Tier 3 组件层尺寸 Token\n */\nconst getSizeStyles = (size: ButtonSize, theme: AppTheme) => {\n const sizeToken = theme.components.button.size[size]\n\n return css`\n height: ${sizeToken.height};\n font-size: ${sizeToken.fontSize};\n padding-inline: ${sizeToken.paddingInline};\n\n /* 图标尺寸 */\n svg {\n width: ${sizeToken.iconSize};\n height: ${sizeToken.iconSize};\n }\n `\n}\n\n// ============================================================================\n// 样式组件\n// ============================================================================\n\n/**\n * Button 根元素\n * \n * 特性:\n * - 基于三层 Token 设计\n * - 完整的交互状态(hover, active, focus, disabled)\n * - 支持加载状态\n * - 支持全宽模式\n */\nexport const ButtonRoot = styled.button<{\n variant: ButtonVariant\n size: ButtonSize\n fullWidth: boolean\n isPressed: boolean\n isDisabled: boolean\n isLoading: boolean\n}>`\n /* 基础样式 - 使用 Tier 3 组件层 Token */\n position: relative;\n display: inline-flex;\n align-items: center;\n justify-content: center;\n box-sizing: border-box;\n \n /* 字体样式 */\n font-family: ${({ theme }) => theme?.global?.typography?.fontFamily || '-apple-system, BlinkMacSystemFont, \"Segoe UI\", Roboto, sans-serif'};\n font-weight: ${({ theme }) => theme?.components?.button?.fontWeight || 500};\n line-height: 1;\n white-space: nowrap;\n \n /* 边框样式 */\n border-width: 1px;\n border-style: solid;\n border-radius: ${({ theme }) => theme?.components?.button?.borderRadius || '6px'};\n \n /* 交互样式 */\n cursor: pointer;\n user-select: none;\n outline: none;\n \n /* 过渡动画 */\n transition: \n background ${({ theme }) => theme?.components?.button?.transition || '0.2s ease'},\n border-color ${({ theme }) => theme?.components?.button?.transition || '0.2s ease'},\n box-shadow ${({ theme }) => theme?.components?.button?.transition || '0.2s ease'},\n transform ${({ theme }) => theme?.components?.button?.transition || '0.2s ease'};\n\n /* 变体样式 */\n ${({ variant, theme }) => getVariantStyles(variant, theme)}\n\n /* 尺寸样式 */\n ${({ size, theme }) => getSizeStyles(size, theme)}\n\n /* 全宽模式 */\n ${({ fullWidth }) =>\n fullWidth &&\n css`\n width: 100%;\n `}\n\n /* Focus 可见状态 - 键盘导航时显示 */\n &:focus-visible {\n outline: 2px solid ${({ theme }) => theme?.components?.button?.primary?.background?.default || '#1677ff'};\n outline-offset: 2px;\n }\n\n /* 禁用状态 */\n &:disabled {\n cursor: not-allowed;\n opacity: ${({ theme }) => theme?.components?.button?.disabled?.opacity || 0.5};\n background: ${({ theme }) => theme?.components?.button?.disabled?.background?.default || '#f5f5f5'};\n color: ${({ theme }) => theme?.components?.button?.disabled?.text?.default || 'rgba(0, 0, 0, 0.25)'};\n border-color: transparent;\n box-shadow: none;\n }\n\n /* 加载状态 - 阻止交互 */\n &[data-loading='true'] {\n pointer-events: none;\n }\n\n /* 加载状态 - 使用伪元素实现 cursor: wait */\n &[data-loading='true']::after {\n content: '';\n position: absolute;\n inset: 0;\n cursor: wait;\n pointer-events: auto; /* 伪元素接收鼠标事件以显示 cursor */\n z-index: 10; /* 确保在所有内容之上 */\n }\n\n /* 添加旋转动画的关键帧 */\n @keyframes spin {\n to {\n transform: rotate(360deg);\n }\n }\n`\n\n/**\n * 按钮内容容器\n * \n * 用于布局图标和文本\n */\nexport const ButtonContent = styled.span`\n display: inline-flex;\n align-items: center;\n justify-content: center;\n gap: ${({ theme }) => theme?.components?.button?.gap || '8px'};\n position: relative;\n`\n\n/**\n * 图标包装器\n * \n * 特性:\n * - 在加载状态下淡出\n * - 保持布局稳定\n */\nexport const IconWrapper = styled.span<{\n isLoading: boolean\n}>`\n display: inline-flex;\n align-items: center;\n justify-content: center;\n flex-shrink: 0;\n \n transition: opacity ${({ theme }) => theme?.components?.button?.transition || '0.2s ease'};\n \n ${({ isLoading }) =>\n isLoading &&\n css`\n opacity: 0;\n pointer-events: none;\n `}\n`\n\n/**\n * 按钮文本标签\n * \n * 特性:\n * - 在加载状态下淡出\n * - 保持文本居中\n */\nexport const Label = styled.span<{\n isLoading: boolean\n}>`\n display: inline-flex;\n align-items: center;\n justify-content: center;\n \n transition: opacity ${({ theme }) => theme?.components?.button?.transition || '0.2s ease'};\n \n ${({ isLoading }) =>\n isLoading &&\n css`\n opacity: 0.4;\n `}\n`\n","/**\n * Button 按钮组件\n * \n * 基于 react-aria 实现无障碍访问的按钮组件\n * 完全符合 Figma 设计稿规范\n * \n * @example\n * ```tsx\n * <Button variant=\"primary\" size=\"md\">\n * 按钮文字\n * </Button>\n * ```\n */\n\nimport { forwardRef, useRef } from 'react'\nimport type { ReactNode } from 'react'\nimport { useButton } from 'react-aria'\nimport type { AriaButtonProps } from 'react-aria'\nimport { mergeProps } from '@react-aria/utils'\nimport {\n ButtonRoot,\n ButtonContent,\n IconWrapper,\n Label,\n buttonVariants,\n buttonSizes,\n type ButtonVariant,\n type ButtonSize,\n} from './Button.style'\n\n// 导出常量供外部使用\nexport const VARIANTS = buttonVariants\nexport const SIZES = buttonSizes\n\nexport type ButtonProps = Omit<AriaButtonProps, 'elementType'> & {\n /** 按钮类型:主按钮、次按钮、文本按钮、危险按钮 */\n variant?: ButtonVariant\n /** 按钮尺寸:小号(24px)、标准(32px)、大号(40px) */\n size?: ButtonSize\n /** 前置图标 */\n icon?: ReactNode\n /** 加载状态 */\n loading?: boolean\n /** 全宽按钮 */\n fullWidth?: boolean\n /** 自定义类名 */\n className?: string\n /** 子元素 */\n children?: ReactNode\n}\n\n/**\n * Button 按钮组件\n * \n * 基于 Figma 设计规范实现的按钮组件,支持多种变体和尺寸\n * 使用 react-aria 保证无障碍访问性\n */\nexport const Button = forwardRef<HTMLButtonElement, ButtonProps>(\n (\n {\n variant = 'primary',\n size = 'md',\n icon,\n loading = false,\n fullWidth = false,\n isDisabled,\n className,\n children,\n ...ariaProps\n },\n forwardedRef,\n ) => {\n const innerRef = useRef<HTMLButtonElement>(null)\n const ref = forwardedRef || innerRef\n\n // 按钮禁用状态:明确禁用或加载中\n const disabled = isDisabled || loading\n\n // 使用 react-aria 的 useButton hook\n const { buttonProps, isPressed } = useButton(\n {\n ...ariaProps,\n isDisabled: disabled,\n elementType: 'button',\n },\n innerRef,\n )\n\n return (\n <ButtonRoot\n {...mergeProps(buttonProps, {\n ref,\n className,\n })}\n variant={variant}\n size={size}\n fullWidth={fullWidth}\n isPressed={isPressed}\n isDisabled={disabled}\n isLoading={loading}\n data-variant={variant}\n data-size={size}\n data-loading={loading ? 'true' : undefined}\n data-pressed={isPressed ? 'true' : undefined}\n >\n <ButtonContent>\n {/* 前置图标 */}\n {icon && (\n <IconWrapper isLoading={loading} aria-hidden=\"true\">\n {icon}\n </IconWrapper>\n )}\n\n {/* 按钮文本 */}\n <Label isLoading={loading}>{children}</Label>\n\n {/* 加载状态指示器 */}\n {loading && (\n <IconWrapper isLoading={false} aria-label=\"加载中\" role=\"status\">\n <svg\n width=\"16\"\n height=\"16\"\n viewBox=\"0 0 16 16\"\n fill=\"none\"\n xmlns=\"http://www.w3.org/2000/svg\"\n style={{\n animation: 'spin 0.8s linear infinite',\n }}\n >\n <circle\n cx=\"8\"\n cy=\"8\"\n r=\"6\"\n stroke=\"currentColor\"\n strokeWidth=\"2\"\n strokeLinecap=\"round\"\n strokeDasharray=\"30 10\"\n />\n </svg>\n </IconWrapper>\n )}\n </ButtonContent>\n </ButtonRoot>\n )\n },\n)\n\nButton.displayName = 'Button'\n","/**\n * IconButton 图标按钮样式\n *\n * 依赖三层 Token 体系,并对尺寸/变体进行语义化封装\n */\n\nimport styled from '@emotion/styled'\nimport { css } from '@emotion/react'\nimport type { AppTheme } from '@kingsoft-ai/theme'\n\nexport const iconButtonAppearances = ['solid', 'outline', 'ghost'] as const\nexport const iconButtonTones = ['primary', 'neutral', 'danger'] as const\nexport const iconButtonSizes = ['sm', 'md', 'lg'] as const\n\nexport type IconButtonAppearance = (typeof iconButtonAppearances)[number]\nexport type IconButtonTone = (typeof iconButtonTones)[number]\nexport type IconButtonSize = (typeof iconButtonSizes)[number]\n\ntype InteractionState = 'default' | 'hover' | 'active'\n\nconst getVariantStyles = (appearance: IconButtonAppearance, tone: IconButtonTone, theme: AppTheme) => {\n const tokens = theme.components.iconButton.appearance[appearance][tone]\n\n const resolve = (state: InteractionState) => ({\n background: tokens.background[state],\n border: tokens.border[state] ?? tokens.border.hover ?? tokens.border.default,\n icon: tokens.icon[state] ?? tokens.icon.hover ?? tokens.icon.default,\n })\n\n const defaultState = resolve('default')\n const hoverState = resolve('hover')\n const activeState = resolve('active')\n\n const defaultShadow = tokens.shadow?.default ?? 'none'\n const hoverShadow = tokens.shadow?.hover ?? defaultShadow\n\n return css`\n background: ${defaultState.background};\n border-color: ${defaultState.border};\n color: ${defaultState.icon};\n box-shadow: ${defaultShadow};\n\n &:hover:not(:disabled):not([data-loading='true']) {\n background: ${hoverState.background};\n border-color: ${hoverState.border};\n color: ${hoverState.icon};\n box-shadow: ${hoverShadow};\n }\n\n &:active:not(:disabled):not([data-loading='true']),\n &[data-pressed='true']:not(:disabled):not([data-loading='true']) {\n background: ${activeState.background};\n border-color: ${activeState.border};\n color: ${activeState.icon};\n box-shadow: none;\n transform: translateY(1px);\n }\n `\n}\n\nconst getSizeStyles = (size: IconButtonSize, theme: AppTheme) => {\n const sizeToken = theme.components.iconButton.size[size]\n\n return css`\n --icon-button-icon-size: ${sizeToken.iconSize};\n width: ${sizeToken.edge};\n height: ${sizeToken.edge};\n min-width: ${sizeToken.edge};\n min-height: ${sizeToken.edge};\n\n svg {\n width: var(--icon-button-icon-size);\n height: var(--icon-button-icon-size);\n }\n `\n}\n\nexport const IconButtonRoot = styled.button<{\n appearance: IconButtonAppearance\n tone: IconButtonTone\n size: IconButtonSize\n isPressed: boolean\n isDisabled: boolean\n isLoading: boolean\n}>`\n position: relative;\n display: inline-flex;\n align-items: center;\n justify-content: center;\n box-sizing: border-box;\n border-width: 1px;\n border-style: solid;\n border-radius: ${({ theme }) => theme.components.iconButton.borderRadius};\n padding: 0;\n cursor: pointer;\n user-select: none;\n line-height: 1;\n background: transparent;\n\n transition:\n background ${({ theme }) => theme.components.iconButton.transition},\n border-color ${({ theme }) => theme.components.iconButton.transition},\n color ${({ theme }) => theme.components.iconButton.transition},\n box-shadow ${({ theme }) => theme.components.iconButton.transition},\n transform ${({ theme }) => theme.components.iconButton.transition};\n\n ${({ appearance, tone, theme }) => getVariantStyles(appearance, tone, theme)}\n ${({ size, theme }) => getSizeStyles(size, theme)}\n\n &:focus-visible {\n outline: ${({ theme }) => theme.components.iconButton.focusRing.width} solid\n ${({ theme }) => theme.components.iconButton.focusRing.color};\n outline-offset: ${({ theme }) => theme.components.iconButton.focusRing.offset};\n }\n\n &:disabled {\n cursor: not-allowed;\n background: ${({ theme }) => theme.components.iconButton.disabled.background};\n border-color: ${({ theme }) => theme.components.iconButton.disabled.border};\n color: ${({ theme }) => theme.components.iconButton.disabled.icon};\n opacity: ${({ theme }) => theme.components.iconButton.disabled.opacity};\n }\n\n &[data-loading='true'] {\n pointer-events: none;\n }\n\n @keyframes icon-button-spin {\n to {\n transform: rotate(360deg);\n }\n }\n`\n\nexport const IconSlot = styled.span<{\n isHidden: boolean\n}>`\n display: inline-flex;\n align-items: center;\n justify-content: center;\n color: inherit;\n transition: opacity ${({ theme }) => theme.components.iconButton.transition};\n pointer-events: none;\n\n ${({ isHidden }) =>\n isHidden &&\n css`\n opacity: 0;\n `}\n`\n\nexport const LoadingSpinner = styled.span`\n position: absolute;\n inset: 0;\n display: inline-flex;\n align-items: center;\n justify-content: center;\n color: inherit;\n pointer-events: none;\n\n svg {\n width: var(--icon-button-icon-size);\n height: var(--icon-button-icon-size);\n animation: icon-button-spin 0.8s linear infinite;\n }\n`\n\n","/**\n * IconButton 图标按钮组件\n *\n * 适用于仅展示图标的高频交互,支持多种外观与语义色彩\n */\n\nimport { forwardRef, useMemo, useRef } from 'react'\nimport type { ReactNode } from 'react'\nimport { useButton, VisuallyHidden } from 'react-aria'\nimport type { AriaButtonProps } from 'react-aria'\nimport { mergeProps } from '@react-aria/utils'\nimport {\n IconButtonRoot,\n IconSlot,\n LoadingSpinner,\n iconButtonAppearances,\n iconButtonTones,\n iconButtonSizes,\n type IconButtonAppearance,\n type IconButtonTone,\n type IconButtonSize,\n} from './IconButton.style'\n\nexport const ICON_BUTTON_APPEARANCES = iconButtonAppearances\nexport const ICON_BUTTON_TONES = iconButtonTones\nexport const ICON_BUTTON_SIZES = iconButtonSizes\n\nexport type IconButtonProps = Omit<AriaButtonProps, 'elementType' | 'children'> & {\n /** 图标按钮的视觉外观:实心、描边、幽灵 */\n appearance?: IconButtonAppearance\n /** 语义色彩:主题、自然、危险 */\n tone?: IconButtonTone\n /** 尺寸:24px / 32px / 40px */\n size?: IconButtonSize\n /** 需要展示的图标 */\n icon: ReactNode\n /** 提供屏幕阅读器可见文本(会以 VisuallyHidden 的形式注入) */\n label?: ReactNode\n /** 加载状态 */\n loading?: boolean\n /** 自定义加载状态的无障碍文本 */\n loadingLabel?: string\n /** 自定义类名 */\n className?: string\n}\n\nexport const IconButton = forwardRef<HTMLButtonElement, IconButtonProps>(\n (\n {\n appearance = 'solid',\n tone = 'primary',\n size = 'md',\n icon,\n label,\n loading = false,\n loadingLabel = '加载中',\n isDisabled,\n className,\n ...ariaProps\n },\n forwardedRef,\n ) => {\n const isDevEnvironment = useMemo(() => {\n if (typeof globalThis === 'undefined') {\n return true\n }\n const nodeEnv =\n (globalThis as { process?: { env?: { NODE_ENV?: string } } }).process?.env?.NODE_ENV\n return nodeEnv !== 'production'\n }, [])\n\n const innerRef = useRef<HTMLButtonElement>(null)\n const ref = forwardedRef || innerRef\n const disabled = isDisabled || loading\n\n if (isDevEnvironment) {\n const ariaLabel = (ariaProps as Record<string, unknown>)['aria-label']\n const ariaLabelledby = (ariaProps as Record<string, unknown>)['aria-labelledby']\n if (!label && !ariaLabel && !ariaLabelledby) {\n console.warn(\n 'IconButton 需要可感知的文本。请传入 label、aria-label 或 aria-labelledby。',\n )\n }\n }\n\n const { buttonProps, isPressed } = useButton(\n {\n ...ariaProps,\n isDisabled: disabled,\n elementType: 'button',\n },\n innerRef,\n )\n\n return (\n <IconButtonRoot\n {...mergeProps(buttonProps, {\n ref,\n className,\n })}\n appearance={appearance}\n tone={tone}\n size={size}\n isPressed={isPressed}\n isDisabled={Boolean(disabled)}\n isLoading={loading}\n data-appearance={appearance}\n data-tone={tone}\n data-size={size}\n data-loading={loading ? 'true' : undefined}\n data-pressed={isPressed ? 'true' : undefined}\n >\n <IconSlot isHidden={loading} aria-hidden=\"true\">\n {icon}\n </IconSlot>\n {loading && (\n <LoadingSpinner role=\"status\" aria-live=\"polite\" aria-label={loadingLabel}>\n <svg\n viewBox=\"0 0 16 16\"\n fill=\"none\"\n xmlns=\"http://www.w3.org/2000/svg\"\n >\n <circle\n cx=\"8\"\n cy=\"8\"\n r=\"6\"\n stroke=\"currentColor\"\n strokeWidth=\"2\"\n strokeLinecap=\"round\"\n strokeDasharray=\"30 10\"\n />\n </svg>\n </LoadingSpinner>\n )}\n {label ? <VisuallyHidden>{label}</VisuallyHidden> : null}\n </IconButtonRoot>\n )\n },\n)\n\nIconButton.displayName = 'IconButton'\n\n","var isDevelopment = false;\n\n/*\n\nBased off glamor's StyleSheet, thanks Sunil ❤️\n\nhigh performance StyleSheet for css-in-js systems\n\n- uses multiple style tags behind the scenes for millions of rules\n- uses `insertRule` for appending in production for *much* faster performance\n\n// usage\n\nimport { StyleSheet } from '@emotion/sheet'\n\nlet styleSheet = new StyleSheet({ key: '', container: document.head })\n\nstyleSheet.insert('#box { border: 1px solid red; }')\n- appends a css rule into the stylesheet\n\nstyleSheet.flush()\n- empties the stylesheet of all its contents\n\n*/\n\nfunction sheetForTag(tag) {\n if (tag.sheet) {\n return tag.sheet;\n } // this weirdness brought to you by firefox\n\n /* istanbul ignore next */\n\n\n for (var i = 0; i < document.styleSheets.length; i++) {\n if (document.styleSheets[i].ownerNode === tag) {\n return document.styleSheets[i];\n }\n } // this function should always return with a value\n // TS can't understand it though so we make it stop complaining here\n\n\n return undefined;\n}\n\nfunction createStyleElement(options) {\n var tag = document.createElement('style');\n tag.setAttribute('data-emotion', options.key);\n\n if (options.nonce !== undefined) {\n tag.setAttribute('nonce', options.nonce);\n }\n\n tag.appendChild(document.createTextNode(''));\n tag.setAttribute('data-s', '');\n return tag;\n}\n\nvar StyleSheet = /*#__PURE__*/function () {\n // Using Node instead of HTMLElement since container may be a ShadowRoot\n function StyleSheet(options) {\n var _this = this;\n\n this._insertTag = function (tag) {\n var before;\n\n if (_this.tags.length === 0) {\n if (_this.insertionPoint) {\n before = _this.insertionPoint.nextSibling;\n } else if (_this.prepend) {\n before = _this.container.firstChild;\n } else {\n before = _this.before;\n }\n } else {\n before = _this.tags[_this.tags.length - 1].nextSibling;\n }\n\n _this.container.insertBefore(tag, before);\n\n _this.tags.push(tag);\n };\n\n this.isSpeedy = options.speedy === undefined ? !isDevelopment : options.speedy;\n this.tags = [];\n this.ctr = 0;\n this.nonce = options.nonce; // key is the value of the data-emotion attribute, it's used to identify different sheets\n\n this.key = options.key;\n this.container = options.container;\n this.prepend = options.prepend;\n this.insertionPoint = options.insertionPoint;\n this.before = null;\n }\n\n var _proto = StyleSheet.prototype;\n\n _proto.hydrate = function hydrate(nodes) {\n nodes.forEach(this._insertTag);\n };\n\n _proto.insert = function insert(rule) {\n // the max length is how many rules we have per style tag, it's 65000 in speedy mode\n // it's 1 in dev because we insert source maps that map a single rule to a location\n // and you can only have one source map per style tag\n if (this.ctr % (this.isSpeedy ? 65000 : 1) === 0) {\n this._insertTag(createStyleElement(this));\n }\n\n var tag = this.tags[this.tags.length - 1];\n\n if (this.isSpeedy) {\n var sheet = sheetForTag(tag);\n\n try {\n // this is the ultrafast version, works across browsers\n // the big drawback is that the css won't be editable in devtools\n sheet.insertRule(rule, sheet.cssRules.length);\n } catch (e) {\n }\n } else {\n tag.appendChild(document.createTextNode(rule));\n }\n\n this.ctr++;\n };\n\n _proto.flush = function flush() {\n this.tags.forEach(function (tag) {\n var _tag$parentNode;\n\n return (_tag$parentNode = tag.parentNode) == null ? void 0 : _tag$parentNode.removeChild(tag);\n });\n this.tags = [];\n this.ctr = 0;\n };\n\n return StyleSheet;\n}();\n\nexport { StyleSheet };\n","export var MS = '-ms-'\nexport var MOZ = '-moz-'\nexport var WEBKIT = '-webkit-'\n\nexport var COMMENT = 'comm'\nexport var RULESET = 'rule'\nexport var DECLARATION = 'decl'\n\nexport var PAGE = '@page'\nexport var MEDIA = '@media'\nexport var IMPORT = '@import'\nexport var CHARSET = '@charset'\nexport var VIEWPORT = '@viewport'\nexport var SUPPORTS = '@supports'\nexport var DOCUMENT = '@document'\nexport var NAMESPACE = '@namespace'\nexport var KEYFRAMES = '@keyframes'\nexport var FONT_FACE = '@font-face'\nexport var COUNTER_STYLE = '@counter-style'\nexport var FONT_FEATURE_VALUES = '@font-feature-values'\nexport var LAYER = '@layer'\n","/**\n * @param {number}\n * @return {number}\n */\nexport var abs = Math.abs\n\n/**\n * @param {number}\n * @return {string}\n */\nexport var from = String.fromCharCode\n\n/**\n * @param {object}\n * @return {object}\n */\nexport var assign = Object.assign\n\n/**\n * @param {string} value\n * @param {number} length\n * @return {number}\n */\nexport function hash (value, length) {\n\treturn charat(value, 0) ^ 45 ? (((((((length << 2) ^ charat(value, 0)) << 2) ^ charat(value, 1)) << 2) ^ charat(value, 2)) << 2) ^ charat(value, 3) : 0\n}\n\n/**\n * @param {string} value\n * @return {string}\n */\nexport function trim (value) {\n\treturn value.trim()\n}\n\n/**\n * @param {string} value\n * @param {RegExp} pattern\n * @return {string?}\n */\nexport function match (value, pattern) {\n\treturn (value = pattern.exec(value)) ? value[0] : value\n}\n\n/**\n * @param {string} value\n * @param {(string|RegExp)} pattern\n * @param {string} replacement\n * @return {string}\n */\nexport function replace (value, pattern, replacement) {\n\treturn value.replace(pattern, replacement)\n}\n\n/**\n * @param {string} value\n * @param {string} search\n * @return {number}\n */\nexport function indexof (value, search) {\n\treturn value.indexOf(search)\n}\n\n/**\n * @param {string} value\n * @param {number} index\n * @return {number}\n */\nexport function charat (value, index) {\n\treturn value.charCodeAt(index) | 0\n}\n\n/**\n * @param {string} value\n * @param {number} begin\n * @param {number} end\n * @return {string}\n */\nexport function substr (value, begin, end) {\n\treturn value.slice(begin, end)\n}\n\n/**\n * @param {string} value\n * @return {number}\n */\nexport function strlen (value) {\n\treturn value.length\n}\n\n/**\n * @param {any[]} value\n * @return {number}\n */\nexport function sizeof (value) {\n\treturn value.length\n}\n\n/**\n * @param {any} value\n * @param {any[]} array\n * @return {any}\n */\nexport function append (value, array) {\n\treturn array.push(value), value\n}\n\n/**\n * @param {string[]} array\n * @param {function} callback\n * @return {string}\n */\nexport function combine (array, callback) {\n\treturn array.map(callback).join('')\n}\n","import {from, trim, charat, strlen, substr, append, assign} from './Utility.js'\n\nexport var line = 1\nexport var column = 1\nexport var length = 0\nexport var position = 0\nexport var character = 0\nexport var characters = ''\n\n/**\n * @param {string} value\n * @param {object | null} root\n * @param {object | null} parent\n * @param {string} type\n * @param {string[] | string} props\n * @param {object[] | string} children\n * @param {number} length\n */\nexport function node (value, root, parent, type, props, children, length) {\n\treturn {value: value, root: root, parent: parent, type: type, props: props, children: children, line: line, column: column, length: length, return: ''}\n}\n\n/**\n * @param {object} root\n * @param {object} props\n * @return {object}\n */\nexport function copy (root, props) {\n\treturn assign(node('', null, null, '', null, null, 0), root, {length: -root.length}, props)\n}\n\n/**\n * @return {number}\n */\nexport function char () {\n\treturn character\n}\n\n/**\n * @return {number}\n */\nexport function prev () {\n\tcharacter = position > 0 ? charat(characters, --position) : 0\n\n\tif (column--, character === 10)\n\t\tcolumn = 1, line--\n\n\treturn character\n}\n\n/**\n * @return {number}\n */\nexport function next () {\n\tcharacter = position < length ? charat(characters, position++) : 0\n\n\tif (column++, character === 10)\n\t\tcolumn = 1, line++\n\n\treturn character\n}\n\n/**\n * @return {number}\n */\nexport function peek () {\n\treturn charat(characters, position)\n}\n\n/**\n * @return {number}\n */\nexport function caret () {\n\treturn position\n}\n\n/**\n * @param {number} begin\n * @param {number} end\n * @return {string}\n */\nexport function slice (begin, end) {\n\treturn substr(characters, begin, end)\n}\n\n/**\n * @param {number} type\n * @return {number}\n */\nexport function token (type) {\n\tswitch (type) {\n\t\t// \\0 \\t \\n \\r \\s whitespace token\n\t\tcase 0: case 9: case 10: case 13: case 32:\n\t\t\treturn 5\n\t\t// ! + , / > @ ~ isolate token\n\t\tcase 33: case 43: case 44: case 47: case 62: case 64: case 126:\n\t\t// ; { } breakpoint token\n\t\tcase 59: case 123: case 125:\n\t\t\treturn 4\n\t\t// : accompanied token\n\t\tcase 58:\n\t\t\treturn 3\n\t\t// \" ' ( [ opening delimit token\n\t\tcase 34: case 39: case 40: case 91:\n\t\t\treturn 2\n\t\t// ) ] closing delimit token\n\t\tcase 41: case 93:\n\t\t\treturn 1\n\t}\n\n\treturn 0\n}\n\n/**\n * @param {string} value\n * @return {any[]}\n */\nexport function alloc (value) {\n\treturn line = column = 1, length = strlen(characters = value), position = 0, []\n}\n\n/**\n * @param {any} value\n * @return {any}\n */\nexport function dealloc (value) {\n\treturn characters = '', value\n}\n\n/**\n * @param {number} type\n * @return {string}\n */\nexport function delimit (type) {\n\treturn trim(slice(position - 1, delimiter(type === 91 ? type + 2 : type === 40 ? type + 1 : type)))\n}\n\n/**\n * @param {string} value\n * @return {string[]}\n */\nexport function tokenize (value) {\n\treturn dealloc(tokenizer(alloc(value)))\n}\n\n/**\n * @param {number} type\n * @return {string}\n */\nexport function whitespace (type) {\n\twhile (character = peek())\n\t\tif (character < 33)\n\t\t\tnext()\n\t\telse\n\t\t\tbreak\n\n\treturn token(type) > 2 || token(character) > 3 ? '' : ' '\n}\n\n/**\n * @param {string[]} children\n * @return {string[]}\n */\nexport function tokenizer (children) {\n\twhile (next())\n\t\tswitch (token(character)) {\n\t\t\tcase 0: append(identifier(position - 1), children)\n\t\t\t\tbreak\n\t\t\tcase 2: append(delimit(character), children)\n\t\t\t\tbreak\n\t\t\tdefault: append(from(character), children)\n\t\t}\n\n\treturn children\n}\n\n/**\n * @param {number} index\n * @param {number} count\n * @return {string}\n */\nexport function escaping (index, count) {\n\twhile (--count && next())\n\t\t// not 0-9 A-F a-f\n\t\tif (character < 48 || character > 102 || (character > 57 && character < 65) || (character > 70 && character < 97))\n\t\t\tbreak\n\n\treturn slice(index, caret() + (count < 6 && peek() == 32 && next() == 32))\n}\n\n/**\n * @param {number} type\n * @return {number}\n */\nexport function delimiter (type) {\n\twhile (next())\n\t\tswitch (character) {\n\t\t\t// ] ) \" '\n\t\t\tcase type:\n\t\t\t\treturn position\n\t\t\t// \" '\n\t\t\tcase 34: case 39:\n\t\t\t\tif (type !== 34 && type !== 39)\n\t\t\t\t\tdelimiter(character)\n\t\t\t\tbreak\n\t\t\t// (\n\t\t\tcase 40:\n\t\t\t\tif (type === 41)\n\t\t\t\t\tdelimiter(type)\n\t\t\t\tbreak\n\t\t\t// \\\n\t\t\tcase 92:\n\t\t\t\tnext()\n\t\t\t\tbreak\n\t\t}\n\n\treturn position\n}\n\n/**\n * @param {number} type\n * @param {number} index\n * @return {number}\n */\nexport function commenter (type, index) {\n\twhile (next())\n\t\t// //\n\t\tif (type + character === 47 + 10)\n\t\t\tbreak\n\t\t// /*\n\t\telse if (type + character === 42 + 42 && peek() === 47)\n\t\t\tbreak\n\n\treturn '/*' + slice(index, position - 1) + '*' + from(type === 47 ? type : next())\n}\n\n/**\n * @param {number} index\n * @return {string}\n */\nexport function identifier (index) {\n\twhile (!token(peek()))\n\t\tnext()\n\n\treturn slice(index, position)\n}\n","import {COMMENT, RULESET, DECLARATION} from './Enum.js'\nimport {abs, charat, trim, from, sizeof, strlen, substr, append, replace, indexof} from './Utility.js'\nimport {node, char, prev, next, peek, caret, alloc, dealloc, delimit, whitespace, escaping, identifier, commenter} from './Tokenizer.js'\n\n/**\n * @param {string} value\n * @return {object[]}\n */\nexport function compile (value) {\n\treturn dealloc(parse('', null, null, null, [''], value = alloc(value), 0, [0], value))\n}\n\n/**\n * @param {string} value\n * @param {object} root\n * @param {object?} parent\n * @param {string[]} rule\n * @param {string[]} rules\n * @param {string[]} rulesets\n * @param {number[]} pseudo\n * @param {number[]} points\n * @param {string[]} declarations\n * @return {object}\n */\nexport function parse (value, root, parent, rule, rules, rulesets, pseudo, points, declarations) {\n\tvar index = 0\n\tvar offset = 0\n\tvar length = pseudo\n\tvar atrule = 0\n\tvar property = 0\n\tvar previous = 0\n\tvar variable = 1\n\tvar scanning = 1\n\tvar ampersand = 1\n\tvar character = 0\n\tvar type = ''\n\tvar props = rules\n\tvar children = rulesets\n\tvar reference = rule\n\tvar characters = type\n\n\twhile (scanning)\n\t\tswitch (previous = character, character = next()) {\n\t\t\t// (\n\t\t\tcase 40:\n\t\t\t\tif (previous != 108 && charat(characters, length - 1) == 58) {\n\t\t\t\t\tif (indexof(characters += replace(delimit(character), '&', '&\\f'), '&\\f') != -1)\n\t\t\t\t\t\tampersand = -1\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t// \" ' [\n\t\t\tcase 34: case 39: case 91:\n\t\t\t\tcharacters += delimit(character)\n\t\t\t\tbreak\n\t\t\t// \\t \\n \\r \\s\n\t\t\tcase 9: case 10: case 13: case 32:\n\t\t\t\tcharacters += whitespace(previous)\n\t\t\t\tbreak\n\t\t\t// \\\n\t\t\tcase 92:\n\t\t\t\tcharacters += escaping(caret() - 1, 7)\n\t\t\t\tcontinue\n\t\t\t// /\n\t\t\tcase 47:\n\t\t\t\tswitch (peek()) {\n\t\t\t\t\tcase 42: case 47:\n\t\t\t\t\t\tappend(comment(commenter(next(), caret()), root, parent), declarations)\n\t\t\t\t\t\tbreak\n\t\t\t\t\tdefault:\n\t\t\t\t\t\tcharacters += '/'\n\t\t\t\t}\n\t\t\t\tbreak\n\t\t\t// {\n\t\t\tcase 123 * variable:\n\t\t\t\tpoints[index++] = strlen(characters) * ampersand\n\t\t\t// } ; \\0\n\t\t\tcase 125 * variable: case 59: case 0:\n\t\t\t\tswitch (character) {\n\t\t\t\t\t// \\0 }\n\t\t\t\t\tcase 0: case 125: scanning = 0\n\t\t\t\t\t// ;\n\t\t\t\t\tcase 59 + offset: if (ampersand == -1) characters = replace(characters, /\\f/g, '')\n\t\t\t\t\t\tif (property > 0 && (strlen(characters) - length))\n\t\t\t\t\t\t\tappend(property > 32 ? declaration(characters + ';', rule, parent, length - 1) : declaration(replace(characters, ' ', '') + ';', rule, parent, length - 2), declarations)\n\t\t\t\t\t\tbreak\n\t\t\t\t\t// @ ;\n\t\t\t\t\tcase 59: characters += ';'\n\t\t\t\t\t// { rule/at-rule\n\t\t\t\t\tdefault:\n\t\t\t\t\t\tappend(reference = ruleset(characters, root, parent, index, offset, rules, points, type, props = [], children = [], length), rulesets)\n\n\t\t\t\t\t\tif (character === 123)\n\t\t\t\t\t\t\tif (offset === 0)\n\t\t\t\t\t\t\t\tparse(characters, root, reference, reference, props, rulesets, length, points, children)\n\t\t\t\t\t\t\telse\n\t\t\t\t\t\t\t\tswitch (atrule === 99 && charat(characters, 3) === 110 ? 100 : atrule) {\n\t\t\t\t\t\t\t\t\t// d l m s\n\t\t\t\t\t\t\t\t\tcase 100: case 108: case 109: case 115:\n\t\t\t\t\t\t\t\t\t\tparse(value, reference, reference, rule && append(ruleset(value, reference, reference, 0, 0, rules, points, type, rules, props = [], length), children), rules, children, length, points, rule ? props : children)\n\t\t\t\t\t\t\t\t\t\tbreak\n\t\t\t\t\t\t\t\t\tdefault:\n\t\t\t\t\t\t\t\t\t\tparse(characters, reference, reference, reference, [''], children, 0, points, children)\n\t\t\t\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t\tindex = offset = property = 0, variable = ampersand = 1, type = characters = '', length = pseudo\n\t\t\t\tbreak\n\t\t\t// :\n\t\t\tcase 58:\n\t\t\t\tlength = 1 + strlen(characters), property = previous\n\t\t\tdefault:\n\t\t\t\tif (variable < 1)\n\t\t\t\t\tif (character == 123)\n\t\t\t\t\t\t--variable\n\t\t\t\t\telse if (character == 125 && variable++ == 0 && prev() == 125)\n\t\t\t\t\t\tcontinue\n\n\t\t\t\tswitch (characters += from(character), character * variable) {\n\t\t\t\t\t// &\n\t\t\t\t\tcase 38:\n\t\t\t\t\t\tampersand = offset > 0 ? 1 : (characters += '\\f', -1)\n\t\t\t\t\t\tbreak\n\t\t\t\t\t// ,\n\t\t\t\t\tcase 44:\n\t\t\t\t\t\tpoints[index++] = (strlen(characters) - 1) * ampersand, ampersand = 1\n\t\t\t\t\t\tbreak\n\t\t\t\t\t// @\n\t\t\t\t\tcase 64:\n\t\t\t\t\t\t// -\n\t\t\t\t\t\tif (peek() === 45)\n\t\t\t\t\t\t\tcharacters += delimit(next())\n\n\t\t\t\t\t\tatrule = peek(), offset = length = strlen(type = characters += identifier(caret())), character++\n\t\t\t\t\t\tbreak\n\t\t\t\t\t// -\n\t\t\t\t\tcase 45:\n\t\t\t\t\t\tif (previous === 45 && strlen(characters) == 2)\n\t\t\t\t\t\t\tvariable = 0\n\t\t\t\t}\n\t\t}\n\n\treturn rulesets\n}\n\n/**\n * @param {string} value\n * @param {object} root\n * @param {object?} parent\n * @param {number} index\n * @param {number} offset\n * @param {string[]} rules\n * @param {number[]} points\n * @param {string} type\n * @param {string[]} props\n * @param {string[]} children\n * @param {number} length\n * @return {object}\n */\nexport function ruleset (value, root, parent, index, offset, rules, points, type, props, children, length) {\n\tvar post = offset - 1\n\tvar rule = offset === 0 ? rules : ['']\n\tvar size = sizeof(rule)\n\n\tfor (var i = 0, j = 0, k = 0; i < index; ++i)\n\t\tfor (var x = 0, y = substr(value, post + 1, post = abs(j = points[i])), z = value; x < size; ++x)\n\t\t\tif (z = trim(j > 0 ? rule[x] + ' ' + y : replace(y, /&\\f/g, rule[x])))\n\t\t\t\tprops[k++] = z\n\n\treturn node(value, root, parent, offset === 0 ? RULESET : type, props, children, length)\n}\n\n/**\n * @param {number} value\n * @param {object} root\n * @param {object?} parent\n * @return {object}\n */\nexport function comment (value, root, parent) {\n\treturn node(value, root, parent, COMMENT, from(char()), substr(value, 2, -2), 0)\n}\n\n/**\n * @param {string} value\n * @param {object} root\n * @param {object?} parent\n * @param {number} length\n * @return {object}\n */\nexport function declaration (value, root, parent, length) {\n\treturn node(value, root, parent, DECLARATION, substr(value, 0, length), substr(value, length + 1, -1), length)\n}\n","import {IMPORT, LAYER, COMMENT, RULESET, DECLARATION, KEYFRAMES} from './Enum.js'\nimport {strlen, sizeof} from './Utility.js'\n\n/**\n * @param {object[]} children\n * @param {function} callback\n * @return {string}\n */\nexport function serialize (children, callback) {\n\tvar output = ''\n\tvar length = sizeof(children)\n\n\tfor (var i = 0; i < length; i++)\n\t\toutput += callback(children[i], i, children, callback) || ''\n\n\treturn output\n}\n\n/**\n * @param {object} element\n * @param {number} index\n * @param {object[]} children\n * @param {function} callback\n * @return {string}\n */\nexport function stringify (element, index, children, callback) {\n\tswitch (element.type) {\n\t\tcase LAYER: if (element.children.length) break\n\t\tcase IMPORT: case DECLARATION: return element.return = element.return || element.value\n\t\tcase COMMENT: return ''\n\t\tcase KEYFRAMES: return element.return = element.value + '{' + serialize(element.children, callback) + '}'\n\t\tcase RULESET: element.value = element.props.join(',')\n\t}\n\n\treturn strlen(children = serialize(element.children, callback)) ? element.return = element.value + '{' + children + '}' : ''\n}\n","import {MS, MOZ, WEBKIT, RULESET, KEYFRAMES, DECLARATION} from './Enum.js'\nimport {match, charat, substr, strlen, sizeof, replace, combine} from './Utility.js'\nimport {copy, tokenize} from './Tokenizer.js'\nimport {serialize} from './Serializer.js'\nimport {prefix} from './Prefixer.js'\n\n/**\n * @param {function[]} collection\n * @return {function}\n */\nexport function middleware (collection) {\n\tvar length = sizeof(collection)\n\n\treturn function (element, index, children, callback) {\n\t\tvar output = ''\n\n\t\tfor (var i = 0; i < length; i++)\n\t\t\toutput += collection[i](element, index, children, callback) || ''\n\n\t\treturn output\n\t}\n}\n\n/**\n * @param {function} callback\n * @return {function}\n */\nexport function rulesheet (callback) {\n\treturn function (element) {\n\t\tif (!element.root)\n\t\t\tif (element = element.return)\n\t\t\t\tcallback(element)\n\t}\n}\n\n/**\n * @param {object} element\n * @param {number} index\n * @param {object[]} children\n * @param {function} callback\n */\nexport function prefixer (element, index, children, callback) {\n\tif (element.length > -1)\n\t\tif (!element.return)\n\t\t\tswitch (element.type) {\n\t\t\t\tcase DECLARATION: element.return = prefix(element.value, element.length, children)\n\t\t\t\t\treturn\n\t\t\t\tcase KEYFRAMES:\n\t\t\t\t\treturn serialize([copy(element, {value: replace(element.value, '@', '@' + WEBKIT)})], callback)\n\t\t\t\tcase RULESET:\n\t\t\t\t\tif (element.length)\n\t\t\t\t\t\treturn combine(element.props, function (value) {\n\t\t\t\t\t\t\tswitch (match(value, /(::plac\\w+|:read-\\w+)/)) {\n\t\t\t\t\t\t\t\t// :read-(only|write)\n\t\t\t\t\t\t\t\tcase ':read-only': case ':read-write':\n\t\t\t\t\t\t\t\t\treturn serialize([copy(element, {props: [replace(value, /:(read-\\w+)/, ':' + MOZ + '$1')]})], callback)\n\t\t\t\t\t\t\t\t// :placeholder\n\t\t\t\t\t\t\t\tcase '::placeholder':\n\t\t\t\t\t\t\t\t\treturn serialize([\n\t\t\t\t\t\t\t\t\t\tcopy(element, {props: [replace(value, /:(plac\\w+)/, ':' + WEBKIT + 'input-$1')]}),\n\t\t\t\t\t\t\t\t\t\tcopy(element, {props: [replace(value, /:(plac\\w+)/, ':' + MOZ + '$1')]}),\n\t\t\t\t\t\t\t\t\t\tcopy(element, {props: [replace(value, /:(plac\\w+)/, MS + 'input-$1')]})\n\t\t\t\t\t\t\t\t\t], callback)\n\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\treturn ''\n\t\t\t\t\t\t})\n\t\t\t}\n}\n\n/**\n * @param {object} element\n * @param {number} index\n * @param {object[]} children\n */\nexport function namespace (element) {\n\tswitch (element.type) {\n\t\tcase RULESET:\n\t\t\telement.props = element.props.map(function (value) {\n\t\t\t\treturn combine(tokenize(value), function (value, index, children) {\n\t\t\t\t\tswitch (charat(value, 0)) {\n\t\t\t\t\t\t// \\f\n\t\t\t\t\t\tcase 12:\n\t\t\t\t\t\t\treturn substr(value, 1, strlen(value))\n\t\t\t\t\t\t// \\0 ( + > ~\n\t\t\t\t\t\tcase 0: case 40: case 43: case 62: case 126:\n\t\t\t\t\t\t\treturn value\n\t\t\t\t\t\t// :\n\t\t\t\t\t\tcase 58:\n\t\t\t\t\t\t\tif (children[++index] === 'global')\n\t\t\t\t\t\t\t\tchildren[index] = '', children[++index] = '\\f' + substr(children[index], index = 1, -1)\n\t\t\t\t\t\t// \\s\n\t\t\t\t\t\tcase 32:\n\t\t\t\t\t\t\treturn index === 1 ? '' : value\n\t\t\t\t\t\tdefault:\n\t\t\t\t\t\t\tswitch (index) {\n\t\t\t\t\t\t\t\tcase 0: element = value\n\t\t\t\t\t\t\t\t\treturn sizeof(children) > 1 ? '' : value\n\t\t\t\t\t\t\t\tcase index = sizeof(children) - 1: case 2:\n\t\t\t\t\t\t\t\t\treturn index === 2 ? value + element + element : value + element\n\t\t\t\t\t\t\t\tdefault:\n\t\t\t\t\t\t\t\t\treturn value\n\t\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t})\n\t\t\t})\n\t}\n}\n","function memoize(fn) {\n var cache = Object.create(null);\n return function (arg) {\n if (cache[arg] === undefined) cache[arg] = fn(arg);\n return cache[arg];\n };\n}\n\nexport { memoize as default };\n","import { StyleSheet } from '@emotion/sheet';\nimport { dealloc, alloc, next, token, from, peek, delimit, slice, position, RULESET, combine, match, serialize, copy, replace, WEBKIT, MOZ, MS, KEYFRAMES, DECLARATION, hash, charat, strlen, indexof, stringify, rulesheet, middleware, compile } from 'stylis';\nimport '@emotion/weak-memoize';\nimport '@emotion/memoize';\n\nvar identifierWithPointTracking = function identifierWithPointTracking(begin, points, index) {\n var previous = 0;\n var character = 0;\n\n while (true) {\n previous = character;\n character = peek(); // &\\f\n\n if (previous === 38 && character === 12) {\n points[index] = 1;\n }\n\n if (token(character)) {\n break;\n }\n\n next();\n }\n\n return slice(begin, position);\n};\n\nvar toRules = function toRules(parsed, points) {\n // pretend we've started with a comma\n var index = -1;\n var character = 44;\n\n do {\n switch (token(character)) {\n case 0:\n // &\\f\n if (character === 38 && peek() === 12) {\n // this is not 100% correct, we don't account for literal sequences here - like for example quoted strings\n // stylis inserts \\f after & to know when & where it should replace this sequence with the context selector\n // and when it should just concatenate the outer and inner selectors\n // it's very unlikely for this sequence to actually appear in a different context, so we just leverage this fact here\n points[index] = 1;\n }\n\n parsed[index] += identifierWithPointTracking(position - 1, points, index);\n break;\n\n case 2:\n parsed[index] += delimit(character);\n break;\n\n case 4:\n // comma\n if (character === 44) {\n // colon\n parsed[++index] = peek() === 58 ? '&\\f' : '';\n points[index] = parsed[index].length;\n break;\n }\n\n // fallthrough\n\n default:\n parsed[index] += from(character);\n }\n } while (character = next());\n\n return parsed;\n};\n\nvar getRules = function getRules(value, points) {\n return dealloc(toRules(alloc(value), points));\n}; // WeakSet would be more appropriate, but only WeakMap is supported in IE11\n\n\nvar fixedElements = /* #__PURE__ */new WeakMap();\nvar compat = function compat(element) {\n if (element.type !== 'rule' || !element.parent || // positive .length indicates that this rule contains pseudo\n // negative .length indicates that this rule has been already prefixed\n element.length < 1) {\n return;\n }\n\n var value = element.value;\n var parent = element.parent;\n var isImplicitRule = element.column === parent.column && element.line === parent.line;\n\n while (parent.type !== 'rule') {\n parent = parent.parent;\n if (!parent) return;\n } // short-circuit for the simplest case\n\n\n if (element.props.length === 1 && value.charCodeAt(0) !== 58\n /* colon */\n && !fixedElements.get(parent)) {\n return;\n } // if this is an implicitly inserted rule (the one eagerly inserted at the each new nested level)\n // then the props has already been manipulated beforehand as they that array is shared between it and its \"rule parent\"\n\n\n if (isImplicitRule) {\n return;\n }\n\n fixedElements.set(element, true);\n var points = [];\n var rules = getRules(value, points);\n var parentRules = parent.props;\n\n for (var i = 0, k = 0; i < rules.length; i++) {\n for (var j = 0; j < parentRules.length; j++, k++) {\n element.props[k] = points[i] ? rules[i].replace(/&\\f/g, parentRules[j]) : parentRules[j] + \" \" + rules[i];\n }\n }\n};\nvar removeLabel = function removeLabel(element) {\n if (element.type === 'decl') {\n var value = element.value;\n\n if ( // charcode for l\n value.charCodeAt(0) === 108 && // charcode for b\n value.charCodeAt(2) === 98) {\n // this ignores label\n element[\"return\"] = '';\n element.value = '';\n }\n }\n};\n\n/* eslint-disable no-fallthrough */\n\nfunction prefix(value, length) {\n switch (hash(value, length)) {\n // color-adjust\n case 5103:\n return WEBKIT + 'print-' + value + value;\n // animation, animation-(delay|direction|duration|fill-mode|iteration-count|name|play-state|timing-function)\n\n case 5737:\n case 4201:\n case 3177:\n case 3433:\n case 1641:\n case 4457:\n case 2921: // text-decoration, filter, clip-path, backface-visibility, column, box-decoration-break\n\n case 5572:\n case 6356:\n case 5844:\n case 3191:\n case 6645:\n case 3005: // mask, mask-image, mask-(mode|clip|size), mask-(repeat|origin), mask-position, mask-composite,\n\n case 6391:\n case 5879:\n case 5623:\n case 6135:\n case 4599:\n case 4855: // background-clip, columns, column-(count|fill|gap|rule|rule-color|rule-style|rule-width|span|width)\n\n case 4215:\n case 6389:\n case 5109:\n case 5365:\n case 5621:\n case 3829:\n return WEBKIT + value + value;\n // appearance, user-select, transform, hyphens, text-size-adjust\n\n case 5349:\n case 4246:\n case 4810:\n case 6968:\n case 2756:\n return WEBKIT + value + MOZ + value + MS + value + value;\n // flex, flex-direction\n\n case 6828:\n case 4268:\n return WEBKIT + value + MS + value + value;\n // order\n\n case 6165:\n return WEBKIT + value + MS + 'flex-' + value + value;\n // align-items\n\n case 5187:\n return WEBKIT + value + replace(value, /(\\w+).+(:[^]+)/, WEBKIT + 'box-$1$2' + MS + 'flex-$1$2') + value;\n // align-self\n\n case 5443:\n return WEBKIT + value + MS + 'flex-item-' + replace(value, /flex-|-self/, '') + value;\n // align-content\n\n case 4675:\n return WEBKIT + value + MS + 'flex-line-pack' + replace(value, /align-content|flex-|-self/, '') + value;\n // flex-shrink\n\n case 5548:\n return WEBKIT + value + MS + replace(value, 'shrink', 'negative') + value;\n // flex-basis\n\n case 5292:\n return WEBKIT + value + MS + replace(value, 'basis', 'preferred-size') + value;\n // flex-grow\n\n case 6060:\n return WEBKIT + 'box-' + replace(value, '-grow', '') + WEBKIT + value + MS + replace(value, 'grow', 'positive') + value;\n // transition\n\n case 4554:\n return WEBKIT + replace(value, /([^-])(transform)/g, '$1' + WEBKIT + '$2') + value;\n // cursor\n\n case 6187:\n return replace(replace(replace(value, /(zoom-|grab)/, WEBKIT + '$1'), /(image-set)/, WEBKIT + '$1'), value, '') + value;\n // background, background-image\n\n case 5495:\n case 3959:\n return replace(value, /(image-set\\([^]*)/, WEBKIT + '$1' + '$`$1');\n // justify-content\n\n case 4968:\n return replace(replace(value, /(.+:)(flex-)?(.*)/, WEBKIT + 'box-pack:$3' + MS + 'flex-pack:$3'), /s.+-b[^;]+/, 'justify') + WEBKIT + value + value;\n // (margin|padding)-inline-(start|end)\n\n case 4095:\n case 3583:\n case 4068:\n case 2532:\n return replace(value, /(.+)-inline(.+)/, WEBKIT + '$1$2') + value;\n // (min|max)?(width|height|inline-size|block-size)\n\n case 8116:\n case 7059:\n case 5753:\n case 5535:\n case 5445:\n case 5701:\n case 4933:\n case 4677:\n case 5533:\n case 5789:\n case 5021:\n case 4765:\n // stretch, max-content, min-content, fill-available\n if (strlen(value) - 1 - length > 6) switch (charat(value, length + 1)) {\n // (m)ax-content, (m)in-content\n case 109:\n // -\n if (charat(value, length + 4) !== 45) break;\n // (f)ill-available, (f)it-content\n\n case 102:\n return replace(value, /(.+:)(.+)-([^]+)/, '$1' + WEBKIT + '$2-$3' + '$1' + MOZ + (charat(value, length + 3) == 108 ? '$3' : '$2-$3')) + value;\n // (s)tretch\n\n case 115:\n return ~indexof(value, 'stretch') ? prefix(replace(value, 'stretch', 'fill-available'), length) + value : value;\n }\n break;\n // position: sticky\n\n case 4949:\n // (s)ticky?\n if (charat(value, length + 1) !== 115) break;\n // display: (flex|inline-flex)\n\n case 6444:\n switch (charat(value, strlen(value) - 3 - (~indexof(value, '!important') && 10))) {\n // stic(k)y\n case 107:\n return replace(value, ':', ':' + WEBKIT) + value;\n // (inline-)?fl(e)x\n\n case 101:\n return replace(value, /(.+:)([^;!]+)(;|!.+)?/, '$1' + WEBKIT + (charat(value, 14) === 45 ? 'inline-' : '') + 'box$3' + '$1' + WEBKIT + '$2$3' + '$1' + MS + '$2box$3') + value;\n }\n\n break;\n // writing-mode\n\n case 5936:\n switch (charat(value, length + 11)) {\n // vertical-l(r)\n case 114:\n return WEBKIT + value + MS + replace(value, /[svh]\\w+-[tblr]{2}/, 'tb') + value;\n // vertical-r(l)\n\n case 108:\n return WEBKIT + value + MS + replace(value, /[svh]\\w+-[tblr]{2}/, 'tb-rl') + value;\n // horizontal(-)tb\n\n case 45:\n return WEBKIT + value + MS + replace(value, /[svh]\\w+-[tblr]{2}/, 'lr') + value;\n }\n\n return WEBKIT + value + MS + value + value;\n }\n\n return value;\n}\n\nvar prefixer = function prefixer(element, index, children, callback) {\n if (element.length > -1) if (!element[\"return\"]) switch (element.type) {\n case DECLARATION:\n element[\"return\"] = prefix(element.value, element.length);\n break;\n\n case KEYFRAMES:\n return serialize([copy(element, {\n value: replace(element.value, '@', '@' + WEBKIT)\n })], callback);\n\n case RULESET:\n if (element.length) return combine(element.props, function (value) {\n switch (match(value, /(::plac\\w+|:read-\\w+)/)) {\n // :read-(only|write)\n case ':read-only':\n case ':read-write':\n return serialize([copy(element, {\n props: [replace(value, /:(read-\\w+)/, ':' + MOZ + '$1')]\n })], callback);\n // :placeholder\n\n case '::placeholder':\n return serialize([copy(element, {\n props: [replace(value, /:(plac\\w+)/, ':' + WEBKIT + 'input-$1')]\n }), copy(element, {\n props: [replace(value, /:(plac\\w+)/, ':' + MOZ + '$1')]\n }), copy(element, {\n props: [replace(value, /:(plac\\w+)/, MS + 'input-$1')]\n })], callback);\n }\n\n return '';\n });\n }\n};\n\nvar defaultStylisPlugins = [prefixer];\n\nvar createCache = function createCache(options) {\n var key = options.key;\n\n if (key === 'css') {\n var ssrStyles = document.querySelectorAll(\"style[data-emotion]:not([data-s])\"); // get SSRed styles out of the way of React's hydration\n // document.head is a safe place to move them to(though note document.head is not necessarily the last place they will be)\n // note this very very intentionally targets all style elements regardless of the key to ensure\n // that creating a cache works inside of render of a React component\n\n Array.prototype.forEach.call(ssrStyles, function (node) {\n // we want to only move elements which have a space in the data-emotion attribute value\n // because that indicates that it is an Emotion 11 server-side rendered style elements\n // while we will already ignore Emotion 11 client-side inserted styles because of the :not([data-s]) part in the selector\n // Emotion 10 client-side inserted styles did not have data-s (but importantly did not have a space in their data-emotion attributes)\n // so checking for the space ensures that loading Emotion 11 after Emotion 10 has inserted some styles\n // will not result in the Emotion 10 styles being destroyed\n var dataEmotionAttribute = node.getAttribute('data-emotion');\n\n if (dataEmotionAttribute.indexOf(' ') === -1) {\n return;\n }\n\n document.head.appendChild(node);\n node.setAttribute('data-s', '');\n });\n }\n\n var stylisPlugins = options.stylisPlugins || defaultStylisPlugins;\n\n var inserted = {};\n var container;\n var nodesToHydrate = [];\n\n {\n container = options.container || document.head;\n Array.prototype.forEach.call( // this means we will ignore elements which don't have a space in them which\n // means that the style elements we're looking at are only Emotion 11 server-rendered style elements\n document.querySelectorAll(\"style[data-emotion^=\\\"\" + key + \" \\\"]\"), function (node) {\n var attrib = node.getAttribute(\"data-emotion\").split(' ');\n\n for (var i = 1; i < attrib.length; i++) {\n inserted[attrib[i]] = true;\n }\n\n nodesToHydrate.push(node);\n });\n }\n\n var _insert;\n\n var omnipresentPlugins = [compat, removeLabel];\n\n {\n var currentSheet;\n var finalizingPlugins = [stringify, rulesheet(function (rule) {\n currentSheet.insert(rule);\n })];\n var serializer = middleware(omnipresentPlugins.concat(stylisPlugins, finalizingPlugins));\n\n var stylis = function stylis(styles) {\n return serialize(compile(styles), serializer);\n };\n\n _insert = function insert(selector, serialized, sheet, shouldCache) {\n currentSheet = sheet;\n\n stylis(selector ? selector + \"{\" + serialized.styles + \"}\" : serialized.styles);\n\n if (shouldCache) {\n cache.inserted[serialized.name] = true;\n }\n };\n }\n\n var cache = {\n key: key,\n sheet: new StyleSheet({\n key: key,\n container: container,\n nonce: options.nonce,\n speedy: options.speedy,\n prepend: options.prepend,\n insertionPoint: options.insertionPoint\n }),\n nonce: options.nonce,\n inserted: inserted,\n registered: {},\n insert: _insert\n };\n cache.sheet.hydrate(nodesToHydrate);\n return cache;\n};\n\nexport { createCache as default };\n","/** @license React v16.13.1\n * react-is.production.min.js\n *\n * Copyright (c) Facebook, Inc. and its affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\n'use strict';var b=\"function\"===typeof Symbol&&Symbol.for,c=b?Symbol.for(\"react.element\"):60103,d=b?Symbol.for(\"react.portal\"):60106,e=b?Symbol.for(\"react.fragment\"):60107,f=b?Symbol.for(\"react.strict_mode\"):60108,g=b?Symbol.for(\"react.profiler\"):60114,h=b?Symbol.for(\"react.provider\"):60109,k=b?Symbol.for(\"react.context\"):60110,l=b?Symbol.for(\"react.async_mode\"):60111,m=b?Symbol.for(\"react.concurrent_mode\"):60111,n=b?Symbol.for(\"react.forward_ref\"):60112,p=b?Symbol.for(\"react.suspense\"):60113,q=b?\nSymbol.for(\"react.suspense_list\"):60120,r=b?Symbol.for(\"react.memo\"):60115,t=b?Symbol.for(\"react.lazy\"):60116,v=b?Symbol.for(\"react.block\"):60121,w=b?Symbol.for(\"react.fundamental\"):60117,x=b?Symbol.for(\"react.responder\"):60118,y=b?Symbol.for(\"react.scope\"):60119;\nfunction z(a){if(\"object\"===typeof a&&null!==a){var u=a.$$typeof;switch(u){case c:switch(a=a.type,a){case l:case m:case e:case g:case f:case p:return a;default:switch(a=a&&a.$$typeof,a){case k:case n:case t:case r:case h:return a;default:return u}}case d:return u}}}function A(a){return z(a)===m}exports.AsyncMode=l;exports.ConcurrentMode=m;exports.ContextConsumer=k;exports.ContextProvider=h;exports.Element=c;exports.ForwardRef=n;exports.Fragment=e;exports.Lazy=t;exports.Memo=r;exports.Portal=d;\nexports.Profiler=g;exports.StrictMode=f;exports.Suspense=p;exports.isAsyncMode=function(a){return A(a)||z(a)===l};exports.isConcurrentMode=A;exports.isContextConsumer=function(a){return z(a)===k};exports.isContextProvider=function(a){return z(a)===h};exports.isElement=function(a){return\"object\"===typeof a&&null!==a&&a.$$typeof===c};exports.isForwardRef=function(a){return z(a)===n};exports.isFragment=function(a){return z(a)===e};exports.isLazy=function(a){return z(a)===t};\nexports.isMemo=function(a){return z(a)===r};exports.isPortal=function(a){return z(a)===d};exports.isProfiler=function(a){return z(a)===g};exports.isStrictMode=function(a){return z(a)===f};exports.isSuspense=function(a){return z(a)===p};\nexports.isValidElementType=function(a){return\"string\"===typeof a||\"function\"===typeof a||a===e||a===m||a===g||a===f||a===p||a===q||\"object\"===typeof a&&null!==a&&(a.$$typeof===t||a.$$typeof===r||a.$$typeof===h||a.$$typeof===k||a.$$typeof===n||a.$$typeof===w||a.$$typeof===x||a.$$typeof===y||a.$$typeof===v)};exports.typeOf=z;\n","/** @license React v16.13.1\n * react-is.development.js\n *\n * Copyright (c) Facebook, Inc. and its affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\n'use strict';\n\n\n\nif (process.env.NODE_ENV !== \"production\") {\n (function() {\n'use strict';\n\n// The Symbol used to tag the ReactElement-like types. If there is no native Symbol\n// nor polyfill, then a plain number is used for performance.\nvar hasSymbol = typeof Symbol === 'function' && Symbol.for;\nvar REACT_ELEMENT_TYPE = hasSymbol ? Symbol.for('react.element') : 0xeac7;\nvar REACT_PORTAL_TYPE = hasSymbol ? Symbol.for('react.portal') : 0xeaca;\nvar REACT_FRAGMENT_TYPE = hasSymbol ? Symbol.for('react.fragment') : 0xeacb;\nvar REACT_STRICT_MODE_TYPE = hasSymbol ? Symbol.for('react.strict_mode') : 0xeacc;\nvar REACT_PROFILER_TYPE = hasSymbol ? Symbol.for('react.profiler') : 0xead2;\nvar REACT_PROVIDER_TYPE = hasSymbol ? Symbol.for('react.provider') : 0xeacd;\nvar REACT_CONTEXT_TYPE = hasSymbol ? Symbol.for('react.context') : 0xeace; // TODO: We don't use AsyncMode or ConcurrentMode anymore. They were temporary\n// (unstable) APIs that have been removed. Can we remove the symbols?\n\nvar REACT_ASYNC_MODE_TYPE = hasSymbol ? Symbol.for('react.async_mode') : 0xeacf;\nvar REACT_CONCURRENT_MODE_TYPE = hasSymbol ? Symbol.for('react.concurrent_mode') : 0xeacf;\nvar REACT_FORWARD_REF_TYPE = hasSymbol ? Symbol.for('react.forward_ref') : 0xead0;\nvar REACT_SUSPENSE_TYPE = hasSymbol ? Symbol.for('react.suspense') : 0xead1;\nvar REACT_SUSPENSE_LIST_TYPE = hasSymbol ? Symbol.for('react.suspense_list') : 0xead8;\nvar REACT_MEMO_TYPE = hasSymbol ? Symbol.for('react.memo') : 0xead3;\nvar REACT_LAZY_TYPE = hasSymbol ? Symbol.for('react.lazy') : 0xead4;\nvar REACT_BLOCK_TYPE = hasSymbol ? Symbol.for('react.block') : 0xead9;\nvar REACT_FUNDAMENTAL_TYPE = hasSymbol ? Symbol.for('react.fundamental') : 0xead5;\nvar REACT_RESPONDER_TYPE = hasSymbol ? Symbol.for('react.responder') : 0xead6;\nvar REACT_SCOPE_TYPE = hasSymbol ? Symbol.for('react.scope') : 0xead7;\n\nfunction isValidElementType(type) {\n return typeof type === 'string' || typeof type === 'function' || // Note: its typeof might be other than 'symbol' or 'number' if it's a polyfill.\n type === REACT_FRAGMENT_TYPE || type === REACT_CONCURRENT_MODE_TYPE || type === REACT_PROFILER_TYPE || type === REACT_STRICT_MODE_TYPE || type === REACT_SUSPENSE_TYPE || type === REACT_SUSPENSE_LIST_TYPE || typeof type === 'object' && type !== null && (type.$$typeof === REACT_LAZY_TYPE || type.$$typeof === REACT_MEMO_TYPE || type.$$typeof === REACT_PROVIDER_TYPE || type.$$typeof === REACT_CONTEXT_TYPE || type.$$typeof === REACT_FORWARD_REF_TYPE || type.$$typeof === REACT_FUNDAMENTAL_TYPE || type.$$typeof === REACT_RESPONDER_TYPE || type.$$typeof === REACT_SCOPE_TYPE || type.$$typeof === REACT_BLOCK_TYPE);\n}\n\nfunction typeOf(object) {\n if (typeof object === 'object' && object !== null) {\n var $$typeof = object.$$typeof;\n\n switch ($$typeof) {\n case REACT_ELEMENT_TYPE:\n var type = object.type;\n\n switch (type) {\n case REACT_ASYNC_MODE_TYPE:\n case REACT_CONCURRENT_MODE_TYPE:\n case REACT_FRAGMENT_TYPE:\n case REACT_PROFILER_TYPE:\n case REACT_STRICT_MODE_TYPE:\n case REACT_SUSPENSE_TYPE:\n return type;\n\n default:\n var $$typeofType = type && type.$$typeof;\n\n switch ($$typeofType) {\n case REACT_CONTEXT_TYPE:\n case REACT_FORWARD_REF_TYPE:\n case REACT_LAZY_TYPE:\n case REACT_MEMO_TYPE:\n case REACT_PROVIDER_TYPE:\n return $$typeofType;\n\n default:\n return $$typeof;\n }\n\n }\n\n case REACT_PORTAL_TYPE:\n return $$typeof;\n }\n }\n\n return undefined;\n} // AsyncMode is deprecated along with isAsyncMode\n\nvar AsyncMode = REACT_ASYNC_MODE_TYPE;\nvar ConcurrentMode = REACT_CONCURRENT_MODE_TYPE;\nvar ContextConsumer = REACT_CONTEXT_TYPE;\nvar ContextProvider = REACT_PROVIDER_TYPE;\nvar Element = REACT_ELEMENT_TYPE;\nvar ForwardRef = REACT_FORWARD_REF_TYPE;\nvar Fragment = REACT_FRAGMENT_TYPE;\nvar Lazy = REACT_LAZY_TYPE;\nvar Memo = REACT_MEMO_TYPE;\nvar Portal = REACT_PORTAL_TYPE;\nvar Profiler = REACT_PROFILER_TYPE;\nvar StrictMode = REACT_STRICT_MODE_TYPE;\nvar Suspense = REACT_SUSPENSE_TYPE;\nvar hasWarnedAboutDeprecatedIsAsyncMode = false; // AsyncMode should be deprecated\n\nfunction isAsyncMode(object) {\n {\n if (!hasWarnedAboutDeprecatedIsAsyncMode) {\n hasWarnedAboutDeprecatedIsAsyncMode = true; // Using console['warn'] to evade Babel and ESLint\n\n console['warn']('The ReactIs.isAsyncMode() alias has been deprecated, ' + 'and will be removed in React 17+. Update your code to use ' + 'ReactIs.isConcurrentMode() instead. It has the exact same API.');\n }\n }\n\n return isConcurrentMode(object) || typeOf(object) === REACT_ASYNC_MODE_TYPE;\n}\nfunction isConcurrentMode(object) {\n return typeOf(object) === REACT_CONCURRENT_MODE_TYPE;\n}\nfunction isContextConsumer(object) {\n return typeOf(object) === REACT_CONTEXT_TYPE;\n}\nfunction isContextProvider(object) {\n return typeOf(object) === REACT_PROVIDER_TYPE;\n}\nfunction isElement(object) {\n return typeof object === 'object' && object !== null && object.$$typeof === REACT_ELEMENT_TYPE;\n}\nfunction isForwardRef(object) {\n return typeOf(object) === REACT_FORWARD_REF_TYPE;\n}\nfunction isFragment(object) {\n return typeOf(object) === REACT_FRAGMENT_TYPE;\n}\nfunction isLazy(object) {\n return typeOf(object) === REACT_LAZY_TYPE;\n}\nfunction isMemo(object) {\n return typeOf(object) === REACT_MEMO_TYPE;\n}\nfunction isPortal(object) {\n return typeOf(object) === REACT_PORTAL_TYPE;\n}\nfunction isProfiler(object) {\n return typeOf(object) === REACT_PROFILER_TYPE;\n}\nfunction isStrictMode(object) {\n return typeOf(object) === REACT_STRICT_MODE_TYPE;\n}\nfunction isSuspense(object) {\n return typeOf(object) === REACT_SUSPENSE_TYPE;\n}\n\nexports.AsyncMode = AsyncMode;\nexports.ConcurrentMode = ConcurrentMode;\nexports.ContextConsumer = ContextConsumer;\nexports.ContextProvider = ContextProvider;\nexports.Element = Element;\nexports.ForwardRef = ForwardRef;\nexports.Fragment = Fragment;\nexports.Lazy = Lazy;\nexports.Memo = Memo;\nexports.Portal = Portal;\nexports.Profiler = Profiler;\nexports.StrictMode = StrictMode;\nexports.Suspense = Suspense;\nexports.isAsyncMode = isAsyncMode;\nexports.isConcurrentMode = isConcurrentMode;\nexports.isContextConsumer = isContextConsumer;\nexports.isContextProvider = isContextProvider;\nexports.isElement = isElement;\nexports.isForwardRef = isForwardRef;\nexports.isFragment = isFragment;\nexports.isLazy = isLazy;\nexports.isMemo = isMemo;\nexports.isPortal = isPortal;\nexports.isProfiler = isProfiler;\nexports.isStrictMode = isStrictMode;\nexports.isSuspense = isSuspense;\nexports.isValidElementType = isValidElementType;\nexports.typeOf = typeOf;\n })();\n}\n","'use strict';\n\nif (process.env.NODE_ENV === 'production') {\n module.exports = require('./cjs/react-is.production.min.js');\n} else {\n module.exports = require('./cjs/react-is.development.js');\n}\n","'use strict';\n\nvar reactIs = require('react-is');\n\n/**\n * Copyright 2015, Yahoo! Inc.\n * Copyrights licensed under the New BSD License. See the accompanying LICENSE file for terms.\n */\nvar REACT_STATICS = {\n childContextTypes: true,\n contextType: true,\n contextTypes: true,\n defaultProps: true,\n displayName: true,\n getDefaultProps: true,\n getDerivedStateFromError: true,\n getDerivedStateFromProps: true,\n mixins: true,\n propTypes: true,\n type: true\n};\nvar KNOWN_STATICS = {\n name: true,\n length: true,\n prototype: true,\n caller: true,\n callee: true,\n arguments: true,\n arity: true\n};\nvar FORWARD_REF_STATICS = {\n '$$typeof': true,\n render: true,\n defaultProps: true,\n displayName: true,\n propTypes: true\n};\nvar MEMO_STATICS = {\n '$$typeof': true,\n compare: true,\n defaultProps: true,\n displayName: true,\n propTypes: true,\n type: true\n};\nvar TYPE_STATICS = {};\nTYPE_STATICS[reactIs.ForwardRef] = FORWARD_REF_STATICS;\nTYPE_STATICS[reactIs.Memo] = MEMO_STATICS;\n\nfunction getStatics(component) {\n // React v16.11 and below\n if (reactIs.isMemo(component)) {\n return MEMO_STATICS;\n } // React v16.12 and above\n\n\n return TYPE_STATICS[component['$$typeof']] || REACT_STATICS;\n}\n\nvar defineProperty = Object.defineProperty;\nvar getOwnPropertyNames = Object.getOwnPropertyNames;\nvar getOwnPropertySymbols = Object.getOwnPropertySymbols;\nvar getOwnPropertyDescriptor = Object.getOwnPropertyDescriptor;\nvar getPrototypeOf = Object.getPrototypeOf;\nvar objectPrototype = Object.prototype;\nfunction hoistNonReactStatics(targetComponent, sourceComponent, blacklist) {\n if (typeof sourceComponent !== 'string') {\n // don't hoist over string (html) components\n if (objectPrototype) {\n var inheritedComponent = getPrototypeOf(sourceComponent);\n\n if (inheritedComponent && inheritedComponent !== objectPrototype) {\n hoistNonReactStatics(targetComponent, inheritedComponent, blacklist);\n }\n }\n\n var keys = getOwnPropertyNames(sourceComponent);\n\n if (getOwnPropertySymbols) {\n keys = keys.concat(getOwnPropertySymbols(sourceComponent));\n }\n\n var targetStatics = getStatics(targetComponent);\n var sourceStatics = getStatics(sourceComponent);\n\n for (var i = 0; i < keys.length; ++i) {\n var key = keys[i];\n\n if (!KNOWN_STATICS[key] && !(blacklist && blacklist[key]) && !(sourceStatics && sourceStatics[key]) && !(targetStatics && targetStatics[key])) {\n var descriptor = getOwnPropertyDescriptor(sourceComponent, key);\n\n try {\n // Avoid failures from read-only properties\n defineProperty(targetComponent, key, descriptor);\n } catch (e) {}\n }\n }\n }\n\n return targetComponent;\n}\n\nmodule.exports = hoistNonReactStatics;\n","var isBrowser = true;\n\nfunction getRegisteredStyles(registered, registeredStyles, classNames) {\n var rawClassName = '';\n classNames.split(' ').forEach(function (className) {\n if (registered[className] !== undefined) {\n registeredStyles.push(registered[className] + \";\");\n } else if (className) {\n rawClassName += className + \" \";\n }\n });\n return rawClassName;\n}\nvar registerStyles = function registerStyles(cache, serialized, isStringTag) {\n var className = cache.key + \"-\" + serialized.name;\n\n if ( // we only need to add the styles to the registered cache if the\n // class name could be used further down\n // the tree but if it's a string tag, we know it won't\n // so we don't have to add it to registered cache.\n // this improves memory usage since we can avoid storing the whole style string\n (isStringTag === false || // we need to always store it if we're in compat mode and\n // in node since emotion-server relies on whether a style is in\n // the registered cache to know whether a style is global or not\n // also, note that this check will be dead code eliminated in the browser\n isBrowser === false ) && cache.registered[className] === undefined) {\n cache.registered[className] = serialized.styles;\n }\n};\nvar insertStyles = function insertStyles(cache, serialized, isStringTag) {\n registerStyles(cache, serialized, isStringTag);\n var className = cache.key + \"-\" + serialized.name;\n\n if (cache.inserted[serialized.name] === undefined) {\n var current = serialized;\n\n do {\n cache.insert(serialized === current ? \".\" + className : '', current, cache.sheet, true);\n\n current = current.next;\n } while (current !== undefined);\n }\n};\n\nexport { getRegisteredStyles, insertStyles, registerStyles };\n","/* eslint-disable */\n// Inspired by https://github.com/garycourt/murmurhash-js\n// Ported from https://github.com/aappleby/smhasher/blob/61a0530f28277f2e850bfc39600ce61d02b518de/src/MurmurHash2.cpp#L37-L86\nfunction murmur2(str) {\n // 'm' and 'r' are mixing constants generated offline.\n // They're not really 'magic', they just happen to work well.\n // const m = 0x5bd1e995;\n // const r = 24;\n // Initialize the hash\n var h = 0; // Mix 4 bytes at a time into the hash\n\n var k,\n i = 0,\n len = str.length;\n\n for (; len >= 4; ++i, len -= 4) {\n k = str.charCodeAt(i) & 0xff | (str.charCodeAt(++i) & 0xff) << 8 | (str.charCodeAt(++i) & 0xff) << 16 | (str.charCodeAt(++i) & 0xff) << 24;\n k =\n /* Math.imul(k, m): */\n (k & 0xffff) * 0x5bd1e995 + ((k >>> 16) * 0xe995 << 16);\n k ^=\n /* k >>> r: */\n k >>> 24;\n h =\n /* Math.imul(k, m): */\n (k & 0xffff) * 0x5bd1e995 + ((k >>> 16) * 0xe995 << 16) ^\n /* Math.imul(h, m): */\n (h & 0xffff) * 0x5bd1e995 + ((h >>> 16) * 0xe995 << 16);\n } // Handle the last few bytes of the input array\n\n\n switch (len) {\n case 3:\n h ^= (str.charCodeAt(i + 2) & 0xff) << 16;\n\n case 2:\n h ^= (str.charCodeAt(i + 1) & 0xff) << 8;\n\n case 1:\n h ^= str.charCodeAt(i) & 0xff;\n h =\n /* Math.imul(h, m): */\n (h & 0xffff) * 0x5bd1e995 + ((h >>> 16) * 0xe995 << 16);\n } // Do a few final mixes of the hash to ensure the last few\n // bytes are well-incorporated.\n\n\n h ^= h >>> 13;\n h =\n /* Math.imul(h, m): */\n (h & 0xffff) * 0x5bd1e995 + ((h >>> 16) * 0xe995 << 16);\n return ((h ^ h >>> 15) >>> 0).toString(36);\n}\n\nexport { murmur2 as default };\n","var unitlessKeys = {\n animationIterationCount: 1,\n aspectRatio: 1,\n borderImageOutset: 1,\n borderImageSlice: 1,\n borderImageWidth: 1,\n boxFlex: 1,\n boxFlexGroup: 1,\n boxOrdinalGroup: 1,\n columnCount: 1,\n columns: 1,\n flex: 1,\n flexGrow: 1,\n flexPositive: 1,\n flexShrink: 1,\n flexNegative: 1,\n flexOrder: 1,\n gridRow: 1,\n gridRowEnd: 1,\n gridRowSpan: 1,\n gridRowStart: 1,\n gridColumn: 1,\n gridColumnEnd: 1,\n gridColumnSpan: 1,\n gridColumnStart: 1,\n msGridRow: 1,\n msGridRowSpan: 1,\n msGridColumn: 1,\n msGridColumnSpan: 1,\n fontWeight: 1,\n lineHeight: 1,\n opacity: 1,\n order: 1,\n orphans: 1,\n scale: 1,\n tabSize: 1,\n widows: 1,\n zIndex: 1,\n zoom: 1,\n WebkitLineClamp: 1,\n // SVG-related properties\n fillOpacity: 1,\n floodOpacity: 1,\n stopOpacity: 1,\n strokeDasharray: 1,\n strokeDashoffset: 1,\n strokeMiterlimit: 1,\n strokeOpacity: 1,\n strokeWidth: 1\n};\n\nexport { unitlessKeys as default };\n","import hashString from '@emotion/hash';\nimport unitless from '@emotion/unitless';\nimport memoize from '@emotion/memoize';\n\nvar isDevelopment = false;\n\nvar hyphenateRegex = /[A-Z]|^ms/g;\nvar animationRegex = /_EMO_([^_]+?)_([^]*?)_EMO_/g;\n\nvar isCustomProperty = function isCustomProperty(property) {\n return property.charCodeAt(1) === 45;\n};\n\nvar isProcessableValue = function isProcessableValue(value) {\n return value != null && typeof value !== 'boolean';\n};\n\nvar processStyleName = /* #__PURE__ */memoize(function (styleName) {\n return isCustomProperty(styleName) ? styleName : styleName.replace(hyphenateRegex, '-$&').toLowerCase();\n});\n\nvar processStyleValue = function processStyleValue(key, value) {\n switch (key) {\n case 'animation':\n case 'animationName':\n {\n if (typeof value === 'string') {\n return value.replace(animationRegex, function (match, p1, p2) {\n cursor = {\n name: p1,\n styles: p2,\n next: cursor\n };\n return p1;\n });\n }\n }\n }\n\n if (unitless[key] !== 1 && !isCustomProperty(key) && typeof value === 'number' && value !== 0) {\n return value + 'px';\n }\n\n return value;\n};\n\nvar noComponentSelectorMessage = 'Component selectors can only be used in conjunction with ' + '@emotion/babel-plugin, the swc Emotion plugin, or another Emotion-aware ' + 'compiler transform.';\n\nfunction handleInterpolation(mergedProps, registered, interpolation) {\n if (interpolation == null) {\n return '';\n }\n\n var componentSelector = interpolation;\n\n if (componentSelector.__emotion_styles !== undefined) {\n\n return componentSelector;\n }\n\n switch (typeof interpolation) {\n case 'boolean':\n {\n return '';\n }\n\n case 'object':\n {\n var keyframes = interpolation;\n\n if (keyframes.anim === 1) {\n cursor = {\n name: keyframes.name,\n styles: keyframes.styles,\n next: cursor\n };\n return keyframes.name;\n }\n\n var serializedStyles = interpolation;\n\n if (serializedStyles.styles !== undefined) {\n var next = serializedStyles.next;\n\n if (next !== undefined) {\n // not the most efficient thing ever but this is a pretty rare case\n // and there will be very few iterations of this generally\n while (next !== undefined) {\n cursor = {\n name: next.name,\n styles: next.styles,\n next: cursor\n };\n next = next.next;\n }\n }\n\n var styles = serializedStyles.styles + \";\";\n return styles;\n }\n\n return createStringFromObject(mergedProps, registered, interpolation);\n }\n\n case 'function':\n {\n if (mergedProps !== undefined) {\n var previousCursor = cursor;\n var result = interpolation(mergedProps);\n cursor = previousCursor;\n return handleInterpolation(mergedProps, registered, result);\n }\n\n break;\n }\n } // finalize string values (regular strings and functions interpolated into css calls)\n\n\n var asString = interpolation;\n\n if (registered == null) {\n return asString;\n }\n\n var cached = registered[asString];\n return cached !== undefined ? cached : asString;\n}\n\nfunction createStringFromObject(mergedProps, registered, obj) {\n var string = '';\n\n if (Array.isArray(obj)) {\n for (var i = 0; i < obj.length; i++) {\n string += handleInterpolation(mergedProps, registered, obj[i]) + \";\";\n }\n } else {\n for (var key in obj) {\n var value = obj[key];\n\n if (typeof value !== 'object') {\n var asString = value;\n\n if (registered != null && registered[asString] !== undefined) {\n string += key + \"{\" + registered[asString] + \"}\";\n } else if (isProcessableValue(asString)) {\n string += processStyleName(key) + \":\" + processStyleValue(key, asString) + \";\";\n }\n } else {\n if (key === 'NO_COMPONENT_SELECTOR' && isDevelopment) {\n throw new Error(noComponentSelectorMessage);\n }\n\n if (Array.isArray(value) && typeof value[0] === 'string' && (registered == null || registered[value[0]] === undefined)) {\n for (var _i = 0; _i < value.length; _i++) {\n if (isProcessableValue(value[_i])) {\n string += processStyleName(key) + \":\" + processStyleValue(key, value[_i]) + \";\";\n }\n }\n } else {\n var interpolated = handleInterpolation(mergedProps, registered, value);\n\n switch (key) {\n case 'animation':\n case 'animationName':\n {\n string += processStyleName(key) + \":\" + interpolated + \";\";\n break;\n }\n\n default:\n {\n\n string += key + \"{\" + interpolated + \"}\";\n }\n }\n }\n }\n }\n }\n\n return string;\n}\n\nvar labelPattern = /label:\\s*([^\\s;{]+)\\s*(;|$)/g; // this is the cursor for keyframes\n// keyframes are stored on the SerializedStyles object as a linked list\n\nvar cursor;\nfunction serializeStyles(args, registered, mergedProps) {\n if (args.length === 1 && typeof args[0] === 'object' && args[0] !== null && args[0].styles !== undefined) {\n return args[0];\n }\n\n var stringMode = true;\n var styles = '';\n cursor = undefined;\n var strings = args[0];\n\n if (strings == null || strings.raw === undefined) {\n stringMode = false;\n styles += handleInterpolation(mergedProps, registered, strings);\n } else {\n var asTemplateStringsArr = strings;\n\n styles += asTemplateStringsArr[0];\n } // we start at 1 since we've already handled the first arg\n\n\n for (var i = 1; i < args.length; i++) {\n styles += handleInterpolation(mergedProps, registered, args[i]);\n\n if (stringMode) {\n var templateStringsArr = strings;\n\n styles += templateStringsArr[i];\n }\n } // using a global regex with .exec is stateful so lastIndex has to be reset each time\n\n\n labelPattern.lastIndex = 0;\n var identifierName = '';\n var match; // https://esbench.com/bench/5b809c2cf2949800a0f61fb5\n\n while ((match = labelPattern.exec(styles)) !== null) {\n identifierName += '-' + match[1];\n }\n\n var name = hashString(styles) + identifierName;\n\n return {\n name: name,\n styles: styles,\n next: cursor\n };\n}\n\nexport { serializeStyles };\n","import * as React from 'react';\n\nvar syncFallback = function syncFallback(create) {\n return create();\n};\n\nvar useInsertionEffect = React['useInsertion' + 'Effect'] ? React['useInsertion' + 'Effect'] : false;\nvar useInsertionEffectAlwaysWithSyncFallback = useInsertionEffect || syncFallback;\nvar useInsertionEffectWithLayoutFallback = useInsertionEffect || React.useLayoutEffect;\n\nexport { useInsertionEffectAlwaysWithSyncFallback, useInsertionEffectWithLayoutFallback };\n","import * as React from 'react';\nimport { useContext, forwardRef } from 'react';\nimport createCache from '@emotion/cache';\nimport _extends from '@babel/runtime/helpers/esm/extends';\nimport weakMemoize from '@emotion/weak-memoize';\nimport hoistNonReactStatics from '../_isolated-hnrs/dist/emotion-react-_isolated-hnrs.browser.esm.js';\nimport { getRegisteredStyles, registerStyles, insertStyles } from '@emotion/utils';\nimport { serializeStyles } from '@emotion/serialize';\nimport { useInsertionEffectAlwaysWithSyncFallback } from '@emotion/use-insertion-effect-with-fallbacks';\n\nvar isDevelopment = false;\n\nvar EmotionCacheContext = /* #__PURE__ */React.createContext( // we're doing this to avoid preconstruct's dead code elimination in this one case\n// because this module is primarily intended for the browser and node\n// but it's also required in react native and similar environments sometimes\n// and we could have a special build just for that\n// but this is much easier and the native packages\n// might use a different theme context in the future anyway\ntypeof HTMLElement !== 'undefined' ? /* #__PURE__ */createCache({\n key: 'css'\n}) : null);\n\nvar CacheProvider = EmotionCacheContext.Provider;\nvar __unsafe_useEmotionCache = function useEmotionCache() {\n return useContext(EmotionCacheContext);\n};\n\nvar withEmotionCache = function withEmotionCache(func) {\n return /*#__PURE__*/forwardRef(function (props, ref) {\n // the cache will never be null in the browser\n var cache = useContext(EmotionCacheContext);\n return func(props, cache, ref);\n });\n};\n\nvar ThemeContext = /* #__PURE__ */React.createContext({});\n\nvar useTheme = function useTheme() {\n return React.useContext(ThemeContext);\n};\n\nvar getTheme = function getTheme(outerTheme, theme) {\n if (typeof theme === 'function') {\n var mergedTheme = theme(outerTheme);\n\n return mergedTheme;\n }\n\n return _extends({}, outerTheme, theme);\n};\n\nvar createCacheWithTheme = /* #__PURE__ */weakMemoize(function (outerTheme) {\n return weakMemoize(function (theme) {\n return getTheme(outerTheme, theme);\n });\n});\nvar ThemeProvider = function ThemeProvider(props) {\n var theme = React.useContext(ThemeContext);\n\n if (props.theme !== theme) {\n theme = createCacheWithTheme(theme)(props.theme);\n }\n\n return /*#__PURE__*/React.createElement(ThemeContext.Provider, {\n value: theme\n }, props.children);\n};\nfunction withTheme(Component) {\n var componentName = Component.displayName || Component.name || 'Component';\n var WithTheme = /*#__PURE__*/React.forwardRef(function render(props, ref) {\n var theme = React.useContext(ThemeContext);\n return /*#__PURE__*/React.createElement(Component, _extends({\n theme: theme,\n ref: ref\n }, props));\n });\n WithTheme.displayName = \"WithTheme(\" + componentName + \")\";\n return hoistNonReactStatics(WithTheme, Component);\n}\n\nvar hasOwn = {}.hasOwnProperty;\n\nvar typePropName = '__EMOTION_TYPE_PLEASE_DO_NOT_USE__';\nvar createEmotionProps = function createEmotionProps(type, props) {\n\n var newProps = {};\n\n for (var _key in props) {\n if (hasOwn.call(props, _key)) {\n newProps[_key] = props[_key];\n }\n }\n\n newProps[typePropName] = type; // Runtime labeling is an opt-in feature because:\n\n return newProps;\n};\n\nvar Insertion = function Insertion(_ref) {\n var cache = _ref.cache,\n serialized = _ref.serialized,\n isStringTag = _ref.isStringTag;\n registerStyles(cache, serialized, isStringTag);\n useInsertionEffectAlwaysWithSyncFallback(function () {\n return insertStyles(cache, serialized, isStringTag);\n });\n\n return null;\n};\n\nvar Emotion = /* #__PURE__ */withEmotionCache(function (props, cache, ref) {\n var cssProp = props.css; // so that using `css` from `emotion` and passing the result to the css prop works\n // not passing the registered cache to serializeStyles because it would\n // make certain babel optimisations not possible\n\n if (typeof cssProp === 'string' && cache.registered[cssProp] !== undefined) {\n cssProp = cache.registered[cssProp];\n }\n\n var WrappedComponent = props[typePropName];\n var registeredStyles = [cssProp];\n var className = '';\n\n if (typeof props.className === 'string') {\n className = getRegisteredStyles(cache.registered, registeredStyles, props.className);\n } else if (props.className != null) {\n className = props.className + \" \";\n }\n\n var serialized = serializeStyles(registeredStyles, undefined, React.useContext(ThemeContext));\n\n className += cache.key + \"-\" + serialized.name;\n var newProps = {};\n\n for (var _key2 in props) {\n if (hasOwn.call(props, _key2) && _key2 !== 'css' && _key2 !== typePropName && (!isDevelopment )) {\n newProps[_key2] = props[_key2];\n }\n }\n\n newProps.className = className;\n\n if (ref) {\n newProps.ref = ref;\n }\n\n return /*#__PURE__*/React.createElement(React.Fragment, null, /*#__PURE__*/React.createElement(Insertion, {\n cache: cache,\n serialized: serialized,\n isStringTag: typeof WrappedComponent === 'string'\n }), /*#__PURE__*/React.createElement(WrappedComponent, newProps));\n});\n\nvar Emotion$1 = Emotion;\n\nexport { CacheProvider as C, Emotion$1 as E, ThemeContext as T, __unsafe_useEmotionCache as _, ThemeProvider as a, withTheme as b, createEmotionProps as c, hasOwn as h, isDevelopment as i, useTheme as u, withEmotionCache as w };\n","import * as ReactJSXRuntime from 'react/jsx-runtime';\nimport { h as hasOwn, E as Emotion, c as createEmotionProps } from '../../dist/emotion-element-f0de968e.browser.esm.js';\nimport 'react';\nimport '@emotion/cache';\nimport '@babel/runtime/helpers/extends';\nimport '@emotion/weak-memoize';\nimport '../../_isolated-hnrs/dist/emotion-react-_isolated-hnrs.browser.esm.js';\nimport 'hoist-non-react-statics';\nimport '@emotion/utils';\nimport '@emotion/serialize';\nimport '@emotion/use-insertion-effect-with-fallbacks';\n\nvar Fragment = ReactJSXRuntime.Fragment;\nvar jsx = function jsx(type, props, key) {\n if (!hasOwn.call(props, 'css')) {\n return ReactJSXRuntime.jsx(type, props, key);\n }\n\n return ReactJSXRuntime.jsx(Emotion, createEmotionProps(type, props), key);\n};\nvar jsxs = function jsxs(type, props, key) {\n if (!hasOwn.call(props, 'css')) {\n return ReactJSXRuntime.jsxs(type, props, key);\n }\n\n return ReactJSXRuntime.jsxs(Emotion, createEmotionProps(type, props), key);\n};\n\nexport { Fragment, jsx, jsxs };\n","/**\n * @license React\n * react-compiler-runtime.production.js\n *\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\n\"use strict\";\nvar ReactSharedInternals =\n require(\"react\").__CLIENT_INTERNALS_DO_NOT_USE_OR_WARN_USERS_THEY_CANNOT_UPGRADE;\nexports.c = function (size) {\n return ReactSharedInternals.H.useMemoCache(size);\n};\n","/**\n * @license React\n * react-compiler-runtime.development.js\n *\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\n\"use strict\";\n\"production\" !== process.env.NODE_ENV &&\n (function () {\n var ReactSharedInternals =\n require(\"react\").__CLIENT_INTERNALS_DO_NOT_USE_OR_WARN_USERS_THEY_CANNOT_UPGRADE;\n exports.c = function (size) {\n var dispatcher = ReactSharedInternals.H;\n null === dispatcher &&\n console.error(\n \"Invalid hook call. Hooks can only be called inside of the body of a function component. This could happen for one of the following reasons:\\n1. You might have mismatching versions of React and the renderer (such as React DOM)\\n2. You might be breaking the Rules of Hooks\\n3. You might have more than one copy of React in the same app\\nSee https://react.dev/link/invalid-hook-call for tips about how to debug and fix this problem.\"\n );\n return dispatcher.useMemoCache(size);\n };\n })();\n","/**\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\n'use strict';\n\nif (process.env.NODE_ENV === 'production') {\n module.exports = require('./cjs/react-compiler-runtime.production.js');\n} else {\n module.exports = require('./cjs/react-compiler-runtime.development.js');\n}\n","/**\n * Checkbox 组件样式\n * 基于 Emotion + Theme Token\n */\n\nimport { css } from '@emotion/react';\nimport type { Theme } from '@kingsoft-ai/theme';\n\n// Checkbox 容器样式\nexport const checkboxContainer = css`\n display: inline-flex;\n align-items: center;\n cursor: pointer;\n user-select: none;\n position: relative;\n \n input[type=\"checkbox\"] {\n position: absolute;\n opacity: 0;\n width: 1px;\n height: 1px;\n margin: 0;\n padding: 0;\n border: 0;\n clip: rect(0 0 0 0);\n clip-path: inset(50%);\n white-space: nowrap;\n overflow: hidden;\n left: -9999px;\n -webkit-appearance: none;\n appearance: none;\n }\n \n &[data-disabled=\"true\"] {\n cursor: not-allowed;\n }\n`;\n\n// Checkbox 控件样式(实际的复选框)\nexport const checkboxControl = (theme: Theme) => css`\n position: relative;\n display: inline-flex;\n align-items: center;\n justify-content: center;\n flex-shrink: 0;\n width: ${theme.components.checkbox.control.size};\n height: ${theme.components.checkbox.control.size};\n border-radius: ${theme.components.checkbox.control.borderRadius};\n border: ${theme.components.checkbox.control.borderWidth} solid ${theme.components.checkbox.control.borderColor.default};\n background-color: ${theme.components.checkbox.control.background.default};\n transition: all ${theme.components.checkbox.transition};\n \n /* Hover 状态 */\n &[data-hover=\"true\"]:not([data-disabled=\"true\"]) {\n border-color: ${theme.components.checkbox.control.borderColor.hover};\n }\n \n /* Checked 状态 */\n &[data-checked=\"true\"]:not([data-disabled=\"true\"]) {\n background-color: ${theme.components.checkbox.control.background.checked};\n border-color: ${theme.components.checkbox.control.borderColor.checked};\n }\n \n /* Indeterminate 状态(半选) */\n &[data-indeterminate=\"true\"]:not([data-disabled=\"true\"]) {\n background-color: ${theme.components.checkbox.control.background.checked};\n border-color: ${theme.components.checkbox.control.borderColor.checked};\n }\n \n /* Disabled 未选中状态 */\n &[data-disabled=\"true\"]:not([data-checked=\"true\"]):not([data-indeterminate=\"true\"]) {\n background-color: ${theme.components.checkbox.control.background.disabled};\n border-color: ${theme.components.checkbox.control.borderColor.disabled};\n }\n \n /* Disabled 选中状态 */\n &[data-disabled=\"true\"][data-checked=\"true\"],\n &[data-disabled=\"true\"][data-indeterminate=\"true\"] {\n background-color: ${theme.components.checkbox.control.background.disabledChecked};\n border-color: ${theme.components.checkbox.control.borderColor.disabledChecked};\n }\n \n /* Focus 状态 */\n input:focus-visible + & {\n box-shadow: ${theme.components.checkbox.focusRing};\n }\n`;\n\n// Checkbox 图标样式\nexport const checkboxIcon = (theme: Theme) => css`\n color: ${theme.components.checkbox.control.icon.color};\n width: ${theme.components.checkbox.control.icon.size};\n height: ${theme.components.checkbox.control.icon.size};\n opacity: 0;\n transform: scale(0.8);\n transition: all ${theme.components.checkbox.transition};\n \n &[data-checked=\"true\"] {\n opacity: 1;\n transform: scale(1);\n }\n`;\n\n// Checkbox 标签文字样式\nexport const checkboxLabel = (theme: Theme) => css`\n margin-left: ${theme.components.checkbox.gap};\n font-size: ${theme.components.checkbox.text.label.fontSize};\n line-height: ${theme.components.checkbox.text.label.lineHeight};\n font-weight: ${theme.components.checkbox.text.label.fontWeight};\n color: ${theme.components.checkbox.text.label.color};\n transition: color ${theme.components.checkbox.transition};\n \n &[data-disabled=\"true\"] {\n color: ${theme.components.checkbox.text.label.disabled};\n }\n`;\n\n","/**\n * Checkbox 组件\n * 基于 Figma 设计稿 1:1 还原\n */\n\n/** @jsxImportSource @emotion/react */\nimport React, { forwardRef, useEffect, useRef, useState } from 'react';\nimport { useTheme } from '@emotion/react';\nimport type { Theme } from '@kingsoft-ai/theme';\nimport {\n checkboxContainer,\n checkboxControl,\n checkboxIcon,\n checkboxLabel,\n} from './Checkbox.style';\n\n// ============================================================================\n// 类型定义\n// ============================================================================\n\nexport interface CheckboxProps\n extends Omit<React.InputHTMLAttributes<HTMLInputElement>, 'type' | 'size' | 'onChange'> {\n /**\n * 是否选中\n */\n checked?: boolean;\n \n /**\n * 默认是否选中(非受控)\n */\n defaultChecked?: boolean;\n \n /**\n * 半选状态(用于全选场景)\n */\n indeterminate?: boolean;\n \n /**\n * 是否禁用\n */\n disabled?: boolean;\n \n /**\n * 标签文字\n */\n label?: React.ReactNode;\n \n /**\n * 值改变回调\n */\n onChange?: (checked: boolean, event: React.ChangeEvent<HTMLInputElement>) => void;\n \n /**\n * 自定义类名\n */\n className?: string;\n \n /**\n * 自定义样式\n */\n style?: React.CSSProperties;\n}\n\n// ============================================================================\n// Checkbox 图标组件\n// ============================================================================\n\n/**\n * 勾选图标(✓)\n */\nconst CheckIcon: React.FC<{ checked: boolean }> = ({ checked }) => {\n const theme = useTheme() as Theme;\n \n return (\n <svg\n css={checkboxIcon(theme)}\n data-checked={checked}\n viewBox=\"0 0 16 16\"\n fill=\"none\"\n xmlns=\"http://www.w3.org/2000/svg\"\n >\n <path\n d=\"M13.3332 4.5L5.99984 11.8333L2.6665 8.5\"\n stroke=\"currentColor\"\n strokeWidth=\"2\"\n strokeLinecap=\"round\"\n strokeLinejoin=\"round\"\n />\n </svg>\n );\n};\n\n/**\n * 半选图标(—)\n */\nconst IndeterminateIcon: React.FC<{ checked: boolean }> = ({ checked }) => {\n const theme = useTheme() as Theme;\n \n return (\n <svg\n css={checkboxIcon(theme)}\n data-checked={checked}\n viewBox=\"0 0 16 16\"\n fill=\"none\"\n xmlns=\"http://www.w3.org/2000/svg\"\n >\n <path\n d=\"M3.5 8H12.5\"\n stroke=\"currentColor\"\n strokeWidth=\"2\"\n strokeLinecap=\"round\"\n />\n </svg>\n );\n};\n\n// ============================================================================\n// Checkbox 组件\n// ============================================================================\n\nexport const Checkbox = forwardRef<HTMLInputElement, CheckboxProps>(\n (props, ref) => {\n const {\n checked: controlledChecked,\n defaultChecked = false,\n indeterminate = false,\n disabled = false,\n label,\n onChange,\n className,\n style,\n ...inputProps\n } = props;\n\n const theme = useTheme() as Theme;\n const inputRef = useRef<HTMLInputElement>(null);\n const [hover, setHover] = useState(false);\n \n // 内部状态管理(非受控)\n const [internalChecked, setInternalChecked] = useState(defaultChecked);\n \n // 判断是否受控\n const isControlled = controlledChecked !== undefined;\n const checked = isControlled ? controlledChecked : internalChecked;\n\n // 合并 refs\n useEffect(() => {\n if (ref) {\n if (typeof ref === 'function') {\n ref(inputRef.current);\n } else {\n ref.current = inputRef.current;\n }\n }\n }, [ref]);\n\n // 设置 indeterminate 属性(原生 HTML 属性只能通过 JS 设置)\n useEffect(() => {\n if (inputRef.current) {\n inputRef.current.indeterminate = indeterminate;\n }\n }, [indeterminate]);\n\n // 处理点击\n const handleChange = (event: React.ChangeEvent<HTMLInputElement>) => {\n if (disabled) return;\n \n const newChecked = event.target.checked;\n \n if (!isControlled) {\n setInternalChecked(newChecked);\n }\n \n onChange?.(newChecked, event);\n };\n\n return (\n <label\n css={checkboxContainer}\n data-disabled={disabled}\n className={className}\n style={style}\n onMouseEnter={() => !disabled && setHover(true)}\n onMouseLeave={() => !disabled && setHover(false)}\n >\n <input\n ref={inputRef}\n type=\"checkbox\"\n checked={checked}\n disabled={disabled}\n onChange={handleChange}\n {...inputProps}\n />\n \n <span\n css={checkboxControl(theme)}\n data-hover={hover}\n data-checked={checked && !indeterminate}\n data-indeterminate={indeterminate}\n data-disabled={disabled}\n >\n {indeterminate ? (\n <IndeterminateIcon checked={true} />\n ) : (\n <CheckIcon checked={checked} />\n )}\n </span>\n \n {label && (\n <span\n css={checkboxLabel(theme)}\n data-disabled={disabled}\n >\n {label}\n </span>\n )}\n </label>\n );\n }\n);\n\nCheckbox.displayName = 'Checkbox';\n\nexport default Checkbox;\n\n","import r1, { forwardRef as o } from \"react\";\nvar w = { exports: {} }, m = {};\n/**\n * @license React\n * react-jsx-runtime.production.js\n *\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\nvar F;\nfunction t1() {\n if (F) return m;\n F = 1;\n var t = Symbol.for(\"react.transitional.element\"), n = Symbol.for(\"react.fragment\");\n function C(f, d, c) {\n var p = null;\n if (c !== void 0 && (p = \"\" + c), d.key !== void 0 && (p = \"\" + d.key), \"key\" in d) {\n c = {};\n for (var h in d)\n h !== \"key\" && (c[h] = d[h]);\n } else c = d;\n return d = c.ref, {\n $$typeof: t,\n type: f,\n key: p,\n ref: d !== void 0 ? d : null,\n props: c\n };\n }\n return m.Fragment = n, m.jsx = C, m.jsxs = C, m;\n}\nvar x = {};\n/**\n * @license React\n * react-jsx-runtime.development.js\n *\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\nvar W;\nfunction n1() {\n return W || (W = 1, process.env.NODE_ENV !== \"production\" && function() {\n function t(e) {\n if (e == null) return null;\n if (typeof e == \"function\")\n return e.$$typeof === Q ? null : e.displayName || e.name || null;\n if (typeof e == \"string\") return e;\n switch (e) {\n case R:\n return \"Fragment\";\n case I:\n return \"Profiler\";\n case D:\n return \"StrictMode\";\n case G:\n return \"Suspense\";\n case z:\n return \"SuspenseList\";\n case X:\n return \"Activity\";\n }\n if (typeof e == \"object\")\n switch (typeof e.tag == \"number\" && console.error(\n \"Received an unexpected object in getComponentNameFromType(). This is likely a bug in React. Please file an issue.\"\n ), e.$$typeof) {\n case U:\n return \"Portal\";\n case B:\n return e.displayName || \"Context\";\n case $:\n return (e._context.displayName || \"Context\") + \".Consumer\";\n case q:\n var l = e.render;\n return e = e.displayName, e || (e = l.displayName || l.name || \"\", e = e !== \"\" ? \"ForwardRef(\" + e + \")\" : \"ForwardRef\"), e;\n case J:\n return l = e.displayName || null, l !== null ? l : t(e.type) || \"Memo\";\n case O:\n l = e._payload, e = e._init;\n try {\n return t(e(l));\n } catch {\n }\n }\n return null;\n }\n function n(e) {\n return \"\" + e;\n }\n function C(e) {\n try {\n n(e);\n var l = !1;\n } catch {\n l = !0;\n }\n if (l) {\n l = console;\n var s = l.error, a = typeof Symbol == \"function\" && Symbol.toStringTag && e[Symbol.toStringTag] || e.constructor.name || \"Object\";\n return s.call(\n l,\n \"The provided key is an unsupported type %s. This value must be coerced to a string before using it here.\",\n a\n ), n(e);\n }\n }\n function f(e) {\n if (e === R) return \"<>\";\n if (typeof e == \"object\" && e !== null && e.$$typeof === O)\n return \"<...>\";\n try {\n var l = t(e);\n return l ? \"<\" + l + \">\" : \"<...>\";\n } catch {\n return \"<...>\";\n }\n }\n function d() {\n var e = M.A;\n return e === null ? null : e.getOwner();\n }\n function c() {\n return Error(\"react-stack-top-frame\");\n }\n function p(e) {\n if (A.call(e, \"key\")) {\n var l = Object.getOwnPropertyDescriptor(e, \"key\").get;\n if (l && l.isReactWarning) return !1;\n }\n return e.key !== void 0;\n }\n function h(e, l) {\n function s() {\n S || (S = !0, console.error(\n \"%s: `key` is not a prop. Trying to access it will result in `undefined` being returned. If you need to access the same value within the child component, you should pass it as a different prop. (https://react.dev/link/special-props)\",\n l\n ));\n }\n s.isReactWarning = !0, Object.defineProperty(e, \"key\", {\n get: s,\n configurable: !0\n });\n }\n function j() {\n var e = t(this.type);\n return V[e] || (V[e] = !0, console.error(\n \"Accessing element.ref was removed in React 19. ref is now a regular prop. It will be removed from the JSX Element type in a future release.\"\n )), e = this.props.ref, e !== void 0 ? e : null;\n }\n function Y(e, l, s, a, k, E) {\n var u = s.ref;\n return e = {\n $$typeof: g,\n type: e,\n key: l,\n props: s,\n _owner: a\n }, (u !== void 0 ? u : null) !== null ? Object.defineProperty(e, \"ref\", {\n enumerable: !1,\n get: j\n }) : Object.defineProperty(e, \"ref\", { enumerable: !1, value: null }), e._store = {}, Object.defineProperty(e._store, \"validated\", {\n configurable: !1,\n enumerable: !1,\n writable: !0,\n value: 0\n }), Object.defineProperty(e, \"_debugInfo\", {\n configurable: !1,\n enumerable: !1,\n writable: !0,\n value: null\n }), Object.defineProperty(e, \"_debugStack\", {\n configurable: !1,\n enumerable: !1,\n writable: !0,\n value: k\n }), Object.defineProperty(e, \"_debugTask\", {\n configurable: !1,\n enumerable: !1,\n writable: !0,\n value: E\n }), Object.freeze && (Object.freeze(e.props), Object.freeze(e)), e;\n }\n function b(e, l, s, a, k, E) {\n var u = l.children;\n if (u !== void 0)\n if (a)\n if (K(u)) {\n for (a = 0; a < u.length; a++)\n T(u[a]);\n Object.freeze && Object.freeze(u);\n } else\n console.error(\n \"React.jsx: Static children should always be an array. You are likely explicitly calling React.jsxs or React.jsxDEV. Use the Babel transform instead.\"\n );\n else T(u);\n if (A.call(l, \"key\")) {\n u = t(e);\n var L = Object.keys(l).filter(function(e1) {\n return e1 !== \"key\";\n });\n a = 0 < L.length ? \"{key: someKey, \" + L.join(\": ..., \") + \": ...}\" : \"{key: someKey}\", Z[u + a] || (L = 0 < L.length ? \"{\" + L.join(\": ..., \") + \": ...}\" : \"{}\", console.error(\n `A props object containing a \"key\" prop is being spread into JSX:\n let props = %s;\n <%s {...props} />\nReact keys must be passed directly to JSX without using spread:\n let props = %s;\n <%s key={someKey} {...props} />`,\n a,\n u,\n L,\n u\n ), Z[u + a] = !0);\n }\n if (u = null, s !== void 0 && (C(s), u = \"\" + s), p(l) && (C(l.key), u = \"\" + l.key), \"key\" in l) {\n s = {};\n for (var y in l)\n y !== \"key\" && (s[y] = l[y]);\n } else s = l;\n return u && h(\n s,\n typeof e == \"function\" ? e.displayName || e.name || \"Unknown\" : e\n ), Y(\n e,\n u,\n s,\n d(),\n k,\n E\n );\n }\n function T(e) {\n N(e) ? e._store && (e._store.validated = 1) : typeof e == \"object\" && e !== null && e.$$typeof === O && (e._payload.status === \"fulfilled\" ? N(e._payload.value) && e._payload.value._store && (e._payload.value._store.validated = 1) : e._store && (e._store.validated = 1));\n }\n function N(e) {\n return typeof e == \"object\" && e !== null && e.$$typeof === g;\n }\n var v = r1, g = Symbol.for(\"react.transitional.element\"), U = Symbol.for(\"react.portal\"), R = Symbol.for(\"react.fragment\"), D = Symbol.for(\"react.strict_mode\"), I = Symbol.for(\"react.profiler\"), $ = Symbol.for(\"react.consumer\"), B = Symbol.for(\"react.context\"), q = Symbol.for(\"react.forward_ref\"), G = Symbol.for(\"react.suspense\"), z = Symbol.for(\"react.suspense_list\"), J = Symbol.for(\"react.memo\"), O = Symbol.for(\"react.lazy\"), X = Symbol.for(\"react.activity\"), Q = Symbol.for(\"react.client.reference\"), M = v.__CLIENT_INTERNALS_DO_NOT_USE_OR_WARN_USERS_THEY_CANNOT_UPGRADE, A = Object.prototype.hasOwnProperty, K = Array.isArray, _ = console.createTask ? console.createTask : function() {\n return null;\n };\n v = {\n react_stack_bottom_frame: function(e) {\n return e();\n }\n };\n var S, V = {}, H = v.react_stack_bottom_frame.bind(\n v,\n c\n )(), P = _(f(c)), Z = {};\n x.Fragment = R, x.jsx = function(e, l, s) {\n var a = 1e4 > M.recentlyCreatedOwnerStacks++;\n return b(\n e,\n l,\n s,\n !1,\n a ? Error(\"react-stack-top-frame\") : H,\n a ? _(f(e)) : P\n );\n }, x.jsxs = function(e, l, s) {\n var a = 1e4 > M.recentlyCreatedOwnerStacks++;\n return b(\n e,\n l,\n s,\n !0,\n a ? Error(\"react-stack-top-frame\") : H,\n a ? _(f(e)) : P\n );\n };\n }()), x;\n}\nprocess.env.NODE_ENV === \"production\" ? w.exports = t1() : w.exports = n1();\nvar r = w.exports;\nconst i = o(\n ({\n children: t,\n size: n = 24,\n color: C = \"currentColor\",\n viewBox: f = \"0 0 24 24\",\n useFill: d = !1,\n strokeWidth: c = 1.5,\n ...p\n }, h) => {\n const j = {\n ref: h,\n xmlns: \"http://www.w3.org/2000/svg\",\n width: n,\n height: n,\n viewBox: f,\n ...p\n };\n return d ? /* @__PURE__ */ r.jsx(\"svg\", { ...j, fill: C, children: t }) : /* @__PURE__ */ r.jsx(\n \"svg\",\n {\n ...j,\n fill: \"none\",\n stroke: C,\n strokeWidth: c,\n strokeLinecap: \"round\",\n strokeLinejoin: \"round\",\n children: t\n }\n );\n }\n);\ni.displayName = \"IconBase\";\nconst l1 = o((t, n) => /* @__PURE__ */ r.jsx(i, { ref: n, ...t, viewBox: \"0 0 22 22\", useFill: !0, children: /* @__PURE__ */ r.jsx(\n \"path\",\n {\n d: \"M0.31074 10.9704C0.310783 10.5562 0.646483 10.2205 1.06066 10.2205L10.2213 10.2218L10.222 1.06742C10.2223 0.653481 10.5579 0.317504 10.9719 0.317505C11.3858 0.317611 11.7215 0.653547 11.7218 1.06742L11.7211 10.2218L20.8824 10.2225C21.2965 10.2227 21.6324 10.5583 21.6324 10.9724C21.6323 11.3865 21.2965 11.7222 20.8824 11.7224L11.7211 11.7217L11.7218 20.8706C11.7218 21.2847 11.386 21.6204 10.9719 21.6205C10.5577 21.6205 10.222 21.2847 10.222 20.8706L10.2213 11.7217L1.06066 11.7203C0.646473 11.7202 0.310739 11.3845 0.31074 10.9704Z\",\n fill: \"currentColor\"\n }\n) }));\nl1.displayName = \"AddOutline\";\nconst o1 = o((t, n) => /* @__PURE__ */ r.jsx(i, { ref: n, ...t, children: /* @__PURE__ */ r.jsx(\"path\", { d: \"M5 12h14m0 0l-7-7m7 7l-7 7\" }) }));\no1.displayName = \"ArrowRightOutline\";\nconst i1 = o((t, n) => /* @__PURE__ */ r.jsx(i, { ref: n, ...t, children: /* @__PURE__ */ r.jsx(\"path\", { d: \"M19 12H5m0 0l7-7m-7 7l7 7\" }) }));\ni1.displayName = \"ArrowLeftOutline\";\nconst s1 = o((t, n) => /* @__PURE__ */ r.jsxs(i, { ref: n, ...t, useFill: !0, children: [\n /* @__PURE__ */ r.jsx(\n \"path\",\n {\n fillRule: \"evenodd\",\n clipRule: \"evenodd\",\n d: \"M3.80273 8.19824C3.38873 8.19824 3.05273 7.86224 3.05273 7.44824V5.30124C3.06573 2.36324 5.44173 0.000244141 8.35473 0.000244141H8.37473C10.6307 0.000244141 12.6447 1.43324 13.3837 3.56724C13.5197 3.95824 13.3117 4.38524 12.9197 4.52124C12.5287 4.65824 12.1017 4.44924 11.9657 4.05724C11.4367 2.52824 9.99173 1.50024 8.37173 1.50024H8.35773C6.26573 1.50024 4.56173 3.19424 4.55273 5.28424V7.44824C4.55273 7.86224 4.21673 8.19824 3.80273 8.19824Z\"\n }\n ),\n /* @__PURE__ */ r.jsx(\n \"path\",\n {\n fillRule: \"evenodd\",\n clipRule: \"evenodd\",\n d: \"M4.542 8.12695C2.864 8.12695 1.5 9.49195 1.5 11.17V15.458C1.5 17.136 2.864 18.501 4.542 18.501H12.184C13.861 18.501 15.226 17.136 15.226 15.458V11.17C15.226 9.49195 13.861 8.12695 12.184 8.12695H4.542ZM12.184 20.001H4.542C2.037 20.001 0 17.963 0 15.458V11.17C0 8.66495 2.037 6.62695 4.542 6.62695H12.184C14.688 6.62695 16.726 8.66495 16.726 11.17V15.458C16.726 17.963 14.688 20.001 12.184 20.001Z\"\n }\n ),\n /* @__PURE__ */ r.jsx(\n \"path\",\n {\n fillRule: \"evenodd\",\n clipRule: \"evenodd\",\n d: \"M8.36328 15.1748C7.94928 15.1748 7.61328 14.8388 7.61328 14.4248V12.2028C7.61328 11.7888 7.94928 11.4528 8.36328 11.4528C8.77728 11.4528 9.11328 11.7888 9.11328 12.2028V14.4248C9.11328 14.8388 8.77728 15.1748 8.36328 15.1748Z\"\n }\n )\n] }));\ns1.displayName = \"UnlockOutline\";\nconst a1 = o((t, n) => /* @__PURE__ */ r.jsxs(i, { ref: n, ...t, useFill: !0, children: [\n /* @__PURE__ */ r.jsx(\n \"path\",\n {\n fillRule: \"evenodd\",\n clipRule: \"evenodd\",\n d: \"M10 1.5C5.313 1.5 1.5 5.313 1.5 10C1.5 14.687 5.313 18.5 10 18.5C14.687 18.5 18.5 14.687 18.5 10C18.5 5.313 14.687 1.5 10 1.5ZM10 20C4.486 20 0 15.514 0 10C0 4.486 4.486 0 10 0C15.514 0 20 4.486 20 10C20 15.514 15.514 20 10 20Z\"\n }\n ),\n /* @__PURE__ */ r.jsx(\n \"path\",\n {\n fillRule: \"evenodd\",\n clipRule: \"evenodd\",\n d: \"M8.55858 14.2207C8.36658 14.2207 8.17358 14.1477 8.02758 13.9997C7.73558 13.7057 7.73658 13.2317 8.02958 12.9397L10.9816 9.99968L8.02958 7.06068C7.73658 6.76868 7.73558 6.29368 8.02758 5.99968C8.31958 5.70468 8.79358 5.70668 9.08758 5.99768L12.5736 9.46868C12.7146 9.60968 12.7936 9.80068 12.7936 9.99968C12.7936 10.1997 12.7146 10.3907 12.5736 10.5317L9.08758 14.0017C8.94158 14.1477 8.74958 14.2207 8.55858 14.2207Z\"\n }\n )\n] }));\na1.displayName = \"ArrowRightCircleOutline\";\nconst u1 = o((t, n) => /* @__PURE__ */ r.jsx(i, { ref: n, ...t, children: /* @__PURE__ */ r.jsx(\"path\", { d: \"M9 6l6 6-6 6\" }) }));\nu1.displayName = \"ChevronRightOutline\";\nconst d1 = o((t, n) => /* @__PURE__ */ r.jsx(i, { ref: n, ...t, children: /* @__PURE__ */ r.jsx(\"path\", { d: \"M15 6l-6 6 6 6\" }) }));\nd1.displayName = \"ChevronLeftOutline\";\nconst c1 = o((t, n) => /* @__PURE__ */ r.jsx(i, { ref: n, ...t, children: /* @__PURE__ */ r.jsx(\"path\", { d: \"M6 9l6 6 6-6\" }) }));\nc1.displayName = \"ChevronDownOutline\";\nconst C1 = o((t, n) => /* @__PURE__ */ r.jsx(i, { ref: n, ...t, children: /* @__PURE__ */ r.jsx(\"path\", { d: \"M18 15l-6-6-6 6\" }) }));\nC1.displayName = \"ChevronUpOutline\";\nconst f1 = o((t, n) => /* @__PURE__ */ r.jsx(i, { ref: n, ...t, children: /* @__PURE__ */ r.jsx(\"path\", { d: \"M12 5v14m-7-7h14\", stroke: \"currentColor\", strokeWidth: \"1.5\", strokeLinecap: \"round\", strokeLinejoin: \"round\" }) }));\nf1.displayName = \"PlusOutline\";\nconst p1 = o((t, n) => /* @__PURE__ */ r.jsxs(i, { ref: n, ...t, children: [\n /* @__PURE__ */ r.jsx(\n \"path\",\n {\n d: \"M11 2H9C4 2 2 4 2 9v6c0 5 2 7 7 7h6c5 0 7-2 7-7v-2\",\n stroke: \"currentColor\",\n strokeWidth: \"1.5\",\n strokeLinecap: \"round\",\n strokeLinejoin: \"round\"\n }\n ),\n /* @__PURE__ */ r.jsx(\n \"path\",\n {\n d: \"M16.04 3.02001L8.16 10.9C7.86 11.2 7.56 11.79 7.5 12.22L7.07 15.23C6.91 16.32 7.68 17.08 8.77 16.93L11.78 16.5C12.2 16.44 12.79 16.14 13.1 15.84L20.98 7.96001C22.34 6.60001 22.98 5.02001 20.98 3.02001C18.98 1.02001 17.4 1.66001 16.04 3.02001Z\",\n stroke: \"currentColor\",\n strokeWidth: \"1.5\",\n strokeMiterlimit: \"10\",\n strokeLinecap: \"round\",\n strokeLinejoin: \"round\"\n }\n ),\n /* @__PURE__ */ r.jsx(\n \"path\",\n {\n d: \"M14.91 4.1499C15.58 6.5399 17.45 8.4099 19.85 9.0899\",\n stroke: \"currentColor\",\n strokeWidth: \"1.5\",\n strokeMiterlimit: \"10\",\n strokeLinecap: \"round\",\n strokeLinejoin: \"round\"\n }\n )\n] }));\np1.displayName = \"EditSquareOutline\";\nconst h1 = o((t, n) => /* @__PURE__ */ r.jsxs(i, { ref: n, ...t, children: [\n /* @__PURE__ */ r.jsx(\n \"path\",\n {\n d: \"M13.26 3.6L5.05 12.29C4.74 12.62 4.44 13.27 4.38 13.72L4.01 16.96C3.88 18.13 4.72 18.93 5.88 18.73L9.1 18.18C9.55 18.1 10.18 17.77 10.49 17.43L18.7 8.74C20.12 7.24 20.76 5.53 18.55 3.44C16.35 1.37 14.68 2.1 13.26 3.6Z\",\n stroke: \"currentColor\",\n strokeWidth: \"1.5\",\n strokeMiterlimit: \"10\",\n strokeLinecap: \"round\",\n strokeLinejoin: \"round\"\n }\n ),\n /* @__PURE__ */ r.jsx(\n \"path\",\n {\n d: \"M11.89 5.05C12.32 7.81 14.56 9.92 17.34 10.2\",\n stroke: \"currentColor\",\n strokeWidth: \"1.5\",\n strokeMiterlimit: \"10\",\n strokeLinecap: \"round\",\n strokeLinejoin: \"round\"\n }\n ),\n /* @__PURE__ */ r.jsx(\n \"path\",\n {\n d: \"M3 22H21\",\n stroke: \"currentColor\",\n strokeWidth: \"1.5\",\n strokeMiterlimit: \"10\",\n strokeLinecap: \"round\",\n strokeLinejoin: \"round\"\n }\n )\n] }));\nh1.displayName = \"EditOutline\";\nconst L1 = o((t, n) => /* @__PURE__ */ r.jsx(i, { ref: n, ...t, children: /* @__PURE__ */ r.jsx(\"path\", { d: \"M21 5.98C17.67 5.65 14.32 5.48 10.98 5.48C9 5.48 7.02 5.58 5.04 5.78L3 5.98M8.5 4.97L8.72 3.66C8.88 2.71 9 2 10.69 2H13.31C15 2 15.13 2.75 15.28 3.67L15.5 4.97M18.85 9.14L18.2 19.21C18.09 20.78 18 22 15.21 22H8.79C6 22 5.91 20.78 5.8 19.21L5.15 9.14M10.33 16.5H13.66M9.5 12.5H14.5\" }) }));\nL1.displayName = \"DeleteOutline\";\nconst m1 = o((t, n) => /* @__PURE__ */ r.jsxs(i, { ref: n, ...t, children: [\n /* @__PURE__ */ r.jsx(\n \"path\",\n {\n d: \"M17 20.5H7C4 20.5 2 19 2 15.5V8.5C2 5 4 3.5 7 3.5H17C20 3.5 22 5 22 8.5V15.5C22 19 20 20.5 17 20.5Z\",\n stroke: \"currentColor\",\n strokeWidth: \"1.5\",\n strokeMiterlimit: \"10\",\n strokeLinecap: \"round\",\n strokeLinejoin: \"round\",\n fill: \"none\"\n }\n ),\n /* @__PURE__ */ r.jsx(\n \"path\",\n {\n d: \"M17 9L13.87 11.5C12.84 12.32 11.15 12.32 10.12 11.5L7 9\",\n stroke: \"currentColor\",\n strokeWidth: \"1.5\",\n strokeMiterlimit: \"10\",\n strokeLinecap: \"round\",\n strokeLinejoin: \"round\",\n fill: \"none\"\n }\n )\n] }));\nm1.displayName = \"MessageOutline\";\nconst x1 = o((t, n) => /* @__PURE__ */ r.jsxs(i, { ref: n, ...t, children: [\n /* @__PURE__ */ r.jsx(\n \"circle\",\n {\n cx: \"11.7666\",\n cy: \"11.7666\",\n r: \"8.98856\",\n stroke: \"currentColor\",\n strokeWidth: \"1.5\",\n strokeLinecap: \"round\",\n strokeLinejoin: \"round\",\n fill: \"none\"\n }\n ),\n /* @__PURE__ */ r.jsx(\n \"path\",\n {\n d: \"M18.0183 18.4851L21.5423 22\",\n stroke: \"currentColor\",\n strokeWidth: \"1.5\",\n strokeLinecap: \"round\",\n strokeLinejoin: \"round\",\n fill: \"none\"\n }\n )\n] }));\nx1.displayName = \"SearchOutline\";\nconst j1 = o((t, n) => /* @__PURE__ */ r.jsxs(i, { ref: n, ...t, viewBox: \"0 0 22 22\", useFill: !0, children: [\n /* @__PURE__ */ r.jsx(\"path\", { fillRule: \"evenodd\", clipRule: \"evenodd\", d: \"M7.5979 15.5596C7.1839 15.5596 6.8479 15.2236 6.8479 14.8096V11.0646C6.8479 10.6506 7.1839 10.3146 7.5979 10.3146C8.0119 10.3146 8.3479 10.6506 8.3479 11.0646V14.8096C8.3479 15.2236 8.0119 15.5596 7.5979 15.5596Z\", fill: \"currentColor\" }),\n /* @__PURE__ */ r.jsx(\"path\", { fillRule: \"evenodd\", clipRule: \"evenodd\", d: \"M9.50862 13.6865H5.68762C5.27362 13.6865 4.93762 13.3505 4.93762 12.9365C4.93762 12.5225 5.27362 12.1865 5.68762 12.1865H9.50862C9.92262 12.1865 10.2586 12.5225 10.2586 12.9365C10.2586 13.3505 9.92262 13.6865 9.50862 13.6865Z\", fill: \"currentColor\" }),\n /* @__PURE__ */ r.jsx(\"path\", { fillRule: \"evenodd\", clipRule: \"evenodd\", d: \"M14.116 11.9287H14.009C13.595 11.9287 13.259 11.5927 13.259 11.1787C13.259 10.7647 13.595 10.4287 14.009 10.4287H14.116C14.53 10.4287 14.866 10.7647 14.866 11.1787C14.866 11.5927 14.53 11.9287 14.116 11.9287Z\", fill: \"currentColor\" }),\n /* @__PURE__ */ r.jsx(\"path\", { fillRule: \"evenodd\", clipRule: \"evenodd\", d: \"M15.9295 15.5029H15.8225C15.4085 15.5029 15.0725 15.1669 15.0725 14.7529C15.0725 14.3389 15.4085 14.0029 15.8225 14.0029H15.9295C16.3435 14.0029 16.6795 14.3389 16.6795 14.7529C16.6795 15.1669 16.3435 15.5029 15.9295 15.5029Z\", fill: \"currentColor\" }),\n /* @__PURE__ */ r.jsx(\"mask\", { id: \"mask0_6909_3794\", style: { maskType: \"luminance\" }, maskUnits: \"userSpaceOnUse\", x: \"6\", y: \"0\", width: \"7\", height: \"6\", children: /* @__PURE__ */ r.jsx(\"path\", { fillRule: \"evenodd\", clipRule: \"evenodd\", d: \"M6.07166 0H12.1117V5.5879H6.07166V0Z\", fill: \"white\" }) }),\n /* @__PURE__ */ r.jsx(\"g\", { mask: \"url(#mask0_6909_3794)\", children: /* @__PURE__ */ r.jsx(\"path\", { fillRule: \"evenodd\", clipRule: \"evenodd\", d: \"M11.3617 5.58788C10.9477 5.58788 10.6117 5.25188 10.6117 4.83788V4.16288C10.6087 3.43888 9.99466 2.84388 9.24366 2.84088H8.18966C7.02266 2.84088 6.07166 1.90288 6.07166 0.749878C6.07166 0.335878 6.40766 -0.00012207 6.82166 -0.00012207C7.23666 -0.00012207 7.57166 0.335878 7.57166 0.749878C7.57166 1.07588 7.84866 1.34088 8.18966 1.34088H9.24666C10.8197 1.34588 12.1047 2.60988 12.1117 4.15888V4.83788C12.1117 5.25188 11.7757 5.58788 11.3617 5.58788Z\", fill: \"currentColor\" }) }),\n /* @__PURE__ */ r.jsx(\"mask\", { id: \"mask1_6909_3794\", style: { maskType: \"luminance\" }, maskUnits: \"userSpaceOnUse\", x: \"0\", y: \"4\", width: \"22\", height: \"18\", children: /* @__PURE__ */ r.jsx(\"path\", { fillRule: \"evenodd\", clipRule: \"evenodd\", d: \"M0 4.37329H21.4998V21.5H0V4.37329Z\", fill: \"white\" }) }),\n /* @__PURE__ */ r.jsx(\"g\", { mask: \"url(#mask1_6909_3794)\", children: /* @__PURE__ */ r.jsx(\"path\", { fillRule: \"evenodd\", clipRule: \"evenodd\", d: \"M10.701 5.87304C9.225 5.87304 7.767 5.88604 6.335 5.91004C3.528 5.91004 1.5 7.88804 1.5 10.612V15.262C1.5 17.985 3.528 19.963 6.323 19.963C9.27 20.012 12.241 20.012 15.165 19.963H15.178C17.972 19.963 20 17.985 20 15.262V10.612C20 7.88804 17.972 5.91004 15.178 5.91004C13.674 5.88604 12.179 5.87304 10.701 5.87304ZM10.754 21.5C9.271 21.5 7.786 21.487 6.31 21.463C2.659 21.463 0 18.854 0 15.262V10.612C0 7.01904 2.659 4.41004 6.323 4.41004C9.192 4.36104 12.18 4.36104 15.19 4.41004C18.841 4.41004 21.5 7.01904 21.5 10.612V15.262C21.5 18.852 18.845 21.46 15.184 21.463C13.716 21.487 12.236 21.5 10.754 21.5Z\", fill: \"currentColor\" }) })\n] }));\nj1.displayName = \"GameOutline\";\nconst v1 = o((t, n) => /* @__PURE__ */ r.jsx(i, { ref: n, ...t, viewBox: \"0 0 12 12\", useFill: !0, children: /* @__PURE__ */ r.jsx(\"path\", { fillRule: \"evenodd\", clipRule: \"evenodd\", d: \"M9.41575 3.81219C9.53779 3.93423 9.53779 4.1321 9.41575 4.25414L4.90757 8.76231L2.58467 6.4468C2.46243 6.32496 2.46212 6.12709 2.58396 6.00486L2.93695 5.65074C3.05879 5.52851 3.25666 5.52819 3.37889 5.65004L3.46421 5.73508L4.90631 7.17259L8.62025 3.45864C8.74229 3.3366 8.94015 3.3366 9.06219 3.45864L9.41575 3.81219Z\", fill: \"currentColor\" }) }));\nv1.displayName = \"CheckOutline\";\nconst k1 = o((t, n) => /* @__PURE__ */ r.jsx(i, { ref: n, ...t, children: /* @__PURE__ */ r.jsx(\"path\", { d: \"M18 6L6 18M6 6l12 12\" }) }));\nk1.displayName = \"CloseOutline\";\nconst R1 = o((t, n) => /* @__PURE__ */ r.jsx(i, { ref: n, ...t, viewBox: \"0 0 20 19\", useFill: !0, children: /* @__PURE__ */ r.jsx(\n \"path\",\n {\n fillRule: \"evenodd\",\n clipRule: \"evenodd\",\n d: \"M9.74992 1.5C9.65892 1.5 9.43492 1.525 9.31592 1.763L7.48992 5.414C7.20092 5.991 6.64392 6.392 5.99992 6.484L1.91192 7.073C1.64192 7.112 1.54992 7.312 1.52192 7.396C1.49692 7.477 1.45692 7.683 1.64292 7.861L4.59892 10.701C5.06992 11.154 5.28392 11.807 5.17192 12.446L4.47592 16.456C4.43292 16.707 4.58992 16.853 4.65992 16.903C4.73392 16.959 4.93192 17.07 5.17692 16.942L8.83192 15.047C9.40792 14.75 10.0939 14.75 10.6679 15.047L14.3219 16.941C14.5679 17.068 14.7659 16.957 14.8409 16.903C14.9109 16.853 15.0679 16.707 15.0249 16.456L14.3269 12.446C14.2149 11.807 14.4289 11.154 14.8999 10.701L17.8559 7.861C18.0429 7.683 18.0029 7.476 17.9769 7.396C17.9499 7.312 17.8579 7.112 17.5879 7.073L13.4999 6.484C12.8569 6.392 12.2999 5.991 12.0109 5.413L10.1829 1.763C10.0649 1.525 9.84092 1.5 9.74992 1.5ZM4.94692 18.5C4.53392 18.5 4.12392 18.37 3.77292 18.114C3.16692 17.67 2.86992 16.937 2.99892 16.199L3.69492 12.189C3.72092 12.04 3.66992 11.889 3.55992 11.783L0.603916 8.943C0.0599161 8.422 -0.135084 7.652 0.0949161 6.937C0.326916 6.214 0.940916 5.697 1.69792 5.589L5.78592 5C5.94392 4.978 6.07992 4.881 6.14792 4.743L7.97492 1.091C8.31192 0.418 8.99192 0 9.74992 0C10.5079 0 11.1879 0.418 11.5249 1.091L13.3529 4.742C13.4219 4.881 13.5569 4.978 13.7139 5L17.8019 5.589C18.5589 5.697 19.1729 6.214 19.4049 6.937C19.6349 7.652 19.4389 8.422 18.8949 8.943L15.9389 11.783C15.8289 11.889 15.7789 12.04 15.8049 12.188L16.5019 16.199C16.6299 16.938 16.3329 17.671 15.7259 18.114C15.1109 18.565 14.3099 18.626 13.6309 18.272L9.97792 16.379C9.83492 16.305 9.66392 16.305 9.52092 16.379L5.86792 18.273C5.57592 18.425 5.26092 18.5 4.94692 18.5Z\",\n fill: \"currentColor\"\n }\n) }));\nR1.displayName = \"StartOutline\";\nconst O1 = o((t, n) => /* @__PURE__ */ r.jsxs(i, { ref: n, ...t, viewBox: \"0 0 20 19\", useFill: !0, children: [\n /* @__PURE__ */ r.jsx(\n \"path\",\n {\n fillRule: \"evenodd\",\n clipRule: \"evenodd\",\n d: \"M1.5 11.979V14.024C1.5 14.73 1.774 15.393 2.273 15.892C2.772 16.391 3.436 16.666 4.141 16.666H15.857C17.313 16.666 18.499 15.482 18.5 14.026V11.978C17.214 11.645 16.261 10.474 16.26 9.085C16.26 7.696 17.213 6.525 18.499 6.191L18.5 4.146C18.501 2.688 17.318 1.501 15.861 1.5H4.144C2.687 1.5 1.501 2.685 1.5 4.142V6.259C1.986 6.375 2.437 6.614 2.812 6.964C3.381 7.495 3.709 8.215 3.737 8.993C3.74 10.459 2.787 11.643 1.5 11.979ZM15.857 18.166H4.142C3.035 18.166 1.995 17.736 1.212 16.953C0.43 16.17 0 15.13 0 14.024V11.324C0 10.91 0.336 10.574 0.75 10.574C1.574 10.573 2.24 9.905 2.239 9.085C2.225 8.667 2.065 8.319 1.789 8.061C1.514 7.803 1.158 7.662 0.776 7.683C0.569 7.685 0.375 7.614 0.229 7.473C0.083 7.332 0 7.136 0 6.933V4.143C0.001 1.858 1.86 0 4.144 0H15.856C18.146 0.001 20.002 1.863 20 4.147V6.846C20 7.26 19.664 7.596 19.25 7.596C18.429 7.596 17.76 8.264 17.76 9.084C17.761 9.906 18.429 10.574 19.25 10.574C19.664 10.574 20 10.91 20 11.324V14.024C19.999 16.308 18.14 18.166 15.857 18.166Z\"\n }\n ),\n /* @__PURE__ */ r.jsx(\n \"path\",\n {\n fillRule: \"evenodd\",\n clipRule: \"evenodd\",\n d: \"M8.10395 8.38103L8.61295 8.87703C8.88895 9.14803 9.01395 9.53403 8.94795 9.91103L8.82795 10.609L9.45695 10.278C9.79595 10.097 10.203 10.098 10.545 10.28L11.17 10.608L11.05 9.90903C10.987 9.52603 11.113 9.14303 11.386 8.87703L11.8949 8.38103L11.1899 8.27903C10.812 8.22403 10.484 7.98603 10.3149 7.64103L9.99995 7.00403L9.68495 7.64203C9.51595 7.98603 9.18795 8.22403 8.80795 8.27903L8.10395 8.38103ZM11.6179 12.387C11.432 12.387 11.246 12.342 11.074 12.251L9.99995 11.688L8.92495 12.252C8.52895 12.459 8.05795 12.426 7.69795 12.164C7.33695 11.901 7.15995 11.465 7.23495 11.025L7.43995 9.82903L6.57095 8.98203C6.25195 8.67103 6.13795 8.21403 6.27495 7.79003C6.41295 7.36503 6.77295 7.06003 7.21395 6.99603L8.41795 6.82003L8.95495 5.73103C9.15195 5.33103 9.55195 5.08203 9.99995 5.08203C10.446 5.08203 10.847 5.33103 11.044 5.73203L11.582 6.82003L12.784 6.99603C13.226 7.06003 13.5869 7.36503 13.7239 7.79003C13.8609 8.21403 13.748 8.67103 13.4279 8.98303L12.558 9.83003L12.7639 11.025C12.8389 11.466 12.661 11.903 12.299 12.165C12.095 12.312 11.8569 12.387 11.6179 12.387Z\"\n }\n )\n] }));\nO1.displayName = \"TicketOutline\";\nconst M1 = o((t, n) => /* @__PURE__ */ r.jsxs(i, { ref: n, ...t, viewBox: \"0 0 20 20\", useFill: !0, children: [\n /* @__PURE__ */ r.jsx(\n \"path\",\n {\n fillRule: \"evenodd\",\n clipRule: \"evenodd\",\n d: \"M10 1.5C5.313 1.5 1.5 5.313 1.5 10C1.5 14.687 5.313 18.5 10 18.5C14.687 18.5 18.5 14.687 18.5 10C18.5 5.313 14.687 1.5 10 1.5ZM10 20C4.486 20 0 15.514 0 10C0 4.486 4.486 0 10 0C15.514 0 20 4.486 20 10C20 15.514 15.514 20 10 20Z\",\n fill: \"currentColor\"\n }\n ),\n /* @__PURE__ */ r.jsx(\n \"path\",\n {\n fillRule: \"evenodd\",\n clipRule: \"evenodd\",\n d: \"M13.9482 11.0137C13.3952 11.0137 12.9432 10.5667 12.9432 10.0137C12.9432 9.46067 13.3862 9.01367 13.9382 9.01367H13.9482C14.5012 9.01367 14.9482 9.46067 14.9482 10.0137C14.9482 10.5667 14.5012 11.0137 13.9482 11.0137Z\",\n fill: \"currentColor\"\n }\n ),\n /* @__PURE__ */ r.jsx(\n \"path\",\n {\n fillRule: \"evenodd\",\n clipRule: \"evenodd\",\n d: \"M9.93845 11.0137C9.38545 11.0137 8.93445 10.5667 8.93445 10.0137C8.93445 9.46067 9.37645 9.01367 9.92945 9.01367H9.93845C10.4914 9.01367 10.9384 9.46067 10.9384 10.0137C10.9384 10.5667 10.4914 11.0137 9.93845 11.0137Z\",\n fill: \"currentColor\"\n }\n ),\n /* @__PURE__ */ r.jsx(\n \"path\",\n {\n fillRule: \"evenodd\",\n clipRule: \"evenodd\",\n d: \"M5.92968 11.0137C5.37668 11.0137 4.92468 10.5667 4.92468 10.0137C4.92468 9.46067 5.36768 9.01367 5.92068 9.01367H5.92968C6.48268 9.01367 6.92968 9.46067 6.92968 10.0137C6.92968 10.5667 6.48268 11.0137 5.92968 11.0137Z\",\n fill: \"currentColor\"\n }\n )\n] }));\nM1.displayName = \"MoreCircleOutline\";\nconst _1 = o((t, n) => /* @__PURE__ */ r.jsxs(i, { ref: n, ...t, children: [\n /* @__PURE__ */ r.jsx(\"path\", { d: \"M9 22H15C20 22 22 20 22 15V9C22 4 20 2 15 2H9C4 2 2 4 2 9V15C2 20 4 22 9 22Z\" }),\n /* @__PURE__ */ r.jsx(\"circle\", { cx: \"15.5\", cy: \"12\", r: \"1\" }),\n /* @__PURE__ */ r.jsx(\"circle\", { cx: \"11.5\", cy: \"12\", r: \"1\" }),\n /* @__PURE__ */ r.jsx(\"circle\", { cx: \"7.5\", cy: \"12\", r: \"1\" })\n] }));\n_1.displayName = \"MoreSquareOutline\";\nconst E1 = o((t, n) => /* @__PURE__ */ r.jsx(i, { ref: n, ...t, viewBox: \"0 0 19 19\", useFill: !0, children: /* @__PURE__ */ r.jsx(\"path\", { d: \"M12.2871 7.28027C11.9093 7.28115 11.596 7.00252 11.543 6.63965L11.5352 6.5293L11.5488 0.749023C11.5498 0.33481 11.8866 -0.000957489 12.3008 0C12.6771 0.00109291 12.9883 0.279963 13.041 0.641602L13.0488 0.751953L13.0371 5.77832L18.0635 5.76758C18.4777 5.76662 18.8145 6.10141 18.8154 6.51562C18.8163 6.89214 18.5392 7.20439 18.1777 7.25879L18.0674 7.26758L12.2871 7.28027ZM6.51465 18.8164C6.1383 18.8153 5.82712 18.5364 5.77441 18.1748L5.7666 18.0645L5.77832 13.0371L0.751953 13.0488C0.375542 13.0497 0.0633717 12.7734 0.00878906 12.4121L0 12.3008C-0.000797272 11.9243 0.276207 11.612 0.637695 11.5576L0.748047 11.5488L6.52832 11.5361C6.90611 11.5353 7.2194 11.8139 7.27246 12.1768L7.28027 12.2871L7.2666 18.0674C7.26564 18.4816 6.92886 18.8174 6.51465 18.8164Z\" }) }));\nE1.displayName = \"ShrinkOutline\";\nconst y1 = o((t, n) => /* @__PURE__ */ r.jsx(i, { ref: n, ...t, children: /* @__PURE__ */ r.jsx(\"path\", { d: \"M21 9V3h-6M3 15v6h6M21 3l-7 7M10 14l-7 7\" }) }));\ny1.displayName = \"ExpandOutline\";\nconst w1 = o((t, n) => /* @__PURE__ */ r.jsx(i, { ref: n, ...t, viewBox: \"0 0 20 20\", useFill: !0, children: /* @__PURE__ */ r.jsx(\n \"path\",\n {\n fillRule: \"evenodd\",\n clipRule: \"evenodd\",\n d: \"M6.773 9.59876C6.791 9.61476 6.808 9.62976 6.825 9.64776C7.904 10.7538 8.499 12.2188 8.499 13.7738V17.7578L10.735 16.5398C10.911 16.4438 11.02 16.2558 11.02 16.0488V13.7618C11.02 12.2128 11.609 10.7528 12.678 9.65276L17.515 4.50776C17.828 4.17476 18 3.73776 18 3.27676V2.34076C18 1.87676 17.634 1.49976 17.186 1.49976H2.315C1.866 1.49976 1.5 1.87676 1.5 2.34076V3.27676C1.5 3.73776 1.672 4.17476 1.985 4.50676L6.773 9.59876ZM8.146 19.5008C7.944 19.5008 7.744 19.4468 7.562 19.3388C7.21 19.1288 6.999 18.7578 6.999 18.3458V13.7738C6.999 12.6388 6.576 11.5698 5.805 10.7508C5.782 10.7318 5.759 10.7108 5.739 10.6888L0.893 5.53576C0.317 4.92376 0 4.12076 0 3.27676V2.34076C0 1.04976 1.039 -0.000244141 2.315 -0.000244141H17.186C18.461 -0.000244141 19.5 1.04976 19.5 2.34076V3.27676C19.5 4.11976 19.183 4.92176 18.609 5.53476L13.762 10.6888C12.959 11.5168 12.52 12.6058 12.52 13.7618V16.0488C12.52 16.8048 12.111 17.4968 11.453 17.8568L8.692 19.3608C8.52 19.4538 8.333 19.5008 8.146 19.5008Z\",\n fill: \"currentColor\"\n }\n) }));\nw1.displayName = \"FunnelOutline\";\nconst b1 = o((t, n) => /* @__PURE__ */ r.jsx(i, { ref: n, ...t, children: /* @__PURE__ */ r.jsx(\"path\", { d: \"M2 12H22\", stroke: \"currentColor\", strokeWidth: \"1.5\", strokeLinecap: \"round\", strokeLinejoin: \"round\" }) }));\nb1.displayName = \"MinusOutline\";\nconst T1 = o((t, n) => /* @__PURE__ */ r.jsxs(i, { ref: n, useFill: !0, ...t, children: [\n /* @__PURE__ */ r.jsx(\n \"path\",\n {\n fillRule: \"evenodd\",\n clipRule: \"evenodd\",\n d: \"M4.25 12a.75.75 0 0 1 .75-.75h14a.75.75 0 0 1 0 1.5H5a.75.75 0 0 1-.75-.75Z\"\n }\n ),\n /* @__PURE__ */ r.jsx(\n \"path\",\n {\n fillRule: \"evenodd\",\n clipRule: \"evenodd\",\n d: \"M12.47 4.47a.75.75 0 0 1 1.06 0l7 7a.75.75 0 0 1 0 1.06l-7 7a.75.75 0 1 1-1.06-1.06L18.94 12l-6.47-6.47a.75.75 0 0 1 0-1.06Z\"\n }\n )\n] }));\nT1.displayName = \"ArrowRightBold\";\nconst N1 = o((t, n) => /* @__PURE__ */ r.jsx(i, { ref: n, ...t, children: /* @__PURE__ */ r.jsx(\"path\", { d: \"M5 12h7m5 0h2m-2 0l-7-7m7 7l-7 7\" }) }));\nN1.displayName = \"ArrowRightBroken\";\nexport {\n l1 as AddOutline,\n i1 as ArrowLeftOutline,\n T1 as ArrowRightBold,\n N1 as ArrowRightBroken,\n a1 as ArrowRightCircleOutline,\n o1 as ArrowRightOutline,\n v1 as CheckOutline,\n c1 as ChevronDownOutline,\n d1 as ChevronLeftOutline,\n u1 as ChevronRightOutline,\n C1 as ChevronUpOutline,\n k1 as CloseOutline,\n L1 as DeleteOutline,\n h1 as EditOutline,\n p1 as EditSquareOutline,\n y1 as ExpandOutline,\n w1 as FunnelOutline,\n j1 as GameOutline,\n i as IconBase,\n m1 as MessageOutline,\n b1 as MinusOutline,\n M1 as MoreCircleOutline,\n _1 as MoreSquareOutline,\n f1 as PlusOutline,\n x1 as SearchOutline,\n E1 as ShrinkOutline,\n R1 as StartOutline,\n O1 as TicketOutline,\n s1 as UnlockOutline\n};\n//# sourceMappingURL=index.mjs.map\n","/**\n * CheckboxButton 组件样式\n * 基于 Emotion + Theme Token\n * \n * 设计规范:\n * - 按钮样式的 checkbox\n * - 右下角勾选标记\n * - 完整的交互状态\n */\n\nimport { css } from '@emotion/react';\nimport type { Theme } from '@kingsoft-ai/theme';\n\nexport type CheckboxButtonSize = 'sm' | 'md' | 'lg';\n\ninterface CheckboxButtonSizeConfig {\n paddingX: number;\n paddingY: number;\n gap: number;\n minHeight: number;\n fontSize: number;\n lineHeight: number;\n checkmarkSize: number;\n checkmarkIcon: number;\n}\n\nexport const checkboxButtonSizeTokens: Record<CheckboxButtonSize, CheckboxButtonSizeConfig> = {\n sm: {\n paddingX: 12,\n paddingY: 5,\n gap: 8,\n minHeight: 28,\n fontSize: 12,\n lineHeight: 18,\n checkmarkSize: 10,\n checkmarkIcon: 7,\n },\n md: {\n paddingX: 16,\n paddingY: 7,\n gap: 10,\n minHeight: 32,\n fontSize: 12,\n lineHeight: 18,\n checkmarkSize: 12,\n checkmarkIcon: 8,\n },\n lg: {\n paddingX: 20,\n paddingY: 9,\n gap: 12,\n minHeight: 38,\n fontSize: 14,\n lineHeight: 20,\n checkmarkSize: 14,\n checkmarkIcon: 9,\n },\n};\n\n// ============================================================================\n// CheckboxButton 容器样式\n// ============================================================================\n\nexport const checkboxButtonContainer = css`\n display: inline-flex;\n cursor: pointer;\n user-select: none;\n position: relative;\n \n /* 隐藏原生 checkbox */\n input[type=\"checkbox\"] {\n position: absolute;\n opacity: 0;\n width: 1px;\n height: 1px;\n margin: 0;\n padding: 0;\n border: 0;\n clip: rect(0 0 0 0);\n clip-path: inset(50%);\n white-space: nowrap;\n overflow: hidden;\n left: -9999px;\n -webkit-appearance: none;\n appearance: none;\n }\n \n &[data-disabled=\"true\"] {\n cursor: not-allowed;\n }\n`;\n\n// ============================================================================\n// CheckboxButton 包装器样式(按钮外观)\n// ============================================================================\n\nexport const checkboxButtonWrapper = (theme: Theme, size: CheckboxButtonSize = 'md') => {\n const sizeToken = checkboxButtonSizeTokens[size];\n \n return css`\n position: relative;\n display: inline-flex;\n align-items: center;\n justify-content: center;\n box-sizing: border-box;\n \n /* 尺寸与间距 - 按照设计稿 */\n padding: ${sizeToken.paddingY}px ${sizeToken.paddingX}px;\n gap: ${sizeToken.gap}px;\n min-height: ${sizeToken.minHeight}px;\n \n /* 字体样式 */\n font-family: ${theme.global.typography.fontFamily};\n font-size: ${sizeToken.fontSize}px;\n line-height: ${sizeToken.lineHeight}px;\n font-weight: 400;\n white-space: nowrap;\n \n /* 边框与圆角 */\n border: 1px solid ${theme.global.colors.neutral[200]}; /* #e1e1e1 - b4 组件描边 */\n border-radius: 4px;\n \n /* 默认状态 - 未选中 */\n background-color: ${theme.global.colors.common.white};\n color: rgba(10, 24, 51, 0.7); /* f4 正文文字色 */\n \n /* 过渡动画 */\n transition: \n background-color 0.2s ease,\n border-color 0.2s ease,\n color 0.2s ease;\n \n /* Hover 状态 - 未选中 */\n &[data-hover=\"true\"]:not([data-checked=\"true\"]):not([data-disabled=\"true\"]) {\n border-color: ${theme.global.colors.blue[500]}; /* #2c6fe7 - b5 主按钮色 */\n color: ${theme.global.colors.blue[500]};\n }\n \n /* Checked 状态 - 已选中 */\n &[data-checked=\"true\"]:not([data-disabled=\"true\"]) {\n background-color: ${theme.global.colors.blue[100]}; /* #d4e9fd - b1 选中背景面 */\n border-color: ${theme.global.colors.blue[500]}; /* #2c6fe7 - b5 主按钮色 */\n color: ${theme.global.colors.blue[500]};\n }\n \n /* Disabled 未选中状态 */\n &[data-disabled=\"true\"]:not([data-checked=\"true\"]) {\n background-color: ${theme.global.colors.neutral[100]}; /* #f0f0f0 - b5 禁用背景色 */\n border-color: ${theme.global.colors.neutral[200]}; /* #e1e1e1 */\n color: rgba(10, 24, 51, 0.3); /* f8 禁用文字色 */\n }\n \n /* Disabled 选中状态 */\n &[data-disabled=\"true\"][data-checked=\"true\"] {\n background-color: ${theme.global.colors.neutral[100]}; /* #f0f0f0 - b5 禁用背景色 */\n border-color: ${theme.global.colors.neutral[400]}; /* #c2c5cc - b6 选中边框色 */\n color: rgba(10, 24, 51, 0.3); /* f8 禁用文字色 */\n }\n \n /* Focus 状态 - 键盘导航 */\n input:focus-visible + & {\n outline: 2px solid ${theme.global.colors.blue[500]};\n outline-offset: 2px;\n }\n `;\n};\n\n// ============================================================================\n// CheckboxButton 勾选标记样式(右下角)\n// ============================================================================\n\nexport const checkboxButtonCheckmark = (theme: Theme, size: CheckboxButtonSize = 'md') => {\n const { checkmarkSize, checkmarkIcon } = checkboxButtonSizeTokens[size];\n \n return css`\n position: absolute;\n bottom: 0;\n right: 0;\n \n display: flex;\n align-items: flex-end;\n justify-content: flex-end;\n \n /* 勾选标记的背景三角形区域 */\n width: ${checkmarkSize}px;\n height: ${checkmarkSize}px;\n overflow: hidden;\n \n /* 过渡动画 */\n transition: background-color 0.2s ease;\n \n /* 背景三角形 */\n &::before {\n content: '';\n position: absolute;\n bottom: 0;\n right: 0;\n width: 0;\n height: 0;\n border-style: solid;\n border-width: 0 0 ${checkmarkSize}px ${checkmarkSize}px;\n border-color: transparent transparent ${theme.global.colors.blue[500]} transparent;\n transition: border-color 0.2s ease;\n }\n \n /* 禁用状态的背景 */\n &[data-disabled=\"true\"]::before {\n border-color: transparent transparent ${theme.global.colors.neutral[400]} transparent;\n }\n \n /* 图标样式 */\n svg {\n position: relative;\n color: ${theme.global.colors.common.white};\n width: ${checkmarkIcon}px;\n height: ${checkmarkIcon}px;\n margin: 0;\n z-index: 1;\n }\n \n /* 禁用状态的图标 */\n &[data-disabled=\"true\"] svg {\n color: ${theme.global.colors.neutral[100]}; /* #f0f2f4 */\n }\n `;\n};\n\n","/**\n * CheckboxButton 组件 - 按钮风格的 Checkbox\n * \n * 特性:\n * - 按钮样式的 checkbox 外观\n * - 右下角显示勾选标记\n * - 支持受控/非受控模式\n */\n\n/** @jsxImportSource @emotion/react */\nimport React, { forwardRef, useEffect, useRef, useState } from 'react';\nimport { useTheme } from '@emotion/react';\nimport type { Theme } from '@kingsoft-ai/theme';\nimport { CheckOutline } from '@kingsoft-ai/icons';\nimport {\n checkboxButtonContainer,\n checkboxButtonWrapper,\n checkboxButtonCheckmark,\n checkboxButtonSizeTokens,\n} from './CheckboxButton.style';\nimport type { CheckboxButtonSize } from './CheckboxButton.style';\n\n// ============================================================================\n// 类型定义\n// ============================================================================\n\nexport interface CheckboxButtonProps\n extends Omit<React.InputHTMLAttributes<HTMLInputElement>, 'type' | 'size' | 'onChange' | 'indeterminate'> {\n /**\n * 是否选中\n */\n checked?: boolean;\n \n /**\n * 默认是否选中(非受控)\n */\n defaultChecked?: boolean;\n \n /**\n * 是否禁用\n */\n disabled?: boolean;\n \n /**\n * 标签文字(必填)\n */\n label: React.ReactNode;\n \n /**\n * 值改变回调\n */\n onChange?: (checked: boolean, event: React.ChangeEvent<HTMLInputElement>) => void;\n \n /**\n * 尺寸\n */\n size?: CheckboxButtonSize;\n \n /**\n * 自定义类名\n */\n className?: string;\n \n /**\n * 自定义样式\n */\n style?: React.CSSProperties;\n}\n\n// ============================================================================\n// CheckboxButton 组件\n// ============================================================================\n\n/**\n * CheckboxButton - 按钮风格的复选框组件\n * \n * 按照设计稿,呈现为按钮样式,右下角带勾选标记\n */\nexport const CheckboxButton = forwardRef<HTMLInputElement, CheckboxButtonProps>(\n (props, ref) => {\n const {\n checked: controlledChecked,\n defaultChecked = false,\n disabled = false,\n label,\n size = 'md',\n onChange,\n className,\n style,\n ...inputProps\n } = props;\n\n const theme = useTheme() as Theme;\n const inputRef = useRef<HTMLInputElement>(null);\n const [hover, setHover] = useState(false);\n \n // 内部状态管理(非受控)\n const [internalChecked, setInternalChecked] = useState(defaultChecked);\n \n // 判断是否受控\n const isControlled = controlledChecked !== undefined;\n const checked = isControlled ? controlledChecked : internalChecked;\n\n // 合并 refs\n useEffect(() => {\n if (ref) {\n if (typeof ref === 'function') {\n ref(inputRef.current);\n } else {\n ref.current = inputRef.current;\n }\n }\n }, [ref]);\n\n // 处理点击\n const handleChange = (event: React.ChangeEvent<HTMLInputElement>) => {\n if (disabled) return;\n \n const newChecked = event.target.checked;\n \n if (!isControlled) {\n setInternalChecked(newChecked);\n }\n \n onChange?.(newChecked, event);\n };\n\n const sizeToken = checkboxButtonSizeTokens[size];\n \n return (\n <label\n css={checkboxButtonContainer}\n data-disabled={disabled}\n className={className}\n style={style}\n onMouseEnter={() => !disabled && setHover(true)}\n onMouseLeave={() => !disabled && setHover(false)}\n >\n <input\n ref={inputRef}\n type=\"checkbox\"\n checked={checked}\n disabled={disabled}\n onChange={handleChange}\n {...inputProps}\n />\n \n <span\n css={checkboxButtonWrapper(theme, size)}\n data-hover={hover}\n data-checked={checked}\n data-disabled={disabled}\n data-size={size}\n >\n {/* 标签文字 */}\n {label}\n \n {/* 右下角勾选标记 */}\n {checked && (\n <span\n css={checkboxButtonCheckmark(theme, size)}\n data-disabled={disabled}\n data-size={size}\n >\n <CheckOutline size={sizeToken.checkmarkIcon} />\n </span>\n )}\n </span>\n </label>\n );\n }\n);\n\nCheckboxButton.displayName = 'CheckboxButton';\n\nexport default CheckboxButton;\n\n","/**\n * Collapse 折叠面板样式\n * \n * 基于三层 Token 体系:\n * - Tier 1 (Global): 全局基础值\n * - Tier 2 (Semantic): 语义化映射\n * - Tier 3 (Component): 组件专用 Token\n * \n * 完全还原 Figma 设计稿规范\n */\n\nimport styled from '@emotion/styled'\nimport { css, keyframes } from '@emotion/react'\n\n// ============================================================================\n// 动画定义\n// ============================================================================\n\n/**\n * 折叠内容展开动画\n */\nconst slideDown = keyframes`\n from {\n opacity: 0;\n transform: translateY(-8px);\n }\n to {\n opacity: 1;\n transform: translateY(0);\n }\n`\n\n/**\n * 折叠内容收起动画\n */\nconst slideUp = keyframes`\n from {\n opacity: 1;\n transform: translateY(0);\n }\n to {\n opacity: 0;\n transform: translateY(-8px);\n }\n`\n\n/**\n * 箭头旋转动画(展开)\n */\nexport const rotateArrowDown = keyframes`\n from {\n transform: rotate(-90deg);\n }\n to {\n transform: rotate(0deg);\n }\n`\n\n/**\n * 箭头旋转动画(收起)\n */\nexport const rotateArrowUp = keyframes`\n from {\n transform: rotate(0deg);\n }\n to {\n transform: rotate(-90deg);\n }\n`\n\n// ============================================================================\n// 样式组件\n// ============================================================================\n\n/**\n * Collapse 根容器\n * \n * 特性:\n * - 完整的边框和圆角\n * - 使用 Tier 3 组件层 Token\n */\nexport const CollapseRoot = styled.div`\n width: 100%;\n border: 1px solid ${({ theme }) => theme.components.collapse.border.default};\n border-radius: ${({ theme }) => theme.components.collapse.borderRadius};\n background: ${({ theme }) => theme.components.collapse.background.default};\n overflow: hidden;\n`\n\n/**\n * CollapseItem 容器\n * \n * 特性:\n * - 包含标题栏和内容区\n * - 底部边框作为分隔线\n */\nexport const CollapseItemWrapper = styled.div<{\n isLast?: boolean\n}>`\n border-bottom: ${({ isLast, theme }) =>\n isLast ? 'none' : `1px solid ${theme.components.collapse.divider}`};\n`\n\n/**\n * 折叠面板标题栏\n * \n * 特性:\n * - 可点击区域\n * - hover 状态背景色变化\n * - 支持键盘导航\n * - 完整的无障碍支持\n */\nexport const CollapseHeader = styled.div<{\n isExpanded: boolean\n isDisabled?: boolean\n}>`\n display: flex;\n align-items: center;\n gap: ${({ theme }) => theme.components.collapse.gap};\n padding: ${({ theme }) => theme.components.collapse.padding.header};\n cursor: ${({ isDisabled }) => (isDisabled ? 'not-allowed' : 'pointer')};\n user-select: none;\n transition: background ${({ theme }) => theme.components.collapse.transition};\n \n /* Hover 状态 */\n ${({ isDisabled, theme }) =>\n !isDisabled &&\n css`\n &:hover {\n background: ${theme.components.collapse.background.hover};\n }\n `}\n\n /* Focus 可见状态 - 键盘导航时显示 */\n &:focus-visible {\n outline: 2px solid ${({ theme }) => theme.components.collapse.arrow.default};\n outline-offset: -2px;\n }\n \n /* 禁用状态 */\n ${({ isDisabled }) =>\n isDisabled &&\n css`\n opacity: 0.5;\n `}\n`\n\n/**\n * 箭头图标容器\n * \n * 特性:\n * - 平滑的旋转动画\n * - 展开时旋转 90 度(从右箭头变为下箭头)\n */\nexport const ArrowWrapper = styled.div<{\n isExpanded: boolean\n}>`\n display: inline-flex;\n align-items: center;\n justify-content: center;\n flex-shrink: 0;\n width: ${({ theme }) => theme.components.collapse.arrowSize};\n height: ${({ theme }) => theme.components.collapse.arrowSize};\n color: ${({ theme }) => theme.components.collapse.arrow.default};\n transition: transform ${({ theme }) => theme.components.collapse.transition};\n transform: rotate(${({ isExpanded }) => (isExpanded ? '0deg' : '-90deg')});\n \n svg {\n width: 100%;\n height: 100%;\n }\n`\n\n/**\n * 标题内容区\n * \n * 特性:\n * - 弹性布局,支持多行换行\n * - 可容纳自定义内容\n */\nexport const TitleWrapper = styled.div`\n flex: 1;\n display: flex;\n align-items: center;\n gap: ${({ theme }) => theme.components.collapse.gap};\n min-width: 0; /* 允许内容收缩 */\n`\n\n/**\n * 标题文本\n * \n * 特性:\n * - 使用 Tier 3 文字颜色 Token\n * - 支持多行文本\n */\nexport const TitleText = styled.p`\n margin: 0;\n font-family: ${({ theme }) => theme.global.typography.fontFamily};\n font-size: 14px;\n line-height: 22px;\n color: ${({ theme }) => theme.components.collapse.text.title};\n white-space: pre-wrap;\n word-break: break-word;\n`\n\n/**\n * 右侧后缀内容区\n * \n * 特性:\n * - 固定在右侧\n * - 支持图标、按钮等自定义内容\n */\nexport const SuffixWrapper = styled.div`\n display: flex;\n align-items: center;\n gap: 12px;\n flex-shrink: 0;\n`\n\n/**\n * 折叠内容外层容器\n * \n * 特性:\n * - 控制高度和 overflow\n * - 平滑的高度过渡动画\n */\nexport const CollapseContentWrapper = styled.div<{\n isExpanded: boolean\n contentHeight: number\n}>`\n max-height: ${({ isExpanded, contentHeight }) =>\n isExpanded ? `${contentHeight}px` : '0px'};\n overflow: hidden;\n transition: max-height ${({ theme }) => theme.components.collapse.transition};\n`\n\n/**\n * 折叠内容内层容器\n * \n * 特性:\n * - 实际内容区域\n * - 内边距\n * - 淡入淡出动画\n */\nexport const CollapseContentInner = styled.div<{\n isExpanded: boolean\n}>`\n padding: ${({ theme }) => theme.components.collapse.padding.content};\n border-top: 1px solid ${({ theme }) => theme.components.collapse.divider};\n \n ${({ isExpanded }) =>\n isExpanded\n ? css`\n animation: ${slideDown} 0.3s cubic-bezier(0.4, 0, 0.2, 1) forwards;\n `\n : css`\n animation: ${slideUp} 0.3s cubic-bezier(0.4, 0, 0.2, 1) forwards;\n `}\n`\n\n/**\n * 折叠内容文本区域\n * \n * 特性:\n * - 使用 Tier 3 文字颜色 Token\n * - 支持富文本内容\n */\nexport const ContentText = styled.div`\n font-family: ${({ theme }) => theme.global.typography.fontFamily};\n font-size: 12px;\n line-height: 22px;\n color: ${({ theme }) => theme.components.collapse.text.default};\n \n p {\n margin: 0 0 12px 0;\n \n &:last-child {\n margin-bottom: 0;\n }\n }\n`\n\n","/**\n * Collapse 折叠面板组件\n * \n * 可以折叠/展开的内容区域\n * 支持手风琴模式(同时只能展开一个)和普通模式(可同时展开多个)\n * \n * @example\n * ```tsx\n * // 非受控模式\n * <Collapse defaultActiveKey={['1']}>\n * <CollapseItem itemKey=\"1\" title=\"标题1\">内容1</CollapseItem>\n * <CollapseItem itemKey=\"2\" title=\"标题2\">内容2</CollapseItem>\n * </Collapse>\n * \n * // 受控模式 + 手风琴\n * <Collapse\n * activeKey={activeKey}\n * onChange={setActiveKey}\n * accordion\n * >\n * <CollapseItem itemKey=\"1\" title=\"标题1\">内容1</CollapseItem>\n * <CollapseItem itemKey=\"2\" title=\"标题2\">内容2</CollapseItem>\n * </Collapse>\n * ```\n */\n\nimport { useState, Children, cloneElement, isValidElement, forwardRef } from 'react'\nimport type { ReactElement, ReactNode } from 'react'\nimport { CollapseRoot } from './Collapse.style'\nimport type { CollapseItemProps } from './CollapseItem'\n\nexport interface CollapseProps {\n /** 当前激活的面板(受控) */\n activeKey?: string | number | (string | number)[]\n /** 默认激活的面板(非受控) */\n defaultActiveKey?: string | number | (string | number)[]\n /** 手风琴模式,每次只能展开一个面板 */\n accordion?: boolean\n /** 展开/收起回调 */\n onChange?: (activeKey: string | number | (string | number)[]) => void\n /** 子元素(CollapseItem) */\n children?: ReactNode\n /** 自定义类名 */\n className?: string\n}\n\n/**\n * Collapse 折叠面板\n * \n * 特性:\n * - 支持受控和非受控模式\n * - 支持手风琴模式(accordion)\n * - 平滑的展开/收起动画\n * - 完整的键盘导航和无障碍支持\n */\nexport const Collapse = forwardRef<HTMLDivElement, CollapseProps>(\n (\n {\n activeKey: activeKeyProp,\n defaultActiveKey = [],\n accordion = false,\n onChange,\n children,\n className,\n },\n ref,\n ) => {\n // 内部状态(非受控模式)\n const [internalActiveKey, setInternalActiveKey] = useState<\n string | number | (string | number)[]\n >(defaultActiveKey)\n\n // 判断是否为受控模式\n const isControlled = activeKeyProp !== undefined\n const activeKey = isControlled ? activeKeyProp : internalActiveKey\n\n // 将 activeKey 统一转换为数组形式处理\n const activeKeys = Array.isArray(activeKey) ? activeKey : [activeKey]\n\n /**\n * 处理面板展开/收起\n */\n const handleChange = (itemKey: string | number, expanded: boolean) => {\n let newActiveKey: string | number | (string | number)[]\n\n if (accordion) {\n // 手风琴模式:只能展开一个\n newActiveKey = expanded ? itemKey : ''\n } else {\n // 普通模式:可以展开多个\n const currentKeys = Array.isArray(activeKey) ? [...activeKey] : activeKey ? [activeKey] : []\n \n if (expanded) {\n // 添加到激活列表\n newActiveKey = [...currentKeys, itemKey]\n } else {\n // 从激活列表移除\n newActiveKey = currentKeys.filter((key) => key !== itemKey)\n }\n }\n\n // 更新状态\n if (!isControlled) {\n setInternalActiveKey(newActiveKey)\n }\n\n // 触发回调\n onChange?.(newActiveKey)\n }\n\n /**\n * 渲染子元素\n */\n const renderChildren = () => {\n const items = Children.toArray(children).filter(isValidElement) as ReactElement<CollapseItemProps>[]\n const itemCount = items.length\n\n return items.map((child, index) => {\n const itemKey = child.props.itemKey\n const expanded = activeKeys.includes(itemKey)\n const last = index === itemCount - 1\n\n return cloneElement(child, {\n ...child.props,\n expanded,\n last,\n onChange: handleChange,\n })\n })\n }\n\n return (\n <CollapseRoot ref={ref} className={className} role=\"region\">\n {renderChildren()}\n </CollapseRoot>\n )\n },\n)\n\nCollapse.displayName = 'Collapse'\n\n\n\n\n\n","/**\n * CollapseItem 折叠面板项组件\n * \n * 单个可折叠的面板项,支持自定义标题、内容和后缀\n * \n * @example\n * ```tsx\n * <CollapseItem\n * title=\"折叠面板\"\n * suffix={<Tag>Red</Tag>}\n * >\n * 这是折叠面板的内容\n * </CollapseItem>\n * ```\n */\n\nimport { useRef, useEffect, useState, forwardRef } from 'react'\nimport type { ReactNode } from 'react'\nimport { ChevronDownOutline } from '@kingsoft-ai/icons'\nimport {\n CollapseItemWrapper,\n CollapseHeader,\n ArrowWrapper,\n TitleWrapper,\n TitleText,\n SuffixWrapper,\n CollapseContentWrapper,\n CollapseContentInner,\n ContentText,\n} from './Collapse.style'\n\nexport interface CollapseItemProps {\n /** 面板唯一标识 */\n itemKey: string | number\n /** 标题内容(可以是字符串或自定义 ReactNode) */\n title?: ReactNode\n /** 面板内容 */\n children?: ReactNode\n /** 右侧后缀内容(如标签、图标等) */\n suffix?: ReactNode\n /** 是否展开(受控) */\n expanded?: boolean\n /** 是否禁用 */\n disabled?: boolean\n /** 是否是最后一项(控制底部边框) */\n last?: boolean\n /** 展开/收起回调 */\n onChange?: (itemKey: string | number, expanded: boolean) => void\n /** 自定义类名 */\n className?: string\n}\n\n/**\n * CollapseItem 折叠面板项\n * \n * 特性:\n * - 平滑的展开/收起动画\n * - 支持自定义标题和后缀\n * - 完整的键盘导航支持\n * - 自适应内容高度\n */\nexport const CollapseItem = forwardRef<HTMLDivElement, CollapseItemProps>(\n (\n {\n itemKey,\n title,\n children,\n suffix,\n expanded = false,\n disabled = false,\n last = false,\n onChange,\n className,\n },\n ref,\n ) => {\n const contentRef = useRef<HTMLDivElement>(null)\n const [contentHeight, setContentHeight] = useState(0)\n\n // 计算内容高度\n useEffect(() => {\n if (contentRef.current) {\n // 使用 scrollHeight 获取实际内容高度\n setContentHeight(contentRef.current.scrollHeight)\n }\n }, [children, expanded])\n\n // 处理点击\n const handleToggle = () => {\n if (disabled) return\n onChange?.(itemKey, !expanded)\n }\n\n // 处理键盘事件\n const handleKeyDown = (event: React.KeyboardEvent) => {\n if (disabled) return\n\n // 空格或回车键切换展开状态\n if (event.key === ' ' || event.key === 'Enter') {\n event.preventDefault()\n handleToggle()\n }\n }\n\n return (\n <CollapseItemWrapper ref={ref} isLast={last} className={className}>\n {/* 标题栏 */}\n <CollapseHeader\n isExpanded={expanded}\n isDisabled={disabled}\n onClick={handleToggle}\n onKeyDown={handleKeyDown}\n role=\"button\"\n tabIndex={disabled ? -1 : 0}\n aria-expanded={expanded}\n aria-disabled={disabled}\n aria-controls={`collapse-content-${itemKey}`}\n >\n {/* 箭头图标 */}\n <ArrowWrapper isExpanded={expanded} aria-hidden=\"true\">\n <ChevronDownOutline />\n </ArrowWrapper>\n\n {/* 标题内容 */}\n <TitleWrapper>\n {typeof title === 'string' ? <TitleText>{title}</TitleText> : title}\n </TitleWrapper>\n\n {/* 右侧后缀 */}\n {suffix && <SuffixWrapper>{suffix}</SuffixWrapper>}\n </CollapseHeader>\n\n {/* 折叠内容 */}\n <CollapseContentWrapper\n isExpanded={expanded}\n contentHeight={contentHeight}\n id={`collapse-content-${itemKey}`}\n role=\"region\"\n aria-labelledby={`collapse-header-${itemKey}`}\n >\n <CollapseContentInner ref={contentRef} isExpanded={expanded}>\n {typeof children === 'string' ? (\n <ContentText>{children}</ContentText>\n ) : (\n children\n )}\n </CollapseContentInner>\n </CollapseContentWrapper>\n </CollapseItemWrapper>\n )\n },\n)\n\nCollapseItem.displayName = 'CollapseItem'\n\n\n\n\n\n","/**\n * Input 输入框样式\n * \n * 基于三层 Token 体系:\n * - Tier 1 (Global): 全局基础值\n * - Tier 2 (Semantic): 语义化映射\n * - Tier 3 (Component): 组件专用 Token\n * \n * 完全还原 Figma 设计稿规范\n */\n\nimport styled from '@emotion/styled'\nimport { css } from '@emotion/react'\nimport type { AppTheme } from '@kingsoft-ai/theme'\n\n// ============================================================================\n// 类型定义\n// ============================================================================\n\nexport const inputSizes = ['sm', 'md', 'lg'] as const\nexport type InputSize = (typeof inputSizes)[number]\n\n// ============================================================================\n// 样式辅助函数\n// ============================================================================\n\n/**\n * 获取边框颜色(根据状态优先级)\n */\nconst getBorderColor = (\n isFocused: boolean,\n isError: boolean,\n isDisabled: boolean,\n isHovered: boolean,\n theme: AppTheme\n) => {\n if (isDisabled) return theme.components.input.border.disabled\n if (isError) return theme.components.input.border.error\n if (isFocused) return theme.components.input.border.focus\n if (isHovered) return theme.components.input.border.hover\n return theme.components.input.border.default\n}\n\n/**\n * 获取输入框尺寸样式\n */\nconst getSizeStyles = (size: InputSize, theme: AppTheme) => {\n const sizeToken = theme.components.input.size[size]\n\n return css`\n height: ${sizeToken.height};\n font-size: ${sizeToken.fontSize};\n padding-inline: ${sizeToken.paddingInline};\n\n /* 图标尺寸 */\n svg {\n width: ${sizeToken.iconSize};\n height: ${sizeToken.iconSize};\n flex-shrink: 0;\n }\n `\n}\n\n// ============================================================================\n// 样式组件\n// ============================================================================\n\n/**\n * Input 根容器\n * \n * 特性:\n * - 处理边框颜色状态切换\n * - 支持全宽模式\n * - 基于三层 Token 设计\n */\nexport const InputRoot = styled.div<{\n size: InputSize\n fullWidth: boolean\n isFocused: boolean\n isError: boolean\n isDisabled: boolean\n isHovered: boolean\n}>`\n /* 基础样式 */\n position: relative;\n display: inline-flex;\n align-items: center;\n box-sizing: border-box;\n width: ${({ fullWidth }) => (fullWidth ? '100%' : '200px')};\n min-width: 200px; /* 防止内容动态变化导致宽度闪烁 */\n\n /* 边框样式 */\n border: 1px solid;\n border-color: ${({ isFocused, isError, isDisabled, isHovered, theme }) =>\n getBorderColor(isFocused, isError, isDisabled, isHovered, theme)};\n border-radius: ${({ theme }) => theme.components.input.borderRadius};\n\n /* 背景色 */\n background: ${({ isDisabled, theme }) =>\n isDisabled\n ? theme.components.input.background.disabled\n : theme.components.input.background.default};\n\n /* 过渡动画 */\n transition: border-color ${({ theme }) => theme.components.input.transition},\n background ${({ theme }) => theme.components.input.transition};\n\n /* 尺寸样式 */\n ${({ size, theme }) => getSizeStyles(size, theme)}\n\n /* 禁用状态 */\n ${({ isDisabled }) =>\n isDisabled &&\n css`\n cursor: not-allowed;\n opacity: 0.6;\n `}\n\n /* 全宽模式 */\n ${({ fullWidth }) =>\n fullWidth &&\n css`\n width: 100%;\n `}\n`\n\n/**\n * 输入框内部包装器\n * \n * 用于布局前缀图标、输入框、后缀图标、清除按钮和计数器\n */\nexport const InputWrapper = styled.div`\n display: flex;\n align-items: center;\n gap: ${({ theme }) => theme.components.input.gap};\n width: 100%;\n height: 100%;\n`\n\n/**\n * 原生 input 元素\n * \n * 特性:\n * - 无边框、背景透明(由容器处理)\n * - 支持错误状态文字颜色\n * - 占位符样式\n */\nexport const StyledInput = styled.input<{\n isError: boolean\n isDisabled: boolean\n}>`\n /* 重置默认样式 */\n flex: 1;\n min-width: 0;\n border: none;\n outline: none;\n background: transparent;\n padding: 0;\n margin: 0;\n\n /* 字体样式 */\n font-family: ${({ theme }) => theme.global.typography.fontFamily};\n font-size: inherit;\n line-height: 1.5;\n color: ${({ isError, isDisabled, theme }) => {\n if (isDisabled) return theme.components.input.text.disabled\n if (isError) return theme.components.input.text.error\n return theme.components.input.text.default\n }};\n\n /* 占位符样式 */\n &::placeholder {\n color: ${({ theme }) => theme.components.input.text.placeholder};\n opacity: 1;\n }\n\n /* 禁用状态 */\n ${({ isDisabled }) =>\n isDisabled &&\n css`\n cursor: not-allowed;\n user-select: none;\n `}\n\n /* 移除默认的 focus 样式 */\n &:focus {\n outline: none;\n }\n\n /* 移除数字输入框的箭头(Chrome, Safari, Edge, Opera) */\n &::-webkit-outer-spin-button,\n &::-webkit-inner-spin-button {\n -webkit-appearance: none;\n margin: 0;\n }\n\n /* 移除数字输入框的箭头(Firefox) */\n &[type='number'] {\n -moz-appearance: textfield;\n }\n`\n\n/**\n * 图标包装器(前缀/后缀图标)\n * \n * 特性:\n * - 灵活的尺寸适配\n * - 颜色自动继承或根据状态调整\n */\nexport const IconWrapper = styled.span<{\n isError: boolean\n isDisabled: boolean\n position: 'prefix' | 'suffix'\n}>`\n display: inline-flex;\n align-items: center;\n justify-content: center;\n flex-shrink: 0;\n line-height: 0;\n\n /* 颜色继承或根据状态调整 */\n color: ${({ isError, isDisabled, theme }) => {\n if (isDisabled) return theme.components.input.text.disabled\n if (isError) return theme.components.input.text.error\n return theme.components.input.text.default\n }};\n\n /* 确保图标大小一致 */\n svg {\n display: block;\n }\n`\n\n/**\n * 清除按钮\n * \n * 特性:\n * - 仅在有内容且未禁用时显示\n * - hover 时有反馈效果\n * - 无障碍友好\n */\nexport const ClearButton = styled.button<{\n isError: boolean\n}>`\n /* 重置按钮样式 */\n display: inline-flex;\n align-items: center;\n justify-content: center;\n flex-shrink: 0;\n padding: 0;\n margin: 0;\n border: none;\n background: transparent;\n cursor: pointer;\n outline: none;\n line-height: 0;\n\n /* 颜色 */\n color: ${({ isError, theme }) =>\n isError\n ? theme.components.input.text.error\n : theme.components.input.text.counter};\n\n /* 过渡动画 */\n transition: opacity ${({ theme }) => theme.components.input.transition},\n color ${({ theme }) => theme.components.input.transition};\n\n /* hover 状态 */\n &:hover {\n opacity: 0.7;\n }\n\n /* active 状态 */\n &:active {\n opacity: 0.5;\n }\n\n /* focus 可见状态 */\n &:focus-visible {\n outline: 2px solid ${({ theme }) => theme.components.input.border.focus};\n outline-offset: 2px;\n border-radius: 2px;\n }\n\n /* 图标尺寸 */\n svg {\n width: 16px;\n height: 16px;\n display: block;\n }\n`\n\n/**\n * 字符计数器\n * \n * 显示格式:当前字数/最大字数\n */\nexport const Counter = styled.span<{\n isError: boolean\n isDisabled: boolean\n}>`\n display: inline-flex;\n align-items: center;\n flex-shrink: 0;\n font-family: ${({ theme }) => theme.global.typography.fontFamily};\n font-size: inherit;\n line-height: 1.5;\n white-space: nowrap;\n user-select: none;\n\n /* 颜色 */\n color: ${({ isError, isDisabled, theme }) => {\n if (isDisabled) return theme.components.input.text.disabled\n if (isError) return theme.components.input.text.error\n return theme.components.input.text.counter\n }};\n`\n\n","/**\n * Input 输入框组件\n * \n * 基于 react-aria 实现无障碍访问的输入框组件\n * 完全符合 Figma 设计稿规范\n * \n * @example\n * ```tsx\n * <Input\n * size=\"md\"\n * placeholder=\"请输入内容\"\n * clearable\n * showCounter\n * maxLength={100}\n * />\n * ```\n */\n\nimport { forwardRef, useRef, useState, type ReactNode, type ChangeEvent, type FocusEvent } from 'react'\nimport {\n InputRoot,\n InputWrapper,\n StyledInput,\n IconWrapper,\n ClearButton,\n Counter,\n inputSizes,\n type InputSize,\n} from './Input.style'\n\n// 导出常量供外部使用\nexport const SIZES = inputSizes\n\nexport type InputProps = Omit<\n React.InputHTMLAttributes<HTMLInputElement>,\n 'size' | 'prefix'\n> & {\n /** 输入框尺寸:小号(24px)、标准(32px)、大号(40px) */\n size?: InputSize\n /** 前缀图标 */\n prefix?: ReactNode\n /** 后缀图标 */\n suffix?: ReactNode\n /** 是否显示清除按钮(有值时显示) */\n clearable?: boolean\n /** 错误状态 */\n error?: boolean\n /** 错误提示信息 */\n errorMessage?: ReactNode\n /** 是否显示字符计数器 */\n showCounter?: boolean\n /** 全宽输入框 */\n fullWidth?: boolean\n /** 是否禁用 */\n disabled?: boolean\n /** 输入框标签 */\n label?: ReactNode\n /** 输入框描述 */\n description?: ReactNode\n}\n\n/**\n * 清除图标 SVG\n */\nconst CloseIcon = () => (\n <svg\n width=\"16\"\n height=\"16\"\n viewBox=\"0 0 16 16\"\n fill=\"none\"\n xmlns=\"http://www.w3.org/2000/svg\"\n >\n <path\n d=\"M12 4L4 12M4 4L12 12\"\n stroke=\"currentColor\"\n strokeWidth=\"1.5\"\n strokeLinecap=\"round\"\n strokeLinejoin=\"round\"\n />\n </svg>\n)\n\n/**\n * Input 输入框组件\n * \n * 基于 Figma 设计规范实现的输入框组件,支持多种尺寸和状态\n */\nexport const Input = forwardRef<HTMLInputElement, InputProps>(\n (\n {\n size = 'md',\n prefix,\n suffix,\n clearable = false,\n error = false,\n errorMessage,\n showCounter = false,\n fullWidth = false,\n disabled,\n className,\n type = 'text',\n value,\n defaultValue,\n onChange,\n onFocus,\n onBlur,\n maxLength,\n label,\n description,\n id,\n 'aria-label': ariaLabel,\n 'aria-describedby': ariaDescribedBy,\n ...restProps\n },\n forwardedRef\n ) => {\n const innerRef = useRef<HTMLInputElement>(null)\n const ref = (forwardedRef || innerRef) as React.RefObject<HTMLInputElement>\n \n // 生成唯一 ID(只在组件初始化时生成一次)\n const generatedId = useRef(`input-${Math.random().toString(36).slice(2, 9)}`)\n\n // 内部状态管理(用于 UI 反馈)\n const [isFocused, setIsFocused] = useState(false)\n const [isHovered, setIsHovered] = useState(false)\n const [internalValue, setInternalValue] = useState(defaultValue || '')\n\n // 获取当前值(受控或非受控)\n const isControlled = value !== undefined\n const currentValue = isControlled ? String(value) : String(internalValue)\n\n // 处理输入变化\n const handleChange = (e: ChangeEvent<HTMLInputElement>) => {\n if (!isControlled) {\n setInternalValue(e.target.value)\n }\n onChange?.(e)\n }\n\n // 处理焦点事件\n const handleFocus = (e: FocusEvent<HTMLInputElement>) => {\n setIsFocused(true)\n onFocus?.(e)\n }\n\n const handleBlur = (e: FocusEvent<HTMLInputElement>) => {\n setIsFocused(false)\n onBlur?.(e)\n }\n\n // 清除按钮点击处理\n const handleClear = () => {\n if (disabled || !ref.current) return\n\n // 创建合成事件以触发 onChange\n const nativeInputValueSetter = Object.getOwnPropertyDescriptor(\n window.HTMLInputElement.prototype,\n 'value'\n )?.set\n nativeInputValueSetter?.call(ref.current, '')\n\n const event = new Event('input', { bubbles: true })\n Object.defineProperty(event, 'target', {\n writable: false,\n value: ref.current,\n })\n \n if (!isControlled) {\n setInternalValue('')\n }\n onChange?.(event as unknown as ChangeEvent<HTMLInputElement>)\n\n // 聚焦回输入框\n ref.current.focus()\n }\n\n // 计算字符数\n const currentLength = currentValue.length\n const showClearButton = clearable && currentLength > 0 && !disabled\n\n // 使用提供的 ID 或生成的唯一 ID\n const inputId = id || generatedId.current\n const descriptionId = description ? `${inputId}-description` : undefined\n const errorId = errorMessage && error ? `${inputId}-error` : undefined\n \n const describedBy = [ariaDescribedBy, descriptionId, errorId]\n .filter(Boolean)\n .join(' ') || undefined\n\n return (\n <div>\n {/* Label 如果提供 */}\n {label && (\n <label htmlFor={inputId} style={{ display: 'block', marginBottom: 4 }}>\n {label}\n </label>\n )}\n\n <InputRoot\n size={size}\n fullWidth={fullWidth}\n isFocused={isFocused}\n isError={error}\n isDisabled={!!disabled}\n isHovered={isHovered}\n className={className}\n onMouseEnter={() => setIsHovered(true)}\n onMouseLeave={() => setIsHovered(false)}\n >\n <InputWrapper>\n {/* 前缀图标 */}\n {prefix && (\n <IconWrapper\n isError={error}\n isDisabled={!!disabled}\n position=\"prefix\"\n aria-hidden=\"true\"\n >\n {prefix}\n </IconWrapper>\n )}\n\n {/* 输入框 */}\n <StyledInput\n {...restProps}\n ref={ref}\n id={inputId}\n type={type}\n value={value}\n defaultValue={defaultValue}\n onChange={handleChange}\n onFocus={handleFocus}\n onBlur={handleBlur}\n maxLength={maxLength}\n disabled={disabled}\n aria-label={ariaLabel}\n aria-describedby={describedBy}\n aria-invalid={error}\n isError={error}\n isDisabled={!!disabled}\n />\n\n {/* 清除按钮 */}\n {showClearButton && (\n <ClearButton\n type=\"button\"\n onClick={handleClear}\n aria-label=\"清除内容\"\n isError={error}\n tabIndex={-1}\n >\n <CloseIcon />\n </ClearButton>\n )}\n\n {/* 后缀图标 */}\n {suffix && (\n <IconWrapper\n isError={error}\n isDisabled={!!disabled}\n position=\"suffix\"\n aria-hidden=\"true\"\n >\n {suffix}\n </IconWrapper>\n )}\n\n {/* 字符计数器 */}\n {showCounter && maxLength !== undefined && (\n <Counter\n isError={error}\n isDisabled={!!disabled}\n aria-live=\"polite\"\n aria-atomic=\"true\"\n >\n {currentLength}/{maxLength}\n </Counter>\n )}\n </InputWrapper>\n </InputRoot>\n\n {/* Description 如果提供 */}\n {description && (\n <div id={descriptionId} style={{ marginTop: 4, fontSize: 12 }}>\n {description}\n </div>\n )}\n\n {/* Error Message 如果提供 */}\n {errorMessage && error && (\n <div\n id={errorId}\n role=\"alert\"\n style={{ marginTop: 4, fontSize: 12, color: 'inherit' }}\n >\n {errorMessage}\n </div>\n )}\n </div>\n )\n }\n)\n\nInput.displayName = 'Input'\n\n","/**\n * Menu 菜单样式\n * \n * 基于三层 Token 体系的侧边栏导航菜单组件样式\n * 完全还原 Figma 设计稿规范\n */\n\nimport styled from '@emotion/styled'\n\n// ============================================================================\n// 类型定义\n// ============================================================================\n\nexport interface MenuStyleProps {\n collapsed?: boolean\n}\n\nexport interface MenuItemStyleProps {\n active?: boolean\n disabled?: boolean\n isSubItem?: boolean\n collapsed?: boolean\n}\n\n// ============================================================================\n// Menu 容器样式\n// ============================================================================\n\n/**\n * Menu 根容器\n * \n * 特性:\n * - 支持展开/折叠状态\n * - 固定宽度\n * - 滚动区域\n */\nexport const MenuContainer = styled.div<MenuStyleProps>`\n display: flex;\n flex-direction: column;\n width: ${({ collapsed, theme }) => \n collapsed ? theme.components.menu.container.width.collapsed : theme.components.menu.container.width.expanded};\n height: 100%;\n background: ${({ theme }) => theme.components.menu.container.background};\n transition: width 0.3s cubic-bezier(0.4, 0, 0.2, 1);\n overflow: hidden;\n\n /* 滚动条样式 */\n &::-webkit-scrollbar {\n width: ${({ theme }) => theme.components.menu.scrollbar.width};\n }\n\n &::-webkit-scrollbar-track {\n background: ${({ theme }) => theme.components.menu.scrollbar.trackColor};\n }\n\n &::-webkit-scrollbar-thumb {\n background: ${({ theme }) => theme.components.menu.scrollbar.thumbColor};\n border-radius: 4px;\n }\n\n &::-webkit-scrollbar-thumb:hover {\n background: rgba(0, 0, 0, 0.3);\n }\n`\n\n/**\n * Menu 内容滚动区域\n */\nexport const MenuContent = styled.div`\n flex: 1;\n overflow-y: auto;\n overflow-x: hidden;\n padding: ${({ theme }) => theme.components.menu.container.padding};\n padding-top: 0;\n\n /* 滚动条样式 */\n &::-webkit-scrollbar {\n width: ${({ theme }) => theme.components.menu.scrollbar.width};\n }\n\n &::-webkit-scrollbar-track {\n background: ${({ theme }) => theme.components.menu.scrollbar.trackColor};\n }\n\n &::-webkit-scrollbar-thumb {\n background: ${({ theme }) => theme.components.menu.scrollbar.thumbColor};\n border-radius: 4px;\n }\n\n &::-webkit-scrollbar-thumb:hover {\n background: rgba(0, 0, 0, 0.3);\n }\n`\n\n// ============================================================================\n// MenuItem 样式\n// ============================================================================\n\n/**\n * MenuItem 容器\n * \n * 支持:\n * - 激活状态\n * - 禁用状态\n * - 子菜单缩进\n */\nexport const MenuItemContainer = styled.button<MenuItemStyleProps>`\n display: flex;\n align-items: center;\n justify-content: flex-start;\n width: 100%;\n height: ${({ theme }) => theme.components.menu.item.height};\n padding-inline: ${({ theme, isSubItem }) => \n isSubItem ? theme.components.menu.subItem.paddingLeft : theme.components.menu.item.paddingInline};\n gap: ${({ theme }) => theme.components.menu.item.gap};\n border: none;\n border-radius: ${({ theme }) => theme.components.menu.item.borderRadius};\n position: relative;\n overflow: hidden;\n background: ${({ theme, active, isSubItem, collapsed }) =>\n collapsed\n ? 'transparent'\n : active\n ? 'transparent'\n : isSubItem\n ? theme.components.menu.subItem.background.default\n : theme.components.menu.item.background.default};\n color: ${({ theme, active, collapsed }) =>\n collapsed && active\n ? theme.semantic.colors.brand.primaryActive\n : active\n ? theme.components.menu.item.text.active\n : theme.components.menu.item.text.default};\n font-size: ${({ theme }) => theme.components.menu.item.fontSize};\n font-weight: ${({ theme }) => theme.components.menu.item.fontWeight};\n font-family: ${({ theme }) => theme.global.typography.fontFamily};\n text-align: left;\n cursor: ${({ disabled }) => (disabled ? 'not-allowed' : 'pointer')};\n transition: ${({ theme }) => theme.components.menu.item.transition};\n user-select: none;\n outline: none;\n\n &::before {\n content: '';\n position: absolute;\n inset: 0;\n border-radius: inherit;\n background: ${({ theme, isSubItem }) =>\n isSubItem\n ? theme.components.menu.subItem.background.active\n : theme.components.menu.item.background.active};\n transform-origin: left center;\n transform: ${({ active, collapsed }) => (collapsed ? 'scaleX(0)' : active ? 'scaleX(1)' : 'scaleX(0)')};\n opacity: ${({ active, collapsed }) => (collapsed ? 0 : active ? 1 : 0)};\n transition: transform 0.35s cubic-bezier(0.4, 0, 0.2, 1), opacity 0.2s ease;\n z-index: 0;\n }\n\n &::after {\n content: '';\n position: absolute;\n inset: 0;\n border-radius: inherit;\n background: ${({ theme, isSubItem }) =>\n isSubItem\n ? theme.components.menu.subItem.background.hover\n : theme.components.menu.item.background.hover};\n transform: translateX(-100%);\n opacity: 0;\n transition: transform 0.3s ease, opacity 0.2s ease;\n z-index: 0;\n }\n\n & > * {\n position: relative;\n z-index: 1;\n }\n\n /* Hover 状态 */\n &:hover:not(:disabled) {\n background: ${({ theme, active, isSubItem, collapsed }) =>\n collapsed\n ? 'transparent'\n : active\n ? 'transparent'\n : isSubItem\n ? theme.components.menu.subItem.background.hover\n : theme.components.menu.item.background.hover};\n color: ${({ theme, active, collapsed }) =>\n collapsed\n ? theme.semantic.colors.brand.primaryActive\n : active\n ? theme.components.menu.item.text.active\n : theme.components.menu.item.text.hover};\n }\n\n &:hover:not(:disabled)::after {\n transform: ${({ collapsed, active }) =>\n !collapsed && !active ? 'translateX(0)' : 'translateX(-100%)'};\n opacity: ${({ collapsed, active }) => (!collapsed && !active ? 1 : 0)};\n }\n\n /* 禁用状态 */\n &:disabled {\n opacity: 0.5;\n cursor: not-allowed;\n }\n\n /* Focus 状态 */\n &:focus-visible {\n outline: 2px solid ${({ theme }) => theme.semantic.colors.brand.primary};\n outline-offset: -2px;\n }\n`\n\n/**\n * MenuItem 图标容器\n */\nexport const MenuItemIcon = styled.span`\n display: inline-flex;\n align-items: center;\n justify-content: center;\n flex-shrink: 0;\n width: ${({ theme }) => theme.components.menu.item.iconSize};\n height: ${({ theme }) => theme.components.menu.item.iconSize};\n\n svg {\n width: 100%;\n height: 100%;\n }\n`\n\n/**\n * MenuItem 文字标签\n */\nexport const MenuItemLabel = styled.span<{ collapsed?: boolean }>`\n flex: 1;\n overflow: hidden;\n text-overflow: ellipsis;\n white-space: nowrap;\n opacity: ${({ collapsed }) => (collapsed ? 0 : 1)};\n transition: opacity 0.2s ease;\n`\n\n/**\n * MenuItem 箭头图标\n */\nexport const MenuItemArrow = styled.span<{ collapsed?: boolean; expanded?: boolean }>`\n display: inline-flex;\n align-items: center;\n justify-content: center;\n flex-shrink: 0;\n width: 14px;\n height: 14px;\n opacity: ${({ collapsed }) => (collapsed ? 0 : 1)};\n transition: transform 0.2s ease, opacity 0.2s ease;\n transform: ${({ expanded }) => (expanded ? 'rotate(90deg)' : 'rotate(0deg)')};\n\n svg {\n width: 100%;\n height: 100%;\n }\n`\n\n// ============================================================================\n// MenuGroup 样式\n// ============================================================================\n\n/**\n * MenuGroup 容器\n */\nexport const MenuGroupContainer = styled.div`\n display: flex;\n flex-direction: column;\n gap: ${({ theme }) => theme.components.menu.group.gap};\n margin-top: ${({ theme }) => theme.components.menu.group.marginTop};\n\n &:first-of-type {\n margin-top: 0;\n }\n`\n\n/**\n * MenuGroup 标题\n */\nexport const MenuGroupTitle = styled.div<{ collapsed?: boolean }>`\n display: flex;\n align-items: center;\n height: ${({ theme }) => theme.components.menu.groupTitle.height};\n padding-inline: ${({ theme }) => theme.components.menu.groupTitle.paddingInline};\n margin-bottom: ${({ theme }) => theme.components.menu.groupTitle.marginBottom};\n font-size: ${({ theme }) => theme.components.menu.groupTitle.fontSize};\n font-weight: ${({ theme }) => theme.components.menu.groupTitle.fontWeight};\n color: ${({ theme }) => theme.components.menu.groupTitle.color};\n opacity: ${({ collapsed }) => (collapsed ? 0 : 1)};\n transition: opacity 0.2s ease;\n overflow: hidden;\n\n /* 分割线 */\n &::after {\n content: '';\n flex: 1;\n height: 1px;\n background: ${({ theme }) => theme.semantic.colors.border.primary};\n margin-left: 8px;\n opacity: ${({ collapsed }) => (collapsed ? 0 : 1)};\n }\n`\n\n/**\n * MenuGroup 项目容器\n */\nexport const MenuGroupItems = styled.div`\n display: flex;\n flex-direction: column;\n gap: ${({ theme }) => theme.components.menu.group.gap};\n`\n\n// ============================================================================\n// SubMenuPopover 悬浮层样式\n// ============================================================================\n\n/**\n * SubMenuPopover 容器\n * \n * 折叠状态下的二级菜单悬浮层\n */\nexport const SubMenuPopoverContainer = styled.div`\n position: fixed;\n z-index: 9999;\n min-width: 200px;\n background: ${({ theme }) => theme.components.menu.popover.background};\n border: ${({ theme }) => theme.components.menu.popover.border};\n border-radius: ${({ theme }) => theme.components.menu.popover.borderRadius};\n box-shadow: ${({ theme }) => theme.components.menu.popover.boxShadow};\n padding: ${({ theme }) => theme.components.menu.popover.padding};\n animation: slideIn 0.2s cubic-bezier(0.4, 0, 0.2, 1);\n\n @keyframes slideIn {\n from {\n opacity: 0;\n transform: translateX(-8px);\n }\n to {\n opacity: 1;\n transform: translateX(0);\n }\n }\n`\n\n/**\n * SubMenuPopover 内容区域\n */\nexport const SubMenuPopoverContent = styled.div`\n display: flex;\n flex-direction: column;\n gap: ${({ theme }) => theme.components.menu.group.gap};\n`\n\n/**\n * SubMenuPopover 菜单项容器\n * \n * 悬浮层中的菜单项样式\n */\nexport const SubMenuPopoverItem = styled.button<{ active?: boolean }>`\n display: flex;\n align-items: center;\n justify-content: flex-start;\n width: 100%;\n height: ${({ theme }) => theme.components.menu.item.height};\n padding-inline: ${({ theme }) => theme.components.menu.item.paddingInline};\n gap: ${({ theme }) => theme.components.menu.item.gap};\n border: none;\n border-radius: ${({ theme }) => theme.components.menu.item.borderRadius};\n background: ${({ theme, active }) =>\n active\n ? theme.components.menu.popover.item.background.active\n : theme.components.menu.popover.item.background.default};\n color: ${({ theme, active }) =>\n active\n ? theme.components.menu.popover.item.text.active\n : theme.components.menu.popover.item.text.default};\n font-size: ${({ theme }) => theme.components.menu.item.fontSize};\n font-weight: ${({ theme }) => theme.components.menu.item.fontWeight};\n font-family: ${({ theme }) => theme.global.typography.fontFamily};\n text-align: left;\n cursor: pointer;\n transition: ${({ theme }) => theme.components.menu.item.transition};\n user-select: none;\n outline: none;\n white-space: nowrap;\n\n &:hover {\n background: ${({ theme, active }) =>\n active\n ? theme.components.menu.popover.item.background.active\n : theme.components.menu.popover.item.background.hover};\n color: ${({ theme, active }) =>\n active\n ? theme.components.menu.popover.item.text.active\n : theme.components.menu.popover.item.text.hover};\n }\n\n &:focus-visible {\n outline: 2px solid ${({ theme }) => theme.semantic.colors.brand.primary};\n outline-offset: -2px;\n }\n`\n\n","/**\n * Menu 侧边栏菜单组件\n * \n * 基于 Figma 设计稿的导航菜单组件\n * 支持展开/折叠、分组、子菜单等功能\n */\n\nimport { forwardRef, type ReactNode } from 'react'\nimport { MenuContainer, MenuContent } from './Menu.style'\n\nexport interface MenuProps {\n /** 菜单是否折叠 */\n collapsed?: boolean\n /** 子元素(自定义内容、MenuGroup、MenuItem等) */\n children: ReactNode\n /** 自定义类名 */\n className?: string\n /** 自定义样式 */\n style?: React.CSSProperties\n}\n\n/**\n * Menu 侧边栏菜单组件\n * \n * 主容器组件,用于包裹所有菜单相关子组件\n * \n * @example\n * ```tsx\n * <Menu collapsed={false}>\n * <div style={{ padding: 24 }}>自定义头部</div>\n *\n * <MenuGroup title=\"主要功能\">\n * <MenuItem icon={<HomeIcon />} label=\"首页\" active />\n * <MenuItem icon={<UserIcon />} label=\"用户\" />\n * </MenuGroup>\n * \n * <div style={{ padding: 24 }}>自定义底部</div>\n * </Menu>\n * ```\n */\nexport const Menu = forwardRef<HTMLDivElement, MenuProps>(\n ({ collapsed = false, children, className, style }, ref) => {\n return (\n <MenuContainer\n ref={ref}\n collapsed={collapsed}\n className={className}\n style={style}\n role=\"navigation\"\n aria-label=\"主导航\"\n >\n <MenuContent role=\"menu\">{children}</MenuContent>\n </MenuContainer>\n )\n },\n)\n\nMenu.displayName = 'Menu'\n\n","/**\n * SubMenuPopover 子菜单悬浮层组件\n * \n * 用于在折叠状态下显示二级菜单\n */\n\nimport { type ReactNode, useEffect, useRef, useState } from 'react'\n// @ts-ignore - react-dom type issue\nimport { createPortal } from 'react-dom'\nimport { SubMenuPopoverContainer, SubMenuPopoverContent } from './Menu.style'\n\nexport interface SubMenuPopoverProps {\n /** 是否显示 */\n visible: boolean\n /** 触发元素的引用 */\n anchorRef: React.RefObject<HTMLElement>\n /** 子菜单内容 */\n children: ReactNode\n /** 关闭回调 */\n onClose?: () => void\n /** 鼠标移入事件 */\n onMouseEnter?: () => void\n /** 鼠标移出事件 */\n onMouseLeave?: () => void\n}\n\n/**\n * SubMenuPopover 子菜单悬浮层组件\n * \n * 在折叠状态下,鼠标悬浮一级菜单时展示二级菜单\n */\nexport const SubMenuPopover = ({\n visible,\n anchorRef,\n children,\n onClose,\n onMouseEnter,\n onMouseLeave,\n}: SubMenuPopoverProps) => {\n const popoverRef = useRef<HTMLDivElement>(null)\n const [position, setPosition] = useState({ top: 0, left: 0 })\n\n // 计算弹出层位置\n useEffect(() => {\n if (!visible || !anchorRef.current) return\n\n const updatePosition = () => {\n if (!anchorRef.current) return\n\n const rect = anchorRef.current.getBoundingClientRect()\n const gap = 4 // 与触发元素的间距\n\n setPosition({\n top: rect.top,\n left: rect.right + gap,\n })\n }\n\n updatePosition()\n\n // 监听滚动和窗口大小变化\n window.addEventListener('scroll', updatePosition, true)\n window.addEventListener('resize', updatePosition)\n\n return () => {\n window.removeEventListener('scroll', updatePosition, true)\n window.removeEventListener('resize', updatePosition)\n }\n }, [visible, anchorRef])\n\n // 处理点击外部关闭\n useEffect(() => {\n if (!visible) return\n\n const handleClickOutside = (e: MouseEvent) => {\n if (\n popoverRef.current &&\n !popoverRef.current.contains(e.target as Node) &&\n anchorRef.current &&\n !anchorRef.current.contains(e.target as Node)\n ) {\n onClose?.()\n }\n }\n\n // 延迟添加监听器,避免立即触发\n const timer = setTimeout(() => {\n document.addEventListener('mousedown', handleClickOutside)\n }, 100)\n\n return () => {\n clearTimeout(timer)\n document.removeEventListener('mousedown', handleClickOutside)\n }\n }, [visible, onClose, anchorRef])\n\n if (!visible) return null\n\n return createPortal(\n <SubMenuPopoverContainer\n ref={popoverRef}\n style={{\n top: position.top,\n left: position.left,\n }}\n role=\"menu\"\n aria-label=\"子菜单\"\n onMouseEnter={onMouseEnter}\n onMouseLeave={onMouseLeave}\n >\n <SubMenuPopoverContent>{children}</SubMenuPopoverContent>\n </SubMenuPopoverContainer>,\n document.body,\n )\n}\n\nSubMenuPopover.displayName = 'SubMenuPopover'\n\n","/**\n * MenuItem 菜单项组件\n * \n * 基于 react-aria 实现无障碍访问的菜单项\n * 支持图标、文字、箭头指示器、悬浮子菜单\n */\n\nimport { forwardRef, type ReactNode, useRef, useState } from 'react'\nimport {\n MenuItemContainer,\n MenuItemIcon,\n MenuItemLabel,\n MenuItemArrow,\n} from './Menu.style'\nimport { SubMenuPopover } from './SubMenuPopover'\n\nexport interface MenuItemProps {\n /** 唯一标识符 */\n id?: string\n /** 菜单项图标 */\n icon?: ReactNode\n /** 菜单项文字 */\n label: string\n /** 是否激活/选中 */\n active?: boolean\n /** 是否禁用 */\n disabled?: boolean\n /** 是否为子菜单项 */\n isSubItem?: boolean\n /** 是否显示箭头(用于可展开项) */\n showArrow?: boolean\n /** 箭头是否展开 */\n arrowExpanded?: boolean\n /** 菜单是否折叠 */\n collapsed?: boolean\n /** 子菜单内容(折叠状态下悬浮显示) */\n subMenu?: ReactNode\n /** 点击事件 */\n onClick?: () => void\n /** 自定义类名 */\n className?: string\n}\n\n/**\n * MenuItem 菜单项组件\n * \n * 用于侧边栏导航的单个菜单项\n * 支持激活状态、禁用状态、子菜单缩进、折叠时的悬浮子菜单\n */\nexport const MenuItem = forwardRef<HTMLButtonElement, MenuItemProps>(\n (\n {\n id,\n icon,\n label,\n active = false,\n disabled = false,\n isSubItem = false,\n showArrow = false,\n arrowExpanded = false,\n collapsed = false,\n subMenu,\n onClick,\n className,\n },\n ref,\n ) => {\n const itemRef = useRef<HTMLButtonElement>(null)\n const [showPopover, setShowPopover] = useState(false)\n const hoverTimerRef = useRef<ReturnType<typeof setTimeout> | undefined>(undefined)\n const closeTimerRef = useRef<ReturnType<typeof setTimeout> | undefined>(undefined)\n\n // 清除所有定时器\n const clearTimers = () => {\n if (hoverTimerRef.current) {\n clearTimeout(hoverTimerRef.current)\n hoverTimerRef.current = undefined\n }\n if (closeTimerRef.current) {\n clearTimeout(closeTimerRef.current)\n closeTimerRef.current = undefined\n }\n }\n\n // 处理鼠标进入\n const handleMouseEnter = () => {\n clearTimers()\n \n if (collapsed && subMenu) {\n if (showPopover) return\n\n // 延迟显示,避免误触\n hoverTimerRef.current = setTimeout(() => {\n setShowPopover(true)\n }, 200)\n }\n }\n\n // 处理鼠标离开\n const handleMouseLeave = () => {\n clearTimers()\n \n // 延迟隐藏,让用户有时间移动到悬浮层\n closeTimerRef.current = setTimeout(() => {\n setShowPopover(false)\n }, 100)\n }\n\n return (\n <>\n <MenuItemContainer\n ref={(node) => {\n // 合并 refs\n if (typeof ref === 'function') {\n ref(node)\n } else if (ref) {\n ref.current = node\n }\n if (node) {\n itemRef.current = node\n }\n }}\n id={id}\n active={active}\n disabled={disabled}\n isSubItem={isSubItem}\n onClick={onClick}\n collapsed={collapsed}\n className={className}\n role=\"menuitem\"\n aria-disabled={disabled}\n aria-current={active ? 'page' : undefined}\n aria-haspopup={collapsed && subMenu ? 'menu' : undefined}\n type=\"button\"\n onMouseEnter={handleMouseEnter}\n onMouseLeave={handleMouseLeave}\n >\n {/* 图标 */}\n {icon && <MenuItemIcon aria-hidden=\"true\">{icon}</MenuItemIcon>}\n\n {/* 文字标签 */}\n <MenuItemLabel collapsed={collapsed}>{label}</MenuItemLabel>\n\n {/* 箭头指示器 */}\n {showArrow && !collapsed && (\n <MenuItemArrow collapsed={collapsed} expanded={arrowExpanded} aria-hidden=\"true\">\n <svg\n width=\"14\"\n height=\"14\"\n viewBox=\"0 0 14 14\"\n fill=\"none\"\n xmlns=\"http://www.w3.org/2000/svg\"\n >\n <path\n d=\"M5.25 3.5L8.75 7L5.25 10.5\"\n stroke=\"currentColor\"\n strokeWidth=\"1.5\"\n strokeLinecap=\"round\"\n strokeLinejoin=\"round\"\n />\n </svg>\n </MenuItemArrow>\n )}\n </MenuItemContainer>\n\n {/* 折叠状态下的悬浮子菜单 */}\n {collapsed && subMenu && (\n <SubMenuPopover\n visible={showPopover}\n anchorRef={itemRef as React.RefObject<HTMLElement>}\n onClose={() => setShowPopover(false)}\n onMouseEnter={handleMouseEnter}\n onMouseLeave={handleMouseLeave}\n >\n {subMenu}\n </SubMenuPopover>\n )}\n </>\n )\n },\n)\n\nMenuItem.displayName = 'MenuItem'\n\n","/**\n * MenuGroup 菜单分组组件\n * \n * 用于对菜单项进行分组,并显示分组标题\n */\n\nimport { type ReactNode } from 'react'\nimport {\n MenuGroupContainer,\n MenuGroupTitle,\n MenuGroupItems,\n} from './Menu.style'\n\nexport interface MenuGroupProps {\n /** 分组标题 */\n title?: string\n /** 子元素(菜单项) */\n children: ReactNode\n /** 菜单是否折叠 */\n collapsed?: boolean\n /** 自定义类名 */\n className?: string\n}\n\n/**\n * MenuGroup 菜单分组组件\n * \n * 用于将相关的菜单项组织在一起\n * 可选的分组标题和分割线\n */\nexport const MenuGroup = ({\n title,\n children,\n collapsed = false,\n className,\n}: MenuGroupProps) => {\n return (\n <MenuGroupContainer className={className} role=\"group\" aria-label={title}>\n {/* 分组标题 */}\n {title && (\n <MenuGroupTitle collapsed={collapsed} aria-hidden={collapsed}>\n {title}\n </MenuGroupTitle>\n )}\n\n {/* 菜单项列表 */}\n <MenuGroupItems>{children}</MenuGroupItems>\n </MenuGroupContainer>\n )\n}\n\nMenuGroup.displayName = 'MenuGroup'\n\n","/**\n * SubMenuItem 子菜单项组件\n * \n * 用于在悬浮层中展示的子菜单项\n */\n\nimport { SubMenuPopoverItem } from './Menu.style'\n\nexport interface SubMenuItemProps {\n /** 唯一标识符 */\n id?: string\n /** 菜单项文字 */\n label: string\n /** 是否激活/选中 */\n active?: boolean\n /** 点击事件 */\n onClick?: () => void\n /** 自定义类名 */\n className?: string\n}\n\n/**\n * SubMenuItem 子菜单项组件\n * \n * 用于悬浮层中的子菜单项\n */\nexport const SubMenuItem = ({\n id,\n label,\n active = false,\n onClick,\n className,\n}: SubMenuItemProps) => {\n return (\n <SubMenuPopoverItem\n id={id}\n active={active}\n onClick={onClick}\n className={className}\n role=\"menuitem\"\n aria-current={active ? 'page' : undefined}\n type=\"button\"\n >\n {label}\n </SubMenuPopoverItem>\n )\n}\n\nSubMenuItem.displayName = 'SubMenuItem'\n\n","import styled from '@emotion/styled'\n// 提取公共禁用样式函数\nconst getDisabledStyles = (theme: any) => ({\n cursor: 'not-allowed',\n backgroundColor: theme.components.numberfield?.background?.disabled ?? '#f5f5f5',\n color: theme.components.numberfield?.text?.disabled ?? '#9aa0a6',\n opacity: 0.6\n})\n\nexport const NumberRoot = styled.div`\n display: inline-flex;\n flex-direction: column;\n`\n\nexport const Label = styled.label`\n margin-bottom: 6px;\n font-size: 12px;\n`\n\n// 修改NumberGroup组件的类型定义,添加controls属性\n export const NumberGroup = styled.div<{ \n size?: 'md' | 'lg'; \n disabled?: boolean;\n controls?: 'buttons' | 'arrows' // 添加controls属性\n }>`\n display: inline-flex;\n align-items: center;\n justify-content: space-between;\n text-align: center;\n gap: ${({ theme }) => theme.components.numberfield?.control?.side?.gap ?? '8px'};\n padding: ${({ theme }) => theme.components.numberfield?.control?.side?.inset};\n border: 1px solid ${({ theme }) => theme.components.numberfield?.border?.default ?? '#d9d9d9'};\n border-radius: ${({ theme }) => theme.components.numberfield?.borderRadius ?? '4px'};\n color: ${({ theme }) => theme.components.numberfield?.text?.default ?? '#0A1833'};\n background: ${({ disabled, theme }) => disabled ? theme.components.numberfield?.background?.disabled : theme.components.numberfield?.background?.default};\n height: ${({ theme, size }) => \n size === 'md' \n ? theme.components.numberfield?.size?.md?.height ?? '24px' \n : theme.components.numberfield?.size?.lg?.height ?? '32px'};\n font-size: ${({ theme, size }) => \n size === 'md' \n ? theme.components.numberfield?.size?.md?.fontSize ?? '12px' \n : theme.components.numberfield?.size?.lg?.fontSize ?? '14px'};\n \n // 优化宽度设置逻辑:先判断控件类型,再根据size设置不同宽度\n width: ${({ controls, size, theme }) => {\n // 先判断是buttons还是arrows类型\n if (controls === 'arrows') {\n // 箭头类型根据size设置不同宽度\n return size === 'md' ? theme.components.numberfield?.control?.arrows?.widthsm : theme.components.numberfield?.control?.arrows?.widthLg;\n }\n // 按钮类型根据size设置不同宽度(默认)\n return size === 'md' ? theme.components.numberfield?.control?.side?.widthsm : theme.components.numberfield?.control?.side?.widthLg;\n }};\n \n // 状态样式\n &:disabled,\n &[data-disabled=\"true\"] {\n ${({ theme }) => getDisabledStyles(theme)}\n opacity: 0.8;\n // 强制所有子元素不响应事件\n * {\n pointer-events: none !important;\n }\n }\n &:not(:disabled):not([data-disabled=\"true\"]):hover {\n border-color: ${({ theme }) => theme.components.numberfield?.border?.hover};\n button:not(:disabled):not(:hover) {\n background: ${({ theme }) => theme.components.numberfield?.background.hover};\n color: ${({ theme }) => theme.components.numberfield?.text?.default};\n }\n }\n \n // 禁用状态保持原有边框颜色\n &:disabled,\n &[data-disabled=\"true\"] {\n border-color: ${({ theme }) => theme.components.numberfield?.border?.default ?? '#d9d9d9'} !important;\n }\n }\n `\n\n// NumberField 简化后的样式\nexport const NumberField = styled.input`\n text-align: center;\n border:none;\n outline: none;\n width: ${({ theme }) => theme.components.numberfield?.input?.width ?? '40px'};\n height: ${({ theme }) => theme.components.numberfield?.input?.height ?? '18px'};\n font-size: ${({ theme }) => theme.components.numberfield?.input?.fontSize ?? '12px'};\n font-weight: ${({ theme }) => theme.components.numberfield?.input?.fontWeight ?? 400};\n line-height: ${({ theme }) => theme.components.numberfield?.input?.lineHeight ?? '18px'};\n font-family: ${({ theme }) => theme.components.numberfield?.input?.fontFamily ?? 'sans-serif'};\n \n // 移除默认箭头\n &::-webkit-outer-spin-button,\n &::-webkit-inner-spin-button {\n -webkit-appearance: none;\n margin: 0;\n }\n -moz-appearance: textfield;\n appearance: textfield;\n\n // 状态样式\n &:disabled,\n &[data-disabled=\"true\"] {\n ${({ theme }) => getDisabledStyles(theme)}\n }\n \n`\nexport const Description = styled.div`\n margin-top: 6px;\n font-size: 12px;\n color: ${({ theme }) => theme.components.numberfield?.text?.placeholder ?? '#6b6b6b'};\n`\n/** 竖直箭头控件(展示在输入右侧) */\nexport const ArrowGroup = styled.div`\n display: inline-flex;\n flex-direction: column; \n gap: 1px;\n`\n\n// 在文件末尾添加ArrowButton组件\nexport const ArrowButton = styled.button<{ direction: 'up' | 'down'; size?: 'md' | 'lg' ;disabled?: boolean}>`\n background: transparent;\n border: none;\n border-radius: ${({ direction }) => direction === 'up' ? '4px 4px 0 0' : '0 0 4px 4px'};\n display: inline-flex;\n align-items: center;\n justify-content: center;\n width: ${({ theme, size }) => {\n const heightValue = size === 'md' \n ? theme.components.numberfield?.control?.arrows?.buttonSizeSm \n : theme.components.numberfield?.control?.arrows?.buttonSizeLg;\n return `calc(${heightValue} * 2)`;\n}};\n height: ${({ theme, size }) => {\n const heightValue = size === 'md' \n ? theme.components.numberfield?.control?.arrows?.buttonSizeSm \n : theme.components.numberfield?.control?.arrows?.buttonSizeLg;\n return heightValue;\n}};\n color: ${({ theme }) => theme.components.numberfield?.border.default ?? '#0A1833'};\n cursor: pointer;\n // 使用主题中numberfield定义的transition参数\n transition: background-color ${({ theme }) => theme.components.numberfield?.transition || '0.2s ease'}, \n color ${({ theme }) => theme.components.numberfield?.transition || '0.2s ease'}, \n transform ${({ theme }) => theme.components.numberfield?.transition || '0.2s ease'};\n \n &:disabled,\n &[data-disabled=\"true\"] {\n ${({ theme }) => getDisabledStyles(theme)}\n transition: none; // 禁用状态不使用过渡\n }\n \n &:not(:disabled):hover:not([data-disabled=\"true\"]) {\n background-color: ${({ theme }) => theme.components.numberfield?.border?.default};\n color: ${({ theme }) => theme.components.numberfield?.border?.hover ?? '#1890ff'};\n }\n \n // 添加点击效果:点击变大一点再变回来\n &:not(:disabled):active:not([data-disabled=\"true\"]) {\n animation: clickScale ${({ theme }) => theme.components.numberfield?.transition?.replace('0.2s', '0.3s') || '0.3s ease'};\n }\n \n // 定义点击缩放动画\n @keyframes clickScale {\n 0% { transform: scale(1); }\n 50% { transform: scale(1.1); }\n 100% { transform: scale(1); }\n }\n`\n\n// 在SideButton组件中添加hover状态以控制背景颜色\nexport const SideButton = styled.button<{ pos?: 'left' | 'right'; size?: 'md' | 'lg' }>`\n display: inline-flex;\n align-items: center;\n justify-content: center;\n width: ${({ theme, size }) =>\n size === 'md'\n ? theme.components.numberfield?.control?.side?.buttonSizeSm \n : theme.components.numberfield?.control?.side?.buttonSizeLg };\n height: ${({ theme, size }) =>\n size === 'md'\n ? theme.components.numberfield?.control?.side?.buttonSizeSm \n : theme.components.numberfield?.control?.side?.buttonSizeLg };\n background: transparent;\n color: ${({ theme }) => theme.components.numberfield?.border.default ?? '#d9d9d9'};\n border: none;\n cursor: pointer;\n border-radius: 6px; \n padding: 2px;\n // 使用主题中numberfield定义的transition参数\n transition: background-color ${({ theme }) => theme.components.numberfield?.transition || '0.2s ease'}, \n color ${({ theme }) => theme.components.numberfield?.transition || '0.2s ease'}, \n transform ${({ theme }) => theme.components.numberfield?.transition || '0.2s ease'};\n \n &:disabled,\n &[data-disabled=\"true\"] {\n ${({ theme }) => getDisabledStyles(theme)}\n transition: none; // 禁用状态不使用过渡\n }\n \n // 添加hover状态控制背景颜色和图标颜色\n &:not(:disabled):hover:not([data-disabled=\"true\"]) {\n background-color: ${({ theme }) => theme.components.numberfield?.border.default};\n color: ${({ theme }) => theme.components.numberfield?.border?.hover ?? '#1890ff'};\n }\n \n // 添加点击效果:点击变大一点再变回来\n &:not(:disabled):active:not([data-disabled=\"true\"]) {\n animation: clickScale ${({ theme }) => theme.components.numberfield?.transition?.replace('0.2s', '0.3s') || '0.3s ease'};\n }\n \n // 定义点击缩放动画\n @keyframes clickScale {\n 0% { transform: scale(1); }\n 50% { transform: scale(1.1); }\n 100% { transform: scale(1); }\n }\n`","/**\n * 数字输入框组件\n * \n * 基于 react-aria 实现无障碍访问的数字输入框组件\n * 完全符合 Figma 设计稿规范\n * \n * @example\n * ```tsx\n * <NumberInput\n * size=\"md\"\n * defaultValue={10}\n * min={0}\n * max={100}\n * step={1}\n * label=\"数量\"\n * description=\"请输入数量\"\n * controls=\"buttons\"\n * onValueChange={(v) => console.log(v)}\n * />\n * ```\n */\n\nimport {\n forwardRef,\n useRef,\n useState,\n useEffect,\n type ReactNode,\n type ChangeEvent,\n type KeyboardEvent,\n} from 'react'\nimport {\n\tNumberRoot,\n\tNumberGroup,\n\tNumberField,\n\tLabel,\n\tDescription,\n\tArrowGroup,\n\tSideButton,\n\tArrowButton\n} from './NumberInput.style'\nimport { PlusOutline, ChevronUpOutline, ChevronDownOutline, MinusOutline } from '@kingsoft-ai/icons'\nexport type NumberInputProps = {\n\t/** 初始数值(受控请使用 value) */\n\tdefaultValue?: number\n\t/** 受控数值 */\n\tvalue?: number\n\t/** 最小值 */\n\tmin?: number\n\t/** 最大值 */\n\tmax?: number\n\t/** 步长 */\n\tstep?: number\n /** 控件样式:'buttons' - 左右 加/减 按钮;'arrows' - 右侧竖直箭头 */\n\tcontrols?: 'buttons' | 'arrows'\n /** 大小:'md' | 'lg' */\n size?: 'md' | 'lg'\n\t/** 值变化回调(返回 number | undefined) */\n\tonValueChange?: (v: number | undefined) => void\n\t/** 标签文本 */\n\tlabel?: ReactNode\n\t/** 描述文本 */\n\tdescription?: ReactNode\n\t/** 是否显示错误状态 */\n\terror?: boolean\n\t/** 错误提示文本 */\n\terrorMessage?: ReactNode\n\t/** 是否禁用 */\n\tdisabled?: boolean\n\t/** 自定义类名 */\n\tclassName?: string\n\t/** 自定义 ID */\n\tid?: string\n\t/** 原生 onChange 保留以便外部使用 */\n\tonChange?: (e: ChangeEvent<HTMLInputElement>) => void\n}\n/** 加图标 */\nconst PlusIcon = PlusOutline\n/** 减图标 */\nconst MinusIcon = MinusOutline\n/** 上箭头图标 */\nconst UpIcon = ChevronUpOutline\n/** 下箭头图标 */\nconst DownIcon = ChevronDownOutline\n/** 数字输入框组件 */\nexport const NumberInput = forwardRef<HTMLInputElement, NumberInputProps>(\n\t(\n\t\t\t{\n\t\t\tmin,\n\t\t\tmax,\n\t\t\tstep = 1,\n\t\t\tvalue,\n\t\t\tdefaultValue,\n\t\t\tonChange,\n\t\t\tonValueChange,\n\t\t\tdisabled,\n\t\t\tclassName,\n\t\t\tlabel,\n\t\t\tdescription,\n\t\t\terror = false,\n\t\t\tid,\n\t\t\tcontrols = 'buttons',\n\t\t\tsize = 'md',\n\t\t\t...rest\n\t\t},\n\t\tforwardedRef,\n\t) => {\n\t\tconst innerRef = useRef<HTMLInputElement | null>(null)\n\t\t// 同步 forwardedRef 到内部 ref(支持 object ref 与回调 ref)\n\t\tuseEffect(() => {\n\t\t\tif (!forwardedRef) return\n\t\t\tif (typeof forwardedRef === 'function') {\n\t\t\t\tforwardedRef(innerRef.current)\n\t\t\t} else {\n\t\t\t\t;(forwardedRef as React.MutableRefObject<HTMLInputElement | null>).current = innerRef.current\n\t\t\t}\n\t\t}, [forwardedRef])\n\t\tconst isControlled = value !== undefined\n\t\tconst [internal, setInternal] = useState<number | undefined>(defaultValue)\n\t\tconst currentValue = isControlled ? value : internal\n\t\t// clamp 工具\n\t\tconst clamp = (v: number) => {\n\t\t\tlet next = v\n\t\t\tif (min !== undefined) next = Math.max(next, min)\n\t\t\tif (max !== undefined) next = Math.min(next, max)\n\t\t\treturn next\n\t\t}\n\t\tconst setValue = (v: number | undefined) => {\n\t\t\tif (!isControlled) setInternal(v)\n\t\t\t// 更新原生 input 的 value 并触发 input 事件,兼容外部监听\n\t\t\tif (innerRef.current) {\n\t\t\t\tconst nativeSetter = Object.getOwnPropertyDescriptor(window.HTMLInputElement.prototype, 'value')?.set\n\t\t\t\tnativeSetter?.call(innerRef.current, v === undefined ? '' : String(v))\n\t\t\t\tconst ev = new Event('input', { bubbles: true })\n\t\t\t\tObject.defineProperty(ev, 'target', { writable: false, value: innerRef.current })\n\t\t\t\t// 触发原生 onChange 回调(如果有人依赖)\n\t\t\t\tonChange?.(ev as unknown as ChangeEvent<HTMLInputElement>)\n\t\t\t}\n\t\t\tonValueChange?.(v)\n\t\t}\n\t\t// 修改handleInputChange函数\n\t\tconst handleInputChange = (e: ChangeEvent<HTMLInputElement>) => {\n\t\t const raw = e.target.value\n\t\t // 当输入为空时,使用min或0作为默认值,而不是undefined\n\t\t const parsed = raw === '' ? (min !== undefined ? min : 0) : Number(raw)\n\t\t const final = Number.isNaN(parsed) ? (min !== undefined ? min : 0) : clamp(parsed)\n\t\t if (!isControlled) setInternal(final)\n\t\t onValueChange?.(final)\n\t\t onChange?.(e)\n\t\t}\n\n\t\tconst increment = () => {\n\t\t\tconst base = currentValue ?? 0\n\t\t\tconst next = clamp(base + (step ?? 1))\n\t\t\tsetValue(next)\n\t\t}\n\n\t\tconst decrement = () => {\n\t\t\tconst base = currentValue ?? 0\n\t\t\tconst next = clamp(base - (step ?? 1))\n\t\t\tsetValue(next)\n\t\t}\n\t\tconst handleKeyDown = (e: KeyboardEvent<HTMLInputElement>) => {\n\t\t\tif (e.key === 'ArrowUp') {\n\t\t\t\te.preventDefault()\n\t\t\t\tincrement()\n\t\t\t} else if (e.key === 'ArrowDown') {\n\t\t\t\te.preventDefault()\n\t\t\t\tdecrement()\n\t\t\t}\n\t\t}\n\n\t\tconst inputId = id || `number-${Math.random().toString(36).slice(2, 9)}`\n\n\t\tconst atMin = currentValue !== undefined && min !== undefined && currentValue <= min\n\t\tconst atMax = currentValue !== undefined && max !== undefined && currentValue >= max\n\n\t\treturn (\n\t\t\t<NumberRoot className={className}>\n\t\t\t\t{label && (\n\t\t\t\t\t<Label htmlFor={inputId} aria-hidden={false}>\n\t\t\t\t\t\t{label}\n\t\t\t\t\t</Label>\n\t\t\t\t)}\n\t\t\t\t<NumberGroup className={`controls-${controls} size-${size}`} size={size} disabled={disabled} controls={controls}>\n\t\t\t\t\t{controls === 'buttons' && (\n\t\t\t\t\t\t<SideButton\n\t\t\t\t\t\tclassName=\"btn-decrement\"\n\t\t\t\t\t\tpos=\"left\"\n\t\t\t\t\t\tsize={size}\n\t\t\t\t\t\ttype=\"button\"\n\t\t\t\t\t\tonClick={decrement}\n\t\t\t\t\t\tdisabled={disabled || atMin}\n\t\t\t\t\t>\n\t\t\t\t\t\t<MinusIcon size={size === 'lg' ? 12 : 8.571} />\n\t\t\t\t\t</SideButton>\n\t\t\t\t\t)}\n\t\t\t\t\t<NumberField\n\t\t\t\t\t\t{...(rest as any)}\n\t\t\t\t\t\tid={inputId}\n\t\t\t\t\t\tref={innerRef}\n\t\t\t\t\t\ttype=\"number\"\n\t\t\t\t\t\tvalue={currentValue === undefined ? '' : String(currentValue)}\n\t\t\t\t\t\tonChange={handleInputChange}\n\t\t\t\t\t\tonKeyDown={handleKeyDown}\n\t\t\t\t\t\tmin={min}\n\t\t\t\t\t\tmax={max}\n\t\t\t\t\t\tstep={step}\n\t\t\t\t\t\tdisabled={disabled}\n\t\t\t\t\t\taria-invalid={error}\n\t\t\t\t\t\taria-describedby={description ? `${inputId}-desc` : undefined}\n\t\t\t\t\t\tclassName={controls === 'buttons' ? 'with-side-controls' : undefined}\n\t\t\t\t\t\tdata-size={size}\n\t\t\t\t\t/>\n\t\t\t\t\t{controls === 'buttons' && (\n\t\t\t\t\t\t<SideButton\n\t\t\t\t\t\tclassName=\"btn-increment\"\n\t\t\t\t\t\tpos=\"right\"\n\t\t\t\t\t\tsize={size}\n\t\t\t\t\t\ttype=\"button\"\n\t\t\t\t\t\tonClick={increment}\n\t\t\t\t\t\tdisabled={disabled || atMax}\n\t\t\t\t\t>\n\t\t\t\t\t\t<PlusIcon size={size === 'lg' ? 12 : 8.571} />\n\t\t\t\t\t</SideButton>\n\t\t\t\t\t)}\n\t\t\t\t\t{controls === 'arrows' && (\n\t\t\t\t\t\t<ArrowGroup className=\"arrow-group\" >\n\t\t\t\t\t\t\t<ArrowButton\n\t\t\t direction=\"up\"\n\t\t\t type=\"button\"\n\t\t\t size={size}\n\t\t\t onClick={increment}\n\t\t\t disabled={disabled || atMax}\n\t\t\t className=\"arrow-up\"\n\t\t >\n\t\t\t <UpIcon />\n\t\t </ArrowButton>\n\t\t <ArrowButton\n\t\t\t direction=\"down\"\n\t\t\t type=\"button\"\n\t\t\t aria-label=\"减小\"\n\t\t\t title=\"减小\"\n\t\t\t size={size}\n\t\t\t onClick={decrement}\n\t\t\t disabled={disabled || atMin}\n\t\t\t className=\"arrow-down\"\n\t\t >\n\t\t\t <DownIcon />\n\t\t </ArrowButton>\n\t\t\t\t\t\t</ArrowGroup>\n\t\t\t\t\t)}\n\t\t\t\t</NumberGroup>\n\t\t\t\t{description && <Description id={`${inputId}-desc`}>{description}</Description>}\n\t\t\t</NumberRoot>\n\t\t)\n\t},\n)\nNumberInput.displayName = 'NumberInput'\nexport default NumberInput","import styled from '@emotion/styled'\n\nexport const RadioWrapper = styled('label', {\n shouldForwardProp: (prop) => prop !== 'disabled',\n})<{ disabled: boolean }>(({ theme, disabled }) => ({\n display: 'inline-flex',\n alignItems: 'center',\n gap: theme.components.radio.gap,\n cursor: disabled ? 'not-allowed' : 'pointer',\n opacity: disabled ? theme.components.radio.disabled.opacity : 1,\n transition: `opacity ${theme.components.radio.transition}`,\n}))\n\nexport const RadioRoot = styled('span', {\n shouldForwardProp: (prop) => prop !== 'disabled',\n})<{ disabled?: boolean }>(({ theme, disabled }) => ({\n position: 'relative',\n display: 'inline-flex',\n alignItems: 'center',\n justifyContent: 'center',\n width: theme.components.radio.control.size,\n height: theme.components.radio.control.size,\n borderRadius: theme.components.radio.control.borderRadius,\n borderWidth: theme.components.radio.control.borderWidth,\n borderStyle: 'solid',\n borderColor: disabled\n ? theme.components.radio.control.borderColor.disabled\n : theme.components.radio.control.borderColor.default,\n background: theme.components.radio.control.background,\n transition: `border-color ${theme.components.radio.transition}, box-shadow ${theme.components.radio.transition}, transform ${theme.components.radio.transition}`,\n flexShrink: 0,\n}))\n\nexport const RadioNative = styled('input')(({ theme }) => ({\n position: 'absolute',\n inset: 0,\n width: '100%',\n height: '100%',\n margin: 0,\n opacity: 0,\n cursor: 'inherit',\n '&:focus-visible + span': {\n boxShadow: theme.components.radio.focusRing,\n },\n '&:hover:not(:disabled) + span': {\n borderColor: theme.components.radio.control.borderColor.hover,\n transform: 'translateY(-0.5px)',\n },\n '&:checked + span': {\n borderColor: theme.components.radio.control.borderColor.checked,\n },\n '&:checked + span::after': {\n transform: 'translate(-50%, -50%) scale(1)',\n opacity: 1,\n },\n '&:disabled + span': {\n borderColor: theme.components.radio.control.borderColor.disabled,\n },\n '&:disabled + span::after': {\n background: theme.components.radio.control.indicator.disabled,\n },\n}))\n\nexport const RadioIndicator = styled('span')(({ theme }) => ({\n position: 'relative',\n inset: 0,\n width: '100%',\n height: '100%',\n borderRadius: 'inherit',\n boxShadow: 'none',\n '&::after': {\n content: '\"\"',\n position: 'absolute',\n top: '50%',\n left: '50%',\n width: theme.components.radio.control.indicator.size,\n height: theme.components.radio.control.indicator.size,\n background: theme.components.radio.control.indicator.color,\n borderRadius: 'inherit',\n transform: 'translate(-50%, -50%) scale(0.35)',\n opacity: 0,\n transition: `transform ${theme.components.radio.transition}, opacity ${theme.components.radio.transition}`,\n },\n}))\n\nexport const RadioText = styled('span')({\n display: 'flex',\n flexDirection: 'column',\n gap: '0.25rem',\n minWidth: 0,\n})\n\nexport const RadioLabel = styled('span', {\n shouldForwardProp: (prop) => prop !== 'disabled',\n})<{ disabled: boolean }>(({ theme, disabled }) => ({\n fontSize: theme.components.radio.text.label.fontSize,\n fontWeight: theme.components.radio.text.label.fontWeight,\n color: disabled ? theme.components.radio.text.label.disabled : theme.components.radio.text.label.color,\n lineHeight: 1.5,\n transition: `color ${theme.components.radio.transition}`,\n}))\n\nexport const RadioDescription = styled('span', {\n shouldForwardProp: (prop) => prop !== 'disabled',\n})<{ disabled: boolean }>(({ theme, disabled }) => ({\n margin: 0,\n color: disabled\n ? theme.components.radio.text.description.disabled\n : theme.components.radio.text.description.color,\n fontSize: theme.components.radio.text.description.fontSize,\n lineHeight: 1.4,\n transition: `color ${theme.components.radio.transition}`,\n}))\n\n","import { forwardRef } from 'react'\nimport type { InputHTMLAttributes, ReactNode } from 'react'\nimport {\n RadioDescription,\n RadioIndicator,\n RadioLabel,\n RadioNative,\n RadioRoot,\n RadioText,\n RadioWrapper,\n} from './Radio.style'\n\nexport type RadioProps = Omit<InputHTMLAttributes<HTMLInputElement>, 'type'> & {\n label?: ReactNode\n description?: ReactNode\n}\n\nexport const Radio = forwardRef<HTMLInputElement, RadioProps>(\n ({ label, description, className, ...inputProps }, ref) => {\n const isDisabled = Boolean(inputProps.disabled)\n\n return (\n <RadioWrapper disabled={isDisabled} className={className} data-disabled={isDisabled ? 'true' : undefined}>\n <RadioRoot disabled={isDisabled}>\n <RadioNative ref={ref} type=\"radio\" disabled={isDisabled} {...inputProps} />\n <RadioIndicator aria-hidden />\n </RadioRoot>\n {(label || description) && (\n <RadioText>\n {label ? <RadioLabel disabled={isDisabled}>{label}</RadioLabel> : null}\n {description ? <RadioDescription disabled={isDisabled}>{description}</RadioDescription> : null}\n </RadioText>\n )}\n </RadioWrapper>\n )\n },\n)\n\nRadio.displayName = 'Radio'\n\n","import styled from '@emotion/styled'\nimport { css, keyframes } from '@emotion/react'\nimport type { AppTheme } from '@kingsoft-ai/theme'\n\nexport const skeletonVariants = ['rect', 'text', 'circle'] as const\nexport type SkeletonVariant = (typeof skeletonVariants)[number]\n\nexport const skeletonRadii = ['sm', 'md', 'lg', 'pill'] as const\nexport type SkeletonRadius = (typeof skeletonRadii)[number]\n\ntype SkeletonRootProps = {\n $variant: SkeletonVariant\n $animate: boolean\n $radius: SkeletonRadius\n $width?: string\n $height?: string\n}\n\ntype SkeletonLineProps = {\n $animate: boolean\n $isLast: boolean\n $customWidth?: string\n}\n\ntype SkeletonStackProps = {\n $width?: string\n}\n\nconst shimmerKeyframes = keyframes`\n 0% {\n transform: translateX(-100%);\n }\n 100% {\n transform: translateX(100%);\n }\n`\n\nconst shimmerMixin = ({ theme }: { theme: AppTheme }) => css`\n &::after {\n content: '';\n position: absolute;\n inset: 0;\n background: linear-gradient(\n 90deg,\n transparent 0%,\n ${theme.components.skeleton.background.highlight} 50%,\n transparent 100%\n );\n animation: ${shimmerKeyframes} ${theme.components.skeleton.animation.duration}\n ${theme.components.skeleton.animation.easing} infinite;\n transform: translateX(-100%);\n }\n\n @media (prefers-reduced-motion: reduce) {\n &::after {\n animation-duration: 0.01ms;\n animation-iteration-count: 1;\n transform: translateX(-50%);\n }\n }\n`\n\nexport const SkeletonRoot = styled.div<SkeletonRootProps>`\n position: relative;\n overflow: hidden;\n display: block;\n background: ${({ theme }) => theme.components.skeleton.background.base};\n border-radius: ${({ theme, $variant, $radius }) =>\n $variant === 'circle' ? theme.components.skeleton.radius.circle : theme.components.skeleton.radius[$radius]};\n width: ${({ $variant, $width, theme }) => {\n if ($variant === 'circle') {\n return $width ?? theme.components.skeleton.circle.size\n }\n\n return $width ?? '100%'\n }};\n height: ${({ $variant, $height, theme }) => {\n if ($variant === 'circle') {\n return $height ?? theme.components.skeleton.circle.size\n }\n\n if ($variant === 'text') {\n return $height ?? theme.components.skeleton.text.lineHeight\n }\n\n return $height ?? theme.components.skeleton.block.height\n }};\n\n ${({ $animate, theme }) =>\n $animate &&\n css`\n ${shimmerMixin({ theme })}\n `}\n`\n\nexport const SkeletonStack = styled.div<SkeletonStackProps>`\n display: flex;\n flex-direction: column;\n gap: ${({ theme }) => theme.components.skeleton.text.gap};\n width: ${({ $width }) => $width ?? '100%'};\n`\n\nexport const SkeletonLine = styled.span<SkeletonLineProps>`\n position: relative;\n overflow: hidden;\n display: block;\n background: ${({ theme }) => theme.components.skeleton.background.base};\n height: ${({ theme }) => theme.components.skeleton.text.lineHeight};\n border-radius: ${({ theme }) => theme.components.skeleton.radius.pill};\n width: ${({ $customWidth, $isLast, theme }) =>\n $customWidth ?? ($isLast ? theme.components.skeleton.text.lastLineWidth : '100%')};\n\n ${({ $animate, theme }) =>\n $animate &&\n css`\n ${shimmerMixin({ theme })}\n `}\n`\n\n","import { forwardRef } from 'react'\nimport type { HTMLAttributes, ReactNode } from 'react'\nimport {\n SkeletonRoot,\n SkeletonLine,\n SkeletonStack,\n skeletonVariants,\n skeletonRadii,\n type SkeletonVariant,\n type SkeletonRadius,\n} from './Skeleton.style'\n\nconst toCssSize = (value?: number | string) => {\n if (value === undefined) return undefined\n return typeof value === 'number' ? `${value}px` : value\n}\n\nexport interface SkeletonProps extends HTMLAttributes<HTMLDivElement> {\n /** Skeleton 展示形态 */\n variant?: SkeletonVariant\n /** 自定义宽度,支持 number(px) 或 string */\n width?: number | string\n /** 自定义高度,支持 number(px) 或 string */\n height?: number | string\n /** 文本模式下的行数 */\n lines?: number\n /** 是否展示骨架动画 */\n animate?: boolean\n /** 方形/矩形骨架的圆角尺寸 */\n radius?: SkeletonRadius\n /** 加载完成后展示真实内容 */\n loaded?: boolean\n /** 加载完成后展示的真实内容 */\n children?: ReactNode\n}\n\nexport const Skeleton = forwardRef<HTMLDivElement, SkeletonProps>(\n (\n {\n variant = 'rect',\n width,\n height,\n lines = variant === 'text' ? 3 : 1,\n animate = true,\n radius = 'md',\n loaded = false,\n className,\n children,\n style,\n ...rest\n },\n ref,\n ) => {\n const resolvedWidth = toCssSize(width)\n const resolvedHeight = toCssSize(height)\n const lineCount = Math.max(1, lines)\n const shouldRenderStack = variant === 'text' && lineCount > 1\n\n if (loaded) {\n if (!children) {\n return null\n }\n\n return (\n <div ref={ref} className={className} style={style} {...rest}>\n {children}\n </div>\n )\n }\n\n const accessibilityProps = {\n role: 'status' as const,\n 'aria-live': 'polite' as const,\n 'aria-busy': true,\n }\n\n if (shouldRenderStack) {\n return (\n <SkeletonStack\n ref={ref}\n className={className}\n style={style}\n $width={resolvedWidth}\n data-variant=\"text\"\n {...accessibilityProps}\n {...rest}\n >\n {Array.from({ length: lineCount }).map((_, index) => (\n <SkeletonLine\n key={index}\n $animate={animate}\n $isLast={index === lineCount - 1}\n $customWidth={index === lineCount - 1 ? resolvedWidth : undefined}\n aria-hidden=\"true\"\n />\n ))}\n </SkeletonStack>\n )\n }\n\n return (\n <SkeletonRoot\n ref={ref}\n className={className}\n style={style}\n $variant={variant}\n $animate={animate}\n $radius={radius}\n $width={resolvedWidth}\n $height={resolvedHeight}\n data-variant={variant}\n {...accessibilityProps}\n {...rest}\n />\n )\n },\n)\n\nSkeleton.displayName = 'Skeleton'\n\nexport { skeletonVariants, skeletonRadii }\nexport type { SkeletonVariant, SkeletonRadius }\n\n","import styled from '@emotion/styled'\nimport { css, keyframes } from '@emotion/react'\n\n// ============================================================================\n// Types\n// ============================================================================\n\nexport type StepperOrientation = 'horizontal' | 'vertical'\nexport type StepperLabelPlacement = 'right' | 'bottom'\nexport type StepStatus = 'wait' | 'process' | 'finish' | 'error'\nexport type StepSize = 'md' | 'sm'\nexport type StepperVariant = 'default' | 'dot'\n\nconst dotPulse = keyframes`\n 0% {\n transform: scale(1);\n opacity: 0.6;\n }\n 50% {\n transform: scale(1.6);\n opacity: 0.3;\n }\n 100% {\n transform: scale(1);\n opacity: 0.6;\n }\n`\n\n// ============================================================================\n// Styled Components\n// ============================================================================\n\nexport const StepperRoot = styled.div<{\n orientation: StepperOrientation\n}>`\n display: flex;\n flex-direction: ${({ orientation }) => (orientation === 'vertical' ? 'column' : 'row')};\n width: 100%;\n \n ${({ orientation }) => orientation === 'horizontal' && css`\n align-items: flex-start;\n `}\n`\n\nexport const StepRoot = styled.div<{\n orientation: StepperOrientation\n labelPlacement: StepperLabelPlacement\n status: StepStatus\n isLast: boolean\n flexBasis?: string\n variant: StepperVariant\n}>`\n position: relative;\n display: flex;\n flex: ${({ isLast, orientation }) => (isLast || orientation === 'vertical' ? '0 0 auto' : '1')};\n flex-direction: ${({ orientation, labelPlacement }) => \n orientation === 'horizontal' && labelPlacement === 'bottom' ? 'column' : 'row'};\n align-items: ${({ orientation, labelPlacement }) => \n orientation === 'horizontal' && labelPlacement === 'bottom' ? 'center' : 'flex-start'};\n\n /* Gap between content elements */\n gap: ${({ theme }) => theme.components.stepper.gap};\n`\n\nexport const StepIconContainer = styled.div<{\n status: StepStatus\n size: StepSize\n variant: StepperVariant\n}>`\n position: relative;\n display: flex;\n align-items: center;\n justify-content: center;\n z-index: 1; /* To stay above line */\n \n /* Size */\n width: ${({ theme, size, variant }) =>\n variant === 'dot'\n ? theme.components.stepper.dot.size[size]\n : theme.components.stepper.circle.size[size]};\n height: ${({ theme, size, variant }) =>\n variant === 'dot'\n ? theme.components.stepper.dot.size[size]\n : theme.components.stepper.circle.size[size]};\n\n border-radius: 50%;\n border: ${({ variant }) => (variant === 'dot' ? 'none' : '1px solid')};\n transition: all 0.2s ease;\n\n /* Colors based on Status */\n ${({ theme, status, variant }) => {\n const stepper = theme.components.stepper;\n const state = stepper.state[status];\n \n // Default styles (Wait)\n let borderColor = state.color;\n let bgColor = 'transparent';\n let color = state.color;\n\n if (variant === 'dot') {\n if (status === 'wait') {\n bgColor = stepper.line.color.default;\n } else {\n bgColor = state.color;\n }\n color = 'transparent';\n\n return css`\n background-color: ${bgColor};\n color: ${color};\n ${status === 'process'\n ? `\n &::after {\n content: '';\n position: absolute;\n inset: -4px;\n border-radius: 50%;\n background-color: ${stepper.dot.pulseColor};\n animation: ${dotPulse} 1.5s ease-in-out infinite;\n will-change: transform, opacity;\n z-index: -1;\n }\n `\n : ''}\n `;\n } else {\n if (status === 'process') {\n borderColor = state.color;\n bgColor = state.bg;\n color = theme.global.colors.common.white;\n } else if (status === 'finish') {\n borderColor = state.color;\n bgColor = state.bg; \n color = state.color;\n } else if (status === 'error') {\n borderColor = state.color;\n bgColor = state.bg;\n color = state.color;\n } else {\n // Wait\n color = state.color;\n }\n\n return css`\n border-color: ${borderColor};\n background-color: ${bgColor};\n color: ${color};\n ${status === 'process'\n ? `\n &::after {\n content: '';\n position: absolute;\n inset: -4px;\n border-radius: 50%;\n border: 2px solid ${state.color};\n opacity: 0.6;\n animation: ${dotPulse} 1.5s ease-in-out infinite;\n will-change: transform, opacity;\n z-index: -1;\n }\n `\n : ''}\n `;\n }\n }}\n\n /* Text style inside circle */\n font-size: ${({ theme, size }) => theme.components.stepper.circle.fontSize[size]};\n font-weight: 500;\n\n /* Icon size control */\n svg {\n width: ${({ theme, size }) => theme.components.stepper.circle.iconSize[size]};\n height: ${({ theme, size }) => theme.components.stepper.circle.iconSize[size]};\n flex-shrink: 0;\n }\n`\n\nexport const StepContent = styled.div<{\n orientation: StepperOrientation\n labelPlacement: StepperLabelPlacement\n}>`\n display: flex;\n flex-direction: column;\n justify-content: center;\n \n ${({ orientation, labelPlacement }) => \n orientation === 'horizontal' && labelPlacement === 'bottom' && css`\n align-items: center;\n text-align: center;\n padding-top: 4px; /* Space between icon and text */\n `}\n\n ${({ orientation, labelPlacement }) => \n (orientation === 'vertical' || labelPlacement === 'right') && css`\n padding-left: 4px; /* Space between icon and text */\n /* Adjust for vertical alignment with icon center if needed */\n padding-top: 4px; \n `}\n`\n\nexport const StepTitle = styled.div<{\n status: StepStatus\n}>`\n font-size: ${({ theme }) => theme.components.stepper.text.title.fontSize};\n font-weight: ${({ theme }) => theme.components.stepper.text.title.fontWeight};\n line-height: 1.4;\n \n color: ${({ theme, status }) => {\n const titleColors = theme.components.stepper.text.title.color;\n switch (status) {\n case 'process': return titleColors.active;\n case 'finish': return titleColors.default; \n case 'error': return titleColors.error;\n case 'wait': return titleColors.waiting;\n default: return titleColors.default;\n }\n }};\n`\n\nexport const StepDescription = styled.div`\n font-size: ${({ theme }) => theme.components.stepper.text.description.fontSize};\n color: ${({ theme }) => theme.components.stepper.text.description.color};\n line-height: 1.4;\n margin-top: 2px;\n`\n\nexport const StepConnector = styled.div<{\n orientation: StepperOrientation\n labelPlacement: StepperLabelPlacement\n isFinished: boolean\n size: StepSize\n variant: StepperVariant\n}>`\n transition: background-color 0.2s ease;\n \n ${({ orientation, theme, isFinished, size, labelPlacement, variant }) => {\n const iconSizeToken =\n variant === 'dot'\n ? theme.components.stepper.dot.size[size]\n : theme.components.stepper.circle.size[size];\n const iconSizeVal = parseInt(iconSizeToken);\n const topPos = iconSizeVal / 2;\n\n if (orientation === 'horizontal') {\n // Horizontal Connector\n return css`\n flex: 1;\n height: 1px;\n background-color: ${isFinished ? theme.components.stepper.line.color.active : theme.components.stepper.line.color.default};\n margin: 0 ${theme.components.stepper.gap};\n margin-top: ${topPos}px;\n ${labelPlacement === 'bottom' ? 'align-self: flex-start;' : ''}\n `;\n } else {\n // Vertical Connector\n return css`\n width: 1px;\n min-height: 40px;\n flex: 1;\n background-color: ${isFinished ? theme.components.stepper.line.color.active : theme.components.stepper.line.color.default};\n margin-top: 4px;\n `;\n }\n }}\n`\n\n","import { Children, cloneElement, forwardRef, isValidElement } from 'react'\nimport type { ReactNode } from 'react'\nimport {\n StepperRoot,\n type StepperOrientation,\n type StepperLabelPlacement,\n type StepSize,\n type StepStatus,\n type StepperVariant,\n} from './Stepper.style'\nimport type { StepProps } from './Step'\n\nexport interface StepperProps {\n /** Current active step index (0-indexed) */\n active?: number\n /** Orientation of the stepper */\n orientation?: StepperOrientation\n /** Label placement (only for horizontal orientation) */\n labelPlacement?: StepperLabelPlacement\n /** Size of the stepper */\n size?: StepSize\n /** Visual variant */\n variant?: StepperVariant\n /** Children (Step components) */\n children: ReactNode\n className?: string\n /** Callback when step is clicked */\n onChange?: (index: number) => void\n}\n\nexport const Stepper = forwardRef<HTMLDivElement, StepperProps>((props, ref) => {\n const {\n active = 0,\n orientation = 'horizontal',\n labelPlacement = 'right',\n size = 'md',\n variant = 'default',\n children,\n className,\n onChange,\n ...rest\n } = props\n\n const steps = Children.toArray(children).filter(isValidElement)\n\n return (\n <StepperRoot\n ref={ref}\n orientation={orientation}\n className={className}\n role=\"list\"\n aria-label=\"Progress\"\n {...rest}\n >\n {steps.map((step, index) => {\n const stepProps = step.props as StepProps\n \n // Determine status\n let status: StepStatus = 'wait'\n \n if (stepProps.status) {\n // If step has explicit status, use it (useful for error state or static steppers)\n status = stepProps.status\n } else {\n // Calculate status based on active index\n if (index < active) {\n status = 'finish'\n } else if (index === active) {\n status = 'process'\n } else {\n status = 'wait'\n }\n }\n\n return cloneElement(step, {\n index,\n last: index === steps.length - 1,\n orientation,\n labelPlacement: orientation === 'vertical' ? 'right' : labelPlacement, // Vertical always right (or maybe bottom doesn't make sense)\n size,\n status,\n variant,\n onClick: () => {\n if (onChange && !stepProps.disabled) {\n onChange(index)\n }\n stepProps.onClick?.()\n },\n } as StepProps)\n })}\n </StepperRoot>\n )\n})\n\nStepper.displayName = 'Stepper'\n\n","import { forwardRef } from 'react'\nimport type { ReactNode } from 'react'\nimport { CheckOutline, CloseOutline } from '@kingsoft-ai/icons'\nimport {\n StepRoot,\n StepIconContainer,\n StepContent,\n StepTitle,\n StepDescription,\n StepConnector,\n type StepperOrientation,\n type StepperLabelPlacement,\n type StepStatus,\n type StepSize,\n type StepperVariant,\n} from './Stepper.style'\n\nexport interface StepProps {\n /** Title of the step */\n title?: ReactNode\n /** Description of the step */\n description?: ReactNode\n /** Icon of the step */\n icon?: ReactNode\n /** Status of the step, determined by Stepper if not provided */\n status?: StepStatus\n /** Disable the step */\n disabled?: boolean\n /** Click handler */\n onClick?: () => void\n className?: string\n \n // Internal props passed by Stepper\n index?: number\n orientation?: StepperOrientation\n labelPlacement?: StepperLabelPlacement\n size?: StepSize\n last?: boolean\n variant?: StepperVariant\n}\n\nexport const Step = forwardRef<HTMLDivElement, StepProps>((props, ref) => {\n const {\n title,\n description,\n icon,\n status = 'wait',\n index = 0,\n orientation = 'horizontal',\n labelPlacement = 'right',\n size = 'md',\n last = false,\n variant = 'default',\n className,\n onClick,\n ...rest\n } = props\n\n // Render icon based on status\n const renderIcon = () => {\n if (icon) return icon\n\n switch (status) {\n case 'finish':\n return <CheckOutline />\n case 'error':\n return <CloseOutline />\n default:\n // For process and wait, show number\n return <span>{index + 1}</span>\n }\n }\n\n const resolvedLabelPlacement =\n orientation === 'horizontal' && variant === 'dot' ? 'bottom' : labelPlacement\n\n const shouldRenderIcon = !(variant === 'dot' && !icon)\n const iconContent = shouldRenderIcon ? renderIcon() : null\n\n // Vertical line logic:\n // In vertical mode, the line connects from bottom of current icon to top of next icon.\n // It should be visible if not the last item.\n const showVerticalLine = orientation === 'vertical' && !last\n\n // Horizontal line logic:\n // In horizontal mode, the line connects current step to next step.\n const showHorizontalLine = orientation === 'horizontal' && !last\n\n return (\n <StepRoot\n ref={ref}\n className={className}\n orientation={orientation}\n labelPlacement={resolvedLabelPlacement}\n status={status}\n isLast={last}\n variant={variant}\n onClick={onClick}\n role=\"listitem\"\n aria-current={status === 'process' ? 'step' : undefined}\n {...rest}\n >\n {/* Vertical Mode: Icon column with line below */}\n {orientation === 'vertical' && (\n <>\n <div style={{ display: 'flex', flexDirection: 'column', alignItems: 'center', flexShrink: 0, minHeight: last ? 'auto' : '80px' }}>\n <StepIconContainer status={status} size={size} variant={variant}>\n {iconContent}\n </StepIconContainer>\n {showVerticalLine && (\n <StepConnector\n orientation=\"vertical\"\n labelPlacement={resolvedLabelPlacement}\n isFinished={status === 'finish'}\n size={size}\n variant={variant}\n />\n )}\n </div>\n <StepContent orientation={orientation} labelPlacement={resolvedLabelPlacement}>\n <StepTitle status={status}>{title}</StepTitle>\n {description && <StepDescription>{description}</StepDescription>}\n </StepContent>\n </>\n )}\n\n {/* Horizontal Mode */}\n {orientation === 'horizontal' && (\n <>\n {/* Icon and horizontal line for bottom placement */}\n {resolvedLabelPlacement === 'bottom' ? (\n <div style={{ display: 'flex', flexDirection: 'row', alignItems: 'center', width: '100%' }}>\n <div style={{ display: 'flex', flexDirection: 'column', alignItems: 'center', flexShrink: 0 }}>\n <StepIconContainer status={status} size={size} variant={variant}>\n {iconContent}\n </StepIconContainer>\n <StepContent orientation={orientation} labelPlacement={resolvedLabelPlacement}>\n <StepTitle status={status}>{title}</StepTitle>\n {description && <StepDescription>{description}</StepDescription>}\n </StepContent>\n </div>\n {showHorizontalLine && (\n <StepConnector\n orientation=\"horizontal\"\n labelPlacement={resolvedLabelPlacement}\n isFinished={status === 'finish'}\n size={size}\n variant={variant}\n />\n )}\n </div>\n ) : (\n <>\n <StepIconContainer status={status} size={size} variant={variant}>\n {iconContent}\n </StepIconContainer>\n <StepContent orientation={orientation} labelPlacement={resolvedLabelPlacement}>\n <StepTitle status={status}>{title}</StepTitle>\n {description && <StepDescription>{description}</StepDescription>}\n </StepContent>\n {showHorizontalLine && (\n <StepConnector\n orientation=\"horizontal\"\n labelPlacement={resolvedLabelPlacement}\n isFinished={status === 'finish'}\n size={size}\n variant={variant}\n />\n )}\n </>\n )}\n </>\n )}\n </StepRoot>\n )\n})\n\nStep.displayName = 'Step'\n\n","/**\n * Progress 进度条样式\n * \n * 基于三层 Token 体系:\n * - Tier 1 (Global): 全局基础值\n * - Tier 2 (Semantic): 语义化映射\n * - Tier 3 (Component): 组件专用 Token\n * \n * 完全还原 Figma 设计稿规范\n */\n\nimport styled from '@emotion/styled'\nimport { css } from '@emotion/react'\nimport type { AppTheme } from '@kingsoft-ai/theme'\n\n// ============================================================================\n// 类型定义\n// ============================================================================\n\nexport const progressTypes = ['line', 'circle'] as const\nexport const progressSizes = ['sm', 'md', 'lg'] as const\nexport const progressStatuses = ['normal', 'error', 'warning', 'success'] as const\n\nexport type ProgressType = (typeof progressTypes)[number]\nexport type ProgressSize = (typeof progressSizes)[number]\nexport type ProgressStatus = (typeof progressStatuses)[number]\n\n// ============================================================================\n// 状态颜色映射\n// ============================================================================\n\nconst getStatusColor = (status: ProgressStatus, theme: AppTheme): string => {\n const colorMap = {\n normal: theme.semantic.colors.brand.primary, // 蓝色\n error: theme.semantic.colors.state.danger, // 红色\n warning: theme.semantic.colors.state.warning, // 橙色\n success: theme.semantic.colors.state.success, // 绿色\n }\n return colorMap[status]\n}\n\n// ============================================================================\n// 线型进度条样式\n// ============================================================================\n\n/**\n * 线型进度条容器\n */\nexport const LineProgressRoot = styled.div<{\n size: ProgressSize\n}>`\n display: flex;\n align-items: center;\n gap: 16px;\n width: 100%;\n`\n\n/**\n * 线型进度条轨道\n */\nexport const LineProgressTrack = styled.div<{\n size: ProgressSize\n}>`\n position: relative;\n flex: 1;\n background: ${({ theme }) => theme.semantic.colors.background.secondary};\n border-radius: 5px;\n overflow: hidden;\n \n ${({ size }) => {\n if (size === 'sm') {\n return css`\n height: 6px;\n `\n }\n // md 和 lg 都是 8px\n return css`\n height: 8px;\n `\n }}\n`\n\n/**\n * 线型进度条填充\n */\nexport const LineProgressBar = styled.div<{\n status: ProgressStatus\n percent: number\n}>`\n height: 100%;\n width: ${({ percent }) => percent}%;\n background: ${({ status, theme }) => getStatusColor(status, theme)};\n border-radius: 5px;\n transition: width 0.3s ease, background 0.3s ease;\n`\n\n/**\n * 进度百分比文字\n */\nexport const ProgressText = styled.span`\n font-family: ${({ theme }) => theme.global.typography.fontFamily};\n font-size: 12px;\n line-height: 18px;\n color: ${({ theme }) => theme.semantic.colors.text.secondary};\n white-space: nowrap;\n flex-shrink: 0;\n`\n\n/**\n * 状态图标容器\n */\nexport const StatusIcon = styled.span<{\n status: ProgressStatus\n}>`\n display: inline-flex;\n align-items: center;\n justify-content: center;\n width: 16px;\n height: 16px;\n flex-shrink: 0;\n color: ${({ status, theme }) => getStatusColor(status, theme)};\n \n svg {\n width: 100%;\n height: 100%;\n }\n`\n\n/**\n * 线型进度条信息区域(百分比+图标)\n */\nexport const LineProgressInfo = styled.div`\n display: flex;\n align-items: center;\n gap: 10px;\n flex-shrink: 0;\n`\n\n// ============================================================================\n// 环形进度条样式\n// ============================================================================\n\n/**\n * 环形进度条容器\n */\nexport const CircleProgressRoot = styled.div<{\n size: ProgressSize\n}>`\n position: relative;\n display: inline-flex;\n align-items: center;\n justify-content: center;\n \n ${({ size }) => {\n if (size === 'sm') {\n return css`\n width: 24px;\n height: 24px;\n `\n }\n if (size === 'md') {\n return css`\n width: 80px;\n height: 80px;\n `\n }\n // lg\n return css`\n width: 160px;\n height: 160px;\n `\n }}\n`\n\n/**\n * 环形进度条 SVG\n */\nexport const CircleProgressSvg = styled.svg`\n transform: rotate(-90deg);\n width: 100%;\n height: 100%;\n`\n\n/**\n * 环形进度条轨道圆\n */\nexport const CircleProgressTrack = styled.circle`\n fill: none;\n stroke: ${({ theme }) => theme.semantic.colors.background.secondary};\n`\n\n/**\n * 环形进度条填充圆\n */\nexport const CircleProgressBar = styled.circle<{\n status: ProgressStatus\n}>`\n fill: none;\n stroke: ${({ status, theme }) => getStatusColor(status, theme)};\n stroke-linecap: round;\n transition: stroke-dashoffset 0.3s ease, stroke 0.3s ease;\n`\n\n/**\n * 环形进度条内容(百分比文字或图标)\n */\nexport const CircleProgressContent = styled.div<{\n size: ProgressSize\n}>`\n position: absolute;\n top: 50%;\n left: 50%;\n transform: translate(-50%, -50%);\n display: flex;\n align-items: center;\n justify-content: center;\n \n ${({ size, theme }: { size: ProgressSize; theme: AppTheme }) => {\n if (size === 'sm') {\n return css`\n width: 16px;\n height: 16px;\n `\n }\n if (size === 'md') {\n return css`\n font-family: 'Barlow', ${theme.global.typography.fontFamily};\n font-size: 20px;\n font-weight: 500;\n line-height: 30px;\n color: ${theme.semantic.colors.text.secondary};\n `\n }\n // lg\n return css`\n font-family: 'Barlow', ${theme.global.typography.fontFamily};\n font-size: 36px;\n font-weight: 500;\n line-height: 54px;\n color: ${theme.semantic.colors.text.secondary};\n `\n }}\n`\n\n/**\n * 小号环形进度条的图标\n */\nexport const CircleProgressIcon = styled.span<{\n status: ProgressStatus\n}>`\n display: inline-flex;\n align-items: center;\n justify-content: center;\n color: ${({ status, theme }) => getStatusColor(status, theme)};\n \n svg {\n width: 100%;\n height: 100%;\n }\n`\n\n","/**\n * Progress 进度条组件\n * \n * 基于 react-aria 实现无障碍访问的进度条组件\n * 完全符合 Figma 设计稿规范\n * \n * @example\n * ```tsx\n * // 线型进度条\n * <Progress value={60} />\n * \n * // 环形进度条\n * <Progress type=\"circle\" value={80} />\n * \n * // 带状态的进度条\n * <Progress value={100} status=\"success\" />\n * \n * // 不显示百分比\n * <Progress value={60} showPercent={false} />\n * ```\n */\n\nimport { forwardRef } from 'react'\nimport { useProgressBar } from 'react-aria'\nimport type { AriaProgressBarProps } from 'react-aria'\nimport {\n LineProgressRoot,\n LineProgressTrack,\n LineProgressBar,\n LineProgressInfo,\n ProgressText,\n StatusIcon,\n CircleProgressRoot,\n CircleProgressSvg,\n CircleProgressTrack,\n CircleProgressBar,\n CircleProgressContent,\n CircleProgressIcon,\n progressTypes,\n progressSizes,\n progressStatuses,\n type ProgressType,\n type ProgressSize,\n type ProgressStatus,\n} from './Progress.style'\n\n// 导出常量供外部使用\nexport const TYPES = progressTypes\nexport const SIZES = progressSizes\nexport const STATUSES = progressStatuses\n\nexport type ProgressProps = Omit<AriaProgressBarProps, 'value'> & {\n /** 进度条类型:线型、环形 */\n type?: ProgressType\n /** 进度条尺寸:小号、中号、大号 */\n size?: ProgressSize\n /** 进度状态:进行中、失败、警示、成功 */\n status?: ProgressStatus\n /** 当前进度值(0-100) */\n value?: number\n /** 是否显示百分比文字 */\n showPercent?: boolean\n /** 是否显示状态图标(仅线型进度条) */\n showIcon?: boolean\n /** 自定义类名 */\n className?: string\n}\n\n/**\n * 成功图标\n */\nconst SuccessIcon = () => (\n <svg viewBox=\"0 0 16 16\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\n <circle cx=\"8\" cy=\"8\" r=\"8\" fill=\"currentColor\" />\n <path\n d=\"M11.3333 5.5L6.75 10.0833L4.66667 8\"\n stroke=\"white\"\n strokeWidth=\"1.5\"\n strokeLinecap=\"round\"\n strokeLinejoin=\"round\"\n />\n </svg>\n)\n\n/**\n * 失败图标\n */\nconst ErrorIcon = () => (\n <svg viewBox=\"0 0 16 16\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\n <circle cx=\"8\" cy=\"8\" r=\"8\" fill=\"currentColor\" />\n <path\n d=\"M10 6L6 10M6 6L10 10\"\n stroke=\"white\"\n strokeWidth=\"1.5\"\n strokeLinecap=\"round\"\n />\n </svg>\n)\n\n/**\n * 警示图标\n */\nconst WarningIcon = () => (\n <svg viewBox=\"0 0 16 16\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\n <circle cx=\"8\" cy=\"8\" r=\"8\" fill=\"currentColor\" />\n <path\n d=\"M8 4.66667V8.66667M8 11.3333H8.00667\"\n stroke=\"white\"\n strokeWidth=\"1.5\"\n strokeLinecap=\"round\"\n strokeLinejoin=\"round\"\n />\n </svg>\n)\n\n/**\n * 根据状态获取对应图标\n */\nconst getStatusIcon = (status: ProgressStatus) => {\n switch (status) {\n case 'success':\n return <SuccessIcon />\n case 'error':\n return <ErrorIcon />\n case 'warning':\n return <WarningIcon />\n default:\n return null\n }\n}\n\n/**\n * Progress 进度条组件\n * \n * 基于 Figma 设计规范实现的进度条组件,支持线型和环形两种类型\n * 使用 react-aria 保证无障碍访问性\n */\nexport const Progress = forwardRef<HTMLDivElement, ProgressProps>(\n (\n {\n type = 'line',\n size = 'md',\n status = 'normal',\n value = 0,\n showPercent = true,\n showIcon = true,\n className,\n ...ariaProps\n },\n ref,\n ) => {\n // 限制进度值在 0-100 之间\n const percent = Math.min(Math.max(value, 0), 100)\n \n // 使用 react-aria 的 useProgressBar hook\n const { progressBarProps, labelProps } = useProgressBar({\n ...ariaProps,\n value: percent,\n minValue: 0,\n maxValue: 100,\n })\n\n // 根据状态显示图标\n const shouldShowIcon = showIcon && status !== 'normal'\n const icon = shouldShowIcon ? getStatusIcon(status) : null\n\n // 线型进度条\n if (type === 'line') {\n return (\n <LineProgressRoot\n {...progressBarProps}\n ref={ref}\n size={size}\n className={className}\n role=\"progressbar\"\n aria-valuenow={percent}\n aria-valuemin={0}\n aria-valuemax={100}\n >\n <LineProgressTrack size={size}>\n <LineProgressBar status={status} percent={percent} />\n </LineProgressTrack>\n \n <LineProgressInfo>\n {showPercent && (\n <ProgressText {...labelProps}>\n {Math.round(percent)}%\n </ProgressText>\n )}\n \n {shouldShowIcon && icon && (\n <StatusIcon status={status}>\n {icon}\n </StatusIcon>\n )}\n </LineProgressInfo>\n </LineProgressRoot>\n )\n }\n\n // 环形进度条\n // 根据尺寸计算圆的参数\n const getSizeConfig = () => {\n switch (size) {\n case 'sm':\n return { circleSize: 24, strokeWidth: 3 }\n case 'md':\n return { circleSize: 80, strokeWidth: 6 }\n case 'lg':\n return { circleSize: 160, strokeWidth: 8 }\n default:\n return { circleSize: 80, strokeWidth: 6 }\n }\n }\n \n const { circleSize, strokeWidth } = getSizeConfig()\n const radius = (circleSize - strokeWidth) / 2\n const circumference = 2 * Math.PI * radius\n const strokeDashoffset = circumference - (percent / 100) * circumference\n \n // 是否显示百分比文字(小号显示图标,中号和大号显示百分比)\n const showPercentInCircle = size !== 'sm'\n\n return (\n <CircleProgressRoot\n {...progressBarProps}\n ref={ref}\n size={size}\n className={className}\n role=\"progressbar\"\n aria-valuenow={percent}\n aria-valuemin={0}\n aria-valuemax={100}\n >\n <CircleProgressSvg>\n {/* 轨道 */}\n <CircleProgressTrack\n cx={circleSize / 2}\n cy={circleSize / 2}\n r={radius}\n strokeWidth={strokeWidth}\n />\n \n {/* 进度条 */}\n <CircleProgressBar\n status={status}\n cx={circleSize / 2}\n cy={circleSize / 2}\n r={radius}\n strokeWidth={strokeWidth}\n strokeDasharray={circumference}\n strokeDashoffset={strokeDashoffset}\n />\n </CircleProgressSvg>\n \n {/* 中心内容 */}\n <CircleProgressContent size={size}>\n {showPercentInCircle ? (\n // 中号和大号显示百分比文字\n showPercent && <span {...labelProps}>{Math.round(percent)}%</span>\n ) : (\n // 小号显示状态图标\n shouldShowIcon && icon && (\n <CircleProgressIcon status={status}>\n {icon}\n </CircleProgressIcon>\n )\n )}\n </CircleProgressContent>\n </CircleProgressRoot>\n )\n },\n)\n\nProgress.displayName = 'Progress'\n\n","import {createContext as $69F46$createContext, useMemo as $69F46$useMemo, useContext as $69F46$useContext, useState as $69F46$useState, useRef as $69F46$useRef, useEffect as $69F46$useEffect} from \"react\";\n\n/*\n * Copyright 2023 Adobe. All rights reserved.\n * This file is licensed to you under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License. You may obtain a copy\n * of the License at http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software distributed under\n * the License is distributed on an \"AS IS\" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS\n * OF ANY KIND, either express or implied. See the License for the specific language\n * governing permissions and limitations under the License.\n */ \nconst $e5be200c675c3b3a$export$aca958c65c314e6c = {\n badInput: false,\n customError: false,\n patternMismatch: false,\n rangeOverflow: false,\n rangeUnderflow: false,\n stepMismatch: false,\n tooLong: false,\n tooShort: false,\n typeMismatch: false,\n valueMissing: false,\n valid: true\n};\nconst $e5be200c675c3b3a$var$CUSTOM_VALIDITY_STATE = {\n ...$e5be200c675c3b3a$export$aca958c65c314e6c,\n customError: true,\n valid: false\n};\nconst $e5be200c675c3b3a$export$dad6ae84456c676a = {\n isInvalid: false,\n validationDetails: $e5be200c675c3b3a$export$aca958c65c314e6c,\n validationErrors: []\n};\nconst $e5be200c675c3b3a$export$571b5131b7e65c11 = (0, $69F46$createContext)({});\nconst $e5be200c675c3b3a$export$a763b9476acd3eb = '__formValidationState' + Date.now();\nfunction $e5be200c675c3b3a$export$fc1a364ae1f3ff10(props) {\n // Private prop for parent components to pass state to children.\n if (props[$e5be200c675c3b3a$export$a763b9476acd3eb]) {\n let { realtimeValidation: realtimeValidation, displayValidation: displayValidation, updateValidation: updateValidation, resetValidation: resetValidation, commitValidation: commitValidation } = props[$e5be200c675c3b3a$export$a763b9476acd3eb];\n return {\n realtimeValidation: realtimeValidation,\n displayValidation: displayValidation,\n updateValidation: updateValidation,\n resetValidation: resetValidation,\n commitValidation: commitValidation\n };\n }\n // eslint-disable-next-line react-hooks/rules-of-hooks\n return $e5be200c675c3b3a$var$useFormValidationStateImpl(props);\n}\nfunction $e5be200c675c3b3a$var$useFormValidationStateImpl(props) {\n let { isInvalid: isInvalid, validationState: validationState, name: name, value: value, builtinValidation: builtinValidation, validate: validate, validationBehavior: validationBehavior = 'aria' } = props;\n // backward compatibility.\n if (validationState) isInvalid || (isInvalid = validationState === 'invalid');\n // If the isInvalid prop is controlled, update validation result in realtime.\n let controlledError = isInvalid !== undefined ? {\n isInvalid: isInvalid,\n validationErrors: [],\n validationDetails: $e5be200c675c3b3a$var$CUSTOM_VALIDITY_STATE\n } : null;\n // Perform custom client side validation.\n let clientError = (0, $69F46$useMemo)(()=>{\n if (!validate || value == null) return null;\n let validateErrors = $e5be200c675c3b3a$var$runValidate(validate, value);\n return $e5be200c675c3b3a$var$getValidationResult(validateErrors);\n }, [\n validate,\n value\n ]);\n if (builtinValidation === null || builtinValidation === void 0 ? void 0 : builtinValidation.validationDetails.valid) builtinValidation = undefined;\n // Get relevant server errors from the form.\n let serverErrors = (0, $69F46$useContext)($e5be200c675c3b3a$export$571b5131b7e65c11);\n let serverErrorMessages = (0, $69F46$useMemo)(()=>{\n if (name) return Array.isArray(name) ? name.flatMap((name)=>$e5be200c675c3b3a$var$asArray(serverErrors[name])) : $e5be200c675c3b3a$var$asArray(serverErrors[name]);\n return [];\n }, [\n serverErrors,\n name\n ]);\n // Show server errors when the form gets a new value, and clear when the user changes the value.\n let [lastServerErrors, setLastServerErrors] = (0, $69F46$useState)(serverErrors);\n let [isServerErrorCleared, setServerErrorCleared] = (0, $69F46$useState)(false);\n if (serverErrors !== lastServerErrors) {\n setLastServerErrors(serverErrors);\n setServerErrorCleared(false);\n }\n let serverError = (0, $69F46$useMemo)(()=>$e5be200c675c3b3a$var$getValidationResult(isServerErrorCleared ? [] : serverErrorMessages), [\n isServerErrorCleared,\n serverErrorMessages\n ]);\n // Track the next validation state in a ref until commitValidation is called.\n let nextValidation = (0, $69F46$useRef)($e5be200c675c3b3a$export$dad6ae84456c676a);\n let [currentValidity, setCurrentValidity] = (0, $69F46$useState)($e5be200c675c3b3a$export$dad6ae84456c676a);\n let lastError = (0, $69F46$useRef)($e5be200c675c3b3a$export$dad6ae84456c676a);\n let commitValidation = ()=>{\n if (!commitQueued) return;\n setCommitQueued(false);\n let error = clientError || builtinValidation || nextValidation.current;\n if (!$e5be200c675c3b3a$var$isEqualValidation(error, lastError.current)) {\n lastError.current = error;\n setCurrentValidity(error);\n }\n };\n let [commitQueued, setCommitQueued] = (0, $69F46$useState)(false);\n (0, $69F46$useEffect)(commitValidation);\n // realtimeValidation is used to update the native input element's state based on custom validation logic.\n // displayValidation is the currently displayed validation state that the user sees (e.g. on input change/form submit).\n // With validationBehavior=\"aria\", all errors are displayed in realtime rather than on submit.\n let realtimeValidation = controlledError || serverError || clientError || builtinValidation || $e5be200c675c3b3a$export$dad6ae84456c676a;\n let displayValidation = validationBehavior === 'native' ? controlledError || serverError || currentValidity : controlledError || serverError || clientError || builtinValidation || currentValidity;\n return {\n realtimeValidation: realtimeValidation,\n displayValidation: displayValidation,\n updateValidation (value) {\n // If validationBehavior is 'aria', update in realtime. Otherwise, store in a ref until commit.\n if (validationBehavior === 'aria' && !$e5be200c675c3b3a$var$isEqualValidation(currentValidity, value)) setCurrentValidity(value);\n else nextValidation.current = value;\n },\n resetValidation () {\n // Update the currently displayed validation state to valid on form reset,\n // even if the native validity says it isn't. It'll show again on the next form submit.\n let error = $e5be200c675c3b3a$export$dad6ae84456c676a;\n if (!$e5be200c675c3b3a$var$isEqualValidation(error, lastError.current)) {\n lastError.current = error;\n setCurrentValidity(error);\n }\n // Do not commit validation after the next render. This avoids a condition where\n // useSelect calls commitValidation inside an onReset handler.\n if (validationBehavior === 'native') setCommitQueued(false);\n setServerErrorCleared(true);\n },\n commitValidation () {\n // Commit validation state so the user sees it on blur/change/submit. Also clear any server errors.\n // Wait until after the next render to commit so that the latest value has been validated.\n if (validationBehavior === 'native') setCommitQueued(true);\n setServerErrorCleared(true);\n }\n };\n}\nfunction $e5be200c675c3b3a$var$asArray(v) {\n if (!v) return [];\n return Array.isArray(v) ? v : [\n v\n ];\n}\nfunction $e5be200c675c3b3a$var$runValidate(validate, value) {\n if (typeof validate === 'function') {\n let e = validate(value);\n if (e && typeof e !== 'boolean') return $e5be200c675c3b3a$var$asArray(e);\n }\n return [];\n}\nfunction $e5be200c675c3b3a$var$getValidationResult(errors) {\n return errors.length ? {\n isInvalid: true,\n validationErrors: errors,\n validationDetails: $e5be200c675c3b3a$var$CUSTOM_VALIDITY_STATE\n } : null;\n}\nfunction $e5be200c675c3b3a$var$isEqualValidation(a, b) {\n if (a === b) return true;\n return !!a && !!b && a.isInvalid === b.isInvalid && a.validationErrors.length === b.validationErrors.length && a.validationErrors.every((a, i)=>a === b.validationErrors[i]) && Object.entries(a.validationDetails).every(([k, v])=>b.validationDetails[k] === v);\n}\nfunction $e5be200c675c3b3a$export$75ee7c75d68f5b0e(...results) {\n let errors = new Set();\n let isInvalid = false;\n let validationDetails = {\n ...$e5be200c675c3b3a$export$aca958c65c314e6c\n };\n for (let v of results){\n var _validationDetails, _key;\n for (let e of v.validationErrors)errors.add(e);\n // Only these properties apply for checkboxes.\n isInvalid || (isInvalid = v.isInvalid);\n for(let key in validationDetails)(_validationDetails = validationDetails)[_key = key] || (_validationDetails[_key] = v.validationDetails[key]);\n }\n validationDetails.valid = !isInvalid;\n return {\n isInvalid: isInvalid,\n validationErrors: [\n ...errors\n ],\n validationDetails: validationDetails\n };\n}\n\n\nexport {$e5be200c675c3b3a$export$aca958c65c314e6c as VALID_VALIDITY_STATE, $e5be200c675c3b3a$export$dad6ae84456c676a as DEFAULT_VALIDATION_RESULT, $e5be200c675c3b3a$export$571b5131b7e65c11 as FormValidationContext, $e5be200c675c3b3a$export$a763b9476acd3eb as privateValidationStateProp, $e5be200c675c3b3a$export$fc1a364ae1f3ff10 as useFormValidationState, $e5be200c675c3b3a$export$75ee7c75d68f5b0e as mergeValidation};\n//# sourceMappingURL=useFormValidationState.module.js.map\n","/*\n * Copyright 2020 Adobe. All rights reserved.\n * This file is licensed to you under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License. You may obtain a copy\n * of the License at http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software distributed under\n * the License is distributed on an \"AS IS\" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS\n * OF ANY KIND, either express or implied. See the License for the specific language\n * governing permissions and limitations under the License.\n */ class $a02d57049d202695$export$d085fb9e920b5ca7 {\n *[Symbol.iterator]() {\n yield* this.iterable;\n }\n get size() {\n return this._size;\n }\n getKeys() {\n return this.keyMap.keys();\n }\n getKeyBefore(key) {\n let node = this.keyMap.get(key);\n var _node_prevKey;\n return node ? (_node_prevKey = node.prevKey) !== null && _node_prevKey !== void 0 ? _node_prevKey : null : null;\n }\n getKeyAfter(key) {\n let node = this.keyMap.get(key);\n var _node_nextKey;\n return node ? (_node_nextKey = node.nextKey) !== null && _node_nextKey !== void 0 ? _node_nextKey : null : null;\n }\n getFirstKey() {\n return this.firstKey;\n }\n getLastKey() {\n return this.lastKey;\n }\n getItem(key) {\n var _this_keyMap_get;\n return (_this_keyMap_get = this.keyMap.get(key)) !== null && _this_keyMap_get !== void 0 ? _this_keyMap_get : null;\n }\n at(idx) {\n const keys = [\n ...this.getKeys()\n ];\n return this.getItem(keys[idx]);\n }\n getChildren(key) {\n let node = this.keyMap.get(key);\n return (node === null || node === void 0 ? void 0 : node.childNodes) || [];\n }\n constructor(nodes){\n this.keyMap = new Map();\n this.firstKey = null;\n this.lastKey = null;\n this.iterable = nodes;\n let visit = (node)=>{\n this.keyMap.set(node.key, node);\n if (node.childNodes && node.type === 'section') for (let child of node.childNodes)visit(child);\n };\n for (let node of nodes)visit(node);\n let last = null;\n let index = 0;\n let size = 0;\n for (let [key, node] of this.keyMap){\n if (last) {\n last.nextKey = key;\n node.prevKey = last.key;\n } else {\n this.firstKey = key;\n node.prevKey = undefined;\n }\n if (node.type === 'item') node.index = index++;\n // Only count sections and items when determining size so that\n // loaders and separators in RAC/S2 don't influence the emptyState determination\n if (node.type === 'section' || node.type === 'item') size++;\n last = node;\n // Set nextKey as undefined since this might be the last node\n // If it isn't the last node, last.nextKey will properly set at start of new loop\n last.nextKey = undefined;\n }\n this._size = size;\n var _last_key;\n this.lastKey = (_last_key = last === null || last === void 0 ? void 0 : last.key) !== null && _last_key !== void 0 ? _last_key : null;\n }\n}\n\n\nexport {$a02d57049d202695$export$d085fb9e920b5ca7 as ListCollection};\n//# sourceMappingURL=ListCollection.module.js.map\n","/*\n * Copyright 2020 Adobe. All rights reserved.\n * This file is licensed to you under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License. You may obtain a copy\n * of the License at http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software distributed under\n * the License is distributed on an \"AS IS\" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS\n * OF ANY KIND, either express or implied. See the License for the specific language\n * governing permissions and limitations under the License.\n */ class $e40ea825a81a3709$export$52baac22726c72bf extends Set {\n constructor(keys, anchorKey, currentKey){\n super(keys);\n if (keys instanceof $e40ea825a81a3709$export$52baac22726c72bf) {\n this.anchorKey = anchorKey !== null && anchorKey !== void 0 ? anchorKey : keys.anchorKey;\n this.currentKey = currentKey !== null && currentKey !== void 0 ? currentKey : keys.currentKey;\n } else {\n this.anchorKey = anchorKey !== null && anchorKey !== void 0 ? anchorKey : null;\n this.currentKey = currentKey !== null && currentKey !== void 0 ? currentKey : null;\n }\n }\n}\n\n\nexport {$e40ea825a81a3709$export$52baac22726c72bf as Selection};\n//# sourceMappingURL=Selection.module.js.map\n","import {Selection as $e40ea825a81a3709$export$52baac22726c72bf} from \"./Selection.mjs\";\nimport {useControlledState as $6tM1y$useControlledState} from \"@react-stately/utils\";\nimport {useRef as $6tM1y$useRef, useState as $6tM1y$useState, useMemo as $6tM1y$useMemo, useEffect as $6tM1y$useEffect} from \"react\";\n\n/*\n * Copyright 2020 Adobe. All rights reserved.\n * This file is licensed to you under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License. You may obtain a copy\n * of the License at http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software distributed under\n * the License is distributed on an \"AS IS\" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS\n * OF ANY KIND, either express or implied. See the License for the specific language\n * governing permissions and limitations under the License.\n */ \n\n\nfunction $7af3f5b51489e0b5$var$equalSets(setA, setB) {\n if (setA.size !== setB.size) return false;\n for (let item of setA){\n if (!setB.has(item)) return false;\n }\n return true;\n}\nfunction $7af3f5b51489e0b5$export$253fe78d46329472(props) {\n let { selectionMode: selectionMode = 'none', disallowEmptySelection: disallowEmptySelection = false, allowDuplicateSelectionEvents: allowDuplicateSelectionEvents, selectionBehavior: selectionBehaviorProp = 'toggle', disabledBehavior: disabledBehavior = 'all' } = props;\n // We want synchronous updates to `isFocused` and `focusedKey` after their setters are called.\n // But we also need to trigger a react re-render. So, we have both a ref (sync) and state (async).\n let isFocusedRef = (0, $6tM1y$useRef)(false);\n let [, setFocused] = (0, $6tM1y$useState)(false);\n let focusedKeyRef = (0, $6tM1y$useRef)(null);\n let childFocusStrategyRef = (0, $6tM1y$useRef)(null);\n let [, setFocusedKey] = (0, $6tM1y$useState)(null);\n let selectedKeysProp = (0, $6tM1y$useMemo)(()=>$7af3f5b51489e0b5$var$convertSelection(props.selectedKeys), [\n props.selectedKeys\n ]);\n let defaultSelectedKeys = (0, $6tM1y$useMemo)(()=>$7af3f5b51489e0b5$var$convertSelection(props.defaultSelectedKeys, new (0, $e40ea825a81a3709$export$52baac22726c72bf)()), [\n props.defaultSelectedKeys\n ]);\n let [selectedKeys, setSelectedKeys] = (0, $6tM1y$useControlledState)(selectedKeysProp, defaultSelectedKeys, props.onSelectionChange);\n let disabledKeysProp = (0, $6tM1y$useMemo)(()=>props.disabledKeys ? new Set(props.disabledKeys) : new Set(), [\n props.disabledKeys\n ]);\n let [selectionBehavior, setSelectionBehavior] = (0, $6tM1y$useState)(selectionBehaviorProp);\n // If the selectionBehavior prop is set to replace, but the current state is toggle (e.g. due to long press\n // to enter selection mode on touch), and the selection becomes empty, reset the selection behavior.\n if (selectionBehaviorProp === 'replace' && selectionBehavior === 'toggle' && typeof selectedKeys === 'object' && selectedKeys.size === 0) setSelectionBehavior('replace');\n // If the selectionBehavior prop changes, update the state as well.\n let lastSelectionBehavior = (0, $6tM1y$useRef)(selectionBehaviorProp);\n (0, $6tM1y$useEffect)(()=>{\n if (selectionBehaviorProp !== lastSelectionBehavior.current) {\n setSelectionBehavior(selectionBehaviorProp);\n lastSelectionBehavior.current = selectionBehaviorProp;\n }\n }, [\n selectionBehaviorProp\n ]);\n return {\n selectionMode: selectionMode,\n disallowEmptySelection: disallowEmptySelection,\n selectionBehavior: selectionBehavior,\n setSelectionBehavior: setSelectionBehavior,\n get isFocused () {\n return isFocusedRef.current;\n },\n setFocused (f) {\n isFocusedRef.current = f;\n setFocused(f);\n },\n get focusedKey () {\n return focusedKeyRef.current;\n },\n get childFocusStrategy () {\n return childFocusStrategyRef.current;\n },\n setFocusedKey (k, childFocusStrategy = 'first') {\n focusedKeyRef.current = k;\n childFocusStrategyRef.current = childFocusStrategy;\n setFocusedKey(k);\n },\n selectedKeys: selectedKeys,\n setSelectedKeys (keys) {\n if (allowDuplicateSelectionEvents || !$7af3f5b51489e0b5$var$equalSets(keys, selectedKeys)) setSelectedKeys(keys);\n },\n disabledKeys: disabledKeysProp,\n disabledBehavior: disabledBehavior\n };\n}\nfunction $7af3f5b51489e0b5$var$convertSelection(selection, defaultValue) {\n if (!selection) return defaultValue;\n return selection === 'all' ? 'all' : new (0, $e40ea825a81a3709$export$52baac22726c72bf)(selection);\n}\n\n\nexport {$7af3f5b51489e0b5$export$253fe78d46329472 as useMultipleSelectionState};\n//# sourceMappingURL=useMultipleSelectionState.module.js.map\n","import $6Fm0V$react from \"react\";\n\n/*\n * Copyright 2020 Adobe. All rights reserved.\n * This file is licensed to you under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License. You may obtain a copy\n * of the License at http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software distributed under\n * the License is distributed on an \"AS IS\" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS\n * OF ANY KIND, either express or implied. See the License for the specific language\n * governing permissions and limitations under the License.\n */ \nfunction $c1d7fb2ec91bae71$var$Item(props) {\n return null;\n}\n$c1d7fb2ec91bae71$var$Item.getCollectionNode = function* getCollectionNode(props, context) {\n let { childItems: childItems, title: title, children: children } = props;\n let rendered = props.title || props.children;\n let textValue = props.textValue || (typeof rendered === 'string' ? rendered : '') || props['aria-label'] || '';\n // suppressTextValueWarning is used in components like Tabs, which don't have type to select support.\n if (!textValue && !(context === null || context === void 0 ? void 0 : context.suppressTextValueWarning) && process.env.NODE_ENV !== 'production') console.warn('<Item> with non-plain text contents is unsupported by type to select for accessibility. Please add a `textValue` prop.');\n yield {\n type: 'item',\n props: props,\n rendered: rendered,\n textValue: textValue,\n 'aria-label': props['aria-label'],\n hasChildNodes: $c1d7fb2ec91bae71$var$hasChildItems(props),\n *childNodes () {\n if (childItems) for (let child of childItems)yield {\n type: 'item',\n value: child\n };\n else if (title) {\n let items = [];\n (0, $6Fm0V$react).Children.forEach(children, (child)=>{\n items.push({\n type: 'item',\n element: child\n });\n });\n yield* items;\n }\n }\n };\n};\nfunction $c1d7fb2ec91bae71$var$hasChildItems(props) {\n if (props.hasChildItems != null) return props.hasChildItems;\n if (props.childItems) return true;\n if (props.title && (0, $6Fm0V$react).Children.count(props.children) > 0) return true;\n return false;\n}\n// We don't want getCollectionNode to show up in the type definition\nlet $c1d7fb2ec91bae71$export$6d08773d2e66f8f2 = $c1d7fb2ec91bae71$var$Item;\n\n\nexport {$c1d7fb2ec91bae71$export$6d08773d2e66f8f2 as Item};\n//# sourceMappingURL=Item.module.js.map\n","import $gtysd$react from \"react\";\n\n/*\n * Copyright 2020 Adobe. All rights reserved.\n * This file is licensed to you under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License. You may obtain a copy\n * of the License at http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software distributed under\n * the License is distributed on an \"AS IS\" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS\n * OF ANY KIND, either express or implied. See the License for the specific language\n * governing permissions and limitations under the License.\n */ \nfunction $9fc4852771d079eb$var$Section(props) {\n return null;\n}\n$9fc4852771d079eb$var$Section.getCollectionNode = function* getCollectionNode(props) {\n let { children: children, title: title, items: items } = props;\n yield {\n type: 'section',\n props: props,\n hasChildNodes: true,\n rendered: title,\n 'aria-label': props['aria-label'],\n *childNodes () {\n if (typeof children === 'function') {\n if (!items) throw new Error('props.children was a function but props.items is missing');\n for (let item of items)yield {\n type: 'item',\n value: item,\n renderer: children\n };\n } else {\n let items = [];\n (0, $gtysd$react).Children.forEach(children, (child)=>{\n items.push({\n type: 'item',\n element: child\n });\n });\n yield* items;\n }\n }\n };\n};\n// We don't want getCollectionNode to show up in the type definition\nlet $9fc4852771d079eb$export$6e2c8f0811a474ce = $9fc4852771d079eb$var$Section;\n\n\nexport {$9fc4852771d079eb$export$6e2c8f0811a474ce as Section};\n//# sourceMappingURL=Section.module.js.map\n","import $fzaAv$react from \"react\";\n\n/*\n * Copyright 2020 Adobe. All rights reserved.\n * This file is licensed to you under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License. You may obtain a copy\n * of the License at http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software distributed under\n * the License is distributed on an \"AS IS\" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS\n * OF ANY KIND, either express or implied. See the License for the specific language\n * governing permissions and limitations under the License.\n */ \nclass $eb2240fc39a57fa5$export$bf788dd355e3a401 {\n build(props, context) {\n this.context = context;\n return $eb2240fc39a57fa5$var$iterable(()=>this.iterateCollection(props));\n }\n *iterateCollection(props) {\n let { children: children, items: items } = props;\n if ((0, $fzaAv$react).isValidElement(children) && children.type === (0, $fzaAv$react).Fragment) yield* this.iterateCollection({\n children: children.props.children,\n items: items\n });\n else if (typeof children === 'function') {\n if (!items) throw new Error('props.children was a function but props.items is missing');\n let index = 0;\n for (let item of items){\n yield* this.getFullNode({\n value: item,\n index: index\n }, {\n renderer: children\n });\n index++;\n }\n } else {\n let items = [];\n (0, $fzaAv$react).Children.forEach(children, (child)=>{\n if (child) items.push(child);\n });\n let index = 0;\n for (let item of items){\n let nodes = this.getFullNode({\n element: item,\n index: index\n }, {});\n for (let node of nodes){\n index++;\n yield node;\n }\n }\n }\n }\n getKey(item, partialNode, state, parentKey) {\n if (item.key != null) return item.key;\n if (partialNode.type === 'cell' && partialNode.key != null) return `${parentKey}${partialNode.key}`;\n let v = partialNode.value;\n if (v != null) {\n var _v_key;\n let key = (_v_key = v.key) !== null && _v_key !== void 0 ? _v_key : v.id;\n if (key == null) throw new Error('No key found for item');\n return key;\n }\n return parentKey ? `${parentKey}.${partialNode.index}` : `$.${partialNode.index}`;\n }\n getChildState(state, partialNode) {\n return {\n renderer: partialNode.renderer || state.renderer\n };\n }\n *getFullNode(partialNode, state, parentKey, parentNode) {\n if ((0, $fzaAv$react).isValidElement(partialNode.element) && partialNode.element.type === (0, $fzaAv$react).Fragment) {\n let children = [];\n (0, $fzaAv$react).Children.forEach(partialNode.element.props.children, (child)=>{\n children.push(child);\n });\n var _partialNode_index;\n let index = (_partialNode_index = partialNode.index) !== null && _partialNode_index !== void 0 ? _partialNode_index : 0;\n for (const child of children)yield* this.getFullNode({\n element: child,\n index: index++\n }, state, parentKey, parentNode);\n return;\n }\n // If there's a value instead of an element on the node, and a parent renderer function is available,\n // use it to render an element for the value.\n let element = partialNode.element;\n if (!element && partialNode.value && state && state.renderer) {\n let cached = this.cache.get(partialNode.value);\n if (cached && (!cached.shouldInvalidate || !cached.shouldInvalidate(this.context))) {\n cached.index = partialNode.index;\n cached.parentKey = parentNode ? parentNode.key : null;\n yield cached;\n return;\n }\n element = state.renderer(partialNode.value);\n }\n // If there's an element with a getCollectionNode function on its type, then it's a supported component.\n // Call this function to get a partial node, and recursively build a full node from there.\n if ((0, $fzaAv$react).isValidElement(element)) {\n let type = element.type;\n if (typeof type !== 'function' && typeof type.getCollectionNode !== 'function') {\n let name = element.type;\n throw new Error(`Unknown element <${name}> in collection.`);\n }\n let childNodes = type.getCollectionNode(element.props, this.context);\n var _partialNode_index1;\n let index = (_partialNode_index1 = partialNode.index) !== null && _partialNode_index1 !== void 0 ? _partialNode_index1 : 0;\n let result = childNodes.next();\n while(!result.done && result.value){\n let childNode = result.value;\n partialNode.index = index;\n var _childNode_key;\n let nodeKey = (_childNode_key = childNode.key) !== null && _childNode_key !== void 0 ? _childNode_key : null;\n if (nodeKey == null) nodeKey = childNode.element ? null : this.getKey(element, partialNode, state, parentKey);\n let nodes = this.getFullNode({\n ...childNode,\n key: nodeKey,\n index: index,\n wrapper: $eb2240fc39a57fa5$var$compose(partialNode.wrapper, childNode.wrapper)\n }, this.getChildState(state, childNode), parentKey ? `${parentKey}${element.key}` : element.key, parentNode);\n let children = [\n ...nodes\n ];\n for (let node of children){\n var _childNode_value, _ref;\n // Cache the node based on its value\n node.value = (_ref = (_childNode_value = childNode.value) !== null && _childNode_value !== void 0 ? _childNode_value : partialNode.value) !== null && _ref !== void 0 ? _ref : null;\n if (node.value) this.cache.set(node.value, node);\n var _parentNode_type;\n // The partial node may have specified a type for the child in order to specify a constraint.\n // Verify that the full node that was built recursively matches this type.\n if (partialNode.type && node.type !== partialNode.type) throw new Error(`Unsupported type <${$eb2240fc39a57fa5$var$capitalize(node.type)}> in <${$eb2240fc39a57fa5$var$capitalize((_parentNode_type = parentNode === null || parentNode === void 0 ? void 0 : parentNode.type) !== null && _parentNode_type !== void 0 ? _parentNode_type : 'unknown parent type')}>. Only <${$eb2240fc39a57fa5$var$capitalize(partialNode.type)}> is supported.`);\n index++;\n yield node;\n }\n result = childNodes.next(children);\n }\n return;\n }\n // Ignore invalid elements\n if (partialNode.key == null || partialNode.type == null) return;\n // Create full node\n let builder = this;\n var _partialNode_value, _partialNode_textValue;\n let node = {\n type: partialNode.type,\n props: partialNode.props,\n key: partialNode.key,\n parentKey: parentNode ? parentNode.key : null,\n value: (_partialNode_value = partialNode.value) !== null && _partialNode_value !== void 0 ? _partialNode_value : null,\n level: parentNode ? parentNode.level + 1 : 0,\n index: partialNode.index,\n rendered: partialNode.rendered,\n textValue: (_partialNode_textValue = partialNode.textValue) !== null && _partialNode_textValue !== void 0 ? _partialNode_textValue : '',\n 'aria-label': partialNode['aria-label'],\n wrapper: partialNode.wrapper,\n shouldInvalidate: partialNode.shouldInvalidate,\n hasChildNodes: partialNode.hasChildNodes || false,\n childNodes: $eb2240fc39a57fa5$var$iterable(function*() {\n if (!partialNode.hasChildNodes || !partialNode.childNodes) return;\n let index = 0;\n for (let child of partialNode.childNodes()){\n // Ensure child keys are globally unique by prepending the parent node's key\n if (child.key != null) // TODO: Remove this line entirely and enforce that users always provide unique keys.\n // Currently this line will have issues when a parent has a key `a` and a child with key `bc`\n // but another parent has key `ab` and its child has a key `c`. The combined keys would result in both\n // children having a key of `abc`.\n child.key = `${node.key}${child.key}`;\n let nodes = builder.getFullNode({\n ...child,\n index: index\n }, builder.getChildState(state, child), node.key, node);\n for (let node of nodes){\n index++;\n yield node;\n }\n }\n })\n };\n yield node;\n }\n constructor(){\n this.cache = new WeakMap();\n }\n}\n// Wraps an iterator function as an iterable object, and caches the results.\nfunction $eb2240fc39a57fa5$var$iterable(iterator) {\n let cache = [];\n let iterable = null;\n return {\n *[Symbol.iterator] () {\n for (let item of cache)yield item;\n if (!iterable) iterable = iterator();\n for (let item of iterable){\n cache.push(item);\n yield item;\n }\n }\n };\n}\nfunction $eb2240fc39a57fa5$var$compose(outer, inner) {\n if (outer && inner) return (element)=>outer(inner(element));\n if (outer) return outer;\n if (inner) return inner;\n}\nfunction $eb2240fc39a57fa5$var$capitalize(str) {\n return str[0].toUpperCase() + str.slice(1);\n}\n\n\nexport {$eb2240fc39a57fa5$export$bf788dd355e3a401 as CollectionBuilder};\n//# sourceMappingURL=CollectionBuilder.module.js.map\n","import {CollectionBuilder as $eb2240fc39a57fa5$export$bf788dd355e3a401} from \"./CollectionBuilder.mjs\";\nimport {useMemo as $lbNth$useMemo} from \"react\";\n\n/*\n * Copyright 2020 Adobe. All rights reserved.\n * This file is licensed to you under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License. You may obtain a copy\n * of the License at http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software distributed under\n * the License is distributed on an \"AS IS\" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS\n * OF ANY KIND, either express or implied. See the License for the specific language\n * governing permissions and limitations under the License.\n */ \n\nfunction $7613b1592d41b092$export$6cd28814d92fa9c9(props, factory, context) {\n let builder = (0, $lbNth$useMemo)(()=>new (0, $eb2240fc39a57fa5$export$bf788dd355e3a401)(), []);\n let { children: children, items: items, collection: collection } = props;\n let result = (0, $lbNth$useMemo)(()=>{\n if (collection) return collection;\n let nodes = builder.build({\n children: children,\n items: items\n }, context);\n return factory(nodes);\n }, [\n builder,\n children,\n items,\n collection,\n context,\n factory\n ]);\n return result;\n}\n\n\nexport {$7613b1592d41b092$export$6cd28814d92fa9c9 as useCollection};\n//# sourceMappingURL=useCollection.module.js.map\n","/*\n * Copyright 2020 Adobe. All rights reserved.\n * This file is licensed to you under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License. You may obtain a copy\n * of the License at http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software distributed under\n * the License is distributed on an \"AS IS\" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS\n * OF ANY KIND, either express or implied. See the License for the specific language\n * governing permissions and limitations under the License.\n */ function $c5a24bc478652b5f$export$1005530eda016c13(node, collection) {\n // New API: call collection.getChildren with the node key.\n if (typeof collection.getChildren === 'function') return collection.getChildren(node.key);\n // Old API: access childNodes directly.\n return node.childNodes;\n}\nfunction $c5a24bc478652b5f$export$fbdeaa6a76694f71(iterable) {\n return $c5a24bc478652b5f$export$5f3398f8733f90e2(iterable, 0);\n}\nfunction $c5a24bc478652b5f$export$5f3398f8733f90e2(iterable, index) {\n if (index < 0) return undefined;\n let i = 0;\n for (let item of iterable){\n if (i === index) return item;\n i++;\n }\n}\nfunction $c5a24bc478652b5f$export$7475b2c64539e4cf(iterable) {\n let lastItem = undefined;\n for (let value of iterable)lastItem = value;\n return lastItem;\n}\nfunction $c5a24bc478652b5f$export$8c434b3a7a4dad6(collection, a, b) {\n // If the two nodes have the same parent, compare their indices.\n if (a.parentKey === b.parentKey) return a.index - b.index;\n // Otherwise, collect all of the ancestors from each node, and find the first one that doesn't match starting from the root.\n // Include the base nodes in case we are comparing nodes of different levels so that we can compare the higher node to the lower level node's\n // ancestor of the same level\n let aAncestors = [\n ...$c5a24bc478652b5f$var$getAncestors(collection, a),\n a\n ];\n let bAncestors = [\n ...$c5a24bc478652b5f$var$getAncestors(collection, b),\n b\n ];\n let firstNonMatchingAncestor = aAncestors.slice(0, bAncestors.length).findIndex((a, i)=>a !== bAncestors[i]);\n if (firstNonMatchingAncestor !== -1) {\n // Compare the indices of two children within the common ancestor.\n a = aAncestors[firstNonMatchingAncestor];\n b = bAncestors[firstNonMatchingAncestor];\n return a.index - b.index;\n }\n // If there isn't a non matching ancestor, we might be in a case where one of the nodes is the ancestor of the other.\n if (aAncestors.findIndex((node)=>node === b) >= 0) return 1;\n else if (bAncestors.findIndex((node)=>node === a) >= 0) return -1;\n // 🤷\n return -1;\n}\nfunction $c5a24bc478652b5f$var$getAncestors(collection, node) {\n let parents = [];\n let currNode = node;\n while((currNode === null || currNode === void 0 ? void 0 : currNode.parentKey) != null){\n currNode = collection.getItem(currNode.parentKey);\n if (currNode) parents.unshift(currNode);\n }\n return parents;\n}\n\n\nexport {$c5a24bc478652b5f$export$1005530eda016c13 as getChildNodes, $c5a24bc478652b5f$export$fbdeaa6a76694f71 as getFirstItem, $c5a24bc478652b5f$export$5f3398f8733f90e2 as getNthItem, $c5a24bc478652b5f$export$7475b2c64539e4cf as getLastItem, $c5a24bc478652b5f$export$8c434b3a7a4dad6 as compareNodeOrder};\n//# sourceMappingURL=getChildNodes.module.js.map\n","import {Selection as $e40ea825a81a3709$export$52baac22726c72bf} from \"./Selection.mjs\";\nimport {compareNodeOrder as $jkhUT$compareNodeOrder, getFirstItem as $jkhUT$getFirstItem, getChildNodes as $jkhUT$getChildNodes} from \"@react-stately/collections\";\n\n/*\n * Copyright 2020 Adobe. All rights reserved.\n * This file is licensed to you under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License. You may obtain a copy\n * of the License at http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software distributed under\n * the License is distributed on an \"AS IS\" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS\n * OF ANY KIND, either express or implied. See the License for the specific language\n * governing permissions and limitations under the License.\n */ \n\nclass $d496c0a20b6e58ec$export$6c8a5aaad13c9852 {\n /**\n * The type of selection that is allowed in the collection.\n */ get selectionMode() {\n return this.state.selectionMode;\n }\n /**\n * Whether the collection allows empty selection.\n */ get disallowEmptySelection() {\n return this.state.disallowEmptySelection;\n }\n /**\n * The selection behavior for the collection.\n */ get selectionBehavior() {\n return this.state.selectionBehavior;\n }\n /**\n * Sets the selection behavior for the collection.\n */ setSelectionBehavior(selectionBehavior) {\n this.state.setSelectionBehavior(selectionBehavior);\n }\n /**\n * Whether the collection is currently focused.\n */ get isFocused() {\n return this.state.isFocused;\n }\n /**\n * Sets whether the collection is focused.\n */ setFocused(isFocused) {\n this.state.setFocused(isFocused);\n }\n /**\n * The current focused key in the collection.\n */ get focusedKey() {\n return this.state.focusedKey;\n }\n /** Whether the first or last child of the focused key should receive focus. */ get childFocusStrategy() {\n return this.state.childFocusStrategy;\n }\n /**\n * Sets the focused key.\n */ setFocusedKey(key, childFocusStrategy) {\n if (key == null || this.collection.getItem(key)) this.state.setFocusedKey(key, childFocusStrategy);\n }\n /**\n * The currently selected keys in the collection.\n */ get selectedKeys() {\n return this.state.selectedKeys === 'all' ? new Set(this.getSelectAllKeys()) : this.state.selectedKeys;\n }\n /**\n * The raw selection value for the collection.\n * Either 'all' for select all, or a set of keys.\n */ get rawSelection() {\n return this.state.selectedKeys;\n }\n /**\n * Returns whether a key is selected.\n */ isSelected(key) {\n if (this.state.selectionMode === 'none') return false;\n let mappedKey = this.getKey(key);\n if (mappedKey == null) return false;\n return this.state.selectedKeys === 'all' ? this.canSelectItem(mappedKey) : this.state.selectedKeys.has(mappedKey);\n }\n /**\n * Whether the selection is empty.\n */ get isEmpty() {\n return this.state.selectedKeys !== 'all' && this.state.selectedKeys.size === 0;\n }\n /**\n * Whether all items in the collection are selected.\n */ get isSelectAll() {\n if (this.isEmpty) return false;\n if (this.state.selectedKeys === 'all') return true;\n if (this._isSelectAll != null) return this._isSelectAll;\n let allKeys = this.getSelectAllKeys();\n let selectedKeys = this.state.selectedKeys;\n this._isSelectAll = allKeys.every((k)=>selectedKeys.has(k));\n return this._isSelectAll;\n }\n get firstSelectedKey() {\n let first = null;\n for (let key of this.state.selectedKeys){\n let item = this.collection.getItem(key);\n if (!first || item && (0, $jkhUT$compareNodeOrder)(this.collection, item, first) < 0) first = item;\n }\n var _first_key;\n return (_first_key = first === null || first === void 0 ? void 0 : first.key) !== null && _first_key !== void 0 ? _first_key : null;\n }\n get lastSelectedKey() {\n let last = null;\n for (let key of this.state.selectedKeys){\n let item = this.collection.getItem(key);\n if (!last || item && (0, $jkhUT$compareNodeOrder)(this.collection, item, last) > 0) last = item;\n }\n var _last_key;\n return (_last_key = last === null || last === void 0 ? void 0 : last.key) !== null && _last_key !== void 0 ? _last_key : null;\n }\n get disabledKeys() {\n return this.state.disabledKeys;\n }\n get disabledBehavior() {\n return this.state.disabledBehavior;\n }\n /**\n * Extends the selection to the given key.\n */ extendSelection(toKey) {\n if (this.selectionMode === 'none') return;\n if (this.selectionMode === 'single') {\n this.replaceSelection(toKey);\n return;\n }\n let mappedToKey = this.getKey(toKey);\n if (mappedToKey == null) return;\n let selection;\n // Only select the one key if coming from a select all.\n if (this.state.selectedKeys === 'all') selection = new (0, $e40ea825a81a3709$export$52baac22726c72bf)([\n mappedToKey\n ], mappedToKey, mappedToKey);\n else {\n let selectedKeys = this.state.selectedKeys;\n var _selectedKeys_anchorKey;\n let anchorKey = (_selectedKeys_anchorKey = selectedKeys.anchorKey) !== null && _selectedKeys_anchorKey !== void 0 ? _selectedKeys_anchorKey : mappedToKey;\n selection = new (0, $e40ea825a81a3709$export$52baac22726c72bf)(selectedKeys, anchorKey, mappedToKey);\n var _selectedKeys_currentKey;\n for (let key of this.getKeyRange(anchorKey, (_selectedKeys_currentKey = selectedKeys.currentKey) !== null && _selectedKeys_currentKey !== void 0 ? _selectedKeys_currentKey : mappedToKey))selection.delete(key);\n for (let key of this.getKeyRange(mappedToKey, anchorKey))if (this.canSelectItem(key)) selection.add(key);\n }\n this.state.setSelectedKeys(selection);\n }\n getKeyRange(from, to) {\n let fromItem = this.collection.getItem(from);\n let toItem = this.collection.getItem(to);\n if (fromItem && toItem) {\n if ((0, $jkhUT$compareNodeOrder)(this.collection, fromItem, toItem) <= 0) return this.getKeyRangeInternal(from, to);\n return this.getKeyRangeInternal(to, from);\n }\n return [];\n }\n getKeyRangeInternal(from, to) {\n var _this_layoutDelegate;\n if ((_this_layoutDelegate = this.layoutDelegate) === null || _this_layoutDelegate === void 0 ? void 0 : _this_layoutDelegate.getKeyRange) return this.layoutDelegate.getKeyRange(from, to);\n let keys = [];\n let key = from;\n while(key != null){\n let item = this.collection.getItem(key);\n if (item && (item.type === 'item' || item.type === 'cell' && this.allowsCellSelection)) keys.push(key);\n if (key === to) return keys;\n key = this.collection.getKeyAfter(key);\n }\n return [];\n }\n getKey(key) {\n let item = this.collection.getItem(key);\n if (!item) // ¯\\_(ツ)_/¯\n return key;\n // If cell selection is allowed, just return the key.\n if (item.type === 'cell' && this.allowsCellSelection) return key;\n // Find a parent item to select\n while(item && item.type !== 'item' && item.parentKey != null)item = this.collection.getItem(item.parentKey);\n if (!item || item.type !== 'item') return null;\n return item.key;\n }\n /**\n * Toggles whether the given key is selected.\n */ toggleSelection(key) {\n if (this.selectionMode === 'none') return;\n if (this.selectionMode === 'single' && !this.isSelected(key)) {\n this.replaceSelection(key);\n return;\n }\n let mappedKey = this.getKey(key);\n if (mappedKey == null) return;\n let keys = new (0, $e40ea825a81a3709$export$52baac22726c72bf)(this.state.selectedKeys === 'all' ? this.getSelectAllKeys() : this.state.selectedKeys);\n if (keys.has(mappedKey)) keys.delete(mappedKey);\n else if (this.canSelectItem(mappedKey)) {\n keys.add(mappedKey);\n keys.anchorKey = mappedKey;\n keys.currentKey = mappedKey;\n }\n if (this.disallowEmptySelection && keys.size === 0) return;\n this.state.setSelectedKeys(keys);\n }\n /**\n * Replaces the selection with only the given key.\n */ replaceSelection(key) {\n if (this.selectionMode === 'none') return;\n let mappedKey = this.getKey(key);\n if (mappedKey == null) return;\n let selection = this.canSelectItem(mappedKey) ? new (0, $e40ea825a81a3709$export$52baac22726c72bf)([\n mappedKey\n ], mappedKey, mappedKey) : new (0, $e40ea825a81a3709$export$52baac22726c72bf)();\n this.state.setSelectedKeys(selection);\n }\n /**\n * Replaces the selection with the given keys.\n */ setSelectedKeys(keys) {\n if (this.selectionMode === 'none') return;\n let selection = new (0, $e40ea825a81a3709$export$52baac22726c72bf)();\n for (let key of keys){\n let mappedKey = this.getKey(key);\n if (mappedKey != null) {\n selection.add(mappedKey);\n if (this.selectionMode === 'single') break;\n }\n }\n this.state.setSelectedKeys(selection);\n }\n getSelectAllKeys() {\n let keys = [];\n let addKeys = (key)=>{\n while(key != null){\n if (this.canSelectItem(key)) {\n var _getFirstItem;\n let item = this.collection.getItem(key);\n if ((item === null || item === void 0 ? void 0 : item.type) === 'item') keys.push(key);\n var _getFirstItem_key;\n // Add child keys. If cell selection is allowed, then include item children too.\n if ((item === null || item === void 0 ? void 0 : item.hasChildNodes) && (this.allowsCellSelection || item.type !== 'item')) addKeys((_getFirstItem_key = (_getFirstItem = (0, $jkhUT$getFirstItem)((0, $jkhUT$getChildNodes)(item, this.collection))) === null || _getFirstItem === void 0 ? void 0 : _getFirstItem.key) !== null && _getFirstItem_key !== void 0 ? _getFirstItem_key : null);\n }\n key = this.collection.getKeyAfter(key);\n }\n };\n addKeys(this.collection.getFirstKey());\n return keys;\n }\n /**\n * Selects all items in the collection.\n */ selectAll() {\n if (!this.isSelectAll && this.selectionMode === 'multiple') this.state.setSelectedKeys('all');\n }\n /**\n * Removes all keys from the selection.\n */ clearSelection() {\n if (!this.disallowEmptySelection && (this.state.selectedKeys === 'all' || this.state.selectedKeys.size > 0)) this.state.setSelectedKeys(new (0, $e40ea825a81a3709$export$52baac22726c72bf)());\n }\n /**\n * Toggles between select all and an empty selection.\n */ toggleSelectAll() {\n if (this.isSelectAll) this.clearSelection();\n else this.selectAll();\n }\n select(key, e) {\n if (this.selectionMode === 'none') return;\n if (this.selectionMode === 'single') {\n if (this.isSelected(key) && !this.disallowEmptySelection) this.toggleSelection(key);\n else this.replaceSelection(key);\n } else if (this.selectionBehavior === 'toggle' || e && (e.pointerType === 'touch' || e.pointerType === 'virtual')) // if touch or virtual (VO) then we just want to toggle, otherwise it's impossible to multi select because they don't have modifier keys\n this.toggleSelection(key);\n else this.replaceSelection(key);\n }\n /**\n * Returns whether the current selection is equal to the given selection.\n */ isSelectionEqual(selection) {\n if (selection === this.state.selectedKeys) return true;\n // Check if the set of keys match.\n let selectedKeys = this.selectedKeys;\n if (selection.size !== selectedKeys.size) return false;\n for (let key of selection){\n if (!selectedKeys.has(key)) return false;\n }\n for (let key of selectedKeys){\n if (!selection.has(key)) return false;\n }\n return true;\n }\n canSelectItem(key) {\n var _item_props;\n if (this.state.selectionMode === 'none' || this.state.disabledKeys.has(key)) return false;\n let item = this.collection.getItem(key);\n if (!item || (item === null || item === void 0 ? void 0 : (_item_props = item.props) === null || _item_props === void 0 ? void 0 : _item_props.isDisabled) || item.type === 'cell' && !this.allowsCellSelection) return false;\n return true;\n }\n isDisabled(key) {\n var _this_collection_getItem_props, _this_collection_getItem;\n return this.state.disabledBehavior === 'all' && (this.state.disabledKeys.has(key) || !!((_this_collection_getItem = this.collection.getItem(key)) === null || _this_collection_getItem === void 0 ? void 0 : (_this_collection_getItem_props = _this_collection_getItem.props) === null || _this_collection_getItem_props === void 0 ? void 0 : _this_collection_getItem_props.isDisabled));\n }\n isLink(key) {\n var _this_collection_getItem_props, _this_collection_getItem;\n return !!((_this_collection_getItem = this.collection.getItem(key)) === null || _this_collection_getItem === void 0 ? void 0 : (_this_collection_getItem_props = _this_collection_getItem.props) === null || _this_collection_getItem_props === void 0 ? void 0 : _this_collection_getItem_props.href);\n }\n getItemProps(key) {\n var _this_collection_getItem;\n return (_this_collection_getItem = this.collection.getItem(key)) === null || _this_collection_getItem === void 0 ? void 0 : _this_collection_getItem.props;\n }\n withCollection(collection) {\n return new $d496c0a20b6e58ec$export$6c8a5aaad13c9852(collection, this.state, {\n allowsCellSelection: this.allowsCellSelection,\n layoutDelegate: this.layoutDelegate || undefined\n });\n }\n constructor(collection, state, options){\n this.collection = collection;\n this.state = state;\n var _options_allowsCellSelection;\n this.allowsCellSelection = (_options_allowsCellSelection = options === null || options === void 0 ? void 0 : options.allowsCellSelection) !== null && _options_allowsCellSelection !== void 0 ? _options_allowsCellSelection : false;\n this._isSelectAll = null;\n this.layoutDelegate = (options === null || options === void 0 ? void 0 : options.layoutDelegate) || null;\n }\n}\n\n\nexport {$d496c0a20b6e58ec$export$6c8a5aaad13c9852 as SelectionManager};\n//# sourceMappingURL=SelectionManager.module.js.map\n","import {ListCollection as $a02d57049d202695$export$d085fb9e920b5ca7} from \"./ListCollection.mjs\";\nimport {useMultipleSelectionState as $d5vlZ$useMultipleSelectionState, SelectionManager as $d5vlZ$SelectionManager} from \"@react-stately/selection\";\nimport {useMemo as $d5vlZ$useMemo, useCallback as $d5vlZ$useCallback, useRef as $d5vlZ$useRef, useEffect as $d5vlZ$useEffect} from \"react\";\nimport {useCollection as $d5vlZ$useCollection} from \"@react-stately/collections\";\n\n/*\n * Copyright 2020 Adobe. All rights reserved.\n * This file is licensed to you under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License. You may obtain a copy\n * of the License at http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software distributed under\n * the License is distributed on an \"AS IS\" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS\n * OF ANY KIND, either express or implied. See the License for the specific language\n * governing permissions and limitations under the License.\n */ \n\n\n\nfunction $e72dd72e1c76a225$export$2f645645f7bca764(props) {\n let { filter: filter, layoutDelegate: layoutDelegate } = props;\n let selectionState = (0, $d5vlZ$useMultipleSelectionState)(props);\n let disabledKeys = (0, $d5vlZ$useMemo)(()=>props.disabledKeys ? new Set(props.disabledKeys) : new Set(), [\n props.disabledKeys\n ]);\n let factory = (0, $d5vlZ$useCallback)((nodes)=>filter ? new (0, $a02d57049d202695$export$d085fb9e920b5ca7)(filter(nodes)) : new (0, $a02d57049d202695$export$d085fb9e920b5ca7)(nodes), [\n filter\n ]);\n let context = (0, $d5vlZ$useMemo)(()=>({\n suppressTextValueWarning: props.suppressTextValueWarning\n }), [\n props.suppressTextValueWarning\n ]);\n let collection = (0, $d5vlZ$useCollection)(props, factory, context);\n let selectionManager = (0, $d5vlZ$useMemo)(()=>new (0, $d5vlZ$SelectionManager)(collection, selectionState, {\n layoutDelegate: layoutDelegate\n }), [\n collection,\n selectionState,\n layoutDelegate\n ]);\n $e72dd72e1c76a225$var$useFocusedKeyReset(collection, selectionManager);\n return {\n collection: collection,\n disabledKeys: disabledKeys,\n selectionManager: selectionManager\n };\n}\nfunction $e72dd72e1c76a225$export$ba9d38c0f1bf2b36(state, filterFn) {\n let collection = (0, $d5vlZ$useMemo)(()=>filterFn ? state.collection.filter(filterFn) : state.collection, [\n state.collection,\n filterFn\n ]);\n let selectionManager = state.selectionManager.withCollection(collection);\n $e72dd72e1c76a225$var$useFocusedKeyReset(collection, selectionManager);\n return {\n collection: collection,\n selectionManager: selectionManager,\n disabledKeys: state.disabledKeys\n };\n}\nfunction $e72dd72e1c76a225$var$useFocusedKeyReset(collection, selectionManager) {\n // Reset focused key if that item is deleted from the collection.\n const cachedCollection = (0, $d5vlZ$useRef)(null);\n (0, $d5vlZ$useEffect)(()=>{\n if (selectionManager.focusedKey != null && !collection.getItem(selectionManager.focusedKey) && cachedCollection.current) {\n const startItem = cachedCollection.current.getItem(selectionManager.focusedKey);\n const cachedItemNodes = [\n ...cachedCollection.current.getKeys()\n ].map((key)=>{\n const itemNode = cachedCollection.current.getItem(key);\n return (itemNode === null || itemNode === void 0 ? void 0 : itemNode.type) === 'item' ? itemNode : null;\n }).filter((node)=>node !== null);\n const itemNodes = [\n ...collection.getKeys()\n ].map((key)=>{\n const itemNode = collection.getItem(key);\n return (itemNode === null || itemNode === void 0 ? void 0 : itemNode.type) === 'item' ? itemNode : null;\n }).filter((node)=>node !== null);\n var _cachedItemNodes_length, _itemNodes_length;\n const diff = ((_cachedItemNodes_length = cachedItemNodes === null || cachedItemNodes === void 0 ? void 0 : cachedItemNodes.length) !== null && _cachedItemNodes_length !== void 0 ? _cachedItemNodes_length : 0) - ((_itemNodes_length = itemNodes === null || itemNodes === void 0 ? void 0 : itemNodes.length) !== null && _itemNodes_length !== void 0 ? _itemNodes_length : 0);\n var _startItem_index, _startItem_index1, _itemNodes_length1;\n let index = Math.min(diff > 1 ? Math.max(((_startItem_index = startItem === null || startItem === void 0 ? void 0 : startItem.index) !== null && _startItem_index !== void 0 ? _startItem_index : 0) - diff + 1, 0) : (_startItem_index1 = startItem === null || startItem === void 0 ? void 0 : startItem.index) !== null && _startItem_index1 !== void 0 ? _startItem_index1 : 0, ((_itemNodes_length1 = itemNodes === null || itemNodes === void 0 ? void 0 : itemNodes.length) !== null && _itemNodes_length1 !== void 0 ? _itemNodes_length1 : 0) - 1);\n let newNode = null;\n let isReverseSearching = false;\n while(index >= 0){\n if (!selectionManager.isDisabled(itemNodes[index].key)) {\n newNode = itemNodes[index];\n break;\n }\n // Find next, not disabled item.\n if (index < itemNodes.length - 1 && !isReverseSearching) index++;\n else {\n isReverseSearching = true;\n var _startItem_index2, _startItem_index3;\n if (index > ((_startItem_index2 = startItem === null || startItem === void 0 ? void 0 : startItem.index) !== null && _startItem_index2 !== void 0 ? _startItem_index2 : 0)) index = (_startItem_index3 = startItem === null || startItem === void 0 ? void 0 : startItem.index) !== null && _startItem_index3 !== void 0 ? _startItem_index3 : 0;\n index--;\n }\n }\n selectionManager.setFocusedKey(newNode ? newNode.key : null);\n }\n cachedCollection.current = collection;\n }, [\n collection,\n selectionManager\n ]);\n}\n\n\nexport {$e72dd72e1c76a225$export$2f645645f7bca764 as useListState, $e72dd72e1c76a225$export$ba9d38c0f1bf2b36 as UNSTABLE_useFilteredListState};\n//# sourceMappingURL=useListState.module.js.map\n","import {useCallback as $hnMvi$useCallback} from \"react\";\nimport {useControlledState as $hnMvi$useControlledState} from \"@react-stately/utils\";\n\n/*\n * Copyright 2020 Adobe. All rights reserved.\n * This file is licensed to you under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License. You may obtain a copy\n * of the License at http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software distributed under\n * the License is distributed on an \"AS IS\" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS\n * OF ANY KIND, either express or implied. See the License for the specific language\n * governing permissions and limitations under the License.\n */ \n\nfunction $fc909762b330b746$export$61c6a8c84e605fb6(props) {\n let [isOpen, setOpen] = (0, $hnMvi$useControlledState)(props.isOpen, props.defaultOpen || false, props.onOpenChange);\n const open = (0, $hnMvi$useCallback)(()=>{\n setOpen(true);\n }, [\n setOpen\n ]);\n const close = (0, $hnMvi$useCallback)(()=>{\n setOpen(false);\n }, [\n setOpen\n ]);\n const toggle = (0, $hnMvi$useCallback)(()=>{\n setOpen(!isOpen);\n }, [\n setOpen,\n isOpen\n ]);\n return {\n isOpen: isOpen,\n setOpen: setOpen,\n open: open,\n close: close,\n toggle: toggle\n };\n}\n\n\nexport {$fc909762b330b746$export$61c6a8c84e605fb6 as useOverlayTriggerState};\n//# sourceMappingURL=useOverlayTriggerState.module.js.map\n","import {useFormValidationState as $6FfNf$useFormValidationState} from \"@react-stately/form\";\nimport {useListState as $6FfNf$useListState} from \"@react-stately/list\";\nimport {useOverlayTriggerState as $6FfNf$useOverlayTriggerState} from \"@react-stately/overlays\";\nimport {useControlledState as $6FfNf$useControlledState} from \"@react-stately/utils\";\nimport {useState as $6FfNf$useState, useMemo as $6FfNf$useMemo} from \"react\";\n\n/*\n * Copyright 2020 Adobe. All rights reserved.\n * This file is licensed to you under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License. You may obtain a copy\n * of the License at http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software distributed under\n * the License is distributed on an \"AS IS\" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS\n * OF ANY KIND, either express or implied. See the License for the specific language\n * governing permissions and limitations under the License.\n */ \n\n\n\n\nfunction $2bc3a590c5373a4e$export$5159ec8b34d4ec12(props) {\n let { selectionMode: selectionMode = 'single' } = props;\n let triggerState = (0, $6FfNf$useOverlayTriggerState)(props);\n let [focusStrategy, setFocusStrategy] = (0, $6FfNf$useState)(null);\n let defaultValue = (0, $6FfNf$useMemo)(()=>{\n var _props_defaultSelectedKey;\n return props.defaultValue !== undefined ? props.defaultValue : selectionMode === 'single' ? (_props_defaultSelectedKey = props.defaultSelectedKey) !== null && _props_defaultSelectedKey !== void 0 ? _props_defaultSelectedKey : null : [];\n }, [\n props.defaultValue,\n props.defaultSelectedKey,\n selectionMode\n ]);\n let value = (0, $6FfNf$useMemo)(()=>{\n return props.value !== undefined ? props.value : selectionMode === 'single' ? props.selectedKey : undefined;\n }, [\n props.value,\n props.selectedKey,\n selectionMode\n ]);\n let [controlledValue, setControlledValue] = (0, $6FfNf$useControlledState)(value, defaultValue, props.onChange);\n // Only display the first selected item if in single selection mode but the value is an array.\n let displayValue = selectionMode === 'single' && Array.isArray(controlledValue) ? controlledValue[0] : controlledValue;\n let setValue = (value)=>{\n if (selectionMode === 'single') {\n var _props_onSelectionChange;\n var _value_;\n let key = Array.isArray(value) ? (_value_ = value[0]) !== null && _value_ !== void 0 ? _value_ : null : value;\n setControlledValue(key);\n if (key !== displayValue) (_props_onSelectionChange = props.onSelectionChange) === null || _props_onSelectionChange === void 0 ? void 0 : _props_onSelectionChange.call(props, key);\n } else {\n let keys = [];\n if (Array.isArray(value)) keys = value;\n else if (value != null) keys = [\n value\n ];\n setControlledValue(keys);\n }\n };\n let listState = (0, $6FfNf$useListState)({\n ...props,\n selectionMode: selectionMode,\n disallowEmptySelection: selectionMode === 'single',\n allowDuplicateSelectionEvents: true,\n selectedKeys: (0, $6FfNf$useMemo)(()=>$2bc3a590c5373a4e$var$convertValue(displayValue), [\n displayValue\n ]),\n onSelectionChange: (keys)=>{\n // impossible, but TS doesn't know that\n if (keys === 'all') return;\n if (selectionMode === 'single') {\n var _keys_values_next_value;\n let key = (_keys_values_next_value = keys.values().next().value) !== null && _keys_values_next_value !== void 0 ? _keys_values_next_value : null;\n setValue(key);\n triggerState.close();\n } else setValue([\n ...keys\n ]);\n validationState.commitValidation();\n }\n });\n let selectedKey = listState.selectionManager.firstSelectedKey;\n let selectedItems = (0, $6FfNf$useMemo)(()=>{\n return [\n ...listState.selectionManager.selectedKeys\n ].map((key)=>listState.collection.getItem(key)).filter((item)=>item != null);\n }, [\n listState.selectionManager.selectedKeys,\n listState.collection\n ]);\n let validationState = (0, $6FfNf$useFormValidationState)({\n ...props,\n value: Array.isArray(displayValue) && displayValue.length === 0 ? null : displayValue\n });\n let [isFocused, setFocused] = (0, $6FfNf$useState)(false);\n let [initialValue] = (0, $6FfNf$useState)(displayValue);\n var _selectedItems_, _props_defaultSelectedKey;\n return {\n ...validationState,\n ...listState,\n ...triggerState,\n value: displayValue,\n defaultValue: defaultValue !== null && defaultValue !== void 0 ? defaultValue : initialValue,\n setValue: setValue,\n selectedKey: selectedKey,\n setSelectedKey: setValue,\n selectedItem: (_selectedItems_ = selectedItems[0]) !== null && _selectedItems_ !== void 0 ? _selectedItems_ : null,\n selectedItems: selectedItems,\n defaultSelectedKey: (_props_defaultSelectedKey = props.defaultSelectedKey) !== null && _props_defaultSelectedKey !== void 0 ? _props_defaultSelectedKey : props.selectionMode === 'single' ? initialValue : null,\n focusStrategy: focusStrategy,\n open (focusStrategy = null) {\n // Don't open if the collection is empty.\n if (listState.collection.size !== 0) {\n setFocusStrategy(focusStrategy);\n triggerState.open();\n }\n },\n toggle (focusStrategy = null) {\n if (listState.collection.size !== 0) {\n setFocusStrategy(focusStrategy);\n triggerState.toggle();\n }\n },\n isFocused: isFocused,\n setFocused: setFocused\n };\n}\nfunction $2bc3a590c5373a4e$var$convertValue(value) {\n if (value === undefined) return undefined;\n if (value === null) return [];\n return Array.isArray(value) ? value : [\n value\n ];\n}\n\n\nexport {$2bc3a590c5373a4e$export$5159ec8b34d4ec12 as useSelectState};\n//# sourceMappingURL=useSelectState.module.js.map\n","/**\n * Tag 标签样式\n * \n * 基于三层 Token 体系:\n * - Tier 1 (Global): 全局基础值\n * - Tier 2 (Semantic): 语义化映射\n * - Tier 3 (Component): 组件专用 Token\n * \n * 完全还原 Figma 设计稿规范\n */\n\nimport styled from '@emotion/styled'\nimport { css } from '@emotion/react'\nimport type { AppTheme } from '@kingsoft-ai/theme'\n\n// ============================================================================\n// 类型定义\n// ============================================================================\n\nexport const tagVariants = ['default', 'checkable'] as const\nexport const tagSizes = ['sm', 'md', 'lg'] as const\nexport const tagColors = [\n 'default',\n 'red',\n 'orange', \n 'yellow',\n 'green',\n 'lavender',\n 'lilac',\n 'carmine',\n 'rose',\n 'mint',\n 'olive',\n 'blue'\n] as const\n\nexport type TagVariant = (typeof tagVariants)[number]\nexport type TagSize = (typeof tagSizes)[number]\nexport type TagColor = (typeof tagColors)[number]\n\n// ============================================================================\n// 变体样式生成器\n// ============================================================================\n\n/**\n * 获取 Tag 变体样式\n * 优先使用 Tier 3 组件层 Token\n */\nconst getVariantStyles = (\n variant: TagVariant,\n color: TagColor,\n bordered: boolean,\n checked: boolean,\n theme: AppTheme\n) => {\n // 获取颜色 Token\n const colorToken = theme.components.tag.colors[color]\n \n // 可选择标签样式\n if (variant === 'checkable') {\n if (checked) {\n return css`\n background: ${colorToken.background.checked};\n color: ${colorToken.text.checked};\n border-color: ${colorToken.border.checked};\n \n &:hover:not(:disabled) {\n background: ${colorToken.background.checkedHover};\n border-color: ${colorToken.border.checkedHover};\n }\n \n &:active:not(:disabled) {\n background: ${colorToken.background.checkedActive};\n border-color: ${colorToken.border.checkedActive};\n }\n `\n } else {\n return css`\n background: ${colorToken.background.default};\n color: ${colorToken.text.default};\n border-color: ${colorToken.border.default};\n cursor: pointer;\n \n &:hover:not(:disabled) {\n background: ${colorToken.background.hover};\n border-color: ${colorToken.border.hover};\n }\n \n &:active:not(:disabled) {\n background: ${colorToken.background.active};\n border-color: ${colorToken.border.active};\n }\n `\n }\n }\n \n // 默认标签样式\n if (bordered) {\n return css`\n background: ${colorToken.background.default};\n color: ${colorToken.text.default};\n border-color: ${colorToken.border.default};\n `\n } else {\n return css`\n background: ${colorToken.background.default};\n color: ${colorToken.text.default};\n border-color: transparent;\n `\n }\n}\n\n/**\n * 获取 Tag 尺寸样式\n * 使用 Tier 3 组件层尺寸 Token\n */\nconst getSizeStyles = (size: TagSize, theme: AppTheme) => {\n const sizeToken = theme.components.tag.size[size]\n\n return css`\n height: ${sizeToken.height};\n font-size: ${sizeToken.fontSize};\n line-height: ${sizeToken.lineHeight};\n padding-inline: ${sizeToken.paddingInline};\n gap: ${sizeToken.gap};\n\n /* 图标尺寸 */\n svg {\n width: ${sizeToken.iconSize};\n height: ${sizeToken.iconSize};\n }\n `\n}\n\n// ============================================================================\n// 样式组件\n// ============================================================================\n\n/**\n * Tag 根元素\n * \n * 特性:\n * - 基于三层 Token 设计\n * - 支持多种颜色和变体\n * - 完整的交互状态(hover, active, disabled)\n * - 支持边框和无边框模式\n */\nexport const TagRoot = styled.span<{\n variant: TagVariant\n size: TagSize\n color: TagColor\n bordered: boolean\n checked: boolean\n closable: boolean\n isDisabled: boolean\n}>`\n /* 基础样式 - 使用 Tier 3 组件层 Token */\n position: relative;\n display: inline-flex;\n align-items: center;\n justify-content: center;\n box-sizing: border-box;\n \n /* 字体样式 */\n font-family: ${({ theme }) => theme.global.typography.fontFamily};\n font-weight: ${({ theme }) => theme.components.tag.fontWeight};\n white-space: nowrap;\n \n /* 边框样式 */\n border-width: 1px;\n border-style: solid;\n border-radius: ${({ theme }) => theme.components.tag.borderRadius};\n \n /* 交互样式 */\n user-select: none;\n outline: none;\n \n /* 过渡动画 */\n transition: \n background ${({ theme }) => theme.components.tag.transition},\n border-color ${({ theme }) => theme.components.tag.transition},\n color ${({ theme }) => theme.components.tag.transition},\n opacity ${({ theme }) => theme.components.tag.transition};\n\n /* 变体和颜色样式 */\n ${({ variant, color, bordered, checked, theme }) =>\n getVariantStyles(variant, color, bordered, checked, theme)}\n\n /* 尺寸样式 */\n ${({ size, theme }) => getSizeStyles(size, theme)}\n\n /* 可选择标签的 cursor */\n ${({ variant, checked }) =>\n variant === 'checkable' &&\n !checked &&\n css`\n cursor: pointer;\n `}\n\n /* 禁用状态 */\n &:disabled,\n &[data-disabled='true'] {\n cursor: not-allowed;\n opacity: ${({ theme }) => theme.components.tag.disabled.opacity};\n }\n\n /* Focus 可见状态 - 键盘导航时显示 */\n &:focus-visible {\n outline: 2px solid ${({ theme }) => theme.components.tag.colors.default.border.checked};\n outline-offset: 2px;\n }\n`\n\n/**\n * Tag 内容容器\n * \n * 用于布局图标和文本\n */\nexport const TagContent = styled.span`\n display: inline-flex;\n align-items: center;\n justify-content: center;\n gap: inherit;\n`\n\n/**\n * 图标包装器\n * \n * 特性:\n * - 保持布局稳定\n * - 支持前置图标\n */\nexport const IconWrapper = styled.span`\n display: inline-flex;\n align-items: center;\n justify-content: center;\n flex-shrink: 0;\n color: inherit;\n`\n\n/**\n * 关闭按钮\n * \n * 使用 span 而非 button,避免在 Select 等组件中嵌套 button 导致的 HTML 错误\n * \n * 特性:\n * - 独立的交互区域\n * - hover 时显示反馈\n */\nexport const CloseButton = styled.span<{\n size: TagSize\n}>`\n display: inline-flex;\n align-items: center;\n justify-content: center;\n flex-shrink: 0;\n \n border: none;\n background: transparent;\n padding: 0;\n margin: 0;\n cursor: pointer;\n color: inherit;\n \n transition: opacity ${({ theme }) => theme.components.tag.transition};\n \n &:hover {\n opacity: 0.7;\n }\n \n &:active {\n opacity: 0.5;\n }\n \n /* 图标尺寸 */\n svg {\n width: ${({ size, theme }) => theme.components.tag.size[size].closeIconSize};\n height: ${({ size, theme }) => theme.components.tag.size[size].closeIconSize};\n }\n`\n\n/**\n * 添加按钮(New Tag)\n * \n * 专门用于添加新标签的按钮样式\n */\nexport const AddButton = styled.button<{\n size: TagSize\n}>`\n display: inline-flex;\n align-items: center;\n justify-content: center;\n box-sizing: border-box;\n gap: ${({ size, theme }) => theme.components.tag.size[size].gap};\n \n height: ${({ size, theme }) => theme.components.tag.size[size].height};\n padding-inline: ${({ size, theme }) => theme.components.tag.size[size].paddingInline};\n \n font-family: ${({ theme }) => theme.global.typography.fontFamily};\n font-size: ${({ size, theme }) => theme.components.tag.size[size].fontSize};\n line-height: ${({ size, theme }) => theme.components.tag.size[size].lineHeight};\n font-weight: ${({ theme }) => theme.components.tag.fontWeight};\n color: ${({ theme }) => theme.components.tag.colors.default.text.default};\n \n background: ${({ theme }) => theme.components.tag.colors.default.background.default};\n border: 1px solid ${({ theme }) => theme.components.tag.colors.default.border.default};\n border-radius: ${({ theme }) => theme.components.tag.borderRadius};\n \n cursor: pointer;\n user-select: none;\n white-space: nowrap;\n \n transition: \n background ${({ theme }) => theme.components.tag.transition},\n border-color ${({ theme }) => theme.components.tag.transition};\n \n &:hover:not(:disabled) {\n background: ${({ theme }) => theme.components.tag.colors.default.background.hover};\n border-color: ${({ theme }) => theme.components.tag.colors.default.border.hover};\n }\n \n &:active:not(:disabled) {\n background: ${({ theme }) => theme.components.tag.colors.default.background.active};\n border-color: ${({ theme }) => theme.components.tag.colors.default.border.active};\n }\n \n &:disabled {\n cursor: not-allowed;\n opacity: ${({ theme }) => theme.components.tag.disabled.opacity};\n }\n \n &:focus-visible {\n outline: 2px solid ${({ theme }) => theme.components.tag.colors.default.border.checked};\n outline-offset: 2px;\n }\n \n svg {\n width: ${({ size, theme }) => theme.components.tag.size[size].iconSize};\n height: ${({ size, theme }) => theme.components.tag.size[size].iconSize};\n }\n`\n\n","/**\n * Tag 标签组件\n * \n * 基于 react-aria 实现无障碍访问的标签组件\n * 完全符合 Figma 设计稿规范\n * \n * @example\n * ```tsx\n * // 基础用法\n * <Tag>标签</Tag>\n * \n * // 可关闭\n * <Tag closable onClose={() => console.log('closed')}>标签</Tag>\n * \n * // 带图标\n * <Tag icon={<IconOutline />}>标签</Tag>\n * \n * // 可选择\n * <Tag checkable checked onChange={(checked) => console.log(checked)}>标签</Tag>\n * \n * // 彩色标签\n * <Tag color=\"red\">红色</Tag>\n * <Tag color=\"blue\" bordered>蓝色带边框</Tag>\n * ```\n */\n\nimport { forwardRef, useRef, type ReactNode } from 'react'\nimport { useButton } from 'react-aria'\nimport type { AriaButtonProps } from 'react-aria'\nimport { mergeProps } from '@react-aria/utils'\nimport { CloseOutline, PlusOutline } from '@kingsoft-ai/icons'\nimport {\n TagRoot,\n TagContent,\n IconWrapper,\n CloseButton,\n AddButton,\n type TagVariant,\n type TagSize,\n type TagColor,\n} from './Tag.style'\n\n// 导出类型供外部使用\nexport type { TagVariant, TagSize, TagColor }\n\nexport interface TagProps {\n /** 标签变体:默认 | 可选择 */\n variant?: TagVariant\n /** 标签尺寸:小号(18px) | 中号(24px) | 大号(32px) */\n size?: TagSize\n /** 标签颜色 */\n color?: TagColor\n /** 是否显示边框(仅彩色标签适用) */\n bordered?: boolean\n /** 是否可关闭 */\n closable?: boolean\n /** 是否可选择(checkable 变体) */\n checkable?: boolean\n /** 是否已选中(checkable 变体) */\n checked?: boolean\n /** 前置图标 */\n icon?: ReactNode\n /** 是否禁用 */\n disabled?: boolean\n /** 自定义类名 */\n className?: string\n /** 子元素 */\n children?: ReactNode\n /** 关闭回调 */\n onClose?: () => void\n /** 选中状态变化回调(checkable 变体) */\n onChange?: (checked: boolean) => void\n /** 点击回调 */\n onClick?: () => void\n}\n\n/**\n * Tag 标签组件\n * \n * 基于 Figma 设计规范实现的标签组件,支持多种变体、颜色和尺寸\n * 使用 react-aria 保证无障碍访问性\n */\nexport const Tag = forwardRef<HTMLSpanElement, TagProps>(\n (\n {\n variant = 'default',\n size = 'md',\n color = 'default',\n bordered = false,\n closable = false,\n checkable = false,\n checked = false,\n icon,\n disabled = false,\n className,\n children,\n onClose,\n onChange,\n onClick,\n },\n forwardedRef,\n ) => {\n // 确定实际使用的变体\n const actualVariant: TagVariant = checkable ? 'checkable' : variant\n const isChecked = checkable ? checked : false\n\n // 处理点击事件\n const handleClick = () => {\n if (disabled) return\n \n if (checkable && onChange) {\n onChange(!isChecked)\n }\n \n if (onClick) {\n onClick()\n }\n }\n\n const handleKeyDown = (event: React.KeyboardEvent<HTMLSpanElement>) => {\n if (disabled) return\n\n if (actualVariant === 'checkable' && (event.key === 'Enter' || event.key === ' ')) {\n event.preventDefault()\n handleClick()\n }\n }\n\n // 处理关闭事件\n const handleClose = (e: React.MouseEvent) => {\n e.stopPropagation() // 防止触发标签的点击事件\n if (onClose && !disabled) {\n onClose()\n }\n }\n\n return (\n <TagRoot\n ref={forwardedRef}\n variant={actualVariant}\n size={size}\n color={color}\n bordered={bordered}\n checked={isChecked}\n closable={closable}\n isDisabled={disabled}\n className={className}\n onClick={actualVariant === 'checkable' ? handleClick : onClick}\n onKeyDown={handleKeyDown}\n data-variant={actualVariant}\n data-size={size}\n data-color={color}\n data-checked={isChecked ? 'true' : undefined}\n data-disabled={disabled ? 'true' : undefined}\n tabIndex={actualVariant === 'checkable' && !disabled ? 0 : undefined}\n role={actualVariant === 'checkable' ? 'checkbox' : undefined}\n aria-checked={actualVariant === 'checkable' ? isChecked : undefined}\n aria-disabled={disabled}\n >\n <TagContent>\n {/* 前置图标 */}\n {icon && (\n <IconWrapper aria-hidden=\"true\">\n {icon}\n </IconWrapper>\n )}\n\n {/* 标签文本 */}\n {children}\n\n {/* 关闭按钮 */}\n {closable && (\n <CloseButton\n size={size}\n onClick={handleClose}\n aria-label=\"关闭\"\n role=\"button\"\n tabIndex={disabled ? -1 : 0}\n onKeyDown={(e) => {\n if (!disabled && (e.key === 'Enter' || e.key === ' ')) {\n e.preventDefault()\n handleClose(e as any)\n }\n }}\n aria-disabled={disabled}\n >\n <CloseOutline />\n </CloseButton>\n )}\n </TagContent>\n </TagRoot>\n )\n },\n)\n\nTag.displayName = 'Tag'\n\n// ============================================================================\n// 复合组件:Tag.Add\n// ============================================================================\n\nexport interface TagAddProps extends Omit<AriaButtonProps, 'elementType'> {\n /** 标签尺寸 */\n size?: TagSize\n /** 自定义类名 */\n className?: string\n /** 子元素 */\n children?: ReactNode\n}\n\n/**\n * Tag.Add 添加标签按钮\n * \n * 用于添加新标签的按钮组件\n */\nexport const TagAdd = forwardRef<HTMLButtonElement, TagAddProps>(\n ({ size = 'md', className, children = 'New Tag', ...ariaProps }, forwardedRef) => {\n const innerRef = useRef<HTMLButtonElement>(null)\n const ref = forwardedRef || innerRef\n\n const { buttonProps } = useButton(\n {\n ...ariaProps,\n elementType: 'button',\n },\n innerRef,\n )\n\n return (\n <AddButton\n {...mergeProps(buttonProps, {\n ref,\n className,\n })}\n size={size}\n data-size={size}\n >\n <PlusOutline />\n {children}\n </AddButton>\n )\n },\n)\n\nTagAdd.displayName = 'Tag.Add'\n\n// 将 Add 作为 Tag 的静态属性\n;(Tag as any).Add = TagAdd\n\n","/**\n * Select 样式组件\n * \n * 基于三层 Token 体系\n */\n\nimport styled from '@emotion/styled'\nimport { css } from '@emotion/react'\nimport type { AppTheme } from '@kingsoft-ai/theme'\n\nexport const selectSizes = ['sm', 'md', 'lg'] as const\nexport type SelectSize = (typeof selectSizes)[number]\n\n// ============================================================================\n// 样式辅助函数\n// ============================================================================\n\nconst getBorderColor = (\n isFocused: boolean,\n isError: boolean,\n isDisabled: boolean,\n isHovered: boolean,\n theme: AppTheme\n) => {\n if (isDisabled) return theme.components.select.border.disabled\n if (isError) return theme.components.select.border.error\n if (isFocused) return theme.components.select.border.focus\n if (isHovered) return theme.components.select.border.hover\n return theme.components.select.border.default\n}\n\nconst getSizeStyles = (size: SelectSize, isMultiple: boolean, theme: AppTheme) => {\n const sizeToken = theme.components.select.size[size]\n\n return css`\n ${isMultiple ? `min-height: ${sizeToken.height};` : `height: ${sizeToken.height};`}\n font-size: ${sizeToken.fontSize};\n padding-inline: ${sizeToken.paddingInline};\n ${isMultiple ? 'padding-block: 4px;' : ''}\n\n svg {\n /* No global svg sizing here to avoid affecting Tag icons */\n }\n `\n}\n\n// ============================================================================\n// Select Trigger Styles\n// ============================================================================\n\nexport const SelectWrapper = styled.div<{ fullWidth?: boolean }>`\n display: ${({ fullWidth }) => (fullWidth ? 'flex' : 'inline-flex')};\n flex-direction: column;\n width: ${({ fullWidth }) => (fullWidth ? '100%' : '200px')};\n min-width: 120px;\n position: relative;\n box-sizing: border-box;\n`\n\nexport const SelectTrigger = styled.button<{\n size: SelectSize\n fullWidth?: boolean\n isFocused?: boolean\n isError?: boolean\n isDisabled?: boolean\n isHovered?: boolean\n isOpen?: boolean\n isMultiple?: boolean\n}>`\n /* 基础重置 */\n position: relative;\n display: inline-flex;\n align-items: center;\n justify-content: space-between;\n box-sizing: border-box;\n width: 100%;\n \n /* 样式 */\n border: 1px solid;\n border-color: ${({ isFocused, isError, isDisabled, isHovered, isOpen, theme }) =>\n getBorderColor(isFocused || !!isOpen, !!isError, !!isDisabled, !!isHovered, theme)};\n border-radius: ${({ theme }) => theme.components.select.borderRadius};\n \n background: ${({ isDisabled, theme }) =>\n isDisabled\n ? theme.components.select.background.disabled\n : theme.components.select.background.default};\n \n color: ${({ isDisabled, isError, theme }) => {\n if (isDisabled) return theme.components.select.text.disabled\n if (isError) return theme.components.select.text.error\n return theme.components.select.text.default\n }};\n\n cursor: ${({ isDisabled }) => (isDisabled ? 'not-allowed' : 'pointer')};\n outline: none;\n \n transition: all ${({ theme }) => theme.components.select.transition};\n\n /* 尺寸 */\n ${({ size, isMultiple, theme }) => getSizeStyles(size, !!isMultiple, theme)}\n \n /* 禁用状态 */\n ${({ isDisabled }) =>\n isDisabled &&\n css`\n opacity: 0.6;\n `}\n`\n\nexport const SelectValue = styled.span<{ isPlaceholder?: boolean }>`\n flex: 1;\n overflow: hidden;\n text-overflow: ellipsis;\n white-space: nowrap;\n text-align: left;\n margin-right: 8px;\n color: ${({ isPlaceholder, theme }) => \n isPlaceholder ? theme.components.select.text.placeholder : 'inherit'};\n`\n\nexport const SelectIcon = styled.span<{ isOpen?: boolean; size?: SelectSize }>`\n display: inline-flex;\n align-items: center;\n justify-content: center;\n align-self: center;\n flex-shrink: 0;\n transition: transform 0.2s ease;\n transform: ${({ isOpen }) => (isOpen ? 'rotate(180deg)' : 'rotate(0deg)')};\n color: inherit;\n opacity: 0.5;\n \n svg {\n width: ${({ size, theme }) => size ? theme.components.select.size[size].iconSize : '16px'};\n height: ${({ size, theme }) => size ? theme.components.select.size[size].iconSize : '16px'};\n }\n`\n\n// ============================================================================\n// Popover/ListBox Styles\n// ============================================================================\n\nexport const ListBoxPopup = styled.div`\n background: ${({ theme }) => theme.components.select.popover.background};\n border: ${({ theme }) => theme.components.select.popover.border};\n border-radius: ${({ theme }) => theme.components.select.popover.borderRadius};\n box-shadow: ${({ theme }) => theme.components.select.popover.boxShadow};\n padding: ${({ theme }) => theme.components.select.popover.padding};\n overflow: hidden;\n min-width: 100%;\n max-height: 300px;\n display: flex;\n flex-direction: column;\n`\n\nexport const ListBoxContent = styled.ul`\n margin: 0;\n padding: 0;\n list-style: none;\n overflow-y: auto;\n outline: none;\n flex: 1;\n\n /* Scrollbar styling if needed */\n &::-webkit-scrollbar {\n width: 4px;\n }\n &::-webkit-scrollbar-track {\n background: transparent;\n }\n &::-webkit-scrollbar-thumb {\n background: rgba(0,0,0,0.2);\n border-radius: 4px;\n }\n`\n\nexport const OptionItem = styled.li<{\n isSelected?: boolean\n isFocused?: boolean\n isDisabled?: boolean\n}>`\n position: relative;\n display: flex;\n align-items: center;\n justify-content: space-between;\n height: ${({ theme }) => theme.components.select.option.height};\n padding-inline: ${({ theme }) => theme.components.select.option.paddingInline};\n margin-bottom: 2px;\n border-radius: ${({ theme }) => theme.components.select.option.borderRadius};\n cursor: ${({ isDisabled }) => (isDisabled ? 'not-allowed' : 'pointer')};\n outline: none;\n user-select: none;\n font-size: ${({ theme }) => theme.components.select.option.fontSize};\n \n background: ${({ isSelected, isFocused, theme }) => {\n if (isSelected) return theme.components.select.option.background.selected\n if (isFocused) return theme.components.select.option.background.focused\n return theme.components.select.option.background.default\n }};\n \n color: ${({ isSelected, isDisabled, theme }) => {\n if (isDisabled) return theme.components.select.option.text.disabled\n if (isSelected) return theme.components.select.option.text.selected\n return theme.components.select.option.text.default\n }};\n\n &:hover {\n background: ${({ isSelected, isDisabled, theme }) => {\n if (isDisabled) return 'transparent'\n if (isSelected) return theme.components.select.option.background.selected\n return theme.components.select.option.background.hover\n }};\n }\n\n &:last-child {\n margin-bottom: 0;\n }\n`\n\nexport const OptionText = styled.span`\n flex: 1;\n overflow: hidden;\n text-overflow: ellipsis;\n white-space: nowrap;\n`\n\nexport const OptionIcon = styled.span`\n margin-left: 8px;\n display: flex;\n align-items: center;\n color: ${({ theme }) => theme.components.select.option.text.selected};\n font-size: 14px;\n`\n\nexport const LoadingWrapper = styled.div`\n display: flex;\n align-items: center;\n justify-content: center;\n padding: 8px;\n color: ${({ theme }) => theme.components.select.text.placeholder};\n font-size: ${({ theme }) => theme.global.typography.fontSize.xs};\n`\n\nexport const EmptyState = styled.div`\n padding: 8px 12px;\n color: ${({ theme }) => theme.components.select.text.disabled};\n font-size: ${({ theme }) => theme.global.typography.fontSize.xs};\n text-align: center;\n`\n\n// ============================================================================\n// Multiple Select Styles\n// ============================================================================\n\nexport const TagsContainer = styled.div`\n flex: 1;\n display: flex;\n flex-wrap: wrap;\n gap: 4px;\n align-items: center;\n min-height: 22px;\n padding-right: 4px;\n`\n\nexport const CheckboxWrapper = styled.span`\n display: inline-flex;\n align-items: center;\n margin-right: 8px;\n flex-shrink: 0;\n pointer-events: none;\n`\n\n","import { useRef, useLayoutEffect, useState, useEffect, type ReactNode, type RefObject } from 'react'\nimport { useOverlay, Overlay, useOverlayPosition, type AriaPopoverProps, FocusScope, DismissButton } from 'react-aria'\nimport { ListBoxPopup } from './Select.style'\n\ninterface PopoverProps extends Omit<AriaPopoverProps, 'popoverRef'> {\n children: ReactNode\n state: any\n triggerRef: RefObject<Element>\n className?: string\n}\n\nexport function Popover({ children, state, offset = 4, triggerRef, placement = 'bottom start', ...props }: PopoverProps) {\n const popoverRef = useRef<HTMLDivElement>(null)\n const [triggerWidth, setTriggerWidth] = useState<number | undefined>(undefined)\n \n // 使用 useLayoutEffect 确保在渲染前获取正确的宽度\n useLayoutEffect(() => {\n if (triggerRef.current) {\n setTriggerWidth(triggerRef.current.getBoundingClientRect().width)\n }\n }, [triggerRef, state.isOpen])\n\n const { overlayProps: overlayPropsFromUseOverlay } = useOverlay(\n {\n ...props,\n shouldCloseOnBlur: false, // 禁用默认的 blur 关闭,使用自定义逻辑\n isDismissable: true,\n onClose: state.close\n },\n popoverRef\n )\n\n const { overlayProps, placement: resolvedPlacement } = useOverlayPosition({\n targetRef: triggerRef,\n overlayRef: popoverRef,\n placement,\n offset,\n isOpen: state.isOpen,\n onClose: state.close\n })\n\n // 全局事件监听:点击外部和焦点移出\n useEffect(() => {\n if (!state.isOpen) return\n\n const onInteractOutside = (event: Event) => {\n const target = event.target as Node\n const popover = popoverRef.current\n const trigger = triggerRef.current\n\n // 如果交互目标既不在弹窗内部也不是触发器,则关闭\n if (\n popover && \n !popover.contains(target) && \n trigger && \n !trigger.contains(target)\n ) {\n state.close()\n }\n }\n\n // mousedown 处理点击外部\n document.addEventListener('mousedown', onInteractOutside)\n // focusin 处理 Tab 键焦点移出 (focusin 支持冒泡,focus 不支持)\n document.addEventListener('focusin', onInteractOutside)\n\n return () => {\n document.removeEventListener('mousedown', onInteractOutside)\n document.removeEventListener('focusin', onInteractOutside)\n }\n }, [state.isOpen, state.close, triggerRef])\n\n return (\n <Overlay>\n <FocusScope restoreFocus>\n <ListBoxPopup\n {...overlayPropsFromUseOverlay}\n {...overlayProps}\n ref={popoverRef}\n data-placement={resolvedPlacement}\n style={{\n ...overlayProps.style,\n zIndex: 10000,\n width: triggerWidth ? `${triggerWidth}px` : 'auto',\n minWidth: triggerWidth ? `${triggerWidth}px` : '120px',\n }}\n >\n <DismissButton onDismiss={state.close} />\n {children}\n <DismissButton onDismiss={state.close} />\n </ListBoxPopup>\n </FocusScope>\n </Overlay>\n )\n}\n","import { useRef } from 'react'\nimport { useListBox, useOption, type AriaListBoxProps } from 'react-aria'\nimport { ListBoxContent, OptionItem, OptionText, OptionIcon, CheckboxWrapper } from './Select.style'\nimport { Checkbox } from '../checkbox'\nimport type { ListState } from '@react-stately/list'\nimport type { Node } from '@react-types/shared'\n\ninterface ListBoxProps extends Omit<AriaListBoxProps<unknown>, 'children'> {\n state: ListState<unknown>\n}\n\nexport function ListBox({ state, ...props }: ListBoxProps) {\n const ref = useRef<HTMLUListElement>(null)\n const { listBoxProps } = useListBox(props, state, ref)\n\n return (\n <ListBoxContent {...listBoxProps} ref={ref}>\n {[...state.collection].map((item) => (\n <Option key={item.key} item={item} state={state} />\n ))}\n </ListBoxContent>\n )\n}\n\ninterface OptionProps {\n item: Node<unknown>\n state: ListState<unknown>\n isMultiple?: boolean\n}\n\nfunction Option({ item, state, isMultiple }: OptionProps) {\n const ref = useRef<HTMLLIElement>(null)\n const { optionProps, isSelected, isFocused, isDisabled } = useOption(\n { key: item.key },\n state,\n ref\n )\n\n return (\n <OptionItem\n {...optionProps}\n ref={ref}\n isSelected={isSelected}\n isFocused={isFocused}\n isDisabled={isDisabled}\n >\n {isMultiple && (\n <CheckboxWrapper aria-hidden=\"true\" onClick={(e) => e.stopPropagation()}>\n <Checkbox checked={isSelected} disabled={isDisabled} tabIndex={-1} />\n </CheckboxWrapper>\n )}\n <OptionText>{item.rendered}</OptionText>\n {!isMultiple && isSelected && (\n <OptionIcon aria-hidden=\"true\">\n <svg width=\"12\" height=\"12\" viewBox=\"0 0 12 12\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\n <path d=\"M10 3L4.5 8.5L2 6\" stroke=\"currentColor\" strokeWidth=\"1.5\" strokeLinecap=\"round\" strokeLinejoin=\"round\"/>\n </svg>\n </OptionIcon>\n )}\n </OptionItem>\n )\n}\n\n// 多选模式 ListBox\ninterface MultiListBoxProps {\n state: ListState<unknown>\n}\n\nexport function MultiListBox({ state }: MultiListBoxProps) {\n const ref = useRef<HTMLUListElement>(null)\n const { listBoxProps } = useListBox(\n { selectionMode: 'multiple' },\n state,\n ref\n )\n\n return (\n <ListBoxContent {...listBoxProps} ref={ref}>\n {[...state.collection].map((item) => (\n <Option key={item.key} item={item} state={state} isMultiple />\n ))}\n </ListBoxContent>\n )\n}\n\n","import React, { forwardRef, useRef, useMemo, useState } from 'react'\nimport { useSelectState } from '@react-stately/select'\nimport { useListState } from '@react-stately/list'\nimport { useSelect, useButton, HiddenSelect, type AriaSelectProps } from 'react-aria'\nimport { Item, Section } from '@react-stately/collections'\nimport { focusWithoutScrolling } from '@react-aria/utils'\nimport type { PressEvent, Selection as SelectionType, Key } from '@react-types/shared'\n\n// Re-export Selection type for external use\nexport type { Selection } from '@react-types/shared'\nimport { ChevronDownOutline } from '@kingsoft-ai/icons'\nimport { Tag } from '../tag'\nimport { SelectTrigger, SelectValue, SelectIcon, LoadingWrapper, TagsContainer, SelectWrapper } from './Select.style'\nimport { Popover } from './Popover'\nimport { ListBox, MultiListBox } from './ListBox'\nimport type { SelectSize } from './Select.style'\n\nexport type SelectionMode = 'single' | 'multiple'\n\n/**\n * 选项类型定义\n * 推荐使用 options 属性传入选项数据\n */\nexport interface SelectOptionType {\n /** 选项值,作为唯一标识 */\n value: string | number\n /** 选项显示文本 */\n label: React.ReactNode\n /** 是否禁用该选项 */\n disabled?: boolean\n}\n\nexport interface SelectProps<T> extends Omit<AriaSelectProps<T>, 'errorMessage' | 'selectedKey' | 'defaultSelectedKey' | 'onSelectionChange' | 'selectionMode' | 'children' | 'isDisabled'> {\n /** 选择模式:single 单选 | multiple 多选 */\n selectionMode?: SelectionMode\n /** 是否正在加载 */\n loading?: boolean\n /** 是否禁用 */\n disabled?: boolean\n /** 尺寸 */\n size?: SelectSize\n /** 是否全宽 */\n fullWidth?: boolean\n /** 宽度 */\n width?: string | number\n /** 自定义类名 */\n className?: string\n /** 自定义样式 */\n style?: React.CSSProperties\n /** 占位符 */\n placeholder?: string\n /** 错误信息 */\n errorMessage?: React.ReactNode\n /** 多选时最大展示的 Tag 数量 */\n maxTagCount?: number\n /** 单选时选中的 key */\n selectedKey?: React.Key | null\n /** 单选时默认选中的 key */\n defaultSelectedKey?: React.Key\n /** 多选时选中的 keys */\n selectedKeys?: Iterable<React.Key>\n /** 多选时默认选中的 keys */\n defaultSelectedKeys?: Iterable<React.Key>\n /** 选择变化回调(单选返回 key,多选返回 Set) */\n onSelectionChange?: (keys: SelectionType) => void\n /**\n * 选项数据(推荐使用)\n * \n * 提供 options 时会自动渲染选项列表,无需手动编写 <Select.Item>\n * \n * @example\n * ```tsx\n * <Select\n * options={[\n * { value: 'apple', label: '苹果' },\n * { value: 'banana', label: '香蕉' },\n * { value: 'orange', label: '橙子', disabled: true },\n * ]}\n * />\n * ```\n */\n options?: SelectOptionType[]\n /**\n * 子元素(手动编写选项时使用)\n * \n * 推荐使用 options 属性代替 children\n * \n * @example\n * ```tsx\n * <Select>\n * <Select.Item key=\"apple\">苹果</Select.Item>\n * <Select.Item key=\"banana\">香蕉</Select.Item>\n * </Select>\n * ```\n */\n children?: React.ReactNode\n}\n\n// 内部使用的 Select 组件\nconst SelectInner = forwardRef(function Select<T extends object>(\n props: SelectProps<T>,\n ref: React.ForwardedRef<HTMLButtonElement>\n) {\n const {\n selectionMode = 'single',\n loading,\n disabled,\n size = 'md',\n fullWidth = false,\n width,\n className,\n style,\n placeholder = '请选择',\n label,\n description,\n errorMessage,\n maxTagCount,\n selectedKeys,\n defaultSelectedKeys,\n onSelectionChange,\n options,\n children,\n } = props\n\n // 根据 options 或 children 生成内容\n const renderItems = useMemo(() => {\n if (options && options.length > 0) {\n return options.map((option) => (\n <Item key={option.value} textValue={typeof option.label === 'string' ? option.label : String(option.value)}>\n {option.label}\n </Item>\n ))\n }\n return children\n }, [options, children])\n\n // 合并 props,将 children 替换为实际渲染内容\n const mergedProps = {\n ...props,\n children: renderItems,\n }\n\n const innerRef = useRef<HTMLButtonElement>(null)\n const triggerRef = (ref as React.RefObject<HTMLButtonElement>) || innerRef\n const lastPointerTypeRef = useRef<PressEvent['pointerType'] | null>(null)\n\n // 单选模式状态\n const singleState = useSelectState(mergedProps as any)\n \n // 多选模式状态\n const multiState = useListState({\n ...mergedProps,\n selectionMode: 'multiple',\n selectedKeys,\n defaultSelectedKeys,\n onSelectionChange,\n } as any)\n\n const isMultiple = selectionMode === 'multiple'\n \n // 多选时的打开状态需要单独管理\n const [multiOpen, setMultiOpen] = useState(false)\n const effectiveOpen = isMultiple ? multiOpen : singleState.isOpen\n\n // 获取选中项用于渲染 Tags\n const selectedItems = useMemo(() => {\n if (!isMultiple) return []\n const items: Array<{ key: Key; rendered: React.ReactNode }> = []\n const selectedKeySet = multiState.selectionManager.selectedKeys\n for (const item of multiState.collection) {\n if (selectedKeySet.has(item.key)) {\n items.push({ key: item.key, rendered: item.rendered })\n }\n }\n return items\n }, [isMultiple, multiState.selectionManager.selectedKeys, multiState.collection])\n\n // 计算要展示的 Tags\n const { visibleTags, overflowCount } = useMemo(() => {\n if (!isMultiple || selectedItems.length === 0) {\n return { visibleTags: [], overflowCount: 0 }\n }\n if (maxTagCount !== undefined && selectedItems.length > maxTagCount) {\n return {\n visibleTags: selectedItems.slice(0, maxTagCount),\n overflowCount: selectedItems.length - maxTagCount,\n }\n }\n return { visibleTags: selectedItems, overflowCount: 0 }\n }, [isMultiple, selectedItems, maxTagCount])\n\n // 单选模式的 hooks\n const {\n labelProps,\n triggerProps,\n valueProps,\n menuProps,\n descriptionProps,\n errorMessageProps\n } = useSelect(mergedProps as any, singleState, triggerRef)\n\n const handlePressStart = (event: PressEvent) => {\n lastPointerTypeRef.current = event.pointerType\n if (event.pointerType !== 'touch' && event.pointerType !== 'keyboard' && triggerRef.current) {\n focusWithoutScrolling(triggerRef.current)\n }\n }\n\n const handlePress = (event: PressEvent) => {\n const pointerType = event.pointerType || lastPointerTypeRef.current\n if (pointerType === 'keyboard') return\n\n if (isMultiple) {\n setMultiOpen(!multiOpen)\n } else {\n const focusStrategy = pointerType === 'mouse' || pointerType === 'pen' ? null : 'first'\n singleState.toggle(focusStrategy)\n }\n }\n\n const { buttonProps } = useButton(\n {\n ...triggerProps,\n onPressStart: handlePressStart,\n onPress: handlePress\n },\n triggerRef\n )\n\n // 移除 Tag\n const handleRemoveTag = (key: Key) => {\n const newKeys = new Set(multiState.selectionManager.selectedKeys)\n newKeys.delete(key)\n multiState.selectionManager.setSelectedKeys(newKeys)\n onSelectionChange?.(newKeys)\n }\n\n // 渲染触发器内容\n const renderTriggerContent = () => {\n if (isMultiple) {\n if (selectedItems.length === 0) {\n return <SelectValue isPlaceholder>{placeholder}</SelectValue>\n }\n return (\n <TagsContainer>\n {visibleTags.map((item) => (\n <Tag\n key={item.key}\n size=\"sm\"\n closable\n onClose={() => handleRemoveTag(item.key)}\n >\n {item.rendered}\n </Tag>\n ))}\n {overflowCount > 0 && <Tag size=\"sm\">+{overflowCount}</Tag>}\n </TagsContainer>\n )\n }\n return (\n <SelectValue {...valueProps} isPlaceholder={!singleState.selectedItem}>\n {singleState.selectedItem ? singleState.selectedItem.rendered : placeholder}\n </SelectValue>\n )\n }\n\n const popoverState = isMultiple \n ? { isOpen: multiOpen, close: () => setMultiOpen(false) }\n : singleState\n\n return (\n <SelectWrapper\n fullWidth={fullWidth}\n className={className}\n style={{\n width: width,\n ...style\n }}\n >\n {label && (\n <label \n {...labelProps} \n style={{ \n fontSize: '12px', \n marginBottom: '4px', \n display: 'block',\n color: 'inherit'\n }}\n >\n {label}\n </label>\n )}\n \n {!isMultiple && (\n <HiddenSelect\n state={singleState}\n triggerRef={triggerRef}\n label={label}\n name={props.name}\n isDisabled={disabled}\n />\n )}\n\n <SelectTrigger\n {...buttonProps}\n ref={triggerRef}\n size={size}\n fullWidth={fullWidth}\n isOpen={effectiveOpen}\n isDisabled={disabled}\n isError={!!errorMessage}\n isMultiple={isMultiple}\n >\n {renderTriggerContent()}\n <SelectIcon isOpen={effectiveOpen} aria-hidden=\"true\" size={size}>\n <ChevronDownOutline width={12} height={12} />\n </SelectIcon>\n </SelectTrigger>\n\n {effectiveOpen && (\n <Popover state={popoverState} triggerRef={triggerRef} placement=\"bottom start\" offset={4}>\n {loading ? (\n <LoadingWrapper>\n <svg \n width=\"16\" \n height=\"16\" \n viewBox=\"0 0 16 16\" \n fill=\"none\" \n xmlns=\"http://www.w3.org/2000/svg\"\n style={{ animation: 'spin 1s linear infinite', marginRight: 8 }}\n >\n <style>{`@keyframes spin { 100% { transform: rotate(360deg); } }`}</style>\n <path d=\"M8 1.5C4.41015 1.5 1.5 4.41015 1.5 8C1.5 11.5899 4.41015 14.5 8 14.5C11.5899 14.5 14.5 11.5899 14.5 8\" stroke=\"currentColor\" strokeWidth=\"1.5\" strokeLinecap=\"round\"/>\n </svg>\n 加载中...\n </LoadingWrapper>\n ) : isMultiple ? (\n <MultiListBox state={multiState} />\n ) : (\n <ListBox {...menuProps} state={singleState} />\n )}\n </Popover>\n )}\n \n {/* Description & Error Message */}\n {description && (\n <div {...descriptionProps} style={{ fontSize: '12px', marginTop: '4px', opacity: 0.6 }}>\n {description}\n </div>\n )}\n {errorMessage && (\n <div {...errorMessageProps} style={{ fontSize: '12px', marginTop: '4px', color: '#ff4d4f' }}>\n {errorMessage}\n </div>\n )}\n </SelectWrapper>\n )\n}) as <T extends object>(props: SelectProps<T> & { ref?: React.Ref<HTMLButtonElement> }) => React.ReactElement\n\n// 为 Select 组件添加静态属性类型\ninterface SelectComponent {\n <T extends object>(props: SelectProps<T> & { ref?: React.Ref<HTMLButtonElement> }): React.ReactElement\n /**\n * 选项组件\n * \n * @example\n * ```tsx\n * <Select>\n * <Select.Item key=\"apple\">苹果</Select.Item>\n * <Select.Item key=\"banana\">香蕉</Select.Item>\n * </Select>\n * ```\n */\n Item: typeof Item\n /**\n * 分组组件\n * \n * @example\n * ```tsx\n * <Select>\n * <Select.Section title=\"水果\">\n * <Select.Item key=\"apple\">苹果</Select.Item>\n * </Select.Section>\n * </Select>\n * ```\n */\n Section: typeof Section\n}\n\n/**\n * Select 选择器组件\n * \n * 基于 react-aria 实现的无障碍选择器\n * 支持单选和多选模式\n * \n * @example 使用 options(推荐)\n * ```tsx\n * <Select\n * options={[\n * { value: 'apple', label: '苹果' },\n * { value: 'banana', label: '香蕉' },\n * ]}\n * onSelectionChange={(key) => console.log(key)}\n * />\n * ```\n * \n * @example 使用 Select.Item\n * ```tsx\n * const { Item } = Select\n * \n * <Select>\n * <Item key=\"apple\">苹果</Item>\n * <Item key=\"banana\">香蕉</Item>\n * </Select>\n * ```\n */\nexport const Select = SelectInner as SelectComponent\n\n// 挂载静态属性\nSelect.Item = Item\nSelect.Section = Section\n","/**\n * Table 样式定义\n * \n * 基于 Figma 设计稿的表格样式实现\n */\n\nimport styled from '@emotion/styled'\nimport { css } from '@emotion/react'\nimport type { AppTheme } from '@kingsoft-ai/theme'\n\n// ============================================================================\n// 类型定义\n// ============================================================================\n\nexport const tableSizes = ['sm', 'md', 'lg'] as const\nexport type TableSize = (typeof tableSizes)[number]\n\nexport const tableVariants = ['default', 'bordered', 'striped'] as const\nexport type TableVariant = (typeof tableVariants)[number]\n\nconst tableBorderRadiusMap: Record<TableSize, number> = {\n sm: 4,\n md: 4,\n lg: 6,\n}\n\nconst getTableRadius = (size?: TableSize) => `${tableBorderRadiusMap[size ?? 'md']}px`\n\n// ============================================================================\n// 容器样式\n// ============================================================================\n\nexport const TableContainer = styled.div<{\n size?: TableSize\n fullWidth?: boolean\n scrollX?: number | string\n scrollY?: number | string\n showScrollbar?: boolean\n}>`\n width: ${props => props.fullWidth ? '100%' : 'auto'};\n overflow: auto;\n /* 移除边框,设计稿中表格没有外围边框 */\n scrollbar-width: ${props => props.showScrollbar ? 'thin' : 'none'};\n scrollbar-color: ${({ theme }) => (theme as AppTheme).semantic.colors.border.primary} transparent;\n border-top-left-radius: ${props => getTableRadius(props.size)};\n border-top-right-radius: ${props => getTableRadius(props.size)};\n \n &::-webkit-scrollbar {\n width: ${props => props.showScrollbar ? '8px' : '0px'};\n height: ${props => props.showScrollbar ? '8px' : '0px'};\n }\n\n &::-webkit-scrollbar-thumb {\n background-color: ${({ theme }) => (theme as AppTheme).semantic.colors.border.primary};\n border-radius: 999px;\n }\n\n &::-webkit-scrollbar-track {\n background: transparent;\n }\n \n ${props => props.scrollX && css`\n max-width: ${typeof props.scrollX === 'number' ? `${props.scrollX}px` : props.scrollX};\n `}\n \n ${props => props.scrollY && css`\n max-height: ${typeof props.scrollY === 'number' ? `${props.scrollY}px` : props.scrollY};\n `}\n`\n\n// ============================================================================\n// Table 根元素\n// ============================================================================\n\nexport const StyledTable = styled.table<{\n size?: TableSize\n variant?: TableVariant\n scrollX?: number | string\n}>`\n width: 100%;\n ${props => props.scrollX && css`\n min-width: ${typeof props.scrollX === 'number' ? `${props.scrollX}px` : props.scrollX};\n `}\n border-collapse: separate;\n border-spacing: 0;\n /* 调整基础字体为 12px */\n font-family: ${({ theme }) => (theme as AppTheme).semantic.typography.component.fontSizeSm};\n background-color: ${({ theme }) => (theme as AppTheme).semantic.colors.background.surface};\n \n ${props => props.variant === 'bordered' && css`\n border: 1px solid ${(props.theme as AppTheme).semantic.colors.border.primary};\n border-radius: ${getTableRadius(props.size)} ${getTableRadius(props.size)} 0 0;\n `}\n\n ${props => props.variant === 'striped' && css`\n tbody tr:nth-of-type(even) {\n --row-bg: ${(props.theme as AppTheme).semantic.colors.background.surfaceSubtle};\n }\n `}\n`\n\n// ============================================================================\n// 表头样式\n// ============================================================================\n\nexport const TableHeader = styled.thead`\n background-color: ${({ theme }) => (theme as AppTheme).semantic.colors.background.surfaceSubtle};\n position: sticky;\n top: 0;\n z-index: 10;\n`\n\nexport const TableHeaderRow = styled.tr`\n border-bottom: 1px solid ${({ theme }) => (theme as AppTheme).semantic.colors.border.primary};\n`\n\nexport const TableHeaderCell = styled.th<{\n size?: TableSize\n sortable?: boolean\n fixed?: 'left' | 'right'\n align?: 'left' | 'center' | 'right'\n width?: number | string\n}>`\n padding: ${props => {\n switch (props.size) {\n case 'sm': return '8px 12px'\n case 'lg': return '16px 16px'\n case 'md':\n default: return '12px 16px'\n }\n }};\n text-align: ${props => props.align || 'left'};\n font-weight: 400; /* Regular font weight based on design (H9/H11) */\n font-size: 12px; /* Explicitly 12px based on design */\n color: ${({ theme }) => (theme as AppTheme).semantic.colors.text.caption}; /* Use caption color for headers */\n white-space: nowrap;\n user-select: none;\n position: ${props => props.fixed ? 'sticky' : 'static'};\n background-color: ${({ theme }) => (theme as AppTheme).semantic.colors.background.surfaceSubtle};\n \n ${props => props.width && css`\n width: ${typeof props.width === 'number' ? `${props.width}px` : props.width};\n `}\n\n ${props => props.fixed === 'left' && css`\n left: 0;\n z-index: 11;\n /* 调整固定列阴影,使其更柔和 */\n box-shadow: 4px 0 8px -4px rgba(0, 0, 0, 0.1);\n `}\n\n ${props => props.fixed === 'right' && css`\n right: 0;\n z-index: 11;\n box-shadow: -4px 0 8px -4px rgba(0, 0, 0, 0.1);\n `}\n\n ${props => props.sortable && css`\n cursor: pointer;\n transition: background-color 0.15s ease;\n\n &:hover {\n background-color: ${(props.theme as AppTheme).semantic.colors.background.surfaceStrong};\n }\n `}\n\n &:first-of-type {\n border-top-left-radius: ${props => getTableRadius(props.size)};\n }\n\n &:last-of-type {\n border-top-right-radius: ${props => getTableRadius(props.size)};\n }\n`\n\nexport const SortIndicator = styled.span<{ direction?: 'asc' | 'desc' | null }>`\n display: inline-flex;\n flex-direction: column;\n align-items: center;\n justify-content: center;\n margin-left: 4px;\n line-height: 1;\n gap: 2px;\n\n svg {\n width: 12px;\n height: 12px;\n color: ${({ theme }) => (theme as AppTheme).semantic.colors.text.disabled};\n transition: color 0.2s ease, opacity 0.2s ease;\n opacity: 0.4;\n }\n\n svg[data-active='true'] {\n color: ${({ theme }) => (theme as AppTheme).semantic.colors.brand.primary};\n opacity: 1;\n }\n`\n\n// ============================================================================\n// 表体样式\n// ============================================================================\n\nexport const TableBody = styled.tbody``\n\nexport const TableRow = styled.tr<{\n selectable?: boolean\n selected?: boolean\n expandable?: boolean\n expanded?: boolean\n isSubRow?: boolean\n level?: number\n}>`\n /* 定义背景色变量,用于同步固定列的背景 */\n --row-bg: ${({ theme }) => (theme as AppTheme).semantic.colors.background.surface};\n\n ${props => props.isSubRow && css`\n --row-bg: ${(props.theme as AppTheme).semantic.colors.background.surfaceSubtle};\n `}\n\n ${props => props.selected && css`\n --row-bg: ${(props.theme as AppTheme).semantic.colors.brand.primarySubtle};\n `}\n\n background-color: var(--row-bg);\n transition: background-color 0.15s ease;\n\n /* 将边框移动到单元格上,确保在 separate 模式下显示且连续 */\n & > td {\n border-bottom: 1px solid ${({ theme }) => (theme as AppTheme).semantic.colors.border.primary};\n }\n\n &:last-of-type > td {\n border-bottom: none;\n }\n\n ${props => (props.selectable || props.expandable) && css`\n cursor: pointer;\n `}\n\n ${props => css`\n &:hover {\n --row-bg: ${props.selected\n ? ((props.theme as AppTheme).semantic.colors.brand.primarySubtle)\n : ((props.theme as AppTheme).semantic.colors.background.surfaceSubtle)};\n }\n\n &:active {\n --row-bg: ${props.selected\n ? ((props.theme as AppTheme).semantic.colors.brand.primarySubtle)\n : ((props.theme as AppTheme).semantic.colors.background.surfaceStrong)};\n }\n `}\n`\n\nexport const TableCell = styled.td<{\n size?: TableSize\n fixed?: 'left' | 'right'\n align?: 'left' | 'center' | 'right'\n width?: number | string\n level?: number\n}>`\n padding: ${props => {\n switch (props.size) {\n case 'sm': return '8px 12px'\n case 'lg': return '16px 16px'\n case 'md':\n default: return '12px 16px'\n }\n }};\n \n ${props => props.level && props.level > 0 && css`\n padding-left: ${16 + props.level * 24}px;\n `}\n \n text-align: ${props => props.align || 'left'};\n font-size: 12px; /* Explicitly 12px */\n color: ${({ theme }) => (theme as AppTheme).semantic.colors.text.primary};\n position: ${props => props.fixed ? 'sticky' : 'static'};\n /* 使用变量确保固定列背景与行背景同步,且不透明 */\n background-color: ${props => props.fixed \n ? 'var(--row-bg, inherit)' \n : 'inherit'};\n transition: background-color 0.15s ease;\n \n ${props => props.width && css`\n width: ${typeof props.width === 'number' ? `${props.width}px` : props.width};\n `}\n\n ${props => props.fixed === 'left' && css`\n left: 0;\n z-index: 9;\n box-shadow: 4px 0 8px -4px rgba(0, 0, 0, 0.1);\n `}\n\n ${props => props.fixed === 'right' && css`\n right: 0;\n z-index: 9;\n box-shadow: -4px 0 8px -4px rgba(0, 0, 0, 0.1);\n `}\n`\n\n// ============================================================================\n// 辅助组件样式\n// ============================================================================\n\nexport const CheckboxCell = styled.div`\n display: flex;\n align-items: center;\n justify-content: center;\n width: 40px;\n`\n\nexport const ExpandButton = styled.button<{ expanded?: boolean }>`\n display: inline-flex;\n align-items: center;\n justify-content: center;\n width: 20px;\n height: 20px;\n border: none;\n background: transparent;\n cursor: pointer;\n padding: 0;\n margin-right: 8px;\n color: ${({ theme }) => (theme as AppTheme).semantic.colors.text.tertiary};\n transition: transform 0.15s ease, color 0.15s ease;\n\n &:hover {\n color: ${({ theme }) => (theme as AppTheme).semantic.colors.text.primary};\n }\n\n svg {\n width: 16px;\n height: 16px;\n transform: ${props => props.expanded ? 'rotate(90deg)' : 'none'};\n }\n`\n\nexport const EmptyState = styled.div`\n padding: 48px 24px;\n text-align: center;\n color: ${({ theme }) => (theme as AppTheme).semantic.colors.text.tertiary};\n font-size: 12px;\n`\n\nexport const CellContent = styled.div<{\n ellipsis?: boolean\n wrapText?: boolean\n}>`\n ${props => props.ellipsis && css`\n overflow: hidden;\n text-overflow: ellipsis;\n white-space: nowrap;\n `}\n\n ${props => props.wrapText && css`\n white-space: normal;\n word-break: break-word;\n `}\n`\n","import { forwardRef, useState, useCallback, useMemo, useEffect, useRef, type ReactNode } from 'react'\nimport { Checkbox } from '../checkbox'\nimport { Radio } from '../radio'\nimport { ChevronUpOutline, ChevronDownOutline, ChevronRightOutline } from '@kingsoft-ai/icons'\nimport {\n TableContainer,\n StyledTable,\n TableHeader,\n TableHeaderRow,\n TableHeaderCell,\n TableBody,\n TableRow,\n TableCell,\n CheckboxCell,\n ExpandButton,\n EmptyState,\n CellContent,\n SortIndicator,\n tableSizes,\n tableVariants,\n type TableSize,\n type TableVariant,\n} from './Table.style'\n\n// 导出类型供外部使用\nexport type { TableSize, TableVariant } from './Table.style'\n\n// 导出常量供外部使用\nexport const SIZES = tableSizes\nexport const VARIANTS = tableVariants\n\n// ============================================================================\n// 类型定义\n// ============================================================================\n\nexport interface TableColumn<T = any> {\n /** 列唯一标识 */\n key: string\n /** 列标题 */\n title?: ReactNode\n /** 列宽度 */\n width?: number | string\n /** 对齐方式 */\n align?: 'left' | 'center' | 'right'\n /** 是否可排序 */\n sortable?: boolean\n /** 固定列 */\n fixed?: 'left' | 'right'\n /** 自定义渲染 */\n render?: (value: any, record: T, index: number) => ReactNode\n /** 是否省略文本 */\n ellipsis?: boolean\n}\n\nexport interface TableDataSource<T = any> {\n /** 唯一标识 */\n id: string | number\n /** 子数据(用于树形结构) */\n children?: TableDataSource<T>[]\n /** 其他数据字段 */\n [key: string]: any\n}\n\nexport interface TableProps<T extends Record<string, any> = Record<string, any>> {\n /** 列配置 */\n columns: TableColumn<T>[]\n /** 数据源 */\n dataSource: T[]\n /** 表格尺寸 */\n size?: TableSize\n /** 表格变体 */\n variant?: TableVariant\n /** 是否显示边框 */\n bordered?: boolean\n /** 是否全宽 */\n fullWidth?: boolean\n /** 滚动配置 */\n scroll?: {\n /** 横向滚动宽度 */\n x?: number | string\n /** 纵向滚动高度 */\n y?: number | string\n }\n /** 是否可选择 */\n selectable?: boolean\n /** 选择类型 */\n selectionMode?: 'single' | 'multiple'\n /** 选中的行 */\n selectedKeys?: Set<string | number> | 'all'\n /** 选中行变化回调 */\n onSelectionChange?: (keys: Set<string | number> | 'all') => void\n /** 是否可展开 */\n expandable?: boolean\n /** 展开的行 */\n expandedKeys?: Set<string | number>\n /** 展开行变化回调 */\n onExpandChange?: (keys: Set<string | number>) => void\n /** 自定义展开内容 */\n expandedRowRender?: (record: T, index: number) => ReactNode\n /** 排序配置 */\n sortConfig?: {\n key: string\n direction: 'asc' | 'desc' | null\n }\n /** 排序变化回调 */\n onSortChange?: (key: string, direction: 'asc' | 'desc' | null) => void\n /** 行点击事件 */\n onRowClick?: (record: T, index: number) => void\n /** 空数据展示 */\n emptyText?: ReactNode\n /** 自定义类名 */\n className?: string\n /** 是否允许折行 */\n wrapText?: boolean\n /** Loading 状态 */\n loading?: boolean\n}\n\n// ============================================================================\n// Table 组件\n// ============================================================================\n\nfunction TableInner<T extends Record<string, any> = Record<string, any>>(\n {\n columns,\n dataSource,\n size = 'md',\n variant = 'default',\n bordered = false,\n fullWidth = true,\n scroll,\n selectable = false,\n selectionMode = 'multiple',\n selectedKeys: controlledSelectedKeys,\n onSelectionChange,\n expandable = false,\n expandedKeys: controlledExpandedKeys,\n onExpandChange,\n expandedRowRender,\n sortConfig,\n onSortChange,\n onRowClick,\n emptyText = '暂无数据',\n className,\n wrapText = false,\n loading = false,\n }: TableProps<T>,\n ref: React.ForwardedRef<HTMLTableElement>\n) {\n // 内部状态管理\n const [internalSelectedKeys, setInternalSelectedKeys] = useState<Set<string | number>>(new Set())\n const [internalExpandedKeys, setInternalExpandedKeys] = useState<Set<string | number>>(new Set())\n const [isScrollbarVisible, setIsScrollbarVisible] = useState(false)\n const containerRef = useRef<HTMLDivElement | null>(null)\n const scrollHideTimerRef = useRef<number | null>(null)\n\n // 选中状态\n const selectedKeys = controlledSelectedKeys ?? internalSelectedKeys\n const handleSelectionChange = useCallback((keys: Set<string | number> | 'all') => {\n // 总是将 'all' 转换为包含所有 ID 的 Set,确保外部接收到的是具体的 key 集合\n const newKeys = keys === 'all' ? new Set(dataSource.map(d => d.id)) : keys\n \n if (!controlledSelectedKeys) {\n setInternalSelectedKeys(newKeys)\n }\n onSelectionChange?.(newKeys)\n }, [controlledSelectedKeys, onSelectionChange, dataSource])\n\n // 展开状态\n const expandedKeys = controlledExpandedKeys ?? internalExpandedKeys\n const handleExpandChange = useCallback((key: string | number) => {\n const newKeys = new Set(expandedKeys)\n if (newKeys.has(key)) {\n newKeys.delete(key)\n } else {\n newKeys.add(key)\n }\n if (!controlledExpandedKeys) {\n setInternalExpandedKeys(newKeys)\n }\n onExpandChange?.(newKeys)\n }, [expandedKeys, controlledExpandedKeys, onExpandChange])\n\n // 排序处理\n const handleSort = useCallback((key: string) => {\n if (!onSortChange) return\n \n let newDirection: 'asc' | 'desc' | null = 'asc'\n \n // 如果当前是该列且正在排序\n if (sortConfig?.key === key) {\n if (sortConfig.direction === 'asc') {\n newDirection = 'desc'\n } else if (sortConfig.direction === 'desc') {\n // 从降序切换到取消排序\n newDirection = null\n }\n }\n \n onSortChange(key, newDirection)\n }, [sortConfig, onSortChange])\n\n // 全选状态计算\n const allSelected = useMemo(() => {\n if (!selectable || selectionMode === 'single') return false\n if (selectedKeys === 'all') return true\n if (dataSource.length === 0) return false\n return dataSource.every(record => selectedKeys.has(record.id))\n }, [selectable, selectionMode, selectedKeys, dataSource])\n\n const indeterminate = useMemo(() => {\n if (!selectable || selectionMode === 'single' || selectedKeys === 'all') return false\n if (dataSource.length === 0) return false\n const selectedCount = dataSource.filter(record => selectedKeys.has(record.id)).length\n return selectedCount > 0 && selectedCount < dataSource.length\n }, [selectable, selectionMode, selectedKeys, dataSource])\n\n // 滚动条显示/隐藏\n useEffect(() => {\n const container = containerRef.current\n if (!container) return\n\n const handleScroll = () => {\n setIsScrollbarVisible(true)\n if (scrollHideTimerRef.current) {\n window.clearTimeout(scrollHideTimerRef.current)\n }\n scrollHideTimerRef.current = window.setTimeout(() => {\n setIsScrollbarVisible(false)\n }, 800)\n }\n\n container.addEventListener('scroll', handleScroll, { passive: true })\n\n return () => {\n container.removeEventListener('scroll', handleScroll)\n if (scrollHideTimerRef.current) {\n window.clearTimeout(scrollHideTimerRef.current)\n }\n }\n }, [])\n\n // 渲染行数据(包含树形结构)\n const renderRows = useCallback((\n data: T[],\n level = 0\n ): React.ReactNode[] => {\n return data.flatMap((record, index) => {\n const isExpanded = expandedKeys.has(record.id)\n const isSelected = selectedKeys instanceof Set && selectedKeys.has(record.id)\n const hasChildren = record.children && record.children.length > 0\n\n const mainRow = (\n <TableRow\n key={record.id}\n selectable={selectable}\n selected={isSelected}\n expandable={expandable}\n expanded={isExpanded}\n level={level}\n onClick={() => {\n if (selectable && selectionMode === 'single') {\n handleSelectionChange(new Set([record.id]))\n }\n onRowClick?.(record, index)\n }}\n >\n {selectable && (\n <TableCell\n key=\"selection-column\"\n size={size}\n width={48}\n align=\"center\"\n >\n <CheckboxCell onClick={(e) => e.stopPropagation()}>\n {selectionMode === 'single' ? (\n <Radio\n checked={isSelected}\n onChange={() => {\n handleSelectionChange(new Set([record.id]))\n }}\n />\n ) : (\n <Checkbox\n checked={isSelected}\n onChange={(checked) => {\n const newKeys = new Set(selectedKeys === 'all' ? dataSource.map(d => d.id) : selectedKeys)\n if (checked) {\n newKeys.add(record.id)\n } else {\n newKeys.delete(record.id)\n }\n handleSelectionChange(newKeys)\n }}\n />\n )}\n </CheckboxCell>\n </TableCell>\n )}\n {columns.map((column, colIndex) => {\n const value = record[column.key]\n const isFirstColumn = colIndex === 0\n\n return (\n <TableCell\n key={column.key}\n size={size}\n fixed={column.fixed}\n align={column.align}\n width={column.width}\n level={isFirstColumn ? level : 0}\n >\n <div style={{ display: 'flex', alignItems: 'center' }}>\n {isFirstColumn && expandable && hasChildren && (\n <ExpandButton\n expanded={isExpanded}\n onClick={(e) => {\n e.stopPropagation()\n handleExpandChange(record.id)\n }}\n aria-label={isExpanded ? '收起' : '展开'}\n >\n <ChevronRightOutline />\n </ExpandButton>\n )}\n \n <CellContent ellipsis={column.ellipsis} wrapText={wrapText}>\n {column.render ? column.render(value, record, index) : value}\n </CellContent>\n </div>\n </TableCell>\n )\n })}\n </TableRow>\n )\n\n const expandedRow = isExpanded && expandedRowRender && (\n <TableRow key={`${record.id}-expanded`} isSubRow>\n <TableCell colSpan={columns.length + (selectable ? 1 : 0)} size={size}>\n {expandedRowRender(record, index)}\n </TableCell>\n </TableRow>\n )\n\n const childRows = isExpanded && hasChildren\n ? renderRows(record.children as T[], level + 1)\n : []\n\n return [mainRow, expandedRow, ...childRows].filter(Boolean)\n })\n }, [\n columns,\n size,\n expandable,\n expandedKeys,\n selectedKeys,\n selectable,\n selectionMode,\n expandedRowRender,\n wrapText,\n handleExpandChange,\n handleSelectionChange,\n onRowClick,\n ])\n\n if (dataSource.length === 0 && !loading) {\n return (\n <TableContainer \n size={size}\n ref={containerRef}\n fullWidth={fullWidth} \n scrollX={scroll?.x}\n scrollY={scroll?.y}\n showScrollbar={isScrollbarVisible}\n className={className}\n >\n <EmptyState>{emptyText}</EmptyState>\n </TableContainer>\n )\n }\n\n return (\n <TableContainer \n size={size}\n ref={containerRef}\n fullWidth={fullWidth} \n scrollX={scroll?.x}\n scrollY={scroll?.y}\n showScrollbar={isScrollbarVisible}\n className={className}\n >\n <StyledTable \n ref={ref} \n size={size} \n variant={bordered ? 'bordered' : variant}\n scrollX={scroll?.x}\n >\n <TableHeader>\n <TableHeaderRow>\n {selectable && (\n <TableHeaderCell\n key=\"selection-column\"\n size={size}\n width={48}\n align=\"center\"\n >\n {selectionMode === 'multiple' && (\n <CheckboxCell>\n <Checkbox\n checked={allSelected}\n indeterminate={indeterminate}\n onChange={(checked) => {\n handleSelectionChange(checked ? 'all' : new Set())\n }}\n />\n </CheckboxCell>\n )}\n </TableHeaderCell>\n )}\n {columns.map((column) => (\n <TableHeaderCell\n key={column.key}\n size={size}\n fixed={column.fixed}\n align={column.align}\n width={column.width}\n sortable={column.sortable}\n onClick={() => column.sortable && handleSort(column.key)}\n >\n <div style={{ display: 'flex', alignItems: 'center', justifyContent: 'space-between', gap: '8px' }}>\n <span>{column.title}</span>\n {column.sortable && (\n <SortIndicator\n direction={sortConfig?.key === column.key ? sortConfig.direction : undefined}\n >\n <ChevronUpOutline data-active={sortConfig?.key === column.key && sortConfig.direction === 'asc'} />\n <ChevronDownOutline data-active={sortConfig?.key === column.key && sortConfig.direction === 'desc'} />\n </SortIndicator>\n )}\n </div>\n </TableHeaderCell>\n ))}\n </TableHeaderRow>\n </TableHeader>\n\n <TableBody>\n {loading ? (\n <TableRow>\n <TableCell colSpan={columns.length + (selectable ? 1 : 0)} size={size}>\n <div style={{ textAlign: 'center', padding: '24px' }}>加载中...</div>\n </TableCell>\n </TableRow>\n ) : (\n renderRows(dataSource)\n )}\n </TableBody>\n </StyledTable>\n </TableContainer>\n )\n}\n\nconst TableWithRef = forwardRef(TableInner) as <T extends Record<string, any> = Record<string, any>>(\n props: TableProps<T> & { ref?: React.ForwardedRef<HTMLTableElement> }\n) => React.ReactElement\n\n;(TableWithRef as any).displayName = 'Table'\n\nexport const Table = TableWithRef\n","import {useControlledState as $d8rik$useControlledState} from \"@react-stately/utils\";\nimport {useState as $d8rik$useState} from \"react\";\n\n/*\n * Copyright 2020 Adobe. All rights reserved.\n * This file is licensed to you under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License. You may obtain a copy\n * of the License at http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software distributed under\n * the License is distributed on an \"AS IS\" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS\n * OF ANY KIND, either express or implied. See the License for the specific language\n * governing permissions and limitations under the License.\n */ \n\nfunction $3017fa7ffdddec74$export$8042c6c013fd5226(props = {}) {\n let { isReadOnly: isReadOnly } = props;\n // have to provide an empty function so useControlledState doesn't throw a fit\n // can't use useControlledState's prop calling because we need the event object from the change\n let [isSelected, setSelected] = (0, $d8rik$useControlledState)(props.isSelected, props.defaultSelected || false, props.onChange);\n let [initialValue] = (0, $d8rik$useState)(isSelected);\n function updateSelected(value) {\n if (!isReadOnly) setSelected(value);\n }\n function toggleState() {\n if (!isReadOnly) setSelected(!isSelected);\n }\n var _props_defaultSelected;\n return {\n isSelected: isSelected,\n defaultSelected: (_props_defaultSelected = props.defaultSelected) !== null && _props_defaultSelected !== void 0 ? _props_defaultSelected : initialValue,\n setSelected: updateSelected,\n toggle: toggleState\n };\n}\n\n\nexport {$3017fa7ffdddec74$export$8042c6c013fd5226 as useToggleState};\n//# sourceMappingURL=useToggleState.module.js.map\n","/**\n * Switch 开关样式\n * \n * 基于三层 Token 体系:\n * - Tier 1 (Global): 全局基础值\n * - Tier 2 (Semantic): 语义化映射\n * - Tier 3 (Component): 组件专用 Token\n * \n * 完全还原 Figma 设计稿规范\n * 支持带文字的开关组件(如 ON/OFF、开/关)\n */\n\nimport styled from '@emotion/styled'\nimport { css } from '@emotion/react'\nimport type { AppTheme } from '@kingsoft-ai/theme'\n\n// ============================================================================\n// 类型定义\n// ============================================================================\n\nexport const switchSizes = ['sm', 'md'] as const\nexport type SwitchSize = (typeof switchSizes)[number]\n\n// ============================================================================\n// 辅助函数\n// ============================================================================\n\n/**\n * 获取尺寸样式\n * 使用 Tier 3 组件层尺寸 Token\n */\nconst getSizeStyles = (size: SwitchSize, theme: AppTheme) => {\n const sizeToken = theme.components.switch.size[size]\n\n return css`\n /* 提供尺寸相关的 CSS 变量,方便内部元素计算占位 */\n --switch-thumb-size: ${sizeToken.thumbSize};\n --switch-inner-gap: ${theme.components.switch.gap};\n\n min-width: ${sizeToken.width};\n height: ${sizeToken.height};\n font-size: ${sizeToken.fontSize};\n\n /* 滑块尺寸 - 使用后代选择器 */\n & span[data-thumb] {\n width: ${sizeToken.thumbSize};\n height: ${sizeToken.thumbSize};\n }\n `\n}\n\n// ============================================================================\n// 样式组件\n// ============================================================================\n\n/**\n * Switch 根元素(label 标签)\n * \n * 特性:\n * - 基于三层 Token 设计\n * - 完整的交互状态(hover, focus, disabled)\n * - 支持带文字的开关\n * - 平滑的动画过渡\n */\nexport const SwitchRoot = styled.label<{\n size: SwitchSize\n isSelected: boolean\n isDisabled: boolean\n isFocusVisible: boolean\n hasInnerLabel: boolean\n}>`\n /* 基础布局 */\n position: relative;\n display: inline-flex;\n align-items: center;\n box-sizing: border-box;\n cursor: ${({ isDisabled }) => (isDisabled ? 'not-allowed' : 'pointer')};\n user-select: none;\n \n /* 背景和圆角 - 使用 Tier 3 Token */\n background: ${({ isSelected, isDisabled, theme }) =>\n isDisabled\n ? theme.components.switch.background.disabled\n : isSelected\n ? theme.components.switch.background.checked\n : theme.components.switch.background.unchecked};\n border-radius: ${({ theme }) => theme.components.switch.borderRadius};\n \n /* \n * 内边距 - 根据 Figma 设计:\n * - 有文字时:选中状态左8px右3px,未选中状态左3px右8px\n * - 无文字时:始终左右各3px\n * - 上下始终3px\n */\n padding: 3px;\n ${({ hasInnerLabel, isSelected }) => {\n if (!hasInnerLabel) {\n // 无文字时,左右都是 3px\n return css`\n padding-left: 3px;\n padding-right: 3px;\n `\n }\n // 有文字时,根据选中状态调整\n return css`\n padding-left: ${isSelected ? '8px' : '3px'};\n padding-right: ${isSelected ? '3px' : '8px'};\n `\n }}\n \n /* 过渡动画 - 只对背景色做动画,padding 瞬间切换以配合滑块动画 */\n transition: background-color ${({ theme }) => theme.components.switch.transition};\n \n /* 尺寸样式 */\n ${({ size, theme }) => getSizeStyles(size, theme)}\n \n /* Focus 可见状态 - 键盘导航时显示 */\n ${({ isFocusVisible, theme }) =>\n isFocusVisible &&\n css`\n outline: none;\n box-shadow: 0 0 0 ${theme.components.switch.focusRing.offset} ${theme.components.switch.focusRing.color};\n `}\n \n /* 禁用状态 */\n ${({ isDisabled, theme }) =>\n isDisabled &&\n css`\n opacity: ${theme.components.switch.disabled.opacity};\n cursor: not-allowed;\n `}\n`\n\n/**\n * Switch 内容容器\n * \n * 用于布局文字和滑块,确保正确的间距和对齐\n * 根据 Figma 设计,元素间距为 4px\n * \n * 布局策略:\n * - 文字使用相对定位,根据状态调整 justify-content\n * - 滑块使用绝对定位 + left/right 切换实现平滑动画\n */\nexport const SwitchContent = styled.span<{\n isSelected: boolean\n hasInnerLabel: boolean\n}>`\n display: flex;\n align-items: center;\n width: 100%;\n height: 100%;\n position: relative;\n z-index: 1;\n \n /* 当存在内部文字时,为滑块预留占位,避免文字与滑块重叠\n 预留尺寸 = 滑块尺寸 + 设计间距 */\n ${({ hasInnerLabel, isSelected, theme }) =>\n hasInnerLabel &&\n css`\n padding-right: ${isSelected\n ? `calc(var(--switch-thumb-size) + ${theme.components.switch.gap})`\n : '0'};\n padding-left: ${!isSelected\n ? `calc(var(--switch-thumb-size) + ${theme.components.switch.gap})`\n : '0'};\n `}\n \n /* 有文字时,根据选中状态调整文字位置 */\n ${({ hasInnerLabel, isSelected }) =>\n hasInnerLabel &&\n css`\n justify-content: ${isSelected ? 'flex-start' : 'flex-end'};\n `}\n`\n\n/**\n * Switch 文字标签\n * \n * 显示开关状态文字(如 ON/OFF、开/关)\n * 使用 Tier 3 组件层文字 Token\n * \n * 使用相对定位,不影响滑块的绝对定位计算\n */\nexport const SwitchLabel = styled.span<{\n isSelected: boolean\n}>`\n display: inline-flex;\n align-items: center;\n color: ${({ theme }) => theme.components.switch.text.color};\n font-size: ${({ theme }) => theme.components.switch.text.fontSize};\n font-weight: ${({ theme }) => theme.components.switch.text.fontWeight};\n line-height: 1.5;\n white-space: nowrap;\n user-select: none;\n position: relative;\n z-index: 2;\n`\n\n/**\n * Switch 滑块(Thumb)\n * \n * 白色圆形滑块,根据开关状态滑动\n * 使用 Tier 3 组件层滑块 Token\n * \n * 使用绝对定位 + transform 实现平滑的位置动画\n * 根据 Figma 设计:\n * - 未选中时:left: 0(紧贴左边缘,实际距离容器边缘 3px)\n * - 选中时:right: 0(紧贴右边缘,实际距离容器边缘 3px)\n */\nexport const SwitchThumb = styled.span<{\n isSelected: boolean\n}>`\n display: block;\n position: absolute;\n top: 50%;\n transform: translateY(-50%);\n border-radius: 50%;\n background: ${({ theme }) => theme.components.switch.thumb.background};\n box-shadow: ${({ theme }) => theme.components.switch.thumb.shadow};\n \n /* 位置控制:未选中在左,选中在右 */\n ${({ isSelected }) =>\n isSelected\n ? css`\n right: 0;\n left: auto;\n `\n : css`\n left: 0;\n right: auto;\n `}\n \n /* 平滑的位置过渡动画 */\n transition: left ${({ theme }) => theme.components.switch.transition},\n right ${({ theme }) => theme.components.switch.transition};\n`\n\n/**\n * 外部标签容器\n * \n * 用于在 Switch 外部显示描述性标签\n */\nexport const SwitchLabelWrapper = styled.div`\n display: flex;\n align-items: center;\n gap: 8px;\n`\n\n/**\n * 外部标签文字\n * \n * Switch 旁边的描述性文字\n */\nexport const SwitchLabelText = styled.span<{\n isDisabled: boolean\n}>`\n font-size: ${({ theme }) => theme.global.typography.fontSize.sm};\n color: ${({ isDisabled, theme }) =>\n isDisabled\n ? theme.semantic.colors.text.disabled\n : theme.semantic.colors.text.primary};\n user-select: none;\n cursor: ${({ isDisabled }) => (isDisabled ? 'not-allowed' : 'pointer')};\n`\n\n","/**\n * Switch 开关组件\n * \n * 基于 react-aria 实现无障碍访问的开关组件\n * 完全符合 Figma 设计稿规范\n * 支持带文字的开关(如 ON/OFF、开/关)\n * \n * @example\n * ```tsx\n * // 基础用法\n * <Switch>开启通知</Switch>\n * \n * // 带状态文字\n * <Switch \n * checkedLabel=\"开\" \n * uncheckedLabel=\"关\"\n * >\n * 夜间模式\n * </Switch>\n * \n * // 受控组件\n * <Switch \n * isSelected={enabled} \n * onChange={setEnabled}\n * >\n * 自动保存\n * </Switch>\n * ```\n */\n\nimport { forwardRef, useRef } from 'react'\nimport type { ReactNode } from 'react'\nimport { useSwitch, useFocusRing, VisuallyHidden } from 'react-aria'\nimport type { AriaSwitchProps } from 'react-aria'\nimport { useToggleState } from '@react-stately/toggle'\nimport type { ToggleProps } from '@react-types/checkbox'\nimport { mergeProps } from '@react-aria/utils'\nimport {\n SwitchRoot,\n SwitchContent,\n SwitchLabel,\n SwitchThumb,\n SwitchLabelWrapper,\n SwitchLabelText,\n switchSizes,\n type SwitchSize,\n} from './Switch.style'\n\n// 导出常量供外部使用\nexport const SIZES = switchSizes\n\nexport type SwitchProps = Omit<AriaSwitchProps, 'children' | 'isDisabled'> & \n Omit<ToggleProps, 'children' | 'isDisabled'> & {\n /** 开关尺寸:小号(20px)、标准(24px) */\n size?: SwitchSize\n /** 选中状态的文字标签(显示在开关内部) */\n checkedLabel?: string\n /** 未选中状态的文字标签(显示在开关内部) */\n uncheckedLabel?: string\n /** 是否禁用(替代 isDisabled) */\n disabled?: boolean\n /** 外部描述性标签(显示在开关旁边) */\n children?: ReactNode\n /** 自定义类名 */\n className?: string\n}\n\n/**\n * Switch 开关组件\n * \n * 基于 Figma 设计规范实现的开关组件,支持带文字的开关\n * 使用 react-aria 保证无障碍访问性\n */\nexport const Switch = forwardRef<HTMLInputElement, SwitchProps>(\n (\n {\n size = 'md',\n checkedLabel,\n uncheckedLabel,\n disabled = false,\n children,\n className,\n ...props\n },\n forwardedRef,\n ) => {\n // 使用 react-stately 管理开关状态\n const state = useToggleState(props)\n const innerRef = useRef<HTMLInputElement>(null)\n const ref = forwardedRef || innerRef\n\n // 使用 react-aria 的 useSwitch hook 获取无障碍属性\n const { inputProps } = useSwitch(\n {\n ...props,\n isDisabled: disabled,\n },\n state,\n innerRef,\n )\n\n // 使用 useFocusRing 处理键盘焦点样式\n const { isFocusVisible, focusProps } = useFocusRing()\n\n // 当前显示的标签文字\n const currentLabel = state.isSelected ? checkedLabel : uncheckedLabel\n \n // 是否有内部文字标签\n const hasInnerLabel = Boolean(checkedLabel || uncheckedLabel)\n\n // Switch 主体\n const switchElement = (\n <SwitchRoot\n size={size}\n isSelected={state.isSelected}\n isDisabled={disabled}\n isFocusVisible={isFocusVisible}\n hasInnerLabel={hasInnerLabel}\n className={className}\n data-selected={state.isSelected ? 'true' : undefined}\n data-disabled={disabled ? 'true' : undefined}\n >\n {/* 隐藏的原生 input,用于无障碍访问 */}\n <VisuallyHidden>\n <input\n {...mergeProps(inputProps, focusProps)}\n ref={ref}\n />\n </VisuallyHidden>\n\n {/* 开关内容:文字 + 滑块 */}\n <SwitchContent isSelected={state.isSelected} hasInnerLabel={hasInnerLabel}>\n {/* 滑块 - 使用绝对定位,始终渲染 */}\n <SwitchThumb\n isSelected={state.isSelected}\n data-thumb\n aria-hidden=\"true\"\n />\n \n {/* 内部状态文字(如果有) - 相对定位,在滑块上方 */}\n {hasInnerLabel && currentLabel && (\n <SwitchLabel isSelected={state.isSelected}>\n {currentLabel}\n </SwitchLabel>\n )}\n </SwitchContent>\n </SwitchRoot>\n )\n\n // 如果有外部标签,使用 wrapper 包装\n if (children) {\n return (\n <SwitchLabelWrapper>\n {switchElement}\n <SwitchLabelText\n isDisabled={disabled}\n onClick={() => {\n if (!disabled) {\n state.toggle()\n }\n }}\n >\n {children}\n </SwitchLabelText>\n </SwitchLabelWrapper>\n )\n }\n\n return switchElement\n },\n)\n\nSwitch.displayName = 'Switch'\n\n","/**\n * Upload 上传组件样式\n * \n * 基于三层 Token 体系:\n * - Tier 1 (Global): 全局基础值\n * - Tier 2 (Semantic): 语义化映射\n * - Tier 3 (Component): 组件专用 Token\n * \n * 完全还原 Figma 设计稿规范\n */\n\nimport styled from '@emotion/styled'\nimport { css } from '@emotion/react'\n\n// ============================================================================\n// 类型定义\n// ============================================================================\n\nexport const uploadStatuses = ['idle', 'uploading', 'success', 'error'] as const\nexport type UploadStatus = (typeof uploadStatuses)[number]\n\n// ============================================================================\n// 上传区域样式\n// ============================================================================\n\n/**\n * 上传区域容器\n */\nexport const UploadRoot = styled.div`\n width: 100%;\n`\n\n/**\n * 拖拽区域\n */\nexport const UploadDropzone = styled.div<{\n isDragActive: boolean\n isDisabled: boolean\n}>`\n position: relative;\n display: flex;\n flex-direction: column;\n align-items: center;\n justify-content: center;\n gap: 24px;\n padding: 40px 0;\n border: 1px solid ${({ theme, isDragActive }) => \n isDragActive ? theme.semantic.colors.brand.primary : theme.semantic.colors.border.primary};\n border-radius: 16px;\n background: ${({ theme, isDragActive }) => \n isDragActive ? '#EEF6FD' : theme.semantic.colors.background.surface};\n cursor: ${({ isDisabled }) => (isDisabled ? 'not-allowed' : 'pointer')};\n transition: all 0.2s ease;\n outline: none;\n\n ${({ isDisabled, theme }) =>\n !isDisabled &&\n css`\n &:hover {\n border-color: ${theme.semantic.colors.brand.primary};\n }\n\n &:focus-visible {\n border-color: ${theme.semantic.colors.brand.primary};\n box-shadow: 0 0 0 4px rgba(44, 111, 231, 0.18);\n }\n `}\n\n ${({ isDisabled, theme }) =>\n isDisabled &&\n css`\n opacity: 0.5;\n background: ${theme.semantic.colors.background.secondary};\n `}\n`\n\n/**\n * 上传图标容器\n */\nexport const UploadIconWrapper = styled.div`\n width: 100px;\n height: 100px;\n display: flex;\n align-items: center;\n justify-content: center;\n`\n\n/**\n * 上传提示文本容器\n */\nexport const UploadTextWrapper = styled.div`\n display: flex;\n flex-direction: column;\n align-items: center;\n gap: 4px;\n width: 100%;\n font-family: ${({ theme }) => theme.global.typography.fontFamily};\n`\n\n/**\n * 主要提示文本\n */\nexport const UploadMainText = styled.div`\n font-size: 14px;\n line-height: 20px;\n color: ${({ theme }) => theme.semantic.colors.text.primary};\n text-align: center;\n width: 100%;\n`\n\n/**\n * 次要提示文本\n */\nexport const UploadSecondaryText = styled.p`\n font-size: 12px;\n line-height: 18px;\n color: rgba(10, 24, 51, 0.4);\n margin: 0;\n white-space: pre;\n`\n\n/**\n * 链接文本\n */\nexport const UploadLink = styled.span`\n color: ${({ theme }) => theme.semantic.colors.brand.primary};\n cursor: pointer;\n \n &:hover {\n text-decoration: underline;\n }\n`\n\n// ============================================================================\n// 文件列表样式\n// ============================================================================\n\n/**\n * 文件列表容器\n */\nexport const FileList = styled.div`\n display: flex;\n flex-direction: column;\n gap: 16px;\n margin-top: 16px;\n width: 100%;\n`\n\n/**\n * 文件项容器\n */\nexport const FileItem = styled.div<{\n status: UploadStatus\n}>`\n display: flex;\n flex-direction: column;\n gap: 0;\n width: 100%;\n`\n\n/**\n * 文件信息行\n */\nexport const FileInfoRow = styled.div<{\n status: UploadStatus\n}>`\n display: flex;\n align-items: center;\n gap: 8px;\n padding: 7px 8px;\n border-radius: 4px;\n background: ${({ status, theme }) => {\n if (status === 'success') return '#FAFAFB'\n if (status === 'error') return '#FEF6F1'\n return theme.semantic.colors.background.surface\n }};\n flex: 1;\n`\n\n/**\n * 文件图标\n */\nexport const FileIcon = styled.span`\n display: inline-flex;\n align-items: center;\n justify-content: center;\n width: 16px;\n height: 16px;\n flex-shrink: 0;\n color: ${({ theme }) => theme.semantic.colors.text.primary};\n`\n\n/**\n * 文件名\n */\nexport const FileName = styled.div<{\n status: UploadStatus\n}>`\n flex: 1;\n font-family: ${({ theme }) => theme.global.typography.fontFamily};\n font-size: 12px;\n line-height: 18px;\n color: ${({ status, theme }) => {\n if (status === 'error') return theme.semantic.colors.state.danger\n return theme.semantic.colors.text.primary\n }};\n overflow: hidden;\n text-overflow: ellipsis;\n white-space: nowrap;\n`\n\n/**\n * 状态图标\n */\nexport const StatusIcon = styled.span<{\n status: UploadStatus\n}>`\n display: inline-flex;\n align-items: center;\n justify-content: center;\n width: 16px;\n height: 16px;\n flex-shrink: 0;\n color: ${({ status, theme }) => {\n if (status === 'success') return theme.semantic.colors.state.success\n if (status === 'error') return theme.semantic.colors.state.danger\n return theme.semantic.colors.text.secondary\n }};\n`\n\n/**\n * 删除按钮\n */\nexport const DeleteButton = styled.button`\n display: inline-flex;\n align-items: center;\n justify-content: center;\n width: 16px;\n height: 16px;\n padding: 0;\n border: none;\n background: transparent;\n color: ${({ theme }) => theme.semantic.colors.text.secondary};\n cursor: pointer;\n flex-shrink: 0;\n transition: color 0.2s ease;\n\n &:hover {\n color: ${({ theme }) => theme.semantic.colors.text.primary};\n }\n\n &:focus-visible {\n outline: 2px solid ${({ theme }) => theme.semantic.colors.brand.primary};\n outline-offset: 2px;\n border-radius: 2px;\n }\n`\n\n/**\n * 进度条容器\n */\nexport const ProgressWrapper = styled.div`\n display: flex;\n align-items: center;\n gap: 16px;\n height: 16px;\n margin-top: 0;\n`\n\n/**\n * 进度条轨道\n */\nexport const ProgressTrack = styled.div`\n flex: 1;\n height: 6px;\n background: ${({ theme }) => theme.semantic.colors.background.secondary};\n border-radius: 5px;\n overflow: hidden;\n`\n\n/**\n * 进度条填充\n */\nexport const ProgressBar = styled.div<{\n percent: number\n}>`\n height: 100%;\n width: ${({ percent }) => percent}%;\n background: ${({ theme }) => theme.semantic.colors.brand.primary};\n border-radius: 12px;\n transition: width 0.3s ease;\n`\n\n/**\n * 进度百分比文本\n */\nexport const ProgressText = styled.span`\n font-family: ${({ theme }) => theme.global.typography.fontFamily};\n font-size: 12px;\n line-height: 18px;\n color: ${({ theme }) => theme.semantic.colors.text.secondary};\n white-space: nowrap;\n flex-shrink: 0;\n width: 40px;\n text-align: right;\n`\n\n/**\n * 隐藏的文件输入框\n */\nexport const HiddenInput = styled.input`\n position: absolute;\n width: 1px;\n height: 1px;\n padding: 0;\n margin: -1px;\n overflow: hidden;\n clip: rect(0, 0, 0, 0);\n white-space: nowrap;\n border-width: 0;\n`\n\n","/**\n * Upload 上传组件\n * \n * 基于 react-aria 实现无障碍访问的上传组件\n * 完全符合 Figma 设计稿规范\n * \n * @example\n * ```tsx\n * <Upload\n * accept=\".xls,.xlsx\"\n * maxSize={5 * 1024 * 1024}\n * onChange={(files) => console.log(files)}\n * />\n * ```\n */\n\nimport { forwardRef, useRef, useState, type ReactNode, type ChangeEvent, type DragEvent } from 'react'\nimport { useButton } from 'react-aria'\nimport type { AriaButtonProps } from 'react-aria'\nimport {\n UploadRoot,\n UploadDropzone,\n UploadIconWrapper,\n UploadTextWrapper,\n UploadMainText,\n UploadSecondaryText,\n UploadLink,\n FileList,\n FileItem,\n FileInfoRow,\n FileIcon,\n FileName,\n StatusIcon,\n DeleteButton,\n ProgressWrapper,\n ProgressTrack,\n ProgressBar,\n ProgressText,\n HiddenInput,\n uploadStatuses,\n type UploadStatus,\n} from './Upload.style'\n\n// 导出常量供外部使用\nexport const STATUSES = uploadStatuses\n\nexport interface UploadFile {\n /** 文件唯一标识 */\n uid: string\n /** 文件名 */\n name: string\n /** 文件对象 */\n file?: File\n /** 上传状态 */\n status: UploadStatus\n /** 上传进度 (0-100) */\n percent?: number\n /** 错误信息 */\n error?: string\n}\n\nexport type UploadProps = {\n /** 接受的文件类型 */\n accept?: string\n /** 是否支持多选 */\n multiple?: boolean\n /** 最大文件大小(字节) */\n maxSize?: number\n /** 最大文件数量 */\n maxCount?: number\n /** 是否禁用 */\n disabled?: boolean\n /** 文件列表 */\n fileList?: UploadFile[]\n /** 默认文件列表 */\n defaultFileList?: UploadFile[]\n /** 文件变化回调 */\n onChange?: (fileList: UploadFile[]) => void\n /** 文件上传前的钩子 */\n beforeUpload?: (file: File) => boolean | Promise<boolean>\n /** 自定义上传逻辑 */\n customRequest?: (options: {\n file: File\n onProgress: (percent: number) => void\n onSuccess: () => void\n onError: (error: Error) => void\n }) => void\n /** 主要提示文本 */\n mainText?: ReactNode\n /** 次要提示文本 */\n secondaryText?: ReactNode\n /** 文件类型提示 */\n fileTypeHint?: ReactNode\n /** 下载模板文本 */\n downloadTemplateText?: ReactNode\n /** 下载模板回调 */\n onDownloadTemplate?: () => void\n /** 自定义类名 */\n className?: string\n /** 自定义上传图标 */\n icon?: ReactNode\n}\n\n/**\n * 默认上传图标\n */\nconst DefaultUploadIcon = () => (\n <svg xmlns=\"http://www.w3.org/2000/svg\" width=\"100\" height=\"100\" viewBox=\"0 0 100 100\" fill=\"none\">\n <g clipPath=\"url(#clip0_6955_14967)\">\n <path d=\"M6.25 63.1836L28.525 52.195C28.8475 52.0359 29.2023 51.9531 29.5619 51.9531H70.6424C71.0049 51.9531 71.3625 52.0372 71.687 52.1988L93.75 63.1836V91.4062C93.75 92.7007 92.7007 93.75 91.4062 93.75H8.59375C7.29932 93.75 6.25 92.7007 6.25 91.4062V63.1836Z\" fill=\"#F0F0F0\"/>\n <path d=\"M6.25 63.1836H34.4859C35.7804 63.1836 36.8297 64.2329 36.8297 65.5273V69.8906C36.8297 71.185 37.879 72.2344 39.1734 72.2344H60.7687C62.0632 72.2344 63.1125 71.185 63.1125 69.8906V65.5273C63.1125 64.2329 64.1618 63.1836 65.4562 63.1836H93.75V92.9688C93.75 93.176 93.6677 93.3747 93.5212 93.5212C93.3747 93.6677 93.1759 93.75 92.9688 93.75H7.03125C6.82405 93.75 6.62534 93.6677 6.47882 93.5212C6.33231 93.3747 6.25 93.176 6.25 92.9688V63.1836Z\" fill=\"#FAFAFB\"/>\n <path d=\"M19.1445 39.9733C19.3009 39.41 20.0994 39.41 20.2558 39.9733C20.797 41.9242 22.3218 43.449 24.2727 43.9902C24.836 44.1466 24.836 44.9451 24.2727 45.1015C22.3218 45.6427 20.797 47.1675 20.2558 49.1184C20.0994 49.6817 19.3009 49.6817 19.1445 49.1184C18.6033 47.1675 17.0785 45.6427 15.1276 45.1015C14.5642 44.9451 14.5643 44.1466 15.1276 43.9902C17.0785 43.449 18.6033 41.9242 19.1445 39.9733Z\" fill=\"#F0F0F0\"/>\n <path d=\"M78.1066 35.6488C78.3468 34.7837 79.573 34.7837 79.8132 35.6488C80.6443 38.6449 82.9858 40.9864 85.9819 41.8175C86.8469 42.0577 86.8469 43.2839 85.9819 43.5241C82.9858 44.3552 80.6443 46.6968 79.8132 49.6929C79.573 50.5579 78.3468 50.5579 78.1066 49.6929C77.2755 46.6968 74.9339 44.3552 71.9379 43.5241C71.0728 43.2839 71.0728 42.0577 71.9379 41.8175C74.9339 40.9864 77.2755 38.6449 78.1066 35.6488Z\" fill=\"#F0F0F0\"/>\n <path d=\"M49.0173 14.5685C49.733 13.8105 50.9389 13.8105 51.6547 14.5685L62.8375 26.4101C63.9294 27.5668 63.1096 29.469 61.5188 29.4691H57.591C56.0884 29.4691 54.8704 30.6871 54.8704 32.1897L54.8703 41C54.8703 41.5523 54.4226 42 53.8703 42H46.8015C46.2492 42 45.8015 41.5523 45.8015 41L45.8016 32.1897C45.8016 30.6871 44.5835 29.4691 43.0809 29.4691H39.1532C37.5623 29.4691 36.7424 27.5669 37.8345 26.4101L49.0173 14.5685Z\" fill=\"#F0F0F0\"/>\n </g>\n <defs>\n <clipPath id=\"clip0_6955_14967\">\n <rect width=\"100\" height=\"100\" fill=\"white\"/>\n </clipPath>\n </defs>\n </svg>\n)\n\n/**\n * 文件图标\n */\nconst FileIconSvg = () => (\n <svg width=\"16\" height=\"16\" viewBox=\"0 0 16 16\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\n <path d=\"M9 1H3.5C2.67157 1 2 1.67157 2 2.5V13.5C2 14.3284 2.67157 15 3.5 15H12.5C13.3284 15 14 14.3284 14 13.5V6M9 1L14 6M9 1V6H14\" stroke=\"currentColor\" strokeWidth=\"1.2\" strokeLinecap=\"round\" strokeLinejoin=\"round\" />\n <path d=\"M5 7H7\" stroke=\"currentColor\" strokeWidth=\"1.2\" strokeLinecap=\"round\" />\n <path d=\"M5 10H11\" stroke=\"currentColor\" strokeWidth=\"1.2\" strokeLinecap=\"round\" />\n </svg>\n)\n\n/**\n * 成功图标\n */\nconst SuccessIcon = () => (\n <svg width=\"16\" height=\"16\" viewBox=\"0 0 16 16\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\n <circle cx=\"8\" cy=\"8\" r=\"8\" fill=\"currentColor\" />\n <path d=\"M11.3333 5.5L6.75 10.0833L4.66667 8\" stroke=\"white\" strokeWidth=\"1.5\" strokeLinecap=\"round\" strokeLinejoin=\"round\" />\n </svg>\n)\n\n/**\n * 错误图标\n */\nconst ErrorIcon = () => (\n <svg width=\"16\" height=\"16\" viewBox=\"0 0 16 16\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\n <circle cx=\"8\" cy=\"8\" r=\"8\" fill=\"currentColor\" />\n <path d=\"M10 6L6 10M6 6L10 10\" stroke=\"white\" strokeWidth=\"1.5\" strokeLinecap=\"round\" />\n </svg>\n)\n\n/**\n * 删除图标\n */\nconst DeleteIcon = () => (\n <svg width=\"16\" height=\"16\" viewBox=\"0 0 16 16\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\n <path d=\"M3.5 4.5H12.5M6.5 7V11.5M9.5 7V11.5M10.5 4.5V2.5C10.5 2.22386 10.2761 2 10 2H6C5.72386 2 5.5 2.22386 5.5 2.5V4.5M4.5 4.5H11.5V13C11.5 13.2761 11.2761 13.5 11 13.5H5C4.72386 13.5 4.5 13.2761 4.5 13V4.5Z\" stroke=\"currentColor\" strokeWidth=\"1.2\" strokeLinecap=\"round\" strokeLinejoin=\"round\" />\n </svg>\n)\n\n/**\n * 生成唯一 ID\n */\nconst generateUid = () => `upload-${Date.now()}-${Math.random().toString(36).slice(2, 9)}`\n\n/**\n * Upload 上传组件\n * \n * 基于 Figma 设计规范实现的上传组件,支持拖拽上传和点击上传\n * 使用 react-aria 保证无障碍访问性\n */\nexport const Upload = forwardRef<HTMLDivElement, UploadProps>(\n (\n {\n accept,\n multiple = false,\n maxSize,\n maxCount,\n disabled = false,\n fileList: controlledFileList,\n defaultFileList = [],\n onChange,\n beforeUpload,\n customRequest,\n mainText,\n secondaryText,\n fileTypeHint,\n downloadTemplateText,\n onDownloadTemplate,\n className,\n icon,\n },\n ref\n ) => {\n const inputRef = useRef<HTMLInputElement>(null)\n const dropzoneRef = useRef<HTMLDivElement>(null)\n\n // 内部文件列表状态\n const [internalFileList, setInternalFileList] = useState<UploadFile[]>(defaultFileList)\n const [isDragActive, setIsDragActive] = useState(false)\n\n // 判断是否受控\n const isControlled = controlledFileList !== undefined\n const fileList = isControlled ? controlledFileList : internalFileList\n\n // 更新文件列表\n const updateFileList = (newFileList: UploadFile[]) => {\n if (!isControlled) {\n setInternalFileList(newFileList)\n }\n onChange?.(newFileList)\n }\n\n // 处理文件选择\n const handleFiles = async (files: FileList | null) => {\n if (!files || files.length === 0) return\n\n const filesArray = Array.from(files)\n\n // 检查文件数量限制\n if (maxCount && fileList.length + filesArray.length > maxCount) {\n console.warn(`最多只能上传 ${maxCount} 个文件`)\n return\n }\n\n // 处理每个文件\n const newFiles: UploadFile[] = []\n \n for (const file of filesArray) {\n // 检查文件大小\n if (maxSize && file.size > maxSize) {\n console.warn(`文件 ${file.name} 超过大小限制`)\n continue\n }\n\n // 执行 beforeUpload 钩子\n if (beforeUpload) {\n try {\n const result = await beforeUpload(file)\n if (!result) continue\n } catch (error) {\n console.error('beforeUpload error:', error)\n continue\n }\n }\n\n const uploadFile: UploadFile = {\n uid: generateUid(),\n name: file.name,\n file,\n status: 'uploading',\n percent: 0,\n }\n\n newFiles.push(uploadFile)\n }\n\n if (newFiles.length === 0) return\n\n // 更新文件列表\n const updatedFileList = [...fileList, ...newFiles]\n updateFileList(updatedFileList)\n\n // 执行上传\n newFiles.forEach((uploadFile) => {\n if (customRequest) {\n customRequest({\n file: uploadFile.file!,\n onProgress: (percent) => {\n updateFileList(\n updatedFileList.map((f) =>\n f.uid === uploadFile.uid ? { ...f, percent } : f\n )\n )\n },\n onSuccess: () => {\n updateFileList(\n updatedFileList.map((f) =>\n f.uid === uploadFile.uid ? { ...f, status: 'success', percent: 100 } : f\n )\n )\n },\n onError: (error) => {\n updateFileList(\n updatedFileList.map((f) =>\n f.uid === uploadFile.uid\n ? { ...f, status: 'error', error: error.message }\n : f\n )\n )\n },\n })\n } else {\n // 默认模拟上传\n simulateUpload(uploadFile.uid, updatedFileList)\n }\n })\n }\n\n // 模拟上传进度\n const simulateUpload = (uid: string, currentFileList: UploadFile[]) => {\n let percent = 0\n const interval = setInterval(() => {\n percent += 10\n if (percent >= 100) {\n clearInterval(interval)\n updateFileList(\n currentFileList.map((f) =>\n f.uid === uid ? { ...f, status: 'success', percent: 100 } : f\n )\n )\n } else {\n updateFileList(\n currentFileList.map((f) =>\n f.uid === uid ? { ...f, percent } : f\n )\n )\n }\n }, 200)\n }\n\n // 处理文件输入变化\n const handleInputChange = (e: ChangeEvent<HTMLInputElement>) => {\n handleFiles(e.target.files)\n // 清空 input 值,允许重复选择同一文件\n if (inputRef.current) {\n inputRef.current.value = ''\n }\n }\n\n // 处理拖拽进入\n const handleDragEnter = (e: DragEvent<HTMLDivElement>) => {\n e.preventDefault()\n e.stopPropagation()\n if (!disabled) {\n setIsDragActive(true)\n }\n }\n\n // 处理拖拽离开\n const handleDragLeave = (e: DragEvent<HTMLDivElement>) => {\n e.preventDefault()\n e.stopPropagation()\n setIsDragActive(false)\n }\n\n // 处理拖拽悬停\n const handleDragOver = (e: DragEvent<HTMLDivElement>) => {\n e.preventDefault()\n e.stopPropagation()\n }\n\n // 处理文件放置\n const handleDrop = (e: DragEvent<HTMLDivElement>) => {\n e.preventDefault()\n e.stopPropagation()\n setIsDragActive(false)\n\n if (disabled) return\n\n const files = e.dataTransfer.files\n handleFiles(files)\n }\n\n // 处理点击上传区域\n const handleClick = () => {\n if (!disabled) {\n inputRef.current?.click()\n }\n }\n\n // 处理删除文件\n const handleDelete = (uid: string) => {\n const newFileList = fileList.filter((f) => f.uid !== uid)\n updateFileList(newFileList)\n }\n\n // 使用 react-aria 的 useButton\n const { buttonProps } = useButton(\n {\n onPress: handleClick,\n isDisabled: disabled,\n } as AriaButtonProps,\n dropzoneRef\n )\n\n // 渲染状态图标\n const renderStatusIcon = (status: UploadStatus) => {\n switch (status) {\n case 'success':\n return <SuccessIcon />\n case 'error':\n return <ErrorIcon />\n default:\n return null\n }\n }\n\n return (\n <UploadRoot ref={ref} className={className}>\n <UploadDropzone\n {...buttonProps}\n ref={dropzoneRef}\n isDragActive={isDragActive}\n isDisabled={disabled}\n onDragEnter={handleDragEnter}\n onDragLeave={handleDragLeave}\n onDragOver={handleDragOver}\n onDrop={handleDrop}\n role=\"button\"\n tabIndex={disabled ? -1 : 0}\n aria-label=\"上传文件区域\"\n >\n <UploadIconWrapper>\n {icon || <DefaultUploadIcon />}\n </UploadIconWrapper>\n\n <UploadTextWrapper>\n <UploadMainText>\n {mainText || (\n <>\n 将文件拖到此处,或<UploadLink>点击上传</UploadLink>\n </>\n )}\n </UploadMainText>\n\n {secondaryText && (\n <UploadSecondaryText>{secondaryText}</UploadSecondaryText>\n )}\n\n {(fileTypeHint || downloadTemplateText) && (\n <UploadSecondaryText>\n {fileTypeHint}\n {downloadTemplateText && onDownloadTemplate && (\n <>\n {' '}\n <UploadLink onClick={(e) => {\n e.stopPropagation()\n onDownloadTemplate()\n }}>\n {downloadTemplateText}\n </UploadLink>\n </>\n )}\n </UploadSecondaryText>\n )}\n </UploadTextWrapper>\n\n <HiddenInput\n ref={inputRef}\n type=\"file\"\n accept={accept}\n multiple={multiple}\n onChange={handleInputChange}\n disabled={disabled}\n aria-hidden=\"true\"\n />\n </UploadDropzone>\n\n {fileList.length > 0 && (\n <FileList>\n {fileList.map((file) => (\n <FileItem key={file.uid} status={file.status}>\n <FileInfoRow status={file.status}>\n <FileIcon>\n <FileIconSvg />\n </FileIcon>\n <FileName status={file.status}>{file.name}</FileName>\n {(file.status === 'success' || file.status === 'error') && (\n <>\n <StatusIcon status={file.status}>\n {renderStatusIcon(file.status)}\n </StatusIcon>\n <DeleteButton\n onClick={() => handleDelete(file.uid)}\n aria-label={`删除文件 ${file.name}`}\n >\n <DeleteIcon />\n </DeleteButton>\n </>\n )}\n </FileInfoRow>\n\n {file.status === 'uploading' && (\n <ProgressWrapper>\n <ProgressTrack>\n <ProgressBar percent={file.percent || 0} />\n </ProgressTrack>\n <ProgressText>{file.percent || 0}%</ProgressText>\n </ProgressWrapper>\n )}\n </FileItem>\n ))}\n </FileList>\n )}\n </UploadRoot>\n )\n }\n)\n\nUpload.displayName = 'Upload'\n\n","import { TokenGenerator } from '../types/theme-utils';\nimport { ButtonTokens, IconButtonTokens } from '../types/component-tokens.types';\n\nexport const getButtonTokens: TokenGenerator<ButtonTokens> = ({ global, semantic }) => ({\n primary: {\n background: {\n default: semantic.colors.brand.primary,\n hover: semantic.colors.brand.primaryHover,\n active: semantic.colors.brand.primaryActive,\n },\n text: {\n default: semantic.colors.text.onBrand,\n },\n border: {\n default: 'transparent',\n },\n shadow: {\n default: 'none',\n hover: 'none',\n },\n },\n secondary: {\n background: {\n default: semantic.colors.background.surface,\n hover: semantic.colors.background.surfaceSubtle,\n active: semantic.colors.background.surfaceSubtle,\n },\n text: {\n default: semantic.colors.brand.primary,\n },\n border: {\n default: semantic.colors.border.primary,\n hover: semantic.colors.brand.primary,\n active: semantic.colors.brand.primaryActive,\n },\n shadow: {\n default: 'none',\n },\n },\n text: {\n background: {\n default: 'transparent',\n hover: semantic.colors.brand.primarySubtle,\n active: '#F0F0F0', // 文本按钮点击态背景 - note: this was hardcoded in original\n },\n text: {\n default: semantic.colors.brand.primary,\n },\n border: {\n default: 'transparent',\n hover: 'transparent',\n active: 'transparent',\n },\n },\n danger: {\n background: {\n default: semantic.colors.state.danger,\n hover: semantic.colors.state.dangerHover,\n active: semantic.colors.state.dangerActive,\n },\n text: {\n default: semantic.colors.state.dangerOn,\n },\n border: {\n default: 'transparent',\n },\n shadow: {\n default: 'none',\n hover: 'none',\n },\n },\n gradient: {\n background: {\n default: global.gradients.blueViolet,\n gradientFrom: '#0194FF',\n gradientTo: '#D581FF',\n },\n text: {\n default: global.colors.common.white,\n },\n border: {\n default: 'transparent',\n },\n shadow: {\n default: 'none',\n hover: 'none',\n },\n },\n disabled: {\n background: {\n default: semantic.colors.border.primary,\n },\n text: {\n default: semantic.colors.text.disabled,\n },\n opacity: 0.6,\n },\n size: {\n sm: {\n height: '24px',\n fontSize: global.typography.fontSize.sm, // 14px\n paddingInline: global.spacing.lg, // 16px\n iconSize: '16px',\n },\n md: {\n height: '32px',\n fontSize: global.typography.fontSize.sm, // 14px\n paddingInline: global.spacing.lg, // 16px\n iconSize: '16px',\n },\n lg: {\n height: '40px',\n fontSize: global.typography.fontSize.sm, // 14px\n paddingInline: global.spacing.lg, // 16px\n iconSize: '16px',\n },\n },\n borderRadius: global.radii.r3, // 6px - Figma 设计稿圆角\n fontWeight: global.typography.fontWeight.regular, // 400\n gap: global.spacing.sm, // 8px 图标和文字间距\n transition: '0.2s ease',\n});\n\nexport const getIconButtonTokens: TokenGenerator<IconButtonTokens> = ({ global, semantic }) => ({\n appearance: {\n solid: {\n primary: {\n background: {\n default: semantic.colors.brand.primary,\n hover: semantic.colors.brand.primaryHover,\n active: semantic.colors.brand.primaryActive,\n },\n border: {\n default: 'transparent',\n },\n icon: {\n default: semantic.colors.text.onBrand,\n },\n },\n neutral: {\n background: {\n default: semantic.colors.background.surface,\n hover: semantic.colors.background.surfaceSubtle,\n active: semantic.colors.background.surfaceStrong,\n },\n border: {\n default: 'transparent',\n },\n icon: {\n default: semantic.colors.text.primary,\n },\n },\n danger: {\n background: {\n default: semantic.colors.state.danger,\n hover: semantic.colors.state.dangerHover,\n active: semantic.colors.state.dangerActive,\n },\n border: {\n default: 'transparent',\n },\n icon: {\n default: semantic.colors.state.dangerOn,\n },\n },\n },\n outline: {\n primary: {\n background: {\n default: 'transparent',\n hover: semantic.colors.brand.primarySubtle,\n active: 'rgba(44, 111, 231, 0.16)',\n },\n border: {\n default: semantic.colors.brand.primary,\n hover: semantic.colors.brand.primary,\n active: semantic.colors.brand.primary,\n },\n icon: {\n default: semantic.colors.brand.primary,\n hover: semantic.colors.brand.primaryHover,\n active: semantic.colors.brand.primaryActive,\n },\n },\n neutral: {\n background: {\n default: 'transparent',\n hover: semantic.colors.background.surfaceSubtle,\n active: semantic.colors.background.surfaceStrong,\n },\n border: {\n default: semantic.colors.border.primary,\n hover: semantic.colors.border.strong,\n active: semantic.colors.border.strong,\n },\n icon: {\n default: semantic.colors.text.primary,\n hover: semantic.colors.text.primary,\n active: semantic.colors.text.primary,\n },\n },\n danger: {\n background: {\n default: 'transparent',\n hover: semantic.colors.state.dangerSubtle,\n active: 'rgba(237, 28, 28, 0.18)',\n },\n border: {\n default: semantic.colors.state.danger,\n hover: semantic.colors.state.danger,\n active: semantic.colors.state.danger,\n },\n icon: {\n default: semantic.colors.state.danger,\n hover: semantic.colors.state.dangerHover,\n active: semantic.colors.state.dangerActive,\n },\n },\n },\n ghost: {\n primary: {\n background: {\n default: 'transparent',\n hover: semantic.colors.brand.primarySubtle,\n active: 'rgba(44, 111, 231, 0.16)',\n },\n border: {\n default: 'transparent',\n },\n icon: {\n default: semantic.colors.brand.primary,\n hover: semantic.colors.brand.primaryHover,\n active: semantic.colors.brand.primaryActive,\n },\n },\n neutral: {\n background: {\n default: 'transparent',\n hover: 'rgba(10, 24, 51, 0.05)',\n active: 'rgba(10, 24, 51, 0.1)',\n },\n border: {\n default: 'transparent',\n },\n icon: {\n default: semantic.colors.text.primary,\n },\n },\n danger: {\n background: {\n default: 'transparent',\n hover: semantic.colors.state.dangerSubtle,\n active: 'rgba(237, 28, 28, 0.18)',\n },\n border: {\n default: 'transparent',\n },\n icon: {\n default: semantic.colors.state.danger,\n hover: semantic.colors.state.dangerHover,\n active: semantic.colors.state.dangerActive,\n },\n },\n },\n },\n disabled: {\n background: semantic.colors.background.surfaceSubtle,\n border: semantic.colors.border.primary,\n icon: semantic.colors.text.disabled,\n opacity: 0.6,\n },\n size: {\n sm: {\n edge: '24px',\n iconSize: '16px',\n },\n md: {\n edge: '32px',\n iconSize: '18px',\n },\n lg: {\n edge: '40px',\n iconSize: '20px',\n },\n },\n borderRadius: global.radii.r3,\n transition: '0.2s ease',\n focusRing: {\n color: 'rgba(44, 111, 231, 0.35)',\n offset: '2px',\n width: '2px',\n },\n});\n\n","import { TokenGenerator } from '../types/theme-utils';\nimport { CheckboxTokens } from '../types/component-tokens.types';\n\nexport const getCheckboxTokens: TokenGenerator<CheckboxTokens> = ({ global, semantic }) => ({\n control: {\n size: \"16px\", // Checkbox 尺寸\n borderRadius: global.radii.r2, // 4px - 最小组件圆角\n borderWidth: \"1px\",\n background: {\n default: global.colors.common.white, // 未选中背景:白色\n checked: semantic.colors.brand.primary, // 选中背景:#2C6FE7\n disabled: global.colors.neutral[100], // 禁用未选中:#F0F2F4\n disabledChecked: global.colors.blue[200], // 禁用选中:#AAD1FC\n },\n borderColor: {\n default: global.colors.neutral[400], // 未选中边框:#C2C5CC\n hover: semantic.colors.brand.primary, // hover边框:#2C6FE7\n checked: semantic.colors.brand.primary, // 选中边框:#2C6FE7\n disabled: global.colors.neutral[400], // 禁用边框:#C2C5CC\n disabledChecked: global.colors.blue[200], // 禁用选中边框:#AAD1FC\n },\n icon: {\n color: global.colors.common.white, // 勾选图标颜色:白色\n size: \"10px\", // 图标大小\n },\n },\n focusRing: \"0 0 0 4px rgba(44, 111, 231, 0.18)\",\n gap: global.spacing.sm, // 8px - checkbox和文字间距\n text: {\n label: {\n fontSize: global.typography.fontSize.xs, // 12px\n lineHeight: \"18px\", // 行高18px\n color: global.colors.word[900], // #0A1833\n disabled: global.colors.word[300], // 禁用:#B6BEC2 (实际是#B5BAC2)\n fontWeight: global.typography.fontWeight.regular, // 400\n },\n },\n transition: \"0.16s ease\",\n});\n\n","import { TokenGenerator } from '../types/theme-utils';\nimport { RadioTokens } from '../types/component-tokens.types';\n\nexport const getRadioTokens: TokenGenerator<RadioTokens> = ({ global }) => ({\n control: {\n size: \"16px\",\n borderRadius: \"999px\",\n borderWidth: \"1.5px\",\n background: global.colors.common.white,\n borderColor: {\n default: global.colors.neutral[300],\n hover: global.colors.blue[500],\n checked: global.colors.blue[500],\n disabled: global.colors.neutral[200],\n },\n indicator: {\n size: \"8px\",\n color: global.colors.blue[500],\n disabled: global.colors.word[300],\n },\n },\n focusRing: \"0 0 0 4px rgba(44, 111, 231, 0.18)\",\n gap: \"0.5rem\",\n text: {\n label: {\n fontSize: global.typography.fontSize.xs,\n color: global.colors.word[900],\n disabled: global.colors.word[300],\n fontWeight: global.typography.fontWeight.regular,\n },\n description: {\n color: global.colors.word[600],\n disabled: global.colors.word[300],\n fontSize: global.typography.fontSize.xs,\n },\n },\n disabled: {\n opacity: 0.55,\n },\n transition: \"0.16s ease\",\n});\n\n","import { TokenGenerator } from '../types/theme-utils';\nimport { SwitchTokens } from '../types/component-tokens.types';\n\nexport const getSwitchTokens: TokenGenerator<SwitchTokens> = ({ global, semantic }) => ({\n size: {\n sm: {\n width: '36px', // 小尺寸开关宽度\n height: '20px', // 小尺寸开关高度\n thumbSize: '16px', // 小尺寸滑块\n fontSize: global.typography.fontSize.xs, // 12px\n paddingInline: '6px', // 左右内边距\n },\n md: {\n width: '44px', // 中等尺寸开关宽度(根据 Figma: 文字+滑块+间距)\n height: '24px', // 中等尺寸开关高度(Figma 设计)\n thumbSize: '18px', // 滑块尺寸(Figma 设计)\n fontSize: global.typography.fontSize.xs, // 12px(Figma 设计)\n paddingInline: '8px', // 左右内边距(左8px,右3px考虑滑块位置)\n },\n },\n background: {\n unchecked: global.colors.neutral[300], // 未选中状态:灰色 #D4D6D9\n checked: semantic.colors.brand.primary, // 选中状态:品牌蓝 #2C6FE7\n disabled: global.colors.neutral[200], // 禁用状态:浅灰\n },\n thumb: {\n background: global.colors.common.white, // 滑块:白色\n shadow: '0 1px 3px rgba(0, 0, 0, 0.12)', // 滑块阴影\n },\n text: {\n color: global.colors.common.white, // 文字颜色:白色\n fontSize: global.typography.fontSize.xs, // 12px\n fontWeight: global.typography.fontWeight.regular, // 400\n },\n borderRadius: global.radii.r5, // 12px - 中型容器圆角(Figma 设计)\n gap: global.spacing.xs, // 4px - 文字和滑块的间距(Figma 设计)\n transition: '0.2s cubic-bezier(0.4, 0, 0.2, 1)', // 平滑过渡动画\n disabled: {\n opacity: 0.5, // 禁用时的透明度\n },\n focusRing: {\n color: 'rgba(44, 111, 231, 0.3)', // Focus 环颜色\n offset: '2px', // Focus 环偏移\n },\n});\n\n","import { TokenGenerator } from '../types/theme-utils';\nimport { InputTokens } from '../types/component-tokens.types';\n\nexport const getInputTokens: TokenGenerator<InputTokens> = ({ global, semantic }) => ({\n size: {\n sm: {\n height: '24px', // 小号输入框高度\n fontSize: global.typography.fontSize.xs, // 12px\n paddingInline: global.spacing.md, // 12px 左右内边距\n iconSize: '14px', // 小号图标尺寸\n },\n md: {\n height: '32px', // 标准输入框高度(Figma 设计)\n fontSize: global.typography.fontSize.xs, // 12px\n paddingInline: global.spacing.md, // 12px 左右内边距\n iconSize: '16px', // 标准图标尺寸\n },\n lg: {\n height: '40px', // 大号输入框高度\n fontSize: global.typography.fontSize.xs, // 12px\n paddingInline: global.spacing.md, // 12px 左右内边距\n iconSize: '18px', // 大号图标尺寸\n },\n },\n border: {\n default: semantic.colors.border.primary,\n hover: semantic.colors.border.strong,\n focus: semantic.colors.brand.primary,\n error: semantic.colors.state.danger,\n disabled: semantic.colors.border.primary,\n },\n background: {\n default: semantic.colors.background.surface,\n disabled: semantic.colors.background.secondary,\n },\n text: {\n default: semantic.colors.text.primary,\n placeholder: semantic.colors.text.placeholder,\n disabled: semantic.colors.text.disabled,\n error: semantic.colors.state.danger,\n counter: semantic.colors.text.caption,\n },\n borderRadius: global.radii.r3, // 6px - 基础组件圆角\n gap: global.spacing.sm, // 8px - 图标与文字间距(Figma 设计)\n transition: '0.2s ease', // 过渡动画\n});\n\n","import { TokenGenerator } from '../types/theme-utils';\nimport { SelectTokens } from '../types/component-tokens.types';\n\nexport const getSelectTokens: TokenGenerator<SelectTokens> = ({ global, semantic }) => ({\n size: {\n sm: {\n height: '24px',\n fontSize: global.typography.fontSize.xs,\n paddingInline: global.spacing.md,\n iconSize: '14px',\n },\n md: {\n height: '32px',\n fontSize: global.typography.fontSize.xs,\n paddingInline: global.spacing.md,\n iconSize: '16px',\n },\n lg: {\n height: '40px',\n fontSize: global.typography.fontSize.xs,\n paddingInline: global.spacing.md,\n iconSize: '18px',\n },\n },\n border: {\n default: semantic.colors.border.primary,\n hover: semantic.colors.border.strong,\n focus: semantic.colors.brand.primary,\n error: semantic.colors.state.danger,\n disabled: semantic.colors.border.primary,\n },\n background: {\n default: semantic.colors.background.surface,\n hover: semantic.colors.background.surface,\n disabled: semantic.colors.background.secondary,\n },\n text: {\n default: semantic.colors.text.primary,\n placeholder: semantic.colors.text.placeholder,\n disabled: semantic.colors.text.disabled,\n error: semantic.colors.state.danger,\n },\n borderRadius: global.radii.r3,\n gap: global.spacing.sm,\n transition: '0.2s ease',\n popover: {\n background: semantic.colors.background.surface,\n border: `1px solid ${semantic.colors.border.primary}`,\n borderRadius: global.radii.r3,\n boxShadow: '0 4px 12px rgba(0, 0, 0, 0.08)',\n padding: '4px',\n },\n option: {\n height: '32px',\n paddingInline: '8px',\n fontSize: global.typography.fontSize.xs,\n borderRadius: global.radii.r2,\n gap: '8px',\n background: {\n default: 'transparent',\n hover: semantic.colors.background.surfaceSubtle,\n selected: semantic.colors.brand.primarySubtle,\n focused: semantic.colors.background.surfaceSubtle,\n },\n text: {\n default: semantic.colors.text.primary,\n hover: semantic.colors.text.primary,\n selected: semantic.colors.brand.primary,\n disabled: semantic.colors.text.disabled,\n },\n },\n});\n\n","import { TokenGenerator } from '../types/theme-utils';\nimport { NumberFieldTokens } from '../types/component-tokens.types';\n\nexport const getNumberFieldTokens: TokenGenerator<NumberFieldTokens> = ({ global, semantic }) => ({\n controls: {\n default: 'buttons',\n },\n size: {\n md: {\n height: '24px',\n fontSize: global.typography.fontSize.xs,\n paddingInline: global.spacing.sm,\n },\n lg: {\n height: '32px',\n fontSize: global.typography.fontSize.sm,\n paddingInline: global.spacing.sm,\n },\n },\n input: {\n width: '40px',\n height: '18px',\n paddingInline: global.spacing.sm,\n fontSize: global.typography.fontSize.xs,\n fontWeight: global.typography.fontWeight.regular,\n lineHeight: '18px',\n fontFamily: global.typography.fontFamily,\n },\n control: {\n side: {\n buttonSizeSm: '20px',\n buttonSizeLg: '28px',\n inset: '1px',\n gap: '8px',\n iconSize: '12px',\n widthsm: '100px',\n widthLg: '116px',\n },\n arrows: {\n buttonSizeSm: '10px',\n buttonSizeLg: '14px',\n iconSize: '12px',\n gap: '0px',\n widthsm: '72px',\n widthLg: '80px',\n },\n },\n borderRadius: global.radii.r3,\n border: {\n default: semantic.colors.border.strong,\n hover: semantic.colors.brand.primaryHover,\n disabled: semantic.colors.border.strong,\n },\n background: {\n default: semantic.colors.background.surface,\n hover: semantic.colors.background.surfaceSubtle,\n disabled: semantic.colors.background.secondary,\n },\n text: {\n default: semantic.colors.text.primary,\n placeholder: semantic.colors.text.placeholder,\n disabled: semantic.colors.text.disabled,\n },\n transition: '0.2s ease',\n});\n\n","import { TokenGenerator } from '../types/theme-utils';\nimport { CollapseTokens } from '../types/component-tokens.types';\n\nexport const getCollapseTokens: TokenGenerator<CollapseTokens> = ({ global, semantic }) => ({\n border: {\n default: semantic.colors.border.primary,\n },\n background: {\n default: semantic.colors.background.surface,\n hover: semantic.colors.background.surfaceSubtle,\n },\n text: {\n default: semantic.colors.text.secondary, // Note: Light used 'rgba(10, 24, 51, 0.6)' (f5), Dark used text.secondary. Assuming text.secondary is correct abstraction.\n title: semantic.colors.text.primary, // Light: 'rgba(10, 24, 51, 0.7)' (f4), Dark: text.primary.\n },\n divider: semantic.colors.border.primary,\n arrow: {\n default: semantic.colors.text.secondary,\n },\n padding: {\n header: '12px 24px',\n content: '0 24px 12px 24px',\n },\n borderRadius: global.radii.r3,\n gap: global.spacing.sm,\n transition: '0.3s cubic-bezier(0.4, 0, 0.2, 1)',\n arrowSize: '16px',\n});\n\n","import { TokenGenerator } from '../types/theme-utils';\nimport { TagTokens } from '../types/component-tokens.types';\n\nexport const getTagTokens: TokenGenerator<TagTokens> = ({ global, semantic, mode }) => {\n const isDark = mode === 'dark';\n\n return {\n colors: {\n // 默认颜色(灰色)\n default: {\n background: {\n default: isDark ? 'rgba(148, 163, 184, 0.15)' : global.colors.neutral[100],\n hover: isDark ? 'rgba(148, 163, 184, 0.2)' : global.colors.neutral[200],\n active: isDark ? 'rgba(148, 163, 184, 0.25)' : global.colors.neutral[300],\n checked: semantic.colors.brand.primary,\n checkedHover: semantic.colors.brand.primaryHover,\n checkedActive: semantic.colors.brand.primaryActive,\n },\n text: {\n default: isDark ? global.colors.word[100] : 'rgba(10, 24, 51, 0.7)',\n checked: global.colors.common.white,\n },\n border: {\n default: isDark ? 'rgba(148, 163, 184, 0.28)' : global.colors.neutral[400],\n hover: isDark ? 'rgba(148, 163, 184, 0.38)' : global.colors.neutral[500],\n active: isDark ? 'rgba(148, 163, 184, 0.48)' : global.colors.word[600],\n checked: semantic.colors.brand.primary,\n checkedHover: semantic.colors.brand.primaryHover,\n checkedActive: semantic.colors.brand.primaryActive,\n },\n },\n // 红色 Red\n red: {\n background: {\n default: isDark ? 'rgba(170, 14, 41, 0.12)' : 'rgba(170, 14, 41, 0.08)',\n hover: isDark ? 'rgba(170, 14, 41, 0.16)' : 'rgba(170, 14, 41, 0.12)',\n active: isDark ? 'rgba(170, 14, 41, 0.2)' : 'rgba(170, 14, 41, 0.16)',\n },\n text: {\n default: isDark ? global.colors.red[300] : global.colors.red[700],\n },\n border: {\n default: isDark ? 'rgba(170, 14, 41, 0.3)' : 'rgba(170, 14, 41, 0.25)',\n },\n },\n // 橙色 Orange\n orange: {\n background: {\n default: isDark ? 'rgba(237, 154, 0, 0.12)' : 'rgba(237, 154, 0, 0.08)',\n hover: isDark ? 'rgba(237, 154, 0, 0.16)' : 'rgba(237, 154, 0, 0.12)',\n active: isDark ? 'rgba(237, 154, 0, 0.2)' : 'rgba(237, 154, 0, 0.16)',\n },\n text: {\n default: isDark ? global.colors.orange[300] : global.colors.orange[500],\n },\n border: {\n default: isDark ? 'rgba(237, 154, 0, 0.3)' : 'rgba(237, 154, 0, 0.25)',\n },\n },\n // 黄色 Yellow\n yellow: {\n background: {\n default: isDark ? 'rgba(250, 208, 0, 0.12)' : 'rgba(250, 208, 0, 0.08)',\n hover: isDark ? 'rgba(250, 208, 0, 0.16)' : 'rgba(250, 208, 0, 0.12)',\n active: isDark ? 'rgba(250, 208, 0, 0.2)' : 'rgba(250, 208, 0, 0.16)',\n },\n text: {\n default: isDark ? global.colors.yellow[300] : global.colors.yellow[500],\n },\n border: {\n default: isDark ? 'rgba(250, 208, 0, 0.3)' : 'rgba(250, 208, 0, 0.25)',\n },\n },\n // 绿色 Green\n green: {\n background: {\n default: isDark ? 'rgba(51, 189, 72, 0.12)' : 'rgba(51, 189, 72, 0.08)',\n hover: isDark ? 'rgba(51, 189, 72, 0.16)' : 'rgba(51, 189, 72, 0.12)',\n active: isDark ? 'rgba(51, 189, 72, 0.2)' : 'rgba(51, 189, 72, 0.16)',\n },\n text: {\n default: isDark ? global.colors.green[300] : global.colors.green[500],\n },\n border: {\n default: isDark ? 'rgba(51, 189, 72, 0.3)' : 'rgba(51, 189, 72, 0.25)',\n },\n },\n // 薰衣草色 Lavender\n lavender: {\n background: {\n default: isDark ? 'rgba(99, 79, 214, 0.12)' : 'rgba(99, 79, 214, 0.08)',\n hover: isDark ? 'rgba(99, 79, 214, 0.16)' : 'rgba(99, 79, 214, 0.12)',\n active: isDark ? 'rgba(99, 79, 214, 0.2)' : 'rgba(99, 79, 214, 0.16)',\n },\n text: {\n default: isDark ? global.colors.lavender[300] : global.colors.lavender[500],\n },\n border: {\n default: isDark ? 'rgba(99, 79, 214, 0.3)' : 'rgba(99, 79, 214, 0.25)',\n },\n },\n // 丁香色 Lilac\n lilac: {\n background: {\n default: isDark ? 'rgba(159, 58, 214, 0.12)' : 'rgba(159, 58, 214, 0.08)',\n hover: isDark ? 'rgba(159, 58, 214, 0.16)' : 'rgba(159, 58, 214, 0.12)',\n active: isDark ? 'rgba(159, 58, 214, 0.2)' : 'rgba(159, 58, 214, 0.16)',\n },\n text: {\n default: isDark ? global.colors.lilac[300] : global.colors.lilac[500],\n },\n border: {\n default: isDark ? 'rgba(159, 58, 214, 0.3)' : 'rgba(159, 58, 214, 0.25)',\n },\n },\n // 胭脂红 Carmine\n carmine: {\n background: {\n default: isDark ? 'rgba(214, 58, 191, 0.12)' : 'rgba(214, 58, 191, 0.08)',\n hover: isDark ? 'rgba(214, 58, 191, 0.16)' : 'rgba(214, 58, 191, 0.12)',\n active: isDark ? 'rgba(214, 58, 191, 0.2)' : 'rgba(214, 58, 191, 0.16)',\n },\n text: {\n default: isDark ? global.colors.carmine[300] : global.colors.carmine[500],\n },\n border: {\n default: isDark ? 'rgba(214, 58, 191, 0.3)' : 'rgba(214, 58, 191, 0.25)',\n },\n },\n // 玫瑰色 Rose\n rose: {\n background: {\n default: isDark ? 'rgba(229, 30, 100, 0.12)' : 'rgba(229, 30, 100, 0.08)',\n hover: isDark ? 'rgba(229, 30, 100, 0.16)' : 'rgba(229, 30, 100, 0.12)',\n active: isDark ? 'rgba(229, 30, 100, 0.2)' : 'rgba(229, 30, 100, 0.16)',\n },\n text: {\n default: isDark ? global.colors.rose[300] : global.colors.rose[500],\n },\n border: {\n default: isDark ? 'rgba(229, 30, 100, 0.3)' : 'rgba(229, 30, 100, 0.25)',\n },\n },\n // 薄荷色 Mint\n mint: {\n background: {\n default: isDark ? 'rgba(71, 192, 214, 0.12)' : 'rgba(71, 192, 214, 0.08)',\n hover: isDark ? 'rgba(71, 192, 214, 0.16)' : 'rgba(71, 192, 214, 0.12)',\n active: isDark ? 'rgba(71, 192, 214, 0.2)' : 'rgba(71, 192, 214, 0.16)',\n },\n text: {\n default: isDark ? global.colors.mint[300] : global.colors.mint[500],\n },\n border: {\n default: isDark ? 'rgba(71, 192, 214, 0.3)' : 'rgba(71, 192, 214, 0.25)',\n },\n },\n // 橄榄色 Olive\n olive: {\n background: {\n default: isDark ? 'rgba(187, 214, 36, 0.12)' : 'rgba(187, 214, 36, 0.08)',\n hover: isDark ? 'rgba(187, 214, 36, 0.16)' : 'rgba(187, 214, 36, 0.12)',\n active: isDark ? 'rgba(187, 214, 36, 0.2)' : 'rgba(187, 214, 36, 0.16)',\n },\n text: {\n default: isDark ? global.colors.olive[300] : global.colors.olive[500],\n },\n border: {\n default: isDark ? 'rgba(187, 214, 36, 0.3)' : 'rgba(187, 214, 36, 0.25)',\n },\n },\n // 蓝色 Blue\n blue: {\n background: {\n default: isDark ? 'rgba(44, 111, 231, 0.12)' : 'rgba(44, 111, 231, 0.08)',\n hover: isDark ? 'rgba(44, 111, 231, 0.16)' : 'rgba(44, 111, 231, 0.12)',\n active: isDark ? 'rgba(44, 111, 231, 0.2)' : 'rgba(44, 111, 231, 0.16)',\n },\n text: {\n default: semantic.colors.brand.primary,\n },\n border: {\n default: isDark ? 'rgba(44, 111, 231, 0.3)' : 'rgba(44, 111, 231, 0.25)',\n },\n },\n },\n size: {\n sm: {\n height: '18px', // 小号标签高度(Figma 设计)\n fontSize: '10px', // H11-最小标签字号(Figma 设计)\n lineHeight: '16px', // 行高\n paddingInline: global.spacing.sm, // 8px 左右内边距\n gap: global.spacing.xs, // 4px 图标和文字间距\n iconSize: '12px', // 图标尺寸\n closeIconSize: '8px', // 关闭图标尺寸\n },\n md: {\n height: '24px', // 中号标签高度(Figma 设计)\n fontSize: '10px', // H11-最小标签字号(Figma 设计)\n lineHeight: '16px', // 行高\n paddingInline: global.spacing.sm, // 8px 左右内边距\n gap: global.spacing.xs, // 4px 图标和文字间距\n iconSize: '14px', // 图标尺寸\n closeIconSize: '10px', // 关闭图标尺寸\n },\n lg: {\n height: '32px',\n fontSize: global.typography.fontSize.xs, // 12px\n lineHeight: '20px',\n paddingInline: global.spacing.md, // 12px\n gap: global.spacing.sm, // 8px\n iconSize: '16px',\n closeIconSize: '12px',\n },\n },\n fontWeight: global.typography.fontWeight.regular, // 400\n borderRadius: global.radii.r2, // 4px - 最小组件圆角\n transition: '0.2s ease',\n disabled: {\n opacity: 0.5,\n },\n };\n};\n\n","import { TokenGenerator } from '../types/theme-utils';\nimport { SkeletonTokens } from '../types/component-tokens.types';\n\nexport const getSkeletonTokens: TokenGenerator<SkeletonTokens> = ({ global, mode }) => {\n const isDark = mode === 'dark';\n return {\n background: {\n base: isDark ? 'rgba(148, 163, 184, 0.12)' : 'rgba(10, 24, 51, 0.05)',\n highlight: isDark ? 'rgba(148, 163, 184, 0.22)' : 'rgba(10, 24, 51, 0.12)',\n },\n animation: {\n duration: '1.4s',\n easing: 'ease-in-out',\n },\n radius: {\n sm: global.radii.r2,\n md: global.radii.r3,\n lg: global.radii.r4,\n pill: global.radii.r5,\n circle: global.radii.r0,\n },\n block: {\n height: '16px',\n },\n text: {\n lineHeight: '12px',\n gap: global.spacing.sm,\n lastLineWidth: '62%',\n },\n circle: {\n size: '40px',\n },\n };\n};\n\n","import { TokenGenerator } from '../types/theme-utils';\nimport { StepperTokens } from '../types/component-tokens.types';\n\nexport const getStepperTokens: TokenGenerator<StepperTokens> = ({ global, semantic, mode }) => {\n const isDark = mode === 'dark';\n return {\n circle: {\n size: {\n md: '32px',\n sm: '24px',\n },\n fontSize: {\n md: global.typography.fontSize.sm,\n sm: global.typography.fontSize.xs,\n },\n iconSize: {\n md: '14px',\n sm: '10px',\n },\n },\n dot: {\n size: {\n md: '10px',\n sm: '8px',\n },\n pulseColor: isDark ? 'rgba(44, 111, 231, 0.35)' : 'rgba(44, 111, 231, 0.25)',\n },\n line: {\n color: {\n default: semantic.colors.border.primary,\n active: semantic.colors.brand.primary,\n },\n size: '1px',\n },\n text: {\n title: {\n color: {\n default: semantic.colors.text.primary,\n active: semantic.colors.brand.primary,\n error: semantic.colors.state.danger,\n waiting: semantic.colors.text.tertiary,\n },\n fontWeight: global.typography.fontWeight.medium,\n fontSize: global.typography.fontSize.sm,\n },\n description: {\n color: semantic.colors.text.secondary,\n fontSize: global.typography.fontSize.xs,\n },\n },\n state: {\n process: {\n color: semantic.colors.brand.primary,\n bg: semantic.colors.brand.primary,\n },\n wait: {\n color: semantic.colors.text.tertiary,\n bg: isDark ? 'rgba(148, 163, 184, 0.2)' : global.colors.neutral[200],\n },\n finish: {\n color: semantic.colors.brand.primary,\n bg: isDark ? 'rgba(44, 111, 231, 0.15)' : semantic.colors.brand.primarySubtle,\n },\n error: {\n color: semantic.colors.state.danger,\n bg: isDark ? 'rgba(170, 14, 41, 0.15)' : semantic.colors.state.dangerSubtle,\n },\n },\n gap: global.spacing.sm,\n };\n};\n\n","import { TokenGenerator } from '../types/theme-utils';\nimport { MenuTokens } from '../types/component-tokens.types';\n\nexport const getMenuTokens: TokenGenerator<MenuTokens> = ({ global, semantic, mode }) => {\n const isDark = mode === 'dark';\n return {\n container: {\n width: {\n expanded: '240px', // 展开宽度(Figma 设计)\n collapsed: '68px', // 折叠宽度(Figma 设计)\n },\n background: isDark ? semantic.colors.background.surface : global.colors.common.white,\n border: `1px solid ${semantic.colors.border.primary}`,\n padding: global.spacing.lg, // 16px 左右内边距\n },\n item: {\n height: '40px', // 菜单项高度(Figma 设计)\n paddingInline: global.spacing.lg, // 16px 左右内边距\n fontSize: global.typography.fontSize.sm, // 14px\n fontWeight: global.typography.fontWeight.regular, // 400\n iconSize: '20px', // 图标尺寸(Figma 设计)\n gap: global.spacing.sm, // 8px 图标和文字间距\n borderRadius: global.radii.r3, // 4px 圆角\n background: {\n default: 'transparent',\n hover: isDark ? semantic.colors.background.surfaceStrong : semantic.colors.background.surfaceSubtle, // hover 背景\n active: isDark ? 'linear-gradient(90deg, rgba(1, 148, 255, 0) 0%, rgba(1, 148, 255, 0.2) 100%)' \n : 'linear-gradient(90deg, rgba(1, 148, 255, 0) 0%, rgba(1, 148, 255, 0.15) 100%)', // 选中渐变背景\n },\n text: {\n default: semantic.colors.text.primary,\n hover: semantic.colors.text.primary,\n active: semantic.colors.text.primary,\n },\n transition: '0.2s ease',\n },\n subItem: {\n paddingLeft: '20px', // 子菜单左缩进(Figma 设计有4px额外缩进)\n background: {\n default: 'transparent',\n hover: isDark ? semantic.colors.background.surfaceStrong : semantic.colors.background.surfaceSubtle,\n active: isDark ? 'linear-gradient(90deg, rgba(1, 148, 255, 0) 0%, rgba(1, 148, 255, 0.2) 100%)' \n : 'linear-gradient(90deg, rgba(1, 148, 255, 0) 0%, rgba(1, 148, 255, 0.15) 100%)',\n },\n },\n group: {\n marginTop: global.spacing.xl, // 24px 分组上边距\n marginBottom: global.spacing.md, // 12px 分组下边距\n gap: global.spacing.xs, // 4px 项目间距\n },\n groupTitle: {\n height: '18px', // 标题高度(Figma 设计)\n fontSize: global.typography.fontSize.xs, // 12px\n fontWeight: global.typography.fontWeight.regular, // 400\n color: semantic.colors.text.secondary, // 辅助文字颜色\n paddingInline: '0',\n marginBottom: global.spacing.sm, // 8px 标题下边距\n },\n scrollbar: {\n width: '8px', // 滚动条宽度(Figma 设计)\n thumbColor: isDark ? 'rgba(255, 255, 255, 0.2)' : 'rgba(0, 0, 0, 0.2)', // 滑块颜色\n trackColor: 'transparent', // 轨道颜色\n },\n popover: {\n background: isDark ? semantic.colors.background.surface : global.colors.common.white,\n border: `1px solid ${semantic.colors.border.primary}`,\n borderRadius: global.radii.r4, // 8px 圆角\n boxShadow: isDark ? '0 4px 12px rgba(0, 0, 0, 0.4)' : '0 4px 12px rgba(0, 0, 0, 0.08)', // 悬浮层阴影\n padding: global.spacing.xs, // 4px 内边距\n item: {\n background: {\n default: 'transparent',\n hover: isDark ? semantic.colors.background.surfaceStrong : semantic.colors.background.surfaceSubtle,\n active: isDark ? 'linear-gradient(90deg, rgba(1, 148, 255, 0) 0%, rgba(1, 148, 255, 0.2) 100%)' \n : 'linear-gradient(90deg, rgba(1, 148, 255, 0) 0%, rgba(1, 148, 255, 0.15) 100%)',\n },\n text: {\n default: semantic.colors.text.primary,\n hover: semantic.colors.text.primary,\n active: semantic.colors.brand.primary,\n },\n },\n },\n };\n};\n\n","import {\n AppTheme,\n ComponentTokens,\n globalColors,\n globalSpacing,\n globalRadii,\n globalTypography,\n globalShadows,\n globalGradients,\n lightSemantic,\n darkSemantic,\n SemanticColors,\n SemanticSpacing,\n SemanticBorderRadius,\n SemanticTypography,\n SemanticShadows,\n} from '@kingsoft-ai/theme';\nimport { ThemeContext } from './types/theme-utils';\n\nimport { getButtonTokens, getIconButtonTokens } from './button/tokens';\nimport { getCheckboxTokens } from './checkbox/tokens';\nimport { getRadioTokens } from './radio/tokens';\nimport { getSwitchTokens } from './switch/tokens';\nimport { getInputTokens } from './input/tokens';\nimport { getSelectTokens } from './select/tokens';\nimport { getNumberFieldTokens } from './numberInput/tokens';\nimport { getCollapseTokens } from './collapse/tokens';\nimport { getTagTokens } from './tag/tokens';\nimport { getSkeletonTokens } from './skeleton/tokens';\nimport { getStepperTokens } from './stepper/tokens';\nimport { getMenuTokens } from './menu/tokens';\n\nexport const createComponentTokens = (context: ThemeContext): ComponentTokens => ({\n button: getButtonTokens(context),\n iconButton: getIconButtonTokens(context),\n checkbox: getCheckboxTokens(context),\n radio: getRadioTokens(context),\n switch: getSwitchTokens(context),\n input: getInputTokens(context),\n select: getSelectTokens(context),\n numberfield: getNumberFieldTokens(context),\n collapse: getCollapseTokens(context),\n tag: getTagTokens(context),\n skeleton: getSkeletonTokens(context),\n stepper: getStepperTokens(context),\n menu: getMenuTokens(context),\n});\n\ninterface SemanticTheme {\n colors: SemanticColors;\n spacing: SemanticSpacing;\n borderRadius: SemanticBorderRadius;\n typography: SemanticTypography;\n shadows: SemanticShadows;\n}\n\nexport const createDesignTheme = (\n semantic: SemanticTheme,\n mode: 'light' | 'dark' = 'light'\n): AppTheme => {\n const global = {\n colors: globalColors,\n spacing: globalSpacing,\n radii: globalRadii,\n typography: globalTypography,\n shadows: globalShadows,\n gradients: globalGradients,\n };\n\n const context: ThemeContext = {\n global,\n semantic,\n mode,\n };\n\n return {\n global,\n semantic,\n components: createComponentTokens(context),\n };\n};\n\nexport const defaultLightDesignTheme = createDesignTheme(lightSemantic, 'light');\nexport const defaultDarkDesignTheme = createDesignTheme(darkSemantic, 'dark');\n\n","/**\n * Design 组件的主题提供者\n * \n * 这是一个便捷的包装器,自动使用默认的设计主题\n * 用户可以直接使用而不需要手动导入 theme\n */\n\nimport type { ReactNode } from 'react'\nimport { CustomThemeProvider } from '@kingsoft-ai/theme'\nimport { defaultLightDesignTheme, defaultDarkDesignTheme } from './theme'\nimport type { AppTheme } from '@kingsoft-ai/theme'\n\nexport interface DesignThemeProviderProps {\n /** 子组件 */\n children: ReactNode\n /** \n * 主题模式\n * @default 'light'\n */\n mode?: 'light' | 'dark'\n /**\n * 自定义主题对象(可选)\n * 如果提供,将覆盖默认主题\n */\n theme?: AppTheme\n}\n\n/**\n * Design 组件主题提供者\n * \n * @example\n * ```tsx\n * // 使用默认亮色主题\n * <DesignThemeProvider>\n * <Button>点击我</Button>\n * </DesignThemeProvider>\n * \n * // 使用暗色主题\n * <DesignThemeProvider mode=\"dark\">\n * <Button>点击我</Button>\n * </DesignThemeProvider>\n * \n * // 使用自定义主题\n * <DesignThemeProvider theme={customTheme}>\n * <Button>点击我</Button>\n * </DesignThemeProvider>\n * ```\n */\nexport const DesignThemeProvider = ({ \n children, \n mode = 'light',\n theme \n}: DesignThemeProviderProps) => {\n // 如果提供了自定义主题,使用自定义主题;否则根据 mode 选择默认主题\n const selectedTheme = theme ?? (mode === 'dark' ? defaultDarkDesignTheme : defaultLightDesignTheme)\n \n return (\n <CustomThemeProvider theme={selectedTheme}>\n {children}\n </CustomThemeProvider>\n )\n}\n\n"],"names":["REACT_ELEMENT_TYPE","REACT_FRAGMENT_TYPE","jsxProd","type","config","maybeKey","key","propName","reactJsxRuntime_production","getComponentNameFromType","REACT_CLIENT_REFERENCE","REACT_PROFILER_TYPE","REACT_STRICT_MODE_TYPE","REACT_SUSPENSE_TYPE","REACT_SUSPENSE_LIST_TYPE","REACT_ACTIVITY_TYPE","REACT_PORTAL_TYPE","REACT_CONTEXT_TYPE","REACT_CONSUMER_TYPE","REACT_FORWARD_REF_TYPE","innerType","REACT_MEMO_TYPE","REACT_LAZY_TYPE","testStringCoercion","value","checkKeyStringCoercion","JSCompiler_inline_result","JSCompiler_temp_const","JSCompiler_inline_result$jscomp$0","getTaskName","name","getOwner","dispatcher","ReactSharedInternals","UnknownOwner","hasValidKey","hasOwnProperty","getter","defineKeyPropWarningGetter","props","displayName","warnAboutAccessingKey","specialPropKeyWarningShown","elementRefGetterWithDeprecationWarning","componentName","didWarnAboutElementRef","ReactElement","owner","debugStack","debugTask","refProp","jsxDEVImpl","isStaticChildren","children","isArrayImpl","validateChildKeys","keys","k","didWarnAboutKeySpread","node","isValidElement","object","React","require$$0","createTask","callStackForError","unknownOwnerDebugStack","unknownOwnerDebugTask","reactJsxRuntime_development","trackActualOwner","jsxRuntimeModule","require$$1","$bdb11010cef70236$export$d41a04c74483c6ef","heldValue","$bdb11010cef70236$export$cd8c9cb68f842629","idA","idB","setIdsA","ref","setIdsB","$ff5963eb1fccf552$export$e08e3b67e392101e","callbacks","args","callback","r","e","t","f","n","o","clsx","$3ef42575df84b30b$export$9d1611c77c2fe928","result","i","a","b","$7jXr9$clsx","$7215afc6de606d6b$export$de79e2c695e052f3","element","$7215afc6de606d6b$var$supportsPreventScroll","scrollableElements","$7215afc6de606d6b$var$getScrollableElements","$7215afc6de606d6b$var$restoreScrollPosition","$7215afc6de606d6b$var$supportsPreventScrollCached","parent","rootScrollingElement","scrollTop","scrollLeft","$458b0a5536c1a7cf$export$40bfa8c7b0832715","defaultValue","onChange","stateValue","setStateValue","$3whtM$useState","isControlledRef","$3whtM$useRef","isControlled","$3whtM$useEffect","wasControlled","currentValue","setValue","$3whtM$useCallback","onChangeCaller","onChangeArgs","oldValue","functionArgs","interceptedValue","buttonVariants","buttonSizes","getVariantStyles","variant","theme","variantToken","components","button","hasShadow","gradientToken","defaultShadow","shadow","default","hoverShadow","hover","css","text","background","gradientFrom","gradientTo","getStateValue","obj","state","getBorderColor","border","getBackground","getSizeStyles","size","sizeToken","height","fontSize","paddingInline","iconSize","ButtonRoot","styled","global","typography","fontFamily","fontWeight","borderRadius","transition","fullWidth","primary","disabled","opacity","ButtonContent","span","gap","IconWrapper","isLoading","Label","VARIANTS","SIZES","Button","forwardRef","icon","loading","isDisabled","className","ariaProps","forwardedRef","innerRef","useRef","buttonProps","isPressed","useButton","elementType","jsx","mergeProps","undefined","jsxs","animation","iconButtonAppearances","iconButtonTones","iconButtonSizes","appearance","tone","tokens","iconButton","resolve","defaultState","hoverState","activeState","edge","IconButtonRoot","focusRing","width","color","offset","IconSlot","isHidden","LoadingSpinner","ICON_BUTTON_APPEARANCES","ICON_BUTTON_TONES","ICON_BUTTON_SIZES","IconButton","label","loadingLabel","isDevEnvironment","useMemo","globalThis","process","env","NODE_ENV","ariaLabel","ariaLabelledby","console","warn","Boolean","VisuallyHidden","sheetForTag","tag","createStyleElement","options","StyleSheet","_this","before","_proto","nodes","rule","sheet","_tag$parentNode","MS","MOZ","WEBKIT","COMMENT","RULESET","DECLARATION","IMPORT","KEYFRAMES","LAYER","abs","from","assign","hash","length","charat","trim","match","pattern","replace","replacement","indexof","search","index","substr","begin","end","strlen","sizeof","append","array","combine","line","column","position","character","characters","root","copy","char","prev","next","peek","caret","slice","token","alloc","dealloc","delimit","delimiter","whitespace","escaping","count","commenter","identifier","compile","parse","rules","rulesets","pseudo","points","declarations","atrule","property","previous","variable","scanning","ampersand","reference","comment","declaration","ruleset","post","j","x","y","z","serialize","output","stringify","middleware","collection","rulesheet","memoize","fn","cache","arg","identifierWithPointTracking","toRules","parsed","getRules","fixedElements","compat","isImplicitRule","parentRules","removeLabel","prefix","prefixer","defaultStylisPlugins","createCache","ssrStyles","dataEmotionAttribute","stylisPlugins","inserted","container","nodesToHydrate","attrib","_insert","omnipresentPlugins","currentSheet","finalizingPlugins","serializer","stylis","styles","selector","serialized","shouldCache","c","d","g","h","l","m","p","q","v","w","u","A","reactIs_production_min","hasSymbol","REACT_PROVIDER_TYPE","REACT_ASYNC_MODE_TYPE","REACT_CONCURRENT_MODE_TYPE","REACT_BLOCK_TYPE","REACT_FUNDAMENTAL_TYPE","REACT_RESPONDER_TYPE","REACT_SCOPE_TYPE","isValidElementType","typeOf","$$typeof","$$typeofType","AsyncMode","ConcurrentMode","ContextConsumer","ContextProvider","Element","ForwardRef","Fragment","Lazy","Memo","Portal","Profiler","StrictMode","Suspense","hasWarnedAboutDeprecatedIsAsyncMode","isAsyncMode","isConcurrentMode","isContextConsumer","isContextProvider","isElement","isForwardRef","isFragment","isLazy","isMemo","isPortal","isProfiler","isStrictMode","isSuspense","reactIs_development","reactIsModule","reactIs","FORWARD_REF_STATICS","MEMO_STATICS","TYPE_STATICS","isBrowser","getRegisteredStyles","registered","registeredStyles","classNames","rawClassName","registerStyles","isStringTag","insertStyles","current","murmur2","str","len","unitlessKeys","hyphenateRegex","animationRegex","isCustomProperty","isProcessableValue","processStyleName","styleName","processStyleValue","p1","p2","cursor","unitless","handleInterpolation","mergedProps","interpolation","componentSelector","keyframes","serializedStyles","createStringFromObject","previousCursor","asString","string","_i","interpolated","labelPattern","serializeStyles","stringMode","strings","asTemplateStringsArr","templateStringsArr","identifierName","hashString","syncFallback","create","useInsertionEffect","useInsertionEffectAlwaysWithSyncFallback","EmotionCacheContext","withEmotionCache","func","useContext","ThemeContext","hasOwn","typePropName","createEmotionProps","newProps","_key","Insertion","_ref","Emotion","cssProp","WrappedComponent","_key2","Emotion$1","ReactJSXRuntime.jsx","ReactJSXRuntime.jsxs","reactCompilerRuntime_production","reactCompilerRuntime_development","compilerRuntimeModule","checkboxContainer","checkboxControl","checkbox","control","borderWidth","borderColor","checked","disabledChecked","checkboxIcon","checkboxLabel","lineHeight","CheckIcon","t0","$","_c","useTheme","t1","t2","Symbol","for","t3","IndeterminateIcon","Checkbox","controlledChecked","inputProps","style","defaultChecked","indeterminate","inputRef","setHover","useState","internalChecked","setInternalChecked","t4","useEffect","t5","t6","t7","event","newChecked","target","handleChange","t8","t9","t10","t11","t12","t13","t14","t15","t16","F","C","W","n1","Q","R","I","D","G","X","U","B","J","O","s","M","S","V","Y","E","K","T","L","e1","Z","N","r1","_","H","P","l1","o1","i1","s1","a1","u1","d1","c1","C1","f1","h1","L1","m1","x1","j1","v1","k1","R1","O1","M1","_1","E1","y1","w1","b1","T1","N1","checkboxButtonSizeTokens","sm","paddingX","paddingY","minHeight","checkmarkSize","checkmarkIcon","md","lg","checkboxButtonContainer","checkboxButtonWrapper","colors","neutral","common","white","blue","checkboxButtonCheckmark","CheckboxButton","CheckOutline","slideDown","slideUp","CollapseRoot","div","collapse","CollapseItemWrapper","isLast","divider","CollapseHeader","padding","header","arrow","ArrowWrapper","arrowSize","isExpanded","TitleWrapper","TitleText","title","SuffixWrapper","CollapseContentWrapper","contentHeight","CollapseContentInner","content","ContentText","Collapse","activeKey","activeKeyProp","defaultActiveKey","accordion","internalActiveKey","setInternalActiveKey","Array","isArray","activeKeys","itemKey","expanded","newActiveKey","currentKeys","filter","items","Children","toArray","itemCount","map","child","itemKey_0","expanded_0","includes","last","cloneElement","renderChildren","CollapseItem","suffix","contentRef","setContentHeight","scrollHeight","handleToggle","preventDefault","handleKeyDown","ChevronDownOutline","t17","t18","t19","t20","t21","isFocused","isError","isHovered","input","error","focus","InputRoot","InputWrapper","StyledInput","placeholder","ClearButton","counter","Counter","CloseIcon","Input","clearable","errorMessage","showCounter","onFocus","onBlur","maxLength","description","id","ariaDescribedBy","restProps","generatedId","Math","random","toString","setIsFocused","setIsHovered","internalValue","setInternalValue","String","handleFocus","handleBlur","handleClear","nativeInputValueSetter","Object","getOwnPropertyDescriptor","window","HTMLInputElement","prototype","set","call","Event","bubbles","defineProperty","writable","currentLength","showClearButton","inputId","descriptionId","errorId","describedBy","join","display","marginBottom","marginTop","MenuContainer","collapsed","menu","scrollbar","trackColor","thumbColor","MenuContent","MenuItemContainer","item","isSubItem","subItem","paddingLeft","active","semantic","brand","primaryActive","MenuItemIcon","MenuItemLabel","MenuItemArrow","MenuGroupContainer","group","MenuGroupTitle","groupTitle","MenuGroupItems","SubMenuPopoverContainer","popover","boxShadow","SubMenuPopoverContent","SubMenuPopoverItem","Menu","SubMenuPopover","visible","anchorRef","onClose","onMouseEnter","onMouseLeave","popoverRef","top","left","setPosition","updatePosition","rect","getBoundingClientRect","right","addEventListener","removeEventListener","handleClickOutside","contains","timer","setTimeout","document","clearTimeout","createPortal","body","MenuItem","showArrow","arrowExpanded","subMenu","onClick","itemRef","showPopover","setShowPopover","hoverTimerRef","closeTimerRef","clearTimers","handleMouseEnter","handleMouseLeave","MenuGroup","SubMenuItem","getDisabledStyles","backgroundColor","numberfield","NumberRoot","NumberGroup","side","inset","controls","arrows","widthsm","widthLg","NumberField","Description","ArrowGroup","ArrowButton","direction","buttonSizeSm","buttonSizeLg","SideButton","PlusIcon","PlusOutline","MinusIcon","MinusOutline","UpIcon","ChevronUpOutline","DownIcon","NumberInput","max","min","onValueChange","rest","step","internal","setInternal","clamp","v_0","nativeSetter","ev","raw","Number","final","isNaN","handleInputChange","next_0","increment","next_1","decrement","e_0","atMin","atMax","t22","t23","t24","t25","RadioWrapper","shouldForwardProp","prop","alignItems","radio","RadioRoot","justifyContent","borderStyle","flexShrink","RadioNative","margin","transform","indicator","RadioIndicator","RadioText","flexDirection","minWidth","RadioLabel","RadioDescription","Radio","skeletonVariants","skeletonRadii","shimmerKeyframes","shimmerMixin","skeleton","highlight","duration","easing","SkeletonRoot","base","$variant","$radius","radius","circle","$width","$height","block","$animate","SkeletonStack","SkeletonLine","pill","$customWidth","$isLast","lastLineWidth","toCssSize","Skeleton","lines","animate","loaded","resolvedWidth","resolvedHeight","lineCount","shouldRenderStack","accessibilityProps","role","dotPulse","StepperRoot","orientation","StepRoot","labelPlacement","stepper","StepIconContainer","dot","status","bgColor","pulseColor","bg","StepContent","StepTitle","titleColors","waiting","StepDescription","StepConnector","isFinished","iconSizeToken","topPos","parseInt","Stepper","T0","steps","stepProps","Step","CloseOutline","renderIcon","resolvedLabelPlacement","shouldRenderIcon","iconContent","showVerticalLine","showHorizontalLine","progressTypes","progressSizes","progressStatuses","getStatusColor","normal","danger","warning","success","LineProgressRoot","LineProgressTrack","secondary","LineProgressBar","percent","ProgressText","StatusIcon","LineProgressInfo","CircleProgressRoot","CircleProgressSvg","svg","CircleProgressTrack","CircleProgressBar","CircleProgressContent","CircleProgressIcon","TYPES","STATUSES","SuccessIcon","ErrorIcon","WarningIcon","getStatusIcon","Progress","showPercent","showIcon","minValue","maxValue","progressBarProps","labelProps","useProgressBar","shouldShowIcon","round","circleSize","strokeWidth","getSizeConfig","circumference","PI","strokeDashoffset","showPercentInCircle","$e5be200c675c3b3a$export$aca958c65c314e6c","$e5be200c675c3b3a$var$CUSTOM_VALIDITY_STATE","$e5be200c675c3b3a$export$dad6ae84456c676a","$e5be200c675c3b3a$export$571b5131b7e65c11","$69F46$createContext","$e5be200c675c3b3a$export$a763b9476acd3eb","$e5be200c675c3b3a$export$fc1a364ae1f3ff10","realtimeValidation","displayValidation","updateValidation","resetValidation","commitValidation","$e5be200c675c3b3a$var$useFormValidationStateImpl","isInvalid","validationState","builtinValidation","validate","validationBehavior","controlledError","clientError","$69F46$useMemo","validateErrors","$e5be200c675c3b3a$var$runValidate","$e5be200c675c3b3a$var$getValidationResult","serverErrors","$69F46$useContext","serverErrorMessages","$e5be200c675c3b3a$var$asArray","lastServerErrors","setLastServerErrors","$69F46$useState","isServerErrorCleared","setServerErrorCleared","serverError","nextValidation","$69F46$useRef","currentValidity","setCurrentValidity","lastError","commitQueued","setCommitQueued","$e5be200c675c3b3a$var$isEqualValidation","$69F46$useEffect","errors","$a02d57049d202695$export$d085fb9e920b5ca7","_node_prevKey","_node_nextKey","_this_keyMap_get","idx","visit","_last_key","$e40ea825a81a3709$export$52baac22726c72bf","anchorKey","currentKey","$7af3f5b51489e0b5$var$equalSets","setA","setB","$7af3f5b51489e0b5$export$253fe78d46329472","selectionMode","disallowEmptySelection","allowDuplicateSelectionEvents","selectionBehaviorProp","disabledBehavior","isFocusedRef","$6tM1y$useRef","setFocused","$6tM1y$useState","focusedKeyRef","childFocusStrategyRef","setFocusedKey","selectedKeysProp","$6tM1y$useMemo","$7af3f5b51489e0b5$var$convertSelection","defaultSelectedKeys","selectedKeys","setSelectedKeys","$6tM1y$useControlledState","disabledKeysProp","selectionBehavior","setSelectionBehavior","lastSelectionBehavior","$6tM1y$useEffect","childFocusStrategy","selection","$c1d7fb2ec91bae71$var$Item","context","childItems","rendered","textValue","$c1d7fb2ec91bae71$var$hasChildItems","$6Fm0V$react","$c1d7fb2ec91bae71$export$6d08773d2e66f8f2","$9fc4852771d079eb$var$Section","$gtysd$react","$9fc4852771d079eb$export$6e2c8f0811a474ce","$eb2240fc39a57fa5$export$bf788dd355e3a401","$eb2240fc39a57fa5$var$iterable","$fzaAv$react","partialNode","parentKey","_v_key","parentNode","_partialNode_index","cached","childNodes","_partialNode_index1","childNode","_childNode_key","nodeKey","$eb2240fc39a57fa5$var$compose","_childNode_value","_parentNode_type","$eb2240fc39a57fa5$var$capitalize","builder","_partialNode_value","_partialNode_textValue","iterator","iterable","outer","inner","$7613b1592d41b092$export$6cd28814d92fa9c9","factory","$lbNth$useMemo","$c5a24bc478652b5f$export$1005530eda016c13","$c5a24bc478652b5f$export$fbdeaa6a76694f71","$c5a24bc478652b5f$export$5f3398f8733f90e2","$c5a24bc478652b5f$export$8c434b3a7a4dad6","aAncestors","$c5a24bc478652b5f$var$getAncestors","bAncestors","firstNonMatchingAncestor","parents","currNode","$d496c0a20b6e58ec$export$6c8a5aaad13c9852","mappedKey","allKeys","first","$jkhUT$compareNodeOrder","_first_key","toKey","mappedToKey","_selectedKeys_anchorKey","_selectedKeys_currentKey","to","fromItem","toItem","_this_layoutDelegate","addKeys","_getFirstItem","_getFirstItem_key","$jkhUT$getFirstItem","$jkhUT$getChildNodes","_item_props","_this_collection_getItem_props","_this_collection_getItem","_options_allowsCellSelection","$e72dd72e1c76a225$export$2f645645f7bca764","layoutDelegate","selectionState","$d5vlZ$useMultipleSelectionState","disabledKeys","$d5vlZ$useMemo","$d5vlZ$useCallback","$d5vlZ$useCollection","selectionManager","$d5vlZ$SelectionManager","$e72dd72e1c76a225$var$useFocusedKeyReset","cachedCollection","$d5vlZ$useRef","$d5vlZ$useEffect","startItem","cachedItemNodes","itemNode","itemNodes","_cachedItemNodes_length","_itemNodes_length","diff","_startItem_index","_startItem_index1","_itemNodes_length1","newNode","isReverseSearching","_startItem_index2","_startItem_index3","$fc909762b330b746$export$61c6a8c84e605fb6","isOpen","setOpen","$hnMvi$useControlledState","open","$hnMvi$useCallback","close","toggle","$2bc3a590c5373a4e$export$5159ec8b34d4ec12","triggerState","$6FfNf$useOverlayTriggerState","focusStrategy","setFocusStrategy","$6FfNf$useState","$6FfNf$useMemo","_props_defaultSelectedKey","controlledValue","setControlledValue","$6FfNf$useControlledState","displayValue","_props_onSelectionChange","_value_","listState","$6FfNf$useListState","$2bc3a590c5373a4e$var$convertValue","_keys_values_next_value","selectedKey","selectedItems","$6FfNf$useFormValidationState","initialValue","_selectedItems_","bordered","colorToken","checkedHover","checkedActive","TagRoot","TagContent","CloseButton","closeIconSize","AddButton","Tag","closable","checkable","actualVariant","isChecked","handleClick","stopPropagation","handleClose","TagAdd","Add","selectSizes","select","isMultiple","SelectWrapper","SelectTrigger","SelectValue","isPlaceholder","SelectIcon","ListBoxPopup","ListBoxContent","ul","OptionItem","li","option","isSelected","selected","focused","OptionText","OptionIcon","LoadingWrapper","xs","EmptyState","TagsContainer","CheckboxWrapper","Popover","triggerRef","placement","triggerWidth","setTriggerWidth","useLayoutEffect","shouldCloseOnBlur","isDismissable","overlayProps","overlayPropsFromUseOverlay","useOverlay","targetRef","overlayRef","resolvedPlacement","useOverlayPosition","onInteractOutside","trigger","zIndex","DismissButton","Overlay","FocusScope","ListBox","listBoxProps","useListBox","Option","optionProps","useOption","_temp","MultiListBox","SelectInner","maxTagCount","onSelectionChange","renderItems","Item","lastPointerTypeRef","singleState","useSelectState","multiState","useListState","multiOpen","setMultiOpen","effectiveOpen","selectedKeySet","has","push","visibleTags","overflowCount","triggerProps","valueProps","menuProps","descriptionProps","errorMessageProps","useSelect","handlePressStart","pointerType","focusWithoutScrolling","handlePress","onPressStart","onPress","handleRemoveTag","newKeys","Set","delete","renderTriggerContent","selectedItem","popoverState","HiddenSelect","marginRight","Select","Section","tableSizes","tableVariants","tableBorderRadiusMap","getTableRadius","TableContainer","showScrollbar","scrollX","scrollY","StyledTable","table","component","fontSizeSm","surface","surfaceSubtle","TableHeader","thead","TableHeaderRow","tr","TableHeaderCell","th","align","caption","fixed","sortable","surfaceStrong","SortIndicator","TableBody","tbody","TableRow","isSubRow","primarySubtle","selectable","expandable","TableCell","td","level","CheckboxCell","ExpandButton","tertiary","CellContent","ellipsis","wrapText","TableInner","columns","dataSource","scroll","controlledSelectedKeys","expandedKeys","controlledExpandedKeys","onExpandChange","expandedRowRender","sortConfig","onSortChange","onRowClick","emptyText","internalSelectedKeys","setInternalSelectedKeys","internalExpandedKeys","setInternalExpandedKeys","isScrollbarVisible","setIsScrollbarVisible","containerRef","scrollHideTimerRef","handleSelectionChange","useCallback","handleExpandChange","add","handleSort","newDirection","allSelected","every","record","selectedCount","handleScroll","passive","renderRows","data","flatMap","hasChildren","mainRow","colIndex","isFirstColumn","ChevronRightOutline","render","expandedRow","childRows","textAlign","TableWithRef","Table","$3017fa7ffdddec74$export$8042c6c013fd5226","isReadOnly","setSelected","$d8rik$useControlledState","$d8rik$useState","updateSelected","toggleState","_props_defaultSelected","switchSizes","switch","thumbSize","SwitchRoot","unchecked","hasInnerLabel","isFocusVisible","SwitchContent","SwitchLabel","SwitchThumb","thumb","SwitchLabelWrapper","SwitchLabelText","Switch","checkedLabel","uncheckedLabel","useToggleState","useSwitch","focusProps","useFocusRing","currentLabel","switchElement","uploadStatuses","UploadRoot","UploadDropzone","isDragActive","UploadIconWrapper","UploadTextWrapper","UploadMainText","UploadSecondaryText","UploadLink","FileList","FileItem","FileInfoRow","FileIcon","FileName","DeleteButton","ProgressWrapper","ProgressTrack","ProgressBar","HiddenInput","DefaultUploadIcon","FileIconSvg","DeleteIcon","generateUid","Date","now","Upload","accept","multiple","maxSize","maxCount","fileList","controlledFileList","defaultFileList","beforeUpload","customRequest","mainText","secondaryText","fileTypeHint","downloadTemplateText","onDownloadTemplate","dropzoneRef","internalFileList","setInternalFileList","setIsDragActive","newFileList","updateFileList","handleFiles","files","filesArray","newFiles","file","uploadFile","uid","updatedFileList","forEach","uploadFile_0","onProgress","onSuccess","f_0","onError","error_0","f_1","message","simulateUpload","currentFileList","percent_0","interval","setInterval","clearInterval","f_2","f_3","handleDragEnter","e_1","handleDragLeave","handleDragOver","e_3","files_0","dataTransfer","handleDrop","click","uid_0","newFileList_0","f_4","handleDelete","renderStatusIcon","_temp2","e_4","file_0","e_2","getButtonTokens","primaryHover","onBrand","dangerHover","dangerActive","dangerOn","gradient","gradients","blueViolet","spacing","radii","r3","regular","getIconButtonTokens","solid","outline","strong","dangerSubtle","ghost","getCheckboxTokens","r2","word","getRadioTokens","getSwitchTokens","r5","getInputTokens","getSelectTokens","getNumberFieldTokens","getCollapseTokens","getTagTokens","mode","isDark","red","orange","yellow","green","lavender","lilac","carmine","rose","mint","olive","getSkeletonTokens","r4","r0","getStepperTokens","medium","wait","finish","getMenuTokens","xl","createComponentTokens","createDesignTheme","globalColors","globalSpacing","globalRadii","globalTypography","shadows","globalShadows","globalGradients","defaultLightDesignTheme","lightSemantic","defaultDarkDesignTheme","darkSemantic","DesignThemeProvider","selectedTheme","CustomThemeProvider"],"mappings":"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","x_google_ignoreList":[0,1,2,3,4,5,6,7,8,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,63,64,65,66,67,68,69,70,71,72,73,74,75,84]}
|