@mgdis/mg-components 4.1.0 → 4.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 (123) hide show
  1. package/dist/cjs/{index-88560a66.js → index-64cee0c8.js} +248 -81
  2. package/dist/cjs/loader.cjs.js +3 -3
  3. package/dist/cjs/{mg-badge_24.cjs.entry.js → mg-badge_23.cjs.entry.js} +206 -2180
  4. package/dist/cjs/mg-components.cjs.js +3 -3
  5. package/dist/cjs/mg-modal.cjs.entry.js +8 -1
  6. package/dist/cjs/mg-popover.cjs.entry.js +171 -0
  7. package/dist/cjs/popper-71bf3058.js +1790 -0
  8. package/dist/collection/collection-manifest.json +2 -2
  9. package/dist/collection/components/atoms/mg-badge/mg-badge.js +116 -99
  10. package/dist/collection/components/atoms/mg-button/mg-button.js +221 -220
  11. package/dist/collection/components/atoms/mg-character-left/mg-character-left.js +72 -69
  12. package/dist/collection/components/atoms/mg-icon/doc/mg-icon.stories.js +1 -2
  13. package/dist/collection/components/atoms/mg-icon/mg-icon.js +102 -92
  14. package/dist/collection/components/atoms/mg-input-title/mg-input-title.js +83 -67
  15. package/dist/collection/components/atoms/mg-tag/mg-tag.js +64 -55
  16. package/dist/collection/components/atoms/mg-tooltip/doc/mg-tooltip.stories.js +3 -6
  17. package/dist/collection/components/atoms/mg-tooltip/mg-tooltip.js +120 -106
  18. package/dist/collection/components/molecules/inputs/MgInput.js +8 -17
  19. package/dist/collection/components/molecules/inputs/mg-input-checkbox/mg-input-checkbox.js +323 -318
  20. package/dist/collection/components/molecules/inputs/mg-input-date/doc/mg-input-date.stories.js +3 -2
  21. package/dist/collection/components/molecules/inputs/mg-input-date/mg-input-date.js +356 -361
  22. package/dist/collection/components/molecules/inputs/mg-input-numeric/doc/mg-input-numeric.stories.js +1 -2
  23. package/dist/collection/components/molecules/inputs/mg-input-numeric/mg-input-numeric.js +462 -456
  24. package/dist/collection/components/molecules/inputs/mg-input-password/mg-input-password.js +347 -340
  25. package/dist/collection/components/molecules/inputs/mg-input-radio/mg-input-radio.js +348 -343
  26. package/dist/collection/components/molecules/inputs/mg-input-select/doc/mg-input-select.stories.js +4 -3
  27. package/dist/collection/components/molecules/inputs/mg-input-select/mg-input-select.js +406 -401
  28. package/dist/collection/components/molecules/inputs/mg-input-text/doc/mg-input-text.stories.js +12 -15
  29. package/dist/collection/components/molecules/inputs/mg-input-text/mg-input-text.css +2 -0
  30. package/dist/collection/components/molecules/inputs/mg-input-text/mg-input-text.js +476 -473
  31. package/dist/collection/components/molecules/inputs/mg-input-textarea/mg-input-textarea.js +461 -456
  32. package/dist/collection/components/molecules/inputs/mg-input-toggle/doc/mg-input-toggle.stories.js +2 -8
  33. package/dist/collection/components/molecules/inputs/mg-input-toggle/mg-input-toggle.css +1 -0
  34. package/dist/collection/components/molecules/inputs/mg-input-toggle/mg-input-toggle.js +299 -298
  35. package/dist/collection/components/molecules/mg-details/doc/mg-details.stories.js +1 -3
  36. package/dist/collection/components/molecules/mg-details/mg-details.js +95 -93
  37. package/dist/collection/components/molecules/mg-form/doc/mg-form.stories.js +13 -27
  38. package/dist/collection/components/molecules/mg-form/mg-form.js +175 -166
  39. package/dist/collection/components/molecules/mg-illustrated-message/doc/mg-illustrated-message.stories.js +2 -6
  40. package/dist/collection/components/molecules/mg-illustrated-message/mg-illustrated-message.js +37 -37
  41. package/dist/collection/components/molecules/mg-message/doc/mg-message.stories.js +1 -3
  42. package/dist/collection/components/molecules/mg-message/mg-message.js +154 -153
  43. package/dist/collection/components/molecules/mg-modal/doc/mg-modal.stories.js +11 -15
  44. package/dist/collection/components/molecules/mg-modal/mg-modal.js +147 -134
  45. package/dist/collection/components/molecules/mg-pagination/mg-pagination.css +5 -6
  46. package/dist/collection/components/molecules/mg-pagination/mg-pagination.js +112 -117
  47. package/dist/collection/components/molecules/mg-panel/doc/mg-panel.stories.js +1 -8
  48. package/dist/collection/components/molecules/mg-panel/mg-panel.css +2 -2
  49. package/dist/collection/components/molecules/mg-panel/mg-panel.js +192 -189
  50. package/dist/collection/components/molecules/mg-popover/doc/mg-popover.stories.js +1 -4
  51. package/dist/collection/components/molecules/mg-popover/mg-popover.js +129 -127
  52. package/dist/collection/components/molecules/mg-tabs/doc/mg-tabs.stories.js +1 -5
  53. package/dist/collection/components/molecules/mg-tabs/mg-tabs.css +1 -0
  54. package/dist/collection/components/molecules/mg-tabs/mg-tabs.js +150 -135
  55. package/dist/collection/fonts/OpenSans-Bold.ttf +0 -0
  56. package/dist/collection/locales/en/messages.json +50 -0
  57. package/dist/collection/locales/fr/messages.json +50 -0
  58. package/dist/collection/stories/grids.stories.js +1 -44
  59. package/dist/collection/stories/helpers.stories.js +1 -19
  60. package/dist/collection/stories/icons.stories.js +1 -4
  61. package/dist/collection/stories/typography.stories.js +1 -12
  62. package/dist/collection/variables.css +3 -2
  63. package/dist/collection/variables.scss +3 -2
  64. package/dist/components/MgInput.js +6 -3
  65. package/dist/components/mg-badge2.js +7 -0
  66. package/dist/components/mg-button2.js +2 -7
  67. package/dist/components/mg-input-checkbox.js +1 -6
  68. package/dist/components/mg-input-date.js +10 -27
  69. package/dist/components/mg-input-numeric.js +1 -6
  70. package/dist/components/mg-input-password.js +1 -6
  71. package/dist/components/mg-input-radio.js +1 -6
  72. package/dist/components/mg-input-select2.js +1 -6
  73. package/dist/components/mg-input-text2.js +3 -8
  74. package/dist/components/mg-input-textarea.js +2 -7
  75. package/dist/components/mg-input-title2.js +9 -0
  76. package/dist/components/mg-input-toggle.js +2 -7
  77. package/dist/components/mg-modal.js +7 -0
  78. package/dist/components/mg-pagination.js +3 -3
  79. package/dist/components/mg-panel.js +8 -4
  80. package/dist/components/mg-tabs.js +8 -1
  81. package/dist/components/mg-tooltip2.js +7 -0
  82. package/dist/esm/{index-bca81100.js → index-120f47fd.js} +248 -81
  83. package/dist/esm/loader.js +3 -3
  84. package/dist/esm/{mg-badge_24.entry.js → mg-badge_23.entry.js} +207 -2180
  85. package/dist/esm/mg-components.js +3 -3
  86. package/dist/esm/mg-modal.entry.js +8 -1
  87. package/dist/esm/mg-popover.entry.js +167 -0
  88. package/dist/esm/popper-93ecb064.js +1788 -0
  89. package/dist/mg-components/fonts/OpenSans-Bold.ttf +0 -0
  90. package/dist/mg-components/locales/en/messages.json +50 -0
  91. package/dist/mg-components/locales/fr/messages.json +50 -0
  92. package/dist/mg-components/mg-components.css +1 -1
  93. package/dist/mg-components/mg-components.esm.js +1 -1
  94. package/dist/mg-components/p-21991be8.entry.js +1 -0
  95. package/dist/mg-components/p-36a64f8c.entry.js +1 -0
  96. package/dist/mg-components/p-4c66f794.js +1 -0
  97. package/dist/mg-components/{p-b14a3443.js → p-7bc32a2f.js} +0 -0
  98. package/dist/mg-components/p-b380a0df.entry.js +1 -0
  99. package/dist/mg-components/variables.css +3 -2
  100. package/dist/mg-components/variables.scss +3 -2
  101. package/dist/types/components/atoms/mg-badge/mg-badge.d.ts +1 -0
  102. package/dist/types/components/atoms/mg-button/mg-button.d.ts +0 -1
  103. package/dist/types/components/atoms/mg-input-title/mg-input-title.d.ts +1 -0
  104. package/dist/types/components/atoms/mg-tooltip/mg-tooltip.d.ts +1 -0
  105. package/dist/types/components/molecules/inputs/mg-input-checkbox/mg-input-checkbox.d.ts +0 -1
  106. package/dist/types/components/molecules/inputs/mg-input-date/mg-input-date.d.ts +1 -10
  107. package/dist/types/components/molecules/inputs/mg-input-numeric/mg-input-numeric.d.ts +0 -1
  108. package/dist/types/components/molecules/inputs/mg-input-password/mg-input-password.d.ts +0 -1
  109. package/dist/types/components/molecules/inputs/mg-input-radio/mg-input-radio.d.ts +0 -1
  110. package/dist/types/components/molecules/inputs/mg-input-select/mg-input-select.d.ts +0 -1
  111. package/dist/types/components/molecules/inputs/mg-input-text/mg-input-text.d.ts +0 -1
  112. package/dist/types/components/molecules/inputs/mg-input-textarea/mg-input-textarea.d.ts +0 -1
  113. package/dist/types/components/molecules/inputs/mg-input-toggle/mg-input-toggle.d.ts +0 -1
  114. package/dist/types/components/molecules/mg-modal/mg-modal.d.ts +1 -0
  115. package/dist/types/components/molecules/mg-panel/mg-panel.d.ts +1 -1
  116. package/dist/types/components/molecules/mg-tabs/mg-tabs.d.ts +1 -0
  117. package/dist/types/components.d.ts +29 -29
  118. package/loader/package.json +1 -0
  119. package/package.json +8 -8
  120. package/dist/collection/fonts/Poppins-Bold.ttf +0 -0
  121. package/dist/mg-components/fonts/Poppins-Bold.ttf +0 -0
  122. package/dist/mg-components/p-a2883dc7.entry.js +0 -1
  123. package/dist/mg-components/p-cffe0519.entry.js +0 -1
@@ -1,4 +1,4 @@
1
- import { Component, Element, h, Host, Prop, Watch } from '@stencil/core';
1
+ import { h, Host } from '@stencil/core';
2
2
  import { createID } from '../../../utils/components.utils';
3
3
  import { createPopper } from '@popperjs/core';
4
4
  import { Guard } from './mg-tooltip.conf';
@@ -88,6 +88,11 @@ export class MgTooltip {
88
88
  this.guard = undefined;
89
89
  };
90
90
  }
91
+ validateMessage(newValue) {
92
+ if (typeof newValue !== 'string' || newValue.trim() === '') {
93
+ throw new Error('<mg-tooltip> prop "message" is required.');
94
+ }
95
+ }
91
96
  handleDisplay(newValue) {
92
97
  if (newValue) {
93
98
  this.show();
@@ -168,6 +173,7 @@ export class MgTooltip {
168
173
  });
169
174
  });
170
175
  this.handleDisplay(this.display);
176
+ this.validateMessage(this.message);
171
177
  }
172
178
  /**
173
179
  * Render
@@ -175,118 +181,126 @@ export class MgTooltip {
175
181
  * @returns {HTMLElement} HTML Element
176
182
  */
177
183
  render() {
178
- return (h(Host, null,
179
- h("slot", null),
180
- h("div", { role: "tooltip", id: this.identifier, class: "mg-tooltip", innerHTML: this.message },
181
- h("div", { class: "mg-tooltip__arrow", "data-popper-arrow": true }))));
184
+ return (h(Host, null, h("slot", null), h("div", { role: "tooltip", id: this.identifier, class: "mg-tooltip", innerHTML: this.message }, h("div", { class: "mg-tooltip__arrow", "data-popper-arrow": true }))));
182
185
  }
183
186
  static get is() { return "mg-tooltip"; }
184
187
  static get encapsulation() { return "scoped"; }
185
- static get originalStyleUrls() { return {
186
- "$": ["mg-tooltip.scss"]
187
- }; }
188
- static get styleUrls() { return {
189
- "$": ["mg-tooltip.css"]
190
- }; }
191
- static get properties() { return {
192
- "identifier": {
193
- "type": "string",
194
- "mutable": false,
195
- "complexType": {
196
- "original": "string",
197
- "resolved": "string",
198
- "references": {}
199
- },
200
- "required": false,
201
- "optional": false,
202
- "docs": {
203
- "tags": [],
204
- "text": "Sets an `id` attribute.\nNeeded by the input for accessibility `aria-decribedby`."
205
- },
206
- "attribute": "identifier",
207
- "reflect": false,
208
- "defaultValue": "createID('mg-tooltip')"
209
- },
210
- "message": {
211
- "type": "string",
212
- "mutable": false,
213
- "complexType": {
214
- "original": "string",
215
- "resolved": "string",
216
- "references": {}
188
+ static get originalStyleUrls() {
189
+ return {
190
+ "$": ["mg-tooltip.scss"]
191
+ };
192
+ }
193
+ static get styleUrls() {
194
+ return {
195
+ "$": ["mg-tooltip.css"]
196
+ };
197
+ }
198
+ static get properties() {
199
+ return {
200
+ "identifier": {
201
+ "type": "string",
202
+ "mutable": false,
203
+ "complexType": {
204
+ "original": "string",
205
+ "resolved": "string",
206
+ "references": {}
207
+ },
208
+ "required": false,
209
+ "optional": false,
210
+ "docs": {
211
+ "tags": [],
212
+ "text": "Sets an `id` attribute.\nNeeded by the input for accessibility `aria-decribedby`."
213
+ },
214
+ "attribute": "identifier",
215
+ "reflect": false,
216
+ "defaultValue": "createID('mg-tooltip')"
217
217
  },
218
- "required": true,
219
- "optional": false,
220
- "docs": {
221
- "tags": [],
222
- "text": "Displayed message in the tooltip"
218
+ "message": {
219
+ "type": "string",
220
+ "mutable": false,
221
+ "complexType": {
222
+ "original": "string",
223
+ "resolved": "string",
224
+ "references": {}
225
+ },
226
+ "required": true,
227
+ "optional": false,
228
+ "docs": {
229
+ "tags": [],
230
+ "text": "Displayed message in the tooltip"
231
+ },
232
+ "attribute": "message",
233
+ "reflect": false
223
234
  },
224
- "attribute": "message",
225
- "reflect": false
226
- },
227
- "placement": {
228
- "type": "string",
229
- "mutable": false,
230
- "complexType": {
231
- "original": "Placement",
232
- "resolved": "\"auto\" | \"auto-end\" | \"auto-start\" | \"bottom\" | \"bottom-end\" | \"bottom-start\" | \"left\" | \"left-end\" | \"left-start\" | \"right\" | \"right-end\" | \"right-start\" | \"top\" | \"top-end\" | \"top-start\"",
233
- "references": {
234
- "Placement": {
235
- "location": "import",
236
- "path": "./mg-tooltip.conf"
235
+ "placement": {
236
+ "type": "string",
237
+ "mutable": false,
238
+ "complexType": {
239
+ "original": "Placement",
240
+ "resolved": "\"auto\" | \"auto-end\" | \"auto-start\" | \"bottom\" | \"bottom-end\" | \"bottom-start\" | \"left\" | \"left-end\" | \"left-start\" | \"right\" | \"right-end\" | \"right-start\" | \"top\" | \"top-end\" | \"top-start\"",
241
+ "references": {
242
+ "Placement": {
243
+ "location": "import",
244
+ "path": "./mg-tooltip.conf"
245
+ }
237
246
  }
238
- }
239
- },
240
- "required": false,
241
- "optional": false,
242
- "docs": {
243
- "tags": [],
244
- "text": "Tooltip placement"
245
- },
246
- "attribute": "placement",
247
- "reflect": false,
248
- "defaultValue": "'bottom'"
249
- },
250
- "display": {
251
- "type": "boolean",
252
- "mutable": true,
253
- "complexType": {
254
- "original": "boolean",
255
- "resolved": "boolean",
256
- "references": {}
257
- },
258
- "required": false,
259
- "optional": false,
260
- "docs": {
261
- "tags": [],
262
- "text": "Display tooltip"
263
- },
264
- "attribute": "display",
265
- "reflect": false,
266
- "defaultValue": "false"
267
- },
268
- "disabled": {
269
- "type": "boolean",
270
- "mutable": true,
271
- "complexType": {
272
- "original": "boolean",
273
- "resolved": "boolean",
274
- "references": {}
247
+ },
248
+ "required": false,
249
+ "optional": false,
250
+ "docs": {
251
+ "tags": [],
252
+ "text": "Tooltip placement"
253
+ },
254
+ "attribute": "placement",
255
+ "reflect": false,
256
+ "defaultValue": "'bottom'"
275
257
  },
276
- "required": false,
277
- "optional": false,
278
- "docs": {
279
- "tags": [],
280
- "text": "Disable tooltip"
258
+ "display": {
259
+ "type": "boolean",
260
+ "mutable": true,
261
+ "complexType": {
262
+ "original": "boolean",
263
+ "resolved": "boolean",
264
+ "references": {}
265
+ },
266
+ "required": false,
267
+ "optional": false,
268
+ "docs": {
269
+ "tags": [],
270
+ "text": "Display tooltip"
271
+ },
272
+ "attribute": "display",
273
+ "reflect": false,
274
+ "defaultValue": "false"
281
275
  },
282
- "attribute": "disabled",
283
- "reflect": false,
284
- "defaultValue": "false"
285
- }
286
- }; }
276
+ "disabled": {
277
+ "type": "boolean",
278
+ "mutable": true,
279
+ "complexType": {
280
+ "original": "boolean",
281
+ "resolved": "boolean",
282
+ "references": {}
283
+ },
284
+ "required": false,
285
+ "optional": false,
286
+ "docs": {
287
+ "tags": [],
288
+ "text": "Disable tooltip"
289
+ },
290
+ "attribute": "disabled",
291
+ "reflect": false,
292
+ "defaultValue": "false"
293
+ }
294
+ };
295
+ }
287
296
  static get elementRef() { return "element"; }
288
- static get watchers() { return [{
289
- "propName": "display",
290
- "methodName": "handleDisplay"
291
- }]; }
297
+ static get watchers() {
298
+ return [{
299
+ "propName": "message",
300
+ "methodName": "validateMessage"
301
+ }, {
302
+ "propName": "display",
303
+ "methodName": "handleDisplay"
304
+ }];
305
+ }
292
306
  }
@@ -49,11 +49,14 @@ export const MgInput = (props, children, utils) => {
49
49
  /**
50
50
  * Check required properties
51
51
  */
52
- if (typeof props.label !== 'string' || props.label === '') {
53
- throw new Error('<mg-input> prop "label" is required');
52
+ if (typeof props.identifier !== 'string' || props.identifier.trim() === '') {
53
+ throw new Error('<mg-input> prop "identifier" is required.');
54
+ }
55
+ if (typeof props.label !== 'string' || props.label.trim() === '') {
56
+ throw new Error('<mg-input> prop "label" is required.');
54
57
  }
55
58
  if (props.labelOnTop && props.labelHide) {
56
- throw new Error('<mg-input> prop "labelOnTop" must not be paired with the prop "labelHide"');
59
+ throw new Error('<mg-input> prop "labelOnTop" must not be paired with the prop "labelHide".');
57
60
  }
58
61
  /**
59
62
  * Component classes
@@ -103,24 +106,12 @@ export const MgInput = (props, children, utils) => {
103
106
  *
104
107
  * @returns {VNode[]} mg-tooltip
105
108
  */
106
- const getTooltip = () => (h("mg-tooltip", { identifier: `${props.identifier}-tooltip`, message: props.tooltip },
107
- h("mg-icon", { icon: "info-circle" })));
109
+ const getTooltip = () => (h("mg-tooltip", { identifier: `${props.identifier}-tooltip`, message: props.tooltip }, h("mg-icon", { icon: "info-circle" })));
108
110
  /**
109
111
  * Get input title (label) node
110
112
  *
111
113
  * @returns {VNode[]} mg-input-title
112
114
  */
113
115
  const getInputTitle = () => (h("mg-input-title", { identifier: props.identifier, class: props.labelHide ? 'sr-only' : undefined, required: props.required && !props.disabled, "is-legend": props.isFieldset }, props.label));
114
- return (h(TagName, { class: props.classList.join() },
115
- props.labelOnTop ? (h("div", { class: "mg-input__title" },
116
- getInputTitle(),
117
- !props.readonly && props.tooltip && getTooltip())) : (getInputTitle()),
118
- props.readonly ? (h("div", { class: "mg-input__input-container" },
119
- h("strong", null, props.readonlyValue || props.value),
120
- children)) : (h("div", { class: "mg-input__input-container" },
121
- h("div", { class: { 'mg-input__input': true, 'mg-input__input--has-error': props.errorMessage !== undefined } },
122
- children,
123
- !props.labelOnTop && props.tooltip && getTooltip()),
124
- props.helpText && h("div", { id: helpTextId, class: "mg-input__help-text", innerHTML: props.helpText }),
125
- props.errorMessage && !props.readonly && !props.disabled && (h("div", { id: helpTextErrorId, class: "mg-input__error", innerHTML: props.errorMessage, "aria-live": "assertive" }))))));
116
+ return (h(TagName, { class: props.classList.join() }, props.labelOnTop ? (h("div", { class: "mg-input__title" }, getInputTitle(), !props.readonly && props.tooltip && getTooltip())) : (getInputTitle()), props.readonly ? (h("div", { class: "mg-input__input-container" }, h("strong", null, props.readonlyValue || props.value), children)) : (h("div", { class: "mg-input__input-container" }, h("div", { class: { 'mg-input__input': true, 'mg-input__input--has-error': props.errorMessage !== undefined } }, children, !props.labelOnTop && props.tooltip && getTooltip()), props.helpText && h("div", { id: helpTextId, class: "mg-input__help-text", innerHTML: props.helpText }), props.errorMessage && !props.readonly && !props.disabled && (h("div", { id: helpTextErrorId, class: "mg-input__error", innerHTML: props.errorMessage, "aria-live": "assertive" }))))));
126
117
  };