@1024pix/pix-ui 38.0.0 → 38.2.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.
Files changed (99) hide show
  1. package/.circleci/config.yml +31 -39
  2. package/.nvmrc +1 -1
  3. package/.storybook/main.js +7 -5
  4. package/.storybook/preview.js +35 -32
  5. package/CHANGELOG.md +20 -0
  6. package/app/stories/form.stories.js +4 -0
  7. package/app/stories/{pix-background-header.stories.mdx → pix-background-header.mdx} +6 -6
  8. package/app/stories/pix-background-header.stories.js +4 -0
  9. package/app/stories/{pix-banner.stories.mdx → pix-banner.mdx} +19 -30
  10. package/app/stories/pix-banner.stories.js +49 -46
  11. package/app/stories/{pix-block.stories.mdx → pix-block.mdx} +5 -7
  12. package/app/stories/pix-block.stories.js +14 -11
  13. package/app/stories/{pix-button-link.stories.mdx → pix-button-link.mdx} +6 -14
  14. package/app/stories/pix-button-link.stories.js +87 -87
  15. package/app/stories/{pix-button-upload.stories.mdx → pix-button-upload.mdx} +5 -8
  16. package/app/stories/pix-button-upload.stories.js +62 -59
  17. package/app/stories/{pix-button.stories.mdx → pix-button.mdx} +15 -28
  18. package/app/stories/pix-button.stories.js +152 -149
  19. package/app/stories/pix-checkbox.mdx +71 -0
  20. package/app/stories/pix-checkbox.stories.js +69 -66
  21. package/app/stories/pix-collapsible.mdx +31 -0
  22. package/app/stories/pix-collapsible.stories.js +16 -13
  23. package/app/stories/{pix-dropdown.stories.mdx → pix-dropdown.mdx} +9 -17
  24. package/app/stories/pix-dropdown.stories.js +114 -110
  25. package/app/stories/{pix-filter-banner.stories.mdx → pix-filter-banner.mdx} +5 -7
  26. package/app/stories/pix-filter-banner.stories.js +36 -33
  27. package/app/stories/{pix-filterable-and-searchable-select.stories.mdx → pix-filterable-and-searchable-select.mdx} +7 -17
  28. package/app/stories/pix-filterable-and-searchable-select.stories.js +136 -133
  29. package/app/stories/{pix-icon-button.stories.mdx → pix-icon-button.mdx} +8 -16
  30. package/app/stories/pix-icon-button.stories.js +60 -57
  31. package/app/stories/{pix-indicator-card.stories.mdx → pix-indicator-card.mdx} +6 -10
  32. package/app/stories/pix-indicator-card.stories.js +37 -34
  33. package/app/stories/{pix-input-code.stories.mdx → pix-input-code.mdx} +5 -7
  34. package/app/stories/pix-input-code.stories.js +55 -52
  35. package/app/stories/{pix-input-password.stories.mdx → pix-input-password.mdx} +22 -23
  36. package/app/stories/pix-input-password.stories.js +60 -57
  37. package/app/stories/{pix-input.stories.mdx → pix-input.mdx} +14 -20
  38. package/app/stories/pix-input.stories.js +55 -52
  39. package/app/stories/pix-message.mdx +54 -0
  40. package/app/stories/pix-message.stories.js +40 -36
  41. package/app/stories/{pix-modal.stories.mdx → pix-modal.mdx} +5 -7
  42. package/app/stories/pix-modal.stories.js +31 -30
  43. package/app/stories/{pix-multi-select.stories.mdx → pix-multi-select.mdx} +9 -21
  44. package/app/stories/pix-multi-select.stories.js +106 -99
  45. package/app/stories/{pix-pagination.stories.mdx → pix-pagination.mdx} +8 -16
  46. package/app/stories/pix-pagination.stories.js +114 -111
  47. package/app/stories/{pix-progress-gauge.stories.mdx → pix-progress-gauge.mdx} +6 -10
  48. package/app/stories/pix-progress-gauge.stories.js +43 -40
  49. package/app/stories/{pix-radio-button.stories.mdx → pix-radio-button.mdx} +13 -15
  50. package/app/stories/pix-radio-button.stories.js +35 -32
  51. package/app/stories/pix-return-to.mdx +34 -0
  52. package/app/stories/pix-return-to.stories.js +32 -32
  53. package/app/stories/{pix-search-input.stories.mdx → pix-search-input.mdx} +5 -7
  54. package/app/stories/pix-search-input.stories.js +56 -52
  55. package/app/stories/{pix-select.stories.mdx → pix-select.mdx} +12 -28
  56. package/app/stories/pix-select.stories.js +171 -168
  57. package/app/stories/pix-selectable-tag.mdx +37 -0
  58. package/app/stories/pix-selectable-tag.stories.js +37 -34
  59. package/app/stories/{pix-sidebar.stories.mdx → pix-sidebar.mdx} +5 -7
  60. package/app/stories/pix-sidebar.stories.js +28 -25
  61. package/app/stories/{pix-stars.stories.mdx → pix-stars.mdx} +5 -7
  62. package/app/stories/pix-stars.stories.js +29 -26
  63. package/app/stories/{pix-tag.stories.mdx → pix-tag.mdx} +9 -10
  64. package/app/stories/pix-tag.stories.js +39 -39
  65. package/app/stories/{pix-textarea.stories.mdx → pix-textarea.mdx} +6 -7
  66. package/app/stories/pix-textarea.stories.js +37 -39
  67. package/app/stories/pix-toggle.mdx +28 -0
  68. package/app/stories/pix-toggle.stories.js +52 -49
  69. package/app/stories/{pix-tooltip.stories.mdx → pix-tooltip.mdx} +14 -28
  70. package/app/stories/pix-tooltip.stories.js +57 -54
  71. package/docs/{architecture.stories.mdx → architecture.mdx} +1 -1
  72. package/docs/{breaking-changes.stories.mdx → breaking-changes.mdx} +1 -1
  73. package/docs/changelog.mdx +6 -0
  74. package/docs/{colors-palette.stories.mdx → colors-palette.mdx} +1 -3
  75. package/docs/{create-component.stories.mdx → create-component.mdx} +24 -30
  76. package/docs/{design-system.stories.mdx → design-system.mdx} +1 -1
  77. package/docs/{design-tokens.stories.mdx → design-tokens.mdx} +1 -1
  78. package/docs/{good-practices-a11y.stories.mdx → good-practices-a11y.mdx} +1 -1
  79. package/docs/{good-practices-design.stories.mdx → good-practices-design.mdx} +1 -1
  80. package/docs/{good-practices-responsive.stories.mdx → good-practices-responsive.mdx} +1 -1
  81. package/docs/{good-practices-style-css.stories.mdx → good-practices-style-css.mdx} +1 -1
  82. package/docs/{good-practices-tests.stories.mdx → good-practices-tests.mdx} +1 -1
  83. package/docs/{make-a-release.stories.mdx → make-a-release.mdx} +1 -1
  84. package/docs/{pix-design-tokens-dev.stories.mdx → pix-design-tokens-dev.mdx} +1 -1
  85. package/docs/{shadow.stories.mdx → shadow.mdx} +1 -1
  86. package/docs/{spacing.stories.mdx → spacing.mdx} +1 -1
  87. package/docs/{storybook.stories.mdx → storybook.mdx} +1 -1
  88. package/docs/{test-component-without-release.stories.mdx → test-component-without-release.mdx} +1 -1
  89. package/docs/{typography.stories.mdx → typography.mdx} +1 -3
  90. package/docs/{use-component.stories.mdx → use-component.mdx} +1 -1
  91. package/docs/{use-install.stories.mdx → use-install.mdx} +1 -1
  92. package/package.json +19 -21
  93. package/app/stories/pix-checkbox.stories.mdx +0 -73
  94. package/app/stories/pix-collapsible.stories.mdx +0 -36
  95. package/app/stories/pix-message.stories.mdx +0 -64
  96. package/app/stories/pix-return-to.stories.mdx +0 -33
  97. package/app/stories/pix-selectable-tag.stories.mdx +0 -43
  98. package/app/stories/pix-toggle.stories.mdx +0 -36
  99. package/docs/changelog.stories.mdx +0 -6
@@ -1,7 +1,120 @@
1
1
  import { hbs } from 'ember-cli-htmlbars';
2
2
  import { action } from '@storybook/addon-actions';
3
3
 
4
- export const Template = (args) => {
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, Canvas, ArgsTable } from '@storybook/addon-docs';
2
- import * as stories from './pix-filter-banner.stories.js';
1
+ import { Meta, Story, ArgTypes } from '@storybook/blocks';
2
+ import * as ComponentStories from './pix-filter-banner.stories.js';
3
3
 
4
- <Meta title="Form/Filter banner" component="PixFilterBanner" argTypes={stories.argTypes} />
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
- <Canvas>
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
- <ArgsTable story="Filter banner" />
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, Canvas, ArgsTable } from '@storybook/addon-docs';
2
- import * as stories from './pix-filterable-and-searchable-select.stories.js';
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
- <Canvas>
27
- <Story name="Default" story={stories.Default} />
28
- </Canvas>
22
+ <Story of={ComponentStories.Default} height={400}/>
29
23
 
30
24
  ## Searchable
31
25
 
32
- <Canvas>
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
- <Canvas>
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
- <ArgsTable story="Default" />
61
+ <ArgTypes of={ComponentStories} />
@@ -1,6 +1,142 @@
1
1
  import { hbs } from 'ember-cli-htmlbars';
2
2
  import { action } from '@storybook/addon-actions';
3
3
 
4
+ export default {
5
+ title: 'Form/Filterable and searchable select',
6
+ argTypes: {
7
+ label: {
8
+ name: 'label',
9
+ description: 'Label du composant global.',
10
+ type: { name: 'string', required: true },
11
+ table: {
12
+ type: { summary: 'string' },
13
+ },
14
+ },
15
+ subLabel: {
16
+ name: 'subLabel',
17
+ description: 'Sous Label du composant global qui donne une description.',
18
+ type: { name: 'string', required: false },
19
+ table: {
20
+ type: { summary: 'string' },
21
+ },
22
+ },
23
+ options: {
24
+ name: 'options',
25
+ description:
26
+ 'Les options sont représentées par un tableau d‘objet contenant les propriétés ``value``, ``label`` et ``category``. Ce dernier étant optionnel.',
27
+ type: { name: 'array', required: true },
28
+ },
29
+ value: {
30
+ name: 'value',
31
+ description: 'Option sélectionnée',
32
+ options: ['1', '2', '3', '4', '5', '6'],
33
+ control: { type: 'select' },
34
+ type: { name: 'string', required: false },
35
+ table: {
36
+ type: { summary: 'string' },
37
+ },
38
+ },
39
+ onChange: {
40
+ name: 'onChange',
41
+ description: 'Fonction à appeler quand une option est sélectionnée.',
42
+ type: { required: true },
43
+ control: { disable: true },
44
+ },
45
+ isSearchable: {
46
+ name: 'isSearchable',
47
+ description: 'Rend le champ du select cherchable',
48
+ control: { type: 'boolean' },
49
+ type: { name: 'boolean', required: false },
50
+ table: {
51
+ type: { summary: 'boolean' },
52
+ defaultValue: { summary: false },
53
+ },
54
+ },
55
+ screenReaderOnly: {
56
+ name: 'screenReaderOnly',
57
+ description: "Permet de rendre le label lisible uniquement par les lecteurs d'écran",
58
+ control: { type: 'boolean' },
59
+ type: { name: 'boolean', required: false },
60
+ table: {
61
+ type: { summary: 'boolean' },
62
+ defaultValue: { summary: false },
63
+ },
64
+ },
65
+ placeholder: {
66
+ name: 'placeholder',
67
+ description: "Placeholder du select. Il sert aussi de label pour l'option par défaut",
68
+ type: { name: 'string', required: true },
69
+ table: {
70
+ type: { summary: 'string' },
71
+ },
72
+ },
73
+ hideDefaultOption: {
74
+ name: 'hideDefaultOption',
75
+ description: "Cache l'option par défaut du select",
76
+ type: { name: 'boolean', required: false },
77
+ table: {
78
+ type: { summary: 'boolean' },
79
+ defaultValue: { summary: false },
80
+ },
81
+ },
82
+ searchLabel: {
83
+ name: 'searchLabel',
84
+ description:
85
+ 'Label de la recherche dans le menu déroulant du select. **⚠️ Obligatoire uniquement si le `isSearchable` est à true. ⚠️**',
86
+ type: { name: 'string', required: false },
87
+ table: {
88
+ type: { summary: 'string' },
89
+ },
90
+ },
91
+ searchPlaceholder: {
92
+ name: 'searchPlaceholder',
93
+ description:
94
+ 'Placeholder de la recherche dans le menu déroulant du select. **⚠️ Obligatoire uniquement si le `isSearchable` est à true. ⚠️**',
95
+ type: { name: 'string', required: false },
96
+ table: {
97
+ type: { summary: 'string' },
98
+ },
99
+ },
100
+ emptySearchMessage: {
101
+ name: 'emptySearchMessage',
102
+ description:
103
+ "Message affiché si la recherche dans le select ne retourne pas d'options. **⚠️ Obligatoire uniquement si le `isSearchable` est à true. ⚠️**",
104
+ type: { name: 'string', required: false },
105
+ table: {
106
+ type: { summary: 'string' },
107
+ },
108
+ },
109
+ requiredText: {
110
+ name: 'requiredText',
111
+ description: "Affiche l'astérisque au label et ajoute sa signification",
112
+ type: { name: 'string', required: false },
113
+ table: {
114
+ type: { summary: 'string' },
115
+ },
116
+ },
117
+ errorMessage: {
118
+ name: 'errorMessage',
119
+ description: 'Message affiché si une erreur survient',
120
+ type: { name: 'string', required: false },
121
+ table: {
122
+ type: { summary: 'string' },
123
+ },
124
+ },
125
+ categoriesPlaceholder: {
126
+ name: 'categoriesPlaceholder',
127
+ description:
128
+ 'Pour le filtre de categories, cela rempli le contenu interne du composant, `categoriesPlaceholder` pour `isSearchable` `true`, sinon rawContent du `button`',
129
+ type: { name: 'string', required: true },
130
+ },
131
+ categoriesLabel: {
132
+ name: 'categoriesLabel',
133
+ description:
134
+ "Pour le composant de filtre sur les catégories, cela donne un label au champ qui sera celui vocalisé par le lecteur d'écran",
135
+ type: { name: 'string', required: true },
136
+ },
137
+ },
138
+ };
139
+
4
140
  const Template = (args) => {
5
141
  return {
6
142
  template: hbs`
@@ -53,136 +189,3 @@ WithLabelsOnlyForScreenReaders.args = {
53
189
  screenReaderOnly: true,
54
190
  isSearchable: true,
55
191
  };
56
-
57
- export const argTypes = {
58
- label: {
59
- name: 'label',
60
- description: 'Label du composant global.',
61
- type: { name: 'string', required: true },
62
- table: {
63
- type: { summary: 'string' },
64
- },
65
- },
66
- subLabel: {
67
- name: 'subLabel',
68
- description: 'Sous Label du composant global qui donne une description.',
69
- type: { name: 'string', required: false },
70
- table: {
71
- type: { summary: 'string' },
72
- },
73
- },
74
- options: {
75
- name: 'options',
76
- description:
77
- 'Les options sont représentées par un tableau d‘objet contenant les propriétés ``value``, ``label`` et ``category``. Ce dernier étant optionnel.',
78
- type: { name: 'array', required: true },
79
- },
80
- value: {
81
- name: 'value',
82
- description: 'Option sélectionnée',
83
- options: ['1', '2', '3', '4', '5', '6'],
84
- control: { type: 'select' },
85
- type: { name: 'string', required: false },
86
- table: {
87
- type: { summary: 'string' },
88
- },
89
- },
90
- onChange: {
91
- name: 'onChange',
92
- description: 'Fonction à appeler quand une option est sélectionnée.',
93
- type: { required: true },
94
- control: { disable: true },
95
- },
96
- isSearchable: {
97
- name: 'isSearchable',
98
- description: 'Rend le champ du select cherchable',
99
- control: { type: 'boolean' },
100
- type: { name: 'boolean', required: false },
101
- table: {
102
- type: { summary: 'boolean' },
103
- defaultValue: { summary: false },
104
- },
105
- },
106
- screenReaderOnly: {
107
- name: 'screenReaderOnly',
108
- description: "Permet de rendre le label lisible uniquement par les lecteurs d'écran",
109
- control: { type: 'boolean' },
110
- type: { name: 'boolean', required: false },
111
- table: {
112
- type: { summary: 'boolean' },
113
- defaultValue: { summary: false },
114
- },
115
- },
116
- placeholder: {
117
- name: 'placeholder',
118
- description: "Placeholder du select. Il sert aussi de label pour l'option par défaut",
119
- type: { name: 'string', required: true },
120
- table: {
121
- type: { summary: 'string' },
122
- },
123
- },
124
- hideDefaultOption: {
125
- name: 'hideDefaultOption',
126
- description: "Cache l'option par défaut du select",
127
- type: { name: 'boolean', required: false },
128
- table: {
129
- type: { summary: 'boolean' },
130
- defaultValue: { summary: false },
131
- },
132
- },
133
- searchLabel: {
134
- name: 'searchLabel',
135
- description:
136
- 'Label de la recherche dans le menu déroulant du select. **⚠️ Obligatoire uniquement si le `isSearchable` est à true. ⚠️**',
137
- type: { name: 'string', required: false },
138
- table: {
139
- type: { summary: 'string' },
140
- },
141
- },
142
- searchPlaceholder: {
143
- name: 'searchPlaceholder',
144
- description:
145
- 'Placeholder de la recherche dans le menu déroulant du select. **⚠️ Obligatoire uniquement si le `isSearchable` est à true. ⚠️**',
146
- type: { name: 'string', required: false },
147
- table: {
148
- type: { summary: 'string' },
149
- },
150
- },
151
- emptySearchMessage: {
152
- name: 'emptySearchMessage',
153
- description:
154
- "Message affiché si la recherche dans le select ne retourne pas d'options. **⚠️ Obligatoire uniquement si le `isSearchable` est à true. ⚠️**",
155
- type: { name: 'string', required: false },
156
- table: {
157
- type: { summary: 'string' },
158
- },
159
- },
160
- requiredText: {
161
- name: 'requiredText',
162
- description: "Affiche l'astérisque au label et ajoute sa signification",
163
- type: { name: 'string', required: false },
164
- table: {
165
- type: { summary: 'string' },
166
- },
167
- },
168
- errorMessage: {
169
- name: 'errorMessage',
170
- description: 'Message affiché si une erreur survient',
171
- type: { name: 'string', required: false },
172
- table: {
173
- type: { summary: 'string' },
174
- },
175
- },
176
- categoriesPlaceholder: {
177
- name: 'categoriesPlaceholder',
178
- description:
179
- 'Pour le filtre de categories, cela rempli le contenu interne du composant, `categoriesPlaceholder` pour `isSearchable` `true`, sinon rawContent du `button`',
180
- type: { name: 'string', required: true },
181
- },
182
- categoriesLabel: {
183
- name: 'categoriesLabel',
184
- description:
185
- "Pour le composant de filtre sur les catégories, cela donne un label au champ qui sera celui vocalisé par le lecteur d'écran",
186
- type: { name: 'string', required: true },
187
- },
188
- };