@cloudhal/cli 0.3.9 → 0.3.11

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (174) hide show
  1. package/dist/assets/starters/blog/README.md +1 -1
  2. package/dist/assets/starters/blog/package.json +4 -4
  3. package/dist/assets/starters/blog/src/components/EntryList.astro +1 -1
  4. package/dist/assets/starters/blog/src/pages/[...path].astro +6 -2
  5. package/dist/assets/starters/blog/src/theme.ts +3 -2
  6. package/dist/assets/studio/assets/{AccountPage-C_F6GEbp.js → AccountPage-DhdHmvOg.js} +2 -2
  7. package/dist/assets/studio/assets/{ActivityPage-CAKmV0_b.js → ActivityPage-CjbJHI95.js} +2 -2
  8. package/dist/assets/studio/assets/{AgentModes-D8HMrK7G.js → AgentModes-QhxdiMYV.js} +2 -2
  9. package/dist/assets/studio/assets/AgentsPage-B-czVWlA.js +2 -0
  10. package/dist/assets/studio/assets/AnalyticsPage-CjGEPEPx.js +3 -0
  11. package/dist/assets/studio/assets/{ApprovalDialog-Dv9mtEvX.js → ApprovalDialog-DHKo0y6u.js} +2 -2
  12. package/dist/assets/studio/assets/{ApprovalsPage-BaCTOLgB.js → ApprovalsPage-DpH3gVFr.js} +3 -3
  13. package/dist/assets/studio/assets/ArticleEditorPage-B6i-ohJH.js +2 -0
  14. package/dist/assets/studio/assets/ArticlesPage-CL-4O3zB.js +2 -0
  15. package/dist/assets/studio/assets/{AssetPage-CQa3FSgH.js → AssetPage-C95V1y8t.js} +2 -2
  16. package/dist/assets/studio/assets/{Audit-BsehRESJ.js → Audit-Qsn-EQ3C.js} +2 -2
  17. package/dist/assets/studio/assets/{AuditBadges-Bd8EnwON.js → AuditBadges-CPDfmk_z.js} +2 -2
  18. package/dist/assets/studio/assets/{AuthLayout-BNLNRRmt.js → AuthLayout-wpvclpda.js} +2 -2
  19. package/dist/assets/studio/assets/{AutomationsPage-C1rjUwWk.js → AutomationsPage-PQAJefmU.js} +2 -2
  20. package/dist/assets/studio/assets/{BlockSection-dqMQjKxw.js → BlockSection-Dz_7O4BN.js} +2 -2
  21. package/dist/assets/studio/assets/{BodyChanges-DOaqosb8.js → BodyChanges-2lB47SO5.js} +2 -2
  22. package/dist/assets/studio/assets/{BuildPage-DEOfRzA9.js → BuildPage-CySzzTQW.js} +2 -2
  23. package/dist/assets/studio/assets/{CommandMenu-D9MNc-Wo.js → CommandMenu-CB2kq5oc.js} +2 -2
  24. package/dist/assets/studio/assets/{CommentThreadControls-DpKsd1i6.js → CommentThreadControls-CVB-n4D_.js} +2 -2
  25. package/dist/assets/studio/assets/CommentThreadPage-DZHFTxT4.js +2 -0
  26. package/dist/assets/studio/assets/{CommenterPage-DyUS-J5W.js → CommenterPage-7Sd7_lXK.js} +2 -2
  27. package/dist/assets/studio/assets/{Comments-BRP_6oQ6.js → Comments-BXWLWhKk.js} +2 -2
  28. package/dist/assets/studio/assets/{CommentsPage-C4uR0zDd.js → CommentsPage-BX1NccsN.js} +2 -2
  29. package/dist/assets/studio/assets/{ConfirmDialog-DTOOI7kj.js → ConfirmDialog-DCuw5jgs.js} +2 -2
  30. package/dist/assets/studio/assets/{Crumbs-BVqhFD_U.js → Crumbs-CJ6UlbPv.js} +2 -2
  31. package/dist/assets/studio/assets/{EditorLayout-GefNJMG2.js → EditorLayout-FlmsPOxF.js} +2 -2
  32. package/dist/assets/studio/assets/{EditorPreview-BuGAQX3g.js → EditorPreview-CA6-0wUw.js} +2 -2
  33. package/dist/assets/studio/assets/{Elevation-ahkqnCOT.js → Elevation-BrgkbjjJ.js} +2 -2
  34. package/dist/assets/studio/assets/{ElevationRequest-DbaZPpTy.js → ElevationRequest-DXg8u-DR.js} +2 -2
  35. package/dist/assets/studio/assets/EntryPath-CkymIfuw.js +2 -0
  36. package/dist/assets/studio/assets/{ForgotPasswordPage-ECAplOgO.js → ForgotPasswordPage-DwB7XyB2.js} +2 -2
  37. package/dist/assets/studio/assets/{Gating-BGO4D_AP.js → Gating-0HRGz-rR.js} +2 -2
  38. package/dist/assets/studio/assets/GovernanceDialog-DUYzDR09.js +2 -0
  39. package/dist/assets/studio/assets/{InvitePage-CciurSHj.js → InvitePage-DE6bIpV3.js} +2 -2
  40. package/dist/assets/studio/assets/{ListToolbar-DPtPcPWp.js → ListToolbar-BG__bomj.js} +2 -2
  41. package/dist/assets/studio/assets/{LoginPage-BKdmHe8_.js → LoginPage-DNfzz9zT.js} +2 -2
  42. package/dist/assets/studio/assets/{MediaPage-Bx_Q3p5Z.js → MediaPage-CYmEY5cn.js} +2 -2
  43. package/dist/assets/studio/assets/{MediaPicker-BHakhuPF.js → MediaPicker-C9vXkzHW.js} +2 -2
  44. package/dist/assets/studio/assets/{MediaUpload-Cjwe01QK.js → MediaUpload-BVeC5zW0.js} +2 -2
  45. package/dist/assets/studio/assets/MembersPage-DPlqxnNE.js +2 -0
  46. package/dist/assets/studio/assets/Menus-LJoFj5RT.js +2 -0
  47. package/dist/assets/studio/assets/{NavigationPage-3JIfd_2C.js → NavigationPage-C_3mnXYX.js} +2 -2
  48. package/dist/assets/studio/assets/{NewSiteDialog-DES6p9cW.js → NewSiteDialog-DSy8gRik.js} +2 -2
  49. package/dist/assets/studio/assets/{PageEditorPage-BiskVdPq.js → PageEditorPage-BcVleR3m.js} +2 -2
  50. package/dist/assets/studio/assets/{PagesPage-YrYME9pn.js → PagesPage-DBYQBTbf.js} +2 -2
  51. package/dist/assets/studio/assets/{PasswordField-BaDn4bwQ.js → PasswordField-CmuKqecN.js} +2 -2
  52. package/dist/assets/studio/assets/{PreviewPanel-CYgpgHYL.js → PreviewPanel-BGtfUafo.js} +2 -2
  53. package/dist/assets/studio/assets/{ProjectPage-B8YTPbZu.js → ProjectPage-fFSVFBu7.js} +2 -2
  54. package/dist/assets/studio/assets/{Readers-PSJxQtDw.js → Readers-BXiEXx2Q.js} +3 -3
  55. package/dist/assets/studio/assets/RedirectDialog-Bjj_Yc96.js +2 -0
  56. package/dist/assets/studio/assets/RedirectsPage-CHcqSOyu.js +2 -0
  57. package/dist/assets/studio/assets/{ReleaseApproval-DUUheBUr.js → ReleaseApproval-BIjYTn-g.js} +2 -2
  58. package/dist/assets/studio/assets/{ReleasePage-DU_sEnGb.js → ReleasePage-CxToLp34.js} +2 -2
  59. package/dist/assets/studio/assets/{ReleaseParts-blYiBCFL.js → ReleaseParts-B_Uljbxy.js} +2 -2
  60. package/dist/assets/studio/assets/{ResetPasswordPage-CxIo4Yvk.js → ResetPasswordPage-BmP2ALzo.js} +2 -2
  61. package/dist/assets/studio/assets/{RowMenu-CvzLtDk6.js → RowMenu-24gQZese.js} +2 -2
  62. package/dist/assets/studio/assets/{ScheduleCard-BNM_ecEJ.js → ScheduleCard-Chuz3OOY.js} +2 -2
  63. package/dist/assets/studio/assets/ScheduleDialog-Dh8bLDpe.js +2 -0
  64. package/dist/assets/studio/assets/{ScheduleHistoryPage-B_79RLNY.js → ScheduleHistoryPage-CS6Epz5q.js} +2 -2
  65. package/dist/assets/studio/assets/{ScheduleStatusBadge-CgZ65nzd.js → ScheduleStatusBadge-B4BPQAx4.js} +2 -2
  66. package/dist/assets/studio/assets/{SchedulerStalled-C8C91Ds8.js → SchedulerStalled-nDxONkWM.js} +2 -2
  67. package/dist/assets/studio/assets/{Schedules-xnhmCXba.js → Schedules-Dpu78aTu.js} +2 -2
  68. package/dist/assets/studio/assets/{SchedulesPage-KA7TSNlR.js → SchedulesPage-a0OcBtxY.js} +2 -2
  69. package/dist/assets/studio/assets/{ScopeBadge-C_XnkWYq.js → ScopeBadge-BNM9FT-5.js} +2 -2
  70. package/dist/assets/studio/assets/{SectionCard-GPZWTzbx.js → SectionCard-BxLoZOcp.js} +2 -2
  71. package/dist/assets/studio/assets/Seo-ytU9solr.js +2 -0
  72. package/dist/assets/studio/assets/SeoPreview-yfqYstu_.js +2 -0
  73. package/dist/assets/studio/assets/{Settings-BeAGyeQI.js → Settings-m8Ai9oIJ.js} +2 -2
  74. package/dist/assets/studio/assets/{SiteAccessField-C0J26Q-t.js → SiteAccessField-Dt_TYknY.js} +2 -2
  75. package/dist/assets/studio/assets/{SiteOverviewPage-CDnjXcd6.js → SiteOverviewPage-C-fICOMI.js} +3 -3
  76. package/dist/assets/studio/assets/SiteSettingsPage-B38ObhQp.js +3 -0
  77. package/dist/assets/studio/assets/{SitesPage-DSpx69dn.js → SitesPage-BeZp4ZWP.js} +2 -2
  78. package/dist/assets/studio/assets/{SkillsPage-DF4xGVkJ.js → SkillsPage-HCITPWLC.js} +2 -2
  79. package/dist/assets/studio/assets/SnapshotsPage-Bz6q1NZG.js +2 -0
  80. package/dist/assets/studio/assets/{Status-B6jbm_Zq.js → Status-Bj8AxXIX.js} +2 -2
  81. package/dist/assets/studio/assets/{StatusActions-DgRInkQb.js → StatusActions-B7qbr17X.js} +3 -3
  82. package/dist/assets/studio/assets/{TagsMigration-DYR-VkVc.js → TagsMigration-DWLg_J-t.js} +2 -2
  83. package/dist/assets/studio/assets/Taxonomy-CVwYZsH4.js +2 -0
  84. package/dist/assets/studio/assets/{TaxonomyPage-BYCM2_2l.js → TaxonomyPage-Bl9v3mnU.js} +2 -2
  85. package/dist/assets/studio/assets/{TermEditorPage-C8NQHobp.js → TermEditorPage-0g_PGShy.js} +2 -2
  86. package/dist/assets/studio/assets/{TermPickers-a6Ed0J4R.js → TermPickers-BI3nNBmj.js} +2 -2
  87. package/dist/assets/studio/assets/{Toast-DYiK3WzC.js → Toast-CXAk8wMq.js} +2 -2
  88. package/dist/assets/studio/assets/{TranslationList-D6YA7Vjr.js → TranslationList-hfg5iYSt.js} +2 -2
  89. package/dist/assets/studio/assets/{TranslationsPage-Ci-5wWIr.js → TranslationsPage-DEH0PY-i.js} +2 -2
  90. package/dist/assets/studio/assets/api-Mdeo6gzg.js +4 -0
  91. package/dist/assets/studio/assets/{api-errors-DObQzNBx.js → api-errors-CXLBmdpk.js} +2 -2
  92. package/dist/assets/studio/assets/{approvals-Dq0eHG8S.js → approvals-CIXN6a5b.js} +2 -2
  93. package/dist/assets/studio/assets/ar-ofvhEEt4.js +6 -0
  94. package/dist/assets/studio/assets/{charts-RqioK5fB.js → charts-Dni4XxBl.js} +2 -2
  95. package/dist/assets/studio/assets/{clipboard-text-gd6s3n1bqse9zgt8-_Ede63Fg.js → clipboard-text-gd6s3n1bqse9zgt8-ZQgZ1_-o.js} +2 -2
  96. package/dist/assets/studio/assets/{collapsible-l8g94on4w7qfosmn-Dk6hg5t7.js → collapsible-l8g94on4w7qfosmn-Bn4JrutR.js} +2 -2
  97. package/dist/assets/studio/assets/{combobox-hdxtsm2gqcxxgfju-DgmfP13I.js → combobox-hdxtsm2gqcxxgfju-C8ue-AJ-.js} +2 -2
  98. package/dist/assets/studio/assets/{createToastManager-onmoqrmr8zo02rif-_Y_xgvmb.js → createToastManager-onmoqrmr8zo02rif-V5YAqQyh.js} +2 -2
  99. package/dist/assets/studio/assets/de-CUjqphee.js +6 -0
  100. package/dist/assets/studio/assets/{deleteLabels-C5GfAnPh.js → deleteLabels-Cm9ihsQ3.js} +2 -2
  101. package/dist/assets/studio/assets/{dialog-glpnivujociqs9lh-Cch0_XyA.js → dialog-glpnivujociqs9lh-BqMU4UxI.js} +2 -2
  102. package/dist/assets/studio/assets/{editor-BQa6TaZi.js → editor-D3pyx_CZ.js} +2 -2
  103. package/dist/assets/studio/assets/es-DXloqVLE.js +6 -0
  104. package/dist/assets/studio/assets/fa-BDO-9MVu.js +6 -0
  105. package/dist/assets/studio/assets/fr-Cm9SdqZD.js +6 -0
  106. package/dist/assets/studio/assets/he-Bt5bz790.js +6 -0
  107. package/dist/assets/studio/assets/hi-C3-GZG-C.js +6 -0
  108. package/dist/assets/studio/assets/i18n-CdW50___.js +7 -0
  109. package/dist/assets/studio/assets/id-fk1BPM1I.js +6 -0
  110. package/dist/assets/studio/assets/index-DYyDeKnk.js +4 -0
  111. package/dist/assets/studio/assets/it-KwlZf5Ee.js +6 -0
  112. package/dist/assets/studio/assets/ja-BZHSI7Yq.js +6 -0
  113. package/dist/assets/studio/assets/ko-B9L7Js7b.js +6 -0
  114. package/dist/assets/studio/assets/layer-dialog-j5ywmzs46ccg6oqy-DLBR2ljP.js +2 -0
  115. package/dist/assets/studio/assets/{media-PkgIV37k.js → media-D4YZ713s.js} +3 -3
  116. package/dist/assets/studio/assets/nl-4w3IGlXj.js +6 -0
  117. package/dist/assets/studio/assets/permalinks-CNYgOPCo.js +2 -0
  118. package/dist/assets/studio/assets/pl-CCYhWdyU.js +6 -0
  119. package/dist/assets/studio/assets/pt-BR-xY-_D6mf.js +6 -0
  120. package/dist/assets/studio/assets/ru-DZ1xI15Q.js +6 -0
  121. package/dist/assets/studio/assets/{schedules-api-5mgRmrjL.js → schedules-api-DWQc-xjG.js} +2 -2
  122. package/dist/assets/studio/assets/{tag-input-ohfybx5dbxy3houy-C5BpU4R7.js → tag-input-ohfybx5dbxy3houy-CbqFHYvH.js} +2 -2
  123. package/dist/assets/studio/assets/tr-n4MtlsVR.js +6 -0
  124. package/dist/assets/studio/assets/uk-aiCWjdse.js +6 -0
  125. package/dist/assets/studio/assets/{useAnalyticsCard-tsyFdq37.js → useAnalyticsCard-D_EaD-GJ.js} +2 -2
  126. package/dist/assets/studio/assets/{useMe-DcrRDsez.js → useMe-D5W0xdO9.js} +2 -2
  127. package/dist/assets/studio/assets/{usePaging-kMfWrvea.js → usePaging-YS-Bfnj9.js} +2 -2
  128. package/dist/assets/studio/assets/{usePendingApprovals-BVHPCnd7.js → usePendingApprovals-54FcNUfi.js} +2 -2
  129. package/dist/assets/studio/assets/zh-Hans-D7CeiRbC.js +6 -0
  130. package/dist/assets/studio/index.html +16 -16
  131. package/dist/src/commands/analytics.d.ts +1 -1
  132. package/dist/src/commands/analytics.js +4 -3
  133. package/dist/src/commands/deploy/resources.d.ts +10 -0
  134. package/dist/src/commands/deploy/resources.js +25 -0
  135. package/dist/src/commands/deploy/ship.js +25 -19
  136. package/package.json +11 -11
  137. package/dist/assets/studio/assets/AgentsPage-DTYrfM8r.js +0 -2
  138. package/dist/assets/studio/assets/AnalyticsPage-BHH7HUno.js +0 -3
  139. package/dist/assets/studio/assets/ArticleEditorPage-DNo73SWr.js +0 -2
  140. package/dist/assets/studio/assets/ArticlesPage-aY2U4lYq.js +0 -2
  141. package/dist/assets/studio/assets/CommentThreadPage-JhpHw2fy.js +0 -2
  142. package/dist/assets/studio/assets/GovernanceDialog-6vMG-DjQ.js +0 -2
  143. package/dist/assets/studio/assets/MembersPage-1Dpp6fR0.js +0 -2
  144. package/dist/assets/studio/assets/Menus-BqLOw0If.js +0 -2
  145. package/dist/assets/studio/assets/RedirectDialog-BEIl9Rio.js +0 -2
  146. package/dist/assets/studio/assets/RedirectsPage-ClI2C61E.js +0 -2
  147. package/dist/assets/studio/assets/ScheduleDialog-BcjQEb-r.js +0 -2
  148. package/dist/assets/studio/assets/Seo-S2Fmf0_k.js +0 -2
  149. package/dist/assets/studio/assets/SeoPreview-BaS-x90q.js +0 -2
  150. package/dist/assets/studio/assets/SiteSettingsPage-DdNblHPf.js +0 -3
  151. package/dist/assets/studio/assets/SnapshotsPage-CTUCS2y4.js +0 -2
  152. package/dist/assets/studio/assets/Taxonomy-BP_PrlF2.js +0 -2
  153. package/dist/assets/studio/assets/api-Cqqt5jTd.js +0 -4
  154. package/dist/assets/studio/assets/ar-DZD_LN4R.js +0 -6
  155. package/dist/assets/studio/assets/de-D65bXpkj.js +0 -6
  156. package/dist/assets/studio/assets/es-c812D9nl.js +0 -6
  157. package/dist/assets/studio/assets/fa-vxNhZpLh.js +0 -6
  158. package/dist/assets/studio/assets/fr-DhVGWQ1r.js +0 -6
  159. package/dist/assets/studio/assets/he-BUNedH-H.js +0 -6
  160. package/dist/assets/studio/assets/hi-BRLMI3vy.js +0 -6
  161. package/dist/assets/studio/assets/i18n-Dz1LE8DB.js +0 -7
  162. package/dist/assets/studio/assets/id-Di4ybegt.js +0 -6
  163. package/dist/assets/studio/assets/index-DMKFLgkG.js +0 -4
  164. package/dist/assets/studio/assets/it-CmzTT1jK.js +0 -6
  165. package/dist/assets/studio/assets/ja-Bx1aRBDT.js +0 -6
  166. package/dist/assets/studio/assets/ko-Dcw0wiZr.js +0 -6
  167. package/dist/assets/studio/assets/layer-dialog-j5ywmzs46ccg6oqy-CySAcQJW.js +0 -2
  168. package/dist/assets/studio/assets/nl-BeTtPQCB.js +0 -6
  169. package/dist/assets/studio/assets/pl-DMfBcmtn.js +0 -6
  170. package/dist/assets/studio/assets/pt-BR-B4XbkQp3.js +0 -6
  171. package/dist/assets/studio/assets/ru-ttvcqOmM.js +0 -6
  172. package/dist/assets/studio/assets/tr-eeqDuraZ.js +0 -6
  173. package/dist/assets/studio/assets/uk-ooRGP488.js +0 -6
  174. package/dist/assets/studio/assets/zh-Hans-CGcsS9Bh.js +0 -6
@@ -1,2 +1,2 @@
1
- import{r as e}from"./rolldown-runtime-hePW80VL.js";import{A as t,B as n,C as r,Hn as i,M as a,N as o,Tn as s,U as c,Un as l,Ut as u,V as d,Vt as f,_n as p,at as m,cr as h,gr as g,hr as _,j as v,nt as y,ot as b,rr as x,rt as ee,sr as S,st as C,tn as w,vn as T,z as E}from"./useBaseUiId-lg1teubxudgin0w2-CURnJ4xq.js";import{i as D,n as O,r as k}from"./react-CDCuUAOg.js";import{_ as te,v as ne}from"./button-pa1bq9b85hawg41a-CmOCuL-1.js";import{n as re,t as A}from"./inertValue-e0o6qvuef83v78fk-DH-hw2Zh.js";import{t as j}from"./getElementTransform-cuiqmjglkrz4db6c-xvJxAmf3.js";import{d as M}from"./useMe-DcrRDsez.js";var N=e(D(),1),P=k(),ie=e(O(),1),F=N.createContext(void 0);F.displayName=`ToastContext`;function I(){let e=N.useContext(F);if(!e)throw Error(`Base UI: useToastManager must be used within <Toast.Provider>.`);return e}var L=0;function R(e){return L+=1,`${e}-${Math.random().toString(36).slice(2,6)}-${L}`}function z(e,t){if(typeof e==`string`)return{description:e};if(typeof e==`function`){let n=e(t);return typeof n==`string`?{description:n}:n}return e}function B(e){let t=new Map,n=0,r=0;return e.forEach((e,i)=>{let a=e.transitionStatus===`ending`;t.set(e.id,{value:e,domIndex:i,visibleIndex:a?-1:n,offsetY:r}),r+=e.height||0,a||(n+=1)}),t}function V(e,t){let n=0;return e.map(e=>{if(e.transitionStatus===`ending`)return e;let r=n>=t;return n+=1,e.limited===r?e:{...e,limited:r}})}var H={toasts:e=>e.toasts,isEmpty:e=>e.toasts.length===0,toast:(e,t)=>e.toastMetadata.get(t)?.value,toastIndex:(e,t)=>e.toastMetadata.get(t)?.domIndex??-1,toastOffsetY:(e,t)=>e.toastMetadata.get(t)?.offsetY??0,toastVisibleIndex:(e,t)=>e.toastMetadata.get(t)?.visibleIndex??-1,focused:e=>e.focused,expanded:e=>e.hovering||e.focused,expandedOrOutOfFocus:e=>e.hovering||e.focused||!e.isWindowFocused,prevFocusElement:e=>e.prevFocusElement},U=class extends c{timers=new Map;areTimersPaused=!1;constructor(e){super({...e,toastMetadata:B(e.toasts)},{},H)}setViewport=e=>{this.set(`viewport`,e)};syncProviderProps(e,t){let n=this.state.limit!==t;if(this.state.timeout===e&&!n)return;let r={timeout:e,limit:t};if(n){let e=V(this.state.toasts,t);r.toasts=e,r.toastMetadata=B(e)}this.update(r)}disposeEffect=()=>()=>{this.timers.forEach(e=>{e.timeout?.clear()}),this.timers.clear()};removeToast(e,t=!1){let n=H.toastIndex(this.state,e);if(n===-1)return;let r=this.state.toasts[n];t||r?.onRemove?.();let i=[...this.state.toasts];i.splice(n,1),this.setToasts(i)}addToast=e=>{let{timeout:t,limit:n}=this.state,r=e.id||R(`toast`);if(e.id){let t=H.toast(this.state,e.id);if(t){if(t.transitionStatus===`ending`)this.removeToast(e.id,!0);else{let{id:t,transitionStatus:n,...r}=e;return this.updateToastInternal(e.id,r,!0,!0),e.id}}}let i={...e,id:r,updateKey:0,transitionStatus:`starting`},a=[i,...this.state.toasts];this.setToasts(V(a,n));let o=i.timeout??t;return i.type!==`loading`&&o>0&&this.scheduleTimer(r,o,()=>this.closeToast(r)),H.expandedOrOutOfFocus(this.state)&&this.pauseTimers(),r};updateToast=(e,t)=>{let n=H.toast(this.state,e);n&&n.transitionStatus!==`ending`&&this.updateToastInternal(e,typeof t==`function`?t(n):t,!1,!0)};updateToastInternal=(e,t,n=!1,r=!1)=>{let{timeout:i,toasts:a}=this.state,o=H.toast(this.state,e);if(!o||o.transitionStatus===`ending`)return;let s={...o,...t,...r&&{updateKey:o.updateKey+1}};this.setToasts(a.map(t=>t.id===e?s:t));let c=s.timeout??i,l=o.timeout??i,u=Object.hasOwn(t,`timeout`),d=s.transitionStatus!==`ending`&&s.type!==`loading`&&c>0,f=this.timers.has(e),p=l!==c,m=o.type===`loading`;if(!d&&f){this.clearTimer(e);return}d&&(!f||p||u||m||n)&&(this.clearTimer(e),this.scheduleTimer(e,c,()=>this.closeToast(e)),H.expandedOrOutOfFocus(this.state)&&this.pauseTimers())};closeToast=e=>{let t=e===void 0,{limit:n,toasts:r}=this.state,i;if(t)i=r,this.clearTimers();else{let t=H.toast(this.state,e);if(!t)return;i=[t],this.clearTimer(e)}let a=V(r.map(n=>t||n.id===e?{...n,transitionStatus:`ending`,height:0}:n),n);this.setToasts(a,!a.some(e=>e.transitionStatus!==`ending`)),i.forEach(e=>{e.transitionStatus!==`ending`&&e.onClose?.()}),this.handleFocusManagement(e)};promiseToast=(e,t)=>{let n=z(t.loading),r=this.addToast({...n,type:`loading`}),i=e.then(e=>{let n=z(t.success,e);return this.updateToast(r,{...n,type:`success`,timeout:n.timeout}),e}).catch(e=>{let n=z(t.error,e);return this.updateToast(r,{...n,type:`error`,timeout:n.timeout}),Promise.reject(e)});return{}.hasOwnProperty.call(t,`setPromise`)&&t.setPromise(i),i};pauseTimers(){this.areTimersPaused||(this.areTimersPaused=!0,this.timers.forEach(e=>{e.timeout&&(e.timeout.clear(),e.remaining=Math.max(e.remaining-(Date.now()-e.start),0))}))}resumeTimers(){this.areTimersPaused&&(this.areTimersPaused=!1,this.timers.forEach((e,n)=>{e.remaining=e.remaining>0?e.remaining:e.delay,e.timeout??=t.create(),e.timeout.start(e.remaining,()=>{this.handleTimerFired(n),e.callback()}),e.start=Date.now()}))}restoreFocusToPrevElement(){this.state.prevFocusElement?.focus({preventScroll:!0})}handleDocumentPointerDown=e=>{if(e.pointerType!==`touch`)return;let t=w(e);u(this.state.viewport,t)||(this.resumeTimers(),this.update({hovering:!1,focused:!1}))};scheduleTimer(e,n,r){let i=Date.now(),a=H.expandedOrOutOfFocus(this.state)?void 0:t.create();a?.start(n,()=>{this.handleTimerFired(e),r()}),this.timers.set(e,{timeout:a,start:i,delay:n,remaining:n,callback:r})}clearTimers(){this.timers.forEach(e=>{e.timeout?.clear()}),this.timers.clear(),this.areTimersPaused=!1}clearTimer(e){this.timers.get(e)?.timeout?.clear(),this.timers.delete(e),this.resetPausedStateIfNoTimersRemain()}handleTimerFired(e){this.timers.delete(e),this.resetPausedStateIfNoTimersRemain()}resetPausedStateIfNoTimersRemain(){this.timers.size===0&&(this.areTimersPaused=!1)}setToasts(e,t=e.length===0){let n={toasts:e,toastMetadata:B(e)};t&&(n.hovering=!1,n.focused=!1),this.update(n)}handleFocusManagement(e){let t=f(T(this.state.viewport));if(!this.state.viewport||!u(this.state.viewport,t)||!p(t))return;if(e===void 0){this.restoreFocusToPrevElement();return}let n=H.toasts(this.state),r=H.toastIndex(this.state,e),i=(e,t)=>{for(let r=e;r>=0&&r<n.length;r+=t)if(n[r].transitionStatus!==`ending`)return n[r];return null},a=i(r+1,1)??i(r-1,-1);a?a.ref?.current?.focus():this.restoreFocusToPrevElement()}},W=function(e){let{children:t,timeout:n=5e3,limit:r=3,toastManager:i}=e,o=_(()=>new U({timeout:n,limit:r,viewport:null,toasts:[],hovering:!1,focused:!1,isWindowFocused:!0,prevFocusElement:null})).current;return a(o.disposeEffect),N.useEffect(function(){if(i)return i[` subscribe`](({action:e,options:t})=>{let n=t.id;e===`promise`&&t.promise?o.promiseToast(t.promise,t):e===`update`&&n?o.updateToast(n,t.updates):e===`close`?o.closeToast(n):o.addToast(t)})},[o,i]),(0,P.jsxs)(F.Provider,{value:o,children:[(0,P.jsx)(G,{store:o,timeout:n,limit:r}),t]})};W.displayName=`ToastProvider`;function G(e){let{store:t,timeout:n,limit:r}=e;return x(()=>{t.syncProviderProps(n,r)},[t,n,r]),null}var K=`--toast-frontmost-height`,ae=N.forwardRef(function(e,t){let{render:n,className:r,style:a,children:o,...s}=e,c=I(),l=v(),d=N.useRef(!1),m=N.useRef(!1),h=N.useRef(!1),_=c.useState(`isEmpty`),y=c.useState(`toasts`),x=c.useState(`focused`),S=c.useState(`expanded`),D=c.useState(`prevFocusElement`),O=y[0]?.height,k=y.some(e=>e.transitionStatus===`ending`),te=y.filter(e=>e.priority===`high`);N.useEffect(()=>{let e=c.state.viewport;if(!e||_)return;let t=i(e),n=T(e);function r(t){t.key===`F6`&&w(t)!==e&&(t.preventDefault(),c.set(`prevFocusElement`,f(n)),e?.focus({preventScroll:!0}),c.pauseTimers(),c.set(`focused`,!0))}function a(e){w(e)===t&&(c.set(`isWindowFocused`,!1),c.pauseTimers())}function o(n){if(n.relatedTarget)return;let r=w(n),i=f(T(e));(r===t||!u(e,r)||!p(i))&&c.resumeTimers(),l.start(0,()=>c.set(`isWindowFocused`,!0))}return b(C(t,`keydown`,r),C(t,`blur`,a,!0),C(t,`focus`,o,!0),C(n,`pointerdown`,c.handleDocumentPointerDown,!0))},[c,l,_]);function ne(e){d.current=!0;let t=e.relatedTarget===c.state.viewport?y.find(e=>e.transitionStatus!==`ending`&&!e.limited):void 0;t?t.ref?.current?.focus():c.restoreFocusToPrevElement()}function re(e){e.key===`Tab`&&e.shiftKey&&w(e.nativeEvent)===c.state.viewport&&(e.preventDefault(),c.restoreFocusToPrevElement())}function A(){c.state.toasts.some(e=>e.transitionStatus===`ending`)||h.current||!m.current||(c.state.isWindowFocused&&c.resumeTimers(),c.set(`hovering`,!1),m.current=!1)}N.useEffect(A,[k,c]);function j(){c.pauseTimers(),c.set(`hovering`,!0),m.current=!1}function M(){c.state.isWindowFocused&&c.resumeTimers()}function ie(){m.current=!0,A()}function F(e){e.pointerType===`touch`&&(h.current=!0)}function L(e){e.pointerType===`touch`&&(h.current=!1,A())}function R(){if(d.current){d.current=!1;return}x||p(f(T(c.state.viewport)))&&(c.set(`focused`,!0),c.pauseTimers())}function z(e){x&&!u(c.state.viewport,e.relatedTarget)&&(c.set(`focused`,!1),M())}let B={tabIndex:-1,role:`region`,"aria-live":`polite`,"aria-atomic":!1,"aria-relevant":`additions text`,"aria-label":`Notifications`,onMouseEnter:j,onMouseMove:j,onMouseLeave:ie,onFocus:R,onBlur:z,onKeyDown:re,onClick:R,onPointerDown:F,onPointerUp:L,onPointerCancel:L,style:{[K]:O?`${O}px`:void 0}},V={expanded:S},H=!_&&D&&(0,P.jsx)(E,{onFocus:ne}),U=g(`div`,e,{ref:[t,c.setViewport],state:V,props:[B,s,{children:(0,P.jsxs)(N.Fragment,{children:[H,o,H]})}]});return(0,P.jsxs)(N.Fragment,{children:[H,U,!x&&te.length>0&&(0,P.jsx)(`div`,{style:ee,children:te.map(e=>(0,P.jsxs)(`div`,{role:`alert`,"aria-atomic":!0,children:[(0,P.jsx)(`div`,{children:e.title}),(0,P.jsx)(`div`,{children:e.description})]},e.id))})]})});ae.displayName=`ToastViewport`;var oe=N.createContext(void 0);oe.displayName=`ToastRootContext`;function se(){let e=N.useContext(oe);if(!e)throw Error(`Base UI: ToastRootContext is missing. Toast parts must be used within <Toast.Root>.`);return e}var ce=`--toast-index`,le=`--toast-offset-y`,ue=`--toast-height`,de=`--toast-swipe-movement-x`,fe=`--toast-swipe-movement-y`,q=`data-swipe-direction`,pe={...s,swipeDirection(e){return e?{[q]:e}:null}},me=40,he=10,ge=.5,_e=1,ve=`${o},${n}`,J=N.forwardRef(function(e,t){let{toast:n,render:i,className:a,swipeDirection:o=[`down`,`right`],style:s,...c}=e,l=n.positionerProps?.anchor!==void 0,d=[];l||(d=Array.isArray(o)?o:[o]);let p=d.length>0,h=I(),[_,v]=N.useState(void 0),[y,b]=N.useState(!1),[ee,S]=N.useState(!1),[E,D]=N.useState({x:0,y:0}),[O,k]=N.useState({x:0,y:0,scale:1}),[te,ne]=N.useState(),[re,F]=N.useState(),[L,R]=N.useState(null),z=N.useRef(null),B=N.useRef(void 0),V=N.useRef({x:0,y:0}),H=N.useRef({x:0,y:0,scale:1}),U=N.useRef(void 0),W=N.useRef(0),G=N.useRef(!1),K=N.useRef({x:0,y:0}),ae=N.useRef(!1),se=N.useRef({x:0,y:0}),q=N.useRef(null),J=N.useRef(null),ye=h.useState(`toastIndex`,n.id),Y=h.useState(`toastVisibleIndex`,n.id),be=h.useState(`toastOffsetY`,n.id),xe=h.useState(`focused`),X=h.useState(`expanded`);r({open:n.transitionStatus!==`ending`,ref:z,onComplete(){n.transitionStatus===`ending`&&h.removeToast(n.id)}});let Z=m((e=!1)=>{let t=z.current;if(!t)return;let r=t.style.height;t.style.height=`auto`;let i=t.offsetHeight;t.style.height=r;function a(){h.updateToastInternal(n.id,{ref:z,height:i,transitionStatus:void 0})}e?ie.flushSync(a):a()});x(()=>{let e=B.current;(n.transitionStatus===`starting`||e!==n.id)&&(e!==void 0&&(v(void 0),k({x:0,y:0,scale:1}),Q({x:0,y:0})),B.current=n.id,Z())},[Z,n.id,n.transitionStatus]);function Q(e){se.current=e,D(e)}x(()=>()=>{J.current?.abort()},[]);function Se(e,t){let n=e=>e>0?e**ge:-(Math.abs(e)**ge),r=e>0&&!d.includes(`right`)||e<0&&!d.includes(`left`),i=t>0&&!d.includes(`down`)||t<0&&!d.includes(`up`);return{x:r?n(e):e,y:i?n(t):t}}let $=m(e=>{if(e.pointerId!==q.current)return;q.current=null,J.current?.abort(),J.current=null,b(!1),S(!1),R(null);let t=H.current;if(e.type===`pointercancel`||G.current){Q({x:t.x,y:t.y}),v(void 0);return}let r=se.current,i=r.x-t.x,a=r.y-t.y,o;for(let e of d)if(M(e,i,a)>me){o=e;break}o?(v(o),h.closeToast(n.id)):(Q({x:t.x,y:t.y}),v(void 0))});function Ce(e){if(e.button!==0||(e.pointerType===`touch`&&h.pauseTimers(),w(e.nativeEvent)?.closest(`button,a,input,textarea,[role="button"],${ve}`)))return;G.current=!1,U.current=void 0,W.current=0,q.current=e.pointerId,V.current={x:e.clientX,y:e.clientY},K.current=V.current;let t=e.currentTarget,n=j(t);H.current=n,k(n),Q({x:n.x,y:n.y}),h.set(`hovering`,!0),b(!0),S(!1),R(null),ae.current=!0,J.current?.abort();let r=new AbortController;J.current=r;let i=T(t);i.addEventListener(`pointerup`,$,{signal:r.signal}),i.addEventListener(`pointercancel`,$,{signal:r.signal}),t.setPointerCapture?.(e.pointerId)}function we(e){if(e.pointerId!==q.current)return;e.preventDefault(),ae.current&&=(V.current={x:e.clientX,y:e.clientY},!1);let{clientY:t,clientX:n,movementX:r,movementY:i}=e;(i<0&&t>K.current.y||i>0&&t<K.current.y)&&(K.current={x:K.current.x,y:t}),(r<0&&n>K.current.x||r>0&&n<K.current.x)&&(K.current={x:n,y:K.current.y});let a=n-V.current.x,o=t-V.current.y,s=t-K.current.y,c=n-K.current.x,l=L;if(!ee&&Math.sqrt(a*a+o*o)>=_e){S(!0);let e=d.includes(`left`)||d.includes(`right`),t=d.includes(`up`)||d.includes(`down`);e&&t&&(l=Math.abs(a)>Math.abs(o)?`horizontal`:`vertical`,R(l))}let u;if(!U.current)l===`vertical`?o>0?u=`down`:o<0&&(u=`up`):l===`horizontal`?a>0?u=`right`:a<0&&(u=`left`):u=Math.abs(a)>=Math.abs(o)?a>0?`right`:`left`:o>0?`down`:`up`,u&&d.includes(u)&&(U.current=u,W.current=M(u,a,o),v(u));else{let e=U.current,t=M(e,c,s);t>me?(G.current=!1,v(e)):!(d.includes(`left`)&&d.includes(`right`))&&!(d.includes(`up`)&&d.includes(`down`))&&W.current-t>=he&&(G.current=!0)}let f=Se(a,o),p=H.current.x,m=H.current.y,h=d.includes(`left`)||d.includes(`right`),g=d.includes(`up`)||d.includes(`down`);l!==`vertical`&&h&&(p+=f.x),l!==`horizontal`&&g&&(m+=f.y),Q({x:p,y:m})}function Te(e){if(e.key===`Escape`){if(!z.current||!u(z.current,f(T(z.current))))return;h.closeToast(n.id)}}N.useEffect(()=>{let e=z.current;if(!p||!e)return;function t(t){q.current!==null&&u(e,w(t))&&t.preventDefault()}return C(e,`touchmove`,t,{passive:!1})},[p]);function Ee(){let e=E.x-O.x,t=E.y-O.y;return{transition:y?`none`:void 0,transform:y?`translateX(${E.x}px) translateY(${E.y}px) scale(${O.scale})`:void 0,[de]:`${e}px`,[fe]:`${t}px`}}let De=n.priority===`high`,Oe={role:De?`alertdialog`:`dialog`,tabIndex:0,"aria-modal":!1,"aria-labelledby":te,"aria-describedby":re,"aria-hidden":De&&!xe?!0:void 0,onPointerDown:p?Ce:void 0,onPointerMove:p?we:void 0,onPointerUp:p?$:void 0,onPointerCancel:p?$:void 0,onKeyDown:Te,inert:A(n.limited),style:{...Ee(),[ce]:n.transitionStatus===`ending`?ye:Y,[le]:`${be}px`,[ue]:n.height?`${n.height}px`:void 0}},ke=N.useMemo(()=>({toast:n,setTitleId:ne,setDescriptionId:F,recalculateHeight:Z,visibleIndex:Y,expanded:X}),[n,ne,F,Z,Y,X]),Ae={transitionStatus:n.transitionStatus,expanded:X,limited:n.limited||!1,type:n.type,swiping:y,swipeDirection:_},je=g(`div`,e,{ref:[t,z],state:Ae,stateAttributesMapping:pe,props:[Oe,c]});return(0,P.jsx)(oe.Provider,{value:ke,children:je})});J.displayName=`ToastRoot`;function ye(e){return e==null||typeof e==`boolean`||e===``?!1:!Array.isArray(e)||e.some(ye)}function Y(e){return N.isValidElement(e)&&ye(e.props.children)}function be(e,t,n){let{toast:r,setTitleId:i,setDescriptionId:a}=se(),o=n===`title`?i:a,s=t??(n===`title`?r.title:r.description);return{id:y(e),children:s,type:r.type,setId:o}}function xe(e,t,n){let r=Y(e);return x(()=>{if(r)return n(t),()=>{n(e=>e===t?void 0:e)}},[r,t,n]),r?e:null}var X=N.forwardRef(function(e,t){let{render:n,className:r,style:i,id:a,children:o,...s}=e,{id:c,children:l,type:u,setId:d}=be(a,o,`description`);return xe(g(`p`,e,{ref:t,state:{type:u},props:{...s,id:c,children:l}}),c,d)});X.displayName=`ToastDescription`;var Z=N.createContext(void 0);Z.displayName=`ToastPositionerContext`;function Q(){let e=N.useContext(Z);if(e===void 0)throw Error(`Base UI: ToastPositionerContext is missing. ToastPositioner parts must be placed within <Toast.Positioner>.`);return e}var Se=N.forwardRef(function(e,t){let{toast:n,...r}=e,i=I(),a=n.positionerProps??S,{render:o,className:s,anchor:c=a.anchor,positionMethod:u=a.positionMethod??`absolute`,side:f=a.side??`top`,align:p=a.align??`center`,sideOffset:m=a.sideOffset??0,alignOffset:g=a.alignOffset??0,collisionBoundary:_=a.collisionBoundary??`clipping-ancestors`,collisionPadding:v=a.collisionPadding??5,arrowPadding:y=a.arrowPadding??5,sticky:b=a.sticky??!1,disableAnchorTracking:x=a.disableAnchorTracking??!1,collisionAvoidance:ee=a.collisionAvoidance??d,style:C,...w}=r,[T,E]=N.useState(null),D=i.useState(`toastIndex`,n.id),O=i.useState(`toastVisibleIndex`,n.id),k=l(c)?c:null,A=re({open:!0,onOpenChange:h,elements:{floating:T,reference:k}}),j=te({anchor:k,positionMethod:u,floatingRootContext:A,mounted:!0,side:f,sideOffset:m,align:p,alignOffset:g,collisionBoundary:_,collisionPadding:v,sticky:b,arrowPadding:y,disableAnchorTracking:x,keepMounted:!0,collisionAvoidance:ee}),M={side:j.side,align:j.align,anchorHidden:j.anchorHidden},ie=ne(e,M,{styles:{...j.positionerStyles,[ce]:n.transitionStatus===`ending`?D:O},transitionStatus:n.transitionStatus,props:w,refs:[t,E]});return(0,P.jsx)(Z.Provider,{value:j,children:ie})});Se.displayName=`ToastPositioner`;function $(){let e=I(),t=e.useState(`toasts`);return N.useMemo(()=>({toasts:t,add:e.addToast,close:e.closeToast,update:e.updateToast,promise:e.promiseToast}),[t,e])}function Ce(){let e=new Set;function t(t){e.forEach(e=>e(t))}return{" subscribe":function(t){return e.add(t),()=>{e.delete(t)}},add(e){let n=e.id||R(`toast`);return t({action:`add`,options:{...e,id:n,transitionStatus:`starting`}}),n},close(e){t({action:`close`,options:{id:e}})},update(e,n){t({action:`update`,options:{id:e,updates:n}})},promise(e,n){let r=e;return t({action:`promise`,options:{...n,promise:e,setPromise(e){r=e}}}),r}}}export{ae as a,xe as c,Q as d,I as f,J as i,be as l,Se as n,Ce as o,se as p,W as r,Y as s,X as t,$ as u};
2
- //# sourceMappingURL=createToastManager-onmoqrmr8zo02rif-_Y_xgvmb.js.map
1
+ import{r as e}from"./rolldown-runtime-hePW80VL.js";import{A as t,B as n,C as r,Hn as i,M as a,N as o,Tn as s,U as c,Un as l,Ut as u,V as d,Vt as f,_n as p,at as m,cr as h,gr as g,hr as _,j as v,nt as y,ot as b,rr as x,rt as ee,sr as S,st as C,tn as w,vn as T,z as E}from"./useBaseUiId-lg1teubxudgin0w2-CURnJ4xq.js";import{i as D,n as O,r as k}from"./react-CDCuUAOg.js";import{_ as te,v as ne}from"./button-pa1bq9b85hawg41a-CmOCuL-1.js";import{n as re,t as A}from"./inertValue-e0o6qvuef83v78fk-DH-hw2Zh.js";import{t as j}from"./getElementTransform-cuiqmjglkrz4db6c-xvJxAmf3.js";import{f as M}from"./useMe-D5W0xdO9.js";var N=e(D(),1),P=k(),ie=e(O(),1),F=N.createContext(void 0);F.displayName=`ToastContext`;function I(){let e=N.useContext(F);if(!e)throw Error(`Base UI: useToastManager must be used within <Toast.Provider>.`);return e}var L=0;function R(e){return L+=1,`${e}-${Math.random().toString(36).slice(2,6)}-${L}`}function z(e,t){if(typeof e==`string`)return{description:e};if(typeof e==`function`){let n=e(t);return typeof n==`string`?{description:n}:n}return e}function B(e){let t=new Map,n=0,r=0;return e.forEach((e,i)=>{let a=e.transitionStatus===`ending`;t.set(e.id,{value:e,domIndex:i,visibleIndex:a?-1:n,offsetY:r}),r+=e.height||0,a||(n+=1)}),t}function V(e,t){let n=0;return e.map(e=>{if(e.transitionStatus===`ending`)return e;let r=n>=t;return n+=1,e.limited===r?e:{...e,limited:r}})}var H={toasts:e=>e.toasts,isEmpty:e=>e.toasts.length===0,toast:(e,t)=>e.toastMetadata.get(t)?.value,toastIndex:(e,t)=>e.toastMetadata.get(t)?.domIndex??-1,toastOffsetY:(e,t)=>e.toastMetadata.get(t)?.offsetY??0,toastVisibleIndex:(e,t)=>e.toastMetadata.get(t)?.visibleIndex??-1,focused:e=>e.focused,expanded:e=>e.hovering||e.focused,expandedOrOutOfFocus:e=>e.hovering||e.focused||!e.isWindowFocused,prevFocusElement:e=>e.prevFocusElement},U=class extends c{timers=new Map;areTimersPaused=!1;constructor(e){super({...e,toastMetadata:B(e.toasts)},{},H)}setViewport=e=>{this.set(`viewport`,e)};syncProviderProps(e,t){let n=this.state.limit!==t;if(this.state.timeout===e&&!n)return;let r={timeout:e,limit:t};if(n){let e=V(this.state.toasts,t);r.toasts=e,r.toastMetadata=B(e)}this.update(r)}disposeEffect=()=>()=>{this.timers.forEach(e=>{e.timeout?.clear()}),this.timers.clear()};removeToast(e,t=!1){let n=H.toastIndex(this.state,e);if(n===-1)return;let r=this.state.toasts[n];t||r?.onRemove?.();let i=[...this.state.toasts];i.splice(n,1),this.setToasts(i)}addToast=e=>{let{timeout:t,limit:n}=this.state,r=e.id||R(`toast`);if(e.id){let t=H.toast(this.state,e.id);if(t){if(t.transitionStatus===`ending`)this.removeToast(e.id,!0);else{let{id:t,transitionStatus:n,...r}=e;return this.updateToastInternal(e.id,r,!0,!0),e.id}}}let i={...e,id:r,updateKey:0,transitionStatus:`starting`},a=[i,...this.state.toasts];this.setToasts(V(a,n));let o=i.timeout??t;return i.type!==`loading`&&o>0&&this.scheduleTimer(r,o,()=>this.closeToast(r)),H.expandedOrOutOfFocus(this.state)&&this.pauseTimers(),r};updateToast=(e,t)=>{let n=H.toast(this.state,e);n&&n.transitionStatus!==`ending`&&this.updateToastInternal(e,typeof t==`function`?t(n):t,!1,!0)};updateToastInternal=(e,t,n=!1,r=!1)=>{let{timeout:i,toasts:a}=this.state,o=H.toast(this.state,e);if(!o||o.transitionStatus===`ending`)return;let s={...o,...t,...r&&{updateKey:o.updateKey+1}};this.setToasts(a.map(t=>t.id===e?s:t));let c=s.timeout??i,l=o.timeout??i,u=Object.hasOwn(t,`timeout`),d=s.transitionStatus!==`ending`&&s.type!==`loading`&&c>0,f=this.timers.has(e),p=l!==c,m=o.type===`loading`;if(!d&&f){this.clearTimer(e);return}d&&(!f||p||u||m||n)&&(this.clearTimer(e),this.scheduleTimer(e,c,()=>this.closeToast(e)),H.expandedOrOutOfFocus(this.state)&&this.pauseTimers())};closeToast=e=>{let t=e===void 0,{limit:n,toasts:r}=this.state,i;if(t)i=r,this.clearTimers();else{let t=H.toast(this.state,e);if(!t)return;i=[t],this.clearTimer(e)}let a=V(r.map(n=>t||n.id===e?{...n,transitionStatus:`ending`,height:0}:n),n);this.setToasts(a,!a.some(e=>e.transitionStatus!==`ending`)),i.forEach(e=>{e.transitionStatus!==`ending`&&e.onClose?.()}),this.handleFocusManagement(e)};promiseToast=(e,t)=>{let n=z(t.loading),r=this.addToast({...n,type:`loading`}),i=e.then(e=>{let n=z(t.success,e);return this.updateToast(r,{...n,type:`success`,timeout:n.timeout}),e}).catch(e=>{let n=z(t.error,e);return this.updateToast(r,{...n,type:`error`,timeout:n.timeout}),Promise.reject(e)});return{}.hasOwnProperty.call(t,`setPromise`)&&t.setPromise(i),i};pauseTimers(){this.areTimersPaused||(this.areTimersPaused=!0,this.timers.forEach(e=>{e.timeout&&(e.timeout.clear(),e.remaining=Math.max(e.remaining-(Date.now()-e.start),0))}))}resumeTimers(){this.areTimersPaused&&(this.areTimersPaused=!1,this.timers.forEach((e,n)=>{e.remaining=e.remaining>0?e.remaining:e.delay,e.timeout??=t.create(),e.timeout.start(e.remaining,()=>{this.handleTimerFired(n),e.callback()}),e.start=Date.now()}))}restoreFocusToPrevElement(){this.state.prevFocusElement?.focus({preventScroll:!0})}handleDocumentPointerDown=e=>{if(e.pointerType!==`touch`)return;let t=w(e);u(this.state.viewport,t)||(this.resumeTimers(),this.update({hovering:!1,focused:!1}))};scheduleTimer(e,n,r){let i=Date.now(),a=H.expandedOrOutOfFocus(this.state)?void 0:t.create();a?.start(n,()=>{this.handleTimerFired(e),r()}),this.timers.set(e,{timeout:a,start:i,delay:n,remaining:n,callback:r})}clearTimers(){this.timers.forEach(e=>{e.timeout?.clear()}),this.timers.clear(),this.areTimersPaused=!1}clearTimer(e){this.timers.get(e)?.timeout?.clear(),this.timers.delete(e),this.resetPausedStateIfNoTimersRemain()}handleTimerFired(e){this.timers.delete(e),this.resetPausedStateIfNoTimersRemain()}resetPausedStateIfNoTimersRemain(){this.timers.size===0&&(this.areTimersPaused=!1)}setToasts(e,t=e.length===0){let n={toasts:e,toastMetadata:B(e)};t&&(n.hovering=!1,n.focused=!1),this.update(n)}handleFocusManagement(e){let t=f(T(this.state.viewport));if(!this.state.viewport||!u(this.state.viewport,t)||!p(t))return;if(e===void 0){this.restoreFocusToPrevElement();return}let n=H.toasts(this.state),r=H.toastIndex(this.state,e),i=(e,t)=>{for(let r=e;r>=0&&r<n.length;r+=t)if(n[r].transitionStatus!==`ending`)return n[r];return null},a=i(r+1,1)??i(r-1,-1);a?a.ref?.current?.focus():this.restoreFocusToPrevElement()}},W=function(e){let{children:t,timeout:n=5e3,limit:r=3,toastManager:i}=e,o=_(()=>new U({timeout:n,limit:r,viewport:null,toasts:[],hovering:!1,focused:!1,isWindowFocused:!0,prevFocusElement:null})).current;return a(o.disposeEffect),N.useEffect(function(){if(i)return i[` subscribe`](({action:e,options:t})=>{let n=t.id;e===`promise`&&t.promise?o.promiseToast(t.promise,t):e===`update`&&n?o.updateToast(n,t.updates):e===`close`?o.closeToast(n):o.addToast(t)})},[o,i]),(0,P.jsxs)(F.Provider,{value:o,children:[(0,P.jsx)(G,{store:o,timeout:n,limit:r}),t]})};W.displayName=`ToastProvider`;function G(e){let{store:t,timeout:n,limit:r}=e;return x(()=>{t.syncProviderProps(n,r)},[t,n,r]),null}var K=`--toast-frontmost-height`,ae=N.forwardRef(function(e,t){let{render:n,className:r,style:a,children:o,...s}=e,c=I(),l=v(),d=N.useRef(!1),m=N.useRef(!1),h=N.useRef(!1),_=c.useState(`isEmpty`),y=c.useState(`toasts`),x=c.useState(`focused`),S=c.useState(`expanded`),D=c.useState(`prevFocusElement`),O=y[0]?.height,k=y.some(e=>e.transitionStatus===`ending`),te=y.filter(e=>e.priority===`high`);N.useEffect(()=>{let e=c.state.viewport;if(!e||_)return;let t=i(e),n=T(e);function r(t){t.key===`F6`&&w(t)!==e&&(t.preventDefault(),c.set(`prevFocusElement`,f(n)),e?.focus({preventScroll:!0}),c.pauseTimers(),c.set(`focused`,!0))}function a(e){w(e)===t&&(c.set(`isWindowFocused`,!1),c.pauseTimers())}function o(n){if(n.relatedTarget)return;let r=w(n),i=f(T(e));(r===t||!u(e,r)||!p(i))&&c.resumeTimers(),l.start(0,()=>c.set(`isWindowFocused`,!0))}return b(C(t,`keydown`,r),C(t,`blur`,a,!0),C(t,`focus`,o,!0),C(n,`pointerdown`,c.handleDocumentPointerDown,!0))},[c,l,_]);function ne(e){d.current=!0;let t=e.relatedTarget===c.state.viewport?y.find(e=>e.transitionStatus!==`ending`&&!e.limited):void 0;t?t.ref?.current?.focus():c.restoreFocusToPrevElement()}function re(e){e.key===`Tab`&&e.shiftKey&&w(e.nativeEvent)===c.state.viewport&&(e.preventDefault(),c.restoreFocusToPrevElement())}function A(){c.state.toasts.some(e=>e.transitionStatus===`ending`)||h.current||!m.current||(c.state.isWindowFocused&&c.resumeTimers(),c.set(`hovering`,!1),m.current=!1)}N.useEffect(A,[k,c]);function j(){c.pauseTimers(),c.set(`hovering`,!0),m.current=!1}function M(){c.state.isWindowFocused&&c.resumeTimers()}function ie(){m.current=!0,A()}function F(e){e.pointerType===`touch`&&(h.current=!0)}function L(e){e.pointerType===`touch`&&(h.current=!1,A())}function R(){if(d.current){d.current=!1;return}x||p(f(T(c.state.viewport)))&&(c.set(`focused`,!0),c.pauseTimers())}function z(e){x&&!u(c.state.viewport,e.relatedTarget)&&(c.set(`focused`,!1),M())}let B={tabIndex:-1,role:`region`,"aria-live":`polite`,"aria-atomic":!1,"aria-relevant":`additions text`,"aria-label":`Notifications`,onMouseEnter:j,onMouseMove:j,onMouseLeave:ie,onFocus:R,onBlur:z,onKeyDown:re,onClick:R,onPointerDown:F,onPointerUp:L,onPointerCancel:L,style:{[K]:O?`${O}px`:void 0}},V={expanded:S},H=!_&&D&&(0,P.jsx)(E,{onFocus:ne}),U=g(`div`,e,{ref:[t,c.setViewport],state:V,props:[B,s,{children:(0,P.jsxs)(N.Fragment,{children:[H,o,H]})}]});return(0,P.jsxs)(N.Fragment,{children:[H,U,!x&&te.length>0&&(0,P.jsx)(`div`,{style:ee,children:te.map(e=>(0,P.jsxs)(`div`,{role:`alert`,"aria-atomic":!0,children:[(0,P.jsx)(`div`,{children:e.title}),(0,P.jsx)(`div`,{children:e.description})]},e.id))})]})});ae.displayName=`ToastViewport`;var oe=N.createContext(void 0);oe.displayName=`ToastRootContext`;function se(){let e=N.useContext(oe);if(!e)throw Error(`Base UI: ToastRootContext is missing. Toast parts must be used within <Toast.Root>.`);return e}var ce=`--toast-index`,le=`--toast-offset-y`,ue=`--toast-height`,de=`--toast-swipe-movement-x`,fe=`--toast-swipe-movement-y`,q=`data-swipe-direction`,pe={...s,swipeDirection(e){return e?{[q]:e}:null}},me=40,he=10,ge=.5,_e=1,ve=`${o},${n}`,J=N.forwardRef(function(e,t){let{toast:n,render:i,className:a,swipeDirection:o=[`down`,`right`],style:s,...c}=e,l=n.positionerProps?.anchor!==void 0,d=[];l||(d=Array.isArray(o)?o:[o]);let p=d.length>0,h=I(),[_,v]=N.useState(void 0),[y,b]=N.useState(!1),[ee,S]=N.useState(!1),[E,D]=N.useState({x:0,y:0}),[O,k]=N.useState({x:0,y:0,scale:1}),[te,ne]=N.useState(),[re,F]=N.useState(),[L,R]=N.useState(null),z=N.useRef(null),B=N.useRef(void 0),V=N.useRef({x:0,y:0}),H=N.useRef({x:0,y:0,scale:1}),U=N.useRef(void 0),W=N.useRef(0),G=N.useRef(!1),K=N.useRef({x:0,y:0}),ae=N.useRef(!1),se=N.useRef({x:0,y:0}),q=N.useRef(null),J=N.useRef(null),ye=h.useState(`toastIndex`,n.id),Y=h.useState(`toastVisibleIndex`,n.id),be=h.useState(`toastOffsetY`,n.id),xe=h.useState(`focused`),X=h.useState(`expanded`);r({open:n.transitionStatus!==`ending`,ref:z,onComplete(){n.transitionStatus===`ending`&&h.removeToast(n.id)}});let Z=m((e=!1)=>{let t=z.current;if(!t)return;let r=t.style.height;t.style.height=`auto`;let i=t.offsetHeight;t.style.height=r;function a(){h.updateToastInternal(n.id,{ref:z,height:i,transitionStatus:void 0})}e?ie.flushSync(a):a()});x(()=>{let e=B.current;(n.transitionStatus===`starting`||e!==n.id)&&(e!==void 0&&(v(void 0),k({x:0,y:0,scale:1}),Q({x:0,y:0})),B.current=n.id,Z())},[Z,n.id,n.transitionStatus]);function Q(e){se.current=e,D(e)}x(()=>()=>{J.current?.abort()},[]);function Se(e,t){let n=e=>e>0?e**ge:-(Math.abs(e)**ge),r=e>0&&!d.includes(`right`)||e<0&&!d.includes(`left`),i=t>0&&!d.includes(`down`)||t<0&&!d.includes(`up`);return{x:r?n(e):e,y:i?n(t):t}}let $=m(e=>{if(e.pointerId!==q.current)return;q.current=null,J.current?.abort(),J.current=null,b(!1),S(!1),R(null);let t=H.current;if(e.type===`pointercancel`||G.current){Q({x:t.x,y:t.y}),v(void 0);return}let r=se.current,i=r.x-t.x,a=r.y-t.y,o;for(let e of d)if(M(e,i,a)>me){o=e;break}o?(v(o),h.closeToast(n.id)):(Q({x:t.x,y:t.y}),v(void 0))});function Ce(e){if(e.button!==0||(e.pointerType===`touch`&&h.pauseTimers(),w(e.nativeEvent)?.closest(`button,a,input,textarea,[role="button"],${ve}`)))return;G.current=!1,U.current=void 0,W.current=0,q.current=e.pointerId,V.current={x:e.clientX,y:e.clientY},K.current=V.current;let t=e.currentTarget,n=j(t);H.current=n,k(n),Q({x:n.x,y:n.y}),h.set(`hovering`,!0),b(!0),S(!1),R(null),ae.current=!0,J.current?.abort();let r=new AbortController;J.current=r;let i=T(t);i.addEventListener(`pointerup`,$,{signal:r.signal}),i.addEventListener(`pointercancel`,$,{signal:r.signal}),t.setPointerCapture?.(e.pointerId)}function we(e){if(e.pointerId!==q.current)return;e.preventDefault(),ae.current&&=(V.current={x:e.clientX,y:e.clientY},!1);let{clientY:t,clientX:n,movementX:r,movementY:i}=e;(i<0&&t>K.current.y||i>0&&t<K.current.y)&&(K.current={x:K.current.x,y:t}),(r<0&&n>K.current.x||r>0&&n<K.current.x)&&(K.current={x:n,y:K.current.y});let a=n-V.current.x,o=t-V.current.y,s=t-K.current.y,c=n-K.current.x,l=L;if(!ee&&Math.sqrt(a*a+o*o)>=_e){S(!0);let e=d.includes(`left`)||d.includes(`right`),t=d.includes(`up`)||d.includes(`down`);e&&t&&(l=Math.abs(a)>Math.abs(o)?`horizontal`:`vertical`,R(l))}let u;if(!U.current)l===`vertical`?o>0?u=`down`:o<0&&(u=`up`):l===`horizontal`?a>0?u=`right`:a<0&&(u=`left`):u=Math.abs(a)>=Math.abs(o)?a>0?`right`:`left`:o>0?`down`:`up`,u&&d.includes(u)&&(U.current=u,W.current=M(u,a,o),v(u));else{let e=U.current,t=M(e,c,s);t>me?(G.current=!1,v(e)):!(d.includes(`left`)&&d.includes(`right`))&&!(d.includes(`up`)&&d.includes(`down`))&&W.current-t>=he&&(G.current=!0)}let f=Se(a,o),p=H.current.x,m=H.current.y,h=d.includes(`left`)||d.includes(`right`),g=d.includes(`up`)||d.includes(`down`);l!==`vertical`&&h&&(p+=f.x),l!==`horizontal`&&g&&(m+=f.y),Q({x:p,y:m})}function Te(e){if(e.key===`Escape`){if(!z.current||!u(z.current,f(T(z.current))))return;h.closeToast(n.id)}}N.useEffect(()=>{let e=z.current;if(!p||!e)return;function t(t){q.current!==null&&u(e,w(t))&&t.preventDefault()}return C(e,`touchmove`,t,{passive:!1})},[p]);function Ee(){let e=E.x-O.x,t=E.y-O.y;return{transition:y?`none`:void 0,transform:y?`translateX(${E.x}px) translateY(${E.y}px) scale(${O.scale})`:void 0,[de]:`${e}px`,[fe]:`${t}px`}}let De=n.priority===`high`,Oe={role:De?`alertdialog`:`dialog`,tabIndex:0,"aria-modal":!1,"aria-labelledby":te,"aria-describedby":re,"aria-hidden":De&&!xe?!0:void 0,onPointerDown:p?Ce:void 0,onPointerMove:p?we:void 0,onPointerUp:p?$:void 0,onPointerCancel:p?$:void 0,onKeyDown:Te,inert:A(n.limited),style:{...Ee(),[ce]:n.transitionStatus===`ending`?ye:Y,[le]:`${be}px`,[ue]:n.height?`${n.height}px`:void 0}},ke=N.useMemo(()=>({toast:n,setTitleId:ne,setDescriptionId:F,recalculateHeight:Z,visibleIndex:Y,expanded:X}),[n,ne,F,Z,Y,X]),Ae={transitionStatus:n.transitionStatus,expanded:X,limited:n.limited||!1,type:n.type,swiping:y,swipeDirection:_},je=g(`div`,e,{ref:[t,z],state:Ae,stateAttributesMapping:pe,props:[Oe,c]});return(0,P.jsx)(oe.Provider,{value:ke,children:je})});J.displayName=`ToastRoot`;function ye(e){return e==null||typeof e==`boolean`||e===``?!1:!Array.isArray(e)||e.some(ye)}function Y(e){return N.isValidElement(e)&&ye(e.props.children)}function be(e,t,n){let{toast:r,setTitleId:i,setDescriptionId:a}=se(),o=n===`title`?i:a,s=t??(n===`title`?r.title:r.description);return{id:y(e),children:s,type:r.type,setId:o}}function xe(e,t,n){let r=Y(e);return x(()=>{if(r)return n(t),()=>{n(e=>e===t?void 0:e)}},[r,t,n]),r?e:null}var X=N.forwardRef(function(e,t){let{render:n,className:r,style:i,id:a,children:o,...s}=e,{id:c,children:l,type:u,setId:d}=be(a,o,`description`);return xe(g(`p`,e,{ref:t,state:{type:u},props:{...s,id:c,children:l}}),c,d)});X.displayName=`ToastDescription`;var Z=N.createContext(void 0);Z.displayName=`ToastPositionerContext`;function Q(){let e=N.useContext(Z);if(e===void 0)throw Error(`Base UI: ToastPositionerContext is missing. ToastPositioner parts must be placed within <Toast.Positioner>.`);return e}var Se=N.forwardRef(function(e,t){let{toast:n,...r}=e,i=I(),a=n.positionerProps??S,{render:o,className:s,anchor:c=a.anchor,positionMethod:u=a.positionMethod??`absolute`,side:f=a.side??`top`,align:p=a.align??`center`,sideOffset:m=a.sideOffset??0,alignOffset:g=a.alignOffset??0,collisionBoundary:_=a.collisionBoundary??`clipping-ancestors`,collisionPadding:v=a.collisionPadding??5,arrowPadding:y=a.arrowPadding??5,sticky:b=a.sticky??!1,disableAnchorTracking:x=a.disableAnchorTracking??!1,collisionAvoidance:ee=a.collisionAvoidance??d,style:C,...w}=r,[T,E]=N.useState(null),D=i.useState(`toastIndex`,n.id),O=i.useState(`toastVisibleIndex`,n.id),k=l(c)?c:null,A=re({open:!0,onOpenChange:h,elements:{floating:T,reference:k}}),j=te({anchor:k,positionMethod:u,floatingRootContext:A,mounted:!0,side:f,sideOffset:m,align:p,alignOffset:g,collisionBoundary:_,collisionPadding:v,sticky:b,arrowPadding:y,disableAnchorTracking:x,keepMounted:!0,collisionAvoidance:ee}),M={side:j.side,align:j.align,anchorHidden:j.anchorHidden},ie=ne(e,M,{styles:{...j.positionerStyles,[ce]:n.transitionStatus===`ending`?D:O},transitionStatus:n.transitionStatus,props:w,refs:[t,E]});return(0,P.jsx)(Z.Provider,{value:j,children:ie})});Se.displayName=`ToastPositioner`;function $(){let e=I(),t=e.useState(`toasts`);return N.useMemo(()=>({toasts:t,add:e.addToast,close:e.closeToast,update:e.updateToast,promise:e.promiseToast}),[t,e])}function Ce(){let e=new Set;function t(t){e.forEach(e=>e(t))}return{" subscribe":function(t){return e.add(t),()=>{e.delete(t)}},add(e){let n=e.id||R(`toast`);return t({action:`add`,options:{...e,id:n,transitionStatus:`starting`}}),n},close(e){t({action:`close`,options:{id:e}})},update(e,n){t({action:`update`,options:{id:e,updates:n}})},promise(e,n){let r=e;return t({action:`promise`,options:{...n,promise:e,setPromise(e){r=e}}}),r}}}export{ae as a,xe as c,Q as d,I as f,J as i,be as l,Se as n,Ce as o,se as p,W as r,Y as s,X as t,$ as u};
2
+ //# sourceMappingURL=createToastManager-onmoqrmr8zo02rif-V5YAqQyh.js.map
@@ -0,0 +1,6 @@
1
+ var e={app:{name:`Cloudhal Studio`,tagline:`Melde dich an, um deine Websites zu verwalten.`},playground:{title:`Playground`,description:[[2,`count`,{one:[`Noch `,[4],` Minute`],other:[`Noch `,[4],` Minuten`]}],`. Alles hier wird gelöscht, wenn die Sitzung endet – gib also keine persönlichen Daten ein.`],reset:`Zurücksetzen`,deploy:`Auf Cloudflare deployen`,unavailableTitle:`In deiner eigenen Installation verfügbar`,unavailableDescription:`Teammitglieder, Agent-Schlüssel und Kontoeinstellungen brauchen eine Anmeldung, deshalb lässt der Playground sie weg. Deploye Cloudhal in dein Cloudflare-Konto, um sie zu nutzen.`},common:{save:`Speichern`,cancel:`Abbrechen`,delete:`Löschen`,publish:`Veröffentlichen`,rollBack:`Zurücksetzen`,loading:`Wird geladen…`,signOut:`Abmelden`,live:`Live`,language:`Sprache`,more:`Mehr`,rev:`rev {rev}`,close:`Schließen`,optional:`(optional)`,moreInformation:`Weitere Informationen`,copy:`Kopieren`,copied:`Kopiert`,retry:`Erneut versuchen`,discard:`Verwerfen`,saveChanges:`Änderungen speichern`,unsaved:`Ungespeicherte Änderungen`,onThisPage:`Auf dieser Seite`,on:`An`,off:`Aus`,deleteResource:{title:`{name} löschen`,warning:`Diese Aktion kann nicht rückgängig gemacht werden. {type} {name} wird dauerhaft gelöscht.`,typeToConfirm:`Gib {name} zur Bestätigung ein:`,copy:`{name} in die Zwischenablage kopieren`,confirmInput:`Gib {name} ein, um das Löschen zu bestätigen`,delete:`{type} löschen`}},theme:{label:`Design`,current:`Design: {name}`,light:`Hell`,dark:`Dunkel`,system:`System`},auth:{signInTitle:`Willkommen zurück`,signUpTitle:`Erstelle dein Konto`,signUpDescription:`Das erste Konto in einem neuen Studio wird dessen Inhaber.`,footer:`Open Source · Apache-2.0`,signIn:`Anmelden`,createAccount:`Konto erstellen`,name:`Name`,email:`E-Mail`,password:`Passwort`,passwordHint:`Mindestens 8 Zeichen`,failed:`Anmeldung fehlgeschlagen`,setupTitle:`Dieses Studio einrichten`,setupDescription:"Du hast den Einrichtungslink aus `cloudhal deploy` geöffnet. Das Konto, das du jetzt erstellst, wird Inhaber; danach ist die Registrierung geschlossen."},sites:{title:`Websites`,description:`Jede Website ist ein Graph aus Seiten und Inhalten, den Agents mit deiner Freigabe bearbeiten.`,columns:{project:`Projekt`,name:`Name`,slug:`Slug`,pages:`Seiten`,status:`Status`},notPublished:`Nicht veröffentlicht`,empty:`Noch keine Websites`,emptyDescription:`Erstelle eine im Terminal, dann erscheint sie hier.`,search:`Websites durchsuchen`,usageTitle:`Im Terminal`,usageDescription:`Alles in Studio ist auch ein CLI-Befehl, sodass Agents und Skripte dieselbe Arbeit erledigen können.`,open:`Öffnen`},pageHeaders:{media:{title:`Medien`,description:`Bilder, Videos, Audio, Dokumente und Datendateien dieser Website. Neue Dateien gehen mit der nächsten Veröffentlichung live.`},pages:{title:`Seiten`,description:`Die Routen dieser Website. Jede Seite ist ein Stapel von Abschnitten, die Themes rendern.`},articles:{title:`Artikel`,description:`Beiträge und andere Einträge, von Menschen oder Agents geschrieben und mit der Website veröffentlicht.`},snapshots:{title:`Snapshots`,description:`Eingefrorene Versionen der Website. Beim Veröffentlichen zeigt die Live-Website auf einen davon; beim Zurücksetzen auf einen früheren.`},activity:{title:`Aktivität`,description:`Jeder Tool-Aufruf, den ein Agent oder eine Person auf dieser Website gemacht hat, mit der Richtlinienentscheidung.`},approvals:{title:`Freigaben`,description:`Veröffentlichungen, Zurücksetzungen und Löschungen von Agents, ihre Änderungen im manuellen Modus, ihre Anfragen nach mehr Autonomie sowie Veröffentlichungen, die Personen mit ihrer Rolle nicht allein vornehmen dürfen, warten hier, bis jemand entscheidet, der das darf.`},settings:{title:`Einstellungen`,description:`Name, Sprachen, Domains und Vorschau-Links dieser Website.`},agents:{title:`Agents`,description:`Mit Schlüsseln arbeiten Agents, CI-Jobs und MCP-Clients an deinen Websites. Der Modus eines Schlüssels bestimmt, was der Agent selbst erledigt und was auf dich wartet.`},skills:{title:`Skills`,description:`Playbooks, die Agents über MCP lesen. Ein Aufruf unter einem Skill erhält nur die Scopes, die er deklariert, und die aufgeführten Tools warten immer auf eine Person.`},account:{title:`Konto`,description:`Dein Profil, wie du dich anmeldest und wer sonst Zugang zu diesem Studio hat.`},taxonomy:{title:`Kategorien & Schlagwörter`,description:`Wie Artikel eingeordnet und gefunden werden. Umbenennen, Zusammenführen oder Ausmustern ist eine Änderung und ein Snapshot und hinterlässt Weiterleitungen.`},navigation:{title:`Navigation`,description:`Die Menüs, mit denen sich Besucher zurechtfinden: Kopfzeile, Fußzeile und alle, die dein Theme platziert. Einträge verweisen auf Seiten und Kategorien, daher machen Umbenennungen sie nie kaputt.`},translations:{title:`Übersetzungen`,description:`Jede Seite und jeder Artikel nach Sprache: was fehlt, veraltet ist oder auf die Prüfung durch eine Person wartet.`},redirects:{title:`Weiterleitungen`,description:`Alte Adressen und wohin sie Besucher schicken. Slug-Änderungen, Zusammenführungen und Ausmusterungen legen sie automatisch an; du kannst auch eigene hinzufügen.`},team:{title:`Team`,description:`Wer an diesem Studio arbeitet und in welcher Rolle. Personen treten über einen einmaligen Einladungslink bei; ihre Agents dürfen nie mehr als sie selbst.`}},nav:{media:`Medien`,comments:`Kommentare`,overview:`Übersicht`,content:`Inhalte`,history:`Verlauf`,automation:`Automatisierung`,account:`Konto`,home:`Übersicht`,pages:`Seiten`,articles:`Artikel`,snapshots:`Snapshots`,agents:`Agents`,allSites:`Alle Websites`,sites:`Websites`,switchSite:`Website wechseln`,search:`Suchen oder Befehl ausführen…`,shortcutHint:`⌘K`,shortcutHintCtrl:`Strg K`,agentSkills:`Skills`,schedules:`Zeitpläne`,activity:`Aktivität`,agentKeys:`Schlüssel und MCP`,approvals:`Freigaben`,settings:`Einstellungen`,siteSettings:`Einstellungen`,taxonomy:`Kategorien & Schlagwörter`,navigation:`Navigation`,redirects:`Weiterleitungen`,translations:`Übersetzungen`,team:`Team`,analytics:`Analysen`},commands:{goMedia:`Zu Medien`,goComments:`Zu Kommentaren`,goAnalytics:`Zu Analysen`,placeholder:`Befehl eingeben…`,empty:`Kein passender Befehl`,hintNavigate:`Navigieren`,hintSelect:`Ausführen`,hintClose:`Schließen`,goOverview:`Zur Übersicht`,goArticles:`Zu Artikeln`,goSnapshots:`Zu Snapshots`,newArticle:`Neuer Artikel`,createSnapshot:`Snapshot erstellen`,publishSite:`Snapshot erstellen und Website veröffentlichen`,goActivity:`Zur Aktivität`,goAgents:`Zu Agents`,createAgentKey:`Agent-Schlüssel erstellen`,goSkills:`Zu Skills`,goAccount:`Zu den Kontoeinstellungen`,goTeam:`Zum Team`,goSiteSettings:`Zu den Website-Einstellungen`,goApprovals:`Zu Freigaben`,goTaxonomy:`Zu Kategorien und Schlagwörtern`,goNavigation:`Zu Navigationsmenüs`,goRedirects:`Zu Weiterleitungen`,goSchedules:`Zu Zeitplänen`,newSchedule:`Veröffentlichung planen…`,searchPlaceholder:`Inhalte suchen oder Befehl ausführen…`,searchEmpty:`Keine passenden Befehle oder Inhalte`,hintNewTab:`Neuer Tab`,groups:{commands:`Befehle`,entry:`Artikel`,page:`Seiten`,term:`Kategorien und Tags`,asset:`Medien`,menu:`Menüeinträge`,redirect:`Weiterleitungen`}},overview:{commentsWaiting:[[2,`count`,{one:[[4],` Kommentar wartet`],other:[[4],` Kommentare warten`]}]],commentsWaitingDescription:`Leser sehen sie erst, wenn jemand sie freigibt.`,liveSnapshotLabel:`Live-Snapshot`,notPublished:`Noch nicht veröffentlicht`,newPage:`Neue Seite`,pages:`Seiten`,columns:{title:`Titel`,path:`Pfad`,status:`Status`,updated:`Aktualisiert`},empty:`Noch keine Seiten`,emptyDescription:`Erstelle die erste Seite oder bitte den Agent, eine anzulegen.`,search:`Seiten durchsuchen`,status:`Status`,live:`Live`,recentArticles:`Neueste Artikel`,viewAll:`Alle anzeigen`,cli:`Im Terminal`},pageStatus:{publishTitle:`„{title}“ veröffentlichen?`,published:`Seite veröffentlicht`,unpublished:`Seite wieder als Entwurf`,failed:`Der Status der Seite hat sich nicht geändert`,leftOut:[[2,`count`,{one:[[4],` Seite ist nicht veröffentlicht`],other:[[4],` Seiten sind nicht veröffentlicht`]}]],leftOutDescription:`Entwürfe und Seiten in Prüfung, auch neue Übersetzungen, erscheinen nicht auf der Live-Website. Veröffentliche sie zuerst.`,review:`Seiten prüfen`},articles:{description:`Beiträge in der Sammlung „posts“.`,newArticle:`Neuer Artikel`,empty:`Noch keine Artikel`,emptyDescription:`Schreib den ersten oder bitte den Agent darum.`,untitled:`Ohne Titel`,columns:{title:`Titel`,author:`Autor`,status:`Status`,updated:`Aktualisiert`},search:`Artikel durchsuchen`,none:`—`,noCategory:`Keine Kategorie`,primary:`Hauptkategorie`,facets:{label:`Artikel filtern`,category:`Nach Kategorie filtern`,tag:`Nach Schlagwort filtern`,allCategories:`Alle {label}`,allTags:`Alle {label}`,clear:`Filter zurücksetzen`,empty:`Keine Artikel entsprechen diesen Filtern`,emptyDescription:`Versuche eine andere Kategorie oder ein anderes Schlagwort oder setze die Filter zurück.`}},articleCorrections:{title:`Korrekturen`,description:`Leser sehen diese am Ende des Artikels, die neueste zuerst, und die letzte bestimmt das Aktualisierungsdatum. Einmal veröffentlicht, bleibt eine Korrektur bestehen: Wer veröffentlichen darf, kann sie umformulieren, entfernen kann sie niemand.`,empty:`Keine Korrekturen`,emptyDescription:`Füge eine hinzu, wenn sich ein veröffentlichter Beitrag inhaltlich ändert.`,kind:`Art`,kinds:{correction:`Korrektur`,clarification:`Klarstellung`,update:`Aktualisierung`},note:`Was sich geändert hat`,noteHint:`Ein oder zwei Sätze. Markdown-Links und Hervorhebungen funktionieren.`,add:`Korrektur hinzufügen`,unsaved:`Nicht gespeichert`,remove:`Korrektur entfernen`,pending:`Speichere den Artikel, um sie hinzuzufügen; sie geht mit der nächsten Veröffentlichung live.`},articleTerms:{title:`Kategorien und Schlagwörter`,description:`Kategorien ordnen den Artikel ein, Schlagwörter beschreiben ihn. Die Hauptkategorie erscheint in der Breadcrumb-Navigation und in den Metadaten des Artikels.`,legacyDescription:`Diese Website speichert Schlagwörter noch als reinen Text. Überführe sie in Kategorien und Schlagwörter, um ihnen Namen, Archive und Weiterleitungen zu geben.`,legacyTitle:`Ältere Schlagwörter dieses Artikels`,legacyPending:`{tags} werden beim Speichern zu Schlagwörtern.`,required:`Wähle {singular}, um diesen Artikel zur Prüfung zu senden oder zu veröffentlichen.`,requiredToast:`Wähle zuerst {singular}`,slugRedirect:`Kleinbuchstaben, mit Bindestrichen. Dieser Artikel ist veröffentlicht: Ein neuer Slug hinterlässt eine Weiterleitung von der alten Adresse.`},pickers:{under:`in {path}`,clear:`Leeren`,showOptions:`Optionen anzeigen`,noMatch:`Keine Treffer`,remove:`{name} entfernen`,atMost:`Höchstens {max}. Entferne einen Eintrag, um einen weiteren hinzuzufügen.`,categoryHint:`Bis zu {max}. Tippe, um Namen und Synonyme zu durchsuchen.`,categoryRequiredHint:`Erforderlich, um zur Prüfung zu senden oder zu veröffentlichen. Bis zu {max}.`,categoryPlaceholder:`Kategorien wählen…`,noCategory:`Keine Kategorie passt. Füge Kategorien unter Kategorien & Schlagwörter hinzu.`,primary:`Hauptkategorie`,primaryHint:`Wird in der Breadcrumb-Navigation angezeigt und als Rubrik des Artikels verwendet.`,primaryNone:`Eine wählen…`,tagHint:`Bis zu {max}. Vorhandene Schlagwörter stehen zuerst, und Synonyme finden sie ebenfalls.`,tagPlaceholder:`Schlagwort hinzufügen…`,tagFull:`Schlagwort-Limit erreicht`,viaSynonym:`Synonym „{value}“`,similar:`ähnlich`,create:`„{name}“ erstellen`,createNoSlug:`Dieser Name enthält keine Buchstaben oder Ziffern für eine Adresse. Versuche einen anderen Namen.`,nearDuplicate:`Ähnelt {names}. Verwende das vorhandene Schlagwort, wenn es dasselbe bedeutet.`,proposedChip:`Von einem Agent vorgeschlagen. Es erhält eine öffentliche Seite, sobald jemand es freigibt.`},editor:{schedule:`Planen…`,locked:`Ein geplantes Release hält dies fest. Hebe die Planung auf, um zu bearbeiten.`,heroNoImage:`Kein Hero-Bild`,status:`Status`,title:`Titel`,slug:`Slug`,summary:`Zusammenfassung`,summaryHint:`Wird als Meta-Beschreibung in Suchergebnissen und bei geteilten Links verwendet.`,body:`Inhalt (Markdown)`,tags:`Schlagwörter`,tagsHint:`Durch Kommas getrennt`,path:`Pfad`,pathHint:`Absolut, Kleinbuchstaben, ohne abschließenden Schrägstrich`,sections:`Abschnitte`,addSection:`Abschnitt hinzufügen`,noSections:`Noch keine Abschnitte`,noSectionsDescription:`Füge einen Hero, Rich Text, ein Bild oder eine Inhaltsliste hinzu.`,remove:`Entfernen`,moveUp:`Nach oben`,moveDown:`Nach unten`,heading:`Überschrift`,subheading:`Unterüberschrift`,caption:`Bildunterschrift`,collection:`Sammlung`,limit:`Limit`,sort:`Sortierung`,sortNewest:`Neueste`,sortOldest:`Älteste`,sortTitle:`Titel`,saved:`Gespeichert`,sendToReview:`Zur Prüfung senden`,submitForReview:`Zur Prüfung einreichen`,backToDraft:`Zurück zum Entwurf`,archive:`Archivieren`,restore:`Als Entwurf wiederherstellen`,publishArticleTitle:`Diesen Artikel veröffentlichen?`,publishArticleDescription:`Er wird auf der Website sichtbar, sobald das nächste Mal ein Snapshot erstellt und die Website veröffentlicht wird.`,publishPageTitle:`Diese Seite veröffentlichen?`,publishPageDescription:`Sie geht beim nächsten Veröffentlichen der Website live. Andere Seiten und Sprachen behalten ihren eigenen Status.`,deleteArticle:`Artikel löschen`,deletePage:`Seite löschen`,article:`Artikel`,page:`Seite`,slugHint:`Kleinbuchstaben, mit Bindestrichen; wird zur URL.`,metadata:`Details`,moreActions:`Weitere Aktionen`,unpublish:`Veröffentlichung aufheben (zurück zum Entwurf)`,duplicate:`Duplizieren`,duplicated:`Kopie erstellt`,copyTitle:`{title} (Kopie)`,dangerZone:`Gefahrenbereich`,deletePageTitle:`Diese Seite löschen`,deletePageHint:`Entfernt die Seite und ihre Abschnitte. Veröffentlichte Snapshots behalten ihre Kopie.`,deleteArticleTitle:`Diesen Artikel löschen`,deleteArticleHint:`Entfernt den Artikel von der Website. Veröffentlichte Snapshots behalten ihre Kopie.`,removeSectionTitle:`Diesen Abschnitt entfernen?`,removeSectionDescription:`Der Abschnitt {kind} wird aus dem Entwurf entfernt. Die Seite ändert sich erst, wenn du speicherst.`,sectionKinds:{hero:`Hero`,richText:`Rich Text`,image:`Bild`,contentList:`Inhaltsliste`,component:`Block`,surface:`Generierte UI`},buildLive:`Live bauen`,buildLiveHint:`Sieh zu, wie Agents diese Seite in Echtzeit bauen`,surface:{title:`Generierte UI · {count} Komponenten`,hint:`Aus den Komponenten des Themes gebaut. Ändere die Texte hier; um das Layout zu ändern, frag die KI.`,json:`Generierte UI als Daten`,showJson:`JSON anzeigen`,outline:`Komponenten dieses Abschnitts`,expand:`Inhalt von {title} anzeigen`,collapse:`Inhalt von {title} ausblenden`,changeWithAi:`Mit KI ändern`,editTexts:`Texte von {title} bearbeiten`,changePart:`{title} mit KI ändern`,bound:`zeigt {path}`,computed:`berechnet ({fn})`,notPlaced:`Nicht auf der Seite`},blocks:{menu:`Blöcke`,unknown:`Unbekannter Block · {type}`,unknownHint:`Dieses Deployment hat keinen Blocktyp mit diesem Namen (vielleicht hat sich das Theme geändert). Er bleibt unverändert erhalten und wird auf der Website nicht angezeigt.`,item:`Element {n}`,addItem:`Element hinzufügen`,removeItem:`Element entfernen`,moveUp:`Nach oben`,moveDown:`Nach unten`,values:{tone:{info:`Info`,success:`Erfolg`,warning:`Warnung`,danger:`Gefahr`},variant:{primary:`Primär`,secondary:`Sekundär`}}},bodyTitle:`Inhalt`,markdown:`Markdown`,words:[[2,`count`,{one:[[4],` Wort`],other:[[4],` Wörter`]}]],id:`ID`,revision:`Revision`,locale:`Sprache`,author:`Autor`,updatedAt:`Aktualisiert`,publishedAt:`Veröffentlicht`},seo:{counter:`{count} / {max}`,fixErrors:`Korrigiere die markierten Felder vor dem Speichern.`,cover:{title:`Titelbild`,description:`Wird über dem Artikel angezeigt und als Vorschaubild verwendet, wenn der Link geteilt wird. Wähle es aus der Mediathek oder lade dort ein neues hoch.`,url:`Bild-URL`,urlHint:`Eine https://-Adresse oder ein Pfad auf deiner Website wie /images/cover.jpg.`,urlPlaceholder:`https://… oder /images/cover.jpg`,alt:`Alternativtext`,altHint:`Beschreibe, was das Bild zeigt. Screenreader lesen es Menschen vor, die das Bild nicht sehen können, und Suchmaschinen nutzen es, um das Bild zu verstehen.`,altPlaceholder:`Ein Leuchtturm über ruhiger See in der Abenddämmerung`,remove:`Bild entfernen`,empty:`Kein Titelbild`,loading:`Bild wird geladen…`,broken:`Dieses Bild konnte nicht geladen werden`,brokenHint:`Prüfe die Adresse und ob das Bild öffentlich ist.`,brokenPathHost:`Website-Pfade werden von {host} geladen. Prüfe den Pfad oder ob die Website deployt ist.`,brokenPathNoDomain:`Website-Pfade werden von der primären Domain geladen. Füge unter Einstellungen › Domains eine hinzu, um sie hier zu sehen.`,size:`{width} × {height} px`,errors:{required:`Gib eine Bildadresse ein oder entferne das Bild.`,insecure:`Verwende https://. Browser blockieren http-Bilder auf sicheren Websites.`,invalid:`Gib eine https://-Adresse oder einen Pfad ein, der mit / beginnt.`,tooLong:`Höchstens 2.048 Zeichen.`,altRequired:`Beschreibe das Bild. Für ein Titelbild ist ein Alternativtext erforderlich.`,altTooLong:`Höchstens 500 Zeichen.`}},preview:{title:`Such- und Social-Vorschau`,description:`So erscheint dieser Artikel in Suchergebnissen und wenn sein Link geteilt wird. Die Zusammenfassung dient als Meta-Beschreibung und das Titelbild als Vorschaubild.`,search:`Suchergebnis`,social:`Social Card`,noSummary:`Noch keine Zusammenfassung. Suchmaschinen und soziale Netzwerke wählen Text aus dem Artikel.`,noDescription:`Keine Meta-Beschreibung. Suchmaschinen wählen Text von der Seite.`},checks:{label:`Prüfungen`,title:`Titel`,titleGood:`{count} Zeichen. Passt in ein Suchergebnis.`,titleLong:`{count} Zeichen. Suchergebnisse kürzen Titel nach etwa 60.`,titleMissing:`Füge einen Titel hinzu.`,description:`Meta-Beschreibung`,summary:`Meta-Beschreibung (Zusammenfassung)`,descriptionGood:`{count} Zeichen. Passt in ein Suchergebnis.`,descriptionShort:`{count} Zeichen. Kurze Beschreibungen werden oft ersetzt; ziele auf 50–160.`,descriptionLong:`{count} Zeichen. Suchergebnisse kürzen nach etwa 160.`,summaryMissing:`Füge eine Zusammenfassung hinzu. Ohne sie wählen Suchmaschinen Text aus dem Artikel.`,image:`Vorschaubild`,imageSet:`Das Titelbild wird verwendet.`,imageMissing:`Kein Titelbild, daher zeigen geteilte Links kein Bild.`,imageBroken:`Das Titelbild lädt nicht.`,status:{good:`Gut`,short:`Kurz`,long:`Zu lang`,missing:`Fehlt`,broken:`Defekt`}},page:{title:`Suchmaschinen und Teilen`,description:`So erscheint diese Seite in Suchergebnissen und wenn ihr Link geteilt wird.`,seoTitle:`SEO-Titel`,seoTitleHint:`Leer lassen, um den Seitentitel zu verwenden.`,seoDescription:`Meta-Beschreibung`,seoDescriptionHint:`Ein oder zwei Sätze dazu, was die Seite bietet. Ziele auf 50–160 Zeichen.`,seoDescriptionPlaceholder:`Was Besucher auf dieser Seite finden`,noindex:`Vor Suchmaschinen verbergen`,noindexHint:`Fügt ein noindex-Tag hinzu. Die Seite bleibt über ihren Link erreichbar.`,noindexWarningTitle:`Diese Seite ist vor Suchmaschinen verborgen`,noindexWarning:`Suchmaschinen werden gebeten, sie nicht aufzuführen, und eine bereits gelistete Seite fällt nach ihrem nächsten Besuch heraus. Lass dies bei Seiten aus, die Menschen über die Suche finden sollen.`,advanced:`Erweitert`,custom:`Benutzerdefiniert`,canonical:`Kanonische URL`,canonicalHintHost:`Normalerweise leer: Die Adresse der Seite auf {host} wird verwendet. Setze sie nur, wenn das Original dieses Inhalts unter einer anderen Adresse liegt.`,canonicalHint:`Normalerweise leer: Die Adresse der Seite auf der primären Domain der Website wird verwendet. Setze sie nur, wenn das Original dieses Inhalts unter einer anderen Adresse liegt.`,canonicalPlaceholder:`https://example.com/original-page`,searchPreview:`Suchvorschau`,hidden:`Vor der Suche verborgen`,errors:{titleTooLong:`Höchstens 300 Zeichen.`,descriptionTooLong:`Höchstens 500 Zeichen.`,canonicalInvalid:`Gib eine vollständige Adresse ein, die mit https:// beginnt.`,canonicalTooLong:`Höchstens 2.048 Zeichen.`}},noindexBadge:`noindex`,noindexBadgeHint:`Vor Suchmaschinen verborgen. Ändere das in den Sucheinstellungen der Seite.`,noCover:`Kein Titelbild`,archive:{seoTitleHint:`Leer lassen, um den Namen des Begriffs zu verwenden.`,noindexHint:`Fügt dem Archiv ein noindex-Tag hinzu. Es bleibt über seinen Link erreichbar.`,noindexWarningTitle:`Dieses Archiv ist vor Suchmaschinen verborgen`,noindexWarning:`Suchmaschinen werden gebeten, es nicht aufzuführen, und es wird aus der Sitemap entfernt. Lass dies bei Themen aus, die Menschen über die Suche finden sollen.`}},status:{draft:`Entwurf`,review:`In Prüfung`,published:`Veröffentlicht`,archived:`Archiviert`},site:{publish:`Veröffentlichen`,publishDescription:`Einen Snapshot des aktuellen Graphen erstellen und ihn zur Live-Version machen.`,description:`/{slug} · {locale}`,rowMenu:`Weitere Aktionen`},snapshots:{description:`Jeder Snapshot ist unveränderlich; beim Veröffentlichen zeigt die Website auf einen davon.`,label:`Bezeichnung`,labelPlaceholder:`z. B. Morgenausgabe`,empty:`Noch keine Snapshots`,emptyDescription:`Erstelle einen Snapshot, um den aktuellen Zustand der Website einzufrieren.`,created:`Snapshot erstellt`,published:`Veröffentlicht`,publishedSnapshot:`Snapshot veröffentlicht`,rolledBack:`Zurückgesetzt`,failed:`Fehlgeschlagen`,rollbackTitle:`Live-Website zurücksetzen?`,publishTitle:`Auf der Live-Website veröffentlichen?`,createDescription:`Ein Snapshot des aktuellen Graphen wird erstellt und zur Live-Version.`,becomesLive:`{name} wird zur Live-Version.`,fromStudio:`Snapshot aus Studio`,publishedFromStudio:`Aus Studio veröffentlicht`,compare:`Vergleichen`,create:`Snapshot erstellen`,createTitle:`Einen Snapshot erstellen`,createIntro:`Friert die aktuellen Seiten, Artikel und Einstellungen der Website ein. Snapshots ändern sich nach dem Erstellen nie.`,labelDescription:`Optional. Wird in der Liste und in der Aktivität statt des Grunds angezeigt.`,afterCreate:`Nach dem Erstellen`,keepOption:`Live-Website unverändert lassen`,keepOptionDescription:`Nur den Snapshot speichern. Veröffentliche oder vergleiche ihn später in dieser Liste.`,publishOption:`Auf der Live-Website veröffentlichen`,publishOptionDescription:`Der Snapshot wird zur Live-Version. Du bestätigst, bevor etwas live geht.`,continueToPublish:`Weiter zum Veröffentlichen`,search:`Snapshots durchsuchen`,noMatches:`Keine passenden Snapshots`,noMatchesDescription:`Versuche eine andere Bezeichnung oder Snapshot-ID.`,actions:`Aktionen`,columns:{snapshot:`Snapshot`,actor:`Autor`,changes:`Änderungen`,when:`Erstellt`},reasons:{manual:`Manuell`,agentMutation:`Agent-Änderung`,publish:`Veröffentlichung`,rollback:`Zurücksetzung`,scheduled:`Geplant`,import:`Import`}},errors:{title:`Etwas ist schiefgelaufen`,conflict:`Jemand anderes hat dies geändert, seit du es geöffnet hast. Lade neu, um die neueste Version zu erhalten.`,api:{not_found:`Das ist nicht mehr da. Vielleicht hat es jemand gelöscht.`,forbidden:`Du hast keine Berechtigung dafür.`,unauthorized:`Deine Sitzung ist abgelaufen. Melde dich erneut an.`,rank:`Deine Rolle erlaubt das nicht.`,not_own:`Das kannst du nur mit deiner eigenen Arbeit tun.`,missing_scope:`Dieser Schlüssel oder diese Sitzung darf das nicht.`,rate_limited:`Zu viele Anfragen. Warte einen Moment und versuche es erneut.`,internal:`Auf dem Server ist etwas schiefgelaufen. Versuche es erneut.`,invalid_json:`Der Server hat eine Antwort gesendet, die Studio nicht lesen konnte. Versuche es erneut.`,unique:`Etwas mit diesem Namen oder dieser Adresse existiert bereits.`,slug_taken:`Diese Adresse wird bereits verwendet.`,path_conflict:`Eine andere Seite oder ein anderer Artikel verwendet diesen Pfad bereits.`,reserved_path:`Dieser Pfad ist für die Website selbst reserviert (Suche, Medien oder ein Sprachpräfix).`,in_use:`Es wird noch verwendet und kann daher nicht entfernt werden.`,quota_exceeded:`Das Speicherkontingent ist voll.`,too_large:`Diese Änderung ist für einen Vorgang zu groß. Teile sie auf.`,state_changed:`Das hat sich inzwischen geändert. Lade neu und versuche es erneut.`,network:`Der Server ist nicht erreichbar. Prüfe deine Verbindung und versuche es erneut.`,status:`Die Anfrage ist fehlgeschlagen (HTTP {status}).`}},agents:{description:`Mit Schlüsseln arbeiten Agents, CI-Jobs und MCP-Clients an deinen Websites. Jeder Schlüssel hat einen Modus, der bestimmt, was der Agent selbst erledigt und was auf dich wartet. Jeder Aufruf wird per Richtlinie geprüft und in der Aktivität der Website protokolliert.`,createKey:`Schlüssel erstellen`,search:`Schlüssel durchsuchen`,columns:{name:`Name`,owner:`Erstellt von`,mode:`Modus`,scopes:`Scopes`,created:`Erstellt`,status:`Status`},views:{mine:`Deine Schlüssel`,all:`Alle Schlüssel`},all:{title:`Alle Agent-Schlüssel in diesem Deployment`,description:`Als Administrator kannst du eine Erhöhung beenden oder jeden Schlüssel widerrufen. Nur wer einen Schlüssel erstellt hat, ändert seinen Modus oder erhöht ihn.`,search:`Schlüssel oder Personen durchsuchen`,empty:`Noch keine Agent-Schlüssel`,emptyDescription:`Schlüssel, die Personen erstellen, erscheinen hier mit ihrem Ersteller.`,unknownOwner:`Entferntes Mitglied`,elevateOnlyCreator:`Nur die Person, die diesen Schlüssel erstellt hat, kann ihn erhöhen. Du kannst eine Erhöhung beenden oder den Schlüssel widerrufen.`},roleCap:`Deine Rolle erlaubt Agent-Schlüssel bis zum Modus {mode}.`,narrowed:{badge:`Durch Rolle eingeschränkt`,hint:`Die Rolle des Erstellers begrenzt, was dieser Schlüssel gerade tun kann; mit diesen Scopes arbeitet er.`,hintRole:`Die Rolle des Erstellers ist jetzt {role}, daher arbeitet dieser Schlüssel mit diesen Scopes. Eine Beförderung erweitert ihn nicht wieder.`,stored:`Vergeben: {scopes}`},active:`Aktiv`,disabled:`Deaktiviert`,never:`Läuft nie ab`,expires:`Läuft am {when} ab`,unnamed:`Unbenannter Schlüssel`,keyPrefix:`{start}…`,fullAccess:`Vollzugriff`,scopesModeDefault:`Standard des Modus · {count} Scopes`,empty:`Noch keine Agent-Schlüssel`,emptyDescription:`Erstelle einen Schlüssel pro Agent oder Automatisierung, gewähre nur die nötigen Scopes und widerrufe ihn, wenn die Arbeit erledigt ist.`,noMatches:`Keine Schlüssel passen zu „{query}“`,notEnabledTitle:`Agent-Schlüssel sind auf diesem Server nicht verfügbar`,notEnabledDescription:`Dieser Server läuft ohne Anmeldung und kann daher keine Schlüssel ausstellen. Agents auf deinem Rechner können sich weiterhin über stdio mit cloudhal mcp verbinden.`,copyId:`Schlüssel-ID kopieren`,revoke:`Widerrufen`,revokeKey:`Schlüssel widerrufen`,keyResource:`Agent-Schlüssel`,revoked:`Schlüssel widerrufen`,revokedDescription:`{name} kann Studio nicht mehr erreichen.`,scopes:{"site:read":`Websites und Snapshots sehen`,"content:read":`Seiten und Artikel lesen`,"content:write":`Seiten und Artikel erstellen, bearbeiten und löschen`,"asset:upload":`Medien hochladen und eigene Uploads bearbeiten`,"asset:manage":`Beliebige Medien bearbeiten, ausmustern und löschen`,"analytics:read":`Analysen der Website lesen (keine personenbezogenen Daten)`,"site:write":`Website-Einstellungen ändern`,"preview:create":`Entwurfsvorschauen rendern`,"site:publish":`Einen Snapshot auf der Live-Website veröffentlichen`,"site:rollback":`Die Live-Website zurücksetzen`,"content:write:own":`Artikel erstellen und eigene ändern`,"content:draft:own":`Entwürfe schreiben und zur Prüfung senden`,"content:propose":`Textänderungen vorschlagen; du nimmst sie an oder lehnst sie ab`,"site:publish:own":`Veröffentlichen, wenn alle Änderungen eigene sind`,"comments:read":`Leserkommentare lesen (nie E-Mail-Adressen)`,"comments:moderate":`Kommentare labeln und verbergen; Freigaben warten auf dich`,"comments:moderate:own":`Kommentare zu eigenen Artikeln labeln und verbergen`,"comments:reply":`Antworten auf Kommentare entwerfen; du veröffentlichst sie`,"comments:reply:own":`Antworten zu eigenen Artikeln entwerfen; du veröffentlichst sie`,"schedules:read":`Zeitplan, Releases und Automatisierungsläufe sehen`,"schedules:write":`Releases, Embargos und Abläufe vorschlagen und planen`,"schedules:write:own":`Releases eigener Seiten und Artikel planen`,"releases:publish":`Releases freigeben; im Modus Auto laufen risikoarme ohne dich`,"releases:publish:own":`Releases freigeben, wenn alle Elemente eigene sind`},modes:{legend:`Modus`,names:{plan:`Plan`,manual:`Manuell`,edits:`Bearbeiten`,auto:`Auto`,bypass:`Bypass`},descriptions:{plan:`Liest deine Websites und rendert Vorschauen. Er kann Änderungen vorschlagen, nimmt sie aber nie vor.`,manual:`Fragt dich vor jeder Änderung, so klein sie auch ist.`,edits:`Erstellt und bearbeitet Inhalte frei. Jede Änderung wird als Snapshot gesichert und kann zurückgesetzt werden.`,auto:`Wie Bearbeiten, und kleine Artikel-Veröffentlichungen gehen ohne dich live.`,bypass:`Nichts wartet auf eine Person. Nur für cloudhal mcp auf deinem eigenen Rechner.`},waitsFor:[[3,`mode`,{plan:[`Wartet auf dich: nichts, da er nichts ändern kann`],manual:[`Wartet auf dich: jede Bearbeitung, Veröffentlichung, Zurücksetzung und Löschung`],edits:[`Wartet auf dich: Veröffentlichung, Zurücksetzung und Löschungen`],auto:[`Wartet auf dich: größere Veröffentlichungen, Zurücksetzung und Löschungen`],bypass:[`Wartet auf dich: nichts`],other:[`Wartet auf dich: jede Bearbeitung, Veröffentlichung, Zurücksetzung und Löschung`]}]],risk:{safest:`Am sichersten`,recommended:`Empfohlen`,caution:`Mit Vorsicht verwenden`},current:`Aktuell`,bypassHint:`Bypass, bei dem nichts auf eine Person wartet, ist für Schlüssel nicht verfügbar. Er existiert nur für den lokalen Server auf deinem eigenen Rechner:`,autoTitle:`Kleine Veröffentlichungen gehen ohne dich live`,autoDescription:`Im Modus Auto geht eine Veröffentlichung, die nur Artikel hinzufügt oder bearbeitet, sofort live: nichts entfernt, keine Seiten, Menüs, Website-Einstellungen, Taxonomien oder Weiterleitungen geändert, höchstens {limit} Änderungen. Die Aktivität markiert sie als automatisch freigegeben, und du kannst sie mit einem Klick zurücksetzen. Größere Veröffentlichungen, Zurücksetzung und Löschungen warten weiterhin auf dich.`,autoConfirm:`Mir ist klar, dass dieser Agent ohne meine Freigabe veröffentlichen kann`,autoConfirmRequired:`Bestätige, dass du verstehst, was der Modus Auto tut`},howModes:{title:`So funktionieren Modi`,description:`Ein Modus bestimmt, was ein Agent selbst erledigt und was auf dich wartet. Scopes bleiben die harte Grenze: Ein Modus gewährt nie mehr.`,columns:{mode:`Modus`,edits:`Inhalte`,publish:`Veröffentlichen`,rollback:`Zurücksetzen, löschen`},rules:{denied:`Blockiert`,waits:`Wartet`,free:`Frei`,lowRisk:`Klein: frei`},rulesHint:{denied:`Der Agent kann das in diesem Modus nicht tun.`,waits:`Der Agent fragt; du gibst es in der Aktivität › Freigaben der Website frei.`,free:`Der Agent erledigt das selbst. Jede Änderung wird als Snapshot gesichert.`,lowRisk:`Nur hinzugefügte oder bearbeitete Artikel, nichts entfernt, höchstens {limit} Änderungen. Alles Größere wartet auf dich.`},gated:`Wartet mit einem Schlüssel immer auf dich`,bypass:`Bypass gibt es nur auf deinem eigenen Rechner:`},changeMode:{menu:`Modus ändern`,title:`Modus ändern`,description:`Wähle, wie „{name}“ ab jetzt arbeitet.`,from:`Jetzt`,to:`Neu`,nextCallTitle:`Gilt ab dem nächsten Aufruf des Agents`,nextCall:`Bereits laufende Aufrufe werden im aktuellen Modus beendet. Die Änderung wird im Audit-Log protokolliert.`,submit:`Modus ändern`,failed:`Der Modus konnte nicht geändert werden`,changed:`Modus geändert`,changedDescription:`{name} arbeitet jetzt im Modus {mode}.`,elevatedTitle:`Erhöht auf {mode} bis {time}`,elevationKeeps:`Die Erhöhung bleibt bis {time} in Kraft, danach arbeitet der Schlüssel im Modus {mode}.`,elevationEnds:`{mode} erreicht den erhöhten Modus, daher beendet diese Änderung die Erhöhung.`},elevate:{menu:`Vorübergehend erhöhen`,menuDisabled:`Bereits in Auto, dem autonomsten Modus, den ein Schlüssel haben kann.`,title:`Vorübergehend erhöhen`,description:`Lass „{name}“ eine Zeit lang in einem autonomeren Modus arbeiten. Wenn die Zeit abgelaufen ist, kehrt er von selbst in seinen eigenen Modus zurück.`,ownMode:`Eigener Modus`,ownModeHint:`Bleibt unverändert. Der Schlüssel kehrt dorthin zurück, wenn die Erhöhung endet.`,legend:`Erhöhen auf`,duration:`Dauer`,presets:{15:`15 Min.`,60:`1 Stunde`,240:`4 Stunden`,1440:`1 Tag`,custom:`Benutzerdefiniert`},customValue:`Benutzerdefinierte Dauer`,customUnit:`Einheit`,units:{minutes:`Minuten`,hours:`Stunden`},customHint:`Zwischen {min} und {max}.`,customErrors:{invalid:`Gib eine Zahl ein`,tooShort:`Mindestens {min}`,tooLong:`Höchstens {max}`},reason:`Grund`,reasonPlaceholder:`z. B. Launch-Tag: kleine Updates selbst veröffentlichen`,reasonHint:`Optional. Wird im Audit-Log angezeigt.`,replacesTitle:`Dies ersetzt die geltende Erhöhung`,replaces:`„{name}“ arbeitet bis {time} im Modus {mode}. Die neue Erhöhung tritt an ihre Stelle.`,now:`Jetzt`,elevated:`Erhöht`,summary:`Bis {time} (in {duration}), dann zurück zu {from}.`,nextCall:`Gilt ab dem nächsten Aufruf des Agents. Du kannst sie über das Menü des Schlüssels vorzeitig beenden.`,submit:`Erhöhen`,failed:`Der Schlüssel konnte nicht erhöht werden`,done:`Schlüssel erhöht`,doneDescription:`{name} arbeitet bis {time} im Modus {mode}, dann wieder in {from}.`},elevation:{left:`noch {time}`,ownMode:`Eigener Modus: {mode}`,tooltip:`Von {from} erhöht bis {time}, durch {who}`,requestedReason:`Vom Agent angefordert: „{reason}“`,byYou:`dir`,temporary:`Vorübergehend erhöht`,marker:`Vorübergehend von {from} erhöht bis {time}`,endMenu:`Erhöhung jetzt beenden`,ended:`Erhöhung beendet`,endedDescription:`{name} ist wieder im Modus {mode}.`,endFailed:`Die Erhöhung konnte nicht beendet werden`,bannerTitle:[[2,`count`,{one:[[4],` Agent-Schlüssel ist erhöht`],other:[[4],` Agent-Schlüssel sind erhöht`]}]],bannerItem:`{name}: {from} → {to} bis {time}`,endNow:`Jetzt beenden`,endAll:`Alle jetzt beenden`,endsIn:`Endet in {time}`,extendAll:`Alle um {duration} verlängern`,howModes:`Brauchst du eine Zeit lang mehr Autonomie? Erhöhe einen Schlüssel vorübergehend, statt ihn in Auto zu lassen: Er kehrt von selbst in seinen eigenen Modus zurück.`},create:{title:`Agent-Schlüssel erstellen`,description:`Der Schlüssel handelt als Agent auf jeder Website, die du öffnen kannst, im gewählten Modus.`,stepMode:`Schritt 1 von 2 · Modus wählen`,stepDetails:`Schritt 2 von 2 · Name und Scopes`,continue:`Weiter`,mode:`Modus`,changeMode:`Ändern`,name:`Name`,namePlaceholder:`z. B. Claude Code auf meinem Laptop`,nameHint:`Agents erscheinen unter diesem Namen im Aktivitätsprotokoll.`,nameRequired:`Gib dem Schlüssel einen Namen`,advanced:`Erweitert: Scopes`,advancedHint:`Vorausgefüllt für den Modus {mode}. Scopes sind die harte Grenze; der Modus bestimmt, was auf dich wartet.`,customised:`Angepasst`,resetScopes:`Scopes des Modus verwenden`,missingScopesTitle:`Manches, was dieser Modus erlaubt, wird nicht funktionieren`,missingScopes:`Ohne {scopes} kann der Agent nicht alles tun, was der Modus {mode} erlaubt.`,scopes:`Scopes`,scopesRequired:`Wähle mindestens einen Scope`,groups:{read:`Lesen`,write:`Schreiben`,release:`Veröffentlichen und zurücksetzen`},groupHints:{read:`Genug für Agents, die recherchieren, zusammenfassen oder prüfen.`,write:`Änderungen werden als Snapshot gesichert und können zurückgesetzt werden.`,release:`Lässt den Agent ändern oder eine Änderung anfragen, was Besucher sehen.`},submit:`Schlüssel erstellen`,failed:`Der Schlüssel konnte nicht erstellt werden`,scopeAboveRole:`Deine Rolle kann das keinem Schlüssel geben.`,scopeNarrowed:`Deine Rolle gewährt {scope} nur für deine eigene Arbeit.`,errors:{scopeAboveRole:`Deine Rolle kann einem Schlüssel einige dieser Scopes nicht geben. Entferne die Häkchen und versuche es erneut.`,modeAboveRole:`Deine Rolle erlaubt keine Schlüssel in diesem Modus. Wähle einen weniger autonomen.`}},reveal:{title:`Kopiere deinen neuen Schlüssel`,description:`„{name}“ ist bereit. Dein Agent sendet ihn als Bearer-Token oder im Header x-api-key.`,warningTitle:`Du wirst diesen Schlüssel nicht wieder sehen`,warning:`Speichere ihn jetzt in deinem Passwortmanager oder im Secret Store des Agents. Geht er verloren, widerrufe ihn und erstelle einen neuen.`,key:`Agent-Schlüssel`,config:`Client-Konfiguration`,done:`Ich habe den Schlüssel gespeichert`},connect:{title:`Einen MCP-Client verbinden`,description:`Agents erreichen Studio über MCP unter dieser Adresse und senden ihren Schlüssel in einem Header. Beim Verbinden erfährt der Agent den Modus seines Schlüssels und weiß so, was auf dich wartet.`,endpoint:`MCP-Endpunkt`,header:`Header`,client:`Client`,clients:{claude:`Claude Code`,codex:`Codex`,cursor:`Cursor`,vscode:`VS Code`,generic:`Anderer Client`,stdio:`Lokal (stdio)`},hints:{claude:`Führe es in einem Terminal aus und prüfe die Verbindung dann mit /mcp in Claude Code.`,codex:`Codex liest den Schlüssel aus CLOUDHAL_API_KEY und sendet ihn als Bearer-Token. Trag die export-Zeile in dein Shell-Profil ein, damit der Schlüssel bei jedem Start von Codex gesetzt ist.`,cursor:`Füge es in ~/.cursor/mcp.json ein oder in .cursor/mcp.json in einem Projekt. Die Datei enthält den Schlüssel, halte sie also aus der Versionsverwaltung heraus.`,vscode:`Speichere es als .vscode/mcp.json in deinem Projekt. VS Code fragt einmal nach dem Schlüssel und bewahrt ihn in seinem Geheimnisspeicher auf.`,generic:`Jeder Client, der Streamable HTTP spricht: diese URL, mit dem Schlüssel als Bearer-Token im Authorization-Header. Der Header x-api-key funktioniert auch.`,stdio:`Starte auf deinem eigenen Rechner den stdio-Server im Website-Ordner; kein Schlüssel nötig. --mode legt fest, wie er arbeitet, und nur hier kann er bypass sein.`}}},activity:{search:`Tool, Akteur oder Skill suchen`,refresh:`Aktivität aktualisieren`,filters:{label:`Filter`,kind:`Akteurtyp`,decision:`Entscheidung`,allKinds:`Alle Akteure`,allDecisions:`Alle Entscheidungen`},kinds:{agent:`Agent`,human:`Person`,system:`System`},decisions:{allow:`Erlaubt`,deny:`Abgelehnt`,"approval-required":`Freigabe nötig`},outcomes:{ok:`Erfolgreich`,error:`Fehlgeschlagen`,pending:`Ausstehend`},columns:{when:`Wann`,actor:`Akteur`,tool:`Tool`,decision:`Entscheidung`,outcome:`Ergebnis`,skill:`Skill`,snapshot:`Snapshot`},empty:`Noch keine Aktivität`,emptyDescription:`Jeder Tool-Aufruf, den ein Agent oder eine Person über MCP macht, wird hier protokolliert: erlaubt, abgelehnt oder wartend auf Freigabe.`,noMatches:`Keine Ereignisse passen zu diesen Filtern`,noMatchesDescription:`Filter gelten für die bisher geladenen Ereignisse. Lade mehr, um weiter zurückzublicken.`,clearFilters:`Filter zurücksetzen`,showing:`{shown} von {loaded} geladenen Ereignissen angezeigt`,allLoaded:`Du hast das erste protokollierte Ereignis erreicht.`,loadMore:`Mehr laden`,notEnabledTitle:`Dieser Server führt kein Aktivitätsprotokoll`,notEnabledDescription:`Starte Studio mit cloudhal studio, um jeden Tool-Aufruf von Agents und Personen zu protokollieren.`,ownOnlyTitle:`Deine Aktivität`,ownOnly:`Du siehst, was du und deine Agents auf dieser Website getan haben. Redakteure und höhere Rollen sehen die Aktivität aller.`,viewEvent:`Details anzeigen`,detail:{when:`Zeit`,actor:`Akteur`,decision:`Entscheidung`,outcome:`Ergebnis`,skill:`Skill`,duration:`Dauer`,durationValue:`{ms} ms`,snapshot:`Snapshot`,viewChanges:`Änderungen anzeigen`,reason:`Warum`,input:`Eingabe`,noInput:`Dieser Aufruf hatte keine Eingabe.`,event:`Ereignis #{id}`,mode:`Modus`,modeHint:`Der Modus, den der Schlüssel des Agents bei diesem Aufruf hatte.`,elevation:`Erhöhung`,elevationHint:`Der eigene Modus des Schlüssels ist {from}. Sein Ersteller hat eine Zeit lang mehr Autonomie gewährt; wenn die Erhöhung endet, arbeitet der Schlüssel wieder im Modus {from}.`,elevationGranted:`Erhöhung gewährt`,elevationGrantedUntil:`Modus {mode} bis {time}, dann zurück zu {from}.`,requestedByAgent:`Beantwortet die Anfrage des Agents`},autoApproved:`Automatisch freigegeben`,autoApprovedHint:`Ohne eine Person live gegangen: Der Agent arbeitet im Modus Auto, und diese Veröffentlichung war risikoarm.`,autoApprovedTitle:`Ohne eine Person veröffentlicht`,autoApprovedCount:`Veröffentlichte Artikeländerungen: {count}`,autoApprovedDescription:`Der Agent arbeitet im Modus Auto, und diese Veröffentlichung hat nur Artikel hinzugefügt oder bearbeitet. Du kannst sie unter Snapshots zurücksetzen.`,autoApprovedDescriptionCount:`Der Agent arbeitet im Modus Auto, und diese Veröffentlichung hat nur Artikel hinzugefügt oder bearbeitet (insgesamt {count}). Du kannst sie unter Snapshots zurücksetzen.`,requestedByAgent:`Vom Agent angefordert`,requestedByAgentHint:`Der Agent hat diese Erhöhung angefordert, und eine Person hat sie unter Freigaben gewährt.`,recent:`Neueste Aktivität`,recentEmpty:`Noch keine Agent-Aktivität`,recentEmptyDescription:`Verbinde einen Agent, dann erscheinen seine Tool-Aufrufe hier.`},account:{description:`Dein Profil, wie du dich anmeldest und wer sonst noch Zugang zu diesem Studio hat.`,sections:{profile:`Profil`,password:`Passwort`,sessions:`Aktive Sitzungen`,notifications:`Benachrichtigungen`,access:`Studio-Zugang`,server:`Dieser Server`},notifications:{description:`Die Glocke in der oberen Leiste zeigt Erhöhungen, die bald enden, und Agents, die eine anfragen. Studio kann dich auch benachrichtigen, während es in einem Hintergrund-Tab läuft.`,switch:`Benachrichtige mich in diesem Browser, wenn eine Erhöhung bald endet oder ein Agent eine anfragt`,switchHint:`Nur solange Studio in einem Tab geöffnet ist. Jede Meldung erscheint einmal.`,permission:`Browser-Berechtigung`,permissions:{granted:`Erlaubt`,default:`Noch nicht gefragt`,denied:`Blockiert`},permissionHints:{granted:`Dieser Browser erlaubt Studio, Benachrichtigungen anzuzeigen.`,default:`Dein Browser fragt nach, wenn du Benachrichtigungen einschaltest.`,denied:`Wird in deinem Browser geändert, nicht in Studio.`},deniedTitle:`Benachrichtigungen sind für Studio blockiert`,denied:`Um sie einzuschalten, erlaube Benachrichtigungen für diese Website in den Website-Einstellungen deines Browsers (das Symbol neben der Adresse) und lade Studio dann neu.`,unsupported:`Dieser Browser kann keine Benachrichtigungen anzeigen. Die Glocke in der oberen Leiste zeigt trotzdem alles an.`,enabled:`Browser-Benachrichtigungen sind eingeschaltet`,test:`Test-Benachrichtigung senden`,testTitle:`Benachrichtigungen sind eingeschaltet`,testBody:`So sagt dir Studio Bescheid, wenn eine Erhöhung bald endet oder ein Agent eine anfragt.`},profile:{description:`Wie du in Studio und im Aktivitätsprotokoll jeder Website erscheinst.`,name:`Name`,nameHint:`Wird neben deinen Änderungen und Freigaben angezeigt.`,email:`E-Mail`,emailHint:`Mit dieser Adresse meldest du dich an. Sie kann hier nicht geändert werden.`,memberSince:`Mitglied seit {date}`,actorId:`Akteur-ID`,actorIdHint:`Wie Aktivitäten und Snapshots dich identifizieren.`,role:`Rolle`,roleHint:`Was du hier tun kannst. Ein Administrator oder der Inhaber ändert sie.`,saved:`Profil gespeichert`,failed:`Dein Profil konnte nicht gespeichert werden`,errors:{required:`Gib deinen Namen ein`,tooLong:`Verwende höchstens {max} Zeichen`}},password:{description:`Verwende eine lange Passphrase, die du nirgendwo sonst nutzt.`,current:`Aktuelles Passwort`,new:`Neues Passwort`,newHint:`Mindestens {min} Zeichen.`,confirmHint:`Gib das neue Passwort noch einmal ein.`,confirm:`Neues Passwort bestätigen`,show:`Passwort anzeigen`,hide:`Passwort verbergen`,signOutOthers:`Von allen anderen Sitzungen abmelden`,signOutOthersHint:`Empfohlen, falls jemand anderes dein altes Passwort kennen könnte.`,submit:`Passwort ändern`,changed:`Passwort geändert`,changedOthers:`Deine anderen Sitzungen wurden abgemeldet.`,failed:`Dein Passwort konnte nicht geändert werden`,errors:{currentRequired:`Gib dein aktuelles Passwort ein`,currentWrong:`Das ist nicht dein aktuelles Passwort`,newRequired:`Gib ein neues Passwort ein`,tooShort:`Verwende mindestens {min} Zeichen`,tooLong:`Verwende höchstens {max} Zeichen`,same:`Wähle ein anderes Passwort als das aktuelle`,confirmRequired:`Wiederhole das neue Passwort`,mismatch:`Die Passwörter stimmen nicht überein`}},sessions:{showAll:`Alle {count} anzeigen`,showFewer:`Weniger anzeigen`,description:`Browser und Clients, die bei deinem Konto angemeldet sind. Melde alle ab, die du nicht kennst. Agent-Schlüssel findest du unter Agents.`,columns:{device:`Gerät`,ip:`IP-Adresse`,lastActive:`Zuletzt aktiv`,signedIn:`Angemeldet`},current:`Dieses Gerät`,unknownDevice:`Unbekanntes Gerät`,unknownIp:`Unbekannt`,deviceOn:`{browser} auf {os}`,revoke:`Abmelden`,revokeLabel:`{device} abmelden`,signOutOthers:`Andere Sitzungen abmelden`,onlyThis:`Das ist deine einzige aktive Sitzung.`,count:`{count} aktiv`,revokeTitle:`Diese Sitzung abmelden?`,revokeDescription:`{device} muss sich erneut anmelden.`,revokeOthersTitle:`Alle anderen Sitzungen abmelden?`,revokeOthersDescription:`Alle Browser und Clients außer diesem müssen sich erneut anmelden. Agent-Schlüssel funktionieren weiter.`,revoked:`Sitzung abgemeldet`,revokedOthers:`Andere Sitzungen abgemeldet`,staleTitle:`Melde dich erneut an, um deine Sitzungen zu sehen`,staleDescription:`Zu deiner Sicherheit erfordert die Sitzungsliste eine Anmeldung innerhalb der letzten 24 Stunden.`,signInAgain:`Erneut anmelden`},access:{description:`Wer in diesem Studio ein Konto erstellen kann. Das wird dort festgelegt, wo der Server läuft, nicht hier.`,signUp:`Registrierung`,policies:{"first-user":`Nur Inhaber`,closed:`Geschlossen`,open:`Für alle offen`,unknown:`Nicht gemeldet`},explanations:{"first-user":`Die erste Person, die sich registriert hat, wurde Inhaber, und die Registrierung wurde direkt danach geschlossen. Alle anderen brauchen ein Konto, das für sie erstellt wird.`,closed:`Niemand kann sich registrieren. Konten werden vom Inhaber erstellt.`,open:`Jeder, der diese Adresse erreicht, kann ein Konto erstellen, und jedes Konto hat vollen Zugriff auf jede Website.`,unknown:`Dieser Server meldet nicht, wie die Registrierung konfiguriert ist.`},openWarningTitle:`Jeder kann sich registrieren`,openWarning:`Jedes Konto erhält vollen Zugriff auf jede Website. Schließe die Registrierung, bevor du diese Adresse teilst.`,howToChange:`Setze auf Cloudflare CLOUDHAL_SIGNUP im Admin-Worker auf open oder closed (nicht gesetzt bedeutet nur Inhaber). cloudhal studio auf deinem Rechner ist immer nur für den Inhaber.`,serverDescription:`Was dieses Studio-Deployment ausführt.`,features:{members:`Team und Rollen`,agentKeys:`Agent-Schlüssel`,mcp:`MCP-Server`,activity:`Aktivitätsprotokoll`,previewLinks:`Vorschau-Links`,deployTransfer:`Deployment und Übertragung`,approvals:`Freigaben in Studio`,elevationRequests:`Erhöhungsanfragen`},featureHints:{members:`Personen treten per Einladungslink bei und arbeiten in einer Rolle: Inhaber, Administrator, Redakteur, Autor oder Mitarbeiter.`,agentKeys:`Agents und CI-Jobs melden sich mit Schlüsseln an, die du erstellst.`,mcp:`Agents verbinden sich unter /mcp.`,activity:`Jeder Tool-Aufruf wird pro Website protokolliert.`,previewLinks:`Signierte Links, die Entwürfe auf der bereitgestellten Website zeigen.`,deployTransfer:`cloudhal push und pull können diesen Server erreichen.`,approvals:`Veröffentlichungs-, Zurücksetzungs- und Löschanfragen von Agents warten hier auf eine Person.`,elevationRequests:`Agents können für eine Weile einen autonomeren Modus anfragen; eine Person gewährt ihn unter Freigaben.`}}},siteSettings:{sections:{general:`Allgemein`,domains:`Domains`,collections:`Sammlungen`,appearance:`Erscheinungsbild`,design:`Designregeln`,previews:`Vorschau-Links`},design:{description:`Deine Marken- und Designregeln in Markdown (DESIGN.md). Jeder Agent und der Build-Chat lesen sie vor dem Bauen: wofür die Website da ist, ihre Farben und Schrift, bevorzugte Layouts und Komponenten, Seitenrezepte und was zu vermeiden ist. Sie prägen Entscheidungen, niemals Berechtigungen.`,label:`Regeln dieser Website`,placeholder:`## Marke
2
+ Wofür die Website da ist, wer sie liest, ihre Stimme.
3
+
4
+ ## Layout
5
+ …`,template:`Mit den Überschriften beginnen`,theme:`Regeln des Themes {theme}`,themeHint:`Agents lesen diese zuerst; deine Regeln haben Vorrang, wo sie abweichen.`,noTheme:`Das Theme {theme} liefert keine Designregeln mit.`,warnings:`Einen Blick wert`,saved:`Designregeln gespeichert`,failed:`Die Designregeln konnten nicht gespeichert werden`,count:`{count} von {max} Zeichen`,agentHint:`Agents können Änderungen vorschlagen; sie warten unter Freigaben auf eine Person.`},appearance:{description:`Farben, Schrift und Formen, die das Theme {theme} dich ändern lässt.`,none:`Das Theme {theme} hat keine änderbaren Designeinstellungen.`,publishHint:`Gespeicherte Änderungen erscheinen nach der nächsten Veröffentlichung auf der Website.`,saved:`Erscheinungsbild gespeichert`,failed:`Das Erscheinungsbild konnte nicht gespeichert werden`},collections:{description:`Wo die Einträge jeder Sammlung auf der Website liegen. Ein geändertes Präfix verschiebt die Adresse jedes Eintrags dieser Sammlung; alte Adressen funktionieren über eine dauerhafte Weiterleitung weiter. Lass ein Feld leer für den Standard, den Namen der Sammlung selbst. Neue Adressen gehen mit der nächsten Veröffentlichung live.`,preview:`Einträge liegen unter Adressen wie {url}`,previewMoved:`Einträge werden unter Adressen wie {url} liegen. Die alte Adresse {old} leitet dorthin weiter.`,exampleSlug:`mein-artikel`,empty:`Noch keine Sammlungen`,emptyDescription:`Sammlungen erscheinen hier, sobald die Website Artikel oder andere Einträge hat.`,saved:`Sammlungen gespeichert`,failed:`Die Sammlungen konnten nicht gespeichert werden`,errors:{slash:`Beginne mit einem Schrägstrich, etwa /blog`,trailingSlash:`Lass den Schrägstrich am Ende weg`,invalid:`Verwende Kleinbuchstaben, Ziffern und Bindestriche zwischen Schrägstrichen, etwa /blog oder /docs/guides`}},conflictTitle:`Diese Website wurde anderswo geändert`,conflictDescription:`Eine Person oder ein Agent hat diese Website gespeichert, nachdem du sie geöffnet hast. Lade die neueste Version, prüfe deine Änderung und speichere erneut.`,loadLatest:`Neueste laden`,general:{description:`Die Grundlagen, die Agents und Themes für diese Website sehen.`,name:`Website-Name`,nameHint:`Wird in Studio angezeigt und steht dem Theme zur Verfügung.`,slug:`Slug`,slugHint:`Identifiziert die Website in der CLI und der API. Er kann nicht geändert werden.`,siteId:`Website-ID`,defaultLocale:`Standardsprache`,defaultLocaleHint:`Wird für neue Seiten und Artikel verwendet, die keine Sprache angeben.`,locales:`Sprachen`,localesHint:`Die Sprachen, in denen diese Website veröffentlicht.`,saved:`Einstellungen gespeichert`,failed:`Die Einstellungen konnten nicht gespeichert werden`,errors:{required:`Gib der Website einen Namen`,tooLong:`Verwende höchstens {max} Zeichen`}},domains:{description:`Hostnamen, die diese Website ausliefern. Die primäre Domain wird für Vorschau-Links verwendet.`,dnsHint:`Eine Domain hier hinzuzufügen, hinterlegt sie bei der Website. Richte ihr DNS separat auf dein Deployment aus.`,columns:{hostname:`Hostname`,role:`Rolle`},primary:`Primär`,alias:`Alias`,add:`Domain hinzufügen`,hostname:`Hostname`,placeholder:`www.example.com`,makePrimary:`Zur primären machen`,remove:`Domain entfernen`,visit:`Besuchen`,empty:`Noch keine Domains`,emptyDescription:`Füge den Hostnamen hinzu, den Besucher verwenden. Bis dahin kommen Vorschau-Links als Token ohne URL.`,added:`Domain hinzugefügt`,addedDescription:`{hostname} liefert jetzt diese Website aus.`,addedPrimaryDescription:`{hostname} ist die primäre Domain.`,removed:`Domain entfernt`,primaryChanged:`Primäre Domain geändert`,primaryChangedDescription:`{hostname} ist jetzt die primäre Domain.`,removeTitle:`{hostname} entfernen?`,removeDescription:`Die Website führt diesen Hostnamen nicht mehr. Sein DNS wird nicht geändert.`,removePrimaryDetail:`{next} wird zur primären Domain.`,removeLastDetail:`Die Website hat dann keine Domain, daher enthalten Vorschau-Links keine URL.`,failed:`Die Domains konnten nicht aktualisiert werden`,errors:{required:`Gib einen Hostnamen ein`,invalid:`Verwende einen Hostnamen wie blog.example.com: Buchstaben, Ziffern und Bindestriche, kein Port`,tooLong:`Hostnamen haben höchstens 253 Zeichen`,duplicate:`Diese Website hat diese Domain bereits`}},previews:{description:`Signierte Links, mit denen jemand ohne Studio-Konto Entwürfe oder einen früheren Snapshot auf der bereitgestellten Website sehen kann.`,target:`Anzeigen`,targets:{live:`Aktuelle Entwürfe`,snapshot:`Einen Snapshot`},targetHints:{live:`Alles, was in Studio gespeichert ist, veröffentlicht oder nicht.`,snapshot:`Genau so, wie die Website zu diesem Snapshot aussah.`},snapshot:`Snapshot`,snapshotPlaceholder:`Snapshot auswählen`,noSnapshots:`Diese Website hat noch keine Snapshots.`,snapshotRequired:`Wähle einen Snapshot aus`,live:`live`,path:`Seite`,pathHint:`Leer lassen für die Startseite.`,pathPlaceholder:`blog/hello`,pathInvalid:`Verwende einen Pfad wie /blog/hello, keine vollständige URL`,ttl:`Läuft ab nach`,ttls:{"1h":`1 Stunde`,"1d":`1 Tag`,"7d":`7 Tagen`},create:`Link erstellen`,created:`Vorschau-Link erstellt`,result:`Vorschau-Link`,expires:`Läuft am {when} ab`,opens:`Öffnet {path}`,showing:{live:`Entwürfe`,snapshot:`Snapshot`},openLink:`Link öffnen`,token:`Token`,noDomainTitle:`Diese Website hat keine Domain, daher gibt es keine vollständige URL`,noDomainDescription:`Füge oben eine Domain hinzu oder hänge ?cloudhal-preview= und diesen Token an die Adresse der bereitgestellten Website an.`,revokeHint:`Links können nicht einzeln widerrufen werden; sie funktionieren nicht mehr, wenn sie ablaufen. Das Rotieren des Vorschau-Secrets beendet alle Links auf einmal.`,notEnabledTitle:`Vorschau-Links sind auf diesem Server nicht aktiviert`,notEnabledDescription:`Setze das Secret CLOUDHAL_PREVIEW_SECRET im Admin-Worker, um Links zu signieren. cloudhal studio auf deinem Rechner zeigt Entwürfe stattdessen in der Editor-Vorschau.`,failed:`Der Link konnte nicht erstellt werden`}},skills:{description:`Playbooks, die Agents über MCP lesen. Ein Aufruf unter einem Skill kann nur die Scopes nutzen, die er deklariert, und die Tools, die er auflistet, warten immer auf eine Person.`,search:`Skills durchsuchen`,columns:{skill:`Skill`,scopes:`Scopes`,approval:`Braucht Freigabe`,references:`Referenzen`},none:`Keine`,referenceCount:[[2,`count`,{one:[[4],` Datei`],other:[[4],` Dateien`]}]],empty:`Keine Skills geladen`,emptyDescription:`Lege in deinem Projekt unter skills/ einen Ordner mit einer SKILL.md an und starte Studio dann neu.`,noMatches:`Keine Skills passen zu „{query}“`,notEnabledTitle:`Dieser Server führt kein MCP aus`,notEnabledDescription:`Skills erreichen Agents über MCP. Starte Studio mit cloudhal studio oder deploye den Admin-Worker, um sie auszuliefern.`,view:`Details anzeigen`,detail:{scopes:`Scopes`,scopesHint:`Aufrufe unter diesem Skill können höchstens diese nutzen und nie mehr, als der Schlüssel hat.`,approval:`Immer von einer Person freigegeben`,approvalHint:`Unter diesem Skill pausieren diese Tools für einen Menschen, egal was der Schlüssel erlaubt.`,noApproval:`Keine zusätzlichen Freigaben über die Tools hinaus, die immer eine brauchen.`,requires:`Erfordert`,references:`Referenzdateien`,noReferences:`Keine Referenzdateien.`,resource:`MCP-Ressource`,call:`Ein Tool unter diesem Skill aufrufen`},how:{title:`Wie Agents Skills nutzen`,steps:{read:`Der Agent listet die skill://-Ressourcen auf und liest die SKILL.md, die zur Aufgabe passt.`,declare:`Jeder Tool-Aufruf nennt den Skill in seinen Anfrage-Metadaten:`,narrow:`Die Richtlinie beschränkt diesen Aufruf auf die Scopes des Skills und nie über die eigenen Scopes des Schlüssels hinaus.`,approve:`Tools, die der Skill zur Freigabe auflistet, pausieren, bis eine Person zustimmt.`},example:`Ein Tool-Aufruf unter einem Skill`},add:{title:`Eigene hinzufügen`,description:`Studio lädt Skills aus dem Ordner skills/ deines Projekts. Ohne diesen liefert es den offiziellen Satz aus.`}},notifications:{title:`Benachrichtigungen`,bellCount:`Benachrichtigungen ({count})`,empty:`Du bist auf dem neuesten Stand`,emptyDescription:`Wenn eine Erhöhung bald endet oder ein Agent eine anfragt, erscheint das hier.`,settings:`Benachrichtigungseinstellungen`,openAgents:`Agents öffnen`,openTeam:`Team öffnen`,memberJoined:{title:`{name} ist beigetreten`,body:`hat deine Einladung angenommen.`,toast:`Die Person hat deine Einladung angenommen und arbeitet jetzt als {role}.`},roleChanged:{title:`Deine Rolle ist jetzt {role}`,body:`{name} hat sie geändert. Was du und deine Agents tun könnt, hat sich damit geändert.`},ending:{title:`Erhöhung endet bald`,sentence:`Der Modus {mode} von {name} endet in {left} ({time}), danach zurück zu {from}.`},request:{title:`{agent} fragt nach {mode} · {duration}`,reason:`„{reason}“`,review:`Prüfen`},comments:{pending:{title:[[2,`count`,{one:[[4],` Kommentar wartet auf Moderation`],other:[[4],` Kommentare warten auf Moderation`]}]],body:`Der älteste wartet seit {age}.`,bodyNew:`Niemand sieht sie, bis jemand sie freigibt.`},reported:{title:[[2,`count`,{one:[[4],` Kommentar wurde gemeldet`],other:[[4],` Kommentare wurden gemeldet`]}]],body:`Leser haben sie markiert. Eine Meldung verbirgt nie von selbst etwas.`},paused:{title:`Kommentare sind für heute pausiert`,body:`Das Tageslimit ({cap}) wurde erreicht. Neue Kommentare werden bis Mitternacht UTC abgelehnt.`},purgeWaiting:{title:`Ein verborgener Kommentar ist möglicherweise noch auf der Live-Seite`,body:`{count} Seiten warten darauf, dass der Cache aktualisiert wird.`,purge:`Website-Cache leeren`,purged:`Der Cache der Website wurde geleert`,failed:`Der Cache konnte nicht geleert werden`},approval:{title:`{agent} fragt zu Kommentaren`,tools:{moderate:`Er möchte Kommentare freigeben oder wiederherstellen. Sie werden öffentlich, sobald du zustimmst.`,reply:`Er hat eine Antwort entworfen, die unter deinem Namen veröffentlicht würde.`,thread:`Er möchte die Kommentare zu einem Artikel wieder öffnen.`,label:`Er möchte Kommentare mit Labels versehen.`}},review:`Prüfen`,open:`Kommentare öffnen`,settings:`Kommentareinstellungen`},toast:{endingTitle:`Der Modus {mode} von {name} endet in {left}`,endingBody:`Um {time} geht er zurück zu {from}. Verlängere ihn, falls der Agent ihn noch braucht.`},extend:{button:`Um {duration} verlängern`,group:`Erhöhung verlängern`,more:`Andere Dauern`,fromNow:`Zählt ab jetzt`,presets:{30:`30 Min.`,60:`1 Stunde`,240:`4 Stunden`},presetUntil:`{duration} · bis {time}`,done:`Erhöhung verlängert`,failed:`Die Erhöhung konnte nicht verlängert werden`,gone:`Diese Erhöhung ist bereits beendet`,goneDescription:`Es wurde nichts verlängert. Um den Schlüssel erneut zu erhöhen, nutze „Vorübergehend erhöhen“ auf der Seite Agents.`}},approvals:{refresh:`Freigaben aktualisieren`,pending:`Wartet auf dich`,pendingDescription:`Eine Freigabe erlaubt dem Agent, genau diesen Aufruf einmal auszuführen, oder gewährt die angefragte Erhöhung. Eine Ablehnung wird dem Agent mitgeteilt.`,history:`Verlauf`,noPending:`Nichts wartet auf dich`,noPendingDescription:`Wenn ein Agent veröffentlichen, zurücksetzen oder löschen möchte, für eine Weile einen autonomeren Modus anfragt oder im manuellen Modus arbeitet und etwas ändern will, erscheint seine Anfrage hier und der Agent wartet auf deine Entscheidung.`,elevation:{badge:`Erhöhungsanfrage`,sentence:`{agent} möchte {duration} lang im Modus {mode} arbeiten.`,history:`Erhöhung auf {mode} · {duration}`,historyShortened:`Erhöhung auf {mode} · {duration} (angefragt: {asked})`,reasonLabel:`Begründung des Agents`,noReason:`Der Agent hat keine Begründung angegeben.`,untilIfNow:`Bei Freigabe jetzt: bis {time}`,hint:`Eine Freigabe gewährt sie dem Schlüssel des Agents für die gewählte Zeit, danach kehrt der Schlüssel von selbst in seinen eigenen Modus zurück. Auf der Website ändert sich nichts.`,granted:`Gewährt`,cannotTake:`Der Schlüssel von {agent} arbeitet jetzt selbst im Modus {own}, daher gibt es nichts zu gewähren. Lehne die Anfrage ab, um den Agent zu informieren.`,title:`{agent} den Modus {mode} gewähren?`,description:`{agent} hat darum gebeten. Du kannst die Zeit verkürzen, nicht verlängern.`,mode:`Modus`,modeFixed:`Wie angefragt. Um einen anderen Modus zu gewähren, lehne diese Anfrage ab und erhöhe den Schlüssel unter Agents.`,presetHours:`{count} Std.`,presetMinutes:`{count} Min.`,requested:`Angefragt: {duration}. Kürzer ist in Ordnung, länger ist nicht möglich.`,summary:`{agent} arbeitet bis {time} im Modus {mode}, danach zurück zu {from}.`,summaryNoOwn:`{agent} arbeitet bis {time} im Modus {mode}, danach zurück in seinen eigenen Modus.`,nextCall:`Gilt ab dem nächsten Aufruf des Agents. Du kannst sie unter Agents vorzeitig beenden.`,submit:`Erhöhung gewähren`,failed:`Die Erhöhung konnte nicht gewährt werden`,stillPending:`Die Anfrage bleibt in der Liste, solange sie aussteht. Du kannst sie ablehnen oder gewähren, sobald der Schlüssel sie annehmen kann.`,done:`Erhöhung gewährt`,doneDescription:`{agent} arbeitet bis {time} im Modus {mode}, danach zurück zu {from}.`,doneDescriptionNoOwn:`{agent} arbeitet bis {time} im Modus {mode}.`,asksFor:`Fragt nach {mode}`,asksForTooltip:`{agent} möchte {duration} lang im Modus {mode} arbeiten. Öffne Freigaben, um zu entscheiden.`},manualPrompt:`{agent} arbeitet im manuellen Modus, daher wartet diese Änderung auf dich: {tool}.`,manualPromptShort:`Manueller Modus: {tool}`,bodyChanges:`Was eine Freigabe in „{title}“ ändert`,manualHint:`Der manuelle Modus fragt vor jeder Änderung. Eine Freigabe erlaubt dem Agent genau diese eine Bearbeitung mit genau diesen Argumenten; sie wird wie jede andere als Snapshot gesichert.`,autoHeldBack:`Der Auto-Modus veröffentlicht kleine Artikel-Updates selbstständig. Diese wartet auf dich, weil {reason}.`,autoCheck:{"removes-content":`es Inhalte entfernt`,nothing:`es nichts Neues zu veröffentlichen gibt`,structure:`es Seiten, Menüs, Website-Einstellungen, Taxonomien oder Weiterleitungen ändert`,"too-many":`es {changes} Änderungen enthält und der Auto-Modus bei {limit} stoppt`,media:`es Medien hinzufügt oder ändert, die nicht Teil einer Artikeländerung sind`,"outside-window":`es nach dem Ende der Autonomie des Agents laufen würde`,correction:`es einem veröffentlichten Artikel eine Korrektur hinzufügt`},noHistory:`Noch keine Entscheidungen`,noHistoryDescription:`Freigegebene, abgelehnte, genutzte und abgelaufene Anfragen werden hier aufgeführt.`,requested:`Angefragt`,expires:`Läuft ab`,expiresSoon:`Läuft bald ab`,arguments:`Argumente`,noArguments:`Dieser Aufruf hat keine Argumente.`,approve:`Freigeben`,deny:`Ablehnen`,withdraw:`Zurückziehen`,withdrawn:`Anfrage zurückgezogen`,decide:{own_request:`Du kannst deine eigene Anfrage nicht freigeben. Jemand, dessen Rolle es erlaubt, entscheidet.`,not_key_creator:`Nur die Person, die den Schlüssel dieses Agents erstellt hat, kann ihm mehr Autonomie gewähren.`,mode_above_role:`Deine Rolle erlaubt Agent-Schlüssel bis zum Modus {mode}, daher kannst du das nicht gewähren.`,missing_scope:`Deine Rolle kann diese Änderung nicht vornehmen, daher kannst du sie nicht freigeben.`,not_own:`Das umfasst Arbeit, die nicht deine ist. Ein Redakteur oder höher entscheidet darüber.`},role:{waiting:`Wartet auf einen Redakteur`,yours:`Du hast das angefragt. Du kannst es zurückziehen.`,prompt:`{name} möchte die Website veröffentlichen.`,foreign:`Es enthält {count} veröffentlichte Artikel von jemand anderem, und ihre Rolle veröffentlicht nur eigene Arbeit.`,structure:`Es ändert Seiten, Kategorien, Schlagwörter oder Weiterleitungen, die ihre Rolle nicht allein veröffentlichen kann.`,generic:`Ihre Rolle kann diese Änderungen nicht allein veröffentlichen.`,published:`Freigegeben und veröffentlicht`,publishedDescription:`Die Anfrage von {name} ist jetzt live.`,stateChanged:`Die Website hat sich nach dieser Anfrage geändert`,stateChangedDescription:`Die Anfrage wurde geschlossen, weil sie nicht mehr zur Website passt. Veröffentliche den aktuellen Stand selbst.`},approved:`Anfrage freigegeben`,approvedDescription:`{agent} kann diesen Aufruf jetzt einmal ausführen.`,denied:`Anfrage abgelehnt`,deniedDescription:`{agent} wird mitgeteilt, dass die Anfrage abgelehnt wurde.`,failed:`Deine Entscheidung konnte nicht gespeichert werden`,noLongerPending:`Diese Anfrage steht nicht mehr aus`,noLongerPendingDescription:`Sie wurde zwischenzeitlich entschieden, genutzt oder ist abgelaufen. Die Liste wurde aktualisiert.`,statuses:{pending:`Ausstehend`,approved:`Freigegeben`,denied:`Abgelehnt`,consumed:`Genutzt`,expired:`Abgelaufen`},columns:{request:`Anfrage`,status:`Status`,agent:`Angefragt von`,requested:`Angefragt`,decided:`Entschieden`},decidedBy:`von {actor}`,decidedByYou:`von dir`,notEnabledTitle:`Dieser Server speichert keine Freigaben`,notEnabledDescription:`Veröffentlichungs- und Zurücksetzungsanfragen von Agents werden hier in ihrem MCP-Client bestätigt. Freigaben in Studio brauchen cloudhal studio oder den Admin-Worker.`,confirm:{title:`„{tool}“ freigeben?`,requestedBy:`Angefragt von {agent}`,singleUseTitle:`Einmalig, für die Website im aktuellen Zustand`,singleUse:`{agent} darf genau diesen Aufruf einmal ausführen. Ändert sich auf der Website etwas, bevor der Agent erneut aufruft, verfällt die Freigabe und er muss erneut fragen.`,changes:`Ungefähre Änderungen`,changesHint:`Die Live-Version im Vergleich zum neuesten Snapshot. Bearbeitungen, die nach diesem Snapshot gespeichert wurden, werden ebenfalls veröffentlicht, aber hier nicht mitgezählt.`,viewChanges:`Änderungen ansehen`,first:`Noch ist nichts live: Diese Veröffentlichung macht die Website zum ersten Mal öffentlich.`,upToDate:`Der neueste Snapshot ist bereits live, daher würden nur seitdem gespeicherte Bearbeitungen veröffentlicht.`,rollbackTarget:`Live-Website wird zurückgesetzt auf`,deleteTarget:`Löscht`,submit:`Freigeben`},banner:{title:[[2,`count`,{one:[`Eine Agent-Anfrage wartet auf deine Freigabe`],other:[[4],` Agent-Anfragen warten auf deine Freigabe`]}]],description:`Agents können nicht veröffentlichen, zurücksetzen oder löschen, und Agents im manuellen Modus können nichts ändern, bis eine Person entscheidet.`,action:`Anfragen prüfen`}},tools:{list_assets:`Medien auflisten`,get_asset:`Mediendatei abrufen`,upload_asset:`Medien hochladen`,fetch_asset_url:`Medien von einer URL hinzufügen`,update_asset:`Mediendetails aktualisieren`,retire_asset:`Medien ausmustern`,restore_asset:`Medien wiederherstellen`,delete_asset:`Medien löschen`,assetUpload:`Datei hochladen`,assetUpdate:`Dateidetails aktualisieren`,assetRetire:`Datei ausmustern`,assetRestore:`Datei wiederherstellen`,assetDelete:`Datei löschen`,assetPurge:`Datei entfernen`,assetLiftPurge:`Datei wieder zulassen`,list_sites:`Websites auflisten`,get_site:`Website abrufen`,list_pages:`Seiten auflisten`,get_page:`Seite abrufen`,create_page:`Seite erstellen`,update_page:`Seite aktualisieren`,delete_page:`Seite löschen`,list_entries:`Artikel auflisten`,get_entry:`Artikel abrufen`,create_entry:`Artikel erstellen`,update_entry:`Artikel aktualisieren`,add_correction:`Korrektur hinzufügen`,delete_entry:`Artikel löschen`,get_theme_settings:`Designeinstellungen lesen`,set_theme_settings:`Designeinstellungen ändern`,list_block_types:`Blocktypen auflisten`,get_body:`Inhalt lesen`,edit_body:`Inhalt bearbeiten`,diff_node:`Versionen vergleichen`,create_snapshot:`Snapshot erstellen`,list_snapshots:`Snapshots auflisten`,diff_snapshots:`Snapshots vergleichen`,preview_page:`Seitenvorschau`,publish:`Website veröffentlichen`,rollback:`Website zurücksetzen`,list_menus:`Menüs auflisten`,get_menu:`Menü abrufen`,update_menu:`Menü aktualisieren`,set_menu:`Menü ersetzen`,delete_menu:`Menü löschen`,request_elevation:`Erhöhung anfragen`,list_comments:`Kommentare auflisten`,get_comment_thread:`Kommentar-Thread lesen`,comments_summary:`Kommentare zusammenfassen`,label_comments:`Kommentare labeln`,moderate_comments:`Kommentare moderieren`,draft_comment_reply:`Kommentarantwort entwerfen`,set_comment_thread:`Kommentar-Thread ändern`,list_schedule:`Zeitplan auflisten`,get_schedule:`Geplanten Eintrag abrufen`,list_releases:`Releases auflisten`,get_release:`Release abrufen`,propose_release:`Release vorschlagen`,schedule_release:`Release planen`,reschedule:`Release verschieben`,cancel_schedule:`Release abbrechen`,set_embargo:`Embargo setzen`,lift_embargo:`Embargo aufheben`,schedule_unpublish:`Ablauf planen`,list_automations:`Automatisierungen auflisten`,list_runs:`Läufe auflisten`,get_run:`Lauf abrufen`,begin_run:`Lauf beginnen`,end_run:`Lauf beenden`,pause_automation:`Automatisierung pausieren`,get_mode:`Modus abrufen`,agentKeyMode:`Modus des Agent-Schlüssels ändern`,agentKeyElevate:`Agent-Schlüssel erhöhen`,agentKeyElevationEnd:`Erhöhung beenden`,agentKeyNarrow:`Agent-Schlüssel einschränken`,agentKeyRevoke:`Agent-Schlüssel widerrufen`,memberInvite:`Mitglied einladen`,memberInviteRevoke:`Einladung widerrufen`,memberInviteFailed:`Einladungs-E-Mail fehlgeschlagen`,memberInviteAccept:`Einladung annehmen`,memberRole:`Rolle des Mitglieds ändern`,memberRemove:`Mitglied entfernen`,memberTransferOwnership:`Inhaberschaft übertragen`,memberPasswordReset:`Link zum Zurücksetzen des Passworts erstellen`,memberPasswordResetComplete:`Passwort zurücksetzen`},preview:{title:`Vorschau`,frameTitle:`Vorschau von {name}`,device:`Gerätebreite`,desktop:`Desktop`,tablet:`Tablet`,mobile:`Mobil`,reload:`Vorschau neu laden`,openInNewTab:`Vorschau in neuem Tab öffnen`,loading:`Vorschau wird geladen…`,unsaved:`Ungespeicherte Änderungen`,unsavedHint:`Die Vorschau zeigt die zuletzt gespeicherte Version. Speichere, um sie zu aktualisieren.`,edit:`Bearbeiten`,show:`Vorschau anzeigen`,hide:`Vorschau ausblenden`,toggleHint:`Die zuletzt gespeicherte Version neben dem Formular anzeigen`,toggleHintLive:`Die Seite mit deinen ungespeicherten Änderungen neben dem Formular anzeigen`,openSaved:`Die gespeicherte Version in einem neuen Tab öffnen`,failed:`Vorschau nicht verfügbar`},proposals:{title:`Vorschläge`,count:`{count} offen`,from:`{name} schlägt vor`,outOfDate:`Veraltet`,outOfDateHint:`Der Text hat sich seit diesem Vorschlag geändert. Lehne ihn ab oder bitte um einen neuen.`,accept:`Annehmen`,reject:`Ablehnen`,saveFirst:`Speichere oder verwirf zuerst deine Änderungen.`,accepted:`Vorschlag angenommen`,rejected:`Vorschlag abgelehnt`,failed:`Über den Vorschlag konnte nicht entschieden werden`,steps:`Anzunehmende Änderungen`,acceptSome:`{count} von {total} annehmen`,chooseRequired:`Wähle mindestens eine Änderung aus.`,step:{replace:`„{before}“ umschreiben`,replaceText:`„{before}“ zu „{after}“ ändern`,insert:`„{after}“ hinzufügen`,move:`„{before}“ verschieben`,delete:`„{before}“ entfernen`},aBlock:`ein Block`},coverage:{scope:`Welche Websites`,thisSite:`Diese Website`,allSites:`Alle Websites im Projekt`,siteLanguage:`{site} · {language}`,search:`Nach Titel suchen`,filter:`Anzeigen`,needsWork:`Zu erledigen`,all:`Alles`,item:`Seite oder Artikel`,page:`Seite`,article:`Artikel`,missing:`Fehlt`,toReview:`Zu prüfen`,oneLanguage:`Diese Website hat eine Sprache`,oneLanguageDescription:`Fügen Sie in den Website-Einstellungen Sprachen hinzu; Übersetzungen erscheinen hier.`,openSettings:`Spracheinstellungen öffnen`,allDone:`Nichts zu erledigen`,empty:`Noch nichts hier`,emptyDescription:`Jede Sprache hat eine aktuelle, geprüfte Fassung.`},languages:{title:`Sprachen`,description:`Die Sprachen, in denen diese Website veröffentlicht, und wie Leser sie erreichen. Eine Seite oder ein Artikel in einer anderen Sprache ist eine Übersetzung des Originals.`,language:`Sprache`,tag:`Kürzel`,default:`Standard`,remove:`{language} entfernen`,add:`Sprache hinzufügen`,addHint:`Wählen Sie aus der Liste oder geben Sie ein beliebiges BCP-47-Kürzel ein, etwa gsw oder pt-AO.`,addPlaceholder:`Sprachen suchen`,useTag:`Kürzel {tag} verwenden`,noMatch:`Keine passende Sprache. Geben Sie ein BCP-47-Kürzel ein, um es zu verwenden.`,clear:`Leeren`,showOptions:`Sprachen anzeigen`,routing:`Adressen`,routingHint:`Wo jede Sprache liegt. Andere Sprachen haben immer ein Präfix.`,routingOptions:{prefixExceptDefault:`Standardsprache im Stammverzeichnis, andere unter ihrem Präfix`,prefixAll:`Jede Sprache unter ihrem Präfix`},fallback:`Fehlende Übersetzungen`,fallbackHint:`Was Leser an einer Adresse sehen, für die es in der Sprache keine Fassung gibt.`,fallbackOptions:{none:`Nicht gefunden`,defaultWithNotice:`Das Original, mit Hinweis, von Suchmaschinen ausgeschlossen`},review:`Vor dem Veröffentlichen prüfen`,reviewHint:`Maschinelle Übersetzungen davon gehen erst online, wenn eine Person sie geprüft hat.`,reviewOptions:{pages:`Seiten`,posts:`Artikel`},label:`Hinweis auf maschinelle Übersetzung`,labelHint:`Wann Leser sehen, dass eine Seite automatisch übersetzt wurde.`,labelOptions:{unreviewed:`Bis eine Person die Übersetzung prüft`,always:`Immer, auch nach einer Prüfung`},saved:`Sprachen gespeichert`,failed:`Sprachen konnten nicht gespeichert werden`},glossary:{title:`Glossar`,description:`Begriffe, die Agenten beim Übersetzen beibehalten: Namen, die nie übersetzt werden, und das freigegebene Wort in jeder Sprache.`,empty:`Noch keine Begriffe`,emptyDescription:`Fügen Sie Marken- und Produktnamen sowie Wörter mit fester Übersetzung hinzu.`,oneLanguage:`Fügen Sie zuerst eine zweite Sprache hinzu: Das Glossar enthält Wörter für die anderen Sprachen der Website.`,term:`Begriff`,neverTranslate:`Nie übersetzen`,translationIn:`Auf {language}`,add:`Begriff hinzufügen`,remove:`{term} entfernen`,saved:`Glossar gespeichert`,failed:`Glossar konnte nicht gespeichert werden`},translations:{title:`Übersetzungen`,none:`Nur auf {language}`,noneDescription:`Agenten übersetzen Seiten und Artikel in die anderen Sprachen der Website; jede Fassung erscheint hier.`,current:`Diese Fassung`,method:{original:`Original`,human:`Von einer Person übersetzt`,machine:`Maschinelle Übersetzung`,machineReviewed:`Maschinelle Übersetzung, geprüft`},stale:`Veraltet`,sourceMissing:`Original entfernt`,review:`Als geprüft markieren`,reviewTitle:`Diese Übersetzung als geprüft markieren?`,reviewDescription:`Sie bestätigen, dass eine Person diese maschinelle Übersetzung mit dem Original verglichen hat. Leser sehen den Hinweis auf die maschinelle Übersetzung nicht mehr, außer die Website zeigt ihn immer.`,reviewSaveFirst:`Speichern Sie Ihre Änderungen vor der Prüfung.`},translationList:{column:`Sprachen`,filter:`Sprache`,grouped:`Alle Sprachen (gruppiert)`,state:[[0,`language`],`: `,[3,`state`,{published:[`veröffentlicht`],draft:[`Entwurf`],outdated:[`veraltet`],review:[`zu prüfen`],missing:[`fehlt`],other:[`fehlt`]}]],summary:[[1,`count`],`/`,[1,`total`]],summaryLabel:[[1,`count`],` von `,[2,`total`,{one:[[4],` Sprache`],other:[[4],` Sprachen`]}]],writeByHand:`Selbst schreiben`},diff:{title:`Änderungen in {name}`,against:`Vergleichen mit`,previous:`Vorheriger Snapshot`,live:`Live-Version`,descriptions:{previous:`Was sich seit dem vorherigen Snapshot geändert hat.`,live:`Was sich ändern würde, wenn dieser Snapshot die Live-Version ersetzt.`},added:`Hinzugefügt`,changed:`Geändert`,removed:`Entfernt`,counts:{added:`{count} hinzugefügt`,changed:`{count} geändert`,removed:`{count} entfernt`},none:`Keine Unterschiede`,noneDescription:`Beide Snapshots enthalten genau denselben Inhalt.`,nothingToCompare:`Nichts zum Vergleichen`,nothingToCompareDescription:`Das ist der erste Snapshot der Website und keine andere Version ist live, daher gibt es noch nichts, womit er verglichen werden kann.`,kinds:{site:`Website-Einstellungen`,page:`Seite`,contentEntry:`Artikel`,taxonomy:`Taxonomie`,term:`Begriff`,redirect:`Weiterleitung`,menu:`Menü`,asset:`Medien`,glossary:`Glossar`},gone:`Existiert nicht mehr`,revs:`rev {from} → {to}`,rev:`rev {rev}`,columns:{item:`Element`,revision:`Revision`},textChanges:{show:`Änderungen anzeigen`,hide:`Änderungen ausblenden`,loading:`Beide Versionen werden geladen…`,body:`Inhalt`,title:`Titel`,summary:`Zusammenfassung`,slug:`Slug`,path:`Pfad`,section:`Abschnitt {kind}`,sectionAdded:`Hinzugefügt`,sectionRemoved:`Entfernt`,sectionChanged:`Geändert`,noTextChanges:`Nur Einstellungen wurden geändert; der Text ist gleich.`,added:`Hinzugefügt`,removed:`Entfernt`,edited:`Bearbeitet`,unchanged:[[2,`count`,{one:[[4],` unveränderter Block`],other:[[4],` unveränderte Blöcke`]}]],wordsAdded:`+{count} Wörter`,wordsRemoved:`−{count} Wörter`,same:`Keine Textänderungen`},assignments:{added:`+ {taxonomy} {name}`,removed:`− {taxonomy} {name}`,primary:`{taxonomy} (primär) → {name}`,none:`keine`}},taxonomy:{newTerm:`Neu: {singular}`,search:`{plural} durchsuchen`,columns:{name:`Name`,usage:`Artikel`,lastUsed:`Zuletzt verwendet`,index:`Suchmaschinen`,visibility:`Sichtbarkeit`},filters:{all:`Alle`,public:`Öffentlich`,internal:`Intern`,proposed:`Vorgeschlagen`,retired:`Ausgemustert`},state:{proposed:`Vorgeschlagen`,proposedHint:`Ein Agent hat ihn vorgeschlagen. Er kann zugewiesen werden, hat aber keine öffentliche Seite, bis jemand ihn freigibt.`,internal:`Intern`,internalHint:`Kein Archiv, kein Feed- oder Sitemap-Eintrag, und Artikel zeigen ihn nicht an. Themes und Filter können ihn trotzdem nutzen.`,retired:`Ausgemustert`,mergedInto:`Zusammengeführt mit {name}`},visibility:{public:`Öffentlich`,internal:`Intern`,none:`—`},defaults:{category:{singular:`Kategorie`,plural:`Kategorien`},tag:{singular:`Schlagwort`,plural:`Schlagwörter`}},usage:{value:`{published} / {total}`,hint:`{published} von {total} Artikeln veröffentlicht. Öffnet sie unter Artikel.`,none:`Keine`},index:{indexed:`Indexiert`,indexedHint:`{count} veröffentlichte Artikel: Das Archiv erscheint in Suchergebnissen und in der Sitemap.`,thin:`Nicht indexiert: {count} von {min}`,thinHint:`Archive mit weniger als {min} veröffentlichten Artikeln werden mit noindex, follow ausgeliefert und aus der Sitemap ausgelassen.`,empty:`Leer`,emptyHint:`Keine veröffentlichten Artikel: Das Archiv antwortet mit 404, bis hier einer eingeordnet ist.`,noindex:`noindex`,noindexHint:`In seinen Sucheinstellungen vor Suchmaschinen verborgen.`,none:{internal:`Kein Archiv`,proposed:`Noch nicht öffentlich`,retired:`Ausgemustert`,archiveOff:`Archive aus`},noneHint:{internal:`Interne Begriffe haben kein öffentliches Archiv.`,proposed:`Vorgeschlagene Begriffe haben kein öffentliches Archiv, bis jemand sie freigibt.`,retired:`Ausgemusterte Begriffe haben kein Archiv; alte Links leiten weiter oder antworten mit 410 Gone.`,archiveOff:`Diese Taxonomie veröffentlicht keine Archivseiten.`}},menu:{label:`Aktionen für Begriff`,edit:`Bearbeiten`,view:`Ansehen`,rename:`Slug umbenennen`,merge:`Zusammenführen mit…`,mergeExisting:`Mit einem bestehenden Begriff zusammenführen…`,move:`Verschieben…`,makeInternal:`Intern machen`,makePublic:`Öffentlich machen`,retire:`Ausmustern`},review:{waiting:`Vorschläge, die auf Prüfung warten: {count}`,waitingDescription:`Agents haben diese {plural} vorgeschlagen. Gib einen frei, um ihm eine öffentliche Seite zu geben, führe ihn mit einem bestehenden zusammen oder lehne ihn ab.`,open:`Prüfen`,approve:`Freigeben`,approved:`{name} freigegeben`,failed:`Freigabe nicht möglich`,reject:`Ablehnen`,merge:`Zusammenführen…`,rejectNamed:`{name} ablehnen`,proposedBy:`Vorgeschlagen von`},empty:{all:`Noch keine {plural}`,public:`Keine öffentlichen {plural}`,internal:`Keine internen {plural}`,proposed:`Nichts wartet auf Prüfung`,retired:`Keine ausgemusterten {plural}`,search:`Nichts passt zu deiner Suche`,allDescription:`Erstelle den ersten oder lass Agents beim Schreiben Schlagwörter vorschlagen.`,filteredDescription:`Versuche einen anderen Filter oder eine andere Suche.`,noTaxonomies:`Noch keine Kategorien oder Schlagwörter`,noTaxonomiesDescription:`Diese Website speichert Schlagwörter noch als reinen Text in jedem Artikel. Überführe sie in Kategorien und Schlagwörter; du siehst, was sich ändert, bevor etwas geschrieben wird.`},create:{title:`Neu: {singular}`,description:`Gib einen Namen ein. Synonyme, eine Einleitung, ein Bild und Sucheinstellungen können später im Editor folgen.`,descriptionTree:`Gib einen Namen und, falls er unter eine andere Kategorie gehört, ein übergeordnetes Element an. Der Rest kann im Editor folgen.`,name:`Name ({locale})`,slugHint:`Die Adresse seines Archivs. Sie folgt dem Namen, bis du sie änderst.`,parentHint:`Lass ihn auf der obersten Ebene oder ordne ihn unter einer anderen Kategorie ein.`,internal:`Intern`,internalHint:`Interne Begriffe bekommen keine öffentliche Seite; Themes und Filter können sie trotzdem nutzen.`,similarTitle:`Das sieht aus wie ein bestehender Begriff`,similar:`Ähnlich: {names}. Verwende diesen, wenn er dasselbe bedeutet.`,submit:`{singular} erstellen`,created:`{name} erstellt`},health:{title:`Zustand des Vokabulars`,description:`Derselbe Bericht, den Agents lesen, bevor sie verschlagworten. Halte eine Seite pro Thema, damit Leser und Suchmaschinen sie finden.`,issues:`{count} zu prüfen`,clean:`Nichts aufzuräumen`,cleanDescription:`Derzeit keine Beinahe-Duplikate, einmal verwendeten oder leeren Begriffe.`,nearDuplicates:`Beinahe-Duplikate ({count})`,nearDuplicatesHint:`Wahrscheinlich dasselbe Thema. Beim Zusammenführen bleibt der häufiger genutzte erhalten und der andere leitet weiter.`,mergeInto:`{source} → {target}`,merge:`Zusammenführen`,morePairs:`{count} weitere Paare`,reasons:{similar:`Fast gleich geschrieben`,plural:`Singular und Plural`,synonym:`Das Synonym des einen ist der Name des anderen`},proposed:`Warten auf Prüfung ({count})`,review:`Prüfen`,missingPrimary:`Artikel ohne {singular} (primär) ({count})`,missingPrimaryHint:`Sie können nicht zur Prüfung gehen oder veröffentlicht werden, bis eine gewählt ist.`,unfiled:`Artikel ohne {singular} ({count})`,unfiledHint:`Ordne sie ein, damit sie in einem Archiv und in Breadcrumbs erscheinen.`,noIntro:`Indexierte Archive ohne Einleitung ({count})`,noIntroHint:`eine kurze Einleitung hilft Lesern und Suchmaschinen`,singleUse:`Einmal verwendet ({count})`,unused:`In keinem Artikel ({count})`,unusedHint:`mustere sie aus oder ordne ihnen Artikel zu`,empty:`Leere Kategorien ({count})`,emptyHint:`ihre Archive antworten mit 404, bis ein Artikel eingeordnet ist`,oversized:`Sehr große Kategorien ({count})`,oversizedHint:`über die Hälfte aller Artikel; Unterkategorien würden helfen`,more:[[1,`count`],` weitere`]},rules:{title:`So funktionieren {plural}`,description:`Die Regeln dieser Taxonomie. Agents sehen dieselben.`,structure:`Struktur`,tree:`Baum`,flat:`Flache Liste`,treeHint:`Ein Begriff kann unter einem übergeordneten stehen, bis zu 5 Ebenen tief.`,flatHint:`Begriffe haben kein übergeordnetes Element.`,newTerms:`Neue Begriffe`,newTermsValue:{none:`Nur Personen`,propose:`Agents schlagen vor`,free:`Agents fügen hinzu`},newTermsHint:{none:`Nur Personen erstellen sie; Agents wählen aus den bestehenden.`,propose:`Agents schlagen neue vor, die eine öffentliche Seite bekommen, sobald jemand sie freigibt.`,free:`Agents dürfen aktive Begriffe direkt hinzufügen.`},perArticle:`Pro Artikel`,required:`Erforderlich · bis zu {max}`,optional:`Optional · bis zu {max}`,requiredHint:`Ein Artikel braucht einen, mit einem primären, um geprüft oder veröffentlicht zu werden.`,optionalHint:`Artikel können keinen haben.`,archive:`Archive`,archiveHint:`Indexiert ab {min} veröffentlichten Artikeln; dünnere Archive sind noindex.`,archiveOff:`Es werden keine Archivseiten veröffentlicht.`}},governance:{oneSnapshot:`Eine Änderung, ein Snapshot. Sie geht mit der nächsten Veröffentlichung live.`,conflict:`Dieser Begriff wurde inzwischen an anderer Stelle geändert. Schließe den Dialog und versuche es mit der neuesten Version erneut.`,rename:{title:`Slug von {name} umbenennen`,description:`Das Archiv zieht an die neue Adresse. Die alte funktioniert über eine dauerhafte Weiterleitung weiter, und der alte Slug bleibt reserviert.`,slug:`Neuer Slug`,slugHint:`Kleinbuchstaben, Ziffern und einzelne Bindestriche.`,reclaim:`Zurückholen: diesen Slug vom früheren Begriff lösen und dessen Weiterleitung entfernen`,history:`Frühere Slugs: {slugs}`,confirm:`Umbenennen`,errors:{required:`Gib einen Slug ein.`,invalid:`Verwende Kleinbuchstaben, Ziffern und einzelne Bindestriche.`,tooLong:`Höchstens 128 Zeichen.`,taken:`Ein anderer Begriff verwendet diesen Slug.`,reserved:`Ein Begriff hat diesen Slug früher verwendet, und seine alte Adresse leitet weiter. Hol ihn unten zurück, um ihn hier zu verwenden.`}},merge:{title:`{name} zusammenführen mit…`,description:`Seine Artikel wechseln zum gewählten Begriff, der auch seine Namen und Slugs übernimmt, sodass alte Links und Synonyme weiter funktionieren.`,target:`Zusammenführen mit`,targetHint:`Ein aktiver Begriff derselben Taxonomie.`,targetPlaceholder:`Begriffe suchen…`,confirm:`Zusammenführen`},reviewMerge:{title:`Vorschlag {name} zusammenführen mit…`,description:`Der Vorschlag wird ausgemustert und seine Artikel wechseln zum bestehenden Begriff, der seinen Namen als Synonym behält.`,confirm:`Zusammenführen`},retire:{title:`{name} ausmustern`,description:`Er wird aus allen Artikeln entfernt und kann nicht mehr zugewiesen werden. Sein Archiv kann auf einen anderen Begriff weiterleiten.`,redirectTo:`Weiterleiten zu…`,redirectToHint:`Ohne Weiterleitung antwortet sein Archiv mit 410 Gone, sodass Suchmaschinen es endgültig entfernen.`,redirectToParentHint:`Ohne Auswahl leitet das Archiv auf die übergeordnete Kategorie weiter, wenn diese öffentlich ist.`,noRedirect:`Keine Weiterleitung`,redirectPlaceholder:`Begriffe suchen…`,confirm:`Ausmustern`},move:{title:`{name} verschieben`,description:`Wähle das neue übergeordnete Element. Artikel und Adressen bleiben unverändert; Menüs, Breadcrumbs und das Archiv des übergeordneten Elements ändern sich.`,parent:`Übergeordnet`,parentHint:`Bis zu {max} Ebenen tief. Eine Kategorie kann nicht unter sich selbst oder darunter verschoben werden.`,parentPlaceholder:`Kategorien suchen…`,topLevel:`Oberste Ebene`,confirm:`Verschieben`},visibility:{title:{internal:`{name} intern machen`,public:`{name} öffentlich machen`},description:{internal:`Archiv, Feed und Sitemap-Eintrag entfallen, und Artikel zeigen ihn nicht mehr an. Themes und Filter können ihn weiterhin nutzen.`,public:`Er erhält ein öffentliches Archiv, einen Feed und einen Sitemap-Eintrag, und Artikel zeigen ihn an.`},confirm:{internal:`Intern machen`,public:`Öffentlich machen`}},reject:{title:`Vorschlag {name} ablehnen`,description:`Der Vorschlag wird ausgemustert und aus den Artikeln entfernt, die ihn tragen. Der Agent sieht, dass er abgelehnt wurde.`,confirm:`Ablehnen`},preview:{waiting:`Triff eine Auswahl, um zu sehen, was sich ändert.`,loading:`Ermittle, was sich ändert`,articles:`Artikel`,noArticles:`Kein Artikel trägt ihn.`,articlesMove:`Diese Artikel ändern sich im selben Vorgang. Eine Änderung kann bis zu {limit} Artikel betreffen.`,articlesLose:`Diese Artikel verlieren ihn im selben Vorgang. Eine Änderung kann bis zu {limit} Artikel betreffen.`,articlesKeep:`Diese Artikel behalten ihn; ihre Links folgen der neuen Adresse.`,more:`und {count} weitere`,redirects:`Weiterleitungen`,noRedirects:`Es wird keine Weiterleitung angelegt.`,permanent:`301 dauerhaft`,prefix:`Seiten und Feeds unterhalb der alten Adresse folgen ebenfalls.`,repointed:`{count} bestehende Weiterleitungen auf die alte Adresse zeigen jetzt auf die neue.`},tooLarge:{title:`Zu groß für eine Änderung`,description:`Dies würde {count} Artikel ändern; eine Änderung kann höchstens {limit} betreffen. Teile es in kleinere Schritte auf oder frage nach dem gestaffelten Job.`},blocked:{title:`{count} veröffentlichte oder in Prüfung befindliche Artikel würden ihre einzige Kategorie verlieren`,description:`Sie brauchen eine Kategorie. Führe diesen Begriff stattdessen mit einem anderen zusammen oder ordne diese Artikel zuerst anders ein.`},gone:{title:`Sein Archiv wird mit 410 Gone antworten`,description:`{path} erhält keine Weiterleitung, daher entfernen Suchmaschinen es endgültig. Wähle oben einen Begriff, um Besucher stattdessen dorthin zu schicken.`},hidden:{title:`Sein Archiv ist nicht mehr öffentlich`,description:`{path} antwortet nach der nächsten Veröffentlichung mit 404.`},appears:{title:`Sein Archiv wird öffentlich`,description:`{path} geht mit der nächsten Veröffentlichung live.`},done:{rename:`{name} umbenannt`,merge:`{name} zusammengeführt`,reviewMerge:`{name} zusammengeführt`,retire:`{name} ausgemustert`,reject:`{name} abgelehnt`,move:`{name} verschoben`,visibility:`Sichtbarkeit von {name} geändert`,detail:`Geänderte Artikel: {entries}. Weiterleitungen: {redirects}. Ein Snapshot; live mit der nächsten Veröffentlichung.`}},taxonomySettings:{titleNew:`Neue Taxonomie`,titleEdit:`Einstellungen: {Singular}`,descriptionNew:`Gruppiere Artikel neben Kategorien und Schlagwörtern auf andere Weise, etwa als Serie oder Region. Agents lesen ihre Regeln, bevor sie Artikel einordnen.`,descriptionEdit:`Die Regeln, denen Menschen und Agents für {plural} folgen.`,open:`Einstellungen: {Singular}`,newTaxonomy:`Neue Taxonomie`,edit:`Bearbeiten`,exampleSlug:`sommer-2026`,sections:{name:`Name`,terms:`Begriffe`,termsHint:`Agents verwenden immer zuerst einen bestehenden Begriff. Diese Regeln legen fest, was sie tun dürfen, wenn keiner passt.`,articles:`Bei Artikeln`,archive:`Archivseiten`},key:`Schlüssel`,keyHint:`Wird in Filtern und von Agents verwendet (series:summer-2026). Kleinbuchstaben, Ziffern und Bindestriche. Kann später nicht geändert werden.`,keyFixed:`Schlüssel ändern sich nie: Artikel, Filter und Agents verweisen darauf.`,singular:`Singular ({locale})`,plural:`Plural ({locale})`,singularPlaceholder:`Region`,pluralPlaceholder:`Regionen`,labelsHint:`Wie Studio, die Website und Agents sie nennen, z. B. Region und Regionen.`,labelsOptional:`Optional. Lass beide leer, um die Namen in {locale} zu verwenden.`,hierarchical:`Begriffe können ein übergeordnetes Element haben`,hierarchicalHint:`Ein Baum mit bis zu 5 Ebenen, wie Kategorien; ein Archiv listet auch die Artikel seiner Unterbegriffe. Aus: eine flache Liste, wie Schlagwörter.`,newTerms:`Wer neue Begriffe hinzufügt`,newTermsOptions:{none:`Nur Personen`,propose:`Agents schlagen vor`,free:`Agents fügen frei hinzu`},newTermsHints:{none:`Agents ordnen Artikel nur bestehenden Begriffen zu. Passt keiner, sagen sie es und fragen dich.`,propose:`Agents dürfen einen neuen Begriff vorschlagen. Er bleibt privat (kein Archiv, nicht an Artikeln sichtbar), bis eine Person ihn hier freigibt, zusammenführt oder ablehnt.`,free:`Agents legen öffentliche Begriffe samt Archiven an, ohne zu fragen. Passt zu lockeren Vokabularen; behalte den Zustand des Vokabulars im Blick.`},badges:{safest:`Am sichersten`,recommended:`Empfohlen`,careful:`Mit Vorsicht verwenden`},required:`Erforderlich`,requiredHint:`Ein Artikel braucht mindestens einen, mit einem primären, bevor er in die Prüfung geht oder veröffentlicht wird. Entwürfe können warten.`,maxPerEntry:`Höchstens pro Artikel`,maxPerEntryHint:`Leer: bis zu {max}.`,allCollections:`Gilt für jede Sammlung`,allCollectionsHint:`Aus: Wähle die Sammlungen, deren Artikel sie verwenden können.`,collections:`Sammlungen`,archiveEnabled:`Öffentliche Archivseiten`,archiveEnabledHint:`Jeder öffentliche Begriff mit einem veröffentlichten Artikel erhält eine Seite, die seine Artikel auflistet.`,basePath:`Adresse`,basePathHint:`Archive liegen unter Adressen wie {example}.`,feed:`RSS-Feed pro Begriff`,feedHint:`Unter {example}/rss.xml.`,feedNeedsArchive:`Erfordert öffentliche Archivseiten.`,minEntries:`Benötigte Artikel für Suchmaschinen`,minEntriesHint:`Archive mit weniger veröffentlichten Artikeln werden mit noindex, follow ausgeliefert und aus der Sitemap weggelassen. 0: ab dem ersten Artikel indexiert.`,move:{title:`Adressänderung`,description:`Die Archive ziehen um. Alte Adressen funktionieren über eine dauerhafte Weiterleitung weiter.`,offTitle:`Archivseiten werden mit 404 antworten`,offDescription:`Es wird keine Weiterleitung angelegt: Links auf {path}/… funktionieren nach der nächsten Veröffentlichung nicht mehr.`,onTitle:`Archive werden unter {path}/… öffentlich`,onDescription:`Begriffe mit einem veröffentlichten Artikel erhalten nach der nächsten Veröffentlichung eine Seite.`},create:`Taxonomie erstellen`,save:`Einstellungen speichern`,created:`{name} erstellt`,saved:`Einstellungen für {name} gespeichert`,errors:{keyRequired:`Gib einen Schlüssel ein.`,keyInvalid:`Verwende Kleinbuchstaben, Ziffern und einzelne Bindestriche, etwa series oder reading-list.`,keyTooLong:`Höchstens 128 Zeichen.`,keyReserved:`„{key}“ ist von der Filtersprache reserviert (primary, collection, locale, status, id).`,keyTaken:`Diese Website hat bereits eine Taxonomie mit diesem Schlüssel.`,labelRequired:`Gib einen Namen in der Standardsprache der Website ein.`,labelTooLong:`Höchstens {max} Zeichen.`,labelPair:`Fülle beide aus oder lass beide leer.`,pathRequired:`Gib eine Adresse ein.`,pathInvalid:`Beginne mit / und verwende kleingeschriebene Wörter, verbunden durch Bindestriche, etwa /series.`,pathTooLong:`Höchstens 1.024 Zeichen.`,pathRoot:`Archive können nicht im Stammverzeichnis der Website liegen.`,pathTaxonomy:`Sie überschneidet sich mit den Archiven von „{conflict}“.`,pathPage:`Dort liegt die Seite {conflict}. Wähle eine andere Adresse.`,pathCollection:`Artikeladressen beginnen mit {conflict}. Wähle eine andere Adresse.`,range:`Eine ganze Zahl von {min} bis {max}.`,collections:`Wähle mindestens eine Sammlung.`,hasParents:`{count} Begriffe haben noch ein übergeordnetes Element. Verschiebe sie zuerst auf die oberste Ebene.`,hasProposals:`{count} Vorschläge warten. Gib sie zuerst frei, führe sie zusammen oder lehne sie ab.`}},termEditor:{language:`Sprache`,default:`Standard`,names:{title:`Namen und Synonyme`,description:`Was Leser sehen und was Menschen und Agents eingeben können, um ihn zu finden.`,name:`Name ({locale})`,nameHintDefault:`In der Standardsprache der Website erforderlich.`,nameHint:`Leer lassen, um den Namen in {locale} anzuzeigen.`,altNames:`Synonyme`,altNamesHint:`Andere Namen, die diesen Begriff finden, wenn jemand sie eingibt oder ein Agent per Name zuweist. Nie als eigene Begriffe angezeigt.`},intro:{title:`Archiv-Einleitung`,description:`Markdown, das oben auf {path} angezeigt wird, nur auf der ersten Seite.`,hint:`Markdown. HTML wird als Text angezeigt.`},image:{title:`Bild`,description:`Wird im Archiv angezeigt und als Vorschaubild verwendet, wenn der Link geteilt wird. Verlinke ein Bild, das bereits online ist.`},seo:{title:`Suchmaschinen und Teilen`,description:`Wie das Archiv in Suchergebnissen erscheint, in {locale}.`},indexing:{title:`Indexierung`,indexed:`{path} wird von Suchmaschinen gelistet, mit {count} veröffentlichten Artikeln.`,thin:`{path} hat {count} der {min} benötigten veröffentlichten Artikel; bis dahin wird es mit noindex, follow ausgeliefert.`,empty:`{path} hat keine veröffentlichten Artikel und antwortet mit 404, bis einer eingeordnet wird.`,noindex:`{path} ist in seinen Sucheinstellungen vor Suchmaschinen verborgen.`},preview:{statusHint:`Was {path} mit diesen Änderungen antwortet: {status}. Die Vorschau zeigt die Seite immer, auch bevor sie öffentlich ist.`},placement:{title:`Platzierung`,position:`Position`,positionHint:`Niedrigere Zahlen kommen unter Geschwistern zuerst. Leer: nach Name sortiert.`},history:{title:`Slug-Verlauf`,description:`Frühere Adressen dieses Archivs. Sie bleiben reserviert und leiten hierher weiter.`,empty:`Keine früheren Slugs`,emptyDescription:`Seine Adresse war immer {path}.`,reserved:`reserviert`},details:{taxonomy:`Taxonomie`,visibility:`Sichtbarkeit`,usage:`Artikel`},retire:{title:`{singular} ausmustern`,description:`Entfernt ihn aus allen Artikeln; sein Archiv leitet weiter oder antwortet mit 410 Gone.`},retired:{title:`Dieser Begriff ist ausgemustert`,merged:`Dieser Begriff wurde mit {name} zusammengeführt`,description:`Er hat kein Archiv und kann nicht zugewiesen werden. Seine alten Adressen leiten weiter, sofern eine Weiterleitung festgelegt wurde.`},errors:{nameRequired:`Gib einen Namen in der Standardsprache der Website ein.`,nameTooLong:`Höchstens 200 Zeichen.`,altTooLong:`„{value}“ ist länger als 200 Zeichen.`,altDuplicate:`„{value}“ ist doppelt aufgeführt oder wiederholt den Namen.`,altCollision:`„{value}“ benennt bereits {other}. Ein Synonym kann nicht auf zwei Begriffe zeigen.`,introTooLong:`Höchstens 20.000 Zeichen.`,position:`Verwende eine ganze Zahl von 0 bis {max}.`}},migration:{banner:{title:`Verschiebe deine Tags in Kategorien und Schlagwörter`,description:`Tags auf dieser Website sind noch reiner Text. Mach daraus Schlagwörter mit Namen, Archiven und Weiterleitungen, und beginne, Artikel in Kategorien einzuordnen. Du siehst das Ergebnis zuerst und kannst es rückgängig machen.`,action:`Vorschau der Verschiebung`},dialog:{title:`Tags in Kategorien und Schlagwörter verschieben`,description:`Dies ist ein Probelauf: Nichts wird geschrieben, bis du ihn ausführst.`,summary:`Was die Verschiebung bewirkt`,tags:`Gefundene Tags`,entries:`Umgeschriebene Artikel`,terms:`Schlagwörter`,termsValue:`{created} neu, {reused} wiederverwendet`,taxonomies:`Erstellte Taxonomien`,none:`Keine`,skipped:`{count} Artikel werden übersprungen`,how:`Studio erstellt vorher und nachher einen Snapshot. Kategorien sind auf dieser Website zunächst optional, sodass nichts blockiert wird, und nichts geht live, bis du veröffentlichst.`,upToDate:`Nichts zu verschieben`,upToDateDescription:`Jeder Artikel verwendet bereits Schlagwörter und Kategorien.`,run:`Verschiebung ausführen`},done:{title:`Tags verschoben`,description:`Deine Artikel verwenden jetzt Schlagwörter. Veröffentliche, wenn du bereit bist.`,toast:`Tags verschoben`,toastDetail:`{tags} Tags in {entries} Artikeln, mit Snapshots vorher und nachher.`,undoHint:`Meinung geändert? Rückgängig stellt die alten Tags in Artikeln wieder her, die seitdem niemand bearbeitet hat.`,undo:`Verschiebung rückgängig machen`,close:`Fertig`},revert:{toast:`Verschiebung rückgängig gemacht`,toastDetail:`Alte Tags in {count} Artikeln wiederhergestellt.`}},redirects:{new:`Neue Weiterleitung`,search:`Adressen suchen`,menu:`Aktionen für {from}`,edit:`Bearbeiten`,filters:{reason:`Quelle`,all:`Alle Quellen`},reasons:{"slug-change":`Slug-Änderung`,merge:`Zusammenführung`,retire:`Ausgemustert`,manual:`Manuell`},columns:{from:`Alte Adresse`,to:`Leitet zu`,type:`Typ`,source:`Quelle`,updated:`Aktualisiert`},status:{301:`Dauerhaft (301)`,302:`Vorübergehend (302)`,"301Hint":`Suchmaschinen übertragen das Ranking der alten Adresse auf die neue. Verwende dies, wenn der Umzug endgültig ist.`,"302Hint":`Für kurze Zeit, etwa eine Kampagne; Suchmaschinen behalten die alte Adresse.`,short301:`301`,short302:`302`},match:{exact:`Nur diese Adresse`,exactHint:`Nur genau dieser Pfad.`,prefix:`Diese Adresse und alles darunter`,prefixHint:`Der Rest des Pfads bleibt erhalten: /old/a führt zu /new/a.`,prefixShort:`und darunter`},external:{badge:`Extern`,title:`Besucher auf eine andere Website schicken?`,description:`Prüfe das Ziel, bevor du die Weiterleitung anlegst.`,leave:`Besucher verlassen die Website in Richtung {host}`,warning:`Jeder, der die alte Adresse öffnet, landet auf einer Website, die du nicht kontrollierst. Agents können das nie anlegen; nur Menschen.`,target:`Ziel`,host:`Host`,confirm:`Zu {host} weiterleiten`},externalHint:`Schickt Besucher zu {host}, außerhalb dieser Website.`,dialog:{createTitle:`Neue Weiterleitung`,editTitle:`Weiterleitung bearbeiten`,description:`Leite Besucher von einer Adresse, die die Website nicht mehr bedient, zu einer neuen.`,from:`Alte Adresse`,fromHint:`Ein Pfad auf dieser Website, etwa /old-page. Es darf keine Adresse sein, die die Website noch bedient.`,fromLocked:`Die alte Adresse kann nicht geändert werden. Lösche diese Weiterleitung und lege stattdessen eine neue an.`,to:`Leitet zu`,toHint:`Ein Pfad auf dieser Website (/new-page) oder eine https://-Adresse.`,toExternal:`Außerhalb dieser Website: {host}. Du bestätigst es im nächsten Schritt.`,toPlaceholder:`/new-page oder https://…`,match:`Gilt für`,status:`Art`,automatic:`Automatische Weiterleitungen sind immer dauerhaft (301).`,note:`Notiz`,noteHint:`Optional. Warum es sie gibt, für alle, die später nachsehen.`,create:`Weiterleitung anlegen`},errors:{fromRequired:`Gib die alte Adresse ein.`,fromInvalid:`Verwende einen Pfad, der mit / beginnt, ohne Leerzeichen, ? oder #.`,fromTooLong:`Höchstens 1.024 Zeichen.`,fromTaken:`Eine Weiterleitung von dieser Adresse gibt es bereits. Bearbeite stattdessen diese.`,fromServed:`Die Website bedient diese Adresse. Eine Weiterleitung kann keine Seite, keinen veröffentlichten Artikel und kein Archiv verdecken.`,toRequired:`Gib ein, wohin sie Besucher schickt.`,toInvalid:`Verwende einen Pfad, der mit / beginnt, oder eine https://-Adresse.`,toInsecure:`Verwende https://.`,toTooLong:`Höchstens 2.048 Zeichen.`,toSelf:`Sie kann Besucher nicht auf dieselbe Adresse schicken.`,toLoop:`Das wäre eine Schleife: Das Ziel leitet hierher zurück.`},saved:`Weiterleitung gespeichert`,created:`Weiterleitung von {from} angelegt`,deleted:`Weiterleitung von {from} gelöscht`,deleteTitle:`Weiterleitung von {from} löschen?`,deleteDescription:`Nach der nächsten Veröffentlichung antwortet die alte Adresse mit 404.`,deleteAutomatic:`Studio hat sie angelegt, als sich eine Adresse geändert hat. Nach der nächsten Veröffentlichung antwortet die alte Adresse mit 404, und Links darauf funktionieren nicht mehr.`,deleteConfirm:`Weiterleitung löschen`,empty:`Noch keine Weiterleitungen`,emptyFiltered:`Keine Weiterleitungen aus dieser Quelle`,emptyDescription:`Slug-Änderungen, Zusammenführungen und Ausmusterungen fügen hier von selbst Weiterleitungen hinzu. Füge eigene für Adressen hinzu, die umgezogen sind.`},roles:{yours:`Deine Rolle`,names:{owner:`Inhaber`,administrator:`Administrator`,editor:`Redakteur`,author:`Autor`,contributor:`Mitarbeiter`},plural:{owner:`der Inhaber`,administrator:`Administratoren`,editor:`Redakteure`,author:`Autoren`,contributor:`Mitarbeiter`},summaries:{owner:`Alles, einschließlich der Übertragung der Inhaberschaft. Es gibt genau einen Inhaber; die Inhaberschaft wechselt nur durch Übertragung.`,administrator:`Betreibt das Deployment: Team, Rollen, Website-Einstellungen und Domains, die Agent-Schlüssel aller. Bearbeitet und veröffentlicht alles.`,editor:`Bearbeitet und veröffentlicht alles, strukturiert die Website (Seiten, Kategorien, Weiterleitungen), setzt zurück und lädt Autoren und Mitarbeiter ein.`,author:`Schreibt, bearbeitet und veröffentlicht eigene Artikel. Alles Weitere wartet auf einen Redakteur.`,contributor:`Schreibt Entwürfe und reicht sie zur Prüfung ein. Ein Redakteur veröffentlicht sie; veröffentlichte Arbeit ist für sie schreibgeschützt.`},explainer:{role:`Rolle`,columns:{articles:`Artikel`,publish:`Veröffentlichen`,structure:`Struktur`,team:`Team`},levels:{all:`Alle`,own:`Eigene`,drafts:`Entwürfe`,none:`Nein`,invite:`Einladen`,full:`Verwalten`},hints:{articles:{all:`Schreibt und bearbeitet jeden Artikel und kann jemand anderen als Autor angeben.`,own:`Schreibt Artikel und bearbeitet eigene, ob veröffentlicht oder nicht.`,drafts:`Schreibt Entwürfe und bearbeitet eigene, bis ein Redakteur sie veröffentlicht.`,none:`Kann keine Artikel ändern.`},publish:{all:`Veröffentlicht alles und setzt zurück.`,own:`Veröffentlicht, wenn jede öffentliche Änderung die eigene ist; alles Weitere wird zur Anfrage.`,none:`Reicht zur Prüfung ein; jemand anderes veröffentlicht.`},structure:{all:`Seiten, Kategorien und Schlagwörter, Weiterleitungen.`,none:`Liest Seiten, Kategorien und Weiterleitungen, ändert sie aber nicht.`},team:{full:`Lädt ein, ändert Rollen, entfernt Personen, Website-Einstellungen und Domains, die Agent-Schlüssel aller.`,invite:`Lädt Autoren und Mitarbeiter ein.`,none:`Sieht, wer im Team ist.`}}}},gating:{readOnlyTitle:`Du kannst dies ansehen`,entryNotOwn:`Dieser Artikel gehört jemand anderem. Sein Autor sowie Redakteure und höher können ihn ändern.`,entryPublished:`Dieser Artikel wurde veröffentlicht. Mitarbeiter können veröffentlichte Arbeit nicht ändern; ein Redakteur schon.`,entryDelete:`Nur sein Autor (sofern deine Rolle es erlaubt) sowie Redakteure und höher können ihn löschen.`,abilities:{entries:{create:`Nur {roles} und höher können Artikel schreiben.`,editOwnPublished:`Nur {roles} und höher können Artikel veröffentlichen. Ein Redakteur veröffentlicht deine nach der Prüfung.`,editAny:`Nur {roles} und höher können Artikel anderer ändern.`},pages:{write:`Nur {roles} und höher können Seiten ändern.`},publish:{own:`Nur {roles} und höher können veröffentlichen. Reiche deine Arbeit zur Prüfung ein; ein Redakteur veröffentlicht sie.`,any:`Nur {roles} und höher können die Arbeit anderer veröffentlichen.`},rollback:`Nur {roles} und höher können die Website zurücksetzen.`,structure:{write:`Nur {roles} und höher können Kategorien, Schlagwörter und Weiterleitungen ändern.`},assets:{upload:`Nur {roles} und höher können Dateien hochladen.`,manage:`Nur {roles} und höher können alle Dateien verwalten.`},activity:{all:`Nur {roles} und höher sehen die Aktivität des ganzen Teams.`},analytics:{read:`Nur {roles} und höher sehen Analysen.`,settings:`Nur {roles} und höher können die Analyse-Einstellungen ändern.`},comments:{read:`Nur {roles} und höher sehen Leserkommentare.`,moderate:`Nur {roles} und höher moderieren Kommentare.`,moderateAny:`Nur {roles} und höher moderieren Kommentare zu Artikeln anderer.`,reply:`Nur {roles} und höher antworten auf Kommentare.`,replyAny:`Nur {roles} und höher antworten bei Artikeln anderer.`,settings:`Nur {roles} und höher können die Kommentareinstellungen ändern.`},commenters:{data:`Nur {roles} und höher sehen die E-Mail-Adressen von Kommentierenden oder löschen ihre Daten.`},settings:{write:`Nur {roles} und höher können Website-Einstellungen und Domains ändern.`},members:{invite:`Nur {roles} und höher können Personen einladen.`,manage:`Nur {roles} und höher können Rollen ändern oder Personen entfernen.`},agents:{manage:`Nur {roles} und höher können die Agent-Schlüssel anderer verwalten.`},sites:{create:`Nur {roles} und höher können Websites anlegen.`},schedules:{read:`Nur {roles} und höher sehen den Zeitplan.`,write:`Nur {roles} und höher planen ihre Arbeit zeitlich.`,writeAny:`Nur {roles} und höher ändern die Zeitpläne anderer.`,settings:`Nur {roles} und höher pausieren Zeitpläne oder ändern ihre Limits.`},releases:{approve:`Nur {roles} und höher geben Releases ihrer eigenen Arbeit frei.`,approveAny:`Nur {roles} und höher geben Releases frei.`},automations:{manage:`Nur {roles} und höher verwalten Automatisierungen.`},ai:{invoke:`Nur {roles} und höher nutzen KI im Editor.`,settings:`Nur {roles} und höher ändern die KI-Einstellungen.`},ownership:{transfer:`Nur {roles} kann die Inhaberschaft übertragen.`}}},publishing:{request:`Veröffentlichung anfragen`,requestCommand:`Snapshot und Veröffentlichung anfragen`,requestTitle:`Veröffentlichung anfragen?`,requestDescription:`Deine Änderungen enthalten Arbeit anderer oder Änderungen an der Struktur der Website, daher gibt ein Redakteur die Veröffentlichung frei. Studio erstellt jetzt einen Snapshot; die Anfrage wartet in Freigaben.`,sendRequest:`Anfrage senden`,requestOption:`Veröffentlichung anfragen`,requestOptionDescription:`Ein Redakteur gibt sie in Freigaben frei, bevor sie live geht.`,requested:`Veröffentlichung angefragt`,requestedDescription:`Deine Änderungen enthalten Arbeit, die nicht deine ist, daher muss ein Redakteur die Veröffentlichung freigeben. Du findest die Anfrage in Freigaben.`,openRequest:`Freigaben öffnen`,refused:`Du kannst nicht veröffentlichen`},members:{invite:`Personen einladen`,search:`Personen suchen`,you:`Du`,someone:`Jemand`,menu:`Aktionen für {name}`,tabs:{members:`Mitglieder`,activity:`Aktivität`},columns:{member:`Mitglied`,role:`Rolle`,joined:`Beigetreten`,actions:`Aktionen`},empty:`Noch keine Mitglieder`,emptyDescription:`Das erste Konto in einem Studio wird dessen Inhaber. Lade hier Personen ein.`,noMatches:`Niemand passt zu „{query}“`,notEnabledTitle:`Dieser Server hat kein Team`,notEnabledDescription:`Rollen und Einladungen brauchen ein Studio mit Konten (cloudhal studio oder ein bereitgestellter Admin-Worker). Ohne sie kann jede angemeldete Person alles.`,changeRole:`Rolle ändern…`,resetLink:`Link zum Zurücksetzen des Passworts erstellen…`,transferOwnership:`Inhaberschaft übertragen…`,rank:{self:`Du kannst deine eigene Rolle nicht ändern und dich nicht selbst entfernen.`,owner_role:`Die Inhaber-Rolle wechselt nur durch Übertragung der Inhaberschaft.`,target_is_owner:`Der Inhaber kann nicht herabgestuft oder entfernt werden. Übertrage zuerst die Inhaberschaft.`,role_too_high:`Deine Rolle kann diese Rolle nicht vergeben.`,not_allowed:`Nur Administratoren und der Inhaber können Mitglieder verwalten.`},roles:{title:`Rollen`,description:`Was jede Rolle kann. Agent-Schlüssel können nie mehr als die Person, die sie erstellt hat.`},how:{title:`So funktionieren Einladungen`,single:`Jeder Link funktioniert einmal. Wer ihn zuerst öffnet, tritt bei, also teile ihn privat.`,bound:`Er ist an eine E-Mail-Adresse und eine Rolle gebunden; die eingeladene Person kann keines davon ändern.`,expiry:`Links laufen standardmäßig nach {default} ab. Administrator-Einladungen laufen innerhalb von {admin} ab.`,keys:`Die Agent-Schlüssel einer Person können nie mehr als ihre Rolle und werden sofort eingeschränkt, wenn die Rolle herabgestuft wird.`,owner:`Es gibt einen Inhaber. Die Inhaberschaft geht nur an einen Administrator, mit dem Passwort des Inhabers.`},invites:{title:`Ausstehende Einladungen`,description:`Links, die noch nicht verwendet wurden. Widerrufe einen, und er funktioniert sofort nicht mehr.`,empty:`Keine ausstehenden Einladungen`,emptyDescription:`Einladungslinks, die du erstellst, erscheinen hier, bis sie verwendet, widerrufen werden oder ablaufen.`,columns:{email:`E-Mail`,role:`Rolle`,expires:`Läuft ab`,inviter:`Eingeladen von`,actions:`Aktionen`},byLink:`Link`,byEmail:`Per E-Mail gesendet`,expired:`Abgelaufen`,incomplete:`Nicht abgeschlossen`,incompleteHint:`Der Link wurde verwendet, aber das Konto wurde nicht erstellt. Lade die Person erneut ein, um einen neuen Link zu senden.`,you:`Du`,someone:`Ein ehemaliges Mitglied`,reinvite:`Erneut einladen`,menu:`Aktionen für die Einladung an {email}`,revoke:`Widerrufen`,revokeTitle:`Diese Einladung widerrufen?`,revokeDescription:`Der Link für {email} funktioniert sofort nicht mehr. Du kannst die Person später erneut einladen.`,revoked:`Einladung widerrufen`,revokedDescription:`Der Link für {email} funktioniert nicht mehr.`},role:{title:`Rolle von {name} ändern`,description:`Wirkt ab ihrem nächsten Klick oder Agent-Aufruf. Wird im Aktivitätsprotokoll festgehalten.`,member:`Mitglied`,newRole:`Neue Rolle`,change:`Rollenänderung`,now:`Jetzt`,immediate:`Gilt sofort`,demotionTitle:`Auch ihre Agent-Schlüssel werden eingeschränkt`,demotion:`Als {role} behalten ihre Schlüssel nur die Scopes und Modi, die diese Rolle erlaubt, und eine Erhöhung darüber endet. Eine spätere Beförderung erweitert die Schlüssel nicht wieder.`,submit:`Rolle ändern`,failed:`Die Rolle konnte nicht geändert werden`,changed:`Rolle geändert`,changedDescription:`{name} ist jetzt {to}.`,narrowedTitle:`Agent-Schlüssel eingeschränkt`,narrowedDescription:`{count} ihrer Agent-Schlüssel können jetzt nur noch, was die neue Rolle erlaubt.`,narrowedBanner:`Agent-Schlüssel eingeschränkt: {count}`,narrowedBannerDescription:`Jeder Schlüssel unten behält nur, was die neue Rolle erlaubt. Ihre Agents bemerken es beim nächsten Aufruf.`,narrowedMode:`Modus`,narrowedScopes:`Funktioniert jetzt mit`,elevationEnded:`Seine Erhöhung endete, weil die neue Rolle sie nicht erlaubt.`,done:`Fertig`},remove:{menu:`Aus dem Team entfernen…`,title:`{name} aus dem Team entfernen?`,description:`Die Person verliert sofort den Zugriff. Dies wird im Aktivitätsprotokoll festgehalten.`,signOut:`Sie wird auf allen Geräten abgemeldet.`,keys:`Ihre Agent-Schlüssel werden deaktiviert (zur Nachverfolgung aufbewahrt, löschbar).`,keysCount:`Ihre Agent-Schlüssel werden deaktiviert: {count}.`,invites:`Von ihr gesendete, noch ausstehende Einladungen werden storniert.`,invitesCount:`Ihre ausstehenden Einladungen werden storniert: {count}.`,requests:`Anfragen, auf die ihre Agents warten, werden abgelehnt.`,kept:`Ihre Artikel und Aktivitäten bleiben erhalten. Eine erneute Einladung stellt den Zugriff wieder her.`,submit:`Entfernen`,failed:`Die Person konnte nicht entfernt werden`,done:`{name} wurde entfernt`,doneDescription:`Agent-Schlüssel deaktiviert: {keys} · Einladungen storniert: {invites} · Anfragen abgelehnt: {requests}.`},reset:{title:`Link zum Zurücksetzen des Passworts erstellen?`,description:`{name} kann damit ein neues Passwort wählen. Es gibt noch keine E-Mail, daher teilst du den Link selbst.`,once:`Er funktioniert einmal und läuft nach einer Stunde ab.`,signsOut:`Ein neues Passwort meldet die Person überall ab.`,replaces:`Ein neuer Link macht jeden früheren ungültig.`,submit:`Link erstellen`,failed:`Der Link konnte nicht erstellt werden`,revealTitle:`Link zum Zurücksetzen kopieren`,revealDescription:`Schick ihn {name} privat, in einer Direktnachricht.`,warningTitle:`Du wirst diesen Link nicht wieder sehen`,warning:`Kopiere ihn jetzt. Wer ihn öffnet, kann das Passwort dieses Kontos festlegen, also poste ihn nie in einem geteilten Kanal.`,link:`Link zum Zurücksetzen`,expires:`Läuft {relative} ab ({absolute}).`,done:`Ich habe den Link kopiert`},transfer:{title:`Inhaberschaft an {name} übertragen?`,description:`Der Inhaber kann alles, einschließlich der Übertragung der Inhaberschaft. Es gibt genau einen.`,warningTitle:`Du kannst das nicht selbst rückgängig machen`,warning:`{name} wird Inhaber und du wirst Administrator. Nur {name} kann die Inhaberschaft zurückgeben.`,to:`Neuer Inhaber`,youBecome:`Du wirst sofort Administrator.`,keys:`Deine Agent-Schlüssel werden auf das eingeschränkt, was ein Administrator darf.`,onlyThey:`Nur der neue Inhaber kann die Inhaberschaft erneut übertragen.`,password:`Dein Passwort`,passwordHint:`Gib es erneut ein, um zu bestätigen, dass du es bist.`,passwordRequired:`Gib dein Passwort ein`,wrongPassword:`Das Passwort ist nicht richtig`,notAdministrator:`Die Inhaberschaft geht an einen Administrator. Mach die Person zuerst dazu und versuche es dann erneut.`,needsAdministrator:`Die Inhaberschaft geht nur an einen Administrator. Ändere zuerst ihre Rolle.`,submit:`Inhaberschaft übertragen`,failed:`Die Inhaberschaft konnte nicht übertragen werden`,done:`Inhaberschaft übertragen`,doneDescription:`{name} ist jetzt Inhaber. Du bist Administrator.`},activity:{empty:`Noch keine Team-Ereignisse`,emptyDescription:`Einladungen, Rollenänderungen, Entfernungen und Übertragungen der Inhaberschaft erscheinen hier.`,restrictedTitle:`Team-Aktivität ist für Redakteure und höher`}},editionGuide:{title:`Eine weitere Sprache: hier oder als eigene Website?`,hereTitle:`Zu dieser Website hinzufügen`,here:`Dieselben Seiten und Menüs in jeder Sprache, ein Team, eine Veröffentlichung. Am besten, wenn die Sprachen einander spiegeln.`,editionTitle:`Eine Sprachausgabe beginnen`,edition:`Eine eigene Website in diesem Projekt, die von dieser ausgeht: eigene Seiten, Menüs, Teamrollen und Veröffentlichungen, weiter als Übersetzungen verknüpft. Am besten, wenn ein Markt eigene Struktur oder ein eigenes Team braucht.`,create:`Sprachausgabe anlegen…`},newSite:{open:`Neue Website`,title:`Neue Website`,description:`Eine eigene Website in dieser Installation: eigene Seiten, Einstellungen, Teamrollen und Statistiken. Sie beginnt mit einer Startseite; nichts wird veröffentlicht.`,name:`Name`,nameRequired:`Gib der Website einen Namen.`,slug:`Kurzname`,slugHint:`Kleinbuchstaben, Ziffern und Bindestriche; er bezeichnet die Website in Studio und der CLI.`,slugInvalid:`Verwende Kleinbuchstaben, Ziffern und Bindestriche.`,language:`Sprache`,languageHint:`Die Standardsprache der Website; weitere fügst du später in den Spracheinstellungen hinzu.`,project:`Projekt`,projectHint:`Projekte bündeln zusammengehörige Websites, etwa die Sprachausgaben einer Publikation.`,newProject:`Ein neues Projekt`,submit:`Website anlegen`,failed:`Die Website konnte nicht angelegt werden`,created:`Website angelegt`,createdDescription:`{name} ist bereit zum Bearbeiten; noch ist nichts veröffentlicht.`,from:`Ausgangspunkt`,fromHint:`Eine leere Website beginnt mit einer Startseite und einer Über-Seite.`,blank:`Eine leere Website`,copyOf:`Eine Kopie von {name} (Sprachausgabe)`,editionHint:`Kopiert die Seiten dieser Website als Entwürfe in der neuen Sprache, ihre Menüs und ihr Design, als Übersetzungen verknüpft; Artikel und Medien bleiben. Die neue Website kommt in das Projekt dieser Website.`,editionCreated:[[0,`name`],` beginnt mit `,[2,`count`,{one:[[4],` Seite`],other:[[4],` Seiten`]}],` zum Übersetzen; noch ist nichts veröffentlicht.`]},projects:{title:`Projekt`,description:`Die Websites dieses Projekts nebeneinander: Sprachen, Adresse, Veröffentlichungsstand und wartende Freigaben.`,newSite:`Neue Website in diesem Projekt`,sites:`Websites`,notFound:`Kein solches Projekt`,notFoundDescription:`Es wurde entfernt, oder keine seiner Websites darfst du öffnen.`,columns:{site:`Website`,languages:`Sprachen`,address:`Adresse`,status:`Status`,approvals:`Freigaben`},noAddress:`Noch keine Domain`,none:`Keine`,waiting:[[2,`count`,{one:[[4],` wartet`],other:[[4],` warten`]}]],summary:{title:`Auf einen Blick`,sites:`Websites`,languages:`Sprachen`,live:`Live`,waiting:`Wartende Freigaben`}},siteAccess:{legend:`Websites`,all:`Alle Websites`,some:`Nur bestimmte Websites`,roleOn:`Rolle auf {site}`,everySite:`Eigentümer und Administratoren arbeiten auf allen Websites dieser Installation.`,required:`Wähle mindestens eine Website.`,menu:`Websites`,title:`Websites für {name}`,description:`Wähle, auf welchen Websites diese Person arbeitet und mit welcher Rolle. Änderungen gelten sofort.`,failed:`Die Websites konnten nicht gespeichert werden`,submit:`Websites speichern`,saved:`Websites gespeichert`,savedDescription:`Die Websites von {name} wurden aktualisiert.`,count:[[2,`count`,{one:[[4],` Website`],other:[[4],` Websites`]}]]},invites:{create:{title:`Jemanden einladen`,reinviteTitle:`Erneut einladen`,description:`Die Person erhält einen Einmal-Link, um ihr Konto in der von dir gewählten Rolle zu erstellen.`,step:`Schritt 1 von 2 · Wer und in welcher Rolle`,email:`E-Mail`,emailHint:`Das Konto wird mit dieser Adresse erstellt; sie kann nicht geändert werden.`,emailPlaceholder:`name@example.com`,role:`Rolle`,roleHint:`Nur Rollen, die deine vergeben darf, werden aufgeführt.`,expiry:`Link läuft ab nach`,expiryHint:`Wähle die kürzeste Zeit, die für die Person passt.`,expiryAdmin:`Administrator-Einladungen laufen innerhalb von {max} ab.`,explainer:`Was jede Rolle kann`,delivery:`Wie du sie sendest`,deliveryLink:`Link kopieren`,deliveryLinkHint:`Du teilst ihn selbst, privat.`,deliveryEmail:`Per E-Mail senden`,deliveryEmailHint:`Studio sendet den Link per E-Mail; du siehst ihn nicht.`,submit:`Einladungslink erstellen`,send:`Einladung senden`,failed:`Die Einladung konnte nicht erstellt werden`},reveal:{title:`Einladungslink kopieren`,sentTitle:`Einladung gesendet`,description:`Für {email}, als {role}. Schritt 2 von 2.`,warningTitle:`Du wirst diesen Link nicht wieder sehen`,warning:`Kopiere ihn jetzt und teile ihn privat, in einer Direktnachricht, nicht in einem geteilten Kanal. Wer ihn zuerst öffnet, tritt als {role} bei.`,link:`Einladungslink`,summary:`Einladung`,expires:`Läuft {relative} ab ({absolute}).`,private:`Wenn er die falsche Person erreicht, widerrufe ihn unter Ausstehende Einladungen.`,done:`Ich habe den Link kopiert`,sent:`An {email} gesendet`,sentDescription:`Der Link funktioniert einmal. Du kannst ihn unter Ausstehende Einladungen widerrufen.`},errors:{emailRequired:`Gib eine E-Mail-Adresse ein`,emailInvalid:`Gib eine gültige E-Mail-Adresse ein, etwa name@example.com`,rank:`Deine Rolle kann niemanden als {role} einladen.`,invalid_expiry:`Diese Ablaufzeit ist für diese Rolle nicht erlaubt. Wähle eine kürzere.`,delivery_unavailable:`Dieser Server kann keine E-Mails senden. Kopiere stattdessen einen Link.`,delivery_failed:`Die E-Mail konnte nicht gesendet werden, daher wurde die Einladung storniert. Wähle Link kopieren und versuche es erneut.`,already_member:`{email} ist bereits im Team.`,too_many_invites:`Es gibt zu viele ausstehende Einladungen. Widerrufe zuerst einige.`,rate_limited:`Du hast in der letzten Stunde viele Einladungen erstellt. Versuche es später erneut.`}},inviteAccept:{titleGeneric:`Einem Cloudhal Studio beitreten`,title:`{name} beitreten`,descriptionGeneric:`Deine Einladung wird geöffnet…`,descriptionDead:`Dieser Link funktioniert nicht mehr.`,description:`{inviter} hat dich als {role} eingeladen.`,someone:`Jemand`,summary:`Deine Einladung`,as:`Du trittst bei als`,expires:`Diese Einladung läuft {relative} ab ({absolute}).`,emailHint:`Die Einladung gilt für diese Adresse.`,nameHint:`Wird neben deinen Änderungen und Freigaben angezeigt.`,existingTitle:`Du hast bereits ein Konto`,existing:`Gib dessen Passwort ein, um damit beizutreten.`,submit:`Einladung annehmen`,toSignIn:`Zur Anmeldung`,signOutFirst:`Melde dich zuerst ab und nimm dann die Einladung an.`,welcome:`Willkommen bei {name}`,welcomeDescription:`Du bist als {role} angemeldet.`,missingTitle:`Dieser Link ist unvollständig`,missing:`Öffne den vollständigen Link, den du erhalten hast; der Teil nach # fehlt. Wenn es immer noch nicht funktioniert, bitte um eine neue Einladung.`,goneTitle:`Diese Einladung kann nicht verwendet werden`,gone:`Sie wurde verwendet, widerrufen oder ist abgelaufen. Bitte die Person, die dich eingeladen hat, um eine neue.`,otherSessionTitle:`Du bist als {email} angemeldet`,otherSessionTitleGeneric:`Du bist als jemand anderes angemeldet`,otherSession:`Diese Einladung gilt für {email}. Melde dich ab und nimm sie dann an.`,alreadyMemberTitle:`Du bist bereits im Team`,alreadyMember:`Dieses Konto ist bereits Mitglied. Melde dich stattdessen an.`,errors:{nameRequired:`Gib deinen Namen ein`,nameTooLong:`Höchstens {max} Zeichen`,weakPassword:`Verwende mindestens 8 Zeichen`,wrongPassword:`Das Passwort ist für dieses Konto nicht richtig`}},resetPassword:{title:`Wähle ein neues Passwort`,description:`Für das Konto von {name}.`,descriptionGeneric:`Dein Link zum Zurücksetzen wird geöffnet…`,descriptionDead:`Dieser Link funktioniert nicht mehr.`,expires:`Dieser Link läuft {relative} ab ({absolute}).`,signsOut:`Du wirst auf allen Geräten abgemeldet; melde dich dann mit dem neuen Passwort an.`,submit:`Neues Passwort festlegen`,doneTitle:`Passwort geändert`,doneDescription:`Melde dich mit deinem neuen Passwort an.`,changed:`Dein Passwort ist festgelegt`,changedDescription:`Du wurdest überall abgemeldet.`,missingTitle:`Dieser Link ist unvollständig`,missing:`Öffne den vollständigen Link, den du erhalten hast; der Teil nach # fehlt.`,goneTitle:`Dieser Link zum Zurücksetzen kann nicht verwendet werden`,gone:`Er wurde verwendet oder ist abgelaufen. Fordere auf der Anmeldeseite einen neuen an oder frage einen Administrator.`},forgotPassword:{link:`Passwort vergessen?`,title:`Passwort zurücksetzen`,description:`Wir senden dir einen Link per E-Mail, um ein neues zu wählen.`,submit:`Link per E-Mail senden`,sentTitle:`Prüfe dein E-Mail-Postfach`,sent:`Wenn {email} zu einem Konto hier gehört, ist ein Link zum Zurücksetzen unterwegs. Er funktioniert einmal, eine Stunde lang.`,unavailableTitle:`Dieser Server kann keine E-Mails senden`,unavailable:`Bitte einen Administrator dieses Studios um einen Link zum Zurücksetzen.`,back:`Zurück zur Anmeldung`},passwords:{new:`Neues Passwort`,confirm:`Passwort wiederholen`,strength:`Stärke: {level}`,levels:{empty:`—`,tooShort:`zu kurz`,weak:`schwach`,fair:`mittel`,strong:`stark`},advice:{empty:`Mindestens {min} Zeichen. Ein paar zusammenhanglose Wörter ergeben ein starkes.`,tooShort:`Mindestens {min} Zeichen.`,weak:`Länger ist stärker: Versuche 12 Zeichen oder mehr oder ein paar zusammenhanglose Wörter.`,fair:`Gut. Ein paar Zeichen mehr machen es stark.`,strong:`Starkes Passwort.`},errors:{required:`Gib ein Passwort ein`,tooShort:`Verwende mindestens {min} Zeichen`,tooLong:`Verwende höchstens {max} Zeichen`,confirmRequired:`Wiederhole das Passwort`,mismatch:`Die Passwörter stimmen nicht überein`}}};export{e as messages};
6
+ //# sourceMappingURL=de-CUjqphee.js.map
@@ -1,2 +1,2 @@
1
- import{r as e}from"./rolldown-runtime-hePW80VL.js";import{n as t}from"./IconBase.es-BZDpYMnj.js";import{i as n,r}from"./react-CDCuUAOg.js";import{t as i}from"./button-pa1bq9b85hawg41a-CmOCuL-1.js";import{h as a}from"./skeleton-line-m9dyh126t9k07jvg-BFlcthbF.js";import{r as o}from"./House.es-BQyZgbwu.js";import{n as s,t as c}from"./banner-msnmqm7of2lck01x-D6cADEpP.js";import{t as l}from"./input-c8lv9ulv0kortliq-Be2cm12J.js";import{i as u,n as d,r as f,t as p}from"./dialog-glpnivujociqs9lh-Cch0_XyA.js";import{i as m,n as h}from"./i18n-Dz1LE8DB.js";import{t as g}from"./api-errors-DObQzNBx.js";import{F as _}from"./index-DMKFLgkG.js";var v=e(n(),1),y=r(),b={size:`base`};function x({open:e,onOpenChange:n,labels:r,resourceName:m,onDelete:h,isDeleting:g=!1,caseSensitive:x=!0,size:w=b.size,errorMessage:T,notice:E,className:D}){let[O,k]=(0,v.useState)(``),[A,j]=(0,v.useState)(!1);(0,v.useEffect)(()=>{e||(k(``),j(!1))},[e]);let M=(0,v.useCallback)(e=>x?e:e.toLowerCase(),[x]),N=M(O)===M(m),P=(0,v.useCallback)(async()=>{N&&!g&&await h()},[N,g,h]),F=(0,v.useCallback)(async()=>{await navigator.clipboard.writeText(m),j(!0),setTimeout(()=>j(!1),1500)},[m]);return(0,y.jsx)(f,{open:e,onOpenChange:n,children:(0,y.jsxs)(p,{size:w,className:t(`p-0`,D),children:[(0,y.jsxs)(`div`,{className:`flex items-center justify-between border-b border-kumo-line px-6 py-4`,children:[(0,y.jsx)(u,{className:`text-lg font-semibold`,children:S(r.title,m)}),(0,y.jsx)(d,{render:e=>(0,y.jsx)(i,{...e,variant:`ghost`,shape:`square`,size:`sm`,"aria-label":r.close,disabled:g,children:(0,y.jsx)(_,{size:18})})})]}),(0,y.jsxs)(`div`,{className:`flex flex-col gap-4 p-6`,children:[(0,y.jsxs)(`div`,{className:`flex flex-col gap-2`,children:[T&&(0,y.jsx)(c,{icon:(0,y.jsx)(s,{}),variant:`error`,children:T}),(0,y.jsx)(`p`,{className:`max-w-prose text-base text-pretty text-kumo-subtle`,children:C(r.warning,(0,y.jsx)(`span`,{className:`font-medium text-kumo-default`,children:m}))}),E]}),(0,y.jsxs)(`div`,{className:`flex flex-col gap-2`,children:[(0,y.jsx)(`div`,{className:`flex items-center gap-1.5 text-base`,children:(0,y.jsx)(`span`,{children:C(r.typeToConfirm,(0,y.jsxs)(`button`,{className:`group inline rounded-md bg-kumo-tint px-2 py-1 font-mono text-sm font-semibold hover:cursor-pointer hover:bg-kumo-fill`,onClick:F,"aria-label":S(r.copy,m),children:[m,A?(0,y.jsx)(a,{size:12,weight:`bold`,className:`ms-1.5 inline`}):(0,y.jsx)(o,{size:12,weight:`bold`,className:`ms-1.5 inline text-kumo-subtle group-hover:text-kumo-default`})]}))})}),(0,y.jsx)(l,{placeholder:m,value:O,onChange:e=>k(e.target.value),disabled:g,autoComplete:`off`,autoCorrect:`off`,autoCapitalize:`off`,spellCheck:!1,"aria-label":S(r.confirmInput,m),className:`w-full`})]})]}),(0,y.jsxs)(`div`,{className:`flex justify-end gap-3 border-t border-kumo-line px-6 py-4`,children:[(0,y.jsx)(d,{render:e=>(0,y.jsx)(i,{...e,variant:`secondary`,disabled:g,children:r.cancel})}),(0,y.jsx)(i,{variant:`destructive`,onClick:P,disabled:!N||g,loading:g,children:r.delete})]})]})})}x.displayName=`DeleteResource`;var S=(e,t)=>e.replaceAll(`{name}`,t);function C(e,t){let[n,...r]=e.split(`{name}`);return r.length===0?e:(0,y.jsxs)(y.Fragment,{children:[n,t,r.join(``)]})}function w(e,t,n={}){let r=t.toLocaleLowerCase(h()),i={title:e(`common.deleteResource.title`,m(`name`)),warning:e(`common.deleteResource.warning`,{type:r,...m(`name`)}),typeToConfirm:e(`common.deleteResource.typeToConfirm`,m(`name`)),copy:e(`common.deleteResource.copy`,m(`name`)),confirmInput:e(`common.deleteResource.confirmInput`,m(`name`)),close:e(`common.close`),cancel:e(`common.cancel`),delete:n.action??e(`common.deleteResource.delete`,{type:r})};return n.error?{labels:i,errorMessage:g(e,n.error)}:{labels:i}}export{x as n,w as t};
2
- //# sourceMappingURL=deleteLabels-C5GfAnPh.js.map
1
+ import{r as e}from"./rolldown-runtime-hePW80VL.js";import{n as t}from"./IconBase.es-BZDpYMnj.js";import{i as n,r}from"./react-CDCuUAOg.js";import{t as i}from"./button-pa1bq9b85hawg41a-CmOCuL-1.js";import{h as a}from"./skeleton-line-m9dyh126t9k07jvg-BFlcthbF.js";import{r as o}from"./House.es-BQyZgbwu.js";import{n as s,t as c}from"./banner-msnmqm7of2lck01x-D6cADEpP.js";import{t as l}from"./input-c8lv9ulv0kortliq-Be2cm12J.js";import{i as u,n as d,r as f,t as p}from"./dialog-glpnivujociqs9lh-BqMU4UxI.js";import{i as m,n as h}from"./i18n-CdW50___.js";import{t as g}from"./api-errors-CXLBmdpk.js";import{F as _}from"./index-DYyDeKnk.js";var v=e(n(),1),y=r(),b={size:`base`};function x({open:e,onOpenChange:n,labels:r,resourceName:m,onDelete:h,isDeleting:g=!1,caseSensitive:x=!0,size:w=b.size,errorMessage:T,notice:E,className:D}){let[O,k]=(0,v.useState)(``),[A,j]=(0,v.useState)(!1);(0,v.useEffect)(()=>{e||(k(``),j(!1))},[e]);let M=(0,v.useCallback)(e=>x?e:e.toLowerCase(),[x]),N=M(O)===M(m),P=(0,v.useCallback)(async()=>{N&&!g&&await h()},[N,g,h]),F=(0,v.useCallback)(async()=>{await navigator.clipboard.writeText(m),j(!0),setTimeout(()=>j(!1),1500)},[m]);return(0,y.jsx)(f,{open:e,onOpenChange:n,children:(0,y.jsxs)(p,{size:w,className:t(`p-0`,D),children:[(0,y.jsxs)(`div`,{className:`flex items-center justify-between border-b border-kumo-line px-6 py-4`,children:[(0,y.jsx)(u,{className:`text-lg font-semibold`,children:S(r.title,m)}),(0,y.jsx)(d,{render:e=>(0,y.jsx)(i,{...e,variant:`ghost`,shape:`square`,size:`sm`,"aria-label":r.close,disabled:g,children:(0,y.jsx)(_,{size:18})})})]}),(0,y.jsxs)(`div`,{className:`flex flex-col gap-4 p-6`,children:[(0,y.jsxs)(`div`,{className:`flex flex-col gap-2`,children:[T&&(0,y.jsx)(c,{icon:(0,y.jsx)(s,{}),variant:`error`,children:T}),(0,y.jsx)(`p`,{className:`max-w-prose text-base text-pretty text-kumo-subtle`,children:C(r.warning,(0,y.jsx)(`span`,{className:`font-medium text-kumo-default`,children:m}))}),E]}),(0,y.jsxs)(`div`,{className:`flex flex-col gap-2`,children:[(0,y.jsx)(`div`,{className:`flex items-center gap-1.5 text-base`,children:(0,y.jsx)(`span`,{children:C(r.typeToConfirm,(0,y.jsxs)(`button`,{className:`group inline rounded-md bg-kumo-tint px-2 py-1 font-mono text-sm font-semibold hover:cursor-pointer hover:bg-kumo-fill`,onClick:F,"aria-label":S(r.copy,m),children:[m,A?(0,y.jsx)(a,{size:12,weight:`bold`,className:`ms-1.5 inline`}):(0,y.jsx)(o,{size:12,weight:`bold`,className:`ms-1.5 inline text-kumo-subtle group-hover:text-kumo-default`})]}))})}),(0,y.jsx)(l,{placeholder:m,value:O,onChange:e=>k(e.target.value),disabled:g,autoComplete:`off`,autoCorrect:`off`,autoCapitalize:`off`,spellCheck:!1,"aria-label":S(r.confirmInput,m),className:`w-full`})]})]}),(0,y.jsxs)(`div`,{className:`flex justify-end gap-3 border-t border-kumo-line px-6 py-4`,children:[(0,y.jsx)(d,{render:e=>(0,y.jsx)(i,{...e,variant:`secondary`,disabled:g,children:r.cancel})}),(0,y.jsx)(i,{variant:`destructive`,onClick:P,disabled:!N||g,loading:g,children:r.delete})]})]})})}x.displayName=`DeleteResource`;var S=(e,t)=>e.replaceAll(`{name}`,t);function C(e,t){let[n,...r]=e.split(`{name}`);return r.length===0?e:(0,y.jsxs)(y.Fragment,{children:[n,t,r.join(``)]})}function w(e,t,n={}){let r=t.toLocaleLowerCase(h()),i={title:e(`common.deleteResource.title`,m(`name`)),warning:e(`common.deleteResource.warning`,{type:r,...m(`name`)}),typeToConfirm:e(`common.deleteResource.typeToConfirm`,m(`name`)),copy:e(`common.deleteResource.copy`,m(`name`)),confirmInput:e(`common.deleteResource.confirmInput`,m(`name`)),close:e(`common.close`),cancel:e(`common.cancel`),delete:n.action??e(`common.deleteResource.delete`,{type:r})};return n.error?{labels:i,errorMessage:g(e,n.error)}:{labels:i}}export{x as n,w as t};
2
+ //# sourceMappingURL=deleteLabels-Cm9ihsQ3.js.map
@@ -1,2 +1,2 @@
1
- import{r as e}from"./rolldown-runtime-hePW80VL.js";import{n as t}from"./IconBase.es-BZDpYMnj.js";import{ir as n,vr as r}from"./useBaseUiId-lg1teubxudgin0w2-CURnJ4xq.js";import{i,r as a}from"./react-CDCuUAOg.js";import{p as o}from"./api-Cqqt5jTd.js";import{a as s,t as c}from"./useRenderDialogRoot-lddunc01twftravv-DaCowiKC.js";import{n as l,r as u,t as d}from"./DialogRoot-hl3genvzl9h8ridm-BuXbJxoK.js";import{i as f,n as p,r as m,t as h}from"./DialogTrigger-g44cuem7n4wez533-BMsW2jM1.js";function g(e){return s(`alert-dialog`,e)}var _=f,v=e(i(),1),y=a(),b={size:{base:{classes:`sm:w-96`,description:`Default dialog width (384px)`},sm:{classes:`sm:w-72`,description:`Small dialog for simple confirmations (288px)`},lg:{classes:`sm:w-[32rem]`,description:`Large dialog for complex content (512px)`},xl:{classes:`sm:w-[48rem]`,description:`Extra large dialog for detailed views (768px)`}},role:{dialog:{classes:``,description:`Standard dialog for general-purpose modals`},alertdialog:{classes:``,description:`Alert dialog for confirmation flows requiring explicit user acknowledgment`}}},x={size:`base`,role:`dialog`},S=(0,v.createContext)(`dialog`);function C(){return(0,v.useContext)(S)}function w({size:e=x.size}={}){return t(`shadow-m ring ring-kumo-line fixed top-8 left-1/2 sm:top-16 w-full max-w-[calc(100vw-2rem)] -translate-x-1/2 overflow-hidden rounded-xl bg-kumo-base text-kumo-default duration-150 data-ending-style:scale-90 data-ending-style:opacity-0 data-starting-style:scale-90 data-starting-style:opacity-0`,r(b.size,e,x.size).classes)}function T({className:e,children:r,style:i,size:a=x.size,container:s}){C();let d=n();return(0,y.jsxs)(c,{container:s??d??void 0,children:[(0,y.jsx)(l,{className:`fixed inset-0 bg-kumo-recessed opacity-80 transition-all duration-150 data-ending-style:opacity-0 data-starting-style:opacity-0`}),(0,y.jsx)(o,{render:(0,y.jsx)(u,{}),className:t(w({size:a}),e),style:{transitionProperty:`scale, opacity`,transitionTimingFunction:`var(--default-transition-timing-function)`,"--tw-shadow":`0 20px 25px -5px rgb(0 0 0 / 0.03), 0 8px 10px -6px rgb(0 0 0 / 0.03)`,...i},children:r})]})}function E(e){if(e.role===`alertdialog`){let{children:t,role:n,...r}=e;return(0,y.jsx)(S.Provider,{value:n,children:(0,y.jsx)(g,{...r,children:t})})}let{children:t,role:n=x.role,...r}=e;return(0,y.jsx)(S.Provider,{value:n,children:(0,y.jsx)(d,{...r,children:t})})}E.displayName=`Dialog.Root`;function D({children:e,...t}){return C()===`alertdialog`?(0,y.jsx)(_,{"data-kumo-component":`Dialog`,"data-kumo-part":`trigger`,...t,children:e}):(0,y.jsx)(f,{"data-kumo-component":`Dialog`,"data-kumo-part":`trigger`,...t,children:e})}D.displayName=`Dialog.Trigger`;function O({className:e,...t}){let n=(C(),m);return(0,y.jsx)(n,{className:e,...t})}O.displayName=`Dialog.Title`;function k({className:e,...t}){let n=(C(),p);return(0,y.jsx)(n,{className:e,...t})}k.displayName=`Dialog.Description`;function A({children:e,...t}){let n=(C(),h);return(0,y.jsx)(n,{"data-kumo-component":`Dialog`,"data-kumo-part":`close`,...t,children:e})}A.displayName=`Dialog.Close`;var j=Object.assign(T,{Root:E,Trigger:D,Title:O,Description:k,Close:A});export{O as i,A as n,E as r,j as t};
2
- //# sourceMappingURL=dialog-glpnivujociqs9lh-Cch0_XyA.js.map
1
+ import{r as e}from"./rolldown-runtime-hePW80VL.js";import{n as t}from"./IconBase.es-BZDpYMnj.js";import{ir as n,vr as r}from"./useBaseUiId-lg1teubxudgin0w2-CURnJ4xq.js";import{i,r as a}from"./react-CDCuUAOg.js";import{h as o}from"./api-Mdeo6gzg.js";import{a as s,t as c}from"./useRenderDialogRoot-lddunc01twftravv-DaCowiKC.js";import{n as l,r as u,t as d}from"./DialogRoot-hl3genvzl9h8ridm-BuXbJxoK.js";import{i as f,n as p,r as m,t as h}from"./DialogTrigger-g44cuem7n4wez533-BMsW2jM1.js";function g(e){return s(`alert-dialog`,e)}var _=f,v=e(i(),1),y=a(),b={size:{base:{classes:`sm:w-96`,description:`Default dialog width (384px)`},sm:{classes:`sm:w-72`,description:`Small dialog for simple confirmations (288px)`},lg:{classes:`sm:w-[32rem]`,description:`Large dialog for complex content (512px)`},xl:{classes:`sm:w-[48rem]`,description:`Extra large dialog for detailed views (768px)`}},role:{dialog:{classes:``,description:`Standard dialog for general-purpose modals`},alertdialog:{classes:``,description:`Alert dialog for confirmation flows requiring explicit user acknowledgment`}}},x={size:`base`,role:`dialog`},S=(0,v.createContext)(`dialog`);function C(){return(0,v.useContext)(S)}function w({size:e=x.size}={}){return t(`shadow-m ring ring-kumo-line fixed top-8 left-1/2 sm:top-16 w-full max-w-[calc(100vw-2rem)] -translate-x-1/2 overflow-hidden rounded-xl bg-kumo-base text-kumo-default duration-150 data-ending-style:scale-90 data-ending-style:opacity-0 data-starting-style:scale-90 data-starting-style:opacity-0`,r(b.size,e,x.size).classes)}function T({className:e,children:r,style:i,size:a=x.size,container:s}){C();let d=n();return(0,y.jsxs)(c,{container:s??d??void 0,children:[(0,y.jsx)(l,{className:`fixed inset-0 bg-kumo-recessed opacity-80 transition-all duration-150 data-ending-style:opacity-0 data-starting-style:opacity-0`}),(0,y.jsx)(o,{render:(0,y.jsx)(u,{}),className:t(w({size:a}),e),style:{transitionProperty:`scale, opacity`,transitionTimingFunction:`var(--default-transition-timing-function)`,"--tw-shadow":`0 20px 25px -5px rgb(0 0 0 / 0.03), 0 8px 10px -6px rgb(0 0 0 / 0.03)`,...i},children:r})]})}function E(e){if(e.role===`alertdialog`){let{children:t,role:n,...r}=e;return(0,y.jsx)(S.Provider,{value:n,children:(0,y.jsx)(g,{...r,children:t})})}let{children:t,role:n=x.role,...r}=e;return(0,y.jsx)(S.Provider,{value:n,children:(0,y.jsx)(d,{...r,children:t})})}E.displayName=`Dialog.Root`;function D({children:e,...t}){return C()===`alertdialog`?(0,y.jsx)(_,{"data-kumo-component":`Dialog`,"data-kumo-part":`trigger`,...t,children:e}):(0,y.jsx)(f,{"data-kumo-component":`Dialog`,"data-kumo-part":`trigger`,...t,children:e})}D.displayName=`Dialog.Trigger`;function O({className:e,...t}){let n=(C(),m);return(0,y.jsx)(n,{className:e,...t})}O.displayName=`Dialog.Title`;function k({className:e,...t}){let n=(C(),p);return(0,y.jsx)(n,{className:e,...t})}k.displayName=`Dialog.Description`;function A({children:e,...t}){let n=(C(),h);return(0,y.jsx)(n,{"data-kumo-component":`Dialog`,"data-kumo-part":`close`,...t,children:e})}A.displayName=`Dialog.Close`;var j=Object.assign(T,{Root:E,Trigger:D,Title:O,Description:k,Close:A});export{O as i,A as n,E as r,j as t};
2
+ //# sourceMappingURL=dialog-glpnivujociqs9lh-BqMU4UxI.js.map