@nextclaw/ui 0.15.1 → 0.15.3

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 (192) hide show
  1. package/CHANGELOG.md +51 -0
  2. package/dist/assets/{api-b1R9VdeH.js → api-iNBpppzj.js} +3 -3
  3. package/dist/assets/{appearance-settings-page-D2O9pch9.js → appearance-settings-page-DMffQFR3.js} +1 -1
  4. package/dist/assets/{book-open-B77lQ2Tg.js → book-open-C3mJGwiy.js} +1 -1
  5. package/dist/assets/channels-list-page-CCtp0BRS.js +8 -0
  6. package/dist/assets/chat-page-H5a0dWvO.js +1 -0
  7. package/dist/assets/config-split-page-CrOJgB-Y.js +1 -0
  8. package/dist/assets/{confirm-dialog-C-NXSioX.js → confirm-dialog-Chv50USy.js} +2 -2
  9. package/dist/assets/{desktop-update-config-usHpXugP.js → desktop-update-config-KzTuXRf_.js} +1 -1
  10. package/dist/assets/{dist-jdGmbb6w.js → dist-BunzmC4B.js} +1 -1
  11. package/dist/assets/{dist-YtoqU-AT.js → dist-ChmGwvtK.js} +1 -1
  12. package/dist/assets/doc-browser-DNRL4Zvd.js +1 -0
  13. package/dist/assets/doc-browser-Dg0pmkOg.js +1 -0
  14. package/dist/assets/doc-browser-context-BHY-0FSD.js +1 -0
  15. package/dist/assets/{es2015-bNpL2LKy.js → es2015-DQZ5JWwK.js} +1 -1
  16. package/dist/assets/{external-link-BM6fk8q-.js → external-link-CU0kzzIP.js} +1 -1
  17. package/dist/assets/form-actions-BvCp_0lS.js +1 -0
  18. package/dist/assets/{i18n-provider-CntWolRA.js → i18n-provider-Cu8XyZb_.js} +1 -1
  19. package/dist/assets/index-CzfBdvK1.css +1 -0
  20. package/dist/assets/index-DGqHne1Q.js +104 -0
  21. package/dist/assets/loader-circle-CDSFuzmk.js +1 -0
  22. package/dist/assets/mcp-marketplace-page-BeEQK0DL.js +9 -0
  23. package/dist/assets/mcp-marketplace-page-D6idOTLp.js +1 -0
  24. package/dist/assets/model-config-page-bNNo-XyG.js +1 -0
  25. package/dist/assets/plus-D4DsdLN-.js +1 -0
  26. package/dist/assets/{provider-scoped-model-input-Cm_a4GHf.js → provider-scoped-model-input-IlgQCsoT.js} +1 -1
  27. package/dist/assets/providers-config-page-wLo6CAJw.js +1 -0
  28. package/dist/assets/{react-BN8uzPnp.js → react-BPIsQIlO.js} +1 -1
  29. package/dist/assets/{refresh-cw-BpVcFPmJ.js → refresh-cw-CILd1vAP.js} +1 -1
  30. package/dist/assets/remote-uKEYp7AR.js +1 -0
  31. package/dist/assets/rotate-cw-wPFPg1kH.js +1 -0
  32. package/dist/assets/runtime-config-page-DDn1sP4G.js +1 -0
  33. package/dist/assets/{save-BpFW5fpk.js → save-ByJqcPTP.js} +1 -1
  34. package/dist/assets/{search-D0uO7enf.js → search-DVIV6pfD.js} +1 -1
  35. package/dist/assets/search-config-page-B-Cf4iiB.js +1 -0
  36. package/dist/assets/secrets-config-page-DPKsY8Iw.js +3 -0
  37. package/dist/assets/security-config-e9SSBlKr.js +1 -0
  38. package/dist/assets/{select-Bh-CrA4p.js → select-BdgczSNw.js} +1 -1
  39. package/dist/assets/{setting-row-BJfCHRcb.js → setting-row-BkTVUTKx.js} +1 -1
  40. package/dist/assets/{settings-2-Blzi1vr6.js → settings-2-CH5shGg_.js} +1 -1
  41. package/dist/assets/{side-dock-ZdaSrQVB.js → side-dock-BsBvcJ9i.js} +2 -2
  42. package/dist/assets/{skeleton-BLlEzebZ.js → skeleton-DeX1FKw7.js} +1 -1
  43. package/dist/assets/switch-Cv8Ekb3x.js +1 -0
  44. package/dist/assets/{tag-chip-CzGihiQx.js → tag-chip-RB9uKcoC.js} +1 -1
  45. package/dist/assets/{tooltip-CdcrBjrC.js → tooltip-oQlEN-l6.js} +1 -1
  46. package/dist/assets/{use-config-CVPgsBmU.js → use-config-l3W7y8Qz.js} +1 -1
  47. package/dist/assets/{use-confirm-dialog-CSeBk9SF.js → use-confirm-dialog-BAxaVOJI.js} +1 -1
  48. package/dist/assets/x-BBMffEN0.js +1 -0
  49. package/dist/index.html +38 -30
  50. package/index.html +12 -4
  51. package/package.json +9 -9
  52. package/src/app/components/layout/__tests__/sidebar.layout.test.tsx +29 -1
  53. package/src/app/components/layout/sidebar-items.tsx +46 -7
  54. package/src/app/components/layout/sidebar-rail.styles.ts +2 -2
  55. package/src/app/components/layout/sidebar.tsx +84 -62
  56. package/src/app/configs/app-navigation.config.ts +49 -0
  57. package/src/app/styles/design-system.css +99 -4
  58. package/src/features/channels/components/config/channel-form.tsx +14 -11
  59. package/src/features/chat/components/conversation/__tests__/chat-conversation-header-section.test.tsx +40 -0
  60. package/src/features/chat/components/conversation/chat-conversation-header-section.tsx +3 -1
  61. package/src/features/chat/components/conversation/chat-conversation-panel.tsx +1 -1
  62. package/src/features/chat/components/layout/__tests__/chat-sidebar-toolbar.test.tsx +48 -0
  63. package/src/features/chat/components/layout/__tests__/chat-sidebar-utility-menu.test.tsx +55 -0
  64. package/src/features/chat/components/layout/chat-sidebar-desktop-layout.tsx +0 -3
  65. package/src/features/chat/components/layout/chat-sidebar-toolbar.tsx +3 -4
  66. package/src/features/chat/components/layout/chat-sidebar-utility-menu.tsx +30 -31
  67. package/src/features/chat/components/layout/chat-sidebar.tsx +21 -7
  68. package/src/features/chat/features/conversation/components/session-conversation-input.tsx +2 -1
  69. package/src/features/chat/features/conversation/components/session-queued-input-rows.tsx +1 -1
  70. package/src/features/chat/features/message/components/__tests__/chat-inline-panel-app-card.test.tsx +22 -1
  71. package/src/features/chat/features/message/components/__tests__/chat-message-list.container.test.tsx +62 -1
  72. package/src/features/chat/features/message/components/chat-inline-panel-app-card.tsx +10 -5
  73. package/src/features/chat/features/message/components/chat-message-list.container.tsx +47 -1
  74. package/src/features/chat/features/message/utils/__tests__/chat-message-process-summary.utils.test.ts +11 -1
  75. package/src/features/chat/features/message/utils/__tests__/chat-message-texts.utils.test.ts +23 -0
  76. package/src/features/chat/features/message/utils/chat-inline-panel-app-card.utils.ts +0 -11
  77. package/src/features/chat/features/message/utils/chat-message-process-summary.utils.ts +5 -0
  78. package/src/features/chat/features/message/utils/chat-message-texts.utils.ts +138 -0
  79. package/src/features/chat/features/session/components/__tests__/chat-sidebar-project-groups.test.tsx +116 -0
  80. package/src/features/chat/features/session/components/chat-sidebar-project-groups.tsx +108 -46
  81. package/src/features/chat/features/session/components/chat-sidebar-session-entry.tsx +6 -0
  82. package/src/features/chat/features/session/components/chat-sidebar-session-item.tsx +48 -24
  83. package/src/features/chat/features/session/components/chat-sidebar-session-list.tsx +0 -3
  84. package/src/features/chat/features/session/components/session-header/chat-session-header-actions.tsx +0 -4
  85. package/src/features/chat/features/session/components/session-header/chat-session-title-switcher.tsx +2 -2
  86. package/src/features/chat/features/session/utils/chat-sidebar-session-groups.utils.ts +25 -3
  87. package/src/features/chat/features/welcome/components/chat-welcome-capability-grid.tsx +9 -4
  88. package/src/features/chat/features/welcome/components/chat-welcome-project-picker.tsx +1 -1
  89. package/src/features/chat/features/welcome/components/chat-welcome-session-type-picker.tsx +1 -1
  90. package/src/features/chat/features/welcome/components/chat-welcome.tsx +0 -5
  91. package/src/features/chat/features/workspace/components/__tests__/chat-session-workspace-file-preview.test.tsx +226 -56
  92. package/src/features/chat/features/workspace/components/__tests__/chat-session-workspace-panel-content.test.tsx +1 -0
  93. package/src/features/chat/features/workspace/components/__tests__/chat-session-workspace-panel.test.tsx +144 -0
  94. package/src/features/chat/features/workspace/components/chat-session-workspace-directory-browser.tsx +99 -0
  95. package/src/features/chat/features/workspace/components/chat-session-workspace-file-breadcrumb-browser.tsx +2 -2
  96. package/src/features/chat/features/workspace/components/chat-session-workspace-file-breadcrumbs.tsx +4 -2
  97. package/src/features/chat/features/workspace/components/chat-session-workspace-file-preview.tsx +232 -21
  98. package/src/features/chat/features/workspace/components/chat-session-workspace-panel-content.tsx +3 -0
  99. package/src/features/chat/features/workspace/components/chat-session-workspace-panel-nav.tsx +44 -1
  100. package/src/features/chat/features/workspace/components/chat-session-workspace-panel.tsx +45 -3
  101. package/src/features/chat/features/workspace/utils/chat-workspace-file-tab-persistence.utils.ts +4 -0
  102. package/src/features/chat/managers/__tests__/chat-session-list.manager.test.ts +33 -2
  103. package/src/features/chat/managers/chat-session-list.manager.ts +32 -0
  104. package/src/features/chat/managers/chat-thread.manager.ts +2 -0
  105. package/src/features/chat/stores/chat-session-list.store.ts +28 -5
  106. package/src/features/chat/stores/chat-thread.store.ts +3 -0
  107. package/src/features/cron/components/cron-config.tsx +63 -80
  108. package/src/features/marketplace/components/detail-doc/__tests__/marketplace-detail-doc.test.tsx +44 -6
  109. package/src/features/marketplace/components/marketplace-detail-doc.tsx +8 -4
  110. package/src/features/marketplace/components/marketplace-page-parts.tsx +1 -1
  111. package/src/features/marketplace/components/mcp/mcp-marketplace-page.tsx +5 -12
  112. package/src/features/marketplace/hooks/use-marketplace-detail-doc-entry.ts +84 -0
  113. package/src/features/panel-apps/components/panel-app-list-item.tsx +6 -6
  114. package/src/features/panel-apps/components/panel-apps-list.tsx +2 -2
  115. package/src/features/panel-apps/index.ts +1 -0
  116. package/src/features/panel-apps/utils/panel-app-doc-browser.utils.tsx +2 -10
  117. package/src/features/panel-apps/utils/panel-app-iframe.utils.ts +6 -0
  118. package/src/features/pwa/managers/__tests__/pwa-shell-theme.manager.test.ts +11 -3
  119. package/src/features/pwa/managers/pwa-shell-theme.manager.ts +3 -1
  120. package/src/features/right-panel-resources/components/right-panel-resource-home-page.tsx +1 -1
  121. package/src/features/service-apps/components/service-apps-panel.tsx +145 -35
  122. package/src/features/settings/components/config/provider-auth-section.tsx +1 -1
  123. package/src/features/settings/components/config/provider-form.tsx +11 -8
  124. package/src/features/settings/components/config/provider-models-section.tsx +7 -7
  125. package/src/features/settings/components/config/provider-pill-selector.tsx +1 -1
  126. package/src/features/settings/components/config/secrets-config-form.tsx +5 -4
  127. package/src/features/settings/pages/model-config-page.tsx +26 -25
  128. package/src/features/settings/pages/providers-config-page.tsx +10 -13
  129. package/src/features/settings/pages/search-config-page.tsx +8 -5
  130. package/src/features/side-dock/components/side-dock.tsx +3 -3
  131. package/src/features/system-status/components/config/runtime-config-editor.tsx +5 -4
  132. package/src/index.css +257 -13
  133. package/src/shared/components/actions/action-link.tsx +1 -1
  134. package/src/shared/components/config-split-page.tsx +6 -6
  135. package/src/shared/components/doc-browser/__tests__/doc-browser-url.utils.test.ts +73 -0
  136. package/src/shared/components/doc-browser/__tests__/doc-browser.test.tsx +48 -0
  137. package/src/shared/components/doc-browser/doc-browser-context.tsx +4 -0
  138. package/src/shared/components/doc-browser/doc-browser-panel-parts.tsx +6 -2
  139. package/src/shared/components/doc-browser/doc-browser-renderer.types.ts +2 -1
  140. package/src/shared/components/doc-browser/doc-browser-tab-strip.tsx +10 -10
  141. package/src/shared/components/doc-browser/doc-browser.tsx +6 -4
  142. package/src/shared/components/doc-browser/utils/doc-browser-url.utils.ts +62 -4
  143. package/src/shared/components/resizable-right-panel/__tests__/resizable-right-panel.test.tsx +18 -0
  144. package/src/shared/components/resizable-right-panel/resizable-right-panel.tsx +28 -3
  145. package/src/shared/components/ui/actions/__tests__/icon-action-button.test.tsx +36 -0
  146. package/src/shared/components/ui/actions/form-actions.tsx +25 -0
  147. package/src/shared/components/ui/actions/icon-action-button.tsx +25 -2
  148. package/src/shared/components/ui/button.tsx +1 -1
  149. package/src/shared/components/ui/card.tsx +12 -4
  150. package/src/shared/components/ui/dialog.tsx +1 -1
  151. package/src/shared/components/ui/input.tsx +1 -1
  152. package/src/shared/components/ui/select.tsx +1 -1
  153. package/src/shared/components/ui/switch.tsx +1 -1
  154. package/src/shared/components/ui/tab-strip/compact-tab-strip.tsx +2 -1
  155. package/src/shared/components/ui/tabs.tsx +1 -1
  156. package/src/shared/components/ui/textarea.tsx +1 -1
  157. package/src/shared/hooks/use-server-path-browse.ts +26 -4
  158. package/src/shared/hooks/use-server-path-read.ts +11 -1
  159. package/src/shared/lib/api/utils/server-path.utils.ts +1 -0
  160. package/src/shared/lib/i18n/locales/en-US/chat.json +99 -0
  161. package/src/shared/lib/i18n/locales/en-US/core.json +3 -0
  162. package/src/shared/lib/i18n/locales/en-US/doc-browser.json +5 -0
  163. package/src/shared/lib/i18n/locales/zh-CN/chat.json +99 -0
  164. package/src/shared/lib/i18n/locales/zh-CN/core.json +3 -0
  165. package/src/shared/lib/i18n/locales/zh-CN/doc-browser.json +5 -0
  166. package/src/shared/lib/session-project/workspace-file-breadcrumb.utils.ts +9 -5
  167. package/src/shared/lib/theme/index.test.ts +21 -0
  168. package/src/shared/lib/theme/index.ts +6 -4
  169. package/src/vite-env.d.ts +2 -0
  170. package/dist/assets/channels-list-page-DcsIQc6A.js +0 -8
  171. package/dist/assets/chat-page-CZ7WxPir.js +0 -1
  172. package/dist/assets/config-split-page-BWQ6_Raq.js +0 -1
  173. package/dist/assets/doc-browser-B_Tf9n70.js +0 -1
  174. package/dist/assets/doc-browser-BdZPFOVa.js +0 -1
  175. package/dist/assets/doc-browser-context-DwokemUn.js +0 -1
  176. package/dist/assets/index-BIcEw90u.js +0 -104
  177. package/dist/assets/index-BiNSTKTU.css +0 -1
  178. package/dist/assets/loader-circle-MBgNSVIH.js +0 -1
  179. package/dist/assets/mcp-marketplace-page-CLmUstLN.js +0 -9
  180. package/dist/assets/mcp-marketplace-page-rZkmWPMy.js +0 -1
  181. package/dist/assets/model-config-page-Di0ySJD2.js +0 -1
  182. package/dist/assets/plus-vDqW5Kxp.js +0 -1
  183. package/dist/assets/providers-config-page-BAf2W0MV.js +0 -1
  184. package/dist/assets/remote-CLQ0IBM8.js +0 -1
  185. package/dist/assets/rotate-cw-CvNBv7_w.js +0 -1
  186. package/dist/assets/runtime-config-page-CflvvoDc.js +0 -1
  187. package/dist/assets/search-config-page-D0klFUXd.js +0 -1
  188. package/dist/assets/secrets-config-page-dVZ631Wp.js +0 -3
  189. package/dist/assets/security-config-C5gnlkuj.js +0 -1
  190. package/dist/assets/switch-CFLJFNSd.js +0 -1
  191. package/dist/assets/x-BF2KQ--V.js +0 -1
  192. /package/dist/assets/{config-hints-fGnUjDe9.js → config-hints-C_iP1zl_.js} +0 -0
@@ -1,3 +0,0 @@
1
- import{h as e,p as t,r as n,v as r}from"./react-BN8uzPnp.js";import{It as i,Mt as a,Nt as o}from"./api-b1R9VdeH.js";import{a as s,c,i as l,l as u,n as d,o as f,r as p,s as m,t as h}from"./switch-CFLJFNSd.js";import{a as g,i as _,n as v,r as y,t as b}from"./select-Bh-CrA4p.js";import{t as x}from"./plus-vDqW5Kxp.js";import{t as S}from"./save-BpFW5fpk.js";import{rt as C}from"./index-BIcEw90u.js";import{t as w,v as T}from"./use-config-CVPgsBmU.js";var E=r(e(),1),D=[`env`,`file`,`exec`];function O(e=``){return{alias:e,source:`env`,prefix:``,path:``,command:``,argsText:``,cwd:``,timeoutMs:5e3}}function k(){return{path:``,source:`env`,provider:``,id:``}}function A(e,t){return t.source===`env`?{...O(e),source:`env`,prefix:t.prefix??``}:t.source===`file`?{...O(e),source:`file`,path:t.path}:{...O(e),source:`exec`,command:t.command,argsText:(t.args??[]).join(`
2
- `),cwd:t.cwd??``,timeoutMs:t.timeoutMs??5e3}}function j(e){return e.source===`env`?{source:`env`,...e.prefix.trim()?{prefix:e.prefix.trim()}:{}}:e.source===`file`?{source:`file`,path:e.path.trim(),format:`json`}:{source:`exec`,command:e.command.trim(),args:e.argsText.split(`
3
- `).map(e=>e.trim()).filter(Boolean),...e.cwd.trim()?{cwd:e.cwd.trim()}:{},timeoutMs:Math.max(1,Math.trunc(e.timeoutMs||5e3))}}function M(e){return e?{enabled:!!e.enabled,defaultEnv:e.defaults.env??``,defaultFile:e.defaults.file??``,defaultExec:e.defaults.exec??``,providers:Object.entries(e.providers).map(([e,t])=>A(e,t)),refs:Object.entries(e.refs).map(([e,t])=>({path:e,source:t.source,provider:t.provider??``,id:t.id}))}:{enabled:!0,defaultEnv:``,defaultFile:``,defaultExec:``,providers:[],refs:[]}}function N(e){let t={};for(let[r,i]of e.providers.entries()){let e=i.alias.trim();if(!e)throw Error(`${n(`providerAlias`)} #${r+1} ${n(`isRequired`)}`);if(t[e])throw Error(`${n(`providerAlias`)}: ${e} (${n(`duplicate`)})`);if(i.source===`file`&&!i.path.trim())throw Error(`${n(`secretFilePath`)} #${r+1} ${n(`isRequired`)}`);if(i.source===`exec`&&!i.command.trim())throw Error(`${n(`secretExecCommand`)} #${r+1} ${n(`isRequired`)}`);t[e]=j(i)}let r={};for(let[i,a]of e.refs.entries()){let e=a.path.trim(),o=a.id.trim();if(!e)throw Error(`${n(`secretConfigPath`)} #${i+1} ${n(`isRequired`)}`);if(!o)throw Error(`${n(`secretId`)} #${i+1} ${n(`isRequired`)}`);let s=a.provider.trim();if(s&&!t[s])throw Error(`${n(`secretProviderAlias`)}: ${s} ${n(`notFound`)}`);r[e]={source:a.source,...s?{provider:s}:{},id:o}}return{enabled:e.enabled,defaultEnv:e.defaultEnv.trim(),defaultFile:e.defaultFile.trim(),defaultExec:e.defaultExec.trim(),providers:Object.entries(t).map(([e,t])=>A(e,t)),refs:Object.entries(r).map(([e,t])=>({path:e,source:t.source,provider:t.provider??``,id:t.id}))}}function P(e){return{enabled:e.enabled,defaults:{env:e.defaultEnv||null,file:e.defaultFile||null,exec:e.defaultExec||null},providers:Object.fromEntries(e.providers.map(e=>[e.alias.trim(),j(e)]).filter(([e])=>e)),refs:Object.fromEntries(e.refs.map(e=>[e.path.trim(),{source:e.source,...e.provider.trim()?{provider:e.provider.trim()}:{},id:e.id.trim()}]).filter(([e,t])=>e&&t.id))}}var F=t();function I(e){let{defaultEnv:t,defaultFile:r,defaultExec:i,providerAliases:o,onChange:c}=e;return(0,F.jsxs)(d,{children:[(0,F.jsxs)(s,{children:[(0,F.jsx)(f,{children:n(`secrets`)}),(0,F.jsx)(l,{children:n(`secretsEnabledHelp`)})]}),(0,F.jsx)(p,{className:`space-y-4`,children:[{label:n(`defaultEnvProvider`),value:t,key:`defaultEnv`},{label:n(`defaultFileProvider`),value:r,key:`defaultFile`},{label:n(`defaultExecProvider`),value:i,key:`defaultExec`}].map(e=>(0,F.jsxs)(`div`,{className:`space-y-2`,children:[(0,F.jsx)(a,{children:e.label}),(0,F.jsxs)(b,{value:e.value||`__none__`,onValueChange:t=>c(e.key,t===`__none__`?``:t),children:[(0,F.jsx)(_,{children:(0,F.jsx)(g,{placeholder:n(`noneOption`)})}),(0,F.jsxs)(v,{children:[(0,F.jsx)(y,{value:`__none__`,children:n(`noneOption`)}),o.map(e=>(0,F.jsx)(y,{value:e,children:e},e))]})]})]},e.key))})]})}function L(e){let{providers:t,onUpdate:r,onRemove:i,onAdd:a}=e;return(0,F.jsxs)(d,{children:[(0,F.jsxs)(s,{children:[(0,F.jsx)(f,{children:n(`secretProvidersTitle`)}),(0,F.jsx)(l,{children:n(`secretProvidersDescription`)})]}),(0,F.jsxs)(p,{className:`space-y-3`,children:[t.map((e,t)=>(0,F.jsxs)(`div`,{className:`space-y-3 rounded-xl border border-gray-200 p-3`,children:[(0,F.jsxs)(`div`,{className:`grid grid-cols-1 gap-3 md:grid-cols-3`,children:[(0,F.jsx)(o,{value:e.alias,onChange:e=>r(t,{alias:e.target.value}),placeholder:n(`providerAlias`)}),(0,F.jsxs)(b,{value:e.source,onValueChange:e=>r(t,{source:e}),children:[(0,F.jsx)(_,{children:(0,F.jsx)(g,{})}),(0,F.jsx)(v,{children:D.map(e=>(0,F.jsx)(y,{value:e,children:e},e))})]}),(0,F.jsxs)(u,{type:`button`,variant:`outline`,onClick:()=>i(t),children:[(0,F.jsx)(C,{className:`mr-2 h-4 w-4`}),n(`removeProvider`)]})]}),e.source===`env`?(0,F.jsx)(o,{value:e.prefix,onChange:e=>r(t,{prefix:e.target.value}),placeholder:n(`envPrefix`)}):null,e.source===`file`?(0,F.jsx)(o,{value:e.path,onChange:e=>r(t,{path:e.target.value}),placeholder:n(`secretFilePath`)}):null,e.source===`exec`?(0,F.jsxs)(`div`,{className:`space-y-2`,children:[(0,F.jsx)(o,{value:e.command,onChange:e=>r(t,{command:e.target.value}),placeholder:n(`secretExecCommand`)}),(0,F.jsx)(`textarea`,{className:`min-h-[84px] w-full rounded-lg border border-gray-200 bg-white px-3 py-2 text-xs font-mono`,value:e.argsText,onChange:e=>r(t,{argsText:e.target.value}),placeholder:n(`secretExecArgs`)}),(0,F.jsxs)(`div`,{className:`grid grid-cols-1 gap-2 md:grid-cols-2`,children:[(0,F.jsx)(o,{value:e.cwd,onChange:e=>r(t,{cwd:e.target.value}),placeholder:n(`secretExecCwd`)}),(0,F.jsx)(o,{type:`number`,min:1,value:e.timeoutMs,onChange:e=>r(t,{timeoutMs:Number.parseInt(e.target.value,10)||5e3}),placeholder:n(`secretExecTimeoutMs`)})]})]}):null]},`provider-${t}`)),(0,F.jsxs)(u,{type:`button`,variant:`outline`,onClick:a,children:[(0,F.jsx)(x,{className:`mr-2 h-4 w-4`}),n(`addSecretProvider`)]})]})]})}function R(e){let{refs:t,providerAliases:r,onUpdate:i,onRemove:a,onAdd:c}=e;return(0,F.jsxs)(d,{children:[(0,F.jsxs)(s,{children:[(0,F.jsx)(f,{children:n(`secretRefsTitle`)}),(0,F.jsx)(l,{children:n(`secretRefsDescription`)})]}),(0,F.jsxs)(p,{className:`space-y-3`,children:[t.map((e,t)=>(0,F.jsx)(`div`,{className:`space-y-3 rounded-xl border border-gray-200 p-3`,children:(0,F.jsxs)(`div`,{className:`grid grid-cols-1 gap-3 md:grid-cols-2`,children:[(0,F.jsx)(o,{value:e.path,onChange:e=>i(t,{path:e.target.value}),placeholder:n(`secretConfigPath`)}),(0,F.jsx)(o,{value:e.id,onChange:e=>i(t,{id:e.target.value}),placeholder:n(`secretId`)}),(0,F.jsxs)(b,{value:e.source,onValueChange:e=>i(t,{source:e}),children:[(0,F.jsx)(_,{children:(0,F.jsx)(g,{})}),(0,F.jsx)(v,{children:D.map(e=>(0,F.jsx)(y,{value:e,children:e},e))})]}),(0,F.jsxs)(`div`,{className:`grid grid-cols-[1fr_auto] gap-2`,children:[(0,F.jsxs)(b,{value:e.provider||`__none__`,onValueChange:e=>i(t,{provider:e===`__none__`?``:e}),children:[(0,F.jsx)(_,{children:(0,F.jsx)(g,{placeholder:n(`secretProviderAlias`)})}),(0,F.jsxs)(v,{children:[(0,F.jsx)(y,{value:`__none__`,children:n(`noneOption`)}),r.map(e=>(0,F.jsx)(y,{value:e,children:e},e))]})]}),(0,F.jsx)(u,{type:`button`,variant:`outline`,onClick:()=>a(t),children:(0,F.jsx)(C,{className:`h-4 w-4`})})]})]})},`ref-${t}`)),(0,F.jsxs)(u,{type:`button`,variant:`outline`,onClick:c,children:[(0,F.jsx)(x,{className:`mr-2 h-4 w-4`}),n(`addSecretRef`)]})]})]})}function z(e){let{initialState:t,isPending:r,onSubmit:a}=e,[o,g]=(0,E.useState)(t),_=(0,E.useMemo)(()=>{let e=o.providers.map(e=>e.alias.trim()).filter(Boolean);return Array.from(new Set(e))},[o.providers]);return(0,F.jsxs)(c,{className:`space-y-6`,children:[(0,F.jsx)(m,{title:n(`secretsPageTitle`),description:n(`secretsPageDescription`)}),(0,F.jsxs)(d,{children:[(0,F.jsxs)(s,{children:[(0,F.jsx)(f,{children:n(`secrets`)}),(0,F.jsx)(l,{children:n(`secretsEnabledHelp`)})]}),(0,F.jsxs)(p,{className:`space-y-4`,children:[(0,F.jsxs)(`div`,{className:`flex items-center justify-between rounded-xl border border-gray-200 p-3`,children:[(0,F.jsxs)(`div`,{children:[(0,F.jsx)(`p`,{className:`text-sm font-medium text-gray-800`,children:n(`enabled`)}),(0,F.jsx)(`p`,{className:`text-xs text-gray-500`,children:n(`secretsEnabledHelp`)})]}),(0,F.jsx)(h,{checked:o.enabled,onCheckedChange:e=>g(t=>({...t,enabled:e}))})]}),(0,F.jsx)(I,{defaultEnv:o.defaultEnv,defaultFile:o.defaultFile,defaultExec:o.defaultExec,providerAliases:_,onChange:(e,t)=>g(n=>({...n,[e]:t}))})]})]}),(0,F.jsx)(L,{providers:o.providers,onUpdate:(e,t)=>{g(n=>({...n,providers:n.providers.map((n,r)=>r===e?{...n,...t}:n)}))},onRemove:e=>g(t=>({...t,providers:t.providers.filter((t,n)=>n!==e)})),onAdd:()=>g(e=>({...e,providers:[...e.providers,O()]}))}),(0,F.jsx)(R,{refs:o.refs,providerAliases:_,onUpdate:(e,t)=>{g(n=>({...n,refs:n.refs.map((n,r)=>r===e?{...n,...t}:n)}))},onRemove:e=>g(t=>({...t,refs:t.refs.filter((t,n)=>n!==e)})),onAdd:()=>g(e=>({...e,refs:[...e.refs,k()]}))}),(0,F.jsx)(`div`,{className:`flex justify-end`,children:(0,F.jsxs)(u,{type:`button`,onClick:()=>{try{a(N(o))}catch(e){i.error(e instanceof Error?e.message:String(e))}},disabled:r,children:[(0,F.jsx)(S,{className:`mr-2 h-4 w-4`}),n(r?`saving`:`save`)]})})]})}function B(){let{data:e,isLoading:t}=w(),r=T();return t?(0,F.jsx)(`div`,{className:`p-8 text-gray-400`,children:n(`loading`)}):(0,F.jsx)(z,{initialState:M(e?.secrets),isPending:r.isPending,onSubmit:e=>r.mutate({data:P(e)})},JSON.stringify(e?.secrets??null))}export{B as SecretsConfigPage};
@@ -1 +0,0 @@
1
- import{mt as e}from"./api-b1R9VdeH.js";export{e as SecurityConfig};
@@ -1 +0,0 @@
1
- import{f as e,h as t,p as n,u as r,v as i}from"./react-BN8uzPnp.js";var a=e=>typeof e==`boolean`?`${e}`:e===0?`0`:e,o=e,s=(e,t)=>n=>{if(t?.variants==null)return o(e,n?.class,n?.className);let{variants:r,defaultVariants:i}=t,s=Object.keys(r).map(e=>{let t=n?.[e],o=i?.[e];if(t===null)return null;let s=a(t)||a(o);return r[e][s]}),c=n&&Object.entries(n).reduce((e,t)=>{let[n,r]=t;return r===void 0||(e[n]=r),e},{});return o(e,s,t?.compoundVariants?.reduce((e,t)=>{let{class:n,className:r,...a}=t;return Object.entries(a).every(e=>{let[t,n]=e;return Array.isArray(n)?n.includes({...i,...c}[t]):{...i,...c}[t]===n})?[...e,n,r]:e},[]),n?.class,n?.className)},c=i(t(),1),l=n(),u=s(`inline-flex items-center justify-center whitespace-nowrap rounded-full text-sm font-medium ring-offset-background transition-colors duration-fast focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2 disabled:pointer-events-none disabled:opacity-50`,{variants:{variant:{default:`bg-primary text-primary-foreground hover:bg-primary-600 active:bg-primary-700 shadow-sm`,destructive:`bg-destructive text-destructive-foreground hover:bg-destructive/90`,outline:`border border-border bg-card text-muted-foreground hover:bg-accent hover:text-accent-foreground`,secondary:`bg-muted text-foreground hover:bg-accent hover:text-accent-foreground`,ghost:`text-muted-foreground hover:bg-accent hover:text-accent-foreground`,link:`text-primary underline-offset-4 hover:underline`,primary:`bg-primary text-primary-foreground hover:bg-primary-600 active:bg-primary-700 shadow-sm`,subtle:`bg-muted text-muted-foreground hover:bg-accent hover:text-accent-foreground`,"primary-outline":`border border-primary/30 text-primary hover:bg-primary hover:text-primary-foreground`},size:{default:`h-9 px-4 py-2`,sm:`h-8 px-3 text-xs`,lg:`h-11 px-5 text-[14px]`,xl:`h-12 px-6 text-[15px]`,icon:`h-9 w-9`}},defaultVariants:{variant:`default`,size:`default`}}),d=c.forwardRef(({className:e,variant:t,size:n,...i},a)=>(0,l.jsx)(`button`,{className:r(u({variant:t,size:n,className:e})),ref:a,...i}));d.displayName=`Button`;function f({children:e,fullHeight:t=!1,className:n}){return(0,l.jsx)(`div`,{className:r(`animate-fade-in`,t?`h-[calc(100vh-80px)] w-full flex flex-col`:`pb-16`,n),children:e})}function p({title:e,description:t,actions:n,className:i}){return(0,l.jsxs)(`div`,{className:r(`flex items-center justify-between mb-6 shrink-0`,i),children:[(0,l.jsxs)(`div`,{children:[(0,l.jsx)(`h2`,{className:`text-xl font-semibold text-foreground`,children:e}),t&&(0,l.jsx)(`p`,{className:`text-sm text-muted-foreground mt-1`,children:t})]}),n&&(0,l.jsx)(`div`,{className:`flex items-center gap-2 shrink-0`,children:n})]})}var m=c.forwardRef(({className:e,hover:t=!0,...n},i)=>(0,l.jsx)(`div`,{ref:i,className:r(`rounded-2xl border border-border bg-card text-card-foreground shadow-card transition-all duration-base`,t&&`hover:border-primary/25 hover:shadow-card-hover`,e),...n}));m.displayName=`Card`;var h=c.forwardRef(({className:e,...t},n)=>(0,l.jsx)(`div`,{ref:n,className:r(`flex flex-col space-y-1.5 p-6`,e),...t}));h.displayName=`CardHeader`;var g=c.forwardRef(({className:e,...t},n)=>(0,l.jsx)(`h3`,{ref:n,className:r(`text-[15px] font-semibold leading-tight tracking-tight text-foreground`,e),...t}));g.displayName=`CardTitle`;var _=c.forwardRef(({className:e,...t},n)=>(0,l.jsx)(`p`,{ref:n,className:r(`text-[13px] text-muted-foreground leading-relaxed`,e),...t}));_.displayName=`CardDescription`;var v=c.forwardRef(({className:e,...t},n)=>(0,l.jsx)(`div`,{ref:n,className:r(`p-6 pt-0`,e),...t}));v.displayName=`CardContent`;var y=c.forwardRef(({className:e,...t},n)=>(0,l.jsx)(`div`,{ref:n,className:r(`flex items-center justify-between p-6 pt-0`,e),...t}));y.displayName=`CardFooter`;var b=c.forwardRef(({className:e,checked:t=!1,onCheckedChange:n,thumbClassName:i,...a},o)=>(0,l.jsx)(`button`,{type:`button`,role:`switch`,"aria-checked":t,"data-state":t?`checked`:`unchecked`,ref:o,className:r(`switch-track peer inline-flex h-[22px] w-10 shrink-0 cursor-pointer items-center rounded-full border-2 transition-colors duration-fast focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-primary focus-visible:ring-offset-2 focus-visible:ring-offset-background disabled:cursor-not-allowed disabled:opacity-50`,t?`border-primary/70 bg-primary`:`border-border/60 bg-muted hover:bg-accent`,e),onClick:()=>n?.(!t),...a,children:(0,l.jsx)(`span`,{"data-state":t?`checked`:`unchecked`,className:r(`switch-thumb pointer-events-none block h-5 w-5 rounded-full bg-card shadow-md ring-1 ring-border/50 transition-transform duration-fast`,t?`translate-x-5`:`translate-x-0`,i)})}));b.displayName=`Switch`;export{h as a,f as c,_ as i,d as l,m as n,g as o,v as r,p as s,b as t,s as u};
@@ -1 +0,0 @@
1
- import{c as e}from"./dist-jdGmbb6w.js";var t=e(`X`,[[`path`,{d:`M18 6 6 18`,key:`1bl5f8`}],[`path`,{d:`m6 6 12 12`,key:`d8bk6v`}]]);export{t};