* feat: add custom brand name + font feature (v1.2.0)
- Add BRAND_NAME_KEY, BRAND_NAME_FONT_KEY, BRAND_NAME_FONTS whitelist to AccountConfig
- Modify _title.html.erb to render custom brand name with configurable font
- Create _brand_name_form.html.erb partial with text input + font dropdown
- Add brand name form to personalization_settings/show.html.erb
- Add BRAND_NAME keys to PersonalizationSettingsController ALLOWED_KEYS
- Apply brand name header in mailer layout
- Add i18n translations (EN, ES, IT, FR, PT, DE, NL)
- Env override support via DOCUSEAL_CONFIG_BRAND_NAME / DOCUSEAL_CONFIG_BRAND_NAME_FONT
- When brand_name is unset, upstream DocuSeal text renders as before
- When set, configured text renders in chosen font (CSS font-family inline)
* fix: address review — correct font CSS fallback, system-ui quoting, server-side validation
- Add brand_font_css helper to AccountConfig for proper CSS output
- system-ui rendered unquoted; Inter uses sans-serif fallback; script fonts use cursive
- Add server-side validation rejecting fonts not in BRAND_NAME_FONTS whitelist
- Add invalid_font_selection i18n key
* fix: use Rails form helpers for BetterHtml compatibility in brand name and UI visibility forms
---------
Co-authored-by: Bob Develop <developbob50@gmail.com>
* Fix ESLint quote-props errors in signature_step.vue
* feat: add per-account custom logo support with env var fallback
- Add has_one_attached :logo to Account model
- Add Docuseal.custom_logo_url helper reading CUSTOM_LOGO_URL env var
- Create AccountLogoController with upload/delete actions
- Update shared/_logo.html.erb to render: account.logo > CUSTOM_LOGO_URL > default SVG
- Replace logo_form placeholder with actual upload form + preview + delete
- Add route for account_logo under /settings
- Add i18n translations for logo flash messages
* test: add Playwright tests for custom logo upload, delete, and env fallback
---------
Co-authored-by: mario.pander <developbob50@gmail.com>
Co-authored-by: David Pierre-Francois <david.pierre-francois@videotron.com>
* feat: add pluggable field detection system (v0.14.0)
Add external field detection via Ruby scripts and YAML profiles.
Two plugin mechanisms supported side-by-side:
1. Ruby scripts (FIELD_DETECTION_SCRIPTS_DIR) - full-power handlers
registered via Templates::FieldDetection.register(name, handler)
2. YAML profiles (FIELD_DETECTION_CONFIG_DIR) - declarative configs
with text anchors + relative offsets OR absolute positions
Core changes:
- lib/templates/field_detection.rb: registry, loader, dispatcher
- lib/templates/field_detection/config_based.rb: YAML profile engine
with anchor-based and absolute positioning, negative page indices
- Controller accepts algorithm param, dispatches accordingly
- Split-button UI: main action = ML detection, dropdown = profiles
- RSpec tests for both modules with fixture YAML profiles
No business-specific algorithms ship with docuseal - all are injected
at deploy time via ConfigMap/mounted volumes.
* fix: use proper user/account setup in config_based spec
* fix: include submitters in algorithm detection response
---------
Co-authored-by: Bob Develop <developbob50@gmail.com>
* feat: add typed signature with font picker to user profile
- Add 'Type' tab alongside 'Draw' and 'Upload' in signature/initials modals
- Create typed-signature-form custom element for canvas-based typed signatures
- Persist font preference per user via UserConfig (signature_font/initials_font)
- Pre-select saved font when reopening the modal
- Add i18n keys for 'type' and 'type_signature_here' in all 7 languages
* fix: use options_for_select to satisfy BetterHtml validation
---------
Co-authored-by: Bob Develop <developbob50@gmail.com>