mirror of
https://github.com/AmruthPillai/Reactive-Resume.git
synced 2026-06-22 04:11:55 +10:00
feat: add section heading icons to PDF templates (#3127)
* feat: add section heading icons to PDF templates Add customizable Phosphor icons before section titles in PDF output. Users can toggle visibility globally via a new "Hide section heading icons" switch (independent of item-level icons) and customize individual section icons through the builder sidebar icon picker. - Add `icon` field to `baseSectionSchema` and `summarySchema` - Add `hideSectionIcons` to `pageSchema` (defaults to true for backward compat) - Implement `SectionHeadingIcon` component with heading font-size scaling - Support "none" sentinel for per-section icon hiding - Fallback to sensible defaults (briefcase, graduation-cap, etc.) for legacy data - Add icon picker to builder sidebar sections and custom section dialogs Closes #2632 * test: add unit tests for section heading icons - Add tests for getResumeSectionIcon() covering built-in sections, summary, custom sections, "none" sentinel, and default fallbacks - Add schema tests for baseSectionSchema icon field, summarySchema icon, and pageSchema hideSectionIcons default behavior * refactor: minor updates to icon display * Update apps/web/locales/es-ES.po Co-authored-by: coderabbitai[bot] <136622811+coderabbitai[bot]@users.noreply.github.com> --------- Co-authored-by: Amruth Pillai <im.amruth@gmail.com> Co-authored-by: coderabbitai[bot] <136622811+coderabbitai[bot]@users.noreply.github.com>
This commit is contained in:
@@ -8,7 +8,7 @@ msgstr ""
|
||||
"Language: af\n"
|
||||
"Project-Id-Version: reactive-resume\n"
|
||||
"Report-Msgid-Bugs-To: \n"
|
||||
"PO-Revision-Date: 2026-05-27 21:53\n"
|
||||
"PO-Revision-Date: 2026-06-01 11:26\n"
|
||||
"Last-Translator: \n"
|
||||
"Language-Team: Afrikaans\n"
|
||||
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
|
||||
@@ -1745,8 +1745,8 @@ msgid "Hide"
|
||||
msgstr "Wys"
|
||||
|
||||
#: src/routes/builder/$resumeId/-sidebar/right/sections/page.tsx
|
||||
msgid "Hide all icons on the resume"
|
||||
msgstr "Versteek alle ikone op die CV"
|
||||
msgid "Hide Icons"
|
||||
msgstr "Versteek ikone"
|
||||
|
||||
#. Accessible label for button that hides password in registration form
|
||||
#. Accessible label for button that hides password in reset-password form
|
||||
@@ -1766,6 +1766,10 @@ msgstr "Versteek alle ikone op die CV"
|
||||
msgid "Hide password"
|
||||
msgstr "Verberg wagwoord"
|
||||
|
||||
#: src/routes/builder/$resumeId/-sidebar/right/sections/page.tsx
|
||||
msgid "Hide Section Icons"
|
||||
msgstr "Versteek Afdelingsikone"
|
||||
|
||||
#. Impact severity label in resume analysis suggestion card
|
||||
#: src/routes/builder/$resumeId/-sidebar/right/sections/resume-analysis.tsx
|
||||
msgid "High"
|
||||
@@ -1804,6 +1808,7 @@ msgid "Hungarian"
|
||||
msgstr "Hongaars"
|
||||
|
||||
#: src/components/level/combobox.tsx
|
||||
#: src/dialogs/resume/sections/custom.tsx
|
||||
#: src/routes/builder/$resumeId/-sidebar/right/sections/design.tsx
|
||||
msgid "Icon"
|
||||
msgstr "Ikoon"
|
||||
@@ -3991,4 +3996,3 @@ msgstr "Zoem uit"
|
||||
#: src/libs/locale.ts
|
||||
msgid "Zulu"
|
||||
msgstr "Zoeloe"
|
||||
|
||||
|
||||
@@ -8,7 +8,7 @@ msgstr ""
|
||||
"Language: am\n"
|
||||
"Project-Id-Version: reactive-resume\n"
|
||||
"Report-Msgid-Bugs-To: \n"
|
||||
"PO-Revision-Date: 2026-05-27 21:53\n"
|
||||
"PO-Revision-Date: 2026-06-01 11:26\n"
|
||||
"Last-Translator: \n"
|
||||
"Language-Team: Amharic\n"
|
||||
"Plural-Forms: nplurals=2; plural=(n > 1);\n"
|
||||
@@ -1745,8 +1745,8 @@ msgid "Hide"
|
||||
msgstr "አሳይ"
|
||||
|
||||
#: src/routes/builder/$resumeId/-sidebar/right/sections/page.tsx
|
||||
msgid "Hide all icons on the resume"
|
||||
msgstr "በየታሪክ ማቅረቢያው ላይ ያሉ ሁሉንም አዶዎች ደብቅ"
|
||||
msgid "Hide Icons"
|
||||
msgstr "አዶዎችን ደብቅ"
|
||||
|
||||
#. Accessible label for button that hides password in registration form
|
||||
#. Accessible label for button that hides password in reset-password form
|
||||
@@ -1766,6 +1766,10 @@ msgstr "በየታሪክ ማቅረቢያው ላይ ያሉ ሁሉንም አዶዎ
|
||||
msgid "Hide password"
|
||||
msgstr "የይለፍ ቃል ደብቅ"
|
||||
|
||||
#: src/routes/builder/$resumeId/-sidebar/right/sections/page.tsx
|
||||
msgid "Hide Section Icons"
|
||||
msgstr "የክፍል አዶዎችን ደብቅ"
|
||||
|
||||
#. Impact severity label in resume analysis suggestion card
|
||||
#: src/routes/builder/$resumeId/-sidebar/right/sections/resume-analysis.tsx
|
||||
msgid "High"
|
||||
@@ -1804,6 +1808,7 @@ msgid "Hungarian"
|
||||
msgstr "ሀንጋሪኛ"
|
||||
|
||||
#: src/components/level/combobox.tsx
|
||||
#: src/dialogs/resume/sections/custom.tsx
|
||||
#: src/routes/builder/$resumeId/-sidebar/right/sections/design.tsx
|
||||
msgid "Icon"
|
||||
msgstr "አዶ"
|
||||
@@ -3991,4 +3996,3 @@ msgstr "አጉር"
|
||||
#: src/libs/locale.ts
|
||||
msgid "Zulu"
|
||||
msgstr "ዙሉ"
|
||||
|
||||
|
||||
@@ -8,7 +8,7 @@ msgstr ""
|
||||
"Language: ar\n"
|
||||
"Project-Id-Version: reactive-resume\n"
|
||||
"Report-Msgid-Bugs-To: \n"
|
||||
"PO-Revision-Date: 2026-05-27 21:53\n"
|
||||
"PO-Revision-Date: 2026-06-01 11:26\n"
|
||||
"Last-Translator: \n"
|
||||
"Language-Team: Arabic\n"
|
||||
"Plural-Forms: nplurals=6; plural=(n==0 ? 0 : n==1 ? 1 : n==2 ? 2 : n%100>=3 && n%100<=10 ? 3 : n%100>=11 && n%100<=99 ? 4 : 5);\n"
|
||||
@@ -1745,8 +1745,8 @@ msgid "Hide"
|
||||
msgstr "إخفاء"
|
||||
|
||||
#: src/routes/builder/$resumeId/-sidebar/right/sections/page.tsx
|
||||
msgid "Hide all icons on the resume"
|
||||
msgstr "إخفاء جميع الأيقونات في السيرة الذاتية"
|
||||
msgid "Hide Icons"
|
||||
msgstr "إخفاء الأيقونات"
|
||||
|
||||
#. Accessible label for button that hides password in registration form
|
||||
#. Accessible label for button that hides password in reset-password form
|
||||
@@ -1766,6 +1766,10 @@ msgstr "إخفاء جميع الأيقونات في السيرة الذاتية"
|
||||
msgid "Hide password"
|
||||
msgstr "إخفاء كلمة المرور"
|
||||
|
||||
#: src/routes/builder/$resumeId/-sidebar/right/sections/page.tsx
|
||||
msgid "Hide Section Icons"
|
||||
msgstr "إخفاء أيقونات الأقسام"
|
||||
|
||||
#. Impact severity label in resume analysis suggestion card
|
||||
#: src/routes/builder/$resumeId/-sidebar/right/sections/resume-analysis.tsx
|
||||
msgid "High"
|
||||
@@ -1804,6 +1808,7 @@ msgid "Hungarian"
|
||||
msgstr "الهنغارية"
|
||||
|
||||
#: src/components/level/combobox.tsx
|
||||
#: src/dialogs/resume/sections/custom.tsx
|
||||
#: src/routes/builder/$resumeId/-sidebar/right/sections/design.tsx
|
||||
msgid "Icon"
|
||||
msgstr "الأيقونة"
|
||||
@@ -3991,4 +3996,3 @@ msgstr "تصغير"
|
||||
#: src/libs/locale.ts
|
||||
msgid "Zulu"
|
||||
msgstr "الزولو"
|
||||
|
||||
|
||||
@@ -8,7 +8,7 @@ msgstr ""
|
||||
"Language: az\n"
|
||||
"Project-Id-Version: reactive-resume\n"
|
||||
"Report-Msgid-Bugs-To: \n"
|
||||
"PO-Revision-Date: 2026-05-27 21:53\n"
|
||||
"PO-Revision-Date: 2026-06-01 11:26\n"
|
||||
"Last-Translator: \n"
|
||||
"Language-Team: Azerbaijani\n"
|
||||
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
|
||||
@@ -1745,8 +1745,8 @@ msgid "Hide"
|
||||
msgstr "Gizlət"
|
||||
|
||||
#: src/routes/builder/$resumeId/-sidebar/right/sections/page.tsx
|
||||
msgid "Hide all icons on the resume"
|
||||
msgstr "Özgeçmişdəki bütün ikonları gizlət"
|
||||
msgid "Hide Icons"
|
||||
msgstr "Nişanları gizlət"
|
||||
|
||||
#. Accessible label for button that hides password in registration form
|
||||
#. Accessible label for button that hides password in reset-password form
|
||||
@@ -1766,6 +1766,10 @@ msgstr "Özgeçmişdəki bütün ikonları gizlət"
|
||||
msgid "Hide password"
|
||||
msgstr "Şifrəni gizlət"
|
||||
|
||||
#: src/routes/builder/$resumeId/-sidebar/right/sections/page.tsx
|
||||
msgid "Hide Section Icons"
|
||||
msgstr "Bölmə İkonlarını Gizlət"
|
||||
|
||||
#. Impact severity label in resume analysis suggestion card
|
||||
#: src/routes/builder/$resumeId/-sidebar/right/sections/resume-analysis.tsx
|
||||
msgid "High"
|
||||
@@ -1804,6 +1808,7 @@ msgid "Hungarian"
|
||||
msgstr "Macar"
|
||||
|
||||
#: src/components/level/combobox.tsx
|
||||
#: src/dialogs/resume/sections/custom.tsx
|
||||
#: src/routes/builder/$resumeId/-sidebar/right/sections/design.tsx
|
||||
msgid "Icon"
|
||||
msgstr "İkon"
|
||||
@@ -3991,4 +3996,3 @@ msgstr "Uzaqlaşdır"
|
||||
#: src/libs/locale.ts
|
||||
msgid "Zulu"
|
||||
msgstr "Zulu"
|
||||
|
||||
|
||||
@@ -8,7 +8,7 @@ msgstr ""
|
||||
"Language: bg\n"
|
||||
"Project-Id-Version: reactive-resume\n"
|
||||
"Report-Msgid-Bugs-To: \n"
|
||||
"PO-Revision-Date: 2026-05-27 21:53\n"
|
||||
"PO-Revision-Date: 2026-06-01 11:26\n"
|
||||
"Last-Translator: \n"
|
||||
"Language-Team: Bulgarian\n"
|
||||
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
|
||||
@@ -1745,8 +1745,8 @@ msgid "Hide"
|
||||
msgstr "Скриване"
|
||||
|
||||
#: src/routes/builder/$resumeId/-sidebar/right/sections/page.tsx
|
||||
msgid "Hide all icons on the resume"
|
||||
msgstr "Скриване на всички икони в автобиографията"
|
||||
msgid "Hide Icons"
|
||||
msgstr "Скриване на икони"
|
||||
|
||||
#. Accessible label for button that hides password in registration form
|
||||
#. Accessible label for button that hides password in reset-password form
|
||||
@@ -1766,6 +1766,10 @@ msgstr "Скриване на всички икони в автобиограф
|
||||
msgid "Hide password"
|
||||
msgstr "Скриване на паролата"
|
||||
|
||||
#: src/routes/builder/$resumeId/-sidebar/right/sections/page.tsx
|
||||
msgid "Hide Section Icons"
|
||||
msgstr "Скриване на иконите на секциите"
|
||||
|
||||
#. Impact severity label in resume analysis suggestion card
|
||||
#: src/routes/builder/$resumeId/-sidebar/right/sections/resume-analysis.tsx
|
||||
msgid "High"
|
||||
@@ -1804,6 +1808,7 @@ msgid "Hungarian"
|
||||
msgstr "Унгарски"
|
||||
|
||||
#: src/components/level/combobox.tsx
|
||||
#: src/dialogs/resume/sections/custom.tsx
|
||||
#: src/routes/builder/$resumeId/-sidebar/right/sections/design.tsx
|
||||
msgid "Icon"
|
||||
msgstr "Икона"
|
||||
@@ -3991,4 +3996,3 @@ msgstr "Намаляване"
|
||||
#: src/libs/locale.ts
|
||||
msgid "Zulu"
|
||||
msgstr "Зулуски"
|
||||
|
||||
|
||||
@@ -8,7 +8,7 @@ msgstr ""
|
||||
"Language: bn\n"
|
||||
"Project-Id-Version: reactive-resume\n"
|
||||
"Report-Msgid-Bugs-To: \n"
|
||||
"PO-Revision-Date: 2026-05-27 21:53\n"
|
||||
"PO-Revision-Date: 2026-06-01 11:26\n"
|
||||
"Last-Translator: \n"
|
||||
"Language-Team: Bengali\n"
|
||||
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
|
||||
@@ -1745,8 +1745,8 @@ msgid "Hide"
|
||||
msgstr "লুকান"
|
||||
|
||||
#: src/routes/builder/$resumeId/-sidebar/right/sections/page.tsx
|
||||
msgid "Hide all icons on the resume"
|
||||
msgstr "জীবনবৃত্তান্তে সব আইকন লুকিয়ে রাখুন"
|
||||
msgid "Hide Icons"
|
||||
msgstr "আইকন লুকান"
|
||||
|
||||
#. Accessible label for button that hides password in registration form
|
||||
#. Accessible label for button that hides password in reset-password form
|
||||
@@ -1766,6 +1766,10 @@ msgstr "জীবনবৃত্তান্তে সব আইকন লুক
|
||||
msgid "Hide password"
|
||||
msgstr "পাসওয়ার্ড লুকান"
|
||||
|
||||
#: src/routes/builder/$resumeId/-sidebar/right/sections/page.tsx
|
||||
msgid "Hide Section Icons"
|
||||
msgstr "সেকশন আইকন লুকান"
|
||||
|
||||
#. Impact severity label in resume analysis suggestion card
|
||||
#: src/routes/builder/$resumeId/-sidebar/right/sections/resume-analysis.tsx
|
||||
msgid "High"
|
||||
@@ -1804,6 +1808,7 @@ msgid "Hungarian"
|
||||
msgstr "হাঙ্গেরিয়ান"
|
||||
|
||||
#: src/components/level/combobox.tsx
|
||||
#: src/dialogs/resume/sections/custom.tsx
|
||||
#: src/routes/builder/$resumeId/-sidebar/right/sections/design.tsx
|
||||
msgid "Icon"
|
||||
msgstr "আইকন"
|
||||
@@ -3991,4 +3996,3 @@ msgstr "জুম আউট"
|
||||
#: src/libs/locale.ts
|
||||
msgid "Zulu"
|
||||
msgstr "জুলু"
|
||||
|
||||
|
||||
@@ -8,7 +8,7 @@ msgstr ""
|
||||
"Language: ca\n"
|
||||
"Project-Id-Version: reactive-resume\n"
|
||||
"Report-Msgid-Bugs-To: \n"
|
||||
"PO-Revision-Date: 2026-05-27 21:53\n"
|
||||
"PO-Revision-Date: 2026-06-01 11:26\n"
|
||||
"Last-Translator: \n"
|
||||
"Language-Team: Catalan\n"
|
||||
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
|
||||
@@ -1745,8 +1745,8 @@ msgid "Hide"
|
||||
msgstr "Amaga"
|
||||
|
||||
#: src/routes/builder/$resumeId/-sidebar/right/sections/page.tsx
|
||||
msgid "Hide all icons on the resume"
|
||||
msgstr "Amaga totes les icones del currículum"
|
||||
msgid "Hide Icons"
|
||||
msgstr "Amaga les icones"
|
||||
|
||||
#. Accessible label for button that hides password in registration form
|
||||
#. Accessible label for button that hides password in reset-password form
|
||||
@@ -1766,6 +1766,10 @@ msgstr "Amaga totes les icones del currículum"
|
||||
msgid "Hide password"
|
||||
msgstr "Amagar contrasenya"
|
||||
|
||||
#: src/routes/builder/$resumeId/-sidebar/right/sections/page.tsx
|
||||
msgid "Hide Section Icons"
|
||||
msgstr "Amaga les icones de secció"
|
||||
|
||||
#. Impact severity label in resume analysis suggestion card
|
||||
#: src/routes/builder/$resumeId/-sidebar/right/sections/resume-analysis.tsx
|
||||
msgid "High"
|
||||
@@ -1804,6 +1808,7 @@ msgid "Hungarian"
|
||||
msgstr "Hongarès"
|
||||
|
||||
#: src/components/level/combobox.tsx
|
||||
#: src/dialogs/resume/sections/custom.tsx
|
||||
#: src/routes/builder/$resumeId/-sidebar/right/sections/design.tsx
|
||||
msgid "Icon"
|
||||
msgstr "Icona"
|
||||
@@ -3991,4 +3996,3 @@ msgstr "Allunya"
|
||||
#: src/libs/locale.ts
|
||||
msgid "Zulu"
|
||||
msgstr "Zulú"
|
||||
|
||||
|
||||
@@ -8,7 +8,7 @@ msgstr ""
|
||||
"Language: cs\n"
|
||||
"Project-Id-Version: reactive-resume\n"
|
||||
"Report-Msgid-Bugs-To: \n"
|
||||
"PO-Revision-Date: 2026-05-27 21:53\n"
|
||||
"PO-Revision-Date: 2026-06-01 11:26\n"
|
||||
"Last-Translator: \n"
|
||||
"Language-Team: Czech\n"
|
||||
"Plural-Forms: nplurals=4; plural=(n==1) ? 0 : (n>=2 && n<=4) ? 1 : 3;\n"
|
||||
@@ -1745,8 +1745,8 @@ msgid "Hide"
|
||||
msgstr "Skrýt"
|
||||
|
||||
#: src/routes/builder/$resumeId/-sidebar/right/sections/page.tsx
|
||||
msgid "Hide all icons on the resume"
|
||||
msgstr "Skrýt všechny ikony v životopisu"
|
||||
msgid "Hide Icons"
|
||||
msgstr "Skrýt ikony"
|
||||
|
||||
#. Accessible label for button that hides password in registration form
|
||||
#. Accessible label for button that hides password in reset-password form
|
||||
@@ -1766,6 +1766,10 @@ msgstr "Skrýt všechny ikony v životopisu"
|
||||
msgid "Hide password"
|
||||
msgstr "Skrýt heslo"
|
||||
|
||||
#: src/routes/builder/$resumeId/-sidebar/right/sections/page.tsx
|
||||
msgid "Hide Section Icons"
|
||||
msgstr "Skrýt ikony sekcí"
|
||||
|
||||
#. Impact severity label in resume analysis suggestion card
|
||||
#: src/routes/builder/$resumeId/-sidebar/right/sections/resume-analysis.tsx
|
||||
msgid "High"
|
||||
@@ -1804,6 +1808,7 @@ msgid "Hungarian"
|
||||
msgstr "Maďarština"
|
||||
|
||||
#: src/components/level/combobox.tsx
|
||||
#: src/dialogs/resume/sections/custom.tsx
|
||||
#: src/routes/builder/$resumeId/-sidebar/right/sections/design.tsx
|
||||
msgid "Icon"
|
||||
msgstr "Ikona"
|
||||
@@ -3991,4 +3996,3 @@ msgstr "Oddálit"
|
||||
#: src/libs/locale.ts
|
||||
msgid "Zulu"
|
||||
msgstr "Zulu"
|
||||
|
||||
|
||||
@@ -8,7 +8,7 @@ msgstr ""
|
||||
"Language: da\n"
|
||||
"Project-Id-Version: reactive-resume\n"
|
||||
"Report-Msgid-Bugs-To: \n"
|
||||
"PO-Revision-Date: 2026-05-27 21:53\n"
|
||||
"PO-Revision-Date: 2026-06-01 11:26\n"
|
||||
"Last-Translator: \n"
|
||||
"Language-Team: Danish\n"
|
||||
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
|
||||
@@ -1745,8 +1745,8 @@ msgid "Hide"
|
||||
msgstr "Skjul"
|
||||
|
||||
#: src/routes/builder/$resumeId/-sidebar/right/sections/page.tsx
|
||||
msgid "Hide all icons on the resume"
|
||||
msgstr "Skjul alle ikoner på CV'et"
|
||||
msgid "Hide Icons"
|
||||
msgstr "Skjul ikoner"
|
||||
|
||||
#. Accessible label for button that hides password in registration form
|
||||
#. Accessible label for button that hides password in reset-password form
|
||||
@@ -1766,6 +1766,10 @@ msgstr "Skjul alle ikoner på CV'et"
|
||||
msgid "Hide password"
|
||||
msgstr "Skjul adgangskode"
|
||||
|
||||
#: src/routes/builder/$resumeId/-sidebar/right/sections/page.tsx
|
||||
msgid "Hide Section Icons"
|
||||
msgstr "Skjul sektionsikoner"
|
||||
|
||||
#. Impact severity label in resume analysis suggestion card
|
||||
#: src/routes/builder/$resumeId/-sidebar/right/sections/resume-analysis.tsx
|
||||
msgid "High"
|
||||
@@ -1804,6 +1808,7 @@ msgid "Hungarian"
|
||||
msgstr "Ungarsk"
|
||||
|
||||
#: src/components/level/combobox.tsx
|
||||
#: src/dialogs/resume/sections/custom.tsx
|
||||
#: src/routes/builder/$resumeId/-sidebar/right/sections/design.tsx
|
||||
msgid "Icon"
|
||||
msgstr "Ikon"
|
||||
@@ -3991,4 +3996,3 @@ msgstr "Zoom ud"
|
||||
#: src/libs/locale.ts
|
||||
msgid "Zulu"
|
||||
msgstr "Zulu"
|
||||
|
||||
|
||||
@@ -8,7 +8,7 @@ msgstr ""
|
||||
"Language: de\n"
|
||||
"Project-Id-Version: reactive-resume\n"
|
||||
"Report-Msgid-Bugs-To: \n"
|
||||
"PO-Revision-Date: 2026-05-27 21:53\n"
|
||||
"PO-Revision-Date: 2026-06-01 11:26\n"
|
||||
"Last-Translator: \n"
|
||||
"Language-Team: German\n"
|
||||
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
|
||||
@@ -1745,8 +1745,8 @@ msgid "Hide"
|
||||
msgstr "Ausblenden"
|
||||
|
||||
#: src/routes/builder/$resumeId/-sidebar/right/sections/page.tsx
|
||||
msgid "Hide all icons on the resume"
|
||||
msgstr "Alle Icons im Lebenslauf ausblenden"
|
||||
msgid "Hide Icons"
|
||||
msgstr "Symbole ausblenden"
|
||||
|
||||
#. Accessible label for button that hides password in registration form
|
||||
#. Accessible label for button that hides password in reset-password form
|
||||
@@ -1766,6 +1766,10 @@ msgstr "Alle Icons im Lebenslauf ausblenden"
|
||||
msgid "Hide password"
|
||||
msgstr "Passwort verbergen"
|
||||
|
||||
#: src/routes/builder/$resumeId/-sidebar/right/sections/page.tsx
|
||||
msgid "Hide Section Icons"
|
||||
msgstr "Abschnittssymbole ausblenden"
|
||||
|
||||
#. Impact severity label in resume analysis suggestion card
|
||||
#: src/routes/builder/$resumeId/-sidebar/right/sections/resume-analysis.tsx
|
||||
msgid "High"
|
||||
@@ -1804,6 +1808,7 @@ msgid "Hungarian"
|
||||
msgstr "Ungarisch"
|
||||
|
||||
#: src/components/level/combobox.tsx
|
||||
#: src/dialogs/resume/sections/custom.tsx
|
||||
#: src/routes/builder/$resumeId/-sidebar/right/sections/design.tsx
|
||||
msgid "Icon"
|
||||
msgstr "Symbol"
|
||||
@@ -3991,4 +3996,3 @@ msgstr "Herauszoomen"
|
||||
#: src/libs/locale.ts
|
||||
msgid "Zulu"
|
||||
msgstr "Zulu"
|
||||
|
||||
|
||||
@@ -8,7 +8,7 @@ msgstr ""
|
||||
"Language: el\n"
|
||||
"Project-Id-Version: reactive-resume\n"
|
||||
"Report-Msgid-Bugs-To: \n"
|
||||
"PO-Revision-Date: 2026-05-27 21:53\n"
|
||||
"PO-Revision-Date: 2026-06-01 11:26\n"
|
||||
"Last-Translator: \n"
|
||||
"Language-Team: Greek\n"
|
||||
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
|
||||
@@ -1745,8 +1745,8 @@ msgid "Hide"
|
||||
msgstr "Απόκρυψη"
|
||||
|
||||
#: src/routes/builder/$resumeId/-sidebar/right/sections/page.tsx
|
||||
msgid "Hide all icons on the resume"
|
||||
msgstr "Απόκρυψη όλων των εικονιδίων στο βιογραφικό σημείωμα"
|
||||
msgid "Hide Icons"
|
||||
msgstr "Απόκρυψη εικονιδίων"
|
||||
|
||||
#. Accessible label for button that hides password in registration form
|
||||
#. Accessible label for button that hides password in reset-password form
|
||||
@@ -1766,6 +1766,10 @@ msgstr "Απόκρυψη όλων των εικονιδίων στο βιογρ
|
||||
msgid "Hide password"
|
||||
msgstr "Απόκρυψη κωδικού πρόσβασης"
|
||||
|
||||
#: src/routes/builder/$resumeId/-sidebar/right/sections/page.tsx
|
||||
msgid "Hide Section Icons"
|
||||
msgstr "Απόκρυψη εικονιδίων ενότητας"
|
||||
|
||||
#. Impact severity label in resume analysis suggestion card
|
||||
#: src/routes/builder/$resumeId/-sidebar/right/sections/resume-analysis.tsx
|
||||
msgid "High"
|
||||
@@ -1804,6 +1808,7 @@ msgid "Hungarian"
|
||||
msgstr "Ουγγρικά"
|
||||
|
||||
#: src/components/level/combobox.tsx
|
||||
#: src/dialogs/resume/sections/custom.tsx
|
||||
#: src/routes/builder/$resumeId/-sidebar/right/sections/design.tsx
|
||||
msgid "Icon"
|
||||
msgstr "Εικονίδιο"
|
||||
@@ -3991,4 +3996,3 @@ msgstr "Σμίκρυνση"
|
||||
#: src/libs/locale.ts
|
||||
msgid "Zulu"
|
||||
msgstr "Ζουλού"
|
||||
|
||||
|
||||
@@ -8,7 +8,7 @@ msgstr ""
|
||||
"Language: en_GB\n"
|
||||
"Project-Id-Version: reactive-resume\n"
|
||||
"Report-Msgid-Bugs-To: \n"
|
||||
"PO-Revision-Date: 2026-05-27 21:53\n"
|
||||
"PO-Revision-Date: 2026-06-01 11:26\n"
|
||||
"Last-Translator: \n"
|
||||
"Language-Team: English, United Kingdom\n"
|
||||
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
|
||||
@@ -1745,8 +1745,8 @@ msgid "Hide"
|
||||
msgstr "Hide"
|
||||
|
||||
#: src/routes/builder/$resumeId/-sidebar/right/sections/page.tsx
|
||||
msgid "Hide all icons on the resume"
|
||||
msgstr "Hide all icons on the resume"
|
||||
msgid "Hide Icons"
|
||||
msgstr "Hide Icons"
|
||||
|
||||
#. Accessible label for button that hides password in registration form
|
||||
#. Accessible label for button that hides password in reset-password form
|
||||
@@ -1766,6 +1766,10 @@ msgstr "Hide all icons on the resume"
|
||||
msgid "Hide password"
|
||||
msgstr "Hide password"
|
||||
|
||||
#: src/routes/builder/$resumeId/-sidebar/right/sections/page.tsx
|
||||
msgid "Hide Section Icons"
|
||||
msgstr "Hide Section Icons"
|
||||
|
||||
#. Impact severity label in resume analysis suggestion card
|
||||
#: src/routes/builder/$resumeId/-sidebar/right/sections/resume-analysis.tsx
|
||||
msgid "High"
|
||||
@@ -1804,6 +1808,7 @@ msgid "Hungarian"
|
||||
msgstr "Hungarian"
|
||||
|
||||
#: src/components/level/combobox.tsx
|
||||
#: src/dialogs/resume/sections/custom.tsx
|
||||
#: src/routes/builder/$resumeId/-sidebar/right/sections/design.tsx
|
||||
msgid "Icon"
|
||||
msgstr "Icon"
|
||||
@@ -3991,4 +3996,3 @@ msgstr "Zoom out"
|
||||
#: src/libs/locale.ts
|
||||
msgid "Zulu"
|
||||
msgstr "Zulu"
|
||||
|
||||
|
||||
@@ -1740,8 +1740,8 @@ msgid "Hide"
|
||||
msgstr "Hide"
|
||||
|
||||
#: src/routes/builder/$resumeId/-sidebar/right/sections/page.tsx
|
||||
msgid "Hide all icons on the resume"
|
||||
msgstr "Hide all icons on the resume"
|
||||
msgid "Hide Icons"
|
||||
msgstr "Hide Icons"
|
||||
|
||||
#. Accessible label for button that hides password in registration form
|
||||
#. Accessible label for button that hides password in reset-password form
|
||||
@@ -1761,6 +1761,10 @@ msgstr "Hide all icons on the resume"
|
||||
msgid "Hide password"
|
||||
msgstr "Hide password"
|
||||
|
||||
#: src/routes/builder/$resumeId/-sidebar/right/sections/page.tsx
|
||||
msgid "Hide Section Icons"
|
||||
msgstr "Hide Section Icons"
|
||||
|
||||
#. Impact severity label in resume analysis suggestion card
|
||||
#: src/routes/builder/$resumeId/-sidebar/right/sections/resume-analysis.tsx
|
||||
msgid "High"
|
||||
@@ -1799,6 +1803,7 @@ msgid "Hungarian"
|
||||
msgstr "Hungarian"
|
||||
|
||||
#: src/components/level/combobox.tsx
|
||||
#: src/dialogs/resume/sections/custom.tsx
|
||||
#: src/routes/builder/$resumeId/-sidebar/right/sections/design.tsx
|
||||
msgid "Icon"
|
||||
msgstr "Icon"
|
||||
|
||||
@@ -8,7 +8,7 @@ msgstr ""
|
||||
"Language: es\n"
|
||||
"Project-Id-Version: reactive-resume\n"
|
||||
"Report-Msgid-Bugs-To: \n"
|
||||
"PO-Revision-Date: 2026-05-27 21:53\n"
|
||||
"PO-Revision-Date: 2026-06-01 11:26\n"
|
||||
"Last-Translator: \n"
|
||||
"Language-Team: Spanish\n"
|
||||
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
|
||||
@@ -1745,8 +1745,8 @@ msgid "Hide"
|
||||
msgstr "Ocultar"
|
||||
|
||||
#: src/routes/builder/$resumeId/-sidebar/right/sections/page.tsx
|
||||
msgid "Hide all icons on the resume"
|
||||
msgstr "Ocultar todos los iconos en el currículum"
|
||||
msgid "Hide Icons"
|
||||
msgstr "Ocultar iconos"
|
||||
|
||||
#. Accessible label for button that hides password in registration form
|
||||
#. Accessible label for button that hides password in reset-password form
|
||||
@@ -1766,6 +1766,10 @@ msgstr "Ocultar todos los iconos en el currículum"
|
||||
msgid "Hide password"
|
||||
msgstr "Ocultar contraseña"
|
||||
|
||||
#: src/routes/builder/$resumeId/-sidebar/right/sections/page.tsx
|
||||
msgid "Hide Section Icons"
|
||||
msgstr "Ocultar iconos de sección"
|
||||
|
||||
#. Impact severity label in resume analysis suggestion card
|
||||
#: src/routes/builder/$resumeId/-sidebar/right/sections/resume-analysis.tsx
|
||||
msgid "High"
|
||||
@@ -1804,6 +1808,7 @@ msgid "Hungarian"
|
||||
msgstr "Húngaro"
|
||||
|
||||
#: src/components/level/combobox.tsx
|
||||
#: src/dialogs/resume/sections/custom.tsx
|
||||
#: src/routes/builder/$resumeId/-sidebar/right/sections/design.tsx
|
||||
msgid "Icon"
|
||||
msgstr "Icono"
|
||||
@@ -3991,4 +3996,3 @@ msgstr "Alejar"
|
||||
#: src/libs/locale.ts
|
||||
msgid "Zulu"
|
||||
msgstr "Zulú"
|
||||
|
||||
|
||||
@@ -8,7 +8,7 @@ msgstr ""
|
||||
"Language: fa\n"
|
||||
"Project-Id-Version: reactive-resume\n"
|
||||
"Report-Msgid-Bugs-To: \n"
|
||||
"PO-Revision-Date: 2026-05-27 21:53\n"
|
||||
"PO-Revision-Date: 2026-06-01 11:26\n"
|
||||
"Last-Translator: \n"
|
||||
"Language-Team: Persian\n"
|
||||
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
|
||||
@@ -1745,8 +1745,8 @@ msgid "Hide"
|
||||
msgstr "پنهان کردن"
|
||||
|
||||
#: src/routes/builder/$resumeId/-sidebar/right/sections/page.tsx
|
||||
msgid "Hide all icons on the resume"
|
||||
msgstr "تمام آیکونها را روی رزومه مخفی کن"
|
||||
msgid "Hide Icons"
|
||||
msgstr "پنهان کردن آیکونها"
|
||||
|
||||
#. Accessible label for button that hides password in registration form
|
||||
#. Accessible label for button that hides password in reset-password form
|
||||
@@ -1766,6 +1766,10 @@ msgstr "تمام آیکونها را روی رزومه مخفی کن"
|
||||
msgid "Hide password"
|
||||
msgstr "پنهان کردن رمز عبور"
|
||||
|
||||
#: src/routes/builder/$resumeId/-sidebar/right/sections/page.tsx
|
||||
msgid "Hide Section Icons"
|
||||
msgstr "پنهان کردن آیکنهای بخش"
|
||||
|
||||
#. Impact severity label in resume analysis suggestion card
|
||||
#: src/routes/builder/$resumeId/-sidebar/right/sections/resume-analysis.tsx
|
||||
msgid "High"
|
||||
@@ -1804,6 +1808,7 @@ msgid "Hungarian"
|
||||
msgstr "مجاری"
|
||||
|
||||
#: src/components/level/combobox.tsx
|
||||
#: src/dialogs/resume/sections/custom.tsx
|
||||
#: src/routes/builder/$resumeId/-sidebar/right/sections/design.tsx
|
||||
msgid "Icon"
|
||||
msgstr "آیکون"
|
||||
@@ -3991,4 +3996,3 @@ msgstr "کوچکنمایی"
|
||||
#: src/libs/locale.ts
|
||||
msgid "Zulu"
|
||||
msgstr "زولو"
|
||||
|
||||
|
||||
@@ -8,7 +8,7 @@ msgstr ""
|
||||
"Language: fi\n"
|
||||
"Project-Id-Version: reactive-resume\n"
|
||||
"Report-Msgid-Bugs-To: \n"
|
||||
"PO-Revision-Date: 2026-05-27 21:53\n"
|
||||
"PO-Revision-Date: 2026-06-01 11:26\n"
|
||||
"Last-Translator: \n"
|
||||
"Language-Team: Finnish\n"
|
||||
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
|
||||
@@ -1745,8 +1745,8 @@ msgid "Hide"
|
||||
msgstr "Piilota"
|
||||
|
||||
#: src/routes/builder/$resumeId/-sidebar/right/sections/page.tsx
|
||||
msgid "Hide all icons on the resume"
|
||||
msgstr "Piilota kaikki ansioluettelon ikonit"
|
||||
msgid "Hide Icons"
|
||||
msgstr "Piilota kuvakkeet"
|
||||
|
||||
#. Accessible label for button that hides password in registration form
|
||||
#. Accessible label for button that hides password in reset-password form
|
||||
@@ -1766,6 +1766,10 @@ msgstr "Piilota kaikki ansioluettelon ikonit"
|
||||
msgid "Hide password"
|
||||
msgstr "Piilota salasana"
|
||||
|
||||
#: src/routes/builder/$resumeId/-sidebar/right/sections/page.tsx
|
||||
msgid "Hide Section Icons"
|
||||
msgstr "Piilota osiokuvakkeet"
|
||||
|
||||
#. Impact severity label in resume analysis suggestion card
|
||||
#: src/routes/builder/$resumeId/-sidebar/right/sections/resume-analysis.tsx
|
||||
msgid "High"
|
||||
@@ -1804,6 +1808,7 @@ msgid "Hungarian"
|
||||
msgstr "unkari"
|
||||
|
||||
#: src/components/level/combobox.tsx
|
||||
#: src/dialogs/resume/sections/custom.tsx
|
||||
#: src/routes/builder/$resumeId/-sidebar/right/sections/design.tsx
|
||||
msgid "Icon"
|
||||
msgstr "Ikoni"
|
||||
@@ -3991,4 +3996,3 @@ msgstr "Loitonna"
|
||||
#: src/libs/locale.ts
|
||||
msgid "Zulu"
|
||||
msgstr "Zulu"
|
||||
|
||||
|
||||
@@ -8,7 +8,7 @@ msgstr ""
|
||||
"Language: fr\n"
|
||||
"Project-Id-Version: reactive-resume\n"
|
||||
"Report-Msgid-Bugs-To: \n"
|
||||
"PO-Revision-Date: 2026-05-27 21:53\n"
|
||||
"PO-Revision-Date: 2026-06-01 11:26\n"
|
||||
"Last-Translator: \n"
|
||||
"Language-Team: French\n"
|
||||
"Plural-Forms: nplurals=2; plural=(n > 1);\n"
|
||||
@@ -1745,8 +1745,8 @@ msgid "Hide"
|
||||
msgstr "Masquer"
|
||||
|
||||
#: src/routes/builder/$resumeId/-sidebar/right/sections/page.tsx
|
||||
msgid "Hide all icons on the resume"
|
||||
msgstr "Masquer toutes les icônes du CV"
|
||||
msgid "Hide Icons"
|
||||
msgstr "Masquer les icônes"
|
||||
|
||||
#. Accessible label for button that hides password in registration form
|
||||
#. Accessible label for button that hides password in reset-password form
|
||||
@@ -1766,6 +1766,10 @@ msgstr "Masquer toutes les icônes du CV"
|
||||
msgid "Hide password"
|
||||
msgstr "Cacher le mot de passe"
|
||||
|
||||
#: src/routes/builder/$resumeId/-sidebar/right/sections/page.tsx
|
||||
msgid "Hide Section Icons"
|
||||
msgstr "Masquer les icônes de section"
|
||||
|
||||
#. Impact severity label in resume analysis suggestion card
|
||||
#: src/routes/builder/$resumeId/-sidebar/right/sections/resume-analysis.tsx
|
||||
msgid "High"
|
||||
@@ -1804,6 +1808,7 @@ msgid "Hungarian"
|
||||
msgstr "Hongrois"
|
||||
|
||||
#: src/components/level/combobox.tsx
|
||||
#: src/dialogs/resume/sections/custom.tsx
|
||||
#: src/routes/builder/$resumeId/-sidebar/right/sections/design.tsx
|
||||
msgid "Icon"
|
||||
msgstr "Icône"
|
||||
@@ -3991,4 +3996,3 @@ msgstr "Zoom arrière"
|
||||
#: src/libs/locale.ts
|
||||
msgid "Zulu"
|
||||
msgstr "Zoulou"
|
||||
|
||||
|
||||
@@ -8,7 +8,7 @@ msgstr ""
|
||||
"Language: he\n"
|
||||
"Project-Id-Version: reactive-resume\n"
|
||||
"Report-Msgid-Bugs-To: \n"
|
||||
"PO-Revision-Date: 2026-05-27 21:53\n"
|
||||
"PO-Revision-Date: 2026-06-01 11:26\n"
|
||||
"Last-Translator: \n"
|
||||
"Language-Team: Hebrew\n"
|
||||
"Plural-Forms: nplurals=4; plural=n%100==1 ? 0 : n%100==2 ? 1 : n%100==3 || n%100==4 ? 2 : 3;\n"
|
||||
@@ -1745,8 +1745,8 @@ msgid "Hide"
|
||||
msgstr "הסתרה"
|
||||
|
||||
#: src/routes/builder/$resumeId/-sidebar/right/sections/page.tsx
|
||||
msgid "Hide all icons on the resume"
|
||||
msgstr "הסתרת כל הסמלים בקורות החיים"
|
||||
msgid "Hide Icons"
|
||||
msgstr "הסתר סמלים"
|
||||
|
||||
#. Accessible label for button that hides password in registration form
|
||||
#. Accessible label for button that hides password in reset-password form
|
||||
@@ -1766,6 +1766,10 @@ msgstr "הסתרת כל הסמלים בקורות החיים"
|
||||
msgid "Hide password"
|
||||
msgstr "הסתר סיסמה"
|
||||
|
||||
#: src/routes/builder/$resumeId/-sidebar/right/sections/page.tsx
|
||||
msgid "Hide Section Icons"
|
||||
msgstr "הסתר סמלי מדור"
|
||||
|
||||
#. Impact severity label in resume analysis suggestion card
|
||||
#: src/routes/builder/$resumeId/-sidebar/right/sections/resume-analysis.tsx
|
||||
msgid "High"
|
||||
@@ -1804,6 +1808,7 @@ msgid "Hungarian"
|
||||
msgstr "הונגרית"
|
||||
|
||||
#: src/components/level/combobox.tsx
|
||||
#: src/dialogs/resume/sections/custom.tsx
|
||||
#: src/routes/builder/$resumeId/-sidebar/right/sections/design.tsx
|
||||
msgid "Icon"
|
||||
msgstr "סמל"
|
||||
@@ -3991,4 +3996,3 @@ msgstr "התרחקות"
|
||||
#: src/libs/locale.ts
|
||||
msgid "Zulu"
|
||||
msgstr "זולו"
|
||||
|
||||
|
||||
@@ -8,7 +8,7 @@ msgstr ""
|
||||
"Language: hi\n"
|
||||
"Project-Id-Version: reactive-resume\n"
|
||||
"Report-Msgid-Bugs-To: \n"
|
||||
"PO-Revision-Date: 2026-05-27 21:53\n"
|
||||
"PO-Revision-Date: 2026-06-01 11:26\n"
|
||||
"Last-Translator: \n"
|
||||
"Language-Team: Hindi\n"
|
||||
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
|
||||
@@ -1745,8 +1745,8 @@ msgid "Hide"
|
||||
msgstr "छुपायें"
|
||||
|
||||
#: src/routes/builder/$resumeId/-sidebar/right/sections/page.tsx
|
||||
msgid "Hide all icons on the resume"
|
||||
msgstr "रेज़्यूमे पर सभी आइकॉन छुपाएँ"
|
||||
msgid "Hide Icons"
|
||||
msgstr "आइकन छिपाएँ"
|
||||
|
||||
#. Accessible label for button that hides password in registration form
|
||||
#. Accessible label for button that hides password in reset-password form
|
||||
@@ -1766,6 +1766,10 @@ msgstr "रेज़्यूमे पर सभी आइकॉन छुप
|
||||
msgid "Hide password"
|
||||
msgstr "पासवर्ड छिपाएँ"
|
||||
|
||||
#: src/routes/builder/$resumeId/-sidebar/right/sections/page.tsx
|
||||
msgid "Hide Section Icons"
|
||||
msgstr "सेक्शन आइकन छिपाएँ"
|
||||
|
||||
#. Impact severity label in resume analysis suggestion card
|
||||
#: src/routes/builder/$resumeId/-sidebar/right/sections/resume-analysis.tsx
|
||||
msgid "High"
|
||||
@@ -1804,6 +1808,7 @@ msgid "Hungarian"
|
||||
msgstr "हंगेरियन"
|
||||
|
||||
#: src/components/level/combobox.tsx
|
||||
#: src/dialogs/resume/sections/custom.tsx
|
||||
#: src/routes/builder/$resumeId/-sidebar/right/sections/design.tsx
|
||||
msgid "Icon"
|
||||
msgstr "आइकॉन"
|
||||
@@ -3991,4 +3996,3 @@ msgstr "ज़ूम आउट"
|
||||
#: src/libs/locale.ts
|
||||
msgid "Zulu"
|
||||
msgstr "ज़ुलु"
|
||||
|
||||
|
||||
@@ -8,7 +8,7 @@ msgstr ""
|
||||
"Language: hu\n"
|
||||
"Project-Id-Version: reactive-resume\n"
|
||||
"Report-Msgid-Bugs-To: \n"
|
||||
"PO-Revision-Date: 2026-05-27 21:53\n"
|
||||
"PO-Revision-Date: 2026-06-01 11:26\n"
|
||||
"Last-Translator: \n"
|
||||
"Language-Team: Hungarian\n"
|
||||
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
|
||||
@@ -1745,8 +1745,8 @@ msgid "Hide"
|
||||
msgstr "Elrejtés"
|
||||
|
||||
#: src/routes/builder/$resumeId/-sidebar/right/sections/page.tsx
|
||||
msgid "Hide all icons on the resume"
|
||||
msgstr "Az önéletrajz összes ikonjának elrejtése"
|
||||
msgid "Hide Icons"
|
||||
msgstr "Ikonok elrejtése"
|
||||
|
||||
#. Accessible label for button that hides password in registration form
|
||||
#. Accessible label for button that hides password in reset-password form
|
||||
@@ -1766,6 +1766,10 @@ msgstr "Az önéletrajz összes ikonjának elrejtése"
|
||||
msgid "Hide password"
|
||||
msgstr "Jelszó elrejtése"
|
||||
|
||||
#: src/routes/builder/$resumeId/-sidebar/right/sections/page.tsx
|
||||
msgid "Hide Section Icons"
|
||||
msgstr "Szakasz ikonok elrejtése"
|
||||
|
||||
#. Impact severity label in resume analysis suggestion card
|
||||
#: src/routes/builder/$resumeId/-sidebar/right/sections/resume-analysis.tsx
|
||||
msgid "High"
|
||||
@@ -1804,6 +1808,7 @@ msgid "Hungarian"
|
||||
msgstr "magyar"
|
||||
|
||||
#: src/components/level/combobox.tsx
|
||||
#: src/dialogs/resume/sections/custom.tsx
|
||||
#: src/routes/builder/$resumeId/-sidebar/right/sections/design.tsx
|
||||
msgid "Icon"
|
||||
msgstr "Ikon"
|
||||
@@ -3991,4 +3996,3 @@ msgstr "Kicsinyítés"
|
||||
#: src/libs/locale.ts
|
||||
msgid "Zulu"
|
||||
msgstr "Zulu"
|
||||
|
||||
|
||||
@@ -8,7 +8,7 @@ msgstr ""
|
||||
"Language: id\n"
|
||||
"Project-Id-Version: reactive-resume\n"
|
||||
"Report-Msgid-Bugs-To: \n"
|
||||
"PO-Revision-Date: 2026-05-27 21:53\n"
|
||||
"PO-Revision-Date: 2026-06-01 11:26\n"
|
||||
"Last-Translator: \n"
|
||||
"Language-Team: Indonesian\n"
|
||||
"Plural-Forms: nplurals=1; plural=0;\n"
|
||||
@@ -1745,8 +1745,8 @@ msgid "Hide"
|
||||
msgstr "Sembunyikan"
|
||||
|
||||
#: src/routes/builder/$resumeId/-sidebar/right/sections/page.tsx
|
||||
msgid "Hide all icons on the resume"
|
||||
msgstr "Sembunyikan semua ikon di resume"
|
||||
msgid "Hide Icons"
|
||||
msgstr "Sembunyikan Ikon"
|
||||
|
||||
#. Accessible label for button that hides password in registration form
|
||||
#. Accessible label for button that hides password in reset-password form
|
||||
@@ -1766,6 +1766,10 @@ msgstr "Sembunyikan semua ikon di resume"
|
||||
msgid "Hide password"
|
||||
msgstr "Sembunyikan kata sandi"
|
||||
|
||||
#: src/routes/builder/$resumeId/-sidebar/right/sections/page.tsx
|
||||
msgid "Hide Section Icons"
|
||||
msgstr "Sembunyikan Ikon Bagian"
|
||||
|
||||
#. Impact severity label in resume analysis suggestion card
|
||||
#: src/routes/builder/$resumeId/-sidebar/right/sections/resume-analysis.tsx
|
||||
msgid "High"
|
||||
@@ -1804,6 +1808,7 @@ msgid "Hungarian"
|
||||
msgstr "Hungaria"
|
||||
|
||||
#: src/components/level/combobox.tsx
|
||||
#: src/dialogs/resume/sections/custom.tsx
|
||||
#: src/routes/builder/$resumeId/-sidebar/right/sections/design.tsx
|
||||
msgid "Icon"
|
||||
msgstr "Ikon"
|
||||
@@ -3991,4 +3996,3 @@ msgstr "Perkecil"
|
||||
#: src/libs/locale.ts
|
||||
msgid "Zulu"
|
||||
msgstr "Zulu"
|
||||
|
||||
|
||||
@@ -8,7 +8,7 @@ msgstr ""
|
||||
"Language: it\n"
|
||||
"Project-Id-Version: reactive-resume\n"
|
||||
"Report-Msgid-Bugs-To: \n"
|
||||
"PO-Revision-Date: 2026-05-27 21:53\n"
|
||||
"PO-Revision-Date: 2026-06-01 11:26\n"
|
||||
"Last-Translator: \n"
|
||||
"Language-Team: Italian\n"
|
||||
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
|
||||
@@ -1745,8 +1745,8 @@ msgid "Hide"
|
||||
msgstr "Nascondi"
|
||||
|
||||
#: src/routes/builder/$resumeId/-sidebar/right/sections/page.tsx
|
||||
msgid "Hide all icons on the resume"
|
||||
msgstr "Nascondi tutte le icone sul curriculum"
|
||||
msgid "Hide Icons"
|
||||
msgstr "Nascondi icone"
|
||||
|
||||
#. Accessible label for button that hides password in registration form
|
||||
#. Accessible label for button that hides password in reset-password form
|
||||
@@ -1766,6 +1766,10 @@ msgstr "Nascondi tutte le icone sul curriculum"
|
||||
msgid "Hide password"
|
||||
msgstr "Nascondere la password"
|
||||
|
||||
#: src/routes/builder/$resumeId/-sidebar/right/sections/page.tsx
|
||||
msgid "Hide Section Icons"
|
||||
msgstr "Nascondi le icone della sezione"
|
||||
|
||||
#. Impact severity label in resume analysis suggestion card
|
||||
#: src/routes/builder/$resumeId/-sidebar/right/sections/resume-analysis.tsx
|
||||
msgid "High"
|
||||
@@ -1804,6 +1808,7 @@ msgid "Hungarian"
|
||||
msgstr "Ungherese"
|
||||
|
||||
#: src/components/level/combobox.tsx
|
||||
#: src/dialogs/resume/sections/custom.tsx
|
||||
#: src/routes/builder/$resumeId/-sidebar/right/sections/design.tsx
|
||||
msgid "Icon"
|
||||
msgstr "Icona"
|
||||
@@ -3991,4 +3996,3 @@ msgstr "Rimpicciolisci"
|
||||
#: src/libs/locale.ts
|
||||
msgid "Zulu"
|
||||
msgstr "Zulu"
|
||||
|
||||
|
||||
@@ -8,7 +8,7 @@ msgstr ""
|
||||
"Language: ja\n"
|
||||
"Project-Id-Version: reactive-resume\n"
|
||||
"Report-Msgid-Bugs-To: \n"
|
||||
"PO-Revision-Date: 2026-05-27 21:53\n"
|
||||
"PO-Revision-Date: 2026-06-01 11:26\n"
|
||||
"Last-Translator: \n"
|
||||
"Language-Team: Japanese\n"
|
||||
"Plural-Forms: nplurals=1; plural=0;\n"
|
||||
@@ -1745,8 +1745,8 @@ msgid "Hide"
|
||||
msgstr "非表示にする"
|
||||
|
||||
#: src/routes/builder/$resumeId/-sidebar/right/sections/page.tsx
|
||||
msgid "Hide all icons on the resume"
|
||||
msgstr "履歴書上のすべてのアイコンを非表示にする"
|
||||
msgid "Hide Icons"
|
||||
msgstr "アイコンを非表示にする"
|
||||
|
||||
#. Accessible label for button that hides password in registration form
|
||||
#. Accessible label for button that hides password in reset-password form
|
||||
@@ -1766,6 +1766,10 @@ msgstr "履歴書上のすべてのアイコンを非表示にする"
|
||||
msgid "Hide password"
|
||||
msgstr "パスワードを隠す"
|
||||
|
||||
#: src/routes/builder/$resumeId/-sidebar/right/sections/page.tsx
|
||||
msgid "Hide Section Icons"
|
||||
msgstr "セクションアイコンを非表示にする"
|
||||
|
||||
#. Impact severity label in resume analysis suggestion card
|
||||
#: src/routes/builder/$resumeId/-sidebar/right/sections/resume-analysis.tsx
|
||||
msgid "High"
|
||||
@@ -1804,6 +1808,7 @@ msgid "Hungarian"
|
||||
msgstr "ハンガリー語"
|
||||
|
||||
#: src/components/level/combobox.tsx
|
||||
#: src/dialogs/resume/sections/custom.tsx
|
||||
#: src/routes/builder/$resumeId/-sidebar/right/sections/design.tsx
|
||||
msgid "Icon"
|
||||
msgstr "アイコン"
|
||||
@@ -3991,4 +3996,3 @@ msgstr "ズームアウト"
|
||||
#: src/libs/locale.ts
|
||||
msgid "Zulu"
|
||||
msgstr "ズールー語"
|
||||
|
||||
|
||||
@@ -8,7 +8,7 @@ msgstr ""
|
||||
"Language: km\n"
|
||||
"Project-Id-Version: reactive-resume\n"
|
||||
"Report-Msgid-Bugs-To: \n"
|
||||
"PO-Revision-Date: 2026-05-27 21:53\n"
|
||||
"PO-Revision-Date: 2026-06-01 11:26\n"
|
||||
"Last-Translator: \n"
|
||||
"Language-Team: Khmer\n"
|
||||
"Plural-Forms: nplurals=1; plural=0;\n"
|
||||
@@ -1745,8 +1745,8 @@ msgid "Hide"
|
||||
msgstr "លាក់"
|
||||
|
||||
#: src/routes/builder/$resumeId/-sidebar/right/sections/page.tsx
|
||||
msgid "Hide all icons on the resume"
|
||||
msgstr "លាក់រូបតំណាងទាំងអស់លើប្រវត្តិរូប"
|
||||
msgid "Hide Icons"
|
||||
msgstr "លាក់រូបតំណាង"
|
||||
|
||||
#. Accessible label for button that hides password in registration form
|
||||
#. Accessible label for button that hides password in reset-password form
|
||||
@@ -1766,6 +1766,10 @@ msgstr "លាក់រូបតំណាងទាំងអស់លើ
|
||||
msgid "Hide password"
|
||||
msgstr "លាក់ពាក្យសម្ងាត់"
|
||||
|
||||
#: src/routes/builder/$resumeId/-sidebar/right/sections/page.tsx
|
||||
msgid "Hide Section Icons"
|
||||
msgstr "លាក់រូបតំណាងផ្នែក"
|
||||
|
||||
#. Impact severity label in resume analysis suggestion card
|
||||
#: src/routes/builder/$resumeId/-sidebar/right/sections/resume-analysis.tsx
|
||||
msgid "High"
|
||||
@@ -1804,6 +1808,7 @@ msgid "Hungarian"
|
||||
msgstr "Hungarian"
|
||||
|
||||
#: src/components/level/combobox.tsx
|
||||
#: src/dialogs/resume/sections/custom.tsx
|
||||
#: src/routes/builder/$resumeId/-sidebar/right/sections/design.tsx
|
||||
msgid "Icon"
|
||||
msgstr "រូបតំណាង"
|
||||
@@ -3991,4 +3996,3 @@ msgstr "បង្រួម"
|
||||
#: src/libs/locale.ts
|
||||
msgid "Zulu"
|
||||
msgstr "Zulu"
|
||||
|
||||
|
||||
@@ -8,7 +8,7 @@ msgstr ""
|
||||
"Language: kn\n"
|
||||
"Project-Id-Version: reactive-resume\n"
|
||||
"Report-Msgid-Bugs-To: \n"
|
||||
"PO-Revision-Date: 2026-05-27 21:53\n"
|
||||
"PO-Revision-Date: 2026-06-01 11:26\n"
|
||||
"Last-Translator: \n"
|
||||
"Language-Team: Kannada\n"
|
||||
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
|
||||
@@ -1745,8 +1745,8 @@ msgid "Hide"
|
||||
msgstr "ಮರೆಮಾಡಿ"
|
||||
|
||||
#: src/routes/builder/$resumeId/-sidebar/right/sections/page.tsx
|
||||
msgid "Hide all icons on the resume"
|
||||
msgstr "ರೆಸ್ಯೂಮ್ನಲ್ಲಿನ ಎಲ್ಲಾ ಐಕಾನ್ಗಳನ್ನು ಮರೆಮಾಡಿ"
|
||||
msgid "Hide Icons"
|
||||
msgstr "ಐಕಾನ್ಗಳನ್ನು ಮರೆಮಾಡಿ"
|
||||
|
||||
#. Accessible label for button that hides password in registration form
|
||||
#. Accessible label for button that hides password in reset-password form
|
||||
@@ -1766,6 +1766,10 @@ msgstr "ರೆಸ್ಯೂಮ್ನಲ್ಲಿನ ಎಲ್ಲಾ ಐಕಾ
|
||||
msgid "Hide password"
|
||||
msgstr "ಪಾಸ್ವರ್ಡ್ ಮರೆಮಾಡಿ"
|
||||
|
||||
#: src/routes/builder/$resumeId/-sidebar/right/sections/page.tsx
|
||||
msgid "Hide Section Icons"
|
||||
msgstr "ವಿಭಾಗ ಐಕಾನ್ಗಳನ್ನು ಮರೆಮಾಡಿ"
|
||||
|
||||
#. Impact severity label in resume analysis suggestion card
|
||||
#: src/routes/builder/$resumeId/-sidebar/right/sections/resume-analysis.tsx
|
||||
msgid "High"
|
||||
@@ -1804,6 +1808,7 @@ msgid "Hungarian"
|
||||
msgstr "ಹಂಗೇರಿಯನ್"
|
||||
|
||||
#: src/components/level/combobox.tsx
|
||||
#: src/dialogs/resume/sections/custom.tsx
|
||||
#: src/routes/builder/$resumeId/-sidebar/right/sections/design.tsx
|
||||
msgid "Icon"
|
||||
msgstr "ಐಕಾನ್"
|
||||
@@ -3991,4 +3996,3 @@ msgstr "ಗಾತ್ರ ಕುಗ್ಗಿಸಿ"
|
||||
#: src/libs/locale.ts
|
||||
msgid "Zulu"
|
||||
msgstr "ಜೂಲೂ"
|
||||
|
||||
|
||||
@@ -8,7 +8,7 @@ msgstr ""
|
||||
"Language: ko\n"
|
||||
"Project-Id-Version: reactive-resume\n"
|
||||
"Report-Msgid-Bugs-To: \n"
|
||||
"PO-Revision-Date: 2026-05-27 21:53\n"
|
||||
"PO-Revision-Date: 2026-06-01 11:26\n"
|
||||
"Last-Translator: \n"
|
||||
"Language-Team: Korean\n"
|
||||
"Plural-Forms: nplurals=1; plural=0;\n"
|
||||
@@ -1745,8 +1745,8 @@ msgid "Hide"
|
||||
msgstr "숨기기"
|
||||
|
||||
#: src/routes/builder/$resumeId/-sidebar/right/sections/page.tsx
|
||||
msgid "Hide all icons on the resume"
|
||||
msgstr "이력서의 모든 아이콘 숨기기"
|
||||
msgid "Hide Icons"
|
||||
msgstr "아이콘 숨기기"
|
||||
|
||||
#. Accessible label for button that hides password in registration form
|
||||
#. Accessible label for button that hides password in reset-password form
|
||||
@@ -1766,6 +1766,10 @@ msgstr "이력서의 모든 아이콘 숨기기"
|
||||
msgid "Hide password"
|
||||
msgstr "비밀번호 숨기기"
|
||||
|
||||
#: src/routes/builder/$resumeId/-sidebar/right/sections/page.tsx
|
||||
msgid "Hide Section Icons"
|
||||
msgstr "섹션 아이콘 숨기기"
|
||||
|
||||
#. Impact severity label in resume analysis suggestion card
|
||||
#: src/routes/builder/$resumeId/-sidebar/right/sections/resume-analysis.tsx
|
||||
msgid "High"
|
||||
@@ -1804,6 +1808,7 @@ msgid "Hungarian"
|
||||
msgstr "헝가리어"
|
||||
|
||||
#: src/components/level/combobox.tsx
|
||||
#: src/dialogs/resume/sections/custom.tsx
|
||||
#: src/routes/builder/$resumeId/-sidebar/right/sections/design.tsx
|
||||
msgid "Icon"
|
||||
msgstr "아이콘"
|
||||
@@ -3991,4 +3996,3 @@ msgstr "축소"
|
||||
#: src/libs/locale.ts
|
||||
msgid "Zulu"
|
||||
msgstr "줄루어"
|
||||
|
||||
|
||||
@@ -8,7 +8,7 @@ msgstr ""
|
||||
"Language: lt\n"
|
||||
"Project-Id-Version: reactive-resume\n"
|
||||
"Report-Msgid-Bugs-To: \n"
|
||||
"PO-Revision-Date: 2026-05-27 21:53\n"
|
||||
"PO-Revision-Date: 2026-06-01 11:26\n"
|
||||
"Last-Translator: \n"
|
||||
"Language-Team: Lithuanian\n"
|
||||
"Plural-Forms: nplurals=4; plural=(n%10==1 && (n%100>19 || n%100<11) ? 0 : (n%10>=2 && n%10<=9) && (n%100>19 || n%100<11) ? 1 : n%1!=0 ? 2: 3);\n"
|
||||
@@ -1745,8 +1745,8 @@ msgid "Hide"
|
||||
msgstr "Paslėpti"
|
||||
|
||||
#: src/routes/builder/$resumeId/-sidebar/right/sections/page.tsx
|
||||
msgid "Hide all icons on the resume"
|
||||
msgstr "Paslėpti visas ikonas gyvenimo aprašyme"
|
||||
msgid "Hide Icons"
|
||||
msgstr "Slėpti piktogramas"
|
||||
|
||||
#. Accessible label for button that hides password in registration form
|
||||
#. Accessible label for button that hides password in reset-password form
|
||||
@@ -1766,6 +1766,10 @@ msgstr "Paslėpti visas ikonas gyvenimo aprašyme"
|
||||
msgid "Hide password"
|
||||
msgstr "Paslėpti slaptažodį"
|
||||
|
||||
#: src/routes/builder/$resumeId/-sidebar/right/sections/page.tsx
|
||||
msgid "Hide Section Icons"
|
||||
msgstr "Slėpti skyrių piktogramas"
|
||||
|
||||
#. Impact severity label in resume analysis suggestion card
|
||||
#: src/routes/builder/$resumeId/-sidebar/right/sections/resume-analysis.tsx
|
||||
msgid "High"
|
||||
@@ -1804,6 +1808,7 @@ msgid "Hungarian"
|
||||
msgstr "Vengrų"
|
||||
|
||||
#: src/components/level/combobox.tsx
|
||||
#: src/dialogs/resume/sections/custom.tsx
|
||||
#: src/routes/builder/$resumeId/-sidebar/right/sections/design.tsx
|
||||
msgid "Icon"
|
||||
msgstr "Ikona"
|
||||
@@ -3991,4 +3996,3 @@ msgstr "Tolinti"
|
||||
#: src/libs/locale.ts
|
||||
msgid "Zulu"
|
||||
msgstr "Zulų"
|
||||
|
||||
|
||||
@@ -8,7 +8,7 @@ msgstr ""
|
||||
"Language: lv\n"
|
||||
"Project-Id-Version: reactive-resume\n"
|
||||
"Report-Msgid-Bugs-To: \n"
|
||||
"PO-Revision-Date: 2026-05-27 21:53\n"
|
||||
"PO-Revision-Date: 2026-06-01 11:26\n"
|
||||
"Last-Translator: \n"
|
||||
"Language-Team: Latvian\n"
|
||||
"Plural-Forms: nplurals=3; plural=n%10==1 && n%100!=11 ? 0 : n != 0 ? 1 : 2;\n"
|
||||
@@ -1745,8 +1745,8 @@ msgid "Hide"
|
||||
msgstr "Slēpt"
|
||||
|
||||
#: src/routes/builder/$resumeId/-sidebar/right/sections/page.tsx
|
||||
msgid "Hide all icons on the resume"
|
||||
msgstr "Paslēpt visas ikonas CV"
|
||||
msgid "Hide Icons"
|
||||
msgstr "Slēpt ikonas"
|
||||
|
||||
#. Accessible label for button that hides password in registration form
|
||||
#. Accessible label for button that hides password in reset-password form
|
||||
@@ -1766,6 +1766,10 @@ msgstr "Paslēpt visas ikonas CV"
|
||||
msgid "Hide password"
|
||||
msgstr "Paslēpt paroli"
|
||||
|
||||
#: src/routes/builder/$resumeId/-sidebar/right/sections/page.tsx
|
||||
msgid "Hide Section Icons"
|
||||
msgstr "Slēpt sadaļu ikonas"
|
||||
|
||||
#. Impact severity label in resume analysis suggestion card
|
||||
#: src/routes/builder/$resumeId/-sidebar/right/sections/resume-analysis.tsx
|
||||
msgid "High"
|
||||
@@ -1804,6 +1808,7 @@ msgid "Hungarian"
|
||||
msgstr "Ungāru"
|
||||
|
||||
#: src/components/level/combobox.tsx
|
||||
#: src/dialogs/resume/sections/custom.tsx
|
||||
#: src/routes/builder/$resumeId/-sidebar/right/sections/design.tsx
|
||||
msgid "Icon"
|
||||
msgstr "Ikona"
|
||||
@@ -3991,4 +3996,3 @@ msgstr "Tālināt"
|
||||
#: src/libs/locale.ts
|
||||
msgid "Zulu"
|
||||
msgstr "Zulu"
|
||||
|
||||
|
||||
@@ -8,7 +8,7 @@ msgstr ""
|
||||
"Language: ml\n"
|
||||
"Project-Id-Version: reactive-resume\n"
|
||||
"Report-Msgid-Bugs-To: \n"
|
||||
"PO-Revision-Date: 2026-05-27 21:53\n"
|
||||
"PO-Revision-Date: 2026-06-01 11:26\n"
|
||||
"Last-Translator: \n"
|
||||
"Language-Team: Malayalam\n"
|
||||
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
|
||||
@@ -1745,8 +1745,8 @@ msgid "Hide"
|
||||
msgstr "മറയ്ക്കുക"
|
||||
|
||||
#: src/routes/builder/$resumeId/-sidebar/right/sections/page.tsx
|
||||
msgid "Hide all icons on the resume"
|
||||
msgstr "റിസ്യൂമിലെ എല്ലാ ഐക്കണുകളും മറയ്ക്കുക"
|
||||
msgid "Hide Icons"
|
||||
msgstr "ഐക്കണുകൾ മറയ്ക്കുക"
|
||||
|
||||
#. Accessible label for button that hides password in registration form
|
||||
#. Accessible label for button that hides password in reset-password form
|
||||
@@ -1766,6 +1766,10 @@ msgstr "റിസ്യൂമിലെ എല്ലാ ഐക്കണുകള
|
||||
msgid "Hide password"
|
||||
msgstr "പാസ്വേഡ് മറയ്ക്കുക"
|
||||
|
||||
#: src/routes/builder/$resumeId/-sidebar/right/sections/page.tsx
|
||||
msgid "Hide Section Icons"
|
||||
msgstr "വിഭാഗ ഐക്കണുകൾ മറയ്ക്കുക"
|
||||
|
||||
#. Impact severity label in resume analysis suggestion card
|
||||
#: src/routes/builder/$resumeId/-sidebar/right/sections/resume-analysis.tsx
|
||||
msgid "High"
|
||||
@@ -1804,6 +1808,7 @@ msgid "Hungarian"
|
||||
msgstr "ഹംഗേറിയൻ"
|
||||
|
||||
#: src/components/level/combobox.tsx
|
||||
#: src/dialogs/resume/sections/custom.tsx
|
||||
#: src/routes/builder/$resumeId/-sidebar/right/sections/design.tsx
|
||||
msgid "Icon"
|
||||
msgstr "ഐക്കൺ"
|
||||
@@ -3991,4 +3996,3 @@ msgstr "സൂം ഔട്ട് ചെയ്യുക"
|
||||
#: src/libs/locale.ts
|
||||
msgid "Zulu"
|
||||
msgstr "സൂളു"
|
||||
|
||||
|
||||
@@ -8,7 +8,7 @@ msgstr ""
|
||||
"Language: mr\n"
|
||||
"Project-Id-Version: reactive-resume\n"
|
||||
"Report-Msgid-Bugs-To: \n"
|
||||
"PO-Revision-Date: 2026-05-27 21:53\n"
|
||||
"PO-Revision-Date: 2026-06-01 11:26\n"
|
||||
"Last-Translator: \n"
|
||||
"Language-Team: Marathi\n"
|
||||
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
|
||||
@@ -1745,8 +1745,8 @@ msgid "Hide"
|
||||
msgstr "लपवा"
|
||||
|
||||
#: src/routes/builder/$resumeId/-sidebar/right/sections/page.tsx
|
||||
msgid "Hide all icons on the resume"
|
||||
msgstr "रेझ्युमेवरील सर्व आयकन्स लपवा"
|
||||
msgid "Hide Icons"
|
||||
msgstr "चिन्हे लपवा"
|
||||
|
||||
#. Accessible label for button that hides password in registration form
|
||||
#. Accessible label for button that hides password in reset-password form
|
||||
@@ -1766,6 +1766,10 @@ msgstr "रेझ्युमेवरील सर्व आयकन्स ल
|
||||
msgid "Hide password"
|
||||
msgstr "पासवर्ड लपवा"
|
||||
|
||||
#: src/routes/builder/$resumeId/-sidebar/right/sections/page.tsx
|
||||
msgid "Hide Section Icons"
|
||||
msgstr "विभाग चिन्हे लपवा"
|
||||
|
||||
#. Impact severity label in resume analysis suggestion card
|
||||
#: src/routes/builder/$resumeId/-sidebar/right/sections/resume-analysis.tsx
|
||||
msgid "High"
|
||||
@@ -1804,6 +1808,7 @@ msgid "Hungarian"
|
||||
msgstr "हंगेरीयन"
|
||||
|
||||
#: src/components/level/combobox.tsx
|
||||
#: src/dialogs/resume/sections/custom.tsx
|
||||
#: src/routes/builder/$resumeId/-sidebar/right/sections/design.tsx
|
||||
msgid "Icon"
|
||||
msgstr "आयकन"
|
||||
@@ -3991,4 +3996,3 @@ msgstr "बाहेर झूम करा"
|
||||
#: src/libs/locale.ts
|
||||
msgid "Zulu"
|
||||
msgstr "झुलू"
|
||||
|
||||
|
||||
@@ -8,7 +8,7 @@ msgstr ""
|
||||
"Language: ms\n"
|
||||
"Project-Id-Version: reactive-resume\n"
|
||||
"Report-Msgid-Bugs-To: \n"
|
||||
"PO-Revision-Date: 2026-05-27 21:53\n"
|
||||
"PO-Revision-Date: 2026-06-01 11:26\n"
|
||||
"Last-Translator: \n"
|
||||
"Language-Team: Malay\n"
|
||||
"Plural-Forms: nplurals=1; plural=0;\n"
|
||||
@@ -1745,8 +1745,8 @@ msgid "Hide"
|
||||
msgstr "Sembunyi"
|
||||
|
||||
#: src/routes/builder/$resumeId/-sidebar/right/sections/page.tsx
|
||||
msgid "Hide all icons on the resume"
|
||||
msgstr "Sembunyikan semua ikon pada resume"
|
||||
msgid "Hide Icons"
|
||||
msgstr "Sembunyikan Ikon"
|
||||
|
||||
#. Accessible label for button that hides password in registration form
|
||||
#. Accessible label for button that hides password in reset-password form
|
||||
@@ -1766,6 +1766,10 @@ msgstr "Sembunyikan semua ikon pada resume"
|
||||
msgid "Hide password"
|
||||
msgstr "Sembunyikan kata laluan"
|
||||
|
||||
#: src/routes/builder/$resumeId/-sidebar/right/sections/page.tsx
|
||||
msgid "Hide Section Icons"
|
||||
msgstr "Sembunyikan Ikon Bahagian"
|
||||
|
||||
#. Impact severity label in resume analysis suggestion card
|
||||
#: src/routes/builder/$resumeId/-sidebar/right/sections/resume-analysis.tsx
|
||||
msgid "High"
|
||||
@@ -1804,6 +1808,7 @@ msgid "Hungarian"
|
||||
msgstr "Hungary"
|
||||
|
||||
#: src/components/level/combobox.tsx
|
||||
#: src/dialogs/resume/sections/custom.tsx
|
||||
#: src/routes/builder/$resumeId/-sidebar/right/sections/design.tsx
|
||||
msgid "Icon"
|
||||
msgstr "Ikon"
|
||||
@@ -3991,4 +3996,3 @@ msgstr "Zum keluar"
|
||||
#: src/libs/locale.ts
|
||||
msgid "Zulu"
|
||||
msgstr "Zulu"
|
||||
|
||||
|
||||
@@ -8,7 +8,7 @@ msgstr ""
|
||||
"Language: ne\n"
|
||||
"Project-Id-Version: reactive-resume\n"
|
||||
"Report-Msgid-Bugs-To: \n"
|
||||
"PO-Revision-Date: 2026-05-27 21:53\n"
|
||||
"PO-Revision-Date: 2026-06-01 11:26\n"
|
||||
"Last-Translator: \n"
|
||||
"Language-Team: Nepali\n"
|
||||
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
|
||||
@@ -1745,8 +1745,8 @@ msgid "Hide"
|
||||
msgstr "ल्यুকाउनुहोस्"
|
||||
|
||||
#: src/routes/builder/$resumeId/-sidebar/right/sections/page.tsx
|
||||
msgid "Hide all icons on the resume"
|
||||
msgstr "बायोडाटाबाट सबै आइकनहरू लुकाउनुहोस्"
|
||||
msgid "Hide Icons"
|
||||
msgstr "आइकनहरू लुकाउनुहोस्"
|
||||
|
||||
#. Accessible label for button that hides password in registration form
|
||||
#. Accessible label for button that hides password in reset-password form
|
||||
@@ -1766,6 +1766,10 @@ msgstr "बायोडाटाबाट सबै आइकनहरू लु
|
||||
msgid "Hide password"
|
||||
msgstr "पासवर्ड लुकाउनुहोस्"
|
||||
|
||||
#: src/routes/builder/$resumeId/-sidebar/right/sections/page.tsx
|
||||
msgid "Hide Section Icons"
|
||||
msgstr "खण्ड आइकनहरू लुकाउनुहोस्"
|
||||
|
||||
#. Impact severity label in resume analysis suggestion card
|
||||
#: src/routes/builder/$resumeId/-sidebar/right/sections/resume-analysis.tsx
|
||||
msgid "High"
|
||||
@@ -1804,6 +1808,7 @@ msgid "Hungarian"
|
||||
msgstr "हंगेरीयाली"
|
||||
|
||||
#: src/components/level/combobox.tsx
|
||||
#: src/dialogs/resume/sections/custom.tsx
|
||||
#: src/routes/builder/$resumeId/-sidebar/right/sections/design.tsx
|
||||
msgid "Icon"
|
||||
msgstr "आइकन"
|
||||
@@ -3991,4 +3996,3 @@ msgstr "जूम आउट"
|
||||
#: src/libs/locale.ts
|
||||
msgid "Zulu"
|
||||
msgstr "जुलु"
|
||||
|
||||
|
||||
@@ -8,7 +8,7 @@ msgstr ""
|
||||
"Language: nl\n"
|
||||
"Project-Id-Version: reactive-resume\n"
|
||||
"Report-Msgid-Bugs-To: \n"
|
||||
"PO-Revision-Date: 2026-05-27 21:53\n"
|
||||
"PO-Revision-Date: 2026-06-01 11:26\n"
|
||||
"Last-Translator: \n"
|
||||
"Language-Team: Dutch\n"
|
||||
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
|
||||
@@ -1745,8 +1745,8 @@ msgid "Hide"
|
||||
msgstr "Verbergen"
|
||||
|
||||
#: src/routes/builder/$resumeId/-sidebar/right/sections/page.tsx
|
||||
msgid "Hide all icons on the resume"
|
||||
msgstr "Alle pictogrammen op het cv verbergen"
|
||||
msgid "Hide Icons"
|
||||
msgstr "Pictogrammen verbergen"
|
||||
|
||||
#. Accessible label for button that hides password in registration form
|
||||
#. Accessible label for button that hides password in reset-password form
|
||||
@@ -1766,6 +1766,10 @@ msgstr "Alle pictogrammen op het cv verbergen"
|
||||
msgid "Hide password"
|
||||
msgstr "Wachtwoord verbergen"
|
||||
|
||||
#: src/routes/builder/$resumeId/-sidebar/right/sections/page.tsx
|
||||
msgid "Hide Section Icons"
|
||||
msgstr "Sectiepictogrammen verbergen"
|
||||
|
||||
#. Impact severity label in resume analysis suggestion card
|
||||
#: src/routes/builder/$resumeId/-sidebar/right/sections/resume-analysis.tsx
|
||||
msgid "High"
|
||||
@@ -1804,6 +1808,7 @@ msgid "Hungarian"
|
||||
msgstr "Hongaars"
|
||||
|
||||
#: src/components/level/combobox.tsx
|
||||
#: src/dialogs/resume/sections/custom.tsx
|
||||
#: src/routes/builder/$resumeId/-sidebar/right/sections/design.tsx
|
||||
msgid "Icon"
|
||||
msgstr "Pictogram"
|
||||
@@ -3991,4 +3996,3 @@ msgstr "Uitzoomen"
|
||||
#: src/libs/locale.ts
|
||||
msgid "Zulu"
|
||||
msgstr "Zulu"
|
||||
|
||||
|
||||
@@ -8,7 +8,7 @@ msgstr ""
|
||||
"Language: no\n"
|
||||
"Project-Id-Version: reactive-resume\n"
|
||||
"Report-Msgid-Bugs-To: \n"
|
||||
"PO-Revision-Date: 2026-05-27 21:53\n"
|
||||
"PO-Revision-Date: 2026-06-01 11:26\n"
|
||||
"Last-Translator: \n"
|
||||
"Language-Team: Norwegian\n"
|
||||
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
|
||||
@@ -1745,8 +1745,8 @@ msgid "Hide"
|
||||
msgstr "Skjul"
|
||||
|
||||
#: src/routes/builder/$resumeId/-sidebar/right/sections/page.tsx
|
||||
msgid "Hide all icons on the resume"
|
||||
msgstr "Skjul alle ikoner på CV-en"
|
||||
msgid "Hide Icons"
|
||||
msgstr "Skjul ikoner"
|
||||
|
||||
#. Accessible label for button that hides password in registration form
|
||||
#. Accessible label for button that hides password in reset-password form
|
||||
@@ -1766,6 +1766,10 @@ msgstr "Skjul alle ikoner på CV-en"
|
||||
msgid "Hide password"
|
||||
msgstr "Skjul passord"
|
||||
|
||||
#: src/routes/builder/$resumeId/-sidebar/right/sections/page.tsx
|
||||
msgid "Hide Section Icons"
|
||||
msgstr "Skjul seksjonsikoner"
|
||||
|
||||
#. Impact severity label in resume analysis suggestion card
|
||||
#: src/routes/builder/$resumeId/-sidebar/right/sections/resume-analysis.tsx
|
||||
msgid "High"
|
||||
@@ -1804,6 +1808,7 @@ msgid "Hungarian"
|
||||
msgstr "Ungarsk"
|
||||
|
||||
#: src/components/level/combobox.tsx
|
||||
#: src/dialogs/resume/sections/custom.tsx
|
||||
#: src/routes/builder/$resumeId/-sidebar/right/sections/design.tsx
|
||||
msgid "Icon"
|
||||
msgstr "Ikon"
|
||||
@@ -3991,4 +3996,3 @@ msgstr "Zoom ut"
|
||||
#: src/libs/locale.ts
|
||||
msgid "Zulu"
|
||||
msgstr "Zulu"
|
||||
|
||||
|
||||
@@ -8,7 +8,7 @@ msgstr ""
|
||||
"Language: or\n"
|
||||
"Project-Id-Version: reactive-resume\n"
|
||||
"Report-Msgid-Bugs-To: \n"
|
||||
"PO-Revision-Date: 2026-05-27 21:53\n"
|
||||
"PO-Revision-Date: 2026-06-01 11:26\n"
|
||||
"Last-Translator: \n"
|
||||
"Language-Team: Odia\n"
|
||||
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
|
||||
@@ -1745,8 +1745,8 @@ msgid "Hide"
|
||||
msgstr "ଲୁଚାନ୍ତୁ"
|
||||
|
||||
#: src/routes/builder/$resumeId/-sidebar/right/sections/page.tsx
|
||||
msgid "Hide all icons on the resume"
|
||||
msgstr "ରେଜ୍ୟୁମେର ସମସ୍ତ ଆଇକନ୍ ଲୁଚାନ୍ତୁ"
|
||||
msgid "Hide Icons"
|
||||
msgstr "ଚିତ୍ରସଂକେତଗୁଡିକୁ ଲୁଚାନ୍ତୁ"
|
||||
|
||||
#. Accessible label for button that hides password in registration form
|
||||
#. Accessible label for button that hides password in reset-password form
|
||||
@@ -1766,6 +1766,10 @@ msgstr "ରେଜ୍ୟୁମେର ସମସ୍ତ ଆଇକନ୍ ଲୁଚା
|
||||
msgid "Hide password"
|
||||
msgstr "ପାସୱାର୍ଡ ଲୁଚାନ୍ତୁ"
|
||||
|
||||
#: src/routes/builder/$resumeId/-sidebar/right/sections/page.tsx
|
||||
msgid "Hide Section Icons"
|
||||
msgstr "ବିଭାଗ ଆଇକନଗୁଡ଼ିକୁ ଲୁଚାନ୍ତୁ"
|
||||
|
||||
#. Impact severity label in resume analysis suggestion card
|
||||
#: src/routes/builder/$resumeId/-sidebar/right/sections/resume-analysis.tsx
|
||||
msgid "High"
|
||||
@@ -1804,6 +1808,7 @@ msgid "Hungarian"
|
||||
msgstr "ହଙ୍ଗେରିଆନ୍"
|
||||
|
||||
#: src/components/level/combobox.tsx
|
||||
#: src/dialogs/resume/sections/custom.tsx
|
||||
#: src/routes/builder/$resumeId/-sidebar/right/sections/design.tsx
|
||||
msgid "Icon"
|
||||
msgstr "ଆଇକନ୍"
|
||||
@@ -3991,4 +3996,3 @@ msgstr "ଜୁମ୍ ଆଉଟ୍ କରନ୍ତୁ"
|
||||
#: src/libs/locale.ts
|
||||
msgid "Zulu"
|
||||
msgstr "ଜୁଲୁ"
|
||||
|
||||
|
||||
@@ -8,7 +8,7 @@ msgstr ""
|
||||
"Language: pl\n"
|
||||
"Project-Id-Version: reactive-resume\n"
|
||||
"Report-Msgid-Bugs-To: \n"
|
||||
"PO-Revision-Date: 2026-05-27 21:53\n"
|
||||
"PO-Revision-Date: 2026-06-01 11:26\n"
|
||||
"Last-Translator: \n"
|
||||
"Language-Team: Polish\n"
|
||||
"Plural-Forms: nplurals=4; plural=(n==1 ? 0 : (n%10>=2 && n%10<=4) && (n%100<12 || n%100>14) ? 1 : n!=1 && (n%10>=0 && n%10<=1) || (n%10>=5 && n%10<=9) || (n%100>=12 && n%100<=14) ? 2 : 3);\n"
|
||||
@@ -1745,8 +1745,8 @@ msgid "Hide"
|
||||
msgstr "Ukryj"
|
||||
|
||||
#: src/routes/builder/$resumeId/-sidebar/right/sections/page.tsx
|
||||
msgid "Hide all icons on the resume"
|
||||
msgstr "Ukryj wszystkie ikony w CV"
|
||||
msgid "Hide Icons"
|
||||
msgstr "Ukryj ikony"
|
||||
|
||||
#. Accessible label for button that hides password in registration form
|
||||
#. Accessible label for button that hides password in reset-password form
|
||||
@@ -1766,6 +1766,10 @@ msgstr "Ukryj wszystkie ikony w CV"
|
||||
msgid "Hide password"
|
||||
msgstr "Proszę ukryć hasło"
|
||||
|
||||
#: src/routes/builder/$resumeId/-sidebar/right/sections/page.tsx
|
||||
msgid "Hide Section Icons"
|
||||
msgstr "Ukryj ikony sekcji"
|
||||
|
||||
#. Impact severity label in resume analysis suggestion card
|
||||
#: src/routes/builder/$resumeId/-sidebar/right/sections/resume-analysis.tsx
|
||||
msgid "High"
|
||||
@@ -1804,6 +1808,7 @@ msgid "Hungarian"
|
||||
msgstr "Węgierski"
|
||||
|
||||
#: src/components/level/combobox.tsx
|
||||
#: src/dialogs/resume/sections/custom.tsx
|
||||
#: src/routes/builder/$resumeId/-sidebar/right/sections/design.tsx
|
||||
msgid "Icon"
|
||||
msgstr "Ikona"
|
||||
@@ -3991,4 +3996,3 @@ msgstr "Pomniejsz"
|
||||
#: src/libs/locale.ts
|
||||
msgid "Zulu"
|
||||
msgstr "Zulu"
|
||||
|
||||
|
||||
@@ -8,7 +8,7 @@ msgstr ""
|
||||
"Language: pt\n"
|
||||
"Project-Id-Version: reactive-resume\n"
|
||||
"Report-Msgid-Bugs-To: \n"
|
||||
"PO-Revision-Date: 2026-05-27 21:53\n"
|
||||
"PO-Revision-Date: 2026-06-01 11:26\n"
|
||||
"Last-Translator: \n"
|
||||
"Language-Team: Portuguese, Brazilian\n"
|
||||
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
|
||||
@@ -1745,8 +1745,8 @@ msgid "Hide"
|
||||
msgstr "Ocultar"
|
||||
|
||||
#: src/routes/builder/$resumeId/-sidebar/right/sections/page.tsx
|
||||
msgid "Hide all icons on the resume"
|
||||
msgstr "Ocultar todos os ícones no currículo"
|
||||
msgid "Hide Icons"
|
||||
msgstr "Ocultar ícones"
|
||||
|
||||
#. Accessible label for button that hides password in registration form
|
||||
#. Accessible label for button that hides password in reset-password form
|
||||
@@ -1766,6 +1766,10 @@ msgstr "Ocultar todos os ícones no currículo"
|
||||
msgid "Hide password"
|
||||
msgstr "Ocultar senha"
|
||||
|
||||
#: src/routes/builder/$resumeId/-sidebar/right/sections/page.tsx
|
||||
msgid "Hide Section Icons"
|
||||
msgstr "Ocultar ícones de seção"
|
||||
|
||||
#. Impact severity label in resume analysis suggestion card
|
||||
#: src/routes/builder/$resumeId/-sidebar/right/sections/resume-analysis.tsx
|
||||
msgid "High"
|
||||
@@ -1804,6 +1808,7 @@ msgid "Hungarian"
|
||||
msgstr "Húngaro"
|
||||
|
||||
#: src/components/level/combobox.tsx
|
||||
#: src/dialogs/resume/sections/custom.tsx
|
||||
#: src/routes/builder/$resumeId/-sidebar/right/sections/design.tsx
|
||||
msgid "Icon"
|
||||
msgstr "Ícone"
|
||||
@@ -3991,4 +3996,3 @@ msgstr "Diminuir zoom"
|
||||
#: src/libs/locale.ts
|
||||
msgid "Zulu"
|
||||
msgstr "Zulu"
|
||||
|
||||
|
||||
@@ -8,7 +8,7 @@ msgstr ""
|
||||
"Language: pt\n"
|
||||
"Project-Id-Version: reactive-resume\n"
|
||||
"Report-Msgid-Bugs-To: \n"
|
||||
"PO-Revision-Date: 2026-05-27 21:53\n"
|
||||
"PO-Revision-Date: 2026-06-01 11:26\n"
|
||||
"Last-Translator: \n"
|
||||
"Language-Team: Portuguese\n"
|
||||
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
|
||||
@@ -1745,8 +1745,8 @@ msgid "Hide"
|
||||
msgstr "Ocultar"
|
||||
|
||||
#: src/routes/builder/$resumeId/-sidebar/right/sections/page.tsx
|
||||
msgid "Hide all icons on the resume"
|
||||
msgstr "Ocultar todos os ícones no currículo"
|
||||
msgid "Hide Icons"
|
||||
msgstr "Ocultar ícones"
|
||||
|
||||
#. Accessible label for button that hides password in registration form
|
||||
#. Accessible label for button that hides password in reset-password form
|
||||
@@ -1766,6 +1766,10 @@ msgstr "Ocultar todos os ícones no currículo"
|
||||
msgid "Hide password"
|
||||
msgstr "Ocultar palavra-passe"
|
||||
|
||||
#: src/routes/builder/$resumeId/-sidebar/right/sections/page.tsx
|
||||
msgid "Hide Section Icons"
|
||||
msgstr "Ocultar ícones de secção"
|
||||
|
||||
#. Impact severity label in resume analysis suggestion card
|
||||
#: src/routes/builder/$resumeId/-sidebar/right/sections/resume-analysis.tsx
|
||||
msgid "High"
|
||||
@@ -1804,6 +1808,7 @@ msgid "Hungarian"
|
||||
msgstr "Húngaro"
|
||||
|
||||
#: src/components/level/combobox.tsx
|
||||
#: src/dialogs/resume/sections/custom.tsx
|
||||
#: src/routes/builder/$resumeId/-sidebar/right/sections/design.tsx
|
||||
msgid "Icon"
|
||||
msgstr "Ícone"
|
||||
@@ -3991,4 +3996,3 @@ msgstr "Afastar"
|
||||
#: src/libs/locale.ts
|
||||
msgid "Zulu"
|
||||
msgstr "Zulu"
|
||||
|
||||
|
||||
@@ -8,7 +8,7 @@ msgstr ""
|
||||
"Language: ro\n"
|
||||
"Project-Id-Version: reactive-resume\n"
|
||||
"Report-Msgid-Bugs-To: \n"
|
||||
"PO-Revision-Date: 2026-05-27 21:53\n"
|
||||
"PO-Revision-Date: 2026-06-01 11:26\n"
|
||||
"Last-Translator: \n"
|
||||
"Language-Team: Romanian\n"
|
||||
"Plural-Forms: nplurals=3; plural=(n==1 ? 0 : (n==0 || (n%100>0 && n%100<20)) ? 1 : 2);\n"
|
||||
@@ -1745,8 +1745,8 @@ msgid "Hide"
|
||||
msgstr "Ascunde"
|
||||
|
||||
#: src/routes/builder/$resumeId/-sidebar/right/sections/page.tsx
|
||||
msgid "Hide all icons on the resume"
|
||||
msgstr "Ascunde toate iconițele de pe CV"
|
||||
msgid "Hide Icons"
|
||||
msgstr "Ascunde pictogramele"
|
||||
|
||||
#. Accessible label for button that hides password in registration form
|
||||
#. Accessible label for button that hides password in reset-password form
|
||||
@@ -1766,6 +1766,10 @@ msgstr "Ascunde toate iconițele de pe CV"
|
||||
msgid "Hide password"
|
||||
msgstr "Ascundeți parola"
|
||||
|
||||
#: src/routes/builder/$resumeId/-sidebar/right/sections/page.tsx
|
||||
msgid "Hide Section Icons"
|
||||
msgstr "Ascundeți pictogramele secțiunii"
|
||||
|
||||
#. Impact severity label in resume analysis suggestion card
|
||||
#: src/routes/builder/$resumeId/-sidebar/right/sections/resume-analysis.tsx
|
||||
msgid "High"
|
||||
@@ -1804,6 +1808,7 @@ msgid "Hungarian"
|
||||
msgstr "Maghiară"
|
||||
|
||||
#: src/components/level/combobox.tsx
|
||||
#: src/dialogs/resume/sections/custom.tsx
|
||||
#: src/routes/builder/$resumeId/-sidebar/right/sections/design.tsx
|
||||
msgid "Icon"
|
||||
msgstr "Iconiță"
|
||||
@@ -3991,4 +3996,3 @@ msgstr "Micșorează"
|
||||
#: src/libs/locale.ts
|
||||
msgid "Zulu"
|
||||
msgstr "Zulu"
|
||||
|
||||
|
||||
@@ -8,7 +8,7 @@ msgstr ""
|
||||
"Language: ru\n"
|
||||
"Project-Id-Version: reactive-resume\n"
|
||||
"Report-Msgid-Bugs-To: \n"
|
||||
"PO-Revision-Date: 2026-05-27 21:53\n"
|
||||
"PO-Revision-Date: 2026-06-01 11:26\n"
|
||||
"Last-Translator: \n"
|
||||
"Language-Team: Russian\n"
|
||||
"Plural-Forms: nplurals=4; plural=((n%10==1 && n%100!=11) ? 0 : ((n%10 >= 2 && n%10 <=4 && (n%100 < 12 || n%100 > 14)) ? 1 : ((n%10 == 0 || (n%10 >= 5 && n%10 <=9)) || (n%100 >= 11 && n%100 <= 14)) ? 2 : 3));\n"
|
||||
@@ -1745,8 +1745,8 @@ msgid "Hide"
|
||||
msgstr "Скрыть"
|
||||
|
||||
#: src/routes/builder/$resumeId/-sidebar/right/sections/page.tsx
|
||||
msgid "Hide all icons on the resume"
|
||||
msgstr "Скрыть все иконки в резюме"
|
||||
msgid "Hide Icons"
|
||||
msgstr "Скрыть значки"
|
||||
|
||||
#. Accessible label for button that hides password in registration form
|
||||
#. Accessible label for button that hides password in reset-password form
|
||||
@@ -1766,6 +1766,10 @@ msgstr "Скрыть все иконки в резюме"
|
||||
msgid "Hide password"
|
||||
msgstr "Скрыть пароль"
|
||||
|
||||
#: src/routes/builder/$resumeId/-sidebar/right/sections/page.tsx
|
||||
msgid "Hide Section Icons"
|
||||
msgstr "Скрыть значки разделов"
|
||||
|
||||
#. Impact severity label in resume analysis suggestion card
|
||||
#: src/routes/builder/$resumeId/-sidebar/right/sections/resume-analysis.tsx
|
||||
msgid "High"
|
||||
@@ -1804,6 +1808,7 @@ msgid "Hungarian"
|
||||
msgstr "Венгерский"
|
||||
|
||||
#: src/components/level/combobox.tsx
|
||||
#: src/dialogs/resume/sections/custom.tsx
|
||||
#: src/routes/builder/$resumeId/-sidebar/right/sections/design.tsx
|
||||
msgid "Icon"
|
||||
msgstr "Иконка"
|
||||
@@ -3991,4 +3996,3 @@ msgstr "Уменьшить"
|
||||
#: src/libs/locale.ts
|
||||
msgid "Zulu"
|
||||
msgstr "Зулу"
|
||||
|
||||
|
||||
@@ -8,7 +8,7 @@ msgstr ""
|
||||
"Language: sk\n"
|
||||
"Project-Id-Version: reactive-resume\n"
|
||||
"Report-Msgid-Bugs-To: \n"
|
||||
"PO-Revision-Date: 2026-05-27 21:53\n"
|
||||
"PO-Revision-Date: 2026-06-01 11:26\n"
|
||||
"Last-Translator: \n"
|
||||
"Language-Team: Slovak\n"
|
||||
"Plural-Forms: nplurals=4; plural=(n==1) ? 0 : (n>=2 && n<=4) ? 1 : 3;\n"
|
||||
@@ -1745,8 +1745,8 @@ msgid "Hide"
|
||||
msgstr "Skryť"
|
||||
|
||||
#: src/routes/builder/$resumeId/-sidebar/right/sections/page.tsx
|
||||
msgid "Hide all icons on the resume"
|
||||
msgstr "Skryť všetky ikony v životopise"
|
||||
msgid "Hide Icons"
|
||||
msgstr "Skryť ikony"
|
||||
|
||||
#. Accessible label for button that hides password in registration form
|
||||
#. Accessible label for button that hides password in reset-password form
|
||||
@@ -1766,6 +1766,10 @@ msgstr "Skryť všetky ikony v životopise"
|
||||
msgid "Hide password"
|
||||
msgstr "Skryť heslo"
|
||||
|
||||
#: src/routes/builder/$resumeId/-sidebar/right/sections/page.tsx
|
||||
msgid "Hide Section Icons"
|
||||
msgstr "Skryť ikony sekcií"
|
||||
|
||||
#. Impact severity label in resume analysis suggestion card
|
||||
#: src/routes/builder/$resumeId/-sidebar/right/sections/resume-analysis.tsx
|
||||
msgid "High"
|
||||
@@ -1804,6 +1808,7 @@ msgid "Hungarian"
|
||||
msgstr "Maďarčina"
|
||||
|
||||
#: src/components/level/combobox.tsx
|
||||
#: src/dialogs/resume/sections/custom.tsx
|
||||
#: src/routes/builder/$resumeId/-sidebar/right/sections/design.tsx
|
||||
msgid "Icon"
|
||||
msgstr "Ikona"
|
||||
@@ -3991,4 +3996,3 @@ msgstr "Oddialiť"
|
||||
#: src/libs/locale.ts
|
||||
msgid "Zulu"
|
||||
msgstr "Zulu"
|
||||
|
||||
|
||||
@@ -8,7 +8,7 @@ msgstr ""
|
||||
"Language: sl\n"
|
||||
"Project-Id-Version: reactive-resume\n"
|
||||
"Report-Msgid-Bugs-To: \n"
|
||||
"PO-Revision-Date: 2026-05-27 21:53\n"
|
||||
"PO-Revision-Date: 2026-06-01 11:26\n"
|
||||
"Last-Translator: \n"
|
||||
"Language-Team: Slovenian\n"
|
||||
"Plural-Forms: nplurals=4; plural=n%100==1 ? 0 : n%100==2 ? 1 : n%100==3 || n%100==4 ? 2 : 3;\n"
|
||||
@@ -1745,8 +1745,8 @@ msgid "Hide"
|
||||
msgstr "Skrij"
|
||||
|
||||
#: src/routes/builder/$resumeId/-sidebar/right/sections/page.tsx
|
||||
msgid "Hide all icons on the resume"
|
||||
msgstr "Skrij vse ikone na življenjepisu"
|
||||
msgid "Hide Icons"
|
||||
msgstr "Skrij ikone"
|
||||
|
||||
#. Accessible label for button that hides password in registration form
|
||||
#. Accessible label for button that hides password in reset-password form
|
||||
@@ -1766,6 +1766,10 @@ msgstr "Skrij vse ikone na življenjepisu"
|
||||
msgid "Hide password"
|
||||
msgstr "Skrijte geslo"
|
||||
|
||||
#: src/routes/builder/$resumeId/-sidebar/right/sections/page.tsx
|
||||
msgid "Hide Section Icons"
|
||||
msgstr "Skrij ikone razdelkov"
|
||||
|
||||
#. Impact severity label in resume analysis suggestion card
|
||||
#: src/routes/builder/$resumeId/-sidebar/right/sections/resume-analysis.tsx
|
||||
msgid "High"
|
||||
@@ -1804,6 +1808,7 @@ msgid "Hungarian"
|
||||
msgstr "Madžarščina"
|
||||
|
||||
#: src/components/level/combobox.tsx
|
||||
#: src/dialogs/resume/sections/custom.tsx
|
||||
#: src/routes/builder/$resumeId/-sidebar/right/sections/design.tsx
|
||||
msgid "Icon"
|
||||
msgstr "Ikona"
|
||||
@@ -3991,4 +3996,3 @@ msgstr "Oddalji"
|
||||
#: src/libs/locale.ts
|
||||
msgid "Zulu"
|
||||
msgstr "Zuluščina"
|
||||
|
||||
|
||||
@@ -8,7 +8,7 @@ msgstr ""
|
||||
"Language: sq\n"
|
||||
"Project-Id-Version: reactive-resume\n"
|
||||
"Report-Msgid-Bugs-To: \n"
|
||||
"PO-Revision-Date: 2026-05-27 21:53\n"
|
||||
"PO-Revision-Date: 2026-06-01 11:26\n"
|
||||
"Last-Translator: \n"
|
||||
"Language-Team: Albanian\n"
|
||||
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
|
||||
@@ -1745,8 +1745,8 @@ msgid "Hide"
|
||||
msgstr "Fshih"
|
||||
|
||||
#: src/routes/builder/$resumeId/-sidebar/right/sections/page.tsx
|
||||
msgid "Hide all icons on the resume"
|
||||
msgstr "Fshih të gjitha ikonat në CV"
|
||||
msgid "Hide Icons"
|
||||
msgstr "Fshih ikonat"
|
||||
|
||||
#. Accessible label for button that hides password in registration form
|
||||
#. Accessible label for button that hides password in reset-password form
|
||||
@@ -1766,6 +1766,10 @@ msgstr "Fshih të gjitha ikonat në CV"
|
||||
msgid "Hide password"
|
||||
msgstr "Fshi fjalëkalimin"
|
||||
|
||||
#: src/routes/builder/$resumeId/-sidebar/right/sections/page.tsx
|
||||
msgid "Hide Section Icons"
|
||||
msgstr "Fshih ikonat e seksionit"
|
||||
|
||||
#. Impact severity label in resume analysis suggestion card
|
||||
#: src/routes/builder/$resumeId/-sidebar/right/sections/resume-analysis.tsx
|
||||
msgid "High"
|
||||
@@ -1804,6 +1808,7 @@ msgid "Hungarian"
|
||||
msgstr "Hungarisht"
|
||||
|
||||
#: src/components/level/combobox.tsx
|
||||
#: src/dialogs/resume/sections/custom.tsx
|
||||
#: src/routes/builder/$resumeId/-sidebar/right/sections/design.tsx
|
||||
msgid "Icon"
|
||||
msgstr "Ikona"
|
||||
@@ -3991,4 +3996,3 @@ msgstr "Zvogëlo"
|
||||
#: src/libs/locale.ts
|
||||
msgid "Zulu"
|
||||
msgstr "Zulu"
|
||||
|
||||
|
||||
@@ -8,7 +8,7 @@ msgstr ""
|
||||
"Language: sr\n"
|
||||
"Project-Id-Version: reactive-resume\n"
|
||||
"Report-Msgid-Bugs-To: \n"
|
||||
"PO-Revision-Date: 2026-05-27 21:53\n"
|
||||
"PO-Revision-Date: 2026-06-01 11:26\n"
|
||||
"Last-Translator: \n"
|
||||
"Language-Team: Serbian (Cyrillic)\n"
|
||||
"Plural-Forms: nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2);\n"
|
||||
@@ -1745,8 +1745,8 @@ msgid "Hide"
|
||||
msgstr "Сакриј"
|
||||
|
||||
#: src/routes/builder/$resumeId/-sidebar/right/sections/page.tsx
|
||||
msgid "Hide all icons on the resume"
|
||||
msgstr "Сакриј све иконице на резимеу"
|
||||
msgid "Hide Icons"
|
||||
msgstr "Сакриј иконе"
|
||||
|
||||
#. Accessible label for button that hides password in registration form
|
||||
#. Accessible label for button that hides password in reset-password form
|
||||
@@ -1766,6 +1766,10 @@ msgstr "Сакриј све иконице на резимеу"
|
||||
msgid "Hide password"
|
||||
msgstr "Сакриј лозинку"
|
||||
|
||||
#: src/routes/builder/$resumeId/-sidebar/right/sections/page.tsx
|
||||
msgid "Hide Section Icons"
|
||||
msgstr "Сакриј иконе одељака"
|
||||
|
||||
#. Impact severity label in resume analysis suggestion card
|
||||
#: src/routes/builder/$resumeId/-sidebar/right/sections/resume-analysis.tsx
|
||||
msgid "High"
|
||||
@@ -1804,6 +1808,7 @@ msgid "Hungarian"
|
||||
msgstr "Мађарски"
|
||||
|
||||
#: src/components/level/combobox.tsx
|
||||
#: src/dialogs/resume/sections/custom.tsx
|
||||
#: src/routes/builder/$resumeId/-sidebar/right/sections/design.tsx
|
||||
msgid "Icon"
|
||||
msgstr "Иконица"
|
||||
@@ -3991,4 +3996,3 @@ msgstr "Умањи"
|
||||
#: src/libs/locale.ts
|
||||
msgid "Zulu"
|
||||
msgstr "Зулу"
|
||||
|
||||
|
||||
@@ -8,7 +8,7 @@ msgstr ""
|
||||
"Language: sv\n"
|
||||
"Project-Id-Version: reactive-resume\n"
|
||||
"Report-Msgid-Bugs-To: \n"
|
||||
"PO-Revision-Date: 2026-05-27 21:53\n"
|
||||
"PO-Revision-Date: 2026-06-01 11:26\n"
|
||||
"Last-Translator: \n"
|
||||
"Language-Team: Swedish\n"
|
||||
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
|
||||
@@ -1745,8 +1745,8 @@ msgid "Hide"
|
||||
msgstr "Dölj"
|
||||
|
||||
#: src/routes/builder/$resumeId/-sidebar/right/sections/page.tsx
|
||||
msgid "Hide all icons on the resume"
|
||||
msgstr "Dölj alla ikoner på CV:t"
|
||||
msgid "Hide Icons"
|
||||
msgstr "Dölj ikoner"
|
||||
|
||||
#. Accessible label for button that hides password in registration form
|
||||
#. Accessible label for button that hides password in reset-password form
|
||||
@@ -1766,6 +1766,10 @@ msgstr "Dölj alla ikoner på CV:t"
|
||||
msgid "Hide password"
|
||||
msgstr "Dölj lösenord"
|
||||
|
||||
#: src/routes/builder/$resumeId/-sidebar/right/sections/page.tsx
|
||||
msgid "Hide Section Icons"
|
||||
msgstr "Dölj sektionsikoner"
|
||||
|
||||
#. Impact severity label in resume analysis suggestion card
|
||||
#: src/routes/builder/$resumeId/-sidebar/right/sections/resume-analysis.tsx
|
||||
msgid "High"
|
||||
@@ -1804,6 +1808,7 @@ msgid "Hungarian"
|
||||
msgstr "Ungerska"
|
||||
|
||||
#: src/components/level/combobox.tsx
|
||||
#: src/dialogs/resume/sections/custom.tsx
|
||||
#: src/routes/builder/$resumeId/-sidebar/right/sections/design.tsx
|
||||
msgid "Icon"
|
||||
msgstr "Ikon"
|
||||
@@ -3991,4 +3996,3 @@ msgstr "Zooma ut"
|
||||
#: src/libs/locale.ts
|
||||
msgid "Zulu"
|
||||
msgstr "Zulu"
|
||||
|
||||
|
||||
@@ -8,7 +8,7 @@ msgstr ""
|
||||
"Language: ta\n"
|
||||
"Project-Id-Version: reactive-resume\n"
|
||||
"Report-Msgid-Bugs-To: \n"
|
||||
"PO-Revision-Date: 2026-05-27 21:53\n"
|
||||
"PO-Revision-Date: 2026-06-01 11:26\n"
|
||||
"Last-Translator: \n"
|
||||
"Language-Team: Tamil\n"
|
||||
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
|
||||
@@ -1745,8 +1745,8 @@ msgid "Hide"
|
||||
msgstr "மறை"
|
||||
|
||||
#: src/routes/builder/$resumeId/-sidebar/right/sections/page.tsx
|
||||
msgid "Hide all icons on the resume"
|
||||
msgstr "ரெஸ்யூமியில் உள்ள அனைத்து ஐகான்களையும் மறைக்கவும்"
|
||||
msgid "Hide Icons"
|
||||
msgstr "சின்னங்களை மறைக்கவும்"
|
||||
|
||||
#. Accessible label for button that hides password in registration form
|
||||
#. Accessible label for button that hides password in reset-password form
|
||||
@@ -1766,6 +1766,10 @@ msgstr "ரெஸ்யூமியில் உள்ள அனைத்து
|
||||
msgid "Hide password"
|
||||
msgstr "கடவுச்சொல்லை மறை"
|
||||
|
||||
#: src/routes/builder/$resumeId/-sidebar/right/sections/page.tsx
|
||||
msgid "Hide Section Icons"
|
||||
msgstr "பிரிவு சின்னங்களை மறைக்கவும்"
|
||||
|
||||
#. Impact severity label in resume analysis suggestion card
|
||||
#: src/routes/builder/$resumeId/-sidebar/right/sections/resume-analysis.tsx
|
||||
msgid "High"
|
||||
@@ -1804,6 +1808,7 @@ msgid "Hungarian"
|
||||
msgstr "ஹங்கேரியன்"
|
||||
|
||||
#: src/components/level/combobox.tsx
|
||||
#: src/dialogs/resume/sections/custom.tsx
|
||||
#: src/routes/builder/$resumeId/-sidebar/right/sections/design.tsx
|
||||
msgid "Icon"
|
||||
msgstr "ஐகான்"
|
||||
@@ -3991,4 +3996,3 @@ msgstr "சிறிதாக்கு"
|
||||
#: src/libs/locale.ts
|
||||
msgid "Zulu"
|
||||
msgstr "ஜூலு"
|
||||
|
||||
|
||||
@@ -8,7 +8,7 @@ msgstr ""
|
||||
"Language: te\n"
|
||||
"Project-Id-Version: reactive-resume\n"
|
||||
"Report-Msgid-Bugs-To: \n"
|
||||
"PO-Revision-Date: 2026-05-27 21:53\n"
|
||||
"PO-Revision-Date: 2026-06-01 11:26\n"
|
||||
"Last-Translator: \n"
|
||||
"Language-Team: Telugu\n"
|
||||
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
|
||||
@@ -1745,8 +1745,8 @@ msgid "Hide"
|
||||
msgstr "హైడ్"
|
||||
|
||||
#: src/routes/builder/$resumeId/-sidebar/right/sections/page.tsx
|
||||
msgid "Hide all icons on the resume"
|
||||
msgstr "జీవన చరిత్రపై అన్ని చిహ్నాలను దాచండి"
|
||||
msgid "Hide Icons"
|
||||
msgstr "చిహ్నాలను దాచండి"
|
||||
|
||||
#. Accessible label for button that hides password in registration form
|
||||
#. Accessible label for button that hides password in reset-password form
|
||||
@@ -1766,6 +1766,10 @@ msgstr "జీవన చరిత్రపై అన్ని చిహ్నా
|
||||
msgid "Hide password"
|
||||
msgstr "పాస్వర్డ్ దాచు"
|
||||
|
||||
#: src/routes/builder/$resumeId/-sidebar/right/sections/page.tsx
|
||||
msgid "Hide Section Icons"
|
||||
msgstr "విభాగం చిహ్నాలను దాచండి"
|
||||
|
||||
#. Impact severity label in resume analysis suggestion card
|
||||
#: src/routes/builder/$resumeId/-sidebar/right/sections/resume-analysis.tsx
|
||||
msgid "High"
|
||||
@@ -1804,6 +1808,7 @@ msgid "Hungarian"
|
||||
msgstr "హంగేరియన్"
|
||||
|
||||
#: src/components/level/combobox.tsx
|
||||
#: src/dialogs/resume/sections/custom.tsx
|
||||
#: src/routes/builder/$resumeId/-sidebar/right/sections/design.tsx
|
||||
msgid "Icon"
|
||||
msgstr "ఐకాన్"
|
||||
@@ -3991,4 +3996,3 @@ msgstr "జూమ్ అవుట్ చేయండి"
|
||||
#: src/libs/locale.ts
|
||||
msgid "Zulu"
|
||||
msgstr "జులు"
|
||||
|
||||
|
||||
@@ -8,7 +8,7 @@ msgstr ""
|
||||
"Language: th\n"
|
||||
"Project-Id-Version: reactive-resume\n"
|
||||
"Report-Msgid-Bugs-To: \n"
|
||||
"PO-Revision-Date: 2026-05-27 21:53\n"
|
||||
"PO-Revision-Date: 2026-06-01 11:26\n"
|
||||
"Last-Translator: \n"
|
||||
"Language-Team: Thai\n"
|
||||
"Plural-Forms: nplurals=1; plural=0;\n"
|
||||
@@ -1745,8 +1745,8 @@ msgid "Hide"
|
||||
msgstr "ซ่อน"
|
||||
|
||||
#: src/routes/builder/$resumeId/-sidebar/right/sections/page.tsx
|
||||
msgid "Hide all icons on the resume"
|
||||
msgstr "ซ่อนไอคอนทั้งหมดในเรซูเม่"
|
||||
msgid "Hide Icons"
|
||||
msgstr "ซ่อนไอคอน"
|
||||
|
||||
#. Accessible label for button that hides password in registration form
|
||||
#. Accessible label for button that hides password in reset-password form
|
||||
@@ -1766,6 +1766,10 @@ msgstr "ซ่อนไอคอนทั้งหมดในเรซูเม
|
||||
msgid "Hide password"
|
||||
msgstr "ซ่อนรหัสผ่าน"
|
||||
|
||||
#: src/routes/builder/$resumeId/-sidebar/right/sections/page.tsx
|
||||
msgid "Hide Section Icons"
|
||||
msgstr "ซ่อนไอคอนส่วนต่างๆ"
|
||||
|
||||
#. Impact severity label in resume analysis suggestion card
|
||||
#: src/routes/builder/$resumeId/-sidebar/right/sections/resume-analysis.tsx
|
||||
msgid "High"
|
||||
@@ -1804,6 +1808,7 @@ msgid "Hungarian"
|
||||
msgstr "ฮังการี"
|
||||
|
||||
#: src/components/level/combobox.tsx
|
||||
#: src/dialogs/resume/sections/custom.tsx
|
||||
#: src/routes/builder/$resumeId/-sidebar/right/sections/design.tsx
|
||||
msgid "Icon"
|
||||
msgstr "ไอคอน"
|
||||
@@ -3991,4 +3996,3 @@ msgstr "ซูมออก"
|
||||
#: src/libs/locale.ts
|
||||
msgid "Zulu"
|
||||
msgstr "ซูลู"
|
||||
|
||||
|
||||
@@ -8,7 +8,7 @@ msgstr ""
|
||||
"Language: tr\n"
|
||||
"Project-Id-Version: reactive-resume\n"
|
||||
"Report-Msgid-Bugs-To: \n"
|
||||
"PO-Revision-Date: 2026-05-27 21:53\n"
|
||||
"PO-Revision-Date: 2026-06-01 11:26\n"
|
||||
"Last-Translator: \n"
|
||||
"Language-Team: Turkish\n"
|
||||
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
|
||||
@@ -1745,8 +1745,8 @@ msgid "Hide"
|
||||
msgstr "Gizle"
|
||||
|
||||
#: src/routes/builder/$resumeId/-sidebar/right/sections/page.tsx
|
||||
msgid "Hide all icons on the resume"
|
||||
msgstr "Özgeçmişteki tüm simgeleri gizle"
|
||||
msgid "Hide Icons"
|
||||
msgstr "Simgeleri Gizle"
|
||||
|
||||
#. Accessible label for button that hides password in registration form
|
||||
#. Accessible label for button that hides password in reset-password form
|
||||
@@ -1766,6 +1766,10 @@ msgstr "Özgeçmişteki tüm simgeleri gizle"
|
||||
msgid "Hide password"
|
||||
msgstr "Şifreyi gizle"
|
||||
|
||||
#: src/routes/builder/$resumeId/-sidebar/right/sections/page.tsx
|
||||
msgid "Hide Section Icons"
|
||||
msgstr "Bölüm Simgelerini Gizle"
|
||||
|
||||
#. Impact severity label in resume analysis suggestion card
|
||||
#: src/routes/builder/$resumeId/-sidebar/right/sections/resume-analysis.tsx
|
||||
msgid "High"
|
||||
@@ -1804,6 +1808,7 @@ msgid "Hungarian"
|
||||
msgstr "Macarca"
|
||||
|
||||
#: src/components/level/combobox.tsx
|
||||
#: src/dialogs/resume/sections/custom.tsx
|
||||
#: src/routes/builder/$resumeId/-sidebar/right/sections/design.tsx
|
||||
msgid "Icon"
|
||||
msgstr "Simge"
|
||||
@@ -3991,4 +3996,3 @@ msgstr "Uzaklaştır"
|
||||
#: src/libs/locale.ts
|
||||
msgid "Zulu"
|
||||
msgstr "Zulu"
|
||||
|
||||
|
||||
@@ -8,7 +8,7 @@ msgstr ""
|
||||
"Language: uk\n"
|
||||
"Project-Id-Version: reactive-resume\n"
|
||||
"Report-Msgid-Bugs-To: \n"
|
||||
"PO-Revision-Date: 2026-05-27 21:53\n"
|
||||
"PO-Revision-Date: 2026-06-01 11:26\n"
|
||||
"Last-Translator: \n"
|
||||
"Language-Team: Ukrainian\n"
|
||||
"Plural-Forms: nplurals=4; plural=((n%10==1 && n%100!=11) ? 0 : ((n%10 >= 2 && n%10 <=4 && (n%100 < 12 || n%100 > 14)) ? 1 : ((n%10 == 0 || (n%10 >= 5 && n%10 <=9)) || (n%100 >= 11 && n%100 <= 14)) ? 2 : 3));\n"
|
||||
@@ -1745,8 +1745,8 @@ msgid "Hide"
|
||||
msgstr "Приховати"
|
||||
|
||||
#: src/routes/builder/$resumeId/-sidebar/right/sections/page.tsx
|
||||
msgid "Hide all icons on the resume"
|
||||
msgstr "Сховати всі іконки на резюме"
|
||||
msgid "Hide Icons"
|
||||
msgstr "Приховати значки"
|
||||
|
||||
#. Accessible label for button that hides password in registration form
|
||||
#. Accessible label for button that hides password in reset-password form
|
||||
@@ -1766,6 +1766,10 @@ msgstr "Сховати всі іконки на резюме"
|
||||
msgid "Hide password"
|
||||
msgstr "Приховати пароль"
|
||||
|
||||
#: src/routes/builder/$resumeId/-sidebar/right/sections/page.tsx
|
||||
msgid "Hide Section Icons"
|
||||
msgstr "Приховати значки розділів"
|
||||
|
||||
#. Impact severity label in resume analysis suggestion card
|
||||
#: src/routes/builder/$resumeId/-sidebar/right/sections/resume-analysis.tsx
|
||||
msgid "High"
|
||||
@@ -1804,6 +1808,7 @@ msgid "Hungarian"
|
||||
msgstr "Угорська"
|
||||
|
||||
#: src/components/level/combobox.tsx
|
||||
#: src/dialogs/resume/sections/custom.tsx
|
||||
#: src/routes/builder/$resumeId/-sidebar/right/sections/design.tsx
|
||||
msgid "Icon"
|
||||
msgstr "Іконка"
|
||||
@@ -3991,4 +3996,3 @@ msgstr "Зменшити"
|
||||
#: src/libs/locale.ts
|
||||
msgid "Zulu"
|
||||
msgstr "Зулу"
|
||||
|
||||
|
||||
@@ -8,7 +8,7 @@ msgstr ""
|
||||
"Language: uz\n"
|
||||
"Project-Id-Version: reactive-resume\n"
|
||||
"Report-Msgid-Bugs-To: \n"
|
||||
"PO-Revision-Date: 2026-05-27 21:53\n"
|
||||
"PO-Revision-Date: 2026-06-01 11:26\n"
|
||||
"Last-Translator: \n"
|
||||
"Language-Team: Uzbek\n"
|
||||
"Plural-Forms: nplurals=2; plural=(n > 1);\n"
|
||||
@@ -1745,8 +1745,8 @@ msgid "Hide"
|
||||
msgstr "Yashirish"
|
||||
|
||||
#: src/routes/builder/$resumeId/-sidebar/right/sections/page.tsx
|
||||
msgid "Hide all icons on the resume"
|
||||
msgstr "Rezumedagi barcha ikonkalarni yashirish"
|
||||
msgid "Hide Icons"
|
||||
msgstr "Belgilarni yashirish"
|
||||
|
||||
#. Accessible label for button that hides password in registration form
|
||||
#. Accessible label for button that hides password in reset-password form
|
||||
@@ -1766,6 +1766,10 @@ msgstr "Rezumedagi barcha ikonkalarni yashirish"
|
||||
msgid "Hide password"
|
||||
msgstr "Parolni yashirish"
|
||||
|
||||
#: src/routes/builder/$resumeId/-sidebar/right/sections/page.tsx
|
||||
msgid "Hide Section Icons"
|
||||
msgstr "Bo'lim piktogrammalarini yashirish"
|
||||
|
||||
#. Impact severity label in resume analysis suggestion card
|
||||
#: src/routes/builder/$resumeId/-sidebar/right/sections/resume-analysis.tsx
|
||||
msgid "High"
|
||||
@@ -1804,6 +1808,7 @@ msgid "Hungarian"
|
||||
msgstr "Venger tili"
|
||||
|
||||
#: src/components/level/combobox.tsx
|
||||
#: src/dialogs/resume/sections/custom.tsx
|
||||
#: src/routes/builder/$resumeId/-sidebar/right/sections/design.tsx
|
||||
msgid "Icon"
|
||||
msgstr "Ikonka"
|
||||
@@ -3991,4 +3996,3 @@ msgstr "Kichraytirish"
|
||||
#: src/libs/locale.ts
|
||||
msgid "Zulu"
|
||||
msgstr "Zulu"
|
||||
|
||||
|
||||
@@ -8,7 +8,7 @@ msgstr ""
|
||||
"Language: vi\n"
|
||||
"Project-Id-Version: reactive-resume\n"
|
||||
"Report-Msgid-Bugs-To: \n"
|
||||
"PO-Revision-Date: 2026-05-27 21:53\n"
|
||||
"PO-Revision-Date: 2026-06-01 11:26\n"
|
||||
"Last-Translator: \n"
|
||||
"Language-Team: Vietnamese\n"
|
||||
"Plural-Forms: nplurals=1; plural=0;\n"
|
||||
@@ -1745,8 +1745,8 @@ msgid "Hide"
|
||||
msgstr "Ẩn đi"
|
||||
|
||||
#: src/routes/builder/$resumeId/-sidebar/right/sections/page.tsx
|
||||
msgid "Hide all icons on the resume"
|
||||
msgstr "Ẩn tất cả biểu tượng trên hồ sơ"
|
||||
msgid "Hide Icons"
|
||||
msgstr "Ẩn biểu tượng"
|
||||
|
||||
#. Accessible label for button that hides password in registration form
|
||||
#. Accessible label for button that hides password in reset-password form
|
||||
@@ -1766,6 +1766,10 @@ msgstr "Ẩn tất cả biểu tượng trên hồ sơ"
|
||||
msgid "Hide password"
|
||||
msgstr "Ẩn mật khẩu"
|
||||
|
||||
#: src/routes/builder/$resumeId/-sidebar/right/sections/page.tsx
|
||||
msgid "Hide Section Icons"
|
||||
msgstr "Ẩn biểu tượng phần"
|
||||
|
||||
#. Impact severity label in resume analysis suggestion card
|
||||
#: src/routes/builder/$resumeId/-sidebar/right/sections/resume-analysis.tsx
|
||||
msgid "High"
|
||||
@@ -1804,6 +1808,7 @@ msgid "Hungarian"
|
||||
msgstr "Tiếng Hungary"
|
||||
|
||||
#: src/components/level/combobox.tsx
|
||||
#: src/dialogs/resume/sections/custom.tsx
|
||||
#: src/routes/builder/$resumeId/-sidebar/right/sections/design.tsx
|
||||
msgid "Icon"
|
||||
msgstr "Icon"
|
||||
@@ -3991,4 +3996,3 @@ msgstr "Thu nhỏ"
|
||||
#: src/libs/locale.ts
|
||||
msgid "Zulu"
|
||||
msgstr "Zulu"
|
||||
|
||||
|
||||
@@ -8,7 +8,7 @@ msgstr ""
|
||||
"Language: zh\n"
|
||||
"Project-Id-Version: reactive-resume\n"
|
||||
"Report-Msgid-Bugs-To: \n"
|
||||
"PO-Revision-Date: 2026-05-27 21:53\n"
|
||||
"PO-Revision-Date: 2026-06-01 11:26\n"
|
||||
"Last-Translator: \n"
|
||||
"Language-Team: Chinese Simplified\n"
|
||||
"Plural-Forms: nplurals=1; plural=0;\n"
|
||||
@@ -1745,8 +1745,8 @@ msgid "Hide"
|
||||
msgstr "隐藏"
|
||||
|
||||
#: src/routes/builder/$resumeId/-sidebar/right/sections/page.tsx
|
||||
msgid "Hide all icons on the resume"
|
||||
msgstr "在简历中隐藏所有图标"
|
||||
msgid "Hide Icons"
|
||||
msgstr "隐藏图标"
|
||||
|
||||
#. Accessible label for button that hides password in registration form
|
||||
#. Accessible label for button that hides password in reset-password form
|
||||
@@ -1766,6 +1766,10 @@ msgstr "在简历中隐藏所有图标"
|
||||
msgid "Hide password"
|
||||
msgstr "隐藏密码"
|
||||
|
||||
#: src/routes/builder/$resumeId/-sidebar/right/sections/page.tsx
|
||||
msgid "Hide Section Icons"
|
||||
msgstr "隐藏版块图标"
|
||||
|
||||
#. Impact severity label in resume analysis suggestion card
|
||||
#: src/routes/builder/$resumeId/-sidebar/right/sections/resume-analysis.tsx
|
||||
msgid "High"
|
||||
@@ -1804,6 +1808,7 @@ msgid "Hungarian"
|
||||
msgstr "匈牙利语"
|
||||
|
||||
#: src/components/level/combobox.tsx
|
||||
#: src/dialogs/resume/sections/custom.tsx
|
||||
#: src/routes/builder/$resumeId/-sidebar/right/sections/design.tsx
|
||||
msgid "Icon"
|
||||
msgstr "图标"
|
||||
@@ -3991,4 +3996,3 @@ msgstr "缩小"
|
||||
#: src/libs/locale.ts
|
||||
msgid "Zulu"
|
||||
msgstr "祖鲁语"
|
||||
|
||||
|
||||
@@ -8,7 +8,7 @@ msgstr ""
|
||||
"Language: zh\n"
|
||||
"Project-Id-Version: reactive-resume\n"
|
||||
"Report-Msgid-Bugs-To: \n"
|
||||
"PO-Revision-Date: 2026-05-27 21:53\n"
|
||||
"PO-Revision-Date: 2026-06-01 11:26\n"
|
||||
"Last-Translator: \n"
|
||||
"Language-Team: Chinese Traditional\n"
|
||||
"Plural-Forms: nplurals=1; plural=0;\n"
|
||||
@@ -1745,8 +1745,8 @@ msgid "Hide"
|
||||
msgstr "隱藏"
|
||||
|
||||
#: src/routes/builder/$resumeId/-sidebar/right/sections/page.tsx
|
||||
msgid "Hide all icons on the resume"
|
||||
msgstr "隱藏履歷中的所有圖示"
|
||||
msgid "Hide Icons"
|
||||
msgstr "隱藏圖示"
|
||||
|
||||
#. Accessible label for button that hides password in registration form
|
||||
#. Accessible label for button that hides password in reset-password form
|
||||
@@ -1766,6 +1766,10 @@ msgstr "隱藏履歷中的所有圖示"
|
||||
msgid "Hide password"
|
||||
msgstr "隱藏密碼"
|
||||
|
||||
#: src/routes/builder/$resumeId/-sidebar/right/sections/page.tsx
|
||||
msgid "Hide Section Icons"
|
||||
msgstr "隱藏版塊圖標"
|
||||
|
||||
#. Impact severity label in resume analysis suggestion card
|
||||
#: src/routes/builder/$resumeId/-sidebar/right/sections/resume-analysis.tsx
|
||||
msgid "High"
|
||||
@@ -1804,6 +1808,7 @@ msgid "Hungarian"
|
||||
msgstr "匈牙利語"
|
||||
|
||||
#: src/components/level/combobox.tsx
|
||||
#: src/dialogs/resume/sections/custom.tsx
|
||||
#: src/routes/builder/$resumeId/-sidebar/right/sections/design.tsx
|
||||
msgid "Icon"
|
||||
msgstr "圖示"
|
||||
@@ -3991,4 +3996,3 @@ msgstr "縮小"
|
||||
#: src/libs/locale.ts
|
||||
msgid "Zulu"
|
||||
msgstr "祖魯語"
|
||||
|
||||
|
||||
@@ -1740,7 +1740,7 @@ msgid "Hide"
|
||||
msgstr ""
|
||||
|
||||
#: src/routes/builder/$resumeId/-sidebar/right/sections/page.tsx
|
||||
msgid "Hide all icons on the resume"
|
||||
msgid "Hide Icons"
|
||||
msgstr ""
|
||||
|
||||
#. Accessible label for button that hides password in registration form
|
||||
@@ -1761,6 +1761,10 @@ msgstr ""
|
||||
msgid "Hide password"
|
||||
msgstr ""
|
||||
|
||||
#: src/routes/builder/$resumeId/-sidebar/right/sections/page.tsx
|
||||
msgid "Hide Section Icons"
|
||||
msgstr ""
|
||||
|
||||
#. Impact severity label in resume analysis suggestion card
|
||||
#: src/routes/builder/$resumeId/-sidebar/right/sections/resume-analysis.tsx
|
||||
msgid "High"
|
||||
@@ -1799,6 +1803,7 @@ msgid "Hungarian"
|
||||
msgstr ""
|
||||
|
||||
#: src/components/level/combobox.tsx
|
||||
#: src/dialogs/resume/sections/custom.tsx
|
||||
#: src/routes/builder/$resumeId/-sidebar/right/sections/design.tsx
|
||||
msgid "Icon"
|
||||
msgstr ""
|
||||
|
||||
@@ -100,6 +100,6 @@
|
||||
"babel-plugin-macros": "^3.1.0",
|
||||
"babel-plugin-react-compiler": "^1.0.0",
|
||||
"typescript": "^6.0.3",
|
||||
"vite": "^8.0.15"
|
||||
"vite": "^8.0.16"
|
||||
}
|
||||
}
|
||||
|
||||
@@ -0,0 +1,35 @@
|
||||
import { readFileSync } from "node:fs";
|
||||
import { describe, expect, it } from "vitest";
|
||||
|
||||
const source = readFileSync(new URL("./custom.tsx", import.meta.url), "utf8");
|
||||
|
||||
function rendererBody(name: string) {
|
||||
const start = source.indexOf(`render: function ${name}({ form }) {`);
|
||||
expect(start).toBeGreaterThanOrEqual(0);
|
||||
|
||||
const end =
|
||||
name === "CreateCustomSectionFormRenderer" ? source.indexOf("const UpdateCustomSectionForm", start) : source.length;
|
||||
expect(end).toBeGreaterThan(start);
|
||||
|
||||
return source.slice(start, end);
|
||||
}
|
||||
|
||||
describe("custom section dialog layout", () => {
|
||||
it.each([
|
||||
"CreateCustomSectionFormRenderer",
|
||||
"UpdateCustomSectionFormRenderer",
|
||||
])("renders icon and title in one row for %s", (name) => {
|
||||
const body = rendererBody(name);
|
||||
const rowIndex = body.indexOf('"flex items-end sm:col-span-full"');
|
||||
const iconIndex = body.indexOf('name="icon"', rowIndex);
|
||||
const titleIndex = body.indexOf('name="title"', rowIndex);
|
||||
const sectionTypeIndex = body.indexOf('name="type"', rowIndex);
|
||||
|
||||
expect(rowIndex).toBeGreaterThanOrEqual(0);
|
||||
expect(iconIndex).toBeGreaterThan(rowIndex);
|
||||
expect(titleIndex).toBeGreaterThan(iconIndex);
|
||||
expect(sectionTypeIndex).toBeGreaterThan(titleIndex);
|
||||
expect(body).toContain('className="rounded-r-none border-input border-e-0"');
|
||||
expect(body).toContain('className="rounded-s-none"');
|
||||
});
|
||||
});
|
||||
@@ -19,10 +19,13 @@ import {
|
||||
import { FormControl, FormItem, FormLabel, FormMessage } from "@reactive-resume/ui/components/form";
|
||||
import { Input } from "@reactive-resume/ui/components/input";
|
||||
import { generateId } from "@reactive-resume/utils/string";
|
||||
import { cn } from "@reactive-resume/utils/style";
|
||||
import { IconPicker } from "@/components/input/icon-picker";
|
||||
import { Combobox } from "@/components/ui/combobox";
|
||||
import { useDialogStore } from "@/dialogs/store";
|
||||
import { useUpdateResumeData } from "@/features/resume/builder/draft";
|
||||
import { useFormBlocker } from "@/hooks/use-form-blocker";
|
||||
import { defaultSectionIconNames } from "@/libs/resume/section";
|
||||
import { useAppForm, withForm } from "@/libs/tanstack-form";
|
||||
|
||||
const formSchema = customSectionSchema;
|
||||
@@ -33,6 +36,7 @@ const defaultValues: FormValues = {
|
||||
id: "",
|
||||
title: "",
|
||||
type: "experience",
|
||||
icon: "",
|
||||
columns: 1,
|
||||
hidden: false,
|
||||
items: [],
|
||||
@@ -59,6 +63,12 @@ function isCustomSectionType(value: string | null | undefined): value is CustomS
|
||||
return SECTION_TYPE_OPTIONS.some((option) => option.value === value);
|
||||
}
|
||||
|
||||
function getIconPickerValue(icon: string, type: CustomSectionType): string {
|
||||
if (icon === "none") return "";
|
||||
|
||||
return icon || defaultSectionIconNames[type];
|
||||
}
|
||||
|
||||
export function CreateCustomSectionDialog({ data }: DialogProps<"resume.sections.custom.create">) {
|
||||
const closeDialog = useDialogStore((state) => state.closeDialog);
|
||||
const updateResumeData = useUpdateResumeData();
|
||||
@@ -68,6 +78,7 @@ export function CreateCustomSectionDialog({ data }: DialogProps<"resume.sections
|
||||
id: generateId(),
|
||||
title: data?.title ?? "",
|
||||
type: (data?.type ?? "experience") as CustomSectionType,
|
||||
icon: data?.icon ?? "",
|
||||
columns: data?.columns ?? 1,
|
||||
hidden: data?.hidden ?? false,
|
||||
items: data?.items ?? [],
|
||||
@@ -126,7 +137,10 @@ export function UpdateCustomSectionDialog({ data }: DialogProps<"resume.sections
|
||||
const updateResumeData = useUpdateResumeData();
|
||||
|
||||
const form = useAppForm({
|
||||
defaultValues: data,
|
||||
defaultValues: {
|
||||
...data,
|
||||
icon: data.icon ?? "",
|
||||
},
|
||||
validators: { onSubmit: formSchema },
|
||||
onSubmit: async ({ value }) => {
|
||||
updateResumeData((draft) => {
|
||||
@@ -179,32 +193,57 @@ const CreateCustomSectionForm = withForm({
|
||||
defaultValues,
|
||||
render: function CreateCustomSectionFormRenderer({ form }) {
|
||||
const { i18n } = useLingui();
|
||||
const titleMeta = useStore(form.store, (state) => state.fieldMeta?.title);
|
||||
const sectionType = useStore(form.store, (state) => state.values.type);
|
||||
|
||||
const isTitleInvalid = (titleMeta?.isTouched ?? false) && (titleMeta?.errors?.length ?? 0) > 0;
|
||||
|
||||
return (
|
||||
<>
|
||||
<form.Field name="title">
|
||||
{(field) => (
|
||||
<FormItem
|
||||
className="sm:col-span-full"
|
||||
hasError={field.state.meta.isTouched && field.state.meta.errors.length > 0}
|
||||
>
|
||||
<FormLabel>
|
||||
<Trans>Title</Trans>
|
||||
</FormLabel>
|
||||
<FormControl
|
||||
render={
|
||||
<Input
|
||||
name={field.name}
|
||||
value={field.state.value}
|
||||
onBlur={field.handleBlur}
|
||||
onChange={(event) => field.handleChange(event.target.value)}
|
||||
/>
|
||||
}
|
||||
/>
|
||||
<FormMessage errors={field.state.meta.errors} />
|
||||
</FormItem>
|
||||
)}
|
||||
</form.Field>
|
||||
<div className={cn("flex items-end sm:col-span-full", isTitleInvalid && "items-center")}>
|
||||
<form.Field name="icon">
|
||||
{(field) => (
|
||||
<FormItem
|
||||
className="shrink-0"
|
||||
hasError={field.state.meta.isTouched && field.state.meta.errors.length > 0}
|
||||
>
|
||||
<FormControl
|
||||
render={
|
||||
<IconPicker
|
||||
value={getIconPickerValue(field.state.value, sectionType)}
|
||||
onChange={(icon) => {
|
||||
field.handleChange(icon === "" ? "none" : icon);
|
||||
}}
|
||||
className="rounded-r-none border-input border-e-0"
|
||||
/>
|
||||
}
|
||||
/>
|
||||
</FormItem>
|
||||
)}
|
||||
</form.Field>
|
||||
|
||||
<form.Field name="title">
|
||||
{(field) => (
|
||||
<FormItem className="flex-1" hasError={field.state.meta.isTouched && field.state.meta.errors.length > 0}>
|
||||
<FormLabel>
|
||||
<Trans>Title</Trans>
|
||||
</FormLabel>
|
||||
<FormControl
|
||||
render={
|
||||
<Input
|
||||
className="rounded-s-none"
|
||||
name={field.name}
|
||||
value={field.state.value}
|
||||
onBlur={field.handleBlur}
|
||||
onChange={(event) => field.handleChange(event.target.value)}
|
||||
/>
|
||||
}
|
||||
/>
|
||||
<FormMessage errors={field.state.meta.errors} />
|
||||
</FormItem>
|
||||
)}
|
||||
</form.Field>
|
||||
</div>
|
||||
|
||||
<form.Field name="type">
|
||||
{(field) => (
|
||||
@@ -244,32 +283,57 @@ const UpdateCustomSectionForm = withForm({
|
||||
defaultValues,
|
||||
render: function UpdateCustomSectionFormRenderer({ form }) {
|
||||
const { i18n } = useLingui();
|
||||
const titleMeta = useStore(form.store, (state) => state.fieldMeta?.title);
|
||||
const sectionType = useStore(form.store, (state) => state.values.type);
|
||||
|
||||
const isTitleInvalid = (titleMeta?.isTouched ?? false) && (titleMeta?.errors?.length ?? 0) > 0;
|
||||
|
||||
return (
|
||||
<>
|
||||
<form.Field name="title">
|
||||
{(field) => (
|
||||
<FormItem
|
||||
className="sm:col-span-full"
|
||||
hasError={field.state.meta.isTouched && field.state.meta.errors.length > 0}
|
||||
>
|
||||
<FormLabel>
|
||||
<Trans>Title</Trans>
|
||||
</FormLabel>
|
||||
<FormControl
|
||||
render={
|
||||
<Input
|
||||
name={field.name}
|
||||
value={field.state.value}
|
||||
onBlur={field.handleBlur}
|
||||
onChange={(event) => field.handleChange(event.target.value)}
|
||||
/>
|
||||
}
|
||||
/>
|
||||
<FormMessage errors={field.state.meta.errors} />
|
||||
</FormItem>
|
||||
)}
|
||||
</form.Field>
|
||||
<div className={cn("flex items-end sm:col-span-full", isTitleInvalid && "items-center")}>
|
||||
<form.Field name="icon">
|
||||
{(field) => (
|
||||
<FormItem
|
||||
className="shrink-0"
|
||||
hasError={field.state.meta.isTouched && field.state.meta.errors.length > 0}
|
||||
>
|
||||
<FormControl
|
||||
render={
|
||||
<IconPicker
|
||||
value={getIconPickerValue(field.state.value, sectionType)}
|
||||
onChange={(icon) => {
|
||||
field.handleChange(icon === "" ? "none" : icon);
|
||||
}}
|
||||
className="rounded-r-none border-input border-e-0"
|
||||
/>
|
||||
}
|
||||
/>
|
||||
</FormItem>
|
||||
)}
|
||||
</form.Field>
|
||||
|
||||
<form.Field name="title">
|
||||
{(field) => (
|
||||
<FormItem className="flex-1" hasError={field.state.meta.isTouched && field.state.meta.errors.length > 0}>
|
||||
<FormLabel>
|
||||
<Trans>Title</Trans>
|
||||
</FormLabel>
|
||||
<FormControl
|
||||
render={
|
||||
<Input
|
||||
className="rounded-s-none"
|
||||
name={field.name}
|
||||
value={field.state.value}
|
||||
onBlur={field.handleBlur}
|
||||
onChange={(event) => field.handleChange(event.target.value)}
|
||||
/>
|
||||
}
|
||||
/>
|
||||
<FormMessage errors={field.state.meta.errors} />
|
||||
</FormItem>
|
||||
)}
|
||||
</form.Field>
|
||||
</div>
|
||||
|
||||
<form.Field name="type">
|
||||
{(field) => (
|
||||
|
||||
@@ -23,6 +23,7 @@ describe("getSourceSectionTitle", () => {
|
||||
id: "ext-1",
|
||||
type: "cover-letter",
|
||||
title: "My Custom Title",
|
||||
icon: "",
|
||||
columns: 1,
|
||||
hidden: false,
|
||||
items: [],
|
||||
@@ -54,6 +55,7 @@ describe("getCompatibleMoveTargets", () => {
|
||||
id: "ext-1",
|
||||
type: "cover-letter",
|
||||
title: "Cover Letter",
|
||||
icon: "",
|
||||
columns: 1,
|
||||
hidden: false,
|
||||
items: [],
|
||||
@@ -120,6 +122,7 @@ describe("removeItemFromSource", () => {
|
||||
id: "ext-1",
|
||||
type: "cover-letter",
|
||||
title: "",
|
||||
icon: "",
|
||||
columns: 1,
|
||||
hidden: false,
|
||||
items: [{ id: "i1" } as never],
|
||||
@@ -171,6 +174,7 @@ describe("addItemToSection", () => {
|
||||
id: "ext-1",
|
||||
type: "cover-letter",
|
||||
title: "",
|
||||
icon: "",
|
||||
columns: 1,
|
||||
hidden: false,
|
||||
items: [],
|
||||
|
||||
@@ -228,6 +228,7 @@ export function createCustomSectionWithItem(
|
||||
id: newSectionId,
|
||||
type,
|
||||
title: sectionTitle,
|
||||
icon: "",
|
||||
columns: 1,
|
||||
hidden: false,
|
||||
items: [item as never],
|
||||
@@ -265,6 +266,7 @@ export function createPageWithSection(
|
||||
id: newSectionId,
|
||||
type,
|
||||
title: sectionTitle,
|
||||
icon: "",
|
||||
columns: 1,
|
||||
hidden: false,
|
||||
items: [item as never],
|
||||
|
||||
@@ -18,6 +18,7 @@ describe("createSectionItem", () => {
|
||||
id: "custom-1",
|
||||
type: "cover-letter",
|
||||
title: "Cover Letter",
|
||||
icon: "",
|
||||
columns: 1,
|
||||
hidden: false,
|
||||
items: [],
|
||||
@@ -75,6 +76,7 @@ describe("updateSectionItem", () => {
|
||||
id: "custom-1",
|
||||
type: "cover-letter",
|
||||
title: "",
|
||||
icon: "",
|
||||
columns: 1,
|
||||
hidden: false,
|
||||
items: [{ id: "x", value: "old" } as never],
|
||||
|
||||
@@ -35,6 +35,8 @@ import {
|
||||
import { match } from "ts-pattern";
|
||||
import { cn } from "@reactive-resume/utils/style";
|
||||
|
||||
export { defaultSectionIconNames } from "@reactive-resume/schema/resume/section-icons";
|
||||
|
||||
export type LeftSidebarSection = "picture" | "basics" | "summary" | SectionType | "custom";
|
||||
|
||||
// CustomSectionType values that are not in SectionType (used in custom sections only)
|
||||
|
||||
@@ -1,10 +1,12 @@
|
||||
import type { SectionType } from "@reactive-resume/schema/resume/data";
|
||||
import type { LeftSidebarSection } from "@/libs/resume/section";
|
||||
import { CaretDownIcon } from "@phosphor-icons/react";
|
||||
import { getDefaultSectionIconName } from "@reactive-resume/schema/resume/section-icons";
|
||||
import { Accordion, AccordionContent, AccordionItem, AccordionTrigger } from "@reactive-resume/ui/components/accordion";
|
||||
import { Button } from "@reactive-resume/ui/components/button";
|
||||
import { cn } from "@reactive-resume/utils/style";
|
||||
import { useCurrentResume } from "@/features/resume/builder/draft";
|
||||
import { IconPicker } from "@/components/input/icon-picker";
|
||||
import { useCurrentResume, useUpdateResumeData } from "@/features/resume/builder/draft";
|
||||
import { getSectionIcon, getSectionTitle } from "@/libs/resume/section";
|
||||
import { useSectionStore } from "../../../-store/section";
|
||||
import { SectionDropdownMenu } from "./section-menu";
|
||||
@@ -15,6 +17,7 @@ type Props = React.ComponentProps<typeof AccordionContent> & {
|
||||
|
||||
export function SectionBase({ type, className, ...props }: Props) {
|
||||
const resume = useCurrentResume();
|
||||
const updateResumeData = useUpdateResumeData();
|
||||
const data = resume.data;
|
||||
const section =
|
||||
type === "basics"
|
||||
@@ -28,9 +31,27 @@ export function SectionBase({ type, className, ...props }: Props) {
|
||||
: data.sections[type];
|
||||
|
||||
const isHidden = "hidden" in section && section.hidden;
|
||||
const hasSectionIcon = !["picture", "basics", "custom"].includes(type);
|
||||
const rawIcon = "icon" in section && typeof section.icon === "string" ? section.icon : "";
|
||||
const fallbackIcon = hasSectionIcon ? getDefaultSectionIconName(type as "summary" | SectionType) : "";
|
||||
const sectionIcon = rawIcon === "none" ? "" : rawIcon || fallbackIcon;
|
||||
|
||||
const collapsed = useSectionStore((state) => state.sections[type]?.collapsed ?? false);
|
||||
const toggleCollapsed = useSectionStore((state) => state.toggleCollapsed);
|
||||
|
||||
const onIconChange = (icon: string) => {
|
||||
// Store "none" when user explicitly picks the empty/prohibit option
|
||||
const valueToStore = icon === "" ? "none" : icon;
|
||||
|
||||
updateResumeData((draft) => {
|
||||
if (type === "summary") {
|
||||
draft.summary.icon = valueToStore;
|
||||
} else if (type !== "basics" && type !== "picture" && type !== "custom") {
|
||||
draft.sections[type as SectionType].icon = valueToStore;
|
||||
}
|
||||
});
|
||||
};
|
||||
|
||||
return (
|
||||
<Accordion
|
||||
id={`sidebar-${type}`}
|
||||
@@ -49,8 +70,12 @@ export function SectionBase({ type, className, ...props }: Props) {
|
||||
}
|
||||
/>
|
||||
|
||||
<div className="flex flex-1 items-center gap-x-4">
|
||||
{getSectionIcon(type)}
|
||||
<div className={cn("flex flex-1 items-center gap-x-4", hasSectionIcon && "gap-x-2")}>
|
||||
{hasSectionIcon ? (
|
||||
<IconPicker value={sectionIcon} onChange={onIconChange} size="icon" variant="ghost" />
|
||||
) : (
|
||||
getSectionIcon(type)
|
||||
)}
|
||||
<h2 className="line-clamp-1 font-semibold text-2xl tracking-tight">
|
||||
{("title" in section && section.title) || getSectionTitle(type)}
|
||||
</h2>
|
||||
|
||||
@@ -261,7 +261,7 @@ function PageSectionForm() {
|
||||
<form.Field name="hideIcons">
|
||||
{(field) => (
|
||||
<FormItem
|
||||
className="col-span-full flex items-center gap-x-3 py-2"
|
||||
className="col-span-full flex items-center gap-x-3 py-1"
|
||||
hasError={field.state.meta.isTouched && field.state.meta.errors.length > 0}
|
||||
>
|
||||
<FormControl
|
||||
@@ -276,7 +276,31 @@ function PageSectionForm() {
|
||||
}
|
||||
/>
|
||||
<FormLabel>
|
||||
<Trans>Hide all icons on the resume</Trans>
|
||||
<Trans>Hide Icons</Trans>
|
||||
</FormLabel>
|
||||
</FormItem>
|
||||
)}
|
||||
</form.Field>
|
||||
|
||||
<form.Field name="hideSectionIcons">
|
||||
{(field) => (
|
||||
<FormItem
|
||||
className="col-span-full flex items-center gap-x-3 py-1"
|
||||
hasError={field.state.meta.isTouched && field.state.meta.errors.length > 0}
|
||||
>
|
||||
<FormControl
|
||||
render={
|
||||
<Switch
|
||||
checked={field.state.value}
|
||||
onCheckedChange={(checked) => {
|
||||
field.handleChange(checked);
|
||||
handleAutoSave("hideSectionIcons", checked);
|
||||
}}
|
||||
/>
|
||||
}
|
||||
/>
|
||||
<FormLabel>
|
||||
<Trans>Hide Section Icons</Trans>
|
||||
</FormLabel>
|
||||
</FormItem>
|
||||
)}
|
||||
|
||||
@@ -2,6 +2,7 @@
|
||||
|
||||
import type { CustomSection, ResumeData, SectionType } from "@reactive-resume/schema/resume/data";
|
||||
import { describe, expect, it } from "vitest";
|
||||
import { getDefaultSectionIconName } from "@reactive-resume/schema/resume/section-icons";
|
||||
import { renderBuiltInSection, renderCustomSection, renderSummary, setRenderConfig } from "./section-renderers";
|
||||
|
||||
const baseConfig = {
|
||||
@@ -21,6 +22,7 @@ describe("renderSummary", () => {
|
||||
it("returns [] when the section is hidden", () => {
|
||||
const summary: ResumeData["summary"] = {
|
||||
title: "Summary",
|
||||
icon: getDefaultSectionIconName("summary"),
|
||||
content: "<p>Hello</p>",
|
||||
hidden: true,
|
||||
columns: 1,
|
||||
@@ -31,6 +33,7 @@ describe("renderSummary", () => {
|
||||
it("returns [] when content is empty", () => {
|
||||
const summary: ResumeData["summary"] = {
|
||||
title: "Summary",
|
||||
icon: getDefaultSectionIconName("summary"),
|
||||
content: "",
|
||||
hidden: false,
|
||||
columns: 1,
|
||||
@@ -41,6 +44,7 @@ describe("renderSummary", () => {
|
||||
it("includes a heading paragraph when both title and content are present", () => {
|
||||
const summary: ResumeData["summary"] = {
|
||||
title: "Summary",
|
||||
icon: getDefaultSectionIconName("summary"),
|
||||
content: "<p>Hello world</p>",
|
||||
hidden: false,
|
||||
columns: 1,
|
||||
@@ -53,6 +57,7 @@ describe("renderSummary", () => {
|
||||
it("omits the heading when title is empty but still renders content", () => {
|
||||
const summary: ResumeData["summary"] = {
|
||||
title: "",
|
||||
icon: getDefaultSectionIconName("summary"),
|
||||
content: "<p>Hello world</p>",
|
||||
hidden: false,
|
||||
columns: 1,
|
||||
@@ -62,9 +67,10 @@ describe("renderSummary", () => {
|
||||
});
|
||||
});
|
||||
|
||||
const emptySection = <T extends SectionType>(_type: T): ResumeData["sections"][T] =>
|
||||
const emptySection = <T extends SectionType>(type: T): ResumeData["sections"][T] =>
|
||||
({
|
||||
title: "Section",
|
||||
icon: getDefaultSectionIconName(type),
|
||||
columns: 1,
|
||||
hidden: false,
|
||||
items: [],
|
||||
@@ -90,6 +96,7 @@ describe("renderCustomSection", () => {
|
||||
id: "custom-1",
|
||||
type: "summary",
|
||||
title: "Notes",
|
||||
icon: getDefaultSectionIconName("summary"),
|
||||
columns: 1,
|
||||
hidden: false,
|
||||
items: [],
|
||||
|
||||
@@ -440,6 +440,7 @@ export class ReactiveResumeV4JSONImporter {
|
||||
},
|
||||
summary: {
|
||||
title: v4Data.sections.summary?.name ?? "",
|
||||
icon: "",
|
||||
columns: v4Data.sections.summary?.columns ?? 1,
|
||||
hidden: !(v4Data.sections.summary?.visible ?? true),
|
||||
content: v4Data.sections.summary?.content ?? "",
|
||||
@@ -447,6 +448,7 @@ export class ReactiveResumeV4JSONImporter {
|
||||
sections: {
|
||||
profiles: {
|
||||
title: v4Data.sections.profiles?.name ?? "",
|
||||
icon: "",
|
||||
columns: v4Data.sections.profiles?.columns ?? 1,
|
||||
hidden: !(v4Data.sections.profiles?.visible ?? true),
|
||||
items: (v4Data.sections.profiles?.items ?? [])
|
||||
@@ -467,6 +469,7 @@ export class ReactiveResumeV4JSONImporter {
|
||||
},
|
||||
experience: {
|
||||
title: v4Data.sections.experience?.name ?? "",
|
||||
icon: "",
|
||||
columns: v4Data.sections.experience?.columns ?? 1,
|
||||
hidden: !(v4Data.sections.experience?.visible ?? true),
|
||||
items: (v4Data.sections.experience?.items ?? [])
|
||||
@@ -489,6 +492,7 @@ export class ReactiveResumeV4JSONImporter {
|
||||
},
|
||||
education: {
|
||||
title: v4Data.sections.education?.name ?? "",
|
||||
icon: "",
|
||||
columns: v4Data.sections.education?.columns ?? 1,
|
||||
hidden: !(v4Data.sections.education?.visible ?? true),
|
||||
items: (v4Data.sections.education?.items ?? [])
|
||||
@@ -512,6 +516,7 @@ export class ReactiveResumeV4JSONImporter {
|
||||
},
|
||||
projects: {
|
||||
title: v4Data.sections.projects?.name ?? "",
|
||||
icon: "",
|
||||
columns: v4Data.sections.projects?.columns ?? 1,
|
||||
hidden: !(v4Data.sections.projects?.visible ?? true),
|
||||
items: (v4Data.sections.projects?.items ?? [])
|
||||
@@ -531,6 +536,7 @@ export class ReactiveResumeV4JSONImporter {
|
||||
},
|
||||
skills: {
|
||||
title: v4Data.sections.skills?.name ?? "",
|
||||
icon: "",
|
||||
columns: v4Data.sections.skills?.columns ?? 1,
|
||||
hidden: !(v4Data.sections.skills?.visible ?? true),
|
||||
items: (v4Data.sections.skills?.items ?? [])
|
||||
@@ -549,6 +555,7 @@ export class ReactiveResumeV4JSONImporter {
|
||||
},
|
||||
languages: {
|
||||
title: v4Data.sections.languages?.name ?? "",
|
||||
icon: "",
|
||||
columns: v4Data.sections.languages?.columns ?? 1,
|
||||
hidden: !(v4Data.sections.languages?.visible ?? true),
|
||||
items: (v4Data.sections.languages?.items ?? [])
|
||||
@@ -564,6 +571,7 @@ export class ReactiveResumeV4JSONImporter {
|
||||
},
|
||||
interests: {
|
||||
title: v4Data.sections.interests?.name ?? "",
|
||||
icon: "",
|
||||
columns: v4Data.sections.interests?.columns ?? 1,
|
||||
hidden: !(v4Data.sections.interests?.visible ?? true),
|
||||
items: (v4Data.sections.interests?.items ?? [])
|
||||
@@ -579,6 +587,7 @@ export class ReactiveResumeV4JSONImporter {
|
||||
},
|
||||
awards: {
|
||||
title: v4Data.sections.awards?.name ?? "",
|
||||
icon: "",
|
||||
columns: v4Data.sections.awards?.columns ?? 1,
|
||||
hidden: !(v4Data.sections.awards?.visible ?? true),
|
||||
items: (v4Data.sections.awards?.items ?? [])
|
||||
@@ -599,6 +608,7 @@ export class ReactiveResumeV4JSONImporter {
|
||||
},
|
||||
certifications: {
|
||||
title: v4Data.sections.certifications?.name ?? "",
|
||||
icon: "",
|
||||
columns: v4Data.sections.certifications?.columns ?? 1,
|
||||
hidden: !(v4Data.sections.certifications?.visible ?? true),
|
||||
items: (v4Data.sections.certifications?.items ?? [])
|
||||
@@ -619,6 +629,7 @@ export class ReactiveResumeV4JSONImporter {
|
||||
},
|
||||
publications: {
|
||||
title: v4Data.sections.publications?.name ?? "",
|
||||
icon: "",
|
||||
columns: v4Data.sections.publications?.columns ?? 1,
|
||||
hidden: !(v4Data.sections.publications?.visible ?? true),
|
||||
items: (v4Data.sections.publications?.items ?? [])
|
||||
@@ -639,6 +650,7 @@ export class ReactiveResumeV4JSONImporter {
|
||||
},
|
||||
volunteer: {
|
||||
title: v4Data.sections.volunteer?.name ?? "",
|
||||
icon: "",
|
||||
columns: v4Data.sections.volunteer?.columns ?? 1,
|
||||
hidden: !(v4Data.sections.volunteer?.visible ?? true),
|
||||
items: (v4Data.sections.volunteer?.items ?? [])
|
||||
@@ -659,6 +671,7 @@ export class ReactiveResumeV4JSONImporter {
|
||||
},
|
||||
references: {
|
||||
title: v4Data.sections.references?.name ?? "",
|
||||
icon: "",
|
||||
columns: v4Data.sections.references?.columns ?? 1,
|
||||
hidden: !(v4Data.sections.references?.visible ?? true),
|
||||
items: (v4Data.sections.references?.items ?? [])
|
||||
@@ -681,6 +694,7 @@ export class ReactiveResumeV4JSONImporter {
|
||||
customSections: Object.entries(v4Data.sections.custom ?? {}).map(([sectionId, section]) => ({
|
||||
id: section.id || sectionId,
|
||||
title: section.name ?? "",
|
||||
icon: "",
|
||||
type: "experience" as const, // Default to experience type as it has the most compatible fields
|
||||
columns: section.columns ?? 1,
|
||||
hidden: !(section.visible ?? true),
|
||||
@@ -731,6 +745,7 @@ export class ReactiveResumeV4JSONImporter {
|
||||
format: v4Data.metadata.page?.format ?? "a4",
|
||||
locale: "en-US",
|
||||
hideIcons: v4Data.metadata.typography?.hideIcons ?? false,
|
||||
hideSectionIcons: true,
|
||||
},
|
||||
design: {
|
||||
colors: {
|
||||
|
||||
@@ -0,0 +1,177 @@
|
||||
import { describe, expect, it } from "vitest";
|
||||
import { defaultResumeData } from "@reactive-resume/schema/resume/default";
|
||||
import { getResumeSectionIcon } from "./section-icon";
|
||||
|
||||
describe("getResumeSectionIcon", () => {
|
||||
describe("built-in sections", () => {
|
||||
it("returns the icon from section data when set", () => {
|
||||
const data = {
|
||||
...defaultResumeData,
|
||||
sections: {
|
||||
...defaultResumeData.sections,
|
||||
experience: { ...defaultResumeData.sections.experience, icon: "rocket" },
|
||||
},
|
||||
};
|
||||
expect(getResumeSectionIcon(data, "experience")).toBe("rocket");
|
||||
});
|
||||
|
||||
it("falls back to default icon when section icon is empty string", () => {
|
||||
const data = {
|
||||
...defaultResumeData,
|
||||
sections: {
|
||||
...defaultResumeData.sections,
|
||||
experience: { ...defaultResumeData.sections.experience, icon: "" },
|
||||
},
|
||||
};
|
||||
expect(getResumeSectionIcon(data, "experience")).toBe("briefcase");
|
||||
});
|
||||
|
||||
it("returns empty string when icon is 'none' (user explicitly hid it)", () => {
|
||||
const data = {
|
||||
...defaultResumeData,
|
||||
sections: {
|
||||
...defaultResumeData.sections,
|
||||
skills: { ...defaultResumeData.sections.skills, icon: "none" },
|
||||
},
|
||||
};
|
||||
expect(getResumeSectionIcon(data, "skills")).toBe("");
|
||||
});
|
||||
|
||||
it("returns correct default icons for all built-in sections", () => {
|
||||
const data = {
|
||||
...defaultResumeData,
|
||||
sections: {
|
||||
profiles: { ...defaultResumeData.sections.profiles, icon: "" },
|
||||
experience: { ...defaultResumeData.sections.experience, icon: "" },
|
||||
education: { ...defaultResumeData.sections.education, icon: "" },
|
||||
projects: { ...defaultResumeData.sections.projects, icon: "" },
|
||||
skills: { ...defaultResumeData.sections.skills, icon: "" },
|
||||
languages: { ...defaultResumeData.sections.languages, icon: "" },
|
||||
interests: { ...defaultResumeData.sections.interests, icon: "" },
|
||||
awards: { ...defaultResumeData.sections.awards, icon: "" },
|
||||
certifications: { ...defaultResumeData.sections.certifications, icon: "" },
|
||||
publications: { ...defaultResumeData.sections.publications, icon: "" },
|
||||
volunteer: { ...defaultResumeData.sections.volunteer, icon: "" },
|
||||
references: { ...defaultResumeData.sections.references, icon: "" },
|
||||
},
|
||||
};
|
||||
|
||||
expect(getResumeSectionIcon(data, "profiles")).toBe("messenger-logo");
|
||||
expect(getResumeSectionIcon(data, "experience")).toBe("briefcase");
|
||||
expect(getResumeSectionIcon(data, "education")).toBe("graduation-cap");
|
||||
expect(getResumeSectionIcon(data, "projects")).toBe("code-simple");
|
||||
expect(getResumeSectionIcon(data, "skills")).toBe("compass-tool");
|
||||
expect(getResumeSectionIcon(data, "languages")).toBe("translate");
|
||||
expect(getResumeSectionIcon(data, "interests")).toBe("football");
|
||||
expect(getResumeSectionIcon(data, "awards")).toBe("trophy");
|
||||
expect(getResumeSectionIcon(data, "certifications")).toBe("certificate");
|
||||
expect(getResumeSectionIcon(data, "publications")).toBe("books");
|
||||
expect(getResumeSectionIcon(data, "volunteer")).toBe("hand-heart");
|
||||
expect(getResumeSectionIcon(data, "references")).toBe("phone");
|
||||
});
|
||||
});
|
||||
|
||||
describe("summary section", () => {
|
||||
it("returns the icon from summary data when set", () => {
|
||||
const data = {
|
||||
...defaultResumeData,
|
||||
summary: { ...defaultResumeData.summary, icon: "notebook" },
|
||||
};
|
||||
expect(getResumeSectionIcon(data, "summary")).toBe("notebook");
|
||||
});
|
||||
|
||||
it("falls back to default 'article' when summary icon is empty", () => {
|
||||
const data = {
|
||||
...defaultResumeData,
|
||||
summary: { ...defaultResumeData.summary, icon: "" },
|
||||
};
|
||||
expect(getResumeSectionIcon(data, "summary")).toBe("article");
|
||||
});
|
||||
|
||||
it("returns empty when summary icon is 'none'", () => {
|
||||
const data = {
|
||||
...defaultResumeData,
|
||||
summary: { ...defaultResumeData.summary, icon: "none" },
|
||||
};
|
||||
expect(getResumeSectionIcon(data, "summary")).toBe("");
|
||||
});
|
||||
});
|
||||
|
||||
describe("custom sections", () => {
|
||||
it("returns the icon from custom section data when set", () => {
|
||||
const data = {
|
||||
...defaultResumeData,
|
||||
customSections: [
|
||||
{
|
||||
id: "custom-1",
|
||||
type: "experience" as const,
|
||||
title: "Freelance",
|
||||
icon: "lightning",
|
||||
columns: 1,
|
||||
hidden: false,
|
||||
items: [],
|
||||
},
|
||||
],
|
||||
};
|
||||
expect(getResumeSectionIcon(data, "custom-1")).toBe("lightning");
|
||||
});
|
||||
|
||||
it("falls back to the base type default when custom section icon is empty", () => {
|
||||
const data = {
|
||||
...defaultResumeData,
|
||||
customSections: [
|
||||
{
|
||||
id: "custom-1",
|
||||
type: "education" as const,
|
||||
title: "Courses",
|
||||
icon: "",
|
||||
columns: 1,
|
||||
hidden: false,
|
||||
items: [],
|
||||
},
|
||||
],
|
||||
};
|
||||
expect(getResumeSectionIcon(data, "custom-1")).toBe("graduation-cap");
|
||||
});
|
||||
|
||||
it("falls back to the cover letter default for cover-letter custom sections", () => {
|
||||
const data = {
|
||||
...defaultResumeData,
|
||||
customSections: [
|
||||
{
|
||||
id: "custom-cover-letter",
|
||||
type: "cover-letter" as const,
|
||||
title: "Cover Letter",
|
||||
icon: "",
|
||||
columns: 1,
|
||||
hidden: false,
|
||||
items: [],
|
||||
},
|
||||
],
|
||||
};
|
||||
expect(getResumeSectionIcon(data, "custom-cover-letter")).toBe("envelope-simple");
|
||||
});
|
||||
|
||||
it("returns empty when custom section icon is 'none'", () => {
|
||||
const data = {
|
||||
...defaultResumeData,
|
||||
customSections: [
|
||||
{
|
||||
id: "custom-1",
|
||||
type: "experience" as const,
|
||||
title: "Side Projects",
|
||||
icon: "none",
|
||||
columns: 1,
|
||||
hidden: false,
|
||||
items: [],
|
||||
},
|
||||
],
|
||||
};
|
||||
expect(getResumeSectionIcon(data, "custom-1")).toBe("");
|
||||
});
|
||||
|
||||
it("returns empty string for non-existent section id", () => {
|
||||
expect(getResumeSectionIcon(defaultResumeData, "non-existent-id")).toBe("");
|
||||
});
|
||||
});
|
||||
});
|
||||
@@ -0,0 +1,29 @@
|
||||
import type { ResumeData, SectionType } from "@reactive-resume/schema/resume/data";
|
||||
import { getDefaultSectionIconName } from "@reactive-resume/schema/resume/section-icons";
|
||||
|
||||
type RenderData = ResumeData & {
|
||||
resolveSectionTitle?: unknown;
|
||||
};
|
||||
|
||||
export const getResumeSectionIcon = (data: RenderData, sectionId: string): string => {
|
||||
if (sectionId === "summary") {
|
||||
const icon = data.summary.icon;
|
||||
if (icon === "none") return "";
|
||||
return icon || getDefaultSectionIconName("summary");
|
||||
}
|
||||
|
||||
if (sectionId in data.sections) {
|
||||
const sectionType = sectionId as SectionType;
|
||||
const icon = data.sections[sectionType].icon;
|
||||
if (icon === "none") return "";
|
||||
return icon || getDefaultSectionIconName(sectionType);
|
||||
}
|
||||
|
||||
const customSection = data.customSections.find((section) => section.id === sectionId);
|
||||
if (!customSection) return "";
|
||||
|
||||
const icon = customSection.icon;
|
||||
if (icon === "none") return "";
|
||||
// For custom sections, fall back to the default icon of their base type
|
||||
return icon || getDefaultSectionIconName(customSection.type);
|
||||
};
|
||||
@@ -109,6 +109,7 @@ describe("getResumeSectionTitle", () => {
|
||||
id: "ext-1",
|
||||
type: "cover-letter" as const,
|
||||
title: "My Cover Letter",
|
||||
icon: "",
|
||||
columns: 1,
|
||||
hidden: false,
|
||||
items: [],
|
||||
@@ -126,6 +127,7 @@ describe("getResumeSectionTitle", () => {
|
||||
id: "ext-1",
|
||||
type: "cover-letter" as const,
|
||||
title: "",
|
||||
icon: "",
|
||||
columns: 1,
|
||||
hidden: false,
|
||||
items: [],
|
||||
|
||||
@@ -141,9 +141,9 @@ export const useTemplateFeatureStyle = (
|
||||
return resolveStyleSlot(slots?.[slot] as TemplateStyleSlot | undefined, context);
|
||||
};
|
||||
|
||||
export const useTemplateIconSlot = (slot: "icon") => {
|
||||
export const useTemplateIconSlot = (slot: "icon" | "sectionHeadingIcon") => {
|
||||
const { styles } = useTemplateContext();
|
||||
const context = useTemplateStyleContext();
|
||||
|
||||
return resolveIconSlot(styles[slot], context);
|
||||
return resolveIconSlot(styles[slot] as TemplateIconSlot | undefined, context);
|
||||
};
|
||||
|
||||
@@ -0,0 +1,13 @@
|
||||
import { readFileSync } from "node:fs";
|
||||
import { fileURLToPath } from "node:url";
|
||||
import { describe, expect, it } from "vitest";
|
||||
|
||||
const source = readFileSync(fileURLToPath(new URL("./primitives.tsx", import.meta.url)), "utf8");
|
||||
|
||||
describe("SectionHeadingIcon", () => {
|
||||
it("passes the resolved heading icon size through the icon size prop", () => {
|
||||
expect(source).toContain("size: sizeProp");
|
||||
expect(source).toContain("{...(resolvedSize === undefined ? {} : { size: resolvedSize })}");
|
||||
expect(source).not.toContain("{ size: headingFontSize } as Style");
|
||||
});
|
||||
});
|
||||
@@ -2,6 +2,7 @@ import type { Style } from "@react-pdf/types";
|
||||
import type { ComponentProps } from "react";
|
||||
import type { StyleInput } from "./styles";
|
||||
import { Icon as PhosphorIcon } from "phosphor-icons-react-pdf/dynamic";
|
||||
import { useRender } from "../../context";
|
||||
import { Link as PdfLink, Text as PdfText, View } from "../../renderer";
|
||||
import { useSectionStyleRule, useTemplateIconSlot, useTemplateStyle } from "./context";
|
||||
import { resolveIconSize } from "./icon-size";
|
||||
@@ -88,3 +89,39 @@ export const Icon = ({ style, size: sizeProp, ...props }: ComponentProps<typeof
|
||||
/>
|
||||
);
|
||||
};
|
||||
|
||||
export const SectionHeadingIcon = ({ style, size: sizeProp, ...props }: ComponentProps<typeof PhosphorIcon>) => {
|
||||
const data = useRender();
|
||||
const { style: sectionIconStyle, ...sectionIconProps } = useTemplateIconSlot("sectionHeadingIcon");
|
||||
const { style: fallbackIconStyle, ...fallbackIconProps } = useTemplateIconSlot("icon");
|
||||
|
||||
// Fall back to the item icon slot if no section heading icon slot is defined
|
||||
const hasSlot = sectionIconStyle !== undefined || Object.keys(sectionIconProps).length > 0;
|
||||
const iconStyle = hasSlot ? sectionIconStyle : fallbackIconStyle;
|
||||
const iconProps = hasSlot ? sectionIconProps : fallbackIconProps;
|
||||
|
||||
// Section heading icon visibility is controlled by hideSectionIcons (in SectionShell),
|
||||
// NOT by the item-level hideIcons toggle. Ignore the "display: none" from item icon slot.
|
||||
const { display: _, size: templateSize, ...iconPropsWithoutDisplay } = iconProps;
|
||||
const templateIconSize =
|
||||
hasSlot && (typeof templateSize === "number" || typeof templateSize === "string") ? templateSize : undefined;
|
||||
|
||||
// Icon size follows heading fontSize so they scale together
|
||||
const headingFontSize = data.metadata.typography.heading.fontSize;
|
||||
const resolvedSize =
|
||||
resolveIconSize({
|
||||
size: sizeProp,
|
||||
styles: [asStyleInput(iconStyle), asStyleInput(style)],
|
||||
}) ??
|
||||
templateIconSize ??
|
||||
headingFontSize;
|
||||
|
||||
return (
|
||||
<PhosphorIcon
|
||||
{...iconPropsWithoutDisplay}
|
||||
{...props}
|
||||
{...(resolvedSize === undefined ? {} : { size: resolvedSize })}
|
||||
style={composeStyles(asStyleInput(iconStyle), asStyleInput(style))}
|
||||
/>
|
||||
);
|
||||
};
|
||||
|
||||
@@ -13,3 +13,26 @@ describe("ExperienceSection", () => {
|
||||
expect(source).not.toContain("item.roles.length > 0 && <Text>{item.period}</Text>");
|
||||
});
|
||||
});
|
||||
|
||||
describe("SectionShell", () => {
|
||||
it("keeps section and heading style rules when section heading icons are hidden", () => {
|
||||
expect(source).toContain("<View style={composeStyles(sectionStyle, sectionRuleStyle)}>");
|
||||
expect(source).toContain("<Heading style={composeStyles(sectionHeadingStyle, sectionHeadingRuleStyle)}>");
|
||||
});
|
||||
|
||||
it("wires the section heading container style slot into the icon row", () => {
|
||||
expect(source).toContain('useTemplateStyle("sectionHeadingContainer")');
|
||||
expect(source).toContain("sectionHeadingContainerStyle");
|
||||
});
|
||||
|
||||
it("top-aligns heading icon rows and does not use unsupported auto width resets", () => {
|
||||
const headingContainerBlock = source.match(
|
||||
/const defaultSectionHeadingContainerStyle = {(?<body>[\s\S]*?)} satisfies Style;/,
|
||||
);
|
||||
|
||||
expect(headingContainerBlock?.groups?.body).toContain('alignItems: "flex-start"');
|
||||
expect(source).toContain("getSectionHeadingTextStyle(sectionHeadingStyle, sectionHeadingRuleStyle)");
|
||||
expect(source).toContain("width: _width");
|
||||
expect(source).not.toContain('width: "auto"');
|
||||
});
|
||||
});
|
||||
|
||||
@@ -23,6 +23,7 @@ import { Children, createContext, isValidElement, use } from "react";
|
||||
import { match } from "ts-pattern";
|
||||
import { useRender } from "../../context";
|
||||
import { View } from "../../renderer";
|
||||
import { getResumeSectionIcon } from "../../section-icon";
|
||||
import { getResumeSectionTitle } from "../../section-title";
|
||||
import { getSectionItemRows, getSectionItemsLayout, shouldUseSectionTimeline } from "./columns";
|
||||
import { getWebsiteDisplayText } from "./contact";
|
||||
@@ -38,7 +39,7 @@ import {
|
||||
import { filterItems, hasVisibleItems, isSectionVisible, isVisibleSummary } from "./filtering";
|
||||
import { LevelDisplay } from "./level-display";
|
||||
import { getTemplateMetrics } from "./metrics";
|
||||
import { Bold, Div, Heading, Icon, Link, Small, Text } from "./primitives";
|
||||
import { Bold, Div, Heading, Icon, Link, SectionHeadingIcon, Small, Text } from "./primitives";
|
||||
import { RichText } from "./rich-text";
|
||||
import { createRtlStyleHelpers } from "./rtl";
|
||||
import { getInlineItemWebsiteUrl, shouldRenderSeparateItemWebsite } from "./section-links";
|
||||
@@ -132,6 +133,35 @@ const SECTION_ITEM_PLACEHOLDER_KEYS = [
|
||||
"placeholder-6",
|
||||
] as const;
|
||||
|
||||
const defaultSectionHeadingContainerStyle = {
|
||||
flexDirection: "row",
|
||||
alignItems: "flex-start",
|
||||
columnGap: 4,
|
||||
} satisfies Style;
|
||||
|
||||
const getSectionHeadingTextStyle = (...styles: StyleInput[]): Style[] =>
|
||||
composeStyles(...styles).map(
|
||||
({
|
||||
borderBottomWidth: _borderBottomWidth,
|
||||
borderLeftWidth: _borderLeftWidth,
|
||||
borderRightWidth: _borderRightWidth,
|
||||
borderTopWidth: _borderTopWidth,
|
||||
borderWidth: _borderWidth,
|
||||
flexGrow: _flexGrow,
|
||||
flexShrink: _flexShrink,
|
||||
marginBottom: _marginBottom,
|
||||
marginLeft: _marginLeft,
|
||||
marginRight: _marginRight,
|
||||
marginTop: _marginTop,
|
||||
paddingBottom: _paddingBottom,
|
||||
paddingLeft: _paddingLeft,
|
||||
paddingRight: _paddingRight,
|
||||
paddingTop: _paddingTop,
|
||||
width: _width,
|
||||
...textStyle
|
||||
}) => textStyle,
|
||||
);
|
||||
|
||||
const useSectionItemsContext = () => use(SectionItemsContext);
|
||||
|
||||
const getChildKey = (child: ReactNode, fallbackIndex: number) => {
|
||||
@@ -154,13 +184,41 @@ const SectionShell = ({ sectionId, title, showHeading = true, children }: Sectio
|
||||
const sectionStyle = useTemplateStyle("section");
|
||||
const sectionRuleStyle = useSectionStyleRule("section");
|
||||
const sectionHeadingStyle = useTemplateStyle("sectionHeading");
|
||||
const sectionHeadingContainerStyle = useTemplateStyle("sectionHeadingContainer");
|
||||
const sectionHeadingRuleStyle = useSectionStyleRule("heading");
|
||||
const sectionTitle = getResumeSectionTitle(data, sectionId, title);
|
||||
const sectionIcon = getResumeSectionIcon(data, sectionId);
|
||||
const showIcon = Boolean(sectionIcon) && !data.metadata.page.hideSectionIcons;
|
||||
|
||||
if (!showIcon) {
|
||||
// No icon: render heading exactly as before (no structural change)
|
||||
return (
|
||||
<View style={composeStyles(sectionStyle, sectionRuleStyle)}>
|
||||
{showHeading && (
|
||||
<Heading style={composeStyles(sectionHeadingStyle, sectionHeadingRuleStyle)}>{sectionTitle}</Heading>
|
||||
)}
|
||||
{children}
|
||||
</View>
|
||||
);
|
||||
}
|
||||
|
||||
// With icon: wrap in a flex row container that inherits the heading's border/decoration
|
||||
return (
|
||||
<View style={composeStyles(sectionStyle, sectionRuleStyle)}>
|
||||
{showHeading && (
|
||||
<Heading style={composeStyles(sectionHeadingStyle, sectionHeadingRuleStyle)}>{sectionTitle}</Heading>
|
||||
<View
|
||||
style={composeStyles(
|
||||
sectionHeadingStyle,
|
||||
defaultSectionHeadingContainerStyle,
|
||||
sectionHeadingContainerStyle,
|
||||
sectionHeadingRuleStyle,
|
||||
)}
|
||||
>
|
||||
<SectionHeadingIcon name={sectionIcon as IconName} />
|
||||
<Heading style={getSectionHeadingTextStyle(sectionHeadingStyle, sectionHeadingRuleStyle)}>
|
||||
{sectionTitle}
|
||||
</Heading>
|
||||
</View>
|
||||
)}
|
||||
{children}
|
||||
</View>
|
||||
|
||||
@@ -66,6 +66,8 @@ export type TemplateStyleSlots = {
|
||||
sectionItemHeader?: TemplateStyleSlot;
|
||||
section?: TemplateStyleSlot;
|
||||
sectionHeading?: TemplateStyleSlot;
|
||||
sectionHeadingContainer?: TemplateStyleSlot;
|
||||
sectionHeadingIcon?: TemplateIconSlot;
|
||||
sectionItems?: TemplateStyleSlot;
|
||||
item?: TemplateStyleSlot;
|
||||
levelContainer?: TemplateStyleSlot;
|
||||
|
||||
@@ -1,5 +1,6 @@
|
||||
import { describe, expect, it } from "vitest";
|
||||
import {
|
||||
baseSectionSchema,
|
||||
basicsSchema,
|
||||
customFieldSchema,
|
||||
experienceItemSchema,
|
||||
@@ -10,6 +11,7 @@ import {
|
||||
skillItemSchema,
|
||||
styleRuleSchema,
|
||||
styleRulesSchema,
|
||||
summarySchema,
|
||||
websiteSchema,
|
||||
} from "./data";
|
||||
import { defaultResumeData } from "./default";
|
||||
@@ -271,6 +273,41 @@ describe("pageSchema", () => {
|
||||
expect(pageSchema.safeParse(valid).success).toBe(true);
|
||||
}
|
||||
});
|
||||
|
||||
it("defaults hideSectionIcons to true when missing", () => {
|
||||
const { hideSectionIcons: _, ...pageWithout } = defaultResumeData.metadata.page;
|
||||
const result = pageSchema.safeParse(pageWithout);
|
||||
expect(result.success).toBe(true);
|
||||
if (result.success) expect(result.data.hideSectionIcons).toBe(true);
|
||||
});
|
||||
});
|
||||
|
||||
describe("baseSectionSchema", () => {
|
||||
it("defaults icon to empty string when missing", () => {
|
||||
const result = baseSectionSchema.safeParse({ title: "Test", columns: 1, hidden: false });
|
||||
expect(result.success).toBe(true);
|
||||
if (result.success) expect(result.data.icon).toBe("");
|
||||
});
|
||||
|
||||
it("accepts a custom icon value", () => {
|
||||
const result = baseSectionSchema.safeParse({ title: "Test", icon: "rocket", columns: 1, hidden: false });
|
||||
expect(result.success).toBe(true);
|
||||
if (result.success) expect(result.data.icon).toBe("rocket");
|
||||
});
|
||||
|
||||
it("accepts 'none' as a valid icon value", () => {
|
||||
const result = baseSectionSchema.safeParse({ title: "Test", icon: "none", columns: 1, hidden: false });
|
||||
expect(result.success).toBe(true);
|
||||
if (result.success) expect(result.data.icon).toBe("none");
|
||||
});
|
||||
});
|
||||
|
||||
describe("summarySchema", () => {
|
||||
it("defaults icon to empty string when missing", () => {
|
||||
const result = summarySchema.safeParse({ title: "", columns: 1, hidden: false, content: "" });
|
||||
expect(result.success).toBe(true);
|
||||
if (result.success) expect(result.data.icon).toBe("");
|
||||
});
|
||||
});
|
||||
|
||||
describe("styleRulesSchema", () => {
|
||||
|
||||
@@ -94,6 +94,12 @@ export const basicsSchema = z.object({
|
||||
|
||||
export const summarySchema = z.object({
|
||||
title: z.string().describe("The title of the summary of the resume."),
|
||||
icon: z
|
||||
.string()
|
||||
.catch("")
|
||||
.describe(
|
||||
"Phosphor icon name to display before the summary section title in the PDF output. Empty string uses the default summary icon; 'none' hides the icon.",
|
||||
),
|
||||
columns: z.number().int().min(1).max(6).catch(1).describe("The number of columns the summary should span across."),
|
||||
hidden: z.boolean().describe("Whether to hide the summary from the resume."),
|
||||
content: z.string().describe("The content of the summary of the resume. This should be a HTML-formatted string."),
|
||||
@@ -271,6 +277,12 @@ export type CoverLetterItem = z.infer<typeof coverLetterItemSchema>;
|
||||
|
||||
export const baseSectionSchema = z.object({
|
||||
title: z.string().describe("The title of the section."),
|
||||
icon: z
|
||||
.string()
|
||||
.catch("")
|
||||
.describe(
|
||||
"Phosphor icon name to display before the section title in the PDF output. Empty string uses the default section icon; 'none' hides the icon.",
|
||||
),
|
||||
columns: z.number().int().min(1).max(6).catch(1).describe("The number of columns the section should span across."),
|
||||
hidden: z.boolean().describe("Whether to hide the section from the resume."),
|
||||
});
|
||||
@@ -457,7 +469,11 @@ export const pageSchema = z.object({
|
||||
.string()
|
||||
.describe("The locale of the page. Used for displaying pre-translated section headings, if not overridden.")
|
||||
.catch("en-US"),
|
||||
hideIcons: z.boolean().describe("Whether to hide the icons of the sections.").catch(false),
|
||||
hideIcons: z.boolean().describe("Whether to hide the item-level icons (skills, profiles, interests).").catch(false),
|
||||
hideSectionIcons: z
|
||||
.boolean()
|
||||
.describe("Whether to hide the section heading icons displayed before section titles.")
|
||||
.catch(true),
|
||||
});
|
||||
|
||||
export const levelDesignSchema = z.object({
|
||||
|
||||
@@ -24,6 +24,7 @@ export const defaultResumeData: ResumeData = {
|
||||
},
|
||||
summary: {
|
||||
title: "",
|
||||
icon: "article",
|
||||
columns: 1,
|
||||
hidden: false,
|
||||
content: "",
|
||||
@@ -31,72 +32,84 @@ export const defaultResumeData: ResumeData = {
|
||||
sections: {
|
||||
profiles: {
|
||||
title: "",
|
||||
icon: "messenger-logo",
|
||||
columns: 1,
|
||||
hidden: false,
|
||||
items: [],
|
||||
},
|
||||
experience: {
|
||||
title: "",
|
||||
icon: "briefcase",
|
||||
columns: 1,
|
||||
hidden: false,
|
||||
items: [],
|
||||
},
|
||||
education: {
|
||||
title: "",
|
||||
icon: "graduation-cap",
|
||||
columns: 1,
|
||||
hidden: false,
|
||||
items: [],
|
||||
},
|
||||
projects: {
|
||||
title: "",
|
||||
icon: "code-simple",
|
||||
columns: 1,
|
||||
hidden: false,
|
||||
items: [],
|
||||
},
|
||||
skills: {
|
||||
title: "",
|
||||
icon: "compass-tool",
|
||||
columns: 1,
|
||||
hidden: false,
|
||||
items: [],
|
||||
},
|
||||
languages: {
|
||||
title: "",
|
||||
icon: "translate",
|
||||
columns: 1,
|
||||
hidden: false,
|
||||
items: [],
|
||||
},
|
||||
interests: {
|
||||
title: "",
|
||||
icon: "football",
|
||||
columns: 1,
|
||||
hidden: false,
|
||||
items: [],
|
||||
},
|
||||
awards: {
|
||||
title: "",
|
||||
icon: "trophy",
|
||||
columns: 1,
|
||||
hidden: false,
|
||||
items: [],
|
||||
},
|
||||
certifications: {
|
||||
title: "",
|
||||
icon: "certificate",
|
||||
columns: 1,
|
||||
hidden: false,
|
||||
items: [],
|
||||
},
|
||||
publications: {
|
||||
title: "",
|
||||
icon: "books",
|
||||
columns: 1,
|
||||
hidden: false,
|
||||
items: [],
|
||||
},
|
||||
volunteer: {
|
||||
title: "",
|
||||
icon: "hand-heart",
|
||||
columns: 1,
|
||||
hidden: false,
|
||||
items: [],
|
||||
},
|
||||
references: {
|
||||
title: "",
|
||||
icon: "phone",
|
||||
columns: 1,
|
||||
hidden: false,
|
||||
items: [],
|
||||
@@ -123,6 +136,7 @@ export const defaultResumeData: ResumeData = {
|
||||
format: "a4",
|
||||
locale: "en-US",
|
||||
hideIcons: false,
|
||||
hideSectionIcons: true,
|
||||
},
|
||||
design: {
|
||||
colors: {
|
||||
|
||||
@@ -40,6 +40,7 @@ export const sampleResumeData: ResumeData = {
|
||||
},
|
||||
summary: {
|
||||
title: "",
|
||||
icon: "article",
|
||||
columns: 1,
|
||||
hidden: false,
|
||||
content:
|
||||
@@ -48,6 +49,7 @@ export const sampleResumeData: ResumeData = {
|
||||
sections: {
|
||||
profiles: {
|
||||
title: "",
|
||||
icon: "messenger-logo",
|
||||
columns: 1,
|
||||
hidden: false,
|
||||
items: [
|
||||
@@ -81,6 +83,7 @@ export const sampleResumeData: ResumeData = {
|
||||
},
|
||||
experience: {
|
||||
title: "",
|
||||
icon: "briefcase",
|
||||
columns: 1,
|
||||
hidden: false,
|
||||
items: [
|
||||
@@ -104,6 +107,7 @@ export const sampleResumeData: ResumeData = {
|
||||
},
|
||||
education: {
|
||||
title: "",
|
||||
icon: "graduation-cap",
|
||||
columns: 1,
|
||||
hidden: false,
|
||||
items: [
|
||||
@@ -128,6 +132,7 @@ export const sampleResumeData: ResumeData = {
|
||||
},
|
||||
projects: {
|
||||
title: "",
|
||||
icon: "code-simple",
|
||||
columns: 1,
|
||||
hidden: false,
|
||||
items: [
|
||||
@@ -174,6 +179,7 @@ export const sampleResumeData: ResumeData = {
|
||||
},
|
||||
skills: {
|
||||
title: "",
|
||||
icon: "compass-tool",
|
||||
columns: 1,
|
||||
hidden: false,
|
||||
items: [
|
||||
@@ -241,6 +247,7 @@ export const sampleResumeData: ResumeData = {
|
||||
},
|
||||
languages: {
|
||||
title: "",
|
||||
icon: "translate",
|
||||
columns: 1,
|
||||
hidden: false,
|
||||
items: [
|
||||
@@ -262,6 +269,7 @@ export const sampleResumeData: ResumeData = {
|
||||
},
|
||||
interests: {
|
||||
title: "",
|
||||
icon: "football",
|
||||
columns: 1,
|
||||
hidden: false,
|
||||
items: [
|
||||
@@ -301,6 +309,7 @@ export const sampleResumeData: ResumeData = {
|
||||
},
|
||||
awards: {
|
||||
title: "",
|
||||
icon: "trophy",
|
||||
columns: 1,
|
||||
hidden: false,
|
||||
items: [
|
||||
@@ -336,6 +345,7 @@ export const sampleResumeData: ResumeData = {
|
||||
},
|
||||
certifications: {
|
||||
title: "",
|
||||
icon: "certificate",
|
||||
columns: 1,
|
||||
hidden: false,
|
||||
items: [
|
||||
@@ -369,6 +379,7 @@ export const sampleResumeData: ResumeData = {
|
||||
},
|
||||
publications: {
|
||||
title: "",
|
||||
icon: "books",
|
||||
columns: 1,
|
||||
hidden: false,
|
||||
items: [
|
||||
@@ -404,6 +415,7 @@ export const sampleResumeData: ResumeData = {
|
||||
},
|
||||
volunteer: {
|
||||
title: "",
|
||||
icon: "hand-heart",
|
||||
columns: 2,
|
||||
hidden: false,
|
||||
items: [
|
||||
@@ -439,6 +451,7 @@ export const sampleResumeData: ResumeData = {
|
||||
},
|
||||
references: {
|
||||
title: "",
|
||||
icon: "phone",
|
||||
columns: 1,
|
||||
hidden: false,
|
||||
items: [
|
||||
@@ -461,6 +474,7 @@ export const sampleResumeData: ResumeData = {
|
||||
customSections: [
|
||||
{
|
||||
title: "",
|
||||
icon: "briefcase",
|
||||
columns: 1,
|
||||
hidden: false,
|
||||
id: "019becaf-0b87-769d-98a6-46ccf558c0e8",
|
||||
@@ -502,6 +516,7 @@ export const sampleResumeData: ResumeData = {
|
||||
},
|
||||
{
|
||||
title: "Cover Letter",
|
||||
icon: "envelope-simple",
|
||||
columns: 1,
|
||||
hidden: false,
|
||||
id: "019bef5b-0b3d-7e2a-8a7c-12d9e23a4f6b",
|
||||
@@ -553,6 +568,7 @@ export const sampleResumeData: ResumeData = {
|
||||
format: "a4",
|
||||
locale: "en-US",
|
||||
hideIcons: false,
|
||||
hideSectionIcons: false,
|
||||
},
|
||||
design: {
|
||||
level: {
|
||||
|
||||
@@ -0,0 +1,21 @@
|
||||
import type { CustomSectionType } from "./data";
|
||||
|
||||
export const defaultSectionIconNames = {
|
||||
summary: "article",
|
||||
profiles: "messenger-logo",
|
||||
experience: "briefcase",
|
||||
education: "graduation-cap",
|
||||
projects: "code-simple",
|
||||
skills: "compass-tool",
|
||||
languages: "translate",
|
||||
interests: "football",
|
||||
awards: "trophy",
|
||||
certifications: "certificate",
|
||||
publications: "books",
|
||||
volunteer: "hand-heart",
|
||||
references: "phone",
|
||||
"cover-letter": "envelope-simple",
|
||||
} as const satisfies Record<CustomSectionType, string>;
|
||||
|
||||
export const getDefaultSectionIconName = (sectionType: CustomSectionType): string =>
|
||||
defaultSectionIconNames[sectionType];
|
||||
Generated
+32
-32
@@ -64,7 +64,7 @@ importers:
|
||||
version: 6.0.3
|
||||
vitest:
|
||||
specifier: ^4.1.8
|
||||
version: 4.1.8(@opentelemetry/api@1.9.1)(@types/node@25.9.1)(@vitest/coverage-v8@4.1.8)(happy-dom@20.9.0)(msw@2.14.6(@types/node@25.9.1)(typescript@6.0.3))(vite@8.0.15(@types/node@25.9.1)(esbuild@0.28.0)(jiti@2.7.0)(tsx@4.22.4)(yaml@2.9.0))
|
||||
version: 4.1.8(@opentelemetry/api@1.9.1)(@types/node@25.9.1)(@vitest/coverage-v8@4.1.8)(happy-dom@20.9.0)(msw@2.14.6(@types/node@25.9.1)(typescript@6.0.3))(vite@8.0.16(@types/node@25.9.1)(esbuild@0.28.0)(jiti@2.7.0)(tsx@4.22.4)(yaml@2.9.0))
|
||||
|
||||
apps/server:
|
||||
dependencies:
|
||||
@@ -263,7 +263,7 @@ importers:
|
||||
version: 6.0.3
|
||||
vitest:
|
||||
specifier: ^4.1.8
|
||||
version: 4.1.8(@opentelemetry/api@1.9.1)(@types/node@25.9.1)(@vitest/coverage-v8@4.1.8)(happy-dom@20.9.0)(msw@2.14.6(@types/node@25.9.1)(typescript@6.0.3))(vite@8.0.15(@types/node@25.9.1)(esbuild@0.28.0)(jiti@2.7.0)(tsx@4.22.4)(yaml@2.9.0))
|
||||
version: 4.1.8(@opentelemetry/api@1.9.1)(@types/node@25.9.1)(@vitest/coverage-v8@4.1.8)(happy-dom@20.9.0)(msw@2.14.6(@types/node@25.9.1)(typescript@6.0.3))(vite@8.0.16(@types/node@25.9.1)(esbuild@0.28.0)(jiti@2.7.0)(tsx@4.22.4)(yaml@2.9.0))
|
||||
|
||||
apps/web:
|
||||
dependencies:
|
||||
@@ -347,7 +347,7 @@ importers:
|
||||
version: link:../../packages/utils
|
||||
'@tailwindcss/vite':
|
||||
specifier: ^4.3.0
|
||||
version: 4.3.0(vite@8.0.15(@types/node@25.9.1)(esbuild@0.28.0)(jiti@2.7.0)(tsx@4.22.4)(yaml@2.9.0))
|
||||
version: 4.3.0(vite@8.0.16(@types/node@25.9.1)(esbuild@0.28.0)(jiti@2.7.0)(tsx@4.22.4)(yaml@2.9.0))
|
||||
'@tanstack/react-form':
|
||||
specifier: ^1.33.0
|
||||
version: 1.33.0(react-dom@19.2.6(react@19.2.6))(react@19.2.6)
|
||||
@@ -477,16 +477,16 @@ importers:
|
||||
version: 6.1.0
|
||||
'@lingui/vite-plugin':
|
||||
specifier: ^6.1.0
|
||||
version: 6.1.0(@babel/core@7.29.7)(@lingui/babel-plugin-lingui-macro@6.1.0)(@rolldown/plugin-babel@0.2.3(@babel/core@7.29.7)(@babel/runtime@7.29.7)(rolldown@1.0.3)(vite@8.0.15(@types/node@25.9.1)(esbuild@0.28.0)(jiti@2.7.0)(tsx@4.22.4)(yaml@2.9.0)))(babel-plugin-macros@3.1.0)(rolldown@1.0.3)(vite@8.0.15(@types/node@25.9.1)(esbuild@0.28.0)(jiti@2.7.0)(tsx@4.22.4)(yaml@2.9.0))
|
||||
version: 6.1.0(@babel/core@7.29.7)(@lingui/babel-plugin-lingui-macro@6.1.0)(@rolldown/plugin-babel@0.2.3(@babel/core@7.29.7)(@babel/runtime@7.29.7)(rolldown@1.0.3)(vite@8.0.16(@types/node@25.9.1)(esbuild@0.28.0)(jiti@2.7.0)(tsx@4.22.4)(yaml@2.9.0)))(babel-plugin-macros@3.1.0)(rolldown@1.0.3)(vite@8.0.16(@types/node@25.9.1)(esbuild@0.28.0)(jiti@2.7.0)(tsx@4.22.4)(yaml@2.9.0))
|
||||
'@reactive-resume/config':
|
||||
specifier: workspace:*
|
||||
version: link:../../packages/config
|
||||
'@rolldown/plugin-babel':
|
||||
specifier: ^0.2.3
|
||||
version: 0.2.3(@babel/core@7.29.7)(@babel/runtime@7.29.7)(rolldown@1.0.3)(vite@8.0.15(@types/node@25.9.1)(esbuild@0.28.0)(jiti@2.7.0)(tsx@4.22.4)(yaml@2.9.0))
|
||||
version: 0.2.3(@babel/core@7.29.7)(@babel/runtime@7.29.7)(rolldown@1.0.3)(vite@8.0.16(@types/node@25.9.1)(esbuild@0.28.0)(jiti@2.7.0)(tsx@4.22.4)(yaml@2.9.0))
|
||||
'@tanstack/router-plugin':
|
||||
specifier: ^1.168.13
|
||||
version: 1.168.13(@tanstack/react-router@1.170.10(react-dom@19.2.6(react@19.2.6))(react@19.2.6))(vite@8.0.15(@types/node@25.9.1)(esbuild@0.28.0)(jiti@2.7.0)(tsx@4.22.4)(yaml@2.9.0))
|
||||
version: 1.168.13(@tanstack/react-router@1.170.10(react-dom@19.2.6(react@19.2.6))(react@19.2.6))(vite@8.0.16(@types/node@25.9.1)(esbuild@0.28.0)(jiti@2.7.0)(tsx@4.22.4)(yaml@2.9.0))
|
||||
'@types/babel__core':
|
||||
specifier: ^7.20.5
|
||||
version: 7.20.5
|
||||
@@ -504,7 +504,7 @@ importers:
|
||||
version: 7.0.0-dev.20260527.2
|
||||
'@vitejs/plugin-react':
|
||||
specifier: ^6.0.2
|
||||
version: 6.0.2(@rolldown/plugin-babel@0.2.3(@babel/core@7.29.7)(@babel/runtime@7.29.7)(rolldown@1.0.3)(vite@8.0.15(@types/node@25.9.1)(esbuild@0.28.0)(jiti@2.7.0)(tsx@4.22.4)(yaml@2.9.0)))(babel-plugin-react-compiler@1.0.0)(vite@8.0.15(@types/node@25.9.1)(esbuild@0.28.0)(jiti@2.7.0)(tsx@4.22.4)(yaml@2.9.0))
|
||||
version: 6.0.2(@rolldown/plugin-babel@0.2.3(@babel/core@7.29.7)(@babel/runtime@7.29.7)(rolldown@1.0.3)(vite@8.0.16(@types/node@25.9.1)(esbuild@0.28.0)(jiti@2.7.0)(tsx@4.22.4)(yaml@2.9.0)))(babel-plugin-react-compiler@1.0.0)(vite@8.0.16(@types/node@25.9.1)(esbuild@0.28.0)(jiti@2.7.0)(tsx@4.22.4)(yaml@2.9.0))
|
||||
babel-plugin-macros:
|
||||
specifier: ^3.1.0
|
||||
version: 3.1.0
|
||||
@@ -515,8 +515,8 @@ importers:
|
||||
specifier: ^6.0.3
|
||||
version: 6.0.3
|
||||
vite:
|
||||
specifier: ^8.0.15
|
||||
version: 8.0.15(@types/node@25.9.1)(esbuild@0.28.0)(jiti@2.7.0)(tsx@4.22.4)(yaml@2.9.0)
|
||||
specifier: ^8.0.16
|
||||
version: 8.0.16(@types/node@25.9.1)(esbuild@0.28.0)(jiti@2.7.0)(tsx@4.22.4)(yaml@2.9.0)
|
||||
|
||||
packages/ai:
|
||||
dependencies:
|
||||
@@ -912,7 +912,7 @@ importers:
|
||||
version: 6.0.3
|
||||
vitest:
|
||||
specifier: ^4.1.8
|
||||
version: 4.1.8(@opentelemetry/api@1.9.1)(@types/node@25.9.1)(@vitest/coverage-v8@4.1.8)(happy-dom@20.9.0)(msw@2.14.6(@types/node@25.9.1)(typescript@6.0.3))(vite@8.0.15(@types/node@25.9.1)(esbuild@0.28.0)(jiti@2.7.0)(tsx@4.22.4)(yaml@2.9.0))
|
||||
version: 4.1.8(@opentelemetry/api@1.9.1)(@types/node@25.9.1)(@vitest/coverage-v8@4.1.8)(happy-dom@20.9.0)(msw@2.14.6(@types/node@25.9.1)(typescript@6.0.3))(vite@8.0.16(@types/node@25.9.1)(esbuild@0.28.0)(jiti@2.7.0)(tsx@4.22.4)(yaml@2.9.0))
|
||||
|
||||
packages/pdf:
|
||||
dependencies:
|
||||
@@ -7343,8 +7343,8 @@ packages:
|
||||
resolution: {integrity: sha512-t20zYkrSf868+j/p31cRIGN28Phrjm3nRSLR2fyc2tiWi4cZGVdv68yNlwnIINTkMTmPoMiSlc0OadaO7DXZaQ==}
|
||||
engines: {node: '>= 6'}
|
||||
|
||||
vite@8.0.15:
|
||||
resolution: {integrity: sha512-qpgllRxrLqwsMAGRdLhsEr9bepaOQk1rxH1xT2coBXLaEB/bfkqQj1j7RMxwMfnYrvO1ZnFMiwX+wBVgnsyn0g==}
|
||||
vite@8.0.16:
|
||||
resolution: {integrity: sha512-h9bXPmJichP5fLmVQo3PyaGSDE2n3aPuomeAlVRm0JLmt4rY6zmPKd59HYI4LNW8oTK7tlTsuC7l/m7awx9Jcw==}
|
||||
engines: {node: ^20.19.0 || >=22.12.0}
|
||||
hasBin: true
|
||||
peerDependencies:
|
||||
@@ -8936,15 +8936,15 @@ snapshots:
|
||||
transitivePeerDependencies:
|
||||
- supports-color
|
||||
|
||||
'@lingui/vite-plugin@6.1.0(@babel/core@7.29.7)(@lingui/babel-plugin-lingui-macro@6.1.0)(@rolldown/plugin-babel@0.2.3(@babel/core@7.29.7)(@babel/runtime@7.29.7)(rolldown@1.0.3)(vite@8.0.15(@types/node@25.9.1)(esbuild@0.28.0)(jiti@2.7.0)(tsx@4.22.4)(yaml@2.9.0)))(babel-plugin-macros@3.1.0)(rolldown@1.0.3)(vite@8.0.15(@types/node@25.9.1)(esbuild@0.28.0)(jiti@2.7.0)(tsx@4.22.4)(yaml@2.9.0))':
|
||||
'@lingui/vite-plugin@6.1.0(@babel/core@7.29.7)(@lingui/babel-plugin-lingui-macro@6.1.0)(@rolldown/plugin-babel@0.2.3(@babel/core@7.29.7)(@babel/runtime@7.29.7)(rolldown@1.0.3)(vite@8.0.16(@types/node@25.9.1)(esbuild@0.28.0)(jiti@2.7.0)(tsx@4.22.4)(yaml@2.9.0)))(babel-plugin-macros@3.1.0)(rolldown@1.0.3)(vite@8.0.16(@types/node@25.9.1)(esbuild@0.28.0)(jiti@2.7.0)(tsx@4.22.4)(yaml@2.9.0))':
|
||||
dependencies:
|
||||
'@lingui/cli': 6.1.0(babel-plugin-macros@3.1.0)
|
||||
'@lingui/conf': 6.1.0
|
||||
vite: 8.0.15(@types/node@25.9.1)(esbuild@0.28.0)(jiti@2.7.0)(tsx@4.22.4)(yaml@2.9.0)
|
||||
vite: 8.0.16(@types/node@25.9.1)(esbuild@0.28.0)(jiti@2.7.0)(tsx@4.22.4)(yaml@2.9.0)
|
||||
optionalDependencies:
|
||||
'@babel/core': 7.29.7
|
||||
'@lingui/babel-plugin-lingui-macro': 6.1.0
|
||||
'@rolldown/plugin-babel': 0.2.3(@babel/core@7.29.7)(@babel/runtime@7.29.7)(rolldown@1.0.3)(vite@8.0.15(@types/node@25.9.1)(esbuild@0.28.0)(jiti@2.7.0)(tsx@4.22.4)(yaml@2.9.0))
|
||||
'@rolldown/plugin-babel': 0.2.3(@babel/core@7.29.7)(@babel/runtime@7.29.7)(rolldown@1.0.3)(vite@8.0.16(@types/node@25.9.1)(esbuild@0.28.0)(jiti@2.7.0)(tsx@4.22.4)(yaml@2.9.0))
|
||||
rolldown: 1.0.3
|
||||
transitivePeerDependencies:
|
||||
- babel-plugin-macros
|
||||
@@ -9869,14 +9869,14 @@ snapshots:
|
||||
'@rolldown/binding-win32-x64-msvc@1.0.3':
|
||||
optional: true
|
||||
|
||||
'@rolldown/plugin-babel@0.2.3(@babel/core@7.29.7)(@babel/runtime@7.29.7)(rolldown@1.0.3)(vite@8.0.15(@types/node@25.9.1)(esbuild@0.28.0)(jiti@2.7.0)(tsx@4.22.4)(yaml@2.9.0))':
|
||||
'@rolldown/plugin-babel@0.2.3(@babel/core@7.29.7)(@babel/runtime@7.29.7)(rolldown@1.0.3)(vite@8.0.16(@types/node@25.9.1)(esbuild@0.28.0)(jiti@2.7.0)(tsx@4.22.4)(yaml@2.9.0))':
|
||||
dependencies:
|
||||
'@babel/core': 7.29.7
|
||||
picomatch: 4.0.4
|
||||
rolldown: 1.0.3
|
||||
optionalDependencies:
|
||||
'@babel/runtime': 7.29.7
|
||||
vite: 8.0.15(@types/node@25.9.1)(esbuild@0.28.0)(jiti@2.7.0)(tsx@4.22.4)(yaml@2.9.0)
|
||||
vite: 8.0.16(@types/node@25.9.1)(esbuild@0.28.0)(jiti@2.7.0)(tsx@4.22.4)(yaml@2.9.0)
|
||||
|
||||
'@rolldown/pluginutils@1.0.1': {}
|
||||
|
||||
@@ -10056,12 +10056,12 @@ snapshots:
|
||||
postcss-selector-parser: 6.0.10
|
||||
tailwindcss: 4.3.0
|
||||
|
||||
'@tailwindcss/vite@4.3.0(vite@8.0.15(@types/node@25.9.1)(esbuild@0.28.0)(jiti@2.7.0)(tsx@4.22.4)(yaml@2.9.0))':
|
||||
'@tailwindcss/vite@4.3.0(vite@8.0.16(@types/node@25.9.1)(esbuild@0.28.0)(jiti@2.7.0)(tsx@4.22.4)(yaml@2.9.0))':
|
||||
dependencies:
|
||||
'@tailwindcss/node': 4.3.0
|
||||
'@tailwindcss/oxide': 4.3.0
|
||||
tailwindcss: 4.3.0
|
||||
vite: 8.0.15(@types/node@25.9.1)(esbuild@0.28.0)(jiti@2.7.0)(tsx@4.22.4)(yaml@2.9.0)
|
||||
vite: 8.0.16(@types/node@25.9.1)(esbuild@0.28.0)(jiti@2.7.0)(tsx@4.22.4)(yaml@2.9.0)
|
||||
|
||||
'@tanstack/devtools-event-client@0.4.3': {}
|
||||
|
||||
@@ -10144,7 +10144,7 @@ snapshots:
|
||||
transitivePeerDependencies:
|
||||
- supports-color
|
||||
|
||||
'@tanstack/router-plugin@1.168.13(@tanstack/react-router@1.170.10(react-dom@19.2.6(react@19.2.6))(react@19.2.6))(vite@8.0.15(@types/node@25.9.1)(esbuild@0.28.0)(jiti@2.7.0)(tsx@4.22.4)(yaml@2.9.0))':
|
||||
'@tanstack/router-plugin@1.168.13(@tanstack/react-router@1.170.10(react-dom@19.2.6(react@19.2.6))(react@19.2.6))(vite@8.0.16(@types/node@25.9.1)(esbuild@0.28.0)(jiti@2.7.0)(tsx@4.22.4)(yaml@2.9.0))':
|
||||
dependencies:
|
||||
'@babel/core': 7.29.7
|
||||
'@babel/plugin-syntax-jsx': 7.29.7(@babel/core@7.29.7)
|
||||
@@ -10161,7 +10161,7 @@ snapshots:
|
||||
zod: 4.4.3
|
||||
optionalDependencies:
|
||||
'@tanstack/react-router': 1.170.10(react-dom@19.2.6(react@19.2.6))(react@19.2.6)
|
||||
vite: 8.0.15(@types/node@25.9.1)(esbuild@0.28.0)(jiti@2.7.0)(tsx@4.22.4)(yaml@2.9.0)
|
||||
vite: 8.0.16(@types/node@25.9.1)(esbuild@0.28.0)(jiti@2.7.0)(tsx@4.22.4)(yaml@2.9.0)
|
||||
transitivePeerDependencies:
|
||||
- supports-color
|
||||
|
||||
@@ -10645,12 +10645,12 @@ snapshots:
|
||||
|
||||
'@vercel/oidc@3.2.0': {}
|
||||
|
||||
'@vitejs/plugin-react@6.0.2(@rolldown/plugin-babel@0.2.3(@babel/core@7.29.7)(@babel/runtime@7.29.7)(rolldown@1.0.3)(vite@8.0.15(@types/node@25.9.1)(esbuild@0.28.0)(jiti@2.7.0)(tsx@4.22.4)(yaml@2.9.0)))(babel-plugin-react-compiler@1.0.0)(vite@8.0.15(@types/node@25.9.1)(esbuild@0.28.0)(jiti@2.7.0)(tsx@4.22.4)(yaml@2.9.0))':
|
||||
'@vitejs/plugin-react@6.0.2(@rolldown/plugin-babel@0.2.3(@babel/core@7.29.7)(@babel/runtime@7.29.7)(rolldown@1.0.3)(vite@8.0.16(@types/node@25.9.1)(esbuild@0.28.0)(jiti@2.7.0)(tsx@4.22.4)(yaml@2.9.0)))(babel-plugin-react-compiler@1.0.0)(vite@8.0.16(@types/node@25.9.1)(esbuild@0.28.0)(jiti@2.7.0)(tsx@4.22.4)(yaml@2.9.0))':
|
||||
dependencies:
|
||||
'@rolldown/pluginutils': 1.0.1
|
||||
vite: 8.0.15(@types/node@25.9.1)(esbuild@0.28.0)(jiti@2.7.0)(tsx@4.22.4)(yaml@2.9.0)
|
||||
vite: 8.0.16(@types/node@25.9.1)(esbuild@0.28.0)(jiti@2.7.0)(tsx@4.22.4)(yaml@2.9.0)
|
||||
optionalDependencies:
|
||||
'@rolldown/plugin-babel': 0.2.3(@babel/core@7.29.7)(@babel/runtime@7.29.7)(rolldown@1.0.3)(vite@8.0.15(@types/node@25.9.1)(esbuild@0.28.0)(jiti@2.7.0)(tsx@4.22.4)(yaml@2.9.0))
|
||||
'@rolldown/plugin-babel': 0.2.3(@babel/core@7.29.7)(@babel/runtime@7.29.7)(rolldown@1.0.3)(vite@8.0.16(@types/node@25.9.1)(esbuild@0.28.0)(jiti@2.7.0)(tsx@4.22.4)(yaml@2.9.0))
|
||||
babel-plugin-react-compiler: 1.0.0
|
||||
|
||||
'@vitest/coverage-v8@4.1.8(vitest@4.1.8)':
|
||||
@@ -10665,7 +10665,7 @@ snapshots:
|
||||
obug: 2.1.1
|
||||
std-env: 4.1.0
|
||||
tinyrainbow: 3.1.0
|
||||
vitest: 4.1.8(@opentelemetry/api@1.9.1)(@types/node@25.9.1)(@vitest/coverage-v8@4.1.8)(happy-dom@20.9.0)(msw@2.14.6(@types/node@25.9.1)(typescript@6.0.3))(vite@8.0.15(@types/node@25.9.1)(esbuild@0.28.0)(jiti@2.7.0)(tsx@4.22.4)(yaml@2.9.0))
|
||||
vitest: 4.1.8(@opentelemetry/api@1.9.1)(@types/node@25.9.1)(@vitest/coverage-v8@4.1.8)(happy-dom@20.9.0)(msw@2.14.6(@types/node@25.9.1)(typescript@6.0.3))(vite@8.0.16(@types/node@25.9.1)(esbuild@0.28.0)(jiti@2.7.0)(tsx@4.22.4)(yaml@2.9.0))
|
||||
|
||||
'@vitest/expect@4.1.8':
|
||||
dependencies:
|
||||
@@ -10676,14 +10676,14 @@ snapshots:
|
||||
chai: 6.2.2
|
||||
tinyrainbow: 3.1.0
|
||||
|
||||
'@vitest/mocker@4.1.8(msw@2.14.6(@types/node@25.9.1)(typescript@6.0.3))(vite@8.0.15(@types/node@25.9.1)(esbuild@0.28.0)(jiti@2.7.0)(tsx@4.22.4)(yaml@2.9.0))':
|
||||
'@vitest/mocker@4.1.8(msw@2.14.6(@types/node@25.9.1)(typescript@6.0.3))(vite@8.0.16(@types/node@25.9.1)(esbuild@0.28.0)(jiti@2.7.0)(tsx@4.22.4)(yaml@2.9.0))':
|
||||
dependencies:
|
||||
'@vitest/spy': 4.1.8
|
||||
estree-walker: 3.0.3
|
||||
magic-string: 0.30.21
|
||||
optionalDependencies:
|
||||
msw: 2.14.6(@types/node@25.9.1)(typescript@6.0.3)
|
||||
vite: 8.0.15(@types/node@25.9.1)(esbuild@0.28.0)(jiti@2.7.0)(tsx@4.22.4)(yaml@2.9.0)
|
||||
vite: 8.0.16(@types/node@25.9.1)(esbuild@0.28.0)(jiti@2.7.0)(tsx@4.22.4)(yaml@2.9.0)
|
||||
|
||||
'@vitest/pretty-format@4.1.8':
|
||||
dependencies:
|
||||
@@ -10870,7 +10870,7 @@ snapshots:
|
||||
pg: 8.21.0
|
||||
react: 19.2.6
|
||||
react-dom: 19.2.6(react@19.2.6)
|
||||
vitest: 4.1.8(@opentelemetry/api@1.9.1)(@types/node@25.9.1)(@vitest/coverage-v8@4.1.8)(happy-dom@20.9.0)(msw@2.14.6(@types/node@25.9.1)(typescript@6.0.3))(vite@8.0.15(@types/node@25.9.1)(esbuild@0.28.0)(jiti@2.7.0)(tsx@4.22.4)(yaml@2.9.0))
|
||||
vitest: 4.1.8(@opentelemetry/api@1.9.1)(@types/node@25.9.1)(@vitest/coverage-v8@4.1.8)(happy-dom@20.9.0)(msw@2.14.6(@types/node@25.9.1)(typescript@6.0.3))(vite@8.0.16(@types/node@25.9.1)(esbuild@0.28.0)(jiti@2.7.0)(tsx@4.22.4)(yaml@2.9.0))
|
||||
transitivePeerDependencies:
|
||||
- '@cloudflare/workers-types'
|
||||
- '@opentelemetry/api'
|
||||
@@ -13902,7 +13902,7 @@ snapshots:
|
||||
string_decoder: 1.3.0
|
||||
util-deprecate: 1.0.2
|
||||
|
||||
vite@8.0.15(@types/node@25.9.1)(esbuild@0.28.0)(jiti@2.7.0)(tsx@4.22.4)(yaml@2.9.0):
|
||||
vite@8.0.16(@types/node@25.9.1)(esbuild@0.28.0)(jiti@2.7.0)(tsx@4.22.4)(yaml@2.9.0):
|
||||
dependencies:
|
||||
lightningcss: 1.32.0
|
||||
picomatch: 4.0.4
|
||||
@@ -13917,10 +13917,10 @@ snapshots:
|
||||
tsx: 4.22.4
|
||||
yaml: 2.9.0
|
||||
|
||||
vitest@4.1.8(@opentelemetry/api@1.9.1)(@types/node@25.9.1)(@vitest/coverage-v8@4.1.8)(happy-dom@20.9.0)(msw@2.14.6(@types/node@25.9.1)(typescript@6.0.3))(vite@8.0.15(@types/node@25.9.1)(esbuild@0.28.0)(jiti@2.7.0)(tsx@4.22.4)(yaml@2.9.0)):
|
||||
vitest@4.1.8(@opentelemetry/api@1.9.1)(@types/node@25.9.1)(@vitest/coverage-v8@4.1.8)(happy-dom@20.9.0)(msw@2.14.6(@types/node@25.9.1)(typescript@6.0.3))(vite@8.0.16(@types/node@25.9.1)(esbuild@0.28.0)(jiti@2.7.0)(tsx@4.22.4)(yaml@2.9.0)):
|
||||
dependencies:
|
||||
'@vitest/expect': 4.1.8
|
||||
'@vitest/mocker': 4.1.8(msw@2.14.6(@types/node@25.9.1)(typescript@6.0.3))(vite@8.0.15(@types/node@25.9.1)(esbuild@0.28.0)(jiti@2.7.0)(tsx@4.22.4)(yaml@2.9.0))
|
||||
'@vitest/mocker': 4.1.8(msw@2.14.6(@types/node@25.9.1)(typescript@6.0.3))(vite@8.0.16(@types/node@25.9.1)(esbuild@0.28.0)(jiti@2.7.0)(tsx@4.22.4)(yaml@2.9.0))
|
||||
'@vitest/pretty-format': 4.1.8
|
||||
'@vitest/runner': 4.1.8
|
||||
'@vitest/snapshot': 4.1.8
|
||||
@@ -13937,7 +13937,7 @@ snapshots:
|
||||
tinyexec: 1.2.4
|
||||
tinyglobby: 0.2.17
|
||||
tinyrainbow: 3.1.0
|
||||
vite: 8.0.15(@types/node@25.9.1)(esbuild@0.28.0)(jiti@2.7.0)(tsx@4.22.4)(yaml@2.9.0)
|
||||
vite: 8.0.16(@types/node@25.9.1)(esbuild@0.28.0)(jiti@2.7.0)(tsx@4.22.4)(yaml@2.9.0)
|
||||
why-is-node-running: 2.3.0
|
||||
optionalDependencies:
|
||||
'@opentelemetry/api': 1.9.1
|
||||
|
||||
Reference in New Issue
Block a user