@1024pix/pix-ui 39.0.3 → 40.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.
Files changed (62) hide show
  1. package/addon/common/add-dynamic-style-tag.js +8 -0
  2. package/addon/components/pix-filterable-and-searchable-select.hbs +11 -10
  3. package/addon/components/pix-filterable-and-searchable-select.js +30 -2
  4. package/addon/components/pix-multi-select.hbs +68 -64
  5. package/addon/components/pix-multi-select.js +9 -0
  6. package/addon/components/pix-select.hbs +6 -2
  7. package/addon/components/pix-select.js +13 -19
  8. package/addon/styles/_pix-filterable-and-searchable-select.scss +6 -1
  9. package/addon/styles/_pix-multi-select.scss +2 -2
  10. package/addon/styles/_pix-select.scss +4 -2
  11. package/addon/styles/addon.scss +1 -2
  12. package/app/stories/form.stories.js +0 -13
  13. package/app/stories/pix-multi-select.stories.js +13 -2
  14. package/app/stories/pix-select.stories.js +9 -0
  15. package/package.json +25 -20
  16. package/.buildpacks +0 -2
  17. package/.circleci/config.yml +0 -84
  18. package/.gitattributes +0 -7
  19. package/.nvmrc +0 -1
  20. package/.prettierrc.json +0 -12
  21. package/.storybook/logo.svg +0 -1
  22. package/.storybook/main.js +0 -10
  23. package/.storybook/manager.js +0 -6
  24. package/.storybook/preview.js +0 -39
  25. package/.storybook/storybook-custom-theme.js +0 -37
  26. package/.stylelintrc.json +0 -17
  27. package/CHANGELOG.md +0 -1373
  28. package/CNAME +0 -1
  29. package/addon/components/pix-dropdown.hbs +0 -101
  30. package/addon/components/pix-dropdown.js +0 -181
  31. package/addon/styles/_pix-dropdown.scss +0 -157
  32. package/app/components/pix-dropdown.js +0 -1
  33. package/app/stories/pix-dropdown.mdx +0 -57
  34. package/app/stories/pix-dropdown.stories.js +0 -193
  35. package/config/environment.js +0 -5
  36. package/docs/adr/0001-utiliser-les-balises-html-natives.md +0 -51
  37. package/docs/architecture.mdx +0 -106
  38. package/docs/assets/accessibility-storybook.png +0 -0
  39. package/docs/assets/screen-pix-storybook.png +0 -0
  40. package/docs/breaking-changes.mdx +0 -102
  41. package/docs/changelog.mdx +0 -6
  42. package/docs/colors-palette.mdx +0 -237
  43. package/docs/create-component.mdx +0 -112
  44. package/docs/design-system.mdx +0 -20
  45. package/docs/design-tokens.mdx +0 -72
  46. package/docs/good-practices-a11y.mdx +0 -43
  47. package/docs/good-practices-design.mdx +0 -62
  48. package/docs/good-practices-responsive.mdx +0 -51
  49. package/docs/good-practices-style-css.mdx +0 -40
  50. package/docs/good-practices-tests.mdx +0 -9
  51. package/docs/make-a-release.mdx +0 -45
  52. package/docs/pix-design-tokens-dev.mdx +0 -39
  53. package/docs/pull_request_template.md +0 -14
  54. package/docs/shadow.mdx +0 -25
  55. package/docs/spacing.mdx +0 -19
  56. package/docs/storybook.mdx +0 -45
  57. package/docs/test-component-without-release.mdx +0 -19
  58. package/docs/typography.mdx +0 -163
  59. package/docs/use-component.mdx +0 -90
  60. package/docs/use-install.mdx +0 -37
  61. package/scalingo.json +0 -17
  62. package/servers.conf.erb +0 -30
@@ -0,0 +1,8 @@
1
+ export function createClass(name, rules) {
2
+ var style = document.createElement('style');
3
+ style.type = 'text/css';
4
+ document.getElementsByTagName('head')[0].appendChild(style);
5
+
6
+ if (!(style.sheet || {}).insertRule) (style.styleSheet || style.sheet).addRule(name, rules);
7
+ else style.sheet.insertRule(name + '{' + rules + '}', 0);
8
+ }
@@ -1,15 +1,13 @@
1
- <div>
2
- <div class="{{if @screenReaderOnly 'screen-reader-only'}}">
3
- <label class="pix-filterable-and-searchable-select__label" for={{this.id}}>
4
- {{#if @requiredText}}
5
- <abbr class="mandatory-mark" title="{{@requiredText}}" aria-hidden="true">*</abbr>
6
- {{/if}}
7
- {{@label}}
8
- </label>
1
+ <div id={{this.mainId}} ...attributes>
2
+ <label class={{this.classLabel}} for={{this.pixSelectId}}>
3
+ {{#if @requiredText}}
4
+ <abbr class="mandatory-mark" title="{{@requiredText}}" aria-hidden="true">*</abbr>
5
+ {{/if}}
6
+ {{@label}}
9
7
  {{#if @subLabel}}
10
8
  <span class="pix-select__sub-label">{{@subLabel}}</span>
11
9
  {{/if}}
12
- </div>
10
+ </label>
13
11
  <div
14
12
  class="pix-filterable-and-searchable-select{{if
15
13
  @errorMessage
@@ -17,6 +15,7 @@
17
15
  }}"
18
16
  >
19
17
  <PixMultiSelect
18
+ id={{this.pixMultiSelectId}}
20
19
  @values={{this.selectedCategories}}
21
20
  @label={{@categoriesLabel}}
22
21
  @options={{this.categories}}
@@ -28,7 +27,8 @@
28
27
  <:default as |option|>{{option.label}}</:default>
29
28
  </PixMultiSelect>
30
29
  <PixSelect
31
- @id={{this.id}}
30
+ {{did-insert this.setSelectWidth}}
31
+ @id={{this.pixSelectId}}
32
32
  @placeholder={{@placeholder}}
33
33
  @value={{@value}}
34
34
  @options={{this.selectableOptions}}
@@ -38,6 +38,7 @@
38
38
  @screenReaderOnly={{true}}
39
39
  @hideDefaultOption={{@hideDefaultOption}}
40
40
  @className="pix-filterable-and-searchable-select__pix-select"
41
+ @isComputeWidthDisabled={{true}}
41
42
  />
42
43
  </div>
43
44
  {{#if @errorMessage}}
@@ -2,17 +2,27 @@ import Component from '@glimmer/component';
2
2
  import { tracked } from '@glimmer/tracking';
3
3
  import { action } from '@ember/object';
4
4
  import { guidFor } from '@ember/object/internals';
5
+ import { createClass } from '../common/add-dynamic-style-tag';
5
6
 
6
7
  export default class PixFilterableAndSearchableSelect extends Component {
7
8
  @tracked selectedCategories = [];
8
-
9
- id = 'pix-filterable-and-searchable-select' + guidFor(this);
9
+ mainId = 'pix-pfass-' + guidFor(this);
10
+ pixSelectId = 'pix-pfass-select-' + guidFor(this);
11
+ pixMultiSelectId = 'pix-pfass-multi-select-' + guidFor(this);
10
12
 
11
13
  @action
12
14
  selectCategories(categories) {
13
15
  this.selectedCategories = categories;
14
16
  }
15
17
 
18
+ get classLabel() {
19
+ const cssClass = ['pix-filterable-and-searchable-select__label'];
20
+
21
+ if (this.args.screenReaderOnly) cssClass.push('screen-reader-only');
22
+
23
+ return cssClass.join(' ');
24
+ }
25
+
16
26
  get categories() {
17
27
  const categoryNames = [];
18
28
  this.args.options.forEach((option) => {
@@ -45,4 +55,22 @@ export default class PixFilterableAndSearchableSelect extends Component {
45
55
 
46
56
  return selectableOptions;
47
57
  }
58
+
59
+ @action
60
+ setSelectWidth(element) {
61
+ const baseFontRemRatio = Number(
62
+ getComputedStyle(document.querySelector('html')).fontSize.match(/\d+(\.\d+)?/)[0],
63
+ );
64
+
65
+ const multiSelectWidth = document
66
+ .getElementById(this.pixMultiSelectId)
67
+ .getBoundingClientRect().width;
68
+
69
+ const selectWidth = Math.ceil(multiSelectWidth / baseFontRemRatio);
70
+
71
+ const className = `sizing-select-${this.pixSelectId}`;
72
+ createClass(`.${className}`, `width: calc(100% - ${selectWidth}rem);`);
73
+
74
+ element.className = element.className + ' ' + className;
75
+ }
48
76
  }
@@ -1,5 +1,6 @@
1
1
  <div
2
2
  class="pix-multi-select"
3
+ ...attributes
3
4
  {{on-click-outside this.hideDropDown}}
4
5
  {{on-arrow-down-up-action this.listId this.showDropDown this.isExpanded}}
5
6
  {{on-escape-action this.hideDropDown this.multiSelectId}}
@@ -11,75 +12,78 @@
11
12
  class="pix-multi-select__label{{if @screenReaderOnly ' screen-reader-only'}}"
12
13
  >{{@label}}</label>
13
14
  {{/if}}
14
- {{#if @isSearchable}}
15
- <span class="pix-multi-select-header{{if @className this.className}}">
16
- <FaIcon @icon="magnifying-glass" class="pix-multi-select-header__search-icon" />
15
+ <PopperJS @placement={{@placement}} as |reference popover|>
17
16
 
18
- <input
19
- class="pix-multi-select-header__search-input"
17
+ {{#if @isSearchable}}
18
+ <span {{reference}} class={{this.headerClassName}}>
19
+ <FaIcon @icon="magnifying-glass" class="pix-multi-select-header__search-icon" />
20
+
21
+ <input
22
+ class="pix-multi-select-header__search-input"
23
+ id={{this.multiSelectId}}
24
+ type="text"
25
+ name={{this.multiSelectId}}
26
+ placeholder={{this.placeholder}}
27
+ autocomplete="off"
28
+ {{on "input" this.updateSearch}}
29
+ {{on "click" this.toggleDropDown}}
30
+ aria-expanded={{this.isAriaExpanded}}
31
+ aria-controls={{this.listId}}
32
+ aria-haspopup="menu"
33
+ />
34
+ </span>
35
+ {{else}}
36
+ <button
37
+ {{reference}}
20
38
  id={{this.multiSelectId}}
21
- type="text"
22
- name={{this.multiSelectId}}
23
- placeholder={{this.placeholder}}
24
- autocomplete="off"
25
- {{on "input" this.updateSearch}}
26
- {{on "click" this.toggleDropDown}}
39
+ type="button"
27
40
  aria-expanded={{this.isAriaExpanded}}
28
41
  aria-controls={{this.listId}}
29
42
  aria-haspopup="menu"
30
- ...attributes
31
- />
32
- </span>
33
- {{else}}
34
- <button
35
- id={{this.multiSelectId}}
36
- type="button"
37
- aria-expanded={{this.isAriaExpanded}}
38
- aria-controls={{this.listId}}
39
- aria-haspopup="menu"
40
- class="pix-multi-select-header{{if @className this.className}}"
41
- {{on "click" this.toggleDropDown}}
42
- ...attributes
43
+ class={{this.headerClassName}}
44
+ {{on "click" this.toggleDropDown}}
45
+ >
46
+ {{#if (has-block "placeholder")}}
47
+ {{yield to="placeholder"}}
48
+ {{else if @placeholder}}
49
+ {{this.placeholder}}
50
+ {{/if}}
51
+ <FaIcon
52
+ class="pix-multi-select-header__dropdown-icon
53
+ {{if this.isExpanded ' pix-multi-select-header__dropdown-icon--expand'}}"
54
+ @icon={{if this.isExpanded "chevron-up" "chevron-down"}}
55
+ />
56
+ </button>
57
+ {{/if}}
58
+
59
+ <ul
60
+ {{popover}}
61
+ class="pix-multi-select-list {{unless this.isExpanded 'pix-multi-select-list--hidden'}}"
62
+ id={{this.listId}}
63
+ role="menu"
43
64
  >
44
- {{#if (has-block "placeholder")}}
45
- {{yield to="placeholder"}}
46
- {{else if @placeholder}}
47
- {{this.placeholder}}
65
+ {{#if (gt this.results.length 0)}}
66
+ {{#each this.results as |option|}}
67
+ <li class="pix-multi-select-list__item" role="menuitem">
68
+ <PixCheckbox
69
+ @id={{concat this.multiSelectId "-" option.value}}
70
+ @checked={{option.checked}}
71
+ @labelSize="small"
72
+ @class="pix-multi-select-list__item-label"
73
+ value={{option.value}}
74
+ {{on "change" this.onSelect}}
75
+ {{on-enter-action this.hideDropDown this.multiSelectId}}
76
+ tabindex={{if this.isExpanded "0" "-1"}}
77
+ >
78
+ {{yield option}}
79
+ </PixCheckbox>
80
+ </li>
81
+ {{/each}}
82
+ {{else}}
83
+ <li
84
+ class="pix-multi-select-list__item pix-multi-select-list__item--no-result"
85
+ >{{@emptyMessage}}</li>
48
86
  {{/if}}
49
- <FaIcon
50
- class="pix-multi-select-header__dropdown-icon
51
- {{if this.isExpanded ' pix-multi-select-header__dropdown-icon--expand'}}"
52
- @icon={{if this.isExpanded "chevron-up" "chevron-down"}}
53
- />
54
- </button>
55
- {{/if}}
56
-
57
- <ul
58
- class="pix-multi-select-list {{unless this.isExpanded 'pix-multi-select-list--hidden'}}"
59
- id={{this.listId}}
60
- role="menu"
61
- >
62
- {{#if (gt this.results.length 0)}}
63
- {{#each this.results as |option|}}
64
- <li class="pix-multi-select-list__item" role="menuitem">
65
- <PixCheckbox
66
- @id={{concat this.multiSelectId "-" option.value}}
67
- @checked={{option.checked}}
68
- @labelSize="small"
69
- @class="pix-multi-select-list__item-label"
70
- value={{option.value}}
71
- {{on "change" this.onSelect}}
72
- {{on-enter-action this.hideDropDown this.multiSelectId}}
73
- tabindex={{if this.isExpanded "0" "-1"}}
74
- >
75
- {{yield option}}
76
- </PixCheckbox>
77
- </li>
78
- {{/each}}
79
- {{else}}
80
- <li
81
- class="pix-multi-select-list__item pix-multi-select-list__item--no-result"
82
- >{{@emptyMessage}}</li>
83
- {{/if}}
84
- </ul>
87
+ </ul>
88
+ </PopperJS>
85
89
  </div>
@@ -33,6 +33,15 @@ export default class PixMultiSelect extends Component {
33
33
  this.options = [...(this.args.options || [])];
34
34
  }
35
35
 
36
+ get headerClassName() {
37
+ const classes = ['pix-multi-select-header'];
38
+ if (this.args.className) {
39
+ classes.push(this.args.className);
40
+ }
41
+
42
+ return classes.join(' ');
43
+ }
44
+
36
45
  get multiSelectId() {
37
46
  if (this.args.id) return this.args.id;
38
47
  return 'select-' + guidFor(this);
@@ -115,7 +115,9 @@
115
115
  >
116
116
  {{option.label}}
117
117
 
118
- <FaIcon @icon="check" />
118
+ {{#if (eq option.value @value)}}
119
+ <FaIcon @icon="check" />
120
+ {{/if}}
119
121
  </li>
120
122
  {{/each}}
121
123
  </ul>
@@ -136,7 +138,9 @@
136
138
  >
137
139
  {{option.label}}
138
140
 
139
- <FaIcon @icon="check" />
141
+ {{#if (eq option.value @value)}}
142
+ <FaIcon @icon="check" />
143
+ {{/if}}
140
144
  </li>
141
145
  {{/each}}
142
146
  {{/if}}
@@ -2,6 +2,7 @@ import Component from '@glimmer/component';
2
2
  import { tracked } from '@glimmer/tracking';
3
3
  import { action } from '@ember/object';
4
4
  import { guidFor } from '@ember/object/internals';
5
+ import { createClass } from '../common/add-dynamic-style-tag';
5
6
 
6
7
  export default class PixSelect extends Component {
7
8
  @tracked isExpanded = false;
@@ -162,27 +163,20 @@ export default class PixSelect extends Component {
162
163
 
163
164
  @action
164
165
  setSelectWidth() {
165
- const baseFontRemRatio = Number(
166
- getComputedStyle(document.querySelector('html')).fontSize.match(/\d+(\.\d+)?/)[0],
167
- );
168
- const checkIconWidth = 1.125 * baseFontRemRatio;
169
- const listWidth = document.getElementById(this.listId).getBoundingClientRect().width;
170
- const selectWidth = (listWidth + checkIconWidth) / baseFontRemRatio;
171
-
172
- const className = `sizing-select-${this.selectId}`;
173
- this.createClass(`.${className}`, `width: ${selectWidth}rem;`);
166
+ if (!this.args.isComputeWidthDisabled) {
167
+ const baseFontRemRatio = Number(
168
+ getComputedStyle(document.querySelector('html')).fontSize.match(/\d+(\.\d+)?/)[0],
169
+ );
170
+ const checkIconWidth = 1.125 * baseFontRemRatio;
171
+ const listWidth = document.getElementById(this.listId).getBoundingClientRect().width;
172
+ const selectWidth = (listWidth + checkIconWidth) / baseFontRemRatio;
174
173
 
175
- const element = document.getElementById(`container-${this.selectId}`);
174
+ const className = `sizing-select-${this.selectId}`;
175
+ createClass(`.${className}`, `width: ${selectWidth}rem;`);
176
176
 
177
- element.className = element.className + ' ' + className;
178
- }
177
+ const element = document.getElementById(`container-${this.selectId}`);
179
178
 
180
- createClass(name, rules) {
181
- var style = document.createElement('style');
182
- style.type = 'text/css';
183
- document.getElementsByTagName('head')[0].appendChild(style);
184
-
185
- if (!(style.sheet || {}).insertRule) (style.styleSheet || style.sheet).addRule(name, rules);
186
- else style.sheet.insertRule(name + '{' + rules + '}', 0);
179
+ element.className = element.className + ' ' + className;
180
+ }
187
181
  }
188
182
  }
@@ -1,6 +1,6 @@
1
1
  .pix-filterable-and-searchable-select {
2
2
  display: flex;
3
- width: fit-content;
3
+ max-width: 100%;
4
4
  border: 1px $pix-neutral-45 solid;
5
5
  border-radius: 4px;
6
6
 
@@ -30,6 +30,10 @@
30
30
  @include errorMessage();
31
31
  }
32
32
 
33
+ .pix-select {
34
+ flex: 1 1 0%;
35
+ }
36
+
33
37
  .pix-multi-select {
34
38
  margin-right: 2px;
35
39
 
@@ -54,6 +58,7 @@
54
58
  }
55
59
 
56
60
  &__pix-select {
61
+ width: 100%;
57
62
  border-radius: 0 4px 4px 0;
58
63
  }
59
64
  }
@@ -67,8 +67,8 @@
67
67
  .pix-multi-select-list {
68
68
  position: absolute;
69
69
  z-index: 200;
70
- width: 100%;
71
- max-height: 200px;
70
+ min-width: 100%;
71
+ max-height: 12.5rem;
72
72
  margin: 0;
73
73
  margin-top: $pix-spacing-xxs;
74
74
  padding: 0;
@@ -13,7 +13,8 @@
13
13
  &__dropdown {
14
14
  position: absolute;
15
15
  z-index: 200;
16
- width: inherit;
16
+ width: 100%;
17
+ min-width: fit-content;
17
18
  max-height: 12.5rem;
18
19
  margin-top: $pix-spacing-xxs;
19
20
  padding: 0;
@@ -84,6 +85,7 @@
84
85
  .pix-select-button {
85
86
  position: relative;
86
87
  display: flex;
88
+ gap: $pix-spacing-s;
87
89
  align-items: center;
88
90
  justify-content: space-between;
89
91
  width: 100%;
@@ -118,7 +120,6 @@
118
120
  &__dropdown-icon {
119
121
  @extend %pix-body-s;
120
122
 
121
- margin-left: $pix-spacing-xs;
122
123
  color: $pix-neutral-60;
123
124
  pointer-events: none;
124
125
  }
@@ -143,6 +144,7 @@
143
144
  @extend %pix-body-s;
144
145
 
145
146
  display: flex;
147
+ gap: $pix-spacing-m;
146
148
  justify-content: space-between;
147
149
  padding: $pix-spacing-xs $pix-spacing-m;
148
150
  color: $pix-neutral-70;
@@ -26,7 +26,6 @@
26
26
  @import 'pix-sidebar';
27
27
  @import 'pix-input-code';
28
28
  @import 'pix-selectable-tag';
29
- @import 'pix-dropdown';
30
29
  @import 'pix-pagination';
31
30
  @import 'pix-checkbox';
32
31
  @import 'pix-toggle';
@@ -35,4 +34,4 @@
35
34
  @import 'pix-search-input';
36
35
 
37
36
  // at the end so it can override it's children scss
38
- @import 'pix-filterable-and-searchable-select';
37
+ @import 'pix-filterable-and-searchable-select';
@@ -57,19 +57,6 @@ export const form = (args) => {
57
57
  />
58
58
  <br />
59
59
 
60
- <PixDropdown
61
- @id='form__searchable-pix-dropdown'
62
- @options={{this.selectOptions}}
63
- @placeholder='Choisir votre fruit'
64
- @isSearchable={{true}}
65
- @searchPlaceholder='Rechercher'
66
- @label='Votre fruit préféré est : '
67
- @clearLabel='Supprimer la sélection'
68
- @expandLabel='Ouvrir la liste'
69
- @collapseLabel='Réduire la liste'
70
- />
71
- <br />
72
-
73
60
  <PixTextarea
74
61
  @id='form__pix-textarea'
75
62
  @value=''
@@ -92,14 +92,25 @@ export default {
92
92
  type: { name: 'boolean', required: false },
93
93
  table: { defaultValue: { summary: false } },
94
94
  },
95
- className: {
96
- name: 'className',
95
+ headerClassName: {
96
+ name: 'headerClassName',
97
97
  description: 'Cette classe css permet de surcharger le css par défaut du composant.',
98
98
  type: { name: 'string', required: false },
99
99
  table: {
100
100
  type: { summary: 'string' },
101
101
  },
102
102
  },
103
+ placement: {
104
+ name: 'placement',
105
+ description:
106
+ "Permet de placer la dropdown du select par rapport à son bouton. Par défaut, cela s'adapte tout seul.",
107
+ type: { name: 'string', required: false },
108
+ options: ['bottom', 'top', 'left', 'right'],
109
+ table: {
110
+ type: { summary: 'string' },
111
+ defaultValue: { summary: null },
112
+ },
113
+ },
103
114
  },
104
115
  };
105
116
 
@@ -169,6 +169,15 @@ export default {
169
169
  defaultValue: { summary: null },
170
170
  },
171
171
  },
172
+ isComputeWidthDisabled: {
173
+ name: 'isComputeWidthDisabled',
174
+ description:
175
+ 'Permet de ne pas calculer la width du select par rapport à la taille maximum de la dropdown',
176
+ type: { name: 'boolean', required: false },
177
+ table: {
178
+ type: { summary: false },
179
+ },
180
+ },
172
181
  },
173
182
  };
174
183
 
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@1024pix/pix-ui",
3
- "version": "39.0.3",
3
+ "version": "40.1.0",
4
4
  "description": "Pix-UI is the implementation of Pix design principles and guidelines for its products.",
5
5
  "keywords": [
6
6
  "ember-addon"
@@ -8,7 +8,7 @@
8
8
  "license": "MIT",
9
9
  "author": "GIP Pix",
10
10
  "engines": {
11
- "node": "^16.17 || ^18"
11
+ "node": "^16.17 || ^18 || ^20"
12
12
  },
13
13
  "ember": {
14
14
  "edition": "octane"
@@ -44,21 +44,21 @@
44
44
  "test": "ember test",
45
45
  "test:ember": "ember test",
46
46
  "test:ember-compatibility": "ember try:each",
47
- "chromatic": "npx chromatic --project-token=$CHROMATIC_PROJECT_TOKEN"
47
+ "chromatic": "npx chromatic --project-token=$CHROMATIC_PROJECT_TOKEN --only-changed"
48
48
  },
49
49
  "dependencies": {
50
50
  "@formatjs/intl": "^2.5.1",
51
51
  "ember-auto-import": "^2.5.0",
52
- "ember-cli-babel": "^7.26.8",
52
+ "ember-cli-babel": "^8.0.0",
53
53
  "ember-cli-htmlbars": "^6.1.1",
54
54
  "ember-cli-sass": "^11.0.1",
55
55
  "ember-click-outside": "^6.0.1",
56
56
  "ember-popperjs": "^3.0.0",
57
- "ember-truth-helpers": "^3.1.1",
57
+ "ember-truth-helpers": "^4.0.0",
58
58
  "lodash.debounce": "^4.0.8"
59
59
  },
60
60
  "devDependencies": {
61
- "@1024pix/ember-testing-library": "^0.7.0",
61
+ "@1024pix/ember-testing-library": "^0.8.0",
62
62
  "@1024pix/eslint-config": "^1.0.3",
63
63
  "@1024pix/storybook-ember": "^7.1.1",
64
64
  "@1024pix/stylelint-config": "^4.0.1",
@@ -75,17 +75,17 @@
75
75
  "@fortawesome/free-solid-svg-icons": "^6.2.1",
76
76
  "@glimmer/component": "^1.1.2",
77
77
  "@glimmer/tracking": "^1.1.2",
78
- "@storybook/addon-a11y": "^7.1.0",
79
- "@storybook/addon-controls": "^7.1.0",
80
- "@storybook/addon-docs": "^7.1.0",
81
- "@storybook/addon-essentials": "^7.1.0",
82
- "@storybook/addon-mdx-gfm": "^7.1.0",
83
- "@storybook/addons": "^7.1.0",
84
- "@storybook/blocks": "^7.1.0",
85
- "@storybook/builder-webpack5": "^7.1.0",
78
+ "@storybook/addon-a11y": "7.1.0",
79
+ "@storybook/addon-controls": "7.1.0",
80
+ "@storybook/addon-docs": "7.1.0",
81
+ "@storybook/addon-essentials": "7.1.0",
82
+ "@storybook/addon-mdx-gfm": "7.1.0",
83
+ "@storybook/addons": "7.1.0",
84
+ "@storybook/blocks": "7.1.0",
85
+ "@storybook/builder-webpack5": "7.1.0",
86
86
  "@storybook/ember-cli-storybook": "^0.6.0",
87
87
  "@storybook/storybook-deployer": "^2.8.16",
88
- "@storybook/theming": "^7.1.0",
88
+ "@storybook/theming": "7.1.0",
89
89
  "@testing-library/dom": "^8.20.0",
90
90
  "@testing-library/user-event": "^14.4.3",
91
91
  "chromatic": "^6.17.3",
@@ -98,9 +98,9 @@
98
98
  "ember-disable-prototype-extensions": "^1.1.3",
99
99
  "ember-export-application-global": "^2.0.1",
100
100
  "ember-load-initializers": "^2.1.2",
101
- "ember-page-title": "^7.0.0",
102
- "ember-qunit": "^7.0.0",
103
- "ember-resolver": "^9.0.0",
101
+ "ember-page-title": "^8.0.0",
102
+ "ember-qunit": "^8.0.0",
103
+ "ember-resolver": "^11.0.0",
104
104
  "ember-sinon": "^5.0.0",
105
105
  "ember-source": "^4.0.1",
106
106
  "ember-source-channel-url": "^3.0.0",
@@ -108,7 +108,7 @@
108
108
  "ember-template-lint-plugin-prettier": "^5.0.0",
109
109
  "ember-try": "^3.0.0-beta",
110
110
  "eslint": "^8.28.0",
111
- "eslint-config-prettier": "^8.5.0",
111
+ "eslint-config-prettier": "^9.0.0",
112
112
  "eslint-plugin-ember": "^11.2.0",
113
113
  "eslint-plugin-node": "^11.1.0",
114
114
  "eslint-plugin-prettier": "^5.0.0",
@@ -125,7 +125,7 @@
125
125
  "storybook": "^7.1.0",
126
126
  "stylelint": "^15.0.0",
127
127
  "stylelint-config-rational-order": "^0.1.2",
128
- "stylelint-config-standard-scss": "^10.0.0",
128
+ "stylelint-config-standard-scss": "^11.0.0",
129
129
  "webpack": "^5.75.0"
130
130
  },
131
131
  "bugs": {
@@ -136,6 +136,11 @@
136
136
  "ember-addon": {
137
137
  "configPath": "tests/dummy/config"
138
138
  },
139
+ "files": [
140
+ "addon/",
141
+ "app/",
142
+ "public/"
143
+ ],
139
144
  "storybook-deployer": {
140
145
  "commitMessage": "Deploy Storybook [skip ci]"
141
146
  }
package/.buildpacks DELETED
@@ -1,2 +0,0 @@
1
- https://github.com/Scalingo/nodejs-buildpack
2
- https://github.com/Scalingo/nginx-buildpack