The editor_content CSS class used --page-body-font-weight-bold without
a fallback value. This variable is only injected in the resume preview
context (via use-css-variables.tsx), so in the editor UI the variable
was undefined, causing <strong> tags to render with no visible weight
change.
Adding a 'bold' fallback ensures bold text is correctly displayed in
the editor regardless of whether the CSS variable is set.
Fixes#2730
* implement PUT response
* Refactor resume router and service to use DTOs for input and output schemas
* define explicitly, the fields to be returned
---------
Co-authored-by: Amruth Pillai <im.amruth@gmail.com>
* 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>
* feat: add summaryItemSchema for custom summary section type
* feat: add CreateSummaryItemDialog and UpdateSummaryItemDialog
* feat: register summary item dialog types in store
* feat: route summary item dialogs in manager
* feat: add SummaryItem render component
* feat: handle summary type in renderItemByType and hide title for summary sections
* feat: handle summary type in sidebar helpers
* feat: add summary to custom section type options
* fix: update type definitions to support CustomSectionType for summary sections
* chore: extract new i18n strings for summary section
* style: apply biome formatting fixes
* chore: remove TODO.md file containing outdated feature specifications
* feat: add useFormBlocker hook for dialog dirty state protection
* feat: add useFormBlocker hook for dialog dirty state protection
- Create useFormBlocker hook that blocks dialog closing when forms have unsaved changes
- Use onPointerDownOutside and onEscapeKeyDown to intercept close attempts
- Show confirmation dialog with Leave/Stay options using useConfirm
- Integrate with CreateResumeDialog, UpdateResumeDialog, and DuplicateResumeDialog
- All strings are translatable via Lingui
* Feature: Create a new `useFormBlocker` hook to block the user from closing a dialog or navigating away from a page if the form is dirty.
* feat: introduce template sidebar type
* feat: align sidebar builder depending on template alignment
* revert: keep full width toggle for now until we merge SortableLayoutItem on template change.
* fix: typo
* use string literals instead of enum, modify logic for layout display slightly
---------
Co-authored-by: Amruth Pillai <im.amruth@gmail.com>
* fix: remove empty proficiency and keywords spacing in skills items
Only render proficiency and keywords fields when they contain values,
preventing empty inline-block elements from reserving unwanted space
in templates like Pikachu.
Fixes#2607
* style: biome check --write