diff --git a/app/views/layouts/_head_tags.html.erb b/app/views/layouts/_head_tags.html.erb index a6426f4f..9eb52a35 100644 --- a/app/views/layouts/_head_tags.html.erb +++ b/app/views/layouts/_head_tags.html.erb @@ -1,4 +1,5 @@ - <%= content_for(:html_title) || (signed_in? ? 'DocuSeal' : 'DocuSeal | Open Source Document Signing') %> + <%= content_for(:html_title) || (signed_in? ? 'Intébec Signature' : 'Intébec | Signature') %> <%= render 'shared/meta' %> + diff --git a/app/views/pages/landing.html.erb b/app/views/pages/landing.html.erb index 78cc823e..26031df4 100644 --- a/app/views/pages/landing.html.erb +++ b/app/views/pages/landing.html.erb @@ -1,79 +1,2 @@ -
-
-
-
-
- <%= render 'shared/logo', width: '100', height: '100' %> -

- DocuSeal -

- <% if Docuseal.version.present? %> - - v<%= Docuseal.version %> - - <% end %> -
-

- A self-hosted and open-source web platform that provides secure and efficient digital document signing and processing. -

-
-
-
-
-
-
-
- <%= svg_icon('brand_docker', class: 'w-10 h-10 text-base-100 stroke-1') %> -
-

Easy to Start

-

- Run on your own host using Docker container, or deploy on your favorite managed PaaS with a single click. -

-
-
-
-
-
-
-
- <%= svg_icon('devices', class: 'w-10 h-10 text-base-100') %> -
-

Mobile Optimized

-

- Review and sign digital documents online from any device. - Docuseal document forms are optimized for screens of all sizes. -

-
-
-
-
-
-
-
- <%= svg_icon('shield_check', class: 'w-10 h-10 text-base-100') %> -
-

Secure

-

- Host it on your hardware under a VPN to ensure that important documents can be accesses only within your organization. -

-
-
-
-
-
-
-
- <%= svg_icon('brand_github', class: 'w-10 h-10 text-base-100') %> -
-

Open Source

-

- Source code is available under github.com/docusealco.
- Open-source contributors are always ready to help! -

-
-
-
-
-
-
-<%= render 'shared/attribution', with_counter: true %> +<% response.headers['Location'] = new_user_session_path %> +<% response.status = 302 %> diff --git a/app/views/shared/_email_attribution.html.erb b/app/views/shared/_email_attribution.html.erb index 8cfd4988..17cf6ac9 100644 --- a/app/views/shared/_email_attribution.html.erb +++ b/app/views/shared/_email_attribution.html.erb @@ -2,9 +2,8 @@ ---

- <% if @current_account&.testing? %> - <%= t('sent_using_product_name_in_testing_mode_html', product_url: "#{Docuseal::PRODUCT_EMAIL_URL}/start", product_name: Docuseal.product_name) %> - <% else %> - <%= t('sent_using_product_name_free_document_signing_html', product_url: "#{Docuseal::PRODUCT_EMAIL_URL}/start", product_name: Docuseal.product_name) %> - <% end %> + --- +

+

+ Envoyé avec Intébec — signature de documents sécurisée.

diff --git a/app/views/shared/_github.html.erb b/app/views/shared/_github.html.erb index 5bcc786a..e69de29b 100644 --- a/app/views/shared/_github.html.erb +++ b/app/views/shared/_github.html.erb @@ -1,6 +0,0 @@ - - - <%= svg_icon('start', class: 'h-3 w-3') %> - 11k - - diff --git a/app/views/shared/_logo.html.erb b/app/views/shared/_logo.html.erb index ce505b8f..1f848620 100644 --- a/app/views/shared/_logo.html.erb +++ b/app/views/shared/_logo.html.erb @@ -1,4 +1 @@ - - - - + diff --git a/app/views/shared/_meta.html.erb b/app/views/shared/_meta.html.erb index 1b27c405..d9b7f33e 100644 --- a/app/views/shared/_meta.html.erb +++ b/app/views/shared/_meta.html.erb @@ -1,8 +1,8 @@ <% if Docuseal.demo? || (request.path != '/' && !devise_controller?) %> <% end %> -<% title = content_for(:html_title) || (signed_in? ? 'DocuSeal' : 'DocuSeal | Open Source Document Signing') %> -<% description = content_for(:html_description) || 'Open source, self-hosted tool to streamline document filling and signing. Create custom PDF forms to complete and sign with an easy to use online tool.' %> +<% title = content_for(:html_title) || (signed_in? ? 'Intébec Signature' : 'Intébec | Signature') %> +<% description = content_for(:html_description) || 'Outil de signature fait par Intébec. Permet de signer des documents facilement.' %> diff --git a/app/views/shared/_navbar_buttons.html.erb b/app/views/shared/_navbar_buttons.html.erb index f8692699..242af660 100644 --- a/app/views/shared/_navbar_buttons.html.erb +++ b/app/views/shared/_navbar_buttons.html.erb @@ -1,8 +1,3 @@ <% if signed_in? && current_user != true_user %> <%= render 'shared/test_alert' %> -<% elsif request.path.starts_with?('/settings') %> - <%= link_to "#{Docuseal::CLOUD_URL}/sign_up?#{{ redir: "#{Docuseal::CONSOLE_URL}/on_premises" }.to_query}", class: 'hidden md:inline-flex btn btn-warning btn-sm', data: { prefetch: false } do %> - <%= t('upgrade') %> - <% end %> - <% end %> diff --git a/app/views/shared/_settings_nav.html.erb b/app/views/shared/_settings_nav.html.erb index ca074009..97b45add 100644 --- a/app/views/shared/_settings_nav.html.erb +++ b/app/views/shared/_settings_nav.html.erb @@ -13,7 +13,7 @@ <%= link_to t('account'), settings_account_path, class: 'text-base hover:bg-base-300' %> <% unless Docuseal.multitenant? %> - <% if can?(:read, EncryptedConfig.new(key: EncryptedConfig::EMAIL_SMTP_KEY, account: current_account)) && ENV['SMTP_ADDRESS'].blank? && true_user == current_user %> + <% if can?(:read, EncryptedConfig.new(key: EncryptedConfig::EMAIL_SMTP_KEY, account: current_account)) && ENV['SMTP_ADDRESS'].blank? && true_user == current_user %>
  • <%= link_to t('email'), settings_email_index_path, class: 'text-base hover:bg-base-300' %>
  • @@ -23,11 +23,6 @@ <%= link_to t('storage'), settings_storage_index_path, class: 'text-base hover:bg-base-300' %> <% end %> - <% if can?(:read, EncryptedConfig.new(key: 'submitter_invitation_sms', account: current_account)) && true_user == current_user %> -
  • - <%= link_to 'SMS', settings_sms_path, class: 'text-base hover:bg-base-300' %> -
  • - <% end %> <% end %> <% if can?(:read, AccountConfig) %>
  • @@ -64,32 +59,7 @@
  • <% end %> <% end %> - <% if !Docuseal.demo? && can?(:manage, EncryptedConfig) && (current_user != true_user || !current_account.linked_account_account) %> -
  • - <%= content_for(:pro_link) || link_to(Docuseal.multitenant? ? console_redirect_index_path(redir: "#{Docuseal::CONSOLE_URL}/plans") : "#{Docuseal::CLOUD_URL}/sign_up?#{{ redir: "#{Docuseal::CONSOLE_URL}/on_premises" }.to_query}", class: 'text-base hover:bg-base-300', data: { turbo: false }) do %> - <%= t('plans') %> - <%= t('pro') %> - <% end %> -
  • - <% end %> <% if !Docuseal.demo? && can?(:manage, EncryptedConfig) && (current_user == true_user || current_account.testing?) %> -
  • - <%= link_to Docuseal.multitenant? ? console_redirect_index_path(redir: "#{Docuseal::CONSOLE_URL}#{'/test' if current_account.testing?}/api") : "#{Docuseal::CONSOLE_URL}/on_premises", class: 'text-base hover:bg-base-300', data: { turbo: false } do %> - <% if Docuseal.multitenant? %> API <% else %> <%= t('console') %> <% end %> - <% end %> -
  • - <% if Docuseal.multitenant? %> -
  • - <%= link_to console_redirect_index_path(redir: "#{Docuseal::CONSOLE_URL}#{'/test' if current_account.testing?}/embedding/form"), class: 'text-base hover:bg-base-300', data: { turbo: false } do %> - <%= t('embedding') %> - <% end %> -
  • - <% end %> - <% if (!Docuseal.multitenant? || can?(:manage, :saml_sso)) && can?(:read, EncryptedConfig.new(key: 'saml_configs', account: current_account)) && true_user == current_user %> -
  • - <%= link_to 'SSO', settings_sso_index_path, class: 'text-base hover:bg-base-300' %> -
  • - <% end %> <%= render 'shared/settings_nav_extra2' %> <% if (can?(:manage, EncryptedConfig) && current_user == true_user) || (current_user != true_user && current_account.testing?) %> <%= form_for '', url: testing_account_path, method: current_account.testing? ? :delete : :get, html: { class: 'w-full' } do |f| %> @@ -108,38 +78,4 @@ <% end %> - <% if Docuseal.multitenant? || cannot?(:manage, :tenants) %> - - <% end %> diff --git a/app/views/shared/_title.html.erb b/app/views/shared/_title.html.erb index 9830a7ca..0bc369f8 100644 --- a/app/views/shared/_title.html.erb +++ b/app/views/shared/_title.html.erb @@ -1,2 +1,2 @@ <%= render 'shared/logo' %> -DocuSeal +Intébec diff --git a/public/favicon-16x16.png b/public/favicon-16x16.png index e38921b8..0af91364 100644 Binary files a/public/favicon-16x16.png and b/public/favicon-16x16.png differ diff --git a/public/favicon-32x32.png b/public/favicon-32x32.png index fd8ea8dd..8cb092d5 100644 Binary files a/public/favicon-32x32.png and b/public/favicon-32x32.png differ diff --git a/public/favicon-96x96.png b/public/favicon-96x96.png index 600a59f4..6a50885f 100644 Binary files a/public/favicon-96x96.png and b/public/favicon-96x96.png differ diff --git a/public/favicon.ico b/public/favicon.ico index c0c2bf89..e0b9786b 100644 Binary files a/public/favicon.ico and b/public/favicon.ico differ diff --git a/public/intebec.css b/public/intebec.css new file mode 100644 index 00000000..1917c7c6 --- /dev/null +++ b/public/intebec.css @@ -0,0 +1,271 @@ +/* Intébec theme overrides for DocuSeal (DaisyUI/Tailwind) + Scope: only when docuseal theme is active. + v2 – Professional, restrained palette. Blue reserved for primary actions only. */ + +[data-theme="docuseal"] { + /* Brand – used sparingly */ + --ib-primary: 216 77% 52%; + --ib-primary-strong: 216 77% 44%; + --ib-primary-soft: 216 60% 95%; + + /* Neutrals – the backbone of the UI */ + --ib-neutral: 220 16% 12%; + --ib-neutral-soft: 220 12% 96%; + + --ib-bg: 220 14% 98%; + --ib-surface: 0 0% 100%; + --ib-surface-2: 220 14% 96%; + --ib-border: 220 10% 88%; + --ib-text: 220 14% 10%; + --ib-text-secondary: 220 8% 40%; + --ib-muted: 220 6% 55%; + + /* DaisyUI theme tokens (H S L space-separated) */ + --p: var(--ib-primary); + --pf: var(--ib-primary-strong); + --pc: 0 0% 100%; + + --s: 220 12% 45%; + --sf: 220 14% 36%; + --sc: 0 0% 100%; + + --a: 160 50% 40%; + --af: 160 50% 34%; + --ac: 0 0% 100%; + + --n: var(--ib-neutral); + --nf: 220 16% 8%; + --nc: 0 0% 100%; + + --b1: var(--ib-surface); + --b2: var(--ib-surface-2); + --b3: 220 12% 93%; + --bc: var(--ib-text); + + --in: 205 80% 50%; + --su: 154 55% 38%; + --wa: 38 88% 48%; + --er: 0 72% 50%; + + /* Radii + shadow */ + --rounded-box: 0.875rem; + --rounded-btn: 0.625rem; + --rounded-badge: 9999px; +} + +/* ─── Global polish ─── */ +html, body { + -webkit-font-smoothing: antialiased; + -moz-osx-font-smoothing: grayscale; +} + +[data-theme="docuseal"] body { + background: hsl(var(--ib-bg)); + color: hsl(var(--ib-text)); +} + +/* ─── Links: dark by default, blue only on hover ─── */ +[data-theme="docuseal"] a { + color: hsl(var(--ib-text)); + transition: color 0.15s ease; +} +[data-theme="docuseal"] a:hover { + color: hsl(var(--ib-primary)); +} + +/* Sidebar nav links — neutral dark, not blue */ +[data-theme="docuseal"] aside a, +[data-theme="docuseal"] nav a, +[data-theme="docuseal"] .menu a { + color: hsl(var(--ib-text-secondary)); + font-weight: 500; +} +[data-theme="docuseal"] aside a:hover, +[data-theme="docuseal"] nav a:hover, +[data-theme="docuseal"] .menu a:hover { + color: hsl(var(--ib-text)); + background: hsl(var(--ib-neutral-soft)); +} +/* Active sidebar item */ +[data-theme="docuseal"] aside a.active, +[data-theme="docuseal"] aside a[aria-current], +[data-theme="docuseal"] .menu a.active { + color: hsl(var(--ib-primary)); + font-weight: 600; + background: hsl(var(--ib-primary-soft)); +} + +/* ─── Navbar / header ─── */ +[data-theme="docuseal"] .navbar, +[data-theme="docuseal"] header { + background: hsl(var(--ib-surface)); + border-bottom: 1px solid hsl(var(--ib-border)); +} + +/* ─── Cards / panels ─── */ +[data-theme="docuseal"] .card, +[data-theme="docuseal"] .modal-box, +[data-theme="docuseal"] .rounded-box, +[data-theme="docuseal"] .bg-base-100 { + background: hsl(var(--ib-surface)); + border: 1px solid hsl(var(--ib-border)); + box-shadow: 0 1px 3px rgba(0, 0, 0, 0.04), 0 4px 12px rgba(0, 0, 0, 0.03); +} + +[data-theme="docuseal"] .bg-base-200 { + background: hsl(var(--ib-surface-2)); +} + +/* ─── Headings ─── */ +[data-theme="docuseal"] h1, +[data-theme="docuseal"] h2, +[data-theme="docuseal"] h3, +[data-theme="docuseal"] h4 { + color: hsl(var(--ib-text)); + font-weight: 700; +} + +/* ─── Labels & secondary text ─── */ +[data-theme="docuseal"] label, +[data-theme="docuseal"] .label-text { + color: hsl(var(--ib-text-secondary)); + font-weight: 500; +} + +/* ─── Buttons ─── */ +[data-theme="docuseal"] .btn { + border-radius: var(--rounded-btn); + font-weight: 600; + letter-spacing: 0.15px; + border-width: 1px; + transition: all 0.15s ease; +} + +/* Primary – the only blue button */ +[data-theme="docuseal"] .btn-primary, +[data-theme="docuseal"] .base-button { + background: hsl(var(--ib-primary)); + border-color: hsl(var(--ib-primary)); + color: white; + box-shadow: 0 1px 3px rgba(37, 99, 235, 0.25); +} +[data-theme="docuseal"] .btn-primary:hover, +[data-theme="docuseal"] .base-button:hover { + background: hsl(var(--ib-primary-strong)); + border-color: hsl(var(--ib-primary-strong)); + box-shadow: 0 2px 6px rgba(37, 99, 235, 0.30); +} + +/* Neutral button – dark, professional */ +[data-theme="docuseal"] .btn-neutral { + background: hsl(var(--ib-neutral)); + border-color: hsl(var(--ib-neutral)); + color: white; +} +[data-theme="docuseal"] .btn-neutral:hover { + filter: brightness(1.1); +} + +/* Outline / ghost */ +[data-theme="docuseal"] .btn-outline { + background: transparent; + border-color: hsl(var(--ib-border)); + color: hsl(var(--ib-text)); +} +[data-theme="docuseal"] .btn-outline:hover { + background: hsl(var(--ib-neutral-soft)); + border-color: hsl(220 10% 80%); + color: hsl(var(--ib-text)); +} + +/* White button */ +[data-theme="docuseal"] .white-button { + border-radius: var(--rounded-btn); + background: hsl(var(--ib-surface)); + border: 1px solid hsl(var(--ib-border)); + color: hsl(var(--ib-text)); + font-weight: 600; +} +[data-theme="docuseal"] .white-button:hover { + background: hsl(var(--ib-surface-2)); +} + +/* ─── Badges ─── */ +[data-theme="docuseal"] .badge { + border-radius: var(--rounded-badge); + font-weight: 600; + font-size: 0.75rem; + letter-spacing: 0.2px; +} +[data-theme="docuseal"] .badge-success { + background: hsl(154 50% 93%); + border-color: hsl(154 35% 82%); + color: hsl(154 45% 22%); +} +[data-theme="docuseal"] .badge-info { + background: hsl(205 70% 94%); + border-color: hsl(205 45% 84%); + color: hsl(205 60% 22%); +} +[data-theme="docuseal"] .badge-warning { + background: hsl(38 80% 93%); + border-color: hsl(38 55% 82%); + color: hsl(38 60% 22%); +} +[data-theme="docuseal"] .badge-error { + background: hsl(0 70% 94%); + border-color: hsl(0 45% 84%); + color: hsl(0 55% 24%); +} + +/* ─── Inputs ─── */ +[data-theme="docuseal"] .input, +[data-theme="docuseal"] .select, +[data-theme="docuseal"] .textarea { + border-radius: 0.625rem; + border-color: hsl(var(--ib-border)); + background: hsl(var(--ib-surface)); + color: hsl(var(--ib-text)); +} +[data-theme="docuseal"] .input:focus, +[data-theme="docuseal"] .select:focus, +[data-theme="docuseal"] .textarea:focus, +[data-theme="docuseal"] .input:focus-visible, +[data-theme="docuseal"] .select:focus-visible, +[data-theme="docuseal"] .textarea:focus-visible { + outline: none; + border-color: hsl(var(--ib-primary)); + box-shadow: 0 0 0 3px hsla(216, 77%, 52%, 0.12); +} + +/* ─── Tables ─── */ +[data-theme="docuseal"] .table :where(th, td) { + border-color: hsl(var(--ib-border)); + color: hsl(var(--ib-text)); +} +[data-theme="docuseal"] .table thead th { + background: hsl(var(--ib-surface-2)); + color: hsl(var(--ib-text-secondary)); + font-weight: 600; + text-transform: uppercase; + font-size: 0.75rem; + letter-spacing: 0.5px; +} + +/* ─── Separators ─── */ +[data-theme="docuseal"] .divider, +[data-theme="docuseal"] hr { + border-color: hsl(var(--ib-border)); +} + +/* ─── Dropzone ─── */ +[data-theme="docuseal"] [class*="border-dashed"] { + border-color: hsl(220 10% 82%); +} + +/* ─── Root fallbacks ─── */ +:root { + --b1: 0 0% 100% !important; + --b2: 220 14% 96% !important; + --b3: 220 12% 93% !important; +} diff --git a/public/logo.svg b/public/logo.svg index e45f6c09..164e3817 100644 --- a/public/logo.svg +++ b/public/logo.svg @@ -1,4 +1,3 @@ - - - + +