Feature: Implement Embedding Links in Titles of all Section Items (#2662)

* feat: add options.showLinkInTitle to baseItemSchema

Add itemOptionsSchema with showLinkInTitle boolean property to control
whether the website URL is rendered as a hyperlink on the title instead
of a separate link at the bottom. The field is optional for backwards
compatibility with existing resumes.

Co-authored-by: Cursor <cursoragent@cursor.com>

* feat: add hideLabelButton prop to URLInput

When hideLabelButton is true, the tag/label button is hidden from the
URL input. This is used when showLinkInTitle is enabled since the label
is not needed when the link is shown in the title.

Co-authored-by: Cursor <cursoragent@cursor.com>

* feat: create LinkedTitle component for title-as-link rendering

Add a reusable component that conditionally renders the title as a
hyperlink when showLinkInTitle is true and a website URL is provided.

Co-authored-by: Cursor <cursoragent@cursor.com>

* feat: add showLinkInTitle option to experience section

- Add Switch toggle in experience dialog for showLinkInTitle option
- Update URLInput to hide label button when showLinkInTitle is enabled
- Use LinkedTitle component in experience-item for conditional link rendering
- Hide bottom website link when showLinkInTitle is enabled

Co-authored-by: Cursor <cursoragent@cursor.com>

* feat: add showLinkInTitle option to all section items

- Update education, projects, awards, certifications, publications,
  volunteer, references, and profiles dialogs with Switch toggle
- Add LinkedTitle component usage in all corresponding item components
- Conditionally hide bottom website link when showLinkInTitle is enabled
- Add hideLabelButton prop to URLInput when showLinkInTitle is enabled

Co-authored-by: Cursor <cursoragent@cursor.com>

* chore: extract i18n strings for showLinkInTitle feature

Add "Show link in title" translation string to all locale catalogs.

Co-authored-by: Cursor <cursoragent@cursor.com>

* update dependencies, fix an issue with glalie template and non-clickable links, fix better-auth type error

* remove unused export

---------

Co-authored-by: Cursor <cursoragent@cursor.com>
This commit is contained in:
Amruth Pillai
2026-01-31 12:16:23 +01:00
committed by GitHub
parent 4d368ab6f6
commit 8d347f5162
82 changed files with 1085 additions and 193 deletions
BIN
View File
Binary file not shown.
+12 -1
View File
@@ -2081,6 +2081,18 @@ msgstr "ማካፈል"
msgid "Show"
msgstr "አሳይ"
#: src/dialogs/resume/sections/award.tsx
#: src/dialogs/resume/sections/certification.tsx
#: src/dialogs/resume/sections/education.tsx
#: src/dialogs/resume/sections/experience.tsx
#: src/dialogs/resume/sections/profile.tsx
#: src/dialogs/resume/sections/project.tsx
#: src/dialogs/resume/sections/publication.tsx
#: src/dialogs/resume/sections/reference.tsx
#: src/dialogs/resume/sections/volunteer.tsx
msgid "Show link in title"
msgstr ""
#: src/routes/builder/$resumeId/-sidebar/right/sections/layout/pages.tsx
msgid "Sidebar"
msgstr "የጎን አሞሌ"
@@ -2847,4 +2859,3 @@ msgstr "አጉር"
#: src/utils/locale.ts
msgid "Zulu"
msgstr "ዙሉ"
+12 -1
View File
@@ -2081,6 +2081,18 @@ msgstr "المشاركة"
msgid "Show"
msgstr "إظهار"
#: src/dialogs/resume/sections/award.tsx
#: src/dialogs/resume/sections/certification.tsx
#: src/dialogs/resume/sections/education.tsx
#: src/dialogs/resume/sections/experience.tsx
#: src/dialogs/resume/sections/profile.tsx
#: src/dialogs/resume/sections/project.tsx
#: src/dialogs/resume/sections/publication.tsx
#: src/dialogs/resume/sections/reference.tsx
#: src/dialogs/resume/sections/volunteer.tsx
msgid "Show link in title"
msgstr ""
#: src/routes/builder/$resumeId/-sidebar/right/sections/layout/pages.tsx
msgid "Sidebar"
msgstr "الشريط الجانبي"
@@ -2847,4 +2859,3 @@ msgstr "تصغير"
#: src/utils/locale.ts
msgid "Zulu"
msgstr "الزولو"
+12 -1
View File
@@ -2081,6 +2081,18 @@ msgstr "Paylaşma"
msgid "Show"
msgstr "Göstər"
#: src/dialogs/resume/sections/award.tsx
#: src/dialogs/resume/sections/certification.tsx
#: src/dialogs/resume/sections/education.tsx
#: src/dialogs/resume/sections/experience.tsx
#: src/dialogs/resume/sections/profile.tsx
#: src/dialogs/resume/sections/project.tsx
#: src/dialogs/resume/sections/publication.tsx
#: src/dialogs/resume/sections/reference.tsx
#: src/dialogs/resume/sections/volunteer.tsx
msgid "Show link in title"
msgstr ""
#: src/routes/builder/$resumeId/-sidebar/right/sections/layout/pages.tsx
msgid "Sidebar"
msgstr "Yan panel"
@@ -2847,4 +2859,3 @@ msgstr "Uzaqlaşdır"
#: src/utils/locale.ts
msgid "Zulu"
msgstr "Zulu"
+12 -1
View File
@@ -2081,6 +2081,18 @@ msgstr "Споделяне"
msgid "Show"
msgstr "Показване"
#: src/dialogs/resume/sections/award.tsx
#: src/dialogs/resume/sections/certification.tsx
#: src/dialogs/resume/sections/education.tsx
#: src/dialogs/resume/sections/experience.tsx
#: src/dialogs/resume/sections/profile.tsx
#: src/dialogs/resume/sections/project.tsx
#: src/dialogs/resume/sections/publication.tsx
#: src/dialogs/resume/sections/reference.tsx
#: src/dialogs/resume/sections/volunteer.tsx
msgid "Show link in title"
msgstr ""
#: src/routes/builder/$resumeId/-sidebar/right/sections/layout/pages.tsx
msgid "Sidebar"
msgstr "Странична лента"
@@ -2847,4 +2859,3 @@ msgstr "Намаляване"
#: src/utils/locale.ts
msgid "Zulu"
msgstr "Зулуски"
+12 -1
View File
@@ -2081,6 +2081,18 @@ msgstr "শেয়ারিং"
msgid "Show"
msgstr "দেখান"
#: src/dialogs/resume/sections/award.tsx
#: src/dialogs/resume/sections/certification.tsx
#: src/dialogs/resume/sections/education.tsx
#: src/dialogs/resume/sections/experience.tsx
#: src/dialogs/resume/sections/profile.tsx
#: src/dialogs/resume/sections/project.tsx
#: src/dialogs/resume/sections/publication.tsx
#: src/dialogs/resume/sections/reference.tsx
#: src/dialogs/resume/sections/volunteer.tsx
msgid "Show link in title"
msgstr ""
#: src/routes/builder/$resumeId/-sidebar/right/sections/layout/pages.tsx
msgid "Sidebar"
msgstr "সাইডবার"
@@ -2847,4 +2859,3 @@ msgstr "জুম আউট"
#: src/utils/locale.ts
msgid "Zulu"
msgstr "জুলু"
+12 -1
View File
@@ -2081,6 +2081,18 @@ msgstr "Compartició"
msgid "Show"
msgstr "Mostra"
#: src/dialogs/resume/sections/award.tsx
#: src/dialogs/resume/sections/certification.tsx
#: src/dialogs/resume/sections/education.tsx
#: src/dialogs/resume/sections/experience.tsx
#: src/dialogs/resume/sections/profile.tsx
#: src/dialogs/resume/sections/project.tsx
#: src/dialogs/resume/sections/publication.tsx
#: src/dialogs/resume/sections/reference.tsx
#: src/dialogs/resume/sections/volunteer.tsx
msgid "Show link in title"
msgstr ""
#: src/routes/builder/$resumeId/-sidebar/right/sections/layout/pages.tsx
msgid "Sidebar"
msgstr "Barra lateral"
@@ -2847,4 +2859,3 @@ msgstr "Allunya"
#: src/utils/locale.ts
msgid "Zulu"
msgstr "Zulú"
+12 -1
View File
@@ -2081,6 +2081,18 @@ msgstr "Sdílení"
msgid "Show"
msgstr "Zobrazit"
#: src/dialogs/resume/sections/award.tsx
#: src/dialogs/resume/sections/certification.tsx
#: src/dialogs/resume/sections/education.tsx
#: src/dialogs/resume/sections/experience.tsx
#: src/dialogs/resume/sections/profile.tsx
#: src/dialogs/resume/sections/project.tsx
#: src/dialogs/resume/sections/publication.tsx
#: src/dialogs/resume/sections/reference.tsx
#: src/dialogs/resume/sections/volunteer.tsx
msgid "Show link in title"
msgstr ""
#: src/routes/builder/$resumeId/-sidebar/right/sections/layout/pages.tsx
msgid "Sidebar"
msgstr "Postranní panel"
@@ -2847,4 +2859,3 @@ msgstr "Oddálit"
#: src/utils/locale.ts
msgid "Zulu"
msgstr "Zulu"
+12 -1
View File
@@ -2081,6 +2081,18 @@ msgstr "Deling"
msgid "Show"
msgstr "Vis"
#: src/dialogs/resume/sections/award.tsx
#: src/dialogs/resume/sections/certification.tsx
#: src/dialogs/resume/sections/education.tsx
#: src/dialogs/resume/sections/experience.tsx
#: src/dialogs/resume/sections/profile.tsx
#: src/dialogs/resume/sections/project.tsx
#: src/dialogs/resume/sections/publication.tsx
#: src/dialogs/resume/sections/reference.tsx
#: src/dialogs/resume/sections/volunteer.tsx
msgid "Show link in title"
msgstr ""
#: src/routes/builder/$resumeId/-sidebar/right/sections/layout/pages.tsx
msgid "Sidebar"
msgstr "Sidebjælke"
@@ -2847,4 +2859,3 @@ msgstr "Zoom ud"
#: src/utils/locale.ts
msgid "Zulu"
msgstr "Zulu"
+12 -1
View File
@@ -2081,6 +2081,18 @@ msgstr "Teilen"
msgid "Show"
msgstr "Einblenden"
#: src/dialogs/resume/sections/award.tsx
#: src/dialogs/resume/sections/certification.tsx
#: src/dialogs/resume/sections/education.tsx
#: src/dialogs/resume/sections/experience.tsx
#: src/dialogs/resume/sections/profile.tsx
#: src/dialogs/resume/sections/project.tsx
#: src/dialogs/resume/sections/publication.tsx
#: src/dialogs/resume/sections/reference.tsx
#: src/dialogs/resume/sections/volunteer.tsx
msgid "Show link in title"
msgstr ""
#: src/routes/builder/$resumeId/-sidebar/right/sections/layout/pages.tsx
msgid "Sidebar"
msgstr "Seitenleiste"
@@ -2847,4 +2859,3 @@ msgstr "Herauszoomen"
#: src/utils/locale.ts
msgid "Zulu"
msgstr "Zulu"
+12 -1
View File
@@ -2081,6 +2081,18 @@ msgstr "Κοινοποίηση"
msgid "Show"
msgstr "Εμφάνιση"
#: src/dialogs/resume/sections/award.tsx
#: src/dialogs/resume/sections/certification.tsx
#: src/dialogs/resume/sections/education.tsx
#: src/dialogs/resume/sections/experience.tsx
#: src/dialogs/resume/sections/profile.tsx
#: src/dialogs/resume/sections/project.tsx
#: src/dialogs/resume/sections/publication.tsx
#: src/dialogs/resume/sections/reference.tsx
#: src/dialogs/resume/sections/volunteer.tsx
msgid "Show link in title"
msgstr ""
#: src/routes/builder/$resumeId/-sidebar/right/sections/layout/pages.tsx
msgid "Sidebar"
msgstr "Πλαϊνή μπάρα"
@@ -2847,4 +2859,3 @@ msgstr "Σμίκρυνση"
#: src/utils/locale.ts
msgid "Zulu"
msgstr "Ζουλού"
+12
View File
@@ -2076,6 +2076,18 @@ msgstr "Sharing"
msgid "Show"
msgstr "Show"
#: src/dialogs/resume/sections/award.tsx
#: src/dialogs/resume/sections/certification.tsx
#: src/dialogs/resume/sections/education.tsx
#: src/dialogs/resume/sections/experience.tsx
#: src/dialogs/resume/sections/profile.tsx
#: src/dialogs/resume/sections/project.tsx
#: src/dialogs/resume/sections/publication.tsx
#: src/dialogs/resume/sections/reference.tsx
#: src/dialogs/resume/sections/volunteer.tsx
msgid "Show link in title"
msgstr "Show link in title"
#: src/routes/builder/$resumeId/-sidebar/right/sections/layout/pages.tsx
msgid "Sidebar"
msgstr "Sidebar"
+12 -1
View File
@@ -2081,6 +2081,18 @@ msgstr "Compartir"
msgid "Show"
msgstr "Mostrar"
#: src/dialogs/resume/sections/award.tsx
#: src/dialogs/resume/sections/certification.tsx
#: src/dialogs/resume/sections/education.tsx
#: src/dialogs/resume/sections/experience.tsx
#: src/dialogs/resume/sections/profile.tsx
#: src/dialogs/resume/sections/project.tsx
#: src/dialogs/resume/sections/publication.tsx
#: src/dialogs/resume/sections/reference.tsx
#: src/dialogs/resume/sections/volunteer.tsx
msgid "Show link in title"
msgstr ""
#: src/routes/builder/$resumeId/-sidebar/right/sections/layout/pages.tsx
msgid "Sidebar"
msgstr "Barra lateral"
@@ -2847,4 +2859,3 @@ msgstr "Alejar"
#: src/utils/locale.ts
msgid "Zulu"
msgstr "Zulú"
+12 -1
View File
@@ -2081,6 +2081,18 @@ msgstr "اشتراک‌گذاری"
msgid "Show"
msgstr "نمایش"
#: src/dialogs/resume/sections/award.tsx
#: src/dialogs/resume/sections/certification.tsx
#: src/dialogs/resume/sections/education.tsx
#: src/dialogs/resume/sections/experience.tsx
#: src/dialogs/resume/sections/profile.tsx
#: src/dialogs/resume/sections/project.tsx
#: src/dialogs/resume/sections/publication.tsx
#: src/dialogs/resume/sections/reference.tsx
#: src/dialogs/resume/sections/volunteer.tsx
msgid "Show link in title"
msgstr ""
#: src/routes/builder/$resumeId/-sidebar/right/sections/layout/pages.tsx
msgid "Sidebar"
msgstr "نوار کناری"
@@ -2847,4 +2859,3 @@ msgstr "کوچک‌نمایی"
#: src/utils/locale.ts
msgid "Zulu"
msgstr "زولو"
+12 -1
View File
@@ -2081,6 +2081,18 @@ msgstr "Jakaminen"
msgid "Show"
msgstr "Näytä"
#: src/dialogs/resume/sections/award.tsx
#: src/dialogs/resume/sections/certification.tsx
#: src/dialogs/resume/sections/education.tsx
#: src/dialogs/resume/sections/experience.tsx
#: src/dialogs/resume/sections/profile.tsx
#: src/dialogs/resume/sections/project.tsx
#: src/dialogs/resume/sections/publication.tsx
#: src/dialogs/resume/sections/reference.tsx
#: src/dialogs/resume/sections/volunteer.tsx
msgid "Show link in title"
msgstr ""
#: src/routes/builder/$resumeId/-sidebar/right/sections/layout/pages.tsx
msgid "Sidebar"
msgstr "Sivupalkki"
@@ -2847,4 +2859,3 @@ msgstr "Loitonna"
#: src/utils/locale.ts
msgid "Zulu"
msgstr "Zulu"
+12 -1
View File
@@ -2081,6 +2081,18 @@ msgstr "Partage"
msgid "Show"
msgstr "Afficher"
#: src/dialogs/resume/sections/award.tsx
#: src/dialogs/resume/sections/certification.tsx
#: src/dialogs/resume/sections/education.tsx
#: src/dialogs/resume/sections/experience.tsx
#: src/dialogs/resume/sections/profile.tsx
#: src/dialogs/resume/sections/project.tsx
#: src/dialogs/resume/sections/publication.tsx
#: src/dialogs/resume/sections/reference.tsx
#: src/dialogs/resume/sections/volunteer.tsx
msgid "Show link in title"
msgstr ""
#: src/routes/builder/$resumeId/-sidebar/right/sections/layout/pages.tsx
msgid "Sidebar"
msgstr "Encart"
@@ -2847,4 +2859,3 @@ msgstr "Zoom arrière"
#: src/utils/locale.ts
msgid "Zulu"
msgstr "Zoulou"
+12 -1
View File
@@ -2081,6 +2081,18 @@ msgstr "שיתוף"
msgid "Show"
msgstr "הצגה"
#: src/dialogs/resume/sections/award.tsx
#: src/dialogs/resume/sections/certification.tsx
#: src/dialogs/resume/sections/education.tsx
#: src/dialogs/resume/sections/experience.tsx
#: src/dialogs/resume/sections/profile.tsx
#: src/dialogs/resume/sections/project.tsx
#: src/dialogs/resume/sections/publication.tsx
#: src/dialogs/resume/sections/reference.tsx
#: src/dialogs/resume/sections/volunteer.tsx
msgid "Show link in title"
msgstr ""
#: src/routes/builder/$resumeId/-sidebar/right/sections/layout/pages.tsx
msgid "Sidebar"
msgstr "סרגל צד"
@@ -2847,4 +2859,3 @@ msgstr "התרחקות"
#: src/utils/locale.ts
msgid "Zulu"
msgstr "זולו"
+12 -1
View File
@@ -2081,6 +2081,18 @@ msgstr "साझा करना"
msgid "Show"
msgstr "दिखाएँ"
#: src/dialogs/resume/sections/award.tsx
#: src/dialogs/resume/sections/certification.tsx
#: src/dialogs/resume/sections/education.tsx
#: src/dialogs/resume/sections/experience.tsx
#: src/dialogs/resume/sections/profile.tsx
#: src/dialogs/resume/sections/project.tsx
#: src/dialogs/resume/sections/publication.tsx
#: src/dialogs/resume/sections/reference.tsx
#: src/dialogs/resume/sections/volunteer.tsx
msgid "Show link in title"
msgstr ""
#: src/routes/builder/$resumeId/-sidebar/right/sections/layout/pages.tsx
msgid "Sidebar"
msgstr "साइडबार"
@@ -2847,4 +2859,3 @@ msgstr "ज़ूम आउट"
#: src/utils/locale.ts
msgid "Zulu"
msgstr "ज़ुलु"
+12 -1
View File
@@ -2081,6 +2081,18 @@ msgstr "Megosztás"
msgid "Show"
msgstr "Megjelenítés"
#: src/dialogs/resume/sections/award.tsx
#: src/dialogs/resume/sections/certification.tsx
#: src/dialogs/resume/sections/education.tsx
#: src/dialogs/resume/sections/experience.tsx
#: src/dialogs/resume/sections/profile.tsx
#: src/dialogs/resume/sections/project.tsx
#: src/dialogs/resume/sections/publication.tsx
#: src/dialogs/resume/sections/reference.tsx
#: src/dialogs/resume/sections/volunteer.tsx
msgid "Show link in title"
msgstr ""
#: src/routes/builder/$resumeId/-sidebar/right/sections/layout/pages.tsx
msgid "Sidebar"
msgstr "Oldalsáv"
@@ -2847,4 +2859,3 @@ msgstr "Kicsinyítés"
#: src/utils/locale.ts
msgid "Zulu"
msgstr "Zulu"
+12 -1
View File
@@ -2081,6 +2081,18 @@ msgstr "Berbagi"
msgid "Show"
msgstr "Tampilkan"
#: src/dialogs/resume/sections/award.tsx
#: src/dialogs/resume/sections/certification.tsx
#: src/dialogs/resume/sections/education.tsx
#: src/dialogs/resume/sections/experience.tsx
#: src/dialogs/resume/sections/profile.tsx
#: src/dialogs/resume/sections/project.tsx
#: src/dialogs/resume/sections/publication.tsx
#: src/dialogs/resume/sections/reference.tsx
#: src/dialogs/resume/sections/volunteer.tsx
msgid "Show link in title"
msgstr ""
#: src/routes/builder/$resumeId/-sidebar/right/sections/layout/pages.tsx
msgid "Sidebar"
msgstr "Bilah Sisi"
@@ -2847,4 +2859,3 @@ msgstr "Perkecil"
#: src/utils/locale.ts
msgid "Zulu"
msgstr "Zulu"
+12 -1
View File
@@ -2081,6 +2081,18 @@ msgstr "Condivisione"
msgid "Show"
msgstr "Mostra"
#: src/dialogs/resume/sections/award.tsx
#: src/dialogs/resume/sections/certification.tsx
#: src/dialogs/resume/sections/education.tsx
#: src/dialogs/resume/sections/experience.tsx
#: src/dialogs/resume/sections/profile.tsx
#: src/dialogs/resume/sections/project.tsx
#: src/dialogs/resume/sections/publication.tsx
#: src/dialogs/resume/sections/reference.tsx
#: src/dialogs/resume/sections/volunteer.tsx
msgid "Show link in title"
msgstr ""
#: src/routes/builder/$resumeId/-sidebar/right/sections/layout/pages.tsx
msgid "Sidebar"
msgstr "Barra laterale"
@@ -2847,4 +2859,3 @@ msgstr "Rimpicciolisci"
#: src/utils/locale.ts
msgid "Zulu"
msgstr "Zulu"
+12 -1
View File
@@ -2081,6 +2081,18 @@ msgstr "共有"
msgid "Show"
msgstr "表示"
#: src/dialogs/resume/sections/award.tsx
#: src/dialogs/resume/sections/certification.tsx
#: src/dialogs/resume/sections/education.tsx
#: src/dialogs/resume/sections/experience.tsx
#: src/dialogs/resume/sections/profile.tsx
#: src/dialogs/resume/sections/project.tsx
#: src/dialogs/resume/sections/publication.tsx
#: src/dialogs/resume/sections/reference.tsx
#: src/dialogs/resume/sections/volunteer.tsx
msgid "Show link in title"
msgstr ""
#: src/routes/builder/$resumeId/-sidebar/right/sections/layout/pages.tsx
msgid "Sidebar"
msgstr "サイドバー"
@@ -2847,4 +2859,3 @@ msgstr "ズームアウト"
#: src/utils/locale.ts
msgid "Zulu"
msgstr "ズールー語"
+12 -1
View File
@@ -2081,6 +2081,18 @@ msgstr "ការចែករំលែក"
msgid "Show"
msgstr "បង្ហាញ"
#: src/dialogs/resume/sections/award.tsx
#: src/dialogs/resume/sections/certification.tsx
#: src/dialogs/resume/sections/education.tsx
#: src/dialogs/resume/sections/experience.tsx
#: src/dialogs/resume/sections/profile.tsx
#: src/dialogs/resume/sections/project.tsx
#: src/dialogs/resume/sections/publication.tsx
#: src/dialogs/resume/sections/reference.tsx
#: src/dialogs/resume/sections/volunteer.tsx
msgid "Show link in title"
msgstr ""
#: src/routes/builder/$resumeId/-sidebar/right/sections/layout/pages.tsx
msgid "Sidebar"
msgstr "របារ​បាត"
@@ -2847,4 +2859,3 @@ msgstr "បង្រួម"
#: src/utils/locale.ts
msgid "Zulu"
msgstr "Zulu"
+12 -1
View File
@@ -2081,6 +2081,18 @@ msgstr "ಹಂಚಿಕೆ"
msgid "Show"
msgstr "ತೋರಿಸು"
#: src/dialogs/resume/sections/award.tsx
#: src/dialogs/resume/sections/certification.tsx
#: src/dialogs/resume/sections/education.tsx
#: src/dialogs/resume/sections/experience.tsx
#: src/dialogs/resume/sections/profile.tsx
#: src/dialogs/resume/sections/project.tsx
#: src/dialogs/resume/sections/publication.tsx
#: src/dialogs/resume/sections/reference.tsx
#: src/dialogs/resume/sections/volunteer.tsx
msgid "Show link in title"
msgstr ""
#: src/routes/builder/$resumeId/-sidebar/right/sections/layout/pages.tsx
msgid "Sidebar"
msgstr "ಪಾರ್ಶ್ವಪಟ್ಟಿ"
@@ -2847,4 +2859,3 @@ msgstr "ಗಾತ್ರ ಕುಗ್ಗಿಸಿ"
#: src/utils/locale.ts
msgid "Zulu"
msgstr "ಜೂಲೂ"
+12 -1
View File
@@ -2081,6 +2081,18 @@ msgstr "공유"
msgid "Show"
msgstr "표시"
#: src/dialogs/resume/sections/award.tsx
#: src/dialogs/resume/sections/certification.tsx
#: src/dialogs/resume/sections/education.tsx
#: src/dialogs/resume/sections/experience.tsx
#: src/dialogs/resume/sections/profile.tsx
#: src/dialogs/resume/sections/project.tsx
#: src/dialogs/resume/sections/publication.tsx
#: src/dialogs/resume/sections/reference.tsx
#: src/dialogs/resume/sections/volunteer.tsx
msgid "Show link in title"
msgstr ""
#: src/routes/builder/$resumeId/-sidebar/right/sections/layout/pages.tsx
msgid "Sidebar"
msgstr "사이드바"
@@ -2847,4 +2859,3 @@ msgstr "축소"
#: src/utils/locale.ts
msgid "Zulu"
msgstr "줄루어"
+12 -1
View File
@@ -2081,6 +2081,18 @@ msgstr "Dalijimasis"
msgid "Show"
msgstr "Rodyti"
#: src/dialogs/resume/sections/award.tsx
#: src/dialogs/resume/sections/certification.tsx
#: src/dialogs/resume/sections/education.tsx
#: src/dialogs/resume/sections/experience.tsx
#: src/dialogs/resume/sections/profile.tsx
#: src/dialogs/resume/sections/project.tsx
#: src/dialogs/resume/sections/publication.tsx
#: src/dialogs/resume/sections/reference.tsx
#: src/dialogs/resume/sections/volunteer.tsx
msgid "Show link in title"
msgstr ""
#: src/routes/builder/$resumeId/-sidebar/right/sections/layout/pages.tsx
msgid "Sidebar"
msgstr "Šoninė juosta"
@@ -2847,4 +2859,3 @@ msgstr "Tolinti"
#: src/utils/locale.ts
msgid "Zulu"
msgstr "Zulų"
+12 -1
View File
@@ -2081,6 +2081,18 @@ msgstr "Kopīgošana"
msgid "Show"
msgstr "Rādīt"
#: src/dialogs/resume/sections/award.tsx
#: src/dialogs/resume/sections/certification.tsx
#: src/dialogs/resume/sections/education.tsx
#: src/dialogs/resume/sections/experience.tsx
#: src/dialogs/resume/sections/profile.tsx
#: src/dialogs/resume/sections/project.tsx
#: src/dialogs/resume/sections/publication.tsx
#: src/dialogs/resume/sections/reference.tsx
#: src/dialogs/resume/sections/volunteer.tsx
msgid "Show link in title"
msgstr ""
#: src/routes/builder/$resumeId/-sidebar/right/sections/layout/pages.tsx
msgid "Sidebar"
msgstr "Sānu josla"
@@ -2847,4 +2859,3 @@ msgstr "Tālināt"
#: src/utils/locale.ts
msgid "Zulu"
msgstr "Zulu"
+12 -1
View File
@@ -2081,6 +2081,18 @@ msgstr "ഷെയറിംഗ്"
msgid "Show"
msgstr "കാണിക്കുക"
#: src/dialogs/resume/sections/award.tsx
#: src/dialogs/resume/sections/certification.tsx
#: src/dialogs/resume/sections/education.tsx
#: src/dialogs/resume/sections/experience.tsx
#: src/dialogs/resume/sections/profile.tsx
#: src/dialogs/resume/sections/project.tsx
#: src/dialogs/resume/sections/publication.tsx
#: src/dialogs/resume/sections/reference.tsx
#: src/dialogs/resume/sections/volunteer.tsx
msgid "Show link in title"
msgstr ""
#: src/routes/builder/$resumeId/-sidebar/right/sections/layout/pages.tsx
msgid "Sidebar"
msgstr "സൈഡ്ബാർ"
@@ -2847,4 +2859,3 @@ msgstr "സൂം ഔട്ട് ചെയ്യുക"
#: src/utils/locale.ts
msgid "Zulu"
msgstr "സൂളു"
+12 -1
View File
@@ -2081,6 +2081,18 @@ msgstr "शेअर करणे"
msgid "Show"
msgstr "दाखवा"
#: src/dialogs/resume/sections/award.tsx
#: src/dialogs/resume/sections/certification.tsx
#: src/dialogs/resume/sections/education.tsx
#: src/dialogs/resume/sections/experience.tsx
#: src/dialogs/resume/sections/profile.tsx
#: src/dialogs/resume/sections/project.tsx
#: src/dialogs/resume/sections/publication.tsx
#: src/dialogs/resume/sections/reference.tsx
#: src/dialogs/resume/sections/volunteer.tsx
msgid "Show link in title"
msgstr ""
#: src/routes/builder/$resumeId/-sidebar/right/sections/layout/pages.tsx
msgid "Sidebar"
msgstr "बाजूची पट्टी"
@@ -2847,4 +2859,3 @@ msgstr "बाहेर झूम करा"
#: src/utils/locale.ts
msgid "Zulu"
msgstr "झुलू"
+12 -1
View File
@@ -2081,6 +2081,18 @@ msgstr "Berkongsi"
msgid "Show"
msgstr "Paparkan"
#: src/dialogs/resume/sections/award.tsx
#: src/dialogs/resume/sections/certification.tsx
#: src/dialogs/resume/sections/education.tsx
#: src/dialogs/resume/sections/experience.tsx
#: src/dialogs/resume/sections/profile.tsx
#: src/dialogs/resume/sections/project.tsx
#: src/dialogs/resume/sections/publication.tsx
#: src/dialogs/resume/sections/reference.tsx
#: src/dialogs/resume/sections/volunteer.tsx
msgid "Show link in title"
msgstr ""
#: src/routes/builder/$resumeId/-sidebar/right/sections/layout/pages.tsx
msgid "Sidebar"
msgstr "Panel Sisi"
@@ -2847,4 +2859,3 @@ msgstr "Zum keluar"
#: src/utils/locale.ts
msgid "Zulu"
msgstr "Zulu"
+12 -1
View File
@@ -2081,6 +2081,18 @@ msgstr "सेयरिङ"
msgid "Show"
msgstr "देखाउनुहोस्"
#: src/dialogs/resume/sections/award.tsx
#: src/dialogs/resume/sections/certification.tsx
#: src/dialogs/resume/sections/education.tsx
#: src/dialogs/resume/sections/experience.tsx
#: src/dialogs/resume/sections/profile.tsx
#: src/dialogs/resume/sections/project.tsx
#: src/dialogs/resume/sections/publication.tsx
#: src/dialogs/resume/sections/reference.tsx
#: src/dialogs/resume/sections/volunteer.tsx
msgid "Show link in title"
msgstr ""
#: src/routes/builder/$resumeId/-sidebar/right/sections/layout/pages.tsx
msgid "Sidebar"
msgstr "Sidebar"
@@ -2847,4 +2859,3 @@ msgstr "जूम आउट"
#: src/utils/locale.ts
msgid "Zulu"
msgstr "जुलु"
+12 -1
View File
@@ -2081,6 +2081,18 @@ msgstr "Delen"
msgid "Show"
msgstr "Weergeven"
#: src/dialogs/resume/sections/award.tsx
#: src/dialogs/resume/sections/certification.tsx
#: src/dialogs/resume/sections/education.tsx
#: src/dialogs/resume/sections/experience.tsx
#: src/dialogs/resume/sections/profile.tsx
#: src/dialogs/resume/sections/project.tsx
#: src/dialogs/resume/sections/publication.tsx
#: src/dialogs/resume/sections/reference.tsx
#: src/dialogs/resume/sections/volunteer.tsx
msgid "Show link in title"
msgstr ""
#: src/routes/builder/$resumeId/-sidebar/right/sections/layout/pages.tsx
msgid "Sidebar"
msgstr "Zijbalk"
@@ -2847,4 +2859,3 @@ msgstr "Uitzoomen"
#: src/utils/locale.ts
msgid "Zulu"
msgstr "Zulu"
+12 -1
View File
@@ -2081,6 +2081,18 @@ msgstr "Deling"
msgid "Show"
msgstr "Vis"
#: src/dialogs/resume/sections/award.tsx
#: src/dialogs/resume/sections/certification.tsx
#: src/dialogs/resume/sections/education.tsx
#: src/dialogs/resume/sections/experience.tsx
#: src/dialogs/resume/sections/profile.tsx
#: src/dialogs/resume/sections/project.tsx
#: src/dialogs/resume/sections/publication.tsx
#: src/dialogs/resume/sections/reference.tsx
#: src/dialogs/resume/sections/volunteer.tsx
msgid "Show link in title"
msgstr ""
#: src/routes/builder/$resumeId/-sidebar/right/sections/layout/pages.tsx
msgid "Sidebar"
msgstr "Sidepanel"
@@ -2847,4 +2859,3 @@ msgstr "Zoom ut"
#: src/utils/locale.ts
msgid "Zulu"
msgstr "Zulu"
+12 -1
View File
@@ -2081,6 +2081,18 @@ msgstr "ସେୟାର କରିବା"
msgid "Show"
msgstr "ଦେଖାନ୍ତୁ"
#: src/dialogs/resume/sections/award.tsx
#: src/dialogs/resume/sections/certification.tsx
#: src/dialogs/resume/sections/education.tsx
#: src/dialogs/resume/sections/experience.tsx
#: src/dialogs/resume/sections/profile.tsx
#: src/dialogs/resume/sections/project.tsx
#: src/dialogs/resume/sections/publication.tsx
#: src/dialogs/resume/sections/reference.tsx
#: src/dialogs/resume/sections/volunteer.tsx
msgid "Show link in title"
msgstr ""
#: src/routes/builder/$resumeId/-sidebar/right/sections/layout/pages.tsx
msgid "Sidebar"
msgstr "ସାଇଡବାର୍"
@@ -2847,4 +2859,3 @@ msgstr "ଜୁମ୍ ଆଉଟ୍ କରନ୍ତୁ"
#: src/utils/locale.ts
msgid "Zulu"
msgstr "ଜୁଲୁ"
+12 -1
View File
@@ -2081,6 +2081,18 @@ msgstr "Udostępnianie"
msgid "Show"
msgstr "Pokaż"
#: src/dialogs/resume/sections/award.tsx
#: src/dialogs/resume/sections/certification.tsx
#: src/dialogs/resume/sections/education.tsx
#: src/dialogs/resume/sections/experience.tsx
#: src/dialogs/resume/sections/profile.tsx
#: src/dialogs/resume/sections/project.tsx
#: src/dialogs/resume/sections/publication.tsx
#: src/dialogs/resume/sections/reference.tsx
#: src/dialogs/resume/sections/volunteer.tsx
msgid "Show link in title"
msgstr ""
#: src/routes/builder/$resumeId/-sidebar/right/sections/layout/pages.tsx
msgid "Sidebar"
msgstr "Pasek boczny"
@@ -2847,4 +2859,3 @@ msgstr "Pomniejsz"
#: src/utils/locale.ts
msgid "Zulu"
msgstr "Zulu"
+12 -1
View File
@@ -2081,6 +2081,18 @@ msgstr "Compartilhamento"
msgid "Show"
msgstr "Mostrar"
#: src/dialogs/resume/sections/award.tsx
#: src/dialogs/resume/sections/certification.tsx
#: src/dialogs/resume/sections/education.tsx
#: src/dialogs/resume/sections/experience.tsx
#: src/dialogs/resume/sections/profile.tsx
#: src/dialogs/resume/sections/project.tsx
#: src/dialogs/resume/sections/publication.tsx
#: src/dialogs/resume/sections/reference.tsx
#: src/dialogs/resume/sections/volunteer.tsx
msgid "Show link in title"
msgstr ""
#: src/routes/builder/$resumeId/-sidebar/right/sections/layout/pages.tsx
msgid "Sidebar"
msgstr "Barra lateral"
@@ -2847,4 +2859,3 @@ msgstr "Diminuir zoom"
#: src/utils/locale.ts
msgid "Zulu"
msgstr "Zulu"
+12 -1
View File
@@ -2081,6 +2081,18 @@ msgstr "Partilhar"
msgid "Show"
msgstr "Mostrar"
#: src/dialogs/resume/sections/award.tsx
#: src/dialogs/resume/sections/certification.tsx
#: src/dialogs/resume/sections/education.tsx
#: src/dialogs/resume/sections/experience.tsx
#: src/dialogs/resume/sections/profile.tsx
#: src/dialogs/resume/sections/project.tsx
#: src/dialogs/resume/sections/publication.tsx
#: src/dialogs/resume/sections/reference.tsx
#: src/dialogs/resume/sections/volunteer.tsx
msgid "Show link in title"
msgstr ""
#: src/routes/builder/$resumeId/-sidebar/right/sections/layout/pages.tsx
msgid "Sidebar"
msgstr "Barra lateral"
@@ -2847,4 +2859,3 @@ msgstr "Afastar"
#: src/utils/locale.ts
msgid "Zulu"
msgstr "Zulu"
+12 -1
View File
@@ -2081,6 +2081,18 @@ msgstr "Partajarea"
msgid "Show"
msgstr "Arată"
#: src/dialogs/resume/sections/award.tsx
#: src/dialogs/resume/sections/certification.tsx
#: src/dialogs/resume/sections/education.tsx
#: src/dialogs/resume/sections/experience.tsx
#: src/dialogs/resume/sections/profile.tsx
#: src/dialogs/resume/sections/project.tsx
#: src/dialogs/resume/sections/publication.tsx
#: src/dialogs/resume/sections/reference.tsx
#: src/dialogs/resume/sections/volunteer.tsx
msgid "Show link in title"
msgstr ""
#: src/routes/builder/$resumeId/-sidebar/right/sections/layout/pages.tsx
msgid "Sidebar"
msgstr "Bară laterală"
@@ -2847,4 +2859,3 @@ msgstr "Micșorează"
#: src/utils/locale.ts
msgid "Zulu"
msgstr "Zulu"
+12 -1
View File
@@ -2081,6 +2081,18 @@ msgstr "Общий доступ"
msgid "Show"
msgstr "Показать"
#: src/dialogs/resume/sections/award.tsx
#: src/dialogs/resume/sections/certification.tsx
#: src/dialogs/resume/sections/education.tsx
#: src/dialogs/resume/sections/experience.tsx
#: src/dialogs/resume/sections/profile.tsx
#: src/dialogs/resume/sections/project.tsx
#: src/dialogs/resume/sections/publication.tsx
#: src/dialogs/resume/sections/reference.tsx
#: src/dialogs/resume/sections/volunteer.tsx
msgid "Show link in title"
msgstr ""
#: src/routes/builder/$resumeId/-sidebar/right/sections/layout/pages.tsx
msgid "Sidebar"
msgstr "Боковая панель"
@@ -2847,4 +2859,3 @@ msgstr "Уменьшить"
#: src/utils/locale.ts
msgid "Zulu"
msgstr "Зулу"
+12 -1
View File
@@ -2081,6 +2081,18 @@ msgstr "Zdieľanie"
msgid "Show"
msgstr "Zobraziť"
#: src/dialogs/resume/sections/award.tsx
#: src/dialogs/resume/sections/certification.tsx
#: src/dialogs/resume/sections/education.tsx
#: src/dialogs/resume/sections/experience.tsx
#: src/dialogs/resume/sections/profile.tsx
#: src/dialogs/resume/sections/project.tsx
#: src/dialogs/resume/sections/publication.tsx
#: src/dialogs/resume/sections/reference.tsx
#: src/dialogs/resume/sections/volunteer.tsx
msgid "Show link in title"
msgstr ""
#: src/routes/builder/$resumeId/-sidebar/right/sections/layout/pages.tsx
msgid "Sidebar"
msgstr "Bočný panel"
@@ -2847,4 +2859,3 @@ msgstr "Oddialiť"
#: src/utils/locale.ts
msgid "Zulu"
msgstr "Zulu"
+12 -1
View File
@@ -2081,6 +2081,18 @@ msgstr "Shpërndarja"
msgid "Show"
msgstr "Shfaq"
#: src/dialogs/resume/sections/award.tsx
#: src/dialogs/resume/sections/certification.tsx
#: src/dialogs/resume/sections/education.tsx
#: src/dialogs/resume/sections/experience.tsx
#: src/dialogs/resume/sections/profile.tsx
#: src/dialogs/resume/sections/project.tsx
#: src/dialogs/resume/sections/publication.tsx
#: src/dialogs/resume/sections/reference.tsx
#: src/dialogs/resume/sections/volunteer.tsx
msgid "Show link in title"
msgstr ""
#: src/routes/builder/$resumeId/-sidebar/right/sections/layout/pages.tsx
msgid "Sidebar"
msgstr "Shiriti anësor"
@@ -2847,4 +2859,3 @@ msgstr "Zvogëlo"
#: src/utils/locale.ts
msgid "Zulu"
msgstr "Zulu"
+12 -1
View File
@@ -2081,6 +2081,18 @@ msgstr "Дељење"
msgid "Show"
msgstr "Прикажи"
#: src/dialogs/resume/sections/award.tsx
#: src/dialogs/resume/sections/certification.tsx
#: src/dialogs/resume/sections/education.tsx
#: src/dialogs/resume/sections/experience.tsx
#: src/dialogs/resume/sections/profile.tsx
#: src/dialogs/resume/sections/project.tsx
#: src/dialogs/resume/sections/publication.tsx
#: src/dialogs/resume/sections/reference.tsx
#: src/dialogs/resume/sections/volunteer.tsx
msgid "Show link in title"
msgstr ""
#: src/routes/builder/$resumeId/-sidebar/right/sections/layout/pages.tsx
msgid "Sidebar"
msgstr "Бочна трака"
@@ -2847,4 +2859,3 @@ msgstr "Умањи"
#: src/utils/locale.ts
msgid "Zulu"
msgstr "Зулу"
+12 -1
View File
@@ -2081,6 +2081,18 @@ msgstr "Delning"
msgid "Show"
msgstr "Visa"
#: src/dialogs/resume/sections/award.tsx
#: src/dialogs/resume/sections/certification.tsx
#: src/dialogs/resume/sections/education.tsx
#: src/dialogs/resume/sections/experience.tsx
#: src/dialogs/resume/sections/profile.tsx
#: src/dialogs/resume/sections/project.tsx
#: src/dialogs/resume/sections/publication.tsx
#: src/dialogs/resume/sections/reference.tsx
#: src/dialogs/resume/sections/volunteer.tsx
msgid "Show link in title"
msgstr ""
#: src/routes/builder/$resumeId/-sidebar/right/sections/layout/pages.tsx
msgid "Sidebar"
msgstr "Sidofält"
@@ -2847,4 +2859,3 @@ msgstr "Zooma ut"
#: src/utils/locale.ts
msgid "Zulu"
msgstr "Zulu"
+12 -1
View File
@@ -2081,6 +2081,18 @@ msgstr "பகிர்வு"
msgid "Show"
msgstr "காட்டு"
#: src/dialogs/resume/sections/award.tsx
#: src/dialogs/resume/sections/certification.tsx
#: src/dialogs/resume/sections/education.tsx
#: src/dialogs/resume/sections/experience.tsx
#: src/dialogs/resume/sections/profile.tsx
#: src/dialogs/resume/sections/project.tsx
#: src/dialogs/resume/sections/publication.tsx
#: src/dialogs/resume/sections/reference.tsx
#: src/dialogs/resume/sections/volunteer.tsx
msgid "Show link in title"
msgstr ""
#: src/routes/builder/$resumeId/-sidebar/right/sections/layout/pages.tsx
msgid "Sidebar"
msgstr "சைட்பார்"
@@ -2847,4 +2859,3 @@ msgstr "சிறிதாக்கு"
#: src/utils/locale.ts
msgid "Zulu"
msgstr "ஜூலு"
+12 -1
View File
@@ -2081,6 +2081,18 @@ msgstr "షేరింగ్"
msgid "Show"
msgstr "చూపించండి"
#: src/dialogs/resume/sections/award.tsx
#: src/dialogs/resume/sections/certification.tsx
#: src/dialogs/resume/sections/education.tsx
#: src/dialogs/resume/sections/experience.tsx
#: src/dialogs/resume/sections/profile.tsx
#: src/dialogs/resume/sections/project.tsx
#: src/dialogs/resume/sections/publication.tsx
#: src/dialogs/resume/sections/reference.tsx
#: src/dialogs/resume/sections/volunteer.tsx
msgid "Show link in title"
msgstr ""
#: src/routes/builder/$resumeId/-sidebar/right/sections/layout/pages.tsx
msgid "Sidebar"
msgstr "<<<<<<< HEAD"
@@ -2847,4 +2859,3 @@ msgstr "జూమ్ అవుట్ చేయండి"
#: src/utils/locale.ts
msgid "Zulu"
msgstr "జులు"
+12 -1
View File
@@ -2081,6 +2081,18 @@ msgstr "การแชร์"
msgid "Show"
msgstr "แสดง"
#: src/dialogs/resume/sections/award.tsx
#: src/dialogs/resume/sections/certification.tsx
#: src/dialogs/resume/sections/education.tsx
#: src/dialogs/resume/sections/experience.tsx
#: src/dialogs/resume/sections/profile.tsx
#: src/dialogs/resume/sections/project.tsx
#: src/dialogs/resume/sections/publication.tsx
#: src/dialogs/resume/sections/reference.tsx
#: src/dialogs/resume/sections/volunteer.tsx
msgid "Show link in title"
msgstr ""
#: src/routes/builder/$resumeId/-sidebar/right/sections/layout/pages.tsx
msgid "Sidebar"
msgstr "<<<<<<< HEAD"
@@ -2847,4 +2859,3 @@ msgstr "ซูมออก"
#: src/utils/locale.ts
msgid "Zulu"
msgstr "ซูลู"
+12 -1
View File
@@ -2081,6 +2081,18 @@ msgstr "Paylaşım"
msgid "Show"
msgstr "Göster"
#: src/dialogs/resume/sections/award.tsx
#: src/dialogs/resume/sections/certification.tsx
#: src/dialogs/resume/sections/education.tsx
#: src/dialogs/resume/sections/experience.tsx
#: src/dialogs/resume/sections/profile.tsx
#: src/dialogs/resume/sections/project.tsx
#: src/dialogs/resume/sections/publication.tsx
#: src/dialogs/resume/sections/reference.tsx
#: src/dialogs/resume/sections/volunteer.tsx
msgid "Show link in title"
msgstr ""
#: src/routes/builder/$resumeId/-sidebar/right/sections/layout/pages.tsx
msgid "Sidebar"
msgstr "<<<<<<< HEAD"
@@ -2847,4 +2859,3 @@ msgstr "Uzaklaştır"
#: src/utils/locale.ts
msgid "Zulu"
msgstr "Zulu"
+12 -1
View File
@@ -2081,6 +2081,18 @@ msgstr "Поширити"
msgid "Show"
msgstr "Показати"
#: src/dialogs/resume/sections/award.tsx
#: src/dialogs/resume/sections/certification.tsx
#: src/dialogs/resume/sections/education.tsx
#: src/dialogs/resume/sections/experience.tsx
#: src/dialogs/resume/sections/profile.tsx
#: src/dialogs/resume/sections/project.tsx
#: src/dialogs/resume/sections/publication.tsx
#: src/dialogs/resume/sections/reference.tsx
#: src/dialogs/resume/sections/volunteer.tsx
msgid "Show link in title"
msgstr ""
#: src/routes/builder/$resumeId/-sidebar/right/sections/layout/pages.tsx
msgid "Sidebar"
msgstr "<<<<<<< HEAD"
@@ -2847,4 +2859,3 @@ msgstr "Зменшити"
#: src/utils/locale.ts
msgid "Zulu"
msgstr "Зулу"
+12 -1
View File
@@ -2081,6 +2081,18 @@ msgstr "Ulashish"
msgid "Show"
msgstr "Korsatish"
#: src/dialogs/resume/sections/award.tsx
#: src/dialogs/resume/sections/certification.tsx
#: src/dialogs/resume/sections/education.tsx
#: src/dialogs/resume/sections/experience.tsx
#: src/dialogs/resume/sections/profile.tsx
#: src/dialogs/resume/sections/project.tsx
#: src/dialogs/resume/sections/publication.tsx
#: src/dialogs/resume/sections/reference.tsx
#: src/dialogs/resume/sections/volunteer.tsx
msgid "Show link in title"
msgstr ""
#: src/routes/builder/$resumeId/-sidebar/right/sections/layout/pages.tsx
msgid "Sidebar"
msgstr "<<<<<<< HEAD"
@@ -2847,4 +2859,3 @@ msgstr "Kichraytirish"
#: src/utils/locale.ts
msgid "Zulu"
msgstr "Zulu"
+12 -1
View File
@@ -2081,6 +2081,18 @@ msgstr "Chia sẻ"
msgid "Show"
msgstr "Hiện"
#: src/dialogs/resume/sections/award.tsx
#: src/dialogs/resume/sections/certification.tsx
#: src/dialogs/resume/sections/education.tsx
#: src/dialogs/resume/sections/experience.tsx
#: src/dialogs/resume/sections/profile.tsx
#: src/dialogs/resume/sections/project.tsx
#: src/dialogs/resume/sections/publication.tsx
#: src/dialogs/resume/sections/reference.tsx
#: src/dialogs/resume/sections/volunteer.tsx
msgid "Show link in title"
msgstr ""
#: src/routes/builder/$resumeId/-sidebar/right/sections/layout/pages.tsx
msgid "Sidebar"
msgstr "<<<<<<< HEAD"
@@ -2847,4 +2859,3 @@ msgstr "Thu nhỏ"
#: src/utils/locale.ts
msgid "Zulu"
msgstr "Zulu"
+12 -1
View File
@@ -2081,6 +2081,18 @@ msgstr "发布与分享"
msgid "Show"
msgstr "显示"
#: src/dialogs/resume/sections/award.tsx
#: src/dialogs/resume/sections/certification.tsx
#: src/dialogs/resume/sections/education.tsx
#: src/dialogs/resume/sections/experience.tsx
#: src/dialogs/resume/sections/profile.tsx
#: src/dialogs/resume/sections/project.tsx
#: src/dialogs/resume/sections/publication.tsx
#: src/dialogs/resume/sections/reference.tsx
#: src/dialogs/resume/sections/volunteer.tsx
msgid "Show link in title"
msgstr ""
#: src/routes/builder/$resumeId/-sidebar/right/sections/layout/pages.tsx
msgid "Sidebar"
msgstr "侧边栏"
@@ -2847,4 +2859,3 @@ msgstr "缩小"
#: src/utils/locale.ts
msgid "Zulu"
msgstr "祖鲁语"
+12 -1
View File
@@ -2081,6 +2081,18 @@ msgstr "分享"
msgid "Show"
msgstr "顯示"
#: src/dialogs/resume/sections/award.tsx
#: src/dialogs/resume/sections/certification.tsx
#: src/dialogs/resume/sections/education.tsx
#: src/dialogs/resume/sections/experience.tsx
#: src/dialogs/resume/sections/profile.tsx
#: src/dialogs/resume/sections/project.tsx
#: src/dialogs/resume/sections/publication.tsx
#: src/dialogs/resume/sections/reference.tsx
#: src/dialogs/resume/sections/volunteer.tsx
msgid "Show link in title"
msgstr ""
#: src/routes/builder/$resumeId/-sidebar/right/sections/layout/pages.tsx
msgid "Sidebar"
msgstr "側邊欄"
@@ -2847,4 +2859,3 @@ msgstr "縮小"
#: src/utils/locale.ts
msgid "Zulu"
msgstr "祖魯語"
+12
View File
@@ -2076,6 +2076,18 @@ msgstr ""
msgid "Show"
msgstr ""
#: src/dialogs/resume/sections/award.tsx
#: src/dialogs/resume/sections/certification.tsx
#: src/dialogs/resume/sections/education.tsx
#: src/dialogs/resume/sections/experience.tsx
#: src/dialogs/resume/sections/profile.tsx
#: src/dialogs/resume/sections/project.tsx
#: src/dialogs/resume/sections/publication.tsx
#: src/dialogs/resume/sections/reference.tsx
#: src/dialogs/resume/sections/volunteer.tsx
msgid "Show link in title"
msgstr ""
#: src/routes/builder/$resumeId/-sidebar/right/sections/layout/pages.tsx
msgid "Sidebar"
msgstr ""
+4 -4
View File
@@ -35,8 +35,8 @@
"@ai-sdk/google": "^3.0.18",
"@ai-sdk/openai": "^3.0.23",
"@aws-sdk/client-s3": "^3.980.0",
"@better-auth/core": "1.5.0-beta.10",
"@better-auth/passkey": "1.5.0-beta.10",
"@better-auth/core": "1.5.0-beta.11",
"@better-auth/passkey": "1.5.0-beta.11",
"@dnd-kit/core": "^6.3.1",
"@dnd-kit/sortable": "^10.0.0",
"@dnd-kit/utilities": "^3.2.2",
@@ -66,10 +66,10 @@
"@tiptap/pm": "^3.18.0",
"@tiptap/react": "^3.18.0",
"@tiptap/starter-kit": "^3.18.0",
"ai": "^6.0.63",
"ai": "^6.0.64",
"ai-sdk-ollama": "^3.3.0",
"bcrypt": "^6.0.0",
"better-auth": "1.5.0-beta.10",
"better-auth": "1.5.0-beta.11",
"class-variance-authority": "^0.7.1",
"clsx": "^2.1.1",
"cmdk": "^1.1.1",
+65 -65
View File
@@ -24,11 +24,11 @@ importers:
specifier: ^3.980.0
version: 3.980.0
'@better-auth/core':
specifier: 1.5.0-beta.10
version: 1.5.0-beta.10(@better-auth/utils@0.3.1)(@better-fetch/fetch@1.1.21)(better-call@1.2.0(zod@4.3.6))(jose@6.1.3)(kysely@0.28.10)(nanostores@1.1.0)
specifier: 1.5.0-beta.11
version: 1.5.0-beta.11(@better-auth/utils@0.3.1)(@better-fetch/fetch@1.1.21)(better-call@1.2.0(zod@4.3.6))(jose@6.1.3)(kysely@0.28.10)(nanostores@1.1.0)
'@better-auth/passkey':
specifier: 1.5.0-beta.10
version: 1.5.0-beta.10(4d9f3f2a7b04fedc6f01f7febd60fc23)
specifier: 1.5.0-beta.11
version: 1.5.0-beta.11(72e1ebc0cd17927908aaa725ba142106)
'@dnd-kit/core':
specifier: ^6.3.1
version: 6.3.1(react-dom@19.2.4(react@19.2.4))(react@19.2.4)
@@ -117,17 +117,17 @@ importers:
specifier: ^3.18.0
version: 3.18.0
ai:
specifier: ^6.0.63
version: 6.0.63(zod@4.3.6)
specifier: ^6.0.64
version: 6.0.64(zod@4.3.6)
ai-sdk-ollama:
specifier: ^3.3.0
version: 3.3.0(ai@6.0.63(zod@4.3.6))(zod@4.3.6)
version: 3.3.0(ai@6.0.64(zod@4.3.6))(zod@4.3.6)
bcrypt:
specifier: ^6.0.0
version: 6.0.0
better-auth:
specifier: 1.5.0-beta.10
version: 1.5.0-beta.10(@prisma/client@7.2.0(prisma@7.2.0(@types/react@19.2.10)(react-dom@19.2.4(react@19.2.4))(react@19.2.4)(typescript@5.9.3))(typescript@5.9.3))(@tanstack/react-start@1.157.17(crossws@0.4.3(srvx@0.10.1))(react-dom@19.2.4(react@19.2.4))(react@19.2.4)(rolldown-vite@7.3.1(@types/node@25.1.0)(esbuild@0.27.2)(jiti@2.6.1)(terser@5.46.0)(tsx@4.21.0)))(drizzle-kit@1.0.0-beta.9-e89174b)(drizzle-orm@1.0.0-beta.9-e89174b(@electric-sql/pglite@0.3.2)(@opentelemetry/api@1.9.0)(@prisma/client@7.2.0(prisma@7.2.0(@types/react@19.2.10)(react-dom@19.2.4(react@19.2.4))(react@19.2.4)(typescript@5.9.3))(typescript@5.9.3))(@types/mssql@9.1.9)(@types/pg@8.16.0)(mssql@11.0.1)(mysql2@3.15.3)(pg@8.18.0)(postgres@3.4.7)(prisma@7.2.0(@types/react@19.2.10)(react-dom@19.2.4(react@19.2.4))(react@19.2.4)(typescript@5.9.3)))(mongodb@7.0.0(socks@2.8.7))(mysql2@3.15.3)(pg@8.18.0)(prisma@7.2.0(@types/react@19.2.10)(react-dom@19.2.4(react@19.2.4))(react@19.2.4)(typescript@5.9.3))(react-dom@19.2.4(react@19.2.4))(react@19.2.4)
specifier: 1.5.0-beta.11
version: 1.5.0-beta.11(@prisma/client@7.2.0(prisma@7.2.0(@types/react@19.2.10)(react-dom@19.2.4(react@19.2.4))(react@19.2.4)(typescript@5.9.3))(typescript@5.9.3))(@tanstack/react-start@1.157.17(crossws@0.4.3(srvx@0.10.1))(react-dom@19.2.4(react@19.2.4))(react@19.2.4)(rolldown-vite@7.3.1(@types/node@25.1.0)(esbuild@0.27.2)(jiti@2.6.1)(terser@5.46.0)(tsx@4.21.0)))(drizzle-kit@1.0.0-beta.9-e89174b)(drizzle-orm@1.0.0-beta.9-e89174b(@electric-sql/pglite@0.3.2)(@opentelemetry/api@1.9.0)(@prisma/client@7.2.0(prisma@7.2.0(@types/react@19.2.10)(react-dom@19.2.4(react@19.2.4))(react@19.2.4)(typescript@5.9.3))(typescript@5.9.3))(@types/mssql@9.1.9)(@types/pg@8.16.0)(mssql@11.0.1)(mysql2@3.15.3)(pg@8.18.0)(postgres@3.4.7)(prisma@7.2.0(@types/react@19.2.10)(react-dom@19.2.4(react@19.2.4))(react@19.2.4)(typescript@5.9.3)))(mongodb@7.0.0(socks@2.8.7))(mysql2@3.15.3)(pg@8.18.0)(prisma@7.2.0(@types/react@19.2.10)(react-dom@19.2.4(react@19.2.4))(react@19.2.4)(typescript@5.9.3))(react-dom@19.2.4(react@19.2.4))(react@19.2.4)
class-variance-authority:
specifier: ^0.7.1
version: 0.7.1
@@ -1147,8 +1147,8 @@ packages:
resolution: {integrity: sha512-0ZrskXVEHSWIqZM/sQZ4EV3jZJXRkio/WCxaqKZP1g//CEWEPSfeZFcms4XeKBCHU0ZKnIkdJeU/kF+eRp5lBg==}
engines: {node: '>=6.9.0'}
'@better-auth/core@1.5.0-beta.10':
resolution: {integrity: sha512-pnFlbl0q6kUVLZe0Mkv8NCGsWalLbzo1UEzylu2FmWYQxwUnYeexI+SmhzR284xLig1QNIAFTJiavn2PDhWAcQ==}
'@better-auth/core@1.5.0-beta.11':
resolution: {integrity: sha512-8fbGKD8RhnKJ6FSUKDj4mHp1RIS82T4vB4AjFj95/XOEExzM9qShbYKFL5+RZrkt+oqSViuFX61iAB+LH/SJ9g==}
peerDependencies:
'@better-auth/utils': 0.3.1
'@better-fetch/fetch': 1.1.21
@@ -1157,55 +1157,55 @@ packages:
kysely: ^0.28.5
nanostores: ^1.0.1
'@better-auth/drizzle-adapter@1.5.0-beta.10':
resolution: {integrity: sha512-/u2MZlgPcEXiYVdUTOOJrskiHybAUctyymCd7Y2PPyONFPB1Guv3+hJh91nHR4KHbKF8Vrs0+vHGP4pTQrc+ow==}
'@better-auth/drizzle-adapter@1.5.0-beta.11':
resolution: {integrity: sha512-XtxYPr3nNlIndONyoxd3jijkq9g1/p+x8WZd6ZDP8ygcz8iARS31CCJ919eH6P6rpoUy4VXx+eSPvjzALbKrWQ==}
peerDependencies:
'@better-auth/core': 1.5.0-beta.10
'@better-auth/core': 1.5.0-beta.11
'@better-auth/utils': ^0.3.0
drizzle-orm: ^0.30.0
drizzle-orm: '>=0.41.0'
'@better-auth/kysely-adapter@1.5.0-beta.10':
resolution: {integrity: sha512-w9UHh/iurUMS9krrmydtDxXCcfgdUZDDfC5PABdTfBA1uoxrfNOiXhPt8ZmdBCoH6rIs8bJulDdIiGxqqDXI/w==}
'@better-auth/kysely-adapter@1.5.0-beta.11':
resolution: {integrity: sha512-VV5RF0+648leeNgXoNbuoePh6PjmRyVP2qxgDU5gnEzA8x9SqfOUppHhi4ssfOdjaQHf+pLo1sWHFb8Wy7+JlQ==}
peerDependencies:
'@better-auth/core': 1.5.0-beta.10
'@better-auth/core': 1.5.0-beta.11
'@better-auth/utils': ^0.3.0
kysely: ^0.27.0 || ^0.28.0
'@better-auth/memory-adapter@1.5.0-beta.10':
resolution: {integrity: sha512-HmVWFQZ3+A5udrA0LomiZmZUHX3glXTU+nVqcUGoM8Di8JYGlpJwF0Dp8PKIHm6B1tyjNfjIrfTuRK1G+okJuA==}
'@better-auth/memory-adapter@1.5.0-beta.11':
resolution: {integrity: sha512-Ggq+F2YB2ywTfX/0w5xgFvr73IiihmVF6IUYM0v79BMnEQa72Qc3J/8D/iU33WRNwvYAo4CfDD1OECp/78PjgA==}
peerDependencies:
'@better-auth/core': 1.5.0-beta.10
'@better-auth/core': 1.5.0-beta.11
'@better-auth/utils': ^0.3.0
'@better-auth/mongo-adapter@1.5.0-beta.10':
resolution: {integrity: sha512-W3jaxEv5XfUvGLVOswdne258zF9cBdqDhGg4Zicf/JUsvDMrXqMZ7yDI3iFkOgRv34EHoW+NTYt0vWZgU+cjNA==}
'@better-auth/mongo-adapter@1.5.0-beta.11':
resolution: {integrity: sha512-32JQTtp/84tZd0ZpWSV4+uaiMhyZGmeyAJF0B4FrHnI8/i/auOrNK3imLP+afv/ne7U+hQEyfUObgtUDr+DLzw==}
peerDependencies:
'@better-auth/core': 1.5.0-beta.10
'@better-auth/core': 1.5.0-beta.11
'@better-auth/utils': ^0.3.0
mongodb: ^6.0.0 || ^7.0.0
'@better-auth/passkey@1.5.0-beta.10':
resolution: {integrity: sha512-Xi5JT2iuix2PcPruli3VTP11YlbG285UDgNVsAWcxhrwYckMBzhQMwEoXW8kYB0pRhxq34r6h7pWZ3aKF+oKeQ==}
'@better-auth/passkey@1.5.0-beta.11':
resolution: {integrity: sha512-dZ2oO4ePY9mo0h6SO3Uzhh/yMuD0rYKVosDzD6kuwyX+0S0guWbpSL+r1VwdZzOT/eP3XIMv6AnA+J4gmD7ibQ==}
peerDependencies:
'@better-auth/core': 1.5.0-beta.10
'@better-auth/core': 1.5.0-beta.11
'@better-auth/utils': 0.3.1
'@better-fetch/fetch': 1.1.21
better-auth: 1.5.0-beta.10
better-auth: 1.5.0-beta.11
better-call: 1.2.0
nanostores: ^1.0.1
'@better-auth/prisma-adapter@1.5.0-beta.10':
resolution: {integrity: sha512-8Tb07a7BCHuXhGnpvq158r8uCJ6INeb+NL7abqvCzYfuHI9RegN7yLn9c77iGWCz/Xh97lSeKjea+Iz4V2a+RA==}
'@better-auth/prisma-adapter@1.5.0-beta.11':
resolution: {integrity: sha512-jAlAql0bZx62IgZ6/UsXXCR6L28tKipLYe4iPutjMAOi9Wl9oM2OsAmr/ZhcrHj9mjmKZXot1mqGcCcROZ1aSg==}
peerDependencies:
'@better-auth/core': 1.5.0-beta.10
'@better-auth/core': 1.5.0-beta.11
'@better-auth/utils': ^0.3.0
'@prisma/client': ^5.0.0 || ^6.0.0 || ^7.0.0
prisma: ^5.0.0 || ^6.0.0 || ^7.0.0
'@better-auth/telemetry@1.5.0-beta.10':
resolution: {integrity: sha512-Ntz1VW9xzbIsJeKQfqW18tdEQMJ1jlzqjPxuzZBerlcOWW3ni8XmLkQ2gJFsnAxluwfD460KWw6ya3n7J83xiw==}
'@better-auth/telemetry@1.5.0-beta.11':
resolution: {integrity: sha512-DDHXD37FCF+N7Sx80wY1QI351SgCMH7KQ2YsxwF5JDw/DYdY4vbjcEGYB7Ipum+dzEfq5o6cSdWvQqtjcT2o2w==}
peerDependencies:
'@better-auth/core': 1.5.0-beta.10
'@better-auth/core': 1.5.0-beta.11
'@better-auth/utils@0.3.1':
resolution: {integrity: sha512-+CGp4UmZSUrHHnpHhLPYu6cV+wSUSvVbZbNykxhUDocpVNTo9uFFxw/NqJlh1iC4wQ9HKKWGCKuZ5wUgS0v6Kg==}
@@ -4305,8 +4305,8 @@ packages:
peerDependencies:
ai: ^6.0.48
ai@6.0.63:
resolution: {integrity: sha512-kTGUTm5FZoWZBBBaKd5LAEJ5y5OFiGxThKX8ZW1jhXBuhiR5FQVtKGXv8fFJOq/6sLhsgu+zZGvU+3oByRQdEg==}
ai@6.0.64:
resolution: {integrity: sha512-eH+6FC2THf0rXamPOBAPGNBuMvqv4gE5+IKoWVBrO1TkrjwRiuP3+P6yl7/HcXzN9JLbVe3lL8yaTIfn0ZwvxQ==}
engines: {node: '>=18'}
peerDependencies:
zod: ^3.25.76 || ^4.1.8
@@ -4482,8 +4482,8 @@ packages:
resolution: {integrity: sha512-cU8v/EGSrnH+HnxV2z0J7/blxH8gq7Xh2JFT6Aroax7UohdmiJJlxApMxtKfuI7z68NvvVcmR78k2LbT6efhRg==}
engines: {node: '>= 18'}
better-auth@1.5.0-beta.10:
resolution: {integrity: sha512-dgiTWj12svCYMs57DymxgxmVg0Y0d1TC48j4EgHYN7RDSgiNOPjjMMViq0qx8bkNhUW9aVdkLAfqD2TTq8HFDw==}
better-auth@1.5.0-beta.11:
resolution: {integrity: sha512-rf5Rq217KyN+EuagsYHpzrXZodhPLrUJ6ViTUbmY+HZBvfvHtHxREOrl0Sv+wAXL8XND9P1n2eTIcVHDIuBTvw==}
peerDependencies:
'@lynx-js/react': '*'
'@prisma/client': ^5.0.0 || ^6.0.0 || ^7.0.0
@@ -9561,7 +9561,7 @@ snapshots:
'@babel/helper-string-parser': 7.27.1
'@babel/helper-validator-identifier': 7.28.5
'@better-auth/core@1.5.0-beta.10(@better-auth/utils@0.3.1)(@better-fetch/fetch@1.1.21)(better-call@1.2.0(zod@4.3.6))(jose@6.1.3)(kysely@0.28.10)(nanostores@1.1.0)':
'@better-auth/core@1.5.0-beta.11(@better-auth/utils@0.3.1)(@better-fetch/fetch@1.1.21)(better-call@1.2.0(zod@4.3.6))(jose@6.1.3)(kysely@0.28.10)(nanostores@1.1.0)':
dependencies:
'@better-auth/utils': 0.3.1
'@better-fetch/fetch': 1.1.21
@@ -9572,51 +9572,51 @@ snapshots:
nanostores: 1.1.0
zod: 4.3.6
'@better-auth/drizzle-adapter@1.5.0-beta.10(@better-auth/core@1.5.0-beta.10(@better-auth/utils@0.3.1)(@better-fetch/fetch@1.1.21)(better-call@1.2.0(zod@4.3.6))(jose@6.1.3)(kysely@0.28.10)(nanostores@1.1.0))(@better-auth/utils@0.3.1)(drizzle-orm@1.0.0-beta.9-e89174b(@electric-sql/pglite@0.3.2)(@opentelemetry/api@1.9.0)(@prisma/client@7.2.0(prisma@7.2.0(@types/react@19.2.10)(react-dom@19.2.4(react@19.2.4))(react@19.2.4)(typescript@5.9.3))(typescript@5.9.3))(@types/mssql@9.1.9)(@types/pg@8.16.0)(mssql@11.0.1)(mysql2@3.15.3)(pg@8.18.0)(postgres@3.4.7)(prisma@7.2.0(@types/react@19.2.10)(react-dom@19.2.4(react@19.2.4))(react@19.2.4)(typescript@5.9.3)))':
'@better-auth/drizzle-adapter@1.5.0-beta.11(@better-auth/core@1.5.0-beta.11(@better-auth/utils@0.3.1)(@better-fetch/fetch@1.1.21)(better-call@1.2.0(zod@4.3.6))(jose@6.1.3)(kysely@0.28.10)(nanostores@1.1.0))(@better-auth/utils@0.3.1)(drizzle-orm@1.0.0-beta.9-e89174b(@electric-sql/pglite@0.3.2)(@opentelemetry/api@1.9.0)(@prisma/client@7.2.0(prisma@7.2.0(@types/react@19.2.10)(react-dom@19.2.4(react@19.2.4))(react@19.2.4)(typescript@5.9.3))(typescript@5.9.3))(@types/mssql@9.1.9)(@types/pg@8.16.0)(mssql@11.0.1)(mysql2@3.15.3)(pg@8.18.0)(postgres@3.4.7)(prisma@7.2.0(@types/react@19.2.10)(react-dom@19.2.4(react@19.2.4))(react@19.2.4)(typescript@5.9.3)))':
dependencies:
'@better-auth/core': 1.5.0-beta.10(@better-auth/utils@0.3.1)(@better-fetch/fetch@1.1.21)(better-call@1.2.0(zod@4.3.6))(jose@6.1.3)(kysely@0.28.10)(nanostores@1.1.0)
'@better-auth/core': 1.5.0-beta.11(@better-auth/utils@0.3.1)(@better-fetch/fetch@1.1.21)(better-call@1.2.0(zod@4.3.6))(jose@6.1.3)(kysely@0.28.10)(nanostores@1.1.0)
'@better-auth/utils': 0.3.1
drizzle-orm: 1.0.0-beta.9-e89174b(@electric-sql/pglite@0.3.2)(@opentelemetry/api@1.9.0)(@prisma/client@7.2.0(prisma@7.2.0(@types/react@19.2.10)(react-dom@19.2.4(react@19.2.4))(react@19.2.4)(typescript@5.9.3))(typescript@5.9.3))(@types/mssql@9.1.9)(@types/pg@8.16.0)(mssql@11.0.1)(mysql2@3.15.3)(pg@8.18.0)(postgres@3.4.7)(prisma@7.2.0(@types/react@19.2.10)(react-dom@19.2.4(react@19.2.4))(react@19.2.4)(typescript@5.9.3))
'@better-auth/kysely-adapter@1.5.0-beta.10(@better-auth/core@1.5.0-beta.10(@better-auth/utils@0.3.1)(@better-fetch/fetch@1.1.21)(better-call@1.2.0(zod@4.3.6))(jose@6.1.3)(kysely@0.28.10)(nanostores@1.1.0))(@better-auth/utils@0.3.1)(kysely@0.28.10)':
'@better-auth/kysely-adapter@1.5.0-beta.11(@better-auth/core@1.5.0-beta.11(@better-auth/utils@0.3.1)(@better-fetch/fetch@1.1.21)(better-call@1.2.0(zod@4.3.6))(jose@6.1.3)(kysely@0.28.10)(nanostores@1.1.0))(@better-auth/utils@0.3.1)(kysely@0.28.10)':
dependencies:
'@better-auth/core': 1.5.0-beta.10(@better-auth/utils@0.3.1)(@better-fetch/fetch@1.1.21)(better-call@1.2.0(zod@4.3.6))(jose@6.1.3)(kysely@0.28.10)(nanostores@1.1.0)
'@better-auth/core': 1.5.0-beta.11(@better-auth/utils@0.3.1)(@better-fetch/fetch@1.1.21)(better-call@1.2.0(zod@4.3.6))(jose@6.1.3)(kysely@0.28.10)(nanostores@1.1.0)
'@better-auth/utils': 0.3.1
kysely: 0.28.10
'@better-auth/memory-adapter@1.5.0-beta.10(@better-auth/core@1.5.0-beta.10(@better-auth/utils@0.3.1)(@better-fetch/fetch@1.1.21)(better-call@1.2.0(zod@4.3.6))(jose@6.1.3)(kysely@0.28.10)(nanostores@1.1.0))(@better-auth/utils@0.3.1)':
'@better-auth/memory-adapter@1.5.0-beta.11(@better-auth/core@1.5.0-beta.11(@better-auth/utils@0.3.1)(@better-fetch/fetch@1.1.21)(better-call@1.2.0(zod@4.3.6))(jose@6.1.3)(kysely@0.28.10)(nanostores@1.1.0))(@better-auth/utils@0.3.1)':
dependencies:
'@better-auth/core': 1.5.0-beta.10(@better-auth/utils@0.3.1)(@better-fetch/fetch@1.1.21)(better-call@1.2.0(zod@4.3.6))(jose@6.1.3)(kysely@0.28.10)(nanostores@1.1.0)
'@better-auth/core': 1.5.0-beta.11(@better-auth/utils@0.3.1)(@better-fetch/fetch@1.1.21)(better-call@1.2.0(zod@4.3.6))(jose@6.1.3)(kysely@0.28.10)(nanostores@1.1.0)
'@better-auth/utils': 0.3.1
'@better-auth/mongo-adapter@1.5.0-beta.10(@better-auth/core@1.5.0-beta.10(@better-auth/utils@0.3.1)(@better-fetch/fetch@1.1.21)(better-call@1.2.0(zod@4.3.6))(jose@6.1.3)(kysely@0.28.10)(nanostores@1.1.0))(@better-auth/utils@0.3.1)(mongodb@7.0.0(socks@2.8.7))':
'@better-auth/mongo-adapter@1.5.0-beta.11(@better-auth/core@1.5.0-beta.11(@better-auth/utils@0.3.1)(@better-fetch/fetch@1.1.21)(better-call@1.2.0(zod@4.3.6))(jose@6.1.3)(kysely@0.28.10)(nanostores@1.1.0))(@better-auth/utils@0.3.1)(mongodb@7.0.0(socks@2.8.7))':
dependencies:
'@better-auth/core': 1.5.0-beta.10(@better-auth/utils@0.3.1)(@better-fetch/fetch@1.1.21)(better-call@1.2.0(zod@4.3.6))(jose@6.1.3)(kysely@0.28.10)(nanostores@1.1.0)
'@better-auth/core': 1.5.0-beta.11(@better-auth/utils@0.3.1)(@better-fetch/fetch@1.1.21)(better-call@1.2.0(zod@4.3.6))(jose@6.1.3)(kysely@0.28.10)(nanostores@1.1.0)
'@better-auth/utils': 0.3.1
mongodb: 7.0.0(socks@2.8.7)
'@better-auth/passkey@1.5.0-beta.10(4d9f3f2a7b04fedc6f01f7febd60fc23)':
'@better-auth/passkey@1.5.0-beta.11(72e1ebc0cd17927908aaa725ba142106)':
dependencies:
'@better-auth/core': 1.5.0-beta.10(@better-auth/utils@0.3.1)(@better-fetch/fetch@1.1.21)(better-call@1.2.0(zod@4.3.6))(jose@6.1.3)(kysely@0.28.10)(nanostores@1.1.0)
'@better-auth/core': 1.5.0-beta.11(@better-auth/utils@0.3.1)(@better-fetch/fetch@1.1.21)(better-call@1.2.0(zod@4.3.6))(jose@6.1.3)(kysely@0.28.10)(nanostores@1.1.0)
'@better-auth/utils': 0.3.1
'@better-fetch/fetch': 1.1.21
'@simplewebauthn/browser': 13.2.2
'@simplewebauthn/server': 13.2.2
better-auth: 1.5.0-beta.10(@prisma/client@7.2.0(prisma@7.2.0(@types/react@19.2.10)(react-dom@19.2.4(react@19.2.4))(react@19.2.4)(typescript@5.9.3))(typescript@5.9.3))(@tanstack/react-start@1.157.17(crossws@0.4.3(srvx@0.10.1))(react-dom@19.2.4(react@19.2.4))(react@19.2.4)(rolldown-vite@7.3.1(@types/node@25.1.0)(esbuild@0.27.2)(jiti@2.6.1)(terser@5.46.0)(tsx@4.21.0)))(drizzle-kit@1.0.0-beta.9-e89174b)(drizzle-orm@1.0.0-beta.9-e89174b(@electric-sql/pglite@0.3.2)(@opentelemetry/api@1.9.0)(@prisma/client@7.2.0(prisma@7.2.0(@types/react@19.2.10)(react-dom@19.2.4(react@19.2.4))(react@19.2.4)(typescript@5.9.3))(typescript@5.9.3))(@types/mssql@9.1.9)(@types/pg@8.16.0)(mssql@11.0.1)(mysql2@3.15.3)(pg@8.18.0)(postgres@3.4.7)(prisma@7.2.0(@types/react@19.2.10)(react-dom@19.2.4(react@19.2.4))(react@19.2.4)(typescript@5.9.3)))(mongodb@7.0.0(socks@2.8.7))(mysql2@3.15.3)(pg@8.18.0)(prisma@7.2.0(@types/react@19.2.10)(react-dom@19.2.4(react@19.2.4))(react@19.2.4)(typescript@5.9.3))(react-dom@19.2.4(react@19.2.4))(react@19.2.4)
better-auth: 1.5.0-beta.11(@prisma/client@7.2.0(prisma@7.2.0(@types/react@19.2.10)(react-dom@19.2.4(react@19.2.4))(react@19.2.4)(typescript@5.9.3))(typescript@5.9.3))(@tanstack/react-start@1.157.17(crossws@0.4.3(srvx@0.10.1))(react-dom@19.2.4(react@19.2.4))(react@19.2.4)(rolldown-vite@7.3.1(@types/node@25.1.0)(esbuild@0.27.2)(jiti@2.6.1)(terser@5.46.0)(tsx@4.21.0)))(drizzle-kit@1.0.0-beta.9-e89174b)(drizzle-orm@1.0.0-beta.9-e89174b(@electric-sql/pglite@0.3.2)(@opentelemetry/api@1.9.0)(@prisma/client@7.2.0(prisma@7.2.0(@types/react@19.2.10)(react-dom@19.2.4(react@19.2.4))(react@19.2.4)(typescript@5.9.3))(typescript@5.9.3))(@types/mssql@9.1.9)(@types/pg@8.16.0)(mssql@11.0.1)(mysql2@3.15.3)(pg@8.18.0)(postgres@3.4.7)(prisma@7.2.0(@types/react@19.2.10)(react-dom@19.2.4(react@19.2.4))(react@19.2.4)(typescript@5.9.3)))(mongodb@7.0.0(socks@2.8.7))(mysql2@3.15.3)(pg@8.18.0)(prisma@7.2.0(@types/react@19.2.10)(react-dom@19.2.4(react@19.2.4))(react@19.2.4)(typescript@5.9.3))(react-dom@19.2.4(react@19.2.4))(react@19.2.4)
better-call: 1.2.0(zod@4.3.6)
nanostores: 1.1.0
zod: 4.3.6
'@better-auth/prisma-adapter@1.5.0-beta.10(@better-auth/core@1.5.0-beta.10(@better-auth/utils@0.3.1)(@better-fetch/fetch@1.1.21)(better-call@1.2.0(zod@4.3.6))(jose@6.1.3)(kysely@0.28.10)(nanostores@1.1.0))(@better-auth/utils@0.3.1)(@prisma/client@7.2.0(prisma@7.2.0(@types/react@19.2.10)(react-dom@19.2.4(react@19.2.4))(react@19.2.4)(typescript@5.9.3))(typescript@5.9.3))(prisma@7.2.0(@types/react@19.2.10)(react-dom@19.2.4(react@19.2.4))(react@19.2.4)(typescript@5.9.3))':
'@better-auth/prisma-adapter@1.5.0-beta.11(@better-auth/core@1.5.0-beta.11(@better-auth/utils@0.3.1)(@better-fetch/fetch@1.1.21)(better-call@1.2.0(zod@4.3.6))(jose@6.1.3)(kysely@0.28.10)(nanostores@1.1.0))(@better-auth/utils@0.3.1)(@prisma/client@7.2.0(prisma@7.2.0(@types/react@19.2.10)(react-dom@19.2.4(react@19.2.4))(react@19.2.4)(typescript@5.9.3))(typescript@5.9.3))(prisma@7.2.0(@types/react@19.2.10)(react-dom@19.2.4(react@19.2.4))(react@19.2.4)(typescript@5.9.3))':
dependencies:
'@better-auth/core': 1.5.0-beta.10(@better-auth/utils@0.3.1)(@better-fetch/fetch@1.1.21)(better-call@1.2.0(zod@4.3.6))(jose@6.1.3)(kysely@0.28.10)(nanostores@1.1.0)
'@better-auth/core': 1.5.0-beta.11(@better-auth/utils@0.3.1)(@better-fetch/fetch@1.1.21)(better-call@1.2.0(zod@4.3.6))(jose@6.1.3)(kysely@0.28.10)(nanostores@1.1.0)
'@better-auth/utils': 0.3.1
'@prisma/client': 7.2.0(prisma@7.2.0(@types/react@19.2.10)(react-dom@19.2.4(react@19.2.4))(react@19.2.4)(typescript@5.9.3))(typescript@5.9.3)
prisma: 7.2.0(@types/react@19.2.10)(react-dom@19.2.4(react@19.2.4))(react@19.2.4)(typescript@5.9.3)
'@better-auth/telemetry@1.5.0-beta.10(@better-auth/core@1.5.0-beta.10(@better-auth/utils@0.3.1)(@better-fetch/fetch@1.1.21)(better-call@1.2.0(zod@4.3.6))(jose@6.1.3)(kysely@0.28.10)(nanostores@1.1.0))':
'@better-auth/telemetry@1.5.0-beta.11(@better-auth/core@1.5.0-beta.11(@better-auth/utils@0.3.1)(@better-fetch/fetch@1.1.21)(better-call@1.2.0(zod@4.3.6))(jose@6.1.3)(kysely@0.28.10)(nanostores@1.1.0))':
dependencies:
'@better-auth/core': 1.5.0-beta.10(@better-auth/utils@0.3.1)(@better-fetch/fetch@1.1.21)(better-call@1.2.0(zod@4.3.6))(jose@6.1.3)(kysely@0.28.10)(nanostores@1.1.0)
'@better-auth/core': 1.5.0-beta.11(@better-auth/utils@0.3.1)(@better-fetch/fetch@1.1.21)(better-call@1.2.0(zod@4.3.6))(jose@6.1.3)(kysely@0.28.10)(nanostores@1.1.0)
'@better-auth/utils': 0.3.1
'@better-fetch/fetch': 1.1.21
@@ -12762,16 +12762,16 @@ snapshots:
agent-base@7.1.4: {}
ai-sdk-ollama@3.3.0(ai@6.0.63(zod@4.3.6))(zod@4.3.6):
ai-sdk-ollama@3.3.0(ai@6.0.64(zod@4.3.6))(zod@4.3.6):
dependencies:
'@ai-sdk/provider': 3.0.5
'@ai-sdk/provider-utils': 4.0.9(zod@4.3.6)
ai: 6.0.63(zod@4.3.6)
ai: 6.0.64(zod@4.3.6)
ollama: 0.6.3
transitivePeerDependencies:
- zod
ai@6.0.63(zod@4.3.6):
ai@6.0.64(zod@4.3.6):
dependencies:
'@ai-sdk/gateway': 3.0.29(zod@4.3.6)
'@ai-sdk/provider': 3.0.6
@@ -12947,15 +12947,15 @@ snapshots:
node-addon-api: 8.5.0
node-gyp-build: 4.8.4
better-auth@1.5.0-beta.10(@prisma/client@7.2.0(prisma@7.2.0(@types/react@19.2.10)(react-dom@19.2.4(react@19.2.4))(react@19.2.4)(typescript@5.9.3))(typescript@5.9.3))(@tanstack/react-start@1.157.17(crossws@0.4.3(srvx@0.10.1))(react-dom@19.2.4(react@19.2.4))(react@19.2.4)(rolldown-vite@7.3.1(@types/node@25.1.0)(esbuild@0.27.2)(jiti@2.6.1)(terser@5.46.0)(tsx@4.21.0)))(drizzle-kit@1.0.0-beta.9-e89174b)(drizzle-orm@1.0.0-beta.9-e89174b(@electric-sql/pglite@0.3.2)(@opentelemetry/api@1.9.0)(@prisma/client@7.2.0(prisma@7.2.0(@types/react@19.2.10)(react-dom@19.2.4(react@19.2.4))(react@19.2.4)(typescript@5.9.3))(typescript@5.9.3))(@types/mssql@9.1.9)(@types/pg@8.16.0)(mssql@11.0.1)(mysql2@3.15.3)(pg@8.18.0)(postgres@3.4.7)(prisma@7.2.0(@types/react@19.2.10)(react-dom@19.2.4(react@19.2.4))(react@19.2.4)(typescript@5.9.3)))(mongodb@7.0.0(socks@2.8.7))(mysql2@3.15.3)(pg@8.18.0)(prisma@7.2.0(@types/react@19.2.10)(react-dom@19.2.4(react@19.2.4))(react@19.2.4)(typescript@5.9.3))(react-dom@19.2.4(react@19.2.4))(react@19.2.4):
better-auth@1.5.0-beta.11(@prisma/client@7.2.0(prisma@7.2.0(@types/react@19.2.10)(react-dom@19.2.4(react@19.2.4))(react@19.2.4)(typescript@5.9.3))(typescript@5.9.3))(@tanstack/react-start@1.157.17(crossws@0.4.3(srvx@0.10.1))(react-dom@19.2.4(react@19.2.4))(react@19.2.4)(rolldown-vite@7.3.1(@types/node@25.1.0)(esbuild@0.27.2)(jiti@2.6.1)(terser@5.46.0)(tsx@4.21.0)))(drizzle-kit@1.0.0-beta.9-e89174b)(drizzle-orm@1.0.0-beta.9-e89174b(@electric-sql/pglite@0.3.2)(@opentelemetry/api@1.9.0)(@prisma/client@7.2.0(prisma@7.2.0(@types/react@19.2.10)(react-dom@19.2.4(react@19.2.4))(react@19.2.4)(typescript@5.9.3))(typescript@5.9.3))(@types/mssql@9.1.9)(@types/pg@8.16.0)(mssql@11.0.1)(mysql2@3.15.3)(pg@8.18.0)(postgres@3.4.7)(prisma@7.2.0(@types/react@19.2.10)(react-dom@19.2.4(react@19.2.4))(react@19.2.4)(typescript@5.9.3)))(mongodb@7.0.0(socks@2.8.7))(mysql2@3.15.3)(pg@8.18.0)(prisma@7.2.0(@types/react@19.2.10)(react-dom@19.2.4(react@19.2.4))(react@19.2.4)(typescript@5.9.3))(react-dom@19.2.4(react@19.2.4))(react@19.2.4):
dependencies:
'@better-auth/core': 1.5.0-beta.10(@better-auth/utils@0.3.1)(@better-fetch/fetch@1.1.21)(better-call@1.2.0(zod@4.3.6))(jose@6.1.3)(kysely@0.28.10)(nanostores@1.1.0)
'@better-auth/drizzle-adapter': 1.5.0-beta.10(@better-auth/core@1.5.0-beta.10(@better-auth/utils@0.3.1)(@better-fetch/fetch@1.1.21)(better-call@1.2.0(zod@4.3.6))(jose@6.1.3)(kysely@0.28.10)(nanostores@1.1.0))(@better-auth/utils@0.3.1)(drizzle-orm@1.0.0-beta.9-e89174b(@electric-sql/pglite@0.3.2)(@opentelemetry/api@1.9.0)(@prisma/client@7.2.0(prisma@7.2.0(@types/react@19.2.10)(react-dom@19.2.4(react@19.2.4))(react@19.2.4)(typescript@5.9.3))(typescript@5.9.3))(@types/mssql@9.1.9)(@types/pg@8.16.0)(mssql@11.0.1)(mysql2@3.15.3)(pg@8.18.0)(postgres@3.4.7)(prisma@7.2.0(@types/react@19.2.10)(react-dom@19.2.4(react@19.2.4))(react@19.2.4)(typescript@5.9.3)))
'@better-auth/kysely-adapter': 1.5.0-beta.10(@better-auth/core@1.5.0-beta.10(@better-auth/utils@0.3.1)(@better-fetch/fetch@1.1.21)(better-call@1.2.0(zod@4.3.6))(jose@6.1.3)(kysely@0.28.10)(nanostores@1.1.0))(@better-auth/utils@0.3.1)(kysely@0.28.10)
'@better-auth/memory-adapter': 1.5.0-beta.10(@better-auth/core@1.5.0-beta.10(@better-auth/utils@0.3.1)(@better-fetch/fetch@1.1.21)(better-call@1.2.0(zod@4.3.6))(jose@6.1.3)(kysely@0.28.10)(nanostores@1.1.0))(@better-auth/utils@0.3.1)
'@better-auth/mongo-adapter': 1.5.0-beta.10(@better-auth/core@1.5.0-beta.10(@better-auth/utils@0.3.1)(@better-fetch/fetch@1.1.21)(better-call@1.2.0(zod@4.3.6))(jose@6.1.3)(kysely@0.28.10)(nanostores@1.1.0))(@better-auth/utils@0.3.1)(mongodb@7.0.0(socks@2.8.7))
'@better-auth/prisma-adapter': 1.5.0-beta.10(@better-auth/core@1.5.0-beta.10(@better-auth/utils@0.3.1)(@better-fetch/fetch@1.1.21)(better-call@1.2.0(zod@4.3.6))(jose@6.1.3)(kysely@0.28.10)(nanostores@1.1.0))(@better-auth/utils@0.3.1)(@prisma/client@7.2.0(prisma@7.2.0(@types/react@19.2.10)(react-dom@19.2.4(react@19.2.4))(react@19.2.4)(typescript@5.9.3))(typescript@5.9.3))(prisma@7.2.0(@types/react@19.2.10)(react-dom@19.2.4(react@19.2.4))(react@19.2.4)(typescript@5.9.3))
'@better-auth/telemetry': 1.5.0-beta.10(@better-auth/core@1.5.0-beta.10(@better-auth/utils@0.3.1)(@better-fetch/fetch@1.1.21)(better-call@1.2.0(zod@4.3.6))(jose@6.1.3)(kysely@0.28.10)(nanostores@1.1.0))
'@better-auth/core': 1.5.0-beta.11(@better-auth/utils@0.3.1)(@better-fetch/fetch@1.1.21)(better-call@1.2.0(zod@4.3.6))(jose@6.1.3)(kysely@0.28.10)(nanostores@1.1.0)
'@better-auth/drizzle-adapter': 1.5.0-beta.11(@better-auth/core@1.5.0-beta.11(@better-auth/utils@0.3.1)(@better-fetch/fetch@1.1.21)(better-call@1.2.0(zod@4.3.6))(jose@6.1.3)(kysely@0.28.10)(nanostores@1.1.0))(@better-auth/utils@0.3.1)(drizzle-orm@1.0.0-beta.9-e89174b(@electric-sql/pglite@0.3.2)(@opentelemetry/api@1.9.0)(@prisma/client@7.2.0(prisma@7.2.0(@types/react@19.2.10)(react-dom@19.2.4(react@19.2.4))(react@19.2.4)(typescript@5.9.3))(typescript@5.9.3))(@types/mssql@9.1.9)(@types/pg@8.16.0)(mssql@11.0.1)(mysql2@3.15.3)(pg@8.18.0)(postgres@3.4.7)(prisma@7.2.0(@types/react@19.2.10)(react-dom@19.2.4(react@19.2.4))(react@19.2.4)(typescript@5.9.3)))
'@better-auth/kysely-adapter': 1.5.0-beta.11(@better-auth/core@1.5.0-beta.11(@better-auth/utils@0.3.1)(@better-fetch/fetch@1.1.21)(better-call@1.2.0(zod@4.3.6))(jose@6.1.3)(kysely@0.28.10)(nanostores@1.1.0))(@better-auth/utils@0.3.1)(kysely@0.28.10)
'@better-auth/memory-adapter': 1.5.0-beta.11(@better-auth/core@1.5.0-beta.11(@better-auth/utils@0.3.1)(@better-fetch/fetch@1.1.21)(better-call@1.2.0(zod@4.3.6))(jose@6.1.3)(kysely@0.28.10)(nanostores@1.1.0))(@better-auth/utils@0.3.1)
'@better-auth/mongo-adapter': 1.5.0-beta.11(@better-auth/core@1.5.0-beta.11(@better-auth/utils@0.3.1)(@better-fetch/fetch@1.1.21)(better-call@1.2.0(zod@4.3.6))(jose@6.1.3)(kysely@0.28.10)(nanostores@1.1.0))(@better-auth/utils@0.3.1)(mongodb@7.0.0(socks@2.8.7))
'@better-auth/prisma-adapter': 1.5.0-beta.11(@better-auth/core@1.5.0-beta.11(@better-auth/utils@0.3.1)(@better-fetch/fetch@1.1.21)(better-call@1.2.0(zod@4.3.6))(jose@6.1.3)(kysely@0.28.10)(nanostores@1.1.0))(@better-auth/utils@0.3.1)(@prisma/client@7.2.0(prisma@7.2.0(@types/react@19.2.10)(react-dom@19.2.4(react@19.2.4))(react@19.2.4)(typescript@5.9.3))(typescript@5.9.3))(prisma@7.2.0(@types/react@19.2.10)(react-dom@19.2.4(react@19.2.4))(react@19.2.4)(typescript@5.9.3))
'@better-auth/telemetry': 1.5.0-beta.11(@better-auth/core@1.5.0-beta.11(@better-auth/utils@0.3.1)(@better-fetch/fetch@1.1.21)(better-call@1.2.0(zod@4.3.6))(jose@6.1.3)(kysely@0.28.10)(nanostores@1.1.0))
'@better-auth/utils': 0.3.1
'@better-fetch/fetch': 1.1.21
'@noble/ciphers': 2.1.1
+21 -18
View File
@@ -24,9 +24,10 @@ function ensurePrefix(url: string) {
type Props = Omit<React.ComponentProps<"input">, "value" | "onChange"> & {
value: z.infer<typeof urlSchema>;
onChange: (value: z.infer<typeof urlSchema>) => void;
hideLabelButton?: boolean;
};
export function URLInput({ value, onChange, ...props }: Props) {
export function URLInput({ value, onChange, hideLabelButton, ...props }: Props) {
const handleUrlChange = useCallback(
(e: React.ChangeEvent<HTMLInputElement>) => {
onChange({
@@ -59,24 +60,26 @@ export function URLInput({ value, onChange, ...props }: Props) {
{...props}
/>
<InputGroupAddon align="inline-end">
<Popover>
<PopoverTrigger asChild>
<InputGroupButton size="icon-sm" title={t`Add a label to the URL`}>
<TagIcon />
</InputGroupButton>
</PopoverTrigger>
{!hideLabelButton && (
<InputGroupAddon align="inline-end">
<Popover>
<PopoverTrigger asChild>
<InputGroupButton size="icon-sm" title={t`Add a label to the URL`}>
<TagIcon />
</InputGroupButton>
</PopoverTrigger>
<PopoverContent className="pt-3">
<div className="grid gap-2" onClick={(e) => e.stopPropagation()}>
<Label htmlFor="url-label">
<Trans>Label</Trans>
</Label>
<Input id="url-label" name="url-label" value={value.label} onChange={handleLabelChange} />
</div>
</PopoverContent>
</Popover>
</InputGroupAddon>
<PopoverContent className="pt-3">
<div className="grid gap-2" onClick={(e) => e.stopPropagation()}>
<Label htmlFor="url-label">
<Trans>Label</Trans>
</Label>
<Input id="url-label" name="url-label" value={value.label} onChange={handleLabelChange} />
</div>
</PopoverContent>
</Popover>
</InputGroupAddon>
)}
</InputGroup>
);
}
@@ -2,6 +2,7 @@ import { TiptapContent } from "@/components/input/rich-input";
import type { SectionItem } from "@/schema/resume/data";
import { stripHtml } from "@/utils/string";
import { cn } from "@/utils/style";
import { LinkedTitle } from "../linked-title";
import { PageLink } from "../page-link";
type AwardsItemProps = SectionItem<"awards"> & {
@@ -15,7 +16,12 @@ export function AwardsItem({ className, ...item }: AwardsItemProps) {
<div className="section-item-header awards-item-header">
{/* Row 1 */}
<div className="flex items-start justify-between gap-x-2">
<strong className="section-item-title awards-item-title">{item.title}</strong>
<LinkedTitle
title={item.title}
website={item.website}
showLinkInTitle={item.options?.showLinkInTitle}
className="section-item-title awards-item-title"
/>
<span className="section-item-metadata awards-item-date shrink-0 text-end">{item.date}</span>
</div>
@@ -31,9 +37,11 @@ export function AwardsItem({ className, ...item }: AwardsItemProps) {
</div>
{/* Website */}
<div className="section-item-website awards-item-website">
<PageLink {...item.website} label={item.website.label} />
</div>
{!item.options?.showLinkInTitle && (
<div className="section-item-website awards-item-website">
<PageLink {...item.website} label={item.website.label} />
</div>
)}
</div>
);
}
@@ -2,6 +2,7 @@ import { TiptapContent } from "@/components/input/rich-input";
import type { SectionItem } from "@/schema/resume/data";
import { stripHtml } from "@/utils/string";
import { cn } from "@/utils/style";
import { LinkedTitle } from "../linked-title";
import { PageLink } from "../page-link";
type CertificationsItemProps = SectionItem<"certifications"> & {
@@ -15,7 +16,12 @@ export function CertificationsItem({ className, ...item }: CertificationsItemPro
<div className="section-item-header certifications-item-header">
{/* Row 1 */}
<div className="flex items-start justify-between gap-x-2">
<strong className="section-item-title certifications-item-title">{item.title}</strong>
<LinkedTitle
title={item.title}
website={item.website}
showLinkInTitle={item.options?.showLinkInTitle}
className="section-item-title certifications-item-title"
/>
<span className="section-item-metadata certifications-item-date shrink-0 text-end">{item.date}</span>
</div>
@@ -36,9 +42,11 @@ export function CertificationsItem({ className, ...item }: CertificationsItemPro
</div>
{/* Website */}
<div className="section-item-website certifications-item-website">
<PageLink {...item.website} label={item.website.label} />
</div>
{!item.options?.showLinkInTitle && (
<div className="section-item-website certifications-item-website">
<PageLink {...item.website} label={item.website.label} />
</div>
)}
</div>
);
}
@@ -2,6 +2,7 @@ import { TiptapContent } from "@/components/input/rich-input";
import type { SectionItem } from "@/schema/resume/data";
import { stripHtml } from "@/utils/string";
import { cn } from "@/utils/style";
import { LinkedTitle } from "../linked-title";
import { PageLink } from "../page-link";
type EducationItemProps = SectionItem<"education"> & {
@@ -15,7 +16,12 @@ export function EducationItem({ className, ...item }: EducationItemProps) {
<div className="section-item-header education-item-header mb-2">
{/* Row 1 */}
<div className="flex items-start justify-between gap-x-2">
<strong className="section-item-title education-item-title">{item.school}</strong>
<LinkedTitle
title={item.school}
website={item.website}
showLinkInTitle={item.options?.showLinkInTitle}
className="section-item-title education-item-title"
/>
<span className="section-item-metadata education-item-degree-grade shrink-0 text-end">
{[item.degree, item.grade].filter(Boolean).join(" • ")}
</span>
@@ -38,9 +44,11 @@ export function EducationItem({ className, ...item }: EducationItemProps) {
</div>
{/* Website */}
<div className="section-item-website education-item-website">
<PageLink {...item.website} label={item.website.label} />
</div>
{!item.options?.showLinkInTitle && (
<div className="section-item-website education-item-website">
<PageLink {...item.website} label={item.website.label} />
</div>
)}
</div>
);
}
@@ -2,6 +2,7 @@ import { TiptapContent } from "@/components/input/rich-input";
import type { SectionItem } from "@/schema/resume/data";
import { stripHtml } from "@/utils/string";
import { cn } from "@/utils/style";
import { LinkedTitle } from "../linked-title";
import { PageLink } from "../page-link";
type ExperienceItemProps = SectionItem<"experience"> & {
@@ -15,7 +16,12 @@ export function ExperienceItem({ className, ...item }: ExperienceItemProps) {
<div className="section-item-header experience-item-header">
{/* Row 1 */}
<div className="flex items-start justify-between gap-x-2">
<strong className="section-item-title experience-item-title">{item.company}</strong>
<LinkedTitle
title={item.company}
website={item.website}
showLinkInTitle={item.options?.showLinkInTitle}
className="section-item-title experience-item-title"
/>
<span className="section-item-metadata experience-item-location shrink-0 text-end">{item.location}</span>
</div>
@@ -34,9 +40,11 @@ export function ExperienceItem({ className, ...item }: ExperienceItemProps) {
</div>
{/* Website */}
<div className="section-item-website experience-item-website">
<PageLink {...item.website} label={item.website.label} />
</div>
{!item.options?.showLinkInTitle && (
<div className="section-item-website experience-item-website">
<PageLink {...item.website} label={item.website.label} />
</div>
)}
</div>
);
}
@@ -1,5 +1,6 @@
import type { SectionItem } from "@/schema/resume/data";
import { cn } from "@/utils/style";
import { LinkedTitle } from "../linked-title";
import { PageIcon } from "../page-icon";
import { PageLink } from "../page-link";
@@ -13,15 +14,22 @@ export function ProfilesItem({ className, ...item }: ProfilesItemProps) {
{/* Header */}
<div className="section-item-header profiles-item-header flex items-center gap-x-1.5">
<PageIcon icon={item.icon} className="section-item-icon profiles-item-icon" />
<strong className="section-item-title profiles-item-network">{item.network}</strong>
<LinkedTitle
title={item.network}
website={item.website}
showLinkInTitle={item.options?.showLinkInTitle}
className="section-item-title profiles-item-network"
/>
</div>
{/* Website */}
<PageLink
{...item.website}
label={item.website.label || item.username}
className="section-item-website profiles-item-website"
/>
{!item.options?.showLinkInTitle && (
<PageLink
{...item.website}
label={item.website.label || item.username}
className="section-item-website profiles-item-website"
/>
)}
</div>
);
}
@@ -2,6 +2,7 @@ import { TiptapContent } from "@/components/input/rich-input";
import type { SectionItem } from "@/schema/resume/data";
import { stripHtml } from "@/utils/string";
import { cn } from "@/utils/style";
import { LinkedTitle } from "../linked-title";
import { PageLink } from "../page-link";
type ProjectsItemProps = SectionItem<"projects"> & {
@@ -15,7 +16,12 @@ export function ProjectsItem({ className, ...item }: ProjectsItemProps) {
<div className="section-item-header projects-item-header">
{/* Row 1 */}
<div className="flex items-start justify-between gap-x-2">
<strong className="section-item-title projects-item-title">{item.name}</strong>
<LinkedTitle
title={item.name}
website={item.website}
showLinkInTitle={item.options?.showLinkInTitle}
className="section-item-title projects-item-title"
/>
<span className="section-item-metadata projects-item-period shrink-0 text-end">{item.period}</span>
</div>
</div>
@@ -28,9 +34,11 @@ export function ProjectsItem({ className, ...item }: ProjectsItemProps) {
</div>
{/* Website */}
<div className="section-item-website projects-item-website">
<PageLink {...item.website} label={item.website.label} />
</div>
{!item.options?.showLinkInTitle && (
<div className="section-item-website projects-item-website">
<PageLink {...item.website} label={item.website.label} />
</div>
)}
</div>
);
}
@@ -2,6 +2,7 @@ import { TiptapContent } from "@/components/input/rich-input";
import type { SectionItem } from "@/schema/resume/data";
import { stripHtml } from "@/utils/string";
import { cn } from "@/utils/style";
import { LinkedTitle } from "../linked-title";
import { PageLink } from "../page-link";
type PublicationsItemProps = SectionItem<"publications"> & {
@@ -15,7 +16,12 @@ export function PublicationsItem({ className, ...item }: PublicationsItemProps)
<div className="section-item-header publications-item-header">
{/* Row 1 */}
<div className="flex items-start justify-between gap-x-2">
<strong className="section-item-title publications-item-title">{item.title}</strong>
<LinkedTitle
title={item.title}
website={item.website}
showLinkInTitle={item.options?.showLinkInTitle}
className="section-item-title publications-item-title"
/>
<span className="section-item-metadata publications-item-date shrink-0 text-end">{item.date}</span>
</div>
@@ -36,9 +42,11 @@ export function PublicationsItem({ className, ...item }: PublicationsItemProps)
</div>
{/* Website */}
<div className="section-item-website publications-item-website">
<PageLink {...item.website} label={item.website.label} />
</div>
{!item.options?.showLinkInTitle && (
<div className="section-item-website publications-item-website">
<PageLink {...item.website} label={item.website.label} />
</div>
)}
</div>
);
}
@@ -2,6 +2,7 @@ import { TiptapContent } from "@/components/input/rich-input";
import type { SectionItem } from "@/schema/resume/data";
import { stripHtml } from "@/utils/string";
import { cn } from "@/utils/style";
import { LinkedTitle } from "../linked-title";
import { PageLink } from "../page-link";
type ReferencesItemProps = SectionItem<"references"> & {
@@ -15,7 +16,12 @@ export function ReferencesItem({ className, ...item }: ReferencesItemProps) {
<div className="section-item-header references-item-header">
{/* Row 1 */}
<div className="flex items-start justify-between gap-x-2">
<strong className="section-item-title references-item-name">{item.name}</strong>
<LinkedTitle
title={item.name}
website={item.website}
showLinkInTitle={item.options?.showLinkInTitle}
className="section-item-title references-item-name"
/>
</div>
{/* Row 2 */}
@@ -37,11 +43,13 @@ export function ReferencesItem({ className, ...item }: ReferencesItemProps) {
<span className="section-item-metadata references-item-phone inline-block">{item.phone}</span>
{/* Row 2 */}
<PageLink
{...item.website}
label={item.website.label}
className="section-item-website references-item-website"
/>
{!item.options?.showLinkInTitle && (
<PageLink
{...item.website}
label={item.website.label}
className="section-item-website references-item-website"
/>
)}
</div>
</div>
);
@@ -2,6 +2,7 @@ import { TiptapContent } from "@/components/input/rich-input";
import type { SectionItem } from "@/schema/resume/data";
import { stripHtml } from "@/utils/string";
import { cn } from "@/utils/style";
import { LinkedTitle } from "../linked-title";
import { PageLink } from "../page-link";
type VolunteerItemProps = SectionItem<"volunteer"> & {
@@ -15,7 +16,12 @@ export function VolunteerItem({ className, ...item }: VolunteerItemProps) {
<div className="section-item-header volunteer-item-header">
{/* Row 1 */}
<div className="flex items-start justify-between gap-x-2">
<strong className="section-item-title volunteer-item-title">{item.organization}</strong>
<LinkedTitle
title={item.organization}
website={item.website}
showLinkInTitle={item.options?.showLinkInTitle}
className="section-item-title volunteer-item-title"
/>
<span className="section-item-metadata volunteer-item-period shrink-0 text-end">{item.period}</span>
</div>
@@ -33,9 +39,11 @@ export function VolunteerItem({ className, ...item }: VolunteerItemProps) {
</div>
{/* Website */}
<div className="section-item-website volunteer-item-website">
<PageLink {...item.website} label={item.website.label} />
</div>
{!item.options?.showLinkInTitle && (
<div className="section-item-website volunteer-item-website">
<PageLink {...item.website} label={item.website.label} />
</div>
)}
</div>
);
}
@@ -0,0 +1,20 @@
import { cn } from "@/utils/style";
type LinkedTitleProps = {
title: string;
website?: { url: string; label: string };
showLinkInTitle?: boolean;
className?: string;
};
export function LinkedTitle({ title, website, showLinkInTitle, className }: LinkedTitleProps) {
if (showLinkInTitle && website?.url) {
return (
<a href={website.url} target="_blank" rel="noopener" className={cn("inline-block", className)}>
<strong>{title}</strong>
</a>
);
}
return <strong className={className}>{title}</strong>;
}
@@ -38,7 +38,7 @@ export function ChikoritaTemplate({ pageIndex, pageLayout }: TemplateProps) {
<div className="template-chikorita page-content">
{/* Sidebar Background */}
{!fullWidth && (
<div className="page-sidebar-background absolute inset-y-0 z-0 w-(--page-sidebar-width) shrink-0 bg-(--page-primary-color) ltr:end-0 rtl:start-0" />
<div className="page-sidebar-background pointer-events-none absolute inset-y-0 z-0 w-(--page-sidebar-width) shrink-0 bg-(--page-primary-color) ltr:end-0 rtl:start-0" />
)}
{isFirstPage && <Header />}
+1 -1
View File
@@ -37,7 +37,7 @@ export function DitgarTemplate({ pageIndex, pageLayout }: TemplateProps) {
<div className="template-ditgar page-content">
{/* Sidebar Background */}
{(!fullWidth || isFirstPage) && (
<div className="page-sidebar-background absolute inset-y-0 z-0 w-(--page-sidebar-width) shrink-0 bg-(--page-primary-color)/20 ltr:start-0 rtl:end-0" />
<div className="page-sidebar-background pointer-events-none absolute inset-y-0 z-0 w-(--page-sidebar-width) shrink-0 bg-(--page-primary-color)/20 ltr:start-0 rtl:end-0" />
)}
<div className="flex">
+1 -1
View File
@@ -27,7 +27,7 @@ export function GengarTemplate({ pageIndex, pageLayout }: TemplateProps) {
<div className="template-gengar page-content">
{/* Sidebar Background */}
{(!fullWidth || isFirstPage) && (
<div className="page-sidebar-background absolute inset-y-0 z-0 w-(--page-sidebar-width) shrink-0 bg-(--page-primary-color)/20 ltr:start-0 rtl:end-0" />
<div className="page-sidebar-background pointer-events-none absolute inset-y-0 z-0 w-(--page-sidebar-width) shrink-0 bg-(--page-primary-color)/20 ltr:start-0 rtl:end-0" />
)}
<div className="flex">
+3 -3
View File
@@ -27,14 +27,14 @@ export function GlalieTemplate({ pageIndex, pageLayout }: TemplateProps) {
<div className="template-glalie page-content">
{/* Sidebar Background */}
{(!fullWidth || isFirstPage) && (
<div className="page-sidebar-background absolute inset-y-0 z-0 w-(--page-sidebar-width) shrink-0 bg-(--page-primary-color)/20 ltr:start-0 rtl:end-0" />
<div className="page-sidebar-background pointer-events-none absolute inset-y-0 z-0 w-(--page-sidebar-width) shrink-0 bg-(--page-primary-color)/20 ltr:start-0 rtl:end-0" />
)}
<div className="flex">
{(!fullWidth || isFirstPage) && (
<aside
data-layout="sidebar"
className="group page-sidebar flex w-(--page-sidebar-width) shrink-0 flex-col space-y-4 px-(--page-margin-x) pt-(--page-margin-y)"
className="group page-sidebar z-10 flex w-(--page-sidebar-width) shrink-0 flex-col space-y-4 px-(--page-margin-x) pt-(--page-margin-y)"
>
{isFirstPage && <Header />}
@@ -49,7 +49,7 @@ export function GlalieTemplate({ pageIndex, pageLayout }: TemplateProps) {
</aside>
)}
<main data-layout="main" className="group page-main">
<main data-layout="main" className="group page-main z-10">
<div className="space-y-4 px-(--page-margin-x) pt-(--page-margin-y)">
{main.map((section) => {
const Component = getSectionComponent(section, { sectionClassName });
+24 -1
View File
@@ -10,6 +10,7 @@ import { Button } from "@/components/ui/button";
import { DialogContent, DialogDescription, DialogFooter, DialogHeader, DialogTitle } from "@/components/ui/dialog";
import { Form, FormControl, FormField, FormItem, FormLabel, FormMessage } from "@/components/ui/form";
import { Input } from "@/components/ui/input";
import { Switch } from "@/components/ui/switch";
import type { DialogProps } from "@/dialogs/store";
import { useDialogStore } from "@/dialogs/store";
import { useFormBlocker } from "@/hooks/use-form-blocker";
@@ -29,6 +30,7 @@ export function CreateAwardDialog({ data }: DialogProps<"resume.sections.awards.
defaultValues: {
id: generateId(),
hidden: data?.item?.hidden ?? false,
options: data?.item?.options ?? { showLinkInTitle: false },
title: data?.item?.title ?? "",
awarder: data?.item?.awarder ?? "",
date: data?.item?.date ?? "",
@@ -89,6 +91,7 @@ export function UpdateAwardDialog({ data }: DialogProps<"resume.sections.awards.
defaultValues: {
id: data.item.id,
hidden: data.item.hidden,
options: data.item.options ?? { showLinkInTitle: false },
title: data.item.title,
awarder: data.item.awarder,
date: data.item.date,
@@ -205,13 +208,33 @@ function AwardForm() {
<Trans>Website</Trans>
</FormLabel>
<FormControl>
<URLInput {...field} value={field.value} onChange={field.onChange} />
<URLInput
{...field}
value={field.value}
onChange={field.onChange}
hideLabelButton={form.watch("options.showLinkInTitle")}
/>
</FormControl>
<FormMessage />
</FormItem>
)}
/>
<FormField
control={form.control}
name="options.showLinkInTitle"
render={({ field }) => (
<FormItem className="flex items-center gap-x-2">
<FormControl>
<Switch checked={field.value} onCheckedChange={field.onChange} />
</FormControl>
<FormLabel className="!mt-0">
<Trans>Show link in title</Trans>
</FormLabel>
</FormItem>
)}
/>
<FormField
control={form.control}
name="description"
+24 -1
View File
@@ -10,6 +10,7 @@ import { Button } from "@/components/ui/button";
import { DialogContent, DialogDescription, DialogFooter, DialogHeader, DialogTitle } from "@/components/ui/dialog";
import { Form, FormControl, FormField, FormItem, FormLabel, FormMessage } from "@/components/ui/form";
import { Input } from "@/components/ui/input";
import { Switch } from "@/components/ui/switch";
import type { DialogProps } from "@/dialogs/store";
import { useDialogStore } from "@/dialogs/store";
import { useFormBlocker } from "@/hooks/use-form-blocker";
@@ -29,6 +30,7 @@ export function CreateCertificationDialog({ data }: DialogProps<"resume.sections
defaultValues: {
id: generateId(),
hidden: data?.item?.hidden ?? false,
options: data?.item?.options ?? { showLinkInTitle: false },
title: data?.item?.title ?? "",
issuer: data?.item?.issuer ?? "",
date: data?.item?.date ?? "",
@@ -89,6 +91,7 @@ export function UpdateCertificationDialog({ data }: DialogProps<"resume.sections
defaultValues: {
id: data.item.id,
hidden: data.item.hidden,
options: data.item.options ?? { showLinkInTitle: false },
title: data.item.title,
issuer: data.item.issuer,
date: data.item.date,
@@ -205,13 +208,33 @@ function CertificationForm() {
<Trans>Website</Trans>
</FormLabel>
<FormControl>
<URLInput {...field} value={field.value} onChange={field.onChange} />
<URLInput
{...field}
value={field.value}
onChange={field.onChange}
hideLabelButton={form.watch("options.showLinkInTitle")}
/>
</FormControl>
<FormMessage />
</FormItem>
)}
/>
<FormField
control={form.control}
name="options.showLinkInTitle"
render={({ field }) => (
<FormItem className="flex items-center gap-x-2">
<FormControl>
<Switch checked={field.value} onCheckedChange={field.onChange} />
</FormControl>
<FormLabel className="!mt-0">
<Trans>Show link in title</Trans>
</FormLabel>
</FormItem>
)}
/>
<FormField
control={form.control}
name="description"
+24 -1
View File
@@ -10,6 +10,7 @@ import { Button } from "@/components/ui/button";
import { DialogContent, DialogDescription, DialogFooter, DialogHeader, DialogTitle } from "@/components/ui/dialog";
import { Form, FormControl, FormField, FormItem, FormLabel, FormMessage } from "@/components/ui/form";
import { Input } from "@/components/ui/input";
import { Switch } from "@/components/ui/switch";
import type { DialogProps } from "@/dialogs/store";
import { useDialogStore } from "@/dialogs/store";
import { useFormBlocker } from "@/hooks/use-form-blocker";
@@ -29,6 +30,7 @@ export function CreateEducationDialog({ data }: DialogProps<"resume.sections.edu
defaultValues: {
id: generateId(),
hidden: data?.item?.hidden ?? false,
options: data?.item?.options ?? { showLinkInTitle: false },
school: data?.item?.school ?? "",
degree: data?.item?.degree ?? "",
area: data?.item?.area ?? "",
@@ -92,6 +94,7 @@ export function UpdateEducationDialog({ data }: DialogProps<"resume.sections.edu
defaultValues: {
id: data.item.id,
hidden: data.item.hidden,
options: data.item.options ?? { showLinkInTitle: false },
school: data.item.school,
degree: data.item.degree,
area: data.item.area,
@@ -259,13 +262,33 @@ function EducationForm() {
<Trans>Website</Trans>
</FormLabel>
<FormControl>
<URLInput {...field} value={field.value} onChange={field.onChange} />
<URLInput
{...field}
value={field.value}
onChange={field.onChange}
hideLabelButton={form.watch("options.showLinkInTitle")}
/>
</FormControl>
<FormMessage />
</FormItem>
)}
/>
<FormField
control={form.control}
name="options.showLinkInTitle"
render={({ field }) => (
<FormItem className="flex items-center gap-x-2 sm:col-span-full">
<FormControl>
<Switch checked={field.value} onCheckedChange={field.onChange} />
</FormControl>
<FormLabel className="!mt-0">
<Trans>Show link in title</Trans>
</FormLabel>
</FormItem>
)}
/>
<FormField
control={form.control}
name="description"
+24 -1
View File
@@ -10,6 +10,7 @@ import { Button } from "@/components/ui/button";
import { DialogContent, DialogDescription, DialogFooter, DialogHeader, DialogTitle } from "@/components/ui/dialog";
import { Form, FormControl, FormField, FormItem, FormLabel, FormMessage } from "@/components/ui/form";
import { Input } from "@/components/ui/input";
import { Switch } from "@/components/ui/switch";
import type { DialogProps } from "@/dialogs/store";
import { useDialogStore } from "@/dialogs/store";
import { useFormBlocker } from "@/hooks/use-form-blocker";
@@ -29,6 +30,7 @@ export function CreateExperienceDialog({ data }: DialogProps<"resume.sections.ex
defaultValues: {
id: generateId(),
hidden: data?.item?.hidden ?? false,
options: data?.item?.options ?? { showLinkInTitle: false },
company: data?.item?.company ?? "",
position: data?.item?.position ?? "",
location: data?.item?.location ?? "",
@@ -90,6 +92,7 @@ export function UpdateExperienceDialog({ data }: DialogProps<"resume.sections.ex
defaultValues: {
id: data.item.id,
hidden: data.item.hidden,
options: data.item.options ?? { showLinkInTitle: false },
company: data.item.company,
position: data.item.position,
location: data.item.location,
@@ -223,13 +226,33 @@ function ExperienceForm() {
<Trans>Website</Trans>
</FormLabel>
<FormControl>
<URLInput {...field} value={field.value} onChange={field.onChange} />
<URLInput
{...field}
value={field.value}
onChange={field.onChange}
hideLabelButton={form.watch("options.showLinkInTitle")}
/>
</FormControl>
<FormMessage />
</FormItem>
)}
/>
<FormField
control={form.control}
name="options.showLinkInTitle"
render={({ field }) => (
<FormItem className="flex items-center gap-x-2 sm:col-span-full">
<FormControl>
<Switch checked={field.value} onCheckedChange={field.onChange} />
</FormControl>
<FormLabel className="!mt-0">
<Trans>Show link in title</Trans>
</FormLabel>
</FormItem>
)}
/>
<FormField
control={form.control}
name="description"
+24 -1
View File
@@ -12,6 +12,7 @@ import { DialogContent, DialogDescription, DialogFooter, DialogHeader, DialogTit
import { Form, FormControl, FormField, FormItem, FormLabel, FormMessage } from "@/components/ui/form";
import { Input } from "@/components/ui/input";
import { InputGroup, InputGroupAddon, InputGroupInput, InputGroupText } from "@/components/ui/input-group";
import { Switch } from "@/components/ui/switch";
import { type DialogProps, useDialogStore } from "@/dialogs/store";
import { useFormBlocker } from "@/hooks/use-form-blocker";
import { profileItemSchema } from "@/schema/resume/data";
@@ -31,6 +32,7 @@ export function CreateProfileDialog({ data }: DialogProps<"resume.sections.profi
defaultValues: {
id: generateId(),
hidden: data?.item?.hidden ?? false,
options: data?.item?.options ?? { showLinkInTitle: false },
icon: data?.item?.icon ?? "acorn",
network: data?.item?.network ?? "",
username: data?.item?.username ?? "",
@@ -90,6 +92,7 @@ export function UpdateProfileDialog({ data }: DialogProps<"resume.sections.profi
defaultValues: {
id: data.item.id,
hidden: data.item.hidden,
options: data.item.options ?? { showLinkInTitle: false },
icon: data.item.icon,
network: data.item.network,
username: data.item.username,
@@ -216,12 +219,32 @@ function ProfileForm() {
<Trans>Website</Trans>
</FormLabel>
<FormControl>
<URLInput {...field} value={field.value} onChange={field.onChange} />
<URLInput
{...field}
value={field.value}
onChange={field.onChange}
hideLabelButton={form.watch("options.showLinkInTitle")}
/>
</FormControl>
<FormMessage />
</FormItem>
)}
/>
<FormField
control={form.control}
name="options.showLinkInTitle"
render={({ field }) => (
<FormItem className="flex items-center gap-x-2 sm:col-span-full">
<FormControl>
<Switch checked={field.value} onCheckedChange={field.onChange} />
</FormControl>
<FormLabel className="!mt-0">
<Trans>Show link in title</Trans>
</FormLabel>
</FormItem>
)}
/>
</>
);
}
+24 -1
View File
@@ -10,6 +10,7 @@ import { Button } from "@/components/ui/button";
import { DialogContent, DialogDescription, DialogFooter, DialogHeader, DialogTitle } from "@/components/ui/dialog";
import { Form, FormControl, FormField, FormItem, FormLabel, FormMessage } from "@/components/ui/form";
import { Input } from "@/components/ui/input";
import { Switch } from "@/components/ui/switch";
import type { DialogProps } from "@/dialogs/store";
import { useDialogStore } from "@/dialogs/store";
import { useFormBlocker } from "@/hooks/use-form-blocker";
@@ -29,6 +30,7 @@ export function CreateProjectDialog({ data }: DialogProps<"resume.sections.proje
defaultValues: {
id: generateId(),
hidden: data?.item?.hidden ?? false,
options: data?.item?.options ?? { showLinkInTitle: false },
name: data?.item?.name ?? "",
period: data?.item?.period ?? "",
website: data?.item?.website ?? { url: "", label: "" },
@@ -88,6 +90,7 @@ export function UpdateProjectDialog({ data }: DialogProps<"resume.sections.proje
defaultValues: {
id: data.item.id,
hidden: data.item.hidden,
options: data.item.options ?? { showLinkInTitle: false },
name: data.item.name,
period: data.item.period,
website: data.item.website,
@@ -187,13 +190,33 @@ function ProjectForm() {
<Trans>Website</Trans>
</FormLabel>
<FormControl>
<URLInput {...field} value={field.value} onChange={field.onChange} />
<URLInput
{...field}
value={field.value}
onChange={field.onChange}
hideLabelButton={form.watch("options.showLinkInTitle")}
/>
</FormControl>
<FormMessage />
</FormItem>
)}
/>
<FormField
control={form.control}
name="options.showLinkInTitle"
render={({ field }) => (
<FormItem className="flex items-center gap-x-2 sm:col-span-full">
<FormControl>
<Switch checked={field.value} onCheckedChange={field.onChange} />
</FormControl>
<FormLabel className="!mt-0">
<Trans>Show link in title</Trans>
</FormLabel>
</FormItem>
)}
/>
<FormField
control={form.control}
name="description"
+24 -1
View File
@@ -10,6 +10,7 @@ import { Button } from "@/components/ui/button";
import { DialogContent, DialogDescription, DialogFooter, DialogHeader, DialogTitle } from "@/components/ui/dialog";
import { Form, FormControl, FormField, FormItem, FormLabel, FormMessage } from "@/components/ui/form";
import { Input } from "@/components/ui/input";
import { Switch } from "@/components/ui/switch";
import type { DialogProps } from "@/dialogs/store";
import { useDialogStore } from "@/dialogs/store";
import { useFormBlocker } from "@/hooks/use-form-blocker";
@@ -29,6 +30,7 @@ export function CreatePublicationDialog({ data }: DialogProps<"resume.sections.p
defaultValues: {
id: generateId(),
hidden: data?.item?.hidden ?? false,
options: data?.item?.options ?? { showLinkInTitle: false },
title: data?.item?.title ?? "",
publisher: data?.item?.publisher ?? "",
date: data?.item?.date ?? "",
@@ -89,6 +91,7 @@ export function UpdatePublicationDialog({ data }: DialogProps<"resume.sections.p
defaultValues: {
id: data.item.id,
hidden: data.item.hidden,
options: data.item.options ?? { showLinkInTitle: false },
title: data.item.title,
publisher: data.item.publisher,
date: data.item.date,
@@ -205,13 +208,33 @@ function PublicationForm() {
<Trans>Website</Trans>
</FormLabel>
<FormControl>
<URLInput {...field} value={field.value} onChange={field.onChange} />
<URLInput
{...field}
value={field.value}
onChange={field.onChange}
hideLabelButton={form.watch("options.showLinkInTitle")}
/>
</FormControl>
<FormMessage />
</FormItem>
)}
/>
<FormField
control={form.control}
name="options.showLinkInTitle"
render={({ field }) => (
<FormItem className="flex items-center gap-x-2">
<FormControl>
<Switch checked={field.value} onCheckedChange={field.onChange} />
</FormControl>
<FormLabel className="!mt-0">
<Trans>Show link in title</Trans>
</FormLabel>
</FormItem>
)}
/>
<FormField
control={form.control}
name="description"
+24 -1
View File
@@ -10,6 +10,7 @@ import { Button } from "@/components/ui/button";
import { DialogContent, DialogDescription, DialogFooter, DialogHeader, DialogTitle } from "@/components/ui/dialog";
import { Form, FormControl, FormField, FormItem, FormLabel, FormMessage } from "@/components/ui/form";
import { Input } from "@/components/ui/input";
import { Switch } from "@/components/ui/switch";
import type { DialogProps } from "@/dialogs/store";
import { useDialogStore } from "@/dialogs/store";
import { useFormBlocker } from "@/hooks/use-form-blocker";
@@ -29,6 +30,7 @@ export function CreateReferenceDialog({ data }: DialogProps<"resume.sections.ref
defaultValues: {
id: generateId(),
hidden: data?.item?.hidden ?? false,
options: data?.item?.options ?? { showLinkInTitle: false },
name: data?.item?.name ?? "",
position: data?.item?.position ?? "",
website: data?.item?.website ?? { url: "", label: "" },
@@ -89,6 +91,7 @@ export function UpdateReferenceDialog({ data }: DialogProps<"resume.sections.ref
defaultValues: {
id: data.item.id,
hidden: data.item.hidden,
options: data.item.options ?? { showLinkInTitle: false },
name: data.item.name,
position: data.item.position,
website: data.item.website,
@@ -205,13 +208,33 @@ function ReferenceForm() {
<Trans>Website</Trans>
</FormLabel>
<FormControl>
<URLInput {...field} value={field.value} onChange={field.onChange} />
<URLInput
{...field}
value={field.value}
onChange={field.onChange}
hideLabelButton={form.watch("options.showLinkInTitle")}
/>
</FormControl>
<FormMessage />
</FormItem>
)}
/>
<FormField
control={form.control}
name="options.showLinkInTitle"
render={({ field }) => (
<FormItem className="flex items-center gap-x-2">
<FormControl>
<Switch checked={field.value} onCheckedChange={field.onChange} />
</FormControl>
<FormLabel className="!mt-0">
<Trans>Show link in title</Trans>
</FormLabel>
</FormItem>
)}
/>
<FormField
control={form.control}
name="description"
+24 -1
View File
@@ -10,6 +10,7 @@ import { Button } from "@/components/ui/button";
import { DialogContent, DialogDescription, DialogFooter, DialogHeader, DialogTitle } from "@/components/ui/dialog";
import { Form, FormControl, FormField, FormItem, FormLabel, FormMessage } from "@/components/ui/form";
import { Input } from "@/components/ui/input";
import { Switch } from "@/components/ui/switch";
import type { DialogProps } from "@/dialogs/store";
import { useDialogStore } from "@/dialogs/store";
import { useFormBlocker } from "@/hooks/use-form-blocker";
@@ -29,6 +30,7 @@ export function CreateVolunteerDialog({ data }: DialogProps<"resume.sections.vol
defaultValues: {
id: generateId(),
hidden: data?.item?.hidden ?? false,
options: data?.item?.options ?? { showLinkInTitle: false },
organization: data?.item?.organization ?? "",
location: data?.item?.location ?? "",
period: data?.item?.period ?? "",
@@ -89,6 +91,7 @@ export function UpdateVolunteerDialog({ data }: DialogProps<"resume.sections.vol
defaultValues: {
id: data.item.id,
hidden: data.item.hidden,
options: data.item.options ?? { showLinkInTitle: false },
organization: data.item.organization,
location: data.item.location,
period: data.item.period,
@@ -205,13 +208,33 @@ function VolunteerForm() {
<Trans>Website</Trans>
</FormLabel>
<FormControl>
<URLInput {...field} value={field.value} onChange={field.onChange} />
<URLInput
{...field}
value={field.value}
onChange={field.onChange}
hideLabelButton={form.watch("options.showLinkInTitle")}
/>
</FormControl>
<FormMessage />
</FormItem>
)}
/>
<FormField
control={form.control}
name="options.showLinkInTitle"
render={({ field }) => (
<FormItem className="flex items-center gap-x-2">
<FormControl>
<Switch checked={field.value} onCheckedChange={field.onChange} />
</FormControl>
<FormLabel className="!mt-0">
<Trans>Show link in title</Trans>
</FormLabel>
</FormItem>
)}
/>
<FormField
control={form.control}
name="description"
+4
View File
@@ -120,6 +120,10 @@ const getAuthConfig = () => {
},
},
additionalFields: {
name: {
type: "string",
required: true,
},
username: {
type: "string",
required: true,
+12
View File
@@ -7,6 +7,17 @@ export const iconSchema = z
"The icon to display for the custom field. Must be a valid icon name from @phosphor-icons/web icon set, or an empty string to hide. Default to '' (empty string) when unsure which icons are available.",
);
export const itemOptionsSchema = z
.object({
showLinkInTitle: z
.boolean()
.catch(false)
.describe(
"If true, the website URL is rendered as a hyperlink on the title instead of a separate link at the bottom.",
),
})
.catch({ showLinkInTitle: false });
export const urlSchema = z.object({
url: z.string().describe("The URL to show as a link. Must be a valid URL with a protocol (http:// or https://)."),
label: z.string().describe("The label to display for the URL. Leave blank to display the URL as-is."),
@@ -84,6 +95,7 @@ export const summarySchema = z.object({
export const baseItemSchema = z.object({
id: z.string().describe("The unique identifier for the item. Usually generated as a UUID."),
hidden: z.boolean().describe("Whether to hide the item from the resume."),
options: itemOptionsSchema.optional().describe("Display options for this item."),
});
export const summaryItemSchema = baseItemSchema.extend({
+1 -1
View File
@@ -37,7 +37,7 @@ import { cn } from "../style";
export type LeftSidebarSection = "picture" | "basics" | "summary" | SectionType | "custom";
// CustomSectionType values that are not in SectionType (used in custom sections only)
export type CustomOnlyType = "cover-letter";
type CustomOnlyType = "cover-letter";
export type RightSidebarSection =
| "template"