@mgdis/mg-components 5.4.0 → 5.6.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 (194) hide show
  1. package/dist/cjs/{index-94497267.js → index-4dcc1812.js} +11 -1
  2. package/dist/cjs/loader.cjs.js +3 -3
  3. package/dist/cjs/{mg-badge_29.cjs.entry.js → mg-badge_30.cjs.entry.js} +1112 -859
  4. package/dist/cjs/mg-components.cjs.js +3 -3
  5. package/dist/collection/collection-manifest.json +5 -4
  6. package/dist/collection/components/atoms/mg-badge/doc/mg-badge.stories.js +0 -7
  7. package/dist/collection/components/atoms/mg-badge/mg-badge.conf.js +1 -1
  8. package/dist/collection/components/atoms/mg-badge/mg-badge.css +13 -0
  9. package/dist/collection/components/atoms/mg-badge/mg-badge.js +7 -10
  10. package/dist/collection/components/atoms/mg-button/doc/mg-button.stories.js +0 -7
  11. package/dist/collection/components/atoms/mg-button/mg-button.conf.js +1 -1
  12. package/dist/collection/components/atoms/mg-button/mg-button.css +15 -1
  13. package/dist/collection/components/atoms/mg-button/mg-button.js +12 -29
  14. package/dist/collection/components/atoms/mg-card/mg-card.css +17 -5
  15. package/dist/collection/components/atoms/mg-character-left/mg-character-left.js +2 -3
  16. package/dist/collection/components/atoms/mg-divider/mg-divider.js +0 -6
  17. package/dist/collection/components/atoms/mg-icon/mg-icon.conf.js +13 -3
  18. package/dist/collection/components/atoms/mg-icon/mg-icon.js +5 -12
  19. package/dist/collection/components/atoms/mg-input-title/mg-input-title.js +4 -8
  20. package/dist/collection/components/atoms/mg-tag/doc/mg-tag.stories.js +1 -9
  21. package/dist/collection/components/atoms/mg-tag/mg-tag.css +58 -0
  22. package/dist/collection/components/atoms/mg-tag/mg-tag.js +61 -16
  23. package/dist/collection/components/atoms/mg-tooltip/mg-tooltip.css +2 -0
  24. package/dist/collection/components/atoms/mg-tooltip/mg-tooltip.js +9 -22
  25. package/dist/collection/components/molecules/inputs/mg-input-checkbox/mg-input-checkbox.js +17 -33
  26. package/dist/collection/components/molecules/inputs/mg-input-date/mg-input-date.css +3 -3
  27. package/dist/collection/components/molecules/inputs/mg-input-date/mg-input-date.js +21 -26
  28. package/dist/collection/components/molecules/inputs/mg-input-numeric/mg-input-numeric.css +3 -3
  29. package/dist/collection/components/molecules/inputs/mg-input-numeric/mg-input-numeric.js +24 -47
  30. package/dist/collection/components/molecules/inputs/mg-input-password/mg-input-password.css +3 -3
  31. package/dist/collection/components/molecules/inputs/mg-input-password/mg-input-password.js +17 -29
  32. package/dist/collection/components/molecules/inputs/mg-input-radio/mg-input-radio.js +18 -33
  33. package/dist/collection/components/molecules/inputs/mg-input-select/mg-input-select.css +3 -3
  34. package/dist/collection/components/molecules/inputs/mg-input-select/mg-input-select.js +30 -36
  35. package/dist/collection/components/molecules/inputs/mg-input-text/mg-input-text.css +3 -3
  36. package/dist/collection/components/molecules/inputs/mg-input-text/mg-input-text.js +23 -41
  37. package/dist/collection/components/molecules/inputs/mg-input-textarea/mg-input-textarea.css +3 -3
  38. package/dist/collection/components/molecules/inputs/mg-input-textarea/mg-input-textarea.js +23 -45
  39. package/dist/collection/components/molecules/inputs/mg-input-toggle/mg-input-toggle.js +16 -33
  40. package/dist/collection/components/molecules/menu/mg-menu/doc/mg-menu.stories.js +43 -11
  41. package/dist/collection/components/molecules/menu/mg-menu/mg-menu.conf.js +17 -0
  42. package/dist/collection/components/molecules/menu/mg-menu/mg-menu.css +27 -0
  43. package/dist/collection/components/molecules/menu/mg-menu/mg-menu.js +145 -25
  44. package/dist/collection/components/molecules/menu/mg-menu-item/doc/mg-menu-item.stories.js +7 -5
  45. package/dist/collection/components/molecules/menu/mg-menu-item/mg-menu-item.conf.js +0 -4
  46. package/dist/collection/components/molecules/menu/mg-menu-item/mg-menu-item.css +51 -21
  47. package/dist/collection/components/molecules/menu/mg-menu-item/mg-menu-item.js +129 -92
  48. package/dist/collection/components/molecules/mg-details/mg-details.js +4 -8
  49. package/dist/collection/components/molecules/mg-form/mg-form.js +8 -22
  50. package/dist/collection/components/molecules/mg-illustrated-message/mg-illustrated-message.css +2 -2
  51. package/dist/collection/components/molecules/mg-illustrated-message/mg-illustrated-message.js +4 -9
  52. package/dist/collection/components/molecules/mg-message/mg-message.css +20 -19
  53. package/dist/collection/components/molecules/mg-message/mg-message.js +55 -33
  54. package/dist/collection/components/molecules/mg-modal/mg-modal.css +20 -8
  55. package/dist/collection/components/molecules/mg-modal/mg-modal.js +8 -26
  56. package/dist/collection/components/molecules/mg-pagination/mg-pagination.js +4 -13
  57. package/dist/collection/components/molecules/mg-panel/mg-panel.css +17 -5
  58. package/dist/collection/components/molecules/mg-panel/mg-panel.js +11 -22
  59. package/dist/collection/components/molecules/mg-popover/mg-popover.css +82 -20
  60. package/dist/collection/components/molecules/mg-popover/mg-popover.js +54 -26
  61. package/dist/collection/components/molecules/mg-skip-links/doc/mg-skip-links.stories.js +24 -0
  62. package/dist/collection/components/molecules/mg-skip-links/mg-skip-links.conf.js +1 -0
  63. package/dist/collection/components/molecules/mg-skip-links/mg-skip-links.css +28 -0
  64. package/dist/collection/components/molecules/mg-skip-links/mg-skip-links.js +108 -0
  65. package/dist/collection/components/molecules/mg-tabs/doc/mg-tabs.stories.js +5 -3
  66. package/dist/collection/components/molecules/mg-tabs/mg-tabs.css +11 -7
  67. package/dist/collection/components/molecules/mg-tabs/mg-tabs.js +109 -75
  68. package/dist/collection/locales/en/messages.json +7 -0
  69. package/dist/collection/locales/fr/messages.json +7 -0
  70. package/dist/collection/locales/index.js +2 -25
  71. package/dist/collection/styles/a11y.scss +32 -0
  72. package/dist/collection/styles/components.scss +3 -0
  73. package/dist/collection/styles/fonts.scss +21 -0
  74. package/dist/collection/styles/form.scss +3 -0
  75. package/dist/collection/styles/global.scss +87 -0
  76. package/dist/collection/styles/layout.scss +29 -0
  77. package/dist/collection/styles/main.scss +23 -0
  78. package/dist/collection/styles/navigation-button.scss +76 -0
  79. package/dist/collection/styles/reset-mg-card-slotted-variables.scss +9 -0
  80. package/dist/collection/styles/typography.scss +75 -0
  81. package/dist/collection/styles/utilities.scss +21 -0
  82. package/dist/collection/utils/behaviors.utils.js +169 -0
  83. package/dist/collection/utils/components.utils.js +50 -0
  84. package/dist/collection/utils/locale.utils.js +22 -0
  85. package/dist/collection/utils/unit.test.utils.js +37 -32
  86. package/dist/collection/variables.css +9 -9
  87. package/dist/components/components.utils.js +51 -1
  88. package/dist/components/index.d.ts +1 -0
  89. package/dist/components/index.js +1 -0
  90. package/dist/components/index2.js +73 -18
  91. package/dist/components/mg-badge2.js +8 -11
  92. package/dist/components/mg-button2.js +13 -30
  93. package/dist/components/mg-card.js +1 -37
  94. package/dist/components/mg-card2.js +39 -0
  95. package/dist/components/mg-character-left2.js +2 -3
  96. package/dist/components/mg-details.js +4 -8
  97. package/dist/components/mg-divider.js +0 -6
  98. package/dist/components/mg-form.js +8 -22
  99. package/dist/components/mg-icon2.js +18 -15
  100. package/dist/components/mg-illustrated-message.js +5 -10
  101. package/dist/components/mg-input-checkbox.js +17 -33
  102. package/dist/components/mg-input-date.js +23 -29
  103. package/dist/components/mg-input-numeric.js +26 -50
  104. package/dist/components/mg-input-password.js +18 -30
  105. package/dist/components/mg-input-radio.js +18 -33
  106. package/dist/components/mg-input-select2.js +32 -38
  107. package/dist/components/mg-input-text2.js +24 -42
  108. package/dist/components/mg-input-textarea.js +24 -46
  109. package/dist/components/mg-input-title2.js +4 -8
  110. package/dist/components/mg-input-toggle.js +16 -33
  111. package/dist/components/mg-menu-item.js +1 -264
  112. package/dist/components/mg-menu-item2.js +517 -0
  113. package/dist/components/mg-menu.js +142 -28
  114. package/dist/components/mg-message.js +64 -36
  115. package/dist/components/mg-modal.js +18 -30
  116. package/dist/components/mg-pagination.js +4 -13
  117. package/dist/components/mg-panel.js +20 -25
  118. package/dist/components/mg-popover.js +1 -200
  119. package/dist/components/mg-popover2.js +212 -0
  120. package/dist/components/mg-skip-links.d.ts +11 -0
  121. package/dist/components/mg-skip-links.js +80 -0
  122. package/dist/components/mg-tabs.js +108 -73
  123. package/dist/components/mg-tag.js +35 -13
  124. package/dist/components/mg-tooltip2.js +10 -23
  125. package/dist/esm/{index-aad0184c.js → index-dc9a2348.js} +11 -1
  126. package/dist/esm/loader.js +3 -3
  127. package/dist/esm/{mg-badge_29.entry.js → mg-badge_30.entry.js} +1112 -860
  128. package/dist/esm/mg-components.js +3 -3
  129. package/dist/esm/polyfills/core-js.js +0 -0
  130. package/dist/esm/polyfills/css-shim.js +1 -1
  131. package/dist/esm/polyfills/dom.js +0 -0
  132. package/dist/esm/polyfills/es5-html-element.js +0 -0
  133. package/dist/esm/polyfills/index.js +0 -0
  134. package/dist/esm/polyfills/system.js +0 -0
  135. package/dist/mg-components/locales/en/messages.json +7 -0
  136. package/dist/mg-components/locales/fr/messages.json +7 -0
  137. package/dist/mg-components/mg-components.css +1 -1
  138. package/dist/mg-components/mg-components.esm.js +1 -1
  139. package/dist/mg-components/{p-3899d5d2.js → p-182bd802.js} +2 -2
  140. package/dist/mg-components/p-f7da9dd2.entry.js +1 -0
  141. package/dist/mg-components/styles/a11y.scss +32 -0
  142. package/dist/mg-components/styles/components.scss +3 -0
  143. package/dist/mg-components/styles/fonts.scss +21 -0
  144. package/dist/mg-components/styles/form.scss +3 -0
  145. package/dist/mg-components/styles/global.scss +87 -0
  146. package/dist/mg-components/styles/layout.scss +29 -0
  147. package/dist/mg-components/styles/main.scss +23 -0
  148. package/dist/mg-components/styles/navigation-button.scss +76 -0
  149. package/dist/mg-components/styles/reset-mg-card-slotted-variables.scss +9 -0
  150. package/dist/mg-components/styles/typography.scss +75 -0
  151. package/dist/mg-components/styles/utilities.scss +21 -0
  152. package/dist/mg-components/variables.css +9 -9
  153. package/dist/types/components/atoms/mg-badge/doc/mg-badge.stories.d.ts +0 -11
  154. package/dist/types/components/atoms/mg-badge/mg-badge.conf.d.ts +2 -2
  155. package/dist/types/components/atoms/mg-badge/mg-badge.d.ts +1 -1
  156. package/dist/types/components/atoms/mg-button/doc/mg-button.stories.d.ts +0 -11
  157. package/dist/types/components/atoms/mg-button/mg-button.conf.d.ts +4 -4
  158. package/dist/types/components/atoms/mg-button/mg-button.d.ts +6 -6
  159. package/dist/types/components/atoms/mg-icon/mg-icon.conf.d.ts +2 -2
  160. package/dist/types/components/atoms/mg-tag/doc/mg-tag.stories.d.ts +0 -13
  161. package/dist/types/components/atoms/mg-tag/mg-tag.conf.d.ts +5 -1
  162. package/dist/types/components/atoms/mg-tag/mg-tag.d.ts +27 -6
  163. package/dist/types/components/molecules/inputs/MgInput.conf.d.ts +2 -2
  164. package/dist/types/components/molecules/inputs/mg-input-checkbox/mg-input-checkbox.conf.d.ts +2 -2
  165. package/dist/types/components/molecules/inputs/mg-input-radio/mg-input-radio.conf.d.ts +1 -1
  166. package/dist/types/components/molecules/inputs/mg-input-select/mg-input-select.conf.d.ts +2 -2
  167. package/dist/types/components/molecules/inputs/mg-input-toggle/mg-input-toggle.conf.d.ts +1 -1
  168. package/dist/types/components/molecules/menu/mg-menu/doc/mg-menu.stories.d.ts +5 -0
  169. package/dist/types/components/molecules/menu/mg-menu/mg-menu.conf.d.ts +37 -0
  170. package/dist/types/components/molecules/menu/mg-menu/mg-menu.d.ts +51 -3
  171. package/dist/types/components/molecules/menu/mg-menu-item/doc/mg-menu-item.stories.d.ts +1 -0
  172. package/dist/types/components/molecules/menu/mg-menu-item/mg-menu-item.conf.d.ts +0 -8
  173. package/dist/types/components/molecules/menu/mg-menu-item/mg-menu-item.d.ts +55 -15
  174. package/dist/types/components/molecules/mg-form/mg-form.d.ts +1 -1
  175. package/dist/types/components/molecules/mg-message/mg-message.d.ts +22 -5
  176. package/dist/types/components/molecules/mg-modal/mg-modal.d.ts +1 -1
  177. package/dist/types/components/molecules/mg-popover/mg-popover.d.ts +12 -0
  178. package/dist/types/components/molecules/mg-skip-links/doc/mg-skip-links.stories.d.ts +11 -0
  179. package/dist/types/components/molecules/mg-skip-links/mg-skip-links.conf.d.ts +7 -0
  180. package/dist/types/components/molecules/mg-skip-links/mg-skip-links.d.ts +49 -0
  181. package/dist/types/components/molecules/mg-tabs/mg-tabs.conf.d.ts +5 -3
  182. package/dist/types/components/molecules/mg-tabs/mg-tabs.d.ts +24 -14
  183. package/dist/types/components.d.ts +81 -18
  184. package/dist/types/locales/index.d.ts +16 -9
  185. package/dist/types/stencil-public-runtime.d.ts +44 -3
  186. package/dist/types/utils/behaviors.utils.d.ts +83 -0
  187. package/dist/types/utils/components.utils.d.ts +14 -0
  188. package/dist/types/utils/locale.utils.d.ts +13 -0
  189. package/dist/types/utils/unit.test.utils.d.ts +78 -0
  190. package/package.json +51 -46
  191. package/readme.md +25 -14
  192. package/dist/components/locale.utils.js +0 -40
  193. package/dist/components/mg-menu.conf.js +0 -10
  194. package/dist/mg-components/p-059a9a59.entry.js +0 -1
@@ -96,7 +96,7 @@
96
96
  --color-secondary: hsl(var(--color-neutral));
97
97
 
98
98
  /* Shadow */
99
- --box-shadow: 0 0.3rem 0.8rem 0 rgba(0, 0, 0, 0.1);
99
+ --box-shadow: 0 0.3rem 0.8rem 0 hsl(var(--color-dark), 0.15);
100
100
 
101
101
  /*
102
102
  Global
@@ -180,7 +180,7 @@
180
180
  --mg-panel-box-shadow: var(--box-shadow);
181
181
  --mg-panel-content-padding: 1.5rem;
182
182
 
183
- /*
183
+ /*
184
184
  <mg-illustrated-message>
185
185
  */
186
186
 
@@ -189,16 +189,16 @@
189
189
  /*
190
190
  <mg-card>
191
191
  */
192
- --mg-card-padding: 1.6rem;
193
- --mg-card-border-radius: 0.5rem;
194
- --mg-card-background: hsl(var(--color-light));
195
- --mg-card-border: 0.1rem solid hsla(var(--color-dark), 5%);
196
- --mg-card-box-shadow: var(--box-shadow);
192
+ --mg-card-padding-default: 1.6rem;
193
+ --mg-card-border-radius-default: 0.5rem;
194
+ --mg-card-background-default: hsl(var(--color-light));
195
+ --mg-card-border-default: 0.1rem solid hsl(var(--color-dark), 0.05);
196
+ --mg-card-box-shadow-default: var(--box-shadow);
197
197
 
198
198
  /*
199
199
  <mg-divider>
200
200
  */
201
- --mg-divider-background-color: hsla(var(--color-dark), 15%);
201
+ --mg-divider-background-color: hsl(var(--color-dark), 0.15);
202
202
  --mg-divider-thickness: 0.1rem;
203
203
  --mg-divider-vertical-spacing: 4rem;
204
204
 
@@ -245,7 +245,7 @@
245
245
  --mg-menu-item-focused-background-color-hsl: var(--mg-color-app-hsl);
246
246
  --mg-menu-item-border-color-active-hsl: var(--mg-color-app-hsl);
247
247
  --mg-menu-item-color-active-hsl: var(--mg-color-app-hsl);
248
-
248
+
249
249
  /*
250
250
  <mg-tabs>
251
251
  */
@@ -86,5 +86,55 @@ const isTagName = (element, tagNames) => {
86
86
  * Focusable elements query selector
87
87
  */
88
88
  const focusableElements = 'a[href], button, input, textarea, select, details, [tabindex]:not([tabindex="-1"]), [identifier]';
89
+ /**
90
+ *
91
+ * @param {Window} localWindow the window we are lookink for other windows
92
+ * @returns {Window[]} The list of windows found
93
+ */
94
+ const getWindows = (localWindow) => {
95
+ const parentWindows = getParentWindows(localWindow);
96
+ const childWindows = getChildWindows(localWindow);
97
+ return [localWindow, ...parentWindows, ...childWindows];
98
+ };
99
+ /**
100
+ * Get parent windows
101
+ *
102
+ * @param {Window} localWindow the window we are lookink for parents
103
+ * @param {Window[]} windows The list of allready found windows
104
+ * @returns {Window[]} The list of windows found
105
+ */
106
+ const getParentWindows = (localWindow, windows = []) => {
107
+ // Check if is in iframe
108
+ if (localWindow.self !== localWindow.top) {
109
+ // Check if we have permission to access parent
110
+ try {
111
+ const parentWindow = localWindow.parent;
112
+ windows.push(parentWindow);
113
+ return getParentWindows(parentWindow, windows);
114
+ }
115
+ catch (err) {
116
+ console.error('Different hosts between iframes:', err);
117
+ return windows;
118
+ }
119
+ }
120
+ return windows;
121
+ };
122
+ /**
123
+ * Get child windows
124
+ *
125
+ * @param {Window} localWindow the window we are lookink for children
126
+ * @param {Window[]} windows The list of allready found windows
127
+ * @returns {Window[]} The list of windows found
128
+ */
129
+ const getChildWindows = (localWindow, windows = []) => {
130
+ if (localWindow.frames.length > 0) {
131
+ for (let i = 0; i < localWindow.frames.length; i++) {
132
+ const childWindow = localWindow.frames[i];
133
+ windows.push(childWindow);
134
+ windows.concat(getChildWindows(childWindow, windows));
135
+ }
136
+ }
137
+ return windows;
138
+ };
89
139
 
90
- export { ClassList as C, allItemsAreString as a, createID as c, focusableElements as f, isTagName as i };
140
+ export { ClassList as C, allItemsAreString as a, createID as c, focusableElements as f, getWindows as g, isTagName as i };
@@ -25,6 +25,7 @@ export { MgModal as MgModal } from '../types/components/molecules/mg-modal/mg-mo
25
25
  export { MgPagination as MgPagination } from '../types/components/molecules/mg-pagination/mg-pagination';
26
26
  export { MgPanel as MgPanel } from '../types/components/molecules/mg-panel/mg-panel';
27
27
  export { MgPopover as MgPopover } from '../types/components/molecules/mg-popover/mg-popover';
28
+ export { MgSkipLinks as MgSkipLinks } from '../types/components/molecules/mg-skip-links/mg-skip-links';
28
29
  export { MgTabs as MgTabs } from '../types/components/molecules/mg-tabs/mg-tabs';
29
30
  export { MgTag as MgTag } from '../types/components/atoms/mg-tag/mg-tag';
30
31
  export { MgTooltip as MgTooltip } from '../types/components/atoms/mg-tooltip/mg-tooltip';
@@ -25,6 +25,7 @@ export { MgModal, defineCustomElement as defineCustomElementMgModal } from './mg
25
25
  export { MgPagination, defineCustomElement as defineCustomElementMgPagination } from './mg-pagination.js';
26
26
  export { MgPanel, defineCustomElement as defineCustomElementMgPanel } from './mg-panel.js';
27
27
  export { MgPopover, defineCustomElement as defineCustomElementMgPopover } from './mg-popover.js';
28
+ export { MgSkipLinks, defineCustomElement as defineCustomElementMgSkipLinks } from './mg-skip-links.js';
28
29
  export { MgTabs, defineCustomElement as defineCustomElementMgTabs } from './mg-tabs.js';
29
30
  export { MgTag, defineCustomElement as defineCustomElementMgTag } from './mg-tag.js';
30
31
  export { MgTooltip, defineCustomElement as defineCustomElementMgTooltip } from './mg-tooltip.js';
@@ -39,6 +39,9 @@ const pagination$1 = {
39
39
  const panel$1 = {
40
40
  editLabel: "Edit section title."
41
41
  };
42
+ const skipLinks$1 = {
43
+ navLabel: "Quick access"
44
+ };
42
45
  const general$1 = {
43
46
  confirm: "Confirm",
44
47
  cancel: "Cancel",
@@ -46,6 +49,10 @@ const general$1 = {
46
49
  next: "next",
47
50
  previous: "previous"
48
51
  };
52
+ const plusMenu$1 = {
53
+ moreLabel: "Additional menu",
54
+ badgeLabel: "Include notification(s)"
55
+ };
49
56
  const en = {
50
57
  errors: errors$1,
51
58
  nbCharLeft: nbCharLeft$1,
@@ -55,7 +62,9 @@ const en = {
55
62
  modal: modal$1,
56
63
  pagination: pagination$1,
57
64
  panel: panel$1,
58
- general: general$1
65
+ skipLinks: skipLinks$1,
66
+ general: general$1,
67
+ plusMenu: plusMenu$1
59
68
  };
60
69
 
61
70
  const errors = {
@@ -99,6 +108,9 @@ const pagination = {
99
108
  const panel = {
100
109
  editLabel: "Modifier le titre de la section."
101
110
  };
111
+ const skipLinks = {
112
+ navLabel: "Accès rapide"
113
+ };
102
114
  const general = {
103
115
  confirm: "Valider",
104
116
  cancel: "Annuler",
@@ -106,6 +118,10 @@ const general = {
106
118
  next: "suivant",
107
119
  previous: "précédent"
108
120
  };
121
+ const plusMenu = {
122
+ moreLabel: "Menu complémentaire",
123
+ badgeLabel: "Notification(s) incluse(s)"
124
+ };
109
125
  const fr = {
110
126
  errors: errors,
111
127
  nbCharLeft: nbCharLeft,
@@ -115,34 +131,63 @@ const fr = {
115
131
  modal: modal,
116
132
  pagination: pagination,
117
133
  panel: panel,
118
- general: general
134
+ skipLinks: skipLinks,
135
+ general: general,
136
+ plusMenu: plusMenu
119
137
  };
120
138
 
121
- const defaultLocale = 'en';
122
- const messages = { en, fr };
123
139
  /**
124
- * Get locale
140
+ * Format number to the locale currency
125
141
  *
126
- * @param {HTMLElement} element element that needs to know the locale to use
127
- * @returns {string} locale
142
+ * @param {number} number number to format
143
+ * @param {string} locale locale to apply
144
+ * @param {string} currency currency to apply
145
+ * @returns {string} formatted currency
128
146
  */
129
- const getLocale = (element) => {
130
- var _a;
131
- // validate locale
132
- const closestLang = Intl.NumberFormat.supportedLocalesOf((_a = element.closest('[lang]')) === null || _a === void 0 ? void 0 : _a.lang);
133
- return closestLang.length > 0 ? closestLang[0] : navigator.language || defaultLocale;
134
- };
147
+ function localeCurrency(number, locale, currency) {
148
+ return new Intl.NumberFormat(locale, { style: 'currency', currency }).format(number);
149
+ }
135
150
  /**
136
- * Get Intl object
151
+ * Format number to locale
152
+ *
153
+ * @param {number} number number to format
154
+ * @param {string} locale locale to apply
155
+ * @returns {string} formatted number
156
+ */
157
+ function localeNumber(number, locale) {
158
+ return new Intl.NumberFormat(locale).format(number);
159
+ }
160
+ /**
161
+ * Date RegExp
162
+ */
163
+ const dateRegExp = /^\d{4}-(0[1-9]|1[0-2])-(0[1-9]|[12]\d|3[01])$/;
164
+ /**
165
+ * Locale date format
166
+ *
167
+ * @param {string} date date to format
168
+ * @param {string} locale locale to apply
169
+ * @returns {string} formatted date
170
+ */
171
+ function localeDate(date, locale) {
172
+ if (typeof date !== 'string' || date === '' || !dateRegExp.test(date)) {
173
+ return '';
174
+ }
175
+ return new Intl.DateTimeFormat(locale).format(new Date(date));
176
+ }
177
+ /**
178
+ * Get locale and messages
137
179
  * We load the defined locale but for now we only support the first subtag for messages
138
180
  *
139
181
  * @param {HTMLElement} element element we need to get the language
182
+ * @param {unknown} messages messages to use
183
+ * @param {string} defaultLocale default messages locale
140
184
  * @returns {{ locale: string; messages: unknown }} messages object
141
185
  */
142
- // eslint-disable-next-line @typescript-eslint/no-explicit-any
143
- const initLocales = (element) => {
186
+ const getLocaleMessages = (element, messages, defaultLocale) => {
187
+ var _a;
144
188
  // Get local
145
- const locale = getLocale(element);
189
+ const closestLang = Intl.NumberFormat.supportedLocalesOf((_a = element.closest('[lang]')) === null || _a === void 0 ? void 0 : _a.lang);
190
+ const locale = closestLang.length > 0 ? closestLang[0] : navigator.language || defaultLocale;
146
191
  // Only keep first subtag
147
192
  const localeSubtag = locale.split('-').shift();
148
193
  // Return
@@ -152,4 +197,14 @@ const initLocales = (element) => {
152
197
  };
153
198
  };
154
199
 
155
- export { initLocales as i };
200
+ const defaultLocale = 'en';
201
+ const messages = { en, fr };
202
+ /**
203
+ * Get Intl object
204
+ *
205
+ * @param {HTMLElement} element element we need to get the language
206
+ * @returns {{ locale: string; messages: unknown }} messages object
207
+ */
208
+ const initLocales = (element) => getLocaleMessages(element, messages, defaultLocale);
209
+
210
+ export { localeCurrency as a, localeNumber as b, dateRegExp as d, initLocales as i, localeDate as l };
@@ -4,9 +4,9 @@ import { C as ClassList } from './components.utils.js';
4
4
  /**
5
5
  * List of all possibles variants
6
6
  */
7
- const variants = ['info', 'primary', 'secondary', 'success', 'warning', 'danger'];
7
+ const variants = ['info', 'primary', 'secondary', 'success', 'warning', 'danger', 'text-color'];
8
8
 
9
- const mgBadgeCss = ".sr-only{border:0 !important;clip:rect(1px, 1px, 1px, 1px) !important;-webkit-clip-path:inset(50%) !important;clip-path:inset(50%) !important;height:1px !important;margin:-1px !important;overflow:hidden !important;padding:0 !important;position:absolute !important;width:1px !important;white-space:nowrap !important}*:focus:not(:focus-visible){outline:none}@media (prefers-reduced-motion){.mg-a11y-animation{animation:none !important;transition:none !important}}.mg-badge{padding:0 0.4rem;height:var(--mg-badge-size);min-width:var(--mg-badge-size);box-sizing:border-box;border:0.1rem solid;border-radius:calc(var(--mg-badge-size) / 2);font-size:var(--mg-badge-font-size);font-weight:600;text-align:center;line-height:var(--mg-badge-size)}.mg-badge.mg-badge--primary{background-color:hsl(var(--color-dark));border-color:hsl(var(--color-dark));color:hsl(var(--color-light))}.mg-badge.mg-badge--primary.mg-badge--outline{background-color:transparent;color:hsl(var(--color-dark))}.mg-badge.mg-badge--secondary{background-color:hsl(var(--color-light));border-color:hsl(var(--color-light));color:hsl(var(--color-dark))}.mg-badge.mg-badge--secondary.mg-badge--outline{background-color:transparent;color:hsl(var(--color-light))}.mg-badge.mg-badge--success{background-color:hsl(var(--color-success));border-color:hsl(var(--color-success));color:hsl(var(--color-dark))}.mg-badge.mg-badge--success.mg-badge--outline{background-color:transparent;color:hsl(var(--color-success))}.mg-badge.mg-badge--warning{background-color:hsl(var(--color-warning));border-color:hsl(var(--color-warning));color:hsl(var(--color-dark))}.mg-badge.mg-badge--warning.mg-badge--outline{background-color:transparent;color:hsl(var(--color-warning))}.mg-badge.mg-badge--danger{background-color:hsl(var(--color-danger));border-color:hsl(var(--color-danger));color:hsl(var(--color-light))}.mg-badge.mg-badge--danger.mg-badge--outline{background-color:transparent;color:hsl(var(--color-danger))}.mg-badge.mg-badge--info{background-color:hsl(var(--color-info));border-color:hsl(var(--color-info));color:hsl(var(--color-light))}.mg-badge.mg-badge--info.mg-badge--outline{background-color:transparent;color:hsl(var(--color-info))}.mg-badge,mg-badge{display:inline-flex;align-items:center;justify-content:center}";
9
+ const mgBadgeCss = ".sr-only{border:0 !important;clip:rect(1px, 1px, 1px, 1px) !important;-webkit-clip-path:inset(50%) !important;clip-path:inset(50%) !important;height:1px !important;margin:-1px !important;overflow:hidden !important;padding:0 !important;position:absolute !important;width:1px !important;white-space:nowrap !important}*:focus:not(:focus-visible){outline:none}@media (prefers-reduced-motion){.mg-a11y-animation{animation:none !important;transition:none !important}}.mg-badge{padding:0 0.4rem;height:var(--mg-badge-size);min-width:var(--mg-badge-size);box-sizing:border-box;border:0.1rem solid;border-radius:calc(var(--mg-badge-size) / 2);font-size:var(--mg-badge-font-size);font-weight:600;text-align:center;line-height:var(--mg-badge-size)}.mg-badge.mg-badge--primary{background-color:hsl(var(--color-dark));border-color:hsl(var(--color-dark));color:hsl(var(--color-light))}.mg-badge.mg-badge--primary.mg-badge--outline{background-color:transparent;color:hsl(var(--color-dark))}.mg-badge.mg-badge--secondary{background-color:hsl(var(--color-light));border-color:hsl(var(--color-light));color:hsl(var(--color-dark))}.mg-badge.mg-badge--secondary.mg-badge--outline{background-color:transparent;color:hsl(var(--color-light))}.mg-badge.mg-badge--success{background-color:hsl(var(--color-success));border-color:hsl(var(--color-success));color:hsl(var(--color-dark))}.mg-badge.mg-badge--success.mg-badge--outline{background-color:transparent;color:hsl(var(--color-success))}.mg-badge.mg-badge--warning{background-color:hsl(var(--color-warning));border-color:hsl(var(--color-warning));color:hsl(var(--color-dark))}.mg-badge.mg-badge--warning.mg-badge--outline{background-color:transparent;color:hsl(var(--color-warning))}.mg-badge.mg-badge--danger{background-color:hsl(var(--color-danger));border-color:hsl(var(--color-danger));color:hsl(var(--color-light))}.mg-badge.mg-badge--danger.mg-badge--outline{background-color:transparent;color:hsl(var(--color-danger))}.mg-badge.mg-badge--info{background-color:hsl(var(--color-info));border-color:hsl(var(--color-info));color:hsl(var(--color-light))}.mg-badge.mg-badge--info.mg-badge--outline{background-color:transparent;color:hsl(var(--color-info))}.mg-badge.mg-badge--text-color{background-color:currentColor;border-color:currentColor}.mg-badge.mg-badge--text-color .mg-badge__value{color:hsl(var(--mg-badge-text-color, var(--color-light)))}.mg-badge.mg-badge--text-color.mg-badge--outline{background-color:transparent}.mg-badge.mg-badge--text-color.mg-badge--outline .mg-badge__value{color:currentColor}.mg-badge,mg-badge{display:inline-flex;align-items:center;justify-content:center}";
10
10
 
11
11
  const MgBadge = /*@__PURE__*/ proxyCustomElement(class extends HTMLElement {
12
12
  constructor() {
@@ -18,18 +18,15 @@ const MgBadge = /*@__PURE__*/ proxyCustomElement(class extends HTMLElement {
18
18
  ************/
19
19
  // Classes
20
20
  this.classOutline = `mg-badge--outline`;
21
- /**
22
- * Define button variant
23
- */
24
- this.variant = variants[0]; // info
25
- /**
26
- * Component classes
27
- */
21
+ this.value = undefined;
22
+ this.label = undefined;
23
+ this.variant = variants[0];
24
+ this.outline = undefined;
28
25
  this.classList = new ClassList(['mg-badge']);
29
26
  }
30
27
  validateValue(newValue) {
31
28
  if (`${newValue}`.match(/^(\d+\+*|[?*!a-z])$/i) === null) {
32
- throw new Error('<mg-badge> prop "value" must be interger or ponctuation character.');
29
+ throw new Error('<mg-badge> prop "value" must be integer or ponctuation character.');
33
30
  }
34
31
  }
35
32
  validateLabel(newValue) {
@@ -71,7 +68,7 @@ const MgBadge = /*@__PURE__*/ proxyCustomElement(class extends HTMLElement {
71
68
  * @returns {HTMLElement} HTML Element
72
69
  */
73
70
  render() {
74
- return (h("span", { class: this.classList.join() }, this.value, h("span", { class: "sr-only" }, this.label)));
71
+ return (h("span", { class: this.classList.join() }, h("span", { class: "mg-badge__value" }, this.value), h("span", { class: "sr-only" }, this.label)));
75
72
  }
76
73
  static get watchers() { return {
77
74
  "value": ["validateValue"],
@@ -5,9 +5,9 @@ import { d as defineCustomElement$1 } from './mg-icon2.js';
5
5
  /**
6
6
  * List of all possibles variants
7
7
  */
8
- const variants = ['primary', 'secondary', 'danger', 'danger-alt', 'info', 'flat', 'success'];
8
+ const variants = ['primary', 'secondary', 'danger', 'danger-alt', 'info', 'flat', 'success', 'link'];
9
9
 
10
- const mgButtonCss = ":host{display:inline-block;vertical-align:middle;max-width:100%}:host(:focus-visible){outline:0}:host(:focus-visible) .mg-button{outline-color:-webkit-focus-ring-color;outline-style:auto;outline-width:0.2rem}:host(:hover) .mg-button--flat:not(.mg-button--disabled),:host(:focus) .mg-button--flat:not(.mg-button--disabled),:host(:active) .mg-button--flat:not(.mg-button--disabled){background:hsla(var(--color-dark), 0.1)}:host([full-width]){display:block}:host([disabled]),:host([aria-disabled=true]){pointer-events:none}.mg-button.mg-button--primary{border-color:hsl(var(--mg-button-primary-border-color, var(--mg-button-primary-color-h), var(--mg-button-primary-color-s), calc(var(--mg-button-primary-color-l) - var(--mg-button-border-variation) * 10%)));color:hsl(var(--mg-button-primary-font-color));background:linear-gradient(to bottom, hsl(var(--mg-button-primary-color-h), var(--mg-button-primary-color-s), var(--mg-button-primary-color-l)), hsl(var(--mg-button-primary-color-h), var(--mg-button-primary-color-s), calc(var(--mg-button-primary-color-l) - var(--mg-button-gradient) * 10%)))}:host(:hover) .mg-button--primary:not(.mg-button--disabled),:host(:focus) .mg-button--primary:not(.mg-button--disabled),:host(:active) .mg-button--primary:not(.mg-button--disabled){background:hsl(var(--mg-button-primary-color-h), var(--mg-button-primary-color-s), var(--mg-button-primary-color-l))}.mg-button.mg-button--secondary{border-color:hsl(var(--mg-button-secondary-border-color, var(--mg-button-secondary-color-h), var(--mg-button-secondary-color-s), calc(var(--mg-button-secondary-color-l) - var(--mg-button-border-variation) * 10%)));color:hsl(var(--mg-button-secondary-font-color));background:linear-gradient(to bottom, hsl(var(--mg-button-secondary-color-h), var(--mg-button-secondary-color-s), var(--mg-button-secondary-color-l)), hsl(var(--mg-button-secondary-color-h), var(--mg-button-secondary-color-s), calc(var(--mg-button-secondary-color-l) - var(--mg-button-gradient) * 10%)))}:host(:hover) .mg-button--secondary:not(.mg-button--disabled),:host(:focus) .mg-button--secondary:not(.mg-button--disabled),:host(:active) .mg-button--secondary:not(.mg-button--disabled){background:hsl(var(--mg-button-secondary-color-h), var(--mg-button-secondary-color-s), var(--mg-button-secondary-color-l))}.mg-button.mg-button--danger{border-color:hsl(var(--mg-button-danger-border-color, var(--color-danger-h), var(--color-danger-s), calc(var(--color-danger-l) - var(--mg-button-border-variation) * 10%)));color:hsl(var(--color-neutral));background:linear-gradient(to bottom, hsl(var(--color-danger-h), var(--color-danger-s), var(--color-danger-l)), hsl(var(--color-danger-h), var(--color-danger-s), calc(var(--color-danger-l) - var(--mg-button-gradient) * 10%)))}:host(:hover) .mg-button--danger:not(.mg-button--disabled),:host(:focus) .mg-button--danger:not(.mg-button--disabled),:host(:active) .mg-button--danger:not(.mg-button--disabled){background:hsl(var(--color-danger-h), var(--color-danger-s), var(--color-danger-l))}.mg-button.mg-button--danger-alt{border-color:hsl(var(--mg-button-danger-alt-border-color, var(--color-neutral-h), var(--color-neutral-s), calc(var(--color-neutral-l) - var(--mg-button-border-variation) * 10%)));color:hsl(var(--color-danger));background:linear-gradient(to bottom, hsl(var(--color-neutral-h), var(--color-neutral-s), var(--color-neutral-l)), hsl(var(--color-neutral-h), var(--color-neutral-s), calc(var(--color-neutral-l) - var(--mg-button-gradient) * 10%)))}:host(:hover) .mg-button--danger-alt:not(.mg-button--disabled),:host(:focus) .mg-button--danger-alt:not(.mg-button--disabled),:host(:active) .mg-button--danger-alt:not(.mg-button--disabled){background:hsl(var(--color-neutral-h), var(--color-neutral-s), var(--color-neutral-l))}.mg-button.mg-button--info{border-color:hsl(var(--mg-button-info-border-color, var(--color-info-h), var(--color-info-s), calc(var(--color-info-l) - var(--mg-button-border-variation) * 10%)));color:hsl(var(--color-neutral));background:linear-gradient(to bottom, hsl(var(--color-info-h), var(--color-info-s), var(--color-info-l)), hsl(var(--color-info-h), var(--color-info-s), calc(var(--color-info-l) - var(--mg-button-gradient) * 10%)))}:host(:hover) .mg-button--info:not(.mg-button--disabled),:host(:focus) .mg-button--info:not(.mg-button--disabled),:host(:active) .mg-button--info:not(.mg-button--disabled){background:hsl(var(--color-info-h), var(--color-info-s), var(--color-info-l))}.mg-button.mg-button--success{border-color:hsl(var(--mg-button-success-border-color, var(--color-success-h), var(--color-success-s), calc(var(--color-success-l) - var(--mg-button-border-variation) * 10%)));color:hsl(var(--color-dark));background:linear-gradient(to bottom, hsl(var(--color-success-h), var(--color-success-s), var(--color-success-l)), hsl(var(--color-success-h), var(--color-success-s), calc(var(--color-success-l) - var(--mg-button-gradient) * 10%)))}:host(:hover) .mg-button--success:not(.mg-button--disabled),:host(:focus) .mg-button--success:not(.mg-button--disabled),:host(:active) .mg-button--success:not(.mg-button--disabled){background:hsl(var(--color-success-h), var(--color-success-s), var(--color-success-l))}.mg-button{position:relative;display:inline-flex;align-items:center;column-gap:0.6rem;padding:calc((var(--default-size) - 0.2rem - var(--font-size) * var(--line-height)) / 2) 1.1rem;min-height:var(--default-size);box-sizing:border-box;border-top-right-radius:var(--mg-button-border-radius-top-right, var(--mg-button-border-radius));border-top-left-radius:var(--mg-button-border-radius-top-left, var(--mg-button-border-radius));border-bottom-right-radius:var(--mg-button-border-radius-bottom-right, var(--mg-button-border-radius));border-bottom-left-radius:var(--mg-button-border-radius-bottom-left, var(--mg-button-border-radius));cursor:pointer;background-image:none;border-top-width:var(--mg-button-border-top-width, 0.1rem);border-right-width:var(--mg-button-border-right-width, 0.1rem);border-bottom-width:var(--mg-button-border-bottom-width, 0.1rem);border-left-width:var(--mg-button-border-left-width, 0.1rem);border-style:solid;text-decoration:none;font-family:inherit;font-weight:var(--mg-button-font-weight, normal);text-align:left;font-size:var(--font-size);touch-action:manipulation}.mg-button.mg-button--disabled{opacity:var(--mg-button-disabled-opacity);cursor:default}.mg-button.mg-button--icon{padding:0;justify-content:center;width:var(--default-size);height:var(--default-size);border-top-right-radius:var(--mg-button-border-radius-top-right, var(--mg-button-icon-border-radius));border-top-left-radius:var(--mg-button-border-radius-top-left, var(--mg-button-icon-border-radius));border-bottom-right-radius:var(--mg-button-border-radius-bottom-right, var(--mg-button-icon-border-radius));border-bottom-left-radius:var(--mg-button-border-radius-bottom-left, var(--mg-button-icon-border-radius));font-size:var(--font-size);line-height:var(--font-size)}.mg-button.mg-button--flat{background:none;border:none}.mg-button.mg-button--full-width{display:flex;justify-content:center}.mg-button.mg-button--loading>mg-icon:first-of-type{position:absolute;left:50%;top:50%;transform:translate(-50%, -50%)}.mg-button.mg-button--loading .mg-button__content{opacity:0}.mg-button mg-icon:only-child,.mg-button ::slotted(mg-icon){display:inline-flex;flex-shrink:0;line-height:1;margin:auto 0}.mg-button slot,.mg-button ::slotted(*:not(mg-icon)){text-decoration:none;font-family:inherit;font-weight:var(--mg-button-font-weight, normal);text-align:left;font-size:var(--font-size);display:flex;align-items:center;column-gap:0.6rem}";
10
+ const mgButtonCss = ":host{display:inline-block;vertical-align:middle;max-width:100%}:host(:focus-visible){outline:0}:host(:focus-visible) .mg-button{outline-color:-webkit-focus-ring-color;outline-style:auto;outline-width:0.2rem}:host(:hover) .mg-button--flat:not(.mg-button--disabled),:host(:focus) .mg-button--flat:not(.mg-button--disabled),:host(:active) .mg-button--flat:not(.mg-button--disabled){background:hsl(var(--color-dark), 0.1)}:host([full-width]){display:block}:host([disabled]),:host([aria-disabled=true]){pointer-events:none}.mg-button.mg-button--primary{border-color:hsl(var(--mg-button-primary-border-color, var(--mg-button-primary-color-h), var(--mg-button-primary-color-s), calc(var(--mg-button-primary-color-l) - var(--mg-button-border-variation) * 10%)));color:hsl(var(--mg-button-primary-font-color));background:linear-gradient(to bottom, hsl(var(--mg-button-primary-color-h), var(--mg-button-primary-color-s), var(--mg-button-primary-color-l)), hsl(var(--mg-button-primary-color-h), var(--mg-button-primary-color-s), calc(var(--mg-button-primary-color-l) - var(--mg-button-gradient) * 10%)))}:host(:hover) .mg-button--primary:not(.mg-button--disabled),:host(:focus) .mg-button--primary:not(.mg-button--disabled),:host(:active) .mg-button--primary:not(.mg-button--disabled){background:hsl(var(--mg-button-primary-color-h), var(--mg-button-primary-color-s), var(--mg-button-primary-color-l))}.mg-button.mg-button--secondary{border-color:hsl(var(--mg-button-secondary-border-color, var(--mg-button-secondary-color-h), var(--mg-button-secondary-color-s), calc(var(--mg-button-secondary-color-l) - var(--mg-button-border-variation) * 10%)));color:hsl(var(--mg-button-secondary-font-color));background:linear-gradient(to bottom, hsl(var(--mg-button-secondary-color-h), var(--mg-button-secondary-color-s), var(--mg-button-secondary-color-l)), hsl(var(--mg-button-secondary-color-h), var(--mg-button-secondary-color-s), calc(var(--mg-button-secondary-color-l) - var(--mg-button-gradient) * 10%)))}:host(:hover) .mg-button--secondary:not(.mg-button--disabled),:host(:focus) .mg-button--secondary:not(.mg-button--disabled),:host(:active) .mg-button--secondary:not(.mg-button--disabled){background:hsl(var(--mg-button-secondary-color-h), var(--mg-button-secondary-color-s), var(--mg-button-secondary-color-l))}.mg-button.mg-button--danger{border-color:hsl(var(--mg-button-danger-border-color, var(--color-danger-h), var(--color-danger-s), calc(var(--color-danger-l) - var(--mg-button-border-variation) * 10%)));color:hsl(var(--color-neutral));background:linear-gradient(to bottom, hsl(var(--color-danger-h), var(--color-danger-s), var(--color-danger-l)), hsl(var(--color-danger-h), var(--color-danger-s), calc(var(--color-danger-l) - var(--mg-button-gradient) * 10%)))}:host(:hover) .mg-button--danger:not(.mg-button--disabled),:host(:focus) .mg-button--danger:not(.mg-button--disabled),:host(:active) .mg-button--danger:not(.mg-button--disabled){background:hsl(var(--color-danger-h), var(--color-danger-s), var(--color-danger-l))}.mg-button.mg-button--danger-alt{border-color:hsl(var(--mg-button-danger-alt-border-color, var(--color-neutral-h), var(--color-neutral-s), calc(var(--color-neutral-l) - var(--mg-button-border-variation) * 10%)));color:hsl(var(--color-danger));background:linear-gradient(to bottom, hsl(var(--color-neutral-h), var(--color-neutral-s), var(--color-neutral-l)), hsl(var(--color-neutral-h), var(--color-neutral-s), calc(var(--color-neutral-l) - var(--mg-button-gradient) * 10%)))}:host(:hover) .mg-button--danger-alt:not(.mg-button--disabled),:host(:focus) .mg-button--danger-alt:not(.mg-button--disabled),:host(:active) .mg-button--danger-alt:not(.mg-button--disabled){background:hsl(var(--color-neutral-h), var(--color-neutral-s), var(--color-neutral-l))}.mg-button.mg-button--info{border-color:hsl(var(--mg-button-info-border-color, var(--color-info-h), var(--color-info-s), calc(var(--color-info-l) - var(--mg-button-border-variation) * 10%)));color:hsl(var(--color-neutral));background:linear-gradient(to bottom, hsl(var(--color-info-h), var(--color-info-s), var(--color-info-l)), hsl(var(--color-info-h), var(--color-info-s), calc(var(--color-info-l) - var(--mg-button-gradient) * 10%)))}:host(:hover) .mg-button--info:not(.mg-button--disabled),:host(:focus) .mg-button--info:not(.mg-button--disabled),:host(:active) .mg-button--info:not(.mg-button--disabled){background:hsl(var(--color-info-h), var(--color-info-s), var(--color-info-l))}.mg-button.mg-button--success{border-color:hsl(var(--mg-button-success-border-color, var(--color-success-h), var(--color-success-s), calc(var(--color-success-l) - var(--mg-button-border-variation) * 10%)));color:hsl(var(--color-dark));background:linear-gradient(to bottom, hsl(var(--color-success-h), var(--color-success-s), var(--color-success-l)), hsl(var(--color-success-h), var(--color-success-s), calc(var(--color-success-l) - var(--mg-button-gradient) * 10%)))}:host(:hover) .mg-button--success:not(.mg-button--disabled),:host(:focus) .mg-button--success:not(.mg-button--disabled),:host(:active) .mg-button--success:not(.mg-button--disabled){background:hsl(var(--color-success-h), var(--color-success-s), var(--color-success-l))}.mg-button{position:relative;display:inline-flex;align-items:center;column-gap:0.6rem;padding:calc((var(--default-size) - 0.2rem - var(--font-size) * var(--line-height)) / 2) 1.1rem;min-height:var(--default-size);box-sizing:border-box;border-top-right-radius:var(--mg-button-border-radius-top-right, var(--mg-button-border-radius));border-top-left-radius:var(--mg-button-border-radius-top-left, var(--mg-button-border-radius));border-bottom-right-radius:var(--mg-button-border-radius-bottom-right, var(--mg-button-border-radius));border-bottom-left-radius:var(--mg-button-border-radius-bottom-left, var(--mg-button-border-radius));cursor:pointer;background-image:none;border-top-width:var(--mg-button-border-top-width, 0.1rem);border-right-width:var(--mg-button-border-right-width, 0.1rem);border-bottom-width:var(--mg-button-border-bottom-width, 0.1rem);border-left-width:var(--mg-button-border-left-width, 0.1rem);border-style:solid;text-decoration:none;font-family:inherit;font-weight:var(--mg-button-font-weight, normal);text-align:left;font-size:var(--font-size);touch-action:manipulation}.mg-button.mg-button--disabled{opacity:var(--mg-button-disabled-opacity);cursor:default}.mg-button.mg-button--icon{padding:0;justify-content:center;width:var(--default-size);height:var(--default-size);border-top-right-radius:var(--mg-button-border-radius-top-right, var(--mg-button-icon-border-radius));border-top-left-radius:var(--mg-button-border-radius-top-left, var(--mg-button-icon-border-radius));border-bottom-right-radius:var(--mg-button-border-radius-bottom-right, var(--mg-button-icon-border-radius));border-bottom-left-radius:var(--mg-button-border-radius-bottom-left, var(--mg-button-icon-border-radius));font-size:var(--font-size);line-height:var(--font-size)}.mg-button.mg-button--flat{background:none;border:none}.mg-button.mg-button--link{padding:unset;min-height:unset;background:unset;border:unset;border-radius:unset;text-decoration:underline}.mg-button.mg-button--link slot{font-weight:600}.mg-button.mg-button--link:hover{text-decoration:none}.mg-button.mg-button--full-width{display:flex;justify-content:center}.mg-button.mg-button--loading>mg-icon:first-of-type{position:absolute;left:50%;top:50%;transform:translate(-50%, -50%)}.mg-button.mg-button--loading .mg-button__content{opacity:0}.mg-button mg-icon:only-child,.mg-button ::slotted(mg-icon){display:inline-flex;flex-shrink:0;line-height:1;margin:auto 0}.mg-button slot,.mg-button ::slotted(*:not(mg-icon)){text-decoration:none;font-family:inherit;font-weight:var(--mg-button-font-weight, normal);text-align:left;font-size:var(--font-size);display:flex;align-items:center;column-gap:0.6rem}";
11
11
 
12
12
  const MgButton = /*@__PURE__*/ proxyCustomElement(class extends HTMLElement {
13
13
  constructor() {
@@ -21,34 +21,6 @@ const MgButton = /*@__PURE__*/ proxyCustomElement(class extends HTMLElement {
21
21
  this.classDisabled = 'mg-button--disabled';
22
22
  this.classLoading = 'mg-button--loading';
23
23
  this.classFullWidth = 'mg-button--full-width';
24
- /**
25
- * Define button variant
26
- */
27
- this.variant = variants[0]; // Primary
28
- /**
29
- * Set button to full-width
30
- */
31
- this.fullWidth = false;
32
- /**
33
- * Define if button is round.
34
- * Used for icon button.
35
- */
36
- this.isIcon = false;
37
- /**
38
- * Option to set input disable on click, in order to prevent multi-click.
39
- * Parent component have to remove the attribute 'disabled' when the process ends.
40
- */
41
- this.disableOnClick = false;
42
- /**
43
- * Define if button is loading, default to false.
44
- * Trigger when button is clicked or key-up ['enter', 'space], then value change to true.
45
- * It's required to reset to false when action/promise in parent is done to stop the loading state
46
- */
47
- this.loading = false;
48
- /**
49
- * Component classes
50
- */
51
- this.classList = new ClassList(['mg-button']);
52
24
  /**
53
25
  * Trigger actions onClick event
54
26
  *
@@ -91,6 +63,17 @@ const MgButton = /*@__PURE__*/ proxyCustomElement(class extends HTMLElement {
91
63
  this.element.dispatchEvent(new MouseEvent('click', { bubbles: true }));
92
64
  }
93
65
  };
66
+ this.variant = variants[0];
67
+ this.identifier = undefined;
68
+ this.label = undefined;
69
+ this.type = undefined;
70
+ this.fullWidth = false;
71
+ this.form = undefined;
72
+ this.disabled = undefined;
73
+ this.isIcon = false;
74
+ this.disableOnClick = false;
75
+ this.loading = false;
76
+ this.classList = new ClassList(['mg-button']);
94
77
  }
95
78
  validateVariant(newValue, oldValue) {
96
79
  if (!variants.includes(newValue)) {
@@ -1,40 +1,4 @@
1
- import { proxyCustomElement, HTMLElement, h } from '@stencil/core/internal/client';
2
-
3
- const mgCardCss = ".mg-card{padding:var(--mg-card-padding);border-radius:var(--mg-card-border-radius);background:var(--mg-card-background);border:var(--mg-card-border);box-shadow:var(--mg-card-box-shadow)}";
4
-
5
- const MgCard$1 = /*@__PURE__*/ proxyCustomElement(class extends HTMLElement {
6
- constructor() {
7
- super();
8
- this.__registerHost();
9
- this.__attachShadow();
10
- }
11
- /*************
12
- * Lifecycle *
13
- *************/
14
- /**
15
- * Render
16
- *
17
- * @returns {HTMLElement} HTML Element
18
- */
19
- render() {
20
- return (h("div", { class: "mg-card" }, h("slot", null)));
21
- }
22
- static get style() { return mgCardCss; }
23
- }, [1, "mg-card"]);
24
- function defineCustomElement$1() {
25
- if (typeof customElements === "undefined") {
26
- return;
27
- }
28
- const components = ["mg-card"];
29
- components.forEach(tagName => { switch (tagName) {
30
- case "mg-card":
31
- if (!customElements.get(tagName)) {
32
- customElements.define(tagName, MgCard$1);
33
- }
34
- break;
35
- } });
36
- }
37
- defineCustomElement$1();
1
+ import { M as MgCard$1, d as defineCustomElement$1 } from './mg-card2.js';
38
2
 
39
3
  const MgCard = MgCard$1;
40
4
  const defineCustomElement = defineCustomElement$1;
@@ -0,0 +1,39 @@
1
+ import { proxyCustomElement, HTMLElement, h } from '@stencil/core/internal/client';
2
+
3
+ const mgCardCss = ".mg-card{position:relative;width:100%;padding:var(--mg-card-padding, var(--mg-card-padding-default));overflow:var(--mg-card-overflow, var(--mg-card-overflow-default));box-sizing:border-box;z-index:inherit;background:var(--mg-card-background, var(--mg-card-background-default));border:var(--mg-card-border, var(--mg-card-border-default));border-radius:var(--mg-card-border-radius, var(--mg-card-border-radius-default));box-shadow:var(--mg-card-box-shadow, var(--mg-card-box-shadow-default))}.mg-card ::slotted(*){--mg-card-border:var(--mg-card-border-default);--mg-card-padding:var(--mg-card-padding-default);--mg-card-border-radius:var(--mg-card-border-radius-default);--mg-card-background:var(--mg-card-background-default);--mg-card-box-shadow:var(--mg-card-box-shadow-default)}";
4
+
5
+ const MgCard = /*@__PURE__*/ proxyCustomElement(class extends HTMLElement {
6
+ constructor() {
7
+ super();
8
+ this.__registerHost();
9
+ this.__attachShadow();
10
+ }
11
+ /*************
12
+ * Lifecycle *
13
+ *************/
14
+ /**
15
+ * Render
16
+ *
17
+ * @returns {HTMLElement} HTML Element
18
+ */
19
+ render() {
20
+ return (h("div", { class: "mg-card" }, h("slot", null)));
21
+ }
22
+ static get style() { return mgCardCss; }
23
+ }, [1, "mg-card"]);
24
+ function defineCustomElement() {
25
+ if (typeof customElements === "undefined") {
26
+ return;
27
+ }
28
+ const components = ["mg-card"];
29
+ components.forEach(tagName => { switch (tagName) {
30
+ case "mg-card":
31
+ if (!customElements.get(tagName)) {
32
+ customElements.define(tagName, MgCard);
33
+ }
34
+ break;
35
+ } });
36
+ }
37
+ defineCustomElement();
38
+
39
+ export { MgCard as M, defineCustomElement as d };
@@ -7,10 +7,9 @@ const MgCharacterLeft = /*@__PURE__*/ proxyCustomElement(class extends HTMLEleme
7
7
  constructor() {
8
8
  super();
9
9
  this.__registerHost();
10
- /**
11
- * Sets the characters to count
12
- */
10
+ this.identifier = undefined;
13
11
  this.characters = '';
12
+ this.maxlength = undefined;
14
13
  }
15
14
  validateMaxlength(newValue) {
16
15
  if (typeof newValue !== 'number') {
@@ -9,14 +9,6 @@ const MgDetails$1 = /*@__PURE__*/ proxyCustomElement(class extends HTMLElement {
9
9
  this.__registerHost();
10
10
  this.__attachShadow();
11
11
  this.expandedChange = createEvent(this, "expanded-change", 7);
12
- /**
13
- * Hide summary element
14
- */
15
- this.hideSummary = false;
16
- /**
17
- * Define if details are diplayed
18
- */
19
- this.expanded = false;
20
12
  /**
21
13
  * Handle details toggle
22
14
  *
@@ -25,6 +17,10 @@ const MgDetails$1 = /*@__PURE__*/ proxyCustomElement(class extends HTMLElement {
25
17
  this.handleToggle = () => {
26
18
  this.expanded = this.details.open;
27
19
  };
20
+ this.toggleClosed = undefined;
21
+ this.toggleOpened = undefined;
22
+ this.hideSummary = false;
23
+ this.expanded = false;
28
24
  }
29
25
  validateTitles(newValue) {
30
26
  if (newValue === undefined || newValue.trim() === '') {
@@ -7,12 +7,6 @@ const MgDivider$1 = /*@__PURE__*/ proxyCustomElement(class extends HTMLElement {
7
7
  super();
8
8
  this.__registerHost();
9
9
  this.__attachShadow();
10
- /**************
11
- * Decorators *
12
- **************/
13
- /**
14
- * Define component size
15
- */
16
10
  this.size = 'regular';
17
11
  }
18
12
  /**
@@ -13,28 +13,6 @@ const MgForm$1 = /*@__PURE__*/ proxyCustomElement(class extends HTMLElement {
13
13
  this.formSubmit = createEvent(this, "form-submit", 7);
14
14
  // Classes
15
15
  this.classAllRequired = 'mg-form--all-required';
16
- /**
17
- * Identifier is used for the element ID (id is a reserved prop in Stencil.js)
18
- * If not set, it will be created.
19
- */
20
- this.identifier = createID('mg-form');
21
- /**
22
- * Input name
23
- * If not set the value equals the identifier
24
- */
25
- this.name = this.identifier;
26
- /**
27
- * Define if form is readonly
28
- */
29
- this.readonly = false;
30
- /**
31
- * Define if form is disabled
32
- */
33
- this.disabled = false;
34
- /**
35
- * Component classes
36
- */
37
- this.classList = new ClassList(['mg-form']);
38
16
  /**
39
17
  * Define required message based on mg-inputs required elements
40
18
  * Also
@@ -104,6 +82,14 @@ const MgForm$1 = /*@__PURE__*/ proxyCustomElement(class extends HTMLElement {
104
82
  input.addEventListener('input-valid', this.checkValidity);
105
83
  });
106
84
  };
85
+ this.identifier = createID('mg-form');
86
+ this.name = this.identifier;
87
+ this.readonly = false;
88
+ this.disabled = false;
89
+ this.valid = undefined;
90
+ this.invalid = undefined;
91
+ this.classList = new ClassList(['mg-form']);
92
+ this.requiredMessage = undefined;
107
93
  }
108
94
  handleAttributeChange() {
109
95
  this.setMgInputs();