@1024pix/pix-ui 24.2.0 → 24.2.1
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.
- package/CHANGELOG.md +7 -0
- package/app/stories/form.stories.mdx +2 -4
- package/app/stories/pix-background-header.stories.mdx +3 -8
- package/app/stories/pix-banner.stories.js +9 -11
- package/app/stories/pix-banner.stories.mdx +9 -32
- package/app/stories/pix-block.stories.js +3 -2
- package/app/stories/pix-block.stories.mdx +1 -1
- package/app/stories/pix-button-link.stories.js +0 -2
- package/app/stories/pix-button-link.stories.mdx +7 -15
- package/app/stories/pix-button-upload.stories.js +2 -3
- package/app/stories/pix-button-upload.stories.mdx +4 -12
- package/app/stories/pix-button.stories.mdx +7 -9
- package/app/stories/pix-checkbox.stories.js +8 -10
- package/app/stories/pix-checkbox.stories.mdx +12 -13
- package/app/stories/pix-collapsible.stories.js +7 -3
- package/app/stories/pix-collapsible.stories.mdx +6 -12
- package/app/stories/pix-dropdown.stories.mdx +10 -14
- package/app/stories/pix-filter-banner.stories.js +1 -4
- package/app/stories/pix-filter-banner.stories.mdx +5 -9
- package/app/stories/pix-filterable-and-searchable-select.stories.js +0 -2
- package/app/stories/pix-filterable-and-searchable-select.stories.mdx +25 -25
- package/app/stories/pix-icon-button.stories.js +7 -5
- package/app/stories/pix-icon-button.stories.mdx +2 -6
- package/app/stories/pix-indicator-card.stories.js +2 -2
- package/app/stories/pix-indicator-card.stories.mdx +2 -1
- package/app/stories/pix-input-code.stories.mdx +7 -16
- package/app/stories/pix-input-password.stories.js +1 -8
- package/app/stories/pix-input-password.stories.mdx +12 -16
- package/app/stories/pix-input.stories.js +4 -10
- package/app/stories/pix-input.stories.mdx +14 -26
- package/app/stories/pix-message.stories.js +4 -3
- package/app/stories/pix-message.stories.mdx +4 -9
- package/app/stories/pix-modal.stories.js +0 -2
- package/app/stories/pix-modal.stories.mdx +2 -6
- package/app/stories/pix-multi-select.stories.mdx +24 -21
- package/app/stories/pix-pagination.stories.js +2 -1
- package/app/stories/pix-pagination.stories.mdx +19 -18
- package/app/stories/pix-progress-gauge.stories.js +2 -1
- package/app/stories/pix-progress-gauge.stories.mdx +6 -9
- package/app/stories/pix-radio-button.stories.js +0 -3
- package/app/stories/pix-radio-button.stories.mdx +7 -16
- package/app/stories/pix-return-to.stories.js +3 -3
- package/app/stories/pix-return-to.stories.mdx +4 -10
- package/app/stories/pix-search-input.stories.mdx +14 -22
- package/app/stories/pix-select.stories.mdx +26 -31
- package/app/stories/pix-selectable-tag.stories.mdx +10 -20
- package/app/stories/pix-sidebar.stories.js +0 -5
- package/app/stories/pix-sidebar.stories.mdx +2 -6
- package/app/stories/pix-stars.stories.js +12 -6
- package/app/stories/pix-stars.stories.mdx +3 -12
- package/app/stories/pix-tag.stories.js +21 -25
- package/app/stories/pix-tag.stories.mdx +5 -15
- package/app/stories/pix-textarea.stories.js +7 -12
- package/app/stories/pix-textarea.stories.mdx +8 -11
- package/app/stories/pix-toggle.stories.mdx +7 -11
- package/app/stories/pix-tooltip.stories.js +11 -14
- package/app/stories/pix-tooltip.stories.mdx +2 -7
- package/docs/architecture.stories.mdx +3 -3
- package/docs/breaking-changes.stories.mdx +16 -14
- package/docs/changelog.stories.mdx +1 -1
- package/docs/create-component.stories.mdx +31 -29
- package/docs/design-system.stories.mdx +2 -2
- package/docs/design-tokens.stories.mdx +6 -2
- package/docs/good-practices-a11y.stories.mdx +4 -9
- package/docs/good-practices-design.stories.mdx +11 -20
- package/docs/good-practices-responsive.stories.mdx +3 -3
- package/docs/good-practices-style-css.stories.mdx +10 -10
- package/docs/good-practices-tests.stories.mdx +2 -2
- package/docs/make-a-release.stories.mdx +16 -13
- package/docs/pix-design-tokens-dev.stories.mdx +1 -1
- package/docs/storybook.stories.mdx +4 -3
- package/docs/test-component-without-release.stories.mdx +1 -1
- package/docs/use-component.stories.mdx +7 -6
- package/docs/use-install.stories.mdx +6 -6
- package/package.json +1 -1
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { hbs } from 'ember-cli-htmlbars';
|
|
2
2
|
|
|
3
|
-
|
|
3
|
+
const Template = (args) => {
|
|
4
4
|
return {
|
|
5
5
|
template: hbs`<PixTag @color={{this.color}} @compact={{this.compact}}>
|
|
6
6
|
Contenu du tag
|
|
@@ -9,14 +9,10 @@ export const tag = (args) => {
|
|
|
9
9
|
};
|
|
10
10
|
};
|
|
11
11
|
|
|
12
|
-
export const
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
</PixTag>`,
|
|
17
|
-
context: args,
|
|
18
|
-
};
|
|
19
|
-
};
|
|
12
|
+
export const tag = Template.bind({});
|
|
13
|
+
tag.args = {};
|
|
14
|
+
|
|
15
|
+
export const compactTag = Template.bind({});
|
|
20
16
|
compactTag.args = {
|
|
21
17
|
compact: true,
|
|
22
18
|
};
|
|
@@ -26,29 +22,29 @@ export const argTypes = {
|
|
|
26
22
|
name: 'color',
|
|
27
23
|
description: 'Couleur du tag',
|
|
28
24
|
type: { name: 'number', required: false },
|
|
29
|
-
defaultValue: 'blue',
|
|
25
|
+
table: { defaultValue: { summary: 'blue' } },
|
|
30
26
|
control: {
|
|
31
27
|
type: 'select',
|
|
32
|
-
options: [
|
|
33
|
-
'blue',
|
|
34
|
-
'blue-light',
|
|
35
|
-
'green',
|
|
36
|
-
'green-light',
|
|
37
|
-
'grey',
|
|
38
|
-
'grey-light',
|
|
39
|
-
'purple',
|
|
40
|
-
'purple-light',
|
|
41
|
-
'orange',
|
|
42
|
-
'orange-light',
|
|
43
|
-
'yellow',
|
|
44
|
-
'yellow-light',
|
|
45
|
-
],
|
|
46
28
|
},
|
|
29
|
+
options: [
|
|
30
|
+
'blue',
|
|
31
|
+
'blue-light',
|
|
32
|
+
'green',
|
|
33
|
+
'green-light',
|
|
34
|
+
'grey',
|
|
35
|
+
'grey-light',
|
|
36
|
+
'purple',
|
|
37
|
+
'purple-light',
|
|
38
|
+
'orange',
|
|
39
|
+
'orange-light',
|
|
40
|
+
'yellow',
|
|
41
|
+
'yellow-light',
|
|
42
|
+
],
|
|
47
43
|
},
|
|
48
44
|
compact: {
|
|
49
45
|
name: 'compact',
|
|
50
46
|
description: 'Tag compact ou non',
|
|
51
47
|
type: { name: 'boolean', required: false },
|
|
52
|
-
defaultValue: false,
|
|
48
|
+
table: { defaultValue: { summary: false } },
|
|
53
49
|
},
|
|
54
50
|
};
|
|
@@ -1,11 +1,7 @@
|
|
|
1
|
-
import { Meta, Story, Canvas, ArgsTable } from '@storybook/addon-docs
|
|
1
|
+
import { Meta, Story, Canvas, ArgsTable } from '@storybook/addon-docs';
|
|
2
2
|
import * as stories from './pix-tag.stories.js';
|
|
3
3
|
|
|
4
|
-
<Meta
|
|
5
|
-
title='Basics/Tag'
|
|
6
|
-
component='PixTag'
|
|
7
|
-
argTypes={stories.argTypes}
|
|
8
|
-
/>
|
|
4
|
+
<Meta title="Basics/Tag" component="PixTag" argTypes={stories.argTypes} />
|
|
9
5
|
|
|
10
6
|
# Pix Tag
|
|
11
7
|
|
|
@@ -24,19 +20,13 @@ Un `Tag` est un type de `Chips` qui permet de mettre en avant une information ou
|
|
|
24
20
|
|
|
25
21
|
```html
|
|
26
22
|
Par défaut:
|
|
27
|
-
<PixTag>
|
|
28
|
-
This is a blue tag
|
|
29
|
-
</PixTag>
|
|
23
|
+
<PixTag> This is a blue tag </PixTag>
|
|
30
24
|
|
|
31
25
|
Customiser la couleur du tag:
|
|
32
|
-
<PixTag @color=
|
|
33
|
-
This is a purple tag
|
|
34
|
-
</PixTag>
|
|
26
|
+
<PixTag @color="purple"> This is a purple tag </PixTag>
|
|
35
27
|
|
|
36
28
|
Tag Compact
|
|
37
|
-
<PixTag @compact={{true}} @color=
|
|
38
|
-
This is a compactg tag
|
|
39
|
-
</PixTag>
|
|
29
|
+
<PixTag @compact="{{true}}" @color="blue"> This is a compactg tag </PixTag>
|
|
40
30
|
```
|
|
41
31
|
|
|
42
32
|
## Arguments
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { hbs } from 'ember-cli-htmlbars';
|
|
2
2
|
|
|
3
|
-
|
|
3
|
+
const Template = (args) => {
|
|
4
4
|
return {
|
|
5
5
|
template: hbs`<PixTextarea
|
|
6
6
|
@id={{this.id}}
|
|
@@ -13,45 +13,40 @@ export const textarea = (args) => {
|
|
|
13
13
|
};
|
|
14
14
|
};
|
|
15
15
|
|
|
16
|
+
export const textarea = Template.bind({});
|
|
17
|
+
textarea.args = {
|
|
18
|
+
id: 'textarea',
|
|
19
|
+
value: 'Contenu du textarea',
|
|
20
|
+
};
|
|
21
|
+
|
|
16
22
|
export const argTypes = {
|
|
17
23
|
id: {
|
|
18
24
|
name: 'id',
|
|
19
25
|
description: 'Identifiant du champ permettant de lui attacher un label',
|
|
20
26
|
type: { name: 'string', required: true },
|
|
21
|
-
defaultValue: '',
|
|
22
27
|
},
|
|
23
28
|
|
|
24
29
|
value: {
|
|
25
30
|
name: 'value',
|
|
26
31
|
description: 'Valeur du champ',
|
|
27
32
|
type: { name: 'string', required: true },
|
|
28
|
-
defaultValue: '',
|
|
29
33
|
},
|
|
30
34
|
|
|
31
35
|
maxlength: {
|
|
32
36
|
name: 'maxlength',
|
|
33
37
|
description: 'Nombre de caractères maximal à taper dans le champ',
|
|
34
38
|
type: { name: 'number', required: false },
|
|
35
|
-
defaultValue: 500,
|
|
36
39
|
},
|
|
37
40
|
|
|
38
41
|
label: {
|
|
39
42
|
name: 'label',
|
|
40
43
|
description: 'Donne un label au champ.',
|
|
41
44
|
type: { name: 'string', required: false },
|
|
42
|
-
table: {
|
|
43
|
-
type: { summary: 'string' },
|
|
44
|
-
defaultValue: { summary: null },
|
|
45
|
-
},
|
|
46
45
|
},
|
|
47
46
|
|
|
48
47
|
errorMessage: {
|
|
49
48
|
name: 'errorMessage',
|
|
50
49
|
description: 'Affiche une erreur en dessous du champ.',
|
|
51
50
|
type: { name: 'string', required: false },
|
|
52
|
-
table: {
|
|
53
|
-
type: { summary: 'string' },
|
|
54
|
-
defaultValue: { summary: null },
|
|
55
|
-
},
|
|
56
51
|
},
|
|
57
52
|
};
|
|
@@ -1,11 +1,7 @@
|
|
|
1
|
-
import { Meta, Story, Canvas, ArgsTable } from '@storybook/addon-docs
|
|
1
|
+
import { Meta, Story, Canvas, ArgsTable } from '@storybook/addon-docs';
|
|
2
2
|
import * as stories from './pix-textarea.stories.js';
|
|
3
3
|
|
|
4
|
-
<Meta
|
|
5
|
-
title='Form/Textarea'
|
|
6
|
-
component='PixTextarea'
|
|
7
|
-
argTypes={stories.argTypes}
|
|
8
|
-
/>
|
|
4
|
+
<Meta title="Form/Textarea" component="PixTextarea" argTypes={stories.argTypes} />
|
|
9
5
|
|
|
10
6
|
# PixTextarea
|
|
11
7
|
|
|
@@ -16,17 +12,18 @@ Optionellement, il peut afficher le nombre de caractères tapés ainsi que le no
|
|
|
16
12
|
> A noter qu'un `id` est nécessaire pour attribuer au textarea un label. Par ailleurs, l'attribut `value` permet de traiter son contenu.
|
|
17
13
|
|
|
18
14
|
<Canvas>
|
|
19
|
-
<Story name=
|
|
15
|
+
<Story name="PixTextarea" story={stories.textarea} height={100} />
|
|
20
16
|
</Canvas>
|
|
21
17
|
|
|
22
18
|
## Usage
|
|
23
19
|
|
|
24
20
|
```html
|
|
25
21
|
<PixTextarea
|
|
26
|
-
@id={{id}}
|
|
27
|
-
@value={{value}}
|
|
28
|
-
@maxlength={{maxlength}}
|
|
29
|
-
@errorMessage={{errorMessage}}
|
|
22
|
+
@id="{{id}}"
|
|
23
|
+
@value="{{value}}"
|
|
24
|
+
@maxlength="{{maxlength}}"
|
|
25
|
+
@errorMessage="{{errorMessage}}"
|
|
26
|
+
/>
|
|
30
27
|
```
|
|
31
28
|
|
|
32
29
|
## Arguments
|
|
@@ -1,11 +1,7 @@
|
|
|
1
|
-
import { Meta, Story, Canvas, ArgsTable } from '@storybook/addon-docs
|
|
1
|
+
import { Meta, Story, Canvas, ArgsTable } from '@storybook/addon-docs';
|
|
2
2
|
import * as stories from './pix-toggle.stories.js';
|
|
3
3
|
|
|
4
|
-
<Meta
|
|
5
|
-
title='Form/Toggle'
|
|
6
|
-
component='PixToggle'
|
|
7
|
-
argTypes={stories.argTypes}
|
|
8
|
-
/>
|
|
4
|
+
<Meta title="Form/Toggle" component="PixToggle" argTypes={stories.argTypes} />
|
|
9
5
|
|
|
10
6
|
# Pix Toggle
|
|
11
7
|
|
|
@@ -14,27 +10,27 @@ Affiche un bouton à deux états.
|
|
|
14
10
|
## Default
|
|
15
11
|
|
|
16
12
|
<Canvas>
|
|
17
|
-
<Story name=
|
|
13
|
+
<Story name="Default" story={stories.Default} height={200} />
|
|
18
14
|
</Canvas>
|
|
19
15
|
|
|
20
16
|
## Inline
|
|
21
17
|
|
|
22
18
|
<Canvas>
|
|
23
|
-
<Story name=
|
|
19
|
+
<Story name="Inline" story={stories.Inline} height={200} />
|
|
24
20
|
</Canvas>
|
|
25
21
|
|
|
26
22
|
## ScreenReaderOnly
|
|
27
23
|
|
|
28
24
|
<Canvas>
|
|
29
|
-
<Story name=
|
|
25
|
+
<Story name="ScreenReaderOnly" story={stories.ScreenReaderOnly} height={200} />
|
|
30
26
|
</Canvas>
|
|
31
27
|
|
|
32
28
|
## WithYields
|
|
33
29
|
|
|
34
30
|
<Canvas>
|
|
35
|
-
<Story name=
|
|
31
|
+
<Story name="WithYields" story={stories.WithYields} height={200} />
|
|
36
32
|
</Canvas>
|
|
37
33
|
|
|
38
34
|
## Arguments
|
|
39
35
|
|
|
40
|
-
<ArgsTable story="Default" />
|
|
36
|
+
<ArgsTable story="Default" />
|
|
@@ -140,7 +140,6 @@ export const argTypes = {
|
|
|
140
140
|
},
|
|
141
141
|
text: {
|
|
142
142
|
name: 'text',
|
|
143
|
-
defaultValue: 'Tooltiptop',
|
|
144
143
|
description: 'Texte à afficher',
|
|
145
144
|
type: { name: 'string', required: false },
|
|
146
145
|
},
|
|
@@ -149,19 +148,17 @@ export const argTypes = {
|
|
|
149
148
|
description: 'Position de la tooltip',
|
|
150
149
|
type: { name: 'string', required: false },
|
|
151
150
|
table: { defaultValue: { summary: 'top' } },
|
|
152
|
-
control: {
|
|
153
|
-
|
|
154
|
-
|
|
155
|
-
|
|
156
|
-
|
|
157
|
-
|
|
158
|
-
|
|
159
|
-
|
|
160
|
-
|
|
161
|
-
|
|
162
|
-
|
|
163
|
-
],
|
|
164
|
-
},
|
|
151
|
+
control: { type: 'select' },
|
|
152
|
+
options: [
|
|
153
|
+
'top',
|
|
154
|
+
'top-left',
|
|
155
|
+
'top-right',
|
|
156
|
+
'right',
|
|
157
|
+
'bottom',
|
|
158
|
+
'bottom-left',
|
|
159
|
+
'bottom-right',
|
|
160
|
+
'left',
|
|
161
|
+
],
|
|
165
162
|
},
|
|
166
163
|
isLight: {
|
|
167
164
|
name: 'isLight',
|
|
@@ -1,11 +1,7 @@
|
|
|
1
|
-
import { Meta, Story, Canvas, ArgsTable } from '@storybook/addon-docs
|
|
1
|
+
import { Meta, Story, Canvas, ArgsTable } from '@storybook/addon-docs';
|
|
2
2
|
import * as stories from './pix-tooltip.stories.js';
|
|
3
3
|
|
|
4
|
-
<Meta
|
|
5
|
-
title='Basics/Tooltip'
|
|
6
|
-
component='PixTooltip'
|
|
7
|
-
argTypes={stories.argTypes}
|
|
8
|
-
/>
|
|
4
|
+
<Meta title="Basics/Tooltip" component="PixTooltip" argTypes={stories.argTypes} />
|
|
9
5
|
|
|
10
6
|
# Pix Tooltip
|
|
11
7
|
|
|
@@ -113,7 +109,6 @@ Infobulle dont le contenu reste sur une ligne.
|
|
|
113
109
|
<Story name="Is Inline" story={stories.isInline} height={200} />
|
|
114
110
|
</Canvas>
|
|
115
111
|
|
|
116
|
-
|
|
117
112
|
## With HTML
|
|
118
113
|
|
|
119
114
|
Infobulle contenant des éléments HTML
|
|
@@ -1,6 +1,6 @@
|
|
|
1
|
-
import { Meta } from '@storybook/addon-docs
|
|
1
|
+
import { Meta } from '@storybook/addon-docs';
|
|
2
2
|
|
|
3
|
-
<Meta title=
|
|
3
|
+
<Meta title="Développement/Architecture" />
|
|
4
4
|
|
|
5
5
|
# Architecture du projet Pix UI
|
|
6
6
|
|
|
@@ -77,7 +77,7 @@ Pour plus d'informations sur les blueprints ember voir [la documentation](https:
|
|
|
77
77
|
- `config`
|
|
78
78
|
- `ember-try.js` : configuration des versions d'Ember dont la compatibilité doit être vérifiée par la suite de tests.
|
|
79
79
|
- `environment.js` : valeurs par défaut pour les applications qui utilisent notre addon.
|
|
80
|
-
|
|
80
|
+
Les changements de valeurs dans l'application hôte surchargeront celles par défaut.
|
|
81
81
|
|
|
82
82
|
### docs
|
|
83
83
|
|
|
@@ -1,6 +1,6 @@
|
|
|
1
|
-
import { Meta } from '@storybook/addon-docs
|
|
1
|
+
import { Meta } from '@storybook/addon-docs';
|
|
2
2
|
|
|
3
|
-
<Meta title=
|
|
3
|
+
<Meta title="Développement/Breaking changes" />
|
|
4
4
|
|
|
5
5
|
# Breaking changes dans Pix UI
|
|
6
6
|
|
|
@@ -22,13 +22,14 @@ la présence de ce breaking change (en faisant un release majeure) mais aussi
|
|
|
22
22
|
lui donner un maximum d'informations sur ce qu'il va devoir vérifier et
|
|
23
23
|
modifier.
|
|
24
24
|
|
|
25
|
-
## Comment identifier les
|
|
25
|
+
## Comment identifier les _breaking changes_ dans Pix UI ?
|
|
26
26
|
|
|
27
27
|
Pour cela, on peut se poser les questions suivantes :
|
|
28
28
|
|
|
29
29
|
Mes changements dans Pix UI peuvent-ils déclencher une erreur dans une app Pix ?
|
|
30
30
|
|
|
31
31
|
Exemples :
|
|
32
|
+
|
|
32
33
|
- Un composant est supprimé
|
|
33
34
|
- Un composant change de nom
|
|
34
35
|
- Un argument obligatoire est ajouté à un composant
|
|
@@ -37,6 +38,7 @@ Mes changements dans Pix UI peuvent-ils provoquer un problème silencieux dans
|
|
|
37
38
|
une app Pix ?
|
|
38
39
|
|
|
39
40
|
Exemples :
|
|
41
|
+
|
|
40
42
|
- Un argument facultatif change de nom
|
|
41
43
|
- La valeur par défaut d'un argument change
|
|
42
44
|
- Un changement de style CSS à l'intérieur va avoir des effets de bord à
|
|
@@ -44,41 +46,43 @@ Exemples :
|
|
|
44
46
|
|
|
45
47
|
Il faut prêter une attention particulière aux modifications et aux ajouts de
|
|
46
48
|
code existant touchant les interfaces publiques des composants. Les ajouts de
|
|
47
|
-
code provoquent rarement des
|
|
49
|
+
code provoquent rarement des _breaking-changes_.
|
|
48
50
|
|
|
49
51
|
Exemples :
|
|
52
|
+
|
|
50
53
|
- Un nouveau composant est ajouté
|
|
51
54
|
- Un argument facultatif est ajouté
|
|
52
55
|
|
|
53
56
|
Astuce : pour repérer les potentiels breaking changes, le mieux est d'installer
|
|
54
57
|
la version en cours de développement de Pix UI dans une app Ember à partir de
|
|
55
58
|
sa branche sur Github. Si, sans faire aucune autre modification que cette mise
|
|
56
|
-
à jour, on observe des changements, alors il s'agit probablement de
|
|
57
|
-
|
|
59
|
+
à jour, on observe des changements, alors il s'agit probablement de _breaking
|
|
60
|
+
changes_.
|
|
58
61
|
|
|
59
|
-
## Comment communiquer en cas de
|
|
62
|
+
## Comment communiquer en cas de _breaking change_ ?
|
|
60
63
|
|
|
61
|
-
C'est au développeur qui ouvre la
|
|
62
|
-
d'identifier les éventuels
|
|
64
|
+
C'est au développeur qui ouvre la _pull request_ qu'incombe la responsabilité
|
|
65
|
+
d'identifier les éventuels _breaking changes_ dans ses modifications et, le cas
|
|
63
66
|
échéant, de les signaler dans le titre de la PR. Il lui faudra donner aussi un
|
|
64
67
|
maximum d'informations dans une section breaking changes de la PR sur ce qu'il
|
|
65
68
|
convient de faire pour vérifier que rien de casse lors de la montée de version
|
|
66
69
|
de Pix UI.
|
|
67
70
|
|
|
68
71
|
Ainsi :
|
|
72
|
+
|
|
69
73
|
- le développeur qui fera la prochaine release de Pix UI saura que ce doit être
|
|
70
74
|
une version majeure ;
|
|
71
75
|
- le développeur qui fera la montée de version de Pix UI côté app Ember aura
|
|
72
|
-
connaissance de ces
|
|
76
|
+
connaissance de ces _breaking changes_ et de ce qu'il a à vérifier.
|
|
73
77
|
|
|
74
|
-
## Comment éviter un
|
|
78
|
+
## Comment éviter un _breaking change_ ?
|
|
75
79
|
|
|
76
80
|
On veut éviter de faire de trop nombreuses versions majeures, car elles
|
|
77
81
|
impliquent un risque et un effort d'attention supplémentaire du développeur qui
|
|
78
82
|
va faire la montée de version de Pix UI dans une app Ember.
|
|
79
83
|
|
|
80
84
|
Plutôt que de supprimer une partie du code (comme par exemple l'argument d'une
|
|
81
|
-
fonction devenu obsolète), on peut la marquer comme
|
|
85
|
+
fonction devenu obsolète), on peut la marquer comme _deprecated_ et lancer un
|
|
82
86
|
warning pour avertir le développeur que la fonctionnalité sera prochainement
|
|
83
87
|
supprimée ou modifiée.
|
|
84
88
|
|
|
@@ -86,5 +90,3 @@ Lors de la montée de version suivante, on pourra supprimer tous les codes
|
|
|
86
90
|
deprecated, ce qui permet de regrouper les breaking changes, laisser au
|
|
87
91
|
développeur le temps d'adapter le code et éviter de multiplier les montées de
|
|
88
92
|
versions majeures.
|
|
89
|
-
|
|
90
|
-
|
|
@@ -1,6 +1,6 @@
|
|
|
1
|
-
import { Meta } from '@storybook/addon-docs
|
|
1
|
+
import { Meta } from '@storybook/addon-docs';
|
|
2
2
|
|
|
3
|
-
<Meta title=
|
|
3
|
+
<Meta title="Développement/Créer un composant" />
|
|
4
4
|
|
|
5
5
|
# Créer un composant et sa story
|
|
6
6
|
|
|
@@ -18,20 +18,23 @@ Cette commande est [un blueprint ember](https://cli.emberjs.com/release/advanced
|
|
|
18
18
|
commande customisée, elle permet d'automatiser plusieurs choses.
|
|
19
19
|
|
|
20
20
|
La commande crée et pré-remplit les fichiers suivant :
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
21
|
+
|
|
22
|
+
- `addon/templates/components/pix-<component-name>.hbs`: template du composant.
|
|
23
|
+
- `addon/components/pix-<component-name>.js`: controller du composant.
|
|
24
|
+
- `addon/stories/pix-<component-name>.stories.mdx`: documentation du composant.
|
|
25
|
+
- `addon/stories/pix-<component-name>.stories.js`: arguments et code de l'aperçu du composant dans la documentation.
|
|
26
|
+
- `addon/styles/_pix-<component-name>.scss`: style du composant.
|
|
27
|
+
- `app/components/pix-<component-name>.js`, sert uniquement à ember pour retrouver les composants existants dans le dossier `addon`. **On ne modifiera pas ce fichier là.**
|
|
28
|
+
- `tests/integration/components/pix-<component-name>-test.js`: test du composant.
|
|
28
29
|
|
|
29
30
|
De plus la commande met à jour les imports scss dans le fichier :
|
|
30
|
-
|
|
31
|
+
|
|
32
|
+
- `addon.scss` (elle rajoutera l'import juste avant la ligne `html {`)
|
|
31
33
|
|
|
32
34
|
## C'est quoi une story ?
|
|
33
35
|
|
|
34
36
|
Une story, c'est deux fichiers :
|
|
37
|
+
|
|
35
38
|
- un dont l'extension est `.stories.mdx`
|
|
36
39
|
- un dont l'extension est `.stories.js`
|
|
37
40
|
|
|
@@ -58,7 +61,7 @@ export const message = (args) => {
|
|
|
58
61
|
Ceci est un message {{type}}
|
|
59
62
|
</PixMessage>
|
|
60
63
|
`,
|
|
61
|
-
context: args
|
|
64
|
+
context: args,
|
|
62
65
|
};
|
|
63
66
|
};
|
|
64
67
|
|
|
@@ -68,18 +71,19 @@ export const argTypes = {
|
|
|
68
71
|
name: 'type',
|
|
69
72
|
description: 'Type du message',
|
|
70
73
|
type: { name: 'string', required: false },
|
|
71
|
-
defaultValue: 'info',
|
|
72
|
-
control: { type: 'select'
|
|
74
|
+
table: { defaultValue: { summary: 'info' } },
|
|
75
|
+
control: { type: 'select' },
|
|
76
|
+
options: ['info', 'success', 'warning', 'alert'],
|
|
73
77
|
},
|
|
74
|
-
}
|
|
78
|
+
};
|
|
75
79
|
```
|
|
76
80
|
|
|
77
|
-
|
|
78
|
-
{
|
|
79
|
-
import { Meta, Story, Canvas, ArgsTable } from '@storybook/addon-docs
|
|
80
|
-
import
|
|
81
|
+
`````markdown
|
|
82
|
+
{/_ pix-message.stories.mdx _/}
|
|
83
|
+
import { Meta, Story, Canvas, ArgsTable } from '@storybook/addon-docs';
|
|
84
|
+
import \* as stories from './pix-message.stories.js';
|
|
81
85
|
|
|
82
|
-
{
|
|
86
|
+
{/_ Titre de la section affichée dans le menu de storybook _/}
|
|
83
87
|
|
|
84
88
|
<Meta
|
|
85
89
|
title='Notification/Message'
|
|
@@ -91,7 +95,7 @@ import * as stories from './pix-message.stories.js';
|
|
|
91
95
|
|
|
92
96
|
Un bandeau d'information, par défaut de type info, avec une icône facultative.
|
|
93
97
|
|
|
94
|
-
{
|
|
98
|
+
{/_ Affiche la prévisualisation du composant telle que définie dans pix-message.stories.js _/}
|
|
95
99
|
|
|
96
100
|
<Canvas isColumn>
|
|
97
101
|
<Story name="Message" story={stories.message} height={140} />
|
|
@@ -99,18 +103,16 @@ Un bandeau d'information, par défaut de type info, avec une icône facultative.
|
|
|
99
103
|
|
|
100
104
|
## Usage
|
|
101
105
|
|
|
102
|
-
|
|
103
|
-
<PixMessage @type=
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
\```
|
|
107
|
-
|
|
108
|
-
## Arguments
|
|
109
|
-
|
|
110
|
-
{/* Affiche le tableau des arguments tels que définis dans pix-message.stories.js */}
|
|
106
|
+
````html
|
|
107
|
+
<PixMessage @type="info" @withIcon="true"> Ceci est un message à caractère informatif. </PixMessage>
|
|
108
|
+
\``` ## Arguments {/* Affiche le tableau des arguments tels que définis dans pix-message.stories.js
|
|
109
|
+
*/}
|
|
111
110
|
|
|
112
111
|
<ArgsTable story="Message" />
|
|
112
|
+
````
|
|
113
|
+
`````
|
|
113
114
|
|
|
114
115
|
```
|
|
115
116
|
|
|
116
117
|
Plus d'information sur le [guide d'ember de Storybook ici](https://storybook.js.org/docs/guides/guide-ember/).
|
|
118
|
+
```
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { Meta } from '@storybook/addon-docs
|
|
1
|
+
import { Meta } from '@storybook/addon-docs';
|
|
2
2
|
|
|
3
3
|
<Meta title="Utiliser Pix UI/Design Tokens/ Utilisation" />
|
|
4
4
|
|
|
@@ -29,31 +29,35 @@ Par exemple :
|
|
|
29
29
|
.organization-title {
|
|
30
30
|
@include design-tokens.text-bold;
|
|
31
31
|
}
|
|
32
|
-
|
|
32
|
+
```
|
|
33
33
|
|
|
34
34
|
## Définir les alertes
|
|
35
35
|
|
|
36
36
|
Les couleurs pour définir un état d'une alerte ont été attribuées pour uniformiser le visuel sur toutes les applications.
|
|
37
37
|
|
|
38
38
|
### Success
|
|
39
|
+
|
|
39
40
|
```
|
|
40
41
|
Texte ou bordure : $pix-success-70
|
|
41
42
|
Background : $pix-success-5
|
|
42
43
|
```
|
|
43
44
|
|
|
44
45
|
### Warning
|
|
46
|
+
|
|
45
47
|
```
|
|
46
48
|
Texte ou bordure : $pix-warning-70
|
|
47
49
|
Background : $pix-warning-5
|
|
48
50
|
```
|
|
49
51
|
|
|
50
52
|
### Error
|
|
53
|
+
|
|
51
54
|
```
|
|
52
55
|
Texte ou bordure : $pix-error-70
|
|
53
56
|
Background : $pix-error-5
|
|
54
57
|
```
|
|
55
58
|
|
|
56
59
|
### Information
|
|
60
|
+
|
|
57
61
|
```
|
|
58
62
|
Texte ou bordure : $pix-primary-70
|
|
59
63
|
Background : $pix-primary-5
|
|
@@ -1,7 +1,7 @@
|
|
|
1
|
-
import { Meta } from '@storybook/addon-docs
|
|
1
|
+
import { Meta } from '@storybook/addon-docs';
|
|
2
2
|
import accessibilityImage from './assets/accessibility-storybook.png';
|
|
3
3
|
|
|
4
|
-
<Meta title=
|
|
4
|
+
<Meta title="Développement/Bonnes pratiques/Accessibilité" />
|
|
5
5
|
|
|
6
6
|
# Bonnes pratiques d'accessibilité
|
|
7
7
|
|
|
@@ -15,8 +15,8 @@ L'accessiblité est un enjeu important sur nos composants UI.
|
|
|
15
15
|
- S'assurer que les éléments en focus suivent un ordre logique.
|
|
16
16
|
- Lancer un logiciel de lecture d'écran (VoiceOver pour Mac) et s'assurer que ce soit compréhensible pour l'utilisateur.
|
|
17
17
|
|
|
18
|
-
|
|
19
18
|
Exemples pour l'utilisation du lecteur d'écran :
|
|
19
|
+
|
|
20
20
|
- Est-ce que l’information est lu et est compréhensible ?
|
|
21
21
|
|
|
22
22
|
- Si l'information est obligatoire, est-ce signalé ?
|
|
@@ -25,7 +25,6 @@ Exemples pour l'utilisation du lecteur d'écran :
|
|
|
25
25
|
|
|
26
26
|
- En cas d’erreur, est-ce que l’on prévient bien l'utilisateur pour corriger son erreur ?
|
|
27
27
|
|
|
28
|
-
|
|
29
28
|
Pour vous aider à créer un composant accessible :
|
|
30
29
|
|
|
31
30
|
- les channels Slack `#tech-a11y` (interne) et `#ext-hotline-accessibilité-pix-tanaguru` (externe avec Tanaguru) sont disponibles pour répondre à vos questions sur le sujet.
|
|
@@ -33,16 +32,12 @@ Pour vous aider à créer un composant accessible :
|
|
|
33
32
|
- Compte-rendu détaillé de notre atelier avec Tanaguru [ici](https://1024pix.atlassian.net/wiki/spaces/DEV/pages/2856288297/2021-05-27+-+Compte-rendu+Atelier+accessibilit+Tanaguru+les+devs)
|
|
34
33
|
- Checklist des recommandations WebAIM [ici](https://webaim.org/standards/wcag/checklist#sc2.4.4)
|
|
35
34
|
|
|
36
|
-
|
|
37
35
|
## Vérifier l'accessibilité d'un composant sur Storybook
|
|
38
36
|
|
|
39
37
|
Pour chaque composant, dans la partie 'Canvas', vous pouvez accéder à l'onglet 'Accessibility' qui donne un aperçu des règles d'accessibilité validées (Passes) ou non (Violations).
|
|
40
38
|
|
|
41
|
-
|
|
42
39
|
Il est possible de cliquer sur "More info..." pour connaître en détail ces règles.
|
|
43
40
|
|
|
44
|
-
<img src={accessibilityImage} alt="Accessibility in Storybook"/>
|
|
41
|
+
<img src={accessibilityImage} alt="Accessibility in Storybook" />
|
|
45
42
|
|
|
46
43
|
Mais cela ne couvre pas à 100% les règles d'accessibilité.
|
|
47
|
-
|
|
48
|
-
|