@1024pix/pix-ui 37.0.0 → 38.1.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.
- package/.circleci/config.yml +1 -1
- package/.storybook/main.js +7 -5
- package/.storybook/preview.js +35 -32
- package/CHANGELOG.md +20 -0
- package/addon/styles/_pix-button-base.scss +1 -0
- package/app/stories/form.stories.js +4 -0
- package/app/stories/{pix-background-header.stories.mdx → pix-background-header.mdx} +6 -6
- package/app/stories/pix-background-header.stories.js +4 -0
- package/app/stories/{pix-banner.stories.mdx → pix-banner.mdx} +19 -30
- package/app/stories/pix-banner.stories.js +49 -46
- package/app/stories/{pix-block.stories.mdx → pix-block.mdx} +5 -7
- package/app/stories/pix-block.stories.js +14 -11
- package/app/stories/{pix-button-link.stories.mdx → pix-button-link.mdx} +6 -14
- package/app/stories/pix-button-link.stories.js +87 -87
- package/app/stories/{pix-button-upload.stories.mdx → pix-button-upload.mdx} +5 -8
- package/app/stories/pix-button-upload.stories.js +62 -59
- package/app/stories/{pix-button.stories.mdx → pix-button.mdx} +15 -28
- package/app/stories/pix-button.stories.js +152 -149
- package/app/stories/pix-checkbox.mdx +71 -0
- package/app/stories/pix-checkbox.stories.js +69 -66
- package/app/stories/pix-collapsible.mdx +31 -0
- package/app/stories/pix-collapsible.stories.js +16 -13
- package/app/stories/{pix-dropdown.stories.mdx → pix-dropdown.mdx} +9 -17
- package/app/stories/pix-dropdown.stories.js +114 -110
- package/app/stories/{pix-filter-banner.stories.mdx → pix-filter-banner.mdx} +5 -7
- package/app/stories/pix-filter-banner.stories.js +36 -33
- package/app/stories/{pix-filterable-and-searchable-select.stories.mdx → pix-filterable-and-searchable-select.mdx} +7 -17
- package/app/stories/pix-filterable-and-searchable-select.stories.js +136 -133
- package/app/stories/{pix-icon-button.stories.mdx → pix-icon-button.mdx} +8 -16
- package/app/stories/pix-icon-button.stories.js +60 -57
- package/app/stories/{pix-indicator-card.stories.mdx → pix-indicator-card.mdx} +6 -10
- package/app/stories/pix-indicator-card.stories.js +37 -34
- package/app/stories/{pix-input-code.stories.mdx → pix-input-code.mdx} +5 -7
- package/app/stories/pix-input-code.stories.js +55 -52
- package/app/stories/{pix-input-password.stories.mdx → pix-input-password.mdx} +22 -23
- package/app/stories/pix-input-password.stories.js +60 -57
- package/app/stories/{pix-input.stories.mdx → pix-input.mdx} +14 -20
- package/app/stories/pix-input.stories.js +55 -52
- package/app/stories/pix-message.mdx +54 -0
- package/app/stories/pix-message.stories.js +40 -36
- package/app/stories/{pix-modal.stories.mdx → pix-modal.mdx} +5 -7
- package/app/stories/pix-modal.stories.js +31 -30
- package/app/stories/{pix-multi-select.stories.mdx → pix-multi-select.mdx} +9 -21
- package/app/stories/pix-multi-select.stories.js +106 -99
- package/app/stories/{pix-pagination.stories.mdx → pix-pagination.mdx} +8 -16
- package/app/stories/pix-pagination.stories.js +114 -111
- package/app/stories/{pix-progress-gauge.stories.mdx → pix-progress-gauge.mdx} +6 -10
- package/app/stories/pix-progress-gauge.stories.js +43 -40
- package/app/stories/{pix-radio-button.stories.mdx → pix-radio-button.mdx} +13 -15
- package/app/stories/pix-radio-button.stories.js +35 -32
- package/app/stories/pix-return-to.mdx +34 -0
- package/app/stories/pix-return-to.stories.js +32 -32
- package/app/stories/{pix-search-input.stories.mdx → pix-search-input.mdx} +5 -7
- package/app/stories/pix-search-input.stories.js +56 -52
- package/app/stories/{pix-select.stories.mdx → pix-select.mdx} +12 -28
- package/app/stories/pix-select.stories.js +171 -168
- package/app/stories/pix-selectable-tag.mdx +37 -0
- package/app/stories/pix-selectable-tag.stories.js +37 -34
- package/app/stories/{pix-sidebar.stories.mdx → pix-sidebar.mdx} +5 -7
- package/app/stories/pix-sidebar.stories.js +28 -25
- package/app/stories/{pix-stars.stories.mdx → pix-stars.mdx} +5 -7
- package/app/stories/pix-stars.stories.js +29 -26
- package/app/stories/{pix-tag.stories.mdx → pix-tag.mdx} +9 -10
- package/app/stories/pix-tag.stories.js +39 -39
- package/app/stories/{pix-textarea.stories.mdx → pix-textarea.mdx} +6 -7
- package/app/stories/pix-textarea.stories.js +37 -39
- package/app/stories/pix-toggle.mdx +28 -0
- package/app/stories/pix-toggle.stories.js +52 -49
- package/app/stories/{pix-tooltip.stories.mdx → pix-tooltip.mdx} +14 -28
- package/app/stories/pix-tooltip.stories.js +57 -54
- package/docs/{architecture.stories.mdx → architecture.mdx} +1 -1
- package/docs/{breaking-changes.stories.mdx → breaking-changes.mdx} +1 -1
- package/docs/changelog.mdx +6 -0
- package/docs/{colors-palette.stories.mdx → colors-palette.mdx} +1 -3
- package/docs/{create-component.stories.mdx → create-component.mdx} +24 -30
- package/docs/{design-system.stories.mdx → design-system.mdx} +1 -1
- package/docs/{design-tokens.stories.mdx → design-tokens.mdx} +1 -1
- package/docs/{good-practices-a11y.stories.mdx → good-practices-a11y.mdx} +1 -1
- package/docs/{good-practices-design.stories.mdx → good-practices-design.mdx} +1 -1
- package/docs/{good-practices-responsive.stories.mdx → good-practices-responsive.mdx} +1 -1
- package/docs/{good-practices-style-css.stories.mdx → good-practices-style-css.mdx} +1 -1
- package/docs/{good-practices-tests.stories.mdx → good-practices-tests.mdx} +1 -1
- package/docs/{make-a-release.stories.mdx → make-a-release.mdx} +1 -1
- package/docs/{pix-design-tokens-dev.stories.mdx → pix-design-tokens-dev.mdx} +1 -1
- package/docs/{shadow.stories.mdx → shadow.mdx} +1 -1
- package/docs/{spacing.stories.mdx → spacing.mdx} +1 -1
- package/docs/{storybook.stories.mdx → storybook.mdx} +1 -1
- package/docs/{test-component-without-release.stories.mdx → test-component-without-release.mdx} +1 -1
- package/docs/{typography.stories.mdx → typography.mdx} +1 -3
- package/docs/{use-component.stories.mdx → use-component.mdx} +1 -1
- package/docs/{use-install.stories.mdx → use-install.mdx} +1 -1
- package/package.json +17 -20
- package/app/stories/pix-checkbox.stories.mdx +0 -73
- package/app/stories/pix-collapsible.stories.mdx +0 -36
- package/app/stories/pix-message.stories.mdx +0 -64
- package/app/stories/pix-return-to.stories.mdx +0 -33
- package/app/stories/pix-selectable-tag.stories.mdx +0 -43
- package/app/stories/pix-toggle.stories.mdx +0 -36
- package/docs/changelog.stories.mdx +0 -6
|
@@ -1,5 +1,74 @@
|
|
|
1
1
|
import { hbs } from 'ember-cli-htmlbars';
|
|
2
2
|
|
|
3
|
+
export default {
|
|
4
|
+
title: 'Form/Checkbox',
|
|
5
|
+
argTypes: {
|
|
6
|
+
id: {
|
|
7
|
+
name: 'id',
|
|
8
|
+
description:
|
|
9
|
+
'Identifiant du champ permettant de lui attacher un label. Généré automatiquement si non renseigné.',
|
|
10
|
+
type: { name: 'string' },
|
|
11
|
+
},
|
|
12
|
+
label: {
|
|
13
|
+
name: 'label',
|
|
14
|
+
description: "Le label de l'input",
|
|
15
|
+
},
|
|
16
|
+
class: {
|
|
17
|
+
name: 'class',
|
|
18
|
+
description: "Permet d'ajouter une classe au parent du composant.",
|
|
19
|
+
type: { name: 'string' },
|
|
20
|
+
},
|
|
21
|
+
screenReaderOnly: {
|
|
22
|
+
name: 'screenReaderOnly',
|
|
23
|
+
description:
|
|
24
|
+
"Permet de ne pas afficher le label à l'écran. Sert à garder un label qui sera lisible par les lecteurs d'écran.",
|
|
25
|
+
type: { name: 'boolean', required: true },
|
|
26
|
+
table: {
|
|
27
|
+
type: { summary: 'boolean' },
|
|
28
|
+
defaultValue: { summary: false },
|
|
29
|
+
},
|
|
30
|
+
},
|
|
31
|
+
isIndeterminate: {
|
|
32
|
+
name: 'isIndeterminate',
|
|
33
|
+
description:
|
|
34
|
+
"Rendre la checkbox indéterminée, état indiquant que la/les case(s) n'est/ne sont ni cochée(s) ni décochée(s) (exemple: une checkbox parente indiquant la sélection partielle de plusieurs checkbox enfants)",
|
|
35
|
+
type: { name: 'boolean', required: true },
|
|
36
|
+
table: {
|
|
37
|
+
type: { summary: 'boolean' },
|
|
38
|
+
defaultValue: { summary: false },
|
|
39
|
+
},
|
|
40
|
+
},
|
|
41
|
+
labelSize: {
|
|
42
|
+
name: 'labelSize',
|
|
43
|
+
description: 'Correspond à la taille de la police du label.',
|
|
44
|
+
type: { name: 'string', required: false },
|
|
45
|
+
table: {
|
|
46
|
+
defaultValue: { summary: 'default' },
|
|
47
|
+
},
|
|
48
|
+
control: { type: 'select' },
|
|
49
|
+
options: ['small', 'default', 'large'],
|
|
50
|
+
},
|
|
51
|
+
checked: {
|
|
52
|
+
name: 'checked',
|
|
53
|
+
description: 'Permet de cocher la checkbox',
|
|
54
|
+
type: { name: 'boolean', required: false },
|
|
55
|
+
table: {
|
|
56
|
+
type: { summary: 'boolean' },
|
|
57
|
+
defaultValue: { summary: false },
|
|
58
|
+
},
|
|
59
|
+
},
|
|
60
|
+
disabled: {
|
|
61
|
+
name: 'disabled',
|
|
62
|
+
description: 'Permet de désactiver la checkbox',
|
|
63
|
+
type: { name: 'boolean', required: false },
|
|
64
|
+
table: {
|
|
65
|
+
type: { summary: 'boolean' },
|
|
66
|
+
defaultValue: { summary: false },
|
|
67
|
+
},
|
|
68
|
+
},
|
|
69
|
+
},
|
|
70
|
+
};
|
|
71
|
+
|
|
3
72
|
export const Template = (args) => {
|
|
4
73
|
return {
|
|
5
74
|
template: hbs`
|
|
@@ -105,69 +174,3 @@ export const multiple = MultipleTemplate.bind({});
|
|
|
105
174
|
multiple.args = {
|
|
106
175
|
label: 'Recevoir la newsletter',
|
|
107
176
|
};
|
|
108
|
-
|
|
109
|
-
export const argTypes = {
|
|
110
|
-
id: {
|
|
111
|
-
name: 'id',
|
|
112
|
-
description:
|
|
113
|
-
'Identifiant du champ permettant de lui attacher un label. Généré automatiquement si non renseigné.',
|
|
114
|
-
type: { name: 'string' },
|
|
115
|
-
},
|
|
116
|
-
label: {
|
|
117
|
-
name: 'label',
|
|
118
|
-
description: "Le label de l'input",
|
|
119
|
-
},
|
|
120
|
-
class: {
|
|
121
|
-
name: 'class',
|
|
122
|
-
description: "Permet d'ajouter une classe au parent du composant.",
|
|
123
|
-
type: { name: 'string' },
|
|
124
|
-
},
|
|
125
|
-
screenReaderOnly: {
|
|
126
|
-
name: 'screenReaderOnly',
|
|
127
|
-
description:
|
|
128
|
-
"Permet de ne pas afficher le label à l'écran. Sert à garder un label qui sera lisible par les lecteurs d'écran.",
|
|
129
|
-
type: { name: 'boolean', required: true },
|
|
130
|
-
table: {
|
|
131
|
-
type: { summary: 'boolean' },
|
|
132
|
-
defaultValue: { summary: false },
|
|
133
|
-
},
|
|
134
|
-
},
|
|
135
|
-
isIndeterminate: {
|
|
136
|
-
name: 'isIndeterminate',
|
|
137
|
-
description:
|
|
138
|
-
"Rendre la checkbox indéterminée, état indiquant que la/les case(s) n'est/ne sont ni cochée(s) ni décochée(s) (exemple: une checkbox parente indiquant la sélection partielle de plusieurs checkbox enfants)",
|
|
139
|
-
type: { name: 'boolean', required: true },
|
|
140
|
-
table: {
|
|
141
|
-
type: { summary: 'boolean' },
|
|
142
|
-
defaultValue: { summary: false },
|
|
143
|
-
},
|
|
144
|
-
},
|
|
145
|
-
labelSize: {
|
|
146
|
-
name: 'labelSize',
|
|
147
|
-
description: 'Correspond à la taille de la police du label.',
|
|
148
|
-
type: { name: 'string', required: false },
|
|
149
|
-
table: {
|
|
150
|
-
defaultValue: { summary: 'default' },
|
|
151
|
-
},
|
|
152
|
-
control: { type: 'select' },
|
|
153
|
-
options: ['small', 'default', 'large'],
|
|
154
|
-
},
|
|
155
|
-
checked: {
|
|
156
|
-
name: 'checked',
|
|
157
|
-
description: 'Permet de cocher la checkbox',
|
|
158
|
-
type: { name: 'boolean', required: false },
|
|
159
|
-
table: {
|
|
160
|
-
type: { summary: 'boolean' },
|
|
161
|
-
defaultValue: { summary: false },
|
|
162
|
-
},
|
|
163
|
-
},
|
|
164
|
-
disabled: {
|
|
165
|
-
name: 'disabled',
|
|
166
|
-
description: 'Permet de désactiver la checkbox',
|
|
167
|
-
type: { name: 'boolean', required: false },
|
|
168
|
-
table: {
|
|
169
|
-
type: { summary: 'boolean' },
|
|
170
|
-
defaultValue: { summary: false },
|
|
171
|
-
},
|
|
172
|
-
},
|
|
173
|
-
};
|
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
import { Meta, Story, ArgTypes } from '@storybook/blocks';
|
|
2
|
+
import * as ComponentStories from './pix-collapsible.stories';
|
|
3
|
+
|
|
4
|
+
<Meta of={ComponentStories} />
|
|
5
|
+
|
|
6
|
+
# PixCollapsible
|
|
7
|
+
|
|
8
|
+
Un `PixCollapsible` est un élément comprenant un libellé et un contenu.
|
|
9
|
+
Par défaut le contenu est masqué et cliquer sur le libellé permet de montrer le contenu du `PixCollapsible`.
|
|
10
|
+
|
|
11
|
+
> Il est possible de cumuler les `PixCollapsible` de sorte à former un accordéon, il suffit de les mettre dans une même div parente.
|
|
12
|
+
|
|
13
|
+
|
|
14
|
+
<Story of={ComponentStories.collapsible} height={150} />
|
|
15
|
+
|
|
16
|
+
<Story of={ComponentStories.collapsibleWithBlockTitle} height={150} />
|
|
17
|
+
|
|
18
|
+
<Story of={ComponentStories.multipleCollapsible} height={260} />
|
|
19
|
+
|
|
20
|
+
|
|
21
|
+
## Usage
|
|
22
|
+
|
|
23
|
+
```html
|
|
24
|
+
<PixCollapsible @title="Titre du contenu à dérouler en cliquant" @iconTitle="user">
|
|
25
|
+
<p>Contenu du PixCollapsible</p>
|
|
26
|
+
</PixCollapsible>
|
|
27
|
+
```
|
|
28
|
+
|
|
29
|
+
## Arguments
|
|
30
|
+
|
|
31
|
+
<ArgTypes of={ComponentStories} />
|
|
@@ -1,5 +1,21 @@
|
|
|
1
1
|
import { hbs } from 'ember-cli-htmlbars';
|
|
2
2
|
|
|
3
|
+
export default {
|
|
4
|
+
title: 'Others/Collapsible',
|
|
5
|
+
argTypes: {
|
|
6
|
+
title: {
|
|
7
|
+
name: 'title',
|
|
8
|
+
description: 'Intitulé du contenu du PixCollapsible',
|
|
9
|
+
type: { name: 'string', required: true },
|
|
10
|
+
},
|
|
11
|
+
titleIcon: {
|
|
12
|
+
name: 'titleIcon',
|
|
13
|
+
description: "Ajoute l'icône donnée en paramètre avant le titre du PixCollapsible",
|
|
14
|
+
type: { name: 'string', required: false },
|
|
15
|
+
},
|
|
16
|
+
},
|
|
17
|
+
};
|
|
18
|
+
|
|
3
19
|
const Template = (args) => {
|
|
4
20
|
return {
|
|
5
21
|
template: hbs`<PixCollapsible @title={{this.title}} @titleIcon={{this.titleIcon}}>
|
|
@@ -47,16 +63,3 @@ export const multipleCollapsible = (args) => {
|
|
|
47
63
|
context: args,
|
|
48
64
|
};
|
|
49
65
|
};
|
|
50
|
-
|
|
51
|
-
export const argTypes = {
|
|
52
|
-
title: {
|
|
53
|
-
name: 'title',
|
|
54
|
-
description: 'Intitulé du contenu du PixCollapsible',
|
|
55
|
-
type: { name: 'string', required: true },
|
|
56
|
-
},
|
|
57
|
-
titleIcon: {
|
|
58
|
-
name: 'titleIcon',
|
|
59
|
-
description: "Ajoute l'icône donnée en paramètre avant le titre du PixCollapsible",
|
|
60
|
-
type: { name: 'string', required: false },
|
|
61
|
-
},
|
|
62
|
-
};
|
|
@@ -1,8 +1,7 @@
|
|
|
1
|
-
import { Meta, Story,
|
|
1
|
+
import { Meta, Story, ArgTypes } from '@storybook/blocks';
|
|
2
|
+
import * as ComponentStories from './pix-dropdown.stories';
|
|
2
3
|
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
<Meta title="Form/Dropdown" component="PixDropdown" argTypes={stories.argTypes} />
|
|
4
|
+
<Meta of={ComponentStories} />
|
|
6
5
|
|
|
7
6
|
# Pix Dropdown
|
|
8
7
|
|
|
@@ -18,27 +17,20 @@ Les options sont représentées par un tableau d'objet contenant les propriété
|
|
|
18
17
|
|
|
19
18
|
## Default
|
|
20
19
|
|
|
21
|
-
<
|
|
22
|
-
<Story name="Dropdown" story={stories.Default} height={200} />
|
|
23
|
-
</Canvas>
|
|
20
|
+
<Story of={ComponentStories.Default} height={200} />
|
|
24
21
|
|
|
25
22
|
## With label
|
|
26
23
|
|
|
27
|
-
<
|
|
28
|
-
<Story story={stories.withLabel} height={200} />
|
|
29
|
-
</Canvas>
|
|
24
|
+
<Story of={ComponentStories.withLabel} height={200} />
|
|
30
25
|
|
|
31
26
|
## Searchable
|
|
32
27
|
|
|
33
|
-
<
|
|
34
|
-
|
|
35
|
-
</Canvas>
|
|
28
|
+
<Story of={ComponentStories.searchableDropdown} height={200} />
|
|
29
|
+
|
|
36
30
|
|
|
37
31
|
## Infinite scroll
|
|
38
32
|
|
|
39
|
-
<
|
|
40
|
-
<Story name="Paginated" story={stories.paginatedDropdown} height={200} />
|
|
41
|
-
</Canvas>
|
|
33
|
+
<Story of={ComponentStories.paginatedDropdown} height={200} />
|
|
42
34
|
|
|
43
35
|
## Usage
|
|
44
36
|
|
|
@@ -62,4 +54,4 @@ Les options sont représentées par un tableau d'objet contenant les propriété
|
|
|
62
54
|
|
|
63
55
|
## Arguments
|
|
64
56
|
|
|
65
|
-
<
|
|
57
|
+
<ArgTypes of={ComponentStories} />
|
|
@@ -1,7 +1,120 @@
|
|
|
1
1
|
import { hbs } from 'ember-cli-htmlbars';
|
|
2
2
|
import { action } from '@storybook/addon-actions';
|
|
3
3
|
|
|
4
|
-
export
|
|
4
|
+
export default {
|
|
5
|
+
title: 'Form/Dropdown',
|
|
6
|
+
argTypes: {
|
|
7
|
+
options: {
|
|
8
|
+
name: 'options',
|
|
9
|
+
description:
|
|
10
|
+
'Les options sont représentées par un tableau d‘objet contenant les propriétés ``value`` et ``label``.',
|
|
11
|
+
type: { name: 'array', required: true },
|
|
12
|
+
},
|
|
13
|
+
selectedOption: {
|
|
14
|
+
name: 'selectedOption',
|
|
15
|
+
description: 'Option sélectionnée',
|
|
16
|
+
options: ['1', '2', '3', '4', '5', '6', '7', '8', '9', '10'],
|
|
17
|
+
control: { type: 'select' },
|
|
18
|
+
type: { name: 'string', required: false },
|
|
19
|
+
table: {
|
|
20
|
+
type: { summary: 'string' },
|
|
21
|
+
},
|
|
22
|
+
},
|
|
23
|
+
onSelect: {
|
|
24
|
+
name: 'onSelect',
|
|
25
|
+
description: 'Fonction à appeler quand une option est sélectionnée.',
|
|
26
|
+
type: { required: true },
|
|
27
|
+
control: { disable: true },
|
|
28
|
+
},
|
|
29
|
+
isSearchable: {
|
|
30
|
+
name: 'isSearchable',
|
|
31
|
+
description:
|
|
32
|
+
"Rend le champ cherchable, le paramètre @searchPlaceholder devient requis pour l'accessibilité.",
|
|
33
|
+
control: { type: 'boolean' },
|
|
34
|
+
type: { name: 'boolean', required: false },
|
|
35
|
+
table: {
|
|
36
|
+
type: { summary: 'boolean' },
|
|
37
|
+
defaultValue: { summary: false },
|
|
38
|
+
},
|
|
39
|
+
},
|
|
40
|
+
searchPlaceholder: {
|
|
41
|
+
name: 'searchPlaceholder',
|
|
42
|
+
description: 'Placeholder du champ de recherche. Requis si le menu est cherchable.',
|
|
43
|
+
type: { name: 'string', required: false },
|
|
44
|
+
table: {
|
|
45
|
+
type: { summary: 'string' },
|
|
46
|
+
},
|
|
47
|
+
},
|
|
48
|
+
placeholder: {
|
|
49
|
+
name: 'placeholder',
|
|
50
|
+
description: "Un texte donnant une indication a l'utilisateur sur le choix des options.",
|
|
51
|
+
type: { name: 'string', required: false },
|
|
52
|
+
table: {
|
|
53
|
+
type: { summary: 'string' },
|
|
54
|
+
},
|
|
55
|
+
},
|
|
56
|
+
label: {
|
|
57
|
+
name: 'label',
|
|
58
|
+
description:
|
|
59
|
+
'Label du menu déroulant, le paramètre @id devient obligatoire avec ce paramètre.',
|
|
60
|
+
type: { name: 'string', required: false },
|
|
61
|
+
table: {
|
|
62
|
+
type: { summary: 'string' },
|
|
63
|
+
},
|
|
64
|
+
},
|
|
65
|
+
requiredLabel: {
|
|
66
|
+
name: 'requiredLabel',
|
|
67
|
+
description:
|
|
68
|
+
'Label indiquant que le champ est requis, le paramètre @label devient obligatoire avec ce paramètre.',
|
|
69
|
+
type: { name: 'string', required: false },
|
|
70
|
+
table: {
|
|
71
|
+
type: { summary: 'string' },
|
|
72
|
+
},
|
|
73
|
+
},
|
|
74
|
+
id: {
|
|
75
|
+
name: 'id',
|
|
76
|
+
description: "L'id du label",
|
|
77
|
+
type: { name: 'string', required: false },
|
|
78
|
+
table: {
|
|
79
|
+
type: { summary: 'string' },
|
|
80
|
+
},
|
|
81
|
+
},
|
|
82
|
+
pageSize: {
|
|
83
|
+
name: 'pageSize',
|
|
84
|
+
description: "Le nombre d'élément à afficher dans la liste.",
|
|
85
|
+
type: { name: 'number', required: false },
|
|
86
|
+
table: {
|
|
87
|
+
type: { summary: 'number' },
|
|
88
|
+
},
|
|
89
|
+
},
|
|
90
|
+
clearLabel: {
|
|
91
|
+
name: 'clearLabel',
|
|
92
|
+
description: "Label de l'icône pour éliminer la sélection. Requis pour l'accessibilité.",
|
|
93
|
+
type: { name: 'string', required: false },
|
|
94
|
+
table: {
|
|
95
|
+
type: { summary: 'string' },
|
|
96
|
+
},
|
|
97
|
+
},
|
|
98
|
+
expandLabel: {
|
|
99
|
+
name: 'expandLabel',
|
|
100
|
+
description: "Label de l'icône pour ouvrir le menu déroulant. Requis pour l'accessibilité.",
|
|
101
|
+
type: { name: 'string', required: false },
|
|
102
|
+
table: {
|
|
103
|
+
type: { summary: 'string' },
|
|
104
|
+
},
|
|
105
|
+
},
|
|
106
|
+
collapseLabel: {
|
|
107
|
+
name: 'collapseLabel',
|
|
108
|
+
description: "Label de l'icône pour réduire le menu déroulant. Requis pour l'accessibilité.",
|
|
109
|
+
type: { name: 'string', required: false },
|
|
110
|
+
table: {
|
|
111
|
+
type: { summary: 'string' },
|
|
112
|
+
},
|
|
113
|
+
},
|
|
114
|
+
},
|
|
115
|
+
};
|
|
116
|
+
|
|
117
|
+
const Template = (args) => {
|
|
5
118
|
return {
|
|
6
119
|
template: hbs`<div style='width: 300px;'>
|
|
7
120
|
<PixDropdown
|
|
@@ -78,112 +191,3 @@ paginatedDropdown.args = {
|
|
|
78
191
|
label: `${index}abc`,
|
|
79
192
|
})),
|
|
80
193
|
};
|
|
81
|
-
|
|
82
|
-
export const argTypes = {
|
|
83
|
-
options: {
|
|
84
|
-
name: 'options',
|
|
85
|
-
description:
|
|
86
|
-
'Les options sont représentées par un tableau d‘objet contenant les propriétés ``value`` et ``label``.',
|
|
87
|
-
type: { name: 'array', required: true },
|
|
88
|
-
},
|
|
89
|
-
selectedOption: {
|
|
90
|
-
name: 'selectedOption',
|
|
91
|
-
description: 'Option sélectionnée',
|
|
92
|
-
options: ['1', '2', '3', '4', '5', '6', '7', '8', '9', '10'],
|
|
93
|
-
control: { type: 'select' },
|
|
94
|
-
type: { name: 'string', required: false },
|
|
95
|
-
table: {
|
|
96
|
-
type: { summary: 'string' },
|
|
97
|
-
},
|
|
98
|
-
},
|
|
99
|
-
onSelect: {
|
|
100
|
-
name: 'onSelect',
|
|
101
|
-
description: 'Fonction à appeler quand une option est sélectionnée.',
|
|
102
|
-
type: { required: true },
|
|
103
|
-
control: { disable: true },
|
|
104
|
-
},
|
|
105
|
-
isSearchable: {
|
|
106
|
-
name: 'isSearchable',
|
|
107
|
-
description:
|
|
108
|
-
"Rend le champ cherchable, le paramètre @searchPlaceholder devient requis pour l'accessibilité.",
|
|
109
|
-
control: { type: 'boolean' },
|
|
110
|
-
type: { name: 'boolean', required: false },
|
|
111
|
-
table: {
|
|
112
|
-
type: { summary: 'boolean' },
|
|
113
|
-
defaultValue: { summary: false },
|
|
114
|
-
},
|
|
115
|
-
},
|
|
116
|
-
searchPlaceholder: {
|
|
117
|
-
name: 'searchPlaceholder',
|
|
118
|
-
description: 'Placeholder du champ de recherche. Requis si le menu est cherchable.',
|
|
119
|
-
type: { name: 'string', required: false },
|
|
120
|
-
table: {
|
|
121
|
-
type: { summary: 'string' },
|
|
122
|
-
},
|
|
123
|
-
},
|
|
124
|
-
placeholder: {
|
|
125
|
-
name: 'placeholder',
|
|
126
|
-
description: "Un texte donnant une indication a l'utilisateur sur le choix des options.",
|
|
127
|
-
type: { name: 'string', required: false },
|
|
128
|
-
table: {
|
|
129
|
-
type: { summary: 'string' },
|
|
130
|
-
},
|
|
131
|
-
},
|
|
132
|
-
label: {
|
|
133
|
-
name: 'label',
|
|
134
|
-
description: 'Label du menu déroulant, le paramètre @id devient obligatoire avec ce paramètre.',
|
|
135
|
-
type: { name: 'string', required: false },
|
|
136
|
-
table: {
|
|
137
|
-
type: { summary: 'string' },
|
|
138
|
-
},
|
|
139
|
-
},
|
|
140
|
-
requiredLabel: {
|
|
141
|
-
name: 'requiredLabel',
|
|
142
|
-
description:
|
|
143
|
-
'Label indiquant que le champ est requis, le paramètre @label devient obligatoire avec ce paramètre.',
|
|
144
|
-
type: { name: 'string', required: false },
|
|
145
|
-
table: {
|
|
146
|
-
type: { summary: 'string' },
|
|
147
|
-
},
|
|
148
|
-
},
|
|
149
|
-
id: {
|
|
150
|
-
name: 'id',
|
|
151
|
-
description: "L'id du label",
|
|
152
|
-
type: { name: 'string', required: false },
|
|
153
|
-
table: {
|
|
154
|
-
type: { summary: 'string' },
|
|
155
|
-
},
|
|
156
|
-
},
|
|
157
|
-
pageSize: {
|
|
158
|
-
name: 'pageSize',
|
|
159
|
-
description: "Le nombre d'élément à afficher dans la liste.",
|
|
160
|
-
type: { name: 'number', required: false },
|
|
161
|
-
table: {
|
|
162
|
-
type: { summary: 'number' },
|
|
163
|
-
},
|
|
164
|
-
},
|
|
165
|
-
clearLabel: {
|
|
166
|
-
name: 'clearLabel',
|
|
167
|
-
description: "Label de l'icône pour éliminer la sélection. Requis pour l'accessibilité.",
|
|
168
|
-
type: { name: 'string', required: false },
|
|
169
|
-
table: {
|
|
170
|
-
type: { summary: 'string' },
|
|
171
|
-
},
|
|
172
|
-
},
|
|
173
|
-
expandLabel: {
|
|
174
|
-
name: 'expandLabel',
|
|
175
|
-
description: "Label de l'icône pour ouvrir le menu déroulant. Requis pour l'accessibilité.",
|
|
176
|
-
type: { name: 'string', required: false },
|
|
177
|
-
table: {
|
|
178
|
-
type: { summary: 'string' },
|
|
179
|
-
},
|
|
180
|
-
},
|
|
181
|
-
collapseLabel: {
|
|
182
|
-
name: 'collapseLabel',
|
|
183
|
-
description: "Label de l'icône pour réduire le menu déroulant. Requis pour l'accessibilité.",
|
|
184
|
-
type: { name: 'string', required: false },
|
|
185
|
-
table: {
|
|
186
|
-
type: { summary: 'string' },
|
|
187
|
-
},
|
|
188
|
-
},
|
|
189
|
-
};
|
|
@@ -1,7 +1,7 @@
|
|
|
1
|
-
import { Meta, Story,
|
|
2
|
-
import * as
|
|
1
|
+
import { Meta, Story, ArgTypes } from '@storybook/blocks';
|
|
2
|
+
import * as ComponentStories from './pix-filter-banner.stories.js';
|
|
3
3
|
|
|
4
|
-
<Meta
|
|
4
|
+
<Meta of={ComponentStories} />
|
|
5
5
|
|
|
6
6
|
# Pix Filter Banner
|
|
7
7
|
|
|
@@ -9,9 +9,7 @@ Une `FilterBanner` permet de wrapper les éléments de filtres (`Select`, `Multi
|
|
|
9
9
|
|
|
10
10
|
> Il est possible de surcharger le style d'une `<PixFilterBanner>` via l'attribut `class` ainsi que de passer n'importe quel attribut sur sa `div` wrapper (par exemple, un `aria-label`)
|
|
11
11
|
|
|
12
|
-
<
|
|
13
|
-
<Story name="Filter banner" story={stories.filterBanner} height={80} />
|
|
14
|
-
</Canvas>
|
|
12
|
+
<Story of={ComponentStories.filterBanner} height={80} />
|
|
15
13
|
|
|
16
14
|
## Usage
|
|
17
15
|
|
|
@@ -25,4 +23,4 @@ Une `FilterBanner` permet de wrapper les éléments de filtres (`Select`, `Multi
|
|
|
25
23
|
|
|
26
24
|
## Arguments
|
|
27
25
|
|
|
28
|
-
<
|
|
26
|
+
<ArgTypes of={ComponentStories} />
|
|
@@ -1,6 +1,42 @@
|
|
|
1
1
|
import { hbs } from 'ember-cli-htmlbars';
|
|
2
2
|
import { action } from '@storybook/addon-actions';
|
|
3
3
|
|
|
4
|
+
export default {
|
|
5
|
+
title: 'Form/Filter banner',
|
|
6
|
+
argTypes: {
|
|
7
|
+
title: {
|
|
8
|
+
name: 'title',
|
|
9
|
+
description: 'Titre du filtre',
|
|
10
|
+
type: { name: 'string', required: false },
|
|
11
|
+
},
|
|
12
|
+
details: {
|
|
13
|
+
name: 'details',
|
|
14
|
+
description: 'Détails du filtre',
|
|
15
|
+
type: { name: 'string', required: false },
|
|
16
|
+
},
|
|
17
|
+
clearFiltersLabel: {
|
|
18
|
+
name: 'clearFiltersLabel',
|
|
19
|
+
description: 'libellé du bouton',
|
|
20
|
+
type: { name: 'string', required: false },
|
|
21
|
+
},
|
|
22
|
+
onClearFilters: {
|
|
23
|
+
name: 'onClearFilters',
|
|
24
|
+
description: 'fonction à appeler pour déclencher l’action de suppression des filtres',
|
|
25
|
+
type: { required: false },
|
|
26
|
+
},
|
|
27
|
+
isClearFilterButtonDisabled: {
|
|
28
|
+
name: 'isClearFilterButtonDisabled',
|
|
29
|
+
description: 'Désactiver le button de la suppresion des filtres',
|
|
30
|
+
type: { name: 'boolean', required: true },
|
|
31
|
+
control: { type: 'boolean' },
|
|
32
|
+
table: {
|
|
33
|
+
type: { summary: 'boolean' },
|
|
34
|
+
defaultValue: { summary: false },
|
|
35
|
+
},
|
|
36
|
+
},
|
|
37
|
+
},
|
|
38
|
+
};
|
|
39
|
+
|
|
4
40
|
export const filterBanner = (args) => {
|
|
5
41
|
return {
|
|
6
42
|
template: hbs`<PixFilterBanner
|
|
@@ -28,36 +64,3 @@ filterBanner.args = {
|
|
|
28
64
|
onChange: action('select-onchange'),
|
|
29
65
|
onClearFilters: action('onClearFilters'),
|
|
30
66
|
};
|
|
31
|
-
|
|
32
|
-
export const argTypes = {
|
|
33
|
-
title: {
|
|
34
|
-
name: 'title',
|
|
35
|
-
description: 'Titre du filtre',
|
|
36
|
-
type: { name: 'string', required: false },
|
|
37
|
-
},
|
|
38
|
-
details: {
|
|
39
|
-
name: 'details',
|
|
40
|
-
description: 'Détails du filtre',
|
|
41
|
-
type: { name: 'string', required: false },
|
|
42
|
-
},
|
|
43
|
-
clearFiltersLabel: {
|
|
44
|
-
name: 'clearFiltersLabel',
|
|
45
|
-
description: 'libellé du bouton',
|
|
46
|
-
type: { name: 'string', required: false },
|
|
47
|
-
},
|
|
48
|
-
onClearFilters: {
|
|
49
|
-
name: 'onClearFilters',
|
|
50
|
-
description: 'fonction à appeler pour déclencher l’action de suppression des filtres',
|
|
51
|
-
type: { required: false },
|
|
52
|
-
},
|
|
53
|
-
isClearFilterButtonDisabled: {
|
|
54
|
-
name: 'isClearFilterButtonDisabled',
|
|
55
|
-
description: 'Désactiver le button de la suppresion des filtres',
|
|
56
|
-
type: { name: 'boolean', required: true },
|
|
57
|
-
control: { type: 'boolean' },
|
|
58
|
-
table: {
|
|
59
|
-
type: { summary: 'boolean' },
|
|
60
|
-
defaultValue: { summary: false },
|
|
61
|
-
},
|
|
62
|
-
},
|
|
63
|
-
};
|
|
@@ -1,11 +1,7 @@
|
|
|
1
|
-
import { Meta, Story,
|
|
2
|
-
import * as
|
|
1
|
+
import { Meta, Story, ArgTypes } from '@storybook/blocks';
|
|
2
|
+
import * as ComponentStories from './pix-filterable-and-searchable-select.stories.js';
|
|
3
3
|
|
|
4
|
-
<Meta
|
|
5
|
-
title="Form/Filterable and searchable select"
|
|
6
|
-
component="PixFilterableAndSearchableSelect"
|
|
7
|
-
argTypes={stories.argTypes}
|
|
8
|
-
/>
|
|
4
|
+
<Meta of={ComponentStories} />
|
|
9
5
|
|
|
10
6
|
# Pix Filterable and searchable select
|
|
11
7
|
|
|
@@ -23,21 +19,15 @@ Les options sont représentées par un tableau d'objet contenant les propriété
|
|
|
23
19
|
|
|
24
20
|
## Default
|
|
25
21
|
|
|
26
|
-
<
|
|
27
|
-
<Story name="Default" story={stories.Default} />
|
|
28
|
-
</Canvas>
|
|
22
|
+
<Story of={ComponentStories.Default} height={400}/>
|
|
29
23
|
|
|
30
24
|
## Searchable
|
|
31
25
|
|
|
32
|
-
<
|
|
33
|
-
<Story name="Searchable" story={stories.Searchable} />
|
|
34
|
-
</Canvas>
|
|
26
|
+
<Story of={ComponentStories.Searchable} height={400}/>
|
|
35
27
|
|
|
36
28
|
## With labels only for screenReaders
|
|
37
29
|
|
|
38
|
-
<
|
|
39
|
-
<Story name="WithLabelsOnlyForScreenReaders" story={stories.WithLabelsOnlyForScreenReaders} />
|
|
40
|
-
</Canvas>
|
|
30
|
+
<Story of={ComponentStories.WithLabelsOnlyForScreenReaders} height={400}/>
|
|
41
31
|
|
|
42
32
|
## Usage
|
|
43
33
|
|
|
@@ -68,4 +58,4 @@ Les options sont représentées par un tableau d'objet contenant les propriété
|
|
|
68
58
|
|
|
69
59
|
## Arguments
|
|
70
60
|
|
|
71
|
-
<
|
|
61
|
+
<ArgTypes of={ComponentStories} />
|