@morehao/ark-iam-react 0.0.0-stage → 1.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.

Potentially problematic release.


This version of @morehao/ark-iam-react might be problematic. Click here for more details.

Files changed (66) hide show
  1. package/README.md +83 -2
  2. package/dist/_types/api/index.d.ts +5 -0
  3. package/dist/_types/api/index.js +185 -0
  4. package/dist/_types/api/index.js.map +1 -0
  5. package/dist/_types/api/request.d.ts +34 -0
  6. package/dist/_types/api/resources/auth.d.ts +13 -0
  7. package/dist/_types/api/resources/platform.d.ts +80 -0
  8. package/dist/_types/api/sessionProbe.d.ts +13 -0
  9. package/dist/_types/auth/AuthProvider.d.ts +27 -0
  10. package/dist/_types/auth/config.d.ts +23 -0
  11. package/dist/_types/auth/guards.d.ts +1 -0
  12. package/dist/_types/auth/hooks.d.ts +11 -0
  13. package/dist/_types/auth/index.d.ts +8 -0
  14. package/dist/_types/auth/index.js +190 -0
  15. package/dist/_types/auth/index.js.map +1 -0
  16. package/dist/_types/auth/tenant.d.ts +3 -0
  17. package/dist/_types/types/auth.d.ts +62 -0
  18. package/dist/_types/types/department.d.ts +52 -0
  19. package/dist/_types/types/index.d.ts +5 -0
  20. package/dist/_types/types/index.js +14 -0
  21. package/dist/_types/types/index.js.map +1 -0
  22. package/dist/_types/types/platform.d.ts +347 -0
  23. package/dist/_types/types/response.d.ts +14 -0
  24. package/dist/_types/types/tenant.d.ts +243 -0
  25. package/dist/_types/ui/AppShell.d.ts +16 -0
  26. package/dist/_types/ui/EllipsisCell.d.ts +16 -0
  27. package/dist/_types/ui/IDCell.d.ts +14 -0
  28. package/dist/_types/ui/InitialPasswordModal.d.ts +18 -0
  29. package/dist/_types/ui/LoginPage.d.ts +6 -0
  30. package/dist/_types/ui/MainLayout.d.ts +14 -0
  31. package/dist/_types/ui/NameLink.d.ts +18 -0
  32. package/dist/_types/ui/PageContainer.d.ts +15 -0
  33. package/dist/_types/ui/ProfileCenter.d.ts +6 -0
  34. package/dist/_types/ui/RemoteSelect.d.ts +57 -0
  35. package/dist/_types/ui/RowActions.d.ts +36 -0
  36. package/dist/_types/ui/TenantSwitcher.d.ts +1 -0
  37. package/dist/_types/ui/TimeCell.d.ts +53 -0
  38. package/dist/_types/ui/columns.d.ts +116 -0
  39. package/dist/_types/ui/format.d.ts +20 -0
  40. package/dist/_types/ui/index.d.ts +25 -0
  41. package/dist/_types/ui/index.js +1233 -0
  42. package/dist/_types/ui/index.js.map +1 -0
  43. package/dist/_types/ui/status.d.ts +38 -0
  44. package/dist/_types/ui/theme.d.ts +49 -0
  45. package/dist/api.d.ts +1 -0
  46. package/dist/api.js +50 -0
  47. package/dist/api.js.map +1 -0
  48. package/dist/auth.d.ts +1 -0
  49. package/dist/auth.js +17 -0
  50. package/dist/auth.js.map +1 -0
  51. package/dist/index-BQuRl5A6.js +185 -0
  52. package/dist/index-BQuRl5A6.js.map +1 -0
  53. package/dist/index-D3uUqZ5c.js +190 -0
  54. package/dist/index-D3uUqZ5c.js.map +1 -0
  55. package/dist/index-DnhMUOxg.js +1233 -0
  56. package/dist/index-DnhMUOxg.js.map +1 -0
  57. package/dist/index.d.ts +4 -0
  58. package/dist/index.js +109 -0
  59. package/dist/index.js.map +1 -0
  60. package/dist/types.d.ts +1 -0
  61. package/dist/types.js +14 -0
  62. package/dist/types.js.map +1 -0
  63. package/dist/ui.d.ts +1 -0
  64. package/dist/ui.js +46 -0
  65. package/dist/ui.js.map +1 -0
  66. package/package.json +80 -3
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index-DnhMUOxg.js","sources":["../../ui/dist/index.js"],"sourcesContent":["import { jsx, jsxs, Fragment } from \"react/jsx-runtime\";\nimport { useState, useCallback, useEffect, useMemo, forwardRef, useRef } from \"react\";\nimport { Dropdown, Tag, Tooltip, App, Space, Button, Popconfirm, Form, Modal, Tabs, Avatar, Descriptions, Input, message, Table, theme, Layout, Menu, Badge, Typography, Card, Alert, Select, Spin, ConfigProvider } from \"antd\";\nimport { SwapOutlined, DownOutlined, UserSwitchOutlined, LogoutOutlined, SafetyCertificateOutlined, UserOutlined, MenuUnfoldOutlined, MenuFoldOutlined, ArrowRightOutlined, CopyOutlined } from \"@ant-design/icons\";\nimport { useNavigate, useLocation, Outlet } from \"react-router-dom\";\nimport { useTenantSwitching, getCurrentTenantId, useAuthGuard, useLogout } from \"@ark-iam/auth\";\nimport { useAuth } from \"react-oidc-context\";\nimport { getPersonDetail, getSessionList, revokeAllSessions, updatePassword, revokeSession } from \"@ark-iam/api\";\nimport zhCN from \"antd/locale/zh_CN\";\nimport dayjs from \"dayjs\";\nimport \"dayjs/locale/zh-cn\";\nconst tokens = {\n // 品牌 Brand:靛蓝 → 紫,仅用于主按钮 / 链接 / 选中态 / 登录与 Logo 品牌区\n primary: \"#4f6ef7\",\n primaryHover: \"#6b86ff\",\n primaryActive: \"#3a55d6\",\n gradient: \"linear-gradient(135deg, #4f6ef7 0%, #7a5af8 55%, #a855f7 100%)\",\n gradientSoft: \"linear-gradient(135deg, #eef2ff 0%, #f5f0ff 100%)\",\n purple: \"#7a5af8\",\n // 品牌紫:分类图标/点缀强调(极少量)\n selectedBg: \"rgba(79, 110, 247, 0.14)\",\n // 深色导航选中项柔和底(非整块亮色)\n // 表面 Surface(中性灰阶,禁用靛蓝淡底 tint)\n bg: \"#f6f7f9\",\n // 页面布局底色(冷白)\n cardBg: \"#ffffff\",\n sidebarBg: \"#0f172a\",\n headerBg: \"#ffffff\",\n tableHeaderBg: \"#f7f8fa\",\n rowHoverBg: \"#f3f4f6\",\n softFill: \"#f1f3f5\",\n // 中性填充底(统计卡图标底、应用固定条等)\n codeBg: \"#fafafa\",\n // 代码/内容块底色\n // 边框 Border(冷调 hairline,卡片分层的主语言)\n border: \"#e6e9ef\",\n borderStrong: \"#d3d8e0\",\n // 更强的分割线(Header 内分割线等)\n // 文字 Text(三级 hex 灰阶)\n text: \"#1f2430\",\n textSecondary: \"#64748d\",\n // 借鉴 Stripe ink-mute\n textPlaceholder: \"#94a3b8\",\n // 空态/占位辅助文字\n // 语义色 Semantic(与 antd colorSuccess/Warning/Error 对齐,仅状态 Tag/告警使用)\n success: \"#22c55e\",\n warning: \"#f59e0b\",\n error: \"#ef4444\",\n warningBg: \"#fffbe6\",\n // 轻量告警底色\n warningBorder: \"#ffe58f\"\n // 轻量告警描边\n};\nconst brand = {\n primary: tokens.primary,\n primaryHover: tokens.primaryHover,\n primaryActive: tokens.primaryActive,\n gradient: tokens.gradient,\n gradientSoft: tokens.gradientSoft,\n bg: tokens.bg,\n sidebarBg: tokens.sidebarBg,\n text: tokens.text,\n textSecondary: tokens.textSecondary\n};\nconst themeConfig = {\n token: {\n colorPrimary: tokens.primary,\n colorInfo: tokens.primary,\n colorLink: tokens.primary,\n colorSuccess: tokens.success,\n colorWarning: tokens.warning,\n colorError: tokens.error,\n colorBgLayout: tokens.bg,\n colorBorderSecondary: tokens.border,\n // hairline 统一为冷调\n borderRadius: 8,\n borderRadiusLG: 12,\n colorText: tokens.text,\n colorTextSecondary: tokens.textSecondary,\n fontFamily: \"-apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, 'PingFang SC', 'Hiragino Sans GB', 'Microsoft YaHei', sans-serif\",\n boxShadowSecondary: \"0 6px 24px rgba(15, 23, 42, 0.08)\"\n // 仅浮层/Modal 使用\n },\n components: {\n Layout: {\n headerBg: tokens.headerBg,\n headerHeight: 56,\n siderBg: tokens.sidebarBg,\n bodyBg: tokens.bg\n },\n Menu: {\n darkItemBg: tokens.sidebarBg,\n darkItemSelectedBg: tokens.selectedBg,\n darkItemSelectedColor: \"#ffffff\",\n darkItemHoverBg: \"rgba(255,255,255,0.08)\",\n itemBorderRadius: 8,\n itemHeight: 42\n },\n Card: {\n headerFontSize: 15\n },\n Table: {\n headerBg: tokens.tableHeaderBg,\n headerColor: tokens.textSecondary,\n rowHoverBg: tokens.rowHoverBg\n },\n Modal: {\n borderRadiusLG: 14\n }\n }\n};\nfunction TenantSwitcher() {\n var _a;\n const { tenants, loadTenants, handleSwitchTenant } = useTenantSwitching();\n const currentId = getCurrentTenantId();\n const currentName = ((_a = tenants.find((t) => String(t.tenantID) === currentId)) == null ? void 0 : _a.name) || \"当前租户\";\n return /* @__PURE__ */ jsx(\n Dropdown,\n {\n menu: {\n items: tenants.map((t) => ({\n key: `tenant-${t.tenantID}`,\n label: /* @__PURE__ */ jsxs(\"span\", { style: { display: \"flex\", alignItems: \"center\", gap: 8 }, children: [\n t.name,\n String(t.tenantID) === currentId && /* @__PURE__ */ jsx(Tag, { color: \"blue\", style: { marginInlineEnd: 0 }, children: \"当前\" })\n ] }),\n disabled: String(t.tenantID) === currentId,\n onClick: () => handleSwitchTenant(t.tenantID)\n }))\n },\n onOpenChange: (open) => {\n if (open) void loadTenants();\n },\n children: /* @__PURE__ */ jsxs(\n \"span\",\n {\n style: {\n color: tokens.text,\n cursor: \"pointer\",\n fontSize: 13,\n lineHeight: 1,\n display: \"inline-flex\",\n alignItems: \"center\",\n height: 32,\n padding: \"0 12px\",\n boxSizing: \"border-box\",\n borderRadius: 8,\n border: `1px solid ${tokens.borderStrong}`,\n background: tokens.tableHeaderBg,\n transition: \"all 0.2s\"\n },\n className: \"tenant-switcher\",\n children: [\n /* @__PURE__ */ jsx(SwapOutlined, { style: { color: tokens.primary } }),\n /* @__PURE__ */ jsx(\"span\", { style: { fontWeight: 500, lineHeight: 1 }, children: currentName })\n ]\n }\n )\n }\n );\n}\nfunction IDCell({ value, prefix = 8, suffix = 4 }) {\n const text = value == null ? \"\" : String(value);\n if (!text) return /* @__PURE__ */ jsx(\"span\", { children: \"-\" });\n const short = text.length > prefix + suffix + 1 ? `${text.slice(0, prefix)}…${text.slice(-suffix)}` : text;\n return /* @__PURE__ */ jsx(\n Tooltip,\n {\n title: text,\n mouseEnterDelay: 0.3,\n mouseLeaveDelay: 0.6,\n styles: { body: { userSelect: \"text\" } },\n children: /* @__PURE__ */ jsx(\"span\", { style: { fontFamily: \"ui-monospace, SFMono-Regular, Menlo, monospace\", fontSize: 12 }, children: short })\n }\n );\n}\nfunction EllipsisCell({ value, limit, monospace = false, placeholder = \"-\" }) {\n const text = value == null ? \"\" : String(value);\n if (!text) return /* @__PURE__ */ jsx(\"span\", { children: placeholder });\n const display = limit && text.length > limit ? `${text.slice(0, limit)}…` : text;\n return /* @__PURE__ */ jsx(\n Tooltip,\n {\n title: text,\n mouseEnterDelay: 0.3,\n mouseLeaveDelay: 0.6,\n styles: { body: { userSelect: \"text\" } },\n children: /* @__PURE__ */ jsx(\n \"span\",\n {\n style: {\n display: \"inline-block\",\n maxWidth: \"100%\",\n overflow: \"hidden\",\n textOverflow: \"ellipsis\",\n whiteSpace: \"nowrap\",\n verticalAlign: \"bottom\",\n ...monospace ? { fontFamily: \"ui-monospace, SFMono-Regular, Menlo, monospace\", fontSize: 12 } : {}\n },\n children: display\n }\n )\n }\n );\n}\nfunction RowActions({ actions, max = 3 }) {\n const { modal } = App.useApp();\n const visible = actions.filter((action) => !action.hidden);\n if (visible.length === 0) return null;\n const renderInline = (action) => {\n if (!action.confirm) {\n return /* @__PURE__ */ jsx(\n Button,\n {\n type: \"link\",\n size: \"small\",\n danger: action.danger,\n disabled: action.disabled,\n icon: action.icon,\n onClick: action.onClick,\n children: action.label\n },\n action.key\n );\n }\n return /* @__PURE__ */ jsx(\n Popconfirm,\n {\n title: action.confirm,\n disabled: action.disabled,\n onConfirm: action.onClick,\n children: /* @__PURE__ */ jsx(Button, { type: \"link\", size: \"small\", danger: action.danger, disabled: action.disabled, icon: action.icon, children: action.label })\n },\n action.key\n );\n };\n if (visible.length <= max) {\n return /* @__PURE__ */ jsx(Space, { size: 4, children: visible.map(renderInline) });\n }\n const inline = visible.slice(0, Math.max(1, max - 1));\n const overflow = visible.slice(Math.max(1, max - 1));\n const items = overflow.map((action) => ({\n key: action.key,\n label: action.label,\n icon: action.icon,\n danger: action.danger,\n disabled: action.disabled\n }));\n const handleMenuClick = ({ key }) => {\n var _a;\n const action = overflow.find((item) => item.key === key);\n if (!action) return;\n if (action.confirm) {\n modal.confirm({\n title: action.confirm,\n okButtonProps: { danger: action.danger },\n onOk: () => {\n var _a2;\n return (_a2 = action.onClick) == null ? void 0 : _a2.call(action);\n }\n });\n return;\n }\n (_a = action.onClick) == null ? void 0 : _a.call(action);\n };\n return /* @__PURE__ */ jsxs(Space, { size: 4, children: [\n inline.map(renderInline),\n /* @__PURE__ */ jsx(Dropdown, { menu: { items, onClick: handleMenuClick }, trigger: [\"click\"], children: /* @__PURE__ */ jsxs(Button, { type: \"link\", size: \"small\", children: [\n \"更多 \",\n /* @__PURE__ */ jsx(DownOutlined, { style: { fontSize: 10 } })\n ] }) })\n ] });\n}\nfunction fmtTime(value) {\n if (value == null || value === \"\" || value === 0) return \"-\";\n if (typeof value === \"number\") {\n const ms = toMillis(value);\n const d = new Date(ms);\n if (Number.isNaN(d.getTime())) return String(value);\n const pad = (n) => String(n).padStart(2, \"0\");\n return `${d.getFullYear()}-${pad(d.getMonth() + 1)}-${pad(d.getDate())} ${pad(d.getHours())}:${pad(d.getMinutes())}:${pad(d.getSeconds())}`;\n }\n return value;\n}\nfunction toMillis(value) {\n return value < 1e12 ? value * 1e3 : value;\n}\nconst REL_MINUTE = 60;\nconst REL_HOUR = 60 * REL_MINUTE;\nconst REL_DAY = 24 * REL_HOUR;\nconst REL_MONTH = 30 * REL_DAY;\nconst REL_YEAR = 365 * REL_DAY;\nfunction fmtRelativeTime(value, now = Date.now()) {\n if (value == null || value === \"\" || value === 0) return \"\";\n if (typeof value !== \"number\") return String(value);\n const ms = toMillis(value);\n if (Number.isNaN(ms)) return String(value);\n const diff = Math.floor((now - ms) / 1e3);\n if (diff < 0) return fmtTime(value);\n if (diff < REL_MINUTE) return \"刚刚\";\n if (diff < REL_HOUR) return `${Math.floor(diff / REL_MINUTE)} 分钟前`;\n if (diff < REL_DAY) return `${Math.floor(diff / REL_HOUR)} 小时前`;\n if (diff < REL_MONTH) return `${Math.floor(diff / REL_DAY)} 天前`;\n if (diff < REL_YEAR) return `${Math.floor(diff / REL_MONTH)} 个月前`;\n return `${Math.floor(diff / REL_YEAR)} 年前`;\n}\nconst TIME_COL_WIDTH = 180;\nconst TIME_COL_WIDTH_RELATIVE = 120;\nfunction TimeCell({ value, placeholder = \"-\", relative = false }) {\n if (value == null || value === \"\" || value === 0) {\n return /* @__PURE__ */ jsx(\"span\", { style: { color: tokens.textPlaceholder }, children: placeholder });\n }\n const absolute = fmtTime(value);\n if (!relative) return /* @__PURE__ */ jsx(\"span\", { style: { whiteSpace: \"nowrap\" }, children: absolute });\n const text = fmtRelativeTime(value);\n return /* @__PURE__ */ jsx(Tooltip, { title: absolute, mouseEnterDelay: 0.3, children: /* @__PURE__ */ jsx(\"span\", { style: { whiteSpace: \"nowrap\" }, children: text || absolute }) });\n}\nfunction timeColumn({\n title,\n dataIndex,\n width,\n placeholder,\n relative = false\n}) {\n return {\n title,\n dataIndex,\n key: dataIndex,\n width: width ?? (relative ? TIME_COL_WIDTH_RELATIVE : TIME_COL_WIDTH),\n render: (value) => /* @__PURE__ */ jsx(TimeCell, { value, placeholder, relative })\n };\n}\nfunction ProfileCenter({ open, onClose }) {\n var _a, _b;\n const [person, setPerson] = useState(null);\n const [sessions, setSessions] = useState([]);\n const [loading, setLoading] = useState(false);\n const [form] = Form.useForm();\n const loadPerson = useCallback(async () => {\n try {\n setPerson(await getPersonDetail());\n } catch {\n }\n }, []);\n const loadSessions = useCallback(async () => {\n setLoading(true);\n try {\n const pages = await Promise.all(\n [1, 2, 3, 4, 5].map((p) => getSessionList({ page: p, pageSize: 10 }).catch(() => ({ list: [], total: 0 })))\n );\n const seen = /* @__PURE__ */ new Set();\n const merged = [];\n for (const resp of pages) {\n for (const s of resp.list || []) {\n if (!seen.has(s.id)) {\n seen.add(s.id);\n merged.push(s);\n }\n }\n }\n setSessions(merged);\n } catch {\n } finally {\n setLoading(false);\n }\n }, []);\n useEffect(() => {\n if (open) {\n void loadPerson();\n void loadSessions();\n }\n }, [open, loadPerson, loadSessions]);\n const submitPassword = async () => {\n try {\n const values = await form.validateFields();\n if (values.newPassword !== values.confirmPassword) {\n message.warning(\"两次输入的新密码不一致\");\n return;\n }\n await updatePassword({ oldPassword: values.oldPassword, newPassword: values.newPassword });\n message.success(\"密码已修改\");\n form.resetFields();\n } catch {\n }\n };\n const columns = [\n { title: \"会话ID\", dataIndex: \"sessionID\", key: \"sessionID\", width: 160, render: (v) => /* @__PURE__ */ jsx(IDCell, { value: v }) },\n { title: \"客户端\", dataIndex: \"clientType\", key: \"clientType\", width: 110 },\n { title: \"IP\", dataIndex: \"clientIP\", key: \"clientIP\", width: 130 },\n {\n title: \"状态\",\n dataIndex: \"isActive\",\n key: \"isActive\",\n width: 90,\n render: (v) => v ? /* @__PURE__ */ jsx(Tag, { color: \"success\", children: \"活跃\" }) : /* @__PURE__ */ jsx(Tag, { color: \"default\", children: \"已失效\" })\n },\n {\n title: \"UserAgent\",\n dataIndex: \"userAgent\",\n key: \"userAgent\",\n render: (v) => /* @__PURE__ */ jsx(EllipsisCell, { value: v })\n },\n timeColumn({ title: \"创建时间\", dataIndex: \"createdAt\" }),\n {\n title: \"操作\",\n key: \"action\",\n width: 90,\n render: (_, record) => /* @__PURE__ */ jsx(\n RowActions,\n {\n actions: [\n {\n key: \"revoke\",\n label: \"撤销\",\n danger: true,\n confirm: \"确认撤销该会话?\",\n onClick: () => {\n void revokeSession(record.id).then(() => {\n message.success(\"已撤销\");\n void loadSessions();\n }).catch(() => message.error(\"撤销会话失败\"));\n }\n }\n ]\n }\n )\n }\n ];\n return /* @__PURE__ */ jsx(Modal, { title: \"个人中心\", open, onCancel: onClose, footer: null, width: 760, styles: { body: { paddingTop: 12 } }, children: /* @__PURE__ */ jsx(\n Tabs,\n {\n items: [\n {\n key: \"info\",\n label: \"个人信息\",\n children: /* @__PURE__ */ jsxs(\"div\", { children: [\n /* @__PURE__ */ jsxs(Space, { size: 20, align: \"center\", style: { marginBottom: 20 }, children: [\n /* @__PURE__ */ jsx(Avatar, { size: 56, style: { background: brand.gradient, fontSize: 22 }, children: ((_b = (_a = person == null ? void 0 : person.name) == null ? void 0 : _a.charAt(0)) == null ? void 0 : _b.toUpperCase()) || \"U\" }),\n /* @__PURE__ */ jsxs(\"div\", { children: [\n /* @__PURE__ */ jsxs(\"div\", { style: { fontSize: 18, fontWeight: 700 }, children: [\n (person == null ? void 0 : person.name) || \"-\",\n (person == null ? void 0 : person.status) === \"suspended\" && /* @__PURE__ */ jsx(Tag, { color: \"error\", style: { marginLeft: 8 }, children: \"已挂起\" })\n ] }),\n /* @__PURE__ */ jsxs(\"div\", { style: { color: brand.textSecondary }, children: [\n \"@\",\n (person == null ? void 0 : person.username) || \"-\"\n ] })\n ] })\n ] }),\n /* @__PURE__ */ jsxs(Descriptions, { column: 1, bordered: true, size: \"small\", children: [\n /* @__PURE__ */ jsx(Descriptions.Item, { label: \"账号\", children: (person == null ? void 0 : person.username) ?? \"-\" }),\n /* @__PURE__ */ jsx(Descriptions.Item, { label: \"姓名\", children: (person == null ? void 0 : person.name) ?? \"-\" }),\n /* @__PURE__ */ jsx(Descriptions.Item, { label: \"邮箱\", children: (person == null ? void 0 : person.primaryEmail) ?? \"-\" }),\n /* @__PURE__ */ jsx(Descriptions.Item, { label: \"手机号\", children: (person == null ? void 0 : person.primaryPhone) ?? \"-\" })\n ] })\n ] })\n },\n {\n key: \"password\",\n label: \"修改密码\",\n children: /* @__PURE__ */ jsxs(Form, { form, layout: \"vertical\", style: { maxWidth: 420 }, children: [\n /* @__PURE__ */ jsx(Form.Item, { name: \"oldPassword\", label: \"原密码\", rules: [{ required: true, message: \"请输入原密码\" }], children: /* @__PURE__ */ jsx(Input.Password, {}) }),\n /* @__PURE__ */ jsx(\n Form.Item,\n {\n name: \"newPassword\",\n label: \"新密码\",\n rules: [\n { required: true, message: \"请输入新密码\" },\n { min: 8, message: \"至少 8 位,需含大小写字母和数字\" }\n ],\n children: /* @__PURE__ */ jsx(Input.Password, {})\n }\n ),\n /* @__PURE__ */ jsx(\n Form.Item,\n {\n name: \"confirmPassword\",\n label: \"确认新密码\",\n rules: [{ required: true, message: \"请再次输入新密码\" }],\n children: /* @__PURE__ */ jsx(Input.Password, {})\n }\n ),\n /* @__PURE__ */ jsx(Button, { type: \"primary\", onClick: () => void submitPassword(), children: \"确认修改\" })\n ] })\n },\n {\n key: \"session\",\n label: \"会话管理\",\n children: /* @__PURE__ */ jsxs(Fragment, { children: [\n /* @__PURE__ */ jsxs(Space, { style: { marginBottom: 12 }, children: [\n /* @__PURE__ */ jsx(\n Button,\n {\n danger: true,\n onClick: () => void revokeAllSessions().then(() => {\n message.success(\"已撤销全部会话\");\n void loadSessions();\n }).catch(() => message.error(\"撤销全部会话失败\")),\n children: \"撤销全部会话\"\n }\n ),\n /* @__PURE__ */ jsxs(\"span\", { style: { color: brand.textSecondary, fontSize: 12 }, children: [\n \"共 \",\n sessions.length,\n \" 条(含历史失效会话)\"\n ] })\n ] }),\n /* @__PURE__ */ jsx(\n Table,\n {\n rowKey: \"id\",\n columns,\n dataSource: sessions,\n loading,\n pagination: { pageSize: 10, showSizeChanger: false, showTotal: (t) => `共 ${t} 条` },\n scroll: { x: 820 }\n }\n )\n ] })\n }\n ]\n }\n ) });\n}\nconst { Header, Sider, Content } = Layout;\nfunction MainLayout({ title, subtitle, menuItems, hasTenantSwitch = true }) {\n const [collapsed, setCollapsed] = useState(false);\n const [profileOpen, setProfileOpen] = useState(false);\n const navigate = useNavigate();\n const location = useLocation();\n const auth = useAuth();\n useAuthGuard();\n const logout = useLogout();\n const { token } = theme.useToken();\n const displayName = useMemo(() => {\n var _a;\n const profile = (_a = auth.user) == null ? void 0 : _a.profile;\n return (profile == null ? void 0 : profile.name) || (profile == null ? void 0 : profile.preferred_username) || \"IAM 用户\";\n }, [auth.user]);\n const userMenuItems = useMemo(\n () => [\n { key: \"profile\", icon: /* @__PURE__ */ jsx(UserSwitchOutlined, {}), label: \"个人中心\", onClick: () => setProfileOpen(true) },\n { type: \"divider\" },\n { key: \"logout\", icon: /* @__PURE__ */ jsx(LogoutOutlined, {}), label: \"退出登录\", onClick: () => void logout() }\n ],\n [logout]\n );\n const selectedKey = useMemo(() => {\n const parts = location.pathname.split(\"/\");\n const level1 = parts[1] ? `/${parts[1]}` : \"/\";\n const level2 = parts.length > 2 ? `/${parts[1]}/${parts[2]}` : \"\";\n const flat = (items) => items.flatMap((i) => [i.key, ...i.children ? flat(i.children) : []]);\n const all = flat(menuItems);\n if (all.includes(level2)) return level2;\n if (all.includes(level1)) return level1;\n return \"/\";\n }, [location.pathname, menuItems]);\n return /* @__PURE__ */ jsxs(Layout, { style: { minHeight: \"100vh\" }, children: [\n /* @__PURE__ */ jsxs(\n Sider,\n {\n trigger: null,\n collapsible: true,\n collapsed,\n width: 232,\n theme: \"dark\",\n style: { position: \"sticky\", top: 0, height: \"100vh\" },\n children: [\n /* @__PURE__ */ jsxs(\n \"div\",\n {\n style: {\n height: 64,\n display: \"flex\",\n alignItems: \"center\",\n justifyContent: \"center\",\n gap: 10,\n background: brand.gradient,\n color: \"#fff\",\n overflow: \"hidden\"\n },\n children: [\n /* @__PURE__ */ jsx(SafetyCertificateOutlined, { style: { fontSize: collapsed ? 20 : 24 } }),\n !collapsed && /* @__PURE__ */ jsxs(\"div\", { style: { lineHeight: 1.1 }, children: [\n /* @__PURE__ */ jsx(\"div\", { style: { fontSize: 16, fontWeight: 700, letterSpacing: 0.5 }, children: title }),\n subtitle && /* @__PURE__ */ jsx(\"div\", { style: { fontSize: 11, opacity: 0.8 }, children: subtitle })\n ] })\n ]\n }\n ),\n /* @__PURE__ */ jsx(\n Menu,\n {\n theme: \"dark\",\n mode: \"inline\",\n selectedKeys: [selectedKey],\n defaultOpenKeys: [selectedKey],\n items: menuItems,\n onClick: ({ key }) => {\n if (key !== location.pathname) navigate(key);\n },\n style: { padding: \"8px 10px\", borderInlineEnd: \"none\" }\n }\n )\n ]\n }\n ),\n /* @__PURE__ */ jsxs(Layout, { children: [\n /* @__PURE__ */ jsxs(\n Header,\n {\n style: {\n padding: \"0 20px\",\n background: \"#fff\",\n display: \"flex\",\n alignItems: \"center\",\n justifyContent: \"space-between\",\n borderBottom: `1px solid ${tokens.border}`,\n position: \"sticky\",\n top: 0,\n zIndex: 10,\n lineHeight: 1\n },\n children: [\n /* @__PURE__ */ jsxs(\"div\", { style: { display: \"flex\", alignItems: \"center\", gap: 12, lineHeight: \"normal\" }, children: [\n /* @__PURE__ */ jsx(Tooltip, { title: collapsed ? \"展开菜单\" : \"收起菜单\", children: /* @__PURE__ */ jsx(ButtonIcon, { collapsed, onClick: () => setCollapsed(!collapsed) }) }),\n hasTenantSwitch && /* @__PURE__ */ jsxs(Fragment, { children: [\n /* @__PURE__ */ jsx(\"div\", { style: { width: 1, height: 22, background: tokens.borderStrong } }),\n /* @__PURE__ */ jsx(TenantSwitcher, {})\n ] })\n ] }),\n /* @__PURE__ */ jsx(\"div\", { style: { display: \"flex\", alignItems: \"center\", gap: 14, lineHeight: \"normal\" }, children: /* @__PURE__ */ jsx(Dropdown, { menu: { items: userMenuItems }, placement: \"bottomRight\", trigger: [\"click\"], children: /* @__PURE__ */ jsxs(\"div\", { style: { display: \"flex\", alignItems: \"center\", gap: 10, height: 42, padding: \"0 8px\", lineHeight: 1, borderRadius: 8, cursor: \"pointer\" }, className: \"user-entry\", children: [\n /* @__PURE__ */ jsx(Badge, { dot: true, color: brand.primary, offset: [-2, 2], children: /* @__PURE__ */ jsx(\n Avatar,\n {\n size: 34,\n style: { background: brand.gradient, fontWeight: 600, fontSize: 14 },\n icon: !displayName ? /* @__PURE__ */ jsx(UserOutlined, {}) : void 0,\n children: displayName.charAt(0).toUpperCase()\n }\n ) }),\n /* @__PURE__ */ jsx(\"span\", { style: { fontSize: 14, color: token.colorText, fontWeight: 500, lineHeight: 1 }, children: displayName })\n ] }) }) })\n ]\n }\n ),\n /* @__PURE__ */ jsx(Content, { style: { margin: 20 }, children: /* @__PURE__ */ jsx(Outlet, {}) })\n ] }),\n /* @__PURE__ */ jsx(ProfileCenter, { open: profileOpen, onClose: () => setProfileOpen(false) })\n ] });\n}\nconst ButtonIcon = forwardRef(function ButtonIcon2({ collapsed, onClick }, ref) {\n return /* @__PURE__ */ jsx(\n \"button\",\n {\n ref,\n onClick,\n style: {\n width: 36,\n height: 36,\n display: \"flex\",\n alignItems: \"center\",\n justifyContent: \"center\",\n border: \"none\",\n borderRadius: 8,\n background: \"transparent\",\n cursor: \"pointer\",\n fontSize: 16,\n color: brand.textSecondary\n },\n children: collapsed ? /* @__PURE__ */ jsx(MenuUnfoldOutlined, {}) : /* @__PURE__ */ jsx(MenuFoldOutlined, {})\n }\n );\n});\nfunction LoginPage({ title, subtitle }) {\n const auth = useAuth();\n return /* @__PURE__ */ jsxs(\n \"div\",\n {\n style: {\n minHeight: \"100vh\",\n display: \"flex\",\n alignItems: \"stretch\",\n background: brand.gradientSoft\n },\n children: [\n /* @__PURE__ */ jsxs(\n \"div\",\n {\n style: {\n flex: 1.2,\n display: \"flex\",\n flexDirection: \"column\",\n justifyContent: \"center\",\n padding: \"0 8vw\",\n background: brand.gradient,\n color: \"#fff\",\n position: \"relative\",\n overflow: \"hidden\"\n },\n children: [\n /* @__PURE__ */ jsx(\n \"div\",\n {\n style: {\n position: \"absolute\",\n width: 420,\n height: 420,\n borderRadius: \"50%\",\n background: \"rgba(255,255,255,0.08)\",\n top: -120,\n right: -120\n }\n }\n ),\n /* @__PURE__ */ jsx(\n \"div\",\n {\n style: {\n position: \"absolute\",\n width: 260,\n height: 260,\n borderRadius: \"50%\",\n background: \"rgba(255,255,255,0.06)\",\n bottom: -60,\n left: -60\n }\n }\n ),\n /* @__PURE__ */ jsxs(\"div\", { style: { display: \"flex\", alignItems: \"center\", gap: 14, marginBottom: 28, position: \"relative\" }, children: [\n /* @__PURE__ */ jsx(\n \"div\",\n {\n style: {\n width: 52,\n height: 52,\n borderRadius: 14,\n background: \"rgba(255,255,255,0.18)\",\n display: \"flex\",\n alignItems: \"center\",\n justifyContent: \"center\",\n fontSize: 26,\n backdropFilter: \"blur(4px)\"\n },\n children: /* @__PURE__ */ jsx(SafetyCertificateOutlined, {})\n }\n ),\n /* @__PURE__ */ jsxs(\"div\", { children: [\n /* @__PURE__ */ jsx(\"div\", { style: { fontSize: 22, fontWeight: 700 }, children: title }),\n subtitle && /* @__PURE__ */ jsx(\"div\", { style: { fontSize: 13, opacity: 0.85 }, children: subtitle })\n ] })\n ] }),\n /* @__PURE__ */ jsx(Typography.Title, { level: 2, style: { color: \"#fff\", marginBottom: 12, position: \"relative\" }, children: \"统一身份认证平台\" }),\n /* @__PURE__ */ jsx(Typography.Paragraph, { style: { color: \"rgba(255,255,255,0.82)\", fontSize: 15, maxWidth: 480, position: \"relative\" }, children: \"一个平台管理多应用的账号、权限与安全策略。基于标准 OIDC/OAuth2 协议, 支持单点登录、多租户切换与细粒度权限控制。\" }),\n /* @__PURE__ */ jsx(\"div\", { style: { display: \"flex\", gap: 24, marginTop: 28, position: \"relative\" }, children: [\"单点登录 SSO\", \"多租户隔离\", \"细粒度授权\"].map((f) => /* @__PURE__ */ jsx(\n \"div\",\n {\n style: {\n padding: \"8px 16px\",\n borderRadius: 20,\n background: \"rgba(255,255,255,0.14)\",\n fontSize: 13,\n backdropFilter: \"blur(4px)\"\n },\n children: f\n },\n f\n )) })\n ]\n }\n ),\n /* @__PURE__ */ jsx(\"div\", { style: { flex: 1, display: \"flex\", alignItems: \"center\", justifyContent: \"center\", padding: 40 }, children: /* @__PURE__ */ jsxs(\n \"div\",\n {\n style: {\n width: 380,\n background: \"#fff\",\n borderRadius: 16,\n boxShadow: \"0 20px 60px rgba(15,23,42,0.12)\",\n padding: \"40px 36px\"\n },\n children: [\n /* @__PURE__ */ jsx(\"div\", { style: { fontSize: 20, fontWeight: 700, marginBottom: 8 }, children: \"欢迎回来\" }),\n /* @__PURE__ */ jsxs(\"div\", { style: { fontSize: 14, color: brand.textSecondary, marginBottom: 32 }, children: [\n \"使用统一身份账号登录 \",\n title\n ] }),\n /* @__PURE__ */ jsxs(\n Button,\n {\n type: \"primary\",\n size: \"large\",\n block: true,\n loading: auth.isLoading,\n onClick: () => void auth.signinRedirect(),\n style: { height: 46, borderRadius: 10, fontWeight: 600, background: brand.gradient, border: \"none\", boxShadow: \"0 8px 20px rgba(79,110,247,0.35)\" },\n children: [\n \"IAM 账号登录 \",\n /* @__PURE__ */ jsx(ArrowRightOutlined, {})\n ]\n }\n ),\n /* @__PURE__ */ jsx(\"div\", { style: { marginTop: 24, textAlign: \"center\", fontSize: 12, color: brand.textSecondary }, children: \"登录即代表同意平台的安全与隐私策略\" })\n ]\n }\n ) })\n ]\n }\n );\n}\nfunction PageContainer({ title, description, extra, children, loading }) {\n return /* @__PURE__ */ jsxs(\"div\", { children: [\n /* @__PURE__ */ jsxs(\"div\", { style: { display: \"flex\", justifyContent: \"space-between\", alignItems: \"flex-start\", marginBottom: 16 }, children: [\n /* @__PURE__ */ jsxs(\"div\", { children: [\n /* @__PURE__ */ jsx(Typography.Title, { level: 4, style: { margin: 0, fontWeight: 700 }, children: title }),\n description && /* @__PURE__ */ jsx(Typography.Text, { type: \"secondary\", style: { fontSize: 13 }, children: description })\n ] }),\n extra && /* @__PURE__ */ jsx(Space, { children: extra })\n ] }),\n /* @__PURE__ */ jsx(\n Card,\n {\n loading,\n styles: {\n body: { padding: 20 }\n },\n style: { borderRadius: 12, border: `1px solid ${tokens.border}` },\n children\n }\n )\n ] });\n}\nconst monospaceStyle = { fontFamily: \"Consolas, Monaco, monospace\" };\nfunction InitialPasswordModal({ password, title, description, onClose }) {\n const handleCopy = async () => {\n try {\n await navigator.clipboard.writeText(password);\n message.success(\"已复制\");\n } catch {\n message.error(\"复制失败,请手动复制\");\n }\n };\n return /* @__PURE__ */ jsx(\n Modal,\n {\n title: title || \"初始密码已生成\",\n open: !!password,\n onCancel: onClose,\n footer: /* @__PURE__ */ jsx(Button, { type: \"primary\", onClick: onClose, children: \"我已保存\" }),\n destroyOnClose: true,\n width: 560,\n children: /* @__PURE__ */ jsx(\n Alert,\n {\n type: \"warning\",\n showIcon: true,\n message: \"请立即保存,关闭后不再显示\",\n description: /* @__PURE__ */ jsxs(Space, { direction: \"vertical\", size: 12, style: { width: \"100%\" }, children: [\n description && /* @__PURE__ */ jsx(\"div\", { style: { color: tokens.textSecondary }, children: description }),\n /* @__PURE__ */ jsx(\n \"div\",\n {\n style: {\n ...monospaceStyle,\n wordBreak: \"break-all\",\n background: tokens.warningBg,\n border: `1px solid ${tokens.warningBorder}`,\n borderRadius: 8,\n padding: \"10px 12px\"\n },\n children: password\n }\n ),\n /* @__PURE__ */ jsx(Button, { size: \"small\", icon: /* @__PURE__ */ jsx(CopyOutlined, {}), onClick: () => void handleCopy(), children: \"复制\" })\n ] })\n }\n )\n }\n );\n}\nfunction NameLink({ value, onClick, title, monospace = false }) {\n const empty = value == null || value === \"\";\n const text = empty ? \"-\" : value;\n const style = {\n display: \"inline-block\",\n fontWeight: 500,\n maxWidth: \"100%\",\n overflow: \"hidden\",\n textOverflow: \"ellipsis\",\n whiteSpace: \"nowrap\",\n verticalAlign: \"bottom\",\n ...monospace ? { fontFamily: \"ui-monospace, SFMono-Regular, Menlo, monospace\", fontSize: 12 } : {}\n };\n if (empty || !onClick) {\n return /* @__PURE__ */ jsx(\"span\", { style, children: text });\n }\n const tooltip = title ?? (typeof value === \"string\" || typeof value === \"number\" ? String(value) : void 0);\n return /* @__PURE__ */ jsx(Tooltip, { title: tooltip, mouseEnterDelay: 0.3, children: /* @__PURE__ */ jsx(Typography.Link, { onClick, style, children: text }) });\n}\nconst ID_COL_WIDTH = 130;\nconst NAME_COL_WIDTH = 180;\nconst CODE_COL_WIDTH = 150;\nconst TAG_COL_WIDTH = 110;\nconst STATUS_COL_WIDTH = 100;\nconst COUNT_COL_WIDTH = 90;\nconst TEXT_COL_WIDTH = 200;\nconst LONG_TEXT_COL_WIDTH = 320;\nconst CELL_PADDING = 32;\nconst ACTION_BUTTON_BUDGET = 56;\nconst ACTION_GAP = 4;\nfunction idColumn({ dataIndex, title = \"ID\", width }) {\n return {\n title,\n dataIndex,\n key: dataIndex,\n width: width ?? ID_COL_WIDTH,\n render: (value) => /* @__PURE__ */ jsx(IDCell, { value })\n };\n}\nfunction textColumn({\n title,\n dataIndex,\n width,\n placeholder,\n monospace\n}) {\n return {\n title,\n dataIndex,\n key: dataIndex,\n width: width ?? TEXT_COL_WIDTH,\n render: (value) => /* @__PURE__ */ jsx(\n EllipsisCell,\n {\n value,\n placeholder,\n monospace\n }\n )\n };\n}\nfunction nameColumn({\n title,\n dataIndex,\n width,\n monospace,\n onClick\n}) {\n return {\n title,\n dataIndex,\n key: dataIndex,\n width: width ?? NAME_COL_WIDTH,\n render: (value, record) => /* @__PURE__ */ jsx(\n NameLink,\n {\n value,\n monospace,\n onClick: onClick ? () => onClick(record) : void 0\n }\n )\n };\n}\nfunction actionColumn({ actions, max = 3, width }) {\n return {\n title: \"操作\",\n key: \"action\",\n fixed: \"right\",\n width: width ?? actionColumnWidth(max),\n render: (_, record) => /* @__PURE__ */ jsx(RowActions, { actions: actions(record), max })\n };\n}\nfunction actionColumnWidth(max) {\n const inline = Math.max(1, max);\n const raw = CELL_PADDING + inline * ACTION_BUTTON_BUDGET + (inline - 1) * ACTION_GAP;\n return Math.ceil(raw / 10) * 10;\n}\nfunction tableScrollX(columns) {\n let total = 0;\n const walk = (list) => {\n var _a;\n for (const column of list) {\n if ((_a = column.children) == null ? void 0 : _a.length) {\n walk(column.children);\n continue;\n }\n total += typeof column.width === \"number\" ? column.width : 0;\n }\n };\n walk(columns);\n return { x: total };\n}\nfunction useRemoteOptions({ fetchOptions, debounceMs = 300, labelCache }) {\n const [options, setOptions] = useState([]);\n const [loading, setLoading] = useState(false);\n const internalLabelsRef = useRef(/* @__PURE__ */ new Map());\n const labels = labelCache ?? internalLabelsRef.current;\n const timerRef = useRef(null);\n const seqRef = useRef(0);\n const search = useCallback(\n async (keyword) => {\n const seq = ++seqRef.current;\n setLoading(true);\n try {\n const list = await fetchOptions(keyword);\n if (seq !== seqRef.current) return;\n for (const item of list) labels.set(item.value, item.label);\n setOptions(list);\n } catch {\n } finally {\n if (seq === seqRef.current) setLoading(false);\n }\n },\n [fetchOptions, labels]\n );\n useEffect(\n () => () => {\n if (timerRef.current) clearTimeout(timerRef.current);\n },\n []\n );\n const handleSearch = useCallback(\n (keyword) => {\n if (timerRef.current) clearTimeout(timerRef.current);\n timerRef.current = setTimeout(() => void search(keyword), debounceMs);\n },\n [search, debounceMs]\n );\n const labelOf = useCallback(\n (v) => {\n var _a;\n return labels.get(v) ?? ((_a = options.find((o) => o.value === v)) == null ? void 0 : _a.label) ?? v;\n },\n [labels, options]\n );\n const withSelected = useCallback(\n (values) => {\n const missing = values.filter((v) => !options.some((o) => o.value === v));\n return missing.length ? [...missing.map((v) => ({ value: v, label: labelOf(v) })), ...options] : options;\n },\n [labelOf, options]\n );\n const remember = useCallback(\n (values) => values.map((v) => {\n const label = labelOf(v);\n labels.set(v, label);\n return { value: v, label };\n }),\n [labelOf, labels]\n );\n return { loading, search, handleSearch, withSelected, remember, labels };\n}\nfunction RemoteSelect({\n value,\n onChange,\n initialLabel,\n placeholder,\n disabled,\n allowClear,\n width,\n style,\n id,\n ...rest\n}) {\n const remote = useRemoteOptions(rest);\n useEffect(() => {\n if (value && initialLabel) remote.labels.set(value, initialLabel);\n }, [value, initialLabel, remote.labels]);\n useEffect(() => {\n if (disabled) return;\n void remote.search(\"\");\n }, [remote.search, disabled]);\n const handleChange = (next) => {\n onChange == null ? void 0 : onChange(next, next ? remote.remember([next])[0] : void 0);\n };\n return /* @__PURE__ */ jsx(\n Select,\n {\n id,\n showSearch: true,\n filterOption: false,\n allowClear,\n placeholder,\n disabled,\n loading: remote.loading,\n style: width ? { width, ...style } : style,\n value,\n onChange: handleChange,\n onSearch: remote.handleSearch,\n options: remote.withSelected(value ? [value] : []),\n notFoundContent: remote.loading ? /* @__PURE__ */ jsx(Spin, { size: \"small\" }) : null\n }\n );\n}\nfunction RemoteMultiSelect({\n value,\n onChange,\n initialLabels,\n placeholder,\n disabled,\n allowClear,\n width,\n style,\n id,\n ...rest\n}) {\n const remote = useRemoteOptions(rest);\n const values = value ?? [];\n useEffect(() => {\n if (!initialLabels) return;\n Object.entries(initialLabels).forEach(([v, label]) => {\n if (v && label) remote.labels.set(v, label);\n });\n }, [initialLabels, remote.labels]);\n useEffect(() => {\n if (disabled) return;\n void remote.search(\"\");\n }, [remote.search, disabled]);\n const handleChange = (next) => {\n const nextValues = next ?? [];\n onChange == null ? void 0 : onChange(nextValues, nextValues.length ? remote.remember(nextValues) : []);\n };\n return /* @__PURE__ */ jsx(\n Select,\n {\n id,\n mode: \"multiple\",\n showSearch: true,\n filterOption: false,\n allowClear,\n placeholder,\n disabled,\n loading: remote.loading,\n style: width ? { width, ...style } : style,\n value: values,\n onChange: handleChange,\n onSearch: remote.handleSearch,\n options: remote.withSelected(values),\n notFoundContent: remote.loading ? /* @__PURE__ */ jsx(Spin, { size: \"small\" }) : null\n }\n );\n}\ndayjs.locale(\"zh-cn\");\nfunction AppShell({ children }) {\n return /* @__PURE__ */ jsxs(\"div\", { style: { fontVariantNumeric: \"tabular-nums\" }, children: [\n /* @__PURE__ */ jsx(\"style\", { children: `\n .ant-select-dropdown .ant-select-tree .ant-select-tree-switcher {\n width: 0;\n overflow: hidden;\n }\n ` }),\n /* @__PURE__ */ jsx(ConfigProvider, { locale: zhCN, theme: themeConfig, children: /* @__PURE__ */ jsx(App, { children }) })\n ] });\n}\nfunction EnableTag({ value }) {\n if (value === \"enable\") {\n return /* @__PURE__ */ jsx(Tag, { color: \"success\", children: \"启用\" });\n }\n if (value === \"disable\") {\n return /* @__PURE__ */ jsx(Tag, { color: \"default\", children: \"停用\" });\n }\n return /* @__PURE__ */ jsx(Tag, { children: value || \"-\" });\n}\nfunction SuspendedTag({ value }) {\n return value === \"suspended\" ? /* @__PURE__ */ jsx(Tag, { color: \"error\", children: \"挂起\" }) : /* @__PURE__ */ jsx(Tag, { color: \"success\", children: \"正常\" });\n}\nfunction VerifiedTag({ value }) {\n return value === \"verified\" ? /* @__PURE__ */ jsx(Tag, { color: \"success\", children: \"已验证\" }) : /* @__PURE__ */ jsx(Tag, { color: \"warning\", children: \"未验证\" });\n}\nconst TYPE_META = {\n platform: { label: \"平台\", color: \"geekblue\" },\n customer: { label: \"客户\", color: \"cyan\" }\n};\nfunction TypeTag({ value }) {\n const meta = TYPE_META[value ?? \"\"];\n return meta ? /* @__PURE__ */ jsx(Tag, { color: meta.color, children: meta.label }) : /* @__PURE__ */ jsx(Tag, { children: value || \"-\" });\n}\nconst SOURCE_META = {\n builtin: { label: \"内置\", color: \"gold\" },\n first_party: { label: \"第一方\", color: \"blue\" },\n third_party: { label: \"第三方\", color: \"orange\" },\n custom: { label: \"自定义\", color: \"blue\" }\n};\nfunction SourceTag({ value }) {\n const meta = SOURCE_META[value ?? \"\"];\n return meta ? /* @__PURE__ */ jsx(Tag, { color: meta.color, children: meta.label }) : /* @__PURE__ */ jsx(Tag, { children: value || \"-\" });\n}\nexport {\n AppShell,\n CODE_COL_WIDTH,\n COUNT_COL_WIDTH,\n EllipsisCell,\n EnableTag,\n IDCell,\n ID_COL_WIDTH,\n InitialPasswordModal,\n LONG_TEXT_COL_WIDTH,\n LoginPage,\n MainLayout,\n NAME_COL_WIDTH,\n NameLink,\n PageContainer,\n ProfileCenter,\n RemoteMultiSelect,\n RemoteSelect,\n RowActions,\n STATUS_COL_WIDTH,\n SourceTag,\n SuspendedTag,\n TAG_COL_WIDTH,\n TEXT_COL_WIDTH,\n TIME_COL_WIDTH,\n TIME_COL_WIDTH_RELATIVE,\n TenantSwitcher,\n TimeCell,\n TypeTag,\n VerifiedTag,\n actionColumn,\n actionColumnWidth,\n brand,\n fmtRelativeTime,\n fmtTime,\n idColumn,\n nameColumn,\n tableScrollX,\n textColumn,\n themeConfig,\n timeColumn,\n toMillis,\n tokens\n};\n//# sourceMappingURL=index.js.map\n"],"names":[],"mappings":"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"}
@@ -0,0 +1,4 @@
1
+ export * from './_types/types/index';
2
+ export * from './_types/api/index';
3
+ export * from './_types/auth/index';
4
+ export * from './_types/ui/index';
package/dist/index.js ADDED
@@ -0,0 +1,109 @@
1
+ import { BizCode } from "./types.js";
2
+ import { c, a, b, d, e, f, g, h, i, j, k, l, m, n, o, p, q, r, s, t, u, v, w, x, y, z, A, B, C, D, E, F, G, H, I, J, K, L, M, N, O, P, Q, R, S, T } from "./index-BQuRl5A6.js";
3
+ import { F as F2, c as c2, d as d2, a as a2, b as b2, e as e2, f as f2, g as g2, o as o2, s as s2, u as u2, h as h2, i as i2 } from "./index-D3uUqZ5c.js";
4
+ import { A as A2, C as C2, a as a3, E as E2, b as b3, I as I2, c as c3, d as d3, L as L2, e as e3, M as M2, N as N2, f as f3, P as P2, g as g3, R as R2, h as h3, i as i3, S as S2, j as j2, k as k2, T as T2, l as l2, m as m2, n as n2, o as o3, p as p2, q as q2, V, r as r2, s as s3, t as t2, u as u3, v as v2, w as w2, x as x2, y as y2, z as z2, B as B2, D as D2, F as F3, G as G2 } from "./index-DnhMUOxg.js";
5
+ export {
6
+ A2 as AppShell,
7
+ BizCode,
8
+ C2 as CODE_COL_WIDTH,
9
+ a3 as COUNT_COL_WIDTH,
10
+ E2 as EllipsisCell,
11
+ b3 as EnableTag,
12
+ F2 as FullPageSpinner,
13
+ I2 as IDCell,
14
+ c3 as ID_COL_WIDTH,
15
+ d3 as InitialPasswordModal,
16
+ L2 as LONG_TEXT_COL_WIDTH,
17
+ e3 as LoginPage,
18
+ M2 as MainLayout,
19
+ N2 as NAME_COL_WIDTH,
20
+ f3 as NameLink,
21
+ P2 as PageContainer,
22
+ g3 as ProfileCenter,
23
+ R2 as RemoteMultiSelect,
24
+ h3 as RemoteSelect,
25
+ i3 as RowActions,
26
+ S2 as STATUS_COL_WIDTH,
27
+ j2 as SourceTag,
28
+ k2 as SuspendedTag,
29
+ T2 as TAG_COL_WIDTH,
30
+ l2 as TEXT_COL_WIDTH,
31
+ m2 as TIME_COL_WIDTH,
32
+ n2 as TIME_COL_WIDTH_RELATIVE,
33
+ o3 as TenantSwitcher,
34
+ p2 as TimeCell,
35
+ q2 as TypeTag,
36
+ V as VerifiedTag,
37
+ r2 as actionColumn,
38
+ s3 as actionColumnWidth,
39
+ t2 as brand,
40
+ c as createApiClient,
41
+ a as createApplication,
42
+ c2 as createAuthProvider,
43
+ b as createDomain,
44
+ d as createMenu,
45
+ e as createOAuthClient,
46
+ f as createOAuthSecret,
47
+ g as createTenant,
48
+ h as createTenantApplication,
49
+ d2 as defaultIssuer,
50
+ a2 as defaultPostLogoutRedirectPath,
51
+ b2 as defaultRedirectPath,
52
+ e2 as defaultScope,
53
+ i as deleteApplication,
54
+ j as deleteDomain,
55
+ k as deleteMenu,
56
+ l as deleteOAuthClient,
57
+ m as deleteOAuthSecret,
58
+ n as deleteTenant,
59
+ o as deleteTenantApplication,
60
+ f2 as fetchRuntimeConfig,
61
+ u3 as fmtRelativeTime,
62
+ v2 as fmtTime,
63
+ p as getApplicationDetail,
64
+ q as getApplicationPageList,
65
+ g2 as getCurrentTenantId,
66
+ r as getDomainDetail,
67
+ s as getDomainPageList,
68
+ t as getMenuTree,
69
+ u as getMyMenuTree,
70
+ v as getMyTenants,
71
+ w as getOAuthClientDetail,
72
+ x as getOAuthClientPageList,
73
+ y as getPersonDetail,
74
+ z as getSessionList,
75
+ A as getTenantApplicationPageList,
76
+ B as getTenantPageList,
77
+ C as getUserinfo,
78
+ w2 as idColumn,
79
+ D as listOAuthSecrets,
80
+ E as logoutAPI,
81
+ F as logoutAllAPI,
82
+ x2 as nameColumn,
83
+ o2 as oidcExtraQueryParams,
84
+ G as request,
85
+ H as resetTenantAdminPassword,
86
+ I as revokeAllSessions,
87
+ J as revokeSession,
88
+ s2 as setCurrentTenantId,
89
+ K as setSessionExpiredHandler,
90
+ L as setUserProvider,
91
+ y2 as tableScrollX,
92
+ z2 as textColumn,
93
+ B2 as themeConfig,
94
+ D2 as timeColumn,
95
+ F3 as toMillis,
96
+ G2 as tokens,
97
+ M as updateApplication,
98
+ N as updateDomain,
99
+ O as updateMenu,
100
+ P as updateOAuthClient,
101
+ Q as updatePassword,
102
+ R as updateTenant,
103
+ S as updateTenantApplication,
104
+ u2 as useAuthGuard,
105
+ h2 as useLogout,
106
+ T as useSSOSessionProbe,
107
+ i2 as useTenantSwitching
108
+ };
109
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;"}
@@ -0,0 +1 @@
1
+ export * from './_types/types/index';
package/dist/types.js ADDED
@@ -0,0 +1,14 @@
1
+ var BizCode = /* @__PURE__ */ ((BizCode2) => {
2
+ BizCode2[BizCode2["Success"] = 0] = "Success";
3
+ BizCode2[BizCode2["Unauthorized"] = 11e4] = "Unauthorized";
4
+ BizCode2[BizCode2["Forbidden"] = 110001] = "Forbidden";
5
+ BizCode2[BizCode2["TokenInvalid"] = 110002] = "TokenInvalid";
6
+ BizCode2[BizCode2["TokenExpired"] = 110003] = "TokenExpired";
7
+ BizCode2[BizCode2["PermissionDenied"] = 110004] = "PermissionDenied";
8
+ BizCode2[BizCode2["ParamInvalid"] = 100104] = "ParamInvalid";
9
+ return BizCode2;
10
+ })(BizCode || {});
11
+ export {
12
+ BizCode
13
+ };
14
+ //# sourceMappingURL=types.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.js","sources":["../../types/dist/index.js"],"sourcesContent":["var BizCode = /* @__PURE__ */ ((BizCode2) => {\n BizCode2[BizCode2[\"Success\"] = 0] = \"Success\";\n BizCode2[BizCode2[\"Unauthorized\"] = 11e4] = \"Unauthorized\";\n BizCode2[BizCode2[\"Forbidden\"] = 110001] = \"Forbidden\";\n BizCode2[BizCode2[\"TokenInvalid\"] = 110002] = \"TokenInvalid\";\n BizCode2[BizCode2[\"TokenExpired\"] = 110003] = \"TokenExpired\";\n BizCode2[BizCode2[\"PermissionDenied\"] = 110004] = \"PermissionDenied\";\n BizCode2[BizCode2[\"ParamInvalid\"] = 100104] = \"ParamInvalid\";\n return BizCode2;\n})(BizCode || {});\nexport {\n BizCode\n};\n//# sourceMappingURL=index.js.map\n"],"names":[],"mappings":"AAAG,IAAC,UAA2B,kBAAC,aAAa;AAC3C,WAAS,SAAS,SAAS,IAAI,CAAC,IAAI;AACpC,WAAS,SAAS,cAAc,IAAI,IAAI,IAAI;AAC5C,WAAS,SAAS,WAAW,IAAI,MAAM,IAAI;AAC3C,WAAS,SAAS,cAAc,IAAI,MAAM,IAAI;AAC9C,WAAS,SAAS,cAAc,IAAI,MAAM,IAAI;AAC9C,WAAS,SAAS,kBAAkB,IAAI,MAAM,IAAI;AAClD,WAAS,SAAS,cAAc,IAAI,MAAM,IAAI;AAC9C,SAAO;AACT,GAAG,WAAW,CAAA,CAAE;"}
package/dist/ui.d.ts ADDED
@@ -0,0 +1 @@
1
+ export * from './_types/ui/index';
package/dist/ui.js ADDED
@@ -0,0 +1,46 @@
1
+ import { A, C, a, E, b, I, c, d, L, e, M, N, f, P, g, R, h, i, S, j, k, T, l, m, n, o, p, q, V, r, s, t, u, v, w, x, y, z, B, D, F, G } from "./index-DnhMUOxg.js";
2
+ export {
3
+ A as AppShell,
4
+ C as CODE_COL_WIDTH,
5
+ a as COUNT_COL_WIDTH,
6
+ E as EllipsisCell,
7
+ b as EnableTag,
8
+ I as IDCell,
9
+ c as ID_COL_WIDTH,
10
+ d as InitialPasswordModal,
11
+ L as LONG_TEXT_COL_WIDTH,
12
+ e as LoginPage,
13
+ M as MainLayout,
14
+ N as NAME_COL_WIDTH,
15
+ f as NameLink,
16
+ P as PageContainer,
17
+ g as ProfileCenter,
18
+ R as RemoteMultiSelect,
19
+ h as RemoteSelect,
20
+ i as RowActions,
21
+ S as STATUS_COL_WIDTH,
22
+ j as SourceTag,
23
+ k as SuspendedTag,
24
+ T as TAG_COL_WIDTH,
25
+ l as TEXT_COL_WIDTH,
26
+ m as TIME_COL_WIDTH,
27
+ n as TIME_COL_WIDTH_RELATIVE,
28
+ o as TenantSwitcher,
29
+ p as TimeCell,
30
+ q as TypeTag,
31
+ V as VerifiedTag,
32
+ r as actionColumn,
33
+ s as actionColumnWidth,
34
+ t as brand,
35
+ u as fmtRelativeTime,
36
+ v as fmtTime,
37
+ w as idColumn,
38
+ x as nameColumn,
39
+ y as tableScrollX,
40
+ z as textColumn,
41
+ B as themeConfig,
42
+ D as timeColumn,
43
+ F as toMillis,
44
+ G as tokens
45
+ };
46
+ //# sourceMappingURL=ui.js.map
package/dist/ui.js.map ADDED
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ui.js","sources":[],"sourcesContent":[],"names":[],"mappings":";"}
package/package.json CHANGED
@@ -1,6 +1,83 @@
1
1
  {
2
2
  "name": "@morehao/ark-iam-react",
3
- "version": "0.0.0-stage",
4
- "stub": true,
5
- "description": "Temporary package placeholder for staged publishing"
3
+ "version": "1.0.0",
4
+ "type": "module",
5
+ "description": "GoArk IAM 前端门面包:聚合 @ark-iam/{types,api,auth,ui} 的单一入口(含 ESM 子路径导出,可按需引入)",
6
+ "license": "MIT",
7
+ "main": "./dist/index.js",
8
+ "module": "./dist/index.js",
9
+ "types": "./dist/index.d.ts",
10
+ "exports": {
11
+ ".": {
12
+ "types": "./dist/index.d.ts",
13
+ "import": "./dist/index.js"
14
+ },
15
+ "./types": {
16
+ "types": "./dist/types.d.ts",
17
+ "import": "./dist/types.js"
18
+ },
19
+ "./api": {
20
+ "types": "./dist/api.d.ts",
21
+ "import": "./dist/api.js"
22
+ },
23
+ "./auth": {
24
+ "types": "./dist/auth.d.ts",
25
+ "import": "./dist/auth.js"
26
+ },
27
+ "./ui": {
28
+ "types": "./dist/ui.d.ts",
29
+ "import": "./dist/ui.js"
30
+ }
31
+ },
32
+ "files": [
33
+ "dist"
34
+ ],
35
+ "sideEffects": false,
36
+ "publishConfig": {
37
+ "access": "public"
38
+ },
39
+ "peerDependencies": {
40
+ "@ant-design/icons": "^5.4.0",
41
+ "antd": "^5.22.0",
42
+ "react": "^18.3.1",
43
+ "react-dom": "^18.3.1",
44
+ "react-router-dom": "^7.15.0"
45
+ },
46
+ "peerDependenciesMeta": {
47
+ "antd": {
48
+ "optional": true
49
+ },
50
+ "@ant-design/icons": {
51
+ "optional": true
52
+ },
53
+ "react-router-dom": {
54
+ "optional": true
55
+ }
56
+ },
57
+ "dependencies": {
58
+ "axios": "^1.7.0",
59
+ "oidc-client-ts": "^3.5.0",
60
+ "react-oidc-context": "^3.3.1"
61
+ },
62
+ "devDependencies": {
63
+ "@ant-design/icons": "^5.4.0",
64
+ "@types/react": "^18.3.0",
65
+ "@types/react-dom": "^18.3.1",
66
+ "antd": "^5.22.0",
67
+ "react": "^18.3.1",
68
+ "react-dom": "^18.3.1",
69
+ "react-router-dom": "^7.15.0",
70
+ "typescript": "^5.6.0",
71
+ "vite": "^5.4.10",
72
+ "@ark-iam/api": "1.0.0",
73
+ "@ark-iam/types": "1.0.0",
74
+ "@ark-iam/auth": "1.0.0",
75
+ "@ark-iam/tsconfig": "1.0.0",
76
+ "@ark-iam/ui": "1.0.0"
77
+ },
78
+ "scripts": {
79
+ "build": "vite build --config vite.config.lib.ts && tsc -p tsconfig.build.json && node scripts/bundle-dts.mjs",
80
+ "pack:dist": "pnpm build && pnpm pack",
81
+ "clean": "rm -rf dist"
82
+ }
6
83
  }