@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
@@ -0,0 +1,6 @@
1
+ var e={app:{name:`Cloudhal Studio`,tagline:`Увійдіть, щоб керувати своїми сайтами.`},playground:{title:`Playground`,description:[[2,`count`,{one:[`Залишилася `,[4],` хвилина`],few:[`Залишилося `,[4],` хвилини`],many:[`Залишилося `,[4],` хвилин`],other:[`Залишилося `,[4],` хвилини`]}],`. Усе видаляється після завершення сеансу, тож не вводьте особисті дані.`],reset:`Скинути`,deploy:`Розгорнути в Cloudflare`,unavailableTitle:`Доступно у вашій інсталяції`,unavailableDescription:`Учасникам команди, ключам агентів і налаштуванням облікового запису потрібен вхід, тому в playground їх немає. Розгорніть Cloudhal у своєму обліковому записі Cloudflare, щоб ними користуватися.`},common:{save:`Зберегти`,cancel:`Скасувати`,delete:`Видалити`,publish:`Опублікувати`,rollBack:`Відкотити`,loading:`Завантаження…`,signOut:`Вийти`,live:`На сайті`,language:`Мова`,more:`Більше`,rev:`ред. {rev}`,close:`Закрити`,optional:`(необов’язково)`,moreInformation:`Докладніше`,copy:`Копіювати`,copied:`Скопійовано`,retry:`Спробувати ще`,discard:`Відкинути`,saveChanges:`Зберегти зміни`,unsaved:`Незбережені зміни`,onThisPage:`На цій сторінці`,on:`Увімк.`,off:`Вимк.`,deleteResource:{title:`Видалити {name}`,warning:`Цю дію не можна скасувати. Буде остаточно видалено: {type} {name}.`,typeToConfirm:`Введіть {name} для підтвердження:`,copy:`Копіювати {name} в буфер обміну`,confirmInput:`Введіть {name}, щоб підтвердити видалення`,delete:`Видалити: {type}`}},theme:{label:`Тема`,current:`Тема: {name}`,light:`Світла`,dark:`Темна`,system:`Системна`},auth:{signInTitle:`З поверненням`,signUpTitle:`Створіть обліковий запис`,signUpDescription:`Перший обліковий запис у новій Studio стає її власником.`,footer:`Відкритий код · Apache-2.0`,signIn:`Увійти`,createAccount:`Створити обліковий запис`,name:`Ім’я`,email:`Ел. пошта`,password:`Пароль`,passwordHint:`Щонайменше вісім символів`,failed:`Не вдалося увійти`,setupTitle:`Налаштування цієї Studio`,setupDescription:"Ви відкрили посилання для налаштування з `cloudhal deploy`. Обліковий запис, який ви зараз створите, стане власником; після цього реєстрацію буде закрито."},sites:{title:`Сайти`,description:`Кожен сайт — це граф сторінок і вмісту, з яким працюють агенти з вашого схвалення.`,columns:{project:`Проєкт`,name:`Назва`,slug:`Слаг`,pages:`Сторінки`,status:`Статус`},notPublished:`Не опубліковано`,empty:`Сайтів ще немає`,emptyDescription:`Створіть сайт у терміналі, і він з’явиться тут.`,search:`Пошук сайтів`,usageTitle:`З термінала`,usageDescription:`Усе в Studio доступне і як команда CLI, тож агенти та скрипти можуть виконувати ту саму роботу.`,open:`Відкрити`},pageHeaders:{media:{title:`Медіа`,description:`Зображення, відео, аудіо, документи й файли даних цього сайту. Нові файли з’являються на сайті після наступної публікації.`},pages:{title:`Сторінки`,description:`Маршрути цього сайту. Кожна сторінка — це набір секцій, які відображає тема.`},articles:{title:`Статті`,description:`Дописи та інші записи, написані людьми чи агентами й опубліковані разом із сайтом.`},snapshots:{title:`Знімки`,description:`Зафіксовані версії сайту. Публікація спрямовує опублікований сайт на один зі знімків, відкат — на попередній.`},activity:{title:`Активність`,description:`Кожен виклик інструмента, зроблений агентом чи людиною на цьому сайті, разом із рішенням політики.`},approvals:{title:`Схвалення`,description:`Публікації, відкати й видалення від агентів, їхні зміни в ручному режимі, запити на більшу автономність, а також публікації, які роль людини не дозволяє зробити самостійно, чекають тут, доки їх не розгляне той, хто має право вирішувати.`},settings:{title:`Налаштування`,description:`Назва, мови, домени та посилання для попереднього перегляду цього сайту.`},agents:{title:`Агенти`,description:`Ключі дають змогу агентам, завданням CI та клієнтам MCP працювати з вашими сайтами. Режим ключа визначає, що агент робить сам, а що чекає на вас.`},skills:{title:`Навички`,description:`Інструкції, які агенти читають через MCP. Виклик у межах навички отримує лише ті області доступу, які вона оголошує, а перелічені в ній інструменти завжди чекають на людину.`},account:{title:`Обліковий запис`,description:`Ваш профіль, спосіб входу та хто ще має доступ до цієї Studio.`},taxonomy:{title:`Категорії й теги`,description:`Як статті впорядковуються і як їх знаходять. Перейменування, об’єднання чи виведення з ужитку — це одна зміна й один знімок, після якої лишаються переспрямування.`},navigation:{title:`Навігація`,description:`Меню, за якими орієнтуються відвідувачі: у шапці, у підвалі та будь-які інші, які розміщує ваша тема. Пункти вказують на сторінки й категорії, тож перейменування їх не ламають.`},translations:{title:`Переклади`,description:`Кожна сторінка й стаття за мовами: чого бракує, що застаріло чи чекає перевірки людиною.`},redirects:{title:`Переспрямування`,description:`Старі адреси та куди вони ведуть відвідувачів. Зміни слага, об’єднання й виведення з ужитку додають їх автоматично; ви також можете додати власні.`},team:{title:`Команда`,description:`Хто працює в цій Studio і в якій ролі. Люди приєднуються за одноразовим посиланням-запрошенням; їхні агенти ніколи не можуть більше, ніж вони самі.`}},nav:{media:`Медіа`,comments:`Коментарі`,overview:`Огляд`,content:`Вміст`,history:`Історія`,automation:`Автоматизація`,account:`Обліковий запис`,home:`Огляд`,pages:`Сторінки`,articles:`Статті`,snapshots:`Знімки`,agents:`Агенти`,allSites:`Усі сайти`,sites:`Сайти`,switchSite:`Змінити сайт`,search:`Пошук або команда…`,shortcutHint:`⌘K`,shortcutHintCtrl:`Ctrl K`,agentSkills:`Навички`,schedules:`Розклади`,activity:`Активність`,agentKeys:`Ключі та MCP`,approvals:`Схвалення`,settings:`Налаштування`,siteSettings:`Налаштування`,taxonomy:`Категорії й теги`,navigation:`Навігація`,redirects:`Переспрямування`,translations:`Переклади`,team:`Команда`,analytics:`Аналітика`},commands:{goMedia:`Перейти до медіа`,goComments:`Перейти до коментарів`,goAnalytics:`Перейти до аналітики`,placeholder:`Введіть команду…`,empty:`Немає відповідних команд`,hintNavigate:`Перехід`,hintSelect:`Виконати`,hintClose:`Закрити`,goOverview:`Перейти до огляду`,goArticles:`Перейти до статей`,goSnapshots:`Перейти до знімків`,newArticle:`Нова стаття`,createSnapshot:`Створити знімок`,publishSite:`Зробити знімок і опублікувати сайт`,goActivity:`Перейти до активності`,goAgents:`Перейти до агентів`,createAgentKey:`Створити ключ агента`,goSkills:`Перейти до навичок`,goAccount:`Перейти до налаштувань облікового запису`,goTeam:`Перейти до команди`,goSiteSettings:`Перейти до налаштувань сайту`,goApprovals:`Перейти до схвалень`,goTaxonomy:`Перейти до категорій і тегів`,goNavigation:`Перейти до меню навігації`,goRedirects:`Перейти до переспрямувань`,goSchedules:`Перейти до розкладів`,newSchedule:`Запланувати публікацію…`,searchPlaceholder:`Знайдіть вміст або виконайте команду…`,searchEmpty:`Немає відповідних команд чи вмісту`,hintNewTab:`Нова вкладка`,groups:{commands:`Команди`,entry:`Статті`,page:`Сторінки`,term:`Категорії й теги`,asset:`Медіа`,menu:`Пункти меню`,redirect:`Переспрямування`}},overview:{commentsWaiting:[[2,`count`,{one:[[4],` коментар чекає`],few:[[4],` коментарі чекають`],many:[[4],` коментарів чекають`],other:[[4],` коментаря чекають`]}]],commentsWaitingDescription:`Читачі не бачать їх, доки хтось їх не схвалить.`,liveSnapshotLabel:`Опублікований знімок`,notPublished:`Ще не опубліковано`,newPage:`Нова сторінка`,pages:`Сторінки`,columns:{title:`Заголовок`,path:`Шлях`,status:`Статус`,updated:`Оновлено`},empty:`Сторінок ще немає`,emptyDescription:`Створіть першу сторінку або попросіть агента підготувати її.`,search:`Пошук сторінок`,status:`Статус`,live:`На сайті`,recentArticles:`Останні статті`,viewAll:`Переглянути всі`,cli:`З термінала`},pageStatus:{publishTitle:`Опублікувати «{title}»?`,published:`Сторінку опубліковано`,unpublished:`Сторінку повернуто в чернетки`,failed:`Статус сторінки не змінився`,leftOut:[[2,`count`,{one:[[4],` сторінка не опублікована`],few:[[4],` сторінки не опубліковані`],many:[[4],` сторінок не опубліковано`],other:[[4],` сторінки не опубліковано`]}]],leftOutDescription:`Чернетки та сторінки на перевірці, зокрема нові переклади, не потрапляють на живий сайт. Спершу опублікуйте їх.`,review:`Переглянути сторінки`},articles:{description:`Дописи в колекції «posts».`,newArticle:`Нова стаття`,empty:`Статей ще немає`,emptyDescription:`Напишіть першу або доручіть це агентові.`,untitled:`Без назви`,columns:{title:`Заголовок`,author:`Автор`,status:`Статус`,updated:`Оновлено`},search:`Пошук статей`,none:`—`,noCategory:`Без категорії`,primary:`Основна категорія`,facets:{label:`Фільтрувати статті`,category:`Фільтр за категорією`,tag:`Фільтр за тегом`,allCategories:`Усі: {label}`,allTags:`Усі: {label}`,clear:`Скинути фільтри`,empty:`Немає статей, що відповідають цим фільтрам`,emptyDescription:`Спробуйте іншу категорію чи тег або скиньте фільтри.`}},articleCorrections:{title:`Виправлення`,description:`Читачі бачать їх наприкінці статті, від найновішого, а найновіше визначає дату оновлення статті. Опубліковане виправлення залишається назавжди: той, хто може публікувати, може змінити його формулювання, але видалити його не може ніхто.`,empty:`Виправлень немає`,emptyDescription:`Додайте виправлення, коли опублікований матеріал суттєво змінюється.`,kind:`Тип`,kinds:{correction:`Виправлення`,clarification:`Уточнення`,update:`Оновлення`},note:`Що змінилося`,noteHint:`Одне-два речення. Підтримуються посилання й виділення Markdown.`,add:`Додати виправлення`,unsaved:`Не збережено`,remove:`Видалити виправлення`,pending:`Збережіть статтю, щоб додати його; воно з’явиться на сайті після наступної публікації.`},articleTerms:{title:`Категорії й теги`,description:`Категорії впорядковують статтю, теги її описують. Основна категорія показується в навігаційному ланцюжку та в метаданих статті.`,legacyDescription:`Цей сайт досі зберігає теги як звичайний текст. Перенесіть їх у категорії й теги, щоб вони отримали назви, архіви та переспрямування.`,legacyTitle:`Старі теги цієї статті`,legacyPending:`{tags} стануть тегами після збереження.`,required:`Щоб надіслати статтю на перевірку або опублікувати її, виберіть: {singular}.`,requiredToast:`Спершу виберіть: {singular}`,slugRedirect:`Малі літери, через дефіс. Цю статтю опубліковано: новий слаг залишить переспрямування зі старої адреси.`},pickers:{under:`у {path}`,clear:`Очистити`,showOptions:`Показати варіанти`,noMatch:`Нічого не знайдено`,remove:`Вилучити {name}`,atMost:`Не більше ніж {max}. Вилучіть один, щоб додати інший.`,categoryHint:`До {max}. Почніть вводити, щоб шукати за назвами та синонімами.`,categoryRequiredHint:`Потрібно, щоб надіслати на перевірку або опублікувати. До {max}.`,categoryPlaceholder:`Виберіть категорії…`,noCategory:`Немає відповідних категорій. Додайте категорії в розділі «Категорії й теги».`,primary:`Основна категорія`,primaryHint:`Показується в навігаційному ланцюжку й використовується як розділ статті.`,primaryNone:`Виберіть одну…`,tagHint:`До {max}. Наявні теги показуються першими, їх можна знайти й за синонімами.`,tagPlaceholder:`Додати тег…`,tagFull:`Досягнуто ліміту тегів`,viaSynonym:`синонім «{value}»`,similar:`схожий`,create:`Створити «{name}»`,createNoSlug:`У цій назві немає літер чи цифр для адреси. Спробуйте іншу назву.`,nearDuplicate:`Схоже на {names}. Використайте наявний тег, якщо він означає те саме.`,proposedChip:`Запропоновано агентом. Отримає публічну сторінку, щойно хтось його схвалить.`},editor:{schedule:`Запланувати…`,locked:`Це утримує запланований реліз. Скасуйте планування, щоб редагувати.`,heroNoImage:`Немає головного зображення`,status:`Статус`,title:`Заголовок`,slug:`Слаг`,summary:`Короткий опис`,summaryHint:`Використовується як метаопис у результатах пошуку та в поширених посиланнях.`,body:`Текст (Markdown)`,tags:`Теги`,tagsHint:`Через кому`,path:`Шлях`,pathHint:`Абсолютний, малими літерами, без скісної риски в кінці`,sections:`Секції`,addSection:`Додати секцію`,noSections:`Секцій ще немає`,noSectionsDescription:`Додайте головний банер, форматований текст, зображення або список вмісту.`,remove:`Вилучити`,moveUp:`Перемістити вгору`,moveDown:`Перемістити вниз`,heading:`Заголовок`,subheading:`Підзаголовок`,caption:`Підпис`,collection:`Колекція`,limit:`Ліміт`,sort:`Сортування`,sortNewest:`Спершу нові`,sortOldest:`Спершу старі`,sortTitle:`За заголовком`,saved:`Збережено`,sendToReview:`Надіслати на перевірку`,submitForReview:`Подати на перевірку`,backToDraft:`Повернути в чернетку`,archive:`Архівувати`,restore:`Відновити як чернетку`,publishArticleTitle:`Опублікувати цю статтю?`,publishArticleDescription:`Вона стане видимою на сайті, коли наступного разу буде зроблено знімок сайту й опубліковано його.`,publishPageTitle:`Опублікувати цю сторінку?`,publishPageDescription:`Сторінка з’явиться на сайті під час наступної публікації. Інші сторінки та мови зберігають свій статус.`,deleteArticle:`Видалити статтю`,deletePage:`Видалити сторінку`,article:`Стаття`,page:`Сторінка`,slugHint:`Малі літери, через дефіс; стає частиною URL.`,metadata:`Подробиці`,moreActions:`Інші дії`,unpublish:`Зняти з публікації (у чернетку)`,duplicate:`Дублювати`,duplicated:`Копію створено`,copyTitle:`{title} (копія)`,dangerZone:`Небезпечна зона`,deletePageTitle:`Видалити цю сторінку`,deletePageHint:`Видаляє сторінку та її секції. Опубліковані знімки зберігають свою копію.`,deleteArticleTitle:`Видалити цю статтю`,deleteArticleHint:`Видаляє статтю із сайту. Опубліковані знімки зберігають свою копію.`,removeSectionTitle:`Вилучити цю секцію?`,removeSectionDescription:`Секцію «{kind}» буде вилучено з чернетки. Сторінка зміниться лише після збереження.`,sectionKinds:{hero:`Головний банер`,richText:`Форматований текст`,image:`Зображення`,contentList:`Список вмісту`,component:`Блок`,surface:`Згенерований інтерфейс`},buildLive:`Створення наживо`,buildLiveHint:`Спостерігайте, як агенти створюють цю сторінку в реальному часі`,surface:{title:`Згенерований інтерфейс · компонентів: {count}`,hint:`Створено з компонентів теми. Тексти змінюйте тут; щоб змінити макет, зверніться до ШІ.`,json:`Згенерований інтерфейс як дані`,showJson:`Показати JSON`,outline:`Компоненти цієї секції`,expand:`Показати вміст {title}`,collapse:`Сховати вміст {title}`,changeWithAi:`Змінити за допомогою ШІ`,editTexts:`Редагувати тексти {title}`,changePart:`Змінити {title} за допомогою ШІ`,bound:`показує {path}`,computed:`обчислюється ({fn})`,notPlaced:`Не на сторінці`},blocks:{menu:`Блоки`,unknown:`Невідомий блок · {type}`,unknownHint:`У цьому розгортанні немає типу блока з такою назвою (можливо, змінилася тема). Його збережено без змін, але на сайті він не показується.`,item:`Елемент {n}`,addItem:`Додати елемент`,removeItem:`Вилучити елемент`,moveUp:`Перемістити вгору`,moveDown:`Перемістити вниз`,values:{tone:{info:`Інформація`,success:`Успіх`,warning:`Попередження`,danger:`Небезпека`},variant:{primary:`Основний`,secondary:`Другорядний`}}},bodyTitle:`Текст`,markdown:`Markdown`,words:[[2,`count`,{one:[[4],` слово`],few:[[4],` слова`],many:[[4],` слів`],other:[[4],` слова`]}]],id:`ID`,revision:`Редакція`,locale:`Мова`,author:`Автор`,updatedAt:`Оновлено`,publishedAt:`Опубліковано`},seo:{counter:`{count} / {max}`,fixErrors:`Виправте виділені поля перед збереженням.`,cover:{title:`Обкладинка`,description:`Показується над статтею й використовується як її зображення, коли посиланням діляться. Виберіть її з медіатеки або завантажте туди нову.`,url:`URL зображення`,urlHint:`Адреса https:// або шлях на вашому сайті, наприклад /images/cover.jpg.`,urlPlaceholder:`https://… або /images/cover.jpg`,alt:`Альтернативний текст`,altHint:`Опишіть, що зображено. Програми зчитування з екрана читають це людям, які не бачать зображення, а пошукові системи використовують, щоб його зрозуміти.`,altPlaceholder:`Маяк над спокійним морем у сутінках`,remove:`Вилучити зображення`,empty:`Немає обкладинки`,loading:`Завантаження зображення…`,broken:`Не вдалося завантажити зображення`,brokenHint:`Перевірте адресу і те, що зображення загальнодоступне.`,brokenPathHost:`Шляхи сайту завантажуються з {host}. Перевірте шлях або чи розгорнуто сайт.`,brokenPathNoDomain:`Шляхи сайту завантажуються з основного домену. Додайте його в «Налаштування › Домени», щоб бачити їх тут.`,size:`{width} × {height} px`,errors:{required:`Введіть адресу зображення або вилучіть зображення.`,insecure:`Використовуйте https://. Браузери блокують зображення через http на захищених сайтах.`,invalid:`Введіть адресу https:// або шлях, що починається з /.`,tooLong:`Не більше ніж 2048 символів.`,altRequired:`Опишіть зображення. Для обкладинки альтернативний текст обов’язковий.`,altTooLong:`Не більше ніж 500 символів.`}},preview:{title:`Перегляд у пошуку та соцмережах`,description:`Як ця стаття виглядає в результатах пошуку і коли нею діляться. Короткий опис використовується як метаопис, а обкладинка — як зображення для поширення.`,search:`Результат пошуку`,social:`Картка для соцмереж`,noSummary:`Короткого опису ще немає. Пошукові системи й соцмережі візьмуть текст зі статті.`,noDescription:`Немає метаопису. Пошукові системи візьмуть текст зі сторінки.`},checks:{label:`Перевірки`,title:`Заголовок`,titleGood:`Символів: {count}. Вміщується в результат пошуку.`,titleLong:`Символів: {count}. Результати пошуку обрізають заголовки приблизно після шістдесяти.`,titleMissing:`Додайте заголовок.`,description:`Метаопис`,summary:`Метаопис (короткий опис)`,descriptionGood:`Символів: {count}. Вміщується в результат пошуку.`,descriptionShort:`Символів: {count}. Короткі описи часто замінюються; орієнтуйтеся на 50–160.`,descriptionLong:`Символів: {count}. Результати пошуку обрізають його приблизно після ста шістдесяти.`,summaryMissing:`Додайте короткий опис. Без нього пошукові системи візьмуть текст зі статті.`,image:`Зображення для поширення`,imageSet:`Використовується обкладинка.`,imageMissing:`Немає обкладинки, тож поширені посилання будуть без зображення.`,imageBroken:`Обкладинка не завантажується.`,status:{good:`Добре`,short:`Закоротко`,long:`Задовго`,missing:`Відсутнє`,broken:`Пошкоджено`}},page:{title:`Пошукові системи й поширення`,description:`Як ця сторінка виглядає в результатах пошуку і коли нею діляться.`,seoTitle:`Заголовок SEO`,seoTitleHint:`Залиште порожнім, щоб використати заголовок сторінки.`,seoDescription:`Метаопис`,seoDescriptionHint:`Одне-два речення про те, що пропонує сторінка. Орієнтуйтеся на 50–160 символів.`,seoDescriptionPlaceholder:`Що відвідувачі знайдуть на цій сторінці`,noindex:`Сховати від пошукових систем`,noindexHint:`Додає тег noindex. Сторінка залишається доступною за посиланням.`,noindexWarningTitle:`Цю сторінку приховано від пошукових систем`,noindexWarning:`Пошукові системи попросять не показувати її, а вже проіндексована сторінка зникне з видачі після їхнього наступного відвідування. Не вмикайте це для сторінок, які люди мають знаходити через пошук.`,advanced:`Додатково`,custom:`Власне`,canonical:`Канонічний URL`,canonicalHintHost:`Зазвичай порожньо: використовується адреса сторінки на {host}. Задавайте лише тоді, коли оригінал цього вмісту розміщено за іншою адресою.`,canonicalHint:`Зазвичай порожньо: використовується адреса сторінки на основному домені сайту. Задавайте лише тоді, коли оригінал цього вмісту розміщено за іншою адресою.`,canonicalPlaceholder:`https://example.com/original-page`,searchPreview:`Перегляд у пошуку`,hidden:`Приховано від пошуку`,errors:{titleTooLong:`Не більше ніж 300 символів.`,descriptionTooLong:`Не більше ніж 500 символів.`,canonicalInvalid:`Введіть повну адресу, що починається з https://.`,canonicalTooLong:`Не більше ніж 2048 символів.`}},noindexBadge:`noindex`,noindexBadgeHint:`Приховано від пошукових систем. Змінити це можна в налаштуваннях пошуку сторінки.`,noCover:`Немає обкладинки`,archive:{seoTitleHint:`Залиште порожнім, щоб використати назву терміна.`,noindexHint:`Додає до архіву тег noindex. Він залишається доступним за посиланням.`,noindexWarningTitle:`Цей архів приховано від пошукових систем`,noindexWarning:`Пошукові системи попросять не показувати його, і він зникне з мапи сайту. Не вмикайте це для тем, які люди мають знаходити через пошук.`}},status:{draft:`Чернетка`,review:`На перевірці`,published:`Опубліковано`,archived:`В архіві`},site:{publish:`Опублікувати`,publishDescription:`Записати знімок поточного графа й зробити його опублікованою версією.`,description:`/{slug} · {locale}`,rowMenu:`Інші дії`},snapshots:{description:`Кожен знімок незмінний; публікація спрямовує сайт на один із них.`,label:`Мітка`,labelPlaceholder:`напр. Ранковий випуск`,empty:`Знімків ще немає`,emptyDescription:`Зробіть знімок, щоб зафіксувати поточний стан сайту.`,created:`Знімок створено`,published:`Опубліковано`,publishedSnapshot:`Знімок опубліковано`,rolledBack:`Відкочено`,failed:`Помилка`,rollbackTitle:`Відкотити опублікований сайт?`,publishTitle:`Опублікувати на сайті?`,createDescription:`Буде записано знімок поточного графа, і він стане опублікованою версією.`,becomesLive:`{name} стане опублікованою версією.`,fromStudio:`Знімок зі Studio`,publishedFromStudio:`Опубліковано зі Studio`,compare:`Порівняти`,create:`Створити знімок`,createTitle:`Створення знімка`,createIntro:`Фіксує поточні сторінки, статті й налаштування сайту. Зроблений знімок ніколи не змінюється.`,labelDescription:`Необов’язково. Показується у списку та в розділі «Активність» замість причини.`,afterCreate:`Після створення`,keepOption:`Залишити опублікований сайт як є`,keepOptionDescription:`Лише зберегти знімок. Опублікувати чи порівняти його можна пізніше з цього списку.`,publishOption:`Опублікувати його на сайті`,publishOptionDescription:`Знімок стане опублікованою версією. Перш ніж щось з’явиться на сайті, ви це підтвердите.`,continueToPublish:`Перейти до публікації`,search:`Пошук знімків`,noMatches:`Немає відповідних знімків`,noMatchesDescription:`Спробуйте іншу мітку або ID знімка.`,actions:`Дії`,columns:{snapshot:`Знімок`,actor:`Автор`,changes:`Зміни`,when:`Створено`},reasons:{manual:`Вручну`,agentMutation:`Зміна агента`,publish:`Публікація`,rollback:`Відкат`,scheduled:`За розкладом`,import:`Імпорт`}},errors:{title:`Щось пішло не так`,conflict:`Хтось інший змінив це, відколи ви його відкрили. Перезавантажте, щоб отримати найновішу версію.`,api:{not_found:`Цього тут уже немає. Можливо, хтось це видалив.`,forbidden:`У вас немає дозволу на цю дію.`,unauthorized:`Ваш сеанс завершився. Увійдіть знову.`,rank:`Ваша роль цього не дозволяє.`,not_own:`Це можна робити лише з власною роботою.`,missing_scope:`Цьому ключу чи сеансу це не дозволено.`,rate_limited:`Забагато запитів. Зачекайте трохи й спробуйте знову.`,internal:`На сервері щось пішло не так. Спробуйте знову.`,invalid_json:`Сервер надіслав відповідь, яку Studio не змогла прочитати. Спробуйте знову.`,unique:`Щось із такою назвою чи адресою вже існує.`,slug_taken:`Ця адреса вже використовується.`,path_conflict:`Цей шлях уже використовує інша сторінка чи стаття.`,reserved_path:`Цей шлях зарезервовано для самого сайту (пошук, медіа або мовний префікс).`,in_use:`Це досі використовується, тому вилучити його не можна.`,quota_exceeded:`Квоту сховища вичерпано.`,too_large:`Ця зміна завелика для однієї операції. Розділіть її.`,state_changed:`Тим часом це змінилося. Перезавантажте й спробуйте знову.`,network:`Не вдається зв’язатися із сервером. Перевірте з’єднання й спробуйте знову.`,status:`Запит не вдався (HTTP {status}).`}},agents:{description:`Ключі дають змогу агентам, завданням CI та клієнтам MCP працювати з вашими сайтами. Кожен ключ має режим, який визначає, що агент робить сам, а що чекає на вас. Кожен виклик перевіряється політикою й записується в активність сайту.`,createKey:`Створити ключ`,search:`Пошук ключів`,columns:{name:`Назва`,owner:`Ким створено`,mode:`Режим`,scopes:`Області доступу`,created:`Створено`,status:`Статус`},views:{mine:`Ваші ключі`,all:`Усі ключі`},all:{title:`Усі ключі агентів у цьому розгортанні`,description:`Як адміністратор ви можете завершити підвищення прав або відкликати будь-який ключ. Змінювати режим ключа чи підвищувати його права може лише той, хто його створив.`,search:`Пошук ключів або людей`,empty:`Ключів агентів ще немає`,emptyDescription:`Ключі, які створюють люди, з’являються тут із зазначенням автора.`,unknownOwner:`Вилучений учасник`,elevateOnlyCreator:`Підвищити права цього ключа може лише той, хто його створив. Ви можете завершити підвищення прав або відкликати ключ.`},roleCap:`Ваша роль дозволяє ключі агентів аж до режиму «{mode}».`,narrowed:{badge:`Обмежено роллю`,hint:`Роль автора ключа зараз обмежує, що цей ключ може робити; ось області доступу, з якими він працює.`,hintRole:`Роль автора ключа тепер «{role}», тож цей ключ працює з цими областями доступу. Підвищення ролі не розширює їх знову.`,stored:`Надано: {scopes}`},active:`Активний`,disabled:`Вимкнено`,never:`Безстроковий`,expires:`Діє до {when}`,unnamed:`Ключ без назви`,keyPrefix:`{start}…`,fullAccess:`Повний доступ`,scopesModeDefault:`Типово для режиму · областей доступу: {count}`,empty:`Ключів агентів ще немає`,emptyDescription:`Створюйте окремий ключ для кожного агента чи автоматизації, надавайте лише потрібні області доступу й відкликайте ключ, коли роботу завершено.`,noMatches:`Немає ключів, що відповідають «{query}»`,notEnabledTitle:`Ключі агентів недоступні на цьому сервері`,notEnabledDescription:`Цей сервер працює без входу, тому не може видавати ключі. Агенти на вашому комп’ютері все одно можуть під’єднатися через stdio за допомогою cloudhal mcp.`,copyId:`Копіювати ID ключа`,revoke:`Відкликати`,revokeKey:`Відкликати ключ`,keyResource:`Ключ агента`,revoked:`Ключ відкликано`,revokedDescription:`{name} більше не має доступу до Studio.`,scopes:{"site:read":`Переглядати сайти та знімки`,"content:read":`Читати сторінки й статті`,"content:write":`Створювати, редагувати й видаляти сторінки та статті`,"asset:upload":`Завантажувати медіа й редагувати власні завантаження`,"asset:manage":`Редагувати, виводити з ужитку й видаляти будь-які медіа`,"analytics:read":`Читати аналітику сайту (без персональних даних)`,"site:write":`Змінювати налаштування сайту`,"preview:create":`Створювати попередні перегляди чернеток`,"site:publish":`Публікувати знімок на сайті`,"site:rollback":`Відкочувати опублікований сайт`,"content:write:own":`Створювати статті й змінювати власні`,"content:draft:own":`Писати чернетки й надсилати їх на перевірку`,"content:propose":`Пропонувати зміни тексту; ви їх приймаєте або відхиляєте`,"site:publish:own":`Публікувати, коли всі зміни власні`,"comments:read":`Читати коментарі читачів (без адрес ел. пошти)`,"comments:moderate":`Позначати й приховувати коментарі; схвалення чекають на вас`,"comments:moderate:own":`Позначати й приховувати коментарі до власних статей`,"comments:reply":`Готувати чернетки відповідей на коментарі; публікуєте їх ви`,"comments:reply:own":`Готувати чернетки відповідей до власних статей; публікуєте їх ви`,"schedules:read":`Переглядати розклад, релізи й запуски автоматизацій`,"schedules:write":`Пропонувати й планувати релізи, ембарго та закінчення терміну`,"schedules:write:own":`Планувати релізи власних сторінок і статей`,"releases:publish":`Схвалювати релізи; у режимі «Авто» малоризикові виконуються без вас`,"releases:publish:own":`Схвалювати релізи, коли всі елементи власні`},modes:{legend:`Режим`,names:{plan:`План`,manual:`Вручну`,edits:`Редагування`,auto:`Авто`,bypass:`Обхід`},descriptions:{plan:`Читає ваші сайти й створює попередні перегляди. Може пропонувати зміни, але ніколи їх не вносить.`,manual:`Питає вас перед кожною зміною, хоч якою дрібною.`,edits:`Вільно створює й редагує вміст. Для кожної зміни робиться знімок, і її можна відкотити.`,auto:`Працює як «Редагування», а невеликі публікації статей з’являються на сайті без вас.`,bypass:`Ніщо не чекає на людину. Лише для cloudhal mcp на вашому власному комп’ютері.`},waitsFor:[[3,`mode`,{plan:[`Чекає на вас: нічого, бо агент не може нічого змінити`],manual:[`Чекає на вас: кожна зміна, публікація, відкат і видалення`],edits:[`Чекає на вас: публікація, відкат і видалення`],auto:[`Чекає на вас: більші публікації, відкат і видалення`],bypass:[`Чекає на вас: нічого`],other:[`Чекає на вас: кожна зміна, публікація, відкат і видалення`]}]],risk:{safest:`Найбезпечніший`,recommended:`Рекомендовано`,caution:`Використовуйте обережно`},current:`Поточний`,bypassHint:`Режим «Обхід», у якому ніщо не чекає на людину, недоступний для ключів. Він існує лише для локального сервера на вашому власному комп’ютері:`,autoTitle:`Невеликі публікації з’являються на сайті без вас`,autoDescription:`У режимі «Авто» публікація, яка лише додає чи редагує статті, одразу з’являється на сайті: нічого не вилучено, не змінено жодних сторінок, меню, налаштувань сайту, таксономій чи переспрямувань, і змін не більше ніж {limit}. У розділі «Активність» її позначено як автоматично схвалену, і ви можете відкотити її одним кліком. Більші публікації, відкат і видалення й далі чекають на вас.`,autoConfirm:`Я розумію, що цей агент може публікувати без мого схвалення`,autoConfirmRequired:`Підтвердьте, що розумієте, як працює режим «Авто»`},howModes:{title:`Як працюють режими`,description:`Режим визначає, що агент робить сам, а що чекає на вас. Області доступу залишаються жорсткою межею: режим ніколи не надає більше.`,columns:{mode:`Режим`,edits:`Вміст`,publish:`Публікація`,rollback:`Відкат, видалення`},rules:{denied:`Заблоковано`,waits:`Чекає`,free:`Вільно`,lowRisk:`Невеликі: вільно`},rulesHint:{denied:`У цьому режимі агент не може цього робити.`,waits:`Агент питає; ви схвалюєте в розділі «Активність › Схвалення» сайту.`,free:`Агент робить це сам. Для кожної зміни робиться знімок.`,lowRisk:`Лише додані чи відредаговані статті, нічого не вилучено, не більше ніж {limit} змін. Усе більше чекає на вас.`},gated:`З ключем завжди чекає на вас`,bypass:`«Обхід» — лише для вашого власного комп’ютера:`},changeMode:{menu:`Змінити режим`,title:`Зміна режиму`,description:`Виберіть, як «{name}» працюватиме відтепер.`,from:`Зараз`,to:`Новий`,nextCallTitle:`Діє з наступного виклику агента`,nextCall:`Виклики, що вже виконуються, завершаться в поточному режимі. Зміну буде записано в журнал аудиту.`,submit:`Змінити режим`,failed:`Не вдалося змінити режим`,changed:`Режим змінено`,changedDescription:`{name} тепер працює в режимі «{mode}».`,elevatedTitle:`Права підвищено до «{mode}» до {time}`,elevationKeeps:`Підвищення прав діє до {time}, після чого ключ працюватиме в режимі «{mode}».`,elevationEnds:`«{mode}» досягає рівня підвищеного режиму, тож ця зміна завершує підвищення прав.`},elevate:{menu:`Тимчасово підвищити права`,menuDisabled:`Уже в режимі «Авто» — найавтономнішому з можливих для ключа.`,title:`Тимчасове підвищення прав`,description:`Дозвольте «{name}» якийсь час працювати в автономнішому режимі. Коли час мине, ключ сам повернеться до свого режиму.`,ownMode:`Власний режим`,ownModeHint:`Залишається без змін. Ключ повернеться до нього, коли підвищення прав завершиться.`,legend:`Підвищити до`,duration:`Тривалість`,presets:{15:`15 хв`,60:`1 год`,240:`4 год`,1440:`1 день`,custom:`Власна`},customValue:`Власна тривалість`,customUnit:`Одиниця`,units:{minutes:`Хвилини`,hours:`Години`},customHint:`Від {min} до {max}.`,customErrors:{invalid:`Введіть число`,tooShort:`Щонайменше {min}`,tooLong:`Не більше ніж {max}`},reason:`Причина`,reasonPlaceholder:`напр. День запуску: самостійно публікувати невеликі оновлення`,reasonHint:`Необов’язково. Показується в журналі аудиту.`,replacesTitle:`Це замінить чинне підвищення прав`,replaces:`«{name}» працює в режимі «{mode}» до {time}. Нове підвищення прав займе його місце.`,now:`Зараз`,elevated:`Підвищено`,summary:`До {time} (через {duration}), потім назад до «{from}».`,nextCall:`Діє з наступного виклику агента. Ви можете завершити його раніше в меню ключа.`,submit:`Підвищити`,failed:`Не вдалося підвищити права ключа`,done:`Права ключа підвищено`,doneDescription:`{name} працює в режимі «{mode}» до {time}, потім повернеться до «{from}».`},elevation:{left:`Залишилося {time}`,ownMode:`Власний режим: {mode}`,tooltip:`Права підвищено з «{from}» до {time}; хто: {who}`,requestedReason:`Запит агента: «{reason}»`,byYou:`ви`,temporary:`Права тимчасово підвищено`,marker:`Права тимчасово підвищено з «{from}» до {time}`,endMenu:`Завершити підвищення прав зараз`,ended:`Підвищення прав завершено`,endedDescription:`{name} знову в режимі «{mode}».`,endFailed:`Не вдалося завершити підвищення прав`,bannerTitle:[[2,`count`,{one:[`Права `,[4],` ключа агента підвищено`],few:[`Права `,[4],` ключів агентів підвищено`],many:[`Права `,[4],` ключів агентів підвищено`],other:[`Права `,[4],` ключа агента підвищено`]}]],bannerItem:`{name}: {from} → {to} до {time}`,endNow:`Завершити зараз`,endAll:`Завершити всі зараз`,endsIn:`Завершиться через {time}`,extendAll:`Продовжити всі на {duration}`,howModes:`Потрібно більше автономності на якийсь час? Тимчасово підвищте права ключа замість того, щоб залишати його в режимі «Авто»: він сам повернеться до свого режиму.`},create:{title:`Створення ключа агента`,description:`Ключ діє як агент на кожному сайті, який ви можете відкрити, у вибраному вами режимі.`,stepMode:`Крок 1 із 2 · Виберіть режим`,stepDetails:`Крок 2 із 2 · Назва й області доступу`,continue:`Продовжити`,mode:`Режим`,changeMode:`Змінити`,name:`Назва`,namePlaceholder:`напр. Claude Code на моєму ноутбуці`,nameHint:`Під цією назвою агенти показуються в журналі активності.`,nameRequired:`Дайте ключу назву`,advanced:`Додатково: області доступу`,advancedHint:`Заповнено для режиму «{mode}». Області доступу — жорстка межа; режим визначає, що чекає на вас.`,customised:`Змінено`,resetScopes:`Використати області доступу режиму`,missingScopesTitle:`Дещо з дозволеного цим режимом не працюватиме`,missingScopes:`Без {scopes} агент не зможе робити все, що дозволяє режим «{mode}».`,scopes:`Області доступу`,scopesRequired:`Виберіть принаймні одну область доступу`,groups:{read:`Читання`,write:`Запис`,release:`Публікація й відкат`},groupHints:{read:`Достатньо для агентів, які досліджують, підсумовують або рецензують.`,write:`Для змін робляться знімки, і їх можна відкотити.`,release:`Дає агентові змогу змінювати те, що бачать відвідувачі, або просити про таку зміну.`},submit:`Створити ключ`,failed:`Не вдалося створити ключ`,scopeAboveRole:`Ваша роль не може надати це ключу.`,scopeNarrowed:`Ваша роль надає {scope} лише для вашої власної роботи.`,errors:{scopeAboveRole:`Ваша роль не може надати ключу деякі з цих областей доступу. Зніміть із них позначки й спробуйте знову.`,modeAboveRole:`Ваша роль не дозволяє ключі в цьому режимі. Виберіть менш автономний.`}},reveal:{title:`Скопіюйте новий ключ`,description:`«{name}» готовий. Ваш агент надсилає його як bearer-токен або в заголовку x-api-key.`,warningTitle:`Ви більше не побачите цей ключ`,warning:`Збережіть його зараз у менеджері паролів або в сховищі секретів агента. Якщо його буде втрачено, відкличте його й створіть новий.`,key:`Ключ агента`,config:`Конфігурація клієнта`,done:`Ключ збережено`},connect:{title:`Під’єднання клієнта MCP`,description:`Агенти звертаються до Studio через MCP за цією адресою й надсилають свій ключ у заголовку. Під час під’єднання агент дізнається режим свого ключа, тож знає, що чекає на вас.`,endpoint:`Кінцева точка MCP`,header:`Заголовок`,client:`Клієнт`,clients:{claude:`Claude Code`,codex:`Codex`,cursor:`Cursor`,vscode:`VS Code`,generic:`Інший клієнт`,stdio:`Локально (stdio)`},hints:{claude:`Виконайте це в терміналі, потім перевірте з’єднання командою /mcp у Claude Code.`,codex:`Codex бере ключ із CLOUDHAL_API_KEY і надсилає його як bearer-токен. Додайте рядок export до профілю оболонки, щоб ключ був заданий під час кожного запуску Codex.`,cursor:`Вставте це в ~/.cursor/mcp.json або в .cursor/mcp.json проєкту. Файл містить ключ, тож не додавайте його до системи контролю версій.`,vscode:`Збережіть це як .vscode/mcp.json у проєкті. VS Code один раз попросить ключ і збереже його у своєму сховищі секретів.`,generic:`Будь-який клієнт із підтримкою streamable HTTP: ця URL-адреса і ключ у заголовку Authorization як bearer-токен. Заголовок x-api-key теж працює.`,stdio:`На власному комп’ютері запустіть сервер stdio у папці сайту; ключ не потрібен. --mode задає режим роботи, і лише тут він може бути bypass.`}}},activity:{search:`Пошук за інструментом, виконавцем або навичкою`,refresh:`Оновити активність`,filters:{label:`Фільтри`,kind:`Тип виконавця`,decision:`Рішення`,allKinds:`Усі виконавці`,allDecisions:`Усі рішення`},kinds:{agent:`Агент`,human:`Людина`,system:`Система`},decisions:{allow:`Дозволено`,deny:`Заборонено`,"approval-required":`Потребує схвалення`},outcomes:{ok:`Успішно`,error:`Помилка`,pending:`Очікує`},columns:{when:`Коли`,actor:`Виконавець`,tool:`Інструмент`,decision:`Рішення`,outcome:`Результат`,skill:`Навичка`,snapshot:`Знімок`},empty:`Активності ще немає`,emptyDescription:`Тут записується кожен виклик інструмента, який агент або людина робить через MCP: дозволений, заборонений або такий, що чекає на схвалення.`,noMatches:`Жодна подія не відповідає цим фільтрам`,noMatchesDescription:`Фільтри застосовуються до вже завантажених подій. Завантажте більше, щоб переглянути давніші.`,clearFilters:`Скинути фільтри`,showing:`Показано {shown} із {loaded} завантажених подій`,allLoaded:`Ви дійшли до першої записаної події.`,loadMore:`Завантажити ще`,notEnabledTitle:`Цей сервер не веде журнал активності`,notEnabledDescription:`Запустіть Studio командою cloudhal studio, щоб записувати кожен виклик інструментів агентами й людьми.`,ownOnlyTitle:`Ваша активність`,ownOnly:`Ви бачите, що зробили на цьому сайті ви та ваші агенти. Редактори й вищі ролі бачать активність усіх.`,viewEvent:`Показати подробиці`,detail:{when:`Час`,actor:`Виконавець`,decision:`Рішення`,outcome:`Результат`,skill:`Навичка`,duration:`Тривалість`,durationValue:`{ms} мс`,snapshot:`Знімок`,viewChanges:`Переглянути зміни`,reason:`Причина`,input:`Вхідні дані`,noInput:`Цей виклик не мав вхідних даних.`,event:`Подія №{id}`,mode:`Режим`,modeHint:`Режим, який мав ключ агента під час цього виклику.`,elevation:`Підвищення прав`,elevationHint:`Власний режим ключа — «{from}». Його власник тимчасово надав більше автономії; коли підвищення прав закінчиться, ключ знову працюватиме в режимі «{from}».`,elevationGranted:`Підвищення прав надано`,elevationGrantedUntil:`Режим «{mode}» до {time}, потім знову «{from}».`,requestedByAgent:`Відповідь на запит агента`},autoApproved:`Схвалено автоматично`,autoApprovedHint:`Опубліковано без участі людини: агент працює в режимі «Авто», а ця публікація мала низький ризик.`,autoApprovedTitle:`Опубліковано без участі людини`,autoApprovedCount:`Опубліковано змін у статтях: {count}`,autoApprovedDescription:`Агент працює в режимі «Авто», а ця публікація лише додала або відредагувала статті. Її можна відкотити в розділі «Знімки».`,autoApprovedDescriptionCount:`Агент працює в режимі «Авто», а ця публікація лише додала або відредагувала статті (усього: {count}). Її можна відкотити в розділі «Знімки».`,requestedByAgent:`Запит агента`,requestedByAgentHint:`Агент попросив це підвищення прав, і людина надала його в розділі «Схвалення».`,recent:`Остання активність`,recentEmpty:`Активності агентів ще немає`,recentEmptyDescription:`Підключіть агента, і його виклики інструментів з’являться тут.`},account:{description:`Ваш профіль, спосіб входу та хто ще має доступ до цієї Studio.`,sections:{profile:`Профіль`,password:`Пароль`,sessions:`Активні сеанси`,notifications:`Сповіщення`,access:`Доступ до Studio`,server:`Цей сервер`},notifications:{description:`Дзвіночок на верхній панелі показує підвищення прав, що скоро закінчаться, і агентів, які просять підвищення. Studio також може сповіщати вас, коли відкрита у фоновій вкладці.`,switch:`Сповіщати мене в цьому браузері, коли підвищення прав скоро закінчиться або агент його просить`,switchHint:`Лише поки Studio відкрита у вкладці. Кожне сповіщення з’являється один раз.`,permission:`Дозвіл браузера`,permissions:{granted:`Дозволено`,default:`Ще не запитано`,denied:`Заблоковано`},permissionHints:{granted:`Цей браузер дозволяє Studio показувати сповіщення.`,default:`Браузер запитає дозвіл, коли ви ввімкнете сповіщення.`,denied:`Змінюється в браузері, а не в Studio.`},deniedTitle:`Сповіщення для Studio заблоковано`,denied:`Щоб увімкнути їх, дозвольте сповіщення для цього сайту в налаштуваннях сайту в браузері (значок поруч з адресою), а потім перезавантажте Studio.`,unsupported:`Цей браузер не може показувати сповіщення. Дзвіночок на верхній панелі все одно показує все.`,enabled:`Сповіщення браузера ввімкнено`,test:`Надіслати тестове сповіщення`,testTitle:`Сповіщення ввімкнено`,testBody:`Так Studio повідомлятиме вам, коли підвищення прав скоро закінчиться або агент його просить.`},profile:{description:`Як вас видно в Studio та в журналі активності кожного сайту.`,name:`Ім’я`,nameHint:`Показується поруч зі змінами та схваленнями, які ви робите.`,email:`Ел. пошта`,emailHint:`Ви входите з цією адресою. Тут її змінити не можна.`,memberSince:`Дата приєднання: {date}`,actorId:`ID виконавця`,actorIdHint:`Як вас ідентифікують активність і знімки.`,role:`Роль`,roleHint:`Що ви можете тут робити. Її змінює адміністратор або власник.`,saved:`Профіль збережено`,failed:`Не вдалося зберегти профіль`,errors:{required:`Введіть ім’я`,tooLong:`Максимум символів: {max}`}},password:{description:`Використовуйте довгу парольну фразу, якої ви ніде більше не використовуєте.`,current:`Поточний пароль`,new:`Новий пароль`,newHint:`Мінімум символів: {min}.`,confirmHint:`Введіть новий пароль ще раз.`,confirm:`Підтвердіть новий пароль`,show:`Показати пароль`,hide:`Приховати пароль`,signOutOthers:`Вийти з усіх інших сеансів`,signOutOthersHint:`Рекомендовано, якщо хтось інший може знати ваш старий пароль.`,submit:`Змінити пароль`,changed:`Пароль змінено`,changedOthers:`З інших ваших сеансів виконано вихід.`,failed:`Не вдалося змінити пароль`,errors:{currentRequired:`Введіть поточний пароль`,currentWrong:`Це не ваш поточний пароль`,newRequired:`Введіть новий пароль`,tooShort:`Мінімум символів: {min}`,tooLong:`Максимум символів: {max}`,same:`Виберіть пароль, відмінний від поточного`,confirmRequired:`Повторіть новий пароль`,mismatch:`Паролі не збігаються`}},sessions:{showAll:`Показати всі ({count})`,showFewer:`Показати менше`,description:`Браузери й клієнти, у яких виконано вхід у ваш обліковий запис. Вийдіть із тих, які ви не впізнаєте. Ключі агентів наведено в розділі «Агенти».`,columns:{device:`Пристрій`,ip:`IP-адреса`,lastActive:`Остання активність`,signedIn:`Вхід виконано`},current:`Цей пристрій`,unknownDevice:`Невідомий пристрій`,unknownIp:`Невідомо`,deviceOn:`{browser} на {os}`,revoke:`Вийти`,revokeLabel:`Вийти на пристрої {device}`,signOutOthers:`Вийти з інших сеансів`,onlyThis:`Це ваш єдиний активний сеанс.`,count:`Активних: {count}`,revokeTitle:`Завершити цей сеанс?`,revokeDescription:`На пристрої {device} доведеться увійти знову.`,revokeOthersTitle:`Завершити всі інші сеанси?`,revokeOthersDescription:`У кожному браузері й клієнті, крім цього, доведеться увійти знову. Ключі агентів продовжать працювати.`,revoked:`Сеанс завершено`,revokedOthers:`Інші сеанси завершено`,staleTitle:`Увійдіть знову, щоб побачити свої сеанси`,staleDescription:`З міркувань безпеки для списку сеансів потрібен вхід, виконаний протягом останніх 24 годин.`,signInAgain:`Увійти знову`},access:{description:`Хто може створити обліковий запис у цій Studio. Це налаштовується там, де працює сервер, а не тут.`,signUp:`Реєстрація`,policies:{"first-user":`Лише власник`,closed:`Закрита`,open:`Відкрита для всіх`,unknown:`Не повідомлено`},explanations:{"first-user":`Перша людина, що зареєструвалася, стала власником, і реєстрацію одразу закрито. Для всіх інших обліковий запис має створити хтось інший.`,closed:`Ніхто не може зареєструватися. Облікові записи створює власник.`,open:`Будь-хто, хто може відкрити цю адресу, може створити обліковий запис, і кожен обліковий запис має повний доступ до всіх сайтів.`,unknown:`Цей сервер не повідомляє, як налаштовано реєстрацію.`},openWarningTitle:`Зареєструватися може будь-хто`,openWarning:`Кожен обліковий запис отримує повний доступ до всіх сайтів. Закрийте реєстрацію, перш ніж ділитися цією адресою.`,howToChange:`У Cloudflare задайте для CLOUDHAL_SIGNUP в адмін-Worker значення open або closed (без значення — лише власник). cloudhal studio на вашому комп’ютері завжди працює в режимі «лише власник».`,serverDescription:`Що працює в цьому розгортанні Studio.`,features:{members:`Команда й ролі`,agentKeys:`Ключі агентів`,mcp:`Сервер MCP`,activity:`Журнал активності`,previewLinks:`Посилання для перегляду`,deployTransfer:`Розгортання й перенесення`,approvals:`Схвалення в Studio`,elevationRequests:`Запити на підвищення прав`},featureHints:{members:`Люди приєднуються за посиланням-запрошенням і працюють у ролі: власник, адміністратор, редактор, автор або дописувач.`,agentKeys:`Агенти та завдання CI входять за допомогою створених вами ключів.`,mcp:`Агенти підключаються за адресою /mcp.`,activity:`Кожен виклик інструмента записується для кожного сайту.`,previewLinks:`Підписані посилання, що показують чернетки на розгорнутому сайті.`,deployTransfer:`cloudhal push і pull можуть звертатися до цього сервера.`,approvals:`Запити агентів на публікацію, відкат і видалення чекають тут на рішення людини.`,elevationRequests:`Агенти можуть тимчасово попросити більш автономний режим; людина надає його в розділі «Схвалення».`}}},siteSettings:{sections:{general:`Загальні`,domains:`Домени`,collections:`Колекції`,appearance:`Вигляд`,design:`Правила дизайну`,previews:`Посилання для перегляду`},design:{description:`Ваш бренд і правила дизайну в Markdown (DESIGN.md). Кожен агент і чат конструктора читають їх перед створенням: для чого сайт, його кольори й шрифти, бажані макети й компоненти, рецепти сторінок і чого уникати. Вони впливають на вибір, але ніколи не на дозволи.`,label:`Правила цього сайту`,placeholder:`## Бренд
2
+ Для чого сайт, хто його читає, його тон.
3
+
4
+ ## Макет
5
+ …`,template:`Почати із заголовків`,theme:`Правила теми {theme}`,themeHint:`Агенти читають їх першими; у разі розбіжностей перевагу мають ваші правила.`,noTheme:`Тема {theme} не містить правил дизайну.`,warnings:`Варто переглянути`,saved:`Правила дизайну збережено`,failed:`Не вдалося зберегти правила дизайну`,count:`Символів: {count} із {max}`,agentHint:`Агенти можуть пропонувати зміни; вони чекають на рішення людини в розділі «Схвалення».`},appearance:{description:`Кольори, шрифти й форми, які дозволяє змінювати тема {theme}.`,none:`Тема {theme} не має налаштувань дизайну, які можна змінити.`,publishHint:`Збережені зміни з’являться на сайті після наступної публікації.`,saved:`Вигляд збережено`,failed:`Не вдалося зберегти вигляд`},collections:{description:`Де на сайті розміщено записи кожної колекції. Зміна префікса переносить адресу кожного запису цієї колекції; старі адреси й далі працюють через постійне переспрямування. Залиште поле порожнім, щоб використати типове значення — назву самої колекції. Нові адреси запрацюють після наступної публікації.`,preview:`Записи розміщено за адресами на кшталт {url}`,previewMoved:`Записи буде розміщено за адресами на кшталт {url}. Стара адреса {old} переспрямовує туди.`,exampleSlug:`my-article`,empty:`Колекцій ще немає`,emptyDescription:`Колекції з’являться тут, коли на сайті будуть статті або інші записи.`,saved:`Колекції збережено`,failed:`Не вдалося зберегти колекції`,errors:{slash:`Почніть із скісної риски, наприклад /blog`,trailingSlash:`Приберіть скісну риску в кінці`,invalid:`Використовуйте малі латинські літери, цифри та дефіси між скісними рисками, наприклад /blog або /docs/guides`}},conflictTitle:`Цей сайт змінено в іншому місці`,conflictDescription:`Людина або агент зберегли цей сайт після того, як ви його відкрили. Завантажте останню версію, перевірте свою зміну та збережіть знову.`,loadLatest:`Завантажити найновіше`,general:{description:`Основні дані цього сайту, які бачать агенти й теми.`,name:`Назва сайту`,nameHint:`Показується в Studio і доступна темі.`,slug:`Слаг`,slugHint:`Ідентифікує сайт у CLI та API. Його не можна змінити.`,siteId:`ID сайту`,defaultLocale:`Мова за замовчуванням`,defaultLocaleHint:`Використовується для нових сторінок і статей без зазначеної мови.`,locales:`Мови`,localesHint:`Мови, якими публікується цей сайт.`,saved:`Налаштування збережено`,failed:`Не вдалося зберегти налаштування`,errors:{required:`Дайте сайту назву`,tooLong:`Максимум символів: {max}`}},domains:{description:`Імена хостів, що обслуговують цей сайт. Основний домен використовується для посилань для перегляду.`,dnsHint:`Додавання домену тут лише записує його в сайт. Спрямуйте його DNS на ваше розгортання окремо.`,columns:{hostname:`Ім’я хоста`,role:`Роль`},primary:`Основний`,alias:`Псевдонім`,add:`Додати домен`,hostname:`Ім’я хоста`,placeholder:`www.example.com`,makePrimary:`Зробити основним`,remove:`Видалити домен`,visit:`Відкрити`,empty:`Доменів ще немає`,emptyDescription:`Додайте ім’я хоста, яке використовують відвідувачі. До того посилання для перегляду надаються як токен без URL.`,added:`Домен додано`,addedDescription:`{hostname} тепер обслуговує цей сайт.`,addedPrimaryDescription:`{hostname} — основний домен.`,removed:`Домен видалено`,primaryChanged:`Основний домен змінено`,primaryChangedDescription:`{hostname} тепер основний домен.`,removeTitle:`Видалити {hostname}?`,removeDescription:`Сайт більше не міститиме це ім’я хоста. Його DNS не змінюється.`,removePrimaryDetail:`{next} стане основним доменом.`,removeLastDetail:`Сайт залишиться без домену, тому посилання для перегляду не міститимуть URL.`,failed:`Не вдалося оновити домени`,errors:{required:`Введіть ім’я хоста`,invalid:`Використовуйте ім’я хоста на зразок blog.example.com: літери, цифри й дефіси, без порту`,tooLong:`Ім’я хоста — не більше ніж 253 символи`,duplicate:`Цей сайт уже має такий домен`}},previews:{description:`Підписані посилання, за якими людина без облікового запису Studio може побачити чернетки або попередній знімок на розгорнутому сайті.`,target:`Показати`,targets:{live:`Поточні чернетки`,snapshot:`Знімок`},targetHints:{live:`Усе, що збережено в Studio, опубліковане чи ні.`,snapshot:`Саме такий вигляд, який сайт мав у цьому знімку.`},snapshot:`Знімок`,snapshotPlaceholder:`Виберіть знімок`,noSnapshots:`Цей сайт ще не має знімків.`,snapshotRequired:`Виберіть знімок`,live:`актуальна версія`,path:`Сторінка`,pathHint:`Залиште порожнім для головної сторінки.`,pathPlaceholder:`blog/hello`,pathInvalid:`Використовуйте шлях на зразок /blog/hello, а не повний URL`,ttl:`Термін дії`,ttls:{"1h":`1 година`,"1d":`1 день`,"7d":`7 днів`},create:`Створити посилання`,created:`Посилання для перегляду створено`,result:`Посилання для перегляду`,expires:`Діє до {when}`,opens:`Відкриває {path}`,showing:{live:`Чернетки`,snapshot:`Знімок`},openLink:`Відкрити посилання`,token:`Токен`,noDomainTitle:`Цей сайт не має домену, тому повного URL немає`,noDomainDescription:`Додайте домен вище або допишіть ?cloudhal-preview= і цей токен до адреси розгорнутого сайту.`,revokeHint:`Посилання не можна відкликати поодинці; вони перестають працювати після закінчення терміну дії. Заміна секрету перегляду одразу скасовує всі посилання.`,notEnabledTitle:`Посилання для перегляду на цьому сервері не ввімкнено`,notEnabledDescription:`Задайте секрет CLOUDHAL_PREVIEW_SECRET в адмін-Worker, щоб підписувати посилання. cloudhal studio на вашому комп’ютері натомість показує чернетки в попередньому перегляді редактора.`,failed:`Не вдалося створити посилання`}},skills:{description:`Інструкції, які агенти читають через MCP. Виклик у межах навички може використовувати лише оголошені нею області доступу, а перелічені в ній інструменти завжди чекають на рішення людини.`,search:`Пошук навичок`,columns:{skill:`Навичка`,scopes:`Області доступу`,approval:`Потребує схвалення`,references:`Довідкові файли`},none:`Немає`,referenceCount:[[2,`count`,{one:[[4],` файл`],few:[[4],` файли`],many:[[4],` файлів`],other:[[4],` файлу`]}]],empty:`Навички не завантажено`,emptyDescription:`Додайте в проєкт папку з SKILL.md у skills/, а потім перезапустіть Studio.`,noMatches:`Немає навичок, що відповідають запиту «{query}»`,notEnabledTitle:`На цьому сервері не працює MCP`,notEnabledDescription:`Навички надходять до агентів через MCP. Щоб їх надавати, запустіть Studio командою cloudhal studio або розгорніть адмін-Worker.`,view:`Показати подробиці`,detail:{scopes:`Області доступу`,scopesHint:`Виклики в межах цієї навички можуть використовувати щонайбільше ці області й ніколи більше, ніж має ключ.`,approval:`Завжди схвалює людина`,approvalHint:`У межах цієї навички ці інструменти чекають на рішення людини, незалежно від дозволів ключа.`,noApproval:`Немає додаткових схвалень, окрім інструментів, які завжди їх потребують.`,requires:`Потребує`,references:`Довідкові файли`,noReferences:`Немає довідкових файлів.`,resource:`Ресурс MCP`,call:`Виклик інструмента в межах цієї навички`},how:{title:`Як агенти використовують навички`,steps:{read:`Агент отримує список ресурсів skill:// і читає SKILL.md, що підходить для завдання.`,declare:`Кожен виклик інструмента називає навичку в метаданих запиту:`,narrow:`Політика обмежує цей виклик областями доступу навички й ніколи не виходить за межі областей самого ключа.`,approve:`Інструменти, які навичка вимагає схвалювати, чекають, доки людина не погодиться.`},example:`Виклик інструмента в межах навички`},add:{title:`Додайте власні`,description:`Studio завантажує навички з папки skills/ вашого проєкту. Якщо її немає, використовується офіційний набір.`}},notifications:{title:`Сповіщення`,bellCount:`Сповіщення ({count})`,empty:`Нових сповіщень немає`,emptyDescription:`Коли підвищення прав скоро закінчиться або агент його попросить, це з’явиться тут.`,settings:`Налаштування сповіщень`,openAgents:`Відкрити «Агенти»`,openTeam:`Відкрити «Команду»`,memberJoined:{title:`{name} у команді`,body:`Запрошення прийнято.`,toast:`Запрошення прийнято, роль тепер — {role}.`},roleChanged:{title:`Ваша роль тепер — {role}`,body:`Зміну внесено: {name}. Разом із роллю змінилося те, що можете робити ви й ваші агенти.`},ending:{title:`Підвищення прав скоро закінчиться`,sentence:`{name}: режим «{mode}» закінчується через {left} ({time}), потім знову «{from}».`},request:{title:`{agent} просить «{mode}» · {duration}`,reason:`«{reason}»`,review:`Переглянути`},comments:{pending:{title:[[2,`count`,{one:[[4],` коментар чекає на модерацію`],few:[[4],` коментарі чекають на модерацію`],many:[[4],` коментарів чекають на модерацію`],other:[[4],` коментаря чекають на модерацію`]}]],body:`Найстаріший чекає вже {age}.`,bodyNew:`Ніхто їх не бачить, доки їх не схвалять.`},reported:{title:[[2,`count`,{one:[`На `,[4],` коментар надійшла скарга`],few:[`На `,[4],` коментарі надійшли скарги`],many:[`На `,[4],` коментарів надійшли скарги`],other:[`На `,[4],` коментаря надійшли скарги`]}]],body:`Читачі позначили їх. Скарга сама по собі нічого не приховує.`},paused:{title:`Коментарі призупинено до кінця дня`,body:`Досягнуто денного ліміту ({cap}). Нові коментарі відхилятимуться до півночі за UTC.`},purgeWaiting:{title:`Прихований коментар може досі бути на сторінці сайту`,body:`Сторінок, що чекають оновлення кешу: {count}.`,purge:`Очистити кеш сайту`,purged:`Кеш сайту очищено`,failed:`Не вдалося очистити кеш`},approval:{title:`{agent}: запит щодо коментарів`,tools:{moderate:`Агент просить схвалити або відновити коментарі. Вони стануть публічними, щойно ви схвалите.`,reply:`Агент підготував відповідь, яку буде опубліковано від вашого імені.`,thread:`Агент просить знову відкрити коментарі до статті.`,label:`Агент просить додати мітки до коментарів.`}},review:`Переглянути`,open:`Відкрити коментарі`,settings:`Налаштування коментарів`},toast:{endingTitle:`{name}: режим «{mode}» закінчується через {left}`,endingBody:`О {time} буде повернуто режим «{from}». Продовжте, якщо агенту це ще потрібно.`},extend:{button:`Продовжити на {duration}`,group:`Продовжити підвищення прав`,more:`Інша тривалість`,fromNow:`Відлік від цього моменту`,presets:{30:`30 хв`,60:`1 година`,240:`4 години`},presetUntil:`{duration} · до {time}`,done:`Підвищення прав продовжено`,failed:`Не вдалося продовжити підвищення прав`,gone:`Це підвищення прав уже закінчилося`,goneDescription:`Нічого не продовжено. Щоб знову підвищити права ключа, скористайтеся дією «Тимчасово підвищити права» на сторінці «Агенти».`}},approvals:{refresh:`Оновити схвалення`,pending:`Чекають на вас`,pendingDescription:`Схвалення дозволяє агенту один раз виконати саме цей виклик або надає запитане підвищення прав. Про відхилення агент дізнається.`,history:`Історія`,noPending:`Ніщо не чекає на вас`,noPendingDescription:`Коли агент просить опублікувати, відкотити чи видалити, тимчасово просить більш автономний режим або працює в ручному режимі й хоче будь-що змінити, його запит з’являється тут, і агент чекає на ваше рішення.`,elevation:{badge:`Запит на підвищення прав`,sentence:`{agent} просить працювати в режимі «{mode}» протягом {duration}.`,history:`Підвищення до «{mode}» · {duration}`,historyShortened:`Підвищення до «{mode}» · {duration} (запитано {asked})`,reasonLabel:`Причина від агента`,noReason:`Агент не вказав причини.`,untilIfNow:`Якщо схвалити зараз: до {time}`,hint:`Схвалення надає режим ключу агента на вибраний вами час, після чого ключ сам повертається до свого режиму. На сайті нічого не змінюється.`,granted:`Надано`,cannotTake:`Ключ {agent} тепер сам працює в режимі «{own}», тож надавати нічого. Відхиліть запит, щоб повідомити агента.`,title:`Надати {agent} режим «{mode}»?`,description:`{agent} просить про це. Час можна скоротити, але не подовжити.`,mode:`Режим`,modeFixed:`Як запитано. Щоб надати інший режим, відхиліть цей запит і підвищте права ключа в розділі «Агенти».`,presetHours:`{count} год`,presetMinutes:`{count} хв`,requested:`Запитано: {duration}. Коротше можна, довше — ні.`,summary:`{agent} працює в режимі «{mode}» до {time}, потім знову «{from}».`,summaryNoOwn:`{agent} працює в режимі «{mode}» до {time}, потім повертається до власного режиму.`,nextCall:`Діє з наступного виклику агента. Завершити раніше можна в розділі «Агенти».`,submit:`Надати підвищення прав`,failed:`Не вдалося надати підвищення прав`,stillPending:`Запит лишається в списку, доки очікує рішення. Ви можете відхилити його або надати, щойно ключ зможе його прийняти.`,done:`Підвищення прав надано`,doneDescription:`{agent} працює в режимі «{mode}» до {time}, потім знову «{from}».`,doneDescriptionNoOwn:`{agent} працює в режимі «{mode}» до {time}.`,asksFor:`Просить «{mode}»`,asksForTooltip:`{agent} просить працювати в режимі «{mode}» протягом {duration}. Відкрийте «Схвалення», щоб ухвалити рішення.`},manualPrompt:`{agent} працює в ручному режимі, тому ця зміна чекає на вас: {tool}.`,manualPromptShort:`Ручний режим: {tool}`,bodyChanges:`Що змінить схвалення в «{title}»`,manualHint:`У ручному режимі агент питає перед кожною зміною. Схвалення дозволяє агенту зробити саме цю правку з точно цими аргументами; для неї, як і для будь-якої іншої, створюється знімок.`,autoHeldBack:`У режимі «Авто» невеликі оновлення статей публікуються самостійно. Це оновлення чекає на вас, бо {reason}.`,autoCheck:{"removes-content":`воно видаляє вміст`,nothing:`немає нічого нового для публікації`,structure:`воно змінює сторінки, меню, налаштування сайту, таксономії або переспрямування`,"too-many":`воно містить забагато змін ({changes}; межа режиму «Авто» — {limit})`,media:`воно додає або змінює медіа поза зміною статті`,"outside-window":`воно виконалося б після закінчення автономії агента`,correction:`воно додає виправлення до опублікованої статті`},noHistory:`Рішень ще немає`,noHistoryDescription:`Тут наведено схвалені, відхилені, використані та протерміновані запити.`,requested:`Запитано`,expires:`Спливає`,expiresSoon:`Скоро спливає`,arguments:`Аргументи`,noArguments:`Цей виклик не має аргументів.`,approve:`Схвалити`,deny:`Відхилити`,withdraw:`Відкликати`,withdrawn:`Запит відкликано`,decide:{own_request:`Ви не можете схвалити власний запит. Рішення ухвалює той, чия роль це дозволяє.`,not_key_creator:`Лише людина, яка створила ключ цього агента, може надати йому більше автономії.`,mode_above_role:`Ваша роль дозволяє ключам агентів режим не вище за «{mode}», тому ви не можете це надати.`,missing_scope:`Ваша роль не дозволяє цю зміну, тому ви не можете її схвалити.`,not_own:`Це містить чужу роботу. Рішення ухвалює редактор або вища роль.`},role:{waiting:`Чекає на редактора`,yours:`Це ваш запит. Ви можете його відкликати.`,prompt:`{name} хоче опублікувати сайт.`,foreign:`Містить опубліковані статті інших авторів (кількість: {count}), а ця роль публікує лише власну роботу.`,structure:`Змінює сторінки, категорії, теги або переспрямування, а ця роль не може публікувати таке самостійно.`,generic:`Ця роль не може самостійно опублікувати цей набір змін.`,published:`Схвалено й опубліковано`,publishedDescription:`Запит {name} тепер опубліковано.`,stateChanged:`Сайт змінився після цього запиту`,stateChangedDescription:`Запит закрито, бо він більше не відповідає сайту. Опублікуйте поточний стан самостійно.`},approved:`Запит схвалено`,approvedDescription:`{agent} тепер може один раз виконати цей виклик.`,denied:`Запит відхилено`,deniedDescription:`{agent} отримає повідомлення, що запит відхилено.`,failed:`Не вдалося зберегти ваше рішення`,noLongerPending:`Цей запит більше не очікує рішення`,noLongerPendingDescription:`Тим часом його вирішено, використано або він сплив. Список оновлено.`,statuses:{pending:`Очікує`,approved:`Схвалено`,denied:`Відхилено`,consumed:`Використано`,expired:`Протерміновано`},columns:{request:`Запит`,status:`Статус`,agent:`Запитувач`,requested:`Запитано`,decided:`Рішення`},decidedBy:`рішення: {actor}`,decidedByYou:`ваше рішення`,notEnabledTitle:`Цей сервер не зберігає схвалення`,notEnabledDescription:`На цьому сервері запити агентів на публікацію та відкат підтверджуються в їхньому MCP-клієнті. Для схвалень у Studio потрібні cloudhal studio або адмін-Worker.`,confirm:{title:`Схвалити «{tool}»?`,requestedBy:`Запитувач: {agent}`,singleUseTitle:`Одноразово, для сайту в поточному стані`,singleUse:`{agent} може один раз виконати саме цей виклик. Якщо до наступного виклику агента на сайті щось зміниться, схвалення втрачає силу й агенту доведеться запитати знову.`,changes:`Приблизні зміни`,changesHint:`Порівняння опублікованої версії з найновішим знімком. Правки, збережені після цього знімка, теж буде опубліковано, але тут вони не враховані.`,viewChanges:`Переглянути зміни`,first:`Ще нічого не опубліковано: ця публікація вперше зробить сайт публічним.`,upToDate:`Найновіший знімок уже опубліковано, тож буде опубліковано лише правки, збережені після нього.`,rollbackTarget:`Сайт повернеться до`,deleteTarget:`Буде видалено`,submit:`Схвалити`},banner:{title:[[2,`count`,{one:[[4],` запит агента чекає на ваше схвалення`],few:[[4],` запити агентів чекають на ваше схвалення`],many:[[4],` запитів агентів чекають на ваше схвалення`],other:[[4],` запиту агентів чекають на ваше схвалення`]}]],description:`Агенти не можуть публікувати, відкочувати чи видаляти, а агенти в ручному режимі — нічого змінювати, доки людина не ухвалить рішення.`,action:`Переглянути запити`}},tools:{list_assets:`Список медіа`,get_asset:`Отримати медіафайл`,upload_asset:`Завантажити медіа`,fetch_asset_url:`Додати медіа за URL`,update_asset:`Оновити дані медіа`,retire_asset:`Вивести медіа з ужитку`,restore_asset:`Відновити медіа`,delete_asset:`Видалити медіа`,assetUpload:`Завантажити файл`,assetUpdate:`Оновити дані файлу`,assetRetire:`Вивести файл з ужитку`,assetRestore:`Відновити файл`,assetDelete:`Видалити файл`,assetPurge:`Вилучити файл`,assetLiftPurge:`Знову дозволити файл`,list_sites:`Список сайтів`,get_site:`Отримати сайт`,list_pages:`Список сторінок`,get_page:`Отримати сторінку`,create_page:`Створити сторінку`,update_page:`Оновити сторінку`,delete_page:`Видалити сторінку`,list_entries:`Список статей`,get_entry:`Отримати статтю`,create_entry:`Створити статтю`,update_entry:`Оновити статтю`,add_correction:`Додати виправлення`,delete_entry:`Видалити статтю`,get_theme_settings:`Прочитати налаштування дизайну`,set_theme_settings:`Змінити налаштування дизайну`,list_block_types:`Список типів блоків`,get_body:`Прочитати основний текст`,edit_body:`Редагувати основний текст`,diff_node:`Порівняти версії`,create_snapshot:`Створити знімок`,list_snapshots:`Список знімків`,diff_snapshots:`Порівняти знімки`,preview_page:`Попередній перегляд сторінки`,publish:`Опублікувати сайт`,rollback:`Відкотити сайт`,list_menus:`Список меню`,get_menu:`Отримати меню`,update_menu:`Оновити меню`,set_menu:`Замінити меню`,delete_menu:`Видалити меню`,request_elevation:`Запитати підвищення прав`,list_comments:`Список коментарів`,get_comment_thread:`Прочитати гілку коментарів`,comments_summary:`Підсумувати коментарі`,label_comments:`Позначити коментарі`,moderate_comments:`Модерувати коментарі`,draft_comment_reply:`Підготувати відповідь на коментар`,set_comment_thread:`Змінити гілку коментарів`,list_schedule:`Переглянути розклад`,get_schedule:`Отримати запланований елемент`,list_releases:`Список релізів`,get_release:`Отримати реліз`,propose_release:`Запропонувати реліз`,schedule_release:`Запланувати реліз`,reschedule:`Перенести реліз`,cancel_schedule:`Скасувати реліз`,set_embargo:`Встановити ембарго`,lift_embargo:`Зняти ембарго`,schedule_unpublish:`Запланувати закінчення терміну`,list_automations:`Список автоматизацій`,list_runs:`Список запусків`,get_run:`Отримати запуск`,begin_run:`Почати запуск`,end_run:`Завершити запуск`,pause_automation:`Призупинити автоматизацію`,get_mode:`Отримати режим`,agentKeyMode:`Змінити режим ключа агента`,agentKeyElevate:`Підвищити права ключа агента`,agentKeyElevationEnd:`Завершити підвищення прав`,agentKeyNarrow:`Звузити права ключа агента`,agentKeyRevoke:`Відкликати ключ агента`,memberInvite:`Запросити учасника`,memberInviteRevoke:`Відкликати запрошення`,memberInviteFailed:`Не вдалося надіслати запрошення`,memberInviteAccept:`Прийняти запрошення`,memberRole:`Змінити роль учасника`,memberRemove:`Вилучити учасника`,memberTransferOwnership:`Передати право власності`,memberPasswordReset:`Створити посилання для скидання пароля`,memberPasswordResetComplete:`Скинути пароль`},preview:{title:`Перегляд`,frameTitle:`Попередній перегляд: {name}`,device:`Ширина пристрою`,desktop:`Комп’ютер`,tablet:`Планшет`,mobile:`Телефон`,reload:`Перезавантажити перегляд`,openInNewTab:`Відкрити перегляд у новій вкладці`,loading:`Завантаження перегляду…`,unsaved:`Незбережені зміни`,unsavedHint:`Перегляд показує останню збережену версію. Збережіть, щоб оновити його.`,edit:`Редагувати`,show:`Показати перегляд`,hide:`Сховати перегляд`,toggleHint:`Показати останню збережену версію поруч із формою`,toggleHintLive:`Показати сторінку з вашими незбереженими змінами поруч із формою`,openSaved:`Відкрити збережену версію в новій вкладці`,failed:`Перегляд недоступний`},proposals:{title:`Пропозиції`,count:`Відкрито: {count}`,from:`{name} пропонує`,outOfDate:`Застаріла`,outOfDateHint:`Текст змінився після цієї пропозиції. Відхиліть її або попросіть нову.`,accept:`Прийняти`,reject:`Відхилити`,saveFirst:`Спочатку збережіть або скасуйте свої зміни.`,accepted:`Пропозицію прийнято`,rejected:`Пропозицію відхилено`,failed:`Не вдалося ухвалити рішення щодо пропозиції`,steps:`Зміни для прийняття`,acceptSome:`Прийняти {count} із {total}`,chooseRequired:`Виберіть принаймні одну зміну.`,step:{replace:`Переписати «{before}»`,replaceText:`Замінити «{before}» на «{after}»`,insert:`Додати «{after}»`,move:`Перемістити «{before}»`,delete:`Вилучити «{before}»`},aBlock:`блок`},coverage:{scope:`Які сайти`,thisSite:`Цей сайт`,allSites:`Усі сайти проєкту`,siteLanguage:`{site} · {language}`,search:`Пошук за назвою`,filter:`Показати`,needsWork:`Потребує роботи`,all:`Усе`,item:`Сторінка або стаття`,page:`Сторінка`,article:`Стаття`,missing:`Немає`,toReview:`На перевірку`,oneLanguage:`Сайт має одну мову`,oneLanguageDescription:`Додайте мови в налаштуваннях сайту; переклади з'являться тут.`,openSettings:`Відкрити налаштування мов`,allDone:`Усе готово`,empty:`Тут поки порожньо`,emptyDescription:`Кожна мова має актуальну перевірену версію.`},languages:{title:`Мови`,description:`Мови, якими публікується цей сайт, і те, як читачі до них потрапляють. Сторінка чи стаття іншою мовою — це переклад оригіналу.`,language:`Мова`,tag:`Код`,default:`Типова`,remove:`Вилучити мову: {language}`,add:`Додати мову`,addHint:`Виберіть зі списку або введіть будь-який код BCP 47, наприклад gsw чи pt-AO.`,addPlaceholder:`Пошук мов`,useTag:`Використати код {tag}`,noMatch:`Немає відповідної мови. Введіть код BCP 47, щоб використати його.`,clear:`Очистити`,showOptions:`Показати мови`,routing:`Адреси`,routingHint:`Де розташована кожна мова. Інші мови завжди мають префікс.`,routingOptions:{prefixExceptDefault:`Типова мова в корені, інші під своїм префіксом`,prefixAll:`Кожна мова під своїм префіксом`},fallback:`Відсутні переклади`,fallbackHint:`Що бачать читачі за адресою, де немає версії цією мовою.`,fallbackOptions:{none:`Не знайдено`,defaultWithNotice:`Оригінал з позначкою, прихований від пошукових систем`},review:`Перевірка перед публікацією`,reviewHint:`Їхні машинні переклади публікуються лише після перевірки людиною.`,reviewOptions:{pages:`Сторінки`,posts:`Статті`},label:`Позначка про машинний переклад`,labelHint:`Коли читачі бачать, що сторінку перекладено автоматично.`,labelOptions:{unreviewed:`Доки людина не перевірить переклад`,always:`Завжди, також після перевірки`},saved:`Мови збережено`,failed:`Не вдалося зберегти мови`},glossary:{title:`Глосарій`,description:`Терміни, які агенти зберігають під час перекладу: назви, що не перекладаються, і затверджене слово для кожної мови.`,empty:`Термінів поки немає`,emptyDescription:`Додайте назви брендів і продуктів, а також слова із закріпленим перекладом.`,oneLanguage:`Спершу додайте другу мову: глосарій зберігає слова для інших мов сайту.`,term:`Термін`,neverTranslate:`Не перекладати`,translationIn:`Мовою: {language}`,add:`Додати термін`,remove:`Вилучити: {term}`,saved:`Глосарій збережено`,failed:`Не вдалося зберегти глосарій`},translations:{title:`Переклади`,none:`Лише мовою: {language}`,noneDescription:`Агенти перекладають сторінки й статті іншими мовами сайту; кожна версія з'являється тут.`,current:`Ця версія`,method:{original:`Оригінал`,human:`Перекладено людиною`,machine:`Машинний переклад`,machineReviewed:`Машинний переклад, перевірено`},stale:`Застарів`,sourceMissing:`Оригінал видалено`,review:`Позначити як перевірений`,reviewTitle:`Позначити цей переклад як перевірений?`,reviewDescription:`Ви підтверджуєте, що людина прочитала цей машинний переклад, звіривши його з оригіналом. Читачі більше не бачать позначки про машинний переклад, якщо сайт не показує її завжди.`,reviewSaveFirst:`Збережіть зміни перед перевіркою.`},translationList:{column:`Мови`,filter:`Мова`,grouped:`Усі мови (за групами)`,state:[[0,`language`],`: `,[3,`state`,{published:[`опубліковано`],draft:[`чернетка`],outdated:[`застаріло`],review:[`на перевірку`],missing:[`немає`],other:[`немає`]}]],summary:[[1,`count`],`/`,[1,`total`]],summaryLabel:[[1,`count`],` з `,[2,`total`,{one:[[4],` мови`],few:[[4],` мов`],many:[[4],` мов`],other:[[4],` мови`]}]],writeByHand:`Написати вручну`},diff:{title:`Зміни в {name}`,against:`Порівняти з`,previous:`Попередній знімок`,live:`Опублікована версія`,descriptions:{previous:`Що змінилося від попереднього знімка.`,live:`Що зміниться, якщо цей знімок замінить опубліковану версію.`},added:`Додано`,changed:`Змінено`,removed:`Вилучено`,counts:{added:`Додано: {count}`,changed:`Змінено: {count}`,removed:`Вилучено: {count}`},none:`Відмінностей немає`,noneDescription:`Обидва знімки містять точно однаковий вміст.`,nothingToCompare:`Немає з чим порівняти`,nothingToCompareDescription:`Це перший знімок сайту, і жодна інша версія не опублікована, тож порівнювати його поки ні з чим.`,kinds:{site:`Налаштування сайту`,page:`Сторінка`,contentEntry:`Стаття`,taxonomy:`Таксономія`,term:`Термін`,redirect:`Переспрямування`,menu:`Меню`,asset:`Медіа`,glossary:`Глосарій`},gone:`Більше не існує`,revs:`ред. {from} → {to}`,rev:`ред. {rev}`,columns:{item:`Елемент`,revision:`Редакція`},textChanges:{show:`Показати зміни`,hide:`Сховати зміни`,loading:`Завантаження обох версій…`,body:`Текст`,title:`Заголовок`,summary:`Короткий опис`,slug:`Слаг`,path:`Шлях`,section:`Секція «{kind}»`,sectionAdded:`Додано`,sectionRemoved:`Вилучено`,sectionChanged:`Змінено`,noTextChanges:`Змінено лише налаштування; текст той самий.`,added:`Додано`,removed:`Вилучено`,edited:`Відредаговано`,unchanged:[[2,`count`,{one:[[4],` незмінений блок`],few:[[4],` незмінені блоки`],many:[[4],` незмінених блоків`],other:[[4],` незміненого блоку`]}]],wordsAdded:`+{count} сл.`,wordsRemoved:`−{count} сл.`,same:`Текст не змінено`},assignments:{added:`+ {taxonomy} {name}`,removed:`− {taxonomy} {name}`,primary:`Основне ({taxonomy}) → {name}`,none:`немає`}},taxonomy:{newTerm:`Новий термін: {singular}`,search:`Пошук: {plural}`,columns:{name:`Назва`,usage:`Статті`,lastUsed:`Останнє використання`,index:`Пошукові системи`,visibility:`Видимість`},filters:{all:`Усі`,public:`Публічні`,internal:`Внутрішні`,proposed:`Запропоновані`,retired:`Виведені з ужитку`},state:{proposed:`Запропоновано`,proposedHint:`Його запропонував агент. Його можна призначати, але публічної сторінки він не матиме, доки хтось його не схвалить.`,internal:`Внутрішній`,internalHint:`Без архіву, стрічки чи запису в мапі сайту, і статті його не показують. Теми та фільтри все одно можуть його використовувати.`,retired:`Виведено з ужитку`,mergedInto:`Об’єднано з {name}`},visibility:{public:`Публічний`,internal:`Внутрішній`,none:`—`},defaults:{category:{singular:`Категорія`,plural:`Категорії`},tag:{singular:`Тег`,plural:`Теги`}},usage:{value:`{published} / {total}`,hint:`Опубліковано: {published}, усього статей: {total}. Відкриває їх у розділі «Статті».`,none:`Немає`},index:{indexed:`Індексується`,indexedHint:`Опублікованих статей: {count}. Архів показується в результатах пошуку та в мапі сайту.`,thin:`Не індексується: {count} із {min}`,thinHint:`Архіви, у яких менше ніж {min} опублікованих статей, віддаються з noindex, follow і не потрапляють до мапи сайту.`,empty:`Порожньо`,emptyHint:`Немає опублікованих статей: архів відповідає 404, доки сюди не додадуть статтю.`,noindex:`noindex`,noindexHint:`Приховано від пошукових систем у його налаштуваннях пошуку.`,none:{internal:`Без архіву`,proposed:`Ще не публічний`,retired:`Виведено з ужитку`,archiveOff:`Архіви вимкнено`},noneHint:{internal:`Внутрішні терміни не мають публічного архіву.`,proposed:`Запропоновані терміни не мають публічного архіву, доки хтось їх не схвалить.`,retired:`Виведені з ужитку терміни не мають архіву; старі посилання переспрямовують або відповідають 410 Gone.`,archiveOff:`Ця таксономія не публікує сторінок архіву.`}},menu:{label:`Дії з терміном`,edit:`Редагувати`,view:`Переглянути`,rename:`Змінити слаг`,merge:`Об’єднати з…`,mergeExisting:`Об’єднати з наявним терміном…`,move:`Перемістити…`,makeInternal:`Зробити внутрішнім`,makePublic:`Зробити публічним`,retire:`Вивести з ужитку`},review:{waiting:`Пропозиції, що чекають на розгляд: {count}`,waitingDescription:`Агенти запропонували ці {plural}. Схваліть пропозицію, щоб дати їй публічну сторінку, об’єднайте з наявним терміном або відхиліть.`,open:`Розглянути`,approve:`Схвалити`,approved:`{name} схвалено`,failed:`Не вдалося схвалити`,reject:`Відхилити`,merge:`Об’єднати…`,rejectNamed:`Відхилити {name}`,proposedBy:`Хто запропонував`},empty:{all:`Ще немає: {plural}`,public:`Немає публічних: {plural}`,internal:`Немає внутрішніх: {plural}`,proposed:`Ніщо не чекає на розгляд`,retired:`Немає виведених з ужитку: {plural}`,search:`Нічого не знайдено`,allDescription:`Створіть перший або дозвольте агентам пропонувати теги під час написання.`,filteredDescription:`Спробуйте інший фільтр або пошуковий запит.`,noTaxonomies:`Ще немає категорій і тегів`,noTaxonomiesDescription:`Цей сайт досі зберігає теги як звичайний текст у кожній статті. Перенесіть їх до категорій і тегів; ви побачите, що зміниться, перш ніж щось буде записано.`},create:{title:`Новий термін: {singular}`,description:`Дайте йому назву. Синоніми, вступ, зображення та налаштування пошуку можна додати пізніше в редакторі.`,descriptionTree:`Дайте йому назву і, якщо він належить до іншої категорії, батьківський елемент. Решту можна додати пізніше в редакторі.`,name:`Назва ({locale})`,slugHint:`Адреса його архіву. Вона змінюється разом із назвою, доки ви не зміните її вручну.`,parentHint:`Залиште на верхньому рівні або вкладіть в іншу категорію.`,internal:`Внутрішній`,internalHint:`Внутрішні терміни не мають публічної сторінки; теми та фільтри все одно можуть їх використовувати.`,similarTitle:`Схоже на наявний термін`,similar:`Схожі: {names}. Використайте наявний, якщо він означає те саме.`,submit:`Створити: {singular}`,created:`{name} створено`},health:{title:`Стан словника`,description:`Той самий звіт, який агенти читають перед тим, як ставити теги. Тримайте одну сторінку на тему, щоб читачі й пошукові системи її знаходили.`,issues:`До перегляду: {count}`,clean:`Нічого не треба впорядковувати`,cleanDescription:`Зараз немає майже дублікатів, одноразових чи порожніх термінів.`,nearDuplicates:`Майже дублікати ({count})`,nearDuplicatesHint:`Імовірно, та сама тема. Об’єднання залишає частіше вживаний термін і переспрямовує інший.`,mergeInto:`{source} → {target}`,merge:`Об’єднати`,morePairs:`Ще пар: {count}`,reasons:{similar:`Пишуться майже однаково`,plural:`Однина та множина`,synonym:`Синонім одного є назвою іншого`},proposed:`Чекають на розгляд ({count})`,review:`Розглянути`,missingPrimary:`Статті без основного елемента «{singular}» ({count})`,missingPrimaryHint:`Їх не можна надіслати на перевірку чи опублікувати, доки його не вибрано.`,unfiled:`Статті без елемента «{singular}» ({count})`,unfiledHint:`Розподіліть їх, щоб вони з’явилися в архіві та в навігаційному ланцюжку.`,noIntro:`Індексовані архіви без вступу ({count})`,noIntroHint:`короткий вступ допомагає читачам і пошуковим системам`,singleUse:`Використано один раз ({count})`,unused:`Не використано в жодній статті ({count})`,unusedHint:`виведіть їх з ужитку або додайте до них статті`,empty:`Порожні категорії ({count})`,emptyHint:`їхні архіви відповідають 404, доки не буде додано статтю`,oversized:`Дуже великі категорії ({count})`,oversizedHint:`понад половину всіх статей; допомогли б підкатегорії`,more:[`Ще `,[1,`count`]]},rules:{title:`Як працюють {plural}`,description:`Правила цієї таксономії. Агенти бачать ті самі.`,structure:`Структура`,tree:`Дерево`,flat:`Плоский список`,treeHint:`Термін може мати батьківський елемент, до п’яти рівнів вкладеності.`,flatHint:`Терміни не мають батьківського елемента.`,newTerms:`Нові терміни`,newTermsValue:{none:`Лише люди`,propose:`Агенти пропонують`,free:`Агенти додають`},newTermsHint:{none:`Створюють їх лише люди; агенти вибирають із наявних.`,propose:`Агенти пропонують нові терміни, які отримують публічну сторінку після схвалення.`,free:`Агенти можуть одразу додавати активні терміни.`},perArticle:`На статтю`,required:`Обов’язково · до {max}`,optional:`Необов’язково · до {max}`,requiredHint:`Щоб статтю можна було надіслати на перевірку чи опублікувати, їй потрібен щонайменше один термін, з них один основний.`,optionalHint:`Статті можуть не мати жодного.`,archive:`Архіви`,archiveHint:`Індексуються від {min} опублікованих статей; менші архіви мають noindex.`,archiveOff:`Сторінки архіву не публікуються.`}},governance:{oneSnapshot:`Одна зміна — один знімок. Вона з’явиться на сайті з наступною публікацією.`,conflict:`Тим часом цей термін змінили деінде. Закрийте діалог і спробуйте ще раз на останній версії.`,rename:{title:`Змінити слаг {name}`,description:`Архів переміститься на нову адресу. Стара продовжить працювати через постійне переспрямування, а старий слаг залишиться зарезервованим.`,slug:`Новий слаг`,slugHint:`Малі літери, цифри й одинарні дефіси.`,reclaim:`Повернути його: звільнити цей слаг від попереднього терміна й прибрати його переспрямування`,history:`Попередні слаги: {slugs}`,confirm:`Перейменувати`,errors:{required:`Введіть слаг.`,invalid:`Використовуйте малі літери, цифри й одинарні дефіси.`,tooLong:`Не більше ніж 128 символів.`,taken:`Цей слаг використовує інший термін.`,reserved:`Цей слаг раніше використовував інший термін, і його стара адреса переспрямовує. Поверніть його нижче, щоб використати тут.`}},merge:{title:`Об’єднати {name} з…`,description:`Його статті перейдуть до вибраного терміна, який також перейме його назви й слаги, тож старі посилання та синоніми працюватимуть далі.`,target:`Об’єднати з`,targetHint:`Активний термін тієї самої таксономії.`,targetPlaceholder:`Пошук термінів…`,confirm:`Об’єднати`},reviewMerge:{title:`Об’єднати пропозицію {name} з…`,description:`Пропозицію буде виведено з ужитку, а її статті перейдуть до наявного терміна, який збереже її назву як синонім.`,confirm:`Об’єднати`},retire:{title:`Вивести з ужитку {name}`,description:`Його буде вилучено з усіх статей, і призначити його знову не вийде. Його архів може переспрямовувати на інший термін.`,redirectTo:`Переспрямувати на…`,redirectToHint:`Без переспрямування його архів відповідає 410 Gone, і пошукові системи остаточно його видаляють.`,redirectToParentHint:`Якщо нічого не вибрати, архів переспрямовуватиме на батьківську категорію, коли вона публічна.`,noRedirect:`Без переспрямування`,redirectPlaceholder:`Пошук термінів…`,confirm:`Вивести з ужитку`},move:{title:`Перемістити {name}`,description:`Виберіть новий батьківський елемент. Статті й адреси залишаться як є; зміняться меню, навігаційні ланцюжки й архів батьківського елемента.`,parent:`Батьківський елемент`,parentHint:`Глибина вкладеності — до {max} рівнів. Категорію не можна перемістити в неї саму чи нижче.`,parentPlaceholder:`Пошук категорій…`,topLevel:`Верхній рівень`,confirm:`Перемістити`},visibility:{title:{internal:`Зробити {name} внутрішнім`,public:`Зробити {name} публічним`},description:{internal:`Його архів, стрічка й запис у мапі сайту зникнуть, а статті перестануть його показувати. Теми та фільтри все одно можуть його використовувати.`,public:`Він отримає публічний архів, стрічку й запис у мапі сайту, а статті його показуватимуть.`},confirm:{internal:`Зробити внутрішнім`,public:`Зробити публічним`}},reject:{title:`Відхилити пропозицію {name}`,description:`Пропозицію буде виведено з ужитку й вилучено зі статей, які її мають. Агент побачить, що її відхилено.`,confirm:`Відхилити`},preview:{waiting:`Зробіть вибір, щоб побачити, що зміниться.`,loading:`Визначаємо, що зміниться`,articles:`Статті`,noArticles:`Жодна стаття його не має.`,articlesMove:`Ці статті зміняться в межах тієї самої операції. Одна зміна може зачепити до {limit} статей.`,articlesLose:`Ці статті втратять його в межах тієї самої операції. Одна зміна може зачепити до {limit} статей.`,articlesKeep:`Ці статті збережуть його; їхні посилання ведуть на нову адресу.`,more:`і ще {count}`,redirects:`Переспрямування`,noRedirects:`Переспрямування не створюється.`,permanent:`301, постійне`,prefix:`Сторінки й стрічки під старою адресою також переспрямовуються.`,repointed:`Наявних переспрямувань на стару адресу, які тепер вказують на нову: {count}.`},tooLarge:{title:`Забагато для однієї зміни`,description:`Це змінило б статей: {count}; одна зміна може зачепити щонайбільше {limit}. Розбийте її на менші кроки або попросіть поетапне завдання.`},blocked:{title:`Опубліковані статті або статті на перевірці втратять свою єдину категорію: {count}`,description:`Їм потрібна категорія. Натомість об’єднайте цей термін з іншим або спершу перенесіть ці статті в інше місце.`},gone:{title:`Його архів відповідатиме 410 Gone`,description:`{path} не отримає переспрямування, тож пошукові системи остаточно його видалять. Виберіть термін вище, щоб натомість спрямувати відвідувачів туди.`},hidden:{title:`Його архів перестане бути публічним`,description:`{path} відповідатиме 404 після наступної публікації.`},appears:{title:`Його архів стане публічним`,description:`{path} з’явиться на сайті з наступною публікацією.`},done:{rename:`{name}: слаг змінено`,merge:`{name}: об’єднано`,reviewMerge:`{name}: об’єднано`,retire:`{name}: виведено з ужитку`,reject:`{name}: відхилено`,move:`{name}: переміщено`,visibility:`Видимість {name} змінено`,detail:`Змінено статей: {entries}. Переспрямувань: {redirects}. Один знімок; з’явиться на сайті з наступною публікацією.`}},taxonomySettings:{titleNew:`Нова таксономія`,titleEdit:`Налаштування: {Singular}`,descriptionNew:`Групуйте статті ще в інший спосіб, окрім категорій і тегів, наприклад за серіями чи регіонами. Агенти читають її правила, перш ніж розподіляти статті.`,descriptionEdit:`Правила, яких люди й агенти дотримуються для: {plural}.`,open:`Налаштування: {Singular}`,newTaxonomy:`Нова таксономія`,edit:`Редагувати`,exampleSlug:`summer-2026`,sections:{name:`Назва`,terms:`Терміни`,termsHint:`Агенти завжди спершу використовують наявний термін. Ці правила визначають, що вони можуть робити, коли жоден не підходить.`,articles:`У статтях`,archive:`Сторінки архіву`},key:`Ключ`,keyHint:`Використовується у фільтрах і агентами (series:summer-2026). Малі літери, цифри й дефіси. Змінити його пізніше не можна.`,keyFixed:`Ключі ніколи не змінюються: на нього посилаються статті, фільтри й агенти.`,singular:`Однина ({locale})`,plural:`Множина ({locale})`,singularPlaceholder:`Регіон`,pluralPlaceholder:`Регіони`,labelsHint:`Як її називають Studio, сайт і агенти, наприклад «Регіон» і «Регіони».`,labelsOptional:`Необов’язково. Залиште обидва поля порожніми, щоб використати назви мовою {locale}.`,hierarchical:`Терміни можуть мати батьківський елемент`,hierarchicalHint:`Дерево до п’яти рівнів вкладеності, як у категорій; архів також показує статті підтермінів. Вимкнено: плоский список, як у тегів.`,newTerms:`Хто додає нові терміни`,newTermsOptions:{none:`Лише люди`,propose:`Агенти пропонують`,free:`Агенти додають вільно`},newTermsHints:{none:`Агенти розподіляють статті лише за наявними термінами. Якщо жоден не підходить, вони повідомляють про це й запитують вас.`,propose:`Агенти можуть запропонувати новий термін. Він залишається приватним (без архіву, не показується в статтях), доки людина не схвалить, не об’єднає чи не відхилить його тут.`,free:`Агенти створюють публічні терміни разом з архівами, не питаючи. Підходить для вільних словників; стежте за станом словника.`},badges:{safest:`Найбезпечніше`,recommended:`Рекомендовано`,careful:`Обережно`},required:`Обов’язково`,requiredHint:`Стаття потребує щонайменше одного терміна, з них один основний, перш ніж її надішлють на перевірку чи опублікують. Чернетки можуть почекати.`,maxPerEntry:`Не більше на статтю`,maxPerEntryHint:`Порожньо: до {max}.`,allCollections:`Діє для всіх колекцій`,allCollectionsHint:`Вимкнено: виберіть колекції, статті яких можуть її використовувати.`,collections:`Колекції`,archiveEnabled:`Публічні сторінки архіву`,archiveEnabledHint:`Кожен публічний термін з опублікованою статтею отримує сторінку зі списком своїх статей.`,basePath:`Адреса`,basePathHint:`Архіви розміщуються за адресами на кшталт {example}.`,feed:`RSS-стрічка для кожного терміна`,feedHint:`За адресою {example}/rss.xml.`,feedNeedsArchive:`Потрібні публічні сторінки архіву.`,minEntries:`Скільки статей потрібно для пошукових систем`,minEntriesHint:`Архіви з меншою кількістю опублікованих статей віддаються з noindex, follow і не потрапляють до мапи сайту. 0 — індексується з першої статті.`,move:{title:`Зміна адреси`,description:`Архіви переміщуються. Старі адреси й далі працюватимуть через постійне переспрямування.`,offTitle:`Сторінки архіву відповідатимуть 404`,offDescription:`Переспрямування не створюється: посилання на {path}/… перестануть працювати після наступної публікації.`,onTitle:`Архіви стануть публічними за адресою {path}/…`,onDescription:`Терміни з опублікованою статтею отримають сторінку після наступної публікації.`},create:`Створити таксономію`,save:`Зберегти налаштування`,created:`{name} створено`,saved:`Налаштування {name} збережено`,errors:{keyRequired:`Введіть ключ.`,keyInvalid:`Використовуйте малі літери, цифри й одинарні дефіси, наприклад series чи reading-list.`,keyTooLong:`Не більше ніж 128 символів.`,keyReserved:`«{key}» зарезервовано мовою фільтрів (primary, collection, locale, status, id).`,keyTaken:`На цьому сайті вже є таксономія з таким ключем.`,labelRequired:`Введіть назву мовою сайту за замовчуванням.`,labelTooLong:`Не більше ніж {max} символів.`,labelPair:`Заповніть обидва поля або залиште обидва порожніми.`,pathRequired:`Введіть адресу.`,pathInvalid:`Почніть із / і використовуйте слова з малих літер, з’єднані дефісами, наприклад /series.`,pathTooLong:`Не більше ніж 1024 символи.`,pathRoot:`Архіви не можуть розміщуватися в корені сайту.`,pathTaxonomy:`Перетинається з архівами «{conflict}».`,pathPage:`Там розміщена сторінка {conflict}. Виберіть іншу адресу.`,pathCollection:`Адреси статей починаються з {conflict}. Виберіть іншу адресу.`,range:`Ціле число від {min} до {max}.`,collections:`Виберіть принаймні одну колекцію.`,hasParents:`Термінів, які досі мають батьківський елемент: {count}. Спершу перемістіть їх на верхній рівень.`,hasProposals:`Пропозицій, що чекають: {count}. Спершу схваліть, об’єднайте чи відхиліть їх.`}},termEditor:{language:`Мова`,default:`за замовчуванням`,names:{title:`Назви й синоніми`,description:`Що бачать читачі і що люди та агенти можуть ввести, щоб його знайти.`,name:`Назва ({locale})`,nameHintDefault:`Обов’язково мовою сайту за замовчуванням.`,nameHint:`Залиште порожнім, щоб показувати назву мовою {locale}.`,altNames:`Синоніми`,altNamesHint:`Інші назви, за якими знаходиться цей термін, коли їх хтось вводить або агент призначає термін за назвою. Ніколи не показуються як окремі терміни.`},intro:{title:`Вступ до архіву`,description:`Markdown, що показується вгорі {path}, лише на першій сторінці.`,hint:`Markdown. HTML показується як текст.`},image:{title:`Зображення`,description:`Показується в архіві й використовується як його зображення, коли посиланням діляться. Укажіть посилання на зображення, яке вже є в мережі.`},seo:{title:`Пошукові системи й поширення`,description:`Як архів виглядає в результатах пошуку мовою {locale}.`},indexing:{title:`Індексування`,indexed:`{path} індексується пошуковими системами; опублікованих статей: {count}.`,thin:`{path} має {count} із {min} потрібних опублікованих статей; доти віддається з noindex, follow.`,empty:`{path} не має опублікованих статей і відповідає 404, доки не буде додано статтю.`,noindex:`{path} приховано від пошукових систем у його налаштуваннях пошуку.`},preview:{statusHint:`Що відповість {path} з цими змінами: {status}. Попередній перегляд завжди показує сторінку, навіть до того, як вона стане публічною.`},placement:{title:`Розташування`,position:`Позиція`,positionHint:`Менші числа йдуть першими серед сусідніх елементів. Порожньо: сортування за назвою.`},history:{title:`Історія слагів`,description:`Попередні адреси цього архіву. Вони залишаються зарезервованими й переспрямовують сюди.`,empty:`Попередніх слагів немає`,emptyDescription:`Його адреса завжди була {path}.`,reserved:`зарезервовано`},details:{taxonomy:`Таксономія`,visibility:`Видимість`,usage:`Статті`},retire:{title:`Вивести з ужитку: {singular}`,description:`Вилучає його з усіх статей; його архів переспрямовує або відповідає 410 Gone.`},retired:{title:`Цей термін виведено з ужитку`,merged:`Цей термін об’єднано з {name}`,description:`Він не має архіву, і його не можна призначити. Його старі адреси переспрямовують, якщо переспрямування було задано.`},errors:{nameRequired:`Введіть назву мовою сайту за замовчуванням.`,nameTooLong:`Не більше ніж 200 символів.`,altTooLong:`«{value}» довше за 200 символів.`,altDuplicate:`«{value}» вказано двічі або повторює назву.`,altCollision:`«{value}» вже є назвою {other}. Синонім не може вказувати на два терміни.`,introTooLong:`Не більше ніж 20 000 символів.`,position:`Використайте ціле число від 0 до {max}.`}},migration:{banner:{title:`Перенесіть свої теги до категорій і тегів`,description:`Теги на цьому сайті досі є звичайним текстом. Перетворіть їх на теги з назвами, архівами й переспрямуваннями та почніть розподіляти статті за категоріями. Спершу ви побачите результат, і зміну можна буде скасувати.`,action:`Переглянути перенесення`},dialog:{title:`Перенесення тегів до категорій і тегів`,description:`Це пробний запуск: нічого не буде записано, доки ви його не виконаєте.`,summary:`Що робить перенесення`,tags:`Знайдено тегів`,entries:`Переписано статей`,terms:`Теги`,termsValue:`Нових: {created}, повторно використаних: {reused}`,taxonomies:`Створено таксономій`,none:`Немає`,skipped:`Пропущено статей: {count}`,how:`Studio робить знімок до і після. Категорії на цьому сайті спочатку необов’язкові, тож нічого не блокується, і ніщо не з’явиться на сайті, доки ви не опублікуєте.`,upToDate:`Нічого переносити`,upToDateDescription:`Усі статті вже використовують теги й категорії.`,run:`Виконати перенесення`},done:{title:`Теги перенесено`,description:`Тепер ваші статті використовують теги. Опублікуйте, коли будете готові.`,toast:`Теги перенесено`,toastDetail:`Тегів: {tags}, статей: {entries}; зі знімками до і після.`,undoHint:`Передумали? Скасування відновить старі теги в статтях, які ніхто відтоді не редагував.`,undo:`Скасувати перенесення`,close:`Готово`},revert:{toast:`Перенесення скасовано`,toastDetail:`Старі теги відновлено в статтях: {count}.`}},redirects:{new:`Нове переспрямування`,search:`Пошук адрес`,menu:`Дії для {from}`,edit:`Редагувати`,filters:{reason:`Джерело`,all:`Усі джерела`},reasons:{"slug-change":`Зміна слага`,merge:`Об’єднання`,retire:`Виведення з ужитку`,manual:`Вручну`},columns:{from:`Стара адреса`,to:`Веде на`,type:`Тип`,source:`Джерело`,updated:`Оновлено`},status:{301:`Постійне (301)`,302:`Тимчасове (302)`,"301Hint":`Пошукові системи переносять вагу старої адреси на нову. Використовуйте, коли переїзд остаточний.`,"302Hint":`На короткий час, наприклад для кампанії; пошукові системи зберігають стару адресу.`,short301:`301`,short302:`302`},match:{exact:`Лише ця адреса`,exactHint:`Лише цей точний шлях.`,prefix:`Ця адреса й усе, що під нею`,prefixHint:`Решта шляху зберігається: /old/a веде на /new/a.`,prefixShort:`і нижче`},external:{badge:`Зовнішнє`,title:`Спрямувати відвідувачів на інший сайт?`,description:`Перевірте адресу призначення, перш ніж створювати переспрямування.`,leave:`Відвідувачі перейдуть на {host}`,warning:`Кожен, хто відкриє стару адресу, потрапить на сайт, який ви не контролюєте. Агенти ніколи не можуть такого створити; лише люди.`,target:`Призначення`,host:`Хост`,confirm:`Переспрямувати на {host}`},externalHint:`Спрямовує відвідувачів на {host}, поза межі цього сайту.`,dialog:{createTitle:`Нове переспрямування`,editTitle:`Редагувати переспрямування`,description:`Спрямовуйте відвідувачів з адреси, яку сайт більше не обслуговує, на нову.`,from:`Стара адреса`,fromHint:`Шлях на цьому сайті, наприклад /old-page. Це не може бути адреса, яку сайт досі обслуговує.`,fromLocked:`Стару адресу змінити не можна. Видаліть це переспрямування й створіть інше.`,to:`Веде на`,toHint:`Шлях на цьому сайті (/new-page) або адреса https://.`,toExternal:`Поза цим сайтом: {host}. Ви підтвердите це на наступному кроці.`,toPlaceholder:`/new-page або https://…`,match:`Застосовується до`,status:`Тип`,automatic:`Автоматичні переспрямування завжди постійні (301).`,note:`Примітка`,noteHint:`Необов’язково. Навіщо воно існує — для того, хто подивиться наступним.`,create:`Створити переспрямування`},errors:{fromRequired:`Введіть стару адресу.`,fromInvalid:`Використайте шлях, що починається з /, без пробілів, ? чи #.`,fromTooLong:`Не більше ніж 1024 символи.`,fromTaken:`Переспрямування з цієї адреси вже існує. Відредагуйте його.`,fromServed:`Сайт обслуговує цю адресу. Переспрямування не може приховати сторінку, опубліковану статтю чи архів.`,toRequired:`Укажіть, куди спрямовувати відвідувачів.`,toInvalid:`Використайте шлях, що починається з /, або адресу https://.`,toInsecure:`Використайте https://.`,toTooLong:`Не більше ніж 2048 символів.`,toSelf:`Не можна спрямовувати відвідувачів на ту саму адресу.`,toLoop:`Вийде цикл: ціль переспрямовує назад сюди.`},saved:`Переспрямування збережено`,created:`Переспрямування з {from} створено`,deleted:`Переспрямування з {from} видалено`,deleteTitle:`Видалити переспрямування з {from}?`,deleteDescription:`Після наступної публікації стара адреса відповідатиме 404.`,deleteAutomatic:`Studio створила його, коли змінилася адреса. Після наступної публікації стара адреса відповідатиме 404, і посилання на неї перестануть працювати.`,deleteConfirm:`Видалити переспрямування`,empty:`Ще немає переспрямувань`,emptyFiltered:`Немає переспрямувань із цього джерела`,emptyDescription:`Зміни слагів, об’єднання й виведення з ужитку самі додають сюди переспрямування. Додайте власні для адрес, що змінилися.`},roles:{yours:`Ваша роль`,names:{owner:`Власник`,administrator:`Адміністратор`,editor:`Редактор`,author:`Автор`,contributor:`Дописувач`},plural:{owner:`Власник`,administrator:`Адміністратори`,editor:`Редактори`,author:`Автори`,contributor:`Дописувачі`},summaries:{owner:`Усе, зокрема передавання права власності. Власник завжди один; право власності переходить лише через передавання.`,administrator:`Керує розгортанням: команда, ролі, налаштування сайту й домени, ключі агентів усіх учасників. Редагує й публікує будь-що.`,editor:`Редагує й публікує будь-що, структурує сайт (сторінки, категорії, переспрямування), робить відкат і запрошує авторів і дописувачів.`,author:`Пише, редагує й публікує власні статті. Усе інше чекає на редактора.`,contributor:`Пише чернетки й надсилає їх на перевірку. Публікує їх редактор; опубліковані матеріали дописувач може лише переглядати.`},explainer:{role:`Роль`,columns:{articles:`Статті`,publish:`Публікація`,structure:`Структура`,team:`Команда`},levels:{all:`Усі`,own:`Власні`,drafts:`Чернетки`,none:`Ні`,invite:`Запрошення`,full:`Керування`},hints:{articles:{all:`Пише й редагує будь-які статті та може вказати автором іншу людину.`,own:`Пише статті й редагує власні, опубліковані чи ні.`,drafts:`Пише чернетки й редагує власні, доки їх не опублікує редактор.`,none:`Не може змінювати статті.`},publish:{all:`Публікує будь-що й робить відкат.`,own:`Публікує, коли всі публічні зміни власні; інакше створюється запит.`,none:`Надсилає на перевірку; публікує хтось інший.`},structure:{all:`Сторінки, категорії й теги, переспрямування.`,none:`Переглядає сторінки, категорії й переспрямування, але не змінює їх.`},team:{full:`Запрошує, змінює ролі, вилучає людей, налаштування сайту й домени, ключі агентів усіх учасників.`,invite:`Запрошує авторів і дописувачів.`,none:`Бачить, хто є в команді.`}}}},gating:{readOnlyTitle:`Ви можете це переглядати`,entryNotOwn:`Ця стаття належить іншій людині. Змінювати її можуть автор, а також редактори й вищі ролі.`,entryPublished:`Цю статтю опубліковано. Дописувачі не можуть змінювати опубліковані матеріали; редактор може.`,entryDelete:`Видалити її можуть лише автор (поки це дозволяє ваша роль), а також редактори й вищі ролі.`,abilities:{entries:{create:`Писати статті можуть лише {roles} і вищі ролі.`,editOwnPublished:`Публікувати статті можуть лише {roles} і вищі ролі. Ваші статті опублікує редактор після перевірки.`,editAny:`Змінювати чужі статті можуть лише {roles} і вищі ролі.`},pages:{write:`Змінювати сторінки можуть лише {roles} і вищі ролі.`},publish:{own:`Публікувати можуть лише {roles} і вищі ролі. Надішліть свою роботу на перевірку; її опублікує редактор.`,any:`Публікувати чужу роботу можуть лише {roles} і вищі ролі.`},rollback:`Відкотити сайт можуть лише {roles} і вищі ролі.`,structure:{write:`Змінювати категорії, теги й переспрямування можуть лише {roles} і вищі ролі.`},assets:{upload:`Завантажувати файли можуть лише {roles} і вищі ролі.`,manage:`Керувати всіма файлами можуть лише {roles} і вищі ролі.`},activity:{all:`Активність усієї команди бачать лише {roles} і вищі ролі.`},analytics:{read:`Аналітику бачать лише {roles} і вищі ролі.`,settings:`Змінювати налаштування аналітики можуть лише {roles} і вищі ролі.`},comments:{read:`Коментарі читачів бачать лише {roles} і вищі ролі.`,moderate:`Модерують коментарі лише {roles} і вищі ролі.`,moderateAny:`Модерують коментарі до чужих статей лише {roles} і вищі ролі.`,reply:`Відповідають на коментарі лише {roles} і вищі ролі.`,replyAny:`Відповідають у чужих статтях лише {roles} і вищі ролі.`,settings:`Змінювати налаштування коментарів можуть лише {roles} і вищі ролі.`},commenters:{data:`Бачити ел. пошту коментаторів або стирати їхні дані можуть лише {roles} і вищі ролі.`},settings:{write:`Змінювати налаштування сайту й домени можуть лише {roles} і вищі ролі.`},members:{invite:`Запрошувати людей можуть лише {roles} і вищі ролі.`,manage:`Змінювати ролі чи вилучати людей можуть лише {roles} і вищі ролі.`},agents:{manage:`Керувати чужими ключами агентів можуть лише {roles} і вищі ролі.`},sites:{create:`Створювати сайти можуть лише {roles} і вище.`},schedules:{read:`Розклад бачать лише {roles} і вищі ролі.`,write:`Планувати свою роботу можуть лише {roles} і вищі ролі.`,writeAny:`Змінювати чужі розклади можуть лише {roles} і вищі ролі.`,settings:`Призупиняти розклади чи змінювати їхні ліміти можуть лише {roles} і вищі ролі.`},releases:{approve:`Схвалювати релізи власної роботи можуть лише {roles} і вищі ролі.`,approveAny:`Схвалювати релізи можуть лише {roles} і вищі ролі.`},automations:{manage:`Керувати автоматизаціями можуть лише {roles} і вищі ролі.`},ai:{invoke:`Використовувати ШІ в редакторі можуть лише {roles} і вищі ролі.`,settings:`Змінювати налаштування ШІ можуть лише {roles} і вищі ролі.`},ownership:{transfer:`Передати право власності може лише {roles}.`}}},publishing:{request:`Запросити публікацію`,requestCommand:`Зробити знімок і запросити публікацію`,requestTitle:`Запросити публікацію?`,requestDescription:`Ваші зміни містять роботу інших людей або зміни структури сайту, тож публікацію схвалює редактор. Studio робить знімок зараз; запит чекає в розділі «Схвалення».`,sendRequest:`Надіслати запит`,requestOption:`Запросити публікацію`,requestOptionDescription:`Редактор схвалює її в розділі «Схвалення», перш ніж вона з’явиться на сайті.`,requested:`Публікацію запрошено`,requestedDescription:`Ваші зміни містять не лише вашу роботу, тож публікацію має схвалити редактор. Запит можна знайти в розділі «Схвалення».`,openRequest:`Відкрити «Схвалення»`,refused:`Ви не можете публікувати`},members:{invite:`Запросити людей`,search:`Пошук людей`,you:`Ви`,someone:`Хтось`,menu:`Дії для {name}`,tabs:{members:`Учасники`,activity:`Активність`},columns:{member:`Учасник`,role:`Роль`,joined:`Приєднання`,actions:`Дії`},empty:`Учасників ще немає`,emptyDescription:`Перший обліковий запис у Studio стає її власником. Запрошуйте людей звідси.`,noMatches:`Ніхто не відповідає запиту «{query}»`,notEnabledTitle:`На цьому сервері немає команди`,notEnabledDescription:`Для ролей і запрошень потрібна Studio з обліковими записами (cloudhal studio або розгорнутий адмін-Worker). Без них кожна людина, що ввійшла, може робити все.`,changeRole:`Змінити роль…`,resetLink:`Створити посилання для скидання пароля…`,transferOwnership:`Передати право власності…`,rank:{self:`Ви не можете змінити власну роль або вилучити себе.`,owner_role:`Роль власника переходить лише через передачу права власності.`,target_is_owner:`Власника не можна понизити чи вилучити. Спершу передайте право власності.`,role_too_high:`Ваша роль не дає змоги надати цю роль.`,not_allowed:`Керувати учасниками можуть лише адміністратори й власник.`},roles:{title:`Ролі`,description:`Що може кожна роль. Ключі агентів ніколи не можуть більше, ніж людина, яка їх створила.`},how:{title:`Як працюють запрошення`,single:`Кожне посилання працює один раз. Приєднується той, хто відкриє його першим, тож діліться ним приватно.`,bound:`Воно прив’язане до однієї електронної адреси й однієї ролі; запрошений не може змінити ні те, ні інше.`,expiry:`Типово посилання діють {default}. Запрошення адміністраторів спливають протягом {admin}.`,keys:`Ключі агентів людини ніколи не можуть більше, ніж її роль, і одразу звужуються, коли роль знижується.`,owner:`Власник лише один. Право власності переходить лише до адміністратора, з паролем власника.`},invites:{title:`Запрошення в очікуванні`,description:`Посилання, якими ще не скористалися. Відкличте посилання — і воно одразу перестане працювати.`,empty:`Немає запрошень в очікуванні`,emptyDescription:`Створені вами посилання-запрошення з’являються тут, доки ними не скористаються, їх не відкличуть або вони не спливуть.`,columns:{email:`Ел. пошта`,role:`Роль`,expires:`Спливає`,inviter:`Хто запросив`,actions:`Дії`},byLink:`Посилання`,byEmail:`Надіслано ел. поштою`,expired:`Протерміновано`,incomplete:`Не завершено`,incompleteHint:`Посиланням скористалися, але обліковий запис не створено. Запросіть ще раз, щоб надіслати нове посилання.`,you:`Ви`,someone:`Колишній учасник`,reinvite:`Запросити знову`,menu:`Дії із запрошенням для {email}`,revoke:`Відкликати`,revokeTitle:`Відкликати це запрошення?`,revokeDescription:`Посилання для {email} одразу перестане працювати. Пізніше можна запросити знову.`,revoked:`Запрошення відкликано`,revokedDescription:`Посилання для {email} більше не працює.`},role:{title:`Змінити роль: {name}`,description:`Набуває чинності з наступного кліку або виклику агента. Записується в журнал активності.`,member:`Учасник`,newRole:`Нова роль`,change:`Зміна ролі`,now:`Зараз`,immediate:`Застосовується одразу`,demotionTitle:`Ключі агентів теж звужуються`,demotion:`У ролі «{role}» ключі зберігають лише ті області доступу й режими, які дозволяє ця роль, а підвищення прав понад неї завершується. Пізніше підвищення ролі не розширює ключі знову.`,submit:`Змінити роль`,failed:`Не вдалося змінити роль`,changed:`Роль змінено`,changedDescription:`{name} тепер: {to}.`,narrowedTitle:`Ключі агентів звужено`,narrowedDescription:`Ключів агентів, що тепер можуть лише те, що дозволяє нова роль: {count}.`,narrowedBanner:`Звужено ключів агентів: {count}`,narrowedBannerDescription:`Кожен ключ нижче зберігає лише те, що дозволяє нова роль. Агенти помітять це під час наступного виклику.`,narrowedMode:`Режим`,narrowedScopes:`Тепер працює з`,elevationEnded:`Підвищення прав завершено, бо нова роль його не дозволяє.`,done:`Готово`},remove:{menu:`Вилучити з команди…`,title:`Вилучити {name} з команди?`,description:`Доступ втрачається одразу. Це записується в журнал активності.`,signOut:`Сеанси на всіх пристроях завершуються.`,keys:`Ключі агентів вимикаються (зберігаються для історії, їх можна видалити).`,keysCount:`Вимкнено ключів агентів: {count}.`,invites:`Надіслані запрошення, що ще очікують, скасовуються.`,invitesCount:`Скасовано запрошень в очікуванні: {count}.`,requests:`Запити, на які чекають агенти, відхиляються.`,kept:`Статті й активність лишаються. Повторне запрошення відновлює доступ.`,submit:`Вилучити`,failed:`Не вдалося вилучити`,done:`{name}: вилучено з команди`,doneDescription:`Вимкнено ключів агентів: {keys} · скасовано запрошень: {invites} · відхилено запитів: {requests}.`},reset:{title:`Створити посилання для скидання пароля?`,description:`{name} зможе вибрати новий пароль за цим посиланням. Ел. пошти поки немає, тож поділіться посиланням самі.`,once:`Воно працює один раз і спливає за годину.`,signsOut:`Встановлення нового пароля завершує всі сеанси.`,replaces:`Нове посилання скасовує будь-яке попереднє.`,submit:`Створити посилання`,failed:`Не вдалося створити посилання`,revealTitle:`Скопіюйте посилання для скидання`,revealDescription:`Надішліть його {name} приватно, в особистому повідомленні.`,warningTitle:`Ви більше не побачите це посилання`,warning:`Скопіюйте його зараз. Будь-хто, хто його відкриє, може встановити пароль цього облікового запису, тож ніколи не публікуйте його в спільному каналі.`,link:`Посилання для скидання`,expires:`Спливає {relative} ({absolute}).`,done:`Посилання скопійовано`},transfer:{title:`Передати право власності: {name}?`,description:`Власник може все, зокрема передавати право власності. Власник завжди один.`,warningTitle:`Самостійно це не скасувати`,warning:`{name} стає власником, а ви — адміністратором. Лише {name} може повернути вам право власності.`,to:`Новий власник`,youBecome:`Ви одразу стаєте адміністратором.`,keys:`Ваші ключі агентів звужуються до того, що може адміністратор.`,onlyThey:`Лише новий власник може знову передати право власності.`,password:`Ваш пароль`,passwordHint:`Введіть його ще раз, щоб підтвердити, що це ви.`,passwordRequired:`Введіть свій пароль`,wrongPassword:`Пароль неправильний`,notAdministrator:`Право власності передається адміністратору. Спершу зробіть цю людину адміністратором, а тоді спробуйте знову.`,needsAdministrator:`Право власності передається лише адміністратору. Спершу змініть роль.`,submit:`Передати право власності`,failed:`Не вдалося передати право власності`,done:`Право власності передано`,doneDescription:`{name} тепер власник. Ви — адміністратор.`},activity:{empty:`Подій команди ще немає`,emptyDescription:`Тут з’являються запрошення, зміни ролей, вилучення й передачі права власності.`,restrictedTitle:`Активність команди доступна редакторам і вищим ролям`}},editionGuide:{title:`Ще одна мова: тут чи окремим сайтом?`,hereTitle:`Додати до цього сайту`,here:`Ті самі сторінки й меню кожною мовою, одна команда, одна публікація. Найкраще, коли мови дзеркальні.`,editionTitle:`Почати мовне видання`,edition:`Окремий сайт у цьому проєкті на основі цього: власні сторінки, меню, ролі команди й публікації, і далі пов’язані як переклади. Найкраще, коли ринку потрібна власна структура чи команда.`,create:`Створити мовне видання…`},newSite:{open:`Новий сайт`,title:`Новий сайт`,description:`Окремий сайт у цій інсталяції: свої сторінки, налаштування, ролі команди й аналітика. Він починається з головної сторінки; нічого не публікується.`,name:`Назва`,nameRequired:`Дайте сайту назву.`,slug:`Коротке ім’я`,slugHint:`Малі латинські літери, цифри й дефіси; за ним сайт упізнають у Studio і CLI.`,slugInvalid:`Використовуйте малі літери, цифри й дефіси.`,language:`Мова`,languageHint:`Мова сайту за замовчуванням; інші додасте пізніше в налаштуваннях мов.`,project:`Проєкт`,projectHint:`Проєкти об’єднують пов’язані сайти, як-от мовні видання однієї публікації.`,newProject:`Новий проєкт`,submit:`Створити сайт`,failed:`Не вдалося створити сайт`,created:`Сайт створено`,createdDescription:`{name} готовий до редагування; поки нічого не опубліковано.`,from:`Основа`,fromHint:`Порожній сайт починається з головної сторінки та сторінки «Про нас».`,blank:`Порожній сайт`,copyOf:`Копія {name} (мовне видання)`,editionHint:`Копіює сторінки того сайту чернетками новою мовою, його меню й дизайн, пов’язуючи їх як переклади; статті й медіа не копіюються. Новий сайт входить до проєкту того сайту.`,editionCreated:[[0,`name`],` починається з `,[2,`count`,{one:[[4],` сторінки`],few:[[4],` сторінок`],many:[[4],` сторінок`],other:[[4],` сторінки`]}],` для перекладу; поки нічого не опубліковано.`]},projects:{title:`Проєкт`,description:`Сайти цього проєкту поруч: мови, адреса, стан публікації та схвалення, що очікують.`,newSite:`Новий сайт у цьому проєкті`,sites:`Сайти`,notFound:`Такого проєкту немає`,notFoundDescription:`Його видалено, або ви не можете відкрити жодного з його сайтів.`,columns:{site:`Сайт`,languages:`Мови`,address:`Адреса`,status:`Стан`,approvals:`Схвалення`},noAddress:`Домену ще немає`,none:`Немає`,waiting:[[2,`count`,{one:[[4],` чекає`],few:[[4],` чекають`],many:[[4],` чекають`],other:[[4],` чекають`]}]],summary:{title:`Коротко`,sites:`Сайти`,languages:`Мови`,live:`Опубліковані`,waiting:`Очікують схвалення`}},siteAccess:{legend:`Сайти`,all:`Усі сайти`,some:`Лише деякі сайти`,roleOn:`Роль на сайті {site}`,everySite:`Власники й адміністратори працюють на всіх сайтах цієї інсталяції.`,required:`Виберіть щонайменше один сайт.`,menu:`Сайти`,title:`Сайти: {name}`,description:`Виберіть, на яких сайтах працює ця людина і з якою роллю. Зміни діють одразу.`,failed:`Не вдалося зберегти сайти`,submit:`Зберегти сайти`,saved:`Сайти збережено`,savedDescription:`Сайти користувача {name} оновлено.`,count:[[2,`count`,{one:[[4],` сайт`],few:[[4],` сайти`],many:[[4],` сайтів`],other:[[4],` сайту`]}]]},invites:{create:{title:`Запросити когось`,reinviteTitle:`Запросити знову`,description:`Людина отримає одноразове посилання для створення облікового запису у вибраній вами ролі.`,step:`Крок 1 з 2 · Хто й у якій ролі`,email:`Ел. пошта`,emailHint:`Обліковий запис створюється з цією адресою; змінити її не можна.`,emailPlaceholder:`name@example.com`,role:`Роль`,roleHint:`Показано лише ролі, які може надати ваша роль.`,expiry:`Посилання спливає через`,expiryHint:`Виберіть найкоротший строк, який підійде.`,expiryAdmin:`Запрошення адміністраторів спливають протягом {max}.`,explainer:`Що може кожна роль`,delivery:`Як надіслати`,deliveryLink:`Скопіювати посилання`,deliveryLinkHint:`Ви ділитеся ним самі, приватно.`,deliveryEmail:`Надіслати ел. поштою`,deliveryEmailHint:`Studio надсилає посилання листом; ви його не побачите.`,submit:`Створити посилання-запрошення`,send:`Надіслати запрошення`,failed:`Не вдалося створити запрошення`},reveal:{title:`Скопіюйте посилання-запрошення`,sentTitle:`Запрошення надіслано`,description:`Для {email}, роль: {role}. Крок 2 з 2.`,warningTitle:`Ви більше не побачите це посилання`,warning:`Скопіюйте його зараз і поділіться приватно, в особистому повідомленні, а не в спільному каналі. Той, хто відкриє його першим, приєднається з роллю «{role}».`,link:`Посилання-запрошення`,summary:`Запрошення`,expires:`Спливає {relative} ({absolute}).`,private:`Якщо воно потрапить не до тієї людини, відкличте його в розділі «Запрошення в очікуванні».`,done:`Посилання скопійовано`,sent:`Надіслано на {email}`,sentDescription:`Посилання працює один раз. Його можна відкликати в розділі «Запрошення в очікуванні».`},errors:{emailRequired:`Введіть електронну адресу`,emailInvalid:`Введіть дійсну електронну адресу, наприклад name@example.com`,rank:`Ваша роль не дає змоги запросити когось із роллю «{role}».`,invalid_expiry:`Такий строк не дозволено для цієї ролі. Виберіть коротший.`,delivery_unavailable:`Цей сервер не може надсилати листи. Скопіюйте посилання натомість.`,delivery_failed:`Не вдалося надіслати лист, тому запрошення скасовано. Виберіть «Скопіювати посилання» й спробуйте знову.`,already_member:`{email} уже в команді.`,too_many_invites:`Забагато запрошень в очікуванні. Спершу відкличте деякі.`,rate_limited:`За останню годину ви створили багато запрошень. Спробуйте пізніше.`}},inviteAccept:{titleGeneric:`Приєднатися до Cloudhal Studio`,title:`Приєднатися до {name}`,descriptionGeneric:`Відкриваємо ваше запрошення…`,descriptionDead:`Це посилання більше не працює.`,description:`{inviter} запрошує вас із роллю «{role}».`,someone:`Хтось`,summary:`Ваше запрошення`,as:`Ви приєднаєтеся як`,expires:`Це запрошення спливає {relative} ({absolute}).`,emailHint:`Запрошення для цієї адреси.`,nameHint:`Показується поруч із вашими змінами й схваленнями.`,existingTitle:`У вас уже є обліковий запис`,existing:`Введіть його пароль, щоб приєднатися з ним.`,submit:`Прийняти запрошення`,toSignIn:`Перейти до входу`,signOutFirst:`Спершу вийдіть, а тоді прийміть запрошення.`,welcome:`Ласкаво просимо до {name}`,welcomeDescription:`Ви ввійшли з роллю «{role}».`,missingTitle:`Це посилання неповне`,missing:`Відкрийте посилання повністю; частина після # відсутня. Якщо й далі не працює, попросіть нове запрошення.`,goneTitle:`Цим запрошенням не можна скористатися`,gone:`Ним уже скористалися, його відкликано або воно спливло. Попросіть нове в людини, яка вас запросила.`,otherSessionTitle:`Ви ввійшли як {email}`,otherSessionTitleGeneric:`Ви ввійшли як інша людина`,otherSession:`Це запрошення для {email}. Вийдіть, а тоді прийміть його.`,alreadyMemberTitle:`Ви вже в команді`,alreadyMember:`Цей обліковий запис уже є учасником. Натомість увійдіть.`,errors:{nameRequired:`Введіть своє ім’я`,nameTooLong:`Максимум символів: {max}`,weakPassword:`Використайте щонайменше 8 символів`,wrongPassword:`Пароль не підходить для цього облікового запису`}},resetPassword:{title:`Виберіть новий пароль`,description:`Для облікового запису {name}.`,descriptionGeneric:`Відкриваємо посилання для скидання…`,descriptionDead:`Це посилання більше не працює.`,expires:`Це посилання спливає {relative} ({absolute}).`,signsOut:`Сеанси на всіх пристроях буде завершено; потім увійдіть із новим паролем.`,submit:`Встановити новий пароль`,doneTitle:`Пароль змінено`,doneDescription:`Увійдіть із новим паролем.`,changed:`Пароль встановлено`,changedDescription:`Усі ваші сеанси завершено.`,missingTitle:`Це посилання неповне`,missing:`Відкрийте посилання повністю; частина після # відсутня.`,goneTitle:`Цим посиланням для скидання не можна скористатися`,gone:`Ним уже скористалися, або воно спливло. Попросіть нове на сторінці входу або в адміністратора.`},forgotPassword:{link:`Забули пароль?`,title:`Скидання пароля`,description:`Ми надішлемо вам листом посилання для вибору нового пароля.`,submit:`Надіслати посилання`,sentTitle:`Перевірте пошту`,sent:`Якщо {email} належить обліковому запису тут, посилання для скидання вже надсилається. Воно працює один раз протягом години.`,unavailableTitle:`Цей сервер не може надсилати листи`,unavailable:`Попросіть посилання для скидання в адміністратора цієї Studio.`,back:`Назад до входу`},passwords:{new:`Новий пароль`,confirm:`Повторіть пароль`,strength:`Надійність: {level}`,levels:{empty:`—`,tooShort:`закороткий`,weak:`слабкий`,fair:`задовільний`,strong:`надійний`},advice:{empty:`Мінімум символів: {min}. Кілька не пов’язаних слів дають надійний пароль.`,tooShort:`Мінімум символів: {min}.`,weak:`Довший — надійніший: спробуйте 12 символів і більше або кілька не пов’язаних слів.`,fair:`Добре. Ще кілька символів — і пароль стане надійним.`,strong:`Надійний пароль.`},errors:{required:`Введіть пароль`,tooShort:`Мінімум символів: {min}`,tooLong:`Максимум символів: {max}`,confirmRequired:`Повторіть пароль`,mismatch:`Паролі не збігаються`}}};export{e as messages};
6
+ //# sourceMappingURL=uk-aiCWjdse.js.map
@@ -1,2 +1,2 @@
1
- import{_ as e}from"./tanstack-BRxyYm4G.js";import{i as t,o as n}from"./useMe-DcrRDsez.js";import{t as r}from"./api-Cqqt5jTd.js";var i=[`7d`,`30d`,`all`],a=731,o=864e5,s=e=>new Date(e).toISOString().slice(0,10);function c(e,t,n=new Date){if(e!==`all`)return{query:{range:e},compare:!0};let r=Date.parse(`${s(n.getTime())}T00:00:00Z`),i=r+o,c=i-a*o,l=t?Date.parse(t):NaN;return{query:{from:s(Number.isFinite(l)?Math.min(Math.max(l,c),r):c),to:s(i)},compare:!1}}function l(e){return!e?.enabled||e.store===`none`?`off`:e.reader===`none`?`unreadable`:`on`}function u(e){return e.status===`published`||e.status===`archived`||!!e.publishedAt}function d(e){return(e?.points??[]).map(e=>[Date.parse(e.t),e.pageviews])}var f=[`search`,`social`,`ai`,`email`,`paid`,`referral`,`internal`,`direct`],p=e=>f.includes(e);function m(e,t){return e.filter(e=>e.key!==`(other)`&&e.visits>0).map(e=>({id:e.key,label:p(e.key)?t(e.key):e.key,value:e.visits})).sort((e,t)=>t.value-e.value)}function h(e){return e.summary.pageviews===0&&e.redirectHits===0}function g(e,t){let n=`/sites/${encodeURIComponent(e)}/analytics`;return t?`${n}?filter=node:${encodeURIComponent(t)}`:n}function _(){let t=e({queryKey:[`instance`],queryFn:r.instance,staleTime:3e5,retry:!1});return{feature:t.data?.features.analytics,known:!t.isPending}}function v(i){let{feature:a,known:o}=_(),s=n(),c=t(`analytics.read`),u=l(a),d=e({queryKey:[`analytics`,i,`status`],queryFn:()=>r.analytics.status(i),enabled:u===`on`&&s.data!==void 0&&c.allowed,staleTime:6e4,retry:!1});return!o||u===`off`||s.data===void 0?null:c.allowed?u===`on`&&(d.isPending||d.data?.settings.enabled===!1)?null:{availability:u,reason:void 0}:{availability:u,reason:c.reason}}export{u as a,d as c,m as i,i as n,h as o,g as r,c as s,v as t};
2
- //# sourceMappingURL=useAnalyticsCard-tsyFdq37.js.map
1
+ import{_ as e}from"./tanstack-BRxyYm4G.js";import{a as t,s as n}from"./useMe-D5W0xdO9.js";import{t as r}from"./api-Mdeo6gzg.js";var i=[`7d`,`30d`,`all`],a=731,o=864e5,s=e=>new Date(e).toISOString().slice(0,10);function c(e,t,n=new Date){if(e!==`all`)return{query:{range:e},compare:!0};let r=Date.parse(`${s(n.getTime())}T00:00:00Z`),i=r+o,c=i-a*o,l=t?Date.parse(t):NaN;return{query:{from:s(Number.isFinite(l)?Math.min(Math.max(l,c),r):c),to:s(i)},compare:!1}}function l(e){return!e?.enabled||e.store===`none`?`off`:e.reader===`none`?`unreadable`:`on`}function u(e){return e.status===`published`||e.status===`archived`||!!e.publishedAt}function d(e){return(e?.points??[]).map(e=>[Date.parse(e.t),e.pageviews])}var f=[`search`,`social`,`ai`,`email`,`paid`,`referral`,`internal`,`direct`],p=e=>f.includes(e);function m(e,t){return e.filter(e=>e.key!==`(other)`&&e.visits>0).map(e=>({id:e.key,label:p(e.key)?t(e.key):e.key,value:e.visits})).sort((e,t)=>t.value-e.value)}function h(e){return e.summary.pageviews===0&&e.redirectHits===0}function g(e,t){let n=`/sites/${encodeURIComponent(e)}/analytics`;return t?`${n}?filter=node:${encodeURIComponent(t)}`:n}function _(){let t=e({queryKey:[`instance`],queryFn:r.instance,staleTime:3e5,retry:!1});return{feature:t.data?.features.analytics,known:!t.isPending}}function v(i){let{feature:a,known:o}=_(),s=n(),c=t(`analytics.read`),u=l(a),d=e({queryKey:[`analytics`,i,`status`],queryFn:()=>r.analytics.status(i),enabled:u===`on`&&s.data!==void 0&&c.allowed,staleTime:6e4,retry:!1});return!o||u===`off`||s.data===void 0?null:c.allowed?u===`on`&&(d.isPending||d.data?.settings.enabled===!1)?null:{availability:u,reason:void 0}:{availability:u,reason:c.reason}}export{u as a,d as c,m as i,i as n,h as o,g as r,c as s,v as t};
2
+ //# sourceMappingURL=useAnalyticsCard-D_EaD-GJ.js.map
@@ -1,2 +1,2 @@
1
- import{r as e}from"./rolldown-runtime-hePW80VL.js";import{Ut as t,at as n,tn as r,vn as i}from"./useBaseUiId-lg1teubxudgin0w2-CURnJ4xq.js";import{i as a}from"./react-CDCuUAOg.js";import{_ as o}from"./tanstack-BRxyYm4G.js";import{t as s}from"./clamp-jcjhzx71s6wt1rnc-D0kAXd-u.js";import{n as c,t as l}from"./scrollable-b6m9ze1u7ps0q1qn-CgUEkapN.js";import{t as u}from"./getElementTransform-cuiqmjglkrz4db6c-xvJxAmf3.js";import{c as d,t as f,u as p}from"./api-Cqqt5jTd.js";import{u as m}from"./i18n-Dz1LE8DB.js";import{f as h,m as g,x as _}from"./roles-B7USahqW.js";var v=e(a(),1);function y(e,t,n){return typeof e?.elementFromPoint==`function`?e.elementFromPoint(t,n):null}var b=40,x=10,ee=1,te=50,ne=16,re=80,S=`button,a,input,select,textarea,label,[role="button"]`;function C(e,t,n){switch(e){case`up`:return-n;case`down`:return n;case`left`:return-t;case`right`:return t;default:return 0}}function ie(e){return Number.isFinite(e)&&e>0?e:null}function w(e,t){return`translate3d(${e.x}px,${e.y}px,0) scale(${t})`}function T(e){return e%2==1}function ae(e,t,n){let r=e[n];if(typeof r==`function`)try{r.call(e,t)}catch(e){if(e&&typeof e==`object`&&`name`in e&&e.name===`NotFoundError`)return;throw e}}function oe(e){let{enabled:a,directions:o,elementRef:d,movementCssVars:f,canStart:p,ignoreSelectorWhenTouch:m=!0,ignoreScrollableAncestors:h=!1,swipeThreshold:g,onDismiss:_,onProgress:oe,onCancel:se,onSwipeStart:ce,onRelease:E,onSwipingChange:le,trackDrag:ue=!0}=e,de=S,D=o.length===1?o[0]:void 0,O=Math.max(0,typeof g==`number`?g:b),k=o.includes(`left`),A=o.includes(`right`),j=o.includes(`up`),M=o.includes(`down`),N=k||A,P=j||M,fe=v.useMemo(()=>{let e=[];return P&&e.push(`vertical`),N&&e.push(`horizontal`),e},[N,P]),[pe,F]=v.useState(void 0),[me,he]=v.useState(!1),[ge,_e]=v.useState(!1),I=v.useRef({x:0,y:0}),L=v.useRef({x:0,y:0}),R=v.useRef(null),z=v.useRef({x:0,y:0,scale:1}),B=v.useRef(void 0),ve=v.useRef(0),V=v.useRef(!1),H=v.useRef({x:0,y:0}),U=v.useRef(null),W=v.useRef(!1),ye=v.useRef(!1),be=v.useRef(null),G=v.useRef(!1),K=v.useRef(!1),xe=v.useRef({width:0,height:0}),Se=v.useRef(0),q=v.useRef(O),Ce=v.useRef(null),J=v.useRef(null),we=v.useRef(null),Te=v.useRef({x:0,y:0}),Ee=v.useRef(null),Y=v.useRef(!1),De=v.useRef(null),X=n(e=>{Y.current!==e&&(Y.current=e,he(e),le?.(e))});function Oe(e){if(!e)return;let t=d.current,n=Ce.current;if(!t||!n)return;let r=n({element:t,direction:e});q.current=Math.max(0,r)}let Z=n((e,t)=>{let n=Number.isFinite(e)?s(e,0,1):0,r=n!==Se.current,i=!1;if(t){let e=Ee.current;i=!e||e.deltaX!==t.deltaX||e.deltaY!==t.deltaY||e.direction!==t.direction}(r||i)&&(Se.current=n,t?Ee.current=t:r&&(Ee.current=null),oe?.(n,t))}),Q=n(e=>{let t=d.current;if(!ue||!t){e||(De.current=null);return}let n=t.style,r=De.current;e?(r||(De.current=[n.transition,n.transform]),n.transition=`none`):r&&([n.transition,n.transform]=r,De.current=null);let i=L.current,a=z.current,o=i.x-a.x,s=i.y-a.y;e&&(n.transform=w(i,a.scale)),n.setProperty(f.x,`${o}px`),n.setProperty(f.y,`${s}px`)});function ke(e,t){if(t===null)return;let n=we.current;if(n&&t>n.time){let r=Math.max(t-n.time,ne);Te.current={x:(e.x-n.x)/r,y:(e.y-n.y)/r}}we.current={x:e.x,y:e.y,time:t}}let Ae=v.useCallback(()=>{F(void 0),X(!1),_e(!1),Z(0),q.current=O,Ce.current=null,I.current={x:0,y:0},L.current={x:0,y:0},z.current={x:0,y:0,scale:1},B.current=void 0,ve.current=0,V.current=!1,H.current={x:0,y:0},U.current=null,W.current=!1,R.current=null,ye.current=!1,be.current=null,G.current=!1,K.current=!1,xe.current={width:0,height:0},J.current=null,we.current=null,Te.current={x:0,y:0},Ee.current=null,Q(!1)},[X,O,Q,Z]);function je(e){if(`touches`in e){let t=e.touches[0];return t?{x:t.clientX,y:t.clientY}:null}return{x:e.clientX,y:e.clientY}}function Me(e){return`touches`in e||e.pointerType===`touch`}function Ne(e,t){let n=d.current?.getRootNode();return y(n,e.x,e.y)??r(t)}function Pe(e,t){let n=n=>{let r=l(e,t,n),a=i(r);return r===a.body||r===a.documentElement?null:r};return N&&!P?n(`horizontal`):P&&!N?n(`vertical`):n(`vertical`)??n(`horizontal`)}function Fe(e,t,n){G.current=!1;let r=Me(e),a=Ne(t,e.nativeEvent),o=i(d.current).body,s=r&&o?Pe(a,o):null,l=n?.ignoreScrollableTarget??!1;if(s&&!l||(G.current=!!(s&&l),a&&a.closest(de)&&(!r||m)))return!1;let f=d.current;if(h&&f&&a&&fe.length>0&&!(n?.ignoreScrollableAncestors??!1)&&c(a,f,fe))return!1;if(V.current=!1,B.current=void 0,ve.current=0,I.current=t,J.current=ie(e.timeStamp),H.current=t,R.current=t,q.current=O,Ce.current=typeof g==`function`?g:null,f){xe.current={width:f.offsetWidth,height:f.offsetHeight},Oe(D);let t=u(f);z.current=t,L.current={x:t.x,y:t.y},ke({x:t.x,y:t.y},J.current),`touches`in e||ae(f,e.pointerId,`setPointerCapture`)}return ce?.(e.nativeEvent),X(!0),U.current=null,W.current=!0,Z(0),Q(!0),!0}function Ie(){Le(),G.current=!1,R.current=null}function Le(){ye.current=!1,be.current=null}function Re(e){if(Ie(),!Y.current)return;X(!1),U.current=null;let t=z.current;L.current={x:t.x,y:t.y},F(void 0),K.current=!1,Q(!1);let n=d.current;n&&ae(n,e.pointerId,`releasePointerCapture`),Z(0,{deltaX:0,deltaY:0,direction:void 0}),se?.(e.nativeEvent)}function ze(e,t){let n=e=>Math.sign(e)*Math.abs(e)**.5,r=(e,t,r)=>!t&&e<0||!r&&e>0?n(e):e;return{x:N?r(e,k,A):n(e),y:P?r(t,j,M):n(t)}}function Be(e,t,n){let r=(e,t,n,r,i)=>e>0&&t<=0&&r||e<0&&t>=Math.max(0,n)&&i,i=Math.abs(t),a=Math.abs(n);return P&&n!==0&&(!N||a>=i)?r(n,e.scrollTop,e.scrollHeight-e.clientHeight,M,j):N&&t!==0&&(!P||i>a)?r(t,e.scrollLeft,e.scrollWidth-e.clientWidth,A,k):null}let Ve=n(e=>{if(!a||e.defaultPrevented||e.nativeEvent.defaultPrevented||!(`touches`in e)&&e.button!==0)return;let t=je(e);t&&(ye.current=!0,be.current=t,G.current=!1,K.current=!(`touches`in e),(!p||p(t,{nativeEvent:e.nativeEvent,direction:D}))&&Fe(e,t)&&Le())});function He(e,t,n){if(!a||!Y.current)return;let i=r(e.nativeEvent);if(Me(e)&&!G.current){let t=e.currentTarget;if(Pe(i,t))return}if(`touches`in e||e.preventDefault(),W.current&&(W.current=!1,ue)){I.current=t;let n=ie(e.timeStamp);n!==null&&(J.current=n)}let o=t.x,s=t.y,c=n.x,l=n.y;(l<0&&s>H.current.y||l>0&&s<H.current.y)&&(H.current={x:H.current.x,y:s}),(c<0&&o>H.current.x||c>0&&o<H.current.x)&&(H.current={x:o,y:H.current.y});let u=o-I.current.x,d=s-I.current.y,f=s-H.current.y,p=o-H.current.x,m=U.current;m===null&&N&&P&&Math.sqrt(u*u+d*d)>=ee&&(m=Math.abs(u)>Math.abs(d)?`horizontal`:`vertical`,U.current=m);let h;if(!B.current)m===`vertical`?d>0?h=`down`:d<0&&(h=`up`):m===`horizontal`?u>0?h=`right`:u<0&&(h=`left`):h=Math.abs(u)>=Math.abs(d)?u>0?`right`:`left`:d>0?`down`:`up`,h&&(h===`left`&&k||h===`right`&&A||h===`up`&&j||h===`down`&&M)&&(B.current=h,ve.current=C(h,u,d),F(h),Oe(h));else{let e=B.current,t=C(e,p,f);t>q.current?(V.current=!1,F(e)):!(k&&A)&&!(j&&M)&&ve.current-t>=x&&(V.current=!0)}let g=ze(u,d),_=z.current.x,v=z.current.y;m===`horizontal`?N&&(_+=g.x):(m===`vertical`||N&&(_+=g.x),P&&(v+=g.y));let y=L.current,b=_!==y.x||v!==y.y;L.current={x:_,y:v},b&&Q(!0),ke({x:_,y:v},ie(e.timeStamp));let te=_-z.current.x,ne=v-z.current.y,re={deltaX:te,deltaY:ne,direction:B.current},S=0,w=D??B.current;if(w){let e=w===`left`||w===`right`?xe.current.width:xe.current.height,t=z.current.scale||1,n=C(w,te,ne);e>0&&t>0&&n>0&&(S=n/(e*t))}Z(S,re)}let $=n(e=>{if(!a)return;let t=L.current,n=z.current,r=t.x-n.x,i=t.y-n.y,s={deltaX:r,deltaY:i,direction:B.current};if(!Y.current){Ie(),Z(0,s);return}X(!1),U.current=null,Ie(),K.current=!1;let c=d.current;c&&(`touches`in e||ae(c,e.pointerId,`releasePointerCapture`));let l=r,u=i,f=J.current,p=ie(e.timeStamp),m=f!==null&&p!==null&&p>f?p-f:0,h=m>0?Math.max(m,te):0,g=h>0?l/h:0,v=h>0?u/h:0,y=Te.current.x,b=Te.current.y,x=we.current;if(x&&p!==null&&p>=x.time){let e=p-x.time;if(e<=re){let n=Math.max(e,ne),r=t.x-x.x,i=t.y-x.y,a=r/n,o=i/n;a!==0&&(y=a),o!==0&&(b=o)}else y=0,b=0}let ee=E?.({event:e.nativeEvent,direction:B.current,deltaX:l,deltaY:u,velocityX:g,velocityY:v,releaseVelocityX:y,releaseVelocityY:b}),S=typeof ee==`boolean`;if(V.current&&!S){L.current={x:n.x,y:n.y},F(void 0),Q(!1),Z(0,s);return}let w=!1,T;if(S)w=ee,T=B.current??D;else for(let e of o)if(C(e,l,u)>q.current){w=!0,T=e;break}w&&T?(F(T),_e(!0),Q(!1),_?.(e.nativeEvent,{direction:T})):(L.current={x:n.x,y:n.y},F(void 0),Q(!1),Z(0,s))}),Ue=n(e=>{let n=je(e);if(!n)return;let r=!1;if(!(`touches`in e)){let t=T(e.buttons);if(t&&(K.current=!0),e.buttons!==0&&!t){Re(e);return}if(e.buttons===0&&K.current){if(!Y.current){$(e);return}r=!0}}if(!me&&ye.current){if(!Me(e)&&(e.defaultPrevented||e.nativeEvent.defaultPrevented)){Ie();return}if(!p||p(n,{nativeEvent:e.nativeEvent,direction:D})){let r=be.current,a=!1;if(Me(e)){let o=d.current;if(r&&o){let s=Ne(n,e.nativeEvent),c=i(o).body,l=c?Pe(s,c):null;if(l&&(t(o,l)||t(l,o))){let e=Be(l,n.x-r.x,n.y-r.y);if(e===!1)return;e===!0&&(a=!0)}}}Fe(e,n,{ignoreScrollableTarget:a,ignoreScrollableAncestors:a})&&(r&&a?(Le(),I.current=r,H.current=r,R.current=r,W.current=!1):(Le(),G.current=!1))}}let a=R.current,o=a===null?{x:0,y:0}:{x:n.x-a.x,y:n.y-a.y};R.current=n,He(e,n,o),r&&!(`touches`in e)&&$(e)}),We=n((e,t)=>{Ue({touches:e.touches,currentTarget:t,nativeEvent:e,defaultPrevented:e.defaultPrevented,timeStamp:e.timeStamp})}),Ge=v.useCallback(()=>{let e=Y.current,t=L.current,n=z.current,r=t.x-n.x,i=t.y-n.y;return!e&&r===0&&i===0&&!ge?{[f.x]:`0px`,[f.y]:`0px`}:{transition:e?`none`:void 0,transform:e?w(t,n.scale):void 0,[f.x]:`${r}px`,[f.y]:`${i}px`}},[ge,f]);return{swiping:me,swipeDirection:pe,dragDismissed:ge,getPointerProps:v.useCallback(()=>a?{onPointerDown:Ve,onPointerMove:Ue,onPointerUp:$,onPointerCancel:$}:{},[a,$,Ue,Ve]),getTouchProps:v.useCallback(()=>a?{onTouchStart:Ve,onTouchMove:Ue,onTouchEnd:$,onTouchCancel:$}:{},[a,$,Ue,Ve]),moveNative:We,getDragStyles:Ge,reset:Ae}}var se=[`me`];function ce(){let e=/^\/sites\/([^/]+)/.exec(globalThis.location?.pathname??``);return e?.[1]?decodeURIComponent(e[1]):void 0}function E(){let e=o({queryKey:se,queryFn:f.me,staleTime:6e4}),t=ce(),n=e.data?.sites!==void 0,r=o({queryKey:[...se,t],queryFn:()=>f.meOnSite(t),enabled:n&&t!==void 0,staleTime:6e4,retry:!1});return n&&t&&r.data?{...e,data:r.data}:e}function le(e,t){return e?.can?.[t]!==!1}function ue(e){return le(E().data,e)}function de(){let e=o({queryKey:[`instance`],queryFn:f.instance,staleTime:3e5,retry:!1});return(0,v.useMemo)(()=>_(e.data?.roles),[e.data])}function D(){let e=o({queryKey:[`instance`],queryFn:f.instance,staleTime:3e5,retry:!1});return(0,v.useMemo)(()=>h(e.data?.invites),[e.data])}function O(e){let t=m(),n=E().data,r=de(),i=le(n,e);if(i)return{allowed:i,reason:void 0};let a=g(r,e);return{allowed:i,reason:t(`gating.abilities.${e}`,{role:t(`roles.names.${a}`),roles:t(`roles.plural.${a}`)})}}var k=[`members`];function A(e=!0){return o({queryKey:k,queryFn:f.members.list,enabled:e,staleTime:3e4,retry:(e,t)=>!d(t)&&e<1})}function j(){let e=A();return(0,v.useMemo)(()=>new Map(p(e.data).map(e=>[e.actorId,e.role])),[e.data])}function M(){let e=E().data,t=o({queryKey:[`agent-keys`],queryFn:f.agentKeys.list,retry:!1,staleTime:6e4});return(0,v.useMemo)(()=>({actorId:e?.actor.id,agentIds:new Set(p(t.data).map(e=>e.agentId).filter(e=>!!e))}),[e?.actor.id,t.data])}export{D as a,A as c,C as d,y as f,O as i,de as l,le as n,E as o,oe as p,ue as r,j as s,k as t,M as u};
2
- //# sourceMappingURL=useMe-DcrRDsez.js.map
1
+ import{r as e}from"./rolldown-runtime-hePW80VL.js";import{Ut as t,at as n,tn as r,vn as i}from"./useBaseUiId-lg1teubxudgin0w2-CURnJ4xq.js";import{i as a}from"./react-CDCuUAOg.js";import{_ as o}from"./tanstack-BRxyYm4G.js";import{t as s}from"./clamp-jcjhzx71s6wt1rnc-D0kAXd-u.js";import{n as c,t as l}from"./scrollable-b6m9ze1u7ps0q1qn-CgUEkapN.js";import{t as u}from"./getElementTransform-cuiqmjglkrz4db6c-xvJxAmf3.js";import{c as d,t as f,u as p}from"./api-Mdeo6gzg.js";import{u as m}from"./i18n-CdW50___.js";import{f as h,m as g,x as _}from"./roles-B7USahqW.js";var v=e(a(),1);function y(e,t,n){return typeof e?.elementFromPoint==`function`?e.elementFromPoint(t,n):null}var b=40,x=10,ee=1,te=50,ne=16,re=80,S=`button,a,input,select,textarea,label,[role="button"]`;function C(e,t,n){switch(e){case`up`:return-n;case`down`:return n;case`left`:return-t;case`right`:return t;default:return 0}}function ie(e){return Number.isFinite(e)&&e>0?e:null}function w(e,t){return`translate3d(${e.x}px,${e.y}px,0) scale(${t})`}function T(e){return e%2==1}function ae(e,t,n){let r=e[n];if(typeof r==`function`)try{r.call(e,t)}catch(e){if(e&&typeof e==`object`&&`name`in e&&e.name===`NotFoundError`)return;throw e}}function oe(e){let{enabled:a,directions:o,elementRef:d,movementCssVars:f,canStart:p,ignoreSelectorWhenTouch:m=!0,ignoreScrollableAncestors:h=!1,swipeThreshold:g,onDismiss:_,onProgress:oe,onCancel:se,onSwipeStart:ce,onRelease:E,onSwipingChange:le,trackDrag:ue=!0}=e,de=S,D=o.length===1?o[0]:void 0,O=Math.max(0,typeof g==`number`?g:b),k=o.includes(`left`),A=o.includes(`right`),j=o.includes(`up`),M=o.includes(`down`),N=k||A,P=j||M,fe=v.useMemo(()=>{let e=[];return P&&e.push(`vertical`),N&&e.push(`horizontal`),e},[N,P]),[pe,F]=v.useState(void 0),[me,he]=v.useState(!1),[ge,_e]=v.useState(!1),I=v.useRef({x:0,y:0}),L=v.useRef({x:0,y:0}),R=v.useRef(null),z=v.useRef({x:0,y:0,scale:1}),B=v.useRef(void 0),ve=v.useRef(0),V=v.useRef(!1),H=v.useRef({x:0,y:0}),U=v.useRef(null),W=v.useRef(!1),ye=v.useRef(!1),be=v.useRef(null),G=v.useRef(!1),K=v.useRef(!1),xe=v.useRef({width:0,height:0}),Se=v.useRef(0),q=v.useRef(O),Ce=v.useRef(null),J=v.useRef(null),we=v.useRef(null),Te=v.useRef({x:0,y:0}),Ee=v.useRef(null),Y=v.useRef(!1),De=v.useRef(null),X=n(e=>{Y.current!==e&&(Y.current=e,he(e),le?.(e))});function Oe(e){if(!e)return;let t=d.current,n=Ce.current;if(!t||!n)return;let r=n({element:t,direction:e});q.current=Math.max(0,r)}let Z=n((e,t)=>{let n=Number.isFinite(e)?s(e,0,1):0,r=n!==Se.current,i=!1;if(t){let e=Ee.current;i=!e||e.deltaX!==t.deltaX||e.deltaY!==t.deltaY||e.direction!==t.direction}(r||i)&&(Se.current=n,t?Ee.current=t:r&&(Ee.current=null),oe?.(n,t))}),Q=n(e=>{let t=d.current;if(!ue||!t){e||(De.current=null);return}let n=t.style,r=De.current;e?(r||(De.current=[n.transition,n.transform]),n.transition=`none`):r&&([n.transition,n.transform]=r,De.current=null);let i=L.current,a=z.current,o=i.x-a.x,s=i.y-a.y;e&&(n.transform=w(i,a.scale)),n.setProperty(f.x,`${o}px`),n.setProperty(f.y,`${s}px`)});function ke(e,t){if(t===null)return;let n=we.current;if(n&&t>n.time){let r=Math.max(t-n.time,ne);Te.current={x:(e.x-n.x)/r,y:(e.y-n.y)/r}}we.current={x:e.x,y:e.y,time:t}}let Ae=v.useCallback(()=>{F(void 0),X(!1),_e(!1),Z(0),q.current=O,Ce.current=null,I.current={x:0,y:0},L.current={x:0,y:0},z.current={x:0,y:0,scale:1},B.current=void 0,ve.current=0,V.current=!1,H.current={x:0,y:0},U.current=null,W.current=!1,R.current=null,ye.current=!1,be.current=null,G.current=!1,K.current=!1,xe.current={width:0,height:0},J.current=null,we.current=null,Te.current={x:0,y:0},Ee.current=null,Q(!1)},[X,O,Q,Z]);function je(e){if(`touches`in e){let t=e.touches[0];return t?{x:t.clientX,y:t.clientY}:null}return{x:e.clientX,y:e.clientY}}function Me(e){return`touches`in e||e.pointerType===`touch`}function Ne(e,t){let n=d.current?.getRootNode();return y(n,e.x,e.y)??r(t)}function Pe(e,t){let n=n=>{let r=l(e,t,n),a=i(r);return r===a.body||r===a.documentElement?null:r};return N&&!P?n(`horizontal`):P&&!N?n(`vertical`):n(`vertical`)??n(`horizontal`)}function Fe(e,t,n){G.current=!1;let r=Me(e),a=Ne(t,e.nativeEvent),o=i(d.current).body,s=r&&o?Pe(a,o):null,l=n?.ignoreScrollableTarget??!1;if(s&&!l||(G.current=!!(s&&l),a&&a.closest(de)&&(!r||m)))return!1;let f=d.current;if(h&&f&&a&&fe.length>0&&!(n?.ignoreScrollableAncestors??!1)&&c(a,f,fe))return!1;if(V.current=!1,B.current=void 0,ve.current=0,I.current=t,J.current=ie(e.timeStamp),H.current=t,R.current=t,q.current=O,Ce.current=typeof g==`function`?g:null,f){xe.current={width:f.offsetWidth,height:f.offsetHeight},Oe(D);let t=u(f);z.current=t,L.current={x:t.x,y:t.y},ke({x:t.x,y:t.y},J.current),`touches`in e||ae(f,e.pointerId,`setPointerCapture`)}return ce?.(e.nativeEvent),X(!0),U.current=null,W.current=!0,Z(0),Q(!0),!0}function Ie(){Le(),G.current=!1,R.current=null}function Le(){ye.current=!1,be.current=null}function Re(e){if(Ie(),!Y.current)return;X(!1),U.current=null;let t=z.current;L.current={x:t.x,y:t.y},F(void 0),K.current=!1,Q(!1);let n=d.current;n&&ae(n,e.pointerId,`releasePointerCapture`),Z(0,{deltaX:0,deltaY:0,direction:void 0}),se?.(e.nativeEvent)}function ze(e,t){let n=e=>Math.sign(e)*Math.abs(e)**.5,r=(e,t,r)=>!t&&e<0||!r&&e>0?n(e):e;return{x:N?r(e,k,A):n(e),y:P?r(t,j,M):n(t)}}function Be(e,t,n){let r=(e,t,n,r,i)=>e>0&&t<=0&&r||e<0&&t>=Math.max(0,n)&&i,i=Math.abs(t),a=Math.abs(n);return P&&n!==0&&(!N||a>=i)?r(n,e.scrollTop,e.scrollHeight-e.clientHeight,M,j):N&&t!==0&&(!P||i>a)?r(t,e.scrollLeft,e.scrollWidth-e.clientWidth,A,k):null}let Ve=n(e=>{if(!a||e.defaultPrevented||e.nativeEvent.defaultPrevented||!(`touches`in e)&&e.button!==0)return;let t=je(e);t&&(ye.current=!0,be.current=t,G.current=!1,K.current=!(`touches`in e),(!p||p(t,{nativeEvent:e.nativeEvent,direction:D}))&&Fe(e,t)&&Le())});function He(e,t,n){if(!a||!Y.current)return;let i=r(e.nativeEvent);if(Me(e)&&!G.current){let t=e.currentTarget;if(Pe(i,t))return}if(`touches`in e||e.preventDefault(),W.current&&(W.current=!1,ue)){I.current=t;let n=ie(e.timeStamp);n!==null&&(J.current=n)}let o=t.x,s=t.y,c=n.x,l=n.y;(l<0&&s>H.current.y||l>0&&s<H.current.y)&&(H.current={x:H.current.x,y:s}),(c<0&&o>H.current.x||c>0&&o<H.current.x)&&(H.current={x:o,y:H.current.y});let u=o-I.current.x,d=s-I.current.y,f=s-H.current.y,p=o-H.current.x,m=U.current;m===null&&N&&P&&Math.sqrt(u*u+d*d)>=ee&&(m=Math.abs(u)>Math.abs(d)?`horizontal`:`vertical`,U.current=m);let h;if(!B.current)m===`vertical`?d>0?h=`down`:d<0&&(h=`up`):m===`horizontal`?u>0?h=`right`:u<0&&(h=`left`):h=Math.abs(u)>=Math.abs(d)?u>0?`right`:`left`:d>0?`down`:`up`,h&&(h===`left`&&k||h===`right`&&A||h===`up`&&j||h===`down`&&M)&&(B.current=h,ve.current=C(h,u,d),F(h),Oe(h));else{let e=B.current,t=C(e,p,f);t>q.current?(V.current=!1,F(e)):!(k&&A)&&!(j&&M)&&ve.current-t>=x&&(V.current=!0)}let g=ze(u,d),_=z.current.x,v=z.current.y;m===`horizontal`?N&&(_+=g.x):(m===`vertical`||N&&(_+=g.x),P&&(v+=g.y));let y=L.current,b=_!==y.x||v!==y.y;L.current={x:_,y:v},b&&Q(!0),ke({x:_,y:v},ie(e.timeStamp));let te=_-z.current.x,ne=v-z.current.y,re={deltaX:te,deltaY:ne,direction:B.current},S=0,w=D??B.current;if(w){let e=w===`left`||w===`right`?xe.current.width:xe.current.height,t=z.current.scale||1,n=C(w,te,ne);e>0&&t>0&&n>0&&(S=n/(e*t))}Z(S,re)}let $=n(e=>{if(!a)return;let t=L.current,n=z.current,r=t.x-n.x,i=t.y-n.y,s={deltaX:r,deltaY:i,direction:B.current};if(!Y.current){Ie(),Z(0,s);return}X(!1),U.current=null,Ie(),K.current=!1;let c=d.current;c&&(`touches`in e||ae(c,e.pointerId,`releasePointerCapture`));let l=r,u=i,f=J.current,p=ie(e.timeStamp),m=f!==null&&p!==null&&p>f?p-f:0,h=m>0?Math.max(m,te):0,g=h>0?l/h:0,v=h>0?u/h:0,y=Te.current.x,b=Te.current.y,x=we.current;if(x&&p!==null&&p>=x.time){let e=p-x.time;if(e<=re){let n=Math.max(e,ne),r=t.x-x.x,i=t.y-x.y,a=r/n,o=i/n;a!==0&&(y=a),o!==0&&(b=o)}else y=0,b=0}let ee=E?.({event:e.nativeEvent,direction:B.current,deltaX:l,deltaY:u,velocityX:g,velocityY:v,releaseVelocityX:y,releaseVelocityY:b}),S=typeof ee==`boolean`;if(V.current&&!S){L.current={x:n.x,y:n.y},F(void 0),Q(!1),Z(0,s);return}let w=!1,T;if(S)w=ee,T=B.current??D;else for(let e of o)if(C(e,l,u)>q.current){w=!0,T=e;break}w&&T?(F(T),_e(!0),Q(!1),_?.(e.nativeEvent,{direction:T})):(L.current={x:n.x,y:n.y},F(void 0),Q(!1),Z(0,s))}),Ue=n(e=>{let n=je(e);if(!n)return;let r=!1;if(!(`touches`in e)){let t=T(e.buttons);if(t&&(K.current=!0),e.buttons!==0&&!t){Re(e);return}if(e.buttons===0&&K.current){if(!Y.current){$(e);return}r=!0}}if(!me&&ye.current){if(!Me(e)&&(e.defaultPrevented||e.nativeEvent.defaultPrevented)){Ie();return}if(!p||p(n,{nativeEvent:e.nativeEvent,direction:D})){let r=be.current,a=!1;if(Me(e)){let o=d.current;if(r&&o){let s=Ne(n,e.nativeEvent),c=i(o).body,l=c?Pe(s,c):null;if(l&&(t(o,l)||t(l,o))){let e=Be(l,n.x-r.x,n.y-r.y);if(e===!1)return;e===!0&&(a=!0)}}}Fe(e,n,{ignoreScrollableTarget:a,ignoreScrollableAncestors:a})&&(r&&a?(Le(),I.current=r,H.current=r,R.current=r,W.current=!1):(Le(),G.current=!1))}}let a=R.current,o=a===null?{x:0,y:0}:{x:n.x-a.x,y:n.y-a.y};R.current=n,He(e,n,o),r&&!(`touches`in e)&&$(e)}),We=n((e,t)=>{Ue({touches:e.touches,currentTarget:t,nativeEvent:e,defaultPrevented:e.defaultPrevented,timeStamp:e.timeStamp})}),Ge=v.useCallback(()=>{let e=Y.current,t=L.current,n=z.current,r=t.x-n.x,i=t.y-n.y;return!e&&r===0&&i===0&&!ge?{[f.x]:`0px`,[f.y]:`0px`}:{transition:e?`none`:void 0,transform:e?w(t,n.scale):void 0,[f.x]:`${r}px`,[f.y]:`${i}px`}},[ge,f]);return{swiping:me,swipeDirection:pe,dragDismissed:ge,getPointerProps:v.useCallback(()=>a?{onPointerDown:Ve,onPointerMove:Ue,onPointerUp:$,onPointerCancel:$}:{},[a,$,Ue,Ve]),getTouchProps:v.useCallback(()=>a?{onTouchStart:Ve,onTouchMove:Ue,onTouchEnd:$,onTouchCancel:$}:{},[a,$,Ue,Ve]),moveNative:We,getDragStyles:Ge,reset:Ae}}var se=[`me`];function ce(){let e=/^\/sites\/([^/]+)/.exec(globalThis.location?.pathname??``);return e?.[1]?decodeURIComponent(e[1]):void 0}function E(){let e=o({queryKey:se,queryFn:f.me,staleTime:6e4}),t=ce(),n=e.data?.sites!==void 0,r=o({queryKey:[...se,t],queryFn:()=>f.meOnSite(t),enabled:n&&t!==void 0,staleTime:6e4,retry:!1});return n&&t&&r.data?{...e,data:r.data}:e}function le(e,t){return e?.can?.[t]!==!1}function ue(e){return le(E().data,e)}function de(){let e=o({queryKey:[`instance`],queryFn:f.instance,staleTime:3e5,retry:!1});return(0,v.useMemo)(()=>_(e.data?.roles),[e.data])}function D(){let e=o({queryKey:[`instance`],queryFn:f.instance,staleTime:3e5,retry:!1});return(0,v.useMemo)(()=>h(e.data?.invites),[e.data])}function O(e){let t=m(),n=E().data,r=de(),i=le(n,e);if(i)return{allowed:i,reason:void 0};let a=g(r,e);return{allowed:i,reason:t(`gating.abilities.${e}`,{role:t(`roles.names.${a}`),roles:t(`roles.plural.${a}`)})}}var k=[`members`];function A(e=!0){return o({queryKey:k,queryFn:f.members.list,enabled:e,staleTime:3e4,retry:(e,t)=>!d(t)&&e<1})}function j(){let e=A();return(0,v.useMemo)(()=>new Map(p(e.data).map(e=>[e.actorId,e.role])),[e.data])}function M(){let e=E().data,t=o({queryKey:[`agent-keys`],queryFn:f.agentKeys.list,retry:!1,staleTime:6e4});return(0,v.useMemo)(()=>({actorId:e?.actor.id,agentIds:new Set(p(t.data).map(e=>e.agentId).filter(e=>!!e))}),[e?.actor.id,t.data])}export{O as a,j as c,M as d,C as f,ue as i,A as l,oe as m,le as n,D as o,y as p,ce as r,E as s,k as t,de as u};
2
+ //# sourceMappingURL=useMe-D5W0xdO9.js.map
@@ -1,2 +1,2 @@
1
- import{r as e}from"./rolldown-runtime-hePW80VL.js";import{i as t}from"./react-CDCuUAOg.js";import{c as n}from"./i18n-Dz1LE8DB.js";var r=e(t(),1);function i(e,t,i=25){let[a,o]=(0,r.useState)(``),[s,c]=(0,r.useState)(1),{locale:l}=n(),u=(0,r.useCallback)(e=>e.toLocaleLowerCase(l),[l]),d=(0,r.useMemo)(()=>{let n=u(a.trim());return(e??[]).filter(e=>!n||t(e,n,u))},[e,a,t,u]),f=d.slice((s-1)*i,s*i);return{search:a,setSearch:e=>{o(e),c(1)},page:s,setPage:c,perPage:i,total:d.length,pageItems:f}}export{i as t};
2
- //# sourceMappingURL=usePaging-kMfWrvea.js.map
1
+ import{r as e}from"./rolldown-runtime-hePW80VL.js";import{i as t}from"./react-CDCuUAOg.js";import{c as n}from"./i18n-CdW50___.js";var r=e(t(),1);function i(e,t,i=25){let[a,o]=(0,r.useState)(``),[s,c]=(0,r.useState)(1),{locale:l}=n(),u=(0,r.useCallback)(e=>e.toLocaleLowerCase(l),[l]),d=(0,r.useMemo)(()=>{let n=u(a.trim());return(e??[]).filter(e=>!n||t(e,n,u))},[e,a,t,u]),f=d.slice((s-1)*i,s*i);return{search:a,setSearch:e=>{o(e),c(1)},page:s,setPage:c,perPage:i,total:d.length,pageItems:f}}export{i as t};
2
+ //# sourceMappingURL=usePaging-YS-Bfnj9.js.map
@@ -1,2 +1,2 @@
1
- import{r as e}from"./rolldown-runtime-hePW80VL.js";import{i as t}from"./react-CDCuUAOg.js";import{_ as n,v as r}from"./tanstack-BRxyYm4G.js";import{c as i,t as a}from"./api-Cqqt5jTd.js";import{f as o,t as s}from"./approvals-Dq0eHG8S.js";var c=e(t(),1),l=e=>[`approvals`,e],u=e=>({queryKey:[...l(e),`pending`],queryFn:()=>a.approvals.list(e,`pending`),retry:(e,t)=>!i(t)&&e<1});function d(e,t=!0){return n({...u(e),enabled:t,refetchInterval:e=>!i(e.state.error)&&s})}function f(){let e=n({queryKey:[`instance`],queryFn:a.instance,staleTime:3e5,retry:!1}).data?.features.elevationRequests===!0,t=n({queryKey:[`sites`],queryFn:a.sites.list,enabled:e}),i=e?(t.data??[]).map(e=>e.id):[],s=r({queries:i.map(t=>({...u(t),enabled:e})),combine:e=>e.map((e,t)=>({siteId:i[t]??``,items:e.data}))});return(0,c.useMemo)(()=>o(s),[s])}export{d as n,f as r,l as t};
2
- //# sourceMappingURL=usePendingApprovals-BVHPCnd7.js.map
1
+ import{r as e}from"./rolldown-runtime-hePW80VL.js";import{i as t}from"./react-CDCuUAOg.js";import{_ as n,v as r}from"./tanstack-BRxyYm4G.js";import{c as i,t as a}from"./api-Mdeo6gzg.js";import{f as o,t as s}from"./approvals-CIXN6a5b.js";var c=e(t(),1),l=e=>[`approvals`,e],u=e=>({queryKey:[...l(e),`pending`],queryFn:()=>a.approvals.list(e,`pending`),retry:(e,t)=>!i(t)&&e<1});function d(e,t=!0){return n({...u(e),enabled:t,refetchInterval:e=>!i(e.state.error)&&s})}function f(){let e=n({queryKey:[`instance`],queryFn:a.instance,staleTime:3e5,retry:!1}).data?.features.elevationRequests===!0,t=n({queryKey:[`sites`],queryFn:a.sites.list,enabled:e}),i=e?(t.data??[]).map(e=>e.id):[],s=r({queries:i.map(t=>({...u(t),enabled:e})),combine:e=>e.map((e,t)=>({siteId:i[t]??``,items:e.data}))});return(0,c.useMemo)(()=>o(s),[s])}export{d as n,f as r,l as t};
2
+ //# sourceMappingURL=usePendingApprovals-54FcNUfi.js.map