@maudecode/kanvil 0.4.4 → 0.5.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (110) hide show
  1. package/apps/server/.env.example +5 -0
  2. package/apps/server/dist/{auth-B-Tz8SF4.mjs → auth-Cs_whzgk.mjs} +300 -119
  3. package/apps/server/dist/client.mjs +1 -1
  4. package/apps/server/dist/{config-CRADzIvL.mjs → config-DKuNQY5b.mjs} +15 -7
  5. package/apps/server/dist/index.mjs +98 -30
  6. package/apps/server/dist/migrate.mjs +2 -2
  7. package/apps/server/dist/recover.mjs +4 -4
  8. package/apps/server/dist/{src-BCtZ3wbK.mjs → src-DptOUNRd.mjs} +53 -18
  9. package/apps/web/dist/assets/{CompositeItem-DvEBmVYM.js → CompositeItem-CXqewtEL.js} +1 -1
  10. package/apps/web/dist/assets/{Trans-NwgJNiLl.js → Trans-B1rRlWca.js} +1 -1
  11. package/apps/web/dist/assets/{admin-settings-BVWOe67Z.js → admin-settings-DE3MfBFE.js} +1 -1
  12. package/apps/web/dist/assets/{archive-restore-j20QLQCl.js → archive-restore-76sStk8K.js} +1 -1
  13. package/apps/web/dist/assets/az-AZ-bFxpMMZN.js +1 -0
  14. package/apps/web/dist/assets/{az-Dj0LhQ5O.js → az-B7OgHoaE.js} +1 -1
  15. package/apps/web/dist/assets/{corner-left-up-BAGDaT_1.js → corner-left-up-PD-73Nae.js} +1 -1
  16. package/apps/web/dist/assets/{de-BWVFKRmU.js → de-B-bv38Q0.js} +1 -1
  17. package/apps/web/dist/assets/de-DE-BeXI30Ll.js +1 -0
  18. package/apps/web/dist/assets/default-bQFGTwIp.js +56 -0
  19. package/apps/web/dist/assets/{delivery-settings-B26dRk_O.js → delivery-settings-BvMeOsCS.js} +1 -1
  20. package/apps/web/dist/assets/{el-IYSYQmsa.js → el-BQHQHQgX.js} +1 -1
  21. package/apps/web/dist/assets/el-GR-SgRHlWhY.js +1 -0
  22. package/apps/web/dist/assets/{ellipsis-Cx1SIn8a.js → ellipsis-GF1HwTDb.js} +1 -1
  23. package/apps/web/dist/assets/es-ES-BF1J5vap.js +1 -0
  24. package/apps/web/dist/assets/{es-C3DJP0aS.js → es-f5Xr8ldr.js} +1 -1
  25. package/apps/web/dist/assets/{forms-BwtRqvGj.js → forms-BlEL8C_P.js} +1 -1
  26. package/apps/web/dist/assets/{fr-BlVUPa15.js → fr-DSR0htnl.js} +1 -1
  27. package/apps/web/dist/assets/fr-FR-D_sldwf6.js +1 -0
  28. package/apps/web/dist/assets/{hi-CINzKB6O.js → hi-BaAJEWuW.js} +1 -1
  29. package/apps/web/dist/assets/hi-IN-CfOw4TWf.js +1 -0
  30. package/apps/web/dist/assets/{highlight-XHbOOx7A.js → highlight-DXT2xgt8.js} +1 -1
  31. package/apps/web/dist/assets/id-ID-CLKtHO7Q.js +1 -0
  32. package/apps/web/dist/assets/{id-CpyQwNyO.js → id-kxogWcip.js} +1 -1
  33. package/apps/web/dist/assets/{index-MTE_naHG.js → index-CYVrs22O.js} +5 -5
  34. package/apps/web/dist/assets/{invitations-Ch02KEAB.js → invitations-BPik3J_G.js} +1 -1
  35. package/apps/web/dist/assets/{it-CxMkGyiF.js → it-C_qk40U6.js} +1 -1
  36. package/apps/web/dist/assets/it-IT-eVZNW5qX.js +1 -0
  37. package/apps/web/dist/assets/{item-CRS9Ai9p.js → item-TCHuZNK6.js} +1 -1
  38. package/apps/web/dist/assets/{ja-D72d7qkv.js → ja-Dn5h64V9.js} +1 -1
  39. package/apps/web/dist/assets/ja-JP-D96njn-P.js +1 -0
  40. package/apps/web/dist/assets/{ko-BHuNjRQ3.js → ko-CjaoEPuG.js} +1 -1
  41. package/apps/web/dist/assets/ko-KR-Bash_ieA.js +1 -0
  42. package/apps/web/dist/assets/{label-settings-tE57CalJ.js → label-settings-DZTorNDm.js} +1 -1
  43. package/apps/web/dist/assets/{markdown-blocks-CN-hJdJS.js → markdown-blocks-BQLO-H_7.js} +1 -1
  44. package/apps/web/dist/assets/{member-directory-CoLB-2Oc.js → member-directory-Dx_jQYfI.js} +1 -1
  45. package/apps/web/dist/assets/mk-MK-BWQWGIRx.js +1 -0
  46. package/apps/web/dist/assets/{mk-D3TPH_Mz.js → mk-jLeGD50T.js} +1 -1
  47. package/apps/web/dist/assets/{nl-BHJbk-Wr.js → nl-AVtC5ygT.js} +1 -1
  48. package/apps/web/dist/assets/nl-NL-D1tvo0Gd.js +1 -0
  49. package/apps/web/dist/assets/{pl-JW_P_Gb9.js → pl-Dup1h_Y1.js} +1 -1
  50. package/apps/web/dist/assets/pl-PL-DNgGUEcQ.js +1 -0
  51. package/apps/web/dist/assets/{project-lifecycle-DuV33mlL.js → project-lifecycle-n1ZZbYfu.js} +1 -1
  52. package/apps/web/dist/assets/{project-settings-9yJbfZRu.js → project-settings-B_Ih5kiz.js} +1 -1
  53. package/apps/web/dist/assets/pt-BR-CZsUZQ6P.js +1 -0
  54. package/apps/web/dist/assets/{pt-BR-DWL_sEp3.js → pt-BR-Cm04EWM-.js} +1 -1
  55. package/apps/web/dist/assets/{public-project-M93Zpx_e.js → public-project-BivDjU_a.js} +1 -1
  56. package/apps/web/dist/assets/{rotate-ccw-DcHaluuA.js → rotate-ccw-CSaKhZYt.js} +1 -1
  57. package/apps/web/dist/assets/{ru-DQNby7hW.js → ru-IeycXsyE.js} +1 -1
  58. package/apps/web/dist/assets/ru-RU-4ew92YE_.js +1 -0
  59. package/apps/web/dist/assets/{search-DQtwggUH.js → search-Ble6WSEU.js} +3 -3
  60. package/apps/web/dist/assets/{send-gpGpxsCa.js → send-BLMZ8gQ0.js} +1 -1
  61. package/apps/web/dist/assets/settings-CH48qQK2.js +1 -0
  62. package/apps/web/dist/assets/{sliders-horizontal-BxgR4pFt.js → sliders-horizontal-Db6kRvuw.js} +1 -1
  63. package/apps/web/dist/assets/{switch-UPVGS5kv.js → switch-BeX-0Fwq.js} +1 -1
  64. package/apps/web/dist/assets/{table-D8iAxhJH.js → table-UJp5S9yy.js} +1 -1
  65. package/apps/web/dist/assets/ticket-detail-C24opfNW.js +2 -0
  66. package/apps/web/dist/assets/{ticket-editor-B5eOWIj4.js → ticket-editor--d_bG9C1.js} +2 -2
  67. package/apps/web/dist/assets/{ticket-list-C965rmmf.js → ticket-list-DRbZWYHf.js} +1 -1
  68. package/apps/web/dist/assets/{ticket-list-controls-ua3m0uRB.js → ticket-list-controls-fYBottFC.js} +1 -1
  69. package/apps/web/dist/assets/{tr-BNZEkwqd.js → tr-DtT_dKUK.js} +1 -1
  70. package/apps/web/dist/assets/tr-TR-CM381XCw.js +1 -0
  71. package/apps/web/dist/assets/{uk-Dmlqvk63.js → uk-CsbeHSS6.js} +1 -1
  72. package/apps/web/dist/assets/uk-UA-AeOiWCVo.js +1 -0
  73. package/apps/web/dist/assets/{upload-Cu0J8ZFJ.js → upload-DUEg04Nj.js} +1 -1
  74. package/apps/web/dist/assets/{useQueries-BEzeS0hU.js → useQueries-5lW2C5Sb.js} +1 -1
  75. package/apps/web/dist/assets/vi-VN-td08xXv9.js +1 -0
  76. package/apps/web/dist/assets/{vi-KALEc3bk.js → vi-rkf1BOLx.js} +1 -1
  77. package/apps/web/dist/assets/{visual-editor-DyhI5fa5.js → visual-editor-DkFLjouD.js} +1 -1
  78. package/apps/web/dist/assets/{workspace-settings-DGr-Lwnz.js → workspace-settings-Bcsp-VoJ.js} +1 -1
  79. package/apps/web/dist/assets/zh-CN-D3dhEYLS.js +1 -0
  80. package/apps/web/dist/assets/{zh-CN-DfruhRl9.js → zh-CN-Xo-QId5w.js} +1 -1
  81. package/apps/web/dist/assets/zh-TW-CfhOEFo8.js +1 -0
  82. package/apps/web/dist/assets/{zh-TW-C4keUYMa.js → zh-TW-DEnTqjbn.js} +1 -1
  83. package/apps/web/dist/index.html +7 -7
  84. package/docs/api.md +16 -6
  85. package/docs/releasing.md +16 -2
  86. package/docs/self-hosting.md +8 -0
  87. package/package.json +1 -1
  88. package/apps/web/dist/assets/az-AZ-DlsPlUZi.js +0 -1
  89. package/apps/web/dist/assets/de-DE-DLCaqUUe.js +0 -1
  90. package/apps/web/dist/assets/default-D6I-Xfqm.js +0 -56
  91. package/apps/web/dist/assets/el-GR-P2XcwrSU.js +0 -1
  92. package/apps/web/dist/assets/es-ES-CJoX8f3w.js +0 -1
  93. package/apps/web/dist/assets/fr-FR-yLkQdy6a.js +0 -1
  94. package/apps/web/dist/assets/hi-IN-y8dqej7z.js +0 -1
  95. package/apps/web/dist/assets/id-ID-DSvh8mGH.js +0 -1
  96. package/apps/web/dist/assets/it-IT-BUcfUqNo.js +0 -1
  97. package/apps/web/dist/assets/ja-JP-C-jLP_Ay.js +0 -1
  98. package/apps/web/dist/assets/ko-KR-C5Ozdm2E.js +0 -1
  99. package/apps/web/dist/assets/mk-MK-BdM_SsE8.js +0 -1
  100. package/apps/web/dist/assets/nl-NL-CwjB5sva.js +0 -1
  101. package/apps/web/dist/assets/pl-PL-6-PMhTBd.js +0 -1
  102. package/apps/web/dist/assets/pt-BR-TD_wt6Hr.js +0 -1
  103. package/apps/web/dist/assets/ru-RU-Bk1a6Oln.js +0 -1
  104. package/apps/web/dist/assets/settings-Co61IE04.js +0 -1
  105. package/apps/web/dist/assets/ticket-detail-BKilKtg_.js +0 -2
  106. package/apps/web/dist/assets/tr-TR-CUfBb7K9.js +0 -1
  107. package/apps/web/dist/assets/uk-UA-BDaXBsDP.js +0 -1
  108. package/apps/web/dist/assets/vi-VN-Bgb-L6mE.js +0 -1
  109. package/apps/web/dist/assets/zh-CN-BypkvBe6.js +0 -1
  110. package/apps/web/dist/assets/zh-TW-CgMsT_XS.js +0 -1
@@ -1 +1 @@
1
- import{c as e,l as t,o as n,s as r}from"./en-US-DKYSujv3.js";import{t as i}from"./isSameWeek-2ftYGvBT.js";import{Dt as a}from"./index-MTE_naHG.js";var o={lessThanXSeconds:{one:{regular:`mniej niż sekunda`,past:`mniej niż sekundę`,future:`mniej niż sekundę`},twoFour:`mniej niż {{count}} sekundy`,other:`mniej niż {{count}} sekund`},xSeconds:{one:{regular:`sekunda`,past:`sekundę`,future:`sekundę`},twoFour:`{{count}} sekundy`,other:`{{count}} sekund`},halfAMinute:{one:`pół minuty`,twoFour:`pół minuty`,other:`pół minuty`},lessThanXMinutes:{one:{regular:`mniej niż minuta`,past:`mniej niż minutę`,future:`mniej niż minutę`},twoFour:`mniej niż {{count}} minuty`,other:`mniej niż {{count}} minut`},xMinutes:{one:{regular:`minuta`,past:`minutę`,future:`minutę`},twoFour:`{{count}} minuty`,other:`{{count}} minut`},aboutXHours:{one:{regular:`około godziny`,past:`około godziny`,future:`około godzinę`},twoFour:`około {{count}} godziny`,other:`około {{count}} godzin`},xHours:{one:{regular:`godzina`,past:`godzinę`,future:`godzinę`},twoFour:`{{count}} godziny`,other:`{{count}} godzin`},xDays:{one:{regular:`dzień`,past:`dzień`,future:`1 dzień`},twoFour:`{{count}} dni`,other:`{{count}} dni`},aboutXWeeks:{one:`około tygodnia`,twoFour:`około {{count}} tygodni`,other:`około {{count}} tygodni`},xWeeks:{one:`tydzień`,twoFour:`{{count}} tygodnie`,other:`{{count}} tygodni`},aboutXMonths:{one:`około miesiąc`,twoFour:`około {{count}} miesiące`,other:`około {{count}} miesięcy`},xMonths:{one:`miesiąc`,twoFour:`{{count}} miesiące`,other:`{{count}} miesięcy`},aboutXYears:{one:`około rok`,twoFour:`około {{count}} lata`,other:`około {{count}} lat`},xYears:{one:`rok`,twoFour:`{{count}} lata`,other:`{{count}} lat`},overXYears:{one:`ponad rok`,twoFour:`ponad {{count}} lata`,other:`ponad {{count}} lat`},almostXYears:{one:`prawie rok`,twoFour:`prawie {{count}} lata`,other:`prawie {{count}} lat`}};function s(e,t){if(t===1)return e.one;let n=t%100;if(n<=20&&n>10)return e.other;let r=n%10;return r>=2&&r<=4?e.twoFour:e.other}function c(e,t,n){let r=s(e,t);return(typeof r==`string`?r:r[n]).replace(`{{count}}`,String(t))}var l=(e,t,n)=>{let r=o[e];return n?.addSuffix?n.comparison&&n.comparison>0?`za `+c(r,t,`future`):c(r,t,`past`)+` temu`:c(r,t,`regular`)},u={date:t({formats:{full:`EEEE, do MMMM y`,long:`do MMMM y`,medium:`do MMM y`,short:`dd.MM.y`},defaultWidth:`full`}),time:t({formats:{full:`HH:mm:ss zzzz`,long:`HH:mm:ss z`,medium:`HH:mm:ss`,short:`HH:mm`},defaultWidth:`full`}),dateTime:t({formats:{full:`{{date}} {{time}}`,long:`{{date}} {{time}}`,medium:`{{date}}, {{time}}`,short:`{{date}}, {{time}}`},defaultWidth:`full`})},d={masculine:`ostatni`,feminine:`ostatnia`},f={masculine:`ten`,feminine:`ta`},p={masculine:`następny`,feminine:`następna`},m={0:`feminine`,1:`masculine`,2:`masculine`,3:`feminine`,4:`masculine`,5:`masculine`,6:`feminine`};function h(e,t,n,r){let a;if(i(t,n,r))a=f;else if(e===`lastWeek`)a=d;else if(e===`nextWeek`)a=p;else throw Error(`Cannot determine adjectives for token ${e}`);let o=m[t.getDay()];return`'${a[o]}' eeee 'o' p`}var g={lastWeek:h,yesterday:`'wczoraj o' p`,today:`'dzisiaj o' p`,tomorrow:`'jutro o' p`,nextWeek:h,other:`P`},_={code:`pl`,formatDistance:l,formatLong:u,formatRelative:(e,t,n,r)=>{let i=g[e];return typeof i==`function`?i(e,t,n,r):i},localize:{ordinalNumber:(e,t)=>String(e),era:e({values:{narrow:[`p.n.e.`,`n.e.`],abbreviated:[`p.n.e.`,`n.e.`],wide:[`przed naszą erą`,`naszej ery`]},defaultWidth:`wide`}),quarter:e({values:{narrow:[`1`,`2`,`3`,`4`],abbreviated:[`I kw.`,`II kw.`,`III kw.`,`IV kw.`],wide:[`I kwartał`,`II kwartał`,`III kwartał`,`IV kwartał`]},defaultWidth:`wide`,argumentCallback:e=>e-1}),month:e({values:{narrow:[`S`,`L`,`M`,`K`,`M`,`C`,`L`,`S`,`W`,`P`,`L`,`G`],abbreviated:[`sty`,`lut`,`mar`,`kwi`,`maj`,`cze`,`lip`,`sie`,`wrz`,`paź`,`lis`,`gru`],wide:[`styczeń`,`luty`,`marzec`,`kwiecień`,`maj`,`czerwiec`,`lipiec`,`sierpień`,`wrzesień`,`październik`,`listopad`,`grudzień`]},defaultWidth:`wide`,formattingValues:{narrow:[`s`,`l`,`m`,`k`,`m`,`c`,`l`,`s`,`w`,`p`,`l`,`g`],abbreviated:[`sty`,`lut`,`mar`,`kwi`,`maj`,`cze`,`lip`,`sie`,`wrz`,`paź`,`lis`,`gru`],wide:[`stycznia`,`lutego`,`marca`,`kwietnia`,`maja`,`czerwca`,`lipca`,`sierpnia`,`września`,`października`,`listopada`,`grudnia`]},defaultFormattingWidth:`wide`}),day:e({values:{narrow:[`N`,`P`,`W`,`Ś`,`C`,`P`,`S`],short:[`nie`,`pon`,`wto`,`śro`,`czw`,`pią`,`sob`],abbreviated:[`niedz.`,`pon.`,`wt.`,`śr.`,`czw.`,`pt.`,`sob.`],wide:[`niedziela`,`poniedziałek`,`wtorek`,`środa`,`czwartek`,`piątek`,`sobota`]},defaultWidth:`wide`,formattingValues:{narrow:[`n`,`p`,`w`,`ś`,`c`,`p`,`s`],short:[`nie`,`pon`,`wto`,`śro`,`czw`,`pią`,`sob`],abbreviated:[`niedz.`,`pon.`,`wt.`,`śr.`,`czw.`,`pt.`,`sob.`],wide:[`niedziela`,`poniedziałek`,`wtorek`,`środa`,`czwartek`,`piątek`,`sobota`]},defaultFormattingWidth:`wide`}),dayPeriod:e({values:{narrow:{am:`a`,pm:`p`,midnight:`półn.`,noon:`poł`,morning:`rano`,afternoon:`popoł.`,evening:`wiecz.`,night:`noc`},abbreviated:{am:`AM`,pm:`PM`,midnight:`północ`,noon:`południe`,morning:`rano`,afternoon:`popołudnie`,evening:`wieczór`,night:`noc`},wide:{am:`AM`,pm:`PM`,midnight:`północ`,noon:`południe`,morning:`rano`,afternoon:`popołudnie`,evening:`wieczór`,night:`noc`}},defaultWidth:`wide`,formattingValues:{narrow:{am:`a`,pm:`p`,midnight:`o półn.`,noon:`w poł.`,morning:`rano`,afternoon:`po poł.`,evening:`wiecz.`,night:`w nocy`},abbreviated:{am:`AM`,pm:`PM`,midnight:`o północy`,noon:`w południe`,morning:`rano`,afternoon:`po południu`,evening:`wieczorem`,night:`w nocy`},wide:{am:`AM`,pm:`PM`,midnight:`o północy`,noon:`w południe`,morning:`rano`,afternoon:`po południu`,evening:`wieczorem`,night:`w nocy`}},defaultFormattingWidth:`wide`})},match:{ordinalNumber:n({matchPattern:/^(\d+)?/i,parsePattern:/\d+/i,valueCallback:e=>parseInt(e,10)}),era:r({matchPatterns:{narrow:/^(p\.?\s*n\.?\s*e\.?\s*|n\.?\s*e\.?\s*)/i,abbreviated:/^(p\.?\s*n\.?\s*e\.?\s*|n\.?\s*e\.?\s*)/i,wide:/^(przed\s*nasz(ą|a)\s*er(ą|a)|naszej\s*ery)/i},defaultMatchWidth:`wide`,parsePatterns:{any:[/^p/i,/^n/i]},defaultParseWidth:`any`}),quarter:r({matchPatterns:{narrow:/^[1234]/i,abbreviated:/^(I|II|III|IV)\s*kw\.?/i,wide:/^(I|II|III|IV)\s*kwarta(ł|l)/i},defaultMatchWidth:`wide`,parsePatterns:{narrow:[/1/i,/2/i,/3/i,/4/i],any:[/^I kw/i,/^II kw/i,/^III kw/i,/^IV kw/i]},defaultParseWidth:`any`,valueCallback:e=>e+1}),month:r({matchPatterns:{narrow:/^[slmkcwpg]/i,abbreviated:/^(sty|lut|mar|kwi|maj|cze|lip|sie|wrz|pa(ź|z)|lis|gru)/i,wide:/^(stycznia|stycze(ń|n)|lutego|luty|marca|marzec|kwietnia|kwiecie(ń|n)|maja|maj|czerwca|czerwiec|lipca|lipiec|sierpnia|sierpie(ń|n)|wrze(ś|s)nia|wrzesie(ń|n)|pa(ź|z)dziernika|pa(ź|z)dziernik|listopada|listopad|grudnia|grudzie(ń|n))/i},defaultMatchWidth:`wide`,parsePatterns:{narrow:[/^s/i,/^l/i,/^m/i,/^k/i,/^m/i,/^c/i,/^l/i,/^s/i,/^w/i,/^p/i,/^l/i,/^g/i],any:[/^st/i,/^lu/i,/^mar/i,/^k/i,/^maj/i,/^c/i,/^lip/i,/^si/i,/^w/i,/^p/i,/^lis/i,/^g/i]},defaultParseWidth:`any`}),day:r({matchPatterns:{narrow:/^[npwścs]/i,short:/^(nie|pon|wto|(ś|s)ro|czw|pi(ą|a)|sob)/i,abbreviated:/^(niedz|pon|wt|(ś|s)r|czw|pt|sob)\.?/i,wide:/^(niedziela|poniedzia(ł|l)ek|wtorek|(ś|s)roda|czwartek|pi(ą|a)tek|sobota)/i},defaultMatchWidth:`wide`,parsePatterns:{narrow:[/^n/i,/^p/i,/^w/i,/^ś/i,/^c/i,/^p/i,/^s/i],abbreviated:[/^n/i,/^po/i,/^w/i,/^(ś|s)r/i,/^c/i,/^pt/i,/^so/i],any:[/^n/i,/^po/i,/^w/i,/^(ś|s)r/i,/^c/i,/^pi/i,/^so/i]},defaultParseWidth:`any`}),dayPeriod:r({matchPatterns:{narrow:/^(^a$|^p$|pó(ł|l)n\.?|o\s*pó(ł|l)n\.?|po(ł|l)\.?|w\s*po(ł|l)\.?|po\s*po(ł|l)\.?|rano|wiecz\.?|noc|w\s*nocy)/i,any:/^(am|pm|pó(ł|l)noc|o\s*pó(ł|l)nocy|po(ł|l)udnie|w\s*po(ł|l)udnie|popo(ł|l)udnie|po\s*po(ł|l)udniu|rano|wieczór|wieczorem|noc|w\s*nocy)/i},defaultMatchWidth:`any`,parsePatterns:{narrow:{am:/^a$/i,pm:/^p$/i,midnight:/pó(ł|l)n/i,noon:/po(ł|l)/i,morning:/rano/i,afternoon:/po\s*po(ł|l)/i,evening:/wiecz/i,night:/noc/i},any:{am:/^am/i,pm:/^pm/i,midnight:/pó(ł|l)n/i,noon:/po(ł|l)/i,morning:/rano/i,afternoon:/po\s*po(ł|l)/i,evening:/wiecz/i,night:/noc/i}},defaultParseWidth:`any`})},options:{weekStartsOn:1,firstWeekContainsDate:4},labels:{labelDayButton:(e,t,n,r)=>{let i=(r??new a(n)).format(e,`PPPP`);return t.today&&(i=`Dziś, ${i}`),t.selected&&(i=`${i}, zaznaczony`),i},labelMonthDropdown:`Wybierz miesiąc`,labelNext:`Przejdź do następnego miesiąca`,labelPrevious:`Przejdź do poprzedniego miesiąca`,labelWeekNumber:e=>`Tydzień ${e}`,labelYearDropdown:`Wybierz rok`,labelGrid:(e,t,n)=>(n??new a(t)).formatMonthYear(e),labelGridcell:(e,t,n,r)=>{let i=(r??new a(n)).format(e,`PPPP`);return t?.today&&(i=`Dziś, ${i}`),i},labelNav:`Pasek nawigacyjny`,labelWeekNumberHeader:`Numer tygodnia`,labelWeekday:(e,t,n)=>(n??new a(t)).format(e,`cccc`)}};export{_ as pl};
1
+ import{c as e,l as t,o as n,s as r}from"./en-US-DKYSujv3.js";import{t as i}from"./isSameWeek-2ftYGvBT.js";import{Dt as a}from"./index-CYVrs22O.js";var o={lessThanXSeconds:{one:{regular:`mniej niż sekunda`,past:`mniej niż sekundę`,future:`mniej niż sekundę`},twoFour:`mniej niż {{count}} sekundy`,other:`mniej niż {{count}} sekund`},xSeconds:{one:{regular:`sekunda`,past:`sekundę`,future:`sekundę`},twoFour:`{{count}} sekundy`,other:`{{count}} sekund`},halfAMinute:{one:`pół minuty`,twoFour:`pół minuty`,other:`pół minuty`},lessThanXMinutes:{one:{regular:`mniej niż minuta`,past:`mniej niż minutę`,future:`mniej niż minutę`},twoFour:`mniej niż {{count}} minuty`,other:`mniej niż {{count}} minut`},xMinutes:{one:{regular:`minuta`,past:`minutę`,future:`minutę`},twoFour:`{{count}} minuty`,other:`{{count}} minut`},aboutXHours:{one:{regular:`około godziny`,past:`około godziny`,future:`około godzinę`},twoFour:`około {{count}} godziny`,other:`około {{count}} godzin`},xHours:{one:{regular:`godzina`,past:`godzinę`,future:`godzinę`},twoFour:`{{count}} godziny`,other:`{{count}} godzin`},xDays:{one:{regular:`dzień`,past:`dzień`,future:`1 dzień`},twoFour:`{{count}} dni`,other:`{{count}} dni`},aboutXWeeks:{one:`około tygodnia`,twoFour:`około {{count}} tygodni`,other:`około {{count}} tygodni`},xWeeks:{one:`tydzień`,twoFour:`{{count}} tygodnie`,other:`{{count}} tygodni`},aboutXMonths:{one:`około miesiąc`,twoFour:`około {{count}} miesiące`,other:`około {{count}} miesięcy`},xMonths:{one:`miesiąc`,twoFour:`{{count}} miesiące`,other:`{{count}} miesięcy`},aboutXYears:{one:`około rok`,twoFour:`około {{count}} lata`,other:`około {{count}} lat`},xYears:{one:`rok`,twoFour:`{{count}} lata`,other:`{{count}} lat`},overXYears:{one:`ponad rok`,twoFour:`ponad {{count}} lata`,other:`ponad {{count}} lat`},almostXYears:{one:`prawie rok`,twoFour:`prawie {{count}} lata`,other:`prawie {{count}} lat`}};function s(e,t){if(t===1)return e.one;let n=t%100;if(n<=20&&n>10)return e.other;let r=n%10;return r>=2&&r<=4?e.twoFour:e.other}function c(e,t,n){let r=s(e,t);return(typeof r==`string`?r:r[n]).replace(`{{count}}`,String(t))}var l=(e,t,n)=>{let r=o[e];return n?.addSuffix?n.comparison&&n.comparison>0?`za `+c(r,t,`future`):c(r,t,`past`)+` temu`:c(r,t,`regular`)},u={date:t({formats:{full:`EEEE, do MMMM y`,long:`do MMMM y`,medium:`do MMM y`,short:`dd.MM.y`},defaultWidth:`full`}),time:t({formats:{full:`HH:mm:ss zzzz`,long:`HH:mm:ss z`,medium:`HH:mm:ss`,short:`HH:mm`},defaultWidth:`full`}),dateTime:t({formats:{full:`{{date}} {{time}}`,long:`{{date}} {{time}}`,medium:`{{date}}, {{time}}`,short:`{{date}}, {{time}}`},defaultWidth:`full`})},d={masculine:`ostatni`,feminine:`ostatnia`},f={masculine:`ten`,feminine:`ta`},p={masculine:`następny`,feminine:`następna`},m={0:`feminine`,1:`masculine`,2:`masculine`,3:`feminine`,4:`masculine`,5:`masculine`,6:`feminine`};function h(e,t,n,r){let a;if(i(t,n,r))a=f;else if(e===`lastWeek`)a=d;else if(e===`nextWeek`)a=p;else throw Error(`Cannot determine adjectives for token ${e}`);let o=m[t.getDay()];return`'${a[o]}' eeee 'o' p`}var g={lastWeek:h,yesterday:`'wczoraj o' p`,today:`'dzisiaj o' p`,tomorrow:`'jutro o' p`,nextWeek:h,other:`P`},_={code:`pl`,formatDistance:l,formatLong:u,formatRelative:(e,t,n,r)=>{let i=g[e];return typeof i==`function`?i(e,t,n,r):i},localize:{ordinalNumber:(e,t)=>String(e),era:e({values:{narrow:[`p.n.e.`,`n.e.`],abbreviated:[`p.n.e.`,`n.e.`],wide:[`przed naszą erą`,`naszej ery`]},defaultWidth:`wide`}),quarter:e({values:{narrow:[`1`,`2`,`3`,`4`],abbreviated:[`I kw.`,`II kw.`,`III kw.`,`IV kw.`],wide:[`I kwartał`,`II kwartał`,`III kwartał`,`IV kwartał`]},defaultWidth:`wide`,argumentCallback:e=>e-1}),month:e({values:{narrow:[`S`,`L`,`M`,`K`,`M`,`C`,`L`,`S`,`W`,`P`,`L`,`G`],abbreviated:[`sty`,`lut`,`mar`,`kwi`,`maj`,`cze`,`lip`,`sie`,`wrz`,`paź`,`lis`,`gru`],wide:[`styczeń`,`luty`,`marzec`,`kwiecień`,`maj`,`czerwiec`,`lipiec`,`sierpień`,`wrzesień`,`październik`,`listopad`,`grudzień`]},defaultWidth:`wide`,formattingValues:{narrow:[`s`,`l`,`m`,`k`,`m`,`c`,`l`,`s`,`w`,`p`,`l`,`g`],abbreviated:[`sty`,`lut`,`mar`,`kwi`,`maj`,`cze`,`lip`,`sie`,`wrz`,`paź`,`lis`,`gru`],wide:[`stycznia`,`lutego`,`marca`,`kwietnia`,`maja`,`czerwca`,`lipca`,`sierpnia`,`września`,`października`,`listopada`,`grudnia`]},defaultFormattingWidth:`wide`}),day:e({values:{narrow:[`N`,`P`,`W`,`Ś`,`C`,`P`,`S`],short:[`nie`,`pon`,`wto`,`śro`,`czw`,`pią`,`sob`],abbreviated:[`niedz.`,`pon.`,`wt.`,`śr.`,`czw.`,`pt.`,`sob.`],wide:[`niedziela`,`poniedziałek`,`wtorek`,`środa`,`czwartek`,`piątek`,`sobota`]},defaultWidth:`wide`,formattingValues:{narrow:[`n`,`p`,`w`,`ś`,`c`,`p`,`s`],short:[`nie`,`pon`,`wto`,`śro`,`czw`,`pią`,`sob`],abbreviated:[`niedz.`,`pon.`,`wt.`,`śr.`,`czw.`,`pt.`,`sob.`],wide:[`niedziela`,`poniedziałek`,`wtorek`,`środa`,`czwartek`,`piątek`,`sobota`]},defaultFormattingWidth:`wide`}),dayPeriod:e({values:{narrow:{am:`a`,pm:`p`,midnight:`półn.`,noon:`poł`,morning:`rano`,afternoon:`popoł.`,evening:`wiecz.`,night:`noc`},abbreviated:{am:`AM`,pm:`PM`,midnight:`północ`,noon:`południe`,morning:`rano`,afternoon:`popołudnie`,evening:`wieczór`,night:`noc`},wide:{am:`AM`,pm:`PM`,midnight:`północ`,noon:`południe`,morning:`rano`,afternoon:`popołudnie`,evening:`wieczór`,night:`noc`}},defaultWidth:`wide`,formattingValues:{narrow:{am:`a`,pm:`p`,midnight:`o półn.`,noon:`w poł.`,morning:`rano`,afternoon:`po poł.`,evening:`wiecz.`,night:`w nocy`},abbreviated:{am:`AM`,pm:`PM`,midnight:`o północy`,noon:`w południe`,morning:`rano`,afternoon:`po południu`,evening:`wieczorem`,night:`w nocy`},wide:{am:`AM`,pm:`PM`,midnight:`o północy`,noon:`w południe`,morning:`rano`,afternoon:`po południu`,evening:`wieczorem`,night:`w nocy`}},defaultFormattingWidth:`wide`})},match:{ordinalNumber:n({matchPattern:/^(\d+)?/i,parsePattern:/\d+/i,valueCallback:e=>parseInt(e,10)}),era:r({matchPatterns:{narrow:/^(p\.?\s*n\.?\s*e\.?\s*|n\.?\s*e\.?\s*)/i,abbreviated:/^(p\.?\s*n\.?\s*e\.?\s*|n\.?\s*e\.?\s*)/i,wide:/^(przed\s*nasz(ą|a)\s*er(ą|a)|naszej\s*ery)/i},defaultMatchWidth:`wide`,parsePatterns:{any:[/^p/i,/^n/i]},defaultParseWidth:`any`}),quarter:r({matchPatterns:{narrow:/^[1234]/i,abbreviated:/^(I|II|III|IV)\s*kw\.?/i,wide:/^(I|II|III|IV)\s*kwarta(ł|l)/i},defaultMatchWidth:`wide`,parsePatterns:{narrow:[/1/i,/2/i,/3/i,/4/i],any:[/^I kw/i,/^II kw/i,/^III kw/i,/^IV kw/i]},defaultParseWidth:`any`,valueCallback:e=>e+1}),month:r({matchPatterns:{narrow:/^[slmkcwpg]/i,abbreviated:/^(sty|lut|mar|kwi|maj|cze|lip|sie|wrz|pa(ź|z)|lis|gru)/i,wide:/^(stycznia|stycze(ń|n)|lutego|luty|marca|marzec|kwietnia|kwiecie(ń|n)|maja|maj|czerwca|czerwiec|lipca|lipiec|sierpnia|sierpie(ń|n)|wrze(ś|s)nia|wrzesie(ń|n)|pa(ź|z)dziernika|pa(ź|z)dziernik|listopada|listopad|grudnia|grudzie(ń|n))/i},defaultMatchWidth:`wide`,parsePatterns:{narrow:[/^s/i,/^l/i,/^m/i,/^k/i,/^m/i,/^c/i,/^l/i,/^s/i,/^w/i,/^p/i,/^l/i,/^g/i],any:[/^st/i,/^lu/i,/^mar/i,/^k/i,/^maj/i,/^c/i,/^lip/i,/^si/i,/^w/i,/^p/i,/^lis/i,/^g/i]},defaultParseWidth:`any`}),day:r({matchPatterns:{narrow:/^[npwścs]/i,short:/^(nie|pon|wto|(ś|s)ro|czw|pi(ą|a)|sob)/i,abbreviated:/^(niedz|pon|wt|(ś|s)r|czw|pt|sob)\.?/i,wide:/^(niedziela|poniedzia(ł|l)ek|wtorek|(ś|s)roda|czwartek|pi(ą|a)tek|sobota)/i},defaultMatchWidth:`wide`,parsePatterns:{narrow:[/^n/i,/^p/i,/^w/i,/^ś/i,/^c/i,/^p/i,/^s/i],abbreviated:[/^n/i,/^po/i,/^w/i,/^(ś|s)r/i,/^c/i,/^pt/i,/^so/i],any:[/^n/i,/^po/i,/^w/i,/^(ś|s)r/i,/^c/i,/^pi/i,/^so/i]},defaultParseWidth:`any`}),dayPeriod:r({matchPatterns:{narrow:/^(^a$|^p$|pó(ł|l)n\.?|o\s*pó(ł|l)n\.?|po(ł|l)\.?|w\s*po(ł|l)\.?|po\s*po(ł|l)\.?|rano|wiecz\.?|noc|w\s*nocy)/i,any:/^(am|pm|pó(ł|l)noc|o\s*pó(ł|l)nocy|po(ł|l)udnie|w\s*po(ł|l)udnie|popo(ł|l)udnie|po\s*po(ł|l)udniu|rano|wieczór|wieczorem|noc|w\s*nocy)/i},defaultMatchWidth:`any`,parsePatterns:{narrow:{am:/^a$/i,pm:/^p$/i,midnight:/pó(ł|l)n/i,noon:/po(ł|l)/i,morning:/rano/i,afternoon:/po\s*po(ł|l)/i,evening:/wiecz/i,night:/noc/i},any:{am:/^am/i,pm:/^pm/i,midnight:/pó(ł|l)n/i,noon:/po(ł|l)/i,morning:/rano/i,afternoon:/po\s*po(ł|l)/i,evening:/wiecz/i,night:/noc/i}},defaultParseWidth:`any`})},options:{weekStartsOn:1,firstWeekContainsDate:4},labels:{labelDayButton:(e,t,n,r)=>{let i=(r??new a(n)).format(e,`PPPP`);return t.today&&(i=`Dziś, ${i}`),t.selected&&(i=`${i}, zaznaczony`),i},labelMonthDropdown:`Wybierz miesiąc`,labelNext:`Przejdź do następnego miesiąca`,labelPrevious:`Przejdź do poprzedniego miesiąca`,labelWeekNumber:e=>`Tydzień ${e}`,labelYearDropdown:`Wybierz rok`,labelGrid:(e,t,n)=>(n??new a(t)).formatMonthYear(e),labelGridcell:(e,t,n,r)=>{let i=(r??new a(n)).format(e,`PPPP`);return t?.today&&(i=`Dziś, ${i}`),i},labelNav:`Pasek nawigacyjny`,labelWeekNumberHeader:`Numer tygodnia`,labelWeekday:(e,t,n)=>(n??new a(t)).format(e,`cccc`)}};export{_ as pl};
@@ -0,0 +1 @@
1
+ var e={common:{status:{backlog:`Backlog`,todo:`Do zrobienia`,in_progress:`W toku`,in_review:`W przeglądzie`,done:`Gotowe`,cancelled:`Anulowane`},priority:{urgent:`Pilny`,high:`Wysoki`,medium:`Średni`,low:`Niski`,none:`Brak priorytetu`},kind:{feature:`Funkcja`,bug:`Błąd`,chore:`Prace porządkowe`,research:`Badanie`,documentation:`Dokumentacja`},difficulty:{low:`Niska`,med:`Średnia`,high:`Wysoka`,none:`Brak trudności`},role:{reader:`Tylko odczyt`,writer:`Może edytować`,admin:`Administrator`},permission:{ticket:{write:{label:`Edycja zadań`,description:`Tworzenie, edycja, przenoszenie, przejmowanie i komentowanie zadań; tworzenie projektów`},delete:{label:`Usuwanie zadań`,description:`Trwałe usuwanie zadań`}},project:{manage:{label:`Zarządzanie projektami`,description:`Szczegóły projektu, przepływ pracy, etykiety, pola, integracje i cykl życia`}},member:{manage:{label:`Zarządzanie członkami`,description:`Dodawanie, zmiana i usuwanie członków`}},invitation:{manage:{label:`Zarządzanie zaproszeniami`,description:`Zapraszanie osób przez e-mail`}},sharing:{manage:{label:`Zarządzanie udostępnianiem`,description:`Publiczne linki tylko do odczytu i kanały kalendarza`}},workspace:{manage:{label:`Zarządzanie przestrzenią roboczą`,description:`Szczegóły przestrzeni roboczej, wspólne etykiety i role`}}},customFieldType:{text:`Tekst`,number:`Liczba`,date:`Data`,checkbox:`Pole wyboru`,select:`Lista wyboru`,multiselect:`Wielokrotny wybór`},customField:{removedOption:`Usunięta opcja`,checked:`Tak`},filterField:{status:`Status`,priority:`Priorytet`,kind:`Rodzaj`,difficulty:`Trudność`,label:`Etykieta`,assigneeId:`Osoba przypisana`,customField:`Pole`},sort:{priority:`Priorytet`,updated:`Ostatnio zaktualizowane`,created:`Ostatnio utworzone`,title:`Tytuł`,labels:`Etykiety`,due:`Termin`,start:`Data rozpoczęcia`,number:`Numer zadania`,status:`Status`,difficulty:`Trudność`,kind:`Rodzaj`,assignee:`Osoba przypisana`,manual:`Ręcznie`},due:{overdue:`Po terminie`,today:`Termin dzisiaj`,week:`Termin w tym tygodniu`,scheduled:`Ma termin`,none:`Bez terminu`},relation:{blocks:{outgoing:`Blokuje`,incoming:`Jest blokowane przez`},related:{outgoing:`Powiązane z`,incoming:`Powiązane z`},duplicate:{outgoing:`Duplikuje`,incoming:`Jest duplikowane przez`},causes:{outgoing:`Powoduje`,incoming:`Jest powodowane przez`},clones:{outgoing:`Klonuje`,incoming:`Jest klonowane przez`},implements:{outgoing:`Implementuje`,incoming:`Jest implementowane przez`},reviews:{outgoing:`Przegląda`,incoming:`Jest przeglądane przez`}},remoteKind:{branch:`Gałąź`,pull_request:`Pull request`,issue:`Zgłoszenie`},notificationCategory:{assignment:`Przypisania`,status:`Zmiany statusu`,comment:`Komentarze`,mention:`Wzmianki`,update:`Inne aktualizacje`,due_soon:`Wkrótce termin`,overdue:`Po terminie`},destinationEvent:{created:`Nowe zadania`},deliveryKind:{email:`E-mail`,webhook:`Webhook`},change:{pull_request:{name:`Pull request`,opened:`Pull request otwarty`,draft:`Wersja robocza pull requesta`,merged:`Pull request scalony`,closed:`Pull request zamknięty bez scalenia`},merge_request:{name:`Merge request`,opened:`Merge request otwarty`,draft:`Wersja robocza merge requesta`,merged:`Merge request scalony`,closed:`Merge request zamknięty bez scalenia`},branchCreated:`Gałąź utworzona`},issueLinkState:{active:`Synchronizacja`,paused:`Wstrzymane`,review:`Wymaga przeglądu`,creating:`Tworzenie zgłoszenia`,unknown:`Utworzenie niepotwierdzone`},importStatus:{previewed:`Gotowe do importu`,running:`Importowanie`,completed:`Zaimportowano`,failed:`Niepowodzenie`,cancelled:`Anulowano`},importProvider:{linear:{project:`Zespół`,setup:`Utwórz osobisty klucz API w Linear w sekcji Settings › Security & access; wystarczy dostęp do odczytu.`},jira:{project:`Projekt`,setup:`Jira Cloud loguje za pomocą adresu e-mail konta i tokenu API z id.atlassian.com; Data Center i Server używają osobistego tokenu dostępu. Wystarczy uprawnienie do przeglądania projektu.`},trello:{project:`Tablica`,setup:`Użyj klucza API Power-Upa, którym administrujesz na trello.com/power-ups/admin, oraz wygenerowanego dla niego tokenu; wystarczy dostęp do odczytu.`},plane:{project:`Projekt`,setup:`Utwórz osobisty token dostępu w Plane w sekcji Profile settings › Personal access tokens. Adres API Plane Cloud to https://api.plane.so; klucz URL przestrzeni roboczej to pierwsza część jej adresu internetowego.`},planka:{project:`Tablica`,setup:`Zaloguj się kontem PLANKA, które może otworzyć tablicę; sesja otwarta przez Kanvil kończy się wraz z odczytem. Administratorzy PLANKA 2 mogą zamiast tego wydawać klucze API.`},kaneo:{project:`Projekt`,setup:`Utwórz klucz API w Kaneo w sekcji Settings › Account › Developer.`}},plankaSignIn:{password:`Nazwa użytkownika i hasło`,api_key:`Klucz API`},jiraEdition:{cloud:`Cloud`,data_center:`Data Center lub Server`},event:{time_entry:{created:`Utworzono wpis czasu`,updated:`Zaktualizowano wpis czasu`,deleted:`Usunięto wpis czasu`},label:{created:`Etykieta utworzona`,updated:`Etykieta zaktualizowana`,deleted:`Etykieta usunięta`},workflow:{created:`Dodano stan przepływu pracy`,updated:`Zmieniono stan przepływu pracy`,deleted:`Usunięto stan przepływu pracy`},custom_field:{created:`Pole utworzone`,updated:`Pole zaktualizowane`,deleted:`Pole usunięte`},ticket:{created:`Zadanie utworzone`,updated:`Zadanie zaktualizowane`,deleted:`Zadanie usunięte`,moved:`Przeniesione z innego projektu`,moved_away:`Przeniesione do innego projektu`,due_soon:`Wkrótce termin`,overdue:`Po terminie`,claimed:`Praca przejęta`},claim:{renewed:`Przejęcie odnowione`,released:`Przejęcie zwolnione`,recovered:`Przejęcie odzyskane`},comment:{created:`Dodano komentarz`,updated:`Edytowano komentarz`,deleted:`Usunięto komentarz`},relation:{added:`Dodano powiązanie`,removed:`Usunięto powiązanie`},attachment:{created:`Załączono plik`,deleted:`Usunięto plik`},evidence:{added:`Załączono dowód`},resource:{added:`Dodano link`,updated:`Edytowano link`,removed:`Usunięto link`},calendar_feed:{created:`Utworzono kanał kalendarza`,revoked:`Odwołano kanał kalendarza`},project:{created:`Projekt utworzony`,updated:`Projekt zaktualizowany`,archived:`Projekt zarchiwizowany`,restored:`Projekt przywrócony`,transferred:`Projekt przeniesiony do innej przestrzeni roboczej`,deleted:`Projekt usunięty`},membership:{updated:`Zmieniono dostęp do projektu`},workspace:{owner_changed:`Zmieniono właściciela przestrzeni roboczej`},role:{created:`Rola utworzona`,updated:`Rola zmieniona`,deleted:`Rola usunięta`},invitation:{updated:`Zmieniono zaproszenie`},destination:{created:`Dodano miejsce docelowe`,updated:`Zmieniono miejsce docelowe`,deleted:`Usunięto miejsce docelowe`},repository:{connected:`Połączono repozytorium`,updated:`Zmieniono połączenie z repozytorium`,disconnected:`Odłączono repozytorium`,received:`Odebrano webhook repozytorium`},issue_link:{updated:`Zmieniono synchronizację zgłoszenia`}},error:{network:`Nie można połączyć się z Kanvil. Sprawdź połączenie i spróbuj ponownie.`,fallback:`Nie udało się wykonać żądania`,input:`Dane wejściowe`,code:{unauthorized:`Zaloguj się, aby kontynuować.`,session_required:`Ta czynność wymaga zalogowanego konta.`,account_disabled:`To konto jest wyłączone.`,forbidden:`Brak uprawnień do wykonania tej czynności.`,insufficient_scope:`To poświadczenie nie pozwala na tę czynność.`,workspace_scope_required:`Ta czynność wymaga konta z dostępem do przestrzeni roboczej.`,invalid_origin:`To źródło nie jest dozwolone.`,not_found:`Nie znaleziono tego elementu lub nie masz do niego dostępu.`,version_conflict:`To zmieniło się od czasu wczytania. Odśwież i spróbuj ponownie.`,time_entry_conflict:`Ten użytkownik ma już aktywny wpis czasu w tym zgłoszeniu.`,claim_conflict:`To zadanie jest przejęte przez innego wykonawcę.`,idempotency_conflict:`To żądanie zostało już użyte dla innej zmiany.`,project_archived:`Przywróć zarchiwizowany projekt, zanim go zmienisz.`,rate_limited:`Zbyt wiele zmian w krótkim czasie. Odczekaj i spróbuj ponownie.`,snapshot_required:`Kanał na żywo jest opóźniony. Odśwież, aby kontynuować.`,request_failed:`Nie udało się wykonać żądania`}},action:{add:`Dodaj`,apply:`Zastosuj`,back:`Wstecz`,cancel:`Anuluj`,clear:`Wyczyść`,close:`Zamknij`,confirm:`Potwierdź`,continue:`Kontynuuj`,copy:`Kopiuj`,create:`Utwórz`,delete:`Usuń`,done:`Gotowe`,edit:`Edytuj`,open:`Otwórz`,remove:`Usuń`,rename:`Zmień nazwę`,reset:`Resetuj`,retry:`Ponów`,save:`Zapisz`,search:`Szukaj`},state:{copied:`Skopiowano`,loading:`Wczytywanie…`,saved:`Zapisano`,saving:`Zapisywanie…`,none:`Brak`,unassigned:`Nieprzypisane`},evidenceKind:{pull_request:`Pull request`,test:`Test`,review:`Przegląd`,deployment:`Wdrożenie`,device:`Urządzenie`,other:`Inne`},evidenceOutcome:{reported:`Zgłoszono`,pending:`Oczekuje`,passed:`Zaliczono`,failed:`Niezaliczono`},readinessReason:{project_archived:`Projekt jest zarchiwizowany`,not_open:`Zadanie musi być w stanie Do zrobienia i nie może być zarchiwizowane`,not_enabled:`Praca agentów nie została włączona`,missing_description:`Dodaj opis`,missing_acceptance_criteria:`Dodaj kryteria akceptacji`,missing_difficulty:`Wybierz trudność`,duplicate:`To zadanie jest oznaczone jako duplikat`,claim_recovery_required:`Przed odzyskaniem własności potwierdź, że poprzedni wykonawca zakończył pracę`,claimed:`Przejęte przez: {{worker}}`,dependency:`{{key}} nie jest ukończone`},person:{deleted:`Usunięte konto`,former:`Były członek`},signIn:{codeTitle:`Zaloguj się kodem`,resetTitle:`Resetowanie hasła`,codeSent:`Jeśli {{email}} ma konto, kod jest już w drodze. Wygasa za 10 minut.`,code:`Kod`,newPassword:`Nowe hasło`,sendCode:`Wyślij kod e-mailem`,back:`Wróć do logowania`,resend:`Wyślij kod ponownie`,resent:`Kod wysłany ponownie`,emailCode:`Wyślij kod logowania e-mailem`,forgot:`Nie pamiętasz hasła?`,resetDone:`Hasło zostało zresetowane. Zaloguj się nowym hasłem.`,resetDoneTitle:`Hasło zresetowane`,resetDoneBody:`Zaloguj się nowym hasłem.`,invalidCode:`Ten kod jest nieprawidłowy, został już użyty lub wygasł. Wyślij go ponownie, aby otrzymać prawidłowy kod.`,localPassword:`Hasło lokalne`},language:{label:`Język`,system:`Domyślny systemowy`}},shell:{ui:{showValue:`Pokaż: {{label, lowercase}}`,hideValue:`Ukryj: {{label, lowercase}}`,previousPage:`Poprzednia strona ({{noun}})`,nextPage:`Następna strona ({{noun}})`,pageRange:`{{from}}–{{to}} z {{total}}`,priority:`Priorytet: {{label, lowercase}}`,working:`Przetwarzanie…`,searchPlaceholder:`Szukaj…`,clearValue:`Wyczyść: {{label, lowercase}}`,copyValue:`Kopiuj: {{label, lowercase}}`,copied:`Skopiowano: {{value}}`},documentTitle:`{{name}} · Kanvil`,openKanvil:`Otwórz Kanvil`,page:{home:`Strona główna`,myWork:`Moja praca`,inbox:`Skrzynka odbiorcza`,search:`Wyszukiwanie`,settings:`Ustawienia`,planning:`Planowanie`,ticket:`Zadanie`,tickets:`Zadania`,projects:`Projekty`},connection:{restored:`Połączenie przywrócone`,lost:`Utracono połączenie`,reconnecting:`Ponowne łączenie…`,reload:`Odśwież`,signIn:`Zaloguj się, aby ponownie połączyć`},app:{skipToContent:`Przejdź do treści`,assigned:`Przypisane do Ciebie`,openCount_one:`{{count, number}} otwarte`,openCount_few:`{{count, number}} otwarte`,openCount_many:`{{count, number}} otwartych`,openCount_other:`{{count, number}} otwartego`,noAssigned:`Brak otwartych zadań przypisanych do Ciebie`,allInMyWork_one:`{{count, number}} w sekcji Moja praca`,allInMyWork_few:`Wszystkie {{count, number}} w sekcji Moja praca`,allInMyWork_many:`Wszystkie {{count, number}} w sekcji Moja praca`,allInMyWork_other:`Wszystkie {{count, number}} w sekcji Moja praca`,openMyWork:`Otwórz Moją pracę`,recentActivity:`Ostatnia aktywność`,noActivity:`Brak aktywności`,searchProjects:`Szukaj projektów`,projectCount_one:`{{count, number}} projekt`,projectCount_few:`{{count, number}} projekty`,projectCount_many:`{{count, number}} projektów`,projectCount_other:`{{count, number}} projektu`,noMatchingProjects:`Brak pasujących projektów`,clearSearch:`Wyczyść wyszukiwanie`,noWorkspaces:`Brak przestrzeni roboczych`,noActiveProjects:`Brak aktywnych projektów`,noProjects:`Brak projektów`,archivedProjects:`Zarchiwizowane projekty`,archived:`Zarchiwizowane`,noOpenTickets:`Brak otwartych zadań`,overdueCount_one:`{{count, number}} po terminie`,overdueCount_few:`{{count, number}} po terminie`,overdueCount_many:`{{count, number}} po terminie`,overdueCount_other:`{{count, number}} po terminie`,percentDone:`{{percent}} gotowe`,nextDue:`najbliższy termin <time/>`,projectSettingsFor:`Ustawienia projektu {{name}}`,pageNotFound:`Nie znaleziono strony`,openHome:`Otwórz stronę główną`,tryAgain:`Spróbuj ponownie`,adminRequired:`Wymagany jest dostęp administratora instancji`,projectNotFound:`Nie znaleziono projektu`,noWorkspaceSelected:`Nie wybrano przestrzeni roboczej`},auth:{signIn:`Zaloguj się`,createOwner:`Utwórz konto właściciela`,ownerHint:`Pierwsze konto administruje tą instancją.`,invitedHint:`Zaloguj się adresem e-mail z zaproszenia, aby je przyjąć.`,signInWith:`Zaloguj się przez {{provider}}`,useEmail:`Użyj adresu e-mail i hasła`,or:`lub`,name:`Imię i nazwisko`,setupToken:`Token konfiguracji`,setupTokenHint:`Użyj KANVIL_SETUP_TOKEN z konfiguracji instancji.`,email:`E-mail`,password:`Hasło`,signingIn:`Logowanie…`,createAccount:`Utwórz konto`,consent:{expired:`Żądanie autoryzacji wygasło. Połącz klienta ponownie.`,title:`Autoryzuj {{client}}`,titleUnnamed:`Autoryzuj klienta`,subtitle:`Ten klient prosi o dostęp jako Twoje konto. Uprawnienia w projektach nadal obowiązują.`,deny:`Odmów`,allow:`Zezwól na dostęp`},invitation:{unavailable:`Zaproszenie niedostępne`,join:`Dołącz do {{workspace}}`,invited:`Zaproszony adres`,from:`Od`,access:`Dostęp`,removedProjects:`Usunięte projekty`,wholeWorkspace:`Cała przestrzeń robocza`,expires:`Wygasa`,expired:`To zaproszenie wygasło. Poproś administratora przestrzeni roboczej o nowe zaproszenie.`,revoked:`To zaproszenie zostało odwołane. Poproś administratora przestrzeni roboczej o nowe zaproszenie.`,accepted:`To zaproszenie zostało już przyjęte. Poproś administratora przestrzeni roboczej o nowe zaproszenie.`,wrongAccount:`Zalogowano jako <account>{{current}}</account>. Zaloguj się jako {{invited}}, aby przyjąć.`,signOut:`Wyloguj się`,joined:`Dołączono do {{workspace}}`,accept:`Przyjmij zaproszenie`},callback:{cancelled:`Logowanie zostało anulowane. Spróbuj ponownie, gdy wszystko będzie gotowe.`,linkedElsewhere:`Ta tożsamość jest już połączona z innym kontem Kanvil. Użyj innej tożsamości lub skontaktuj się z administratorem.`,notLinked:`Ta tożsamość nie jest połączona z kontem Kanvil. Zaloguj się kontem lokalnym i połącz ją w Ustawieniach.`,expired:`Żądanie logowania wygasło lub nie można go zweryfikować. Spróbuj ponownie z tego ekranu.`,emailMismatch:`Nie można połączyć adresu e-mail dostawcy tożsamości. Skontaktuj się z administratorem.`,failed:`Nie udało się dokończyć logowania. Spróbuj ponownie lub skontaktuj się z administratorem.`}},you:`Ty`,inbox:{markAllRead:`Oznacz wszystkie jako przeczytane`,clearRead:`Wyczyść przeczytane`,cleared_one:`Wyczyszczono {{count, number}} przeczytane powiadomienie`,cleared_few:`Wyczyszczono {{count, number}} przeczytane powiadomienia`,cleared_many:`Wyczyszczono {{count, number}} przeczytanych powiadomień`,cleared_other:`Wyczyszczono {{count, number}} przeczytanego powiadomienia`,unread:`Nieprzeczytane`,mentions:`Wzmianki`,all:`Wszystkie powiadomienia`,noUnread:`Brak nieprzeczytanych powiadomień`,noMentions:`Brak wzmianek`,noNotifications:`Brak powiadomień`,markUnread:`Oznacz jako nieprzeczytane`,markRead:`Oznacz jako przeczytane`,dismiss:`Odrzuć`},search:{field:`Przeszukaj przestrzeń roboczą`,placeholder:`Szukaj zadań, projektów, komentarzy, aktywności…`,tab:{all:`Wszystko`,project:`Projekty`,ticket:`Zadania`,comment:`Komentarze`,activity:`Aktywność`},indexing:`Zewnętrzne wyszukiwanie nadrabia zaległości, więc wyniki zadań pochodzą z PostgreSQL.`,empty:`Szukaj zadań, projektów, komentarzy i aktywności`,noResults:`Brak wyników dla „{{query}}”`,results:`Wyniki wyszukiwania`,pages:`Strony wyników`,previous:`Poprzednia`,next:`Następna`,type:{project:`Projekt`,ticket:`Zadanie`,comment:`Komentarz`,activity:`Aktywność`}},column:{key:`Zadanie`,labels:`Etykiety`,scopes:`Zakresy`,status:`Status`,priority:`Priorytet`,difficulty:`Trudność`,kind:`Rodzaj`,assigneeId:`Osoba przypisana`,startAt:`Początek`,dueAt:`Termin`,createdAt:`Utworzono`,updatedAt:`Zaktualizowano`},public:{notShared:`Ten projekt nie jest udostępniony`,notSharedHint:`Link został wyłączony lub nigdy nie istniał. Członkowie mogą się zalogować, aby go przeczytać.`,noTickets:`Brak zadań`,ticketUnavailable:`Zadanie niedostępne`,backToTickets:`Wróć do zadań`,description:`Opis`,noDescription:`_Brak opisu_`,acceptanceCriteria:`Kryteria akceptacji`,noAcceptanceCriteria:`_Brak kryteriów akceptacji_`,ticketProperties:`Właściwości zadania`,properties:`Właściwości`,status:`Status`,priority:`Priorytet`,kind:`Rodzaj`,difficulty:`Trudność`,startDate:`Data rozpoczęcia`,dueDate:`Termin`,labels:`Etykiety`,scopes:`Zakresy`,created:`Utworzono`,updated:`Zaktualizowano`,relationships:`Powiązania`,parent:`Nadrzędne`,child:`Podrzędne`},sidebar:{workspace:`Przestrzeń robocza`,unread_one:`{{count, number}} nieprzeczytane`,unread_few:`{{count, number}} nieprzeczytane`,unread_many:`{{count, number}} nieprzeczytanych`,unread_other:`{{count, number}} nieprzeczytanego`,userSettings:`Ustawienia użytkownika`,administration:`Administracja`,signOut:`Wyloguj się`,projectSettings:`Ustawienia projektu`},workspace:{new:`Nowa przestrzeń robocza`,name:`Nazwa przestrzeni roboczej`,key:`Klucz przestrzeni roboczej`,create:`Utwórz przestrzeń roboczą`,workspaces:`Przestrzenie robocze`,switch:`Przełącz przestrzeń roboczą`,settings:`Ustawienia przestrzeni roboczej`},palette:{open:`Przejdź do…`,title:`Przejdź do`,description:`Znajdź projekt, zadanie, stronę lub czynność`,placeholder:`Szukaj zadań, projektów, stron, czynności…`,searching:`Wyszukiwanie…`,noResults:`Brak wyników`,jumpTo:`Przejdź do`,openKey:`Otwórz {{key}} w {{project}}`,resultsIn:`Wyniki w {{workspace}}`,results:`Wyniki`,seeAll_one:`Pokaż {{count, number}} wynik`,seeAll_few:`Pokaż wszystkie {{count, number}} wyniki`,seeAll_many:`Pokaż wszystkie {{count, number}} wyników`,seeAll_other:`Pokaż wszystkie {{count, number}} wyniku`,actions:`Czynności`,pages:`Strony`,newTicketIn:`Nowe zadanie w {{project}}`,myTicketsIn:`Moje zadania w {{project}}`,lightMode:`Przełącz na tryb jasny`,darkMode:`Przełącz na tryb ciemny`,keywords:{jump:`{{query}} przejdź otwórz`,allResults:`wszystkie wyniki {{query}}`,newTicket:`nowe zadanie utwórz`,myTickets:`moje zadania przypisane do mnie`,lightMode:`przełącz tryb jasny motyw wygląd`,darkMode:`przełącz tryb ciemny motyw wygląd`,help:`skróty klawiszowe pomoc`,home:`strona główna przegląd wszystkie projekty`,myWork:`moja praca przypisane zadania`,search:`szukaj komentarze aktywność projekty zadania`,inbox:`skrzynka odbiorcza powiadomienia`,settings:`ustawienia {{scope}} {{label}}`}},actionCategory:{general:`Ogólne`,ticketList:`Lista zadań`,inbox:`Skrzynka odbiorcza`,ticket:`Zadanie`,search:`Wyszukiwanie`,markdown:`Markdown`},action:{palette:`Przejdź do dowolnego miejsca`,help:`Skróty klawiszowe`,sidebar:`Przełącz pasek boczny`,newTicket:`Nowe zadanie`,search:`Szukaj zadań`,highlight:`Wyróżnij następne lub poprzednie zadanie`,open:`Otwórz wyróżnione zadanie`,preview:`Podgląd wyróżnionego zadania obok listy`,select:`Zaznacz wyróżnione zadanie`,properties:`Ustaw status, priorytet lub osobę przypisaną wyróżnionego zadania`,inboxHighlight:`Wyróżnij następne lub poprzednie powiadomienie`,inboxOpen:`Czytaj zadanie wyróżnionego powiadomienia obok skrzynki odbiorczej`,inboxRead:`Oznacz wyróżnione powiadomienie jako przeczytane lub nieprzeczytane`,inboxDismiss:`Odrzuć wyróżnione powiadomienie`,step:`Otwórz następne lub poprzednie zadanie`,edit:`Edytuj zadanie`,save:`Zapisz zadanie lub komentarz`,results:`Poruszaj się po wynikach wyszukiwania`,insertBlock:`Wstaw tabelę, diagram, plik lub inny blok w edytorze wizualnym`},move:{top:{label:`Przenieś wyróżnione zadanie na górę`,menu:`Przenieś na górę`},up:{label:`Przenieś wyróżnione zadanie wyżej`,menu:`Przenieś wyżej`},down:{label:`Przenieś wyróżnione zadanie niżej`,menu:`Przenieś niżej`},bottom:{label:`Przenieś wyróżnione zadanie na dół`,menu:`Przenieś na dół`},previous:{label:`Przenieś wyróżnione zadanie do poprzedniego statusu`,menu:`Przenieś do poprzedniego statusu`},next:{label:`Przenieś wyróżnione zadanie do następnego statusu`,menu:`Przenieś do następnego statusu`}},copy:{link:{label:`Kopiuj link`,copied:`Link do zadania`},keyAndTitle:{label:`Kopiuj klucz i tytuł`,copied:`Zadanie`},title:{label:`Kopiuj tytuł`,copied:`Tytuł`},markdown:{label:`Kopiuj jako Markdown`,copied:`Markdown`},branch:{label:`Kopiuj nazwę gałęzi`,copied:`Nazwa gałęzi`}},settingsNav:{account:`Konto`,settings:`Ustawienia`,workspace:`Przestrzeń robocza`,workspaceSettings:`Ustawienia przestrzeni roboczej`,projects:`Projekty`,projectSettings:`Ustawienia projektu`,administration:`Administracja`,section:{profile:`Profil i bezpieczeństwo`,appearance:`Wygląd`,preferences:`Preferencje`,credentials:`Klucze API`,notifications:`Powiadomienia`,general:`Ogólne`,members:`Członkowie`,roles:`Role`,labels:`Etykiety`,workflow:`Przepływ pracy`,fields:`Pola`,integrations:`Integracje`,calendar:`Kanały kalendarza`,storage:`Przechowywanie plików`,search:`Wyszukiwanie`,events:`Dostarczanie zdarzeń`,users:`Użytkownicy`,workspaces:`Przestrzenie robocze`,authentication:`Uwierzytelnianie`}},browser:{copyFailed:`Kopiowanie nie powiodło się. Zaznacz tekst i skopiuj go ręcznie.`,readFailed:`Nie można odczytać pliku`,encodeFailed:`Nie można zakodować pliku`,imageTooBig:`Wybierz obraz mniejszy niż 10 MB.`,cannotResize:`Ta przeglądarka nie może zmienić rozmiaru obrazu.`,prepareFailed:`Nie można przygotować obrazu.`,stillTooLarge:`Ten obraz jest nadal zbyt duży po zmianie rozmiaru. Wybierz prostszy obraz.`},primitive:{close:`Zamknij`,more:`Więcej`,breadcrumb:`ścieżka nawigacji`,sidebar:`Pasek boczny`,sidebarDescription:`Wyświetla mobilny pasek boczny.`,toggleSidebar:`Przełącz pasek boczny`,resizeSidebar:`Zmień rozmiar paska bocznego`,expandSidebar:`Rozwiń pasek boczny`,commandTitle:`Paleta poleceń`,commandDescription:`Wyszukaj polecenie do wykonania…`}},ticket:{list:{selectSection:`Zaznacz zadania: {{section}}`,expandSection:`Rozwiń zadania: {{section}}`,collapseSection:`Zwiń zadania: {{section}}`,sectionTickets:`Zadania: {{section}}`,later:`Później`,selectAll:`Zaznacz wszystkie wyświetlane zadania`,selectTicket:`Zaznacz {{key}}`,title:`Tytuł`,all:`Wszystkie`,planned:`Zaplanowane`,archived:`Zarchiwizowane`,allTickets:`Wszystkie zadania`,customView:`Widok niestandardowy`,sectionCount:`{{n, number}} {{section}}`,planning:`Planowanie: {{project}}`,collection:`{{source}} ({{sections}})`,moved:`Przeniesiono {{key}}`,movedTo:`Przeniesiono {{key}} do: {{status}}`,movedAbove:`Przeniesiono {{key}} nad {{neighbor}}`,movedBelow:`Przeniesiono {{key}} pod {{neighbor}}`,movedToAbove:`Przeniesiono {{key}} do: {{status}}, nad {{neighbor}}`,movedToBelow:`Przeniesiono {{key}} do: {{status}}, pod {{neighbor}}`,emptyFiltered:`Brak pasujących zadań`,emptyPlanning:`Nic nie zaplanowano ani nie zarchiwizowano`,emptyProject:`Brak zadań`,emptyWork:`Brak otwartych zadań przypisanych do Ciebie`,createFirst:`Utwórz pierwsze zadanie`,activeWork:`Bieżąca praca`,views:`Widoki zadań`,saveCurrentView:`Zapisz bieżący widok`,deleteView:`Usuń widok {{name}}`,deleteViewConfirm:`Usunąć {{name}} z zapisanych widoków? Zadania pozostaną bez zmian.`,planningLink:`Planowanie`,newTicketShortcut:`Nowe zadanie ({{shortcut}})`,saveView:`Zapisz widok`,viewSaved:`Widok zapisany`,viewName:`Nazwa widoku`,retry:`Ponów wczytywanie zadań`,board:`Tablica zadań`,tickets:`Zadania`,resizeColumn:`Zmień szerokość kolumny {{column}}`,count_one:`{{count, number}} zadanie`,count_few:`{{count, number}} zadania`,count_many:`{{count, number}} zadań`,count_other:`{{count, number}} zadania`,scheduledCount_one:`{{count, number}} zaplanowane zadanie`,scheduledCount_few:`{{count, number}} zaplanowane zadania`,scheduledCount_many:`{{count, number}} zaplanowanych zadań`,scheduledCount_other:`{{count, number}} zaplanowanego zadania`},move:{destination:`Miejsce docelowe`,projectPlaceholder:`Przenieś do projektu…`,blockers:`Rozwiąż przed przeniesieniem`,submit:`Przenieś zadanie`,pending:`Przenoszenie…`},picker:{placeholder:`Wybierz zadanie`,loading:`Wczytywanie zadania…`,searchLabel:`Szukaj: {{label, lowercase}}`,searchPlaceholder:`Szukaj po tytule lub kluczu…`,noParent:`Brak zadania nadrzędnego`,searching:`Wyszukiwanie…`,empty:`Nie znaleziono zadań`},property:{status:`Status`,priority:`Priorytet`,kind:`Rodzaj`,difficulty:`Trudność`,assignee:`Osoba przypisana`,you:`{{name}} (Ty)`,assignTo:`Przypisz do…`,set:`Ustaw: {{label, lowercase}}…`,search:`Szukaj: {{label, lowercase}}`,noMatches:`Brak dopasowań`},field:{mixed:`Różne`,unchecked:`Nie`,noValue:`Brak wartości`},project:{label:`Projekt`,placeholder:`Utwórz w projekcie…`,search:`Szukaj projektów`},tags:{labels:`Etykiety`,scopes:`Zakresy`,summary:`{{label}}: {{tags}}`,edit:`Edytuj: {{label, lowercase}}`,editValues:`Edytuj {{label, lowercase}}: {{tags}}`,editMixed:`Edytuj {{label, lowercase}}: różne`,mixed:`{{label}}: różne`,none:`{{label}}: brak`,mixedNote:`Zaznaczone zadania mają różne wartości ({{label, lowercase}}).`,clear:`Wyczyść: {{label, lowercase}}`,replace:`Zastąp: {{label, lowercase}}`},tagInput:{remove:`Usuń ({{label, lowercase}}): {{tag}}`,addAnother:`Dodaj kolejne…`,add:`Dodaj: {{label, lowercase}}…`,choose:`Wybierz: {{label, lowercase}}`,chooseLabels:`Wybierz etykiety`,searchPlaceholder:`Szukaj etykiet…`,searchLabel:`Szukaj etykiet projektu`,empty:`Brak pasujących etykiet`},link:{previewUnavailable:`Podgląd niedostępny`},userPicker:{label:`Konto`,placeholder:`Wybierz konto`,searchPlaceholder:`Szukaj po nazwie lub adresie e-mail…`,searchLabel:`Szukaj kont`,useEmail:`Użyj {{email}}`,emptyAnyAccount:`Wyszukaj członka lub wpisz adres e-mail istniejącego konta.`,empty:`Brak pasujących członków`},date:{placeholder:`Wybierz datę`,clear:`Wyczyść: {{label, lowercase}}`,start:`Data rozpoczęcia`,startShort:`Początek`,noStart:`Brak daty rozpoczęcia`,due:`Termin`,dueShort:`Termin`,noDue:`Bez terminu`},filter:{me:`Ja`,searchTickets:`Szukaj zadań`,searchTicketsPlaceholder:`Szukaj zadań…`,filters:`Filtry`,filtersActive:`Filtry ({{active, number}})`,due:`Termin`,anyDue:`Dowolny termin`,archived:`Zarchiwizowane`,hideArchived:`Ukryj zarchiwizowane`,includeArchived:`Uwzględnij zarchiwizowane`,archivedOnly:`Tylko zarchiwizowane`,includingArchived:`Z zarchiwizowanymi`,reset:`Resetuj filtry`,clear:`Wyczyść filtry`,active:`Aktywne filtry zadań`,searchChip:`Wyszukiwanie: {{query}}`,chipAny:`{{field}}:`,chipNone:`{{field}} nie jest:`,notValues:`Nie {{values}}`,match:`Dopasowanie: {{label, lowercase}}`,is:`Jest`,isNot:`Nie jest`,searchPlaceholder:`{{search}}…`,anyValue:{status:`Wszystkie statusy`,priority:`Wszystkie priorytety`,kind:`Wszystkie rodzaje`,difficulty:`Wszystkie trudności`,label:`Wszystkie etykiety`,assigneeId:`Ktokolwiek`,customField:`Dowolna wartość pola`},searchValues:{status:`Szukaj statusów`,priority:`Szukaj priorytetów`,kind:`Szukaj rodzajów`,difficulty:`Szukaj trudności`,label:`Szukaj etykiet`,assigneeId:`Szukaj osób`,customField:`Szukaj pól`}},display:{title:`Wyświetlanie`,orderBy:`Sortuj według`,direction:`Kierunek`,ascending:`Rosnąco`,descending:`Malejąco`,reset:`Resetuj wyświetlanie`,groupBy:`Grupuj według`,dueDate:`Termin`,layout:`Układ`,list:`Lista`,board:`Tablica`,backgrounds:`Tła projektów`,show:`Pokaż`,hide:`Ukryj`,rowSpacing:`Odstępy wierszy`,compact:`Kompaktowe`,comfortable:`Wygodne`,labelDisplay:`Wyświetlanie etykiet`,compactPreview:`Kompaktowy podgląd`,allLabels:`Wszystkie etykiety`,properties:`Właściwości`},selection:{region:`Zaznaczone zadania`,clear:`Wyczyść zaznaczenie`,selected_one:`Zaznaczono {{count, number}}`,selected_few:`Zaznaczono {{count, number}}`,selected_many:`Zaznaczono {{count, number}}`,selected_other:`Zaznaczono {{count, number}}`,selectedOf_one:`{{count, number}} z {{total}}<wide> zaznaczone</wide>`,selectedOf_few:`{{count, number}} z {{total}}<wide> zaznaczone</wide>`,selectedOf_many:`{{count, number}} z {{total}}<wide> zaznaczonych</wide>`,selectedOf_other:`{{count, number}} z {{total}}<wide> zaznaczonych</wide>`,applied_one:`{{label}}: zastosowano do {{count, number}} zadania`,applied_few:`{{label}}: zastosowano do {{count, number}} zadań`,applied_many:`{{label}}: zastosowano do {{count, number}} zadań`,applied_other:`{{label}}: zastosowano do {{count, number}} zadania`,partlyApplied_one:`Zastosowano do {{done, number}} z {{count, number}} zadania`,partlyApplied_few:`Zastosowano do {{done, number}} z {{count, number}} zadań`,partlyApplied_many:`Zastosowano do {{done, number}} z {{count, number}} zadań`,partlyApplied_other:`Zastosowano do {{done, number}} z {{count, number}} zadania`,mixedDue:`Różne terminy`,fields:`Pola`,more:`Więcej czynności`,moveTo:`Przenieś do: {{status}}`,restoreChange:`Przywrócenie`,restore:`Przywróć zaznaczone`,archive:`Archiwizuj zaznaczone`,delete:`Usuń zaznaczone`,deleteLimit:`Usuwaj maksymalnie {{limit, number}} naraz`,archiveConfirm_one:`Zarchiwizować {{count, number}} zadanie z {{collection}}?`,archiveConfirm_few:`Zarchiwizować {{count, number}} zadania z {{collection}}?`,archiveConfirm_many:`Zarchiwizować {{count, number}} zadań z {{collection}}?`,archiveConfirm_other:`Zarchiwizować {{count, number}} zadania z {{collection}}?`,deleteConfirm_one:`Trwale usunąć {{count, number}} zadanie z {{collection}} wraz z komentarzami, powiązaniami i załącznikami? Zadania podrzędne spoza zaznaczenia stracą zadanie nadrzędne.`,deleteConfirm_few:`Trwale usunąć {{count, number}} zadania z {{collection}} wraz z komentarzami, powiązaniami i załącznikami? Zadania podrzędne spoza zaznaczenia stracą zadanie nadrzędne.`,deleteConfirm_many:`Trwale usunąć {{count, number}} zadań z {{collection}} wraz z komentarzami, powiązaniami i załącznikami? Zadania podrzędne spoza zaznaczenia stracą zadanie nadrzędne.`,deleteConfirm_other:`Trwale usunąć {{count, number}} zadania z {{collection}} wraz z komentarzami, powiązaniami i załącznikami? Zadania podrzędne spoza zaznaczenia stracą zadanie nadrzędne.`,deleted_one:`Usunięto {{count, number}} zadanie`,deleted_few:`Usunięto {{count, number}} zadania`,deleted_many:`Usunięto {{count, number}} zadań`,deleted_other:`Usunięto {{count, number}} zadania`},menu:{copied:`Skopiowano: {{label}}`,open:`Otwórz zadanie`,preview:`Podgląd`,newTab:`Otwórz w nowej karcie`,edit:`Edytuj zadanie`,editTitle:`Edytuj {{key}}`,duplicate:`Duplikuj zadanie`,created:`Utworzono {{key}}`,move:`Przenieś`,moveToProject:`Przenieś do projektu…`,moveTitle:`Przenieś {{key}}`,moved:`Przeniesiono jako {{key}}`,follow:`Obserwuj zadanie`,unfollow:`Przestań obserwować zadanie`,archive:`Archiwizuj zadanie`,unarchive:`Przywróć zadanie z archiwum`,delete:`Usuń zadanie`,deleteConfirm:`Trwale usunąć {{key}} wraz z komentarzami, powiązaniami i załącznikami?`,openProject:`Otwórz projekt`,projectLink:`Link do projektu`,copyLink:`Kopiuj link`,newTicket:`Nowe zadanie`,projectSettings:`Ustawienia projektu`,manageAccount:`Zarządzaj kontem`,email:`E-mail`,copyEmail:`Kopiuj adres e-mail`},schedule:{range:`{{from}} – {{to}}`,calendar:`Kalendarz`,timeline:`Oś czasu`,today:`Dzisiaj`,previousMonth:`Poprzedni miesiąc`,nextMonth:`Następny miesiąc`,previousWeeks:`Poprzednie dwa tygodnie`,nextWeeks:`Następne dwa tygodnie`,emptyWeeks:`Nic nie zaplanowano w tych tygodniach`,monthTickets:`Zadania: {{title}}`,showDay_one:`Pokaż {{count, number}} zadanie z dnia {{day}}`,showDay_few:`Pokaż wszystkie {{count, number}} zadania z dnia {{day}}`,showDay_many:`Pokaż wszystkie {{count, number}} zadań z dnia {{day}}`,showDay_other:`Pokaż wszystkie {{count, number}} zadania z dnia {{day}}`,more_one:`Jeszcze {{count, number}}`,more_few:`Jeszcze {{count, number}}`,more_many:`Jeszcze {{count, number}}`,more_other:`Jeszcze {{count, number}}`,ticketColumn:`Zadanie`,scheduledTickets:`Zaplanowane zadania`},copy:{description:`Opis`,acceptanceCriteria:`Kryteria akceptacji`}},detail:{field:{title:`Tytuł`,description:`Opis`,acceptanceCriteria:`Kryteria akceptacji`,parent:`Nadrzędne`,parentTicket:`Zadanie nadrzędne`,labels:`Etykiety`,scopes:`Zakresy`,holdReason:`Powód wstrzymania`,url:`URL`},page:{preview:`Podgląd zadania`,unavailable:`Zadanie niedostępne`,noProject:`Link nie wskazuje projektu zadania.`,gone:`To zadanie zostało usunięte lub nie masz już do niego dostępu.`,closePreview:`Zamknij podgląd`,openFullPage:`Otwórz na pełnej stronie`,backToTickets:`Wróć do zadań`,tickets:`Zadania`,previousTicket:`Poprzednie zadanie`,previousTicketShortcut:`Poprzednie zadanie (K)`,nextTicket:`Następne zadanie`,nextTicketShortcut:`Następne zadanie (J)`,position:`{{position, number}} / {{total, number}}`,subscribe:`Subskrybuj`,unsubscribe:`Anuluj subskrypcję`,subscribed:`Zasubskrybowano aktualizacje`,unsubscribed:`Anulowano subskrypcję`,archive:`Archiwizuj zadanie`,unarchive:`Przywróć zadanie z archiwum`,archivedToast:`Zadanie zarchiwizowane`,unarchivedToast:`Zadanie przywrócone z archiwum`,archived:`Zarchiwizowane`,edit:`Edytuj zadanie`,editShortcut:`Edytuj zadanie (E)`,editTitle:`Edytuj {{key}}`,actions:`Czynności zadania`,copyKey:`Kopiuj klucz zadania`,keyCopied:`Skopiowano {{key}}`,noDescription:`_Brak opisu_`,noAcceptanceCriteria:`_Brak kryteriów akceptacji_`,coordination:`Koordynacja zadania`,properties:`Właściwości`,created:`Utworzono`,updated:`Zaktualizowano`},section:{discussion:`Dyskusja`,evidence:`Dowody`,activity:`Aktywność`},readiness:{heading:`Gotowość dla agentów`,ready:`Gotowe do przejęcia`,notReady:`Niegotowe do przejęcia`,hold:`Wstrzymane: {{reason}}`,claimedUntil:`Przejęte przez <strong>{{worker}}</strong> do {{date}}.`},claim:{release:`Zwolnij moje przejęcie`,releaseDescription:`Zwolnić własność po zakończeniu zapisów przez wykonawcę?`,recover:`Odzyskaj wygasłe przejęcie`,recoverHelp:`Najpierw potwierdź, że wykonawca został zatrzymany.`,reason:`Powód odzyskania`,confirmed:`Potwierdzam, że wykonawca został zatrzymany`,submit:`Odzyskaj własność`},editor:{storageUnavailable:`Ta przeglądarka nie może zapisać wersji roboczej. Nie zamykaj edytora aż do zapisania.`,saved:`Zapisano {{key}}`,created:`Utworzono {{key}}`,properties:`Właściwości zadania`,readyForAgents:`Gotowe dla agentów`,readyForAgentsHelp:`Agenci mogą przejąć to zadanie, gdy pozwolą na to wymagania, blokady i własność`,agents:`Agenci`,notReady:`Niegotowe`,moreProperties:`Więcej właściwości`,holdPlaceholder:`Dlaczego praca ma poczekać?`,claimsNote:`Przejęcia nadal zależą od wymagań, blokad i bieżącej własności.`,restoreSize:`Przywróć rozmiar edytora`,expand:`Rozwiń edytor`,staleTitle:`To zadanie się zmieniło.`,staleDescription:`Wersja robocza nadal używa wersji {{version}}; zapisanie będzie wymagać bieżącej wersji.`,discardAndReload:`Odrzuć wersję roboczą i odśwież`,titlePlaceholder:`Tytuł zadania`,descriptionPlaceholder:`Dodaj kontekst, wymagania lub kroki odtworzenia…`,criteriaPlaceholder:`- [ ] Co pokaże, że to jest ukończone?`,removeCriteria:`Usuń kryteria akceptacji`,addCriteria:`Dodaj kryteria akceptacji`,savedLocally:`Wersja robocza zapisana na tym urządzeniu`,notSavedLocally:`Nie można zapisać wersji roboczej`,discardDraft:`Odrzuć wersję roboczą`,createMore:`Utwórz kolejne`,save:`Zapisz zadanie`,create:`Utwórz zadanie`},resource:{removeConfirm:`Usunąć {{name}}?`,uploading:`Przesyłanie…`},attachment:{heading:`Załączniki`,tooLarge:`Wybierz pliki o rozmiarze do 10 MB każdy.`,attached_one:`Załączono plik`,attached_few:`Załączono {{count, number}} pliki`,attached_many:`Załączono {{count, number}} plików`,attached_other:`Załączono {{count, number}} pliku`,attach:`Załącz plik`,emptyWritable:`Brak załączników. Upuść pliki tutaj.`,empty:`Brak załączników`,remove:`Usuń załącznik`,fileInput:`Plik (do 10 MB)`},evidence:{description:`Linki i wyniki zgłoszone przez osoby i integracje pracujące nad tym zadaniem.`,add:`Dodaj dowód`,empty:`Brak załączonych dowodów`,added:`Dodano dowód`,kindLabel:`Rodzaj`,outcomeLabel:`Zgłoszony wynik`,commit:`Commit (pełny hash)`,note:`Notatka`},link:{heading:`Linki`,add:`Dodaj link`,edit:`Edytuj link`,save:`Zapisz link`,remove:`Usuń link`,empty:`Brak linków`,stateUnknown:`Stan nieznany`,remote:`{{kind}} · {{state}}`,remoteState:{open:`Otwarte`,closed:`Zamknięte`,merged:`Scalone`,draft:`Wersja robocza`,active:`Aktywne`,deleted:`Usunięte`}},activity:{previous:`Wcześniejsza aktywność`,next:`Późniejsza aktywność`},relations:{heading:`Powiązania`,add:`Dodaj powiązanie`,linkExisting:`Powiąż istniejące zadanie`,newChild:`Nowe zadanie podrzędne`,newChildTitle:`Nowe zadanie podrzędne dla {{key}}`,children:`Zadania podrzędne <count>{{done, number}}/{{total, number}}</count>`,previousChildren:`Poprzednie zadania podrzędne`,nextChildren:`Następne zadania podrzędne`,empty:`Brak powiązań`,type:`Powiązanie`,ticket:`Zadanie`,statusOf:`Status {{key}}`,assigneeOf:`Osoba przypisana do {{key}}`,remove:{blocks:`Usuń powiązanie „blokuje”`,related:`Usuń powiązanie „powiązane z”`,duplicate:`Usuń powiązanie „duplikuje”`,causes:`Usuń powiązanie „powoduje”`,clones:`Usuń powiązanie „klonuje”`,implements:`Usuń powiązanie „implementuje”`,reviews:`Usuń powiązanie „przegląda”`}},discussion:{empty:`Brak komentarzy`,previous:`Wcześniejsze komentarze`,next:`Późniejsze komentarze`,comment:`Skomentuj`,placeholder:`Napisz komentarz…`,posting:`Publikowanie…`,edited:`Edytowano`,edit:`Edytuj komentarz`,delete:`Usuń komentarz`,deleteConfirm:`Trwale usunąć ten komentarz?`},markdown:{format:{heading:`Nagłówek`,bold:`Pogrubienie`,italic:`Kursywa`,link:`Link`,linkHelp:`Dodaj link do zaznaczonego tekstu`,bullets:`Lista punktowana`,numbers:`Lista numerowana`,tasks:`Lista kontrolna`,code:`Blok kodu`},formatting:`Formatowanie: {{label}}`,editor:`Edytor: {{label}}`,insertFile:`Wstaw plik`,insertFileInto:`Wstaw plik: {{label}}`,write:`Pisanie`,visual:`Wizualny`,preview:`Podgląd`,unsupported:`Ten tekst używa elementów Markdown, których edytor wizualny nie może zachować, np. HTML lub przypisów.`,nothingToPreview:`Brak treści do podglądu`,mention:`Wspomnij członka`,insertBlock:`Wstaw blok`,block:{quote:`Cytat`,table:`Tabela`,diagram:`Diagram`,divider:`Separator`,file:`Plik`},table:{addRow:`Dodaj wiersz`,addColumn:`Dodaj kolumnę`,deleteRow:`Usuń wiersz`,deleteColumn:`Usuń kolumnę`,deleteTable:`Usuń tabelę`},linkAddress:`Adres linku`,diagram:`Diagram`,diagramFailed:`Nie można narysować tego diagramu: {{error}}`,diagramSource:`Źródło diagramu`}},settings:{account:{title:`Ustawienia`,security:`Logowanie i bezpieczeństwo`,localPassword:`Hasło lokalne`,localPasswordDescription:`Zmiana hasła wylogowuje pozostałe sesje.`,changePassword:`Zmień hasło`,oidcLinked:`Za pomocą tego dostawcy tożsamości można logować się do tego samego konta.`,oidcUnlinked:`Połącz konto przed zalogowaniem się przez tego dostawcę.`,linked:`Połączono`,link:`Połącz {{name}}`,currentPassword:`Bieżące hasło`,newPassword:`Nowe hasło`,confirmPassword:`Potwierdź nowe hasło`,passwordMismatch:`Nowe hasła nie są zgodne.`,passwordUpdated:`Hasło zaktualizowane. Pozostałe sesje zostały wylogowane.`},preferences:{behavior:`Zachowanie`,languageDescription:`Obowiązuje w tej przeglądarce, również na stronie logowania.`,weekStart:`Pierwszy dzień tygodnia`,weekStartDescription:`Dotyczy wszystkich selektorów dat.`,weekStartLanguage:`Domyślny dla języka`,sidebar:`Pasek boczny po uruchomieniu`,sidebarDescription:`Zacznie obowiązywać przy następnym otwarciu Kanvil.`,sidebarLast:`Jak ostatnio`,sidebarExpanded:`Rozwinięty`,sidebarCollapsed:`Zwinięty`,ticketLists:`Listy zadań`,reset:`Resetuj preferencje`,resetDescription:`Przywraca domyślne wartości tych ustawień w tej przeglądarce.`,resetDone:`Preferencje zresetowane`},notifications:{title:`Powiadomienia`,inbox:`Skrzynka odbiorcza`,inboxDescription:`Aktualizacje obserwowanych zadań pojawiają się w Kanvil.`,inboxSwitch:`Aktualizacje subskrybowanych zadań w skrzynce odbiorczej`,push:`Powiadomienia push`,pushDescription:`Wysyłaj aktualizacje na zarejestrowane urządzenia.`,pushUnavailable:`Dostarczanie push nie jest włączone w tej instancji.`,pushSwitch:`Powiadomienia push na zarejestrowanych urządzeniach`,categories:`Kategorie`,categorySwitch:`Powiadomienia: {{label}}`,reminder:`Przypomnienie o zbliżającym się terminie`,reminderDescription:`Jak długo przed terminem obserwowanego zadania.`,reminderUnit:`Jednostka przypomnienia`,reminderAmount:`Wartość przypomnienia`,unit:{minutes:`Minuty`,hours:`Godziny`,days:`Dni`,weeks:`Tygodnie`}},layout:{nav:`Ustawienia`,section:`Sekcja ustawień`,nested:`{{parent}} · {{child}}`,name:`Nazwa`,description:`Opis`,descriptionPlaceholder:`Dodaj opis`,noDescription:`Brak opisu`,stale:`To zostało zmienione w innym miejscu. Anuluj i zacznij od nowa.`},profile:{title:`Profil`,displayName:`Wyświetlana nazwa`,edit:`Edytuj profil`,changePhoto:`Zmień zdjęcie`,removePhoto:`Usuń zdjęcie`,photoFile:`Plik zdjęcia profilowego`,photoUpdated:`Zdjęcie zaktualizowane`,photoRemoved:`Zdjęcie usunięte`,saved:`Profil zapisany`},credentials:{global:`Globalny`,globalDescription:`Dostęp do wszystkich projektów i obszarów roboczych konta, także tych udostępnionych w przyszłości.`,title:`Klucze API`,description:`Połącz skrypty, integracje i agentów z dostępem, który można odwołać.`,create:`Utwórz klucz API`,creating:`Tworzenie…`,created:`Klucz API utworzony`,name:`Nazwa`,access:`Dostęp`,projects:`Projekty`,expires:`Wygasa`,actions:`Czynności`,unavailableProject:`Niedostępny projekt`,untitled:`Klucz bez nazwy`,expired:`Wygasł`,disabled:`Wyłączony`,custom:`Niestandardowy`,noProjects:`Brak dostępu do projektów`,never:`Nigdy`,revoke:`Odwołaj klucz API`,revokeNamed:`Odwołać {{name}}? Połączenia używające go natychmiast stracą dostęp.`,revokeUnnamed:`Odwołać ten klucz API? Połączenia używające go natychmiast stracą dostęp.`,empty:`Brak kluczy API`,emptyDescription:`Utwórz klucz, gdy skrypt, integracja lub agent potrzebuje dostępu do projektów.`,copyNow:`Skopiuj ten klucz teraz. Nie będzie można go zobaczyć ponownie.`,newKey:`Nowy klucz API`,copy:`Kopiuj klucz API`,noProjectTitle:`Najpierw wybierz projekt`,noProjectDescription:`Klucze API wymagają dostępu do co najmniej jednego projektu.`,goToProjects:`Przejdź do projektów`,keyName:`Nazwa klucza`,keyNamePlaceholder:`np. Automatyzacja wydań`,projectAccess:`Dostęp do projektów`,findProject:`Znajdź projekt`,projectDescription:`{{key}} · {{workspace}}`,workspace:`Przestrzeń robocza`,noMatches:`Brak pasujących projektów`,roleLimit:`Twoja obecna rola w projekcie nadal ogranicza możliwości tego klucza.`,accessLevel:`Poziom dostępu`,preset:{read:`Tylko odczyt`,write:`Odczyt i zapis`,automation:`Odczyt, zapis i przejmowanie pracy`,custom:`Niestandardowe uprawnienia`},permission:{intake:{name:`Przesyłaj zgłoszenia`,description:`Tworzy tylko zgłoszenia do weryfikacji. Nie może ich czytać ani edytować. Używaj osobno.`},read:{name:`Odczyt zadań`,description:`Wyświetlanie projektów, zadań, komentarzy i załączników.`},write:{name:`Edycja zadań`,description:`Tworzenie i aktualizowanie zadań, komentarzy i załączników.`},claim:{name:`Przejmowanie pracy`,description:`Przejmowanie, odnawianie i zwalnianie własności zadań.`},admin:{name:`Zarządzaj projektami i obszarami roboczymi`,description:`Zmieniaj ustawienia i członkostwo projektów i obszarów roboczych w granicach uprawnień swojej roli.`}},expiry:{7:`7 dni`,30:`30 dni`,90:`90 dni`,365:`1 rok`,custom:`Własna data`,never:`Bez wygaśnięcia`},expiresOn:`Wygasa dnia`,neverDescription:`Klucz działa, dopóki nie zostanie usunięty.`},calendarFeeds:{title:`Kanały kalendarza`,new:`Nowy kanał kalendarza`,created:`Kanał kalendarza utworzony`,create:`Utwórz kanał`,adminOnly:`Administratorzy projektu udostępniają i odwołują kanały kalendarza.`,labels:`Etykiety`,everyLabel:`Każda etykieta`,stopped:`· Zatrzymany: jego twórca nie ma już dostępu`,revoke:`Odwołaj {{name}}`,revokeDescription:`Kalendarze subskrybujące {{name}} natychmiast przestaną się aktualizować. Zadania pozostaną bez zmian.`,revoked:`Kanał kalendarza odwołany`,empty:`Brak kanałów kalendarza`,copyNow:`Skopiuj teraz ten link do aplikacji kalendarza. Jest wyświetlany tylko raz, a każdy, kto go ma, może czytać udostępnione zadania.`,link:`Link do kanału`,name:`Nazwa kanału`,onlyLabels:`Tylko zadania z tymi etykietami`,explanation:`Kanał zawiera otwarte, niezarchiwizowane zadania z datą rozpoczęcia lub terminem jako wydarzenia całodniowe w strefie {{zone}}. Każdy, kto ma link, widzi ich klucze, tytuły, statusy, priorytety i daty.`},project:{title:`Ustawienia projektu`,edit:`Edytuj projekt`,copyPrefix:`Kopiuj prefiks zadań`,saved:`Projekt zapisany`,noOpenTickets:`Brak otwartych zadań`,openTickets_one:`{{count, number}} otwarte zadanie`,openTickets_few:`{{count, number}} otwarte zadania`,openTickets_many:`{{count, number}} otwartych zadań`,openTickets_other:`{{count, number}} otwartego zadania`,overdueTickets_one:`· {{count, number}} po terminie`,overdueTickets_few:`· {{count, number}} po terminie`,overdueTickets_many:`· {{count, number}} po terminie`,overdueTickets_other:`· {{count, number}} po terminie`,created:`· Utworzono <time/>`,access:`Dostęp do projektu`,accessWorkspace:`Członkowie przestrzeni roboczej dziedziczą dostęp z roli w przestrzeni.`,accessPrivate:`Ten projekt widzą tylko dodani członkowie i administratorzy przestrzeni roboczej.`,accessUpdated:`Dostęp do projektu zaktualizowany`,visibility:{workspace:`Wszyscy w przestrzeni roboczej`,private:`Tylko członkowie projektu`},workspace:`Przestrzeń robocza`,workspaceSettings:`Ustawienia przestrzeni roboczej`,prefix:`Prefiks zadań`,prefixDescription:`Wcześniejsze prefiksy i klucze zadań nadal działają po zmianie.`,changePrefix:`Zmień prefiks`,changePrefixTitle:`Zmień prefiks zadań`,changePrefixDescription:`Każde zadanie w {{name}} otrzyma nowy prefiks i zachowa swój numer.`,changing:`Zmienianie…`,prefixChanged:`Zadania używają teraz {{key}}`,publicLink:`Link publiczny`,publicDisclosure:`Każdy, kto ma link, może przeczytać tytuł, opis, kryteria akceptacji, status, priorytet, rodzaj, trudność, etykiety, zakresy, daty i linki do innych zadań każdego niezarchiwizowanego zadania w tym projekcie. Osoby, komentarze, aktywność, załączniki, dowody i przejęcia pozostają prywatne.`,publicOn:`Link publiczny włączony`,publicOff:`Link publiczny wyłączony`,off:`Wyłączony`,copyPublicLink:`Kopiuj link publiczny`,openPublic:`Otwórz widok publiczny`,stopSharing:`Przestań udostępniać`,share:`Udostępnij publicznie`,background:`Tło`,backgroundDescription:`Wyświetlane za listą i tablicą zadań tego projektu.`,backgroundUpdated:`Tło zaktualizowane`,backgroundRemoved:`Tło usunięte`,currentBackground:`Bieżące tło`,uploading:`Przesyłanie…`,replace:`Zastąp`,upload:`Prześlij obraz`,backgroundFile:`Plik tła projektu`},tickets_one:`{{count, number}} zadanie`,tickets_few:`{{count, number}} zadania`,tickets_many:`{{count, number}} zadań`,tickets_other:`{{count, number}} zadania`,moveUp:`Przenieś {{name}} wyżej`,moveDown:`Przenieś {{name}} niżej`,workflow:{title:`Przepływ pracy`,new:`Nowy stan`,edit:`Edytuj stan`,editNamed:`Edytuj stan {{name}}`,deleteNamed:`Usuń stan {{name}}`,onlyState:`{{name}} to jedyny stan w kategorii {{category}}`,saved:`Stan zapisany`,name:`Nazwa stanu`,category:`Kategoria`,color:`Kolor stanu`,categoryChange:`Jego zadania zmienią status na {{status}}.`,save:`Zapisz stan`,delete:`Usuń stan`,deleteTitle:`Usuń {{name}}`,deleted:`Stan usunięty`,reassign_one:`Przenieś {{count, number}} zadanie do`,reassign_few:`Przenieś {{count, number}} zadania do`,reassign_many:`Przenieś {{count, number}} zadań do`,reassign_other:`Przenieś {{count, number}} zadania do`},labels:{title:`Etykiety`,search:`Szukaj etykiet`,new:`Nowa etykieta`,edit:`Edytuj etykietę`,workspace:`Przestrzeń robocza`,editNamed:`Edytuj etykietę {{name}}`,deleteNamed:`Usuń etykietę {{name}}`,deleteUsed_one:`Usunąć {{name}} z {{count, number}} zadania, łącznie z zarchiwizowanymi? Zapisane widoki używające tej etykiety stracą filtr etykiet.`,deleteUsed_few:`Usunąć {{name}} z {{count, number}} zadań, łącznie z zarchiwizowanymi? Zapisane widoki używające tej etykiety stracą filtr etykiet.`,deleteUsed_many:`Usunąć {{name}} z {{count, number}} zadań, łącznie z zarchiwizowanymi? Zapisane widoki używające tej etykiety stracą filtr etykiet.`,deleteUsed_other:`Usunąć {{name}} z {{count, number}} zadania, łącznie z zarchiwizowanymi? Zapisane widoki używające tej etykiety stracą filtr etykiet.`,deleteUsedShared_one:`Usunąć {{name}} z {{count, number}} zadania we wszystkich projektach, łącznie z zarchiwizowanymi? Zapisane widoki używające tej etykiety stracą filtr etykiet.`,deleteUsedShared_few:`Usunąć {{name}} z {{count, number}} zadań we wszystkich projektach, łącznie z zarchiwizowanymi? Zapisane widoki używające tej etykiety stracą filtr etykiet.`,deleteUsedShared_many:`Usunąć {{name}} z {{count, number}} zadań we wszystkich projektach, łącznie z zarchiwizowanymi? Zapisane widoki używające tej etykiety stracą filtr etykiet.`,deleteUsedShared_other:`Usunąć {{name}} z {{count, number}} zadania we wszystkich projektach, łącznie z zarchiwizowanymi? Zapisane widoki używające tej etykiety stracą filtr etykiet.`,deleteUnused:`Usunąć nieużywaną etykietę {{name}}? Zapisane widoki używające jej stracą filtr etykiet.`,deleted:`Etykieta usunięta`,noMatches:`Brak pasujących etykiet`,empty:`Brak etykiet`,saved:`Etykieta zapisana`,name:`Nazwa etykiety`,color:`Kolor etykiety`,rename:`Zmiana nazwy aktualizuje tę etykietę w zadaniach i zapisanych widokach.`,renameShared:`Zmiana nazwy aktualizuje tę etykietę w zadaniach i zapisanych widokach we wszystkich projektach.`,adopt:`Przejmij etykiety projektów`,adoptDescription:`Zdefiniowana w {{projects}}. Ich zadania zachowają etykietę i otrzymają ten kolor.`,save:`Zapisz etykietę`},fields:{title:`Pola`,new:`Nowe pole`,edit:`Edytuj pole`,editNamed:`Edytuj pole {{name}}`,deleteNamed:`Usuń pole {{name}}`,deleteUsed_one:`Usunąć {{name}} i jego wartości z {{count, number}} zadania, łącznie z zarchiwizowanymi? Zapisane widoki stracą filtry tego pola.`,deleteUsed_few:`Usunąć {{name}} i jego wartości z {{count, number}} zadań, łącznie z zarchiwizowanymi? Zapisane widoki stracą filtry tego pola.`,deleteUsed_many:`Usunąć {{name}} i jego wartości z {{count, number}} zadań, łącznie z zarchiwizowanymi? Zapisane widoki stracą filtry tego pola.`,deleteUsed_other:`Usunąć {{name}} i jego wartości z {{count, number}} zadania, łącznie z zarchiwizowanymi? Zapisane widoki stracą filtry tego pola.`,deleteUnused:`Usunąć nieużywane pole {{name}}? Zapisane widoki stracą filtry tego pola.`,deleted:`Pole usunięte`,empty:`Brak pól`,saved:`Pole zapisane`,required:`Wymagane`,requiredDescription:`Nowe zadania wymagają wartości.`,defaultValue:`Domyślnie: {{value}}`,default:`Wartość domyślna`,name:`Nazwa pola`,type:`Typ`,options:`Opcje`,option:`Opcja {{number}}`,optionInline:`opcja {{number}}`,optionColor:`Kolor: {{name}}`,removeOption:`Usuń {{name}}`,addOption:`Dodaj opcję`,reassign:`Zadania z wartością {{name}}`,clearValue:`Wyczyść wartość`,moveTo:`Przenieś do {{name}}`,save:`Zapisz pole`},lifecycle:{archivedToast:`Projekt zarchiwizowany`,restoredToast:`Projekt przywrócony`,archivedNotice:`Zarchiwizowano <time/> · tylko odczyt`,restore:`Przywróć`,archive:`Archiwizacja`,archivedDescription:`Zarchiwizowano <time/>. Jego zadania są tylko do odczytu i nie pojawiają się na listach, w wyszukiwaniu, w sekcji Moja praca, w kanałach kalendarza ani w kolejkach agentów.`,archiveDescription:`Ukrywa projekt na listach, w wyszukiwaniu, w sekcji Moja praca, w kanałach kalendarza i w kolejkach agentów, a jego zadania ustawia jako tylko do odczytu. Historia zostaje zachowana.`,archiveProject:`Archiwizuj projekt`,archiveConfirm:`{{name}} zniknie z list projektów i kolejek agentów do czasu przywrócenia. Przejęte zadania trzeba najpierw zwolnić.`,blocker:`{{message}}: {{tickets}}`,row:{tickets:`Zadania`,losesAccess:`Traci dostęp`,gainsAccess:`Zyskuje dostęp`,labelsCopied:`Skopiowane etykiety`,labelsMerged:`Scalone etykiety`,followsRemoved:`Usunięte obserwacje`,invitations:`Zaproszenia`,comments:`Komentarze`,files:`Pliki`,kept:`Zachowane`,projects:`Projekty`,members:`Członkowie`,sharedLabels:`Wspólne etykiety`,signIn:`Logowanie`,sessions:`Sesje`,credentials:`Poświadczenia`,devices:`Urządzenia`,access:`Dostęp`,claims:`Przejęcia`,imports:`Importy`,profile:`Profil`},transferTickets_one:`{{count, number}}, z zachowaniem kluczy i linków`,transferTickets_few:`{{count, number}}, z zachowaniem kluczy i linków`,transferTickets_many:`{{count, number}}, z zachowaniem kluczy i linków`,transferTickets_other:`{{count, number}}, z zachowaniem kluczy i linków`,noOne:`Nikt`,transferInvitations_one:`{{count, number}} oczekujące zaproszenie straci projekt`,transferInvitations_few:`{{count, number}} oczekujące zaproszenia stracą projekt`,transferInvitations_many:`{{count, number}} oczekujących zaproszeń straci projekt`,transferInvitations_other:`{{count, number}} oczekującego zaproszenia straci projekt`,files_one:`{{count, number}} · {{size}}`,files_few:`{{count, number}} · {{size}}`,files_many:`{{count, number}} · {{size}}`,files_other:`{{count, number}} · {{size}}`,keptProject_one:`{{count, number}} wpis aktywności i prefiks {{key}}`,keptProject_few:`{{count, number}} wpisy aktywności i prefiks {{key}}`,keptProject_many:`{{count, number}} wpisów aktywności i prefiks {{key}}`,keptProject_other:`{{count, number}} wpisu aktywności i prefiks {{key}}`,keptWorkspace_one:`{{count, number}} wpis aktywności i klucz URL {{slug}}`,keptWorkspace_few:`{{count, number}} wpisy aktywności i klucz URL {{slug}}`,keptWorkspace_many:`{{count, number}} wpisów aktywności i klucz URL {{slug}}`,keptWorkspace_other:`{{count, number}} wpisu aktywności i klucz URL {{slug}}`,archivedProject:`zarchiwizowany`,membersLoseAccess_one:`{{count, number}} traci dostęp; konto zostaje`,membersLoseAccess_few:`{{count, number}} tracą dostęp; ich konta zostają`,membersLoseAccess_many:`{{count, number}} traci dostęp; ich konta zostają`,membersLoseAccess_other:`{{count, number}} traci dostęp; ich konta zostają`,pendingInvitations_one:`{{count, number}} oczekujące`,pendingInvitations_few:`{{count, number}} oczekujące`,pendingInvitations_many:`{{count, number}} oczekujących`,pendingInvitations_other:`{{count, number}} oczekującego`,move:`Przenieś`,moveTitle:`Przenieś {{name}}`,moved:`Przeniesiono do {{name}}`,movedUnnamed:`Przeniesiono do przestrzeni roboczej`,destination:`Docelowa przestrzeń robocza`,moveProject:`Przenieś projekt`,moving:`Przenoszenie…`,export:`Eksport`,exportDescription:`Zadania wraz z przepływem pracy, polami, etykietami, powiązaniami, komentarzami, dowodami i linkami jako wersjonowany JSON. Załączniki i historia aktywności pozostają tutaj.`,exporting:`Eksportowanie…`,exportJson:`Eksportuj JSON`,delete:`Usuwanie`,deleteTitle:`Usuń {{name}}`,deleted:`Usunięto {{name}}`,typeToConfirm:`Wpisz {{value}}, aby potwierdzić`,deleting:`Usuwanie…`,deleteProject:`Usuń projekt`,deleteProjectDescription:`Trwale usuwa zadania, komentarze i pliki. Historia aktywności zostaje, a {{key}} nigdy nie zostanie użyty ponownie.`,signInAgain:`Zaloguj się ponownie`,deleteWorkspace:`Usuń przestrzeń roboczą`,deleteWorkspaceDescription:`Trwale usuwa każdy projekt w przestrzeni roboczej wraz z zadaniami, komentarzami i plikami oraz usuwa jej członków. Konta i historia aktywności zostają.`,noSignInMethods:`Brak połączonych metod logowania`,sessions_one:`Wylogowano {{count, number}} sesję`,sessions_few:`Wylogowano {{count, number}} sesje`,sessions_many:`Wylogowano {{count, number}} sesji`,sessions_other:`Wylogowano {{count, number}} sesji`,credentials_one:`Odwołano {{count, number}} klucz API lub połączenie aplikacji`,credentials_few:`Odwołano {{count, number}} klucze API lub połączenia aplikacji`,credentials_many:`Odwołano {{count, number}} kluczy API lub połączeń aplikacji`,credentials_other:`Odwołano {{count, number}} klucza API lub połączenia aplikacji`,devices_one:`Usunięto {{count, number}} urządzenie lub kanał powiadomień`,devices_few:`Usunięto {{count, number}} urządzenia lub kanały powiadomień`,devices_many:`Usunięto {{count, number}} urządzeń lub kanałów powiadomień`,devices_other:`Usunięto {{count, number}} urządzenia lub kanału powiadomień`,workspaceCount_one:`{{count, number}} przestrzeń robocza`,workspaceCount_few:`{{count, number}} przestrzenie robocze`,workspaceCount_many:`{{count, number}} przestrzeni roboczych`,workspaceCount_other:`{{count, number}} przestrzeni roboczej`,directProjectCount_one:`{{count, number}} projekt bezpośredni`,directProjectCount_few:`{{count, number}} projekty bezpośrednie`,directProjectCount_many:`{{count, number}} projektów bezpośrednich`,directProjectCount_other:`{{count, number}} projektu bezpośredniego`,accessWorkspaces:`Usunięto: {{workspaces}}`,accessBoth:`Usunięto: {{workspaces}} i {{projects}}`,claims_one:`Zwolniono {{count, number}} przejęcie`,claims_few:`Zwolniono {{count, number}} przejęcia`,claims_many:`Zwolniono {{count, number}} przejęć`,claims_other:`Zwolniono {{count, number}} przejęcia`,imports_one:`Anulowano {{count, number}} import`,imports_few:`Anulowano {{count, number}} importy`,imports_many:`Anulowano {{count, number}} importów`,imports_other:`Anulowano {{count, number}} importu`,profileErased:`Imię i nazwisko, adres e-mail i zdjęcie usunięte`,commentCount_one:`{{count, number}} komentarz`,commentCount_few:`{{count, number}} komentarze`,commentCount_many:`{{count, number}} komentarzy`,commentCount_other:`{{count, number}} komentarza`,activityCount_one:`{{count, number}} wpis aktywności`,activityCount_few:`{{count, number}} wpisy aktywności`,activityCount_many:`{{count, number}} wpisów aktywności`,activityCount_other:`{{count, number}} wpisu aktywności`,keptAccount:`{{tickets}}, {{comments}} i {{events}} wyświetlane jako {{name}}`,deleteAccount:`Usuń konto`,deleteOwnAccount:`Trwale usuwa Twoje logowanie, sesje, klucze, urządzenia, członkostwa i dane osobowe. Zadania, komentarze i aktywność zostają i są wyświetlane jako {{name}}.`,deleteOtherAccount:`Trwale usuwa logowanie, sesje, klucze, urządzenia, członkostwa i dane osobowe tego konta. Zadania, komentarze i aktywność zostają i są wyświetlane jako {{name}}.`},icon:{change:`Zmień ikonę`,title:`Ikona projektu`,library:`Biblioteka ikon`,upload:`Prześlij obraz`,search:`Szukaj ikon`,searchPlaceholder:`Szukaj ikon…`,color:`Kolor ikony`,choose:`Wybierz {{name}}`,noMatches:`Brak pasujących ikon`,showMore:`Pokaż więcej ikon`,uploading:`Przesyłanie…`,chooseImage:`Wybierz obraz`,formats:`PNG, JPEG lub WebP · do 10 MB`,file:`Plik ikony projektu`,reset:`Resetuj ikonę`},createProject:{title:`Nowy projekt`,inWorkspace:`W {{name}}`,everyoneLabel:`Wszyscy w tej przestrzeni roboczej`,name:`Nazwa projektu`,namePlaceholder:`Aplikacja mobilna`,create:`Utwórz projekt`},workspace:{title:`Ustawienia przestrzeni roboczej`,owner:`Właściciel`,noOwner:`Brak właściciela. Administrator instancji może go przypisać.`,transfer:`Przekaż własność`,transferring:`Przekazywanie…`,transferred:`{{name}} jest teraz właścicielem {{workspace}}`,newOwner:`Nowy właściciel`,noEligible:`Własność przechodzi na aktywnego administratora przestrzeni roboczej. Najpierw nadaj innemu członkowi rolę administratora.`,chosenCan:`{{name}} będzie mógł następnie przekazać lub usunąć przestrzeń roboczą.`,newOwnerCan:`Nowy właściciel może przekazać lub usunąć przestrzeń roboczą.`,ownerStays:`{{name}} pozostaje administratorem.`,unavailable:`Przestrzeń robocza niedostępna`,backToProjects:`Wróć do projektów`,name:`Nazwa przestrzeni roboczej`,edit:`Edytuj przestrzeń roboczą`,copyKey:`Kopiuj klucz przestrzeni roboczej`,saved:`Przestrzeń robocza zapisana`,projects:`Projekty`,projectCount_one:`{{count, number}} dostępny projekt w tej przestrzeni roboczej.`,projectCount_few:`{{count, number}} dostępne projekty w tej przestrzeni roboczej.`,projectCount_many:`{{count, number}} dostępnych projektów w tej przestrzeni roboczej.`,projectCount_other:`{{count, number}} dostępnego projektu w tej przestrzeni roboczej.`,viewProjects:`Wyświetl projekty`,members:`Członkowie`,membersDescription:`Role w przestrzeni roboczej obowiązują w projektach, które używają dostępu przestrzeni.`,manageMembers:`Zarządzaj członkami`},members:{title:`Członkowie`,customRole:`Rola niestandardowa`,search:`Szukaj członków`,searchPlaceholder:`Nazwa lub adres e-mail…`,add:`Dodaj członka`,added:`Członek dodany`,workspaceAccess:`Dostęp przestrzeni roboczej`,owner:`Właściciel`,roleFor:`Rola: {{name}}`,useWorkspaceAccess:`Użyj dostępu przestrzeni roboczej`,remove:`Usuń członka`,removeFromWorkspace:`Usunąć {{name}} z tej przestrzeni roboczej i wszystkich jej projektów?`,restoreAccess:`Przywrócić dostęp przestrzeni roboczej ({{role}}) dla {{name}}?`,removeFromProject:`Odebrać dostęp do projektu: {{name}}?`,noMatches:`Brak pasujących członków`,empty:`Brak członków`,projectRole:`Rola w projekcie`,workspaceRole:`Rola w przestrzeni roboczej`},invitations:{title:`Zaproszenia`,invite:`Zaproś przez e-mail`,removedProjects:`Usunięte projekty`,wholeWorkspace:`Cała przestrzeń robocza`,selectedProjects:`Wybrane projekty`,expired:`Wygasło`,expires:`Wygasa <time/>`,resend:`Wyślij ponownie zaproszenie do {{email}}`,revoke:`Odwołaj zaproszenie`,revokeDescription:`Link wysłany do {{email}} przestanie działać.`,revoked:`Zaproszenie odwołane`,empty:`Brak oczekujących zaproszeń`,email:`E-mail`,role:`Rola`,access:`Dostęp`,projects:`Projekty`,noProjects:`Ta przestrzeń robocza nie ma projektów.`,linkExpires:`Link wygasa`,inDays_one:`Za {{count, number}} dzień`,inDays_few:`Za {{count, number}} dni`,inDays_many:`Za {{count, number}} dni`,inDays_other:`Za {{count, number}} dnia`,submit:`Zaproś`,link:`Link zaproszenia`,copyLink:`Kopiuj link zaproszenia`,emailed:`Wysłano do {{email}}. Link działa raz, dla tego adresu.`,notEmailed:`Poczta e-mail nie jest skonfigurowana w tej instancji. Wyślij ten link do {{email}}; działa raz, dla tego adresu.`,notEmailedUnknown:`Poczta e-mail nie jest skonfigurowana w tej instancji. Wyślij ten link do odbiorcy; działa raz, dla tego adresu.`},workspaces:{title:`Przestrzenie robocze`,search:`Szukaj przestrzeni roboczych`,searchPlaceholder:`Nazwa lub klucz URL…`,noMatches:`Brak pasujących przestrzeni roboczych`,empty:`Brak przestrzeni roboczych`,workspace:`Przestrzeń robocza`,administrators:`Administratorzy`,members:`Członkowie`,projects:`Projekty`,created:`Utworzono`,actions:`Czynności`,noAdministrator:`Brak administratora`,manage:`Zarządzaj {{name}}`,pagerNoun:`przestrzenie robocze`,private:`Prywatny`,noProjects:`Brak projektów`},roles:{title:`Role`,new:`Nowa rola`,edit:`Edytuj rolę`,builtIn:`Wbudowana`,readOnly:`Bez czynności poza odczytem`,memberships_one:`{{count, number}} członkostwo`,memberships_few:`{{count, number}} członkostwa`,memberships_many:`{{count, number}} członkostw`,memberships_other:`{{count, number}} członkostwa`,editNamed:`Edytuj rolę {{name}}`,deleteNamed:`Usuń rolę {{name}}`,deleteUnused:`Usunąć nieużywaną rolę {{name}}?`,deleted:`Rola usunięta`,empty:`Brak ról`,saved:`Rola zapisana`,name:`Nazwa roli`,actions:`Czynności`,everyoneReads:`Każdy członek może czytać projekty, do których ma dostęp.`,changesApply_one:`Zmiany obowiązują od razu dla {{count, number}} członkostwa z tą rolą.`,changesApply_few:`Zmiany obowiązują od razu dla {{count, number}} członkostw z tą rolą.`,changesApply_many:`Zmiany obowiązują od razu dla {{count, number}} członkostw z tą rolą.`,changesApply_other:`Zmiany obowiązują od razu dla {{count, number}} członkostwa z tą rolą.`,save:`Zapisz rolę`,delete:`Usuń rolę`,reassignDescription_one:`{{count, number}} członkostwo ma rolę {{name}}. Wybierz rolę, do której zostanie przeniesione.`,reassignDescription_few:`{{count, number}} członkostwa mają rolę {{name}}. Wybierz rolę, do której zostaną przeniesione.`,reassignDescription_many:`{{count, number}} członkostw ma rolę {{name}}. Wybierz rolę, do której zostaną przeniesione.`,reassignDescription_other:`{{count, number}} członkostwa ma rolę {{name}}. Wybierz rolę, do której zostaną przeniesione.`,moveTo:`Przenieś członków do`},theme:{mode:{light:`Jasny`,dark:`Ciemny`,system:`Systemowy`},aligned:`Aligned`,hexColor:`Użyj sześciocyfrowego koloru szesnastkowego`,contrast:{light:`Zwiększ kontrast tekstu motywu jasnego do co najmniej 4,5:1.`,dark:`Zwiększ kontrast tekstu motywu ciemnego do co najmniej 4,5:1.`},fileTooLarge:`Pliki motywów muszą być mniejsze niż 100 KB.`,tooMany:`Można mieć maksymalnie 50 motywów niestandardowych.`},appearance:{colorScheme:`Schemat kolorów`,theme:`Motyw`,themes:`Motywy`,colorTheme:`Motyw kolorystyczny`,search:`Szukaj motywów`,searchPlaceholder:`Szukaj motywów…`,create:`Utwórz motyw`,add:`Dodaj motyw`,importFile:`Importuj plik motywu`,useMode:{light:`Użyj trybu jasnego {{name}}`,dark:`Użyj trybu ciemnego {{name}}`},modeOnly:{light:`Użyj tylko w trybie jasnym`,dark:`Użyj tylko w trybie ciemnym`},copyName:`{{name}} – kopia`,duplicate:`Duplikuj {{name}}`,edit:`Edytuj {{name}}`,export:`Eksportuj {{name}}`,delete:`Usuń {{name}}`,deleteDescription:`Usunąć {{name}} z tej przeglądarki? Jasny lub ciemny wygląd, który go używa, wróci do motywu podstawowego.`,noMatches:`Brak pasujących motywów`,customTheme:`Motyw niestandardowy`,name:`Nazwa motywu`,paletteColor:`{{color}} ({{mode, lowercase}})`,color:{background:`Tło`,foreground:`Tekst`,sidebar:`Pasek boczny`,primary:`Akcent`,primaryForeground:`Tekst akcentu`},save:`Zapisz motyw`},color:{swatch:`{{label}}: {{color}}`,removeCustom:`Usuń {{hex}} z kolorów niestandardowych`,custom:`Kolor niestandardowy`,default:`domyślny`,red:`czerwony`,orange:`pomarańczowy`,amber:`bursztynowy`,yellow:`żółty`,lime:`limonkowy`,green:`zielony`,emerald:`szmaragdowy`,teal:`morski`,cyan:`cyjan`,sky:`błękitny`,blue:`niebieski`,indigo:`indygo`,violet:`fiołkowy`,purple:`fioletowy`,fuchsia:`fuksja`,pink:`różowy`,rose:`różany`,gray:`szary`}},admin:{instance:{title:`Administracja`,heading:`Instancja`,edit:`Edytuj instancję`,name:`Nazwa`,description:`Opis`,noDescription:`Brak opisu`,version:`Wersja aplikacji`,publicUrl:`Publiczny URL`,provider:{local:`Lokalne przechowywanie w PostgreSQL`,s3:`Magazyn obiektów zgodny z S3`,postgres:`Wbudowany PostgreSQL`,elasticsearch:`Wyszukiwanie zgodne z Elasticsearch`},section:{storage:`Przechowywanie plików`,search:`Wyszukiwanie zadań`,events:`Dostarczanie zdarzeń`},viewConfiguration:`Wyświetl konfigurację`,configure:{storage:`Konfiguruj przechowywanie`,search:`Konfiguruj wyszukiwanie`,events:`Konfiguruj dostarczanie zdarzeń`},providerTitle:`Dostawca`,deploymentManaged:`Zarządzane przez wdrożenie`,instanceManaged:`Zarządzane przez instancję`,transfers:`Transfery`,indexStatus:`Stan indeksu`,connection:`Połączenie`,transfersS3:`Pliki trafiają do magazynu obiektów po zapisaniu lokalnym.`,transfersLocal:`Nowe pliki są przechowywane w PostgreSQL.`,searchBuiltIn:`Wyszukiwanie działa bezpośrednio w PostgreSQL.`,searchIndexed:`Zmiany zadań są indeksowane w tle.`,eventsConnection:`Powiadomienia wybudzają odbiorców; PostgreSQL przechowuje historię do odtwarzania.`,builtIn:`Wbudowane`,connected:`Połączono`,upToDate:`Aktualne`,status:{ready:`gotowe`,transferring:`przesyłanie`,indexing:`indeksowanie`,connecting:`łączenie`,unavailable:`niedostępne`},pendingTransfers:`Oczekujące transfery`,pendingRemain:`Te pliki pozostają dostępne z PostgreSQL do zakończenia transferu.`,noPending:`Żadne pliki nie czekają na transfer.`,bucket:`Zasobnik`,storageEndpoint:`Punkt końcowy magazynu`,backup:`Kopia zapasowa`,backupBuckets:`Twórz kopię zapasową PostgreSQL i każdego używanego zasobnika magazynu obiektów.`,backupDatabase:`Zawartość plików jest częścią kopii zapasowej PostgreSQL.`,fallback:`Rozwiązanie awaryjne`,fallbackDescription:`Wyszukiwanie PostgreSQL jest dostępne, gdy zewnętrzny indeks jest opóźniony lub niedostępny.`,searchEndpoint:`Punkt końcowy wyszukiwania`,index:`Indeks`,delivery:`Dostarczanie`,deliveryDescription:`Trwałe zdarzenia i odtwarzanie pozostają w PostgreSQL. Opcjonalny broker rozsyła wybudzenia.`,brokerEndpoint:`Punkt końcowy brokera`,exchange:`Exchange`},configure:{storageTitle:`Konfiguruj przechowywanie plików`,searchTitle:`Konfiguruj wyszukiwanie zadań`,eventsTitle:`Konfiguruj dostarczanie zdarzeń`,saved:`Ustawienia instancji zapisane`,instanceName:`Nazwa instancji`,instanceDescription:`Opis instancji`,publicUrlSource:`Publiczny URL jest ustawiany przez KANVIL_URL we wdrożeniu.`,storageIntro:`Załączniki i zdjęcia profilowe używają tego dostawcy. Istniejące pliki zachowują swoją pierwotną lokalizację.`,storageProvider:`Dostawca przechowywania`,localDescription:`Zawartość plików jest przechowywana w lokalnej bazie danych i uwzględniana w kopiach zapasowych PostgreSQL.`,s3Endpoint:`Punkt końcowy S3`,s3EndpointHint:`Dla Amazon S3 pozostaw punkt końcowy pusty.`,region:`Region`,prefix:`Prefiks kluczy obiektów`,accessKeyId:`Identyfikator klucza dostępu`,secretAccessKey:`Tajny klucz dostępu`,savedSecret:`Zapisano. Pozostaw puste, aby zachować.`,deploymentCredentials:`Poświadczenia wdrożenia, jeśli pominięto`,pathStyle:`Używaj adresów URL zasobników w stylu ścieżki`,storageVerified:`Połączenie z magazynem zweryfikowane`,testStorage:`Testuj połączenie z magazynem`,filesWaiting_one:`{{count, number}} plik czeka na transfer. Oczekujące pliki można nadal czytać z PostgreSQL.`,filesWaiting_few:`{{count, number}} pliki czekają na transfer. Oczekujące pliki można nadal czytać z PostgreSQL.`,filesWaiting_many:`{{count, number}} plików czeka na transfer. Oczekujące pliki można nadal czytać z PostgreSQL.`,filesWaiting_other:`{{count, number}} pliku czeka na transfer. Oczekujące pliki można nadal czytać z PostgreSQL.`,transfersComplete:`Wszystkie transfery plików zakończone.`,storageDeployment:`Przechowywanie jest konfigurowane przez zmienne wdrożenia KANVIL_STORAGE_PROVIDER i S3_*.`,locations:`Istniejące lokalizacje przechowywania`,locationFiles_one:`{{count, number}} plik`,locationFiles_few:`{{count, number}} pliki`,locationFiles_many:`{{count, number}} plików`,locationFiles_other:`{{count, number}} pliku`,cleanUp:`Wyczyść nieużywane pliki`,cleanUpConfirm:`Usunąć niepowiązane pliki i nieudane przesyłania starsze niż jeden dzień? Pliki dołączone do zadań lub profili zostaną zachowane.`,cleanUpNote:`Czyszczenie działa także automatycznie. Obiekty S3 wymagają kopii zapasowej zasobnika obok kopii bazy danych.`,searchProvider:`Dostawca wyszukiwania`,searchBuiltIn:`Wbudowane wyszukiwanie PostgreSQL`,indexName:`Nazwa indeksu Kanvil`,searchAuthentication:`Uwierzytelnianie wyszukiwania`,noAuthentication:`Bez uwierzytelniania`,apiKey:`Klucz API`,basic:`Nazwa użytkownika i hasło`,searchApiKey:`Klucz API wyszukiwania`,optional:`Opcjonalne`,searchUsername:`Nazwa użytkownika wyszukiwania`,searchPassword:`Hasło wyszukiwania`,searchVerified:`Połączenie z wyszukiwaniem zweryfikowane`,testSearch:`Testuj połączenie z wyszukiwaniem`,rebuildQueued:`Przebudowa wyszukiwania w kolejce`,rebuild:`Przebuduj indeks`,searchNote:`PostgreSQL pozostaje źródłem prawdy dla uprawnień i filtrów. Wyszukiwanie korzysta z PostgreSQL, gdy zewnętrzny indeks nadrabia zaległości lub jest niedostępny.`,brokerProvider:`Dostawca dostarczania zdarzeń`,brokerBuiltIn:`Wbudowane powiadomienia PostgreSQL`,rabbitUrl:`URL połączenia RabbitMQ`,savedBrokerEndpoint:`Zapisany punkt końcowy brokera`,rabbitExchange:`Exchange RabbitMQ`,brokerVerified:`Dostarczanie RabbitMQ zweryfikowane`,testBroker:`Testuj połączenie z brokerem`,brokerNote:`RabbitMQ rozsyła wybudzenia zatwierdzonych zdarzeń do instancji Kanvil i wybudza procesy w tle. PostgreSQL przechowuje trwałe zdarzenia i oczekującą pracę oraz dostarcza wybudzenia, gdy broker jest niedostępny.`,brokerDeployment:`Dostarczanie zdarzeń jest konfigurowane przez zmienne wdrożenia KANVIL_BROKER_PROVIDER i RABBITMQ_*.`,save:`Zapisz ustawienia instancji`},authentication:{title:`Uwierzytelnianie`,saved:`Uwierzytelnianie zapisane`,emailPassword:`Logowanie adresem e-mail i hasłem`,emailPasswordDescription:`Obejmuje kody logowania wysyłane e-mailem i resetowanie hasła.`,ssoProvision:`Automatycznie twórz użytkowników z SSO`,ssoProvisionDescription:`Nowi użytkownicy SSO nie mają dostępu do przestrzeni roboczych ani projektów, dopóki nie zostaną zaproszeni.`,registration:`Publiczna rejestracja przez e-mail`,registrationClosed:`Zamknięta`,identityProvider:`Dostawca tożsamości`,notConfigured:`Nie skonfigurowano`,linkedProviders:`Dostawcy połączonych kont`,linkedProvidersDescription:`Logują tylko konta, które je połączyły; nigdy nie tworzą kont.`,save:`Zapisz uwierzytelnianie`,discoveryUrl:`URL wykrywania OIDC`,clientId:`Identyfikator klienta OIDC`,oidcSetup:`Skonfiguruj OIDC_DISCOVERY_URL, OIDC_CLIENT_ID, OIDC_CLIENT_SECRET i OIDC_NAME albo parę CLIENT_ID i CLIENT_SECRET dla GITHUB_, GOOGLE_ lub DISCORD_ we wdrożeniu, a następnie uruchom ponownie Kanvil. Sekrety dostawcy nigdy nie są zwracane do przeglądarki.`,consumers:`Interfejsy dla klientów`,mcpEndpoint:`Punkt końcowy MCP`,eventFeed:`Kanał zdarzeń w czasie rzeczywistym`,openApi:`Specyfikacja OpenAPI`},users:{title:`Użytkownicy`,search:`Szukaj użytkowników`,searchPlaceholder:`Nazwa lub adres e-mail…`,new:`Nowy użytkownik`,roleFilter:`Filtr roli w instancji`,allRoles:`Wszystkie role`,administrators:`Administratorzy`,users:`Użytkownicy`,statusFilter:`Filtr stanu konta`,allAccounts:`Wszystkie konta`,active:`Aktywne`,disabled:`Wyłączone`,noMatches:`Brak pasujących użytkowników`,empty:`Brak użytkowników`,user:`Użytkownik`,role:`Rola`,status:`Stan`,joined:`Dołączył`,actions:`Czynności`,administrator:`Administrator`,manage:`Zarządzaj {{name}}`,pagerNoun:`użytkownicy`,create:`Utwórz konto`,creating:`Tworzenie…`,created:`Utworzono {{email}}`,name:`Imię i nazwisko`,email:`E-mail`,initialPassword:`Hasło początkowe`,instanceRole:`Rola w instancji`},account:{details:`Szczegóły konta`,joined:`Dołączył {{date}}`,edit:`Edytuj konto`,instanceRole:`Rola w instancji`,adminDescription:`Może administrować każdą przestrzenią roboczą, kontem i ustawieniem wdrożenia.`,userDescription:`Dostęp określają role w przestrzeniach roboczych i projektach.`,changeRole:`Zmień rolę`,changeRoleTitle:`Zmień rolę w instancji`,signInMethods:`Metody logowania`,setPassword:`Ustaw hasło lokalne`,activeSessions:`Aktywne sesje`,sessions_one:`{{count, number}} sesja`,sessions_few:`{{count, number}} sesje`,sessions_many:`{{count, number}} sesji`,sessions_other:`{{count, number}} sesji`,revokeSessions:`Odwołaj sesje`,revokeConfirm:`Wylogować {{name}} ze wszystkich urządzeń? Klucze API pozostaną aktywne.`,sessionsRevoked:`Sesje odwołane`,access:`Dostęp do konta`,accessDisabled:`Logowanie i dostęp przez API są wyłączone.`,accessPreserved:`Wyłączenie konta zachowuje zadania i historię aktywności.`,enable:`Włącz konto`,disable:`Wyłącz konto`,enableConfirm:`Przywrócić logowanie dla {{name}}?`,disableConfirm:`Wyłączyć logowanie i dostęp przez API dla {{name}} oraz odwołać sesje?`,enabled:`Konto włączone`,disabledToast:`Konto wyłączone`,updateFailed:`Nie można zaktualizować konta`,workspaces:`Przestrzenie robocze`,addToWorkspace:`Dodaj do przestrzeni roboczej`,noWorkspaces:`Brak członkostwa w przestrzeniach roboczych`,projectAccess:`Bezpośredni dostęp do projektów`,updated:`Konto zaktualizowane`,roleUpdated:`Rola w instancji zaktualizowana`,workspaceAdded:`Dodano dostęp do przestrzeni roboczej`,passwordMismatch:`Nowe hasła nie są zgodne.`,passwordSet:`Ustawiono hasło lokalne i odwołano sesje`,name:`Imię i nazwisko`,email:`E-mail`,user:`Użytkownik`,administrator:`Administrator`,adminsNote:`Administratorzy mogą zarządzać wszystkimi przestrzeniami roboczymi, użytkownikami i ustawieniami instancji.`,workspace:`Przestrzeń robocza`,workspaceRole:`Rola w przestrzeni roboczej`,newPassword:`Nowe hasło`,confirmPassword:`Potwierdź nowe hasło`,passwordNote:`Ustawia hasło lokalne i wylogowuje użytkownika ze wszystkich urządzeń.`,save:`Zapisz zmiany`},delivery:{field:{address:`Adres e-mail`,server:`Serwer`,topic:`Temat`,accessToken:`Token dostępu`,applicationToken:`Token aplikacji`,endpointUrl:`URL punktu końcowego`,signingSecret:`Sekret podpisywania`,incomingWebhookUrl:`URL przychodzącego webhooka`,webhookUrl:`URL webhooka`,channel:`Kanał`,botToken:`Token bota`,chatId:`Identyfikator czatu`,chatIdPlaceholder:`-1001234567890 lub @channel`,topicId:`Identyfikator tematu`,optional:`{{label}} (opcjonalnie)`,removeSaved:`Usuń zapisane: {{label, lowercase}}`,savedSecret:`Zapisano · pozostaw puste, aby zachować`},failure:{blockedAddress:`Ten adres nie jest dozwolony`,redirectBlocked:`Punkt końcowy przekierował`,dnsError:`Nie znaleziono hosta`,networkError:`Nie można połączyć`,timeout:`Przekroczono limit czasu`,invalidEndpoint:`Nieprawidłowy punkt końcowy`,emailUnavailable:`Poczta e-mail nie jest skonfigurowana na tym serwerze`,smtpError:`Serwer poczty niedostępny`,accessRevoked:`Administrator, który go połączył, stracił dostęp; połącz ponownie`,repositoryMismatch:`Dostarczenie pochodziło z innego repozytorium`,http:`Odrzucono z kodem HTTP {{status}}`,smtp:`Serwer poczty odpowiedział {{code}}`},health:{delivery:{done:`Dostarczono <time/>`,pending:`Wysyłanie…`,none:`Jeszcze nic nie wysłano`,failed:`{{reason}}`},access:{done:`Dostęp sprawdzono <time/>`,pending:`Sprawdzanie dostępu…`,none:`Dostępu nie sprawdzono`,failed:`Sprawdzenie dostępu: {{reason}}`},retrying:`ponawianie`},paused:`Wstrzymane`,failing:`Błędy`,sendTest:`Wyślij test do {{name}}`,testQueued:`Test w kolejce`,resume:`Wznów {{name}}`,pause:`Wstrzymaj {{name}}`,edit:`Edytuj {{name}}`,disconnect:`Odłącz {{name}}`,disconnected:`Odłączono {{name}}`,name:`Nazwa`,type:`Typ`,channels:`Kanały`,addChannel:`Dodaj kanał`,noChannels:`Brak kanałów`,editChannel:`Edytuj kanał`,channelSaved:`Kanał zapisany`,channelRemoval:`Odłączyć {{name}}? Jego ustawienia i powiadomienia w kolejce zostaną odrzucone.`,sendFrom:`Wysyłaj powiadomienia z`,routeOff:`Nic`,routeAll:`Wszystkie projekty`,routeSelected:`Wybrane projekty`,saveChannel:`Zapisz kanał`,adminsOnly:`Integracjami zarządzają administratorzy projektu`,destinations:`Miejsca docelowe`,addDestination:`Dodaj miejsce docelowe`,noDestinations:`Brak miejsc docelowych`,editDestination:`Edytuj miejsce docelowe`,destinationSaved:`Miejsce docelowe zapisane`,destinationRemoval:`Odłączyć {{name}}? Jego ustawienia i wiadomości w kolejce zostaną odrzucone.`,send:`Wysyłaj`,saveDestination:`Zapisz miejsce docelowe`},repository:{setup:{github:`Token wymaga dostępu do odczytu repozytorium oraz dostępu do zapisu zgłoszeń i pull requestów, aby komentować lub synchronizować zgłoszenia. Dodaj webhook GitHub z adresem URL skopiowanym z wiersza tego repozytorium, typem zawartości application/json, tym sekretem oraz zdarzeniami Branch or tag creation, Branch or tag deletion, Issues, Issue comments i Pull requests.`,gitea:`Token wymaga zakresu read:repository oraz write:issue, aby komentować lub synchronizować zgłoszenia. Dodaj webhook Gitea z adresem URL skopiowanym z wiersza tego repozytorium, typem zawartości application/json, tym sekretem oraz zdarzeniami Create, Delete, Issues, Issue Label, Issue Comment i Pull Request.`,gitlab:`Token wymaga zakresu read_api oraz api, aby komentować lub synchronizować zgłoszenia. Dodaj webhook GitLab z adresem URL skopiowanym z wiersza tego repozytorium, tym tokenem sekretnym oraz zdarzeniami Push, Issues, Comments i Merge request.`},noWebhook:`Nie odebrano webhooka`,webhookReceived:`Webhook odebrany <time/>`,saved:`Repozytorium zapisane`,title:`Repozytoria`,connect:`Połącz repozytorium`,empty:`Brak repozytoriów`,checkAccess:`Sprawdź dostęp do {{repository}}`,accessQueued:`Sprawdzenie dostępu w kolejce`,copyWebhook:`Kopiuj URL webhooka dla {{repository}}`,issueSync:`Synchronizacja zgłoszeń dla {{repository}}`,removal:`Odłączyć {{repository}}? Jego webhook natychmiast przestanie działać. Dodane przez niego linki pozostaną w zadaniach.`,edit:`Edytuj repozytorium`,host:`Host`,serverUrl:`URL serwera`,serverUrlOptional:`URL serwera (opcjonalnie)`,repository:`Repozytorium {{host}}`,nestedPlaceholder:`group/project`,placeholder:`owner/repository`,accessToken:`Token dostępu`,webhookSecret:`Sekret webhooka`,savedSecret:`Zapisano · pozostaw puste, aby zachować`,commentOnLink:{pull_request:`Komentuj nowo powiązane zgłoszenia i pull requesty`,merge_request:`Komentuj nowo powiązane zgłoszenia i merge requesty`},moveTickets:`Przenoś powiązane zadania`,noMove:`Bez przenoszenia`,save:`Zapisz repozytorium`},issueSync:{reason:{labels:`Zmieniły się jego etykiety synchronizacji`,conflict:`Zmieniono po obu stronach`,changedWhilePaused:`Zgłoszenie zmieniło się, gdy repozytorium było wstrzymane`,unverified:`Odpowiedź hosta nie potwierdziła zmiany`,claimConflict:`Zadanie jest przejęte`,invalidContent:`Zgłoszenie jest dłuższe, niż pozwala zadanie`},issuesSyncing_one:`{{count, number}} zgłoszenie synchronizowane`,issuesSyncing_few:`{{count, number}} zgłoszenia synchronizowane`,issuesSyncing_many:`{{count, number}} zgłoszeń synchronizowanych`,issuesSyncing_other:`{{count, number}} zgłoszenia synchronizowanego`,linksStopped_one:`{{count, number}} połączenie zatrzymane`,linksStopped_few:`{{count, number}} połączenia zatrzymane`,linksStopped_many:`{{count, number}} połączeń zatrzymanych`,linksStopped_other:`{{count, number}} połączenia zatrzymanego`,match:`Dopasowanie`,matchAny:`Dowolna z tych etykiet`,matchAll:`Wszystkie te etykiety`,preview:{matching:`Nadal synchronizowane`,export:`Nowe zgłoszenia do utworzenia`,pause:`Połączenia do wstrzymania`,review:`Połączenia do przeglądu`},applied:`Synchronizacja zgłoszeń zastosowana`,title:`Synchronizacja zgłoszeń · {{repository}}`,outbound:`Kanvil → {{host}}`,exportTickets:`Eksportuj zadania jako zgłoszenia`,exportDescription:`Otwarte zadania otrzymują nowe zgłoszenie; tytuł, opis, stan i nowe komentarze pozostają zsynchronizowane.`,ticketLabels:`Tylko zadania z tymi etykietami`,everyTicket:`Każde otwarte zadanie`,inbound:`{{host}} → Kanvil`,importIssues:`Importuj zgłoszenia jako zadania`,importDescription:`Otwarte zgłoszenia zostaną zaimportowane, gdy {{host}} je następnie zgłosi.`,issueLabels:`Tylko zgłoszenia z tymi etykietami`,everyIssue:`Każde otwarte zgłoszenie`,previewLabel:`Podgląd`,previewAction:`Podgląd`,stopped:`Zatrzymane połączenia · {{repository}}`,review:`Przejrzyj`,linkRemoved:`Połączenie usunięte`,resumed:`Synchronizacja wznowiona`,open:`Otwarte`,closed:`Zamknięte`,reviewTitle:`Przegląd {{key}}`,mayExist:`{{host}} może już mieć to zgłoszenie; sprawdź to przed ponownym utworzeniem.`,comparison:`Porównanie`,field:{title:`tytuł`,description:`opis`,state:`stan`},notReported:`Nie zgłoszono`,unlink:`Rozłącz`,keepHost:`Zachowaj {{host}}`,keepKanvil:`Zachowaj Kanvil`,createAgain:`Utwórz zgłoszenie ponownie`,unlinkTicket:`Rozłącz {{key}}`,unlinkConfirm:`Zatrzymać synchronizację {{key}}? Zadanie i zgłoszenie pozostaną.`},import:{count:{tickets:`Zadania`,workflow:`Stany przepływu pracy`,fields:`Pola niestandardowe`,labels:`Etykiety`,relations:`Powiązania`,comments:`Komentarze`,evidence:`Dowody`,links:`Linki`},notExport:`Ten plik nie jest eksportem zadań Kanvil.`,progress_one:`{{status}} · {{done, number}} z {{count, number}} rekordu`,progress_few:`{{status}} · {{done, number}} z {{count, number}} rekordów`,progress_many:`{{status}} · {{done, number}} z {{count, number}} rekordów`,progress_other:`{{status}} · {{done, number}} z {{count, number}} rekordu`,progressFailed_one:`{{status}} · {{done, number}} z {{count, number}} rekordu · nieudane: {{failed, number}}`,progressFailed_few:`{{status}} · {{done, number}} z {{count, number}} rekordów · nieudane: {{failed, number}}`,progressFailed_many:`{{status}} · {{done, number}} z {{count, number}} rekordów · nieudane: {{failed, number}}`,progressFailed_other:`{{status}} · {{done, number}} z {{count, number}} rekordu · nieudane: {{failed, number}}`,title:`Import`,description:`Tworzy projekt z eksportu zadań Kanvil lub innego systemu do śledzenia zadań: Linear, Jira, Trello, Plane, PLANKA lub Kaneo.`,action:`Importuj projekt`,detailsOf:`Szczegóły: {{name}}`,details:`Szczegóły`,exportFile:`Plik eksportu Kanvil`,source:`Źródło`,file:`Plik eksportu`,jiraEdition:`Wersja Jira`,siteUrl:`URL witryny`,accountEmail:`Adres e-mail konta`,apiKey:`Klucz API`,apiToken:`Token API`,personalToken:`Osobisty token dostępu`,token:`Token`,apiUrl:`URL API`,workspaceSlug:`Klucz URL przestrzeni roboczej`,signInWith:`Logowanie przez`,username:`Nazwa użytkownika lub e-mail`,password:`Hasło`,checkConnection:`Sprawdź dane połączenia`,noProjects:`Te poświadczenia nie mają dostępu do odczytu żadnego elementu: {{label, lowercase}}.`,includeComments:`Uwzględnij komentarze`,projectName:`Nazwa projektu`,start:`Importuj`,connect:`Połącz`,preview:`Podgląd`,starting:`Uruchamianie…`,connecting:`Łączenie…`,checking:`Sprawdzanie…`,matched:`Dopasowane osoby`,unmatched:`Niedopasowane osoby`,previewLabel:`Podgląd importu`,errorPrefix:`Błąd: `,notePrefix:`Uwaga: `,progressLabel:`Postęp importu`,notImported:`Rekordy niezaimportowane`,stop:`Zatrzymaj import`,openProject:`Otwórz projekt`}},native:{labelValue:`{{label}}: {{value}}`,ui:{dismiss:`Odrzuć`,loading:`Wczytywanie`},server:{url:`URL serwera`,connect:`Połącz`,change:`Zmień serwer`,invalidOrigin:`Użyj źródła HTTP lub HTTPS serwera Kanvil, bez ścieżki i danych uwierzytelniających.`,httpsRequired:`Użyj HTTPS, aby połączyć się z serwerem Kanvil.`},login:{setupTitle:`Utwórz konto właściciela`,signIn:`Zaloguj się`,signingIn:`Logowanie…`,createAccount:`Utwórz konto`,signInWith:`Zaloguj się przez {{provider}}`,name:`Imię i nazwisko`,setupToken:`Token konfiguracji`,email:`E-mail`,password:`Hasło`},connection:{connecting:`łączenie`,connected:`● Na żywo`,offline:`Offline · dane z pamięci podręcznej`,closed:`zamknięte`,signedOut:`Zaloguj się, aby ponownie połączyć`},screen:{projects:`Projekty`,inbox:`Skrzynka odbiorcza`,settings:`Ustawienia`,tickets:`Zadania`,ticket:`Zadanie`,newTicket:`Nowe zadanie`,editTicket:`Edytuj zadanie`},projects:{empty:`Brak projektów`,new:`Nowy projekt`,name:`Nazwa projektu`,prefix:`Prefiks zadań`,description:`Opis`,create:`Utwórz projekt`},tickets:{search:`Szukaj zadań`,searchPlaceholder:`Tytuł, opis lub klucz`,allStatuses:`Wszystkie statusy`,empty:`Brak pasujących zadań`,count:`{{shown}} z {{total}}`},ticket:{priority:`Priorytet: {{priority}}`,noDifficulty:`Nieokreślona trudność`,version:`v{{version}}`,starts:`Początek: {{date}}`,due:`Termin: {{date}}`},editor:{stale:`To zadanie się zmieniło. Zapisana wersja robocza nadal używa wersji {{version}}.`,discardDraft:`Odrzuć wersję roboczą i odśwież`,title:`Tytuł`,noDifficulty:`Nieokreślona`,labels:`Etykiety (oddzielone przecinkami)`,scopes:`Zakresy (oddzielone przecinkami)`,editMarkdown:`Edytuj Markdown`,previewMarkdown:`Podgląd Markdown`,description:`Opis (Markdown)`,acceptanceCriteria:`Kryteria akceptacji (Markdown)`,parent:`Identyfikator zadania nadrzędnego`,automationReady:`Gotowe dla agentów, gdy pozwolą na to wymagania i zależności`,holdReason:`Powód wstrzymania`,draftSaved:`Wersja robocza zapisana na tym urządzeniu`,save:`Zapisz zadanie`},detail:{archived:`Zarchiwizowane`,subscribe:`Subskrybuj`,unsubscribe:`Anuluj subskrypcję`,share:`Udostępnij`,description:`Opis`,noDescription:`_Brak opisu_`,acceptanceCriteria:`Kryteria akceptacji`,noAcceptanceCriteria:`_Brak kryteriów akceptacji_`,fields:`Pola`,archive:{action:`Archiwizuj zadanie`,title:`Zarchiwizować zadanie?`,message:`Usunąć to zadanie z aktywnych list i wykluczyć je z pracy agentów?`},unarchive:{action:`Przywróć zadanie z archiwum`,title:`Przywrócić zadanie z archiwum?`,message:`Przywrócić to zadanie na aktywne listy?`}},readiness:{title:`Gotowość dla agentów`,ready:`Gotowe do przejęcia`,notReady:`Niegotowe do przejęcia`,hold:`Wstrzymane: {{reason}}`,claimed:`Przejęte przez {{worker}} do {{time}}.`,release:{action:`Zwolnij moje przejęcie`,title:`Zwolnić przejęcie?`,message:`Zatrzymaj wykonawcę przed zwolnieniem własności.`,confirm:`Zwolnij`},recover:{action:`Odzyskaj wygasłe przejęcie`,explanation:`Najpierw potwierdź, że wykonawca został zatrzymany.`,reason:`Powód odzyskania`,confirm:`Wykonawca zatrzymany · odzyskaj`}},relations:{title:`Powiązania`,parent:`Nadrzędne · {{key}} · {{title}}`,openParent:`Otwórz zadanie nadrzędne`,children:`Zadania podrzędne`,previousChildren:`Poprzednie zadania podrzędne`,nextChildren:`Następne zadania podrzędne`,remove:`Usuń powiązanie`,removeTitle:`Usunąć powiązanie?`,add:`Dodaj powiązanie`,find:`Znajdź zadanie`,type:`Powiązanie`,ticket:`Zadanie`,choose:`Wybierz zadanie`},discussion:{title:`Dyskusja`,previous:`Wcześniejsze komentarze`,next:`Późniejsze komentarze`,field:`Komentarz (Markdown)`,submit:`Skomentuj`,you:`Ty`,edit:`Edytuj komentarz`,editField:`Komentarz`,delete:`Usuń komentarz`,deleteTitle:`Usunąć komentarz?`,deleteMessage:`Trwale usunąć ten komentarz?`,save:`Zapisz komentarz`},attachments:{title:`Załączniki`,item:`{{name}} · {{size}} kB`,remove:`Usuń {{name}}`,removeTitle:`Usunąć załącznik?`,working:`Przetwarzanie…`,add:`Dodaj załącznik`,tooLarge:`Wybierz plik o rozmiarze do 10 MB.`,sharingUnavailable:`Udostępnianie plików jest niedostępne na tym urządzeniu.`},evidence:{title:`Dowody`,explanation:`Wyniki są zgłaszane przez konta, które je przesłały.`,add:`Dodaj dowód`,name:`Tytuł`,url:`URL`,outcome:`Zgłoszony wynik`,commit:`Commit (pełny hash)`,note:`Notatka`,save:`Zapisz dowód`},activity:{title:`Aktywność`,previous:`Wcześniejsza aktywność`,next:`Późniejsza aktywność`},inbox:{markAllRead:`Oznacz wszystkie jako przeczytane`,empty:`Brak powiadomień`},notifications:{title:`Powiadomienia`,inApp:`Aktualizacje subskrybowanych zadań w skrzynce odbiorczej`,push:`Powiadomienia push`,enableDevice:`Włącz push na tym urządzeniu`,disableDevice:`Wyłącz push na tym urządzeniu`,unconfigured:`Ta kompilacja wymaga identyfikatora projektu Expo i konfiguracji podpisywania dla push.`,noProjectId:`Ta kompilacja wymaga identyfikatora projektu Expo dla powiadomień push.`,permissionDenied:`Zezwól na powiadomienia w ustawieniach urządzenia, aby włączyć push.`,channel:`Aktualizacje zadań`},settings:{password:{title:`Hasło lokalne`,current:`Bieżące hasło`,new:`Nowe hasło`,change:`Zmień hasło`,updated:`Hasło zaktualizowane; pozostałe sesje odwołane`},oidc:{linked:`Konto połączone`,explanation:`Połącz to konto przed zalogowaniem się przez tego dostawcę.`,link:`Połącz {{provider}}`},signOut:{action:`Wyloguj się`,title:`Wylogować się?`,message:`Zadania z pamięci podręcznej i wersje robocze tego konta zostaną usunięte z tego urządzenia.`},changeServer:{title:`Zmienić serwer?`,message:`Wylogować się i wyczyścić lokalną pamięć podręczną oraz wersje robocze tego konta?`}}}};export{e as default};
@@ -1 +1 @@
1
- import{i as e}from"./rolldown-runtime-COiEfhsA.js";import{Nn as t,Ut as n,an as r,i,mn as a,r as o}from"./default-D6I-Xfqm.js";import{Ga as s,Hi as c,Ji as l,K as u,Ki as d,Li as f,Oa as p,Pt as m,Q as h,V as g,X as _,Y as v,Zi as y,at as b,di as x,ea as S,lt as C,nt as w,q as T,qa as E,ut as D}from"./search-DQtwggUH.js";import{t as O}from"./archive-restore-j20QLQCl.js";import{r as k,t as A}from"./Trans-NwgJNiLl.js";import{n as j}from"./CompositeItem-DvEBmVYM.js";import{Wt as M,n as N}from"./index-MTE_naHG.js";var P={name:`arrow-right-left`,size:24,node:[[`path`,{d:`m16 3 4 4-4 4`,key:`1x1c3m`}],[`path`,{d:`M20 7H4`,key:`zbl0bi`}],[`path`,{d:`m8 21-4-4 4-4`,key:`h9nckh`}],[`path`,{d:`M4 17h16`,key:`g4d7ey`}]]};P.node;var ee=s(P),F={name:`download`,size:24,node:[[`path`,{d:`M12 15V3`,key:`m9g1x1`}],[`path`,{d:`M21 15v4a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2v-4`,key:`ih7n3h`}],[`path`,{d:`m7 10 5 5 5-5`,key:`brsn70`}]]};F.node;var I=s(F),L={name:`log-in`,size:24,node:[[`path`,{d:`m10 17 5-5-5-5`,key:`1bsop3`}],[`path`,{d:`M15 12H3`,key:`6jk70r`}],[`path`,{d:`M15 3h4a2 2 0 0 1 2 2v14a2 2 0 0 1-2 2h-4`,key:`u53s6r`}]]};L.node;var R=s(L),z=e(t(),1),B=o();function V(e){let t=y(`archive_project`);return{pending:t.isPending,set:n=>t.mutateAsync({projectId:e.id,expectedVersion:e.version,archived:n}).then(()=>p.success(a(n?`settings.lifecycle.archivedToast`:`settings.lifecycle.restoredToast`)))}}function te({project:e}){let t=S(e.id),n=V(e);return e.archivedAt?(0,B.jsxs)(`p`,{role:`status`,className:`mt-0 mb-4 flex min-h-9 flex-wrap items-center gap-x-2 gap-y-1 border-b py-1.5 text-xs text-muted-foreground`,children:[(0,B.jsx)(k,{className:`size-3.5`,"aria-hidden":`true`}),(0,B.jsx)(`span`,{children:(0,B.jsx)(A,{i18nKey:`settings.lifecycle.archivedNotice`,components:{time:(0,B.jsx)(w,{value:e.archivedAt})}})}),t.canManage&&(0,B.jsxs)(x,{size:`sm`,variant:`ghost`,className:`ml-auto`,disabled:n.pending,onClick:()=>void n.set(!1).catch(D),children:[(0,B.jsx)(O,{}),a(`settings.lifecycle.restore`)]})]}):null}function H({project:e}){let t=V(e);return(0,B.jsx)(N,{title:a(`settings.lifecycle.archive`),description:e.archivedAt?(0,B.jsx)(A,{i18nKey:`settings.lifecycle.archivedDescription`,components:{time:(0,B.jsx)(w,{value:e.archivedAt})}}):a(`settings.lifecycle.archiveDescription`),children:e.archivedAt?(0,B.jsxs)(x,{disabled:t.pending,onClick:()=>void t.set(!1).catch(D),children:[(0,B.jsx)(O,{}),a(`settings.lifecycle.restore`)]}):(0,B.jsx)(g,{label:a(`settings.lifecycle.archiveProject`),description:a(`settings.lifecycle.archiveConfirm`,{name:e.name}),onConfirm:()=>t.set(!0)})})}var U=e=>r(e.map(e=>e.name));function W({query:e,rows:t}){if(e.error)return(0,B.jsx)(u,{error:e.error});if(!e.data)return(0,B.jsx)(_,{});let n=e.data;return(0,B.jsxs)(B.Fragment,{children:[n.blockers.map(e=>(0,B.jsx)(u,{error:Error(e.tickets.length?a(`settings.lifecycle.blocker`,{message:e.message,tickets:r(e.tickets)}):e.message)},`${e.code}:${e.message}`)),(0,B.jsx)(G,{rows:t(n)})]})}function G({rows:e}){return(0,B.jsx)(`dl`,{className:`my-3 grid grid-cols-[auto_minmax(0,1fr)] gap-x-5 gap-y-1.5 text-sm`,children:e.filter(([,e])=>e!==``).map(([e,t])=>(0,B.jsxs)(`div`,{className:`contents`,children:[(0,B.jsx)(`dt`,{className:`text-muted-foreground`,children:e}),(0,B.jsx)(`dd`,{className:`m-0 wrap-anywhere`,children:t})]},e))})}var K=e=>t=>t.transfer?[[a(`settings.lifecycle.row.tickets`),a(`settings.lifecycle.transferTickets`,{count:t.tickets})],[a(`settings.lifecycle.row.losesAccess`),U(t.transfer.losingAccess)||a(`settings.lifecycle.noOne`)],[a(`settings.lifecycle.row.gainsAccess`),U(t.transfer.gainingAccess)||a(`settings.lifecycle.noOne`)],[a(`settings.lifecycle.row.labelsCopied`),r(t.transfer.copiedLabels)],[a(`settings.lifecycle.row.labelsMerged`),r(t.transfer.mergedLabels)],[a(`settings.lifecycle.row.followsRemoved`),t.transfer.subscriptions?String(t.transfer.subscriptions):``],[a(`settings.lifecycle.row.invitations`),t.transfer.invitations?a(`settings.lifecycle.transferInvitations`,{count:t.transfer.invitations}):``]]:[[a(`settings.lifecycle.row.tickets`),String(t.tickets)],[a(`settings.lifecycle.row.comments`),String(t.comments)],[a(`settings.lifecycle.row.files`),a(`settings.lifecycle.files`,{count:t.attachments,size:C(t.attachmentBytes)})],[a(`settings.lifecycle.row.kept`),a(`settings.lifecycle.keptProject`,{count:t.events,key:e.key})]];function q({project:e,destinations:t}){let[n,r]=(0,z.useState)(!1),[i,o]=(0,z.useState)(t[0]?.id??``),s=y(`transfer_project`),l=E({...c.query(`get_project_impact`,{projectId:e.id,workspaceId:i}),enabled:n&&!!i}),u=t.find(e=>e.id===i);return(0,B.jsxs)(B.Fragment,{children:[(0,B.jsxs)(x,{onClick:()=>r(!0),children:[(0,B.jsx)(ee,{}),a(`settings.lifecycle.move`)]}),(0,B.jsx)(h,{title:a(`settings.lifecycle.moveTitle`,{name:e.name}),open:n,onOpenChange:e=>{r(e),e||s.reset()},busy:s.isPending,children:(0,B.jsxs)(`form`,{onSubmit:t=>{t.preventDefault(),s.mutateAsync({projectId:e.id,expectedVersion:e.version,workspaceId:i}).then(()=>{r(!1),p.success(u?a(`settings.lifecycle.moved`,{name:u.name}):a(`settings.lifecycle.movedUnnamed`))}).catch(()=>{})},children:[(0,B.jsx)(b,{label:a(`settings.lifecycle.destination`),value:i,onValueChange:e=>{e&&o(e)},children:t.map(e=>(0,B.jsx)(m,{value:e.id,children:e.name},e.id))}),(0,B.jsx)(W,{query:l,rows:K(e)}),(0,B.jsx)(T,{error:s.error,pending:s.isPending,submitLabel:a(`settings.lifecycle.moveProject`),pendingLabel:a(`settings.lifecycle.moving`),submitDisabled:!l.data||l.data.blockers.length>0,onCancel:()=>r(!1)})]})})]})}function J({project:e}){let[t,n]=(0,z.useState)(!1);return(0,B.jsx)(N,{title:a(`settings.lifecycle.export`),description:a(`settings.lifecycle.exportDescription`),children:(0,B.jsxs)(x,{disabled:t,onClick:()=>{n(!0),c.call(`export_project`,{projectId:e.id}).then(t=>f(`${e.key}.kanvil-tickets.json`,JSON.stringify(t,null,2))).catch(D).finally(()=>n(!1))},children:[(0,B.jsx)(I,{}),a(t?`settings.lifecycle.exporting`:`settings.lifecycle.exportJson`)]})})}function Y({description:e,label:t,name:n,confirm:r,open:i,onOpenChange:o,summary:s,ready:c,pending:l,error:u,onDelete:d,footer:f}){let[m,g]=(0,z.useState)(``),_=e=>{o(e),e||g(``)};return(0,B.jsxs)(N,{title:a(`settings.lifecycle.delete`),description:e,children:[(0,B.jsxs)(x,{variant:`destructive`,onClick:()=>_(!0),children:[(0,B.jsx)(j,{}),t]}),(0,B.jsx)(h,{title:a(`settings.lifecycle.deleteTitle`,{name:n}),open:i,onOpenChange:_,busy:l,children:(0,B.jsxs)(`form`,{onSubmit:e=>{e.preventDefault(),d(m).then(()=>p.success(a(`settings.lifecycle.deleted`,{name:n}))).catch(()=>{})},children:[s,(0,B.jsx)(v,{label:a(`settings.lifecycle.typeToConfirm`,{value:r}),value:m,onChange:e=>g(e.target.value),autoComplete:`off`,spellCheck:!1,className:`font-mono`}),f,(0,B.jsx)(T,{danger:!0,error:u,pending:l,submitLabel:t,pendingLabel:a(`settings.lifecycle.deleting`),submitDisabled:m.trim().toLowerCase()!==r.toLowerCase()||!c,onCancel:()=>_(!1)})]})})]})}function X({project:e}){let t=M(),[n,r]=(0,z.useState)(!1),i=y(`delete_project`,()=>t({to:`/`})),o=E({...c.query(`get_project_impact`,{projectId:e.id}),enabled:n});return(0,B.jsx)(Y,{description:a(`settings.lifecycle.deleteProjectDescription`,{key:e.key}),label:a(`settings.lifecycle.deleteProject`),name:e.name,confirm:e.key,open:n,onOpenChange:e=>{r(e),e||i.reset()},summary:(0,B.jsx)(W,{query:o,rows:K(e)}),ready:!!o.data&&!o.data.blockers.length,pending:i.isPending,error:i.error,onDelete:t=>i.mutateAsync({projectId:e.id,expectedVersion:e.version,confirmKey:t})})}var Z=e=>t=>[[a(`settings.lifecycle.row.projects`),t.projects.length?(0,B.jsx)(`ul`,{className:`m-0 list-none p-0`,children:t.projects.map(e=>(0,B.jsxs)(`li`,{children:[(0,B.jsx)(`span`,{dir:`auto`,children:e.name}),` `,(0,B.jsx)(`span`,{className:`font-mono text-muted-foreground`,children:e.key}),(0,B.jsxs)(`span`,{className:`text-muted-foreground`,children:[` `,`· `,a(`settings.tickets`,{count:e.tickets}),e.archived&&(0,B.jsxs)(B.Fragment,{children:[` · `,a(`settings.lifecycle.archivedProject`)]})]})]},e.id))},`projects`):a(`common.state.none`)],[a(`settings.lifecycle.row.tickets`),String(t.tickets)],[a(`settings.lifecycle.row.comments`),String(t.comments)],[a(`settings.lifecycle.row.files`),a(`settings.lifecycle.files`,{count:t.attachments,size:C(t.attachmentBytes)})],[a(`settings.lifecycle.row.members`),a(`settings.lifecycle.membersLoseAccess`,{count:t.members})],[a(`settings.lifecycle.row.invitations`),t.invitations?a(`settings.lifecycle.pendingInvitations`,{count:t.invitations}):``],[a(`settings.lifecycle.row.sharedLabels`),t.labels?String(t.labels):``],[a(`settings.lifecycle.row.kept`),a(`settings.lifecycle.keptWorkspace`,{count:t.events,slug:e.slug})]];function Q({error:e}){let t=l();return e instanceof i&&e.code===`reauthentication_required`?(0,B.jsxs)(x,{className:`mb-3`,onClick:()=>void d(t,window.location.pathname+window.location.search).catch(D),children:[(0,B.jsx)(R,{}),a(`settings.lifecycle.signInAgain`)]}):null}function ne({workspace:e}){let t=M(),[n,r]=(0,z.useState)(!1),i=y(`delete_workspace`,()=>t({to:`/`})),o=E({...c.query(`get_workspace_impact`,{workspaceId:e.id}),enabled:n});return(0,B.jsx)(Y,{description:a(`settings.lifecycle.deleteWorkspaceDescription`),label:a(`settings.lifecycle.deleteWorkspace`),name:e.name,confirm:e.slug,open:n,onOpenChange:e=>{r(e),e||i.reset()},summary:(0,B.jsx)(W,{query:o,rows:Z(e)}),ready:!!o.data&&!o.data.blockers.length,pending:i.isPending,error:i.error,footer:(0,B.jsx)(Q,{error:i.error}),onDelete:t=>i.mutateAsync({workspaceId:e.id,expectedVersion:e.version,confirmSlug:t})})}var $=e=>r(e.map(e=>n[e]??e))||a(`settings.lifecycle.noSignInMethods`),re=e=>[[a(`settings.lifecycle.row.signIn`),$(e.providers)],[a(`settings.lifecycle.row.sessions`),a(`settings.lifecycle.sessions`,{count:e.sessions})],[a(`settings.lifecycle.row.credentials`),e.credentials?a(`settings.lifecycle.credentials`,{count:e.credentials}):``],[a(`settings.lifecycle.row.devices`),e.devices?a(`settings.lifecycle.devices`,{count:e.devices}):``],[a(`settings.lifecycle.row.access`),e.projects?a(`settings.lifecycle.accessBoth`,{workspaces:a(`settings.lifecycle.workspaceCount`,{count:e.workspaces}),projects:a(`settings.lifecycle.directProjectCount`,{count:e.projects})}):a(`settings.lifecycle.accessWorkspaces`,{workspaces:a(`settings.lifecycle.workspaceCount`,{count:e.workspaces})})],[a(`settings.lifecycle.row.claims`),e.claims?a(`settings.lifecycle.claims`,{count:e.claims}):``],[a(`settings.lifecycle.row.imports`),e.imports?a(`settings.lifecycle.imports`,{count:e.imports}):``],[a(`settings.lifecycle.row.profile`),a(`settings.lifecycle.profileErased`)],[a(`settings.lifecycle.row.kept`),a(`settings.lifecycle.keptAccount`,{tickets:a(`settings.tickets`,{count:e.tickets}),comments:a(`settings.lifecycle.commentCount`,{count:e.comments}),events:a(`settings.lifecycle.activityCount`,{count:e.events}),name:a(`common.person.deleted`)})]];function ie({account:e,onDeleted:t}){let n=l(),r=e.id===n.id,[i,o]=(0,z.useState)(!1),s=y(`delete_account`,t),u=E({...c.query(`get_account_impact`,{userId:e.id}),enabled:i});return(0,B.jsx)(Y,{description:a(r?`settings.lifecycle.deleteOwnAccount`:`settings.lifecycle.deleteOtherAccount`,{name:a(`common.person.deleted`)}),label:a(`settings.lifecycle.deleteAccount`),name:e.name,confirm:e.email,open:i,onOpenChange:e=>{o(e),e||s.reset()},summary:(0,B.jsx)(W,{query:u,rows:re}),ready:!!u.data&&!u.data.blockers.length,pending:s.isPending,error:s.error,footer:(0,B.jsx)(Q,{error:s.error}),onDelete:t=>s.mutateAsync({userId:e.id,confirmEmail:t})})}export{ne as a,G as c,X as i,$ as l,te as n,J as o,ie as r,q as s,H as t,I as u};
1
+ import{i as e}from"./rolldown-runtime-COiEfhsA.js";import{Nn as t,Ut as n,an as r,i,mn as a,r as o}from"./default-bQFGTwIp.js";import{Ga as s,Hi as c,Ji as l,K as u,Ki as d,Li as f,Oa as p,Pt as m,Q as h,V as g,X as _,Y as v,Zi as y,at as b,di as x,ea as S,lt as C,nt as w,q as T,qa as E,ut as D}from"./search-Ble6WSEU.js";import{t as O}from"./archive-restore-76sStk8K.js";import{r as k,t as A}from"./Trans-B1rRlWca.js";import{n as j}from"./CompositeItem-CXqewtEL.js";import{Wt as M,n as N}from"./index-CYVrs22O.js";var P={name:`arrow-right-left`,size:24,node:[[`path`,{d:`m16 3 4 4-4 4`,key:`1x1c3m`}],[`path`,{d:`M20 7H4`,key:`zbl0bi`}],[`path`,{d:`m8 21-4-4 4-4`,key:`h9nckh`}],[`path`,{d:`M4 17h16`,key:`g4d7ey`}]]};P.node;var ee=s(P),F={name:`download`,size:24,node:[[`path`,{d:`M12 15V3`,key:`m9g1x1`}],[`path`,{d:`M21 15v4a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2v-4`,key:`ih7n3h`}],[`path`,{d:`m7 10 5 5 5-5`,key:`brsn70`}]]};F.node;var I=s(F),L={name:`log-in`,size:24,node:[[`path`,{d:`m10 17 5-5-5-5`,key:`1bsop3`}],[`path`,{d:`M15 12H3`,key:`6jk70r`}],[`path`,{d:`M15 3h4a2 2 0 0 1 2 2v14a2 2 0 0 1-2 2h-4`,key:`u53s6r`}]]};L.node;var R=s(L),z=e(t(),1),B=o();function V(e){let t=y(`archive_project`);return{pending:t.isPending,set:n=>t.mutateAsync({projectId:e.id,expectedVersion:e.version,archived:n}).then(()=>p.success(a(n?`settings.lifecycle.archivedToast`:`settings.lifecycle.restoredToast`)))}}function te({project:e}){let t=S(e.id),n=V(e);return e.archivedAt?(0,B.jsxs)(`p`,{role:`status`,className:`mt-0 mb-4 flex min-h-9 flex-wrap items-center gap-x-2 gap-y-1 border-b py-1.5 text-xs text-muted-foreground`,children:[(0,B.jsx)(k,{className:`size-3.5`,"aria-hidden":`true`}),(0,B.jsx)(`span`,{children:(0,B.jsx)(A,{i18nKey:`settings.lifecycle.archivedNotice`,components:{time:(0,B.jsx)(w,{value:e.archivedAt})}})}),t.canManage&&(0,B.jsxs)(x,{size:`sm`,variant:`ghost`,className:`ml-auto`,disabled:n.pending,onClick:()=>void n.set(!1).catch(D),children:[(0,B.jsx)(O,{}),a(`settings.lifecycle.restore`)]})]}):null}function H({project:e}){let t=V(e);return(0,B.jsx)(N,{title:a(`settings.lifecycle.archive`),description:e.archivedAt?(0,B.jsx)(A,{i18nKey:`settings.lifecycle.archivedDescription`,components:{time:(0,B.jsx)(w,{value:e.archivedAt})}}):a(`settings.lifecycle.archiveDescription`),children:e.archivedAt?(0,B.jsxs)(x,{disabled:t.pending,onClick:()=>void t.set(!1).catch(D),children:[(0,B.jsx)(O,{}),a(`settings.lifecycle.restore`)]}):(0,B.jsx)(g,{label:a(`settings.lifecycle.archiveProject`),description:a(`settings.lifecycle.archiveConfirm`,{name:e.name}),onConfirm:()=>t.set(!0)})})}var U=e=>r(e.map(e=>e.name));function W({query:e,rows:t}){if(e.error)return(0,B.jsx)(u,{error:e.error});if(!e.data)return(0,B.jsx)(_,{});let n=e.data;return(0,B.jsxs)(B.Fragment,{children:[n.blockers.map(e=>(0,B.jsx)(u,{error:Error(e.tickets.length?a(`settings.lifecycle.blocker`,{message:e.message,tickets:r(e.tickets)}):e.message)},`${e.code}:${e.message}`)),(0,B.jsx)(G,{rows:t(n)})]})}function G({rows:e}){return(0,B.jsx)(`dl`,{className:`my-3 grid grid-cols-[auto_minmax(0,1fr)] gap-x-5 gap-y-1.5 text-sm`,children:e.filter(([,e])=>e!==``).map(([e,t])=>(0,B.jsxs)(`div`,{className:`contents`,children:[(0,B.jsx)(`dt`,{className:`text-muted-foreground`,children:e}),(0,B.jsx)(`dd`,{className:`m-0 wrap-anywhere`,children:t})]},e))})}var K=e=>t=>t.transfer?[[a(`settings.lifecycle.row.tickets`),a(`settings.lifecycle.transferTickets`,{count:t.tickets})],[a(`settings.lifecycle.row.losesAccess`),U(t.transfer.losingAccess)||a(`settings.lifecycle.noOne`)],[a(`settings.lifecycle.row.gainsAccess`),U(t.transfer.gainingAccess)||a(`settings.lifecycle.noOne`)],[a(`settings.lifecycle.row.labelsCopied`),r(t.transfer.copiedLabels)],[a(`settings.lifecycle.row.labelsMerged`),r(t.transfer.mergedLabels)],[a(`settings.lifecycle.row.followsRemoved`),t.transfer.subscriptions?String(t.transfer.subscriptions):``],[a(`settings.lifecycle.row.invitations`),t.transfer.invitations?a(`settings.lifecycle.transferInvitations`,{count:t.transfer.invitations}):``]]:[[a(`settings.lifecycle.row.tickets`),String(t.tickets)],[a(`settings.lifecycle.row.comments`),String(t.comments)],[a(`settings.lifecycle.row.files`),a(`settings.lifecycle.files`,{count:t.attachments,size:C(t.attachmentBytes)})],[a(`settings.lifecycle.row.kept`),a(`settings.lifecycle.keptProject`,{count:t.events,key:e.key})]];function q({project:e,destinations:t}){let[n,r]=(0,z.useState)(!1),[i,o]=(0,z.useState)(t[0]?.id??``),s=y(`transfer_project`),l=E({...c.query(`get_project_impact`,{projectId:e.id,workspaceId:i}),enabled:n&&!!i}),u=t.find(e=>e.id===i);return(0,B.jsxs)(B.Fragment,{children:[(0,B.jsxs)(x,{onClick:()=>r(!0),children:[(0,B.jsx)(ee,{}),a(`settings.lifecycle.move`)]}),(0,B.jsx)(h,{title:a(`settings.lifecycle.moveTitle`,{name:e.name}),open:n,onOpenChange:e=>{r(e),e||s.reset()},busy:s.isPending,children:(0,B.jsxs)(`form`,{onSubmit:t=>{t.preventDefault(),s.mutateAsync({projectId:e.id,expectedVersion:e.version,workspaceId:i}).then(()=>{r(!1),p.success(u?a(`settings.lifecycle.moved`,{name:u.name}):a(`settings.lifecycle.movedUnnamed`))}).catch(()=>{})},children:[(0,B.jsx)(b,{label:a(`settings.lifecycle.destination`),value:i,onValueChange:e=>{e&&o(e)},children:t.map(e=>(0,B.jsx)(m,{value:e.id,children:e.name},e.id))}),(0,B.jsx)(W,{query:l,rows:K(e)}),(0,B.jsx)(T,{error:s.error,pending:s.isPending,submitLabel:a(`settings.lifecycle.moveProject`),pendingLabel:a(`settings.lifecycle.moving`),submitDisabled:!l.data||l.data.blockers.length>0,onCancel:()=>r(!1)})]})})]})}function J({project:e}){let[t,n]=(0,z.useState)(!1);return(0,B.jsx)(N,{title:a(`settings.lifecycle.export`),description:a(`settings.lifecycle.exportDescription`),children:(0,B.jsxs)(x,{disabled:t,onClick:()=>{n(!0),c.call(`export_project`,{projectId:e.id}).then(t=>f(`${e.key}.kanvil-tickets.json`,JSON.stringify(t,null,2))).catch(D).finally(()=>n(!1))},children:[(0,B.jsx)(I,{}),a(t?`settings.lifecycle.exporting`:`settings.lifecycle.exportJson`)]})})}function Y({description:e,label:t,name:n,confirm:r,open:i,onOpenChange:o,summary:s,ready:c,pending:l,error:u,onDelete:d,footer:f}){let[m,g]=(0,z.useState)(``),_=e=>{o(e),e||g(``)};return(0,B.jsxs)(N,{title:a(`settings.lifecycle.delete`),description:e,children:[(0,B.jsxs)(x,{variant:`destructive`,onClick:()=>_(!0),children:[(0,B.jsx)(j,{}),t]}),(0,B.jsx)(h,{title:a(`settings.lifecycle.deleteTitle`,{name:n}),open:i,onOpenChange:_,busy:l,children:(0,B.jsxs)(`form`,{onSubmit:e=>{e.preventDefault(),d(m).then(()=>p.success(a(`settings.lifecycle.deleted`,{name:n}))).catch(()=>{})},children:[s,(0,B.jsx)(v,{label:a(`settings.lifecycle.typeToConfirm`,{value:r}),value:m,onChange:e=>g(e.target.value),autoComplete:`off`,spellCheck:!1,className:`font-mono`}),f,(0,B.jsx)(T,{danger:!0,error:u,pending:l,submitLabel:t,pendingLabel:a(`settings.lifecycle.deleting`),submitDisabled:m.trim().toLowerCase()!==r.toLowerCase()||!c,onCancel:()=>_(!1)})]})})]})}function X({project:e}){let t=M(),[n,r]=(0,z.useState)(!1),i=y(`delete_project`,()=>t({to:`/`})),o=E({...c.query(`get_project_impact`,{projectId:e.id}),enabled:n});return(0,B.jsx)(Y,{description:a(`settings.lifecycle.deleteProjectDescription`,{key:e.key}),label:a(`settings.lifecycle.deleteProject`),name:e.name,confirm:e.key,open:n,onOpenChange:e=>{r(e),e||i.reset()},summary:(0,B.jsx)(W,{query:o,rows:K(e)}),ready:!!o.data&&!o.data.blockers.length,pending:i.isPending,error:i.error,onDelete:t=>i.mutateAsync({projectId:e.id,expectedVersion:e.version,confirmKey:t})})}var Z=e=>t=>[[a(`settings.lifecycle.row.projects`),t.projects.length?(0,B.jsx)(`ul`,{className:`m-0 list-none p-0`,children:t.projects.map(e=>(0,B.jsxs)(`li`,{children:[(0,B.jsx)(`span`,{dir:`auto`,children:e.name}),` `,(0,B.jsx)(`span`,{className:`font-mono text-muted-foreground`,children:e.key}),(0,B.jsxs)(`span`,{className:`text-muted-foreground`,children:[` `,`· `,a(`settings.tickets`,{count:e.tickets}),e.archived&&(0,B.jsxs)(B.Fragment,{children:[` · `,a(`settings.lifecycle.archivedProject`)]})]})]},e.id))},`projects`):a(`common.state.none`)],[a(`settings.lifecycle.row.tickets`),String(t.tickets)],[a(`settings.lifecycle.row.comments`),String(t.comments)],[a(`settings.lifecycle.row.files`),a(`settings.lifecycle.files`,{count:t.attachments,size:C(t.attachmentBytes)})],[a(`settings.lifecycle.row.members`),a(`settings.lifecycle.membersLoseAccess`,{count:t.members})],[a(`settings.lifecycle.row.invitations`),t.invitations?a(`settings.lifecycle.pendingInvitations`,{count:t.invitations}):``],[a(`settings.lifecycle.row.sharedLabels`),t.labels?String(t.labels):``],[a(`settings.lifecycle.row.kept`),a(`settings.lifecycle.keptWorkspace`,{count:t.events,slug:e.slug})]];function Q({error:e}){let t=l();return e instanceof i&&e.code===`reauthentication_required`?(0,B.jsxs)(x,{className:`mb-3`,onClick:()=>void d(t,window.location.pathname+window.location.search).catch(D),children:[(0,B.jsx)(R,{}),a(`settings.lifecycle.signInAgain`)]}):null}function ne({workspace:e}){let t=M(),[n,r]=(0,z.useState)(!1),i=y(`delete_workspace`,()=>t({to:`/`})),o=E({...c.query(`get_workspace_impact`,{workspaceId:e.id}),enabled:n});return(0,B.jsx)(Y,{description:a(`settings.lifecycle.deleteWorkspaceDescription`),label:a(`settings.lifecycle.deleteWorkspace`),name:e.name,confirm:e.slug,open:n,onOpenChange:e=>{r(e),e||i.reset()},summary:(0,B.jsx)(W,{query:o,rows:Z(e)}),ready:!!o.data&&!o.data.blockers.length,pending:i.isPending,error:i.error,footer:(0,B.jsx)(Q,{error:i.error}),onDelete:t=>i.mutateAsync({workspaceId:e.id,expectedVersion:e.version,confirmSlug:t})})}var $=e=>r(e.map(e=>n[e]??e))||a(`settings.lifecycle.noSignInMethods`),re=e=>[[a(`settings.lifecycle.row.signIn`),$(e.providers)],[a(`settings.lifecycle.row.sessions`),a(`settings.lifecycle.sessions`,{count:e.sessions})],[a(`settings.lifecycle.row.credentials`),e.credentials?a(`settings.lifecycle.credentials`,{count:e.credentials}):``],[a(`settings.lifecycle.row.devices`),e.devices?a(`settings.lifecycle.devices`,{count:e.devices}):``],[a(`settings.lifecycle.row.access`),e.projects?a(`settings.lifecycle.accessBoth`,{workspaces:a(`settings.lifecycle.workspaceCount`,{count:e.workspaces}),projects:a(`settings.lifecycle.directProjectCount`,{count:e.projects})}):a(`settings.lifecycle.accessWorkspaces`,{workspaces:a(`settings.lifecycle.workspaceCount`,{count:e.workspaces})})],[a(`settings.lifecycle.row.claims`),e.claims?a(`settings.lifecycle.claims`,{count:e.claims}):``],[a(`settings.lifecycle.row.imports`),e.imports?a(`settings.lifecycle.imports`,{count:e.imports}):``],[a(`settings.lifecycle.row.profile`),a(`settings.lifecycle.profileErased`)],[a(`settings.lifecycle.row.kept`),a(`settings.lifecycle.keptAccount`,{tickets:a(`settings.tickets`,{count:e.tickets}),comments:a(`settings.lifecycle.commentCount`,{count:e.comments}),events:a(`settings.lifecycle.activityCount`,{count:e.events}),name:a(`common.person.deleted`)})]];function ie({account:e,onDeleted:t}){let n=l(),r=e.id===n.id,[i,o]=(0,z.useState)(!1),s=y(`delete_account`,t),u=E({...c.query(`get_account_impact`,{userId:e.id}),enabled:i});return(0,B.jsx)(Y,{description:a(r?`settings.lifecycle.deleteOwnAccount`:`settings.lifecycle.deleteOtherAccount`,{name:a(`common.person.deleted`)}),label:a(`settings.lifecycle.deleteAccount`),name:e.name,confirm:e.email,open:i,onOpenChange:e=>{o(e),e||s.reset()},summary:(0,B.jsx)(W,{query:u,rows:re}),ready:!!u.data&&!u.data.blockers.length,pending:s.isPending,error:s.error,footer:(0,B.jsx)(Q,{error:s.error}),onDelete:t=>s.mutateAsync({userId:e.id,confirmEmail:t})})}export{ne as a,G as c,X as i,$ as l,te as n,J as o,ie as r,q as s,H as t,I as u};
@@ -1 +1 @@
1
- import{i as e}from"./rolldown-runtime-COiEfhsA.js";import{H as t,Kt as n,Nn as r,b as i,c as a,g as o,mn as s,qt as c,r as l,x as u,y as d}from"./default-D6I-Xfqm.js";import{$ as f,Aa as p,B as m,Eo as h,G as g,Ga as _,H as v,Hi as y,I as b,J as x,K as S,N as C,Oa as w,P as ee,Pt as T,Q as E,Ri as D,To as te,U as ne,Ua as O,V as k,Wa as A,X as j,Y as M,Zi as N,at as P,di as F,dt as re,ea as ie,hr as ae,it as I,na as oe,nt as L,q as R,qa as z,rt as se,st as ce,ut as B,vt as le,zi as ue}from"./search-DQtwggUH.js";import{d as de,g as V,m as fe,p as H,u as pe,v as me}from"./item-CRS9Ai9p.js";import{t as he}from"./Trans-NwgJNiLl.js";import{a as ge,i as _e,n as ve,r as ye}from"./delivery-settings-B26dRk_O.js";import{i as be,o as xe,s as Se,t as Ce}from"./project-lifecycle-DuV33mlL.js";import{n as U,r as W}from"./CompositeItem-DvEBmVYM.js";import{t as we}from"./rotate-ccw-DcHaluuA.js";import{$ as Te,Ht as G,Ot as Ee,Y as De,_ as K,ft as Oe,g as ke,h as q,hn as Ae,i as J,m as je,mt as Me,n as Y,nt as Ne,o as Pe,r as Fe,t as Ie,ut as Le,vn as Re}from"./index-MTE_naHG.js";import{t as ze}from"./member-directory-CoLB-2Oc.js";import{n as X,t as Be}from"./label-settings-tE57CalJ.js";var Ve={name:`image-up`,size:24,node:[[`path`,{d:`M10.3 21H5a2 2 0 0 1-2-2V5a2 2 0 0 1 2-2h14a2 2 0 0 1 2 2v10l-3.1-3.1a2 2 0 0 0-2.814.014L6 21`,key:`9csbqa`}],[`path`,{d:`m14 19.5 3-3 3 3`,key:`9vmjn0`}],[`path`,{d:`M17 22v-5.5`,key:`1aa6fl`}],[`circle`,{cx:`9`,cy:`9`,r:`2`,key:`af1f0g`}]]};Ve.node;var He=_(Ve),Z=e(r(),1),Q=l();function Ue({project:e,disabled:t=!1}){let[n,r]=(0,Z.useState)(!1),[i,a]=(0,Z.useState)(``),[o,c]=(0,Z.useState)(96),[l,u]=(0,Z.useState)(e.iconColor),[d,p]=(0,Z.useState)(),[m,g]=(0,Z.useState)(!1),_=N(`set_project_icon`),v=fe(n),y=(0,Z.useRef)(null),b=m||_.isPending,x=Object.keys(v.data?.icons??{}).filter(e=>e.includes(i.trim().toLowerCase().replaceAll(` `,`-`)));async function C(t){p(void 0);try{await _.mutateAsync({projectId:e.id,expectedVersion:e.version,icon:t}),r(!1)}catch(e){p(e)}}return(0,Q.jsxs)(Q.Fragment,{children:[(0,Q.jsx)(_e,{label:s(`settings.icon.change`),disabled:t,onClick:()=>{_.reset(),p(void 0),u(e.iconColor),a(``),c(96),r(!0)},children:(0,Q.jsx)(H,{project:e,className:`size-16 rounded-xl bg-muted/50 p-1.5`})}),(0,Q.jsxs)(E,{title:s(`settings.icon.title`),open:n,onOpenChange:r,busy:b,children:[(0,Q.jsxs)(je,{defaultValue:`library`,children:[(0,Q.jsxs)(ke,{variant:`line`,children:[(0,Q.jsx)(K,{value:`library`,children:s(`settings.icon.library`)}),(0,Q.jsx)(K,{value:`upload`,children:s(`settings.icon.upload`)})]}),(0,Q.jsxs)(q,{value:`library`,children:[(0,Q.jsx)(se,{label:s(`settings.icon.search`),placeholder:s(`settings.icon.searchPlaceholder`),defaultOpen:!0,value:i,onChange:e=>{a(e),c(96)},className:`my-3`}),(0,Q.jsx)(X,{label:s(`settings.icon.color`),value:l,onChange:u,disabled:b}),v.isPending?(0,Q.jsx)(j,{}):(0,Q.jsxs)(`div`,{className:`max-h-80 overflow-y-auto overscroll-contain`,children:[(0,Q.jsx)(`div`,{className:`grid grid-cols-5 gap-1 sm:grid-cols-8`,children:x.slice(0,o).map(t=>{let n=v.data?.icons[t];return n&&(0,Q.jsx)(F,{variant:t===e.iconName?`secondary`:`ghost`,className:`aspect-square h-auto min-h-11 ${h[l]}`,disabled:b,"aria-label":s(`settings.icon.choose`,{name:t.replaceAll(`-`,` `)}),title:t.replaceAll(`-`,` `),onClick:()=>{C({kind:`library`,name:t,color:l})},children:(0,Q.jsx)(me,{icon:{...n,width:24,height:24},className:`size-6`})},t)})}),x.length===0&&(0,Q.jsx)(`p`,{className:`py-8 text-center text-muted-foreground`,children:s(`settings.icon.noMatches`)}),x.length>o&&(0,Q.jsx)(F,{className:`mt-3 w-full`,onClick:()=>c(e=>e+96),children:s(`settings.icon.showMore`)})]})]}),(0,Q.jsx)(q,{value:`upload`,children:(0,Q.jsxs)(`div`,{className:`flex flex-col items-center gap-5 py-10`,children:[(0,Q.jsx)(H,{project:e,className:`size-20`}),(0,Q.jsxs)(F,{disabled:b,onClick:()=>y.current?.click(),children:[(0,Q.jsx)(ge,{}),s(b?`settings.icon.uploading`:`settings.icon.chooseImage`)]}),(0,Q.jsx)(`p`,{className:`mb-0 text-xs text-muted-foreground`,children:s(`settings.icon.formats`)})]})})]}),(0,Q.jsx)(ae,{ref:y,type:`file`,accept:`image/png,image/jpeg,image/webp`,className:`hidden`,"aria-label":s(`settings.icon.file`),onChange:e=>{let t=e.currentTarget.files?.[0];e.currentTarget.value=``,t&&(g(!0),p(void 0),D(t,{fit:`contain`,format:`image/png`}).then(e=>C({kind:`image`,...e})).catch(p).finally(()=>g(!1)))}}),(0,Q.jsx)(S,{error:d??v.error}),(0,Q.jsxs)(f,{children:[(0,Q.jsxs)(F,{disabled:b,onClick:()=>{C(null)},children:[(0,Q.jsx)(we,{}),s(`settings.icon.reset`)]}),(0,Q.jsx)(F,{disabled:b,onClick:()=>r(!1),children:s(`common.action.cancel`)})]})]})]})}function We({projectId:e,canAdmin:t}){let r=Me(e),i=r.data??[],a=N(`create_workflow_state`),o=N(`update_workflow_state`),l=N(`delete_workflow_state`),[u,d]=(0,Z.useState)(null),[f,p]=(0,Z.useState)(null),m=a.isPending||o.isPending;function h(e,t=`todo`){a.reset(),o.reset(),d({state:e,name:e?.name??``,category:e?.category??t,color:e?.color??`default`})}let g=(t,n)=>void o.mutateAsync({projectId:e,stateId:t.id,expectedVersion:t.version,position:n}).catch(B);return(0,Q.jsxs)(`section`,{children:[(0,Q.jsx)(I,{title:s(`settings.workflow.title`),action:t&&(0,Q.jsx)(x,{label:s(`settings.workflow.new`),variant:`default`,onClick:()=>h(null),children:(0,Q.jsx)(V,{})})}),(0,Q.jsx)(S,{error:r.error}),r.isPending?(0,Q.jsx)(j,{}):c.map(r=>{let a=i.filter(e=>e.category===r);return(0,Q.jsxs)(`div`,{className:`mb-5`,children:[(0,Q.jsx)(`h3`,{className:`mb-0 border-b pb-1.5 text-[10.5px] font-medium tracking-[0.08em] text-muted-foreground uppercase`,children:n[r]}),a.map((i,c)=>(0,Q.jsxs)(Y,{compact:!0,title:(0,Q.jsx)(Te,{property:`status`,value:Le(i),projectId:e}),children:[(0,Q.jsx)(`span`,{className:`text-xs whitespace-nowrap text-muted-foreground tabular-nums`,children:s(`settings.tickets`,{count:i.count})}),t&&(0,Q.jsxs)(Q.Fragment,{children:[(0,Q.jsx)(x,{label:s(`settings.moveUp`,{name:i.name}),disabled:c===0||o.isPending,onClick:()=>g(i,c-1),children:(0,Q.jsx)(O,{})}),(0,Q.jsx)(x,{label:s(`settings.moveDown`,{name:i.name}),disabled:c===a.length-1||o.isPending,onClick:()=>g(i,c+1),children:(0,Q.jsx)(A,{})}),(0,Q.jsx)(x,{label:s(`settings.workflow.editNamed`,{name:i.name}),onClick:()=>h(i),children:(0,Q.jsx)(W,{})}),(0,Q.jsx)(x,{label:a.length===1?s(`settings.workflow.onlyState`,{name:i.name,category:n[r]}):s(`settings.workflow.deleteNamed`,{name:i.name}),disabled:a.length===1,onClick:()=>{l.reset(),p({state:i,reassignTo:a.find(e=>e.id!==i.id)?.id??``})},children:(0,Q.jsx)(U,{})})]})]},i.id))]},r)}),(0,Q.jsx)(E,{title:u?.state?s(`settings.workflow.edit`):s(`settings.workflow.new`),open:!!u,onOpenChange:e=>{e||d(null)},busy:m,children:u&&(0,Q.jsxs)(`form`,{onSubmit:t=>{t.preventDefault(),(u.state?o.mutateAsync({projectId:e,stateId:u.state.id,expectedVersion:u.state.version,name:u.name,color:u.color,category:u.category}):a.mutateAsync({projectId:e,name:u.name,category:u.category,color:u.color})).then(()=>{d(null),w.success(s(`settings.workflow.saved`))}).catch(()=>{})},children:[(0,Q.jsx)(M,{label:s(`settings.workflow.name`),value:u.name,onChange:e=>d({...u,name:e.target.value}),maxLength:40,required:!0,autoFocus:!0}),(0,Q.jsx)(P,{label:s(`settings.workflow.category`),value:u.category,onValueChange:e=>{let t=c.find(t=>t===e);t&&d({...u,category:t})},children:c.map(e=>(0,Q.jsx)(T,{value:e,children:n[e]},e))}),(0,Q.jsx)(X,{label:s(`settings.workflow.color`),value:u.color,onChange:e=>d({...u,color:e}),disabled:m,custom:!0,defaultTint:re(u.category)}),!!u.name.trim()&&(0,Q.jsx)(`div`,{className:`mb-4`,children:(0,Q.jsx)(ce,{property:`status`,value:u.category,label:u.name.trim(),color:u.color})}),u.state&&u.category!==u.state.category&&(0,Q.jsx)(`p`,{className:`text-xs text-muted-foreground`,children:s(`settings.workflow.categoryChange`,{status:n[u.category]})}),(0,Q.jsx)(R,{error:a.error??o.error,pending:m,submitLabel:s(`settings.workflow.save`),submitDisabled:!u.name.trim(),onCancel:()=>d(null)})]})}),(0,Q.jsx)(E,{title:f?s(`settings.workflow.deleteTitle`,{name:f.state.name}):s(`settings.workflow.delete`),open:!!f,onOpenChange:e=>{e||p(null)},busy:l.isPending,children:f&&(0,Q.jsxs)(`form`,{onSubmit:t=>{t.preventDefault(),l.mutateAsync({projectId:e,stateId:f.state.id,expectedVersion:f.state.version,reassignTo:f.reassignTo}).then(()=>{p(null),w.success(s(`settings.workflow.deleted`))}).catch(()=>{})},children:[(0,Q.jsx)(P,{label:s(`settings.workflow.reassign`,{count:f.state.count}),value:f.reassignTo,onValueChange:e=>{e&&p({...f,reassignTo:e})},children:i.filter(e=>e.id!==f.state.id).map(e=>(0,Q.jsx)(T,{value:e.id,children:e.name},e.id))}),(0,Q.jsx)(R,{error:l.error,pending:l.isPending,submitLabel:s(`settings.workflow.delete`),submitDisabled:!f.reassignTo,onCancel:()=>p(null)})]})})]})}var $=e=>e===`select`||e===`multiselect`;function Ge({projectId:e,canAdmin:n}){let r=Oe(e),a=N(`create_custom_field`),c=N(`update_custom_field`),l=N(`move_custom_field`),u=N(`delete_custom_field`),[f,p]=(0,Z.useState)(null),m=a.isPending||c.isPending,h=r.data??[];function _(e){a.reset(),c.reset(),p({field:e,name:e?.name??``,type:e?.type??`select`,options:e?.options??[],required:e?.required??!1,defaultValue:e?.defaultValue??null,reassign:{}})}function v(t,n,r){n&&l.mutateAsync({projectId:e,fieldId:t.id,expectedVersion:t.version,[r]:n.id}).catch(B)}return(0,Q.jsxs)(`section`,{children:[(0,Q.jsx)(I,{title:s(`settings.fields.title`),action:n&&(0,Q.jsx)(x,{label:s(`settings.fields.new`),variant:`default`,onClick:()=>_(null),children:(0,Q.jsx)(V,{})})}),(0,Q.jsx)(S,{error:r.error}),r.isPending?(0,Q.jsx)(j,{}):h.length?h.map((r,a)=>{let c=Ne[r.type];return(0,Q.jsxs)(Y,{compact:!0,title:(0,Q.jsxs)(`span`,{className:`inline-flex min-w-0 items-center gap-2`,children:[(0,Q.jsx)(c,{className:`size-3.5 shrink-0 text-muted-foreground`,"aria-hidden":`true`}),(0,Q.jsx)(`span`,{dir:`auto`,className:`min-w-0 break-words`,children:r.name})]}),description:[i[r.type],r.required&&s(`settings.fields.required`),r.defaultValue!==null&&s(`settings.fields.defaultValue`,{value:t(r,r.defaultValue)})].filter(Boolean).join(` · `),children:[(0,Q.jsx)(G,{to:`/projects/$projectId`,params:{projectId:e},search:{customFieldNot:[o(r.id,d.empty)]},className:`text-xs whitespace-nowrap text-muted-foreground tabular-nums hover:text-foreground`,children:s(`settings.tickets`,{count:r.count})}),n&&(0,Q.jsxs)(Q.Fragment,{children:[(0,Q.jsx)(x,{label:s(`settings.moveUp`,{name:r.name}),disabled:a===0||l.isPending,onClick:()=>v(r,h[a-1],`before`),children:(0,Q.jsx)(O,{})}),(0,Q.jsx)(x,{label:s(`settings.moveDown`,{name:r.name}),disabled:a===h.length-1||l.isPending,onClick:()=>v(r,h[a+1],`after`),children:(0,Q.jsx)(A,{})}),(0,Q.jsx)(x,{label:s(`settings.fields.editNamed`,{name:r.name}),onClick:()=>_(r),children:(0,Q.jsx)(W,{})}),(0,Q.jsx)(k,{label:s(`settings.fields.deleteNamed`,{name:r.name}),icon:(0,Q.jsx)(U,{}),danger:!0,description:r.count?s(`settings.fields.deleteUsed`,{name:r.name,count:r.count}):s(`settings.fields.deleteUnused`,{name:r.name}),onConfirm:async()=>{await u.mutateAsync({projectId:e,fieldId:r.id,expectedVersion:r.version}),w.success(s(`settings.fields.deleted`))}})]})]},r.id)}):!r.error&&(0,Q.jsx)(g,{title:s(`settings.fields.empty`)}),(0,Q.jsx)(E,{title:f?.field?s(`settings.fields.edit`):s(`settings.fields.new`),open:!!f,onOpenChange:e=>{e||p(null)},busy:m,children:f&&(0,Q.jsx)(Ke,{projectId:e,draft:f,onChange:p,busy:m,error:a.error??c.error,onCancel:()=>p(null),onSubmit:()=>{let{field:t}=f,n=$(f.type)?f.options:[],r=t?.options.filter(e=>!n.some(t=>t.id===e.id))??[];(t?c.mutateAsync({projectId:e,fieldId:t.id,expectedVersion:t.version,name:f.name,options:n,required:f.required,defaultValue:f.defaultValue,...r.length&&{reassign:Object.fromEntries(r.map(e=>[e.id,f.reassign[e.id]??null]))}}):a.mutateAsync({projectId:e,name:f.name,type:f.type,options:n,required:f.required,defaultValue:f.defaultValue})).then(()=>{p(null),w.success(s(`settings.fields.saved`))}).catch(()=>{})}})})]})}function Ke({projectId:e,draft:t,onChange:n,busy:r,error:a,onCancel:o,onSubmit:c}){let l=$(t.type),d=l?t.field?.options.filter(e=>!t.options.some(t=>t.id===e.id))??[]:[],f={id:t.field?.id??`draft`,projectId:e,name:s(`settings.fields.default`),type:t.type,options:t.options,required:!1,defaultValue:null,version:1},h=e=>{let r=new Set(e.map(e=>e.id)),i=t.defaultValue,a=Array.isArray(i)?i.filter(e=>r.has(e)):typeof i==`string`&&l&&!r.has(i)?null:i;n({...t,options:e,defaultValue:Array.isArray(a)&&!a.length?null:a})},g=(e,n)=>{let r=[...t.options],[i]=r.splice(e,1);i&&r.splice(n,0,i),h(r)};return(0,Q.jsxs)(`form`,{onSubmit:e=>{e.preventDefault(),c()},children:[(0,Q.jsx)(M,{label:s(`settings.fields.name`),value:t.name,onChange:e=>n({...t,name:e.target.value}),maxLength:60,required:!0,autoFocus:!0}),(0,Q.jsx)(P,{label:s(`settings.fields.type`),value:t.type,disabled:!!t.field||r,onValueChange:e=>{let r=u.find(t=>t===e)??t.type;n({...t,type:r,options:$(r)?t.options:[],required:r!==`checkbox`&&t.required,defaultValue:null})},children:u.map(e=>(0,Q.jsx)(T,{value:e,children:i[e]},e))}),l&&(0,Q.jsxs)(`fieldset`,{className:`mb-4`,children:[(0,Q.jsx)(`legend`,{className:`mb-2 text-xs font-medium text-muted-foreground`,children:s(`settings.fields.options`)}),(0,Q.jsx)(`ol`,{className:`m-0 flex list-none flex-col gap-1.5 p-0`,children:t.options.map((e,n)=>{let i=e.name||s(`settings.fields.optionInline`,{number:n+1});return(0,Q.jsxs)(`li`,{className:`flex items-center gap-1`,children:[(0,Q.jsx)(qe,{name:e.name||s(`settings.fields.option`,{number:n+1}),value:e.color,disabled:r,onChange:n=>h(t.options.map(t=>t.id===e.id?{...t,color:n}:t))}),(0,Q.jsx)(`div`,{className:`min-w-0 flex-1`,children:(0,Q.jsx)(M,{label:s(`settings.fields.option`,{number:n+1}),labelHidden:!0,value:e.name,maxLength:60,required:!0,onChange:n=>h(t.options.map(t=>t.id===e.id?{...t,name:n.target.value}:t))})}),(0,Q.jsx)(x,{label:s(`settings.moveUp`,{name:i}),size:`icon-sm`,disabled:n===0||r,onClick:()=>g(n,n-1),children:(0,Q.jsx)(O,{})}),(0,Q.jsx)(x,{label:s(`settings.moveDown`,{name:i}),size:`icon-sm`,disabled:n===t.options.length-1||r,onClick:()=>g(n,n+1),children:(0,Q.jsx)(A,{})}),(0,Q.jsx)(x,{label:s(`settings.fields.removeOption`,{name:i}),size:`icon-sm`,disabled:r,onClick:()=>h(t.options.filter(t=>t.id!==e.id)),children:(0,Q.jsx)(p,{})})]},e.id)})}),(0,Q.jsxs)(F,{variant:`ghost`,size:`sm`,className:`mt-1.5`,disabled:r,onClick:()=>h([...t.options,{id:crypto.randomUUID(),name:``,color:`gray`}]),children:[(0,Q.jsx)(V,{}),s(`settings.fields.addOption`)]})]}),d.map(e=>(0,Q.jsxs)(P,{label:s(`settings.fields.reassign`,{name:e.name}),value:t.reassign[e.id]??``,onValueChange:r=>n({...t,reassign:{...t.reassign,[e.id]:r||null}}),children:[(0,Q.jsx)(T,{value:``,children:s(`settings.fields.clearValue`)}),t.options.filter(e=>e.name.trim()).map(e=>(0,Q.jsx)(T,{value:e.id,children:s(`settings.fields.moveTo`,{name:e.name})},e.id))]},e.id)),t.type!==`checkbox`&&(0,Q.jsx)(m,{label:s(`settings.fields.required`),description:s(`settings.fields.requiredDescription`),checked:t.required,disabled:r,onCheckedChange:e=>n({...t,required:e})}),(0,Q.jsx)(`div`,{className:`mb-4`,children:(0,Q.jsx)(De,{variant:`row`,field:f,value:t.defaultValue,disabled:r||l&&!t.options.some(e=>e.name.trim()),onChange:e=>n({...t,defaultValue:e})})}),(0,Q.jsx)(R,{error:a,pending:r,submitLabel:s(`settings.fields.save`),submitDisabled:!t.name.trim(),onCancel:o})]})}function qe({name:e,value:t,disabled:n,onChange:r}){let i=te(t);return(0,Q.jsxs)(C,{children:[(0,Q.jsx)(b,{disabled:n,render:(0,Q.jsx)(F,{variant:`ghost`,size:`icon-sm`,"aria-label":s(`settings.fields.optionColor`,{name:e}),className:i.className,style:i.style}),children:(0,Q.jsx)(`span`,{className:`size-3 rounded-full bg-current`})}),(0,Q.jsx)(ee,{align:`start`,className:`w-[min(20rem,calc(100vw-2rem))] p-3 pb-0`,children:(0,Q.jsx)(X,{label:s(`settings.fields.optionColor`,{name:e}),value:t,onChange:r,custom:!0})})]})}var Je=()=>new Intl.DateTimeFormat().resolvedOptions().timeZone;function Ye({projectId:e,canAdmin:t,canCreate:n=t}){let r=z({...y.query(`list_calendar_feeds`,{projectId:e}),enabled:t}),i=N(`create_calendar_feed`),a=N(`revoke_calendar_feed`),[o,c]=(0,Z.useState)(null),[l,u]=(0,Z.useState)(null),d=()=>{c(null),u(null)};return(0,Q.jsxs)(`section`,{children:[(0,Q.jsx)(I,{title:s(`settings.calendarFeeds.title`),action:n&&(0,Q.jsx)(x,{label:s(`settings.calendarFeeds.new`),variant:`default`,onClick:()=>{i.reset(),c({name:``,labels:[]})},children:(0,Q.jsx)(V,{})})}),t?r.isPending?(0,Q.jsx)(j,{}):r.data?.length?r.data.map(t=>(0,Q.jsx)(Y,{compact:!0,title:(0,Q.jsx)(`span`,{dir:`auto`,children:t.name}),description:(0,Q.jsxs)(`span`,{className:`flex flex-wrap items-center gap-x-1.5 gap-y-1`,children:[t.labels.length?(0,Q.jsx)(pe,{tags:t.labels,label:s(`settings.calendarFeeds.labels`),variant:`secondary`}):s(`settings.calendarFeeds.everyLabel`),(0,Q.jsxs)(`span`,{children:[`· `,t.timeZone,` ·`]}),(0,Q.jsx)(ue,{projectId:e,actorId:t.createdBy}),(0,Q.jsx)(L,{value:t.createdAt}),!t.active&&(0,Q.jsx)(`span`,{className:`text-destructive`,children:s(`settings.calendarFeeds.stopped`)})]}),children:(0,Q.jsx)(k,{label:s(`settings.calendarFeeds.revoke`,{name:t.name}),icon:(0,Q.jsx)(U,{}),danger:!0,description:s(`settings.calendarFeeds.revokeDescription`,{name:t.name}),onConfirm:async()=>{await a.mutateAsync({projectId:e,feedId:t.id}),w.success(s(`settings.calendarFeeds.revoked`))}})},t.id)):!r.error&&(0,Q.jsx)(g,{title:s(`settings.calendarFeeds.empty`),icon:Re}):(0,Q.jsx)(`p`,{className:`text-sm text-muted-foreground`,children:s(`settings.calendarFeeds.adminOnly`)}),(0,Q.jsx)(S,{error:r.error}),(0,Q.jsx)(E,{title:s(l?`settings.calendarFeeds.created`:`settings.calendarFeeds.new`),open:!!o||!!l,onOpenChange:e=>{e||d()},busy:i.isPending,children:l?(0,Q.jsxs)(`div`,{children:[(0,Q.jsx)(`p`,{children:s(`settings.calendarFeeds.copyNow`)}),(0,Q.jsx)(ne,{label:s(`settings.calendarFeeds.link`),value:new URL(l.path,window.location.origin).href}),(0,Q.jsx)(`div`,{className:`flex justify-end`,children:(0,Q.jsx)(F,{variant:`default`,onClick:d,children:s(`common.action.done`)})})]}):o&&(0,Q.jsxs)(`form`,{onSubmit:t=>{t.preventDefault(),i.mutateAsync({projectId:e,name:o.name,labels:o.labels,timeZone:Je()}).then(e=>{c(null),u(e)}).catch(()=>{})},children:[(0,Q.jsx)(M,{label:s(`settings.calendarFeeds.name`),value:o.name,onChange:e=>c({...o,name:e.target.value}),maxLength:80,required:!0,autoFocus:!0}),(0,Q.jsx)(de,{projectId:e,children:(0,Q.jsx)(Ee,{label:s(`settings.calendarFeeds.onlyLabels`),value:o.labels,onChange:e=>c({...o,labels:e})})}),(0,Q.jsx)(`p`,{className:`text-xs text-muted-foreground`,children:s(`settings.calendarFeeds.explanation`,{zone:Je()})}),(0,Q.jsx)(R,{error:i.error,pending:i.isPending,submitLabel:s(`settings.calendarFeeds.create`),submitDisabled:!o.name.trim(),onCancel:d})]})})]})}function Xe({project:e,section:t}){let n=N(`update_project`),r=N(`set_member`),i=ie(e.id),o=oe(),c=o.workspaces.filter(t=>a(t).includes(`project.manage`)&&t.id!==e.workspaceId),l=z(y.query(`list_members`,{projectId:e.id})),u=z(y.query(`list_project_roles`,{projectId:e.id})),d=z({...y.query(`list_workspace_members`,{workspaceId:e.workspaceId}),enabled:!!o.active?.role});return(0,Q.jsx)(Q.Fragment,{children:(0,Q.jsxs)(Fe,{title:s(`settings.project.title`),section:t,children:[(0,Q.jsxs)(J,{value:`general`,children:[(0,Q.jsx)(`section`,{children:(0,Q.jsx)(Ie,{name:e.name,description:e.description,canEdit:i.canManage,version:e.version,pending:n.isPending,error:n.error,editLabel:s(`settings.project.edit`),media:(0,Q.jsx)(Ue,{project:e,disabled:!i.canManage}),badges:(0,Q.jsxs)(Q.Fragment,{children:[(0,Q.jsx)(le,{variant:`secondary`,className:`ml-0.5 font-mono text-[10px] font-normal`,children:e.key}),(0,Q.jsx)(v,{label:s(`settings.project.copyPrefix`),value:e.key,size:`icon-xs`})]}),onSave:t=>n.mutateAsync({projectId:e.id,expectedVersion:e.version,name:t.name,description:t.description}).then(()=>w.success(s(`settings.project.saved`))),children:(0,Q.jsxs)(`p`,{className:`mb-0 text-xs tabular-nums`,children:[(0,Q.jsxs)(G,{to:`/projects/$projectId`,params:{projectId:e.id},className:`text-muted-foreground hover:text-foreground`,children:[e.openTickets===0?s(`settings.project.noOpenTickets`):s(`settings.project.openTickets`,{count:e.openTickets}),e.overdueTickets>0&&(0,Q.jsxs)(`span`,{className:`text-(--warning)`,children:[` `,s(`settings.project.overdueTickets`,{count:e.overdueTickets})]})]}),` `,(0,Q.jsx)(he,{i18nKey:`settings.project.created`,components:{time:(0,Q.jsx)(L,{value:e.createdAt})}})]})})}),(0,Q.jsxs)(`section`,{children:[(0,Q.jsx)(Y,{title:s(`settings.project.access`),description:e.visibility===`workspace`?s(`settings.project.accessWorkspace`):s(`settings.project.accessPrivate`),children:(0,Q.jsxs)(P,{label:s(`settings.project.access`),labelHidden:!0,className:`mb-0 w-56`,value:e.visibility,disabled:!i.canManage||n.isPending,onValueChange:t=>{let r=t===`private`?`private`:`workspace`;r!==e.visibility&&n.mutateAsync({projectId:e.id,expectedVersion:e.version,name:e.name,description:e.description,visibility:r}).then(()=>w.success(s(`settings.project.accessUpdated`))).catch(B)},children:[(0,Q.jsx)(T,{value:`workspace`,children:s(`settings.project.visibility.workspace`)}),(0,Q.jsx)(T,{value:`private`,children:s(`settings.project.visibility.private`)})]})}),(0,Q.jsx)(Ze,{project:e,canAdmin:i.canManage}),(0,Q.jsx)(Qe,{project:e,canAdmin:i.canShare}),(0,Q.jsx)($e,{project:e,canAdmin:i.canManage}),(0,Q.jsxs)(Y,{title:s(`settings.project.workspace`),description:o.active?.name,children:[i.canManage&&a(o.active??{role:null}).includes(`project.manage`)&&c.length>0&&(0,Q.jsx)(Se,{project:e,destinations:c}),o.active?.role&&(0,Q.jsx)(F,{render:(0,Q.jsx)(G,{to:`/workspaces/$workspaceId/settings`,params:{workspaceId:e.workspaceId}}),children:s(`settings.project.workspaceSettings`)})]}),(0,Q.jsx)(xe,{project:e}),i.canManage&&(0,Q.jsxs)(Q.Fragment,{children:[(0,Q.jsx)(Ce,{project:e}),(0,Q.jsx)(be,{project:e})]})]})]}),(0,Q.jsx)(J,{value:`members`,children:(0,Q.jsx)(ze,{people:l.data??[],candidates:d.data??l.data??[],pending:r.isPending,loading:l.isPending,error:l.error,canAdmin:i.canManageMembers,scope:`project`,roles:u.data,authority:{admin:i.role===`admin`,capabilities:i.capabilities},onChange:(t,n)=>r.mutateAsync({projectId:e.id,email:t,role:n})})}),(0,Q.jsx)(J,{value:`workflow`,children:(0,Q.jsx)(We,{projectId:e.id,canAdmin:i.canAdmin})}),(0,Q.jsx)(J,{value:`labels`,children:(0,Q.jsx)(Be,{owner:{projectId:e.id},canAdmin:i.canAdmin})}),(0,Q.jsx)(J,{value:`fields`,children:(0,Q.jsx)(Ge,{projectId:e.id,canAdmin:i.canAdmin})}),(0,Q.jsxs)(J,{value:`integrations`,children:[(0,Q.jsx)(ye,{projectId:e.id,workspaceId:e.workspaceId,canAdmin:i.canManage,canChange:i.canAdmin}),(0,Q.jsx)(ve,{projectId:e.id,canAdmin:i.canManage,canChange:i.canAdmin})]}),(0,Q.jsx)(J,{value:`calendar`,children:(0,Q.jsx)(Ye,{projectId:e.id,canAdmin:i.canShare,canCreate:i.canShare&&!i.archived})})]})})}function Ze({project:e,canAdmin:t}){let n=N(`update_project`),[r,i]=(0,Z.useState)(!1),[a,o]=(0,Z.useState)(e.key);return(0,Q.jsxs)(Y,{title:s(`settings.project.prefix`),description:s(`settings.project.prefixDescription`),children:[t&&(0,Q.jsx)(F,{onClick:()=>{o(e.key),n.reset(),i(!0)},children:s(`settings.project.changePrefix`)}),(0,Q.jsx)(E,{title:s(`settings.project.changePrefixTitle`),description:s(`settings.project.changePrefixDescription`,{name:e.name}),open:r,onOpenChange:i,busy:n.isPending,children:(0,Q.jsxs)(`form`,{onSubmit:t=>{t.preventDefault(),n.mutateAsync({projectId:e.id,expectedVersion:e.version,name:e.name,description:e.description,key:a}).then(e=>{i(!1),w.success(s(`settings.project.prefixChanged`,{key:e.key}))}).catch(()=>{})},children:[(0,Q.jsx)(Pe,{value:a,onChange:e=>{o(e),n.reset()},autoFocus:!0}),(0,Q.jsx)(R,{error:n.error,pending:n.isPending,submitLabel:s(`settings.project.changePrefix`),pendingLabel:s(`settings.project.changing`),submitDisabled:a===e.key,onCancel:()=>i(!1)})]})})]})}function Qe({project:e,canAdmin:t}){let n=N(`update_project`),r=new URL(`/public/projects/${e.id}`,window.location.origin).href,i=s(`settings.project.publicDisclosure`),a=t=>n.mutateAsync({projectId:e.id,expectedVersion:e.version,name:e.name,description:e.description,publicReadEnabled:t}).then(()=>w.success(s(t?`settings.project.publicOn`:`settings.project.publicOff`)));return(0,Q.jsxs)(Y,{title:s(`settings.project.publicLink`),description:e.publicReadEnabled?(0,Q.jsxs)(Q.Fragment,{children:[(0,Q.jsx)(`code`,{className:`block text-xs break-all text-foreground`,children:r}),(0,Q.jsx)(`span`,{className:`mt-1 block`,children:i})]}):s(`settings.project.off`),children:[e.publicReadEnabled&&(0,Q.jsxs)(Q.Fragment,{children:[(0,Q.jsx)(v,{label:s(`settings.project.copyPublicLink`),value:r}),(0,Q.jsx)(x,{label:s(`settings.project.openPublic`),render:(0,Q.jsx)(`a`,{href:r,target:`_blank`,rel:`noreferrer`}),children:(0,Q.jsx)(Ae,{})})]}),t&&(e.publicReadEnabled?(0,Q.jsx)(F,{disabled:n.isPending,onClick:()=>void a(!1).catch(B),children:s(`settings.project.stopSharing`)}):(0,Q.jsx)(k,{label:s(`settings.project.share`),description:i,disabled:n.isPending,onConfirm:()=>a(!0)}))]})}function $e({project:e,canAdmin:t}){let n=N(`set_project_background`),r=(0,Z.useRef)(null),[i,a]=(0,Z.useState)(!1),o=i||n.isPending,c=t=>n.mutateAsync({projectId:e.id,expectedVersion:e.version,background:t}).then(()=>w.success(s(t?`settings.project.backgroundUpdated`:`settings.project.backgroundRemoved`)));return(0,Q.jsxs)(Y,{title:s(`settings.project.background`),description:e.background?s(`settings.project.backgroundDescription`):s(`common.state.none`),children:[e.background&&(0,Q.jsx)(`img`,{src:e.background,alt:s(`settings.project.currentBackground`),className:`h-14 w-24 rounded-md border object-cover`}),t&&(0,Q.jsxs)(Q.Fragment,{children:[(0,Q.jsxs)(F,{disabled:o,onClick:()=>r.current?.click(),children:[(0,Q.jsx)(He,{}),o?s(`settings.project.uploading`):e.background?s(`settings.project.replace`):s(`settings.project.upload`)]}),e.background&&(0,Q.jsx)(F,{variant:`ghost`,disabled:o,onClick:()=>void c(null).catch(B),children:s(`common.action.remove`)}),(0,Q.jsx)(ae,{ref:r,type:`file`,accept:`image/png,image/jpeg,image/webp`,className:`hidden`,"aria-label":s(`settings.project.backgroundFile`),onChange:e=>{let t=e.currentTarget.files?.[0];e.currentTarget.value=``,t&&(a(!0),D(t,{fit:`inside`,size:1920}).then(e=>c(e)).catch(B).finally(()=>a(!1)))}})]})]})}export{Xe as ProjectSettings};
1
+ import{i as e}from"./rolldown-runtime-COiEfhsA.js";import{H as t,Kt as n,Nn as r,b as i,c as a,g as o,mn as s,qt as c,r as l,x as u,y as d}from"./default-bQFGTwIp.js";import{$ as f,Aa as p,B as m,Eo as h,G as g,Ga as _,H as v,Hi as y,I as b,J as x,K as S,N as C,Oa as w,P as ee,Pt as T,Q as E,Ri as D,To as te,U as ne,Ua as O,V as k,Wa as A,X as j,Y as M,Zi as N,at as P,di as F,dt as re,ea as ie,hr as ae,it as I,na as oe,nt as L,q as R,qa as z,rt as se,st as ce,ut as B,vt as le,zi as ue}from"./search-Ble6WSEU.js";import{d as de,g as V,m as fe,p as H,u as pe,v as me}from"./item-TCHuZNK6.js";import{t as he}from"./Trans-B1rRlWca.js";import{a as ge,i as _e,n as ve,r as ye}from"./delivery-settings-BvMeOsCS.js";import{i as be,o as xe,s as Se,t as Ce}from"./project-lifecycle-n1ZZbYfu.js";import{n as U,r as W}from"./CompositeItem-CXqewtEL.js";import{t as we}from"./rotate-ccw-CSaKhZYt.js";import{$ as Te,Ht as G,Ot as Ee,Y as De,_ as K,ft as Oe,g as ke,h as q,hn as Ae,i as J,m as je,mt as Me,n as Y,nt as Ne,o as Pe,r as Fe,t as Ie,ut as Le,vn as Re}from"./index-CYVrs22O.js";import{t as ze}from"./member-directory-Dx_jQYfI.js";import{n as X,t as Be}from"./label-settings-DZTorNDm.js";var Ve={name:`image-up`,size:24,node:[[`path`,{d:`M10.3 21H5a2 2 0 0 1-2-2V5a2 2 0 0 1 2-2h14a2 2 0 0 1 2 2v10l-3.1-3.1a2 2 0 0 0-2.814.014L6 21`,key:`9csbqa`}],[`path`,{d:`m14 19.5 3-3 3 3`,key:`9vmjn0`}],[`path`,{d:`M17 22v-5.5`,key:`1aa6fl`}],[`circle`,{cx:`9`,cy:`9`,r:`2`,key:`af1f0g`}]]};Ve.node;var He=_(Ve),Z=e(r(),1),Q=l();function Ue({project:e,disabled:t=!1}){let[n,r]=(0,Z.useState)(!1),[i,a]=(0,Z.useState)(``),[o,c]=(0,Z.useState)(96),[l,u]=(0,Z.useState)(e.iconColor),[d,p]=(0,Z.useState)(),[m,g]=(0,Z.useState)(!1),_=N(`set_project_icon`),v=fe(n),y=(0,Z.useRef)(null),b=m||_.isPending,x=Object.keys(v.data?.icons??{}).filter(e=>e.includes(i.trim().toLowerCase().replaceAll(` `,`-`)));async function C(t){p(void 0);try{await _.mutateAsync({projectId:e.id,expectedVersion:e.version,icon:t}),r(!1)}catch(e){p(e)}}return(0,Q.jsxs)(Q.Fragment,{children:[(0,Q.jsx)(_e,{label:s(`settings.icon.change`),disabled:t,onClick:()=>{_.reset(),p(void 0),u(e.iconColor),a(``),c(96),r(!0)},children:(0,Q.jsx)(H,{project:e,className:`size-16 rounded-xl bg-muted/50 p-1.5`})}),(0,Q.jsxs)(E,{title:s(`settings.icon.title`),open:n,onOpenChange:r,busy:b,children:[(0,Q.jsxs)(je,{defaultValue:`library`,children:[(0,Q.jsxs)(ke,{variant:`line`,children:[(0,Q.jsx)(K,{value:`library`,children:s(`settings.icon.library`)}),(0,Q.jsx)(K,{value:`upload`,children:s(`settings.icon.upload`)})]}),(0,Q.jsxs)(q,{value:`library`,children:[(0,Q.jsx)(se,{label:s(`settings.icon.search`),placeholder:s(`settings.icon.searchPlaceholder`),defaultOpen:!0,value:i,onChange:e=>{a(e),c(96)},className:`my-3`}),(0,Q.jsx)(X,{label:s(`settings.icon.color`),value:l,onChange:u,disabled:b}),v.isPending?(0,Q.jsx)(j,{}):(0,Q.jsxs)(`div`,{className:`max-h-80 overflow-y-auto overscroll-contain`,children:[(0,Q.jsx)(`div`,{className:`grid grid-cols-5 gap-1 sm:grid-cols-8`,children:x.slice(0,o).map(t=>{let n=v.data?.icons[t];return n&&(0,Q.jsx)(F,{variant:t===e.iconName?`secondary`:`ghost`,className:`aspect-square h-auto min-h-11 ${h[l]}`,disabled:b,"aria-label":s(`settings.icon.choose`,{name:t.replaceAll(`-`,` `)}),title:t.replaceAll(`-`,` `),onClick:()=>{C({kind:`library`,name:t,color:l})},children:(0,Q.jsx)(me,{icon:{...n,width:24,height:24},className:`size-6`})},t)})}),x.length===0&&(0,Q.jsx)(`p`,{className:`py-8 text-center text-muted-foreground`,children:s(`settings.icon.noMatches`)}),x.length>o&&(0,Q.jsx)(F,{className:`mt-3 w-full`,onClick:()=>c(e=>e+96),children:s(`settings.icon.showMore`)})]})]}),(0,Q.jsx)(q,{value:`upload`,children:(0,Q.jsxs)(`div`,{className:`flex flex-col items-center gap-5 py-10`,children:[(0,Q.jsx)(H,{project:e,className:`size-20`}),(0,Q.jsxs)(F,{disabled:b,onClick:()=>y.current?.click(),children:[(0,Q.jsx)(ge,{}),s(b?`settings.icon.uploading`:`settings.icon.chooseImage`)]}),(0,Q.jsx)(`p`,{className:`mb-0 text-xs text-muted-foreground`,children:s(`settings.icon.formats`)})]})})]}),(0,Q.jsx)(ae,{ref:y,type:`file`,accept:`image/png,image/jpeg,image/webp`,className:`hidden`,"aria-label":s(`settings.icon.file`),onChange:e=>{let t=e.currentTarget.files?.[0];e.currentTarget.value=``,t&&(g(!0),p(void 0),D(t,{fit:`contain`,format:`image/png`}).then(e=>C({kind:`image`,...e})).catch(p).finally(()=>g(!1)))}}),(0,Q.jsx)(S,{error:d??v.error}),(0,Q.jsxs)(f,{children:[(0,Q.jsxs)(F,{disabled:b,onClick:()=>{C(null)},children:[(0,Q.jsx)(we,{}),s(`settings.icon.reset`)]}),(0,Q.jsx)(F,{disabled:b,onClick:()=>r(!1),children:s(`common.action.cancel`)})]})]})]})}function We({projectId:e,canAdmin:t}){let r=Me(e),i=r.data??[],a=N(`create_workflow_state`),o=N(`update_workflow_state`),l=N(`delete_workflow_state`),[u,d]=(0,Z.useState)(null),[f,p]=(0,Z.useState)(null),m=a.isPending||o.isPending;function h(e,t=`todo`){a.reset(),o.reset(),d({state:e,name:e?.name??``,category:e?.category??t,color:e?.color??`default`})}let g=(t,n)=>void o.mutateAsync({projectId:e,stateId:t.id,expectedVersion:t.version,position:n}).catch(B);return(0,Q.jsxs)(`section`,{children:[(0,Q.jsx)(I,{title:s(`settings.workflow.title`),action:t&&(0,Q.jsx)(x,{label:s(`settings.workflow.new`),variant:`default`,onClick:()=>h(null),children:(0,Q.jsx)(V,{})})}),(0,Q.jsx)(S,{error:r.error}),r.isPending?(0,Q.jsx)(j,{}):c.map(r=>{let a=i.filter(e=>e.category===r);return(0,Q.jsxs)(`div`,{className:`mb-5`,children:[(0,Q.jsx)(`h3`,{className:`mb-0 border-b pb-1.5 text-[10.5px] font-medium tracking-[0.08em] text-muted-foreground uppercase`,children:n[r]}),a.map((i,c)=>(0,Q.jsxs)(Y,{compact:!0,title:(0,Q.jsx)(Te,{property:`status`,value:Le(i),projectId:e}),children:[(0,Q.jsx)(`span`,{className:`text-xs whitespace-nowrap text-muted-foreground tabular-nums`,children:s(`settings.tickets`,{count:i.count})}),t&&(0,Q.jsxs)(Q.Fragment,{children:[(0,Q.jsx)(x,{label:s(`settings.moveUp`,{name:i.name}),disabled:c===0||o.isPending,onClick:()=>g(i,c-1),children:(0,Q.jsx)(O,{})}),(0,Q.jsx)(x,{label:s(`settings.moveDown`,{name:i.name}),disabled:c===a.length-1||o.isPending,onClick:()=>g(i,c+1),children:(0,Q.jsx)(A,{})}),(0,Q.jsx)(x,{label:s(`settings.workflow.editNamed`,{name:i.name}),onClick:()=>h(i),children:(0,Q.jsx)(W,{})}),(0,Q.jsx)(x,{label:a.length===1?s(`settings.workflow.onlyState`,{name:i.name,category:n[r]}):s(`settings.workflow.deleteNamed`,{name:i.name}),disabled:a.length===1,onClick:()=>{l.reset(),p({state:i,reassignTo:a.find(e=>e.id!==i.id)?.id??``})},children:(0,Q.jsx)(U,{})})]})]},i.id))]},r)}),(0,Q.jsx)(E,{title:u?.state?s(`settings.workflow.edit`):s(`settings.workflow.new`),open:!!u,onOpenChange:e=>{e||d(null)},busy:m,children:u&&(0,Q.jsxs)(`form`,{onSubmit:t=>{t.preventDefault(),(u.state?o.mutateAsync({projectId:e,stateId:u.state.id,expectedVersion:u.state.version,name:u.name,color:u.color,category:u.category}):a.mutateAsync({projectId:e,name:u.name,category:u.category,color:u.color})).then(()=>{d(null),w.success(s(`settings.workflow.saved`))}).catch(()=>{})},children:[(0,Q.jsx)(M,{label:s(`settings.workflow.name`),value:u.name,onChange:e=>d({...u,name:e.target.value}),maxLength:40,required:!0,autoFocus:!0}),(0,Q.jsx)(P,{label:s(`settings.workflow.category`),value:u.category,onValueChange:e=>{let t=c.find(t=>t===e);t&&d({...u,category:t})},children:c.map(e=>(0,Q.jsx)(T,{value:e,children:n[e]},e))}),(0,Q.jsx)(X,{label:s(`settings.workflow.color`),value:u.color,onChange:e=>d({...u,color:e}),disabled:m,custom:!0,defaultTint:re(u.category)}),!!u.name.trim()&&(0,Q.jsx)(`div`,{className:`mb-4`,children:(0,Q.jsx)(ce,{property:`status`,value:u.category,label:u.name.trim(),color:u.color})}),u.state&&u.category!==u.state.category&&(0,Q.jsx)(`p`,{className:`text-xs text-muted-foreground`,children:s(`settings.workflow.categoryChange`,{status:n[u.category]})}),(0,Q.jsx)(R,{error:a.error??o.error,pending:m,submitLabel:s(`settings.workflow.save`),submitDisabled:!u.name.trim(),onCancel:()=>d(null)})]})}),(0,Q.jsx)(E,{title:f?s(`settings.workflow.deleteTitle`,{name:f.state.name}):s(`settings.workflow.delete`),open:!!f,onOpenChange:e=>{e||p(null)},busy:l.isPending,children:f&&(0,Q.jsxs)(`form`,{onSubmit:t=>{t.preventDefault(),l.mutateAsync({projectId:e,stateId:f.state.id,expectedVersion:f.state.version,reassignTo:f.reassignTo}).then(()=>{p(null),w.success(s(`settings.workflow.deleted`))}).catch(()=>{})},children:[(0,Q.jsx)(P,{label:s(`settings.workflow.reassign`,{count:f.state.count}),value:f.reassignTo,onValueChange:e=>{e&&p({...f,reassignTo:e})},children:i.filter(e=>e.id!==f.state.id).map(e=>(0,Q.jsx)(T,{value:e.id,children:e.name},e.id))}),(0,Q.jsx)(R,{error:l.error,pending:l.isPending,submitLabel:s(`settings.workflow.delete`),submitDisabled:!f.reassignTo,onCancel:()=>p(null)})]})})]})}var $=e=>e===`select`||e===`multiselect`;function Ge({projectId:e,canAdmin:n}){let r=Oe(e),a=N(`create_custom_field`),c=N(`update_custom_field`),l=N(`move_custom_field`),u=N(`delete_custom_field`),[f,p]=(0,Z.useState)(null),m=a.isPending||c.isPending,h=r.data??[];function _(e){a.reset(),c.reset(),p({field:e,name:e?.name??``,type:e?.type??`select`,options:e?.options??[],required:e?.required??!1,defaultValue:e?.defaultValue??null,reassign:{}})}function v(t,n,r){n&&l.mutateAsync({projectId:e,fieldId:t.id,expectedVersion:t.version,[r]:n.id}).catch(B)}return(0,Q.jsxs)(`section`,{children:[(0,Q.jsx)(I,{title:s(`settings.fields.title`),action:n&&(0,Q.jsx)(x,{label:s(`settings.fields.new`),variant:`default`,onClick:()=>_(null),children:(0,Q.jsx)(V,{})})}),(0,Q.jsx)(S,{error:r.error}),r.isPending?(0,Q.jsx)(j,{}):h.length?h.map((r,a)=>{let c=Ne[r.type];return(0,Q.jsxs)(Y,{compact:!0,title:(0,Q.jsxs)(`span`,{className:`inline-flex min-w-0 items-center gap-2`,children:[(0,Q.jsx)(c,{className:`size-3.5 shrink-0 text-muted-foreground`,"aria-hidden":`true`}),(0,Q.jsx)(`span`,{dir:`auto`,className:`min-w-0 break-words`,children:r.name})]}),description:[i[r.type],r.required&&s(`settings.fields.required`),r.defaultValue!==null&&s(`settings.fields.defaultValue`,{value:t(r,r.defaultValue)})].filter(Boolean).join(` · `),children:[(0,Q.jsx)(G,{to:`/projects/$projectId`,params:{projectId:e},search:{customFieldNot:[o(r.id,d.empty)]},className:`text-xs whitespace-nowrap text-muted-foreground tabular-nums hover:text-foreground`,children:s(`settings.tickets`,{count:r.count})}),n&&(0,Q.jsxs)(Q.Fragment,{children:[(0,Q.jsx)(x,{label:s(`settings.moveUp`,{name:r.name}),disabled:a===0||l.isPending,onClick:()=>v(r,h[a-1],`before`),children:(0,Q.jsx)(O,{})}),(0,Q.jsx)(x,{label:s(`settings.moveDown`,{name:r.name}),disabled:a===h.length-1||l.isPending,onClick:()=>v(r,h[a+1],`after`),children:(0,Q.jsx)(A,{})}),(0,Q.jsx)(x,{label:s(`settings.fields.editNamed`,{name:r.name}),onClick:()=>_(r),children:(0,Q.jsx)(W,{})}),(0,Q.jsx)(k,{label:s(`settings.fields.deleteNamed`,{name:r.name}),icon:(0,Q.jsx)(U,{}),danger:!0,description:r.count?s(`settings.fields.deleteUsed`,{name:r.name,count:r.count}):s(`settings.fields.deleteUnused`,{name:r.name}),onConfirm:async()=>{await u.mutateAsync({projectId:e,fieldId:r.id,expectedVersion:r.version}),w.success(s(`settings.fields.deleted`))}})]})]},r.id)}):!r.error&&(0,Q.jsx)(g,{title:s(`settings.fields.empty`)}),(0,Q.jsx)(E,{title:f?.field?s(`settings.fields.edit`):s(`settings.fields.new`),open:!!f,onOpenChange:e=>{e||p(null)},busy:m,children:f&&(0,Q.jsx)(Ke,{projectId:e,draft:f,onChange:p,busy:m,error:a.error??c.error,onCancel:()=>p(null),onSubmit:()=>{let{field:t}=f,n=$(f.type)?f.options:[],r=t?.options.filter(e=>!n.some(t=>t.id===e.id))??[];(t?c.mutateAsync({projectId:e,fieldId:t.id,expectedVersion:t.version,name:f.name,options:n,required:f.required,defaultValue:f.defaultValue,...r.length&&{reassign:Object.fromEntries(r.map(e=>[e.id,f.reassign[e.id]??null]))}}):a.mutateAsync({projectId:e,name:f.name,type:f.type,options:n,required:f.required,defaultValue:f.defaultValue})).then(()=>{p(null),w.success(s(`settings.fields.saved`))}).catch(()=>{})}})})]})}function Ke({projectId:e,draft:t,onChange:n,busy:r,error:a,onCancel:o,onSubmit:c}){let l=$(t.type),d=l?t.field?.options.filter(e=>!t.options.some(t=>t.id===e.id))??[]:[],f={id:t.field?.id??`draft`,projectId:e,name:s(`settings.fields.default`),type:t.type,options:t.options,required:!1,defaultValue:null,version:1},h=e=>{let r=new Set(e.map(e=>e.id)),i=t.defaultValue,a=Array.isArray(i)?i.filter(e=>r.has(e)):typeof i==`string`&&l&&!r.has(i)?null:i;n({...t,options:e,defaultValue:Array.isArray(a)&&!a.length?null:a})},g=(e,n)=>{let r=[...t.options],[i]=r.splice(e,1);i&&r.splice(n,0,i),h(r)};return(0,Q.jsxs)(`form`,{onSubmit:e=>{e.preventDefault(),c()},children:[(0,Q.jsx)(M,{label:s(`settings.fields.name`),value:t.name,onChange:e=>n({...t,name:e.target.value}),maxLength:60,required:!0,autoFocus:!0}),(0,Q.jsx)(P,{label:s(`settings.fields.type`),value:t.type,disabled:!!t.field||r,onValueChange:e=>{let r=u.find(t=>t===e)??t.type;n({...t,type:r,options:$(r)?t.options:[],required:r!==`checkbox`&&t.required,defaultValue:null})},children:u.map(e=>(0,Q.jsx)(T,{value:e,children:i[e]},e))}),l&&(0,Q.jsxs)(`fieldset`,{className:`mb-4`,children:[(0,Q.jsx)(`legend`,{className:`mb-2 text-xs font-medium text-muted-foreground`,children:s(`settings.fields.options`)}),(0,Q.jsx)(`ol`,{className:`m-0 flex list-none flex-col gap-1.5 p-0`,children:t.options.map((e,n)=>{let i=e.name||s(`settings.fields.optionInline`,{number:n+1});return(0,Q.jsxs)(`li`,{className:`flex items-center gap-1`,children:[(0,Q.jsx)(qe,{name:e.name||s(`settings.fields.option`,{number:n+1}),value:e.color,disabled:r,onChange:n=>h(t.options.map(t=>t.id===e.id?{...t,color:n}:t))}),(0,Q.jsx)(`div`,{className:`min-w-0 flex-1`,children:(0,Q.jsx)(M,{label:s(`settings.fields.option`,{number:n+1}),labelHidden:!0,value:e.name,maxLength:60,required:!0,onChange:n=>h(t.options.map(t=>t.id===e.id?{...t,name:n.target.value}:t))})}),(0,Q.jsx)(x,{label:s(`settings.moveUp`,{name:i}),size:`icon-sm`,disabled:n===0||r,onClick:()=>g(n,n-1),children:(0,Q.jsx)(O,{})}),(0,Q.jsx)(x,{label:s(`settings.moveDown`,{name:i}),size:`icon-sm`,disabled:n===t.options.length-1||r,onClick:()=>g(n,n+1),children:(0,Q.jsx)(A,{})}),(0,Q.jsx)(x,{label:s(`settings.fields.removeOption`,{name:i}),size:`icon-sm`,disabled:r,onClick:()=>h(t.options.filter(t=>t.id!==e.id)),children:(0,Q.jsx)(p,{})})]},e.id)})}),(0,Q.jsxs)(F,{variant:`ghost`,size:`sm`,className:`mt-1.5`,disabled:r,onClick:()=>h([...t.options,{id:crypto.randomUUID(),name:``,color:`gray`}]),children:[(0,Q.jsx)(V,{}),s(`settings.fields.addOption`)]})]}),d.map(e=>(0,Q.jsxs)(P,{label:s(`settings.fields.reassign`,{name:e.name}),value:t.reassign[e.id]??``,onValueChange:r=>n({...t,reassign:{...t.reassign,[e.id]:r||null}}),children:[(0,Q.jsx)(T,{value:``,children:s(`settings.fields.clearValue`)}),t.options.filter(e=>e.name.trim()).map(e=>(0,Q.jsx)(T,{value:e.id,children:s(`settings.fields.moveTo`,{name:e.name})},e.id))]},e.id)),t.type!==`checkbox`&&(0,Q.jsx)(m,{label:s(`settings.fields.required`),description:s(`settings.fields.requiredDescription`),checked:t.required,disabled:r,onCheckedChange:e=>n({...t,required:e})}),(0,Q.jsx)(`div`,{className:`mb-4`,children:(0,Q.jsx)(De,{variant:`row`,field:f,value:t.defaultValue,disabled:r||l&&!t.options.some(e=>e.name.trim()),onChange:e=>n({...t,defaultValue:e})})}),(0,Q.jsx)(R,{error:a,pending:r,submitLabel:s(`settings.fields.save`),submitDisabled:!t.name.trim(),onCancel:o})]})}function qe({name:e,value:t,disabled:n,onChange:r}){let i=te(t);return(0,Q.jsxs)(C,{children:[(0,Q.jsx)(b,{disabled:n,render:(0,Q.jsx)(F,{variant:`ghost`,size:`icon-sm`,"aria-label":s(`settings.fields.optionColor`,{name:e}),className:i.className,style:i.style}),children:(0,Q.jsx)(`span`,{className:`size-3 rounded-full bg-current`})}),(0,Q.jsx)(ee,{align:`start`,className:`w-[min(20rem,calc(100vw-2rem))] p-3 pb-0`,children:(0,Q.jsx)(X,{label:s(`settings.fields.optionColor`,{name:e}),value:t,onChange:r,custom:!0})})]})}var Je=()=>new Intl.DateTimeFormat().resolvedOptions().timeZone;function Ye({projectId:e,canAdmin:t,canCreate:n=t}){let r=z({...y.query(`list_calendar_feeds`,{projectId:e}),enabled:t}),i=N(`create_calendar_feed`),a=N(`revoke_calendar_feed`),[o,c]=(0,Z.useState)(null),[l,u]=(0,Z.useState)(null),d=()=>{c(null),u(null)};return(0,Q.jsxs)(`section`,{children:[(0,Q.jsx)(I,{title:s(`settings.calendarFeeds.title`),action:n&&(0,Q.jsx)(x,{label:s(`settings.calendarFeeds.new`),variant:`default`,onClick:()=>{i.reset(),c({name:``,labels:[]})},children:(0,Q.jsx)(V,{})})}),t?r.isPending?(0,Q.jsx)(j,{}):r.data?.length?r.data.map(t=>(0,Q.jsx)(Y,{compact:!0,title:(0,Q.jsx)(`span`,{dir:`auto`,children:t.name}),description:(0,Q.jsxs)(`span`,{className:`flex flex-wrap items-center gap-x-1.5 gap-y-1`,children:[t.labels.length?(0,Q.jsx)(pe,{tags:t.labels,label:s(`settings.calendarFeeds.labels`),variant:`secondary`}):s(`settings.calendarFeeds.everyLabel`),(0,Q.jsxs)(`span`,{children:[`· `,t.timeZone,` ·`]}),(0,Q.jsx)(ue,{projectId:e,actorId:t.createdBy}),(0,Q.jsx)(L,{value:t.createdAt}),!t.active&&(0,Q.jsx)(`span`,{className:`text-destructive`,children:s(`settings.calendarFeeds.stopped`)})]}),children:(0,Q.jsx)(k,{label:s(`settings.calendarFeeds.revoke`,{name:t.name}),icon:(0,Q.jsx)(U,{}),danger:!0,description:s(`settings.calendarFeeds.revokeDescription`,{name:t.name}),onConfirm:async()=>{await a.mutateAsync({projectId:e,feedId:t.id}),w.success(s(`settings.calendarFeeds.revoked`))}})},t.id)):!r.error&&(0,Q.jsx)(g,{title:s(`settings.calendarFeeds.empty`),icon:Re}):(0,Q.jsx)(`p`,{className:`text-sm text-muted-foreground`,children:s(`settings.calendarFeeds.adminOnly`)}),(0,Q.jsx)(S,{error:r.error}),(0,Q.jsx)(E,{title:s(l?`settings.calendarFeeds.created`:`settings.calendarFeeds.new`),open:!!o||!!l,onOpenChange:e=>{e||d()},busy:i.isPending,children:l?(0,Q.jsxs)(`div`,{children:[(0,Q.jsx)(`p`,{children:s(`settings.calendarFeeds.copyNow`)}),(0,Q.jsx)(ne,{label:s(`settings.calendarFeeds.link`),value:new URL(l.path,window.location.origin).href}),(0,Q.jsx)(`div`,{className:`flex justify-end`,children:(0,Q.jsx)(F,{variant:`default`,onClick:d,children:s(`common.action.done`)})})]}):o&&(0,Q.jsxs)(`form`,{onSubmit:t=>{t.preventDefault(),i.mutateAsync({projectId:e,name:o.name,labels:o.labels,timeZone:Je()}).then(e=>{c(null),u(e)}).catch(()=>{})},children:[(0,Q.jsx)(M,{label:s(`settings.calendarFeeds.name`),value:o.name,onChange:e=>c({...o,name:e.target.value}),maxLength:80,required:!0,autoFocus:!0}),(0,Q.jsx)(de,{projectId:e,children:(0,Q.jsx)(Ee,{label:s(`settings.calendarFeeds.onlyLabels`),value:o.labels,onChange:e=>c({...o,labels:e})})}),(0,Q.jsx)(`p`,{className:`text-xs text-muted-foreground`,children:s(`settings.calendarFeeds.explanation`,{zone:Je()})}),(0,Q.jsx)(R,{error:i.error,pending:i.isPending,submitLabel:s(`settings.calendarFeeds.create`),submitDisabled:!o.name.trim(),onCancel:d})]})})]})}function Xe({project:e,section:t}){let n=N(`update_project`),r=N(`set_member`),i=ie(e.id),o=oe(),c=o.workspaces.filter(t=>a(t).includes(`project.manage`)&&t.id!==e.workspaceId),l=z(y.query(`list_members`,{projectId:e.id})),u=z(y.query(`list_project_roles`,{projectId:e.id})),d=z({...y.query(`list_workspace_members`,{workspaceId:e.workspaceId}),enabled:!!o.active?.role});return(0,Q.jsx)(Q.Fragment,{children:(0,Q.jsxs)(Fe,{title:s(`settings.project.title`),section:t,children:[(0,Q.jsxs)(J,{value:`general`,children:[(0,Q.jsx)(`section`,{children:(0,Q.jsx)(Ie,{name:e.name,description:e.description,canEdit:i.canManage,version:e.version,pending:n.isPending,error:n.error,editLabel:s(`settings.project.edit`),media:(0,Q.jsx)(Ue,{project:e,disabled:!i.canManage}),badges:(0,Q.jsxs)(Q.Fragment,{children:[(0,Q.jsx)(le,{variant:`secondary`,className:`ml-0.5 font-mono text-[10px] font-normal`,children:e.key}),(0,Q.jsx)(v,{label:s(`settings.project.copyPrefix`),value:e.key,size:`icon-xs`})]}),onSave:t=>n.mutateAsync({projectId:e.id,expectedVersion:e.version,name:t.name,description:t.description}).then(()=>w.success(s(`settings.project.saved`))),children:(0,Q.jsxs)(`p`,{className:`mb-0 text-xs tabular-nums`,children:[(0,Q.jsxs)(G,{to:`/projects/$projectId`,params:{projectId:e.id},className:`text-muted-foreground hover:text-foreground`,children:[e.openTickets===0?s(`settings.project.noOpenTickets`):s(`settings.project.openTickets`,{count:e.openTickets}),e.overdueTickets>0&&(0,Q.jsxs)(`span`,{className:`text-(--warning)`,children:[` `,s(`settings.project.overdueTickets`,{count:e.overdueTickets})]})]}),` `,(0,Q.jsx)(he,{i18nKey:`settings.project.created`,components:{time:(0,Q.jsx)(L,{value:e.createdAt})}})]})})}),(0,Q.jsxs)(`section`,{children:[(0,Q.jsx)(Y,{title:s(`settings.project.access`),description:e.visibility===`workspace`?s(`settings.project.accessWorkspace`):s(`settings.project.accessPrivate`),children:(0,Q.jsxs)(P,{label:s(`settings.project.access`),labelHidden:!0,className:`mb-0 w-56`,value:e.visibility,disabled:!i.canManage||n.isPending,onValueChange:t=>{let r=t===`private`?`private`:`workspace`;r!==e.visibility&&n.mutateAsync({projectId:e.id,expectedVersion:e.version,name:e.name,description:e.description,visibility:r}).then(()=>w.success(s(`settings.project.accessUpdated`))).catch(B)},children:[(0,Q.jsx)(T,{value:`workspace`,children:s(`settings.project.visibility.workspace`)}),(0,Q.jsx)(T,{value:`private`,children:s(`settings.project.visibility.private`)})]})}),(0,Q.jsx)(Ze,{project:e,canAdmin:i.canManage}),(0,Q.jsx)(Qe,{project:e,canAdmin:i.canShare}),(0,Q.jsx)($e,{project:e,canAdmin:i.canManage}),(0,Q.jsxs)(Y,{title:s(`settings.project.workspace`),description:o.active?.name,children:[i.canManage&&a(o.active??{role:null}).includes(`project.manage`)&&c.length>0&&(0,Q.jsx)(Se,{project:e,destinations:c}),o.active?.role&&(0,Q.jsx)(F,{render:(0,Q.jsx)(G,{to:`/workspaces/$workspaceId/settings`,params:{workspaceId:e.workspaceId}}),children:s(`settings.project.workspaceSettings`)})]}),(0,Q.jsx)(xe,{project:e}),i.canManage&&(0,Q.jsxs)(Q.Fragment,{children:[(0,Q.jsx)(Ce,{project:e}),(0,Q.jsx)(be,{project:e})]})]})]}),(0,Q.jsx)(J,{value:`members`,children:(0,Q.jsx)(ze,{people:l.data??[],candidates:d.data??l.data??[],pending:r.isPending,loading:l.isPending,error:l.error,canAdmin:i.canManageMembers,scope:`project`,roles:u.data,authority:{admin:i.role===`admin`,capabilities:i.capabilities},onChange:(t,n)=>r.mutateAsync({projectId:e.id,email:t,role:n})})}),(0,Q.jsx)(J,{value:`workflow`,children:(0,Q.jsx)(We,{projectId:e.id,canAdmin:i.canAdmin})}),(0,Q.jsx)(J,{value:`labels`,children:(0,Q.jsx)(Be,{owner:{projectId:e.id},canAdmin:i.canAdmin})}),(0,Q.jsx)(J,{value:`fields`,children:(0,Q.jsx)(Ge,{projectId:e.id,canAdmin:i.canAdmin})}),(0,Q.jsxs)(J,{value:`integrations`,children:[(0,Q.jsx)(ye,{projectId:e.id,workspaceId:e.workspaceId,canAdmin:i.canManage,canChange:i.canAdmin}),(0,Q.jsx)(ve,{projectId:e.id,canAdmin:i.canManage,canChange:i.canAdmin})]}),(0,Q.jsx)(J,{value:`calendar`,children:(0,Q.jsx)(Ye,{projectId:e.id,canAdmin:i.canShare,canCreate:i.canShare&&!i.archived})})]})})}function Ze({project:e,canAdmin:t}){let n=N(`update_project`),[r,i]=(0,Z.useState)(!1),[a,o]=(0,Z.useState)(e.key);return(0,Q.jsxs)(Y,{title:s(`settings.project.prefix`),description:s(`settings.project.prefixDescription`),children:[t&&(0,Q.jsx)(F,{onClick:()=>{o(e.key),n.reset(),i(!0)},children:s(`settings.project.changePrefix`)}),(0,Q.jsx)(E,{title:s(`settings.project.changePrefixTitle`),description:s(`settings.project.changePrefixDescription`,{name:e.name}),open:r,onOpenChange:i,busy:n.isPending,children:(0,Q.jsxs)(`form`,{onSubmit:t=>{t.preventDefault(),n.mutateAsync({projectId:e.id,expectedVersion:e.version,name:e.name,description:e.description,key:a}).then(e=>{i(!1),w.success(s(`settings.project.prefixChanged`,{key:e.key}))}).catch(()=>{})},children:[(0,Q.jsx)(Pe,{value:a,onChange:e=>{o(e),n.reset()},autoFocus:!0}),(0,Q.jsx)(R,{error:n.error,pending:n.isPending,submitLabel:s(`settings.project.changePrefix`),pendingLabel:s(`settings.project.changing`),submitDisabled:a===e.key,onCancel:()=>i(!1)})]})})]})}function Qe({project:e,canAdmin:t}){let n=N(`update_project`),r=new URL(`/public/projects/${e.id}`,window.location.origin).href,i=s(`settings.project.publicDisclosure`),a=t=>n.mutateAsync({projectId:e.id,expectedVersion:e.version,name:e.name,description:e.description,publicReadEnabled:t}).then(()=>w.success(s(t?`settings.project.publicOn`:`settings.project.publicOff`)));return(0,Q.jsxs)(Y,{title:s(`settings.project.publicLink`),description:e.publicReadEnabled?(0,Q.jsxs)(Q.Fragment,{children:[(0,Q.jsx)(`code`,{className:`block text-xs break-all text-foreground`,children:r}),(0,Q.jsx)(`span`,{className:`mt-1 block`,children:i})]}):s(`settings.project.off`),children:[e.publicReadEnabled&&(0,Q.jsxs)(Q.Fragment,{children:[(0,Q.jsx)(v,{label:s(`settings.project.copyPublicLink`),value:r}),(0,Q.jsx)(x,{label:s(`settings.project.openPublic`),render:(0,Q.jsx)(`a`,{href:r,target:`_blank`,rel:`noreferrer`}),children:(0,Q.jsx)(Ae,{})})]}),t&&(e.publicReadEnabled?(0,Q.jsx)(F,{disabled:n.isPending,onClick:()=>void a(!1).catch(B),children:s(`settings.project.stopSharing`)}):(0,Q.jsx)(k,{label:s(`settings.project.share`),description:i,disabled:n.isPending,onConfirm:()=>a(!0)}))]})}function $e({project:e,canAdmin:t}){let n=N(`set_project_background`),r=(0,Z.useRef)(null),[i,a]=(0,Z.useState)(!1),o=i||n.isPending,c=t=>n.mutateAsync({projectId:e.id,expectedVersion:e.version,background:t}).then(()=>w.success(s(t?`settings.project.backgroundUpdated`:`settings.project.backgroundRemoved`)));return(0,Q.jsxs)(Y,{title:s(`settings.project.background`),description:e.background?s(`settings.project.backgroundDescription`):s(`common.state.none`),children:[e.background&&(0,Q.jsx)(`img`,{src:e.background,alt:s(`settings.project.currentBackground`),className:`h-14 w-24 rounded-md border object-cover`}),t&&(0,Q.jsxs)(Q.Fragment,{children:[(0,Q.jsxs)(F,{disabled:o,onClick:()=>r.current?.click(),children:[(0,Q.jsx)(He,{}),o?s(`settings.project.uploading`):e.background?s(`settings.project.replace`):s(`settings.project.upload`)]}),e.background&&(0,Q.jsx)(F,{variant:`ghost`,disabled:o,onClick:()=>void c(null).catch(B),children:s(`common.action.remove`)}),(0,Q.jsx)(ae,{ref:r,type:`file`,accept:`image/png,image/jpeg,image/webp`,className:`hidden`,"aria-label":s(`settings.project.backgroundFile`),onChange:e=>{let t=e.currentTarget.files?.[0];e.currentTarget.value=``,t&&(a(!0),D(t,{fit:`inside`,size:1920}).then(e=>c(e)).catch(B).finally(()=>a(!1)))}})]})]})}export{Xe as ProjectSettings};