dsfr-view-components 3.1 → 4.0
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/accordion_component/section_component.html.erb +2 -1
- data/app/components/dsfr_component/accordion_component/section_component.rb +3 -3
- data/app/components/dsfr_component/accordion_component.rb +3 -3
- data/app/components/dsfr_component/alert_component.rb +4 -4
- data/app/components/dsfr_component/callout_component.rb +4 -4
- data/app/components/dsfr_component/stepper_component.html.erb +2 -2
- data/app/components/dsfr_component/stepper_component.rb +5 -1
- data/app/components/dsfr_component/traits/header_sizeable.rb +20 -7
- data/lib/dsfr/components/version.rb +1 -1
- data/lib/generators/dsfr_component/templates/component.haml.erb +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: 952489c459b0e459b926500dbd5dffa0ead338ddd8c5e7196546bcaf9627f09c
|
|
4
|
+
data.tar.gz: 60ea4e318eb64e00070ed7858ab53f4429d177489f3fab88379535f9dedda488
|
|
5
5
|
SHA512:
|
|
6
|
-
metadata.gz:
|
|
7
|
-
data.tar.gz:
|
|
6
|
+
metadata.gz: e3cd015504d4b42841a05b7a2e0969906f7ca99abdf7dae1ec8f4441608ca54b99b4b41d6023da179618a773e6e346147844c0783e2514e88e64b3e059036f60
|
|
7
|
+
data.tar.gz: 2aa09072f0d92e5e6f3e21d315f5eb9bfff1f71e82dcae5f1db910e6721c965f0dccb5c555ebca471930d149cd9695026ea7ec50286218a9500b3bab80b99dd0
|
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
<%= tag.section(**html_attributes) do %>
|
|
2
|
-
<%= tag.send(
|
|
2
|
+
<%= tag.send(header_tag, class: "fr-accordion__title") do %>
|
|
3
3
|
<button
|
|
4
|
+
type="button"
|
|
4
5
|
class="fr-accordion__btn"
|
|
5
6
|
aria-expanded="<%= expanded? ? "true" : "false" %>"
|
|
6
7
|
aria-controls="<%= id %>"
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
class DsfrComponent::AccordionComponent::SectionComponent < DsfrComponent::Base
|
|
2
2
|
include DsfrComponent::Traits::HeaderSizeable
|
|
3
3
|
|
|
4
|
-
attr_reader :title, :expanded
|
|
4
|
+
attr_reader :title, :expanded
|
|
5
5
|
|
|
6
6
|
alias_method :expanded?, :expanded
|
|
7
7
|
|
|
@@ -10,7 +10,7 @@ class DsfrComponent::AccordionComponent::SectionComponent < DsfrComponent::Base
|
|
|
10
10
|
# @param id [String] the HTML id, optional if you want to reuse the anchor
|
|
11
11
|
def initialize(
|
|
12
12
|
title:,
|
|
13
|
-
|
|
13
|
+
header_level:,
|
|
14
14
|
expanded: false,
|
|
15
15
|
id: nil,
|
|
16
16
|
html_attributes: {}
|
|
@@ -18,7 +18,7 @@ class DsfrComponent::AccordionComponent::SectionComponent < DsfrComponent::Base
|
|
|
18
18
|
@title = title
|
|
19
19
|
@expanded = expanded
|
|
20
20
|
@id = id
|
|
21
|
-
|
|
21
|
+
self.header_level = header_level
|
|
22
22
|
|
|
23
23
|
super(html_attributes: html_attributes)
|
|
24
24
|
end
|
|
@@ -7,13 +7,13 @@ class DsfrComponent::AccordionComponent < DsfrComponent::Base
|
|
|
7
7
|
html_attributes: html_attributes,
|
|
8
8
|
title: title,
|
|
9
9
|
id: id,
|
|
10
|
-
|
|
10
|
+
header_level: header_level,
|
|
11
11
|
&block
|
|
12
12
|
)
|
|
13
13
|
end
|
|
14
14
|
|
|
15
|
-
def initialize(html_attributes: {},
|
|
16
|
-
|
|
15
|
+
def initialize(html_attributes: {}, header_level: nil)
|
|
16
|
+
self.header_level = header_level
|
|
17
17
|
|
|
18
18
|
super(html_attributes: html_attributes)
|
|
19
19
|
end
|
|
@@ -9,7 +9,7 @@ class DsfrComponent::AlertComponent < DsfrComponent::Base
|
|
|
9
9
|
# @param size [AlertComponent::SIZES]
|
|
10
10
|
# @param close_button [Boolean] contrôle l'affichage d'un bouton de fermeture
|
|
11
11
|
# @param icon_name [String] un nom d'icône à afficher, seulement disponible pour le type par défaut
|
|
12
|
-
# @param
|
|
12
|
+
# @param header_level [Integer] Le niveau de titre
|
|
13
13
|
# @note La taille `:md` requiert un titre mais le contenu est
|
|
14
14
|
# optionel ; la taille `sm` requiert un contenu, mais pas de titre.
|
|
15
15
|
def initialize(
|
|
@@ -18,7 +18,7 @@ class DsfrComponent::AlertComponent < DsfrComponent::Base
|
|
|
18
18
|
size: :md,
|
|
19
19
|
close_button: false,
|
|
20
20
|
icon_name: nil,
|
|
21
|
-
|
|
21
|
+
header_level: nil,
|
|
22
22
|
html_attributes: {}
|
|
23
23
|
)
|
|
24
24
|
@title = title
|
|
@@ -26,7 +26,7 @@ class DsfrComponent::AlertComponent < DsfrComponent::Base
|
|
|
26
26
|
@size = size
|
|
27
27
|
@close_button = close_button
|
|
28
28
|
@icon_name = icon_name
|
|
29
|
-
|
|
29
|
+
self.header_level = header_level
|
|
30
30
|
|
|
31
31
|
super(html_attributes: html_attributes)
|
|
32
32
|
end
|
|
@@ -77,7 +77,7 @@ private
|
|
|
77
77
|
def title_tag
|
|
78
78
|
return nil if title.blank?
|
|
79
79
|
|
|
80
|
-
tag.send(
|
|
80
|
+
tag.send(header_tag, class: "fr-alert__title") { title }
|
|
81
81
|
end
|
|
82
82
|
|
|
83
83
|
def content_tag
|
|
@@ -8,23 +8,23 @@ module DsfrComponent
|
|
|
8
8
|
|
|
9
9
|
# @param title [String] Le titre de la mise en avant
|
|
10
10
|
# @param icon_name [String] Le nom de l’icône à afficher (exemple `arrow-right-line`), ou `:none` pour la désactiver (optionnel)
|
|
11
|
-
# @param
|
|
11
|
+
# @param header_level [Integer] Le niveau de titre (optionnel)
|
|
12
12
|
def initialize(
|
|
13
13
|
title:,
|
|
14
14
|
icon_name: "information-line",
|
|
15
|
-
|
|
15
|
+
header_level: nil,
|
|
16
16
|
html_attributes: {}
|
|
17
17
|
)
|
|
18
18
|
@title = title
|
|
19
19
|
@icon_name = icon_name
|
|
20
|
-
|
|
20
|
+
self.header_level = header_level
|
|
21
21
|
|
|
22
22
|
super(html_attributes: html_attributes)
|
|
23
23
|
end
|
|
24
24
|
|
|
25
25
|
def call
|
|
26
26
|
tag.div(**html_attributes) do
|
|
27
|
-
concat content_tag(
|
|
27
|
+
concat content_tag(header_tag, @title, class: 'fr-callout__title')
|
|
28
28
|
|
|
29
29
|
concat content_tag(:p, content, class: 'fr-callout__text')
|
|
30
30
|
|
|
@@ -1,10 +1,10 @@
|
|
|
1
1
|
<%= tag.div(**html_attributes) do %>
|
|
2
|
-
|
|
2
|
+
<%= tag.send(header_tag, class: "fr-stepper__title") do %>
|
|
3
3
|
<%= title %>
|
|
4
4
|
<span class="fr-stepper__state">
|
|
5
5
|
Étape <%= value %> sur <%= max %>
|
|
6
6
|
</span>
|
|
7
|
-
|
|
7
|
+
<% end %>
|
|
8
8
|
<div
|
|
9
9
|
class="fr-stepper__steps"
|
|
10
10
|
data-fr-current-step="<%= value %>"
|
|
@@ -1,14 +1,18 @@
|
|
|
1
1
|
module DsfrComponent
|
|
2
2
|
class StepperComponent < DsfrComponent::Base
|
|
3
|
+
include DsfrComponent::Traits::HeaderSizeable
|
|
4
|
+
|
|
3
5
|
# @param title [String] Titre de l’étape en cours
|
|
4
6
|
# @param value [Integer] Numéro de l’étape en cours (commence à 1)
|
|
5
7
|
# @param max [Integer] Nombre d’étapes total
|
|
6
8
|
# @param next_title [String] Titre de l’étape suivante (sauf pour la dernière étape)
|
|
7
|
-
|
|
9
|
+
# @param header_level [Integer] Niveau du titre
|
|
10
|
+
def initialize(title:, value:, max:, next_title: nil, header_level: 2, html_attributes: {})
|
|
8
11
|
@title = title
|
|
9
12
|
@value = value
|
|
10
13
|
@max = max
|
|
11
14
|
@next_title = next_title
|
|
15
|
+
self.header_level = header_level
|
|
12
16
|
|
|
13
17
|
raise ArgumentError, "Les étapes doivent aller de 1 jusqu´à 8 au maximum" if @value < 1 || @value > @max || @max > 8
|
|
14
18
|
|
|
@@ -3,22 +3,35 @@
|
|
|
3
3
|
module DsfrComponent
|
|
4
4
|
module Traits
|
|
5
5
|
# HeaderSizeable is meant for every component that exhibits a
|
|
6
|
-
# header
|
|
7
|
-
#
|
|
8
|
-
# `@starting_header_level` in your component's constructor.
|
|
6
|
+
# header which level can be overriden. Make sure you use the
|
|
7
|
+
# setter (self.header_level) in your component's constructor.
|
|
9
8
|
module HeaderSizeable
|
|
10
9
|
DEFAULT_HEADER_LEVEL = 3
|
|
11
10
|
|
|
12
|
-
def
|
|
13
|
-
@
|
|
11
|
+
def header_level
|
|
12
|
+
@header_level || default_header_level
|
|
13
|
+
end
|
|
14
|
+
|
|
15
|
+
def header_level=(level)
|
|
16
|
+
return if level.nil?
|
|
17
|
+
|
|
18
|
+
raise ArgumentError, "Le niveau du titre doit être compris entre 1 et 6" if !correct?(level)
|
|
19
|
+
|
|
20
|
+
@header_level = level
|
|
14
21
|
end
|
|
15
22
|
|
|
16
23
|
def default_header_level
|
|
17
24
|
DEFAULT_HEADER_LEVEL
|
|
18
25
|
end
|
|
19
26
|
|
|
20
|
-
def
|
|
21
|
-
["h",
|
|
27
|
+
def header_tag
|
|
28
|
+
["h", header_level].join
|
|
29
|
+
end
|
|
30
|
+
|
|
31
|
+
private
|
|
32
|
+
|
|
33
|
+
def correct?(level)
|
|
34
|
+
level.in?(DsfrComponent::Base::HEADING_LEVELS)
|
|
22
35
|
end
|
|
23
36
|
end
|
|
24
37
|
end
|
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: '
|
|
4
|
+
version: '4.0'
|
|
5
5
|
platform: ruby
|
|
6
6
|
authors:
|
|
7
7
|
- BetaGouv developers
|
|
8
|
+
autorequire:
|
|
8
9
|
bindir: bin
|
|
9
10
|
cert_chain: []
|
|
10
|
-
date: 2025-
|
|
11
|
+
date: 2025-10-30 00:00:00.000000000 Z
|
|
11
12
|
dependencies:
|
|
12
13
|
- !ruby/object:Gem::Dependency
|
|
13
14
|
name: html-attributes-utils
|
|
@@ -394,6 +395,7 @@ metadata:
|
|
|
394
395
|
homepage_uri: https://github.com/betagouv/dsfr-view-components
|
|
395
396
|
source_code_uri: https://github.com/betagouv/dsfr-view-components
|
|
396
397
|
rubygems_mfa_required: 'true'
|
|
398
|
+
post_install_message:
|
|
397
399
|
rdoc_options: []
|
|
398
400
|
require_paths:
|
|
399
401
|
- lib
|
|
@@ -408,7 +410,8 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
|
408
410
|
- !ruby/object:Gem::Version
|
|
409
411
|
version: '0'
|
|
410
412
|
requirements: []
|
|
411
|
-
rubygems_version: 3.
|
|
413
|
+
rubygems_version: 3.5.13
|
|
414
|
+
signing_key:
|
|
412
415
|
specification_version: 4
|
|
413
416
|
summary: Composants ViewComponent pour le Système de Design de l'État (DSFR)
|
|
414
417
|
test_files: []
|