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
+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({