dsfr-view-components 3.0.1 → 3.0.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +4 -4
- data/app/components/dsfr_component/alert_component.rb +21 -7
- data/app/components/dsfr_component/header_component.html.erb +10 -5
- data/app/components/dsfr_component/header_component.rb +13 -0
- data/app/components/dsfr_component/notice_component.rb +2 -2
- data/lib/dsfr/components/version.rb +1 -1
- metadata +6 -3
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 218aeda33588aa0ccc5edc9b8b8e3a8d640119b897e56e9a40a7535b32e2473c
|
4
|
+
data.tar.gz: efe6b590b77c6d4ab3c06be0135386d42b9ebdf15edb2cdf4e4ce2ba4c20dfbe
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: afc50786a189f95b63dd71555e4d16e49a1624d1d4a03934f0834b126cbccdeecca95f9f8ebc86522bcfd80ece5763a11d469fa903e74b6c8326dfa9f214a70c
|
7
|
+
data.tar.gz: f6d94b488b11f15e548f9147f6c7e582ef404687e771efb122db1f5b4de633a1482eccdf5626f1ab6a820e9a1f8bf0445b981f42d5089f3ff4bc763305c56c00
|
@@ -1,18 +1,32 @@
|
|
1
1
|
class DsfrComponent::AlertComponent < DsfrComponent::Base
|
2
|
+
include DsfrComponent::Traits::HeaderSizeable
|
3
|
+
|
2
4
|
TYPES = %i[error success info warning].freeze
|
3
5
|
SIZES = %i[sm md].freeze
|
4
6
|
|
5
|
-
# @param type [
|
6
|
-
# @param title [String]
|
7
|
-
# @param size [
|
8
|
-
# @param close_button [Boolean]
|
9
|
-
# @
|
10
|
-
|
7
|
+
# @param type [AlertComponent::TYPES]
|
8
|
+
# @param title [String] le titre de l'alerte, sauf pour la taille `:sm`
|
9
|
+
# @param size [AlertComponent::SIZES]
|
10
|
+
# @param close_button [Boolean] contrôle l'affichage d'un bouton de fermeture
|
11
|
+
# @param icon_name [String] un nom d'icône à afficher, seulement disponible pour le type par défaut
|
12
|
+
# @param starting_header_level [Integer] Le niveau de titre
|
13
|
+
# @note La taille `:md` requiert un titre mais le contenu est
|
14
|
+
# optionel ; la taille `sm` requiert un contenu, mais pas de titre.
|
15
|
+
def initialize(
|
16
|
+
type: nil,
|
17
|
+
title: nil,
|
18
|
+
size: :md,
|
19
|
+
close_button: false,
|
20
|
+
icon_name: nil,
|
21
|
+
starting_header_level: nil,
|
22
|
+
html_attributes: {}
|
23
|
+
)
|
11
24
|
@title = title
|
12
25
|
@type = type
|
13
26
|
@size = size
|
14
27
|
@close_button = close_button
|
15
28
|
@icon_name = icon_name
|
29
|
+
@starting_header_level = starting_header_level
|
16
30
|
|
17
31
|
super(html_attributes: html_attributes)
|
18
32
|
end
|
@@ -63,7 +77,7 @@ private
|
|
63
77
|
def title_tag
|
64
78
|
return nil if title.blank?
|
65
79
|
|
66
|
-
tag.
|
80
|
+
tag.send(starting_header_tag, class: "fr-alert__title") { title }
|
67
81
|
end
|
68
82
|
|
69
83
|
def content_tag
|
@@ -12,7 +12,7 @@
|
|
12
12
|
<%= operator_image %>
|
13
13
|
<% end %>
|
14
14
|
|
15
|
-
<% if
|
15
|
+
<% if with_navbar? %>
|
16
16
|
<div class="fr-header__navbar">
|
17
17
|
<% if search? %>
|
18
18
|
<button class="fr-btn--search fr-btn" data-fr-opened="false" aria-controls="modal-header-search" id="button-header-search" title="Rechercher">
|
@@ -20,7 +20,7 @@
|
|
20
20
|
</button>
|
21
21
|
<% end %>
|
22
22
|
|
23
|
-
<% if
|
23
|
+
<% if with_menu? %>
|
24
24
|
<button class="fr-btn--menu fr-btn" data-fr-opened="false" aria-controls="modal-header-menu" aria-haspopup="menu" id="button-header-menu" title="Menu">
|
25
25
|
Menu
|
26
26
|
</button>
|
@@ -41,9 +41,9 @@
|
|
41
41
|
<% end %>
|
42
42
|
</div>
|
43
43
|
|
44
|
-
<% if
|
44
|
+
<% if with_tools? %>
|
45
45
|
<div class="fr-header__tools">
|
46
|
-
<% if tool_links? %>
|
46
|
+
<% if tool_links? || custom_tool_links? %>
|
47
47
|
<div class="fr-header__tools-links">
|
48
48
|
<ul class="fr-btns-group">
|
49
49
|
<% tool_links.each do |tool_link| %>
|
@@ -51,6 +51,11 @@
|
|
51
51
|
<%= tool_link %>
|
52
52
|
</li>
|
53
53
|
<% end %>
|
54
|
+
<% custom_tool_links.each do |custom_tool_link| %>
|
55
|
+
<li>
|
56
|
+
<%= custom_tool_link %>
|
57
|
+
</li>
|
58
|
+
<% end %>
|
54
59
|
</ul>
|
55
60
|
</div>
|
56
61
|
<% end %>
|
@@ -73,7 +78,7 @@
|
|
73
78
|
</div>
|
74
79
|
</div>
|
75
80
|
|
76
|
-
<% if
|
81
|
+
<% if with_menu? %>
|
77
82
|
<div class="fr-header__menu fr-modal" id="modal-header-menu" aria-labelledby="button-header-menu" role="navigation">
|
78
83
|
<div class="fr-container">
|
79
84
|
<button class="fr-btn--close fr-btn" aria-controls="modal-header-menu" title="Fermer">
|
@@ -2,6 +2,7 @@ class DsfrComponent::HeaderComponent < DsfrComponent::Base
|
|
2
2
|
renders_one :search
|
3
3
|
renders_one :operator_image, "DsfrComponent::HeaderComponent::OperatorImageComponent"
|
4
4
|
renders_many :tool_links, "DsfrComponent::HeaderComponent::ToolLinkComponent"
|
5
|
+
renders_many :custom_tool_links
|
5
6
|
renders_many :direct_links, types: {
|
6
7
|
simple: "DsfrComponent::HeaderComponent::DirectLinkComponent",
|
7
8
|
dropdown: "DsfrComponent::HeaderComponent::DirectLinkDropdownComponent"
|
@@ -25,4 +26,16 @@ private
|
|
25
26
|
def default_attributes
|
26
27
|
{ class: 'fr-header', role: 'banner' }
|
27
28
|
end
|
29
|
+
|
30
|
+
def with_tools?
|
31
|
+
tool_links? || search? || custom_tool_links?
|
32
|
+
end
|
33
|
+
|
34
|
+
def with_navbar?
|
35
|
+
with_tools? || direct_links?
|
36
|
+
end
|
37
|
+
|
38
|
+
def with_menu?
|
39
|
+
tool_links? || direct_links?
|
40
|
+
end
|
28
41
|
end
|
@@ -1,6 +1,6 @@
|
|
1
1
|
module DsfrComponent
|
2
2
|
class NoticeComponent < DsfrComponent::Base
|
3
|
-
GENERIC_TYPES = %w[info
|
3
|
+
GENERIC_TYPES = %w[info warning alert].freeze
|
4
4
|
WEATHER_TYPES = %w[weather-orange weather-red weather-purple].freeze
|
5
5
|
ALERT_TYPES = %w[kidnapping cyberattack attack witness].freeze
|
6
6
|
TYPES = GENERIC_TYPES + WEATHER_TYPES + ALERT_TYPES
|
@@ -11,7 +11,7 @@ module DsfrComponent
|
|
11
11
|
|
12
12
|
# @param title [String] Titre du bandeau
|
13
13
|
# @param description [String] Description du bandeau pour apporter du contexte (optionnel)
|
14
|
-
# @param type [String] Type de bandeau (info,
|
14
|
+
# @param type [String] Type de bandeau (info, warning, alert, weather-orange, weather-red, weather-purple, kidnapping, cyberattack, attack, witness)
|
15
15
|
# @param description_tag [Symbol] Balise HTML à utiliser pour la description (p, h1, h2, h3, h4, h5, h6)
|
16
16
|
# @param use_icon [Boolean] Afficher ou non une icône, uniquement pour les bandeaux génériques
|
17
17
|
# @param icon_name [String] Nom de l'icône à afficher
|
metadata
CHANGED
@@ -1,13 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: dsfr-view-components
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 3.0.
|
4
|
+
version: 3.0.2
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- BetaGouv developers
|
8
|
+
autorequire:
|
8
9
|
bindir: bin
|
9
10
|
cert_chain: []
|
10
|
-
date: 2025-05-
|
11
|
+
date: 2025-05-27 00:00:00.000000000 Z
|
11
12
|
dependencies:
|
12
13
|
- !ruby/object:Gem::Dependency
|
13
14
|
name: html-attributes-utils
|
@@ -392,6 +393,7 @@ metadata:
|
|
392
393
|
homepage_uri: https://github.com/betagouv/dsfr-view-components
|
393
394
|
source_code_uri: https://github.com/betagouv/dsfr-view-components
|
394
395
|
rubygems_mfa_required: 'true'
|
396
|
+
post_install_message:
|
395
397
|
rdoc_options: []
|
396
398
|
require_paths:
|
397
399
|
- lib
|
@@ -406,7 +408,8 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
406
408
|
- !ruby/object:Gem::Version
|
407
409
|
version: '0'
|
408
410
|
requirements: []
|
409
|
-
rubygems_version: 3.
|
411
|
+
rubygems_version: 3.5.13
|
412
|
+
signing_key:
|
410
413
|
specification_version: 4
|
411
414
|
summary: Composants ViewComponent pour le Système de Design de l'État (DSFR)
|
412
415
|
test_files: []
|