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:
JamesGoslings
2026-06-01 20:02:42 +08:00
committed by GitHub
parent 1522794733
commit b932711f08
81 changed files with 1153 additions and 306 deletions
+8 -4
View File
@@ -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 -4
View File
@@ -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 -4
View File
@@ -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 -4
View File
@@ -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 -4
View File
@@ -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 -4
View File
@@ -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 -4
View File
@@ -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 -4
View File
@@ -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 -4
View File
@@ -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 -4
View File
@@ -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 -4
View File
@@ -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 -4
View File
@@ -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"
+7 -2
View File
@@ -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 -4
View File
@@ -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 -4
View File
@@ -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 -4
View File
@@ -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 -4
View File
@@ -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 -4
View File
@@ -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 -4
View File
@@ -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 -4
View File
@@ -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 -4
View File
@@ -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 -4
View File
@@ -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 -4
View File
@@ -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 -4
View File
@@ -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 -4
View File
@@ -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 -4
View File
@@ -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 -4
View File
@@ -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 -4
View File
@@ -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 -4
View File
@@ -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 -4
View File
@@ -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 -4
View File
@@ -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 -4
View File
@@ -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 -4
View File
@@ -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 -4
View File
@@ -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 -4
View File
@@ -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 -4
View File
@@ -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 -4
View File
@@ -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 -4
View File
@@ -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 -4
View File
@@ -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 -4
View File
@@ -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 -4
View File
@@ -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 -4
View File
@@ -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 -4
View File
@@ -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 -4
View File
@@ -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 -4
View File
@@ -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 -4
View File
@@ -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 -4
View File
@@ -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 -4
View File
@@ -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 -4
View File
@@ -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 -4
View File
@@ -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 -4
View File
@@ -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 -4
View File
@@ -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 -4
View File
@@ -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 -4
View File
@@ -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 "祖魯語"
+6 -1
View File
@@ -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 ""
+1 -1
View File
@@ -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"');
});
});
+111 -47
View File
@@ -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: [],
+2
View File
@@ -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],
+2
View File
@@ -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>
)}
+8 -1
View File
@@ -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: {
+177
View File
@@ -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("");
});
});
});
+29
View File
@@ -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);
};
+2
View File
@@ -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"');
});
});
+60 -2
View File
@@ -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;
+37
View File
@@ -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", () => {
+17 -1
View File
@@ -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({
+14
View File
@@ -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: {
+16
View File
@@ -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];
+32 -32
View File
@@ -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