aha-components 1.2.1 → 1.3.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (104) hide show
  1. package/dist/Button.esm.js +1 -1
  2. package/dist/Button.esm.js.map +1 -1
  3. package/dist/Button.js +1 -1
  4. package/dist/Button.js.map +1 -1
  5. package/dist/Checkbox.esm.js +2 -0
  6. package/dist/Checkbox.esm.js.map +1 -0
  7. package/dist/Checkbox.js +2 -0
  8. package/dist/Checkbox.js.map +1 -0
  9. package/dist/Form.esm.js +2 -0
  10. package/dist/Form.esm.js.map +1 -0
  11. package/dist/Form.js +2 -0
  12. package/dist/Form.js.map +1 -0
  13. package/dist/Input.esm.js +1 -1
  14. package/dist/Input.esm.js.map +1 -1
  15. package/dist/Input.js +1 -1
  16. package/dist/Input.js.map +1 -1
  17. package/dist/MenuList.esm.js +2 -0
  18. package/dist/MenuList.esm.js.map +1 -0
  19. package/dist/MenuList.js +2 -0
  20. package/dist/MenuList.js.map +1 -0
  21. package/dist/Pagination.esm.js +2 -0
  22. package/dist/Pagination.esm.js.map +1 -0
  23. package/dist/Pagination.js +2 -0
  24. package/dist/Pagination.js.map +1 -0
  25. package/dist/Progress.esm.js +2 -0
  26. package/dist/Progress.esm.js.map +1 -0
  27. package/dist/Progress.js +2 -0
  28. package/dist/Progress.js.map +1 -0
  29. package/dist/Radio.esm.js +2 -0
  30. package/dist/Radio.esm.js.map +1 -0
  31. package/dist/Radio.js +2 -0
  32. package/dist/Radio.js.map +1 -0
  33. package/dist/Select.esm.js +2 -0
  34. package/dist/Select.esm.js.map +1 -0
  35. package/dist/Select.js +2 -0
  36. package/dist/Select.js.map +1 -0
  37. package/dist/Switch.esm.js +2 -0
  38. package/dist/Switch.esm.js.map +1 -0
  39. package/dist/Switch.js +2 -0
  40. package/dist/Switch.js.map +1 -0
  41. package/dist/Tab.esm.js +2 -0
  42. package/dist/Tab.esm.js.map +1 -0
  43. package/dist/Tab.js +2 -0
  44. package/dist/Tab.js.map +1 -0
  45. package/dist/Table.esm.js +2 -0
  46. package/dist/Table.esm.js.map +1 -0
  47. package/dist/Table.js +2 -0
  48. package/dist/Table.js.map +1 -0
  49. package/dist/Tag.esm.js +1 -1
  50. package/dist/Tag.esm.js.map +1 -1
  51. package/dist/Tag.js +1 -1
  52. package/dist/Tag.js.map +1 -1
  53. package/dist/Textarea.esm.js +2 -0
  54. package/dist/Textarea.esm.js.map +1 -0
  55. package/dist/Textarea.js +2 -0
  56. package/dist/Textarea.js.map +1 -0
  57. package/dist/Tooltip.esm.js +2 -0
  58. package/dist/Tooltip.esm.js.map +1 -0
  59. package/dist/Tooltip.js +2 -0
  60. package/dist/Tooltip.js.map +1 -0
  61. package/dist/components/Button/Button.stories.d.ts +8 -7
  62. package/dist/components/Button/index.d.ts +20 -5
  63. package/dist/components/Checkbox/Checkbox.stories.d.ts +12 -0
  64. package/dist/components/Checkbox/index.d.ts +12 -0
  65. package/dist/components/Form/Form.stories.d.ts +15 -0
  66. package/dist/components/Form/FormContext.d.ts +34 -0
  67. package/dist/components/Form/FormItem.d.ts +58 -0
  68. package/dist/components/Form/index.d.ts +57 -0
  69. package/dist/components/Input/Input.stories.d.ts +16 -0
  70. package/dist/components/Input/index.d.ts +36 -9
  71. package/dist/components/MenuList/MenuList.stories.d.ts +15 -0
  72. package/dist/components/MenuList/MenuList.test.d.ts +1 -0
  73. package/dist/components/MenuList/index.d.ts +76 -0
  74. package/dist/components/Pagination/Pagination.stories.d.ts +16 -0
  75. package/dist/components/Pagination/index.d.ts +27 -0
  76. package/dist/components/Progress/Progress.stories.d.ts +18 -0
  77. package/dist/components/Progress/Progress.test.d.ts +1 -0
  78. package/dist/components/Progress/index.d.ts +33 -0
  79. package/dist/components/Radio/Radio.stories.d.ts +10 -0
  80. package/dist/components/Radio/index.d.ts +13 -0
  81. package/dist/components/Select/Select.stories.d.ts +17 -0
  82. package/dist/components/Select/index.d.ts +74 -0
  83. package/dist/components/Switch/Switch.stories.d.ts +14 -0
  84. package/dist/components/Switch/index.d.ts +27 -0
  85. package/dist/components/Tab/Tab.stories.d.ts +15 -0
  86. package/dist/components/Tab/index.d.ts +25 -0
  87. package/dist/components/Table/Table.stories.d.ts +16 -0
  88. package/dist/components/Table/index.d.ts +166 -0
  89. package/dist/components/Tag/Tag.stories.d.ts +1 -0
  90. package/dist/components/Tag/index.d.ts +1 -1
  91. package/dist/components/Textarea/Textarea.stories.d.ts +15 -0
  92. package/dist/components/Textarea/index.d.ts +38 -0
  93. package/dist/components/Tooltip/Tooltip.stories.d.ts +18 -0
  94. package/dist/components/Tooltip/index.d.ts +27 -0
  95. package/dist/icons/index.d.ts +33 -0
  96. package/dist/index.d.ts +696 -7
  97. package/dist/index.esm.js +1 -1
  98. package/dist/index.esm.js.map +1 -1
  99. package/dist/index.js +1 -1
  100. package/dist/index.js.map +1 -1
  101. package/dist/theme/Theme.stories.d.ts +10 -0
  102. package/dist/theme/ThemeContext.d.ts +11 -0
  103. package/dist/theme/utils.d.ts +10 -0
  104. package/package.json +28 -24
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Table.js","sources":["../node_modules/tslib/tslib.es6.js","../src/theme/ThemeContext.tsx","../src/components/Button/index.tsx","../src/icons/index.tsx","../src/components/Pagination/index.tsx","../src/components/Checkbox/index.tsx","../src/components/Table/index.tsx"],"sourcesContent":["/******************************************************************************\r\nCopyright (c) Microsoft Corporation.\r\n\r\nPermission to use, copy, modify, and/or distribute this software for any\r\npurpose with or without fee is hereby granted.\r\n\r\nTHE SOFTWARE IS PROVIDED \"AS IS\" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH\r\nREGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY\r\nAND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT,\r\nINDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM\r\nLOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR\r\nOTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR\r\nPERFORMANCE OF THIS SOFTWARE.\r\n***************************************************************************** */\r\n/* global Reflect, Promise, SuppressedError, Symbol, Iterator */\r\n\r\nvar extendStatics = function(d, b) {\r\n extendStatics = Object.setPrototypeOf ||\r\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\r\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\r\n return extendStatics(d, b);\r\n};\r\n\r\nexport function __extends(d, b) {\r\n if (typeof b !== \"function\" && b !== null)\r\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\r\n extendStatics(d, b);\r\n function __() { this.constructor = d; }\r\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n}\r\n\r\nexport var __assign = function() {\r\n __assign = Object.assign || function __assign(t) {\r\n for (var s, i = 1, n = arguments.length; i < n; i++) {\r\n s = arguments[i];\r\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p];\r\n }\r\n return t;\r\n }\r\n return __assign.apply(this, arguments);\r\n}\r\n\r\nexport function __rest(s, e) {\r\n var t = {};\r\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)\r\n t[p] = s[p];\r\n if (s != null && typeof Object.getOwnPropertySymbols === \"function\")\r\n for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {\r\n if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))\r\n t[p[i]] = s[p[i]];\r\n }\r\n return t;\r\n}\r\n\r\nexport function __decorate(decorators, target, key, desc) {\r\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\r\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\r\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\r\n return c > 3 && r && Object.defineProperty(target, key, r), r;\r\n}\r\n\r\nexport function __param(paramIndex, decorator) {\r\n return function (target, key) { decorator(target, key, paramIndex); }\r\n}\r\n\r\nexport function __esDecorate(ctor, descriptorIn, decorators, contextIn, initializers, extraInitializers) {\r\n function accept(f) { if (f !== void 0 && typeof f !== \"function\") throw new TypeError(\"Function expected\"); return f; }\r\n var kind = contextIn.kind, key = kind === \"getter\" ? \"get\" : kind === \"setter\" ? \"set\" : \"value\";\r\n var target = !descriptorIn && ctor ? contextIn[\"static\"] ? ctor : ctor.prototype : null;\r\n var descriptor = descriptorIn || (target ? Object.getOwnPropertyDescriptor(target, contextIn.name) : {});\r\n var _, done = false;\r\n for (var i = decorators.length - 1; i >= 0; i--) {\r\n var context = {};\r\n for (var p in contextIn) context[p] = p === \"access\" ? {} : contextIn[p];\r\n for (var p in contextIn.access) context.access[p] = contextIn.access[p];\r\n context.addInitializer = function (f) { if (done) throw new TypeError(\"Cannot add initializers after decoration has completed\"); extraInitializers.push(accept(f || null)); };\r\n var result = (0, decorators[i])(kind === \"accessor\" ? { get: descriptor.get, set: descriptor.set } : descriptor[key], context);\r\n if (kind === \"accessor\") {\r\n if (result === void 0) continue;\r\n if (result === null || typeof result !== \"object\") throw new TypeError(\"Object expected\");\r\n if (_ = accept(result.get)) descriptor.get = _;\r\n if (_ = accept(result.set)) descriptor.set = _;\r\n if (_ = accept(result.init)) initializers.unshift(_);\r\n }\r\n else if (_ = accept(result)) {\r\n if (kind === \"field\") initializers.unshift(_);\r\n else descriptor[key] = _;\r\n }\r\n }\r\n if (target) Object.defineProperty(target, contextIn.name, descriptor);\r\n done = true;\r\n};\r\n\r\nexport function __runInitializers(thisArg, initializers, value) {\r\n var useValue = arguments.length > 2;\r\n for (var i = 0; i < initializers.length; i++) {\r\n value = useValue ? initializers[i].call(thisArg, value) : initializers[i].call(thisArg);\r\n }\r\n return useValue ? value : void 0;\r\n};\r\n\r\nexport function __propKey(x) {\r\n return typeof x === \"symbol\" ? x : \"\".concat(x);\r\n};\r\n\r\nexport function __setFunctionName(f, name, prefix) {\r\n if (typeof name === \"symbol\") name = name.description ? \"[\".concat(name.description, \"]\") : \"\";\r\n return Object.defineProperty(f, \"name\", { configurable: true, value: prefix ? \"\".concat(prefix, \" \", name) : name });\r\n};\r\n\r\nexport function __metadata(metadataKey, metadataValue) {\r\n if (typeof Reflect === \"object\" && typeof Reflect.metadata === \"function\") return Reflect.metadata(metadataKey, metadataValue);\r\n}\r\n\r\nexport function __awaiter(thisArg, _arguments, P, generator) {\r\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\r\n return new (P || (P = Promise))(function (resolve, reject) {\r\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\r\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\r\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\r\n step((generator = generator.apply(thisArg, _arguments || [])).next());\r\n });\r\n}\r\n\r\nexport function __generator(thisArg, body) {\r\n var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g = Object.create((typeof Iterator === \"function\" ? Iterator : Object).prototype);\r\n return g.next = verb(0), g[\"throw\"] = verb(1), g[\"return\"] = verb(2), typeof Symbol === \"function\" && (g[Symbol.iterator] = function() { return this; }), g;\r\n function verb(n) { return function (v) { return step([n, v]); }; }\r\n function step(op) {\r\n if (f) throw new TypeError(\"Generator is already executing.\");\r\n while (g && (g = 0, op[0] && (_ = 0)), _) try {\r\n if (f = 1, y && (t = op[0] & 2 ? y[\"return\"] : op[0] ? y[\"throw\"] || ((t = y[\"return\"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;\r\n if (y = 0, t) op = [op[0] & 2, t.value];\r\n switch (op[0]) {\r\n case 0: case 1: t = op; break;\r\n case 4: _.label++; return { value: op[1], done: false };\r\n case 5: _.label++; y = op[1]; op = [0]; continue;\r\n case 7: op = _.ops.pop(); _.trys.pop(); continue;\r\n default:\r\n if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }\r\n if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }\r\n if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }\r\n if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }\r\n if (t[2]) _.ops.pop();\r\n _.trys.pop(); continue;\r\n }\r\n op = body.call(thisArg, _);\r\n } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }\r\n if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };\r\n }\r\n}\r\n\r\nexport var __createBinding = Object.create ? (function(o, m, k, k2) {\r\n if (k2 === undefined) k2 = k;\r\n var desc = Object.getOwnPropertyDescriptor(m, k);\r\n if (!desc || (\"get\" in desc ? !m.__esModule : desc.writable || desc.configurable)) {\r\n desc = { enumerable: true, get: function() { return m[k]; } };\r\n }\r\n Object.defineProperty(o, k2, desc);\r\n}) : (function(o, m, k, k2) {\r\n if (k2 === undefined) k2 = k;\r\n o[k2] = m[k];\r\n});\r\n\r\nexport function __exportStar(m, o) {\r\n for (var p in m) if (p !== \"default\" && !Object.prototype.hasOwnProperty.call(o, p)) __createBinding(o, m, p);\r\n}\r\n\r\nexport function __values(o) {\r\n var s = typeof Symbol === \"function\" && Symbol.iterator, m = s && o[s], i = 0;\r\n if (m) return m.call(o);\r\n if (o && typeof o.length === \"number\") return {\r\n next: function () {\r\n if (o && i >= o.length) o = void 0;\r\n return { value: o && o[i++], done: !o };\r\n }\r\n };\r\n throw new TypeError(s ? \"Object is not iterable.\" : \"Symbol.iterator is not defined.\");\r\n}\r\n\r\nexport function __read(o, n) {\r\n var m = typeof Symbol === \"function\" && o[Symbol.iterator];\r\n if (!m) return o;\r\n var i = m.call(o), r, ar = [], e;\r\n try {\r\n while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);\r\n }\r\n catch (error) { e = { error: error }; }\r\n finally {\r\n try {\r\n if (r && !r.done && (m = i[\"return\"])) m.call(i);\r\n }\r\n finally { if (e) throw e.error; }\r\n }\r\n return ar;\r\n}\r\n\r\n/** @deprecated */\r\nexport function __spread() {\r\n for (var ar = [], i = 0; i < arguments.length; i++)\r\n ar = ar.concat(__read(arguments[i]));\r\n return ar;\r\n}\r\n\r\n/** @deprecated */\r\nexport function __spreadArrays() {\r\n for (var s = 0, i = 0, il = arguments.length; i < il; i++) s += arguments[i].length;\r\n for (var r = Array(s), k = 0, i = 0; i < il; i++)\r\n for (var a = arguments[i], j = 0, jl = a.length; j < jl; j++, k++)\r\n r[k] = a[j];\r\n return r;\r\n}\r\n\r\nexport function __spreadArray(to, from, pack) {\r\n if (pack || arguments.length === 2) for (var i = 0, l = from.length, ar; i < l; i++) {\r\n if (ar || !(i in from)) {\r\n if (!ar) ar = Array.prototype.slice.call(from, 0, i);\r\n ar[i] = from[i];\r\n }\r\n }\r\n return to.concat(ar || Array.prototype.slice.call(from));\r\n}\r\n\r\nexport function __await(v) {\r\n return this instanceof __await ? (this.v = v, this) : new __await(v);\r\n}\r\n\r\nexport function __asyncGenerator(thisArg, _arguments, generator) {\r\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\r\n var g = generator.apply(thisArg, _arguments || []), i, q = [];\r\n return i = Object.create((typeof AsyncIterator === \"function\" ? AsyncIterator : Object).prototype), verb(\"next\"), verb(\"throw\"), verb(\"return\", awaitReturn), i[Symbol.asyncIterator] = function () { return this; }, i;\r\n function awaitReturn(f) { return function (v) { return Promise.resolve(v).then(f, reject); }; }\r\n function verb(n, f) { if (g[n]) { i[n] = function (v) { return new Promise(function (a, b) { q.push([n, v, a, b]) > 1 || resume(n, v); }); }; if (f) i[n] = f(i[n]); } }\r\n function resume(n, v) { try { step(g[n](v)); } catch (e) { settle(q[0][3], e); } }\r\n function step(r) { r.value instanceof __await ? Promise.resolve(r.value.v).then(fulfill, reject) : settle(q[0][2], r); }\r\n function fulfill(value) { resume(\"next\", value); }\r\n function reject(value) { resume(\"throw\", value); }\r\n function settle(f, v) { if (f(v), q.shift(), q.length) resume(q[0][0], q[0][1]); }\r\n}\r\n\r\nexport function __asyncDelegator(o) {\r\n var i, p;\r\n return i = {}, verb(\"next\"), verb(\"throw\", function (e) { throw e; }), verb(\"return\"), i[Symbol.iterator] = function () { return this; }, i;\r\n function verb(n, f) { i[n] = o[n] ? function (v) { return (p = !p) ? { value: __await(o[n](v)), done: false } : f ? f(v) : v; } : f; }\r\n}\r\n\r\nexport function __asyncValues(o) {\r\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\r\n var m = o[Symbol.asyncIterator], i;\r\n return m ? m.call(o) : (o = typeof __values === \"function\" ? __values(o) : o[Symbol.iterator](), i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () { return this; }, i);\r\n function verb(n) { i[n] = o[n] && function (v) { return new Promise(function (resolve, reject) { v = o[n](v), settle(resolve, reject, v.done, v.value); }); }; }\r\n function settle(resolve, reject, d, v) { Promise.resolve(v).then(function(v) { resolve({ value: v, done: d }); }, reject); }\r\n}\r\n\r\nexport function __makeTemplateObject(cooked, raw) {\r\n if (Object.defineProperty) { Object.defineProperty(cooked, \"raw\", { value: raw }); } else { cooked.raw = raw; }\r\n return cooked;\r\n};\r\n\r\nvar __setModuleDefault = Object.create ? (function(o, v) {\r\n Object.defineProperty(o, \"default\", { enumerable: true, value: v });\r\n}) : function(o, v) {\r\n o[\"default\"] = v;\r\n};\r\n\r\nvar ownKeys = function(o) {\r\n ownKeys = Object.getOwnPropertyNames || function (o) {\r\n var ar = [];\r\n for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;\r\n return ar;\r\n };\r\n return ownKeys(o);\r\n};\r\n\r\nexport function __importStar(mod) {\r\n if (mod && mod.__esModule) return mod;\r\n var result = {};\r\n if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== \"default\") __createBinding(result, mod, k[i]);\r\n __setModuleDefault(result, mod);\r\n return result;\r\n}\r\n\r\nexport function __importDefault(mod) {\r\n return (mod && mod.__esModule) ? mod : { default: mod };\r\n}\r\n\r\nexport function __classPrivateFieldGet(receiver, state, kind, f) {\r\n if (kind === \"a\" && !f) throw new TypeError(\"Private accessor was defined without a getter\");\r\n if (typeof state === \"function\" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError(\"Cannot read private member from an object whose class did not declare it\");\r\n return kind === \"m\" ? f : kind === \"a\" ? f.call(receiver) : f ? f.value : state.get(receiver);\r\n}\r\n\r\nexport function __classPrivateFieldSet(receiver, state, value, kind, f) {\r\n if (kind === \"m\") throw new TypeError(\"Private method is not writable\");\r\n if (kind === \"a\" && !f) throw new TypeError(\"Private accessor was defined without a setter\");\r\n if (typeof state === \"function\" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError(\"Cannot write private member to an object whose class did not declare it\");\r\n return (kind === \"a\" ? f.call(receiver, value) : f ? f.value = value : state.set(receiver, value)), value;\r\n}\r\n\r\nexport function __classPrivateFieldIn(state, receiver) {\r\n if (receiver === null || (typeof receiver !== \"object\" && typeof receiver !== \"function\")) throw new TypeError(\"Cannot use 'in' operator on non-object\");\r\n return typeof state === \"function\" ? receiver === state : state.has(receiver);\r\n}\r\n\r\nexport function __addDisposableResource(env, value, async) {\r\n if (value !== null && value !== void 0) {\r\n if (typeof value !== \"object\" && typeof value !== \"function\") throw new TypeError(\"Object expected.\");\r\n var dispose, inner;\r\n if (async) {\r\n if (!Symbol.asyncDispose) throw new TypeError(\"Symbol.asyncDispose is not defined.\");\r\n dispose = value[Symbol.asyncDispose];\r\n }\r\n if (dispose === void 0) {\r\n if (!Symbol.dispose) throw new TypeError(\"Symbol.dispose is not defined.\");\r\n dispose = value[Symbol.dispose];\r\n if (async) inner = dispose;\r\n }\r\n if (typeof dispose !== \"function\") throw new TypeError(\"Object not disposable.\");\r\n if (inner) dispose = function() { try { inner.call(this); } catch (e) { return Promise.reject(e); } };\r\n env.stack.push({ value: value, dispose: dispose, async: async });\r\n }\r\n else if (async) {\r\n env.stack.push({ async: true });\r\n }\r\n return value;\r\n\r\n}\r\n\r\nvar _SuppressedError = typeof SuppressedError === \"function\" ? SuppressedError : function (error, suppressed, message) {\r\n var e = new Error(message);\r\n return e.name = \"SuppressedError\", e.error = error, e.suppressed = suppressed, e;\r\n};\r\n\r\nexport function __disposeResources(env) {\r\n function fail(e) {\r\n env.error = env.hasError ? new _SuppressedError(e, env.error, \"An error was suppressed during disposal.\") : e;\r\n env.hasError = true;\r\n }\r\n var r, s = 0;\r\n function next() {\r\n while (r = env.stack.pop()) {\r\n try {\r\n if (!r.async && s === 1) return s = 0, env.stack.push(r), Promise.resolve().then(next);\r\n if (r.dispose) {\r\n var result = r.dispose.call(r.value);\r\n if (r.async) return s |= 2, Promise.resolve(result).then(next, function(e) { fail(e); return next(); });\r\n }\r\n else s |= 1;\r\n }\r\n catch (e) {\r\n fail(e);\r\n }\r\n }\r\n if (s === 1) return env.hasError ? Promise.reject(env.error) : Promise.resolve();\r\n if (env.hasError) throw env.error;\r\n }\r\n return next();\r\n}\r\n\r\nexport function __rewriteRelativeImportExtension(path, preserveJsx) {\r\n if (typeof path === \"string\" && /^\\.\\.?\\//.test(path)) {\r\n return path.replace(/\\.(tsx)$|((?:\\.d)?)((?:\\.[^./]+?)?)\\.([cm]?)ts$/i, function (m, tsx, d, ext, cm) {\r\n return tsx ? preserveJsx ? \".jsx\" : \".js\" : d && (!ext || !cm) ? m : (d + ext + \".\" + cm.toLowerCase() + \"js\");\r\n });\r\n }\r\n return path;\r\n}\r\n\r\nexport default {\r\n __extends: __extends,\r\n __assign: __assign,\r\n __rest: __rest,\r\n __decorate: __decorate,\r\n __param: __param,\r\n __esDecorate: __esDecorate,\r\n __runInitializers: __runInitializers,\r\n __propKey: __propKey,\r\n __setFunctionName: __setFunctionName,\r\n __metadata: __metadata,\r\n __awaiter: __awaiter,\r\n __generator: __generator,\r\n __createBinding: __createBinding,\r\n __exportStar: __exportStar,\r\n __values: __values,\r\n __read: __read,\r\n __spread: __spread,\r\n __spreadArrays: __spreadArrays,\r\n __spreadArray: __spreadArray,\r\n __await: __await,\r\n __asyncGenerator: __asyncGenerator,\r\n __asyncDelegator: __asyncDelegator,\r\n __asyncValues: __asyncValues,\r\n __makeTemplateObject: __makeTemplateObject,\r\n __importStar: __importStar,\r\n __importDefault: __importDefault,\r\n __classPrivateFieldGet: __classPrivateFieldGet,\r\n __classPrivateFieldSet: __classPrivateFieldSet,\r\n __classPrivateFieldIn: __classPrivateFieldIn,\r\n __addDisposableResource: __addDisposableResource,\r\n __disposeResources: __disposeResources,\r\n __rewriteRelativeImportExtension: __rewriteRelativeImportExtension,\r\n};\r\n","import React, { createContext, useContext, useMemo } from 'react';\n\nexport interface ThemeConfig {\n primaryColor?: string;\n}\n\nconst defaultTheme: ThemeConfig = {\n primaryColor: '#FB6011',\n};\n\nconst ThemeContext = createContext<ThemeConfig>(defaultTheme);\n\nexport interface ThemeProviderProps {\n theme?: ThemeConfig;\n children: React.ReactNode;\n}\n\nexport const ThemeProvider: React.FC<ThemeProviderProps> = ({ theme, children }) => {\n const themeValue = useMemo(() => {\n return {\n ...defaultTheme,\n ...theme,\n };\n }, [theme]);\n\n return (\n <ThemeContext.Provider value={themeValue}>\n {children}\n </ThemeContext.Provider>\n );\n};\n\nexport const useTheme = (): ThemeConfig => {\n const context = useContext(ThemeContext);\n if (!context) {\n // 如果没有 Provider,返回默认主题\n return defaultTheme;\n }\n return context;\n};\n\n// 导出默认主题色,供组件内部使用\nexport const getDefaultPrimaryColor = () => defaultTheme.primaryColor!;\n\n","import React, { useState } from 'react';\nimport { useTheme } from '../../theme/ThemeContext';\n\nexport type ButtonType = 'default' | 'primary';\nexport type ButtonSize = 'small' | 'mediumSmall' | 'medium' | 'large';\n\nexport interface ButtonProps {\n /** 按钮内容 */\n children?: React.ReactNode;\n /** 按钮类型 */\n type?: ButtonType;\n /** 按钮尺寸 */\n size?: ButtonSize;\n /** 是否禁用 */\n disabled?: boolean;\n /** 是否加载中 */\n loading?: boolean;\n /** 点击事件 */\n onClick?: (e: React.MouseEvent<HTMLButtonElement, MouseEvent>) => void;\n /** 按钮原生type */\n htmlType?: 'button' | 'submit' | 'reset';\n /** 自定义类名 */\n className?: string;\n /** 自定义样式 */\n style?: React.CSSProperties;\n /** 图标 */\n icon?: React.ReactNode;\n /** 图标位置 */\n iconPosition?: 'left' | 'right';\n [key: string]: any;\n}\n\n// 尺寸配置:高度分别为 32、36、40、48px\nconst SIZE_CONFIG = {\n small: {\n height: '32px',\n paddingLeft: '12px',\n paddingRight: '12px',\n fontSize: '14px',\n lineHeight: '20px',\n iconSize: '16px',\n gap: '6px',\n },\n mediumSmall: {\n height: '36px',\n paddingLeft: '14px',\n paddingRight: '14px',\n fontSize: '14px',\n lineHeight: '20px',\n iconSize: '16px',\n gap: '6px',\n },\n medium: {\n height: '40px',\n paddingLeft: '16px',\n paddingRight: '16px',\n fontSize: '14px',\n lineHeight: '20px',\n iconSize: '18px',\n gap: '8px',\n },\n large: {\n height: '48px',\n paddingLeft: '20px',\n paddingRight: '20px',\n fontSize: '16px',\n lineHeight: '24px',\n iconSize: '20px',\n gap: '8px',\n },\n};\n\n// Loading 图标组件\nconst LoadingIcon: React.FC<{ size: number; color: string }> = ({ size, color }) => {\n // 使用 React 方式注入样式,避免在模块顶层操作 DOM\n const loadingStyles = `\n @keyframes aha-button-spin {\n from { transform: rotate(0deg); }\n to { transform: rotate(360deg); }\n }\n `;\n\n return (\n <>\n <style>{loadingStyles}</style>\n <svg\n width={size}\n height={size}\n viewBox=\"0 0 24 24\"\n fill=\"none\"\n style={{\n animation: 'aha-button-spin 1s linear infinite',\n }}\n >\n <circle\n cx=\"12\"\n cy=\"12\"\n r=\"10\"\n stroke={color}\n strokeWidth=\"2\"\n strokeLinecap=\"round\"\n strokeDasharray=\"32\"\n strokeDashoffset=\"24\"\n opacity=\"0.3\"\n />\n <circle\n cx=\"12\"\n cy=\"12\"\n r=\"10\"\n stroke={color}\n strokeWidth=\"2\"\n strokeLinecap=\"round\"\n strokeDasharray=\"32\"\n strokeDashoffset=\"16\"\n />\n </svg>\n </>\n );\n};\n\nconst Button: React.FC<ButtonProps> = ({\n children,\n type = 'default',\n size = 'medium',\n disabled = false,\n loading = false,\n onClick,\n htmlType = 'button',\n className = '',\n style,\n icon,\n iconPosition = 'left',\n ...rest\n}) => {\n const { primaryColor = '#FB6011' } = useTheme();\n const [isHovered, setIsHovered] = useState(false);\n const [isPressed, setIsPressed] = useState(false);\n\n const sizeConfig = SIZE_CONFIG[size];\n const isDisabled = disabled || loading;\n\n // 计算按钮样式\n const getButtonStyles = (): React.CSSProperties => {\n const baseStyle: React.CSSProperties = {\n position: 'relative',\n display: 'inline-flex',\n alignItems: 'center',\n justifyContent: 'center',\n gap: sizeConfig.gap,\n height: sizeConfig.height,\n paddingLeft: sizeConfig.paddingLeft,\n paddingRight: sizeConfig.paddingRight,\n fontSize: sizeConfig.fontSize,\n lineHeight: sizeConfig.lineHeight,\n fontWeight: 500,\n fontFamily: 'DM Sans, sans-serif',\n borderRadius: '8px',\n border: 'none',\n cursor: isDisabled ? 'not-allowed' : 'pointer',\n outline: 'none',\n transition: 'all 0.2s',\n userSelect: 'none',\n WebkitTapHighlightColor: 'transparent',\n ...style,\n };\n\n if (type === 'primary') {\n // Primary 按钮:使用主题色,所有状态下文字都是白色\n baseStyle.color = '#FFFFFF';\n baseStyle.backgroundColor = primaryColor;\n if (disabled) {\n // disabled状态:保持primary样式,通过降低透明度表示禁用\n baseStyle.opacity = 0.4;\n baseStyle.cursor = 'not-allowed';\n } else if (loading) {\n // loading状态:保持primary样式(主题色背景)\n baseStyle.backgroundColor = primaryColor;\n } else if (isPressed) {\n baseStyle.backgroundColor = '#EC470A'; // 按下时的深色\n } else if (isHovered) {\n baseStyle.backgroundColor = '#FD843A'; // hover时的浅色\n }\n } else {\n // Default 按钮:白色背景,灰色边框\n if (disabled) {\n // disabled状态:灰色背景,灰色文字\n baseStyle.backgroundColor = '#FAFAF9';\n baseStyle.color = '#D6D3D1';\n baseStyle.border = '1px solid #E7E5E4';\n } else if (loading) {\n // loading状态:保持default样式(白色背景+边框)\n baseStyle.backgroundColor = '#FFFFFF';\n baseStyle.color = '#101828';\n baseStyle.border = '1px solid #E7E5E4';\n baseStyle.boxShadow = '0px 1px 2px 0px rgba(12, 10, 9, 0.05)';\n } else if (isPressed) {\n baseStyle.backgroundColor = '#F5F5F4';\n baseStyle.color = '#101828';\n baseStyle.border = '1px solid #D7D3D0';\n baseStyle.boxShadow = '0px 1px 2px 0px rgba(12, 10, 9, 0.05)';\n } else if (isHovered) {\n // Hover 状态:浅灰色背景,边框稍微变深,增强阴影\n baseStyle.backgroundColor = '#FAFAF9';\n baseStyle.color = '#101828';\n baseStyle.border = '1px solid #D7D3D0';\n baseStyle.boxShadow = '0px 2px 4px 0px rgba(12, 10, 9, 0.08)';\n } else {\n baseStyle.backgroundColor = '#FFFFFF';\n baseStyle.color = '#101828';\n baseStyle.border = '1px solid #E7E5E4';\n baseStyle.boxShadow = '0px 1px 2px 0px rgba(12, 10, 9, 0.05)';\n }\n }\n\n return baseStyle;\n };\n\n // 处理点击事件\n const handleClick = (e: React.MouseEvent<HTMLButtonElement, MouseEvent>) => {\n if (isDisabled) {\n e.preventDefault();\n return;\n }\n onClick?.(e);\n };\n\n // 渲染图标\n const renderIcon = () => {\n if (loading) {\n // loading时,根据按钮类型确定颜色\n // primary按钮:白色图标;default按钮:黑色图标\n const iconColor = type === 'primary' ? '#FFFFFF' : '#101828';\n const iconSize = parseInt(sizeConfig.iconSize.replace('px', ''));\n return <LoadingIcon size={iconSize} color={iconColor} />;\n }\n if (icon) {\n return (\n <span\n style={{\n display: 'inline-flex',\n alignItems: 'center',\n justifyContent: 'center',\n width: sizeConfig.iconSize,\n height: sizeConfig.iconSize,\n flexShrink: 0,\n }}\n >\n {icon}\n </span>\n );\n }\n return null;\n };\n\n const buttonStyle = getButtonStyles();\n\n return (\n <button\n type={htmlType}\n className={`aha-button aha-button--${type} aha-button--${size} ${isDisabled ? 'aha-button--disabled' : ''} ${loading ? 'aha-button--loading' : ''} ${className}`}\n disabled={isDisabled}\n onClick={handleClick}\n onMouseEnter={() => !isDisabled && setIsHovered(true)}\n onMouseLeave={() => {\n setIsHovered(false);\n setIsPressed(false);\n }}\n onMouseDown={() => !isDisabled && setIsPressed(true)}\n onMouseUp={() => setIsPressed(false)}\n style={buttonStyle}\n {...rest}\n >\n {/* loading时,图标总是在左侧显示,忽略iconPosition */}\n {loading && renderIcon()}\n {!loading && iconPosition === 'left' && renderIcon()}\n {children && <span style={{ display: 'inline-block' }}>{children}</span>}\n {!loading && iconPosition === 'right' && renderIcon()}\n </button>\n );\n};\n\nButton.displayName = 'Button';\n\nexport default Button;\n","import React from \"react\";\n\n// Checkbox 选中图标\nexport const CheckIcon: React.FC<{\n className?: string;\n style?: React.CSSProperties;\n}> = ({ className, style }) => (\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 className={className}\n style={style}\n >\n <path\n d=\"M11.6666 3.5L5.24992 9.91667L2.33325 7\"\n stroke=\"white\"\n strokeWidth=\"2\"\n strokeLinecap=\"round\"\n strokeLinejoin=\"round\"\n />\n </svg>\n);\n\n// Checkbox 半选中图标(减号)\nexport const MinusIcon: React.FC<{\n className?: string;\n style?: React.CSSProperties;\n}> = ({ className, style }) => (\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 className={className}\n style={style}\n >\n <path\n d=\"M3.5 7H10.5\"\n stroke=\"white\"\n strokeWidth=\"2\"\n strokeLinecap=\"round\"\n strokeLinejoin=\"round\"\n />\n </svg>\n);\n\n// Sort 图标\nexport const SortIcon: React.FC<{\n className?: string;\n style?: React.CSSProperties;\n}> = ({ className, style }) => (\n <svg\n width=\"12\"\n height=\"12\"\n viewBox=\"0 0 12 12\"\n fill=\"none\"\n xmlns=\"http://www.w3.org/2000/svg\"\n className={className}\n style={style}\n >\n <path\n d=\"M3.5 7.5L6 10L8.5 7.5M3.5 4.5L6 2L8.5 4.5\"\n stroke=\"#A9A29D\"\n strokeWidth=\"1.5\"\n strokeLinecap=\"round\"\n strokeLinejoin=\"round\"\n />\n </svg>\n);\n\n// Sort 图标 降序\nexport const SortDescIcon: React.FC<{\n className?: string;\n style?: React.CSSProperties;\n}> = ({ className, style }) => (\n <svg\n width=\"12\"\n height=\"12\"\n viewBox=\"0 0 12 12\"\n fill=\"none\"\n xmlns=\"http://www.w3.org/2000/svg\"\n className={className}\n style={style}\n >\n <path\n d=\"M3.5 4.5L6 2L8.5 4.5\"\n stroke=\"#A9A29D\"\n strokeWidth=\"1.5\"\n strokeLinecap=\"round\"\n strokeLinejoin=\"round\"\n />\n <path\n d=\"M3.5 7.5L6 10L8.5 7.5\"\n stroke=\"currentColor\"\n strokeWidth=\"1.5\"\n strokeLinecap=\"round\"\n strokeLinejoin=\"round\"\n />\n </svg>\n);\n\n// Sort 图标 升序\nexport const SortAscIcon: React.FC<{\n className?: string;\n style?: React.CSSProperties;\n}> = ({ className, style }) => (\n <svg\n width=\"12\"\n height=\"12\"\n viewBox=\"0 0 12 12\"\n fill=\"none\"\n xmlns=\"http://www.w3.org/2000/svg\"\n className={className}\n style={style}\n >\n <path\n d=\"M8.5 7.5L6 10L3.5 7.5\"\n stroke=\"#A9A29D\"\n strokeWidth=\"1.5\"\n strokeLinecap=\"round\"\n strokeLinejoin=\"round\"\n />\n <path\n d=\"M8.5 4.5L6 2L3.5 4.5\"\n stroke=\"currentColor\"\n strokeWidth=\"1.5\"\n strokeLinecap=\"round\"\n strokeLinejoin=\"round\"\n />\n </svg>\n);\n// 向左的箭头\nexport const LeftArrowIcon: React.FC<{\n className?: string;\n style?: React.CSSProperties;\n}> = ({ className, style }) => (\n <svg\n width=\"20\"\n height=\"20\"\n viewBox=\"0 0 20 20\"\n fill=\"none\"\n xmlns=\"http://www.w3.org/2000/svg\"\n className={className}\n style={style}\n >\n <path\n d=\"M15.8334 10H4.16675M4.16675 10L10.0001 15.8334M4.16675 10L10.0001 4.16669\"\n stroke=\"currentColor\"\n strokeWidth=\"1.66667\"\n strokeLinecap=\"round\"\n strokeLinejoin=\"round\"\n />\n </svg>\n);\n// 向右的箭头\nexport const RightArrowIcon: React.FC<{\n className?: string;\n style?: React.CSSProperties;\n}> = ({ className, style }) => (\n <svg\n width=\"20\"\n height=\"20\"\n viewBox=\"0 0 20 20\"\n fill=\"none\"\n xmlns=\"http://www.w3.org/2000/svg\"\n className={className}\n style={style}\n >\n <path\n d=\"M4.16675 10H15.8334M15.8334 10L10.0001 4.16669M15.8334 10L10.0001 15.8334\"\n stroke=\"currentColor\"\n strokeWidth=\"1.66667\"\n strokeLinecap=\"round\"\n strokeLinejoin=\"round\"\n />\n </svg>\n);\n// 提示信息图标\nexport const TooltipIcon: React.FC<{\n className?: string;\n style?: React.CSSProperties;\n}> = ({ className, style }) => (\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 className={className}\n style={style}\n >\n <g clipPath=\"url(#clip0_54_1653)\">\n <path\n d=\"M6.06 6C6.21674 5.55444 6.5261 5.17873 6.9333 4.93942C7.34051 4.7001 7.81926 4.61262 8.28479 4.69247C8.75031 4.77232 9.17255 5.01434 9.47672 5.37568C9.78089 5.73702 9.94737 6.19434 9.94667 6.66666C9.94667 8 7.94667 8.66666 7.94667 8.66666M8 11.3333H8.00667M14.6667 8C14.6667 11.6819 11.6819 14.6667 8 14.6667C4.3181 14.6667 1.33333 11.6819 1.33333 8C1.33333 4.3181 4.3181 1.33333 8 1.33333C11.6819 1.33333 14.6667 4.3181 14.6667 8Z\"\n stroke=\"currentColor\"\n strokeWidth=\"1.33333\"\n strokeLinecap=\"round\"\n strokeLinejoin=\"round\"\n />\n </g>\n <defs>\n <clipPath id=\"clip0_54_1653\">\n <rect width=\"16\" height=\"16\" fill=\"currentColor\" />\n </clipPath>\n </defs>\n </svg>\n);\n","import React, { useState, useEffect, useMemo } from \"react\";\nimport { useTheme } from \"../../theme/ThemeContext\";\nimport Button from \"../Button\";\nimport { LeftArrowIcon, RightArrowIcon } from \"../../icons\";\n\nexport interface PaginationProps {\n current?: number;\n defaultCurrent?: number;\n total?: number;\n pageSize?: number;\n defaultPageSize?: number;\n showSizeChanger?: boolean;\n pageSizeOptions?: string[];\n showQuickJumper?: boolean | { goButton?: React.ReactNode };\n showTotal?: (total: number, range: [number, number]) => React.ReactNode;\n onChange?: (page: number, pageSize?: number) => void;\n onShowSizeChange?: (current: number, size: number) => void;\n simple?: boolean;\n disabled?: boolean;\n hideOnSinglePage?: boolean;\n className?: string;\n style?: React.CSSProperties;\n size?: \"default\" | \"small\";\n responsive?: boolean;\n showLessItems?: boolean;\n itemRender?: (\n page: number,\n type: \"page\" | \"prev\" | \"next\" | \"jump-prev\" | \"jump-next\",\n originalElement: React.ReactNode\n ) => React.ReactNode;\n}\n\nconst Pagination: React.FC<PaginationProps> = ({\n current: controlledCurrent,\n defaultCurrent = 1,\n total = 0,\n pageSize: controlledPageSize,\n defaultPageSize = 10,\n showSizeChanger = false,\n pageSizeOptions = [\"10\", \"20\", \"50\", \"100\"],\n showQuickJumper = false,\n showTotal,\n onChange,\n onShowSizeChange,\n simple = false,\n disabled = false,\n hideOnSinglePage = false,\n className = \"\",\n style,\n size = \"default\",\n responsive = false,\n showLessItems = false,\n itemRender,\n}) => {\n const { primaryColor = \"#FB6011\" } = useTheme();\n const [internalCurrent, setInternalCurrent] = useState(defaultCurrent);\n const [internalPageSize, setInternalPageSize] = useState(defaultPageSize);\n const [jumpToPage, setJumpToPage] = useState(\"\");\n\n const current = controlledCurrent ?? internalCurrent;\n const pageSize = controlledPageSize ?? internalPageSize;\n\n const totalPages = useMemo(\n () => Math.ceil(total / pageSize),\n [total, pageSize]\n );\n\n useEffect(() => {\n if (controlledCurrent !== undefined) {\n setInternalCurrent(controlledCurrent);\n }\n }, [controlledCurrent]);\n\n useEffect(() => {\n if (controlledPageSize !== undefined) {\n setInternalPageSize(controlledPageSize);\n }\n }, [controlledPageSize]);\n\n const handlePageChange = (page: number) => {\n if (page < 1 || page > totalPages || page === current || disabled) return;\n\n if (controlledCurrent === undefined) {\n setInternalCurrent(page);\n }\n onChange?.(page, pageSize);\n };\n\n const handlePageSizeChange = (newPageSize: number) => {\n const newTotalPages = Math.ceil(total / newPageSize);\n const newCurrent = current > newTotalPages ? newTotalPages : current;\n\n if (controlledPageSize === undefined) {\n setInternalPageSize(newPageSize);\n }\n if (controlledCurrent === undefined) {\n setInternalCurrent(newCurrent);\n }\n\n onShowSizeChange?.(newCurrent, newPageSize);\n onChange?.(newCurrent, newPageSize);\n };\n\n const handleJumpTo = () => {\n const page = parseInt(jumpToPage, 10);\n if (page >= 1 && page <= totalPages) {\n handlePageChange(page);\n setJumpToPage(\"\");\n }\n };\n\n const getPageNumbers = (): (number | string)[] => {\n if (totalPages <= 7) {\n return Array.from({ length: totalPages }, (_, i) => i + 1);\n }\n\n const pages: (number | string)[] = [];\n\n if (current <= 4) {\n for (let i = 1; i <= 5; i++) {\n pages.push(i);\n }\n pages.push(\"jump-next\");\n pages.push(totalPages);\n } else if (current >= totalPages - 3) {\n pages.push(1);\n pages.push(\"jump-prev\");\n for (let i = totalPages - 4; i <= totalPages; i++) {\n pages.push(i);\n }\n } else {\n pages.push(1);\n pages.push(\"jump-prev\");\n for (let i = current - 1; i <= current + 1; i++) {\n pages.push(i);\n }\n pages.push(\"jump-next\");\n pages.push(totalPages);\n }\n\n return pages;\n };\n\n const renderItem = (\n item: number | string,\n index: number\n ): React.ReactNode => {\n if (typeof item === \"number\") {\n const isActive = item === current;\n const element = (\n <Button\n key={item}\n onClick={() => handlePageChange(item)}\n disabled={disabled}\n type=\"default\"\n size={size === \"default\" ? \"medium\" : \"small\"}\n style={{\n minWidth: size === \"small\" ? \"32px\" : \"36px\",\n height: size === \"small\" ? \"32px\" : \"36px\",\n padding: \"0 12px\",\n margin: 0,\n fontWeight: isActive ? 500 : 400,\n border: \"none\",\n background: isActive ? \"#FAFAF9\" : \"white\",\n backgroundColor: isActive ? \"#FAFAF9\" : \"white\",\n color: isActive ? primaryColor : \"#79716B\",\n boxShadow: \"none\",\n borderRadius: \"8px\",\n }}\n >\n {item}\n </Button>\n );\n\n return itemRender ? itemRender(item, \"page\", element) : element;\n }\n\n if (item === \"jump-prev\") {\n const element = (\n <Button\n key=\"jump-prev\"\n onClick={() => handlePageChange(Math.max(1, current - 5))}\n disabled={disabled}\n type=\"default\"\n size={size === \"default\" ? \"medium\" : \"small\"}\n style={{\n minWidth: size === \"small\" ? \"32px\" : \"36px\",\n height: size === \"small\" ? \"32px\" : \"36px\",\n padding: \"0 12px\",\n margin: 0,\n border: \"1px solid #EAECF0\",\n boxShadow: \"none\",\n borderRadius: \"8px\",\n }}\n >\n •••\n </Button>\n );\n\n return itemRender\n ? itemRender(current - 5, \"jump-prev\", element)\n : element;\n }\n\n if (item === \"jump-next\") {\n const element = (\n <Button\n key=\"jump-next\"\n onClick={() => handlePageChange(Math.min(totalPages, current + 5))}\n disabled={disabled}\n type=\"default\"\n size={size === \"default\" ? \"medium\" : \"small\"}\n style={{\n minWidth: size === \"small\" ? \"32px\" : \"36px\",\n height: size === \"small\" ? \"32px\" : \"36px\",\n padding: \"0 12px\",\n margin: 0,\n border: \"1px solid #EAECF0\",\n boxShadow: \"none\",\n borderRadius: \"8px\",\n }}\n >\n •••\n </Button>\n );\n\n return itemRender\n ? itemRender(current + 5, \"jump-next\", element)\n : element;\n }\n\n return null;\n };\n\n if (hideOnSinglePage && totalPages <= 1) {\n return null;\n }\n\n if (simple) {\n return (\n <div\n className={`aha-pagination aha-pagination-simple ${className}`}\n style={style}\n >\n <Button\n onClick={() => handlePageChange(current - 1)}\n disabled={disabled || current === 1}\n type=\"default\"\n size={size === \"default\" ? \"medium\" : \"small\"}\n style={{\n marginRight: \"8px\",\n border: \"1px solid #EAECF0\",\n boxShadow: \"none\",\n borderRadius: \"8px\",\n }}\n >\n 上一页\n </Button>\n <span\n style={{\n margin: \"0 8px\",\n fontSize: \"14px\",\n lineHeight: \"20px\",\n color: \"#475467\",\n fontFamily: \"DM Sans, sans-serif\",\n }}\n >\n {current} / {totalPages}\n </span>\n <Button\n onClick={() => handlePageChange(current + 1)}\n disabled={disabled || current === totalPages}\n type=\"default\"\n size={size === \"default\" ? \"medium\" : \"small\"}\n style={{\n marginLeft: \"8px\",\n border: \"1px solid #EAECF0\",\n boxShadow: \"none\",\n borderRadius: \"8px\",\n }}\n >\n 下一页\n </Button>\n </div>\n );\n }\n\n const start = (current - 1) * pageSize + 1;\n const end = Math.min(current * pageSize, total);\n\n return (\n <div\n className={`aha-pagination w-full ${className}`}\n style={{\n display: \"flex\",\n alignItems: \"center\",\n justifyContent: \"space-between\",\n flexWrap: responsive ? \"wrap\" : \"nowrap\",\n fontFamily: \"DM Sans, sans-serif\",\n ...style,\n }}\n >\n {showTotal && (\n <div className=\"justify-start text-Text-text-secondary text-sm font-medium font-['DM_Sans'] leading-5\">\n {showTotal(total, [start, end])}\n </div>\n )}\n\n <div\n style={{\n display: \"flex\",\n alignItems: \"center\",\n gap: \"12px\",\n }}\n >\n {itemRender ? (\n itemRender(\n current - 1,\n \"prev\",\n <Button\n onClick={() => handlePageChange(current - 1)}\n disabled={disabled || current === 1}\n type=\"default\"\n size={size === \"default\" ? \"medium\" : \"small\"}\n style={{\n height: size === \"small\" ? \"32px\" : \"36px\",\n padding: \"0 12px\",\n gap: \"4px\",\n border: \"1px solid #EAECF0\",\n boxShadow: \"none\",\n borderRadius: \"8px\",\n }}\n >\n <div className=\"flex items-center gap-1\">\n <LeftArrowIcon /> <span>Previous</span>\n </div>\n </Button>\n )\n ) : (\n <Button\n onClick={() => handlePageChange(current - 1)}\n disabled={disabled || current === 1}\n type=\"default\"\n size={size === \"default\" ? \"medium\" : \"small\"}\n style={{\n height: size === \"small\" ? \"32px\" : \"36px\",\n padding: \"0 12px\",\n gap: \"4px\",\n border: \"1px solid #EAECF0\",\n boxShadow: \"none\",\n borderRadius: \"8px\",\n }}\n >\n <div className=\"flex items-center gap-1\">\n <LeftArrowIcon /> <span>Previous</span>\n </div>\n </Button>\n )}\n\n <div style={{ display: \"flex\", alignItems: \"center\", gap: 0 }}>\n {getPageNumbers().map((item, index) => renderItem(item, index))}\n </div>\n\n {itemRender ? (\n itemRender(\n current + 1,\n \"next\",\n <Button\n onClick={() => handlePageChange(current + 1)}\n disabled={disabled || current === totalPages}\n type=\"default\"\n size={size === \"default\" ? \"medium\" : \"small\"}\n style={{\n height: size === \"small\" ? \"32px\" : \"36px\",\n padding: \"0 12px\",\n gap: \"4px\",\n border: \"1px solid #EAECF0\",\n boxShadow: \"none\",\n borderRadius: \"8px\",\n }}\n >\n <div className=\"flex items-center gap-1\">\n <span>Next</span> <RightArrowIcon />\n </div>\n </Button>\n )\n ) : (\n <Button\n onClick={() => handlePageChange(current + 1)}\n disabled={disabled || current === totalPages}\n type=\"default\"\n size={size === \"default\" ? \"medium\" : \"small\"}\n style={{\n height: size === \"small\" ? \"32px\" : \"36px\",\n padding: \"0 12px\",\n gap: \"4px\",\n border: \"1px solid #EAECF0\",\n boxShadow: \"none\",\n borderRadius: \"8px\",\n }}\n >\n <div className=\"flex items-center gap-1\">\n <span>Next</span> <RightArrowIcon />\n </div>\n </Button>\n )}\n\n {showSizeChanger && (\n <select\n value={pageSize}\n onChange={(e) => handlePageSizeChange(Number(e.target.value))}\n disabled={disabled}\n style={{\n padding: size === \"small\" ? \"6px 12px\" : \"8px 12px\",\n border: \"1px solid #EAECF0\",\n borderRadius: \"8px\",\n fontSize: size === \"small\" ? \"12px\" : \"14px\",\n lineHeight: size === \"small\" ? \"18px\" : \"20px\",\n color: \"#101828\",\n fontFamily: \"DM Sans, sans-serif\",\n cursor: disabled ? \"not-allowed\" : \"pointer\",\n backgroundColor: \"white\",\n outline: \"none\",\n transition: \"all 0.2s\",\n }}\n onMouseEnter={(e) => {\n if (!disabled) {\n e.currentTarget.style.borderColor = primaryColor;\n }\n }}\n onMouseLeave={(e) => {\n e.currentTarget.style.borderColor = \"#EAECF0\";\n }}\n >\n {pageSizeOptions.map((size) => (\n <option key={size} value={size}>\n {size} 条/页\n </option>\n ))}\n </select>\n )}\n\n {showQuickJumper && (\n <div\n style={{\n display: \"flex\",\n alignItems: \"center\",\n gap: \"8px\",\n fontFamily: \"DM Sans, sans-serif\",\n }}\n >\n <span\n style={{\n fontSize: \"14px\",\n lineHeight: \"20px\",\n color: \"#475467\",\n }}\n >\n 跳至\n </span>\n <input\n type=\"number\"\n min=\"1\"\n value={jumpToPage}\n onChange={(e) => setJumpToPage(e.target.value)}\n onKeyPress={(e) => e.key === \"Enter\" && handleJumpTo()}\n disabled={disabled}\n style={{\n width: \"56px\",\n height: size === \"small\" ? \"28px\" : \"36px\",\n padding: \"0 8px\",\n border: \"1px solid #EAECF0\",\n borderRadius: \"8px\",\n fontSize: \"14px\",\n lineHeight: \"20px\",\n color: \"#101828\",\n fontFamily: \"DM Sans, sans-serif\",\n outline: \"none\",\n transition: \"all 0.2s\",\n }}\n onFocus={(e) => {\n e.currentTarget.style.borderColor = primaryColor;\n }}\n onBlur={(e) => {\n e.currentTarget.style.borderColor = \"#EAECF0\";\n }}\n />\n <span\n style={{\n fontSize: \"14px\",\n lineHeight: \"20px\",\n color: \"#475467\",\n }}\n >\n 页\n </span>\n {typeof showQuickJumper === \"object\" && showQuickJumper.goButton ? (\n <Button\n onClick={handleJumpTo}\n disabled={disabled}\n type=\"default\"\n size={size === \"default\" ? \"medium\" : \"small\"}\n style={{\n border: \"1px solid #EAECF0\",\n boxShadow: \"none\",\n borderRadius: \"8px\",\n }}\n >\n {showQuickJumper.goButton}\n </Button>\n ) : (\n <Button\n onClick={handleJumpTo}\n disabled={disabled}\n type=\"default\"\n size={size === \"default\" ? \"medium\" : \"small\"}\n style={{\n border: \"1px solid #EAECF0\",\n boxShadow: \"none\",\n borderRadius: \"8px\",\n }}\n >\n 确定\n </Button>\n )}\n </div>\n )}\n </div>\n </div>\n );\n};\n\nexport default Pagination;\n","import React from 'react';\nimport { CheckIcon, MinusIcon } from '../../icons';\nimport { useTheme } from '../../theme/ThemeContext';\n\nexport interface CheckboxProps {\n checked?: boolean;\n indeterminate?: boolean;\n disabled?: boolean;\n onChange?: (e: React.ChangeEvent<HTMLInputElement>) => void;\n className?: string;\n style?: React.CSSProperties;\n children?: React.ReactNode;\n}\n\nconst Checkbox: React.FC<CheckboxProps> = ({\n checked = false,\n indeterminate = false,\n disabled = false,\n onChange,\n className = '',\n style,\n children,\n}) => {\n const { primaryColor } = useTheme();\n \n const handleClick = (e: React.MouseEvent<HTMLDivElement>) => {\n if (disabled) return;\n // 创建一个合成事件来触发 onChange\n const syntheticEvent = {\n target: { checked: !checked },\n currentTarget: { checked: !checked },\n } as React.ChangeEvent<HTMLInputElement>;\n onChange?.(syntheticEvent);\n };\n\n const isChecked = checked || indeterminate;\n const backgroundColor = disabled\n ? '#FAFAF9'\n : isChecked\n ? primaryColor\n : 'white';\n const borderColor = disabled ? '#FAFAF9' : isChecked ? primaryColor : '#D7D3D0';\n\n return (\n <div\n className={`aha-checkbox ${className}`}\n style={{\n display: 'inline-flex',\n alignItems: 'center',\n gap: '8px',\n cursor: disabled ? 'not-allowed' : 'pointer',\n ...style,\n }}\n onClick={handleClick}\n >\n <div\n style={{\n position: 'relative',\n width: '20px',\n height: '20px',\n minWidth: '20px',\n minHeight: '20px',\n borderRadius: '4px', // spacing-sm 通常是 4px\n border: `1px solid ${borderColor}`,\n backgroundColor,\n display: 'flex',\n alignItems: 'center',\n justifyContent: 'center',\n transition: 'all 0.2s',\n flexShrink: 0,\n boxSizing: 'border-box',\n }}\n >\n <div\n style={{\n display: 'flex',\n alignItems: 'center',\n justifyContent: 'center',\n width: '14px',\n height: '14px',\n opacity: isChecked ? 1 : 0,\n transition: 'opacity 0.2s',\n pointerEvents: 'none',\n }}\n >\n {indeterminate ? (\n <MinusIcon style={{ width: '14px', height: '14px', display: 'block' }} />\n ) : (\n <CheckIcon style={{ width: '14px', height: '14px', display: 'block' }} />\n )}\n </div>\n </div>\n {children && (\n <span\n style={{\n fontSize: '14px',\n lineHeight: '20px',\n color: disabled ? '#98A2B3' : '#101828',\n fontFamily: 'DM Sans, sans-serif',\n }}\n >\n {children}\n </span>\n )}\n <input\n type=\"checkbox\"\n checked={checked}\n ref={(el) => {\n if (el) el.indeterminate = indeterminate;\n }}\n onChange={onChange}\n disabled={disabled}\n style={{\n position: 'absolute',\n opacity: 0,\n width: 0,\n height: 0,\n pointerEvents: 'none',\n }}\n aria-hidden=\"true\"\n />\n </div>\n );\n};\n\nCheckbox.displayName = 'Checkbox';\n\nexport default Checkbox;\n\n","import React, { useState, useMemo, useCallback, useRef, useEffect } from 'react';\nimport Pagination from '../Pagination';\nimport Checkbox from '../Checkbox';\nimport { SortIcon, SortDescIcon, SortAscIcon } from '../../icons';\nimport { useTheme } from '../../theme/ThemeContext';\n\n// ==================== 类型定义 ====================\n\nexport type SortOrder = 'ascend' | 'descend' | null;\nexport type TableSize = 'small' | 'middle' | 'large';\nexport type TableLayout = 'auto' | 'fixed';\n\nexport interface SorterResult<T = any> {\n column?: ColumnType<T>;\n order?: SortOrder;\n field?: string | string[];\n columnKey?: string | string[];\n}\n\nexport interface TableCurrentDataSource<T = any> {\n currentDataSource: T[];\n action: 'paginate' | 'sort';\n}\n\nexport interface SelectionItem {\n key: string | number;\n text: React.ReactNode;\n onSelect?: (changeableRowKeys: (string | number)[]) => void;\n}\n\nexport interface TableRowSelection<T = any> {\n type?: 'checkbox' | 'radio';\n selectedRowKeys?: (string | number)[];\n defaultSelectedRowKeys?: (string | number)[];\n onChange?: (selectedRowKeys: (string | number)[], selectedRows: T[]) => void;\n onSelect?: (record: T, selected: boolean, selectedRows: T[], nativeEvent: Event) => void;\n onSelectAll?: (selected: boolean, selectedRows: T[], changeRows: T[]) => void;\n onSelectInvert?: (selectedRowKeys: (string | number)[]) => void;\n onSelectNone?: () => void;\n getCheckboxProps?: (record: T) => {\n disabled?: boolean;\n name?: string;\n };\n hideSelectAll?: boolean;\n fixed?: boolean | 'left' | 'right';\n columnWidth?: string | number;\n columnTitle?: string | React.ReactNode;\n checkStrictly?: boolean;\n preserveSelectedRowKeys?: boolean;\n renderCell?: (checked: boolean, record: T, index: number, node: React.ReactNode) => React.ReactNode;\n}\n\nexport interface ColumnType<T = any> {\n title?: React.ReactNode | ((props: { sortOrder?: SortOrder; sortColumn?: ColumnType<T> }) => React.ReactNode);\n key?: string;\n dataIndex?: string | string[];\n align?: 'left' | 'right' | 'center';\n ellipsis?: boolean | { showTitle?: boolean };\n colSpan?: number;\n width?: string | number;\n minWidth?: string | number;\n fixed?: boolean | 'left' | 'right';\n render?: (value: any, record: T, index: number) => React.ReactNode;\n sorter?: boolean | ((a: T, b: T) => number) | { compare?: (a: T, b: T) => number; multiple?: number };\n sortOrder?: SortOrder | SortOrder[];\n defaultSortOrder?: SortOrder;\n onCell?: (record: T, index?: number) => React.HTMLAttributes<HTMLTableCellElement>;\n onHeaderCell?: (column: ColumnType<T>) => React.HTMLAttributes<HTMLTableCellElement>;\n className?: string;\n children?: ColumnType<T>[];\n onSorterChange?: (sorter: SorterResult<T>) => void;\n rowSpan?: number;\n rowScope?: 'row' | 'col' | 'rowgroup' | 'colgroup';\n}\n\nexport interface TableProps<T = any> {\n columns?: ColumnType<T>[];\n dataSource?: T[];\n rowKey?: string | ((record: T) => string | number);\n rowSelection?: TableRowSelection<T>;\n pagination?: false | {\n current?: number;\n pageSize?: number;\n total?: number;\n defaultCurrent?: number;\n defaultPageSize?: number;\n showSizeChanger?: boolean;\n pageSizeOptions?: string[];\n showQuickJumper?: boolean | { goButton?: React.ReactNode };\n showTotal?: (total: number, range: [number, number]) => React.ReactNode;\n onChange?: (page: number, pageSize?: number) => void;\n onShowSizeChange?: (current: number, size: number) => void;\n position?: 'topLeft' | 'topCenter' | 'topRight' | 'bottomLeft' | 'bottomCenter' | 'bottomRight';\n simple?: boolean;\n responsive?: boolean;\n };\n size?: TableSize;\n bordered?: boolean;\n loading?: boolean | React.ReactNode;\n locale?: {\n emptyText?: React.ReactNode | (() => React.ReactNode);\n selectAll?: React.ReactNode;\n selectInvert?: React.ReactNode;\n selectNone?: React.ReactNode;\n selectionAll?: React.ReactNode;\n sortTitle?: string;\n expand?: string;\n collapse?: string;\n triggerDesc?: string;\n triggerAsc?: string;\n cancelSort?: string;\n };\n showHeader?: boolean;\n title?: (currentData: T[]) => React.ReactNode;\n footer?: (currentData: T[]) => React.ReactNode;\n summary?: (currentData: T[]) => React.ReactNode;\n scroll?: {\n x?: number | string | true;\n y?: number | string;\n scrollToFirstRowOnChange?: boolean;\n };\n tableLayout?: TableLayout;\n onChange?: (pagination: any, filters: Record<string, any>, sorter: SorterResult<T> | SorterResult<T>[], extra: TableCurrentDataSource<T>) => void;\n onSorterChange?: (sorter: SorterResult<T> | SorterResult<T>[]) => void;\n onPaginationChange?: (page: number, pageSize: number) => void;\n onRow?: (record: T, index?: number) => React.HTMLAttributes<HTMLTableRowElement>;\n getPopupContainer?: (triggerNode: HTMLElement) => HTMLElement;\n className?: string;\n style?: React.CSSProperties;\n children?: React.ReactNode;\n expandable?: {\n expandedRowKeys?: (string | number)[];\n defaultExpandedRowKeys?: (string | number)[];\n expandedRowRender?: (record: T, index: number, indent: number, expanded: boolean) => React.ReactNode;\n expandRowByClick?: boolean;\n onExpand?: (expanded: boolean, record: T) => void;\n onExpandedRowsChange?: (expandedKeys: (string | number)[]) => void;\n defaultExpandAllRows?: boolean;\n indentSize?: number;\n expandIcon?: (props: { expanded: boolean; onExpand: (record: T, e: React.MouseEvent<HTMLElement>) => void; record: T }) => React.ReactNode;\n rowExpandable?: (record: T) => boolean;\n };\n indentSize?: number;\n rowClassName?: string | ((record: T, index: number) => string);\n onHeaderRow?: (columns: ColumnType<T>[], index?: number) => React.HTMLAttributes<HTMLTableRowElement>;\n components?: {\n header?: {\n cell?: React.ComponentType<any>;\n row?: React.ComponentType<any>;\n wrapper?: React.ComponentType<any>;\n };\n body?: {\n cell?: React.ComponentType<any>;\n row?: React.ComponentType<any>;\n wrapper?: React.ComponentType<any>;\n };\n };\n sticky?: boolean | { offsetHeader?: number; offsetScroll?: number; getContainer?: () => HTMLElement };\n}\n\n// ==================== 工具函数 ====================\n\nconst getValue = (obj: any, path: string | string[]): any => {\n if (typeof path === 'string') {\n return obj?.[path];\n }\n return path.reduce((acc, key) => acc?.[key], obj);\n};\n\nconst getRowKey = <T,>(record: T, rowKey?: string | ((record: T) => string | number)): string | number => {\n if (typeof rowKey === 'function') {\n return rowKey(record);\n }\n if (typeof rowKey === 'string') {\n return getValue(record, rowKey) ?? '';\n }\n return (record as any).key ?? '';\n};\n\n// ==================== 默认图标 ====================\n\nconst SortIconComponent: React.FC<{ order?: SortOrder }> = ({ order }) => {\n const { primaryColor } = useTheme();\n \n if (order === 'ascend') {\n return (\n <SortAscIcon style={{ color: primaryColor }}/>\n );\n }\n if (order === 'descend') {\n return (\n <SortDescIcon style={{ color: primaryColor }}/>\n );\n }\n return (\n <SortIcon/>\n );\n};\n\n\n\n// ==================== Table 组件 ====================\n\nconst Table = <T extends Record<string, any> = any>({\n columns = [],\n dataSource = [],\n rowKey = 'key',\n rowSelection,\n pagination = false,\n size = 'middle',\n bordered = false,\n loading = false,\n locale,\n showHeader = true,\n title,\n footer,\n summary,\n scroll,\n tableLayout = 'auto',\n onChange,\n onSorterChange,\n onPaginationChange,\n onRow,\n className = '',\n style,\n expandable,\n rowClassName,\n onHeaderRow,\n sticky,\n ...rest\n}: TableProps<T>) => {\n // ==================== State ====================\n const [selectedRowKeys, setSelectedRowKeys] = useState<(string | number)[]>(\n rowSelection?.selectedRowKeys || rowSelection?.defaultSelectedRowKeys || []\n );\n\n // 同步外部传入的 selectedRowKeys\n useEffect(() => {\n if (rowSelection?.selectedRowKeys !== undefined) {\n setSelectedRowKeys(rowSelection.selectedRowKeys);\n }\n }, [rowSelection?.selectedRowKeys]);\n const [sorters, setSorters] = useState<Map<string, SortOrder>>(new Map());\n const [expandedRowKeys, setExpandedRowKeys] = useState<(string | number)[]>(\n expandable?.defaultExpandedRowKeys || []\n );\n const [currentPage, setCurrentPage] = useState(\n pagination && typeof pagination === 'object' \n ? (pagination.current || pagination.defaultCurrent || 1) \n : 1\n );\n const [pageSize, setPageSize] = useState(\n pagination && typeof pagination === 'object' \n ? (pagination.pageSize || pagination.defaultPageSize || 10) \n : 10\n );\n\n // 同步外部传入的 pagination\n useEffect(() => {\n if (pagination && typeof pagination === 'object') {\n if (pagination.current !== undefined) {\n setCurrentPage(pagination.current);\n }\n if (pagination.pageSize !== undefined) {\n setPageSize(pagination.pageSize);\n }\n }\n }, [pagination]);\n const [draggedRowIndex, setDraggedRowIndex] = useState<number | null>(null);\n const [dragOverRowIndex, setDragOverRowIndex] = useState<number | null>(null);\n const [isMobile, setIsMobile] = useState(false);\n const tableRef = useRef<HTMLDivElement>(null);\n const headerRef = useRef<HTMLTableSectionElement>(null);\n\n // 检测移动端\n useEffect(() => {\n const checkMobile = () => {\n setIsMobile(window.innerWidth < 768);\n };\n checkMobile();\n window.addEventListener('resize', checkMobile);\n return () => window.removeEventListener('resize', checkMobile);\n }, []);\n\n // ==================== 处理行选择 ====================\n const handleSelect = useCallback((record: T, selected: boolean) => {\n // 检查是否禁用\n const checkboxProps = rowSelection?.getCheckboxProps?.(record);\n if (checkboxProps?.disabled) {\n return;\n }\n\n const key = getRowKey(record, rowKey);\n let newSelectedRowKeys: (string | number)[];\n \n if (rowSelection?.type === 'radio') {\n newSelectedRowKeys = selected ? [key] : [];\n } else {\n if (selected) {\n newSelectedRowKeys = [...selectedRowKeys, key];\n } else {\n newSelectedRowKeys = selectedRowKeys.filter(k => k !== key);\n }\n }\n\n setSelectedRowKeys(newSelectedRowKeys);\n \n const selectedRows = dataSource.filter(d => newSelectedRowKeys.includes(getRowKey(d, rowKey)));\n \n rowSelection?.onChange?.(newSelectedRowKeys, selectedRows);\n rowSelection?.onSelect?.(record, selected, selectedRows, new Event('select'));\n }, [selectedRowKeys, rowKey, rowSelection, dataSource]);\n\n const handleSelectAll = useCallback((selected: boolean, currentPageData: T[]) => {\n // 只选择未禁用的行\n const keys = currentPageData\n .filter(d => !rowSelection?.getCheckboxProps?.(d).disabled)\n .map(d => getRowKey(d, rowKey));\n const newSelectedRowKeys = selected ? keys : [];\n \n setSelectedRowKeys(newSelectedRowKeys);\n \n const selectedRows = dataSource.filter(d => newSelectedRowKeys.includes(getRowKey(d, rowKey)));\n const changeRows = selected ? currentPageData.filter(d => !rowSelection?.getCheckboxProps?.(d).disabled) : [];\n \n rowSelection?.onChange?.(newSelectedRowKeys, selectedRows);\n rowSelection?.onSelectAll?.(selected, selectedRows, changeRows);\n }, [rowKey, rowSelection, dataSource]);\n\n // ==================== 处理排序 ====================\n const handleSort = useCallback((column: ColumnType<T>, order: SortOrder) => {\n const columnKey = column.key || (Array.isArray(column.dataIndex) ? column.dataIndex.join('.') : column.dataIndex);\n if (!columnKey) return;\n\n const newSorters = new Map(sorters);\n \n if (order === null) {\n newSorters.delete(columnKey as string);\n } else {\n newSorters.set(columnKey as string, order);\n }\n\n setSorters(newSorters);\n \n // 构建排序结果数组\n const sorterArray: SorterResult<T>[] = Array.from(newSorters.entries()).map(([key, order]) => {\n const col = columns.find(c => {\n const cKey = c.key || (Array.isArray(c.dataIndex) ? c.dataIndex.join('.') : c.dataIndex);\n return cKey === key;\n });\n return {\n column: col || column,\n order: order!,\n field: key,\n columnKey: key,\n };\n });\n \n // 当前列的排序结果\n const currentSorter: SorterResult<T> = {\n column,\n order: order!,\n field: columnKey as string,\n columnKey: columnKey as string,\n };\n \n // 调用列的 onSorterChange 回调(单个列的排序变化)\n if (column.onSorterChange) {\n column.onSorterChange(currentSorter);\n }\n \n // 调用 Table 的 onSorterChange 回调(所有列的排序变化)\n if (onSorterChange) {\n onSorterChange(sorterArray.length === 1 ? sorterArray[0] : sorterArray);\n }\n \n // 触发 onChange(综合回调,包含分页、筛选、排序)\n if (onChange) {\n onChange(\n { current: currentPage, pageSize },\n {},\n sorterArray.length === 1 ? sorterArray[0] : sorterArray,\n { currentDataSource: dataSource, action: 'sort' }\n );\n }\n }, [sorters, onChange, onSorterChange, currentPage, pageSize, dataSource, columns]);\n\n // ==================== 处理展开 ====================\n const handleExpand = useCallback((record: T, expanded: boolean) => {\n const key = getRowKey(record, rowKey);\n let newExpandedRowKeys: (string | number)[];\n \n if (expanded) {\n newExpandedRowKeys = [...expandedRowKeys, key];\n } else {\n newExpandedRowKeys = expandedRowKeys.filter(k => k !== key);\n }\n \n setExpandedRowKeys(newExpandedRowKeys);\n expandable?.onExpand?.(expanded, record);\n expandable?.onExpandedRowsChange?.(newExpandedRowKeys);\n }, [expandedRowKeys, rowKey, expandable]);\n\n // ==================== 数据处理 ====================\n const getProcessedData = useCallback((): T[] => {\n let processed = [...dataSource];\n\n // 排序\n if (sorters.size > 0) {\n processed.sort((a, b) => {\n const sorterEntries = Array.from(sorters.entries());\n for (const [columnKey, order] of sorterEntries) {\n const column = columns.find(col => {\n const colKey = col.key || (Array.isArray(col.dataIndex) ? col.dataIndex.join('.') : col.dataIndex);\n return colKey === columnKey;\n });\n \n if (!column) continue;\n \n let compareResult = 0;\n \n if (typeof column.sorter === 'function') {\n compareResult = column.sorter(a, b);\n } else if (column.sorter === true) {\n const aVal = getValue(a, column.dataIndex || columnKey);\n const bVal = getValue(b, column.dataIndex || columnKey);\n if (aVal < bVal) compareResult = -1;\n else if (aVal > bVal) compareResult = 1;\n }\n \n if (compareResult !== 0) {\n return order === 'ascend' ? compareResult : -compareResult;\n }\n }\n return 0;\n });\n }\n\n return processed;\n }, [dataSource, sorters, columns]);\n\n const processedData = getProcessedData();\n\n // ==================== 分页处理 ====================\n const paginatedData = useMemo(() => {\n if (pagination === false || !pagination) return processedData;\n \n const start = (currentPage - 1) * pageSize;\n const end = start + pageSize;\n return processedData.slice(start, end);\n }, [processedData, currentPage, pageSize, pagination]);\n\n const handlePageChange = useCallback((page: number, size?: number) => {\n const newPageSize = size ?? pageSize;\n setCurrentPage(page);\n if (size) setPageSize(size);\n \n // 调用 Table 的 onPaginationChange 回调(专门用于分页变化)\n if (onPaginationChange) {\n onPaginationChange(page, newPageSize);\n }\n \n // 调用 pagination 内部的回调(保持向后兼容)\n if (pagination && typeof pagination === 'object') {\n pagination.onChange?.(page, size);\n if (size) pagination.onShowSizeChange?.(page, size);\n }\n \n // 触发 Table 的 onChange(综合回调,包含分页、筛选、排序)\n if (onChange) {\n const sorterArray: SorterResult<T>[] = Array.from(sorters.entries()).map(([key, order]) => {\n const col = columns.find(c => {\n const cKey = c.key || (Array.isArray(c.dataIndex) ? c.dataIndex.join('.') : c.dataIndex);\n return cKey === key;\n });\n return {\n column: col,\n order: order!,\n field: key,\n columnKey: key,\n };\n });\n \n onChange(\n { current: page, pageSize: newPageSize },\n {},\n sorterArray.length === 1 ? sorterArray[0] : sorterArray,\n { currentDataSource: processedData, action: 'paginate' }\n );\n }\n }, [pagination, onPaginationChange, onChange, pageSize, sorters, columns, processedData]);\n\n // ==================== 渲染单元格 ====================\n const renderCell = useCallback((column: ColumnType<T>, record: T, index: number): React.ReactNode => {\n const value = getValue(record, column.dataIndex || '');\n \n if (column.render) {\n return column.render(value, record, index);\n }\n \n return value;\n }, []);\n\n // ==================== 计算固定列的偏移量 ====================\n const getFixedOffset = useCallback((columnIndex: number, fixed: 'left' | 'right' | boolean | undefined, isHeader: boolean = false) => {\n if (!fixed) return undefined;\n \n const fixedDirection = fixed === true ? 'left' : fixed;\n let offset = 0;\n \n if (fixedDirection === 'left') {\n // 计算左侧固定列的偏移量\n // 如果有行选择且固定在左侧,先加上选择列的宽度\n if (rowSelection && (rowSelection.fixed === 'left' || rowSelection.fixed === true)) {\n const selectWidth = typeof rowSelection.columnWidth === 'number' \n ? rowSelection.columnWidth \n : (typeof rowSelection.columnWidth === 'string' ? parseInt(rowSelection.columnWidth) : 60);\n offset += selectWidth;\n }\n // 然后加上前面所有左侧固定列的宽度\n for (let i = 0; i < columnIndex; i++) {\n const col = columns[i];\n if (col.fixed === 'left' || col.fixed === true) {\n const colWidth = col.width \n ? (typeof col.width === 'number' ? col.width : parseInt(col.width as string) || 0)\n : 150; // 默认宽度\n offset += colWidth;\n }\n }\n return offset;\n } else if (fixedDirection === 'right') {\n // 计算右侧固定列的偏移量\n for (let i = columnIndex + 1; i < columns.length; i++) {\n const col = columns[i];\n if (col.fixed === 'right') {\n const colWidth = col.width \n ? (typeof col.width === 'number' ? col.width : parseInt(col.width as string) || 0)\n : 150; // 默认宽度\n offset += colWidth;\n }\n }\n // 如果有行选择且固定在右侧,需要加上选择列的宽度\n if (rowSelection && rowSelection.fixed === 'right') {\n const selectWidth = typeof rowSelection.columnWidth === 'number' \n ? rowSelection.columnWidth \n : (typeof rowSelection.columnWidth === 'string' ? parseInt(rowSelection.columnWidth) : 60);\n offset += selectWidth;\n }\n return offset;\n }\n \n return undefined;\n }, [columns, rowSelection]);\n\n // ==================== 渲染表头 ====================\n const renderHeader = useCallback(() => {\n if (!showHeader) return null;\n\n const headerColumns = columns.map((column, colIndex) => {\n const columnKey = column.key || (Array.isArray(column.dataIndex) ? column.dataIndex.join('.') : column.dataIndex) || colIndex;\n const sortOrder = sorters.get(columnKey as string) || null;\n const fixedOffset = getFixedOffset(colIndex, column.fixed, true);\n const columnWidth = column.width \n ? (typeof column.width === 'number' ? `${column.width}px` : column.width)\n : undefined;\n\n return (\n <th\n key={columnKey}\n className={`${column.className || ''} ${column.align ? `text-${column.align}` : ''}`}\n style={{\n width: columnWidth,\n minWidth: column.minWidth ? (typeof column.minWidth === 'number' ? `${column.minWidth}px` : column.minWidth) : (columnWidth || undefined),\n maxWidth: columnWidth,\n position: column.fixed ? 'sticky' : 'relative',\n left: column.fixed === 'left' || column.fixed === true ? (fixedOffset !== undefined ? `${fixedOffset}px` : '0') : undefined,\n right: column.fixed === 'right' ? (fixedOffset !== undefined ? `${fixedOffset}px` : '0') : undefined,\n zIndex: column.fixed ? (column.fixed === 'left' || column.fixed === true ? 10 : 9) : 1,\n backgroundColor: column.fixed ? '#F9FAFB' : '#F9FAFB',\n boxShadow: column.fixed === 'left' || column.fixed === true \n ? '2px 0 4px rgba(0, 0, 0, 0.05)' \n : column.fixed === 'right' \n ? '-2px 0 4px rgba(0, 0, 0, 0.05)' \n : undefined,\n padding: '12px 16px',\n textAlign: column.align || 'left',\n borderBottom: '1px solid #EAECF0',\n fontWeight: 600,\n fontSize: '12px',\n lineHeight: '18px',\n color: '#475467',\n fontFamily: 'DM Sans, sans-serif',\n }}\n {...(column.onHeaderCell?.(column) || {})}\n >\n <div\n style={{\n display: 'flex',\n alignItems: 'center',\n gap: '8px',\n justifyContent: column.align === 'right' ? 'flex-end' : column.align === 'center' ? 'center' : 'flex-start',\n }}\n >\n <span style={{ fontWeight: 600, fontSize: '12px', lineHeight: '18px', color: '#475467' }}>\n {typeof column.title === 'function' ? column.title({ sortOrder, sortColumn: column }) : column.title}\n </span>\n {column.sorter && (\n <button\n onClick={() => {\n const nextOrder = sortOrder === null ? 'ascend' : sortOrder === 'ascend' ? 'descend' : null;\n handleSort(column, nextOrder);\n }}\n style={{\n border: 'none',\n background: 'none',\n cursor: 'pointer',\n display: 'flex',\n alignItems: 'center',\n padding: '2px',\n color: sortOrder ? '#475467' : '#98A2B3',\n }}\n >\n <SortIconComponent order={sortOrder || undefined} />\n </button>\n )}\n </div>\n </th>\n );\n });\n\n // 如果有行选择,添加选择列\n if (rowSelection) {\n const selectWidth = typeof rowSelection.columnWidth === 'number' \n ? `${rowSelection.columnWidth}px` \n : (typeof rowSelection.columnWidth === 'string' ? rowSelection.columnWidth : '60px');\n const selectColumn = (\n <th\n key=\"selection\"\n style={{\n width: selectWidth,\n position: rowSelection.fixed ? 'sticky' : 'relative',\n left: rowSelection.fixed === 'left' || rowSelection.fixed === true ? '0px' : undefined,\n right: rowSelection.fixed === 'right' ? '0px' : undefined,\n zIndex: rowSelection.fixed ? (rowSelection.fixed === 'left' || rowSelection.fixed === true ? 12 : 11) : 1,\n backgroundColor: '#F9FAFB',\n padding: '12px 16px',\n borderBottom: '1px solid #EAECF0',\n fontWeight: 600,\n fontSize: '12px',\n lineHeight: '18px',\n color: '#475467',\n fontFamily: 'DM Sans, sans-serif',\n textAlign: 'center',\n }}\n >\n <div style={{ display: 'flex', alignItems: 'center', justifyContent: 'center' }}>\n {!rowSelection.hideSelectAll && rowSelection.type !== 'radio' && (() => {\n const enabledRows = paginatedData.filter(d => !rowSelection.getCheckboxProps?.(d).disabled);\n const enabledKeys = enabledRows.map(d => getRowKey(d, rowKey));\n const allSelected = enabledRows.length > 0 && enabledKeys.every(key => selectedRowKeys.includes(key));\n const someSelected = enabledKeys.some(key => selectedRowKeys.includes(key));\n \n return (\n <Checkbox\n checked={allSelected}\n indeterminate={someSelected && !allSelected}\n onChange={(e) => handleSelectAll(e.target.checked, paginatedData)}\n />\n );\n })()}\n {rowSelection.columnTitle && <span style={{ marginLeft: rowSelection.hideSelectAll ? 0 : '8px' }}>{rowSelection.columnTitle}</span>}\n </div>\n </th>\n );\n headerColumns.unshift(selectColumn);\n }\n\n const headerRowProps = onHeaderRow?.(columns, 0);\n \n return (\n <thead ref={headerRef}>\n <tr {...(headerRowProps || {})}>{headerColumns}</tr>\n </thead>\n );\n }, [columns, showHeader, sorters, rowSelection, selectedRowKeys, paginatedData, rowKey, handleSort, handleSelectAll, locale, onHeaderRow, getFixedOffset]);\n\n // ==================== 拖拽排序处理 ====================\n const handleDragStart = useCallback((index: number) => {\n setDraggedRowIndex(index);\n }, []);\n\n const handleDragOver = useCallback((e: React.DragEvent, index: number) => {\n e.preventDefault();\n setDragOverRowIndex(index);\n }, []);\n\n const handleDrop = useCallback((e: React.DragEvent, dropIndex: number) => {\n e.preventDefault();\n if (draggedRowIndex === null || draggedRowIndex === dropIndex) {\n setDraggedRowIndex(null);\n setDragOverRowIndex(null);\n return;\n }\n\n const newData = [...paginatedData];\n const draggedItem = newData[draggedRowIndex];\n newData.splice(draggedRowIndex, 1);\n newData.splice(dropIndex, 0, draggedItem);\n\n // 这里可以触发 onChange 回调,让外部处理数据更新\n setDraggedRowIndex(null);\n setDragOverRowIndex(null);\n }, [draggedRowIndex, paginatedData]);\n\n const handleDragEnd = useCallback(() => {\n setDraggedRowIndex(null);\n setDragOverRowIndex(null);\n }, []);\n\n // ==================== 渲染表格行 ====================\n const renderRows = useCallback(() => {\n return paginatedData.map((record, index) => {\n const key = getRowKey(record, rowKey);\n const isSelected = selectedRowKeys.includes(key);\n const isExpanded = expandedRowKeys.includes(key);\n const rowProps = onRow?.(record, index) || {};\n const isLastRow = index === paginatedData.length - 1;\n\n return (\n <React.Fragment key={key}>\n <tr\n className={`${typeof rowClassName === 'function' ? rowClassName(record, index) : rowClassName || ''} ${draggedRowIndex === index ? 'dragging' : ''} ${dragOverRowIndex === index ? 'drag-over' : ''}`}\n draggable={true}\n onDragStart={() => handleDragStart(index)}\n onDragOver={(e) => handleDragOver(e, index)}\n onDrop={(e) => handleDrop(e, index)}\n onDragEnd={handleDragEnd}\n style={{\n cursor: 'move',\n opacity: draggedRowIndex === index ? 0.5 : 1,\n backgroundColor: dragOverRowIndex === index ? '#F9FAFB' : 'white',\n transition: 'background-color 0.2s',\n ...rowProps.style,\n }}\n onMouseEnter={(e) => {\n if (draggedRowIndex !== index && dragOverRowIndex !== index) {\n e.currentTarget.style.backgroundColor = '#F9FAFB';\n }\n }}\n onMouseLeave={(e) => {\n if (draggedRowIndex !== index && dragOverRowIndex !== index) {\n e.currentTarget.style.backgroundColor = 'white';\n }\n }}\n {...rowProps}\n >\n {rowSelection && (\n <td\n style={{\n width: typeof rowSelection.columnWidth === 'number' \n ? `${rowSelection.columnWidth}px` \n : (typeof rowSelection.columnWidth === 'string' ? rowSelection.columnWidth : '60px'),\n position: rowSelection.fixed ? 'sticky' : 'relative',\n left: rowSelection.fixed === 'left' || rowSelection.fixed === true ? '0px' : undefined,\n right: rowSelection.fixed === 'right' ? '0px' : undefined,\n zIndex: rowSelection.fixed ? (rowSelection.fixed === 'left' || rowSelection.fixed === true ? 12 : 11) : 1,\n backgroundColor: 'white',\n padding: '16px',\n borderBottom: isLastRow ? 'none' : '1px solid #EAECF0',\n textAlign: 'center',\n }}\n >\n <div style={{ display: 'flex', alignItems: 'center', justifyContent: 'center' }}>\n <Checkbox\n checked={isSelected}\n onChange={(e) => handleSelect(record, e.target.checked)}\n disabled={rowSelection.getCheckboxProps?.(record).disabled}\n />\n </div>\n </td>\n )}\n {columns.map((column, colIndex) => {\n const columnKey = column.key || (Array.isArray(column.dataIndex) ? column.dataIndex.join('.') : column.dataIndex) || colIndex;\n const cellProps = column.onCell?.(record, index) || {};\n const fixedOffset = getFixedOffset(colIndex, column.fixed, false);\n const columnWidth = column.width \n ? (typeof column.width === 'number' ? `${column.width}px` : column.width)\n : undefined;\n \n return (\n <td\n key={columnKey}\n className={`${column.className || ''} ${column.align ? `text-${column.align}` : ''}`}\n style={{\n width: columnWidth,\n minWidth: column.minWidth ? (typeof column.minWidth === 'number' ? `${column.minWidth}px` : column.minWidth) : (columnWidth || undefined),\n maxWidth: columnWidth,\n position: column.fixed ? 'sticky' : 'relative',\n left: column.fixed === 'left' || column.fixed === true ? (fixedOffset !== undefined ? `${fixedOffset}px` : '0') : undefined,\n right: column.fixed === 'right' ? (fixedOffset !== undefined ? `${fixedOffset}px` : '0') : undefined,\n zIndex: column.fixed ? (column.fixed === 'left' || column.fixed === true ? 10 : 9) : 1,\n backgroundColor: 'white',\n boxShadow: column.fixed === 'left' || column.fixed === true \n ? '2px 0 4px rgba(0, 0, 0, 0.05)' \n : column.fixed === 'right' \n ? '-2px 0 4px rgba(0, 0, 0, 0.05)' \n : undefined,\n padding: '16px',\n borderBottom: isLastRow ? 'none' : '1px solid #EAECF0',\n fontSize: '14px',\n lineHeight: '20px',\n color: '#101828',\n fontFamily: 'DM Sans, sans-serif',\n textAlign: column.align || 'left',\n ...cellProps.style,\n }}\n colSpan={column.colSpan}\n rowSpan={column.rowSpan}\n {...cellProps}\n >\n {renderCell(column, record, index)}\n </td>\n );\n })}\n </tr>\n {expandable?.expandedRowRender && isExpanded && (\n <tr>\n <td colSpan={columns.length + (rowSelection ? 1 : 0)}>\n {expandable.expandedRowRender(record, index, 0, true)}\n </td>\n </tr>\n )}\n </React.Fragment>\n );\n });\n }, [paginatedData, rowKey, selectedRowKeys, expandedRowKeys, rowSelection, columns, onRow, rowClassName, handleSelect, renderCell, expandable, draggedRowIndex, dragOverRowIndex, handleDragStart, handleDragOver, handleDrop, handleDragEnd, getFixedOffset]);\n\n // ==================== 渲染分页 ====================\n const renderPagination = () => {\n if (pagination === false || !pagination) return null;\n \n const total = pagination.total ?? processedData.length;\n const position = pagination.position || 'bottomRight';\n \n return (\n <div\n style={{\n marginTop: '16px',\n display: 'flex',\n justifyContent: position.includes('Right') ? 'flex-end' : position.includes('Left') ? 'flex-start' : 'center',\n }}\n >\n <Pagination\n current={currentPage}\n total={total}\n pageSize={pageSize}\n showSizeChanger={pagination.showSizeChanger}\n pageSizeOptions={pagination.pageSizeOptions}\n showQuickJumper={pagination.showQuickJumper}\n showTotal={pagination.showTotal}\n onChange={handlePageChange}\n onShowSizeChange={handlePageChange}\n simple={pagination.simple}\n responsive={pagination.responsive}\n size={size === 'small' ? 'small' : 'default'}\n />\n </div>\n );\n };\n\n // ==================== 移动端渲染 ====================\n const renderMobileView = () => {\n return (\n <div className=\"aha-table-mobile\">\n {paginatedData.map((record, index) => {\n const key = getRowKey(record, rowKey);\n const isSelected = selectedRowKeys.includes(key);\n \n return (\n <div\n key={key}\n className={`aha-table-mobile-row ${isSelected ? 'selected' : ''}`}\n style={{\n border: '1px solid #e8e8e8',\n borderRadius: '4px',\n padding: '12px',\n marginBottom: '12px',\n backgroundColor: isSelected ? '#e6f7ff' : 'white',\n }}\n >\n {rowSelection && (\n <div style={{ marginBottom: '8px' }}>\n <Checkbox\n checked={isSelected}\n onChange={(e) => handleSelect(record, e.target.checked)}\n disabled={rowSelection.getCheckboxProps?.(record).disabled}\n />\n </div>\n )}\n {columns.map((column) => {\n const columnKey = column.key || (Array.isArray(column.dataIndex) ? column.dataIndex.join('.') : column.dataIndex);\n const value = getValue(record, column.dataIndex || '');\n const displayValue = column.render ? column.render(value, record, index) : value;\n \n return (\n <div\n key={columnKey}\n style={{\n display: 'flex',\n justifyContent: 'space-between',\n marginBottom: '8px',\n paddingBottom: '8px',\n borderBottom: '1px solid #f0f0f0',\n }}\n >\n <span style={{ fontWeight: 'bold', color: '#666' }}>\n {typeof column.title === 'function' ? column.title({}) : column.title}:\n </span>\n <span style={{ flex: 1, textAlign: 'right' }}>{displayValue}</span>\n </div>\n );\n })}\n </div>\n );\n })}\n </div>\n );\n };\n\n // ==================== 主渲染 ====================\n // 检查是否有固定列\n const hasFixedColumns = useMemo(() => {\n return columns.some(col => col.fixed) || (rowSelection && rowSelection.fixed);\n }, [columns, rowSelection]);\n\n // 检查是否所有列都有宽度\n const hasAllColumnWidths = useMemo(() => {\n return columns.every(col => col.width) && (!rowSelection || rowSelection.columnWidth);\n }, [columns, rowSelection]);\n\n // 计算表格总宽度\n // 只有在设置了 scroll.x 或者有固定列且需要滚动时,才使用固定宽度\n // 否则使用 100% 让表格撑满父元素\n const totalWidth = useMemo(() => {\n // 如果设置了 scroll.x,使用 scroll.x 作为表格宽度(Ant Design 的方式)\n if (scroll?.x) {\n if (typeof scroll.x === 'number') {\n return scroll.x;\n } else if (scroll.x === true) {\n // scroll.x === true 时,计算所有列的宽度总和\n const widthSum = columns.reduce((sum, col) => {\n const w = col.width \n ? (typeof col.width === 'number' ? col.width : parseInt(String(col.width).replace('px', '')) || 0)\n : 150; // 默认宽度\n return sum + w;\n }, 0);\n const total = widthSum + (rowSelection ? (typeof rowSelection.columnWidth === 'number' ? rowSelection.columnWidth : parseInt(String(rowSelection.columnWidth || '60').replace('px', '')) || 60) : 0);\n return total;\n }\n }\n \n // 如果有固定列,需要计算最小宽度以确保固定列能正常工作\n // 但表格本身仍然使用 100% 宽度撑满父元素\n if (hasFixedColumns) {\n // 计算所有固定列的宽度总和,作为最小宽度\n const fixedWidthSum = columns.reduce((sum, col) => {\n if (col.fixed && col.width) {\n const w = typeof col.width === 'number' ? col.width : parseInt(String(col.width).replace('px', '')) || 0;\n return sum + w;\n }\n return sum;\n }, 0);\n const rowSelectionWidth = (rowSelection && rowSelection.fixed && rowSelection.columnWidth) \n ? (typeof rowSelection.columnWidth === 'number' ? rowSelection.columnWidth : parseInt(String(rowSelection.columnWidth).replace('px', '')) || 60)\n : 0;\n // 返回最小宽度,但表格宽度仍然使用 100%\n return fixedWidthSum + rowSelectionWidth;\n }\n \n // 默认返回 undefined,让表格使用 100% 宽度撑满父元素\n return undefined;\n }, [columns, scroll?.x, rowSelection, hasFixedColumns]);\n\n // 如果有固定列或所有列都有 width,使用 fixed layout\n const effectiveTableLayout = useMemo(() => {\n if (tableLayout === 'fixed') return 'fixed';\n if (hasFixedColumns) return 'fixed';\n if (hasAllColumnWidths) return 'fixed';\n // 如果有部分列设置了宽度,也使用 fixed layout,让未设置宽度的列自适应\n if (columns.some(col => col.width)) return 'fixed';\n return tableLayout;\n }, [tableLayout, hasFixedColumns, hasAllColumnWidths, columns]);\n\n const tableStyle: React.CSSProperties = {\n width: '100%', // 始终使用 100% 宽度撑满父元素\n minWidth: totalWidth ? `${totalWidth}px` : '100%', // 如果有固定列,设置最小宽度\n borderCollapse: 'separate',\n borderSpacing: 0,\n tableLayout: effectiveTableLayout,\n backgroundColor: 'white',\n borderRadius: '8px',\n border: '1px solid #EAECF0',\n };\n\n const wrapperStyle: React.CSSProperties = {\n position: 'relative',\n width: '100%',\n maxWidth: '100%',\n maxHeight: typeof scroll?.y === 'number' ? `${scroll.y}px` : undefined,\n borderRadius: '8px',\n ...style,\n };\n\n // 移动端使用卡片式布局\n if (isMobile) {\n return (\n <div ref={tableRef} className={`aha-table aha-table-mobile-wrapper ${className}`} style={wrapperStyle} {...rest}>\n {title && <div style={{ marginBottom: '16px' }}>{title(processedData)}</div>}\n {pagination && typeof pagination === 'object' && pagination.position?.startsWith('top') && renderPagination()}\n {renderMobileView()}\n {footer && <div style={{ marginTop: '16px' }}>{footer(processedData)}</div>}\n {pagination && (typeof pagination === 'object' ? !pagination.position?.startsWith('top') : true) && renderPagination()}\n </div>\n );\n }\n\n // 滚动容器的样式\n const scrollContainerStyle: React.CSSProperties = {\n position: 'relative',\n overflowX: (scroll?.x || hasFixedColumns) ? 'auto' : 'visible',\n overflowY: scroll?.y ? 'auto' : 'visible',\n width: '100%',\n // 关键:容器宽度必须小于表格宽度,才能触发滚动\n // 只有在设置了 scroll.x 时才限制容器宽度\n maxWidth: scroll?.x === true \n ? '100%' \n : typeof scroll?.x === 'number' \n ? `${scroll.x}px` \n : undefined,\n maxHeight: typeof scroll?.y === 'number' ? `${scroll.y}px` : undefined,\n // 确保滚动容器有明确的边界\n borderRadius: '8px',\n };\n\n return (\n <div ref={tableRef} className={`aha-table ${className}`} style={wrapperStyle} {...rest}>\n {title && <div style={{ marginBottom: '16px' }}>{title(processedData)}</div>}\n {pagination && typeof pagination === 'object' && pagination.position?.startsWith('top') && renderPagination()}\n <div style={scrollContainerStyle}>\n <div style={{ \n width: '100%', \n minWidth: totalWidth ? `${totalWidth}px` : '100%', \n display: 'block' \n }}>\n <table style={tableStyle} className={bordered ? 'bordered' : ''}>\n {renderHeader()}\n <tbody>{renderRows()}</tbody>\n {summary && (\n <tfoot>\n <tr>\n <td colSpan={columns.length + (rowSelection ? 1 : 0)}>{summary(processedData)}</td>\n </tr>\n </tfoot>\n )}\n </table>\n </div>\n </div>\n {footer && <div style={{ marginTop: '16px' }}>{footer(processedData)}</div>}\n {pagination && (typeof pagination === 'object' ? !pagination.position?.startsWith('top') : true) && renderPagination()}\n </div>\n );\n};\n\nexport default Table;\n\n"],"names":["__assign","Object","assign","t","s","i","n","arguments","length","p","prototype","hasOwnProperty","call","apply","this","__rest","e","indexOf","getOwnPropertySymbols","propertyIsEnumerable","__spreadArray","to","from","pack","ar","l","Array","slice","concat","SuppressedError","defaultTheme","primaryColor","ThemeContext","createContext","useTheme","context","useContext","SIZE_CONFIG","small","height","paddingLeft","paddingRight","fontSize","lineHeight","iconSize","gap","mediumSmall","medium","large","LoadingIcon","_a","size","color","_jsxs","jsxs","_Fragment","children","_jsx","width","viewBox","fill","style","animation","jsx","cx","cy","r","stroke","strokeWidth","strokeLinecap","strokeDasharray","strokeDashoffset","opacity","Button","baseStyle","_b","type","_c","_d","disabled","_e","loading","onClick","_f","htmlType","_g","className","icon","_h","iconPosition","rest","_j","_k","useState","isHovered","setIsHovered","_l","isPressed","setIsPressed","sizeConfig","isDisabled","renderIcon","iconColor","parseInt","replace","display","alignItems","justifyContent","flexShrink","buttonStyle","position","fontWeight","fontFamily","borderRadius","border","cursor","outline","transition","userSelect","WebkitTapHighlightColor","backgroundColor","boxShadow","preventDefault","onMouseEnter","onMouseLeave","onMouseDown","onMouseUp","displayName","CheckIcon","xmlns","d","strokeLinejoin","MinusIcon","SortIcon","SortDescIcon","SortAscIcon","LeftArrowIcon","RightArrowIcon","Pagination","controlledCurrent","current","defaultCurrent","total","controlledPageSize","pageSize","defaultPageSize","showSizeChanger","pageSizeOptions","showQuickJumper","showTotal","onChange","onShowSizeChange","simple","hideOnSinglePage","_m","_o","responsive","showLessItems","itemRender","_q","_r","internalCurrent","setInternalCurrent","_s","internalPageSize","setInternalPageSize","_t","jumpToPage","setJumpToPage","totalPages","useMemo","Math","ceil","useEffect","undefined","handlePageChange","page","handleJumpTo","marginRight","margin","marginLeft","start","end","min","flexWrap","padding","_","pages","push","getPageNumbers","map","item","index","isActive","element","minWidth","background","max","renderItem","value","newPageSize","Number","target","newTotalPages","newCurrent","currentTarget","borderColor","onKeyPress","key","onFocus","onBlur","goButton","Checkbox","checked","indeterminate","isChecked","minHeight","boxSizing","pointerEvents","ref","el","getValue","obj","path","reduce","acc","getRowKey","record","rowKey","SortIconComponent","order","columns","dataSource","rowSelection","pagination","bordered","locale","showHeader","title","footer","summary","scroll","_p","tableLayout","onSorterChange","onPaginationChange","onRow","expandable","rowClassName","onHeaderRow","sticky","selectedRowKeys","defaultSelectedRowKeys","setSelectedRowKeys","Map","sorters","setSorters","defaultExpandedRowKeys","expandedRowKeys","setExpandedRowKeys","_u","currentPage","setCurrentPage","_v","setPageSize","_w","draggedRowIndex","setDraggedRowIndex","_x","dragOverRowIndex","setDragOverRowIndex","_y","isMobile","setIsMobile","tableRef","useRef","headerRef","checkMobile","window","innerWidth","addEventListener","removeEventListener","handleSelect","useCallback","selected","checkboxProps","getCheckboxProps","newSelectedRowKeys","filter","k","selectedRows","includes","onSelect","Event","handleSelectAll","currentPageData","keys","changeRows","onSelectAll","handleSort","column","columnKey","isArray","dataIndex","join","newSorters","delete","set","sorterArray","entries","find","c","field","currentSorter","currentDataSource","action","expanded","newExpandedRowKeys","onExpand","onExpandedRowsChange","getProcessedData","processed","sort","a","b","_loop_1","col","compareResult","sorter","aVal","bVal","sorterEntries_1","_i","state_1","processedData","paginatedData","renderCell","render","getFixedOffset","columnIndex","fixed","isHeader","fixedDirection","offset","columnWidth","renderHeader","enabledRows","enabledKeys","allSelected","someSelected","headerColumns","colIndex","sortOrder","get","fixedOffset","align","maxWidth","left","right","zIndex","textAlign","borderBottom","onHeaderCell","sortColumn","selectWidth","selectColumn","hideSelectAll","every","some","columnTitle","unshift","headerRowProps","handleDragStart","handleDragOver","handleDrop","dropIndex","newData","draggedItem","splice","handleDragEnd","renderRows","isSelected","isExpanded","rowProps","isLastRow","React","Fragment","draggable","onDragStart","onDragOver","onDrop","onDragEnd","cellProps","onCell","colSpan","rowSpan","expandedRowRender","renderPagination","marginTop","hasFixedColumns","hasAllColumnWidths","totalWidth","x","sum","String","effectiveTableLayout","tableStyle","borderCollapse","borderSpacing","wrapperStyle","maxHeight","y","marginBottom","startsWith","displayValue","paddingBottom","flex","scrollContainerStyle","overflowX","overflowY"],"mappings":"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","x_google_ignoreList":[0]}
package/dist/Tag.esm.js CHANGED
@@ -1,2 +1,2 @@
1
- import{jsxs as e,jsx as t}from"react/jsx-runtime";import r from"react";var l=function(){return l=Object.assign||function(e){for(var t,r=1,l=arguments.length;r<l;r++)for(var i in t=arguments[r])Object.prototype.hasOwnProperty.call(t,i)&&(e[i]=t[i]);return e},l.apply(this,arguments)};"function"==typeof SuppressedError&&SuppressedError;var i={Green:{light:{bg:"#ECFDF5",text:"#006045",border:"#A4F4CF",fill:"#00BC7D",fillText:"#FFFFFF"}},Red:{light:{bg:"#FEF2F2",text:"#9F0712",border:"#FFC9C9",fill:"#FB2C36",fillText:"#FFFFFF"}},Orange:{light:{bg:"#FFF6ED",text:"#9B2911",border:"#FFD1A9",fill:"#FB6011",fillText:"#FFFFFF"}},Cyan:{light:{bg:"#ECFEFF",text:"#005F78",border:"#A2F4FD",fill:"#00B8DB",fillText:"#FFFFFF"}},Violet:{light:{bg:"#F5F3FF",text:"#5D0EC0",border:"#DDD6FF",fill:"#8E51FF",fillText:"#FFFFFF"}},Pink:{light:{bg:"#FDF2F8",text:"#A3004C",border:"#FCCEE8",fill:"#F6339A",fillText:"#FFFFFF"}},Gray:{light:{bg:"#F5F5F4",text:"#292524",border:"#E7E5E4",fill:"#292524",fillText:"#FFFFFF"}},Yellow:{light:{bg:"#FFFBEB",text:"#973C00",border:"#FEE685",fill:"#FE9A00",fillText:"#FFFFFF"}},Blue:{light:{bg:"#EFF6FF",text:"#193CB8",border:"#BEDBFF",fill:"#2B7FFF",fillText:"#FFFFFF"}}},n={large:{padding:"px-2 py-0.5",textSize:"text-sm",iconSize:"w-4 h-4",gap:"gap-1"},small:{padding:"px-2 py-0.5",textSize:"text-xs",iconSize:"w-3 h-3",gap:"gap-0.5"}},F=function(F){var o=F.children,a=F.color,s=F.variant,c=void 0===s?"light":s,f=F.size,g=void 0===f?"large":f,u=F.stroke,d=void 0!==u&&u,p=F.icon,x=F.iconPosition,h=void 0===x?"none":x,y=F.className,m=void 0===y?"":y,E=F.onClick,b=function(e,t){var r={};for(var l in e)Object.prototype.hasOwnProperty.call(e,l)&&t.indexOf(l)<0&&(r[l]=e[l]);if(null!=e&&"function"==typeof Object.getOwnPropertySymbols){var i=0;for(l=Object.getOwnPropertySymbols(e);i<l.length;i++)t.indexOf(l[i])<0&&Object.prototype.propertyIsEnumerable.call(e,l[i])&&(r[l[i]]=e[l[i]])}return r}(F,["children","color","variant","size","stroke","icon","iconPosition","className","onClick"]),C=i[a],v=n[g],D={borderRadius:"0.375rem",display:"inline-flex",justifyContent:"start",alignItems:"center",padding:"2px 8px",gap:"large"===g?"4px":"2px",fontWeight:500,fontFamily:"DM Sans, sans-serif",lineHeight:"large"===g?"1.375":"1",transition:"all 0.2s",fontSize:"large"===g?"14px":"12px",height:"small"===g?"20px":"24px"};if("light"===c&&(D.backgroundColor=C.light.bg,D.color=C.light.text,d)){D.outline="1px solid",D.outlineOffset="-1px";D.outlineColor=function(){switch(a){case"Green":default:return"#A4F4CF";case"Red":return"#FFC9C9";case"Orange":case"Yellow":return"#FFD1A9";case"Blue":return"#BEDBFF";case"Cyan":return"#A2F4FD";case"Violet":return"#DDD6FF";case"Pink":return"#FCCEE8";case"Gray":return"#E7E5E4"}}()}E&&(D.cursor="pointer",D.opacity="1");var B=["rounded-md","inline-flex","justify-start","items-center",v.padding,v.gap,"font-medium","font-dm-sans","large"===g?"leading-snug":"leading-none","transition-colors","duration-200","small"===g?"h-5":"h-6"].filter(Boolean);"fill"===c&&(D.backgroundColor=C.light.fill,D.color=C.light.fillText),E&&B.push("cursor-pointer","hover:opacity-80"),m&&B.push(m);var O=B.join(" "),j=function(){if(!p)return null;var e="small"===g?"14px":"16px";return t("div",{className:"flex items-center justify-center",style:{width:e,height:e},children:"svg"===p.type?r.cloneElement(p,{width:e,height:e,style:{fill:function(){switch(a){case"Green":default:return"#009966";case"Red":return"#E7000B";case"Orange":return"#E17100";case"Blue":return"#155DFC";case"Yellow":return"#EC470A";case"Cyan":return"#0092B8";case"Violet":return"#7F22FE";case"Pink":return"#E60076";case"Gray":return"#57534D"}}()}}):p})};return e("div",l({className:O,style:D,onClick:E},b,{children:["leading"===h&&j(),t("div",{className:"px-1 flex justify-center items-center",children:t("div",{className:"justify-center ".concat(v.textSize," font-medium font-dm-sans ").concat("large"===g?"leading-snug":"leading-none"),children:o})}),"after"===h&&j()]}))};export{F as default};
1
+ import{jsxs as t,jsx as e}from"react/jsx-runtime";import r,{createContext as n,useContext as i}from"react";var l=function(){return l=Object.assign||function(t){for(var e,r=1,n=arguments.length;r<n;r++)for(var i in e=arguments[r])Object.prototype.hasOwnProperty.call(e,i)&&(t[i]=e[i]);return t},l.apply(this,arguments)};"function"==typeof SuppressedError&&SuppressedError;var a={primaryColor:"#FB6011"},o=n(a),F={Green:{light:{bg:"#ECFDF5",text:"#006045",border:"#A4F4CF"},fill:{bg:"#00BC7D",text:"#FFFFFF"}},Red:{light:{bg:"#FEF2F2",text:"#9F0712",border:"#FFC9C9"},fill:{bg:"#FB2C36",text:"#FFFFFF"}},Orange:{light:{bg:"#FFF6ED",text:"#9B2911",border:"#FFD1A9"},fill:{bg:"#FB6011",text:"#FFFFFF"}},Cyan:{light:{bg:"#ECFEFF",text:"#005F78",border:"#A2F4FD"},fill:{bg:"#00B8DB",text:"#FFFFFF"}},Violet:{light:{bg:"#F5F3FF",text:"#5D0EC0",border:"#DDD6FF"},fill:{bg:"#8E51FF",text:"#FFFFFF"}},Pink:{light:{bg:"#FDF2F8",text:"#A3004C",border:"#FCCEE8"},fill:{bg:"#F6339A",text:"#FFFFFF"}},Gray:{light:{bg:"#F5F5F4",text:"#292524",border:"#E7E5E4"},fill:{bg:"#292524",text:"#FFFFFF"}},Yellow:{light:{bg:"#FFFBEB",text:"#973C00",border:"#FEE685"},fill:{bg:"#FE9A00",text:"#FFFFFF"}},Blue:{light:{bg:"#EFF6FF",text:"#193CB8",border:"#BEDBFF"},fill:{bg:"#2B7FFF",text:"#FFFFFF"}}},s={large:{padding:"px-2 py-0.5",textSize:"text-sm",iconSize:"w-4 h-4",gap:"gap-1"},small:{padding:"px-2 py-0.5",textSize:"text-xs",iconSize:"w-3 h-3",gap:"gap-0.5"}},c=function(n){var c=n.children,g=n.color,u=n.variant,p=void 0===u?"light":u,f=n.size,d=void 0===f?"large":f,b=n.stroke,x=void 0!==b&&b,h=n.icon,y=n.iconPosition,m=void 0===y?"none":y,C=n.className,E=void 0===C?"":C,v=n.onClick,B=function(t,e){var r={};for(var n in t)Object.prototype.hasOwnProperty.call(t,n)&&e.indexOf(n)<0&&(r[n]=t[n]);if(null!=t&&"function"==typeof Object.getOwnPropertySymbols){var i=0;for(n=Object.getOwnPropertySymbols(t);i<n.length;i++)e.indexOf(n[i])<0&&Object.prototype.propertyIsEnumerable.call(t,n[i])&&(r[n[i]]=t[n[i]])}return r}(n,["children","color","variant","size","stroke","icon","iconPosition","className","onClick"]),D=(i(o)||a).primaryColor,O=function(t,e){if("string"==typeof t&&t in F){var r=F[t];return"Orange"===t&&e?l(l({},r),{fill:l(l({},r.fill),{bg:e})}):r}if("string"==typeof t&&t.startsWith("#")){var n=t.replace("#",""),i=parseInt(n.substr(0,2),16),a=parseInt(n.substr(2,2),16),o=parseInt(n.substr(4,2),16);return{light:{bg:"rgba(".concat(i,", ").concat(a,", ").concat(o,", 0.1)"),text:t,border:"rgba(".concat(i,", ").concat(a,", ").concat(o,", 0.3)")},fill:{bg:t,text:"#FFFFFF"}}}return F.Green}(g,D),j=s[d],w={borderRadius:"0.375rem",display:"inline-flex",justifyContent:"start",alignItems:"center",padding:"2px 8px",gap:"large"===d?"4px":"2px",fontWeight:500,fontFamily:"DM Sans, sans-serif",lineHeight:"large"===d?"1.375":"1",transition:"all 0.2s",fontSize:"large"===d?"14px":"12px",height:"small"===d?"20px":"24px"};"light"===p&&(w.backgroundColor=O.light.bg,w.color=O.light.text,x&&(w.outline="1px solid",w.outlineOffset="-1px",w.outlineColor=function(t){if("string"==typeof t&&t in F)switch(t){case"Green":default:return"#A4F4CF";case"Red":return"#FFC9C9";case"Orange":case"Yellow":return"#FFD1A9";case"Blue":return"#BEDBFF";case"Cyan":return"#A2F4FD";case"Violet":return"#DDD6FF";case"Pink":return"#FCCEE8";case"Gray":return"#E7E5E4"}if("string"==typeof t&&t.startsWith("#")){var e=t.replace("#",""),r=parseInt(e.substr(0,2),16),n=parseInt(e.substr(2,2),16),i=parseInt(e.substr(4,2),16);return"rgba(".concat(r,", ").concat(n,", ").concat(i,", 0.3)")}return"#A4F4CF"}(g))),v&&(w.cursor="pointer",w.opacity="1");var A=["rounded-md","inline-flex","justify-start","items-center",j.padding,j.gap,"font-medium","font-dm-sans","large"===d?"leading-snug":"leading-none","transition-colors","duration-200","small"===d?"h-5":"h-6"].filter(Boolean);"fill"===p&&(w.backgroundColor=O.fill.bg,w.color=O.fill.text),v&&A.push("cursor-pointer","hover:opacity-80"),E&&A.push(E);var S=A.join(" "),k=function(){if(!h)return null;var t=function(t,e){if("string"==typeof t&&t in F)switch(t){case"Green":default:return"#009966";case"Red":return"#E7000B";case"Orange":return e||"#E17100";case"Blue":return"#155DFC";case"Yellow":return"#EC470A";case"Cyan":return"#0092B8";case"Violet":return"#7F22FE";case"Pink":return"#E60076";case"Gray":return"#57534D"}return"string"==typeof t&&t.startsWith("#")?t:"#009966"}(g,D),n="small"===d?"14px":"16px";return e("div",{className:"flex items-center justify-center",style:{width:n,height:n},children:"svg"===h.type?r.cloneElement(h,{width:n,height:n,style:{fill:t}}):h})};return t("div",l({className:S,style:w,onClick:v},B,{children:["leading"===m&&k(),e("div",{className:"px-1 flex justify-center items-center",children:e("div",{className:"justify-center ".concat(j.textSize," font-medium font-dm-sans ").concat("large"===d?"leading-snug":"leading-none"),children:c})}),"after"===m&&k()]}))};export{c as default};
2
2
  //# sourceMappingURL=Tag.esm.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"Tag.esm.js","sources":["../node_modules/tslib/tslib.es6.js","../src/components/Tag/index.tsx"],"sourcesContent":["/******************************************************************************\r\nCopyright (c) Microsoft Corporation.\r\n\r\nPermission to use, copy, modify, and/or distribute this software for any\r\npurpose with or without fee is hereby granted.\r\n\r\nTHE SOFTWARE IS PROVIDED \"AS IS\" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH\r\nREGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY\r\nAND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT,\r\nINDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM\r\nLOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR\r\nOTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR\r\nPERFORMANCE OF THIS SOFTWARE.\r\n***************************************************************************** */\r\n/* global Reflect, Promise, SuppressedError, Symbol, Iterator */\r\n\r\nvar extendStatics = function(d, b) {\r\n extendStatics = Object.setPrototypeOf ||\r\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\r\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\r\n return extendStatics(d, b);\r\n};\r\n\r\nexport function __extends(d, b) {\r\n if (typeof b !== \"function\" && b !== null)\r\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\r\n extendStatics(d, b);\r\n function __() { this.constructor = d; }\r\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n}\r\n\r\nexport var __assign = function() {\r\n __assign = Object.assign || function __assign(t) {\r\n for (var s, i = 1, n = arguments.length; i < n; i++) {\r\n s = arguments[i];\r\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p];\r\n }\r\n return t;\r\n }\r\n return __assign.apply(this, arguments);\r\n}\r\n\r\nexport function __rest(s, e) {\r\n var t = {};\r\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)\r\n t[p] = s[p];\r\n if (s != null && typeof Object.getOwnPropertySymbols === \"function\")\r\n for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {\r\n if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))\r\n t[p[i]] = s[p[i]];\r\n }\r\n return t;\r\n}\r\n\r\nexport function __decorate(decorators, target, key, desc) {\r\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\r\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\r\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\r\n return c > 3 && r && Object.defineProperty(target, key, r), r;\r\n}\r\n\r\nexport function __param(paramIndex, decorator) {\r\n return function (target, key) { decorator(target, key, paramIndex); }\r\n}\r\n\r\nexport function __esDecorate(ctor, descriptorIn, decorators, contextIn, initializers, extraInitializers) {\r\n function accept(f) { if (f !== void 0 && typeof f !== \"function\") throw new TypeError(\"Function expected\"); return f; }\r\n var kind = contextIn.kind, key = kind === \"getter\" ? \"get\" : kind === \"setter\" ? \"set\" : \"value\";\r\n var target = !descriptorIn && ctor ? contextIn[\"static\"] ? ctor : ctor.prototype : null;\r\n var descriptor = descriptorIn || (target ? Object.getOwnPropertyDescriptor(target, contextIn.name) : {});\r\n var _, done = false;\r\n for (var i = decorators.length - 1; i >= 0; i--) {\r\n var context = {};\r\n for (var p in contextIn) context[p] = p === \"access\" ? {} : contextIn[p];\r\n for (var p in contextIn.access) context.access[p] = contextIn.access[p];\r\n context.addInitializer = function (f) { if (done) throw new TypeError(\"Cannot add initializers after decoration has completed\"); extraInitializers.push(accept(f || null)); };\r\n var result = (0, decorators[i])(kind === \"accessor\" ? { get: descriptor.get, set: descriptor.set } : descriptor[key], context);\r\n if (kind === \"accessor\") {\r\n if (result === void 0) continue;\r\n if (result === null || typeof result !== \"object\") throw new TypeError(\"Object expected\");\r\n if (_ = accept(result.get)) descriptor.get = _;\r\n if (_ = accept(result.set)) descriptor.set = _;\r\n if (_ = accept(result.init)) initializers.unshift(_);\r\n }\r\n else if (_ = accept(result)) {\r\n if (kind === \"field\") initializers.unshift(_);\r\n else descriptor[key] = _;\r\n }\r\n }\r\n if (target) Object.defineProperty(target, contextIn.name, descriptor);\r\n done = true;\r\n};\r\n\r\nexport function __runInitializers(thisArg, initializers, value) {\r\n var useValue = arguments.length > 2;\r\n for (var i = 0; i < initializers.length; i++) {\r\n value = useValue ? initializers[i].call(thisArg, value) : initializers[i].call(thisArg);\r\n }\r\n return useValue ? value : void 0;\r\n};\r\n\r\nexport function __propKey(x) {\r\n return typeof x === \"symbol\" ? x : \"\".concat(x);\r\n};\r\n\r\nexport function __setFunctionName(f, name, prefix) {\r\n if (typeof name === \"symbol\") name = name.description ? \"[\".concat(name.description, \"]\") : \"\";\r\n return Object.defineProperty(f, \"name\", { configurable: true, value: prefix ? \"\".concat(prefix, \" \", name) : name });\r\n};\r\n\r\nexport function __metadata(metadataKey, metadataValue) {\r\n if (typeof Reflect === \"object\" && typeof Reflect.metadata === \"function\") return Reflect.metadata(metadataKey, metadataValue);\r\n}\r\n\r\nexport function __awaiter(thisArg, _arguments, P, generator) {\r\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\r\n return new (P || (P = Promise))(function (resolve, reject) {\r\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\r\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\r\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\r\n step((generator = generator.apply(thisArg, _arguments || [])).next());\r\n });\r\n}\r\n\r\nexport function __generator(thisArg, body) {\r\n var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g = Object.create((typeof Iterator === \"function\" ? Iterator : Object).prototype);\r\n return g.next = verb(0), g[\"throw\"] = verb(1), g[\"return\"] = verb(2), typeof Symbol === \"function\" && (g[Symbol.iterator] = function() { return this; }), g;\r\n function verb(n) { return function (v) { return step([n, v]); }; }\r\n function step(op) {\r\n if (f) throw new TypeError(\"Generator is already executing.\");\r\n while (g && (g = 0, op[0] && (_ = 0)), _) try {\r\n if (f = 1, y && (t = op[0] & 2 ? y[\"return\"] : op[0] ? y[\"throw\"] || ((t = y[\"return\"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;\r\n if (y = 0, t) op = [op[0] & 2, t.value];\r\n switch (op[0]) {\r\n case 0: case 1: t = op; break;\r\n case 4: _.label++; return { value: op[1], done: false };\r\n case 5: _.label++; y = op[1]; op = [0]; continue;\r\n case 7: op = _.ops.pop(); _.trys.pop(); continue;\r\n default:\r\n if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }\r\n if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }\r\n if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }\r\n if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }\r\n if (t[2]) _.ops.pop();\r\n _.trys.pop(); continue;\r\n }\r\n op = body.call(thisArg, _);\r\n } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }\r\n if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };\r\n }\r\n}\r\n\r\nexport var __createBinding = Object.create ? (function(o, m, k, k2) {\r\n if (k2 === undefined) k2 = k;\r\n var desc = Object.getOwnPropertyDescriptor(m, k);\r\n if (!desc || (\"get\" in desc ? !m.__esModule : desc.writable || desc.configurable)) {\r\n desc = { enumerable: true, get: function() { return m[k]; } };\r\n }\r\n Object.defineProperty(o, k2, desc);\r\n}) : (function(o, m, k, k2) {\r\n if (k2 === undefined) k2 = k;\r\n o[k2] = m[k];\r\n});\r\n\r\nexport function __exportStar(m, o) {\r\n for (var p in m) if (p !== \"default\" && !Object.prototype.hasOwnProperty.call(o, p)) __createBinding(o, m, p);\r\n}\r\n\r\nexport function __values(o) {\r\n var s = typeof Symbol === \"function\" && Symbol.iterator, m = s && o[s], i = 0;\r\n if (m) return m.call(o);\r\n if (o && typeof o.length === \"number\") return {\r\n next: function () {\r\n if (o && i >= o.length) o = void 0;\r\n return { value: o && o[i++], done: !o };\r\n }\r\n };\r\n throw new TypeError(s ? \"Object is not iterable.\" : \"Symbol.iterator is not defined.\");\r\n}\r\n\r\nexport function __read(o, n) {\r\n var m = typeof Symbol === \"function\" && o[Symbol.iterator];\r\n if (!m) return o;\r\n var i = m.call(o), r, ar = [], e;\r\n try {\r\n while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);\r\n }\r\n catch (error) { e = { error: error }; }\r\n finally {\r\n try {\r\n if (r && !r.done && (m = i[\"return\"])) m.call(i);\r\n }\r\n finally { if (e) throw e.error; }\r\n }\r\n return ar;\r\n}\r\n\r\n/** @deprecated */\r\nexport function __spread() {\r\n for (var ar = [], i = 0; i < arguments.length; i++)\r\n ar = ar.concat(__read(arguments[i]));\r\n return ar;\r\n}\r\n\r\n/** @deprecated */\r\nexport function __spreadArrays() {\r\n for (var s = 0, i = 0, il = arguments.length; i < il; i++) s += arguments[i].length;\r\n for (var r = Array(s), k = 0, i = 0; i < il; i++)\r\n for (var a = arguments[i], j = 0, jl = a.length; j < jl; j++, k++)\r\n r[k] = a[j];\r\n return r;\r\n}\r\n\r\nexport function __spreadArray(to, from, pack) {\r\n if (pack || arguments.length === 2) for (var i = 0, l = from.length, ar; i < l; i++) {\r\n if (ar || !(i in from)) {\r\n if (!ar) ar = Array.prototype.slice.call(from, 0, i);\r\n ar[i] = from[i];\r\n }\r\n }\r\n return to.concat(ar || Array.prototype.slice.call(from));\r\n}\r\n\r\nexport function __await(v) {\r\n return this instanceof __await ? (this.v = v, this) : new __await(v);\r\n}\r\n\r\nexport function __asyncGenerator(thisArg, _arguments, generator) {\r\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\r\n var g = generator.apply(thisArg, _arguments || []), i, q = [];\r\n return i = Object.create((typeof AsyncIterator === \"function\" ? AsyncIterator : Object).prototype), verb(\"next\"), verb(\"throw\"), verb(\"return\", awaitReturn), i[Symbol.asyncIterator] = function () { return this; }, i;\r\n function awaitReturn(f) { return function (v) { return Promise.resolve(v).then(f, reject); }; }\r\n function verb(n, f) { if (g[n]) { i[n] = function (v) { return new Promise(function (a, b) { q.push([n, v, a, b]) > 1 || resume(n, v); }); }; if (f) i[n] = f(i[n]); } }\r\n function resume(n, v) { try { step(g[n](v)); } catch (e) { settle(q[0][3], e); } }\r\n function step(r) { r.value instanceof __await ? Promise.resolve(r.value.v).then(fulfill, reject) : settle(q[0][2], r); }\r\n function fulfill(value) { resume(\"next\", value); }\r\n function reject(value) { resume(\"throw\", value); }\r\n function settle(f, v) { if (f(v), q.shift(), q.length) resume(q[0][0], q[0][1]); }\r\n}\r\n\r\nexport function __asyncDelegator(o) {\r\n var i, p;\r\n return i = {}, verb(\"next\"), verb(\"throw\", function (e) { throw e; }), verb(\"return\"), i[Symbol.iterator] = function () { return this; }, i;\r\n function verb(n, f) { i[n] = o[n] ? function (v) { return (p = !p) ? { value: __await(o[n](v)), done: false } : f ? f(v) : v; } : f; }\r\n}\r\n\r\nexport function __asyncValues(o) {\r\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\r\n var m = o[Symbol.asyncIterator], i;\r\n return m ? m.call(o) : (o = typeof __values === \"function\" ? __values(o) : o[Symbol.iterator](), i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () { return this; }, i);\r\n function verb(n) { i[n] = o[n] && function (v) { return new Promise(function (resolve, reject) { v = o[n](v), settle(resolve, reject, v.done, v.value); }); }; }\r\n function settle(resolve, reject, d, v) { Promise.resolve(v).then(function(v) { resolve({ value: v, done: d }); }, reject); }\r\n}\r\n\r\nexport function __makeTemplateObject(cooked, raw) {\r\n if (Object.defineProperty) { Object.defineProperty(cooked, \"raw\", { value: raw }); } else { cooked.raw = raw; }\r\n return cooked;\r\n};\r\n\r\nvar __setModuleDefault = Object.create ? (function(o, v) {\r\n Object.defineProperty(o, \"default\", { enumerable: true, value: v });\r\n}) : function(o, v) {\r\n o[\"default\"] = v;\r\n};\r\n\r\nvar ownKeys = function(o) {\r\n ownKeys = Object.getOwnPropertyNames || function (o) {\r\n var ar = [];\r\n for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;\r\n return ar;\r\n };\r\n return ownKeys(o);\r\n};\r\n\r\nexport function __importStar(mod) {\r\n if (mod && mod.__esModule) return mod;\r\n var result = {};\r\n if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== \"default\") __createBinding(result, mod, k[i]);\r\n __setModuleDefault(result, mod);\r\n return result;\r\n}\r\n\r\nexport function __importDefault(mod) {\r\n return (mod && mod.__esModule) ? mod : { default: mod };\r\n}\r\n\r\nexport function __classPrivateFieldGet(receiver, state, kind, f) {\r\n if (kind === \"a\" && !f) throw new TypeError(\"Private accessor was defined without a getter\");\r\n if (typeof state === \"function\" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError(\"Cannot read private member from an object whose class did not declare it\");\r\n return kind === \"m\" ? f : kind === \"a\" ? f.call(receiver) : f ? f.value : state.get(receiver);\r\n}\r\n\r\nexport function __classPrivateFieldSet(receiver, state, value, kind, f) {\r\n if (kind === \"m\") throw new TypeError(\"Private method is not writable\");\r\n if (kind === \"a\" && !f) throw new TypeError(\"Private accessor was defined without a setter\");\r\n if (typeof state === \"function\" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError(\"Cannot write private member to an object whose class did not declare it\");\r\n return (kind === \"a\" ? f.call(receiver, value) : f ? f.value = value : state.set(receiver, value)), value;\r\n}\r\n\r\nexport function __classPrivateFieldIn(state, receiver) {\r\n if (receiver === null || (typeof receiver !== \"object\" && typeof receiver !== \"function\")) throw new TypeError(\"Cannot use 'in' operator on non-object\");\r\n return typeof state === \"function\" ? receiver === state : state.has(receiver);\r\n}\r\n\r\nexport function __addDisposableResource(env, value, async) {\r\n if (value !== null && value !== void 0) {\r\n if (typeof value !== \"object\" && typeof value !== \"function\") throw new TypeError(\"Object expected.\");\r\n var dispose, inner;\r\n if (async) {\r\n if (!Symbol.asyncDispose) throw new TypeError(\"Symbol.asyncDispose is not defined.\");\r\n dispose = value[Symbol.asyncDispose];\r\n }\r\n if (dispose === void 0) {\r\n if (!Symbol.dispose) throw new TypeError(\"Symbol.dispose is not defined.\");\r\n dispose = value[Symbol.dispose];\r\n if (async) inner = dispose;\r\n }\r\n if (typeof dispose !== \"function\") throw new TypeError(\"Object not disposable.\");\r\n if (inner) dispose = function() { try { inner.call(this); } catch (e) { return Promise.reject(e); } };\r\n env.stack.push({ value: value, dispose: dispose, async: async });\r\n }\r\n else if (async) {\r\n env.stack.push({ async: true });\r\n }\r\n return value;\r\n\r\n}\r\n\r\nvar _SuppressedError = typeof SuppressedError === \"function\" ? SuppressedError : function (error, suppressed, message) {\r\n var e = new Error(message);\r\n return e.name = \"SuppressedError\", e.error = error, e.suppressed = suppressed, e;\r\n};\r\n\r\nexport function __disposeResources(env) {\r\n function fail(e) {\r\n env.error = env.hasError ? new _SuppressedError(e, env.error, \"An error was suppressed during disposal.\") : e;\r\n env.hasError = true;\r\n }\r\n var r, s = 0;\r\n function next() {\r\n while (r = env.stack.pop()) {\r\n try {\r\n if (!r.async && s === 1) return s = 0, env.stack.push(r), Promise.resolve().then(next);\r\n if (r.dispose) {\r\n var result = r.dispose.call(r.value);\r\n if (r.async) return s |= 2, Promise.resolve(result).then(next, function(e) { fail(e); return next(); });\r\n }\r\n else s |= 1;\r\n }\r\n catch (e) {\r\n fail(e);\r\n }\r\n }\r\n if (s === 1) return env.hasError ? Promise.reject(env.error) : Promise.resolve();\r\n if (env.hasError) throw env.error;\r\n }\r\n return next();\r\n}\r\n\r\nexport function __rewriteRelativeImportExtension(path, preserveJsx) {\r\n if (typeof path === \"string\" && /^\\.\\.?\\//.test(path)) {\r\n return path.replace(/\\.(tsx)$|((?:\\.d)?)((?:\\.[^./]+?)?)\\.([cm]?)ts$/i, function (m, tsx, d, ext, cm) {\r\n return tsx ? preserveJsx ? \".jsx\" : \".js\" : d && (!ext || !cm) ? m : (d + ext + \".\" + cm.toLowerCase() + \"js\");\r\n });\r\n }\r\n return path;\r\n}\r\n\r\nexport default {\r\n __extends: __extends,\r\n __assign: __assign,\r\n __rest: __rest,\r\n __decorate: __decorate,\r\n __param: __param,\r\n __esDecorate: __esDecorate,\r\n __runInitializers: __runInitializers,\r\n __propKey: __propKey,\r\n __setFunctionName: __setFunctionName,\r\n __metadata: __metadata,\r\n __awaiter: __awaiter,\r\n __generator: __generator,\r\n __createBinding: __createBinding,\r\n __exportStar: __exportStar,\r\n __values: __values,\r\n __read: __read,\r\n __spread: __spread,\r\n __spreadArrays: __spreadArrays,\r\n __spreadArray: __spreadArray,\r\n __await: __await,\r\n __asyncGenerator: __asyncGenerator,\r\n __asyncDelegator: __asyncDelegator,\r\n __asyncValues: __asyncValues,\r\n __makeTemplateObject: __makeTemplateObject,\r\n __importStar: __importStar,\r\n __importDefault: __importDefault,\r\n __classPrivateFieldGet: __classPrivateFieldGet,\r\n __classPrivateFieldSet: __classPrivateFieldSet,\r\n __classPrivateFieldIn: __classPrivateFieldIn,\r\n __addDisposableResource: __addDisposableResource,\r\n __disposeResources: __disposeResources,\r\n __rewriteRelativeImportExtension: __rewriteRelativeImportExtension,\r\n};\r\n","import React, { SVGProps } from 'react';\n\nexport type TagColor = 'Green' | 'Red' | 'Orange' | 'Cyan' | 'Violet' | 'Pink' | 'Gray' | 'Yellow' | 'Blue';\nexport type TagVariant = 'light' | 'fill';\nexport type TagSize = 'large' | 'small';\nexport type IconPosition = 'leading' | 'after' | 'none';\n\nexport interface TagProps {\n children: React.ReactNode;\n color: TagColor; // 必需属性,没有默认值\n variant?: TagVariant;\n size?: TagSize;\n stroke?: boolean; // 仅对 light 变体有效\n icon?: React.ReactElement; // 只允许 React 元素,不接受字符串\n iconPosition?: IconPosition;\n className?: string;\n onClick?: () => void;\n [key: string]: any;\n}\n\n// 颜色配置\nconst COLOR_CONFIG = {\n Green: {\n light: {\n bg: '#ECFDF5',\n text: '#006045',\n border: '#A4F4CF',\n fill: '#00BC7D',\n fillText: '#FFFFFF',\n }\n },\n Red: {\n light: {\n bg: '#FEF2F2',\n text: '#9F0712',\n border: '#FFC9C9',\n fill: '#FB2C36',\n fillText: '#FFFFFF',\n }\n },\n Orange: {\n light: {\n bg: '#FFF6ED',\n text: '#9B2911',\n border: '#FFD1A9',\n fill: '#FB6011',\n fillText: '#FFFFFF',\n }\n },\n Cyan: {\n light: {\n bg: '#ECFEFF',\n text: '#005F78',\n border: '#A2F4FD',\n fill: '#00B8DB',\n fillText: '#FFFFFF',\n }\n },\n Violet: {\n light: {\n bg: '#F5F3FF',\n text: '#5D0EC0',\n border: '#DDD6FF',\n fill: '#8E51FF',\n fillText: '#FFFFFF',\n }\n },\n Pink: {\n light: {\n bg: '#FDF2F8',\n text: '#A3004C',\n border: '#FCCEE8',\n fill: '#F6339A',\n fillText: '#FFFFFF',\n }\n },\n Gray: {\n light: {\n bg: '#F5F5F4',\n text: '#292524',\n border: '#E7E5E4',\n fill: '#292524',\n fillText: '#FFFFFF',\n }\n },\n Yellow: {\n light: {\n bg: '#FFFBEB',\n text: '#973C00',\n border: '#FEE685',\n fill: '#FE9A00',\n fillText: '#FFFFFF',\n }\n },\n Blue: {\n light: {\n bg: '#EFF6FF',\n text: '#193CB8',\n border: '#BEDBFF',\n fill: '#2B7FFF',\n fillText: '#FFFFFF',\n }\n }\n};\n\n// 尺寸配置\nconst SIZE_CONFIG = {\n large: {\n padding: 'px-2 py-0.5',\n textSize: 'text-sm',\n iconSize: 'w-4 h-4',\n gap: 'gap-1',\n },\n small: {\n padding: 'px-2 py-0.5', // 与 large 相同的外层 padding\n textSize: 'text-xs',\n iconSize: 'w-3 h-3',\n gap: 'gap-0.5',\n }\n};\n\nconst Tag: React.FC<TagProps> = ({\n children,\n color,\n variant = 'light',\n size = 'large',\n stroke = false,\n icon,\n iconPosition = 'none',\n className = '',\n onClick,\n ...rest\n}) => {\n const colorConfig = COLOR_CONFIG[color];\n const sizeConfig = SIZE_CONFIG[size];\n \n // 构建基础样式对象\n const baseStyle: React.CSSProperties = {\n borderRadius: '0.375rem', // rounded-md\n display: 'inline-flex',\n justifyContent: 'start',\n alignItems: 'center',\n padding: '2px 8px', // px-2 py-0.5 (所有尺寸都相同)\n gap: size === 'large' ? '4px' : '2px', // gap-1 or gap-0.5\n fontWeight: 500, // font-medium\n fontFamily: 'DM Sans, sans-serif',\n lineHeight: size === 'large' ? '1.375' : '1', // leading-snug or leading-none\n transition: 'all 0.2s',\n fontSize: size === 'large' ? '14px' : '12px', // text-sm or text-xs\n height: size === 'small' ? '20px' : '24px', // Small 尺寸 20px,Large 尺寸 24px\n };\n\n // 根据变体和颜色添加样式\n if (variant === 'light') {\n baseStyle.backgroundColor = colorConfig.light.bg;\n baseStyle.color = colorConfig.light.text;\n if (stroke) {\n // 使用 outline 样式而不是 border\n baseStyle.outline = '1px solid';\n baseStyle.outlineOffset = '-1px';\n // 根据颜色设置 outline 颜色\n const getOutlineColor = () => {\n switch (color) {\n case 'Green': return '#A4F4CF';\n case 'Red': return '#FFC9C9';\n case 'Orange': return '#FFD1A9';\n case 'Blue': return '#BEDBFF';\n case 'Yellow': return '#FFD1A9';\n case 'Cyan': return '#A2F4FD';\n case 'Violet': return '#DDD6FF';\n case 'Pink': return '#FCCEE8';\n case 'Gray': return '#E7E5E4';\n default: return '#A4F4CF';\n }\n };\n baseStyle.outlineColor = getOutlineColor();\n }\n }\n\n // 添加点击样式\n if (onClick) {\n baseStyle.cursor = 'pointer';\n baseStyle.opacity = '1';\n }\n\n // 构建类名\n const baseClasses = [\n 'rounded-md',\n 'inline-flex',\n 'justify-start',\n 'items-center',\n sizeConfig.padding,\n sizeConfig.gap,\n 'font-medium',\n 'font-dm-sans',\n size === 'large' ? 'leading-snug' : 'leading-none',\n 'transition-colors',\n 'duration-200',\n size === 'small' ? 'h-5' : 'h-6' // Small 尺寸 20px,Large 尺寸 24px\n ].filter(Boolean); // 过滤掉空字符串\n\n // 为 fill 变体添加样式\n if (variant === 'fill') {\n baseStyle.backgroundColor = colorConfig.light.fill;\n baseStyle.color = colorConfig.light.fillText;\n }\n\n if (onClick) {\n baseClasses.push('cursor-pointer', 'hover:opacity-80');\n }\n\n if (className) {\n baseClasses.push(className);\n }\n\n const containerClasses = baseClasses.join(' ');\n\n // 渲染图标\n const renderIcon = () => {\n if (!icon) return null;\n \n // 根据颜色设置图标颜色\n const getIconColor = () => {\n switch (color) {\n case 'Green': return '#009966';\n case 'Red': return '#E7000B';\n case 'Orange': return '#E17100';\n case 'Blue': return '#155DFC';\n case 'Yellow': return '#EC470A';\n case 'Cyan': return '#0092B8';\n case 'Violet': return '#7F22FE';\n case 'Pink': return '#E60076';\n case 'Gray': return '#57534D';\n default: return '#009966';\n }\n };\n \n // 根据尺寸设置图标大小\n const iconSize = size === 'small' ? '14px' : '16px';\n \n return (\n <div className=\"flex items-center justify-center\" style={{ width: iconSize, height: iconSize }}>\n {icon.type === 'svg' ? (\n React.cloneElement(icon as React.ReactElement<SVGProps<SVGSVGElement>>, {\n width: iconSize,\n height: iconSize,\n style: { fill: getIconColor() }\n })\n ) : (\n icon\n )}\n </div>\n );\n };\n\n // 渲染文本内容\n const renderContent = () => {\n return (\n <div className=\"px-1 flex justify-center items-center\">\n <div className={`justify-center ${sizeConfig.textSize} font-medium font-dm-sans ${size === 'large' ? 'leading-snug' : 'leading-none'}`}>\n {children}\n </div>\n </div>\n );\n };\n\n return (\n <div\n className={containerClasses}\n style={baseStyle}\n onClick={onClick}\n {...rest}\n >\n {iconPosition === 'leading' && renderIcon()}\n {renderContent()}\n {iconPosition === 'after' && renderIcon()}\n </div>\n );\n};\n\nexport default Tag;\n"],"names":["__assign","Object","assign","t","s","i","n","arguments","length","p","prototype","hasOwnProperty","call","apply","this","SuppressedError","COLOR_CONFIG","Green","light","bg","text","border","fill","fillText","Red","Orange","Cyan","Violet","Pink","Gray","Yellow","Blue","SIZE_CONFIG","large","padding","textSize","iconSize","gap","small","Tag","_a","children","color","_b","variant","_c","size","_d","stroke","icon","_e","iconPosition","_f","className","onClick","rest","e","indexOf","getOwnPropertySymbols","propertyIsEnumerable","__rest","colorConfig","sizeConfig","baseStyle","borderRadius","display","justifyContent","alignItems","fontWeight","fontFamily","lineHeight","transition","fontSize","height","backgroundColor","outline","outlineOffset","outlineColor","getOutlineColor","cursor","opacity","baseClasses","filter","Boolean","push","containerClasses","join","renderIcon","_jsx","style","width","type","React","cloneElement","getIconColor","_jsxs","concat"],"mappings":"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","x_google_ignoreList":[0]}
1
+ {"version":3,"file":"Tag.esm.js","sources":["../node_modules/tslib/tslib.es6.js","../src/theme/ThemeContext.tsx","../src/components/Tag/index.tsx"],"sourcesContent":["/******************************************************************************\r\nCopyright (c) Microsoft Corporation.\r\n\r\nPermission to use, copy, modify, and/or distribute this software for any\r\npurpose with or without fee is hereby granted.\r\n\r\nTHE SOFTWARE IS PROVIDED \"AS IS\" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH\r\nREGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY\r\nAND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT,\r\nINDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM\r\nLOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR\r\nOTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR\r\nPERFORMANCE OF THIS SOFTWARE.\r\n***************************************************************************** */\r\n/* global Reflect, Promise, SuppressedError, Symbol, Iterator */\r\n\r\nvar extendStatics = function(d, b) {\r\n extendStatics = Object.setPrototypeOf ||\r\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\r\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\r\n return extendStatics(d, b);\r\n};\r\n\r\nexport function __extends(d, b) {\r\n if (typeof b !== \"function\" && b !== null)\r\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\r\n extendStatics(d, b);\r\n function __() { this.constructor = d; }\r\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n}\r\n\r\nexport var __assign = function() {\r\n __assign = Object.assign || function __assign(t) {\r\n for (var s, i = 1, n = arguments.length; i < n; i++) {\r\n s = arguments[i];\r\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p];\r\n }\r\n return t;\r\n }\r\n return __assign.apply(this, arguments);\r\n}\r\n\r\nexport function __rest(s, e) {\r\n var t = {};\r\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)\r\n t[p] = s[p];\r\n if (s != null && typeof Object.getOwnPropertySymbols === \"function\")\r\n for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {\r\n if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))\r\n t[p[i]] = s[p[i]];\r\n }\r\n return t;\r\n}\r\n\r\nexport function __decorate(decorators, target, key, desc) {\r\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\r\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\r\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\r\n return c > 3 && r && Object.defineProperty(target, key, r), r;\r\n}\r\n\r\nexport function __param(paramIndex, decorator) {\r\n return function (target, key) { decorator(target, key, paramIndex); }\r\n}\r\n\r\nexport function __esDecorate(ctor, descriptorIn, decorators, contextIn, initializers, extraInitializers) {\r\n function accept(f) { if (f !== void 0 && typeof f !== \"function\") throw new TypeError(\"Function expected\"); return f; }\r\n var kind = contextIn.kind, key = kind === \"getter\" ? \"get\" : kind === \"setter\" ? \"set\" : \"value\";\r\n var target = !descriptorIn && ctor ? contextIn[\"static\"] ? ctor : ctor.prototype : null;\r\n var descriptor = descriptorIn || (target ? Object.getOwnPropertyDescriptor(target, contextIn.name) : {});\r\n var _, done = false;\r\n for (var i = decorators.length - 1; i >= 0; i--) {\r\n var context = {};\r\n for (var p in contextIn) context[p] = p === \"access\" ? {} : contextIn[p];\r\n for (var p in contextIn.access) context.access[p] = contextIn.access[p];\r\n context.addInitializer = function (f) { if (done) throw new TypeError(\"Cannot add initializers after decoration has completed\"); extraInitializers.push(accept(f || null)); };\r\n var result = (0, decorators[i])(kind === \"accessor\" ? { get: descriptor.get, set: descriptor.set } : descriptor[key], context);\r\n if (kind === \"accessor\") {\r\n if (result === void 0) continue;\r\n if (result === null || typeof result !== \"object\") throw new TypeError(\"Object expected\");\r\n if (_ = accept(result.get)) descriptor.get = _;\r\n if (_ = accept(result.set)) descriptor.set = _;\r\n if (_ = accept(result.init)) initializers.unshift(_);\r\n }\r\n else if (_ = accept(result)) {\r\n if (kind === \"field\") initializers.unshift(_);\r\n else descriptor[key] = _;\r\n }\r\n }\r\n if (target) Object.defineProperty(target, contextIn.name, descriptor);\r\n done = true;\r\n};\r\n\r\nexport function __runInitializers(thisArg, initializers, value) {\r\n var useValue = arguments.length > 2;\r\n for (var i = 0; i < initializers.length; i++) {\r\n value = useValue ? initializers[i].call(thisArg, value) : initializers[i].call(thisArg);\r\n }\r\n return useValue ? value : void 0;\r\n};\r\n\r\nexport function __propKey(x) {\r\n return typeof x === \"symbol\" ? x : \"\".concat(x);\r\n};\r\n\r\nexport function __setFunctionName(f, name, prefix) {\r\n if (typeof name === \"symbol\") name = name.description ? \"[\".concat(name.description, \"]\") : \"\";\r\n return Object.defineProperty(f, \"name\", { configurable: true, value: prefix ? \"\".concat(prefix, \" \", name) : name });\r\n};\r\n\r\nexport function __metadata(metadataKey, metadataValue) {\r\n if (typeof Reflect === \"object\" && typeof Reflect.metadata === \"function\") return Reflect.metadata(metadataKey, metadataValue);\r\n}\r\n\r\nexport function __awaiter(thisArg, _arguments, P, generator) {\r\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\r\n return new (P || (P = Promise))(function (resolve, reject) {\r\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\r\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\r\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\r\n step((generator = generator.apply(thisArg, _arguments || [])).next());\r\n });\r\n}\r\n\r\nexport function __generator(thisArg, body) {\r\n var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g = Object.create((typeof Iterator === \"function\" ? Iterator : Object).prototype);\r\n return g.next = verb(0), g[\"throw\"] = verb(1), g[\"return\"] = verb(2), typeof Symbol === \"function\" && (g[Symbol.iterator] = function() { return this; }), g;\r\n function verb(n) { return function (v) { return step([n, v]); }; }\r\n function step(op) {\r\n if (f) throw new TypeError(\"Generator is already executing.\");\r\n while (g && (g = 0, op[0] && (_ = 0)), _) try {\r\n if (f = 1, y && (t = op[0] & 2 ? y[\"return\"] : op[0] ? y[\"throw\"] || ((t = y[\"return\"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;\r\n if (y = 0, t) op = [op[0] & 2, t.value];\r\n switch (op[0]) {\r\n case 0: case 1: t = op; break;\r\n case 4: _.label++; return { value: op[1], done: false };\r\n case 5: _.label++; y = op[1]; op = [0]; continue;\r\n case 7: op = _.ops.pop(); _.trys.pop(); continue;\r\n default:\r\n if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }\r\n if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }\r\n if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }\r\n if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }\r\n if (t[2]) _.ops.pop();\r\n _.trys.pop(); continue;\r\n }\r\n op = body.call(thisArg, _);\r\n } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }\r\n if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };\r\n }\r\n}\r\n\r\nexport var __createBinding = Object.create ? (function(o, m, k, k2) {\r\n if (k2 === undefined) k2 = k;\r\n var desc = Object.getOwnPropertyDescriptor(m, k);\r\n if (!desc || (\"get\" in desc ? !m.__esModule : desc.writable || desc.configurable)) {\r\n desc = { enumerable: true, get: function() { return m[k]; } };\r\n }\r\n Object.defineProperty(o, k2, desc);\r\n}) : (function(o, m, k, k2) {\r\n if (k2 === undefined) k2 = k;\r\n o[k2] = m[k];\r\n});\r\n\r\nexport function __exportStar(m, o) {\r\n for (var p in m) if (p !== \"default\" && !Object.prototype.hasOwnProperty.call(o, p)) __createBinding(o, m, p);\r\n}\r\n\r\nexport function __values(o) {\r\n var s = typeof Symbol === \"function\" && Symbol.iterator, m = s && o[s], i = 0;\r\n if (m) return m.call(o);\r\n if (o && typeof o.length === \"number\") return {\r\n next: function () {\r\n if (o && i >= o.length) o = void 0;\r\n return { value: o && o[i++], done: !o };\r\n }\r\n };\r\n throw new TypeError(s ? \"Object is not iterable.\" : \"Symbol.iterator is not defined.\");\r\n}\r\n\r\nexport function __read(o, n) {\r\n var m = typeof Symbol === \"function\" && o[Symbol.iterator];\r\n if (!m) return o;\r\n var i = m.call(o), r, ar = [], e;\r\n try {\r\n while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);\r\n }\r\n catch (error) { e = { error: error }; }\r\n finally {\r\n try {\r\n if (r && !r.done && (m = i[\"return\"])) m.call(i);\r\n }\r\n finally { if (e) throw e.error; }\r\n }\r\n return ar;\r\n}\r\n\r\n/** @deprecated */\r\nexport function __spread() {\r\n for (var ar = [], i = 0; i < arguments.length; i++)\r\n ar = ar.concat(__read(arguments[i]));\r\n return ar;\r\n}\r\n\r\n/** @deprecated */\r\nexport function __spreadArrays() {\r\n for (var s = 0, i = 0, il = arguments.length; i < il; i++) s += arguments[i].length;\r\n for (var r = Array(s), k = 0, i = 0; i < il; i++)\r\n for (var a = arguments[i], j = 0, jl = a.length; j < jl; j++, k++)\r\n r[k] = a[j];\r\n return r;\r\n}\r\n\r\nexport function __spreadArray(to, from, pack) {\r\n if (pack || arguments.length === 2) for (var i = 0, l = from.length, ar; i < l; i++) {\r\n if (ar || !(i in from)) {\r\n if (!ar) ar = Array.prototype.slice.call(from, 0, i);\r\n ar[i] = from[i];\r\n }\r\n }\r\n return to.concat(ar || Array.prototype.slice.call(from));\r\n}\r\n\r\nexport function __await(v) {\r\n return this instanceof __await ? (this.v = v, this) : new __await(v);\r\n}\r\n\r\nexport function __asyncGenerator(thisArg, _arguments, generator) {\r\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\r\n var g = generator.apply(thisArg, _arguments || []), i, q = [];\r\n return i = Object.create((typeof AsyncIterator === \"function\" ? AsyncIterator : Object).prototype), verb(\"next\"), verb(\"throw\"), verb(\"return\", awaitReturn), i[Symbol.asyncIterator] = function () { return this; }, i;\r\n function awaitReturn(f) { return function (v) { return Promise.resolve(v).then(f, reject); }; }\r\n function verb(n, f) { if (g[n]) { i[n] = function (v) { return new Promise(function (a, b) { q.push([n, v, a, b]) > 1 || resume(n, v); }); }; if (f) i[n] = f(i[n]); } }\r\n function resume(n, v) { try { step(g[n](v)); } catch (e) { settle(q[0][3], e); } }\r\n function step(r) { r.value instanceof __await ? Promise.resolve(r.value.v).then(fulfill, reject) : settle(q[0][2], r); }\r\n function fulfill(value) { resume(\"next\", value); }\r\n function reject(value) { resume(\"throw\", value); }\r\n function settle(f, v) { if (f(v), q.shift(), q.length) resume(q[0][0], q[0][1]); }\r\n}\r\n\r\nexport function __asyncDelegator(o) {\r\n var i, p;\r\n return i = {}, verb(\"next\"), verb(\"throw\", function (e) { throw e; }), verb(\"return\"), i[Symbol.iterator] = function () { return this; }, i;\r\n function verb(n, f) { i[n] = o[n] ? function (v) { return (p = !p) ? { value: __await(o[n](v)), done: false } : f ? f(v) : v; } : f; }\r\n}\r\n\r\nexport function __asyncValues(o) {\r\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\r\n var m = o[Symbol.asyncIterator], i;\r\n return m ? m.call(o) : (o = typeof __values === \"function\" ? __values(o) : o[Symbol.iterator](), i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () { return this; }, i);\r\n function verb(n) { i[n] = o[n] && function (v) { return new Promise(function (resolve, reject) { v = o[n](v), settle(resolve, reject, v.done, v.value); }); }; }\r\n function settle(resolve, reject, d, v) { Promise.resolve(v).then(function(v) { resolve({ value: v, done: d }); }, reject); }\r\n}\r\n\r\nexport function __makeTemplateObject(cooked, raw) {\r\n if (Object.defineProperty) { Object.defineProperty(cooked, \"raw\", { value: raw }); } else { cooked.raw = raw; }\r\n return cooked;\r\n};\r\n\r\nvar __setModuleDefault = Object.create ? (function(o, v) {\r\n Object.defineProperty(o, \"default\", { enumerable: true, value: v });\r\n}) : function(o, v) {\r\n o[\"default\"] = v;\r\n};\r\n\r\nvar ownKeys = function(o) {\r\n ownKeys = Object.getOwnPropertyNames || function (o) {\r\n var ar = [];\r\n for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;\r\n return ar;\r\n };\r\n return ownKeys(o);\r\n};\r\n\r\nexport function __importStar(mod) {\r\n if (mod && mod.__esModule) return mod;\r\n var result = {};\r\n if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== \"default\") __createBinding(result, mod, k[i]);\r\n __setModuleDefault(result, mod);\r\n return result;\r\n}\r\n\r\nexport function __importDefault(mod) {\r\n return (mod && mod.__esModule) ? mod : { default: mod };\r\n}\r\n\r\nexport function __classPrivateFieldGet(receiver, state, kind, f) {\r\n if (kind === \"a\" && !f) throw new TypeError(\"Private accessor was defined without a getter\");\r\n if (typeof state === \"function\" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError(\"Cannot read private member from an object whose class did not declare it\");\r\n return kind === \"m\" ? f : kind === \"a\" ? f.call(receiver) : f ? f.value : state.get(receiver);\r\n}\r\n\r\nexport function __classPrivateFieldSet(receiver, state, value, kind, f) {\r\n if (kind === \"m\") throw new TypeError(\"Private method is not writable\");\r\n if (kind === \"a\" && !f) throw new TypeError(\"Private accessor was defined without a setter\");\r\n if (typeof state === \"function\" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError(\"Cannot write private member to an object whose class did not declare it\");\r\n return (kind === \"a\" ? f.call(receiver, value) : f ? f.value = value : state.set(receiver, value)), value;\r\n}\r\n\r\nexport function __classPrivateFieldIn(state, receiver) {\r\n if (receiver === null || (typeof receiver !== \"object\" && typeof receiver !== \"function\")) throw new TypeError(\"Cannot use 'in' operator on non-object\");\r\n return typeof state === \"function\" ? receiver === state : state.has(receiver);\r\n}\r\n\r\nexport function __addDisposableResource(env, value, async) {\r\n if (value !== null && value !== void 0) {\r\n if (typeof value !== \"object\" && typeof value !== \"function\") throw new TypeError(\"Object expected.\");\r\n var dispose, inner;\r\n if (async) {\r\n if (!Symbol.asyncDispose) throw new TypeError(\"Symbol.asyncDispose is not defined.\");\r\n dispose = value[Symbol.asyncDispose];\r\n }\r\n if (dispose === void 0) {\r\n if (!Symbol.dispose) throw new TypeError(\"Symbol.dispose is not defined.\");\r\n dispose = value[Symbol.dispose];\r\n if (async) inner = dispose;\r\n }\r\n if (typeof dispose !== \"function\") throw new TypeError(\"Object not disposable.\");\r\n if (inner) dispose = function() { try { inner.call(this); } catch (e) { return Promise.reject(e); } };\r\n env.stack.push({ value: value, dispose: dispose, async: async });\r\n }\r\n else if (async) {\r\n env.stack.push({ async: true });\r\n }\r\n return value;\r\n\r\n}\r\n\r\nvar _SuppressedError = typeof SuppressedError === \"function\" ? SuppressedError : function (error, suppressed, message) {\r\n var e = new Error(message);\r\n return e.name = \"SuppressedError\", e.error = error, e.suppressed = suppressed, e;\r\n};\r\n\r\nexport function __disposeResources(env) {\r\n function fail(e) {\r\n env.error = env.hasError ? new _SuppressedError(e, env.error, \"An error was suppressed during disposal.\") : e;\r\n env.hasError = true;\r\n }\r\n var r, s = 0;\r\n function next() {\r\n while (r = env.stack.pop()) {\r\n try {\r\n if (!r.async && s === 1) return s = 0, env.stack.push(r), Promise.resolve().then(next);\r\n if (r.dispose) {\r\n var result = r.dispose.call(r.value);\r\n if (r.async) return s |= 2, Promise.resolve(result).then(next, function(e) { fail(e); return next(); });\r\n }\r\n else s |= 1;\r\n }\r\n catch (e) {\r\n fail(e);\r\n }\r\n }\r\n if (s === 1) return env.hasError ? Promise.reject(env.error) : Promise.resolve();\r\n if (env.hasError) throw env.error;\r\n }\r\n return next();\r\n}\r\n\r\nexport function __rewriteRelativeImportExtension(path, preserveJsx) {\r\n if (typeof path === \"string\" && /^\\.\\.?\\//.test(path)) {\r\n return path.replace(/\\.(tsx)$|((?:\\.d)?)((?:\\.[^./]+?)?)\\.([cm]?)ts$/i, function (m, tsx, d, ext, cm) {\r\n return tsx ? preserveJsx ? \".jsx\" : \".js\" : d && (!ext || !cm) ? m : (d + ext + \".\" + cm.toLowerCase() + \"js\");\r\n });\r\n }\r\n return path;\r\n}\r\n\r\nexport default {\r\n __extends: __extends,\r\n __assign: __assign,\r\n __rest: __rest,\r\n __decorate: __decorate,\r\n __param: __param,\r\n __esDecorate: __esDecorate,\r\n __runInitializers: __runInitializers,\r\n __propKey: __propKey,\r\n __setFunctionName: __setFunctionName,\r\n __metadata: __metadata,\r\n __awaiter: __awaiter,\r\n __generator: __generator,\r\n __createBinding: __createBinding,\r\n __exportStar: __exportStar,\r\n __values: __values,\r\n __read: __read,\r\n __spread: __spread,\r\n __spreadArrays: __spreadArrays,\r\n __spreadArray: __spreadArray,\r\n __await: __await,\r\n __asyncGenerator: __asyncGenerator,\r\n __asyncDelegator: __asyncDelegator,\r\n __asyncValues: __asyncValues,\r\n __makeTemplateObject: __makeTemplateObject,\r\n __importStar: __importStar,\r\n __importDefault: __importDefault,\r\n __classPrivateFieldGet: __classPrivateFieldGet,\r\n __classPrivateFieldSet: __classPrivateFieldSet,\r\n __classPrivateFieldIn: __classPrivateFieldIn,\r\n __addDisposableResource: __addDisposableResource,\r\n __disposeResources: __disposeResources,\r\n __rewriteRelativeImportExtension: __rewriteRelativeImportExtension,\r\n};\r\n","import React, { createContext, useContext, useMemo } from 'react';\n\nexport interface ThemeConfig {\n primaryColor?: string;\n}\n\nconst defaultTheme: ThemeConfig = {\n primaryColor: '#FB6011',\n};\n\nconst ThemeContext = createContext<ThemeConfig>(defaultTheme);\n\nexport interface ThemeProviderProps {\n theme?: ThemeConfig;\n children: React.ReactNode;\n}\n\nexport const ThemeProvider: React.FC<ThemeProviderProps> = ({ theme, children }) => {\n const themeValue = useMemo(() => {\n return {\n ...defaultTheme,\n ...theme,\n };\n }, [theme]);\n\n return (\n <ThemeContext.Provider value={themeValue}>\n {children}\n </ThemeContext.Provider>\n );\n};\n\nexport const useTheme = (): ThemeConfig => {\n const context = useContext(ThemeContext);\n if (!context) {\n // 如果没有 Provider,返回默认主题\n return defaultTheme;\n }\n return context;\n};\n\n// 导出默认主题色,供组件内部使用\nexport const getDefaultPrimaryColor = () => defaultTheme.primaryColor!;\n\n","import React, { SVGProps } from 'react';\nimport { useTheme } from '../../theme/ThemeContext';\n\nexport type TagColor = 'Green' | 'Red' | 'Orange' | 'Cyan' | 'Violet' | 'Pink' | 'Gray' | 'Yellow' | 'Blue' | string;\nexport type TagVariant = 'light' | 'fill';\nexport type TagSize = 'large' | 'small';\nexport type IconPosition = 'leading' | 'after' | 'none';\n\nexport interface TagProps {\n children: React.ReactNode;\n color: TagColor; // 必需属性,支持预定义颜色或自定义十六进制颜色\n variant?: TagVariant;\n size?: TagSize;\n stroke?: boolean; // 仅对 light 变体有效\n icon?: React.ReactElement; // 只允许 React 元素,不接受字符串\n iconPosition?: IconPosition;\n className?: string;\n onClick?: () => void;\n [key: string]: any;\n}\n\n// 颜色配置\nconst COLOR_CONFIG = {\n Green: {\n light: {\n bg: '#ECFDF5',\n text: '#006045',\n border: '#A4F4CF',\n },\n fill: {\n bg: '#00BC7D',\n text: '#FFFFFF',\n }\n },\n Red: {\n light: {\n bg: '#FEF2F2',\n text: '#9F0712',\n border: '#FFC9C9',\n },\n fill: {\n bg: '#FB2C36',\n text: '#FFFFFF',\n }\n },\n Orange: {\n light: {\n bg: '#FFF6ED',\n text: '#9B2911',\n border: '#FFD1A9',\n },\n fill: {\n bg: '#FB6011',\n text: '#FFFFFF',\n }\n },\n Cyan: {\n light: {\n bg: '#ECFEFF',\n text: '#005F78',\n border: '#A2F4FD',\n },\n fill: {\n bg: '#00B8DB',\n text: '#FFFFFF',\n }\n },\n Violet: {\n light: {\n bg: '#F5F3FF',\n text: '#5D0EC0',\n border: '#DDD6FF',\n },\n fill: {\n bg: '#8E51FF',\n text: '#FFFFFF',\n }\n },\n Pink: {\n light: {\n bg: '#FDF2F8',\n text: '#A3004C',\n border: '#FCCEE8',\n },\n fill: {\n bg: '#F6339A',\n text: '#FFFFFF',\n }\n },\n Gray: {\n light: {\n bg: '#F5F5F4',\n text: '#292524',\n border: '#E7E5E4',\n },\n fill: {\n bg: '#292524',\n text: '#FFFFFF',\n }\n },\n Yellow: {\n light: {\n bg: '#FFFBEB',\n text: '#973C00',\n border: '#FEE685',\n },\n fill: {\n bg: '#FE9A00',\n text: '#FFFFFF',\n }\n },\n Blue: {\n light: {\n bg: '#EFF6FF',\n text: '#193CB8',\n border: '#BEDBFF',\n },\n fill: {\n bg: '#2B7FFF',\n text: '#FFFFFF',\n }\n }\n};\n\n// 尺寸配置\nconst SIZE_CONFIG = {\n large: {\n padding: 'px-2 py-0.5',\n textSize: 'text-sm',\n iconSize: 'w-4 h-4',\n gap: 'gap-1',\n },\n small: {\n padding: 'px-2 py-0.5', // 与 large 相同的外层 padding\n textSize: 'text-xs',\n iconSize: 'w-3 h-3',\n gap: 'gap-0.5',\n }\n};\n\n// 获取颜色配置的函数\nconst getColorConfig = (color: TagColor, primaryColor?: string) => {\n // 如果是预定义颜色,返回对应的配置\n if (typeof color === 'string' && color in COLOR_CONFIG) {\n const config = COLOR_CONFIG[color as keyof typeof COLOR_CONFIG];\n // 如果是 Orange 颜色,使用主题色\n if (color === 'Orange' && primaryColor) {\n return {\n ...config,\n fill: {\n ...config.fill,\n bg: primaryColor,\n },\n };\n }\n return config;\n }\n \n // 如果是自定义颜色(十六进制),生成配置\n if (typeof color === 'string' && color.startsWith('#')) {\n // 将十六进制转换为 RGB 值\n const hex = color.replace('#', '');\n const r = parseInt(hex.substr(0, 2), 16);\n const g = parseInt(hex.substr(2, 2), 16);\n const b = parseInt(hex.substr(4, 2), 16);\n \n return {\n light: {\n bg: `rgba(${r}, ${g}, ${b}, 0.1)`, // 10% 透明度\n text: color,\n border: `rgba(${r}, ${g}, ${b}, 0.3)`, // 30% 透明度\n },\n fill: {\n bg: color,\n text: '#FFFFFF',\n }\n };\n }\n \n // 默认返回绿色配置\n return COLOR_CONFIG.Green;\n};\n\n// 获取图标颜色的函数\nconst getIconColor = (color: TagColor, primaryColor?: string) => {\n // 如果是预定义颜色,返回对应的图标颜色\n if (typeof color === 'string' && color in COLOR_CONFIG) {\n switch (color) {\n case 'Green': return '#009966';\n case 'Red': return '#E7000B';\n case 'Orange': return primaryColor || '#E17100'; // 使用主题色\n case 'Blue': return '#155DFC';\n case 'Yellow': return '#EC470A';\n case 'Cyan': return '#0092B8';\n case 'Violet': return '#7F22FE';\n case 'Pink': return '#E60076';\n case 'Gray': return '#57534D';\n default: return '#009966';\n }\n }\n \n // 如果是自定义颜色,返回原色\n if (typeof color === 'string' && color.startsWith('#')) {\n return color;\n }\n \n return '#009966';\n};\n\n// 获取边框颜色的函数\nconst getOutlineColor = (color: TagColor) => {\n // 如果是预定义颜色,返回对应的边框颜色\n if (typeof color === 'string' && color in COLOR_CONFIG) {\n switch (color) {\n case 'Green': return '#A4F4CF';\n case 'Red': return '#FFC9C9';\n case 'Orange': return '#FFD1A9';\n case 'Blue': return '#BEDBFF';\n case 'Yellow': return '#FFD1A9';\n case 'Cyan': return '#A2F4FD';\n case 'Violet': return '#DDD6FF';\n case 'Pink': return '#FCCEE8';\n case 'Gray': return '#E7E5E4';\n default: return '#A4F4CF';\n }\n }\n \n // 如果是自定义颜色,返回带透明度的颜色\n if (typeof color === 'string' && color.startsWith('#')) {\n const hex = color.replace('#', '');\n const r = parseInt(hex.substr(0, 2), 16);\n const g = parseInt(hex.substr(2, 2), 16);\n const b = parseInt(hex.substr(4, 2), 16);\n return `rgba(${r}, ${g}, ${b}, 0.3)`; // 30% 透明度\n }\n \n return '#A4F4CF';\n};\n\nconst Tag: React.FC<TagProps> = ({\n children,\n color,\n variant = 'light',\n size = 'large',\n stroke = false,\n icon,\n iconPosition = 'none',\n className = '',\n onClick,\n ...rest\n}) => {\n const { primaryColor } = useTheme();\n const colorConfig = getColorConfig(color, primaryColor);\n const sizeConfig = SIZE_CONFIG[size];\n \n // 构建基础样式对象\n const baseStyle: React.CSSProperties = {\n borderRadius: '0.375rem', // rounded-md\n display: 'inline-flex',\n justifyContent: 'start',\n alignItems: 'center',\n padding: '2px 8px', // px-2 py-0.5 (所有尺寸都相同)\n gap: size === 'large' ? '4px' : '2px', // gap-1 or gap-0.5\n fontWeight: 500, // font-medium\n fontFamily: 'DM Sans, sans-serif',\n lineHeight: size === 'large' ? '1.375' : '1', // leading-snug or leading-none\n transition: 'all 0.2s',\n fontSize: size === 'large' ? '14px' : '12px', // text-sm or text-xs\n height: size === 'small' ? '20px' : '24px', // Small 尺寸 20px,Large 尺寸 24px\n };\n\n // 根据变体和颜色添加样式\n if (variant === 'light') {\n baseStyle.backgroundColor = colorConfig.light.bg;\n baseStyle.color = colorConfig.light.text;\n if (stroke) {\n // 使用 outline 样式而不是 border\n baseStyle.outline = '1px solid';\n baseStyle.outlineOffset = '-1px';\n // 根据颜色设置 outline 颜色\n baseStyle.outlineColor = getOutlineColor(color);\n }\n }\n\n // 添加点击样式\n if (onClick) {\n baseStyle.cursor = 'pointer';\n baseStyle.opacity = '1';\n }\n\n // 构建类名\n const baseClasses = [\n 'rounded-md',\n 'inline-flex',\n 'justify-start',\n 'items-center',\n sizeConfig.padding,\n sizeConfig.gap,\n 'font-medium',\n 'font-dm-sans',\n size === 'large' ? 'leading-snug' : 'leading-none',\n 'transition-colors',\n 'duration-200',\n size === 'small' ? 'h-5' : 'h-6' // Small 尺寸 20px,Large 尺寸 24px\n ].filter(Boolean); // 过滤掉空字符串\n\n // 为 fill 变体添加样式\n if (variant === 'fill') {\n baseStyle.backgroundColor = colorConfig.fill.bg;\n baseStyle.color = colorConfig.fill.text;\n }\n\n if (onClick) {\n baseClasses.push('cursor-pointer', 'hover:opacity-80');\n }\n\n if (className) {\n baseClasses.push(className);\n }\n\n const containerClasses = baseClasses.join(' ');\n\n // 渲染图标\n const renderIcon = () => {\n if (!icon) return null;\n \n // 根据颜色设置图标颜色\n const iconColor = getIconColor(color, primaryColor);\n \n // 根据尺寸设置图标大小\n const iconSize = size === 'small' ? '14px' : '16px';\n \n return (\n <div className=\"flex items-center justify-center\" style={{ width: iconSize, height: iconSize }}>\n {icon.type === 'svg' ? (\n React.cloneElement(icon as React.ReactElement<SVGProps<SVGSVGElement>>, {\n width: iconSize,\n height: iconSize,\n style: { fill: iconColor }\n })\n ) : (\n icon\n )}\n </div>\n );\n };\n\n // 渲染文本内容\n const renderContent = () => {\n return (\n <div className=\"px-1 flex justify-center items-center\">\n <div className={`justify-center ${sizeConfig.textSize} font-medium font-dm-sans ${size === 'large' ? 'leading-snug' : 'leading-none'}`}>\n {children}\n </div>\n </div>\n );\n };\n\n return (\n <div\n className={containerClasses}\n style={baseStyle}\n onClick={onClick}\n {...rest}\n >\n {iconPosition === 'leading' && renderIcon()}\n {renderContent()}\n {iconPosition === 'after' && renderIcon()}\n </div>\n );\n};\n\nexport default Tag;\n"],"names":["__assign","Object","assign","t","s","i","n","arguments","length","p","prototype","hasOwnProperty","call","apply","this","SuppressedError","defaultTheme","primaryColor","ThemeContext","createContext","COLOR_CONFIG","Green","light","bg","text","border","fill","Red","Orange","Cyan","Violet","Pink","Gray","Yellow","Blue","SIZE_CONFIG","large","padding","textSize","iconSize","gap","small","Tag","_a","children","color","_b","variant","_c","size","_d","stroke","icon","_e","iconPosition","_f","className","onClick","rest","e","indexOf","getOwnPropertySymbols","propertyIsEnumerable","__rest","useContext","colorConfig","config","startsWith","hex","replace","r","parseInt","substr","g","b","concat","getColorConfig","sizeConfig","baseStyle","borderRadius","display","justifyContent","alignItems","fontWeight","fontFamily","lineHeight","transition","fontSize","height","backgroundColor","outline","outlineOffset","outlineColor","getOutlineColor","cursor","opacity","baseClasses","filter","Boolean","push","containerClasses","join","renderIcon","iconColor","getIconColor","_jsx","style","width","type","React","cloneElement","_jsxs"],"mappings":"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","x_google_ignoreList":[0]}