@mgdis/mg-components 6.16.0 → 6.18.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 (160) hide show
  1. package/dist/cjs/{index-T3-qWqFE.js → index-DCZEYvlH.js} +51 -28
  2. package/dist/cjs/{index-YM1EJx9X.js → index-TUElr4Wv.js} +10 -10
  3. package/dist/cjs/loader.cjs.js +2 -2
  4. package/dist/cjs/mg-action-more_37.cjs.entry.js +443 -228
  5. package/dist/cjs/mg-alert.cjs.entry.js +3 -3
  6. package/dist/cjs/mg-components.cjs.js +3 -3
  7. package/dist/cjs/mg-fieldset.cjs.entry.js +141 -0
  8. package/dist/cjs/mg-input-combobox.cjs.entry.js +73 -57
  9. package/dist/cjs/mg-input-rich-text-editor.cjs.entry.js +36 -23
  10. package/dist/cjs/{mg-input.conf-WTsvDfpC.js → mg-input.conf-HYIzRsy7.js} +5 -0
  11. package/dist/cjs/mg-loader.cjs.entry.js +3 -3
  12. package/dist/cjs/mg-progress.cjs.entry.js +2 -2
  13. package/dist/collection/collection-manifest.json +2 -1
  14. package/dist/collection/components/atoms/internals/mg-character-left/mg-character-left.js +5 -5
  15. package/dist/collection/components/atoms/internals/mg-input-title/mg-input-title.js +7 -7
  16. package/dist/collection/components/atoms/mg-badge/mg-badge.js +6 -6
  17. package/dist/collection/components/atoms/mg-button/mg-button.js +13 -13
  18. package/dist/collection/components/atoms/mg-card/mg-card.js +2 -2
  19. package/dist/collection/components/atoms/mg-divider/mg-divider.js +1 -1
  20. package/dist/collection/components/atoms/mg-icon/mg-icon.conf.js +1 -1
  21. package/dist/collection/components/atoms/mg-icon/mg-icon.js +32 -26
  22. package/dist/collection/components/atoms/mg-tag/mg-tag.js +3 -3
  23. package/dist/collection/components/atoms/mg-tooltip/mg-tooltip-content/mg-tooltip-content.js +2 -2
  24. package/dist/collection/components/atoms/mg-tooltip/mg-tooltip.js +6 -6
  25. package/dist/collection/components/molecules/inputs/mg-input/mg-input.conf.js +4 -0
  26. package/dist/collection/components/molecules/inputs/mg-input/mg-input.js +193 -33
  27. package/dist/collection/components/molecules/inputs/mg-input-checkbox/mg-input-checkbox-paginated/mg-input-checkbox-paginated.js +7 -9
  28. package/dist/collection/components/molecules/inputs/mg-input-checkbox/mg-input-checkbox.js +65 -46
  29. package/dist/collection/components/molecules/inputs/mg-input-combobox/mg-input-combobox.js +106 -86
  30. package/dist/collection/components/molecules/inputs/mg-input-date/mg-input-date.js +67 -65
  31. package/dist/collection/components/molecules/inputs/mg-input-numeric/mg-input-numeric.js +71 -66
  32. package/dist/collection/components/molecules/inputs/mg-input-password/mg-input-password.js +56 -38
  33. package/dist/collection/components/molecules/inputs/mg-input-radio/mg-input-radio.js +53 -35
  34. package/dist/collection/components/molecules/inputs/mg-input-rich-text-editor/mg-input-rich-text-editor.js +66 -47
  35. package/dist/collection/components/molecules/inputs/mg-input-select/mg-input-select.js +58 -40
  36. package/dist/collection/components/molecules/inputs/mg-input-text/mg-input-text.js +77 -59
  37. package/dist/collection/components/molecules/inputs/mg-input-textarea/mg-input-textarea.js +63 -45
  38. package/dist/collection/components/molecules/inputs/mg-input-toggle/mg-input-toggle.js +54 -30
  39. package/dist/collection/components/molecules/internals/mg-item-more/mg-item-more.js +2 -4
  40. package/dist/collection/components/molecules/menus/mg-menu/mg-menu.js +9 -6
  41. package/dist/collection/components/molecules/menus/mg-menu-item/mg-menu-item.js +7 -7
  42. package/dist/collection/components/molecules/mg-action-more/mg-action-more.js +2 -5
  43. package/dist/collection/components/molecules/mg-alert/mg-alert.js +5 -5
  44. package/dist/collection/components/molecules/mg-details/mg-details.js +7 -7
  45. package/dist/collection/components/molecules/mg-fieldset/mg-fieldset.js +404 -0
  46. package/dist/collection/components/molecules/mg-form/mg-form.js +26 -17
  47. package/dist/collection/components/molecules/mg-illustrated-message/mg-illustrated-message.js +3 -3
  48. package/dist/collection/components/molecules/mg-loader/mg-loader.js +4 -4
  49. package/dist/collection/components/molecules/mg-message/mg-message.js +4 -4
  50. package/dist/collection/components/molecules/mg-modal/mg-modal.js +8 -8
  51. package/dist/collection/components/molecules/mg-pagination/mg-pagination.js +7 -8
  52. package/dist/collection/components/molecules/mg-panel/mg-panel.js +53 -22
  53. package/dist/collection/components/molecules/mg-popover/mg-popover-content/mg-popover-content.js +2 -2
  54. package/dist/collection/components/molecules/mg-popover/mg-popover.js +7 -7
  55. package/dist/collection/components/molecules/mg-progress/mg-progress.js +7 -7
  56. package/dist/collection/components/molecules/mg-skip-links/mg-skip-links.js +1 -2
  57. package/dist/collection/components/molecules/mg-table/mg-table.js +2 -3
  58. package/dist/collection/components/molecules/mg-tabs/mg-tabs.js +7 -8
  59. package/dist/collection/locales/en/messages.json +5 -5
  60. package/dist/collection/locales/fr/messages.json +5 -5
  61. package/dist/components/index3.js +10 -10
  62. package/dist/components/mg-action-more.js +5 -3
  63. package/dist/components/mg-alert.js +5 -3
  64. package/dist/components/mg-badge2.js +4 -2
  65. package/dist/components/mg-button2.js +4 -2
  66. package/dist/components/mg-card2.js +4 -2
  67. package/dist/components/mg-character-left2.js +4 -2
  68. package/dist/components/mg-details.js +5 -3
  69. package/dist/components/mg-divider2.js +4 -2
  70. package/dist/components/mg-fieldset.d.ts +11 -0
  71. package/dist/components/mg-fieldset.js +209 -0
  72. package/dist/components/mg-form.js +8 -5
  73. package/dist/components/mg-icon2.js +29 -21
  74. package/dist/components/mg-illustrated-message.js +5 -3
  75. package/dist/components/mg-input-checkbox-paginated2.js +6 -6
  76. package/dist/components/mg-input-checkbox.js +32 -17
  77. package/dist/components/mg-input-combobox.js +75 -57
  78. package/dist/components/mg-input-date.js +39 -42
  79. package/dist/components/mg-input-numeric.js +30 -30
  80. package/dist/components/mg-input-password.js +26 -13
  81. package/dist/components/mg-input-radio.js +27 -13
  82. package/dist/components/mg-input-rich-text-editor.js +37 -22
  83. package/dist/components/mg-input-select2.js +28 -14
  84. package/dist/components/mg-input-text2.js +40 -26
  85. package/dist/components/mg-input-textarea.js +27 -14
  86. package/dist/components/mg-input-title2.js +4 -2
  87. package/dist/components/mg-input-toggle.js +39 -12
  88. package/dist/components/mg-input2.js +121 -20
  89. package/dist/components/mg-item-more2.js +13 -5
  90. package/dist/components/mg-loader2.js +5 -3
  91. package/dist/components/mg-menu-item2.js +4 -2
  92. package/dist/components/mg-message2.js +6 -4
  93. package/dist/components/mg-modal.js +6 -4
  94. package/dist/components/mg-pagination.js +4 -2
  95. package/dist/components/mg-panel.js +40 -9
  96. package/dist/components/mg-popover-content2.js +5 -3
  97. package/dist/components/mg-popover2.js +5 -3
  98. package/dist/components/mg-progress.js +5 -3
  99. package/dist/components/mg-skip-links.js +5 -3
  100. package/dist/components/mg-table.js +4 -2
  101. package/dist/components/mg-tabs2.js +5 -3
  102. package/dist/components/mg-tag.js +4 -2
  103. package/dist/components/mg-tooltip-content2.js +4 -2
  104. package/dist/components/mg-tooltip2.js +4 -2
  105. package/dist/esm/{index-WtiuOkLj.js → index-C7xjtdiw.js} +1 -1
  106. package/dist/esm/{index-Bab8_u8S.js → index-CNX6lq0x.js} +10 -10
  107. package/dist/esm/{index-JHj_9FSs.js → index-T6kOJXP1.js} +51 -28
  108. package/dist/esm/loader.js +3 -3
  109. package/dist/esm/mg-action-more_37.entry.js +444 -229
  110. package/dist/esm/mg-alert.entry.js +4 -4
  111. package/dist/esm/mg-components.js +4 -4
  112. package/dist/esm/mg-fieldset.entry.js +139 -0
  113. package/dist/esm/mg-input-combobox.entry.js +74 -58
  114. package/dist/esm/mg-input-rich-text-editor.entry.js +37 -24
  115. package/dist/esm/{mg-input.conf-CNgv8hc5.js → mg-input.conf-D9V2v4n2.js} +5 -1
  116. package/dist/esm/mg-loader.entry.js +4 -4
  117. package/dist/esm/mg-progress.entry.js +3 -3
  118. package/dist/mg-components/locales/en/messages.json +5 -5
  119. package/dist/mg-components/locales/fr/messages.json +5 -5
  120. package/dist/mg-components/mg-components.esm.js +1 -1
  121. package/dist/mg-components/p-2bab89c2.entry.js +1 -0
  122. package/dist/mg-components/{p-658f828c.entry.js → p-5abc77cd.entry.js} +1 -1
  123. package/dist/mg-components/p-7d2e43b2.entry.js +1 -0
  124. package/dist/mg-components/{p-c85b5d10.entry.js → p-92e5e5a6.entry.js} +1 -1
  125. package/dist/mg-components/{p-42a90251.entry.js → p-952288bd.entry.js} +1 -1
  126. package/dist/mg-components/{p-WtiuOkLj.js → p-C7xjtdiw.js} +1 -1
  127. package/dist/mg-components/p-CNX6lq0x.js +1 -0
  128. package/dist/mg-components/p-D9V2v4n2.js +1 -0
  129. package/dist/mg-components/p-T6kOJXP1.js +2 -0
  130. package/dist/mg-components/p-f2cddd52.entry.js +1 -0
  131. package/dist/mg-components/{p-82455ac7.entry.js → p-f6afaeb8.entry.js} +1 -1
  132. package/dist/types/components/atoms/mg-icon/mg-icon.conf.d.ts +1 -1
  133. package/dist/types/components/atoms/mg-icon/mg-icon.d.ts +0 -5
  134. package/dist/types/components/molecules/inputs/mg-input/mg-input.conf.d.ts +5 -0
  135. package/dist/types/components/molecules/inputs/mg-input/mg-input.d.ts +32 -1
  136. package/dist/types/components/molecules/inputs/mg-input-checkbox/mg-input-checkbox.d.ts +4 -3
  137. package/dist/types/components/molecules/inputs/mg-input-combobox/mg-input-combobox.d.ts +4 -2
  138. package/dist/types/components/molecules/inputs/mg-input-date/mg-input-date.d.ts +4 -2
  139. package/dist/types/components/molecules/inputs/mg-input-numeric/mg-input-numeric.d.ts +4 -2
  140. package/dist/types/components/molecules/inputs/mg-input-password/mg-input-password.d.ts +4 -2
  141. package/dist/types/components/molecules/inputs/mg-input-radio/mg-input-radio.d.ts +4 -2
  142. package/dist/types/components/molecules/inputs/mg-input-rich-text-editor/mg-input-rich-text-editor.d.ts +4 -2
  143. package/dist/types/components/molecules/inputs/mg-input-select/mg-input-select.d.ts +4 -2
  144. package/dist/types/components/molecules/inputs/mg-input-text/mg-input-text.d.ts +4 -2
  145. package/dist/types/components/molecules/inputs/mg-input-textarea/mg-input-textarea.d.ts +4 -2
  146. package/dist/types/components/molecules/inputs/mg-input-toggle/mg-input-toggle.d.ts +4 -2
  147. package/dist/types/components/molecules/mg-fieldset/mg-fieldset.d.ts +105 -0
  148. package/dist/types/components/molecules/mg-form/mg-form.d.ts +1 -1
  149. package/dist/types/components/molecules/mg-panel/mg-panel.d.ts +8 -1
  150. package/dist/types/components.d.ts +168 -18
  151. package/dist/types/stencil-public-runtime.d.ts +39 -2
  152. package/dist/types/types/index.d.ts +1 -1
  153. package/ide/intellij/web-types.json +289 -181
  154. package/ide/vscode/html-custom-data.json +259 -18
  155. package/package.json +23 -23
  156. package/dist/mg-components/p-54156253.entry.js +0 -1
  157. package/dist/mg-components/p-Bab8_u8S.js +0 -1
  158. package/dist/mg-components/p-CNgv8hc5.js +0 -1
  159. package/dist/mg-components/p-JHj_9FSs.js +0 -2
  160. package/dist/mg-components/p-abbd151c.entry.js +0 -1
@@ -1,6 +1,6 @@
1
1
  import { h, Host } from "@stencil/core";
2
2
  import { isValideID, isValidString, toString } from "@mgdis/core-ui-helpers/dist/utils";
3
- import { tooltipPositions, classFieldset, classReadonly, classDisabled, classVerticalList } from "./mg-input.conf";
3
+ import { tooltipPositions, classFieldset, classReadonly, classDisabled, classVerticalList, labelHeadings } from "./mg-input.conf";
4
4
  /**
5
5
  * @slot - Input content
6
6
  */
@@ -13,6 +13,9 @@ export class MgInput {
13
13
  this.classInput = 'mg-c-input';
14
14
  this.classHasError = 'mg-c-input--has-error';
15
15
  this.classLabelOnTop = 'mg-c-input--label-on-top';
16
+ this.classHasHeading = 'mg-c-input--has-heading';
17
+ this.classLabelBorderDisplay = 'mg-c-input--label-border-display';
18
+ this.classInputsOnBottom = 'mg-c-input--inputs-on-bottom';
16
19
  /**
17
20
  * Define if label is displayed on top
18
21
  */
@@ -21,6 +24,11 @@ export class MgInput {
21
24
  * Define if label is visible
22
25
  */
23
26
  this.labelHide = false;
27
+ /**
28
+ * Define if label border is visible
29
+ * You must pair this mode with `labelOnTop`and `fieldset` class
30
+ */
31
+ this.labelBorderDisplay = false;
24
32
  /**
25
33
  * Define tooltip position
26
34
  */
@@ -29,6 +37,10 @@ export class MgInput {
29
37
  * Define if input is required
30
38
  */
31
39
  this.required = false;
40
+ /**
41
+ * Display inputs after help-text and error message
42
+ */
43
+ this.inputsOnBottom = false;
32
44
  /**
33
45
  * Define aria-describedby ids to link with
34
46
  */
@@ -49,11 +61,44 @@ export class MgInput {
49
61
  * Element is disabled
50
62
  */
51
63
  this.isVerticalList = false;
64
+ /************
65
+ * Methods *
66
+ ************/
67
+ /**
68
+ * Update element aria-describedby
69
+ * @param element - element to update
70
+ * @param ariaDescribedbyIDs - ariaDescribedbyIDs references
71
+ */
72
+ this.updateElementAriaDescribedby = (element, ariaDescribedbyIDs) => {
73
+ if (ariaDescribedbyIDs.size > 0) {
74
+ element.setAttribute('aria-describedby', Array.from(ariaDescribedbyIDs).join(' '));
75
+ }
76
+ else {
77
+ element.removeAttribute('aria-describedby');
78
+ }
79
+ };
52
80
  /**
53
81
  * Get tooltip node
54
82
  * @returns mg-tooltip
55
83
  */
56
84
  this.renderTooltip = () => (h("mg-tooltip", { identifier: `${this.identifier}-tooltip`, message: this.tooltip }, h("mg-icon", { icon: "info-circle" })));
85
+ /**
86
+ * Get input container element
87
+ * @returns ordered elements
88
+ */
89
+ this.inputContainerElements = () => {
90
+ const elements = [
91
+ this.helptextMessageSlotElement && (h("div", { class: "mg-c-input__help-text" }, h("slot", { name: this.slotHelpText }))),
92
+ !this.isDisabled && this.errorMessage && (h("div", { class: "mg-c-input__error", "aria-live": "assertive" }, h("slot", { name: this.slotError }))),
93
+ ];
94
+ const inputSlot = (h("div", { class: "mg-c-input__input" }, h("slot", null), this.tooltip && !this.labelOnTop && (this.tooltipPosition === 'input' || this.labelHide) && this.renderTooltip()));
95
+ if (this.inputsOnBottom) {
96
+ return [...elements, inputSlot];
97
+ }
98
+ else {
99
+ return [inputSlot, ...elements];
100
+ }
101
+ };
57
102
  }
58
103
  watchIdentifier(newValue) {
59
104
  if (!isValidString(newValue)) {
@@ -80,6 +125,26 @@ export class MgInput {
80
125
  throw new Error('<mg-input> prop "labelOnTop" must not be paired with the prop "labelHide".');
81
126
  }
82
127
  }
128
+ watchlabelHeading(newValue) {
129
+ if (this.isFieldset && this.labelOnTop && labelHeadings.includes(newValue)) {
130
+ this.element.classList.add(this.classHasHeading);
131
+ }
132
+ else {
133
+ if ((!this.isFieldset && newValue !== undefined) || typeof newValue === 'string') {
134
+ throw new Error(`<mg-input> prop "labelHeading" must be used with a fieldset and be one of: ${labelHeadings.join(', ')}. Passed value: ${toString(newValue)}.`);
135
+ }
136
+ this.labelHeading = undefined;
137
+ this.element.classList.remove(this.classHasHeading);
138
+ }
139
+ }
140
+ watchLabelBorderDisplay(newValue) {
141
+ if (this.isFieldset && this.labelOnTop && newValue) {
142
+ this.element.classList.add(this.classLabelBorderDisplay);
143
+ }
144
+ else {
145
+ this.element.classList.remove(this.classLabelBorderDisplay);
146
+ }
147
+ }
83
148
  watchTooltipPosition(newValue) {
84
149
  if (!tooltipPositions.includes(newValue)) {
85
150
  throw new Error(`<mg-input> prop "tooltipPosition" must be one of: ${tooltipPositions.join(', ')}. Passed value: ${toString(newValue)}.`);
@@ -99,7 +164,7 @@ export class MgInput {
99
164
  }
100
165
  watchHelpText(newValue) {
101
166
  var _a;
102
- if (newValue && !this.isReadonly) {
167
+ if (isValidString(newValue) && !this.isReadonly) {
103
168
  this.renderHelpText();
104
169
  }
105
170
  else {
@@ -107,6 +172,14 @@ export class MgInput {
107
172
  this.helptextMessageSlotElement = undefined;
108
173
  }
109
174
  }
175
+ watchInputsOnBottom(newValue) {
176
+ if (newValue) {
177
+ this.element.classList.add(this.classInputsOnBottom);
178
+ }
179
+ else {
180
+ this.element.classList.remove(this.classInputsOnBottom);
181
+ }
182
+ }
110
183
  watchAriaDescribedbyIDs() {
111
184
  if (this.isReadonly) {
112
185
  return;
@@ -122,23 +195,26 @@ export class MgInput {
122
195
  // a11y IDs
123
196
  const ariaDescribedbyIDs = new Set(this.ariaDescribedbyIDs);
124
197
  // Help text
125
- if (this.helpText !== undefined) {
198
+ if (isValidString(this.helpText)) {
126
199
  this.renderHelpText();
127
200
  if (!ariaDescribedbyIDs.has(this.helpTextId))
128
201
  ariaDescribedbyIDs.add(this.helpTextId);
129
202
  }
130
203
  // Error Message
131
- if (this.errorMessage !== undefined) {
204
+ if (isValidString(this.errorMessage)) {
132
205
  this.renderErrorMessage();
133
206
  if (!ariaDescribedbyIDs.has(this.helpTextErrorId))
134
207
  ariaDescribedbyIDs.add(this.helpTextErrorId);
135
208
  }
136
- this.element.querySelectorAll('input,select,textarea,[role="switch"]').forEach(element => {
137
- if (ariaDescribedbyIDs.size > 0) {
138
- element.setAttribute('aria-describedby', Array.from(ariaDescribedbyIDs).join(' '));
139
- }
140
- else {
141
- element.removeAttribute('aria-describedby');
209
+ const inputs = this.element.querySelectorAll('input,select,textarea,[role="switch"]');
210
+ inputs.forEach((element) => {
211
+ this.updateElementAriaDescribedby(element, ariaDescribedbyIDs);
212
+ });
213
+ // use timeout to await for legend render for componentWillLoad hook
214
+ setTimeout(() => {
215
+ const legend = this.element.querySelector('legend');
216
+ if (legend !== null) {
217
+ this.updateElementAriaDescribedby(legend, ariaDescribedbyIDs);
142
218
  }
143
219
  });
144
220
  }
@@ -168,9 +244,6 @@ export class MgInput {
168
244
  this.renderLabel();
169
245
  }
170
246
  }
171
- /************
172
- * Methods *
173
- ************/
174
247
  /**
175
248
  * Render input label
176
249
  */
@@ -190,11 +263,21 @@ export class MgInput {
190
263
  labelSlotElement.setAttribute(attr, val);
191
264
  });
192
265
  // create label element
193
- const label = document.createElement('span');
194
- label.classList.add('mg-c-input-title__text');
195
- label.textContent = this.label;
196
- labelSlotElement.appendChild(label);
266
+ if (labelHeadings.includes(this.labelHeading)) {
267
+ let label = this.element.shadowRoot.querySelector(this.labelHeading);
268
+ if (label === null) {
269
+ label = document.createElement(this.labelHeading);
270
+ label.classList.add('mg-c-input-title__text');
271
+ labelSlotElement.appendChild(label);
272
+ }
273
+ label.textContent = this.label;
274
+ }
275
+ else {
276
+ labelSlotElement.textContent = this.label;
277
+ }
197
278
  this.element.appendChild(labelSlotElement);
279
+ // update aria-describedby
280
+ this.watchAriaDescribedbyIDs();
198
281
  }
199
282
  /**
200
283
  * Render error message
@@ -237,6 +320,9 @@ export class MgInput {
237
320
  this.watchTooltipPosition(this.tooltipPosition);
238
321
  this.watchHelpText(this.helpText);
239
322
  this.watchErrorMessage(this.errorMessage);
323
+ this.watchInputsOnBottom(this.inputsOnBottom);
324
+ this.watchlabelHeading(this.labelHeading);
325
+ this.watchLabelBorderDisplay(this.labelBorderDisplay);
240
326
  }
241
327
  /**
242
328
  * Validate slots
@@ -253,7 +339,7 @@ export class MgInput {
253
339
  */
254
340
  render() {
255
341
  const isGroup = this.isFieldset && !this.isReadonly;
256
- return (h(Host, { key: '7c4c22aaa8f8d250eafa9159a103a11e637b0cca', class: this.element.classList.toString(), role: isGroup ? 'group' : undefined, "aria-labelledby": isGroup ? `${this.identifier}-title` : undefined }, h("div", { key: '2215e7b2d96e08507579a39d8e05b3e8a3d901fb', class: { 'mg-c-input__title': true, 'mg-u-visually-hidden': this.labelHide } }, h("slot", { key: 'a4dbf4e36dd3ae5437d6dcb05d807f4faa0924b7', name: this.slotLabel }), this.tooltip && (this.tooltipPosition === 'label' || this.labelOnTop) && !this.labelHide && this.renderTooltip()), h("div", { key: '8e382a4857f469a9d6f77cad613183798df4d1e1', class: "mg-c-input__input-container" }, h("div", { key: 'f9897f90d44aab19614d4d40d77a8eb270c92847', class: "mg-c-input__input" }, h("slot", { key: 'c8d809d4ff0d0e660849825f016f9267da3a2d7e' }), this.tooltip && !this.labelOnTop && (this.tooltipPosition === 'input' || this.labelHide) && this.renderTooltip()), this.helptextMessageSlotElement && (h("div", { key: 'cebd6c083d088aebcdae6f032c6cdcf2387c3e27', class: "mg-c-input__help-text" }, h("slot", { key: '923fcc78b309d197e32522052b297ef0f58b1495', name: this.slotHelpText }))), !this.isDisabled && this.errorMessage && (h("div", { key: 'e706bff54ce21191a8c0940c60f6e99a91cfb9ec', class: "mg-c-input__error", "aria-live": "assertive" }, h("slot", { key: '6524debd3640df7b5e73ef4aa4415569eef1ecd8', name: this.slotError }))))));
342
+ return (h(Host, { key: 'fbab18280a709407c83f324127e8de6cbb05fe7c', class: this.element.classList.toString(), role: isGroup ? 'group' : undefined, "aria-labelledby": isGroup ? `${this.identifier}-title` : undefined }, h("div", { key: 'ac0924c244b9fa87d02e659a5710ee93d12a202f', class: { 'mg-c-input__title': true, 'mg-u-visually-hidden': this.labelHide } }, h("slot", { key: 'c825af33ba0a6c209d02d6487422347f7d8acfed', name: this.slotLabel }), this.tooltip && (this.tooltipPosition === 'label' || this.labelOnTop) && !this.labelHide && this.renderTooltip()), h("div", { key: '805e1eedfdea132f3ea4fd11da761810a3d7c939', class: "mg-c-input__input-container" }, this.inputContainerElements())));
257
343
  }
258
344
  static get is() { return "mg-input"; }
259
345
  static get encapsulation() { return "shadow"; }
@@ -271,7 +357,6 @@ export class MgInput {
271
357
  return {
272
358
  "identifier": {
273
359
  "type": "string",
274
- "attribute": "identifier",
275
360
  "mutable": false,
276
361
  "complexType": {
277
362
  "original": "string",
@@ -286,11 +371,11 @@ export class MgInput {
286
371
  },
287
372
  "getter": false,
288
373
  "setter": false,
289
- "reflect": false
374
+ "reflect": false,
375
+ "attribute": "identifier"
290
376
  },
291
377
  "label": {
292
378
  "type": "string",
293
- "attribute": "label",
294
379
  "mutable": false,
295
380
  "complexType": {
296
381
  "original": "string",
@@ -305,11 +390,11 @@ export class MgInput {
305
390
  },
306
391
  "getter": false,
307
392
  "setter": false,
308
- "reflect": false
393
+ "reflect": false,
394
+ "attribute": "label"
309
395
  },
310
396
  "labelOnTop": {
311
397
  "type": "boolean",
312
- "attribute": "label-on-top",
313
398
  "mutable": false,
314
399
  "complexType": {
315
400
  "original": "boolean",
@@ -325,11 +410,11 @@ export class MgInput {
325
410
  "getter": false,
326
411
  "setter": false,
327
412
  "reflect": false,
413
+ "attribute": "label-on-top",
328
414
  "defaultValue": "false"
329
415
  },
330
416
  "labelHide": {
331
417
  "type": "boolean",
332
- "attribute": "label-hide",
333
418
  "mutable": false,
334
419
  "complexType": {
335
420
  "original": "boolean",
@@ -345,11 +430,56 @@ export class MgInput {
345
430
  "getter": false,
346
431
  "setter": false,
347
432
  "reflect": false,
433
+ "attribute": "label-hide",
434
+ "defaultValue": "false"
435
+ },
436
+ "labelHeading": {
437
+ "type": "string",
438
+ "mutable": true,
439
+ "complexType": {
440
+ "original": "labelHeading",
441
+ "resolved": "\"h1\" | \"h2\" | \"h3\" | \"h4\" | \"h5\" | \"h6\"",
442
+ "references": {
443
+ "labelHeading": {
444
+ "location": "import",
445
+ "path": "./mg-input.conf",
446
+ "id": "src/components/molecules/inputs/mg-input/mg-input.conf.ts::labelHeading"
447
+ }
448
+ }
449
+ },
450
+ "required": false,
451
+ "optional": true,
452
+ "docs": {
453
+ "tags": [],
454
+ "text": "Define label heading, use to define label with associated semantic\nYou must pair this mode with `labelOnTop`and `fieldset` class"
455
+ },
456
+ "getter": false,
457
+ "setter": false,
458
+ "reflect": false,
459
+ "attribute": "label-heading"
460
+ },
461
+ "labelBorderDisplay": {
462
+ "type": "boolean",
463
+ "mutable": false,
464
+ "complexType": {
465
+ "original": "boolean",
466
+ "resolved": "boolean",
467
+ "references": {}
468
+ },
469
+ "required": false,
470
+ "optional": false,
471
+ "docs": {
472
+ "tags": [],
473
+ "text": "Define if label border is visible\nYou must pair this mode with `labelOnTop`and `fieldset` class"
474
+ },
475
+ "getter": false,
476
+ "setter": false,
477
+ "reflect": false,
478
+ "attribute": "label-border-display",
348
479
  "defaultValue": "false"
349
480
  },
350
481
  "tooltip": {
351
482
  "type": "string",
352
- "attribute": "tooltip",
353
483
  "mutable": false,
354
484
  "complexType": {
355
485
  "original": "string",
@@ -364,11 +494,11 @@ export class MgInput {
364
494
  },
365
495
  "getter": false,
366
496
  "setter": false,
367
- "reflect": false
497
+ "reflect": false,
498
+ "attribute": "tooltip"
368
499
  },
369
500
  "tooltipPosition": {
370
501
  "type": "string",
371
- "attribute": "tooltip-position",
372
502
  "mutable": false,
373
503
  "complexType": {
374
504
  "original": "TooltipPosition",
@@ -390,11 +520,11 @@ export class MgInput {
390
520
  "getter": false,
391
521
  "setter": false,
392
522
  "reflect": false,
523
+ "attribute": "tooltip-position",
393
524
  "defaultValue": "'input'"
394
525
  },
395
526
  "required": {
396
527
  "type": "boolean",
397
- "attribute": "required",
398
528
  "mutable": false,
399
529
  "complexType": {
400
530
  "original": "boolean",
@@ -410,11 +540,11 @@ export class MgInput {
410
540
  "getter": false,
411
541
  "setter": false,
412
542
  "reflect": false,
543
+ "attribute": "required",
413
544
  "defaultValue": "false"
414
545
  },
415
546
  "errorMessage": {
416
547
  "type": "string",
417
- "attribute": "error-message",
418
548
  "mutable": false,
419
549
  "complexType": {
420
550
  "original": "string",
@@ -429,11 +559,11 @@ export class MgInput {
429
559
  },
430
560
  "getter": false,
431
561
  "setter": false,
432
- "reflect": false
562
+ "reflect": false,
563
+ "attribute": "error-message"
433
564
  },
434
565
  "helpText": {
435
566
  "type": "string",
436
- "attribute": "help-text",
437
567
  "mutable": false,
438
568
  "complexType": {
439
569
  "original": "string",
@@ -448,11 +578,31 @@ export class MgInput {
448
578
  },
449
579
  "getter": false,
450
580
  "setter": false,
451
- "reflect": false
581
+ "reflect": false,
582
+ "attribute": "help-text"
583
+ },
584
+ "inputsOnBottom": {
585
+ "type": "boolean",
586
+ "mutable": false,
587
+ "complexType": {
588
+ "original": "boolean",
589
+ "resolved": "boolean",
590
+ "references": {}
591
+ },
592
+ "required": false,
593
+ "optional": true,
594
+ "docs": {
595
+ "tags": [],
596
+ "text": "Display inputs after help-text and error message"
597
+ },
598
+ "getter": false,
599
+ "setter": false,
600
+ "reflect": false,
601
+ "attribute": "inputs-on-bottom",
602
+ "defaultValue": "false"
452
603
  },
453
604
  "ariaDescribedbyIDs": {
454
605
  "type": "string",
455
- "attribute": "aria-describedby-i-ds",
456
606
  "mutable": true,
457
607
  "complexType": {
458
608
  "original": "string[] | string",
@@ -468,6 +618,7 @@ export class MgInput {
468
618
  "getter": false,
469
619
  "setter": false,
470
620
  "reflect": false,
621
+ "attribute": "aria-describedby-i-ds",
471
622
  "defaultValue": "[]"
472
623
  }
473
624
  };
@@ -494,6 +645,12 @@ export class MgInput {
494
645
  }, {
495
646
  "propName": "labelOnTop",
496
647
  "methodName": "watchLabelConfig"
648
+ }, {
649
+ "propName": "labelHeading",
650
+ "methodName": "watchlabelHeading"
651
+ }, {
652
+ "propName": "labelBorderDisplay",
653
+ "methodName": "watchLabelBorderDisplay"
497
654
  }, {
498
655
  "propName": "tooltipPosition",
499
656
  "methodName": "watchTooltipPosition"
@@ -503,6 +660,9 @@ export class MgInput {
503
660
  }, {
504
661
  "propName": "helpText",
505
662
  "methodName": "watchHelpText"
663
+ }, {
664
+ "propName": "inputsOnBottom",
665
+ "methodName": "watchInputsOnBottom"
506
666
  }, {
507
667
  "propName": "identifier",
508
668
  "methodName": "watchAriaDescribedbyIDs"
@@ -76,7 +76,7 @@ export class MgInputCheckboxPaginated {
76
76
  render() {
77
77
  const listId = formatID(this.messages.label);
78
78
  const tabId = 'tab-info';
79
- return (h(Host, { key: '8e58037e78fcd7990bbd681053758b0ec4d0c4e0' }, h("slot", { key: 'c64e9c8f65a526b2289d3663fff64df02a282c96', name: "header-action" }), h("div", { key: 'c5953bb7e970384b231865d7fa4708fe2da4b407', class: "mg-c-input__tabs-content" }, h("p", { key: 'c0899cb7e7a6dea282f05aacf0fb05acd60a9d20', id: tabId, class: { 'mg-c-input__popover-info': true, 'mg-u-visually-hidden': this.items.length !== 0 }, "aria-live": this.items.length !== 0 ? 'polite' : undefined }, this.items.length === 0 ? this.messages.noValue : this.messages.values.replace('{count}', this.items.length.toString())), this.items.length > 0 && (h(MgInputCheckboxList, { key: '0bb1b4160d75b00d3fb5d9c08f3a560a16105e57', checkboxes: this.items, labelledby: tabId, id: listId, disabled: this.disabled, name: this.name, invalid: this.invalid })), this.hasNext() && (h("mg-button", { key: "load-more", variant: "flat", class: "mg-c-input__load-more", tabIndex: -1, "full-width": true, onClick: this.handleLoadMore, "aria-controls": listId }, h("mg-icon", { key: 'fd1560d7254f437f284925427130f69539b5fd3b', icon: "chevron-down" }), this.messages.showMore)))));
79
+ return (h(Host, { key: '233ab4fca3f4a3121bc60650ac2f8ae06d47e6e5' }, h("slot", { key: '7d1af8c712928c06953743fc5c182e51d9a6256b', name: "header-action" }), h("div", { key: '95641bd218e36422a6b5b4ead8dd5498e8ac5fa4', class: "mg-c-input__tabs-content" }, h("p", { key: '34814dd1afc9f871cd032500b931e692d63cbd25', id: tabId, class: { 'mg-c-input__popover-info': true, 'mg-u-visually-hidden': this.items.length !== 0 }, "aria-live": this.items.length !== 0 ? 'polite' : undefined }, this.items.length === 0 ? this.messages.noValue : this.messages.values.replace('{count}', this.items.length.toString())), this.items.length > 0 && (h(MgInputCheckboxList, { key: '621077f291a401737157ad0cd9b9348537ef8bdc', checkboxes: this.items, labelledby: tabId, id: listId, disabled: this.disabled, name: this.name, invalid: this.invalid })), this.hasNext() && (h("mg-button", { key: "load-more", variant: "flat", class: "mg-c-input__load-more", tabIndex: -1, "full-width": true, onClick: this.handleLoadMore, "aria-controls": listId }, h("mg-icon", { key: 'cb00bbeb1575475b184cc9623db6c4cefc56c26a', icon: "chevron-down" }), this.messages.showMore)))));
80
80
  }
81
81
  static get is() { return "mg-input-checkbox-paginated"; }
82
82
  static get encapsulation() { return "scoped"; }
@@ -84,7 +84,6 @@ export class MgInputCheckboxPaginated {
84
84
  return {
85
85
  "readonly": {
86
86
  "type": "boolean",
87
- "attribute": "readonly",
88
87
  "mutable": false,
89
88
  "complexType": {
90
89
  "original": "boolean",
@@ -100,11 +99,11 @@ export class MgInputCheckboxPaginated {
100
99
  "getter": false,
101
100
  "setter": false,
102
101
  "reflect": false,
102
+ "attribute": "readonly",
103
103
  "defaultValue": "false"
104
104
  },
105
105
  "disabled": {
106
106
  "type": "boolean",
107
- "attribute": "disabled",
108
107
  "mutable": false,
109
108
  "complexType": {
110
109
  "original": "boolean",
@@ -120,11 +119,11 @@ export class MgInputCheckboxPaginated {
120
119
  "getter": false,
121
120
  "setter": false,
122
121
  "reflect": false,
122
+ "attribute": "disabled",
123
123
  "defaultValue": "false"
124
124
  },
125
125
  "name": {
126
126
  "type": "string",
127
- "attribute": "name",
128
127
  "mutable": false,
129
128
  "complexType": {
130
129
  "original": "string",
@@ -139,11 +138,11 @@ export class MgInputCheckboxPaginated {
139
138
  },
140
139
  "getter": false,
141
140
  "setter": false,
142
- "reflect": false
141
+ "reflect": false,
142
+ "attribute": "name"
143
143
  },
144
144
  "invalid": {
145
145
  "type": "boolean",
146
- "attribute": "invalid",
147
146
  "mutable": false,
148
147
  "complexType": {
149
148
  "original": "boolean",
@@ -158,11 +157,11 @@ export class MgInputCheckboxPaginated {
158
157
  },
159
158
  "getter": false,
160
159
  "setter": false,
161
- "reflect": false
160
+ "reflect": false,
161
+ "attribute": "invalid"
162
162
  },
163
163
  "checkboxes": {
164
164
  "type": "unknown",
165
- "attribute": "checkboxes",
166
165
  "mutable": false,
167
166
  "complexType": {
168
167
  "original": "CheckboxItem[]",
@@ -186,7 +185,6 @@ export class MgInputCheckboxPaginated {
186
185
  },
187
186
  "messages": {
188
187
  "type": "unknown",
189
- "attribute": "messages",
190
188
  "mutable": false,
191
189
  "complexType": {
192
190
  "original": "Record<string, string>",