@abtnode/blocklet-services 1.16.53-beta-20251011-054719-4ed2f6b7 → 1.16.53-beta-20251013-005429-ca3b05de

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 (127) hide show
  1. package/api/index.js +8 -17
  2. package/api/util/federated.js +10 -5
  3. package/dist/assets/{access-control-abOzA88J.js → access-control-7gWIJZpX.js} +1 -1
  4. package/dist/assets/{add-component-core-DyP5DXP3.js → add-component-core-C43eXvX3.js} +8 -8
  5. package/dist/assets/{add-resource-D1RE_D63.js → add-resource-DT9p1SVt.js} +1 -1
  6. package/dist/assets/{addon-BQpY5mGN.js → addon-iuYOVe1l.js} +1 -1
  7. package/dist/assets/{advanced-BAAkbQ7v.js → advanced-CbrPzmPw.js} +1 -1
  8. package/dist/assets/{aigne-BIxsGdE6.js → aigne-SLmG9KvJ.js} +1 -1
  9. package/dist/assets/{appearance-DLL_c3H7.js → appearance-Ck3ODt4R.js} +1 -1
  10. package/dist/assets/{arrow-down.svg-B0yKIpV_.js → arrow-down.svg-ByD_YKms.js} +1 -1
  11. package/dist/assets/{audit-logs-BjqQg10C.js → audit-logs-RI_HNLsi.js} +1 -1
  12. package/dist/assets/{authorize-zdSPMvPb.js → authorize-C9O917EK.js} +1 -1
  13. package/dist/assets/{bind-account-MeFLW0-t.js → bind-account-DomcrIoC.js} +1 -1
  14. package/dist/assets/{branding-CZ3msR8C.js → branding-CuyMYlwl.js} +1 -1
  15. package/dist/assets/{branding-DdfX0yE_.js → branding-DtTT8LEA.js} +1 -1
  16. package/dist/assets/{branding-BGqwD_8z.js → branding-F6Ls_sBm.js} +1 -1
  17. package/dist/assets/{bundle-avatar-BnsIGAGk.js → bundle-avatar-BZh2UMH9.js} +1 -1
  18. package/dist/assets/{complete-BKOQngoV.js → complete-BuJ7B50g.js} +1 -1
  19. package/dist/assets/{component-ZLIptWjb.js → component-D1cVQ2BQ.js} +2 -2
  20. package/dist/assets/{config-CZV6cEQO.js → config-BlJVgRLh.js} +3 -3
  21. package/dist/assets/{config-DETFzZFy.js → config-CoBMDXIe.js} +1 -1
  22. package/dist/assets/{config-DuFudWCR.js → config-D8oltJzP.js} +1 -1
  23. package/dist/assets/{config-navigation-Ckddb7Ew.js → config-navigation-BmFKLKYy.js} +2 -2
  24. package/dist/assets/{config-space-BMQcYhX4.js → config-space-CIl0FJy6.js} +1 -1
  25. package/dist/assets/{confirm-BWJyxR1P.js → confirm-nzje1i_c.js} +1 -1
  26. package/dist/assets/{connect-8ijsDqc0.js → connect-DNK092nY.js} +1 -1
  27. package/dist/assets/{connect-ByF8W-k5.js → connect-DyVkSvx0.js} +1 -1
  28. package/dist/assets/{connect-to-DsrMYUbG.js → connect-to-BB7Snd6q.js} +1 -1
  29. package/dist/assets/{dashboard-dvSAjP1V.js → dashboard-DA1_SonP.js} +2 -2
  30. package/dist/assets/{delete-confirm-C5O8wEbn.js → delete-confirm-BoyKK_sh.js} +1 -1
  31. package/dist/assets/{domain-UcW2NDgQ.js → domain-CxT85hKF.js} +1 -1
  32. package/dist/assets/{domain-action-card-C4LewNdA.js → domain-action-card-k3lim42n.js} +1 -1
  33. package/dist/assets/{domains-a52EIu7f.js → domains-Dls2DqVC.js} +1 -1
  34. package/dist/assets/{email-DeJqm_cT.js → email-DtG_yIEc.js} +1 -1
  35. package/dist/assets/engine-hb4NRjVe.js +1 -0
  36. package/dist/assets/{exchange-passport-Bk3KCI7e.js → exchange-passport-5PcjWpqT.js} +1 -1
  37. package/dist/assets/{form-BzuOEtWl.js → form-DgDq3Zmy.js} +1 -1
  38. package/dist/assets/{fuel-CqEiaVyB.js → fuel-BywHsiUk.js} +1 -1
  39. package/dist/assets/{gen-access-key-DPvESsAt.js → gen-access-key-CDwRDR7-.js} +1 -1
  40. package/dist/assets/{gen-simple-access-key-BDFpf0Fe.js → gen-simple-access-key-DGsX2Fkj.js} +1 -1
  41. package/dist/assets/{get-safe-url-VPE7525h.js → get-safe-url-D-OGuIko.js} +1 -1
  42. package/dist/assets/{home-D88mAORC.js → home-Cylh8bGb.js} +1 -1
  43. package/dist/assets/{iframe-C132otWW.js → iframe-BPsu-Uyg.js} +1 -1
  44. package/dist/assets/{index-DBMcmgkV.js → index--aKykvS5.js} +1 -1
  45. package/dist/assets/{index-BO1dYT6j.js → index-4905JE5e.js} +1 -1
  46. package/dist/assets/{index-LVfZZmHk.js → index-8b6B9BvP.js} +1 -1
  47. package/dist/assets/{index-BhwFkAf9.js → index-B2RPurN4.js} +1 -1
  48. package/dist/assets/{index-DqZvBosz.js → index-BEDCOb-P.js} +1 -1
  49. package/dist/assets/{index-BS4gI6Je.js → index-BMvhWz0X.js} +1 -1
  50. package/dist/assets/{index-BY2B2juN.js → index-BcnVhON2.js} +1 -1
  51. package/dist/assets/{index-G6mLFBwo.js → index-BnQ-_yld.js} +3 -3
  52. package/dist/assets/{index-CouqM1KS.js → index-C-qSsYu-.js} +1 -1
  53. package/dist/assets/{index-CLKzAwdz.js → index-CAQ09npc.js} +1 -1
  54. package/dist/assets/{index-CoDgpGOM.js → index-CDZZTyLs.js} +2 -2
  55. package/dist/assets/{index-DU1RbZz3.js → index-CVvmswkh.js} +1 -1
  56. package/dist/assets/{index-4iRJnRDb.js → index-CXsAtHLa.js} +1 -1
  57. package/dist/assets/{index-Dk4snkhP.js → index-CfenaAVg.js} +1 -1
  58. package/dist/assets/{index-CfnfoDga.js → index-Cx7Xa7nl.js} +1 -1
  59. package/dist/assets/{index-4N6JSZ-1.js → index-D0uQb3TR.js} +1 -1
  60. package/dist/assets/{index-BHZw9zYL.js → index-D84o3DbN.js} +1 -1
  61. package/dist/assets/{index-CSpvJyY6.js → index-DM1_TaRl.js} +1 -1
  62. package/dist/assets/{index-2yXoHCF5.js → index-DccCgoC4.js} +1 -1
  63. package/dist/assets/{index-CDK4fL-O.js → index-Dkx4Mp12.js} +4 -4
  64. package/dist/assets/{index-CocTzKAu.js → index-DwSKcE0X.js} +1 -1
  65. package/dist/assets/{index-BuM1x7gd.js → index-TVXfiYCu.js} +1 -1
  66. package/dist/assets/index-hl-qhRoV.js +124 -0
  67. package/dist/assets/{index-Dnczsrey.js → index-kYu0y26a.js} +1 -1
  68. package/dist/assets/{index-1FCrRa8S.js → index-spmYO3Ab.js} +1 -1
  69. package/dist/assets/{index-lPn5f6-V.js → index-v2QpDA9k.js} +1 -1
  70. package/dist/assets/{invitation-Cb4EkBcb.js → invitation-C5kJotVc.js} +1 -1
  71. package/dist/assets/{invitations-D3Zrof2P.js → invitations-BkQFdqNe.js} +1 -1
  72. package/dist/assets/{invite-BR4XYB-m.js → invite-Bi9qMn-u.js} +1 -1
  73. package/dist/assets/{isURL-C1DcW1a5.js → isURL-GpP7YPNs.js} +1 -1
  74. package/dist/assets/{issue-passport-BdoYSf2e.js → issue-passport-CHdu1O5B.js} +1 -1
  75. package/dist/assets/{item-CkI92KM4.js → item-CQIw46yu.js} +1 -1
  76. package/dist/assets/{landing-page-B5oo2gYB.js → landing-page-CjXwLn6s.js} +1 -1
  77. package/dist/assets/{layout-BZEqr9pw.js → layout-3MwmBHGM.js} +1 -1
  78. package/dist/assets/{list-CDnwzHEF.js → list-6KE7wBaX.js} +1 -1
  79. package/dist/assets/{list-IzlvL0Cm.js → list-D_RZEh7_.js} +1 -1
  80. package/dist/assets/{localization-BicvVG1z.js → localization-BvU49oVa.js} +1 -1
  81. package/dist/assets/{log-BLFD38SA.js → log-BKfIwEBs.js} +1 -1
  82. package/dist/assets/{login-tgh6A96Z.js → login-Br-iz4HM.js} +1 -1
  83. package/dist/assets/{login-oauth-callback-DCxgtqJh.js → login-oauth-callback-CMnHoqWF.js} +1 -1
  84. package/dist/assets/{logo-uploader-CeiVmA8S.js → logo-uploader-DPSSz4_-.js} +1 -1
  85. package/dist/assets/{lost-passport--U8zmxgu.js → lost-passport-DePdm4wz.js} +1 -1
  86. package/dist/assets/{open-window-M9ef-LkI.js → open-window-Br_pb9ZW.js} +1 -1
  87. package/dist/assets/{over-due-invoice-payment-W_gVc8Qj.js → over-due-invoice-payment-uxF9-1cS.js} +1 -1
  88. package/dist/assets/{overview-DZA0nOyD.js → overview-D8Gh5IS7.js} +1 -1
  89. package/dist/assets/{passport-Cd-yq0CU.js → passport-B-GT6j4L.js} +1 -1
  90. package/dist/assets/{passport-item-BEacxvYM.js → passport-item-YF9RfQH3.js} +1 -1
  91. package/dist/assets/{permission-DNqMBi19.js → permission-uKfC5D9f.js} +1 -1
  92. package/dist/assets/{preferences-6Rdph3hk.js → preferences-D3ILj2f_.js} +1 -1
  93. package/dist/assets/{profile-embed-ChFmka39.js → profile-embed-BFD-Tozn.js} +1 -1
  94. package/dist/assets/{publish-resource-BtxG5C-8.js → publish-resource-CV4t0PFh.js} +1 -1
  95. package/dist/assets/{runtime-ChFuhKtK.js → runtime-jHV-CQxJ.js} +1 -1
  96. package/dist/assets/sdk-CByZ4_g5.js +1 -0
  97. package/dist/assets/{security-PpRNxUG9.js → security-YOGcIKde.js} +1 -1
  98. package/dist/assets/{session-DqPgru1C.js → session-DsIBYEWF.js} +1 -1
  99. package/dist/assets/{setup-oD1wO9rk.js → setup-TVwmAqcY.js} +1 -1
  100. package/dist/assets/{spaces-DGH_8-cq.js → spaces-C0dI3K7C.js} +1 -1
  101. package/dist/assets/{start-C5yo46Q5.js → start-D9z9VSK_.js} +1 -1
  102. package/dist/assets/{starting-progress-CG1Jhf-6.js → starting-progress-C1bqyLSx.js} +1 -1
  103. package/dist/assets/{status-aDx49LDx.js → status-DLtYYu_o.js} +1 -1
  104. package/dist/assets/{step-actions-DMXYHHE_.js → step-actions-C6BvFfMg.js} +1 -1
  105. package/dist/assets/{studio-DWci_EEj.js → studio-CazjgR33.js} +1 -1
  106. package/dist/assets/{team-DNwgDnjc.js → team-geqUb8FM.js} +1 -1
  107. package/dist/assets/{traffic-Bixs5_Th.js → traffic-DzzcWvVK.js} +1 -1
  108. package/dist/assets/{transfer-Cz15cjFv.js → transfer-CTqNDZDy.js} +1 -1
  109. package/dist/assets/{unsubscribe-CkZxyB3U.js → unsubscribe-D-R1qemO.js} +1 -1
  110. package/dist/assets/{use-app-logo-Bbh3GZji.js → use-app-logo-DCgwdb4C.js} +1 -1
  111. package/dist/assets/{user-center-DkbCI7_Z.js → user-center-1Ikjxl4_.js} +2 -2
  112. package/dist/assets/{user-follower-BiV6IZnA.js → user-follower-B4ZDD-Mm.js} +1 -1
  113. package/dist/assets/{user-sessions-WZG9FkqG.js → user-sessions-DOAxWAOa.js} +1 -1
  114. package/dist/assets/{util-BilORIYw.js → util-DKVr8C5h.js} +1 -1
  115. package/dist/assets/{util-CT-nPa5g.js → util-FgS2GkyL.js} +1 -1
  116. package/dist/assets/{wait-connect-Be6pglA3.js → wait-connect-DgVeMAoQ.js} +1 -1
  117. package/dist/assets/{wizard-B56tgdNq.js → wizard-Du2TbNOA.js} +1 -1
  118. package/dist/assets/{wizard-components-4u9bZcdI.js → wizard-components-BrC7AMh4.js} +1 -1
  119. package/dist/assets/{wrap-locale-CIO-ciR5.js → wrap-locale-vk5eIzsH.js} +1 -1
  120. package/dist/assets/{zh-1ARDBzTp.js → zh-CPf0Aw2x.js} +1 -1
  121. package/dist/assets/{zh-C_CaWCk3.js → zh-CecJnvFy.js} +1 -1
  122. package/dist/index.html +1 -1
  123. package/dist/service-worker.js +1 -1
  124. package/package.json +23 -23
  125. package/dist/assets/engine-BOS99Pm4.js +0 -1
  126. package/dist/assets/index-D_TfbqtN.js +0 -124
  127. package/dist/assets/sdk-C7wG8QyH.js +0 -1
package/api/index.js CHANGED
@@ -337,23 +337,13 @@ module.exports = function createServer(node, serverOptions = {}) {
337
337
  async function wrapHelmet({ req, res, securityConfig, blocklet, info }, next) {
338
338
  let config = securityConfig?.responseHeaderPolicy?.securityHeader || {};
339
339
  config = cleanConfigOverride(config);
340
- const referer = req.get('referer');
341
340
  // NOTICE: 获取当前站点所有可信的域名
342
- const trustedDomains = await federatedUtil.getTrustedDomains({ node, req, blocklet });
343
- // 为了避免 header 过大,这里仅保留 referer 的域名
344
- const filteredTrustedDomains = trustedDomains.filter((x) => {
345
- if (referer) {
346
- try {
347
- const refererUrl = new URL(referer);
348
- return refererUrl.hostname === x;
349
- } catch (err) {
350
- // FIXME: @LiuShuang 这里处错误信息不重要,先打印先忽略
351
- // logger.error('Failed to parse referer', { referer, err });
352
- }
353
- }
354
- return false;
355
- });
356
- config = await patchResponseHeader(config, { node, blocklet, trustedDomains: filteredTrustedDomains });
341
+ const trustedDomains = await federatedUtil.getTrustedDomains({ node, req, blocklet, minimal: true });
342
+ // NOTICE: 这里需要使用全量的可信域名
343
+ // 1. 用户直接打开指定网址 referer 会是空,无法应用匹配规则
344
+ // 2. 用户从其他网站(非当前 blocklet)跳过来,referer 会是跳转前的网址,无法应用匹配规则
345
+ // 综上,必须使用全量的可信域名,来确保统一登录可用
346
+ config = await patchResponseHeader(config, { node, blocklet, trustedDomains });
357
347
 
358
348
  // TODO: @zhanghan apply these to user defined rules
359
349
  if (
@@ -467,12 +457,13 @@ module.exports = function createServer(node, serverOptions = {}) {
467
457
  'https://*.youtu.be',
468
458
  'https://*.vimeo.com',
469
459
  ...whitelist.official,
460
+ ...trustedDomains.filter(Boolean).map((x) => `https://${x}`),
470
461
  ].filter(Boolean),
471
462
  frameAncestors: [
472
463
  "'self'",
473
464
  ...whitelist.spaces,
474
465
  ...whitelist.official,
475
- ...filteredTrustedDomains.filter(Boolean).map((x) => `https://${x}`),
466
+ ...trustedDomains.filter(Boolean).map((x) => `https://${x}`),
476
467
  ].filter(Boolean),
477
468
  manifestSrc: ["'self'", ASSET_CDN_HOST],
478
469
  },
@@ -114,7 +114,7 @@ function syncFederatedUser(blocklet, node, user, sourceAppPid) {
114
114
  }
115
115
  }
116
116
 
117
- async function getTrustedDomains({ node, req, blocklet }) {
117
+ async function getTrustedDomains({ node, req, blocklet, minimal = false }) {
118
118
  if (!blocklet) {
119
119
  return req.hostname ? [req.hostname] : [];
120
120
  }
@@ -127,9 +127,12 @@ async function getTrustedDomains({ node, req, blocklet }) {
127
127
  },
128
128
  sites: [],
129
129
  });
130
- const nodeInfo = await req.getNodeInfo();
131
- const domainAliases = await node.getBlockletDomainAliases({ blocklet, nodeInfo });
132
- const domainList = domainAliases.map((item) => item.value);
130
+ const domainList = [];
131
+ if (!minimal) {
132
+ const nodeInfo = await req.getNodeInfo();
133
+ const domainAliases = await node.getBlockletDomainAliases({ blocklet, nodeInfo });
134
+ domainList.push(...domainAliases.map((item) => item.value));
135
+ }
133
136
  federated.sites
134
137
  // 只展示状态是 approved 的站点为可信域名
135
138
  .filter((x) => x.status === 'approved' || isMaster(x))
@@ -142,7 +145,9 @@ async function getTrustedDomains({ node, req, blocklet }) {
142
145
  } catch {
143
146
  logger.error('Failed to get domain from appUrl', { appUrl: cur.appUrl });
144
147
  }
145
- domainList.push(...(cur?.aliasDomain || []));
148
+ if (!minimal) {
149
+ domainList.push(...(cur?.aliasDomain || []));
150
+ }
146
151
  });
147
152
  const result = [...new Set(domainList)];
148
153
  return result;
@@ -1,4 +1,4 @@
1
- import{D as E,j as e,ak as l,y as h,bq as A,b6 as g,br as L,at as N,W as y}from"./vendor-mui-core-DRxbhqaK.js";import{r as m}from"./vendor-react-Dvs43sk9.js";import{T as I,H as j}from"./vendor-ux-B9VfuZTg.js";import{A as b}from"./config-DuFudWCR.js";import{a as O}from"./page-header-DvSb4Cmz.js";import{l as v,e as R,c as o,f as T}from"./index-CDK4fL-O.js";import{S as Y}from"./layout-BZEqr9pw.js";import{S as D}from"./step-actions-DMXYHHE_.js";import{S as P}from"./button-BmGMF4AE.js";import"./vendor-utils-CUDP56Ff.js";import"./vendor-hooks-BlA8TRnZ.js";import"./lottie-web-4koyQiv_.js";import"./vendor-arcblock-DeeG8u0h.js";import"./content-layout-B9tc9LCL.js";import"./use-mobile-D6YQgajG.js";function W({onNext:a=()=>{}}){const C=E(),{t:n,locale:p}=I(),[i,c]=m.useState(!1),[S,d]=m.useState(""),{blocklet:r}=v();m.useEffect(()=>{const t=R.findServiceFromMeta(r.meta,o.NODE_SERVICES.AUTH);d(t?.config?.whoCanAccess||o.WHO_CAN_ACCESS.ALL)},[r]);const f=async t=>{let s=o.ACCESS_POLICY_PUBLIC;t===o.WHO_CAN_ACCESS.ALL?s=o.ACCESS_POLICY_PUBLIC:t===o.WHO_CAN_ACCESS.INVITED?s=o.ACCESS_POLICY_INVITED_ONLY:t===o.WHO_CAN_ACCESS.OWNER?s=o.ACCESS_POLICY_OWNER_ONLY:t===o.WHO_CAN_ACCESS.ADMIN&&(s=o.ACCESS_POLICY_ADMIN_ONLY);try{c(!0),await T.updateBlockletSecurityRule({input:{did:r.meta.did,data:{id:o.SECURITY_RULE_DEFAULT_ID,accessPolicyId:s}}}),c(!1)}catch(_){c(!1),j.error(_.message)}},x=async t=>{i||(d(t.target.value),await f(t.target.value))},u={marginRight:4,fontSize:18,verticalAlign:"text-bottom",color:C.palette.text.secondary};return e.jsxs(k,{children:[e.jsx(l,{className:"header",children:e.jsx(O,{title:n("blocklet.config.access.title"),subTitle:n("blocklet.config.access.description")})}),e.jsx(l,{className:"form-container",children:e.jsx(h,{component:"fieldset",children:e.jsx(A,{name:"inherit",value:S,onChange:x,children:b.map(t=>e.jsxs(l,{sx:{mb:2,"&:last-child":{mb:0}},children:[e.jsx(g,{value:t.value,control:e.jsx(L,{size:"small",color:"primary"}),label:e.jsxs("span",{style:{display:"flex",alignItems:"center",position:"relative"},children:[e.jsx(t.icon,{style:u}),e.jsx("span",{style:{marginTop:2},children:t.title[p]})]})}),e.jsx(l,{className:"tip",children:t.description[p]})]},t.value))})})}),e.jsx(D,{mt:8,disabled:i,blocklet:r,onStartNow:()=>a("complete"),children:e.jsx(P,{loading:i,variant:"contained",disabled:i,onClick:()=>a(),children:n("setup.continue")})})]})}W.propTypes={onNext:y.func};const k=N(Y)`
1
+ import{D as E,j as e,ak as l,y as h,bq as A,b6 as g,br as L,at as N,W as y}from"./vendor-mui-core-DRxbhqaK.js";import{r as m}from"./vendor-react-Dvs43sk9.js";import{T as I,H as j}from"./vendor-ux-B9VfuZTg.js";import{A as b}from"./config-D8oltJzP.js";import{a as O}from"./page-header-DvSb4Cmz.js";import{l as v,e as R,c as o,f as T}from"./index-Dkx4Mp12.js";import{S as Y}from"./layout-3MwmBHGM.js";import{S as D}from"./step-actions-C6BvFfMg.js";import{S as P}from"./button-BmGMF4AE.js";import"./vendor-utils-CUDP56Ff.js";import"./vendor-hooks-BlA8TRnZ.js";import"./lottie-web-4koyQiv_.js";import"./vendor-arcblock-DeeG8u0h.js";import"./content-layout-B9tc9LCL.js";import"./use-mobile-D6YQgajG.js";function W({onNext:a=()=>{}}){const C=E(),{t:n,locale:p}=I(),[i,c]=m.useState(!1),[S,d]=m.useState(""),{blocklet:r}=v();m.useEffect(()=>{const t=R.findServiceFromMeta(r.meta,o.NODE_SERVICES.AUTH);d(t?.config?.whoCanAccess||o.WHO_CAN_ACCESS.ALL)},[r]);const f=async t=>{let s=o.ACCESS_POLICY_PUBLIC;t===o.WHO_CAN_ACCESS.ALL?s=o.ACCESS_POLICY_PUBLIC:t===o.WHO_CAN_ACCESS.INVITED?s=o.ACCESS_POLICY_INVITED_ONLY:t===o.WHO_CAN_ACCESS.OWNER?s=o.ACCESS_POLICY_OWNER_ONLY:t===o.WHO_CAN_ACCESS.ADMIN&&(s=o.ACCESS_POLICY_ADMIN_ONLY);try{c(!0),await T.updateBlockletSecurityRule({input:{did:r.meta.did,data:{id:o.SECURITY_RULE_DEFAULT_ID,accessPolicyId:s}}}),c(!1)}catch(_){c(!1),j.error(_.message)}},x=async t=>{i||(d(t.target.value),await f(t.target.value))},u={marginRight:4,fontSize:18,verticalAlign:"text-bottom",color:C.palette.text.secondary};return e.jsxs(k,{children:[e.jsx(l,{className:"header",children:e.jsx(O,{title:n("blocklet.config.access.title"),subTitle:n("blocklet.config.access.description")})}),e.jsx(l,{className:"form-container",children:e.jsx(h,{component:"fieldset",children:e.jsx(A,{name:"inherit",value:S,onChange:x,children:b.map(t=>e.jsxs(l,{sx:{mb:2,"&:last-child":{mb:0}},children:[e.jsx(g,{value:t.value,control:e.jsx(L,{size:"small",color:"primary"}),label:e.jsxs("span",{style:{display:"flex",alignItems:"center",position:"relative"},children:[e.jsx(t.icon,{style:u}),e.jsx("span",{style:{marginTop:2},children:t.title[p]})]})}),e.jsx(l,{className:"tip",children:t.description[p]})]},t.value))})})}),e.jsx(D,{mt:8,disabled:i,blocklet:r,onStartNow:()=>a("complete"),children:e.jsx(P,{loading:i,variant:"contained",disabled:i,onClick:()=>a(),children:n("setup.continue")})})]})}W.propTypes={onNext:y.func};const k=N(Y)`
2
2
  height: 100%;
3
3
  overflow-y: auto;
4
4
  .header {