@cloudhal/cli 0.0.0-stage → 0.1.1
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.
- package/LICENSE +202 -0
- package/README.md +191 -2
- package/dist/assets/skills/comment-triage/SKILL.md +34 -0
- package/dist/assets/skills/comment-triage/evals/nightly-queue.json +13 -0
- package/dist/assets/skills/publish-article/SKILL.md +44 -0
- package/dist/assets/skills/publish-article/evals/file-under-category.json +10 -0
- package/dist/assets/skills/publish-article/evals/publish-draft.json +8 -0
- package/dist/assets/skills/publish-article/evals/schedule-draft.json +10 -0
- package/dist/assets/skills/publish-article/references/editorial-checklist.md +9 -0
- package/dist/assets/skills/rollback/SKILL.md +23 -0
- package/dist/assets/skills/rollback/evals/revert-last.json +4 -0
- package/dist/assets/skills/safe-edit/SKILL.md +29 -0
- package/dist/assets/skills/safe-edit/evals/retitle.json +4 -0
- package/dist/assets/skills/safe-edit/references/retagging.md +8 -0
- package/dist/assets/skills/site-bootstrap/SKILL.md +29 -0
- package/dist/assets/skills/site-bootstrap/evals/empty-site.json +9 -0
- package/dist/assets/skills/site-bootstrap/references/content-guidelines.md +6 -0
- package/dist/assets/skills/site-design/SKILL.md +31 -0
- package/dist/assets/skills/site-design/evals/landing-page.json +12 -0
- package/dist/assets/skills/site-design/references/checklist.md +10 -0
- package/dist/assets/skills/site-design/references/guidance.md +13 -0
- package/dist/assets/skills/site-design/references/page-recipes.md +34 -0
- package/dist/assets/skills/site-design/references/tokens.md +40 -0
- package/dist/assets/skills/stale-review/SKILL.md +40 -0
- package/dist/assets/skills/stale-review/evals/weekly-review.json +13 -0
- package/dist/assets/starters/blog/.yarnrc.yml +2 -0
- package/dist/assets/starters/blog/README.md +46 -0
- package/dist/assets/starters/blog/_gitignore +5 -0
- package/dist/assets/starters/blog/astro.config.mjs +40 -0
- package/dist/assets/starters/blog/package.json +35 -0
- package/dist/assets/starters/blog/public/favicon.ico +0 -0
- package/dist/assets/starters/blog/public/favicon.svg +1 -0
- package/dist/assets/starters/blog/public/fonts/fraunces-OFL.txt +93 -0
- package/dist/assets/starters/blog/public/fonts/fraunces-latin-ext-wght-normal.woff2 +0 -0
- package/dist/assets/starters/blog/public/fonts/fraunces-latin-wght-normal.woff2 +0 -0
- package/dist/assets/starters/blog/public/fonts/inter-OFL.txt +93 -0
- package/dist/assets/starters/blog/public/fonts/inter-latin-ext-wght-normal.woff2 +0 -0
- package/dist/assets/starters/blog/public/fonts/inter-latin-wght-normal.woff2 +0 -0
- package/dist/assets/starters/blog/public/fonts/jetbrains-mono-OFL.txt +93 -0
- package/dist/assets/starters/blog/public/fonts/jetbrains-mono-latin-ext-wght-normal.woff2 +0 -0
- package/dist/assets/starters/blog/public/fonts/jetbrains-mono-latin-wght-normal.woff2 +0 -0
- package/dist/assets/starters/blog/public/fonts/source-sans-3-OFL.txt +93 -0
- package/dist/assets/starters/blog/public/fonts/source-sans-3-latin-ext-wght-normal.woff2 +0 -0
- package/dist/assets/starters/blog/public/fonts/source-sans-3-latin-wght-normal.woff2 +0 -0
- package/dist/assets/starters/blog/public/fonts/source-serif-4-OFL.txt +93 -0
- package/dist/assets/starters/blog/public/fonts/source-serif-4-latin-ext-wght-normal.woff2 +0 -0
- package/dist/assets/starters/blog/public/fonts/source-serif-4-latin-wght-normal.woff2 +0 -0
- package/dist/assets/starters/blog/public/fonts/space-grotesk-OFL.txt +93 -0
- package/dist/assets/starters/blog/public/fonts/space-grotesk-latin-ext-wght-normal.woff2 +0 -0
- package/dist/assets/starters/blog/public/fonts/space-grotesk-latin-wght-normal.woff2 +0 -0
- package/dist/assets/starters/blog/src/DESIGN.md +42 -0
- package/dist/assets/starters/blog/src/blocks.ts +45 -0
- package/dist/assets/starters/blog/src/components/Archive.astro +108 -0
- package/dist/assets/starters/blog/src/components/Article.astro +105 -0
- package/dist/assets/starters/blog/src/components/Breadcrumbs.astro +25 -0
- package/dist/assets/starters/blog/src/components/EntryList.astro +54 -0
- package/dist/assets/starters/blog/src/components/LatestPosts.astro +30 -0
- package/dist/assets/starters/blog/src/components/MenuPanel.astro +46 -0
- package/dist/assets/starters/blog/src/components/NavLink.astro +27 -0
- package/dist/assets/starters/blog/src/components/NavMenu.astro +95 -0
- package/dist/assets/starters/blog/src/components/NotFound.astro +27 -0
- package/dist/assets/starters/blog/src/components/PostTerms.astro +33 -0
- package/dist/assets/starters/blog/src/components/RelatedPosts.astro +20 -0
- package/dist/assets/starters/blog/src/components/Search.astro +57 -0
- package/dist/assets/starters/blog/src/components/SearchDialog.astro +46 -0
- package/dist/assets/starters/blog/src/components/blocks/Testimonial.astro +18 -0
- package/dist/assets/starters/blog/src/env.d.ts +5 -0
- package/dist/assets/starters/blog/src/fonts.ts +15 -0
- package/dist/assets/starters/blog/src/icons.ts +12 -0
- package/dist/assets/starters/blog/src/layouts/Base.astro +426 -0
- package/dist/assets/starters/blog/src/middleware.ts +2 -0
- package/dist/assets/starters/blog/src/pages/[...path]/llms.txt.ts +40 -0
- package/dist/assets/starters/blog/src/pages/[...path]/rss.xml.ts +93 -0
- package/dist/assets/starters/blog/src/pages/[...path]/search.json.ts +23 -0
- package/dist/assets/starters/blog/src/pages/[...path].astro +449 -0
- package/dist/assets/starters/blog/src/pages/llms.txt.ts +21 -0
- package/dist/assets/starters/blog/src/pages/robots.txt.ts +13 -0
- package/dist/assets/starters/blog/src/pages/rss.xml.ts +25 -0
- package/dist/assets/starters/blog/src/pages/search.json.ts +21 -0
- package/dist/assets/starters/blog/src/pages/sitemap.xml.ts +23 -0
- package/dist/assets/starters/blog/src/settings.ts +312 -0
- package/dist/assets/starters/blog/src/strings.ts +269 -0
- package/dist/assets/starters/blog/src/styles/features/ambient.css +185 -0
- package/dist/assets/starters/blog/src/styles/features/article.css +215 -0
- package/dist/assets/starters/blog/src/styles/features/blocks.css +93 -0
- package/dist/assets/starters/blog/src/styles/features/carousel.css +266 -0
- package/dist/assets/starters/blog/src/styles/features/chrome-menus.css +264 -0
- package/dist/assets/starters/blog/src/styles/features/chrome.css +193 -0
- package/dist/assets/starters/blog/src/styles/features/comments.css +75 -0
- package/dist/assets/starters/blog/src/styles/features/icons.css +70 -0
- package/dist/assets/starters/blog/src/styles/features/languages.css +34 -0
- package/dist/assets/starters/blog/src/styles/features/live-surfaces.css +235 -0
- package/dist/assets/starters/blog/src/styles/features/motion-effects.css +217 -0
- package/dist/assets/starters/blog/src/styles/features/motion-scroll.css +309 -0
- package/dist/assets/starters/blog/src/styles/features/motion.css +254 -0
- package/dist/assets/starters/blog/src/styles/features/overlays.css +324 -0
- package/dist/assets/starters/blog/src/styles/features/prose.css +140 -0
- package/dist/assets/starters/blog/src/styles/features/search-dialog.css +144 -0
- package/dist/assets/starters/blog/src/styles/features/search.css +59 -0
- package/dist/assets/starters/blog/src/styles/features/surface-media.css +123 -0
- package/dist/assets/starters/blog/src/styles/features/surfaces.css +309 -0
- package/dist/assets/starters/blog/src/styles/features/tokens.css +100 -0
- package/dist/assets/starters/blog/src/styles/fonts.css +113 -0
- package/dist/assets/starters/blog/src/styles/global.css +30 -0
- package/dist/assets/starters/blog/src/theme.ts +48 -0
- package/dist/assets/starters/blog/tsconfig.json +5 -0
- package/dist/assets/studio/.assetsignore +2 -0
- package/dist/assets/studio/_headers +14 -0
- package/dist/assets/studio/assets/AccountPage-Dzr5d8sk.js +2 -0
- package/dist/assets/studio/assets/ActivityPage-C0HlgSI5.js +2 -0
- package/dist/assets/studio/assets/AgentModes-B81a2nUo.js +2 -0
- package/dist/assets/studio/assets/AgentsPage-BzCOyX4g.js +2 -0
- package/dist/assets/studio/assets/AnalyticsPage-7yb7DBOH.js +3 -0
- package/dist/assets/studio/assets/ApprovalsPage-_tqc02mk.js +3 -0
- package/dist/assets/studio/assets/Archive.es-C0uhxndN.js +2 -0
- package/dist/assets/studio/assets/ArrowClockwise.es-BA0pzb0Y.js +2 -0
- package/dist/assets/studio/assets/ArrowCounterClockwise.es-Bn2jikgp.js +2 -0
- package/dist/assets/studio/assets/ArrowSquareOut.es-BWeH9CSw.js +2 -0
- package/dist/assets/studio/assets/ArrowUp.es-Bh0pVk-S.js +2 -0
- package/dist/assets/studio/assets/ArrowsMerge.es-gfKOrxGd.js +2 -0
- package/dist/assets/studio/assets/ArticleEditorPage-Bcb81dXC.js +2 -0
- package/dist/assets/studio/assets/ArticlesPage-152INxny.js +2 -0
- package/dist/assets/studio/assets/AssetPage-ddWJt0hs.js +2 -0
- package/dist/assets/studio/assets/Audit-BCzf5vBq.js +2 -0
- package/dist/assets/studio/assets/AuditBadges-C4sNtzf9.js +2 -0
- package/dist/assets/studio/assets/AuthLayout-Cidy_2Lu.js +2 -0
- package/dist/assets/studio/assets/AutocompleteItem-drxau0wm3735nihq-C-iAptWL.js +2 -0
- package/dist/assets/studio/assets/AutomationsPage-Dc6g5v_v.js +2 -0
- package/dist/assets/studio/assets/BlockPropsForm-fj5gMAa0.js +2 -0
- package/dist/assets/studio/assets/BlockSection-CnUXl5Sg.js +2 -0
- package/dist/assets/studio/assets/BodyChanges-M0zcsivC.js +4 -0
- package/dist/assets/studio/assets/BookOpenText.es-BfXzf_Vn.js +2 -0
- package/dist/assets/studio/assets/BuildPage-C1Nwy4dt.js +2 -0
- package/dist/assets/studio/assets/CSPContext-ctyrgg64girv38ls-2UvfJ5m0.js +2 -0
- package/dist/assets/studio/assets/CalendarCheck.es-DWymuVqi.js +2 -0
- package/dist/assets/studio/assets/CalendarPlus.es-YGFiosIm.js +2 -0
- package/dist/assets/studio/assets/CaretLeft.es-BUnHcaxq.js +2 -0
- package/dist/assets/studio/assets/CaretRight.es-D_coqYai.js +2 -0
- package/dist/assets/studio/assets/CaretUp.es-DBg3pdpL.js +2 -0
- package/dist/assets/studio/assets/CheckCircle.es-XJ9Tr9Tu.js +2 -0
- package/dist/assets/studio/assets/ClockClockwise.es-1egHMnBk.js +2 -0
- package/dist/assets/studio/assets/ClockCountdown.es-BR_zz6vi.js +2 -0
- package/dist/assets/studio/assets/Columns-DGrju-Ia.js +2 -0
- package/dist/assets/studio/assets/ComboboxEmpty-o0q20j2l2syar9kx-Bf-42bzQ.js +2 -0
- package/dist/assets/studio/assets/CommandMenu-CH5CJ8Kg.js +2 -0
- package/dist/assets/studio/assets/CommentThreadControls-D04pICZT.js +2 -0
- package/dist/assets/studio/assets/CommentThreadPage-BP0N9T4z.js +2 -0
- package/dist/assets/studio/assets/CommenterPage-CeFR4pn4.js +2 -0
- package/dist/assets/studio/assets/Comments-CnfKPS2z.js +2 -0
- package/dist/assets/studio/assets/CommentsPage-BlP_knlf.js +2 -0
- package/dist/assets/studio/assets/CompositeItem-hzuk5x3e5zsfgnyj-XaSr50DG.js +2 -0
- package/dist/assets/studio/assets/CompositeRoot-g72lchaerolf5dc9-B2BokDIY.js +2 -0
- package/dist/assets/studio/assets/ConfirmDialog-DEHkMoTj.js +2 -0
- package/dist/assets/studio/assets/Crumbs-Ci_RdgHU.js +2 -0
- package/dist/assets/studio/assets/DeviceMobile.es-B4PwJ85Q.js +2 -0
- package/dist/assets/studio/assets/DeviceTablet.es-BpxIF5z6.js +2 -0
- package/dist/assets/studio/assets/DialogRoot-hl3genvzl9h8ridm-BRUDLjaw.js +2 -0
- package/dist/assets/studio/assets/DialogTrigger-g44cuem7n4wez533-B5K8lQD3.js +2 -0
- package/dist/assets/studio/assets/DirectionalIcon-BKKMj3KT.js +2 -0
- package/dist/assets/studio/assets/DotsThree.es-C-pT5SgE.js +2 -0
- package/dist/assets/studio/assets/DownloadSimple.es-Cq4-UK-k.js +2 -0
- package/dist/assets/studio/assets/EditorLayout-DVegYcZT.js +2 -0
- package/dist/assets/studio/assets/EditorPreview-DsZG4-oJ.js +2 -0
- package/dist/assets/studio/assets/Elevation-Ca3Q8sk-.js +2 -0
- package/dist/assets/studio/assets/ElevationRequest-B0_Q_gVT.js +2 -0
- package/dist/assets/studio/assets/EnvelopeSimple.es-g-hlqV74.js +2 -0
- package/dist/assets/studio/assets/Eye.es-DqovdtPt.js +2 -0
- package/dist/assets/studio/assets/EyeSlash.es-YoqigHIr.js +2 -0
- package/dist/assets/studio/assets/File.es-VYp_u8mn.js +2 -0
- package/dist/assets/studio/assets/FolderSimple.es-CbGWmBJc.js +2 -0
- package/dist/assets/studio/assets/FolderSimplePlus.es-C9Fl6ewY.js +2 -0
- package/dist/assets/studio/assets/ForgotPasswordPage-LNtBXfC8.js +2 -0
- package/dist/assets/studio/assets/Funnel.es-L1Sdi8-A.js +2 -0
- package/dist/assets/studio/assets/Gating-BdY3KxOv.js +2 -0
- package/dist/assets/studio/assets/Gauge.es-D0Pz39Z0.js +2 -0
- package/dist/assets/studio/assets/GitDiff.es-fB1csyEF.js +2 -0
- package/dist/assets/studio/assets/GlobeHemisphereWest.es-C34XiLRk.js +2 -0
- package/dist/assets/studio/assets/GovernanceDialog-DR0m4Bhp.js +2 -0
- package/dist/assets/studio/assets/HandPalm.es-CB5OlkOg.js +2 -0
- package/dist/assets/studio/assets/Heartbeat.es-DZziz772.js +2 -0
- package/dist/assets/studio/assets/Hourglass.es-aqS22q0y.js +2 -0
- package/dist/assets/studio/assets/House.es-BQyZgbwu.js +2 -0
- package/dist/assets/studio/assets/IconBase.es-BZDpYMnj.js +2 -0
- package/dist/assets/studio/assets/Image.es-BcOUS77O.js +2 -0
- package/dist/assets/studio/assets/InsetPanel-CHSg953_.js +2 -0
- package/dist/assets/studio/assets/InvitePage-CZ-4Clg6.js +2 -0
- package/dist/assets/studio/assets/Key.es-DE551dL3.js +2 -0
- package/dist/assets/studio/assets/Lightning.es-D0IF-5OW.js +2 -0
- package/dist/assets/studio/assets/LinkBreak.es-BvGThatb.js +2 -0
- package/dist/assets/studio/assets/LinkSimple.es-BB_3GfFO.js +2 -0
- package/dist/assets/studio/assets/ListBullets.es-DzSyoNA1.js +2 -0
- package/dist/assets/studio/assets/ListToolbar-CE70usqf.js +2 -0
- package/dist/assets/studio/assets/LockSimple.es-D3HQqnoN.js +2 -0
- package/dist/assets/studio/assets/LoginPage-BfUjD7n3.js +2 -0
- package/dist/assets/studio/assets/MediaPage-D7h4RBbB.js +2 -0
- package/dist/assets/studio/assets/MediaPicker-DlJLkaGR.js +2 -0
- package/dist/assets/studio/assets/MediaUpload-BpTyBTHG.js +2 -0
- package/dist/assets/studio/assets/MembersPage-BNu1FOBL.js +2 -0
- package/dist/assets/studio/assets/Menus-ChmyHrPc.js +2 -0
- package/dist/assets/studio/assets/Monitor.es-CeaPWdET.js +2 -0
- package/dist/assets/studio/assets/NavigationPage-C10U827y.js +2 -0
- package/dist/assets/studio/assets/NewSiteDialog-D7SUMMY3.js +2 -0
- package/dist/assets/studio/assets/PageEditorPage-DBJUAqjk.js +5 -0
- package/dist/assets/studio/assets/PagesPage-Bwm8b58m.js +2 -0
- package/dist/assets/studio/assets/PasswordField-Cn0g88_l.js +2 -0
- package/dist/assets/studio/assets/PencilSimple.es-CsZ-k9wK.js +2 -0
- package/dist/assets/studio/assets/Plus.es-XNm1OB5Q.js +2 -0
- package/dist/assets/studio/assets/PreviewPanel-ChFoJD1H.js +2 -0
- package/dist/assets/studio/assets/Prohibit.es-CAvPLn3v.js +2 -0
- package/dist/assets/studio/assets/ProhibitInset.es-DsnL02EX.js +2 -0
- package/dist/assets/studio/assets/ProjectPage-e5BSkkda.js +2 -0
- package/dist/assets/studio/assets/Question.es-BqQtQle2.js +2 -0
- package/dist/assets/studio/assets/Readers-CvhU7wCy.js +3 -0
- package/dist/assets/studio/assets/RedirectDialog-DCNKLV43.js +2 -0
- package/dist/assets/studio/assets/RedirectsPage-CR1Di-T6.js +2 -0
- package/dist/assets/studio/assets/ReleaseApproval-gkciKrWx.js +2 -0
- package/dist/assets/studio/assets/ReleasePage-BRa167d9.js +2 -0
- package/dist/assets/studio/assets/ReleaseParts-BEMf510p.js +2 -0
- package/dist/assets/studio/assets/ResetPasswordPage-DLpZlh7i.js +2 -0
- package/dist/assets/studio/assets/RowMenu-BTHdea9k.js +2 -0
- package/dist/assets/studio/assets/ScheduleCard-BQWUIwPX.js +2 -0
- package/dist/assets/studio/assets/ScheduleDialog-B-QQ_Z3F.js +2 -0
- package/dist/assets/studio/assets/ScheduleHistoryPage-wv3pKfaZ.js +2 -0
- package/dist/assets/studio/assets/ScheduleStatusBadge-DHGmEyDv.js +2 -0
- package/dist/assets/studio/assets/SchedulerStalled-DUmZxbV4.js +2 -0
- package/dist/assets/studio/assets/Schedules-R6HfROIM.js +3 -0
- package/dist/assets/studio/assets/SchedulesPage-CIbzmMag.js +2 -0
- package/dist/assets/studio/assets/ScopeBadge-DM2PO5Xk.js +2 -0
- package/dist/assets/studio/assets/SectionCard-SzT8t6oM.js +2 -0
- package/dist/assets/studio/assets/Seo-CYyFHl3G.js +2 -0
- package/dist/assets/studio/assets/SeoPreview-tarmyT2Y.js +2 -0
- package/dist/assets/studio/assets/Settings-C407Vxml.js +2 -0
- package/dist/assets/studio/assets/ShieldCheck.es-BOXTHH7h.js +2 -0
- package/dist/assets/studio/assets/ShieldWarning.es-DPxoDMpT.js +2 -0
- package/dist/assets/studio/assets/SignIn.es-jAzHZG6b.js +2 -0
- package/dist/assets/studio/assets/SiteAccessField-D34vIaAo.js +2 -0
- package/dist/assets/studio/assets/SiteOverviewPage-Bm0-f1bp.js +4 -0
- package/dist/assets/studio/assets/SiteSettingsPage-tq4SzyMQ.js +3 -0
- package/dist/assets/studio/assets/SitesPage-B2QS2zaq.js +4 -0
- package/dist/assets/studio/assets/SkillsPage-BtFk0bBw.js +3 -0
- package/dist/assets/studio/assets/SlidersHorizontal.es-Bg-14CTG.js +2 -0
- package/dist/assets/studio/assets/SnapshotsPage-cltqpJLv.js +2 -0
- package/dist/assets/studio/assets/SourceEditor-UA14mu6Q.js +16 -0
- package/dist/assets/studio/assets/Sparkle.es-OfyfGCDe.js +2 -0
- package/dist/assets/studio/assets/Star.es-DhrrAurR.js +2 -0
- package/dist/assets/studio/assets/StatTile-DyU32i8V.js +2 -0
- package/dist/assets/studio/assets/Status-BgB2wP8j.js +2 -0
- package/dist/assets/studio/assets/StatusActions-tY-DY4Wa.js +3 -0
- package/dist/assets/studio/assets/StopCircle.es-a6tRK2fc.js +2 -0
- package/dist/assets/studio/assets/Table.es-6S52tmK7.js +2 -0
- package/dist/assets/studio/assets/TableSkeleton-CbqPrk-p.js +2 -0
- package/dist/assets/studio/assets/TagsMigration-BggsWH7A.js +2 -0
- package/dist/assets/studio/assets/Taxonomy-CeQUBEeZ.js +2 -0
- package/dist/assets/studio/assets/TaxonomyPage-hm0h5Ug5.js +2 -0
- package/dist/assets/studio/assets/TermEditorPage-tRUgbC0f.js +2 -0
- package/dist/assets/studio/assets/TermPickers-cZIwRG5t.js +2 -0
- package/dist/assets/studio/assets/TerminalWindow.es-DRFBT_Ie.js +2 -0
- package/dist/assets/studio/assets/TextAa.es-CuNv62rI.js +2 -0
- package/dist/assets/studio/assets/Toast-BHyBhGXI.js +2 -0
- package/dist/assets/studio/assets/ToolbarRootContext-eqk40r8uh4h6r211-DBIMpkd1.js +2 -0
- package/dist/assets/studio/assets/TranslationList-Cc4K8uy_.js +2 -0
- package/dist/assets/studio/assets/TranslationsPage-MFJsWMgX.js +2 -0
- package/dist/assets/studio/assets/Trash.es-CxKLVMOQ.js +2 -0
- package/dist/assets/studio/assets/User.es-BLqDj7XT.js +2 -0
- package/dist/assets/studio/assets/UserCircle.es-D4ZFhshn.js +2 -0
- package/dist/assets/studio/assets/Warning.es-LZXqwHRF.js +2 -0
- package/dist/assets/studio/assets/XCircle.es-3fJHkmwA.js +2 -0
- package/dist/assets/studio/assets/account-BXWuYNDB.js +2 -0
- package/dist/assets/studio/assets/activity-C0we9-m8.js +2 -0
- package/dist/assets/studio/assets/agents-BBsojpg9.js +4 -0
- package/dist/assets/studio/assets/aiSettings.ar-BhZdR6qG.js +2 -0
- package/dist/assets/studio/assets/aiSettings.de-CXaCGWio.js +2 -0
- package/dist/assets/studio/assets/aiSettings.en-C8dj9xkg.js +2 -0
- package/dist/assets/studio/assets/aiSettings.es-avCBqU5-.js +2 -0
- package/dist/assets/studio/assets/aiSettings.fa-CKFnDB0Q.js +2 -0
- package/dist/assets/studio/assets/aiSettings.fr-35_A52Su.js +2 -0
- package/dist/assets/studio/assets/aiSettings.he-CbsdxPL1.js +2 -0
- package/dist/assets/studio/assets/aiSettings.hi-y4QpRZgC.js +2 -0
- package/dist/assets/studio/assets/aiSettings.id-CO4I-Nr1.js +2 -0
- package/dist/assets/studio/assets/aiSettings.it-B-OytWUY.js +2 -0
- package/dist/assets/studio/assets/aiSettings.ja-ClLGRpLX.js +2 -0
- package/dist/assets/studio/assets/aiSettings.ko-CedNf6wA.js +2 -0
- package/dist/assets/studio/assets/aiSettings.nl-DuEVpMb_.js +2 -0
- package/dist/assets/studio/assets/aiSettings.pl-wXUoviqN.js +2 -0
- package/dist/assets/studio/assets/aiSettings.pt-BR-Dm3HTskY.js +2 -0
- package/dist/assets/studio/assets/aiSettings.ru-DOWh4XHX.js +2 -0
- package/dist/assets/studio/assets/aiSettings.tr-xC2kyYK8.js +2 -0
- package/dist/assets/studio/assets/aiSettings.uk-DrE0ioQJ.js +2 -0
- package/dist/assets/studio/assets/aiSettings.zh-Hans-CBZ7ePsr.js +2 -0
- package/dist/assets/studio/assets/analytics-range-BqKm9TTo.js +2 -0
- package/dist/assets/studio/assets/analytics.ar-DFKPNZOf.js +2 -0
- package/dist/assets/studio/assets/analytics.de-CE2_NGRB.js +2 -0
- package/dist/assets/studio/assets/analytics.en-BjRe9VE9.js +2 -0
- package/dist/assets/studio/assets/analytics.es-DmWAl1lg.js +2 -0
- package/dist/assets/studio/assets/analytics.fa-YJ3Xk-rc.js +2 -0
- package/dist/assets/studio/assets/analytics.fr-BDyCguOG.js +2 -0
- package/dist/assets/studio/assets/analytics.he-BJ5kfLvV.js +2 -0
- package/dist/assets/studio/assets/analytics.hi-Cc9ZxzNg.js +2 -0
- package/dist/assets/studio/assets/analytics.id-CyUlDO82.js +2 -0
- package/dist/assets/studio/assets/analytics.it-NlLzAH3s.js +2 -0
- package/dist/assets/studio/assets/analytics.ja-DWrGTLXw.js +2 -0
- package/dist/assets/studio/assets/analytics.ko-BtZwKyZk.js +2 -0
- package/dist/assets/studio/assets/analytics.nl-CAny5E3q.js +2 -0
- package/dist/assets/studio/assets/analytics.pl-CpcS7l9b.js +2 -0
- package/dist/assets/studio/assets/analytics.pt-BR-BAK_LNqi.js +2 -0
- package/dist/assets/studio/assets/analytics.ru-BhvbWlC_.js +2 -0
- package/dist/assets/studio/assets/analytics.tr-aCP2FxF6.js +2 -0
- package/dist/assets/studio/assets/analytics.uk-CAGnu8AX.js +2 -0
- package/dist/assets/studio/assets/analytics.zh-Hans-NF-Le9KQ.js +2 -0
- package/dist/assets/studio/assets/analyticsSettings.ar-C5r58XUn.js +2 -0
- package/dist/assets/studio/assets/analyticsSettings.de-DVXtSeKl.js +2 -0
- package/dist/assets/studio/assets/analyticsSettings.en-Dn_QYKbo.js +2 -0
- package/dist/assets/studio/assets/analyticsSettings.es-BdkgtxLM.js +2 -0
- package/dist/assets/studio/assets/analyticsSettings.fa-CPuBleHO.js +2 -0
- package/dist/assets/studio/assets/analyticsSettings.fr-BSq7kZAb.js +2 -0
- package/dist/assets/studio/assets/analyticsSettings.he-Bt4A9H0D.js +2 -0
- package/dist/assets/studio/assets/analyticsSettings.hi-ii2QSWPw.js +2 -0
- package/dist/assets/studio/assets/analyticsSettings.id-CIZyEXYS.js +2 -0
- package/dist/assets/studio/assets/analyticsSettings.it-Sevpe-t4.js +2 -0
- package/dist/assets/studio/assets/analyticsSettings.ja-C_52hTsO.js +2 -0
- package/dist/assets/studio/assets/analyticsSettings.ko-Bpr2STd6.js +2 -0
- package/dist/assets/studio/assets/analyticsSettings.nl-DYfP6Uld.js +2 -0
- package/dist/assets/studio/assets/analyticsSettings.pl-BuJZVVIi.js +2 -0
- package/dist/assets/studio/assets/analyticsSettings.pt-BR-C4BNIRKw.js +2 -0
- package/dist/assets/studio/assets/analyticsSettings.ru-CiMbwjeg.js +2 -0
- package/dist/assets/studio/assets/analyticsSettings.tr-Csuqe5q9.js +2 -0
- package/dist/assets/studio/assets/analyticsSettings.uk-DVRqhoqA.js +2 -0
- package/dist/assets/studio/assets/analyticsSettings.zh-Hans-Y3Ei4xGe.js +2 -0
- package/dist/assets/studio/assets/api-Sbz4Rbu7.js +4 -0
- package/dist/assets/studio/assets/api-errors-FBnZYqCy.js +2 -0
- package/dist/assets/studio/assets/appearance.ar-CjHmVq1_.js +2 -0
- package/dist/assets/studio/assets/appearance.de-RD44SQgd.js +2 -0
- package/dist/assets/studio/assets/appearance.en-mFJuOtIH.js +2 -0
- package/dist/assets/studio/assets/appearance.es-Dn1vcVTZ.js +2 -0
- package/dist/assets/studio/assets/appearance.fa-DclMXXrQ.js +2 -0
- package/dist/assets/studio/assets/appearance.fr-CRqH6-pt.js +2 -0
- package/dist/assets/studio/assets/appearance.he-COP1zzas.js +2 -0
- package/dist/assets/studio/assets/appearance.hi-CnnlhSEx.js +2 -0
- package/dist/assets/studio/assets/appearance.id-aSp7eOOW.js +2 -0
- package/dist/assets/studio/assets/appearance.it-D4AXypSF.js +2 -0
- package/dist/assets/studio/assets/appearance.ja-BoMHIaWB.js +2 -0
- package/dist/assets/studio/assets/appearance.ko-BqysekcN.js +2 -0
- package/dist/assets/studio/assets/appearance.nl-DkQd7NMN.js +2 -0
- package/dist/assets/studio/assets/appearance.pl-YvYqfbPP.js +2 -0
- package/dist/assets/studio/assets/appearance.pt-BR-8R80D9mc.js +2 -0
- package/dist/assets/studio/assets/appearance.ru-CLiGYIyF.js +2 -0
- package/dist/assets/studio/assets/appearance.tr-T9TtsGiz.js +2 -0
- package/dist/assets/studio/assets/appearance.uk-C-AHWC43.js +2 -0
- package/dist/assets/studio/assets/appearance.zh-Hans-0HyzAidT.js +2 -0
- package/dist/assets/studio/assets/approvals-BB74ogKx.js +2 -0
- package/dist/assets/studio/assets/ar-6o5tS7uI.js +6 -0
- package/dist/assets/studio/assets/ar-CS6h3U7d.js +2 -0
- package/dist/assets/studio/assets/areArraysEqual-bcx201k1x9ziizym-DpJhDMgE.js +2 -0
- package/dist/assets/studio/assets/auth-BXDbnIpO.js +4 -0
- package/dist/assets/studio/assets/badge-dq8bx752b9dp7dst-D1xrG37q.js +2 -0
- package/dist/assets/studio/assets/banner-msnmqm7of2lck01x-DRzQHuca.js +2 -0
- package/dist/assets/studio/assets/bash-jpzh6zbf5237424t-bmc95DGl.js +1 -0
- package/dist/assets/studio/assets/blockIcon-DmMm6cQr.js +2 -0
- package/dist/assets/studio/assets/blocks-CvH3xqPj.js +3 -0
- package/dist/assets/studio/assets/body-blocks-D3YZCH_O.js +6 -0
- package/dist/assets/studio/assets/bodyEditor.ar-DIDA9Sn4.js +2 -0
- package/dist/assets/studio/assets/bodyEditor.de-qfipY5HQ.js +2 -0
- package/dist/assets/studio/assets/bodyEditor.en-B8FW4NF8.js +2 -0
- package/dist/assets/studio/assets/bodyEditor.es-t2G9FCJv.js +2 -0
- package/dist/assets/studio/assets/bodyEditor.fa-C4B5tIHm.js +2 -0
- package/dist/assets/studio/assets/bodyEditor.fr-B93u2T8B.js +2 -0
- package/dist/assets/studio/assets/bodyEditor.he-AjBYzDbH.js +2 -0
- package/dist/assets/studio/assets/bodyEditor.hi-BL4B8EIK.js +2 -0
- package/dist/assets/studio/assets/bodyEditor.id-DaiRImPk.js +2 -0
- package/dist/assets/studio/assets/bodyEditor.it-COSRU27e.js +2 -0
- package/dist/assets/studio/assets/bodyEditor.ja-4ELaS2Vi.js +2 -0
- package/dist/assets/studio/assets/bodyEditor.ko-DzXpHAYj.js +2 -0
- package/dist/assets/studio/assets/bodyEditor.nl-7a_XD53a.js +2 -0
- package/dist/assets/studio/assets/bodyEditor.pl-o2L5fJfH.js +2 -0
- package/dist/assets/studio/assets/bodyEditor.pt-BR-CRnn6BFL.js +2 -0
- package/dist/assets/studio/assets/bodyEditor.ru-BS2txhVI.js +2 -0
- package/dist/assets/studio/assets/bodyEditor.tr-DXm3ACCU.js +2 -0
- package/dist/assets/studio/assets/bodyEditor.uk-D32F3Hv3.js +2 -0
- package/dist/assets/studio/assets/bodyEditor.zh-Hans-DzWUdSMX.js +2 -0
- package/dist/assets/studio/assets/build.ar-CvCBBGmP.js +2 -0
- package/dist/assets/studio/assets/build.de-Dh25xQiI.js +2 -0
- package/dist/assets/studio/assets/build.en-Byn4-h2I.js +2 -0
- package/dist/assets/studio/assets/build.es-ClTjZJkv.js +2 -0
- package/dist/assets/studio/assets/build.fa-BKTGFm97.js +2 -0
- package/dist/assets/studio/assets/build.fr-DWmKJ0b2.js +2 -0
- package/dist/assets/studio/assets/build.he-CMkIxK5A.js +2 -0
- package/dist/assets/studio/assets/build.hi-bSlyuwEN.js +2 -0
- package/dist/assets/studio/assets/build.id-DYXKpcM4.js +2 -0
- package/dist/assets/studio/assets/build.it-DshuVK4I.js +2 -0
- package/dist/assets/studio/assets/build.ja-DUQGeTAB.js +2 -0
- package/dist/assets/studio/assets/build.ko-BgOecD0b.js +2 -0
- package/dist/assets/studio/assets/build.nl-CqcFxeNS.js +2 -0
- package/dist/assets/studio/assets/build.pl-DOh2FAZL.js +2 -0
- package/dist/assets/studio/assets/build.pt-BR-DIS1WMA1.js +2 -0
- package/dist/assets/studio/assets/build.ru-CT93GG0h.js +2 -0
- package/dist/assets/studio/assets/build.tr-BJ066yTf.js +2 -0
- package/dist/assets/studio/assets/build.uk-foNFYsBE.js +2 -0
- package/dist/assets/studio/assets/build.zh-Hans-D0aEdiJR.js +2 -0
- package/dist/assets/studio/assets/button-pa1bq9b85hawg41a-BcGpLLER.js +2 -0
- package/dist/assets/studio/assets/calendar-locale-D4aJYygH.js +2 -0
- package/dist/assets/studio/assets/charts-DL9SbRU8.js +39 -0
- package/dist/assets/studio/assets/checkbox-lbo436duy7krxcsk-BmusNS83.js +6 -0
- package/dist/assets/studio/assets/clamp-jcjhzx71s6wt1rnc-D0kAXd-u.js +2 -0
- package/dist/assets/studio/assets/clipboard-text-gd6s3n1bqse9zgt8-DXnAaY6R.js +2 -0
- package/dist/assets/studio/assets/code-eu8kzwqnlhoyin24-_5wcX_Lj.js +2 -0
- package/dist/assets/studio/assets/collapsible-l8g94on4w7qfosmn-udgP1bfF.js +2 -0
- package/dist/assets/studio/assets/combobox-hdxtsm2gqcxxgfju-BzzDlvd3.js +2 -0
- package/dist/assets/studio/assets/comment-model-CArtcrfg.js +4 -0
- package/dist/assets/studio/assets/comment-settings-M6JXROM1.js +2 -0
- package/dist/assets/studio/assets/comments-B1PIozwq.js +2 -0
- package/dist/assets/studio/assets/comments.ar-7NPLRbXL.js +2 -0
- package/dist/assets/studio/assets/comments.de-BML9h-8i.js +2 -0
- package/dist/assets/studio/assets/comments.en-DXe1aP-J.js +2 -0
- package/dist/assets/studio/assets/comments.es-B9qnqc6H.js +2 -0
- package/dist/assets/studio/assets/comments.fa-q5l6LTXH.js +2 -0
- package/dist/assets/studio/assets/comments.fr-7tNmTLTd.js +2 -0
- package/dist/assets/studio/assets/comments.he-C6eZFBr_.js +2 -0
- package/dist/assets/studio/assets/comments.hi-BBW7jI8Z.js +2 -0
- package/dist/assets/studio/assets/comments.id-XxjsE0p0.js +2 -0
- package/dist/assets/studio/assets/comments.it-3QvytToA.js +2 -0
- package/dist/assets/studio/assets/comments.ja-SEFPl5By.js +2 -0
- package/dist/assets/studio/assets/comments.ko-B_laV8JW.js +2 -0
- package/dist/assets/studio/assets/comments.nl-sc5X58Ly.js +2 -0
- package/dist/assets/studio/assets/comments.pl-DF090zb0.js +2 -0
- package/dist/assets/studio/assets/comments.pt-BR-DItdiBpU.js +2 -0
- package/dist/assets/studio/assets/comments.ru-BQjNpLAH.js +2 -0
- package/dist/assets/studio/assets/comments.tr-B22wAK59.js +2 -0
- package/dist/assets/studio/assets/comments.uk-D7MXty4-.js +2 -0
- package/dist/assets/studio/assets/comments.zh-Hans-Cuxj9eiV.js +2 -0
- package/dist/assets/studio/assets/commentsSettings.ar-CFEC5U3P.js +2 -0
- package/dist/assets/studio/assets/commentsSettings.de-B7jRspXp.js +2 -0
- package/dist/assets/studio/assets/commentsSettings.en-CjQdkMZH.js +2 -0
- package/dist/assets/studio/assets/commentsSettings.es-hozx4ts0.js +2 -0
- package/dist/assets/studio/assets/commentsSettings.fa-Idlvxfyt.js +2 -0
- package/dist/assets/studio/assets/commentsSettings.fr-CUYc20e7.js +2 -0
- package/dist/assets/studio/assets/commentsSettings.he-DXrfjejv.js +2 -0
- package/dist/assets/studio/assets/commentsSettings.hi-Bc2QmPb_.js +2 -0
- package/dist/assets/studio/assets/commentsSettings.id-BlqU87IM.js +2 -0
- package/dist/assets/studio/assets/commentsSettings.it-BxURj-49.js +2 -0
- package/dist/assets/studio/assets/commentsSettings.ja--0JkaZKL.js +2 -0
- package/dist/assets/studio/assets/commentsSettings.ko-Bc51E0cW.js +2 -0
- package/dist/assets/studio/assets/commentsSettings.nl-BAfV9gzf.js +2 -0
- package/dist/assets/studio/assets/commentsSettings.pl-CqCY2bHr.js +2 -0
- package/dist/assets/studio/assets/commentsSettings.pt-BR-C1W1xEAM.js +2 -0
- package/dist/assets/studio/assets/commentsSettings.ru-BNldyy_U.js +2 -0
- package/dist/assets/studio/assets/commentsSettings.tr-DoM2JLr_.js +2 -0
- package/dist/assets/studio/assets/commentsSettings.uk-B07IS9-u.js +2 -0
- package/dist/assets/studio/assets/commentsSettings.zh-Hans-iQA7XsFn.js +2 -0
- package/dist/assets/studio/assets/composite-ab8dmdfoj6tmhcn1-DBTnwEaq.js +2 -0
- package/dist/assets/studio/assets/core-n0de50o00ej2ecfe-gtt67pEc.js +13 -0
- package/dist/assets/studio/assets/countries-110m-CmKPZPcB.json +1 -0
- package/dist/assets/studio/assets/createToastManager-onmoqrmr8zo02rif-DtEv4lxV.js +2 -0
- package/dist/assets/studio/assets/css-j501gxq1am2gnikh-BsVw1vtW.js +2 -0
- package/dist/assets/studio/assets/date-picker-BSgojKR2.js +1 -0
- package/dist/assets/studio/assets/date-picker-cotkexrpqu5tjikv-C9Knj8LQ.js +2 -0
- package/dist/assets/studio/assets/de-BN-GS_nX.js +6 -0
- package/dist/assets/studio/assets/de-COZWf0tz.js +2 -0
- package/dist/assets/studio/assets/deleteLabels-DwQes2_M.js +2 -0
- package/dist/assets/studio/assets/dialog-glpnivujociqs9lh-BefDeRGC.js +2 -0
- package/dist/assets/studio/assets/diff-g2re0kj6fh27rgg5-woXpYk--.js +2 -0
- package/dist/assets/studio/assets/editor-C9MhZu7g.js +218 -0
- package/dist/assets/studio/assets/empty-hkvg3is3uc6dj1at-BGNUzomN.js +2 -0
- package/dist/assets/studio/assets/engine-javascript-e9xj8hhz9xfqhpnu-CaOb2Rd2.js +142 -0
- package/dist/assets/studio/assets/engine-oniguruma-ias56ildu01gf939-BO8SA_1o.js +2 -0
- package/dist/assets/studio/assets/errors-svQ83Q62.js +2 -0
- package/dist/assets/studio/assets/es-C1E3agwU.js +6 -0
- package/dist/assets/studio/assets/es-Cpr7u5Cz.js +2 -0
- package/dist/assets/studio/assets/fa-8y3tvKw6.js +2 -0
- package/dist/assets/studio/assets/fa-VZyv0VcS.js +6 -0
- package/dist/assets/studio/assets/format-DGE2c-4V.js +2 -0
- package/dist/assets/studio/assets/fr-IaaUvy1z.js +6 -0
- package/dist/assets/studio/assets/fr-IvKa5dhW.js +2 -0
- package/dist/assets/studio/assets/getElementTransform-cuiqmjglkrz4db6c-CjP1vzKy.js +2 -0
- package/dist/assets/studio/assets/github-light-hir7yctc38258pwt-EUqPIrTm.js +2 -0
- package/dist/assets/studio/assets/graphql-n9vlzkvcp2j19p7a-qc8EicCw.js +2 -0
- package/dist/assets/studio/assets/hcl-ohpfnrffs96hzyj5-Dh228itO.js +2 -0
- package/dist/assets/studio/assets/he-Ca3dnXtb.js +6 -0
- package/dist/assets/studio/assets/he-DG-oJz8N.js +2 -0
- package/dist/assets/studio/assets/hi-BXkaH5dy.js +6 -0
- package/dist/assets/studio/assets/hi-CngsNxV4.js +2 -0
- package/dist/assets/studio/assets/html-nimj6ljkkifnc9ni-_gDbiBIU.js +2 -0
- package/dist/assets/studio/assets/i18n-Cjiv6Esx.js +7 -0
- package/dist/assets/studio/assets/id-BuNEmn7g.js +6 -0
- package/dist/assets/studio/assets/id-CrWAlC6J.js +2 -0
- package/dist/assets/studio/assets/index-Boved2Nz.js +4 -0
- package/dist/assets/studio/assets/index-DaI1wvdp.css +2 -0
- package/dist/assets/studio/assets/inertValue-e0o6qvuef83v78fk-DAETOorM.js +2 -0
- package/dist/assets/studio/assets/inline-copy-text-gbd7jhwpor27l4rq-PUCnUeNZ.js +2 -0
- package/dist/assets/studio/assets/input-c8lv9ulv0kortliq-Cum0c7P1.js +5 -0
- package/dist/assets/studio/assets/input-group-fjr4r5ax0x78ppax-e-s-YUWj.js +2 -0
- package/dist/assets/studio/assets/input-h5ox92gf13ge04hp-jfy1uD8s.js +2 -0
- package/dist/assets/studio/assets/intl-C22KAx_l.js +2 -0
- package/dist/assets/studio/assets/it-BbkGji4q.js +2 -0
- package/dist/assets/studio/assets/it-DEB0m7yM.js +6 -0
- package/dist/assets/studio/assets/ja-BJv09PXI.js +6 -0
- package/dist/assets/studio/assets/ja-CLpIeite.js +2 -0
- package/dist/assets/studio/assets/javascript-b6fq9bl50fdj6813-BgS3c2Ky.js +2 -0
- package/dist/assets/studio/assets/json-h2g0z143t3cs13d7-qhed-kSA.js +2 -0
- package/dist/assets/studio/assets/jsonc-jxlzvingck161eej-CYpm1nAK.js +2 -0
- package/dist/assets/studio/assets/jsx-jp7a33937sef92sn-Bz0zcwM4.js +2 -0
- package/dist/assets/studio/assets/ko-Cikp2ojH.js +6 -0
- package/dist/assets/studio/assets/ko-u0y0T6iL.js +2 -0
- package/dist/assets/studio/assets/languages-CbQ722uB.js +2 -0
- package/dist/assets/studio/assets/layer-dialog-j5ywmzs46ccg6oqy-DyWF5y24.js +2 -0
- package/dist/assets/studio/assets/link-cqyfjezntvr53rh7-CwZJ95XT.js +10 -0
- package/dist/assets/studio/assets/markdown-eybeqjr58vfygtz1-BYOwaDjH.js +2 -0
- package/dist/assets/studio/assets/marked.esm-DCShygCS.js +68 -0
- package/dist/assets/studio/assets/media-DqHiLqTz.js +21 -0
- package/dist/assets/studio/assets/media.ar-Dx9z7Ceu.js +2 -0
- package/dist/assets/studio/assets/media.de-D6vlydhW.js +2 -0
- package/dist/assets/studio/assets/media.en-BT47PRGz.js +2 -0
- package/dist/assets/studio/assets/media.es-CDRleryS.js +2 -0
- package/dist/assets/studio/assets/media.fa-DXam9tY_.js +2 -0
- package/dist/assets/studio/assets/media.fr-DKfkWH0D.js +2 -0
- package/dist/assets/studio/assets/media.he-COj2GX3h.js +2 -0
- package/dist/assets/studio/assets/media.hi-1a0-Fk6b.js +2 -0
- package/dist/assets/studio/assets/media.id-CAgR7je9.js +2 -0
- package/dist/assets/studio/assets/media.it-huMn4qfV.js +2 -0
- package/dist/assets/studio/assets/media.ja-DIiDhxEt.js +2 -0
- package/dist/assets/studio/assets/media.ko-CEzTT9w2.js +2 -0
- package/dist/assets/studio/assets/media.nl-DAcAkgwj.js +2 -0
- package/dist/assets/studio/assets/media.pl-BIZYXHQa.js +2 -0
- package/dist/assets/studio/assets/media.pt-BR-C1Xda0__.js +2 -0
- package/dist/assets/studio/assets/media.ru-DQzNvBXO.js +2 -0
- package/dist/assets/studio/assets/media.tr-BaqtqqOw.js +2 -0
- package/dist/assets/studio/assets/media.uk-DGk-oYWc.js +2 -0
- package/dist/assets/studio/assets/media.zh-Hans-CrLAn2xd.js +2 -0
- package/dist/assets/studio/assets/menus.ar-BABqU-We.js +2 -0
- package/dist/assets/studio/assets/menus.de-Ba8EWf-g.js +2 -0
- package/dist/assets/studio/assets/menus.en-CJ5d7ms0.js +2 -0
- package/dist/assets/studio/assets/menus.es-CA6YLxuk.js +2 -0
- package/dist/assets/studio/assets/menus.fa-C7O8Jr5Z.js +2 -0
- package/dist/assets/studio/assets/menus.fr-Bq5ukcBM.js +2 -0
- package/dist/assets/studio/assets/menus.he-BiYUZo7X.js +2 -0
- package/dist/assets/studio/assets/menus.hi-CPYsx5YL.js +2 -0
- package/dist/assets/studio/assets/menus.id-B5JAh3Kk.js +2 -0
- package/dist/assets/studio/assets/menus.it-DpdTqaL4.js +2 -0
- package/dist/assets/studio/assets/menus.ja-NH9k2gC3.js +2 -0
- package/dist/assets/studio/assets/menus.ko-C_MCO4Mp.js +2 -0
- package/dist/assets/studio/assets/menus.nl-CLflbcbY.js +2 -0
- package/dist/assets/studio/assets/menus.pl-DLXN0-US.js +2 -0
- package/dist/assets/studio/assets/menus.pt-BR-Djh61S7r.js +2 -0
- package/dist/assets/studio/assets/menus.ru-Dn7rmQ8H.js +2 -0
- package/dist/assets/studio/assets/menus.tr-BOeLMbHv.js +2 -0
- package/dist/assets/studio/assets/menus.uk-BVwLEGId.js +2 -0
- package/dist/assets/studio/assets/menus.zh-Hans-X7QVgirl.js +2 -0
- package/dist/assets/studio/assets/meter-majprsslwmpbmkzg-DBo7nISC.js +2 -0
- package/dist/assets/studio/assets/names-R-Dypr9Y.js +2 -0
- package/dist/assets/studio/assets/nl-BiYEXj4B.js +6 -0
- package/dist/assets/studio/assets/nl-CraQgOQ0.js +2 -0
- package/dist/assets/studio/assets/pagination-oaenm9t7ou3lmcgw-DjC4Zsp5.js +2 -0
- package/dist/assets/studio/assets/pl-Iaem81Jv.js +6 -0
- package/dist/assets/studio/assets/pl-Z99ZIGWL.js +2 -0
- package/dist/assets/studio/assets/preload-helper-DjzSQ1t3.js +1 -0
- package/dist/assets/studio/assets/pt-BR-CM8N0OoK.js +6 -0
- package/dist/assets/studio/assets/pt-BR-CjvH9SeS.js +2 -0
- package/dist/assets/studio/assets/python-nrpnmxq4r6yp6fcd-gzcpVVnB.js +2 -0
- package/dist/assets/studio/assets/radio-35dx7y6rjrezbjsp-DY9M1ouC.js +2 -0
- package/dist/assets/studio/assets/react-CDCuUAOg.js +10 -0
- package/dist/assets/studio/assets/readers.ar-YaMfL_Lj.js +2 -0
- package/dist/assets/studio/assets/readers.de-wAkjNmXo.js +2 -0
- package/dist/assets/studio/assets/readers.en-CbmwKSip.js +2 -0
- package/dist/assets/studio/assets/readers.es-Clx8q_tO.js +2 -0
- package/dist/assets/studio/assets/readers.fa-8cssg4YZ.js +2 -0
- package/dist/assets/studio/assets/readers.fr-JJ3OFBav.js +2 -0
- package/dist/assets/studio/assets/readers.he-B0yqdtyq.js +2 -0
- package/dist/assets/studio/assets/readers.hi-i7cAeleO.js +2 -0
- package/dist/assets/studio/assets/readers.id-BdaxiKFf.js +2 -0
- package/dist/assets/studio/assets/readers.it-DXf3Um9S.js +2 -0
- package/dist/assets/studio/assets/readers.ja-B2eb6ZUO.js +2 -0
- package/dist/assets/studio/assets/readers.ko-BX4g0Q7l.js +2 -0
- package/dist/assets/studio/assets/readers.nl-cWSL2Ylr.js +2 -0
- package/dist/assets/studio/assets/readers.pl-C4WdmkML.js +2 -0
- package/dist/assets/studio/assets/readers.pt-BR-x4dMCgC9.js +2 -0
- package/dist/assets/studio/assets/readers.ru-BukUgT1q.js +2 -0
- package/dist/assets/studio/assets/readers.tr-nYS49xYR.js +2 -0
- package/dist/assets/studio/assets/readers.uk-DbcRoxdR.js +2 -0
- package/dist/assets/studio/assets/readers.zh-Hans-DcGU8fSg.js +2 -0
- package/dist/assets/studio/assets/reading-keys-CBjq-Jc-.js +2 -0
- package/dist/assets/studio/assets/resolveAriaLabelledBy-nc8mdie5shy87nsb-asx42i8W.js +2 -0
- package/dist/assets/studio/assets/resolveValueLabel-hpmsash3ektitvnb-X_gYut6U.js +2 -0
- package/dist/assets/studio/assets/roles-B7USahqW.js +2 -0
- package/dist/assets/studio/assets/rolldown-runtime-hePW80VL.js +1 -0
- package/dist/assets/studio/assets/rolldown-runtime-hi7ti5xiuxsegr96-DK3Fl9T5.js +2 -0
- package/dist/assets/studio/assets/ru-2qsjd_Gm.js +6 -0
- package/dist/assets/studio/assets/ru-CwyHst7f.js +2 -0
- package/dist/assets/studio/assets/schedule-notices-DSgNUP07.js +2 -0
- package/dist/assets/studio/assets/scheduleSettings.ar-DjCN-gPq.js +2 -0
- package/dist/assets/studio/assets/scheduleSettings.de-CkLy189g.js +2 -0
- package/dist/assets/studio/assets/scheduleSettings.en-Ke9GgFqw.js +2 -0
- package/dist/assets/studio/assets/scheduleSettings.es-DMlXyS4t.js +2 -0
- package/dist/assets/studio/assets/scheduleSettings.fa-B8pDw0e4.js +2 -0
- package/dist/assets/studio/assets/scheduleSettings.fr-D93CiYDm.js +2 -0
- package/dist/assets/studio/assets/scheduleSettings.he-Ce8vr2xp.js +2 -0
- package/dist/assets/studio/assets/scheduleSettings.hi-ClQTAEIx.js +2 -0
- package/dist/assets/studio/assets/scheduleSettings.id-TZ0m_tpl.js +2 -0
- package/dist/assets/studio/assets/scheduleSettings.it-v63UBHwg.js +2 -0
- package/dist/assets/studio/assets/scheduleSettings.ja-DjNw2QpF.js +2 -0
- package/dist/assets/studio/assets/scheduleSettings.ko-D-tIgkq1.js +2 -0
- package/dist/assets/studio/assets/scheduleSettings.nl-CQM8NRDu.js +2 -0
- package/dist/assets/studio/assets/scheduleSettings.pl-CUY8YZhH.js +2 -0
- package/dist/assets/studio/assets/scheduleSettings.pt-BR-2YkyZTua.js +2 -0
- package/dist/assets/studio/assets/scheduleSettings.ru-D-XI8CtL.js +2 -0
- package/dist/assets/studio/assets/scheduleSettings.tr-ChWn742p.js +2 -0
- package/dist/assets/studio/assets/scheduleSettings.uk-Czj_lfWV.js +2 -0
- package/dist/assets/studio/assets/scheduleSettings.zh-Hans-B1hytO83.js +2 -0
- package/dist/assets/studio/assets/schedules-BHug03zB.js +2 -0
- package/dist/assets/studio/assets/schedules-api-B7c4AXSw.js +2 -0
- package/dist/assets/studio/assets/schedules-search-B-7SpriY.js +2 -0
- package/dist/assets/studio/assets/schedules.ar-fkzR2RAY.js +2 -0
- package/dist/assets/studio/assets/schedules.de-DbgcJ6cl.js +2 -0
- package/dist/assets/studio/assets/schedules.en-D7O8u4iy.js +2 -0
- package/dist/assets/studio/assets/schedules.es-C3AvgW6g.js +2 -0
- package/dist/assets/studio/assets/schedules.fa-1UfcjmAY.js +2 -0
- package/dist/assets/studio/assets/schedules.fr-KDBHjGVO.js +2 -0
- package/dist/assets/studio/assets/schedules.he-D8Pds1dL.js +2 -0
- package/dist/assets/studio/assets/schedules.hi-DNpu7GlX.js +2 -0
- package/dist/assets/studio/assets/schedules.id-FewyiLfv.js +2 -0
- package/dist/assets/studio/assets/schedules.it-CY96E2q3.js +2 -0
- package/dist/assets/studio/assets/schedules.ja-CN3N8MH6.js +2 -0
- package/dist/assets/studio/assets/schedules.ko-B9ah4ZVM.js +2 -0
- package/dist/assets/studio/assets/schedules.nl-u3tZ7Ckd.js +2 -0
- package/dist/assets/studio/assets/schedules.pl-Bofx1Ubo.js +2 -0
- package/dist/assets/studio/assets/schedules.pt-BR-BFxLBiyp.js +2 -0
- package/dist/assets/studio/assets/schedules.ru-C5ZnKmGt.js +2 -0
- package/dist/assets/studio/assets/schedules.tr-Bfi96rHj.js +2 -0
- package/dist/assets/studio/assets/schedules.uk-BU4Kj6Az.js +2 -0
- package/dist/assets/studio/assets/schedules.zh-Hans-DDsu_SeS.js +2 -0
- package/dist/assets/studio/assets/scrollable-b6m9ze1u7ps0q1qn-BDQyLiel.js +2 -0
- package/dist/assets/studio/assets/select-futox5zqr3r80y9a-5U5PtwHa.js +2 -0
- package/dist/assets/studio/assets/seo-C-YSZ4mD.js +2 -0
- package/dist/assets/studio/assets/serializeValue-ipcakiw32jb7kany-B_EucO5O.js +2 -0
- package/dist/assets/studio/assets/shellscript-i4m7lo8wi0f5bl8b-CLZ0U2zV.js +2 -0
- package/dist/assets/studio/assets/site-settings-Cmq0DkaT.js +2 -0
- package/dist/assets/studio/assets/skeleton-line-m9dyh126t9k07jvg-CHsT8Hs3.js +4 -0
- package/dist/assets/studio/assets/sql-hqp2eekl7qhmxe92-BsFa4tDR.js +2 -0
- package/dist/assets/studio/assets/stringifyLocale-bxsgxdnzaef2vcar-CkHjdQTJ.js +2 -0
- package/dist/assets/studio/assets/styles-kl02oyrlnld7arja-BX5Ypy0Y.js +2 -0
- package/dist/assets/studio/assets/switch-cqsvolm7h69z7vgg-sFG02Szv.js +2 -0
- package/dist/assets/studio/assets/table-yf8ul2e5nbemioi1-DNq9jhfh.js +2 -0
- package/dist/assets/studio/assets/tabs-gf57qqf1wcclaejq-Cay-6qhK.js +2 -0
- package/dist/assets/studio/assets/tag-input-ohfybx5dbxy3houy-DhZt3VBi.js +2 -0
- package/dist/assets/studio/assets/tanstack-BiJ_7SEB.js +3 -0
- package/dist/assets/studio/assets/taxonomy-S-y5xbUa.js +2 -0
- package/dist/assets/studio/assets/toml-oyqrgosuct25x413-CcmNWLt0.js +2 -0
- package/dist/assets/studio/assets/toolbar-h213d8e22yjh5cwq-CipG_KSA.js +2 -0
- package/dist/assets/studio/assets/tr-BK-gVqHj.js +6 -0
- package/dist/assets/studio/assets/tr-DOAJHdbH.js +2 -0
- package/dist/assets/studio/assets/tsx-pem8x69upvmibv6l-udAQXfEw.js +2 -0
- package/dist/assets/studio/assets/typescript-pe5y016phdwbgws7-bsJCZSQ-.js +2 -0
- package/dist/assets/studio/assets/uk-9ZV1-TPI.js +2 -0
- package/dist/assets/studio/assets/uk-PoqqfkaM.js +6 -0
- package/dist/assets/studio/assets/useAnalyticsCard-MXajmsui.js +2 -0
- package/dist/assets/studio/assets/useAriaLabelledBy-ox8dum59shmgypq1-gkARNgzh.js +2 -0
- package/dist/assets/studio/assets/useBaseUiId-lg1teubxudgin0w2-CrAc3DRu.js +3 -0
- package/dist/assets/studio/assets/useButton-h7s9aq1sfw6arawe-BbWTOEat.js +4 -0
- package/dist/assets/studio/assets/useChartPalette-DXG2lo2x.js +2 -0
- package/dist/assets/studio/assets/useClick-l0p0endoxrlp0ae5-Bbq8u-IC.js +2 -0
- package/dist/assets/studio/assets/useCompositeItem-p7090ga00dpqcg5j-CiGYXm-8.js +2 -0
- package/dist/assets/studio/assets/useDebounced-DmPVYKCM.js +2 -0
- package/dist/assets/studio/assets/useListNavigation-3nyjs362qcau34in-DAKhz5rq.js +2 -0
- package/dist/assets/studio/assets/useMe-z-wff5FW.js +2 -0
- package/dist/assets/studio/assets/usePaging-BiNrjkE2.js +2 -0
- package/dist/assets/studio/assets/usePendingApprovals-BRHKM3-1.js +2 -0
- package/dist/assets/studio/assets/useRender-onwjigxa00uch2ip-DueSv9wh.js +2 -0
- package/dist/assets/studio/assets/useRenderDialogRoot-lddunc01twftravv-CpXvIQfS.js +2 -0
- package/dist/assets/studio/assets/useSettled-C0sKy_Gd.js +2 -0
- package/dist/assets/studio/assets/useTriggerFocusGuards-lz7wt484xltizro4-Dd4azd_G.js +2 -0
- package/dist/assets/studio/assets/util-B4GkKYcU.js +2 -0
- package/dist/assets/studio/assets/vesper-g839e590k3dxnwh3-DdrHHSXu.js +2 -0
- package/dist/assets/studio/assets/w3c-keyname-BOAvb0qz.js +2 -0
- package/dist/assets/studio/assets/wasm-cpasy0o9lsjrm39j-BnjxR4X6.js +2 -0
- package/dist/assets/studio/assets/workflow-D1TOv5ea.js +2 -0
- package/dist/assets/studio/assets/yaml-kzk5ddyekbyha04v-rwi0_p6S.js +2 -0
- package/dist/assets/studio/assets/zh-Hans-BYiQm8Cr.js +6 -0
- package/dist/assets/studio/assets/zh-Hans-D57DCm9K.js +2 -0
- package/dist/assets/studio/index.html +111 -0
- package/dist/bin/cloudhal.d.ts +2 -0
- package/dist/bin/cloudhal.js +10 -0
- package/dist/src/assets.d.ts +37 -0
- package/dist/src/assets.js +189 -0
- package/dist/src/blocks.d.ts +26 -0
- package/dist/src/blocks.js +102 -0
- package/dist/src/cli/commands-content.d.ts +7 -0
- package/dist/src/cli/commands-content.js +145 -0
- package/dist/src/cli/commands-local.d.ts +13 -0
- package/dist/src/cli/commands-local.js +167 -0
- package/dist/src/cli/commands-ops.d.ts +6 -0
- package/dist/src/cli/commands-ops.js +175 -0
- package/dist/src/cli/commands-remote.d.ts +8 -0
- package/dist/src/cli/commands-remote.js +131 -0
- package/dist/src/cli/commands-site.d.ts +4 -0
- package/dist/src/cli/commands-site.js +52 -0
- package/dist/src/cli/help.d.ts +2 -0
- package/dist/src/cli/help.js +83 -0
- package/dist/src/cli/prompts.d.ts +7 -0
- package/dist/src/cli/prompts.js +35 -0
- package/dist/src/cli/types.d.ts +26 -0
- package/dist/src/cli/types.js +42 -0
- package/dist/src/cli.d.ts +174 -0
- package/dist/src/cli.js +95 -0
- package/dist/src/cloudflare/admin.d.ts +54 -0
- package/dist/src/cloudflare/admin.js +156 -0
- package/dist/src/cloudflare/build.d.ts +5 -0
- package/dist/src/cloudflare/build.js +36 -0
- package/dist/src/cloudflare/config.d.ts +1082 -0
- package/dist/src/cloudflare/config.js +458 -0
- package/dist/src/cloudflare/search.d.ts +37 -0
- package/dist/src/cloudflare/search.js +47 -0
- package/dist/src/cloudflare/wrangler.d.ts +27 -0
- package/dist/src/cloudflare/wrangler.js +133 -0
- package/dist/src/commands/ai.d.ts +39 -0
- package/dist/src/commands/ai.js +264 -0
- package/dist/src/commands/analytics.d.ts +94 -0
- package/dist/src/commands/analytics.js +347 -0
- package/dist/src/commands/astro.d.ts +22 -0
- package/dist/src/commands/astro.js +87 -0
- package/dist/src/commands/chrome.d.ts +22 -0
- package/dist/src/commands/chrome.js +90 -0
- package/dist/src/commands/comments-local.d.ts +40 -0
- package/dist/src/commands/comments-local.js +114 -0
- package/dist/src/commands/comments.d.ts +45 -0
- package/dist/src/commands/comments.js +285 -0
- package/dist/src/commands/deploy/attach.d.ts +2 -0
- package/dist/src/commands/deploy/attach.js +190 -0
- package/dist/src/commands/deploy/context.d.ts +21 -0
- package/dist/src/commands/deploy/context.js +22 -0
- package/dist/src/commands/deploy/options.d.ts +98 -0
- package/dist/src/commands/deploy/options.js +106 -0
- package/dist/src/commands/deploy/prepare.d.ts +55 -0
- package/dist/src/commands/deploy/prepare.js +298 -0
- package/dist/src/commands/deploy/resources.d.ts +26 -0
- package/dist/src/commands/deploy/resources.js +157 -0
- package/dist/src/commands/deploy/schedules-guard.d.ts +24 -0
- package/dist/src/commands/deploy/schedules-guard.js +95 -0
- package/dist/src/commands/deploy/served-sites.d.ts +28 -0
- package/dist/src/commands/deploy/served-sites.js +86 -0
- package/dist/src/commands/deploy/settings.d.ts +24 -0
- package/dist/src/commands/deploy/settings.js +115 -0
- package/dist/src/commands/deploy/ship.d.ts +46 -0
- package/dist/src/commands/deploy/ship.js +174 -0
- package/dist/src/commands/deploy/state.d.ts +30 -0
- package/dist/src/commands/deploy/state.js +102 -0
- package/dist/src/commands/deploy.d.ts +52 -0
- package/dist/src/commands/deploy.js +223 -0
- package/dist/src/commands/domain.d.ts +15 -0
- package/dist/src/commands/domain.js +44 -0
- package/dist/src/commands/init.d.ts +18 -0
- package/dist/src/commands/init.js +142 -0
- package/dist/src/commands/mail-local.d.ts +7 -0
- package/dist/src/commands/mail-local.js +30 -0
- package/dist/src/commands/mcp.d.ts +22 -0
- package/dist/src/commands/mcp.js +113 -0
- package/dist/src/commands/media-placeholders.d.ts +29 -0
- package/dist/src/commands/media-placeholders.js +239 -0
- package/dist/src/commands/media.d.ts +32 -0
- package/dist/src/commands/media.js +182 -0
- package/dist/src/commands/migrate.d.ts +16 -0
- package/dist/src/commands/migrate.js +63 -0
- package/dist/src/commands/motion.d.ts +29 -0
- package/dist/src/commands/motion.js +118 -0
- package/dist/src/commands/owner.d.ts +18 -0
- package/dist/src/commands/owner.js +39 -0
- package/dist/src/commands/render.d.ts +26 -0
- package/dist/src/commands/render.js +94 -0
- package/dist/src/commands/scheduler-local.d.ts +55 -0
- package/dist/src/commands/scheduler-local.js +237 -0
- package/dist/src/commands/schedules.d.ts +32 -0
- package/dist/src/commands/schedules.js +170 -0
- package/dist/src/commands/search.d.ts +14 -0
- package/dist/src/commands/search.js +53 -0
- package/dist/src/commands/site.d.ts +46 -0
- package/dist/src/commands/site.js +151 -0
- package/dist/src/commands/snapshot.d.ts +10 -0
- package/dist/src/commands/snapshot.js +50 -0
- package/dist/src/commands/studio.d.ts +29 -0
- package/dist/src/commands/studio.js +172 -0
- package/dist/src/commands/sync.d.ts +42 -0
- package/dist/src/commands/sync.js +211 -0
- package/dist/src/commands/tokens.d.ts +12 -0
- package/dist/src/commands/tokens.js +45 -0
- package/dist/src/config-search.d.ts +24 -0
- package/dist/src/config-search.js +41 -0
- package/dist/src/config.d.ts +168 -0
- package/dist/src/config.js +348 -0
- package/dist/src/index.d.ts +16 -0
- package/dist/src/index.js +82 -0
- package/dist/src/project-setup.d.ts +21 -0
- package/dist/src/project-setup.js +50 -0
- package/dist/src/render-chrome.d.ts +9 -0
- package/dist/src/render-chrome.js +140 -0
- package/dist/src/starter-files.d.ts +4 -0
- package/dist/src/starter-files.js +51 -0
- package/dist/src/studio-build.d.ts +43 -0
- package/dist/src/studio-build.js +138 -0
- package/package.json +63 -3
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
var e={app:{name:`Cloudhal Studio`,tagline:`سجّل الدخول لإدارة مواقعك.`},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`,{zero:[`لا تعليقات بالانتظار`],one:[`تعليق واحد بالانتظار`],two:[`تعليقان بالانتظار`],few:[[4],` تعليقات بالانتظار`],many:[[4],` تعليقًا بالانتظار`],other:[[4],` تعليق بالانتظار`]}]],commentsWaitingDescription:`لا يراها القرّاء حتى يوافق عليها أحد.`,liveSnapshotLabel:`اللقطة المباشرة`,notPublished:`غير منشور بعد`,newPage:`صفحة جديدة`,pages:`الصفحات`,columns:{title:`العنوان`,path:`المسار`,status:`الحالة`,updated:`تاريخ التحديث`},empty:`لا توجد صفحات بعد`,emptyDescription:`أنشئ الصفحة الأولى أو اطلب من الوكيل إنشاء هيكلها.`,search:`ابحث في الصفحات`,status:`الحالة`,live:`مباشر`,recentArticles:`المقالات الحديثة`,viewAll:`اعرض الكل`,cli:`من الطرفية`},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:`أتريد نشر هذه الصفحة؟`,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`,{zero:[`لا كلمات`],one:[`كلمة واحدة`],two:[`كلمتان`],few:[[4],` كلمات`],many:[[4],` كلمةً`],other:[[4],` كلمة`]}]],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} بكسل`,errors:{required:`أدخل عنوان صورة، أو أزل الصورة.`,insecure:`استخدم https://. تحظر المتصفحات صور http على المواقع الآمنة.`,invalid:`أدخل عنوان https:// أو مسارًا يبدأ بـ /.`,tooLong:`ألفان وثمانية وأربعون حرفًا كحد أقصى.`,altRequired:`صف الصورة. النص البديل مطلوب لصورة الغلاف.`,altTooLong:`خمسمئة حرف كحد أقصى.`}},preview:{title:`معاينة البحث والمشاركة`,description:`كيف تظهر هذه المقالة في نتائج البحث وعند مشاركة رابطها. يُستخدم الملخص كوصف تعريفي وصورة الغلاف كصورة المشاركة.`,search:`نتيجة البحث`,social:`بطاقة التواصل الاجتماعي`,noSummary:`لا يوجد ملخص بعد. تختار محركات البحث والشبكات الاجتماعية نصًّا من المقالة.`,noDescription:`لا يوجد وصف تعريفي. تختار محركات البحث نصًّا من الصفحة.`},checks:{label:`الفحوصات`,title:`العنوان`,titleGood:`عدد الأحرف: {count}. يتسع في نتيجة البحث.`,titleLong:`عدد الأحرف: {count}. تقطع نتائج البحث العناوين بعد نحو ستين حرفًا.`,titleMissing:`أضف عنوانًا.`,description:`الوصف التعريفي`,summary:`الوصف التعريفي (الملخص)`,descriptionGood:`عدد الأحرف: {count}. يتسع في نتيجة البحث.`,descriptionShort:`عدد الأحرف: {count}. غالبًا ما تُستبدل الأوصاف القصيرة؛ استهدف ما بين خمسين ومئة وستين حرفًا.`,descriptionLong:`عدد الأحرف: {count}. تقطعه نتائج البحث بعد نحو مئة وستين حرفًا.`,summaryMissing:`أضف ملخصًا. بدونه تختار محركات البحث نصًّا من المقالة.`,image:`صورة المشاركة`,imageSet:`تُستخدم صورة الغلاف.`,imageMissing:`لا توجد صورة غلاف، لذا لا تُظهر الروابط المُشاركة أي صورة.`,imageBroken:`صورة الغلاف لا تُحمَّل.`,status:{good:`جيد`,short:`قصير`,long:`طويل جدًا`,missing:`مفقود`,broken:`معطوب`}},page:{title:`محركات البحث والمشاركة`,description:`كيف تظهر هذه الصفحة في نتائج البحث وعند مشاركة رابطها.`,seoTitle:`عنوان SEO`,seoTitleHint:`اتركه فارغًا لاستخدام عنوان الصفحة.`,seoDescription:`الوصف التعريفي`,seoDescriptionHint:`جملة أو جملتان عمّا تقدّمه الصفحة. استهدف ما بين خمسين ومئة وستين حرفًا.`,seoDescriptionPlaceholder:`ما يجده الزوار في هذه الصفحة`,noindex:`أخفِ من محركات البحث`,noindexHint:`يضيف وسم noindex. تبقى الصفحة قابلة للوصول عبر رابطها.`,noindexWarningTitle:`هذه الصفحة مخفية من محركات البحث`,noindexWarning:`يُطلب من محركات البحث عدم إدراجها، والصفحة المدرجة بالفعل تخرج بعد زيارتها التالية. اترك هذا متوقفًا للصفحات التي يجب أن يجدها الناس عبر البحث.`,advanced:`متقدم`,custom:`مخصّص`,canonical:`عنوان URL الأساسي (Canonical)`,canonicalHintHost:`عادةً فارغ: يُستخدم عنوان الصفحة على {host}. اضبطه فقط عندما يكون أصل هذا المحتوى على عنوان آخر.`,canonicalHint:`عادةً فارغ: يُستخدم عنوان الصفحة على النطاق الأساسي للموقع. اضبطه فقط عندما يكون أصل هذا المحتوى على عنوان آخر.`,canonicalPlaceholder:`https://example.com/original-page`,searchPreview:`معاينة البحث`,hidden:`مخفية من البحث`,errors:{titleTooLong:`ثلاثمئة حرف كحد أقصى.`,descriptionTooLong:`خمسمئة حرف كحد أقصى.`,canonicalInvalid:`أدخل عنوانًا كاملًا يبدأ بـ https://.`,canonicalTooLong:`ألفان وثمانية وأربعون حرفًا كحد أقصى.`}},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:`جرّب تسمية أخرى أو معرّف لقطة آخر.`,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:`صفحة أو مقالة أخرى تستخدم هذا المسار بالفعل.`,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:`انسخ معرّف المفتاح`,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:`ربع ساعة`,60:`ساعة واحدة`,240:`أربع ساعات`,1440:`يوم واحد`,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`,{zero:[`لا توجد مفاتيح وكلاء بصلاحيات مرفوعة`],one:[`مفتاح وكيل واحد بصلاحيات مرفوعة`],two:[`مفتاحا وكيل بصلاحيات مرفوعة`],few:[[4],` مفاتيح وكلاء بصلاحيات مرفوعة`],many:[[4],` مفتاح وكيل بصلاحيات مرفوعة`],other:[[4],` مفتاح وكيل بصلاحيات مرفوعة`]}]],bannerItem:`{name}: {from} ← {to} حتى {time}`,endNow:`أنهِ الآن`,endAll:`أنهِ الكل الآن`,endsIn:`ينتهي خلال {time}`,extendAll:`مدّد الكل {duration}`,howModes:`تحتاج إلى مزيد من الاستقلالية لفترة؟ ارفع صلاحيات المفتاح مؤقتًا بدلًا من تركه في الوضع التلقائي: يعود إلى وضعه الخاص تلقائيًا.`},create:{title:`أنشئ مفتاح وكيل`,description:`يعمل المفتاح كوكيل على كل موقع يمكنك فتحه، بالوضع الذي تختاره.`,stepMode:`الخطوة الأولى من اثنتين · اختر وضعًا`,stepDetails:`الخطوة الثانية من اثنتين · الاسم والنطاقات`,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}» جاهز. يرسله وكيلك في الترويسة x-api-key.`,warningTitle:`لن ترى هذا المفتاح مجددًا`,warning:`احفظه الآن في مدير كلمات المرور لديك أو في مخزن أسرار الوكيل. إذا فُقد، فألغِه وأنشئ مفتاحًا جديدًا.`,key:`مفتاح الوكيل`,config:`إعدادات العميل`,done:`حفظتُ المفتاح`},connect:{title:`اربط عميل MCP`,description:`يصل الوكلاء إلى Studio عبر MCP على هذا العنوان ويرسلون مفتاحهم في ترويسة. عند الاتصال يُبلَّغ الوكيل بوضع مفتاحه، فيعرف ما ينتظرك.`,endpoint:`نقطة نهاية MCP`,header:`الترويسة`,tabs:{json:`JSON`,claude:`Claude Code`,stdio:`محلي`},stdioHint:`على جهازك الخاص، شغّل خادم 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:`معرّف المنفّذ`,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:`حرصًا على أمانك، تتطلب قائمة الجلسات تسجيل دخول خلال آخر أربع وعشرين ساعة.`,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:`النطاقات`,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:`تعذّر حفظ المظهر`},conflictTitle:`تغيّر هذا الموقع في مكان آخر`,conflictDescription:`حفظ شخص أو وكيل هذا الموقع بعد أن فتحته. حمّل أحدث نسخة، وتحقّق من تغييرك، ثم احفظ مجددًا.`,loadLatest:`حمّل الأحدث`,general:{description:`الأساسيات التي يراها الوكلاء والسمات لهذا الموقع.`,name:`اسم الموقع`,nameHint:`يظهر في Studio ومتاح للسمة.`,slug:`المسار المختصر`,slugHint:`يعرّف الموقع في CLI وAPI. لا يمكن تغييره.`,siteId:`معرّف الموقع`,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:`أسماء المضيفين مئتان وثلاثة وخمسون حرفًا كحد أقصى`,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":`ساعة واحدة`,"1d":`يوم واحد`,"7d":`سبعة أيام`},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`,{zero:[`لا ملفات`],one:[`ملف واحد`],two:[`ملفان`],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:`ينتهي وضع {mode} لـ{name} خلال {left} ({time})، ثم يعود إلى {from}.`},request:{title:`يطلب {agent} وضع {mode} · {duration}`,reason:`«{reason}»`,review:`راجِع`},comments:{pending:{title:[[2,`count`,{zero:[`لا تعليقات تنتظر الإشراف`],one:[`تعليق واحد ينتظر الإشراف`],two:[`تعليقان ينتظران الإشراف`],few:[[4],` تعليقات تنتظر الإشراف`],many:[[4],` تعليقًا ينتظر الإشراف`],other:[[4],` تعليق ينتظر الإشراف`]}]],body:`أقدمها ينتظر منذ {age}.`,bodyNew:`لا يراها أحد حتى يوافق عليها أحد.`},reported:{title:[[2,`count`,{zero:[`لم يُبلَّغ عن أي تعليق`],one:[`أُبلغ عن تعليق واحد`],two:[`أُبلغ عن تعليقين`],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:`ينتهي وضع {mode} لـ{name} خلال {left}`,endingBody:`عند {time} يعود إلى {from}. مدّده إن كان الوكيل لا يزال يحتاج إليه.`},extend:{button:`مدّد {duration}`,group:`مدّد رفع الصلاحيات`,more:`مدد أخرى`,fromNow:`يُحتسب من الآن`,presets:{30:`نصف ساعة`,60:`ساعة واحدة`,240:`أربع ساعات`},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:`أتريد منح وضع {mode} لـ{agent}؟`,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`,{zero:[`لا توجد طلبات وكلاء بانتظار موافقتك`],one:[`طلب وكيل بانتظار موافقتك`],two:[`طلبا وكلاء بانتظار موافقتك`],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`,{zero:[[4],` لغة`],one:[`لغة واحدة`],two:[`لغتين`],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`,{zero:[`لا كتل دون تغيير`],one:[`كتلة واحدة دون تغيير`],two:[`كتلتان دون تغيير`],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:`مئة وثمانية وعشرون حرفًا كحد أقصى.`,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 وتُستبعد من خريطة الموقع. صفر: يُفهرس من أول مقالة.`,move:{title:`تغيير العنوان`,description:`تنتقل الأرشيفات. تستمر العناوين القديمة في العمل عبر إعادة توجيه دائمة.`,offTitle:`ستستجيب صفحات الأرشيف بـ 404`,offDescription:`لا تُنشأ إعادة توجيه: تتوقف الروابط إلى {path}/… عن العمل بعد النشر التالي.`,onTitle:`تصبح الأرشيفات عامة على {path}/…`,onDescription:`تحصل المصطلحات التي لها مقالة منشورة على صفحة بعد النشر التالي.`},create:`أنشئ التصنيف`,save:`احفظ الإعدادات`,created:`تم إنشاء {name}`,saved:`تم حفظ إعدادات {name}`,errors:{keyRequired:`أدخل مفتاحًا.`,keyInvalid:`استخدم أحرفًا لاتينية صغيرة وأرقامًا وشرطات مفردة، مثل series أو reading-list.`,keyTooLong:`مئة وثمانية وعشرون حرفًا كحد أقصى.`,keyReserved:`«{key}» محجوز في لغة التصفية (primary، collection، locale، status، id).`,keyTaken:`لدى هذا الموقع بالفعل تصنيف بهذا المفتاح.`,labelRequired:`أدخل اسمًا باللغة الافتراضية للموقع.`,labelTooLong:`{max} حرف كحد أقصى.`,labelPair:`املأ كليهما، أو اترك كليهما فارغين.`,pathRequired:`أدخل عنوانًا.`,pathInvalid:`ابدأ بـ / واستخدم كلمات بأحرف لاتينية صغيرة تفصلها شرطات، مثل /series.`,pathTooLong:`ألف وأربعة وعشرون حرفًا كحد أقصى.`,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:`مئتا حرف كحد أقصى.`,altTooLong:`«{value}» أطول من مئتي حرف.`,altDuplicate:`«{value}» مدرج مرتين أو يكرّر الاسم.`,altCollision:`«{value}» اسم لـ{other} بالفعل. لا يمكن أن يشير المرادف إلى مصطلحين.`,introTooLong:`عشرون ألف حرف كحد أقصى.`,position:`استخدم عددًا صحيحًا من صفر إلى {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:`ألف وأربعة وعشرون حرفًا كحد أقصى.`,fromTaken:`توجد بالفعل إعادة توجيه من هذا العنوان. حرّرها بدلًا من ذلك.`,fromServed:`يقدّم الموقع هذا العنوان. لا يمكن لإعادة التوجيه إخفاء صفحة أو مقالة منشورة أو أرشيف.`,toRequired:`أدخل الوجهة التي ترسل إليها الزوار.`,toInvalid:`استخدم مسارًا يبدأ بـ / أو عنوان https://.`,toInsecure:`استخدم https://.`,toTooLong:`ألفان وثمانية وأربعون حرفًا كحد أقصى.`,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 وواجهة الأوامر.`,slugInvalid:`استخدم أحرفًا صغيرة وأرقامًا وشرطات.`,language:`اللغة`,languageHint:`اللغة الافتراضية للموقع؛ أضف لغات أخرى لاحقًا من إعدادات اللغة.`,project:`المشروع`,projectHint:`تجمع المشاريع المواقع المترابطة، مثل الإصدارات اللغوية لمنشور واحد.`,newProject:`مشروع جديد`,submit:`إنشاء الموقع`,failed:`تعذّر إنشاء الموقع`,created:`تم إنشاء الموقع`,createdDescription:`{name} جاهز للتحرير؛ لم يُنشر شيء بعد.`,from:`البدء من`,fromHint:`يبدأ الموقع الفارغ بصفحة رئيسية وصفحة «من نحن».`,blank:`موقع فارغ`,copyOf:`نسخة من {name} (إصدار لغوي)`,editionHint:`ينسخ صفحات ذلك الموقع كمسودات باللغة الجديدة، وقوائمه وتصميمه، مرتبطة كترجمات؛ لا تُنسخ المقالات والوسائط. ينضم الموقع الجديد إلى مشروع ذلك الموقع.`,editionCreated:[`يبدأ `,[0,`name`],` بـ`,[2,`count`,{zero:[`لا صفحات`],one:[`صفحة واحدة`],two:[`صفحتين`],few:[[4],` صفحات`],many:[[4],` صفحة`],other:[[4],` صفحة`]}],` للترجمة؛ لم يُنشر شيء بعد.`]},projects:{title:`المشروع`,description:`مواقع هذا المشروع جنبًا إلى جنب: اللغات والعنوان وحالة النشر والموافقات المنتظرة.`,newSite:`موقع جديد في هذا المشروع`,sites:`المواقع`,notFound:`لا يوجد مشروع كهذا`,notFoundDescription:`حُذف، أو لا يمكنك فتح أي من مواقعه.`,columns:{site:`الموقع`,languages:`اللغات`,address:`العنوان`,status:`الحالة`,approvals:`الموافقات`},noAddress:`لا نطاق بعد`,none:`لا شيء`,waiting:[[2,`count`,{zero:[`لا شيء ينتظر`],one:[`واحدة تنتظر`],two:[`اثنتان تنتظران`],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`,{zero:[[4],` مواقع`],one:[`موقع واحد`],two:[`موقعان`],few:[[4],` مواقع`],many:[[4],` موقعًا`],other:[[4],` موقع`]}]]},invites:{create:{title:`ادعُ شخصًا`,reinviteTitle:`ادعُ مجددًا`,description:`يحصل على رابط لمرة واحدة لإنشاء حسابه بالدور الذي تختاره.`,step:`الخطوة الأولى من اثنتين · من وبأي دور`,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}. الخطوة الثانية من اثنتين.`,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:`استخدم ثمانية أحرف على الأقل`,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:`الأطول أقوى: جرّب اثني عشر حرفًا أو أكثر، أو بضع كلمات غير مترابطة.`,fair:`جيدة. بضعة أحرف إضافية تجعلها قوية.`,strong:`كلمة مرور قوية.`},errors:{required:`أدخل كلمة مرور`,tooShort:`استخدم {min} حرف على الأقل`,tooLong:`استخدم {max} حرف على الأكثر`,confirmRequired:`كرّر كلمة المرور`,mismatch:`كلمتا المرور غير متطابقتين`}}};export{e as messages};
|
|
6
|
+
//# sourceMappingURL=ar-6o5tS7uI.js.map
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
import{t as e}from"./preload-helper-DjzSQ1t3.js";var t=Object.assign({"../lazy/aiSettings.ar.ts":()=>e(()=>import(`./aiSettings.ar-BhZdR6qG.js`),[]),"../lazy/analytics.ar.ts":()=>e(()=>import(`./analytics.ar-DFKPNZOf.js`),[]),"../lazy/analyticsSettings.ar.ts":()=>e(()=>import(`./analyticsSettings.ar-C5r58XUn.js`),[]),"../lazy/appearance.ar.ts":()=>e(()=>import(`./appearance.ar-CjHmVq1_.js`),[]),"../lazy/bodyEditor.ar.ts":()=>e(()=>import(`./bodyEditor.ar-DIDA9Sn4.js`),[]),"../lazy/build.ar.ts":()=>e(()=>import(`./build.ar-CvCBBGmP.js`),[]),"../lazy/comments.ar.ts":()=>e(()=>import(`./comments.ar-7NPLRbXL.js`),[]),"../lazy/commentsSettings.ar.ts":()=>e(()=>import(`./commentsSettings.ar-CFEC5U3P.js`),[]),"../lazy/media.ar.ts":()=>e(()=>import(`./media.ar-Dx9z7Ceu.js`),[]),"../lazy/menus.ar.ts":()=>e(()=>import(`./menus.ar-BABqU-We.js`),[]),"../lazy/readers.ar.ts":()=>e(()=>import(`./readers.ar-YaMfL_Lj.js`),[]),"../lazy/scheduleSettings.ar.ts":()=>e(()=>import(`./scheduleSettings.ar-DjCN-gPq.js`),[]),"../lazy/schedules.ar.ts":()=>e(()=>import(`./schedules.ar-fkzR2RAY.js`),[])});export{t as loaders};
|
|
2
|
+
//# sourceMappingURL=ar-CS6h3U7d.js.map
|
|
@@ -0,0 +1,4 @@
|
|
|
1
|
+
import{r as e}from"./rolldown-runtime-hePW80VL.js";import{i as t}from"./react-CDCuUAOg.js";var n=`1.7.7`;function r(e){return Object.fromEntries(Object.entries(e).map(([e,t])=>[e,{code:e,message:t,toString:()=>e}]))}var i=r({FAILED_TO_CREATE_USER:`Failed to create user`,USER_ALREADY_EXISTS:`User already exists.`,USER_ALREADY_EXISTS_USE_ANOTHER_EMAIL:`User already exists. Use another email.`,YOU_CANNOT_BAN_YOURSELF:`You cannot ban yourself`,YOU_ARE_NOT_ALLOWED_TO_CHANGE_USERS_ROLE:`You are not allowed to change users role`,YOU_ARE_NOT_ALLOWED_TO_CREATE_USERS:`You are not allowed to create users`,YOU_ARE_NOT_ALLOWED_TO_LIST_USERS:`You are not allowed to list users`,YOU_ARE_NOT_ALLOWED_TO_LIST_USERS_SESSIONS:`You are not allowed to list users sessions`,YOU_ARE_NOT_ALLOWED_TO_BAN_USERS:`You are not allowed to ban users`,YOU_ARE_NOT_ALLOWED_TO_IMPERSONATE_USERS:`You are not allowed to impersonate users`,YOU_ARE_NOT_ALLOWED_TO_REVOKE_USERS_SESSIONS:`You are not allowed to revoke users sessions`,YOU_ARE_NOT_ALLOWED_TO_DELETE_USERS:`You are not allowed to delete users`,YOU_ARE_NOT_ALLOWED_TO_SET_USERS_PASSWORD:`You are not allowed to set users password`,BANNED_USER:`You have been banned from this application`,YOU_ARE_NOT_ALLOWED_TO_GET_USER:`You are not allowed to get user`,NO_DATA_TO_UPDATE:`No data to update`,YOU_ARE_NOT_ALLOWED_TO_UPDATE_USERS:`You are not allowed to update users`,YOU_CANNOT_REMOVE_YOURSELF:`You cannot remove yourself`,YOU_ARE_NOT_ALLOWED_TO_SET_NON_EXISTENT_VALUE:`You are not allowed to set a non-existent role value`,YOU_CANNOT_IMPERSONATE_ADMINS:`You cannot impersonate admins`,INVALID_ROLE_TYPE:`Invalid role type`,YOU_ARE_NOT_ALLOWED_TO_SET_USERS_EMAIL:`You are not allowed to update users email`,PASSWORD_CANNOT_BE_UPDATED_VIA_UPDATE_USER:`Password cannot be updated through update-user. Use the set-user-password endpoint instead`});function a(){let e=Object.getOwnPropertyDescriptor(Error,`stackTraceLimit`);return e===void 0?Object.isExtensible(Error):Object.prototype.hasOwnProperty.call(e,`writable`)?e.writable:e.set!==void 0}function o(e){let t=e.split(`
|
|
2
|
+
at `);return t.length<=1?e:(t.splice(1,1),t.join(`
|
|
3
|
+
at `))}function s(e,t){class n extends e{#e;constructor(...e){if(a()){let t=Error.stackTraceLimit;Error.stackTraceLimit=0,super(...e),Error.stackTraceLimit=t}else super(...e);let t=Error().stack;t&&(this.#e=o(t.replace(/^Error/,this.name)))}get errorStack(){return this.#e}}return Object.defineProperty(n.prototype,"constructor",{get(){return t},enumerable:!1,configurable:!0}),n}var c={OK:200,CREATED:201,ACCEPTED:202,NO_CONTENT:204,MULTIPLE_CHOICES:300,MOVED_PERMANENTLY:301,FOUND:302,SEE_OTHER:303,NOT_MODIFIED:304,TEMPORARY_REDIRECT:307,BAD_REQUEST:400,UNAUTHORIZED:401,PAYMENT_REQUIRED:402,FORBIDDEN:403,NOT_FOUND:404,METHOD_NOT_ALLOWED:405,NOT_ACCEPTABLE:406,PROXY_AUTHENTICATION_REQUIRED:407,REQUEST_TIMEOUT:408,CONFLICT:409,GONE:410,LENGTH_REQUIRED:411,PRECONDITION_FAILED:412,PAYLOAD_TOO_LARGE:413,URI_TOO_LONG:414,UNSUPPORTED_MEDIA_TYPE:415,RANGE_NOT_SATISFIABLE:416,EXPECTATION_FAILED:417,"I'M_A_TEAPOT":418,MISDIRECTED_REQUEST:421,UNPROCESSABLE_ENTITY:422,LOCKED:423,FAILED_DEPENDENCY:424,TOO_EARLY:425,UPGRADE_REQUIRED:426,PRECONDITION_REQUIRED:428,TOO_MANY_REQUESTS:429,REQUEST_HEADER_FIELDS_TOO_LARGE:431,UNAVAILABLE_FOR_LEGAL_REASONS:451,INTERNAL_SERVER_ERROR:500,NOT_IMPLEMENTED:501,BAD_GATEWAY:502,SERVICE_UNAVAILABLE:503,GATEWAY_TIMEOUT:504,HTTP_VERSION_NOT_SUPPORTED:505,VARIANT_ALSO_NEGOTIATES:506,INSUFFICIENT_STORAGE:507,LOOP_DETECTED:508,NOT_EXTENDED:510,NETWORK_AUTHENTICATION_REQUIRED:511};s(class extends Error{status;body;headers;statusCode;constructor(e=`INTERNAL_SERVER_ERROR`,t=void 0,n={},r=typeof e==`number`?e:c[e]){super(t?.message,t?.cause?{cause:t.cause}:void 0),this.status=e,this.body=t,this.headers=n,this.statusCode=r,this.name=`APIError`,this.status=e,this.headers=n,this.statusCode=r,this.body=t}},Error);var l=class extends Error{constructor(e,t){super(e,t),this.name=`BetterAuthError`,this.message=e,this.stack=``}};function u(e){return{success:!1,error:`You are not allowed to access resource: ${e}`}}function d(e){return{success:!1,error:`unauthorized to access resource "${e}"`}}function f(e){return e===`OR`?`OR`:`AND`}function p(e){return Array.isArray(e)}function m(e){if(p(e))return{actions:e,connector:`AND`};if(!e||typeof e!=`object`)throw new l(`Invalid access control request`);let{actions:t,connector:n}=e;return p(t)?{actions:t,connector:f(n)}:{actions:[],connector:f(n)}}function h(e,t){return typeof t==`string`&&e.includes(t)}function g(e,{actions:t,connector:n}){return t.length===0?!1:n===`OR`?t.some(t=>h(e,t)):t.every(t=>h(e,t))}function _(e){return{authorize(t,n=`AND`){let r=!1;for(let[i,a]of Object.entries(t)){let t=e[i];if(!t){if(n===`AND`)return u(i);continue}let o=g(t,m(a));if(o&&(r=!0),o&&n===`OR`)return{success:!0};if(!o&&n===`AND`)return d(i)}return r?{success:!0}:{success:!1,error:`Not authorized`}},statements:e}}function v(e){return{newRole(e){return _(e)},statements:e}}var y=v({user:[`create`,`list`,`set-role`,`ban`,`impersonate`,`impersonate-admins`,`delete`,`set-password`,`set-email`,`get`,`update`],session:[`list`,`revoke`,`delete`]}),b=y.newRole({user:[`create`,`list`,`set-role`,`ban`,`impersonate`,`delete`,`set-password`,`set-email`,`get`,`update`],session:[`list`,`revoke`,`delete`]}),x=y.newRole({user:[],session:[]}),S={admin:b,user:x},ee=e=>{if(e.userId&&e.options?.adminUserIds?.includes(e.userId))return!0;if(!e.permissions)return!1;let t=(e.role||e.options?.defaultRole||`user`).split(`,`),n=e.options?.roles||S;for(let r of t)if(n[r]?.authorize(e.permissions)?.success)return!0;return!1},C=e=>{let t={admin:b,user:x,...e?.roles};return{id:`admin-client`,version:n,$InferServerPlugin:{},getActions:()=>({admin:{checkRolePermission:n=>ee({role:n.role,options:{ac:e?.ac,roles:t},permissions:n.permissions})}}),pathMethods:{"/admin/list-users":`GET`,"/admin/impersonate-user":`POST`,"/admin/stop-impersonating":`POST`},atomListeners:[{matcher:e=>e===`/admin/impersonate-user`||e===`/admin/stop-impersonating`,signal:`$sessionSignal`}],$ERROR_CODES:i}},w=Object.create(null),T=e=>({}),E=new Proxy(w,{get(e,t){return T()[t]??w[t]},has(e,t){return t in T()||t in w},set(e,t,n){let r=T(!0);return r[t]=n,!0},deleteProperty(e,t){if(!t)return!1;let n=T(!0);return delete n[t],!0},ownKeys(){let e=T(!0);return Object.keys(e)}});E.NODE_ENV;function D(e,t){return typeof process<`u`?{}[e]??t:typeof Deno<`u`?Deno.env.get(e)??t:typeof Bun<`u`?Bun.env[e]??t:t}Object.freeze({get BETTER_AUTH_SECRET(){return D(`BETTER_AUTH_SECRET`)},get AUTH_SECRET(){return D(`AUTH_SECRET`)},get BETTER_AUTH_TELEMETRY(){return D(`BETTER_AUTH_TELEMETRY`)},get BETTER_AUTH_TELEMETRY_ID(){return D(`BETTER_AUTH_TELEMETRY_ID`)},get NODE_ENV(){return D(`NODE_ENV`,`development`)},get PACKAGE_VERSION(){return D(`PACKAGE_VERSION`,`0.0.0`)},get BETTER_AUTH_TELEMETRY_ENDPOINT(){return D(`BETTER_AUTH_TELEMETRY_ENDPOINT`,``)}});var te=47;function ne(e){let t=e.length;for(;t>0&&e.charCodeAt(t-1)===te;)t--;return t===e.length?e:e.slice(0,t)}function re(e){try{return(ne(new URL(e).pathname)||`/`)!==`/`}catch{throw new l(`Invalid base URL: ${e}. Please provide a valid base URL.`)}}function ie(e){try{let t=new URL(e);if(t.protocol!==`http:`&&t.protocol!==`https:`)throw new l(`Invalid base URL: ${e}. URL must include 'http://' or 'https://'`)}catch(t){throw t instanceof l?t:new l(`Invalid base URL: ${e}. Please provide a valid base URL.`,{cause:t})}}function O(e,t=`/api/auth`){if(ie(e),re(e))return e;let n=ne(e);return!t||t===`/`?n:(t=t.startsWith(`/`)?t:`/${t}`,`${n}${t}`)}function ae(e,t){return!e||e.trim()===``?!1:t===`proto`?e===`http`||e===`https`:t===`host`?[/\.\./,/\0/,/[\s]/,/^[.]/,/[<>'"]/,/javascript:/i,/file:/i,/data:/i].some(t=>t.test(e))?!1:/^[a-zA-Z0-9]([a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?(\.[a-zA-Z0-9]([a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?)*(:[0-9]{1,5})?$/.test(e)||/^(\d{1,3}\.){3}\d{1,3}(:[0-9]{1,5})?$/.test(e)||/^\[[0-9a-fA-F:]+\](:[0-9]{1,5})?$/.test(e)||/^localhost(:[0-9]{1,5})?$/i.test(e):!1}function oe(e,t,n,r,i){if(e)return O(e,t);if(r!==!1){let e=E.BETTER_AUTH_URL||E.NEXT_PUBLIC_BETTER_AUTH_URL||E.PUBLIC_BETTER_AUTH_URL||E.NUXT_PUBLIC_BETTER_AUTH_URL||E.NUXT_PUBLIC_AUTH_URL||(E.BASE_URL===`/`?void 0:E.BASE_URL);if(e)return O(e,t)}let a=n?.headers.get(`x-forwarded-host`),o=n?.headers.get(`x-forwarded-proto`);if(a&&o&&i&&ae(o,`proto`)&&ae(a,`host`))try{return O(`${o}://${a}`,t)}catch{}if(n){let e=se(n.url);if(!e)throw new l(`Could not get origin from request. Please provide a valid base URL.`);return O(e,t)}if(typeof window<`u`&&window.location)return O(window.location.origin,t)}function se(e){try{let t=new URL(e);return t.origin===`null`?null:t.origin}catch{return null}}var ce=[`javascript:`,`data:`,`vbscript:`];function le(e){let t;try{t=new URL(e)}catch{return!0}return!ce.includes(t.protocol)}var ue=r({YOU_ARE_NOT_ALLOWED_TO_CREATE_A_NEW_ORGANIZATION:`You are not allowed to create a new organization`,YOU_HAVE_REACHED_THE_MAXIMUM_NUMBER_OF_ORGANIZATIONS:`You have reached the maximum number of organizations`,ORGANIZATION_ALREADY_EXISTS:`Organization already exists`,ORGANIZATION_SLUG_ALREADY_TAKEN:`Organization slug already taken`,ORGANIZATION_NOT_FOUND:`Organization not found`,USER_IS_NOT_A_MEMBER_OF_THE_ORGANIZATION:`User is not a member of the organization`,YOU_ARE_NOT_ALLOWED_TO_UPDATE_THIS_ORGANIZATION:`You are not allowed to update this organization`,YOU_ARE_NOT_ALLOWED_TO_DELETE_THIS_ORGANIZATION:`You are not allowed to delete this organization`,NO_ACTIVE_ORGANIZATION:`No active organization`,USER_IS_ALREADY_A_MEMBER_OF_THIS_ORGANIZATION:`User is already a member of this organization`,MEMBER_NOT_FOUND:`Member not found`,ROLE_NOT_FOUND:`Role not found`,YOU_ARE_NOT_ALLOWED_TO_CREATE_A_NEW_TEAM:`You are not allowed to create a new team`,TEAM_ALREADY_EXISTS:`Team already exists`,TEAM_NOT_FOUND:`Team not found`,YOU_CANNOT_LEAVE_THE_ORGANIZATION_AS_THE_ONLY_OWNER:`You cannot leave the organization as the only owner`,YOU_CANNOT_LEAVE_THE_ORGANIZATION_WITHOUT_AN_OWNER:`You cannot leave the organization without an owner`,YOU_ARE_NOT_ALLOWED_TO_DELETE_THIS_MEMBER:`You are not allowed to delete this member`,YOU_ARE_NOT_ALLOWED_TO_INVITE_USERS_TO_THIS_ORGANIZATION:`You are not allowed to invite users to this organization`,USER_IS_ALREADY_INVITED_TO_THIS_ORGANIZATION:`User is already invited to this organization`,INVITATION_NOT_FOUND:`Invitation not found`,YOU_ARE_NOT_THE_RECIPIENT_OF_THE_INVITATION:`You are not the recipient of the invitation`,EMAIL_VERIFICATION_REQUIRED_BEFORE_ACCEPTING_OR_REJECTING_INVITATION:`Email verification required before accepting or rejecting invitation`,EMAIL_VERIFICATION_REQUIRED_FOR_INVITATION:`Email verification required to view or list invitations for the session email`,YOU_ARE_NOT_ALLOWED_TO_CANCEL_THIS_INVITATION:`You are not allowed to cancel this invitation`,INVITER_IS_NO_LONGER_A_MEMBER_OF_THE_ORGANIZATION:`Inviter is no longer a member of the organization`,YOU_ARE_NOT_ALLOWED_TO_INVITE_USER_WITH_THIS_ROLE:`You are not allowed to invite a user with this role`,FAILED_TO_RETRIEVE_INVITATION:`Failed to retrieve invitation`,YOU_HAVE_REACHED_THE_MAXIMUM_NUMBER_OF_TEAMS:`You have reached the maximum number of teams`,UNABLE_TO_REMOVE_LAST_TEAM:`Unable to remove last team`,YOU_ARE_NOT_ALLOWED_TO_UPDATE_THIS_MEMBER:`You are not allowed to update this member`,ORGANIZATION_MEMBERSHIP_LIMIT_REACHED:`Organization membership limit reached`,YOU_ARE_NOT_ALLOWED_TO_CREATE_TEAMS_IN_THIS_ORGANIZATION:`You are not allowed to create teams in this organization`,YOU_ARE_NOT_ALLOWED_TO_DELETE_TEAMS_IN_THIS_ORGANIZATION:`You are not allowed to delete teams in this organization`,YOU_ARE_NOT_ALLOWED_TO_UPDATE_THIS_TEAM:`You are not allowed to update this team`,YOU_ARE_NOT_ALLOWED_TO_DELETE_THIS_TEAM:`You are not allowed to delete this team`,INVITATION_LIMIT_REACHED:`Invitation limit reached`,TEAM_MEMBER_LIMIT_REACHED:`Team member limit reached`,USER_IS_NOT_A_MEMBER_OF_THE_TEAM:`User is not a member of the team`,YOU_CAN_NOT_ACCESS_THE_MEMBERS_OF_THIS_TEAM:`You are not allowed to list the members of this team`,YOU_DO_NOT_HAVE_AN_ACTIVE_TEAM:`You do not have an active team`,YOU_ARE_NOT_ALLOWED_TO_CREATE_A_NEW_TEAM_MEMBER:`You are not allowed to create a new member`,YOU_ARE_NOT_ALLOWED_TO_REMOVE_A_TEAM_MEMBER:`You are not allowed to remove a team member`,YOU_ARE_NOT_ALLOWED_TO_ACCESS_THIS_ORGANIZATION:`You are not allowed to access this organization as an owner`,YOU_ARE_NOT_A_MEMBER_OF_THIS_ORGANIZATION:`You are not a member of this organization`,MISSING_AC_INSTANCE:`Dynamic Access Control requires a pre-defined ac instance on the server auth plugin. Read server logs for more information`,YOU_MUST_BE_IN_AN_ORGANIZATION_TO_CREATE_A_ROLE:`You must be in an organization to create a role`,YOU_ARE_NOT_ALLOWED_TO_CREATE_A_ROLE:`You are not allowed to create a role`,YOU_ARE_NOT_ALLOWED_TO_UPDATE_A_ROLE:`You are not allowed to update a role`,YOU_ARE_NOT_ALLOWED_TO_DELETE_A_ROLE:`You are not allowed to delete a role`,YOU_ARE_NOT_ALLOWED_TO_READ_A_ROLE:`You are not allowed to read a role`,YOU_ARE_NOT_ALLOWED_TO_LIST_A_ROLE:`You are not allowed to list a role`,YOU_ARE_NOT_ALLOWED_TO_GET_A_ROLE:`You are not allowed to get a role`,TOO_MANY_ROLES:`This organization has too many roles`,INVALID_RESOURCE:`The provided permission includes an invalid resource`,ROLE_NAME_IS_ALREADY_TAKEN:`That role name is already taken`,CANNOT_DELETE_A_PRE_DEFINED_ROLE:`Cannot delete a pre-defined role`,ROLE_IS_ASSIGNED_TO_MEMBERS:`Cannot delete a role that is assigned to members. Please reassign the members to a different role first`,INVALID_TEAM_ID:`Team id contains a reserved character`}),k=[],A=0,de=null,j=4,fe=globalThis.nanostoresGlobal||={epoch:0},pe=()=>{let e,t;for(;A<k.length;){t=A,A+=j;let n=de?.get(k[t]);if(n){if(!n.has(k[t+1]))continue;n.clear()}try{k[t](k[t+1].value,k[t+2],k[t+3])}catch(t){e=t}}if(k.length=A=0,e)throw e},M=e=>{let t=[],n={eq:Object.is,get(){return n.lc||n.listen(()=>{})(),n.value},init:e,lc:0,listen(e){return n.lc=t.push(e),()=>{de?.get(e)?.delete(n);for(let t=A;t<k.length;)k[t]===e&&k[t+1]===n?k.splice(t,j):t+=j;let r=t.indexOf(e);~r&&(t.splice(r,1),--n.lc||n.off())}},notify(e,r){fe.epoch++;let i=!k.length&&!0;for(let i of t)k.push(i,n,e,r);i&&pe()},off(){},set(e){let t=n.value;n.eq(t,e)||(n.value=e,n.notify(t))},subscribe(e){let t=n.listen(e);return e(n.value),t},value:e};return n},me=2,he=5,N=6,P=10,ge=(e,t,n,r)=>(e.events=e.events||{},e.events[n+P]||(e.events[n+P]=r(t=>{e.events[n].reduceRight((e,t)=>(t(e),e),{shared:{},...t})})),e.events[n]=e.events[n]||[],e.events[n].push(t),()=>{let r=e.events[n],i=r.indexOf(t);~i&&(r.splice(i,1),r.length||(e.events[n+P](),delete e.events[n+P]))}),_e=(e,t)=>ge(e,t,me,t=>{let n=e.set,r=e.setKey;return e.setKey&&=(n,i)=>{let a;if(t({abort:()=>{a=!0},changed:n,newValue:{...e.value,[n]:i}}),!a)return r(n,i)},e.set=e=>{let r;if(t({abort:()=>{r=!0},newValue:e}),!r)return n(e)},()=>{e.set=n,e.setKey=r}}),ve=1e3,F=(e,t)=>ge(e,n=>{let r=t(n);r&&e.events[N].push(r)},he,t=>{let n=e.listen;e.listen=(...r)=>(!e.lc&&!e.active&&(e.active=!0,t()),n(...r));let r=e.off;return e.events[N]=[],e.off=()=>{r(),setTimeout(()=>{if(e.active&&!e.lc){e.active=!1;for(let t of e.events[N])t();e.events[N]=[]}},ve)},()=>{e.listen=n,e.off=r}});function ye(e,t){let n=xe(t),r=e;for(let e of n){if(r==null)return;r=r[e]}return r}var be=/(.*)\[(\d+)\]/;function xe(e){return e.split(`.`).flatMap(e=>Se(e))}function Se(e){if(be.test(e)){let[,t,n]=e.match(be);return[...Se(t),n]}return[e]}function Ce(e,t,n){let r=new Set(t);return e.listen((i,a,o)=>{let s=e=>!Object.is(ye(i,e),ye(a,e));(o===void 0?t.some(t=>a===void 0||(e.eqKey?!e.eqKey(a[t],i[t],t):s(t))):r.has(o)||typeof o==`string`&&(r.has(o.split(/\.|\[/)[0])||!e.eqKey&&a!==void 0&&t.some(s)))&&n(i,a,o)})}function we(e){if(typeof e!=`object`||!e)return!1;let t=Object.getPrototypeOf(e);return t===Object.prototype||t===null}function I(e,t){if(e===t)return!0;if(Array.isArray(e)&&Array.isArray(t)){if(e.length!==t.length)return!1;for(let n=0;n<e.length;n++)if(!I(e[n],t[n]))return!1;return!0}if(we(e)&&we(t)){let n=Object.keys(e),r=Object.keys(t);if(n.length!==r.length)return!1;for(let r of n)if(!(r in t)||!I(e[r],t[r]))return!1;return!0}return!1}function Te(e,t){return _e(e,({newValue:n,abort:r})=>{t(e.value,n)&&r()})}var L=Symbol.for(`better-auth:auth-query`);function Ee(e){return L in e&&e[L]===!0}function De(e){let t=M(e);return Object.defineProperty(t,L,{value:!0}),t}var Oe=()=>typeof window>`u`;function ke(e,t){return I(e.data,t.data)&&e.error===t.error&&e.isPending===t.isPending&&e.isRefetching===t.isRefetching&&e.refetch===t.refetch}var R=(e,t,n,r)=>{let i=De({data:null,error:null,isPending:!0,isRefetching:!1,refetch:e=>o(e)});F(i,()=>Te(i,ke));let a=0,o=async e=>{let o=++a;return new Promise(s=>{let c=typeof r==`function`?r({data:i.get().data,error:i.get().error,isPending:i.get().isPending}):r;n(t,{...c,query:{...c?.query,...e?.query},async onSuccess(e){if(o===a){let t=i.get(),n=t.data!=null&&e.data!=null&&I(t.data,e.data)?t.data:e.data;i.set({data:n,error:null,isPending:!1,isRefetching:!1,refetch:i.value.refetch})}await c?.onSuccess?.(e)},async onError(e){let{request:t}=e,n=typeof t.retry==`number`?t.retry:t.retry?.attempts,r=t.retryAttempt||0;if(!(n&&r<n)){if(o===a){let t=e.error.status===401;i.set({error:e.error,data:t?null:i.get().data,isPending:!1,isRefetching:!1,refetch:i.value.refetch})}await c?.onError?.(e)}},async onRequest(e){if(o===a){let e=i.get();i.set({isPending:e.data===null,data:e.data,error:null,isRefetching:!0,refetch:i.value.refetch})}await c?.onRequest?.(e)}}).catch(e=>{o===a&&i.set({error:e,data:i.get().data,isPending:!1,isRefetching:!1,refetch:i.value.refetch})}).finally(()=>{s(void 0)})})};e=Array.isArray(e)?e:[e];let s=!1,c=!1,l=!1,u=()=>{if(s){l=!0;return}s=!0,o().finally(()=>{s=!1;let e=l&&c;l=!1,e&&u()})};return F(i,()=>{if(Oe())return;c=!0;let t=!1,n,r=e.map(e=>e.listen(()=>{t?o():(t=!0,clearTimeout(n),u())}));return n=setTimeout(()=>{t=!0,u()},0),()=>{c=!1;for(let e of r)e();clearTimeout(n)}}),i},Ae={proto:/"(?:_|\\u0{2}5[Ff]){2}(?:p|\\u0{2}70)(?:r|\\u0{2}72)(?:o|\\u0{2}6[Ff])(?:t|\\u0{2}74)(?:o|\\u0{2}6[Ff])(?:_|\\u0{2}5[Ff]){2}"\s*:/,constructor:/"(?:c|\\u0063)(?:o|\\u006[Ff])(?:n|\\u006[Ee])(?:s|\\u0073)(?:t|\\u0074)(?:r|\\u0072)(?:u|\\u0075)(?:c|\\u0063)(?:t|\\u0074)(?:o|\\u006[Ff])(?:r|\\u0072)"\s*:/,protoShort:/"__proto__"\s*:/,constructorShort:/"constructor"\s*:/},je=/^\s*["[{]|^\s*-?\d{1,16}(\.\d{1,17})?([Ee][+-]?\d+)?\s*$/,Me={true:!0,false:!1,null:null,undefined:void 0,nan:NaN,infinity:1/0,"-infinity":-1/0},Ne=/^(\d{4})-(\d{2})-(\d{2})T(\d{2}):(\d{2}):(\d{2})(?:\.(\d{1,7}))?(?:Z|([+-])(\d{2}):(\d{2}))$/;function Pe(e){return e instanceof Date&&!isNaN(e.getTime())}function Fe(e){let t=Ne.exec(e);if(!t)return null;let[,n,r,i,a,o,s,c,l,u,d]=t,f=new Date(Date.UTC(parseInt(n,10),parseInt(r,10)-1,parseInt(i,10),parseInt(a,10),parseInt(o,10),parseInt(s,10),c?parseInt(c.padEnd(3,`0`),10):0));if(l){let e=(parseInt(u,10)*60+parseInt(d,10))*(l===`+`?-1:1);f.setUTCMinutes(f.getUTCMinutes()+e)}return Pe(f)?f:null}function Ie(e,t={}){let{strict:n=!1,warnings:r=!1,reviver:i,parseDates:a=!0}=t;if(typeof e!=`string`)return e;let o=e.trim(),s=o.toLowerCase();if(s.length<=9&&s in Me)return Me[s];if(!je.test(o)){if(n)throw SyntaxError(`[better-json] Invalid JSON`);return e}if(Object.entries(Ae).some(([e,t])=>{let n=t.test(o);return n&&r&&console.warn(`[better-json] Detected potential prototype pollution attempt using ${e} pattern`),n})&&n)throw Error(`[better-json] Potential prototype pollution attempt detected`);try{return JSON.parse(o,(e,t)=>{if(e===`__proto__`||e===`constructor`&&t&&typeof t==`object`&&`prototype`in t){r&&console.warn(`[better-json] Dropping "${e}" key to prevent prototype pollution`);return}if(a&&typeof t==`string`){let e=Fe(t);if(e)return e}return i?i(e,t):t})}catch(t){if(n)throw t;return e}}function Le(e,t={strict:!0}){return Ie(e,t)}var Re={id:`redirect`,name:`Redirect`,hooks:{onSuccess(e){if(e.data?.url&&e.data?.redirect&&le(e.data.url)&&typeof window<`u`&&window.location&&window.location)try{window.location.href=e.data.url}catch{}}}},z=Symbol.for(`better-auth:broadcast-channel`),ze=()=>Math.floor(Date.now()/1e3),Be=class{listeners=new Set;name;constructor(e=`better-auth.message`){this.name=e}subscribe(e){return this.listeners.add(e),()=>{this.listeners.delete(e)}}post(e){if(typeof window<`u`)try{localStorage.setItem(this.name,JSON.stringify({...e,timestamp:ze()}))}catch{}}setup(){if(typeof window>`u`||window.addEventListener===void 0)return()=>{};let e=e=>{if(e.key!==this.name)return;let t=JSON.parse(e.newValue??`{}`);t?.event===`session`&&t?.data&&this.listeners.forEach(e=>e(t))};return window.addEventListener(`storage`,e),()=>{window.removeEventListener(`storage`,e)}}};function B(e=`better-auth.message`){return globalThis[z]||(globalThis[z]=new Be(e)),globalThis[z]}var V=Symbol.for(`better-auth:focus-manager`),Ve=class{listeners=new Set;subscribe(e){return this.listeners.add(e),()=>{this.listeners.delete(e)}}setFocused(e){this.listeners.forEach(t=>t(e))}setup(){if(typeof window>`u`||typeof document>`u`||window.addEventListener===void 0)return()=>{};let e=()=>{document.visibilityState===`visible`&&this.setFocused(!0)};return document.addEventListener(`visibilitychange`,e,!1),()=>{document.removeEventListener(`visibilitychange`,e,!1)}}};function He(){return globalThis[V]||(globalThis[V]=new Ve),globalThis[V]}var H=Symbol.for(`better-auth:online-manager`),Ue=class{listeners=new Set;isOnline=typeof navigator<`u`?navigator.onLine:!0;subscribe(e){return this.listeners.add(e),()=>{this.listeners.delete(e)}}setOnline(e){this.isOnline=e,this.listeners.forEach(t=>t(e))}setup(){if(typeof window>`u`||window.addEventListener===void 0)return()=>{};let e=()=>this.setOnline(!0),t=()=>this.setOnline(!1);return window.addEventListener(`online`,e,!1),window.addEventListener(`offline`,t,!1),()=>{window.removeEventListener(`online`,e,!1),window.removeEventListener(`offline`,t,!1)}}};function U(){return globalThis[H]||(globalThis[H]=new Ue),globalThis[H]}var W=()=>Math.floor(Date.now()/1e3),We=5;function Ge(e){let{fetchSession:t,shouldPollSession:n=()=>!0,sessionSignal:r,options:i={}}=e,a=i.sessionOptions?.refetchInterval??0,o=i.sessionOptions?.refetchOnWindowFocus??!0,s=i.sessionOptions?.refetchWhenOffline??!1,c={isInitialized:!1,lastSessionRequest:0},l=()=>s||U().isOnline,u=e=>{if(l()){if(e?.event===`storage`){t();return}if(e?.event===`poll`){c.lastSessionRequest=W(),t();return}if(e?.event===`visibilitychange`){if(W()-c.lastSessionRequest<We)return;c.lastSessionRequest=W(),t();return}t()}},d=e=>{B().post({event:`session`,data:{trigger:e},clientId:Math.random().toString(36).substring(7)})},f=()=>{a&&a>0&&(c.pollInterval=setInterval(()=>{n()&&u({event:`poll`})},a*1e3))},p=()=>{c.unsubscribeBroadcast=B().subscribe(()=>{u({event:`storage`})})},m=()=>{o&&(c.unsubscribeFocus=He().subscribe(()=>{u({event:`visibilitychange`})}))},h=()=>{c.unsubscribeOnline=U().subscribe(e=>{e&&u({event:`visibilitychange`})})},g=()=>{c.unsubscribeSignal=r.listen(()=>{t()})};return{init:()=>{c.isInitialized||(c.isInitialized=!0,f(),p(),m(),h(),g(),c.cleanupBroadcastSetup=B().setup(),c.cleanupFocusSetup=He().setup(),c.cleanupOnlineSetup=U().setup())},cleanup:()=>{c.isInitialized&&(c.pollInterval&&=(clearInterval(c.pollInterval),void 0),c.unsubscribeBroadcast&&=(c.unsubscribeBroadcast(),void 0),c.unsubscribeFocus&&=(c.unsubscribeFocus(),void 0),c.unsubscribeOnline&&=(c.unsubscribeOnline(),void 0),c.unsubscribeSignal&&=(c.unsubscribeSignal(),void 0),c.cleanupBroadcastSetup&&=(c.cleanupBroadcastSetup(),void 0),c.cleanupFocusSetup&&=(c.cleanupFocusSetup(),void 0),c.cleanupOnlineSetup&&=(c.cleanupOnlineSetup(),void 0),c.isInitialized=!1,c.lastSessionRequest=0)},triggerRefetch:u,broadcastSessionUpdate:d}}var Ke=()=>typeof window>`u`,qe=ve;function Je(e,t){if(typeof window>`u`)return;let n=e.get();n.data===null&&t!==null&&e.set({...n,data:t,error:null,isPending:!1})}function Ye(e){return typeof e==`object`&&e&&`data`in e&&`error`in e?e:{data:e,error:null}}function Xe(e){return!e||e.session===null&&e.user===null?null:e}function Ze(e,t){return I(e.data,t.data)&&e.error===t.error&&e.isPending===t.isPending&&e.isRefetching===t.isRefetching&&e.refetch===t.refetch}function Qe(e,t){let n=M(!1),r,i=0,a=0;n.listen(()=>{a++,i=0});let o=e=>u(e),s=De({data:null,error:null,isPending:!0,isRefetching:!1,refetch:o});Te(s,Ze);let c=async(t,n)=>{let r=s.value;if(s.set({...r,isPending:r.data===null,isRefetching:!0,error:null,refetch:o}),t.aborted)return`aborted`;try{let r=await e(`/get-session`,{method:`GET`,query:n?.query,signal:t});if(t.aborted)return`aborted`;let{data:i,error:a}=Ye(r),c=`fresh`;if(i?.needsRefresh)try{let n=await e(`/get-session`,{method:`POST`,signal:t});if(t.aborted)return`aborted`;({data:i,error:a}=Ye(n))}catch{if(t.aborted)return`aborted`;c=`stale`}if(a){let e=s.value,t=a?.status===401;return s.set({data:t?null:e.data,error:a,isPending:!1,isRefetching:!1,refetch:o}),`failed`}let l=Xe(i),u=s.value,d=u.data!=null&&l!=null&&I(u.data,l)?u.data:l;return s.set({data:d,error:null,isPending:!1,isRefetching:!1,refetch:o}),c}catch(e){if(t.aborted)return`aborted`;let n=s.value;return s.set({data:n.data,error:e,isPending:!1,isRefetching:!1,refetch:o}),`failed`}},l=()=>{let e=s.value.data?.session?.expiresAt,t=e instanceof Date?e.getTime():1/0;return Math.min(Date.now()+qe,t)},u=e=>{i=0,r?.cancel();let t=new AbortController,n={cancel:()=>t.abort(),promise:Promise.resolve().then(()=>t.signal.aborted?`aborted`:c(t.signal,e)),revision:a};r=n;let o=e=>{r===n&&(r=void 0,e===`fresh`&&n.revision===a&&(i=l()))};return n.promise.then(o,()=>o(`failed`)),n.promise.then(()=>void 0)},d=()=>r?.revision===a?r.promise.then(()=>void 0):Date.now()<i?Promise.resolve():u(),f=()=>{};return F(s,()=>{let e;Ke()||(e=setTimeout(()=>{d()},0));let r=Ge({fetchSession:u,shouldPollSession:()=>s.value.data!=null,sessionSignal:n,options:t});return r.init(),f=r.broadcastSessionUpdate,()=>{e&&clearTimeout(e),r.cleanup()}}),{session:s,$sessionSignal:n,broadcastSessionUpdate:e=>f(e)}}function G(e){if(typeof e!=`object`||!e)return!1;let t=Object.getPrototypeOf(e);return t!==null&&t!==Object.prototype&&Object.getPrototypeOf(t)!==null||Symbol.iterator in e?!1:Symbol.toStringTag in e?Object.prototype.toString.call(e)===`[object Module]`:!0}function K(e,t,n=`.`,r){if(!G(t))return K(e,{},n,r);let i={...t};for(let t of Object.keys(e)){if(t===`__proto__`||t===`constructor`)continue;let a=e[t];a!=null&&(r&&r(i,t,a,n)||(i[t]=Array.isArray(a)&&Array.isArray(i[t])?[...a,...i[t]]:G(a)&&G(i[t])?K(a,i[t],(n?`${n}.`:``)+t.toString(),r):a))}return i}function $e(e){return(...t)=>t.reduce((t,n)=>K(t,n,``,e),{})}var et=$e(),tt=class extends Error{constructor(e,t,n){super(t||e.toString(),{cause:n}),this.status=e,this.statusText=t,this.error=n,Error.captureStackTrace(this,this.constructor)}},nt=async(e,t)=>{let n=t||{},r={onRequest:[t?.onRequest],onResponse:[t?.onResponse],onSuccess:[t?.onSuccess],onError:[t?.onError],onRetry:[t?.onRetry]};if(!t||!t?.plugins)return{url:e,options:n,hooks:r};for(let i of t?.plugins||[]){if(i.init){let t=await i.init?.call(i,e.toString(),n);n=t.options||n,e=t.url}r.onRequest.push(i.hooks?.onRequest),r.onResponse.push(i.hooks?.onResponse),r.onSuccess.push(i.hooks?.onSuccess),r.onError.push(i.hooks?.onError),r.onRetry.push(i.hooks?.onRetry)}return{url:e,options:n,hooks:r}},rt=class{constructor(e){this.options=e}shouldAttemptRetry(e,t){return this.options.shouldRetry?Promise.resolve(e<this.options.attempts&&this.options.shouldRetry(t)):Promise.resolve(e<this.options.attempts)}getDelay(){return this.options.delay}},it=class{constructor(e){this.options=e}shouldAttemptRetry(e,t){return this.options.shouldRetry?Promise.resolve(e<this.options.attempts&&this.options.shouldRetry(t)):Promise.resolve(e<this.options.attempts)}getDelay(e){return Math.min(this.options.maxDelay,this.options.baseDelay*2**e)}};function at(e){if(typeof e==`number`)return new rt({type:`linear`,attempts:e,delay:1e3});switch(e.type){case`linear`:return new rt(e);case`exponential`:return new it(e);default:throw Error(`Invalid retry strategy`)}}var ot=[`get`,`post`,`put`,`patch`,`delete`];function q(e){if(!e.startsWith(`@`))return{method:void 0,path:e};let t=e.indexOf(`/`),n=e.slice(1,t===-1?void 0:t);return ot.includes(n)?{method:n,path:t===-1?e:e.slice(t+1)}:{method:void 0,path:e}}var st=e=>e===`.`||e===`..`,ct=e=>e.split(`:`).map(e=>encodeURIComponent(e)).join(`:`);function lt(e,t){let n=t.get(e);if(n===void 0)return ct(e);if(st(n))throw TypeError(`Path parameters cannot be reserved path segments`);return encodeURIComponent(n)}function ut(e,t){let{baseURL:n,params:r,query:i}=t||{query:{},params:{},baseURL:``},a=e.startsWith(`http`)?e.split(`/`).slice(0,3).join(`/`):n||``,{path:o}=q(e);o!==e&&(e=`/${o}`),a.endsWith(`/`)||(a+=`/`);let[s,c]=e.replace(a,``).split(`?`),l=new URLSearchParams(c);for(let[e,t]of Object.entries(i||{})){if(t==null)continue;let n;if(typeof t==`string`)n=t;else if(Array.isArray(t)){for(let n of t)l.append(e,n);continue}else n=JSON.stringify(t);l.set(e,n)}let u=new Map;if(r){if(Array.isArray(r)){let e=s.split(`/`).filter(e=>e.startsWith(`:`));for(let[t,n]of e.entries()){let e=r[t];u.set(n,String(e))}}else for(let[e,t]of Object.entries(r))u.set(`:${e}`,String(t))}s=s.split(`/`).map(e=>lt(e,u)).join(`/`),s=s.replace(/^\/+/,``);let d=l.toString();return d=d.length>0?`?${d}`.replace(/\+/g,`%20`):``,a.startsWith(`http`)?new URL(`${s}${d}`,a):`${a}${s}${d}`}var dt=async e=>{let t={},n=async e=>typeof e==`function`?await e():e;if(e?.auth){if(e.auth.type===`Bearer`){let r=await n(e.auth.token);if(!r)return t;t.authorization=`Bearer ${r}`}else if(e.auth.type===`Basic`){let[r,i]=await Promise.all([n(e.auth.username),n(e.auth.password)]);if(!r||!i)return t;t.authorization=`Basic ${btoa(`${r}:${i}`)}`}else if(e.auth.type===`Custom`){let[r,i]=await Promise.all([n(e.auth.prefix),n(e.auth.value)]);if(!i)return t;t.authorization=`${r??``} ${i}`}}return t},ft=/^application\/(?:[\w!#$%&*.^`~-]*\+)?json(;.+)?$/i;function pt(e){let t=e.headers.get(`content-type`),n=new Set([`image/svg`,`application/xml`,`application/xhtml`,`application/html`]);if(!t)return`json`;let r=t.split(`;`).shift()||``;return ft.test(r)?`json`:n.has(r)||r.startsWith(`text/`)?`text`:`blob`}function mt(e){try{return JSON.parse(e),!0}catch{return!1}}function ht(e){if(e===void 0)return!1;let t=typeof e;return t===`string`||t===`number`||t===`boolean`||t===null?!0:t===`object`?Array.isArray(e)?!0:e.buffer?!1:e.constructor&&e.constructor.name===`Object`||typeof e.toJSON==`function`:!1}function gt(e){try{return JSON.parse(e)}catch{return e}}function _t(e){return typeof e==`function`}function vt(e){if(e?.customFetchImpl)return e.customFetchImpl;if(typeof globalThis<`u`&&_t(globalThis.fetch))return globalThis.fetch;if(typeof window<`u`&&_t(window.fetch))return window.fetch;throw Error(`No fetch implementation found`)}function yt(...e){let t={};for(let n of e)if(n){if(n instanceof Headers)n.forEach((e,n)=>{t[n]=e});else{let e=Array.isArray(n)?n:Object.entries(n);for(let[n,r]of e)r!=null&&(t[n]=r)}}return t}async function bt(e){let t=new Headers(yt(e?.headers,await dt(e)));if(!t.has(`content-type`)){let n=xt(e?.body);n&&t.set(`content-type`,n)}return t}function xt(e){return ht(e)?`application/json`:null}function St(e){let t=e.get(`content-type`);return t?t.split(`;`)[0].trim().toLowerCase():null}function Ct(e,t){let{body:n}=e;return n?!ht(n)||typeof n==`string`?n:St(t)===`application/x-www-form-urlencoded`?new URLSearchParams(n).toString():JSON.stringify(n):null}function wt(e,t){if(t?.method)return t.method.toUpperCase();let{method:n}=q(e);return n?n.toUpperCase():t?.body?`POST`:`GET`}function Tt(e,t){let n;return!e?.signal&&e?.timeout&&(n=setTimeout(()=>t?.abort(),e?.timeout)),{abortTimeout:n,clearTimeout:()=>{n&&clearTimeout(n)}}}var Et=class e extends Error{constructor(t,n){super(n||JSON.stringify(t,null,2)),this.issues=t,Object.setPrototypeOf(this,e.prototype)}};async function J(e,t){let n=await e[`~standard`].validate(t);if(n.issues)throw new Et(n.issues);return n.value}function Y(e){"@babel/helpers - typeof";return Y=typeof Symbol==`function`&&typeof Symbol.iterator==`symbol`?function(e){return typeof e}:function(e){return e&&typeof Symbol==`function`&&e.constructor===Symbol&&e!==Symbol.prototype?`symbol`:typeof e},Y(e)}function Dt(e,t){if(Y(e)!=`object`||!e)return e;var n=e[Symbol.toPrimitive];if(n!==void 0){var r=n.call(e,t||`default`);if(Y(r)!=`object`)return r;throw TypeError(`@@toPrimitive must return a primitive value.`)}return(t===`string`?String:Number)(e)}function Ot(e){var t=Dt(e,`string`);return Y(t)==`symbol`?t:t+``}function kt(e,t,n){return(t=Ot(t))in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function At(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter(function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable})),n.push.apply(n,r)}return n}function X(e){for(var t=1;t<arguments.length;t++){var n=arguments[t]==null?{}:arguments[t];t%2?At(Object(n),!0).forEach(function(t){kt(e,t,n[t])}):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):At(Object(n)).forEach(function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))})}return e}var Z=async(e,t)=>{var n;let{hooks:r,url:i,options:a}=await nt(e,t),o=vt(a),s=new AbortController,c=a.signal??s.signal,l=ut(i,a),u=await bt(a),d=Ct(a,u),f=wt(i,a),p=X(X({},a),{},{url:l,headers:u,body:d,method:f,signal:c});for(let e of r.onRequest)if(e){let t=await e(p);typeof t==`object`&&t&&Object.assign(p,t)}(`pipeTo`in p&&typeof p.pipeTo==`function`||typeof(t==null||(n=t.body)==null?void 0:n.pipe)==`function`)&&(`duplex`in p||(p.duplex=`half`));let{clearTimeout:m}=Tt(a,s),h=await o(p.url,p);m();let g={response:h,request:p};for(let e of r.onResponse)if(e){var _;let n=await e(X(X({},g),{},{response:t!=null&&(_=t.hookOptions)!=null&&_.cloneResponse?h.clone():h}));n instanceof Response?h=n:typeof n==`object`&&n&&(h=n.response)}if(h.ok){if(p.method===`HEAD`)return{data:``,error:null};let e=pt(h),n={data:null,response:h,request:p};if(e===`json`||e===`text`){let e=await h.text();n.data=await(p.jsonParser??gt)(e)}else n.data=await h[e]();p?.output&&p.output&&!p.disableValidation&&(n.data=await J(p.output,n.data));for(let e of r.onSuccess)if(e){var v;await e(X(X({},n),{},{response:t!=null&&(v=t.hookOptions)!=null&&v.cloneResponse?h.clone():h}))}return t?.throw?n.data:{data:n.data,error:null}}let y=t?.jsonParser??gt,b=await h.text(),x=mt(b),S=x?await y(b):null,ee={response:h,responseText:b,request:p,error:X(X({},S),{},{status:h.status,statusText:h.statusText})};for(let e of r.onError)if(e){var C;await e(X(X({},ee),{},{response:t!=null&&(C=t.hookOptions)!=null&&C.cloneResponse?h.clone():h}))}if(t?.retry){let n=at(t.retry),i=t.retryAttempt??0;if(await n.shouldAttemptRetry(i,h)){for(let e of r.onRetry)e&&await e(g);let a=n.getDelay(i);return await new Promise(e=>setTimeout(e,a)),await Z(e,X(X({},t),{},{retryAttempt:i+1}))}}if(t?.throw)throw new tt(h.status,h.statusText,x?S:b);return{data:null,error:X(X({},S),{},{status:h.status,statusText:h.statusText})}},jt=e=>({id:`apply-schema`,name:`Apply Schema`,version:`1.0.0`,async init(t,n){var r;let i=X(X({},n),e.query!==void 0&&{query:X(X({},e.query),n?.query)}),a=((r=e.plugins)==null||(r=r.find(e=>e.schema?.config?t.startsWith(e.schema.config.baseURL||``)||t.startsWith(e.schema.config.prefix||``):!1))==null?void 0:r.schema)||e.schema;if(a){let r=t;a.config?.prefix&&r.startsWith(a.config.prefix)&&(r=r.replace(a.config.prefix,``),a.config.baseURL&&(t=t.replace(a.config.prefix,a.config.baseURL))),a.config?.baseURL&&r.startsWith(a.config.baseURL)&&(r=r.replace(a.config.baseURL,``)),r.startsWith(`/`)&&r.charAt(1)===`@`&&(r=r.substring(1));let o=a.schema[r];if(o){let{method:a,path:s}=q(r);a&&(t=t.slice(0,t.length-r.length)+s);let c=n?.headers;if(o.headers&&!n?.disableValidation){let e={};if(n?.headers){if(n.headers instanceof Headers)n.headers.forEach((t,n)=>{e[n.toLowerCase()]=t});else if(typeof n.headers==`object`)for(let[t,r]of Object.entries(n.headers))r!=null&&(e[t.toLowerCase()]=r)}let t=await J(o.headers,e),r={};for(let[e,n]of Object.entries(t))r[e.toLowerCase()]=n;c=r}let l=o.method??a;if(i=X(X(X(X({},i),l!==void 0&&{method:l}),o.output!==void 0&&{output:o.output}),c!==void 0&&{headers:c}),!n?.disableValidation){if(o.query&&(i.query=await J(o.query,n?.query),i.query!==null&&typeof i.query==`object`)){let t=X({},e.query);for(let e of Object.keys(t))n?.query&&Object.prototype.hasOwnProperty.call(n.query,e)&&(t[e]=n.query[e]);i.query=X(X({},t),i.query)}i=X(X({},i),{},{body:o.input?await J(o.input,n?.body):n?.body,params:o.params?await J(o.params,n?.params):n?.params})}return{url:t,options:i}}}return X({url:t},(n!==void 0||e.query!==void 0)&&{options:i})}}),Mt=e=>{async function t(t,n){let r=X(X(X({},e),n),{},{headers:yt(e?.headers,n?.headers),plugins:[...e?.plugins||[],jt(e||{}),...n?.plugins||[]]});if(e?.catchAllError)try{return await Z(t,r)}catch(e){return{data:null,error:{status:500,statusText:`Fetch Error`,message:`Fetch related error. Captured by catchAllError option. See error property for more details.`,error:e}}}return await Z(t,r)}return t},Nt=e=>{if(typeof process>`u`)return;let t=e??`/api/auth`;if({}.NEXT_PUBLIC_AUTH_URL)return{}.NEXT_PUBLIC_AUTH_URL;if(typeof window>`u`){if({}.NEXTAUTH_URL)try{return{}.NEXTAUTH_URL}catch{}if({}.VERCEL_URL)try{let e={}.VERCEL_URL.startsWith(`http`)?``:`https://`;return`${new URL(`${e}${{}.VERCEL_URL}`).origin}${t}`}catch{}}},Pt=e=>e===`/sign-out`||e===`/update-user`||e===`/update-session`||e===`/sign-up/email`||e===`/sign-in/email`||e===`/delete-user`||e===`/verify-email`||e===`/revoke-sessions`||e===`/revoke-session`||e===`/revoke-other-sessions`||e===`/change-email`||e===`/change-password`,Ft=(e,t)=>{let n=`credentials`in Request.prototype,r=oe(e?.baseURL,e?.basePath,void 0,t)??Nt(e?.basePath)??`/api/auth`,i=e?.plugins?.flatMap(e=>e.fetchPlugins).filter(e=>e!==void 0)||[],a={id:`lifecycle-hooks`,name:`lifecycle-hooks`,hooks:{onSuccess:e?.fetchOptions?.onSuccess,onError:e?.fetchOptions?.onError,onRequest:e?.fetchOptions?.onRequest,onResponse:e?.fetchOptions?.onResponse}},{onSuccess:o,onError:s,onRequest:c,onResponse:l,...u}=e?.fetchOptions||{},d=Mt({baseURL:r,...n?{credentials:`include`}:{},method:`GET`,jsonParser(e){return e?Le(e,{strict:!1}):null},customFetchImpl:fetch,...u,plugins:[a,...u.plugins||[],...e?.disableDefaultFetchPlugins?[]:[Re],...i]}),{$sessionSignal:f,session:p,broadcastSessionUpdate:m}=Qe(d,e),h=!1,g=e=>{h||e===null||(h=!0,Je(p,e))},_=e?.plugins||[],v={},y={$sessionSignal:f,session:p},b={"/sign-out":`POST`,"/revoke-sessions":`POST`,"/revoke-other-sessions":`POST`,"/delete-user":`POST`},x=[{signal:`$sessionSignal`,matcher:Pt,callback(e){e===`/sign-out`?m(`signout`):(e===`/update-user`||e===`/update-session`)&&m(`updateUser`)}}];for(let e of _)e.getAtoms&&Object.assign(y,e.getAtoms?.(d)),e.pathMethods&&Object.assign(b,e.pathMethods),e.atomListeners&&x.push(...e.atomListeners);let S={notify:e=>{y[e].set(!y[e].get())},listen:(e,t)=>{y[e].subscribe(t)},atoms:y};for(let t of _)t.getActions&&(v=et(t.getActions?.(d,S,e)??{},v));return{get baseURL(){return r},pluginsActions:v,pluginsAtoms:y,pluginPathMethods:b,atomListeners:x,hydrateSession:g,$sessionSignal:f,$fetch:d,$store:S}},Q=v({organization:[`update`,`delete`],member:[`create`,`update`,`delete`],invitation:[`create`,`cancel`],team:[`create`,`update`,`delete`],ac:[`create`,`read`,`update`,`delete`]}),It=Q.newRole({organization:[`update`],invitation:[`create`,`cancel`],member:[`create`,`update`,`delete`],team:[`create`,`update`,`delete`],ac:[`create`,`read`,`update`,`delete`]}),Lt=Q.newRole({organization:[`update`,`delete`],member:[`create`,`update`,`delete`],invitation:[`create`,`cancel`],team:[`create`,`update`,`delete`],ac:[`create`,`read`,`update`,`delete`]}),Rt=Q.newRole({organization:[],member:[],invitation:[],team:[],ac:[`read`]}),zt={admin:It,owner:Lt,member:Rt},Bt=(e,t)=>{if(!e.permissions)return!1;let n=e.role.split(`,`),r=e.options.creatorRole||`owner`,i=n.includes(r),a=e.allowCreatorAllPermissions||!1;if(i&&a)return!0;for(let r of n)if(t[r]?.authorize(e.permissions)?.success)return!0;return!1},Vt=e=>Bt(e,e.options.roles||zt),Ht=e=>{let t=M(!1),r=M(!1),i=M(!1),a=M(!1),o={admin:It,member:Rt,owner:Lt,...e?.roles};return{id:`organization`,version:n,$InferServerPlugin:{},getActions:(t,n,r)=>({$Infer:{ActiveOrganization:{},Organization:{},Invitation:{},Member:{},Team:{}},organization:{checkRolePermission:t=>Vt({role:t.role,options:{ac:e?.ac,roles:o},permissions:t.permissions})}}),getAtoms:e=>{let n=R(t,`/organization/list`,e,{method:`GET`});return{$listOrg:t,$activeOrgSignal:r,$activeMemberSignal:i,$activeMemberRoleSignal:a,activeOrganization:R([r],`/organization/get-full-organization`,e,()=>({method:`GET`})),listOrganizations:n,activeMember:R([r,i],`/organization/get-active-member`,e,{method:`GET`}),activeMemberRole:R([r,a],`/organization/get-active-member-role`,e,{method:`GET`})}},pathMethods:{"/organization/get-full-organization":`GET`,"/organization/list-user-teams":`GET`},atomListeners:[{matcher(e){return e===`/organization/create`||e===`/organization/delete`||e===`/organization/update`},signal:`$listOrg`},{matcher(e){return Pt(e)||e.startsWith(`/organization`)},signal:`$activeOrgSignal`},{matcher(e){return e.startsWith(`/organization/set-active`)||e===`/organization/create`||e===`/organization/delete`||e===`/organization/remove-member`||e===`/organization/leave`||e===`/organization/accept-invitation`},signal:`$sessionSignal`},{matcher(e){return e.includes(`/organization/update-member-role`)||e.startsWith(`/organization/set-active`)},signal:`$activeMemberSignal`},{matcher(e){return e.includes(`/organization/update-member-role`)||e.startsWith(`/organization/set-active`)},signal:`$activeMemberRoleSignal`}],$ERROR_CODES:ue}};function Ut(e){return typeof e==`object`&&!!e&&`get`in e&&typeof e.get==`function`&&`lc`in e&&typeof e.lc==`number`}function Wt(e){return e.charAt(0).toUpperCase()+e.slice(1)}var Gt=/[\p{Ll}\d]+|\p{Lu}+(?!\p{Ll})|\p{Lu}[\p{Ll}\d]+|\p{Lo}+/gu,Kt=/['\u2019]/g;function qt(e){return e.replace(Kt,``).match(Gt)??[]}function Jt(e){return qt(e).map(e=>e.toLowerCase()).join(`-`)}function Yt(e,t,n){let r=t[e],{fetchOptions:i,query:a,...o}=n||{};return r||(i?.method?i.method:o&&Object.keys(o).length>0?`POST`:`GET`)}function Xt(e,t,n,r,i){function a(o=[]){return new Proxy(function(){},{get(t,n){if(typeof n!=`string`||n===`then`||n===`catch`||n===`finally`)return;let r=[...o,n],i=e;for(let e of r)if(i&&typeof i==`object`&&e in i)i=i[e];else{i=void 0;break}return typeof i==`function`||Ut(i)?i:a(r)},apply:async(e,a,s)=>{let c=`/`+o.map(Jt).join(`/`),l=s[0]||{},u=s[1]||{},{query:d,fetchOptions:f,...p}=l,m={...u,...f},h=Yt(c,n,l);return await t(c,{...m,body:h===`GET`?void 0:{...p,...m?.body||{}},query:d||m?.query,method:h,async onSuccess(e){if(await m?.onSuccess?.(e),!i||m.disableSignal)return;let t=i.filter(e=>e.matcher(c));if(!t.length)return;let n=new Set;for(let e of t){let t=r[e.signal];if(!t)return;if(n.has(e.signal))continue;n.add(e.signal);let i=t.get();setTimeout(()=>{t.set(!i)},10),e.callback?.(c)}}})}})}return a()}var $=e(t(),1);function Zt(e,t={}){let n=(0,$.useRef)(e.get()),{keys:r,deps:i=[e,r]}=t,a=(0,$.useCallback)(t=>{let i=e=>{n.current!==e&&(n.current=e,t())};return i(e.value),r?.length?Ce(e,r,i):e.listen(i)},i),o=()=>n.current;return(0,$.useSyncExternalStore)(a,o,Ee(e)?()=>e.init:o)}function Qt(e){return`use${Wt(e)}`}function $t(e){let{pluginPathMethods:t,pluginsActions:n,pluginsAtoms:r,hydrateSession:i,$fetch:a,$store:o,atomListeners:s}=Ft(e),c={};for(let[e,t]of Object.entries(r))c[Qt(e)]=()=>Zt(t);return Xt({...n,...c,hydrateSession:i,$fetch:a,$store:o},a,t,r,s)}export{Ht as n,C as r,$t as t};
|
|
4
|
+
//# sourceMappingURL=auth-BXDbnIpO.js.map
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
import{r as e}from"./rolldown-runtime-hePW80VL.js";import{n as t}from"./IconBase.es-BZDpYMnj.js";import{vr as n}from"./useBaseUiId-lg1teubxudgin0w2-CrAc3DRu.js";import{i as r,r as i}from"./react-CDCuUAOg.js";var a=e(r(),1),o=i(),s=`inline-flex w-fit flex-none shrink-0 items-center justify-self-start gap-1 rounded-full px-2 py-0.5 text-xs font-medium whitespace-nowrap [a:hover_&]:ring [a:hover_&]:ring-current`,c={variant:{primary:{classes:`bg-kumo-badge-inverted text-kumo-badge-inverted`,description:`Primary badge`},secondary:{classes:`bg-kumo-fill text-kumo-badge-neutral-subtle`,description:`Secondary badge`},error:{classes:`bg-kumo-danger-tint text-kumo-danger`,description:`Error badge`},warning:{classes:`bg-kumo-warning-tint text-kumo-warning`,description:`Warning badge`},success:{classes:`bg-kumo-success-tint text-kumo-success`,description:`Success badge`},destructive:{classes:`bg-kumo-badge-red text-white`,description:`Deprecated. Use red instead.`},info:{classes:`bg-kumo-info-tint text-kumo-info`,description:`Info badge`},beta:{classes:`border border-dashed border-kumo-brand bg-transparent text-kumo-link`,description:`Indicates beta or experimental features`},outline:{classes:`border border-kumo-fill bg-kumo-base text-kumo-default`,description:`Bordered badge with base background`},red:{classes:`bg-kumo-badge-red text-white`,description:`Red badge`},green:{classes:`bg-kumo-badge-green text-white`,description:`Green badge`},neutral:{classes:`bg-kumo-badge-neutral text-white`,description:`Neutral badge`},orange:{classes:`bg-kumo-badge-orange text-black`,description:`Orange badge`},purple:{classes:`bg-kumo-badge-purple text-white`,description:`Purple badge`},teal:{classes:`bg-kumo-badge-teal text-white`,description:`Teal badge`},"teal-subtle":{classes:`bg-kumo-badge-teal-subtle text-kumo-badge-teal-subtle`,description:`Subtle teal badge`},blue:{classes:`bg-kumo-badge-blue text-white`,description:`Blue badge`}},appearance:{filled:{classes:``,description:`Filled badge with background color (default)`},dot:{classes:`gap-1.5 bg-transparent text-kumo-default ring ring-kumo-hairline`,description:`Outlined badge with a colored circle dot indicating status`}},dotColor:{none:{classes:``,description:`No dot indicator (used when appearance is not dot, or variant has no dot color)`},success:{classes:`bg-kumo-success`,description:`Green dot for success status`},warning:{classes:`bg-kumo-badge-orange`,description:`Orange dot for warning status`},error:{classes:`bg-kumo-badge-red`,description:`Red dot for error status`},neutral:{classes:`bg-kumo-badge-neutral`,description:`Neutral dot for informational status`}}},l={variant:`primary`,appearance:`filled`,dotColor:`none`};function u({variant:e=l.variant,appearance:r=l.appearance}={}){let i=n(c.variant,e,l.variant).classes,a=n(c.appearance,r,l.appearance).classes;return t(s,r===`dot`?``:i,a)}var d=e=>{if(!e)return null;let t=e,n=a.isValidElement(e)?e:(0,o.jsx)(t,{});return(0,o.jsx)(`span`,{className:`flex h-lh w-3 shrink-0 items-center justify-center [&>svg]:size-3`,children:n})};function f({variant:e=l.variant,appearance:r=l.appearance,className:i,icon:a,children:s}){let f=r===`dot`?n(c.dotColor,e,l.dotColor).classes:``;return(0,o.jsxs)(`span`,{className:t(u({variant:e,appearance:r}),a&&`ps-1.5`,i),children:[f?(0,o.jsx)(`span`,{"aria-hidden":`true`,className:t(`size-1.75 shrink-0 rounded-full`,f)}):null,d(a),s]})}export{f as t};
|
|
2
|
+
//# sourceMappingURL=badge-dq8bx752b9dp7dst-D1xrG37q.js.map
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
import{r as e}from"./rolldown-runtime-hePW80VL.js";import{n as t,t as n}from"./IconBase.es-BZDpYMnj.js";import{vr as r}from"./useBaseUiId-lg1teubxudgin0w2-CrAc3DRu.js";import{i,r as a}from"./react-CDCuUAOg.js";import{t as o}from"./button-pa1bq9b85hawg41a-BcGpLLER.js";import{t as s}from"./link-cqyfjezntvr53rh7-CwZJ95XT.js";var c=e(i(),1),l=new Map([[`bold`,c.createElement(c.Fragment,null,c.createElement(`path`,{d:`M128,20A108,108,0,1,0,236,128,108.12,108.12,0,0,0,128,20Zm0,192a84,84,0,1,1,84-84A84.09,84.09,0,0,1,128,212Zm-12-80V80a12,12,0,0,1,24,0v52a12,12,0,0,1-24,0Zm28,40a16,16,0,1,1-16-16A16,16,0,0,1,144,172Z`}))],[`fill`,c.createElement(c.Fragment,null,c.createElement(`path`,{d:`M128,24A104,104,0,1,0,232,128,104.11,104.11,0,0,0,128,24Zm-8,56a8,8,0,0,1,16,0v56a8,8,0,0,1-16,0Zm8,104a12,12,0,1,1,12-12A12,12,0,0,1,128,184Z`}))],[`regular`,c.createElement(c.Fragment,null,c.createElement(`path`,{d:`M128,24A104,104,0,1,0,232,128,104.11,104.11,0,0,0,128,24Zm0,192a88,88,0,1,1,88-88A88.1,88.1,0,0,1,128,216Zm-8-80V80a8,8,0,0,1,16,0v56a8,8,0,0,1-16,0Zm20,36a12,12,0,1,1-12-12A12,12,0,0,1,140,172Z`}))]]),u=c.forwardRef((e,t)=>c.createElement(n,{ref:t,...e,weights:l}));u.displayName=`WarningCircleIcon`;var d=u,f=a(),p=(0,c.createContext)({variant:`default`,size:`sm`}),m={default:{accent:`var(--color-kumo-info)`,secondary:`text-inherit ring-kumo-info/50 fill-kumo-info hover:!text-inherit hover:!ring-kumo-info/50 hover:bg-kumo-info/10`,ghost:`text-inherit fill-kumo-info hover:bg-kumo-info/10`},alert:{accent:`var(--color-kumo-warning)`,secondary:`text-inherit ring-kumo-warning/50 fill-kumo-warning hover:!text-inherit hover:!ring-kumo-warning/50 hover:bg-kumo-warning/10`,ghost:`text-inherit fill-kumo-warning hover:bg-kumo-warning/10`},error:{accent:`var(--color-kumo-danger)`,secondary:`text-inherit ring-kumo-danger/50 fill-kumo-danger hover:!text-inherit hover:!ring-kumo-danger/50 hover:bg-kumo-danger/10`,ghost:`text-inherit fill-kumo-danger hover:bg-kumo-danger/10`},secondary:{accent:`var(--color-neutral-700, oklch(37.1% 0 0))`,secondary:`text-inherit ring-kumo-focus/20 fill-kumo-subtle hover:!text-inherit hover:!ring-kumo-focus/20 hover:bg-kumo-contrast/10`,ghost:`text-inherit fill-kumo-subtle hover:bg-kumo-contrast/10`}};function h(e){return{"--kumo-button-emphasis-ring":`color-mix(in oklch, ${e}, black 10%)`,"--kumo-button-emphasis-bg":`color-mix(in oklch, ${e}, white 30%)`,"--kumo-button-emphasis-gradient-start":`color-mix(in oklch, ${e}, white 15%)`,"--kumo-button-emphasis-gradient-end":e}}var g=(0,c.forwardRef)(function({variant:e=`primary`,className:n,style:r,...i},a){let s=(0,c.useContext)(p),l=m[s.variant];return(0,f.jsx)(o,{ref:a,variant:e===`secondary`?`outline`:e,size:s.size,className:t(e!==`primary`&&l[e],n),style:e===`primary`?{...h(l.accent),...r}:r,...i})});g.displayName=`Banner.Action`;var _=`flex w-full`,v={variant:{default:{classes:`bg-kumo-info-tint text-kumo-info`,iconClasses:`fill-kumo-info`,description:`Informational banner for general messages`},alert:{classes:`bg-kumo-warning-tint text-kumo-warning`,iconClasses:`fill-kumo-warning`,description:`Warning banner for cautionary messages`},error:{classes:`bg-kumo-danger-tint text-kumo-danger`,iconClasses:`fill-kumo-danger`,description:`Error banner for critical issues`},secondary:{classes:`bg-kumo-contrast/5 text-kumo-default/70`,iconClasses:`fill-kumo-interact`,description:`Neutral banner for secondary messages`}},size:{base:{classes:`items-start gap-3 rounded-lg px-4 py-3 text-base`,description:`Default banner size`},sm:{classes:`items-center gap-2 rounded-md px-3 py-2 text-sm`,description:`Compact banner for dialogs and tight spaces`}}},y={variant:`default`,size:`base`},b={base:{row:`gap-3`,icon:`h-[1.375em]`,description:`text-sm`,action:`sm`},sm:{row:`gap-2`,icon:`h-[1.25em]`,description:`text-sm`,action:`xs`}};function x({variant:e=y.variant,size:n=y.size}={}){let i=r(v.variant,e,y.variant),a=r(v.size,n,y.size);return t(_,i.classes,a.classes)}var S=(0,c.forwardRef)(function({icon:e,title:n,description:i,action:a,children:o,text:l,variant:u=y.variant,size:d=y.size,className:m,...h},g){let _=r(v.variant,u,y.variant),S=b[d],C=d===`sm`,w=C&&(0,c.isValidElement)(a)&&a.type===s;if(n||i)return(0,f.jsx)(p.Provider,{value:{variant:u,size:S.action},children:(0,f.jsxs)(`div`,{ref:g,className:t(x({variant:u,size:d}),m),...h,children:[e&&(0,f.jsx)(`span`,{className:t(`flex shrink-0 items-center`,S.icon,_.iconClasses),children:e}),(0,f.jsxs)(`div`,{className:t(`flex min-w-0 flex-1 items-center justify-between`,S.row,!n&&`pt-px`),children:[C?(0,f.jsxs)(`div`,{className:`flex min-w-0 flex-wrap items-baseline gap-x-1.5`,children:[n&&(0,f.jsxs)(`span`,{className:`leading-snug font-medium`,children:[n,!i&&w&&(0,f.jsx)(`span`,{className:`ms-1.5 [&_[data-kumo-component=Link]]:inline`,children:a})]}),i&&(0,f.jsxs)(`span`,{className:t(S.description,`leading-snug`),children:[i,w&&(0,f.jsx)(`span`,{className:`ms-1.5 [&_[data-kumo-component=Link]]:inline`,children:a})]})]}):(0,f.jsxs)(`div`,{className:`flex flex-col gap-0.5`,children:[n&&(0,f.jsx)(`p`,{className:`leading-snug font-medium`,children:n}),i&&(0,f.jsx)(`div`,{className:t(S.description,`leading-snug`),children:(0,c.isValidElement)(i)?i:(0,f.jsx)(`p`,{children:i})})]}),!w&&a!=null&&(0,f.jsx)(`div`,{className:`flex shrink-0 items-center gap-2`,children:a})]})]})});let T=o??l,E=(0,c.isValidElement)(T)?T:(0,f.jsx)(`p`,{children:T});return(0,f.jsx)(p.Provider,{value:{variant:u,size:S.action},children:(0,f.jsxs)(`div`,{ref:g,className:t(x({variant:u,size:d}),m),...h,children:[e&&(0,f.jsx)(`span`,{className:t(`shrink-0`,_.iconClasses),children:e}),E]})})});S.displayName=`Banner`;var C=Object.assign(S,{Action:g});export{d as n,C as t};
|
|
2
|
+
//# sourceMappingURL=banner-msnmqm7of2lck01x-DRzQHuca.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import e from"./shellscript-i4m7lo8wi0f5bl8b-CLZ0U2zV.js";export{e as default};
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
import{r as e}from"./rolldown-runtime-hePW80VL.js";import{t}from"./IconBase.es-BZDpYMnj.js";import{i as n}from"./react-CDCuUAOg.js";import{m as r}from"./skeleton-line-m9dyh126t9k07jvg-CHsT8Hs3.js";import{t as i}from"./Question.es-BqQtQle2.js";var a=e(n(),1),o=new Map([[`bold`,a.createElement(a.Fragment,null,a.createElement(`path`,{d:`M225.6,62.64l-88-48.17a19.91,19.91,0,0,0-19.2,0l-88,48.17A20,20,0,0,0,20,80.19v95.62a20,20,0,0,0,10.4,17.55l88,48.17a19.89,19.89,0,0,0,19.2,0l88-48.17A20,20,0,0,0,236,175.81V80.19A20,20,0,0,0,225.6,62.64ZM128,36.57,200,76,128,115.4,56,76ZM44,96.79l72,39.4v76.67L44,173.44Zm96,116.07V136.19l72-39.4v76.65Z`}))],[`fill`,a.createElement(a.Fragment,null,a.createElement(`path`,{d:`M223.68,66.15,135.68,18a15.88,15.88,0,0,0-15.36,0l-88,48.17a16,16,0,0,0-8.32,14v95.64a16,16,0,0,0,8.32,14l88,48.17a15.88,15.88,0,0,0,15.36,0l88-48.17a16,16,0,0,0,8.32-14V80.18A16,16,0,0,0,223.68,66.15ZM128,120,47.65,76,128,32l80.35,44Zm8,99.64V133.83l80-43.78v85.76Z`}))],[`regular`,a.createElement(a.Fragment,null,a.createElement(`path`,{d:`M223.68,66.15,135.68,18h0a15.88,15.88,0,0,0-15.36,0l-88,48.17a16,16,0,0,0-8.32,14v95.64a16,16,0,0,0,8.32,14l88,48.17a15.88,15.88,0,0,0,15.36,0l88-48.17a16,16,0,0,0,8.32-14V80.18A16,16,0,0,0,223.68,66.15ZM128,32h0l80.34,44L128,120,47.66,76ZM40,90l80,43.78v85.79L40,175.82Zm96,129.57V133.82L216,90v85.78Z`}))]]),s=new Map([[`bold`,a.createElement(a.Fragment,null,a.createElement(`path`,{d:`M224.15,179.17l-46.82-46.82,37.92-13.51c.26-.09.51-.19.76-.3a20,20,0,0,0-1.76-37.27L54.16,29A20,20,0,0,0,29,54.16L81.27,214.24A20,20,0,0,0,118.54,216c.11-.25.21-.5.3-.76l13.51-37.92,46.83,46.82a20,20,0,0,0,28.28,0l16.69-16.68A20,20,0,0,0,224.15,179.17Zm-30.83,25.17-48.48-48.48A20,20,0,0,0,130.7,150a20.47,20.47,0,0,0-3.73.35A20,20,0,0,0,112.35,162c-.11.25-.2.5-.3.76L100.4,195.5,54.29,54.29,195.5,100.4l-32.71,11.65c-.25.09-.51.19-.76.3a20,20,0,0,0-6.16,32.48h0l48.48,48.48ZM84,16V12a12,12,0,0,1,24,0v4a12,12,0,0,1-24,0ZM12,108a12,12,0,0,1,0-24h4a12,12,0,0,1,0,24ZM120.62,24.21l4-12a12,12,0,0,1,22.77,7.58l-4,12a12,12,0,0,1-22.77-7.58Zm-81.23,104a12,12,0,0,1-7.59,15.17l-12,4a12,12,0,1,1-7.59-22.76l12-4A12,12,0,0,1,39.39,128.21Z`}))],[`fill`,a.createElement(a.Fragment,null,a.createElement(`path`,{d:`M220.49,190.83a12,12,0,0,1,0,17L207.8,220.49a12,12,0,0,1-17,0l-56.56-56.57L115,214.09c0,.1-.08.21-.13.32a15.83,15.83,0,0,1-14.6,9.59l-.79,0a15.83,15.83,0,0,1-14.41-11L32.8,52.92A16,16,0,0,1,52.92,32.8L213,85.07a16,16,0,0,1,1.41,29.8l-.32.13-50.17,19.27ZM96,32a8,8,0,0,0,8-8V16a8,8,0,0,0-16,0v8A8,8,0,0,0,96,32ZM16,104h8a8,8,0,0,0,0-16H16a8,8,0,0,0,0,16ZM124.42,39.16a8,8,0,0,0,10.74-3.58l8-16a8,8,0,0,0-14.31-7.16l-8,16A8,8,0,0,0,124.42,39.16Zm-96,81.69-16,8a8,8,0,0,0,7.16,14.31l16-8a8,8,0,1,0-7.16-14.31Z`}))],[`regular`,a.createElement(a.Fragment,null,a.createElement(`path`,{d:`M88,24V16a8,8,0,0,1,16,0v8a8,8,0,0,1-16,0ZM16,104h8a8,8,0,0,0,0-16H16a8,8,0,0,0,0,16ZM124.42,39.16a8,8,0,0,0,10.74-3.58l8-16a8,8,0,0,0-14.31-7.16l-8,16A8,8,0,0,0,124.42,39.16Zm-96,81.69-16,8a8,8,0,0,0,7.16,14.31l16-8a8,8,0,1,0-7.16-14.31ZM219.31,184a16,16,0,0,1,0,22.63l-12.68,12.68a16,16,0,0,1-22.63,0L132.7,168,115,214.09c0,.1-.08.21-.13.32a15.83,15.83,0,0,1-14.6,9.59l-.79,0a15.83,15.83,0,0,1-14.41-11L32.8,52.92A16,16,0,0,1,52.92,32.8L213,85.07a16,16,0,0,1,1.41,29.8l-.32.13L168,132.69ZM208,195.31,156.69,144h0a16,16,0,0,1,4.93-26l.32-.14,45.95-17.64L48,48l52.2,159.86,17.65-46c0-.11.08-.22.13-.33a16,16,0,0,1,11.69-9.34,16.72,16.72,0,0,1,3-.28,16,16,0,0,1,11.3,4.69L195.31,208Z`}))]]),c=new Map([[`bold`,a.createElement(a.Fragment,null,a.createElement(`path`,{d:`M234.49,111.07,90.41,22.94A20,20,0,0,0,60,39.87V216.13a20,20,0,0,0,30.41,16.93l144.08-88.13a19.82,19.82,0,0,0,0-33.86ZM84,208.85V47.15L216.16,128Z`}))],[`fill`,a.createElement(a.Fragment,null,a.createElement(`path`,{d:`M240,128a15.74,15.74,0,0,1-7.6,13.51L88.32,229.65a16,16,0,0,1-16.2.3A15.86,15.86,0,0,1,64,216.13V39.87a15.86,15.86,0,0,1,8.12-13.82,16,16,0,0,1,16.2.3L232.4,114.49A15.74,15.74,0,0,1,240,128Z`}))],[`regular`,a.createElement(a.Fragment,null,a.createElement(`path`,{d:`M232.4,114.49,88.32,26.35a16,16,0,0,0-16.2-.3A15.86,15.86,0,0,0,64,39.87V216.13A15.94,15.94,0,0,0,80,232a16.07,16.07,0,0,0,8.36-2.35L232.4,141.51a15.81,15.81,0,0,0,0-27ZM80,215.94V40l143.83,88Z`}))]]),l=new Map([[`bold`,a.createElement(a.Fragment,null,a.createElement(`path`,{d:`M100,52H40A20,20,0,0,0,20,72v64a20,20,0,0,0,20,20H96v4a28,28,0,0,1-28,28,12,12,0,0,0,0,24,52.06,52.06,0,0,0,52-52V72A20,20,0,0,0,100,52Zm-4,80H44V76H96ZM216,52H156a20,20,0,0,0-20,20v64a20,20,0,0,0,20,20h56v4a28,28,0,0,1-28,28,12,12,0,0,0,0,24,52.06,52.06,0,0,0,52-52V72A20,20,0,0,0,216,52Zm-4,80H160V76h52Z`}))],[`fill`,a.createElement(a.Fragment,null,a.createElement(`path`,{d:`M116,72v88a48.05,48.05,0,0,1-48,48,8,8,0,0,1,0-16,32,32,0,0,0,32-32v-8H40a16,16,0,0,1-16-16V72A16,16,0,0,1,40,56h60A16,16,0,0,1,116,72ZM216,56H156a16,16,0,0,0-16,16v64a16,16,0,0,0,16,16h60v8a32,32,0,0,1-32,32,8,8,0,0,0,0,16,48.05,48.05,0,0,0,48-48V72A16,16,0,0,0,216,56Z`}))],[`regular`,a.createElement(a.Fragment,null,a.createElement(`path`,{d:`M100,56H40A16,16,0,0,0,24,72v64a16,16,0,0,0,16,16h60v8a32,32,0,0,1-32,32,8,8,0,0,0,0,16,48.05,48.05,0,0,0,48-48V72A16,16,0,0,0,100,56Zm0,80H40V72h60ZM216,56H156a16,16,0,0,0-16,16v64a16,16,0,0,0,16,16h60v8a32,32,0,0,1-32,32,8,8,0,0,0,0,16,48.05,48.05,0,0,0,48-48V72A16,16,0,0,0,216,56Zm0,80H156V72h60Z`}))]]),u=a.forwardRef((e,n)=>a.createElement(t,{ref:n,...e,weights:o}));u.displayName=`CubeIcon`;var d=u,f=a.forwardRef((e,n)=>a.createElement(t,{ref:n,...e,weights:s}));f.displayName=`CursorClickIcon`;var p=f,m=a.forwardRef((e,n)=>a.createElement(t,{ref:n,...e,weights:c}));m.displayName=`PlayIcon`;var h=m,g=a.forwardRef((e,n)=>a.createElement(t,{ref:n,...e,weights:l}));g.displayName=`QuotesIcon`;var _=g,v={Info:r,CursorClick:p,Play:h,Question:i,Quotes:_},y=e=>e?.icon&&v[e.icon]||d;export{_ as n,d as r,y as t};
|
|
2
|
+
//# sourceMappingURL=blockIcon-DmMm6cQr.js.map
|
|
@@ -0,0 +1,3 @@
|
|
|
1
|
+
var e=(e,t)=>({from:`phosphor:${e}`,...t?{mirror:t}:{}}),t={menu:e(`list`),close:e(`x`),search:e(`magnifying-glass`),"chevron-down":e(`caret-down`),"chevron-up":e(`caret-up`),"chevron-left":e(`caret-left`,!0),"chevron-right":e(`caret-right`,!0),"arrow-right":e(`arrow-right`,!0),"arrow-left":e(`arrow-left`,!0),"arrow-up":e(`arrow-up`),"arrow-down":e(`arrow-down`),"arrow-up-right":e(`arrow-up-right`,!0),external:e(`arrow-square-out`,!0),plus:e(`plus`),minus:e(`minus`),more:e(`dots-three`),home:e(`house`),globe:e(`globe`),sun:e(`sun`),moon:e(`moon`)},n={check:e(`check`),"check-circle":e(`check-circle`),info:e(`info`),warning:e(`warning`),error:e(`warning-circle`),question:e(`question`),download:e(`download-simple`),upload:e(`upload-simple`),copy:e(`copy`),share:e(`share-network`),link:e(`link`),edit:e(`pencil-simple`),trash:e(`trash`),filter:e(`funnel`),sort:e(`sort-ascending`),settings:e(`gear`),lock:e(`lock`),unlock:e(`lock-open`),eye:e(`eye`),bell:e(`bell`),refresh:e(`arrows-clockwise`),print:e(`printer`),play:e(`play`),pause:e(`pause`),sparkle:e(`sparkle`)},r={mail:e(`envelope-simple`),phone:e(`phone`),chat:e(`chat-circle`),"map-pin":e(`map-pin`),calendar:e(`calendar-blank`),clock:e(`clock`),user:e(`user`),users:e(`users`),building:e(`buildings`),briefcase:e(`briefcase`),cart:e(`shopping-cart`),tag:e(`tag`),gift:e(`gift`),"credit-card":e(`credit-card`),money:e(`money`),chart:e(`chart-bar`),"trend-up":e(`trend-up`),lightning:e(`lightning`),star:e(`star`),heart:e(`heart`),quote:e(`quotes`),book:e(`book-open`),article:e(`article`),image:e(`image`),video:e(`video-camera`),music:e(`music-note`),file:e(`file`),folder:e(`folder`),code:e(`code`),rocket:e(`rocket-launch`),leaf:e(`leaf`),coffee:e(`coffee`),graduation:e(`graduation-cap`),shield:e(`shield-check`),target:e(`target`),lightbulb:e(`lightbulb`)},i={x:e(`x-logo`),bluesky:{from:`simple:bluesky`},mastodon:e(`mastodon-logo`),github:e(`github-logo`),linkedin:e(`linkedin-logo`),instagram:e(`instagram-logo`),facebook:e(`facebook-logo`),youtube:e(`youtube-logo`),tiktok:e(`tiktok-logo`),threads:e(`threads-logo`),rss:e(`rss`),email:e(`envelope-simple`)},a={...t,...n,...r,...i};Object.keys(t),Object.keys(n),Object.keys(r),Object.keys(i);var o=Object.keys(a),s=/^[a-z][a-z0-9-]{1,40}$/,c={props:64,stringLength:1e4,content:2e4,enumValues:50,arrayItems:50,patternLength:200},l=[`title`,`description`,`default`,`x-widget`],u={string:[`type`,`minLength`,`maxLength`,`pattern`,`enum`,`format`,`x-labels`,...l],number:[`type`,`minimum`,`maximum`,`multipleOf`,...l],integer:[`type`,`minimum`,`maximum`,`multipleOf`,...l],boolean:[`type`,...l],array:[`type`,`items`,`minItems`,`maxItems`,...l],object:[`type`,`properties`,`required`,`additionalProperties`,`x-contrast`,...l]},d=new Set(o),f=e=>d.has(e),p=new Set([`url`,`asset`,`color`,`markdown`,`icon`,`marker`]),m=new Set([`textarea`,`radio`,`asset-picker`]),h=/^[a-z][A-Za-z0-9]{0,40}$/,g=/\\[1-9]|\(\?[=!<]/,_=e=>typeof e==`object`&&!!e&&!Array.isArray(e),v=e=>typeof e==`number`&&Number.isInteger(e)&&e>=0;function y(e,t,n){e!==void 0&&typeof e!=`string`&&(!_(e)||typeof e.en!=`string`||!Object.values(e).every(e=>typeof e==`string`))&&n.push({path:t,message:"a string, or strings per locale with `en`"})}function b(e,t,n,r){if(!_(e)){r.push({path:t,message:`a schema object`});return}let i=e.type;if(typeof i!=`string`||!(i in u)){r.push({path:t,message:`type: string, integer, number, boolean, array or object`});return}for(let n of Object.keys(e))(u[i]??[]).includes(n)||r.push({path:`${t}/${n}`,message:`not in the props schema subset (${i})`});switch(y(e.title,`${t}/title`,r),y(e.description,`${t}/description`,r),e[`x-widget`]!==void 0&&!m.has(e[`x-widget`])&&r.push({path:`${t}/x-widget`,message:`textarea, radio or asset-picker`}),i){case`string`:if(e.maxLength!==void 0&&(!v(e.maxLength)||e.maxLength>c.stringLength)&&r.push({path:`${t}/maxLength`,message:`at most ${c.stringLength}`}),e.minLength!==void 0&&!v(e.minLength)&&r.push({path:`${t}/minLength`,message:`a whole number`}),e.format!==void 0&&!p.has(e.format)&&r.push({path:`${t}/format`,message:`url, asset, color, markdown, icon or marker`}),e.enum!==void 0){let n=e.enum;(!Array.isArray(n)||n.length===0||n.length>c.enumValues||!n.every(e=>typeof e==`string`))&&r.push({path:`${t}/enum`,message:`1 to ${c.enumValues} strings`})}if(e[`x-labels`]!==void 0){let n=e[`x-labels`];if(!_(n)||!Array.isArray(e.enum))r.push({path:`${t}/x-labels`,message:`words for the enum values`});else for(let[i,a]of Object.entries(n))e.enum.includes(i)||r.push({path:`${t}/x-labels/${i}`,message:`not an enum value`}),y(a,`${t}/x-labels/${i}`,r)}if(e.pattern!==void 0){let n=e.pattern;if(typeof n!=`string`||n.length>c.patternLength||g.test(n))r.push({path:`${t}/pattern`,message:`a regular expression of at most ${c.patternLength} characters, without backreferences or lookaround`});else try{new RegExp(n,`u`)}catch{r.push({path:`${t}/pattern`,message:`not a valid regular expression`})}}return;case`number`:case`integer`:for(let n of[`minimum`,`maximum`,`multipleOf`])e[n]!==void 0&&(typeof e[n]!=`number`||!Number.isFinite(e[n]))&&r.push({path:`${t}/${n}`,message:`a number`});return;case`boolean`:return;case`array`:if(n!==`top`){r.push({path:t,message:`lists only at the top level of props`});return}(e.maxItems===void 0||!v(e.maxItems)||e.maxItems>c.arrayItems)&&r.push({path:`${t}/maxItems`,message:`required, at most ${c.arrayItems}`}),e.minItems!==void 0&&!v(e.minItems)&&r.push({path:`${t}/minItems`,message:`a whole number`}),b(e.items,`${t}/items`,`item`,r);return;case`object`:{if(n===`leaf`){r.push({path:t,message:`scalars only one level down`});return}e.additionalProperties!==!1&&r.push({path:`${t}/additionalProperties`,message:`must be false`});let i=e.properties;if(!_(i)){r.push({path:`${t}/properties`,message:`an object of property schemas`});return}let a=Object.keys(i);a.length>c.props&&r.push({path:`${t}/properties`,message:`at most ${c.props} props`});for(let e of a){h.test(e)||r.push({path:`${t}/properties/${e}`,message:`a camelCase name`});let a=i[e];if(n!==`root`&&_(a)&&(a.type===`object`||a.type===`array`)){r.push({path:`${t}/properties/${e}`,message:`scalars only one level down`});continue}b(a,`${t}/properties/${e}`,n===`root`?`top`:`leaf`,r)}if(e.required!==void 0){let n=e.required;(!Array.isArray(n)||!n.every(e=>typeof e==`string`&&e in i))&&r.push({path:`${t}/required`,message:`names of declared properties`})}return}}}function x(e){let t=[];return!_(e)||e.type!==`object`?(t.push({path:``,message:`the root of a props schema is an object`}),t):(b(e,``,`root`,t),t.length||S(e,t),t)}function S(e,t){for(let[n,r]of Object.entries(e.properties))_(r)&&`x-contrast`in r&&t.push({path:`/${n}/x-contrast`,message:`contrast rules go on the root`});let n=e[`x-contrast`];if(n!==void 0){if(!Array.isArray(n)||n.length>20){t.push({path:`/x-contrast`,message:`at most 20 rules`});return}n.forEach((n,r)=>{let i=`/x-contrast/${r}`;if(!Array.isArray(n)||n.length!==3){t.push({path:i,message:`[color prop, color prop, ratio]`});return}let[a,o,s]=n;for(let n of[a,o]){let r=typeof n==`string`?e.properties[n]:void 0;(r?.type!==`string`||r.format!==`color`)&&t.push({path:i,message:`${String(n)} is not a color prop`})}(typeof s!=`number`||!(s>=1&&s<=21))&&t.push({path:i,message:`a ratio from 1 to 21`})})}}function C(e,t){let n=e=>{let[t,n,r]=[1,3,5].map(t=>{let n=Number.parseInt(e.slice(t,t+2),16)/255;return n<=.04045?n/12.92:((n+.055)/1.055)**2.4});return .2126*t+.7152*n+.0722*r},[r,i]=[n(e),n(t)].sort((e,t)=>t-e);return(r+.05)/(i+.05)}var w=/^asset:[a-z]+_[A-Za-z0-9]{6,32}$/,T=/^#[0-9a-fA-F]{6}$/,E=new Map,D=e=>{let t=E.get(e);return t||(t=new RegExp(e,`u`),E.set(e,t)),t};function O(e){let t=e.trim();if(!t||t.length>2048||/\s/.test(t))return!1;for(let e=0;e<t.length;e++)if(t.charCodeAt(e)<32)return!1;return t.startsWith(`/`)&&!t.startsWith(`//`)||t.startsWith(`#`)||w.test(t)?!0:/^(https?:\/\/[^/\s]|mailto:|tel:)/i.test(t)}function k(e,t,n,r){switch(e.type){case`string`:{if(typeof t!=`string`){r.push({path:n,message:`text`});return}let i=Math.min(e.maxLength??c.stringLength,c.stringLength);t.length>i&&r.push({path:n,message:`at most ${i} characters`}),e.minLength!==void 0&&t.length<e.minLength&&r.push({path:n,message:e.minLength===1?`required`:`at least ${e.minLength} characters`}),e.enum&&!e.enum.includes(t)&&r.push({path:n,message:`one of ${e.enum.join(`, `)}`}),e.pattern&&!D(e.pattern).test(t)&&r.push({path:n,message:`not in the expected form`}),e.format===`url`&&t&&!O(t)&&r.push({path:n,message:`a safe link`}),e.format===`asset`&&t&&!w.test(t)&&r.push({path:n,message:`an asset:<id> reference`}),e.format===`color`&&t&&!T.test(t)&&r.push({path:n,message:`a #rrggbb color`}),e.format===`icon`&&t&&!f(t)&&r.push({path:n,message:`an icon name of the set (catalogPrompt lists them)`}),e.format===`marker`&&t&&t!==`bullet`&&t!==`none`&&!f(t)&&r.push({path:n,message:`bullet, none or an icon name of the set`});return}case`number`:case`integer`:if(typeof t!=`number`||!Number.isFinite(t)||e.type===`integer`&&!Number.isInteger(t)){r.push({path:n,message:e.type===`integer`?`a whole number`:`a number`});return}e.minimum!==void 0&&t<e.minimum&&r.push({path:n,message:`at least ${e.minimum}`}),e.maximum!==void 0&&t>e.maximum&&r.push({path:n,message:`at most ${e.maximum}`}),e.multipleOf!==void 0&&e.multipleOf>0&&Math.abs(t/e.multipleOf-Math.round(t/e.multipleOf))>1e-9&&r.push({path:n,message:`a multiple of ${e.multipleOf}`});return;case`boolean`:typeof t!=`boolean`&&r.push({path:n,message:`true or false`});return}}function A(e,t,n,r){if(!_(t)){r.push({path:n,message:`an object`});return}let i=e=>n?`${n}/${e}`:e;for(let n of Object.keys(t))n in e.properties||r.push({path:i(n),message:`not a prop of this block`});for(let n of e.required??[])t[n]===void 0&&r.push({path:i(n),message:`required`});for(let[n,a]of Object.entries(e.properties)){let e=t[n];if(e!==void 0){if(a.type===`array`){if(!Array.isArray(e)){r.push({path:i(n),message:`a list`});continue}let t=Math.min(a.maxItems??c.arrayItems,c.arrayItems);e.length>t&&r.push({path:i(n),message:`at most ${t} items`}),a.minItems!==void 0&&e.length<a.minItems&&r.push({path:i(n),message:`at least ${a.minItems} ${a.minItems===1?`item`:`items`}`}),e.slice(0,t).forEach((e,t)=>{a.items.type===`object`?A(a.items,e,`${i(n)}/${t}`,r):k(a.items,e,`${i(n)}/${t}`,r)})}else a.type===`object`?A(a,e,i(n),r):k(a,e,i(n),r)}}}function j(e,t){let n=[];_(t)&&Object.keys(t).length>c.props&&n.push({path:``,message:`at most ${c.props} props`}),A(e,t,``,n);for(let[r,i,a]of e[`x-contrast`]??[]){let o=n=>{let r=_(t)?t[n]:void 0,i=e.properties[n]?.default,a=r??i;return typeof a==`string`&&T.test(a)?a:void 0},s=o(r),c=o(i);if(!s||!c)continue;let l=C(s,c);l<a&&n.push({path:r,message:`contrast with ${i} is ${l.toFixed(1)}:1; needs ${a}:1`})}return n}function M(e){return e.content===`markdown`?{...e.props,properties:{...e.props.properties,content:{type:`string`,format:`markdown`,maxLength:c.stringLength,title:{en:`Content`,tr:`İçerik`},"x-widget":`textarea`}}}:e.props}var N=class extends Error{issues;constructor(e){super(`block types are invalid:\n- ${e.join(`
|
|
2
|
+
- `)}`),this.name=`BlockTypeError`,this.issues=e}},P=new Set([`string`,`number`,`integer`,`boolean`]);function F(e){let t=[];if(!_(e))return[`a block type is an object`];let n=typeof e.name==`string`?e.name:``,r=e=>`${n||`(unnamed)`}: ${e}`;s.test(n)||t.push(r(`name: lowercase English words joined by hyphens`));let i=[];y(e.title,`title`,i),e.title===void 0&&i.push({path:`title`,message:`required`}),y(e.description,`description`,i);for(let e of i)t.push(r(`${e.path}: ${e.message}`));let a=e.where;(!Array.isArray(a)||a.length===0||!a.every(e=>e===`section`||e===`body`))&&t.push(r(`where: section and/or body`)),e.content!==void 0&&e.content!==`markdown`&&e.content!==`none`&&t.push(r(`content: markdown or none`));for(let n of x(e.props))t.push(r(`props${n.path}: ${n.message}`));if(t.length)return t;let o=e;if(o.content===`markdown`&&`content`in o.props.properties&&t.push(r("props: `content` is reserved for the inner markdown")),o.where.includes(`body`))for(let[e,n]of Object.entries(o.props.properties))P.has(n.type)||t.push(r(`props/${e}: body blocks take scalar props only`));if(!_(o.example)||!_(o.example.props))t.push(r(`example: { props }`));else for(let e of j(o.props,o.example.props))t.push(r(`example/${e.path}: ${e.message}`));return t}function I(e){let t=e.flatMap(F),n=new Set;for(let r of e)n.has(r.name)&&t.push(`${r.name}: defined twice`),n.add(r.name);if(t.length)throw new N(t);return Object.freeze(e.map(e=>Object.freeze({...e})))}var L=I([{name:`callout`,title:{en:`Callout`,tr:`Bilgi kutusu`},description:{en:`A highlighted note, tip or warning.`,tr:`Öne çıkan bir not, ipucu ya da uyarı.`},icon:`Info`,category:`text`,where:[`section`,`body`],content:`markdown`,props:{type:`object`,additionalProperties:!1,properties:{tone:{type:`string`,enum:[`info`,`success`,`warning`,`danger`],default:`info`,title:{en:`Tone`,tr:`Ton`},"x-widget":`radio`},title:{type:`string`,maxLength:120,title:{en:`Title`,tr:`Başlık`}}}},example:{props:{tone:`info`,title:`Good to know`},markdown:`Write the note here.`}},{name:`button`,title:{en:`Button`,tr:`Düğme`},description:{en:`A link styled as a button.`,tr:`Düğme görünümünde bir bağlantı.`},icon:`CursorClick`,category:`layout`,where:[`section`,`body`],props:{type:`object`,additionalProperties:!1,required:[`label`,`href`],properties:{label:{type:`string`,minLength:1,maxLength:60,title:{en:`Label`,tr:`Etiket`}},href:{type:`string`,format:`url`,maxLength:2048,title:{en:`Link`,tr:`Bağlantı`}},variant:{type:`string`,enum:[`primary`,`secondary`],default:`primary`,title:{en:`Style`,tr:`Stil`},"x-widget":`radio`}}},example:{props:{label:`Get started`,href:`/start`,variant:`primary`}}},{name:`embed`,title:{en:`Video`,tr:`Video`},description:{en:`A YouTube or Vimeo video, loaded only when the reader clicks Play.`,tr:`Okur Oynat'a tıklayınca yüklenen bir YouTube ya da Vimeo videosu.`},icon:`Play`,category:`media`,where:[`section`,`body`],props:{type:`object`,additionalProperties:!1,required:[`url`,`title`],properties:{url:{type:`string`,format:`url`,maxLength:2048,pattern:`^https://(www\\.|m\\.)?(youtube\\.com/watch\\?v=|youtu\\.be/|vimeo\\.com/)[A-Za-z0-9_-]+`,title:{en:`Video address`,tr:`Video adresi`},description:{en:`A YouTube or Vimeo link.`,tr:`Bir YouTube ya da Vimeo bağlantısı.`}},title:{type:`string`,minLength:1,maxLength:200,title:{en:`Title`,tr:`Başlık`},description:{en:`Read out by screen readers.`,tr:`Ekran okuyucular bunu okur.`}}}},example:{props:{url:`https://www.youtube.com/watch?v=aqz-KE-bpKQ`,title:`Big Buck Bunny`}}},{name:`faq`,title:{en:`Questions and answers`,tr:`Sık sorulan sorular`},description:{en:`A list of questions with expandable answers.`,tr:`Açılır yanıtlarıyla bir soru listesi.`},icon:`Question`,category:`text`,where:[`section`],props:{type:`object`,additionalProperties:!1,required:[`items`],properties:{items:{type:`array`,minItems:1,maxItems:50,title:{en:`Questions`,tr:`Sorular`},items:{type:`object`,additionalProperties:!1,required:[`question`,`answer`],properties:{question:{type:`string`,minLength:1,maxLength:300,title:{en:`Question`,tr:`Soru`}},answer:{type:`string`,minLength:1,maxLength:2e3,format:`markdown`,title:{en:`Answer`,tr:`Yanıt`},"x-widget":`textarea`}}}}}},example:{props:{items:[{question:`What is this?`,answer:`A short answer.`}]}}}]);function R(e=[]){let t=new Map(L.map(e=>[e.name,e])),n=[];for(let r of I(e))t.has(r.name)?n.push(`${r.name}: a built-in block type has this name`):t.set(r.name,r);if(n.length)throw new N(n);let r=[...t.values()];return{get:e=>t.get(e),list:e=>e?r.filter(t=>t.where.includes(e)):[...r],checkSection(e,n){let r=t.get(e);if(r)return r.where.includes(`section`)?j(M(r),n):[{path:``,message:`${e} is a body block, not a section`}]}}}function z(e,t){return e===void 0?``:typeof e==`string`?e:e[t]??e[t.split(`-`)[0]??``]??e.en??Object.values(e)[0]??``}export{j as a,M as i,I as n,z as r,R as t};
|
|
3
|
+
//# sourceMappingURL=blocks-CvH3xqPj.js.map
|