@mgdis/mg-components 5.6.0 → 5.7.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 (184) hide show
  1. package/dist/cjs/{index-4dcc1812.js → index-5e7ede97.js} +109 -3
  2. package/dist/cjs/loader.cjs.js +4 -3
  3. package/dist/cjs/{mg-badge_30.cjs.entry.js → mg-action-more_31.cjs.entry.js} +623 -445
  4. package/dist/cjs/mg-components.cjs.js +7 -3
  5. package/dist/collection/collection-manifest.json +5 -4
  6. package/dist/collection/components/atoms/mg-badge/mg-badge.js +1 -1
  7. package/dist/collection/components/atoms/mg-button/mg-button.css +7 -21
  8. package/dist/collection/components/atoms/mg-button/mg-button.js +1 -1
  9. package/dist/collection/components/atoms/mg-icon/mg-icon.conf.js +27 -27
  10. package/dist/collection/components/atoms/mg-icon/mg-icon.js +3 -3
  11. package/dist/collection/components/atoms/mg-tag/mg-tag.js +1 -1
  12. package/dist/collection/components/atoms/mg-tooltip/mg-tooltip.js +12 -15
  13. package/dist/collection/components/molecules/inputs/MgInput.js +6 -1
  14. package/dist/collection/components/molecules/inputs/mg-input-checkbox/mg-input-checkbox.css +4 -3
  15. package/dist/collection/components/molecules/inputs/mg-input-checkbox/mg-input-checkbox.js +3 -2
  16. package/dist/collection/components/molecules/inputs/mg-input-date/mg-input-date.css +4 -0
  17. package/dist/collection/components/molecules/inputs/mg-input-date/mg-input-date.js +1 -1
  18. package/dist/collection/components/molecules/inputs/mg-input-numeric/mg-input-numeric.css +4 -0
  19. package/dist/collection/components/molecules/inputs/mg-input-numeric/mg-input-numeric.js +1 -1
  20. package/dist/collection/components/molecules/inputs/mg-input-password/mg-input-password.css +4 -0
  21. package/dist/collection/components/molecules/inputs/mg-input-radio/mg-input-radio.css +4 -3
  22. package/dist/collection/components/molecules/inputs/mg-input-radio/mg-input-radio.js +2 -1
  23. package/dist/collection/components/molecules/inputs/mg-input-select/mg-input-select.css +4 -0
  24. package/dist/collection/components/molecules/inputs/mg-input-select/mg-input-select.js +1 -1
  25. package/dist/collection/components/molecules/inputs/mg-input-text/mg-input-text.css +4 -0
  26. package/dist/collection/components/molecules/inputs/mg-input-textarea/mg-input-textarea.css +4 -0
  27. package/dist/collection/components/molecules/inputs/mg-input-textarea/mg-input-textarea.js +1 -1
  28. package/dist/collection/components/molecules/inputs/mg-input-toggle/mg-input-toggle.css +4 -4
  29. package/dist/collection/components/molecules/menu/mg-menu/mg-menu.js +2 -3
  30. package/dist/collection/components/molecules/menu/mg-menu-item/mg-menu-item.css +2 -1
  31. package/dist/collection/components/molecules/menu/mg-menu-item/mg-menu-item.js +31 -11
  32. package/dist/collection/components/molecules/mg-action-more/mg-action-more.conf.js +1 -0
  33. package/dist/collection/components/molecules/mg-action-more/mg-action-more.css +38 -0
  34. package/dist/collection/components/molecules/mg-action-more/mg-action-more.js +252 -0
  35. package/dist/collection/components/molecules/mg-form/mg-form.js +2 -2
  36. package/dist/collection/components/molecules/mg-message/mg-message.js +1 -1
  37. package/dist/collection/components/molecules/mg-pagination/mg-pagination.js +19 -1
  38. package/dist/collection/components/molecules/mg-panel/mg-panel.js +2 -2
  39. package/dist/collection/components/molecules/mg-popover/mg-popover.css +0 -1
  40. package/dist/collection/components/molecules/mg-popover/mg-popover.js +17 -4
  41. package/dist/collection/components/molecules/mg-skip-links/mg-skip-links.js +2 -1
  42. package/dist/collection/components/molecules/mg-tabs/mg-tabs.css +2 -1
  43. package/dist/collection/components/molecules/mg-tabs/mg-tabs.js +9 -8
  44. package/dist/collection/locales/en/messages.json +6 -1
  45. package/dist/collection/locales/fr/messages.json +6 -1
  46. package/dist/collection/locales/index.js +1 -1
  47. package/dist/collection/styles/mg-icon-animation.scss +6 -0
  48. package/dist/collection/styles/navigation-button.scss +2 -1
  49. package/dist/collection/utils/behaviors.utils.js +16 -34
  50. package/dist/collection/utils/components.utils.js +3 -1
  51. package/dist/collection/utils/locale.utils.js +9 -9
  52. package/dist/collection/utils/unit.test.utils.js +32 -4
  53. package/dist/collection/variables.css +2 -1
  54. package/dist/components/MgInput.js +6 -1
  55. package/dist/components/components.utils.js +3 -1
  56. package/dist/components/index.d.ts +10 -0
  57. package/dist/components/index.js +2 -1
  58. package/dist/components/index2.js +26 -14
  59. package/dist/components/mg-action-more.d.ts +11 -0
  60. package/dist/components/mg-action-more.js +215 -0
  61. package/dist/components/mg-badge2.js +1 -1
  62. package/dist/components/mg-button2.js +2 -2
  63. package/dist/components/mg-form.js +2 -2
  64. package/dist/components/mg-icon2.js +30 -30
  65. package/dist/components/mg-input-checkbox.js +3 -3
  66. package/dist/components/mg-input-date.js +2 -2
  67. package/dist/components/mg-input-numeric.js +2 -2
  68. package/dist/components/mg-input-password.js +1 -1
  69. package/dist/components/mg-input-radio.js +2 -2
  70. package/dist/components/mg-input-select2.js +2 -2
  71. package/dist/components/mg-input-text2.js +1 -1
  72. package/dist/components/mg-input-textarea.js +2 -2
  73. package/dist/components/mg-input-toggle.js +1 -1
  74. package/dist/components/mg-menu-item2.js +75 -72
  75. package/dist/components/mg-menu.js +1 -246
  76. package/dist/components/mg-menu2.js +247 -0
  77. package/dist/components/mg-message.js +1 -1
  78. package/dist/components/mg-pagination.js +3 -1
  79. package/dist/components/mg-panel.js +2 -2
  80. package/dist/components/mg-popover2.js +17 -3
  81. package/dist/components/mg-skip-links.js +1 -1
  82. package/dist/components/mg-tabs.js +10 -9
  83. package/dist/components/mg-tag.js +1 -1
  84. package/dist/components/mg-tooltip2.js +12 -15
  85. package/dist/esm/{index-dc9a2348.js → index-03cceb11.js} +109 -4
  86. package/dist/esm/loader.js +4 -3
  87. package/dist/esm/{mg-badge_30.entry.js → mg-action-more_31.entry.js} +623 -446
  88. package/dist/esm/mg-components.js +4 -3
  89. package/dist/mg-components/locales/en/messages.json +6 -1
  90. package/dist/mg-components/locales/fr/messages.json +6 -1
  91. package/dist/mg-components/mg-components.css +1 -1
  92. package/dist/mg-components/mg-components.esm.js +1 -1
  93. package/dist/mg-components/p-4cfd5423.entry.js +1 -0
  94. package/dist/mg-components/p-e126dd84.js +2 -0
  95. package/dist/mg-components/styles/mg-icon-animation.scss +6 -0
  96. package/dist/mg-components/styles/navigation-button.scss +2 -1
  97. package/dist/mg-components/variables.css +2 -1
  98. package/dist/types/components/molecules/inputs/mg-input-textarea/mg-input-textarea.d.ts +1 -1
  99. package/dist/types/components/molecules/menu/mg-menu-item/mg-menu-item.d.ts +7 -1
  100. package/dist/types/components/molecules/mg-action-more/mg-action-more.conf.d.ts +42 -0
  101. package/dist/types/components/molecules/mg-action-more/mg-action-more.d.ts +81 -0
  102. package/dist/types/components/molecules/mg-pagination/mg-pagination.d.ts +4 -0
  103. package/dist/types/components/molecules/mg-popover/mg-popover.d.ts +2 -1
  104. package/dist/types/components.d.ts +54 -0
  105. package/dist/types/locales/index.d.ts +12 -2
  106. package/dist/types/stencil-public-runtime.d.ts +9 -0
  107. package/dist/types/utils/behaviors.utils.d.ts +1 -7
  108. package/dist/types/utils/locale.utils.d.ts +5 -5
  109. package/dist/types/utils/unit.test.utils.d.ts +20 -2
  110. package/loader/index.d.ts +9 -0
  111. package/package.json +17 -16
  112. package/readme.md +0 -18
  113. package/dist/.storybook/utils.js +0 -24
  114. package/dist/collection/components/atoms/mg-badge/doc/mg-badge.stories.js +0 -27
  115. package/dist/collection/components/atoms/mg-button/doc/mg-button.stories.js +0 -38
  116. package/dist/collection/components/atoms/mg-card/doc/mg-card.stories.js +0 -18
  117. package/dist/collection/components/atoms/mg-character-left/doc/mg-character-left.stories.js +0 -20
  118. package/dist/collection/components/atoms/mg-divider/doc/mg-divider.stories.js +0 -18
  119. package/dist/collection/components/atoms/mg-icon/doc/mg-icon.stories.js +0 -41
  120. package/dist/collection/components/atoms/mg-input-title/doc/mg-input-title.stories.js +0 -21
  121. package/dist/collection/components/atoms/mg-tag/doc/mg-tag.stories.js +0 -22
  122. package/dist/collection/components/atoms/mg-tooltip/doc/mg-tooltip.stories.js +0 -50
  123. package/dist/collection/components/molecules/inputs/mg-input-checkbox/doc/mg-input-checkbox.stories.js +0 -50
  124. package/dist/collection/components/molecules/inputs/mg-input-date/doc/mg-input-date.stories.js +0 -43
  125. package/dist/collection/components/molecules/inputs/mg-input-numeric/doc/mg-input-numeric.stories.js +0 -68
  126. package/dist/collection/components/molecules/inputs/mg-input-password/doc/mg-input-password.stories.js +0 -46
  127. package/dist/collection/components/molecules/inputs/mg-input-radio/doc/mg-input-radio.stories.js +0 -59
  128. package/dist/collection/components/molecules/inputs/mg-input-select/doc/mg-input-select.stories.js +0 -77
  129. package/dist/collection/components/molecules/inputs/mg-input-text/doc/mg-input-text.stories.js +0 -110
  130. package/dist/collection/components/molecules/inputs/mg-input-textarea/doc/mg-input-textarea.stories.js +0 -54
  131. package/dist/collection/components/molecules/inputs/mg-input-toggle/doc/mg-input-toggle.stories.js +0 -51
  132. package/dist/collection/components/molecules/menu/mg-menu/doc/mg-menu.stories.js +0 -119
  133. package/dist/collection/components/molecules/menu/mg-menu-item/doc/mg-menu-item.stories.js +0 -34
  134. package/dist/collection/components/molecules/mg-details/doc/mg-details.stories.js +0 -24
  135. package/dist/collection/components/molecules/mg-form/doc/mg-form.stories.js +0 -47
  136. package/dist/collection/components/molecules/mg-illustrated-message/doc/mg-illustrated-message.stories.js +0 -19
  137. package/dist/collection/components/molecules/mg-message/doc/mg-message.stories.js +0 -39
  138. package/dist/collection/components/molecules/mg-modal/doc/mg-modal.stories.js +0 -39
  139. package/dist/collection/components/molecules/mg-pagination/doc/mg-pagination.stories.js +0 -20
  140. package/dist/collection/components/molecules/mg-panel/doc/mg-panel.stories.js +0 -22
  141. package/dist/collection/components/molecules/mg-popover/doc/mg-popover.stories.js +0 -34
  142. package/dist/collection/components/molecules/mg-skip-links/doc/mg-skip-links.stories.js +0 -24
  143. package/dist/collection/components/molecules/mg-tabs/doc/mg-tabs.stories.js +0 -53
  144. package/dist/collection/stories/grids.stories.js +0 -7
  145. package/dist/collection/stories/helpers.stories.js +0 -23
  146. package/dist/collection/stories/icons.stories.js +0 -25
  147. package/dist/collection/stories/typography.stories.js +0 -24
  148. package/dist/mg-components/p-182bd802.js +0 -2
  149. package/dist/mg-components/p-f7da9dd2.entry.js +0 -1
  150. package/dist/types/components/atoms/mg-badge/doc/mg-badge.stories.d.ts +0 -13
  151. package/dist/types/components/atoms/mg-button/doc/mg-button.stories.d.ts +0 -16
  152. package/dist/types/components/atoms/mg-card/doc/mg-card.stories.d.ts +0 -6
  153. package/dist/types/components/atoms/mg-character-left/doc/mg-character-left.stories.d.ts +0 -6
  154. package/dist/types/components/atoms/mg-divider/doc/mg-divider.stories.d.ts +0 -6
  155. package/dist/types/components/atoms/mg-icon/doc/mg-icon.stories.d.ts +0 -26
  156. package/dist/types/components/atoms/mg-input-title/doc/mg-input-title.stories.d.ts +0 -6
  157. package/dist/types/components/atoms/mg-tag/doc/mg-tag.stories.d.ts +0 -6
  158. package/dist/types/components/atoms/mg-tooltip/doc/mg-tooltip.stories.d.ts +0 -18
  159. package/dist/types/components/molecules/inputs/mg-input-checkbox/doc/mg-input-checkbox.stories.d.ts +0 -11
  160. package/dist/types/components/molecules/inputs/mg-input-date/doc/mg-input-date.stories.d.ts +0 -12
  161. package/dist/types/components/molecules/inputs/mg-input-numeric/doc/mg-input-numeric.stories.d.ts +0 -32
  162. package/dist/types/components/molecules/inputs/mg-input-password/doc/mg-input-password.stories.d.ts +0 -22
  163. package/dist/types/components/molecules/inputs/mg-input-radio/doc/mg-input-radio.stories.d.ts +0 -20
  164. package/dist/types/components/molecules/inputs/mg-input-select/doc/mg-input-select.stories.d.ts +0 -34
  165. package/dist/types/components/molecules/inputs/mg-input-text/doc/mg-input-text.stories.d.ts +0 -39
  166. package/dist/types/components/molecules/inputs/mg-input-textarea/doc/mg-input-textarea.stories.d.ts +0 -19
  167. package/dist/types/components/molecules/inputs/mg-input-toggle/doc/mg-input-toggle.stories.d.ts +0 -12
  168. package/dist/types/components/molecules/menu/mg-menu/doc/mg-menu.stories.d.ts +0 -22
  169. package/dist/types/components/molecules/menu/mg-menu-item/doc/mg-menu-item.stories.d.ts +0 -12
  170. package/dist/types/components/molecules/mg-details/doc/mg-details.stories.d.ts +0 -11
  171. package/dist/types/components/molecules/mg-form/doc/mg-form.stories.d.ts +0 -11
  172. package/dist/types/components/molecules/mg-illustrated-message/doc/mg-illustrated-message.stories.d.ts +0 -6
  173. package/dist/types/components/molecules/mg-message/doc/mg-message.stories.d.ts +0 -26
  174. package/dist/types/components/molecules/mg-modal/doc/mg-modal.stories.d.ts +0 -13
  175. package/dist/types/components/molecules/mg-pagination/doc/mg-pagination.stories.d.ts +0 -11
  176. package/dist/types/components/molecules/mg-panel/doc/mg-panel.stories.d.ts +0 -11
  177. package/dist/types/components/molecules/mg-popover/doc/mg-popover.stories.d.ts +0 -22
  178. package/dist/types/components/molecules/mg-skip-links/doc/mg-skip-links.stories.d.ts +0 -11
  179. package/dist/types/components/molecules/mg-tabs/doc/mg-tabs.stories.d.ts +0 -20
  180. package/dist/types/home/runner/work/mg-components/mg-components/.stencil/.storybook/utils.d.ts +0 -1
  181. package/dist/types/stories/grids.stories.d.ts +0 -5
  182. package/dist/types/stories/helpers.stories.d.ts +0 -13
  183. package/dist/types/stories/icons.stories.d.ts +0 -13
  184. package/dist/types/stories/typography.stories.d.ts +0 -5
@@ -0,0 +1,2 @@
1
+ let e,t,n,l=!1,o=!1,s=!1,i=!1,r=!1;const c="http://www.w3.org/1999/xlink",f={},u=e=>"object"==(e=typeof e)||"function"===e;function a(e){var t,n,l;return null!==(l=null===(n=null===(t=e.head)||void 0===t?void 0:t.querySelector('meta[name="csp-nonce"]'))||void 0===n?void 0:n.getAttribute("content"))&&void 0!==l?l:void 0}const d=(e,t,...n)=>{let l=null,o=null,s=null,i=!1,r=!1;const c=[],f=t=>{for(let n=0;n<t.length;n++)l=t[n],Array.isArray(l)?f(l):null!=l&&"boolean"!=typeof l&&((i="function"!=typeof e&&!u(l))&&(l+=""),i&&r?c[c.length-1].t+=l:c.push(i?$(null,l):l),r=i)};if(f(n),t){t.key&&(o=t.key),t.name&&(s=t.name);{const e=t.className||t.class;e&&(t.class="object"!=typeof e?e:Object.keys(e).filter((t=>e[t])).join(" "))}}if("function"==typeof e)return e(null===t?{}:t,c,m);const a=$(e,null);return a.l=t,c.length>0&&(a.o=c),a.i=o,a.u=s,a},$=(e,t)=>({$:0,h:e,t,m:null,o:null,l:null,i:null,u:null}),h={},m={forEach:(e,t)=>e.map(p).forEach(t),map:(e,t)=>e.map(p).map(t).map(y)},p=e=>({vattrs:e.l,vchildren:e.o,vkey:e.i,vname:e.u,vtag:e.h,vtext:e.t}),y=e=>{if("function"==typeof e.vtag){const t=Object.assign({},e.vattrs);return e.vkey&&(t.key=e.vkey),e.vname&&(t.name=e.vname),d(e.vtag,t,...e.vchildren||[])}const t=$(e.vtag,e.vtext);return t.l=e.vattrs,t.o=e.vchildren,t.i=e.vkey,t.u=e.vname,t},b=e=>oe(e).p,v=(e,t,n)=>{const l=b(e);return{emit:e=>w(l,t,{bubbles:!!(4&n),composed:!!(2&n),cancelable:!!(1&n),detail:e})}},w=(e,t,n)=>{const l=he.ce(t,n);return e.dispatchEvent(l),l},g=new WeakMap,k=e=>"sc-"+e.v,j=(e,t,n,l,o,s)=>{if(n!==l){let i=re(e,t),r=t.toLowerCase();if("class"===t){const t=e.classList,o=O(n),s=O(l);t.remove(...o.filter((e=>e&&!s.includes(e)))),t.add(...s.filter((e=>e&&!o.includes(e))))}else if("style"===t){for(const t in n)l&&null!=l[t]||(t.includes("-")?e.style.removeProperty(t):e.style[t]="");for(const t in l)n&&l[t]===n[t]||(t.includes("-")?e.style.setProperty(t,l[t]):e.style[t]=l[t])}else if("key"===t);else if("ref"===t)l&&l(e);else if(i||"o"!==t[0]||"n"!==t[1]){const f=u(l);if((i||f&&null!==l)&&!o)try{if(e.tagName.includes("-"))e[t]=l;else{const o=null==l?"":l;"list"===t?i=!1:null!=n&&e[t]==o||(e[t]=o)}}catch(e){}let a=!1;r!==(r=r.replace(/^xlink\:?/,""))&&(t=r,a=!0),null==l||!1===l?!1===l&&""!==e.getAttribute(t)||(a?e.removeAttributeNS(c,t):e.removeAttribute(t)):(!i||4&s||o)&&!f&&(l=!0===l?"":l,a?e.setAttributeNS(c,t,l):e.setAttribute(t,l))}else t="-"===t[2]?t.slice(3):re(de,r)?r.slice(2):r[2]+t.slice(3),n&&he.rel(e,t,n,!1),l&&he.ael(e,t,l,!1)}},S=/\s/,O=e=>e?e.split(S):[],M=(e,t,n,l)=>{const o=11===t.m.nodeType&&t.m.host?t.m.host:t.m,s=e&&e.l||f,i=t.l||f;for(l in s)l in i||j(o,l,s[l],void 0,n,t.$);for(l in i)j(o,l,s[l],i[l],n,t.$)},x=(o,r,c,f)=>{const u=r.o[c];let a,d,$,h=0;if(l||(s=!0,"slot"===u.h&&(e&&f.classList.add(e+"-s"),u.$|=u.o?2:1)),null!==u.t)a=u.m=$e.createTextNode(u.t);else if(1&u.$)a=u.m=$e.createTextNode("");else{if(i||(i="svg"===u.h),a=u.m=$e.createElementNS(i?"http://www.w3.org/2000/svg":"http://www.w3.org/1999/xhtml",2&u.$?"slot-fb":u.h),i&&"foreignObject"===u.h&&(i=!1),M(null,u,i),null!=e&&a["s-si"]!==e&&a.classList.add(a["s-si"]=e),u.o)for(h=0;h<u.o.length;++h)d=x(o,u,h,a),d&&a.appendChild(d);"svg"===u.h?i=!1:"foreignObject"===a.tagName&&(i=!0)}return a["s-hn"]=n,3&u.$&&(a["s-sr"]=!0,a["s-cr"]=t,a["s-sn"]=u.u||"",$=o&&o.o&&o.o[c],$&&$.h===u.h&&o.m&&C(o.m,!1)),a},C=(e,t)=>{he.$|=1;const l=e.childNodes;for(let e=l.length-1;e>=0;e--){const o=l[e];o["s-hn"]!==n&&o["s-ol"]&&(L(o).insertBefore(o,E(o)),o["s-ol"].remove(),o["s-ol"]=void 0,s=!0),t&&C(o,t)}he.$&=-2},R=(e,t,l,o,s,i)=>{let r,c=e["s-cr"]&&e["s-cr"].parentNode||e;for(c.shadowRoot&&c.tagName===n&&(c=c.shadowRoot);s<=i;++s)o[s]&&(r=x(null,l,s,e),r&&(o[s].m=r,c.insertBefore(r,E(t))))},P=(e,t,n,l,s)=>{for(;t<=n;++t)(l=e[t])&&(s=l.m,H(l),o=!0,s["s-ol"]?s["s-ol"].remove():C(s,!0),s.remove())},T=(e,t)=>e.h===t.h&&("slot"===e.h?e.u===t.u:e.i===t.i),E=e=>e&&e["s-ol"]||e,L=e=>(e["s-ol"]?e["s-ol"]:e).parentNode,N=(e,t)=>{const n=t.m=e.m,l=e.o,o=t.o,s=t.h,r=t.t;let c;null===r?(i="svg"===s||"foreignObject"!==s&&i,"slot"===s||M(e,t,i),null!==l&&null!==o?((e,t,n,l)=>{let o,s,i=0,r=0,c=0,f=0,u=t.length-1,a=t[0],d=t[u],$=l.length-1,h=l[0],m=l[$];for(;i<=u&&r<=$;)if(null==a)a=t[++i];else if(null==d)d=t[--u];else if(null==h)h=l[++r];else if(null==m)m=l[--$];else if(T(a,h))N(a,h),a=t[++i],h=l[++r];else if(T(d,m))N(d,m),d=t[--u],m=l[--$];else if(T(a,m))"slot"!==a.h&&"slot"!==m.h||C(a.m.parentNode,!1),N(a,m),e.insertBefore(a.m,d.m.nextSibling),a=t[++i],m=l[--$];else if(T(d,h))"slot"!==a.h&&"slot"!==m.h||C(d.m.parentNode,!1),N(d,h),e.insertBefore(d.m,a.m),d=t[--u],h=l[++r];else{for(c=-1,f=i;f<=u;++f)if(t[f]&&null!==t[f].i&&t[f].i===h.i){c=f;break}c>=0?(s=t[c],s.h!==h.h?o=x(t&&t[r],n,c,e):(N(s,h),t[c]=void 0,o=s.m),h=l[++r]):(o=x(t&&t[r],n,r,e),h=l[++r]),o&&L(a.m).insertBefore(o,E(a.m))}i>u?R(e,null==l[$+1]?null:l[$+1].m,n,l,r,$):r>$&&P(t,i,u)})(n,l,t,o):null!==o?(null!==e.t&&(n.textContent=""),R(n,null,t,o,0,o.length-1)):null!==l&&P(l,0,l.length-1),i&&"svg"===s&&(i=!1)):(c=n["s-cr"])?c.parentNode.textContent=r:e.t!==r&&(n.data=r)},W=e=>{const t=e.childNodes;let n,l,o,s,i,r;for(l=0,o=t.length;l<o;l++)if(n=t[l],1===n.nodeType){if(n["s-sr"])for(i=n["s-sn"],n.hidden=!1,s=0;s<o;s++)if(r=t[s].nodeType,t[s]["s-hn"]!==n["s-hn"]||""!==i){if(1===r&&i===t[s].getAttribute("slot")){n.hidden=!0;break}}else if(1===r||3===r&&""!==t[s].textContent.trim()){n.hidden=!0;break}W(n)}},A=[],D=e=>{let t,n,l,s,i,r,c=0;const f=e.childNodes,u=f.length;for(;c<u;c++){if(t=f[c],t["s-sr"]&&(n=t["s-cr"])&&n.parentNode)for(l=n.parentNode.childNodes,s=t["s-sn"],r=l.length-1;r>=0;r--)n=l[r],n["s-cn"]||n["s-nr"]||n["s-hn"]===t["s-hn"]||(F(n,s)?(i=A.find((e=>e.g===n)),o=!0,n["s-sn"]=n["s-sn"]||s,i?i.k=t:A.push({k:t,g:n}),n["s-sr"]&&A.map((e=>{F(e.g,n["s-sn"])&&(i=A.find((e=>e.g===n)),i&&!e.k&&(e.k=i.k))}))):A.some((e=>e.g===n))||A.push({g:n}));1===t.nodeType&&D(t)}},F=(e,t)=>1===e.nodeType?null===e.getAttribute("slot")&&""===t||e.getAttribute("slot")===t:e["s-sn"]===t||""===t,H=e=>{e.l&&e.l.ref&&e.l.ref(null),e.o&&e.o.map(H)},U=(e,t)=>{t&&!e.j&&t["s-p"]&&t["s-p"].push(new Promise((t=>e.j=t)))},q=(e,t)=>{if(e.$|=16,!(4&e.$))return U(e,e.S),je((()=>V(e,t)));e.$|=512},V=(e,t)=>{const n=e.O;let l;return t&&(e.$|=256,e.M&&(e.M.map((([e,t])=>I(n,e,t))),e.M=null),l=I(n,"componentWillLoad")),J(l,(()=>_(e,n,t)))},_=async(e,t,n)=>{const l=e.p,o=l["s-rc"];n&&(e=>{const t=e.C,n=e.p,l=t.$,o=((e,t)=>{var n;let l=k(t);const o=ae.get(l);if(e=11===e.nodeType?e:$e,o)if("string"==typeof o){let t,s=g.get(e=e.head||e);if(s||g.set(e,s=new Set),!s.has(l)){{t=$e.createElement("style"),t.innerHTML=o;const l=null!==(n=he.R)&&void 0!==n?n:a($e);null!=l&&t.setAttribute("nonce",l),e.insertBefore(t,e.querySelector("link"))}s&&s.add(l)}}else e.adoptedStyleSheets.includes(o)||(e.adoptedStyleSheets=[...e.adoptedStyleSheets,o]);return l})(n.shadowRoot?n.shadowRoot:n.getRootNode(),t);10&l&&(n["s-sc"]=o,n.classList.add(o+"-h"),2&l&&n.classList.add(o+"-s"))})(e);z(e,t),o&&(o.map((e=>e())),l["s-rc"]=void 0);{const t=l["s-p"],n=()=>B(e);0===t.length?n():(Promise.all(t).then(n),e.$|=4,t.length=0)}},z=(i,r)=>{try{r=r.render(),i.$&=-17,i.$|=2,((i,r)=>{const c=i.p,f=i.C,u=i.P||$(null,null),a=(e=>e&&e.h===h)(r)?r:d(null,null,r);if(n=c.tagName,f.T&&(a.l=a.l||{},f.T.map((([e,t])=>a.l[t]=c[e]))),a.h=null,a.$|=4,i.P=a,a.m=u.m=c.shadowRoot||c,e=c["s-sc"],t=c["s-cr"],l=0!=(1&f.$),o=!1,N(u,a),he.$|=1,s){let e,t,n,l,o,s;D(a.m);let i=0;for(;i<A.length;i++)e=A[i],t=e.g,t["s-ol"]||(n=$e.createTextNode(""),n["s-nr"]=t,t.parentNode.insertBefore(t["s-ol"]=n,t));for(i=0;i<A.length;i++)if(e=A[i],t=e.g,e.k){for(l=e.k.parentNode,o=e.k.nextSibling,n=t["s-ol"];n=n.previousSibling;)if(s=n["s-nr"],s&&s["s-sn"]===t["s-sn"]&&l===s.parentNode&&(s=s.nextSibling,!s||!s["s-nr"])){o=s;break}(!o&&l!==t.parentNode||t.nextSibling!==o)&&t!==o&&(!t["s-hn"]&&t["s-ol"]&&(t["s-hn"]=t["s-ol"].parentNode.nodeName),l.insertBefore(t,o))}else 1===t.nodeType&&(t.hidden=!0)}o&&W(a.m),he.$&=-2,A.length=0})(i,r)}catch(e){ce(e,i.p)}return null},B=e=>{const t=e.p,n=e.O,l=e.S;I(n,"componentDidRender"),64&e.$||(e.$|=64,K(t),I(n,"componentDidLoad"),e.L(t),l||G()),e.N(t),e.j&&(e.j(),e.j=void 0),512&e.$&&ke((()=>q(e,!1))),e.$&=-517},G=()=>{K($e.documentElement),ke((()=>w(de,"appload",{detail:{namespace:"mg-components"}})))},I=(e,t,n)=>{if(e&&e[t])try{return e[t](n)}catch(e){ce(e)}},J=(e,t)=>e&&e.then?e.then(t):t(),K=e=>e.classList.add("hydrated"),Q=(e,t,n)=>{if(t.W){e.watchers&&(t.A=e.watchers);const l=Object.entries(t.W),o=e.prototype;if(l.map((([e,[l]])=>{31&l||2&n&&32&l?Object.defineProperty(o,e,{get(){return((e,t)=>oe(this).D.get(t))(0,e)},set(n){((e,t,n,l)=>{const o=oe(e),s=o.p,i=o.D.get(t),r=o.$,c=o.O;if(n=((e,t)=>null==e||u(e)?e:4&t?"false"!==e&&(""===e||!!e):2&t?parseFloat(e):1&t?e+"":e)(n,l.W[t][0]),(!(8&r)||void 0===i)&&n!==i&&(!Number.isNaN(i)||!Number.isNaN(n))&&(o.D.set(t,n),c)){if(l.A&&128&r){const e=l.A[t];e&&e.map((e=>{try{c[e](n,i,t)}catch(e){ce(e,s)}}))}2==(18&r)&&q(o,!1)}})(this,e,n,t)},configurable:!0,enumerable:!0}):1&n&&64&l&&Object.defineProperty(o,e,{value(...t){const n=oe(this);return n.F.then((()=>n.O[e](...t)))}})})),1&n){const n=new Map;o.attributeChangedCallback=function(e,t,l){he.jmp((()=>{const t=n.get(e);if(this.hasOwnProperty(t))l=this[t],delete this[t];else if(o.hasOwnProperty(t)&&"number"==typeof this[t]&&this[t]==l)return;this[t]=(null!==l||"boolean"!=typeof this[t])&&l}))},e.observedAttributes=l.filter((([e,t])=>15&t[0])).map((([e,l])=>{const o=l[1]||e;return n.set(o,e),512&l[0]&&t.T.push([e,o]),o}))}}return e},X=(e,t={})=>{var n;const l=[],o=t.exclude||[],s=de.customElements,i=$e.head,r=i.querySelector("meta[charset]"),c=$e.createElement("style"),f=[];let u,d=!0;Object.assign(he,t),he.H=new URL(t.resourcesUrl||"./",$e.baseURI).href,e.map((e=>{e[1].map((t=>{const n={$:t[0],v:t[1],W:t[2],U:t[3]};n.W=t[2],n.U=t[3],n.T=[],n.A={};const i=n.v,r=class extends HTMLElement{constructor(e){super(e),ie(e=this,n),1&n.$&&e.attachShadow({mode:"open"})}connectedCallback(){u&&(clearTimeout(u),u=null),d?f.push(this):he.jmp((()=>(e=>{if(0==(1&he.$)){const t=oe(e),n=t.C,l=()=>{};if(1&t.$)Y(e,t,n.U);else{t.$|=1,12&n.$&&(e=>{const t=e["s-cr"]=$e.createComment("");t["s-cn"]=!0,e.insertBefore(t,e.firstChild)})(e);{let n=e;for(;n=n.parentNode||n.host;)if(n["s-p"]){U(t,t.S=n);break}}n.W&&Object.entries(n.W).map((([t,[n]])=>{if(31&n&&e.hasOwnProperty(t)){const n=e[t];delete e[t],e[t]=n}})),(async(e,t,n,l,o)=>{if(0==(32&t.$)){{if(t.$|=32,(o=ue(n)).then){const e=()=>{};o=await o,e()}o.isProxied||(n.A=o.watchers,Q(o,n,2),o.isProxied=!0);const e=()=>{};t.$|=8;try{new o(t)}catch(e){ce(e)}t.$&=-9,t.$|=128,e()}if(o.style){let e=o.style;const t=k(n);if(!ae.has(t)){const l=()=>{};((e,t,n)=>{let l=ae.get(e);pe&&n?(l=l||new CSSStyleSheet,"string"==typeof l?l=t:l.replaceSync(t)):l=t,ae.set(e,l)})(t,e,!!(1&n.$)),l()}}}const s=t.S,i=()=>q(t,!0);s&&s["s-rc"]?s["s-rc"].push(i):i()})(0,t,n)}l()}})(this)))}disconnectedCallback(){he.jmp((()=>(()=>{if(0==(1&he.$)){const e=oe(this),t=e.O;e.q&&(e.q.map((e=>e())),e.q=void 0),I(t,"disconnectedCallback")}})()))}componentOnReady(){return oe(this).V}};n._=e[0],o.includes(i)||s.get(i)||(l.push(i),s.define(i,Q(r,n,1)))}))}));{c.innerHTML=l+"{visibility:hidden}.hydrated{visibility:inherit}",c.setAttribute("data-styles","");const e=null!==(n=he.R)&&void 0!==n?n:a($e);null!=e&&c.setAttribute("nonce",e),i.insertBefore(c,r?r.nextSibling:i.firstChild)}d=!1,f.length?f.map((e=>e.connectedCallback())):he.jmp((()=>u=setTimeout(G,30)))},Y=(e,t,n)=>{n&&n.map((([n,l,o])=>{const s=ee(e,n),i=Z(t,o),r=te(n);he.ael(s,l,i,r),(t.q=t.q||[]).push((()=>he.rel(s,l,i,r)))}))},Z=(e,t)=>n=>{try{256&e.$?e.O[t](n):(e.M=e.M||[]).push([t,n])}catch(e){ce(e)}},ee=(e,t)=>8&t?de:e,te=e=>0!=(2&e),ne=e=>he.R=e,le=new WeakMap,oe=e=>le.get(e),se=(e,t)=>le.set(t.O=e,t),ie=(e,t)=>{const n={$:0,p:e,C:t,D:new Map};return n.F=new Promise((e=>n.N=e)),n.V=new Promise((e=>n.L=e)),e["s-p"]=[],e["s-rc"]=[],Y(e,n,t.U),le.set(e,n)},re=(e,t)=>t in e,ce=(e,t)=>(0,console.error)(e,t),fe=new Map,ue=e=>{const t=e.v.replace(/-/g,"_"),n=e._,l=fe.get(n);return l?l[t]:import(`./${n}.entry.js`).then((e=>(fe.set(n,e),e[t])),ce)
2
+ /*!__STENCIL_STATIC_IMPORT_SWITCH__*/},ae=new Map,de="undefined"!=typeof window?window:{},$e=de.document||{head:{}},he={$:0,H:"",jmp:e=>e(),raf:e=>requestAnimationFrame(e),ael:(e,t,n,l)=>e.addEventListener(t,n,l),rel:(e,t,n,l)=>e.removeEventListener(t,n,l),ce:(e,t)=>new CustomEvent(e,t)},me=e=>Promise.resolve(e),pe=(()=>{try{return new CSSStyleSheet,"function"==typeof(new CSSStyleSheet).replaceSync}catch(e){}return!1})(),ye=[],be=[],ve=(e,t)=>n=>{e.push(n),r||(r=!0,t&&4&he.$?ke(ge):he.raf(ge))},we=e=>{for(let t=0;t<e.length;t++)try{e[t](performance.now())}catch(e){ce(e)}e.length=0},ge=()=>{we(ye),we(be),(r=ye.length>0)&&he.raf(ge)},ke=e=>me().then(e),je=ve(be,!0);export{h as H,X as b,v as c,b as g,d as h,me as p,se as r,ne as s}
@@ -0,0 +1,6 @@
1
+ @mixin rotate($selector, $duration) {
2
+ transition: $duration;
3
+ &--rotate#{$selector} {
4
+ transform: rotate(180deg);
5
+ }
6
+ }
@@ -35,6 +35,7 @@ $navigation-button-column-gap: 1rem;
35
35
  background-color: unset;
36
36
  border: none;
37
37
  font-family: var(--font-family);
38
+ font-weight: 400;
38
39
  color: hsl(var(--#{$element}-color-hsl, var(--color-dark)));
39
40
  line-height: var(--line-height);
40
41
  text-decoration: none;
@@ -44,7 +45,7 @@ $navigation-button-column-gap: 1rem;
44
45
  &:disabled,
45
46
  &--disabled {
46
47
  cursor: default;
47
- opacity: 0.3;
48
+ opacity: var(--mg-disabled-opacity);
48
49
  }
49
50
  &:focus-visible {
50
51
  z-index: 10;
@@ -102,6 +102,7 @@
102
102
  Global
103
103
  */
104
104
  --default-size: 3.5rem;
105
+ --mg-disabled-opacity: 0.4;
105
106
 
106
107
  /*
107
108
  <mg-icon>
@@ -117,7 +118,7 @@
117
118
 
118
119
  --mg-button-border-radius: 0.3rem;
119
120
  --mg-button-icon-border-radius: var(--default-size);
120
- --mg-button-disabled-opacity: 0.6;
121
+ --mg-button-disabled-opacity: var(--mg-disabled-opacity);
121
122
  --mg-button-gradient: 1; /* Can only be 1 or 0 to enable disable gradient */
122
123
  --mg-button-border-variation: 1; /* Can only be 1 or 0 to enable disable border variation */
123
124
 
@@ -143,7 +143,7 @@ export declare class MgInputTextarea {
143
143
  private handleBlur;
144
144
  /**
145
145
  * Get pattern validity
146
- * Pattern is not defined on textarea field : https://developer.mozilla.org/fr/docs/Web/HTML/Element/Textarea
146
+ * Pattern is not defined on textarea field: https://developer.mozilla.org/fr/docs/Web/HTML/Element/Textarea
147
147
  *
148
148
  * @returns {boolean} is pattern valid
149
149
  */
@@ -83,7 +83,7 @@ export declare class MgMenuItem {
83
83
  /**
84
84
  * Does an Element have given Status
85
85
  *
86
- * @param {Element} element to parse
86
+ * @param {HTMLMgMenuItemElement} mgMenuItemElement to parse
87
87
  * @param {MgMenuItem['status']} status to check
88
88
  * @returns {boolean} true if element with status is found
89
89
  */
@@ -119,6 +119,12 @@ export declare class MgMenuItem {
119
119
  * @returns {void} update displayNotificationBadge value
120
120
  */
121
121
  private updateDisplayNotificationBadge;
122
+ /**
123
+ * Method to control if one of component children have active status
124
+ *
125
+ * @returns {boolean} truthy if component has active child
126
+ */
127
+ private hasActiveChild;
122
128
  /*************
123
129
  * Lifecycle *
124
130
  *************/
@@ -0,0 +1,42 @@
1
+ import { MgBadge } from '../../atoms/mg-badge/mg-badge';
2
+ import { MgButton } from '../../atoms/mg-button/mg-button';
3
+ import { MgIcon } from '../../atoms/mg-icon/mg-icon';
4
+ import { MgMenuItem } from '../menu/mg-menu-item/mg-menu-item';
5
+ /**
6
+ * prop icon type
7
+ */
8
+ export type MgActionMoreIconType = {
9
+ icon: MgIcon['icon'];
10
+ };
11
+ /**
12
+ * prop button type
13
+ */
14
+ export type MgActionMoreButtonType = {
15
+ isIcon: MgButton['isIcon'];
16
+ variant: MgButton['variant'];
17
+ label?: MgButton['label'];
18
+ };
19
+ /**
20
+ * locals message type
21
+ */
22
+ export type MgActionMoreMessageType = {
23
+ label: string;
24
+ };
25
+ /**
26
+ * prop item type
27
+ */
28
+ export type MgActionMoreItemType = {
29
+ label: string;
30
+ mouseEventHandler: IMouseEventHandler;
31
+ status?: MgMenuItem['status'];
32
+ icon?: MgIcon['icon'];
33
+ href?: MgMenuItem['href'];
34
+ badge?: Pick<MgBadge, 'value' | 'label'>;
35
+ };
36
+ /**
37
+ * MouseEvent callback interface
38
+ */
39
+ interface IMouseEventHandler {
40
+ (event: MouseEvent): void;
41
+ }
42
+ export {};
@@ -0,0 +1,81 @@
1
+ import { MgActionMoreItemType, MgActionMoreButtonType, MgActionMoreIconType } from './mg-action-more.conf';
2
+ export declare class MgActionMore {
3
+ /************
4
+ * Internal *
5
+ ************/
6
+ private readonly name;
7
+ private readonly mgPopoverIdentifier;
8
+ private messages;
9
+ /**************
10
+ * Decorators *
11
+ **************/
12
+ /**
13
+ * Get component DOM element
14
+ */
15
+ element: HTMLMgActionMoreElement;
16
+ /**
17
+ * Define displaied icon
18
+ * Default: {icon: 'ellipsis'}
19
+ */
20
+ icon: MgActionMoreIconType;
21
+ validateIcon(newValue: MgActionMore['icon']): void;
22
+ /**
23
+ * Define button properties
24
+ * Default: {variant: 'flat', isIcon: true}.
25
+ */
26
+ button: MgActionMoreButtonType;
27
+ validateButton(newValue: MgActionMore['button']): void;
28
+ /**
29
+ * Define the menu-items elements
30
+ */
31
+ items: MgActionMoreItemType[];
32
+ validateItems(newValue: MgActionMore['items']): void;
33
+ /**
34
+ * Define if chevron is display
35
+ */
36
+ displayChevron: boolean;
37
+ validateDisplayChevron(newValue: MgActionMore['displayChevron']): void;
38
+ /**
39
+ * Menu expanded state
40
+ * Default: false.
41
+ */
42
+ expanded: boolean;
43
+ /************
44
+ * Merthods *
45
+ ***********/
46
+ /**
47
+ * Toogle expanded props
48
+ *
49
+ * @returns {void}
50
+ */
51
+ private toggleExpanded;
52
+ /**
53
+ * Button click handler
54
+ *
55
+ * @returns {void}
56
+ */
57
+ private handleButton;
58
+ /**
59
+ * Item click handler
60
+ *
61
+ * @param {MouseEvent} event click event
62
+ * @param {MgActionMoreItemType['mouseEventHandler']} customHandler item['mouseEventHandler']
63
+ * @returns {void}
64
+ */
65
+ private handleItemClick;
66
+ /*************
67
+ * Lifecycle *
68
+ *************/
69
+ /**
70
+ * Validate props
71
+ *
72
+ * @returns {void}
73
+ */
74
+ componentWillLoad(): void;
75
+ /**
76
+ * Render
77
+ *
78
+ * @returns {HTMLElement} HTML Element
79
+ */
80
+ render(): HTMLElement;
81
+ }
@@ -21,6 +21,10 @@ export declare class MgPagination {
21
21
  * Customize default value can be usefull to improve accessibility
22
22
  */
23
23
  label: string;
24
+ /**
25
+ * Hide navigation label
26
+ */
27
+ hideNavigationLabels: boolean;
24
28
  /**
25
29
  * Component total pages
26
30
  */
@@ -1,6 +1,6 @@
1
1
  import { EventEmitter } from '../../../stencil-public-runtime';
2
- import { Placement } from '@popperjs/core';
3
2
  import { ClassList } from '../../../utils/components.utils';
3
+ import { Placement } from '@popperjs/core';
4
4
  export declare class MgPopover {
5
5
  /************
6
6
  * Internal *
@@ -9,6 +9,7 @@ export declare class MgPopover {
9
9
  private popover;
10
10
  private closeButtonId;
11
11
  private windows;
12
+ private resizeObserver;
12
13
  private messages;
13
14
  private readonly classArrowHide;
14
15
  /**************
@@ -5,6 +5,7 @@
5
5
  * It contains typing information for all components that exist in this project.
6
6
  */
7
7
  import { HTMLStencilElement, JSXBase } from "./stencil-public-runtime";
8
+ import { MgActionMoreButtonType, MgActionMoreIconType, MgActionMoreItemType } from "./components/molecules/mg-action-more/mg-action-more.conf";
8
9
  import { BadgeVariantType } from "./components/atoms/mg-badge/mg-badge.conf";
9
10
  import { ButtonType, VariantType } from "./components/atoms/mg-button/mg-button.conf";
10
11
  import { IconSizeType, IconVariantType } from "./components/atoms/mg-icon/mg-icon.conf";
@@ -20,6 +21,24 @@ import { SkipLink } from "./components/molecules/mg-skip-links/mg-skip-links.con
20
21
  import { SizeType, TabItem } from "./components/molecules/mg-tabs/mg-tabs.conf";
21
22
  import { TagVariantType } from "./components/atoms/mg-tag/mg-tag.conf";
22
23
  export namespace Components {
24
+ interface MgActionMore {
25
+ /**
26
+ * Define button properties Default: {variant: 'flat', isIcon: true}.
27
+ */
28
+ "button": MgActionMoreButtonType;
29
+ /**
30
+ * Define if chevron is display
31
+ */
32
+ "displayChevron": boolean;
33
+ /**
34
+ * Define displaied icon Default: {icon: 'ellipsis'}
35
+ */
36
+ "icon": MgActionMoreIconType;
37
+ /**
38
+ * Define the menu-items elements
39
+ */
40
+ "items": MgActionMoreItemType[];
41
+ }
23
42
  interface MgBadge {
24
43
  /**
25
44
  * Badge label. Include short description. Required for accessibility
@@ -942,6 +961,10 @@ export namespace Components {
942
961
  * Component current page
943
962
  */
944
963
  "currentPage": number;
964
+ /**
965
+ * Hide navigation label
966
+ */
967
+ "hideNavigationLabels": boolean;
945
968
  /**
946
969
  * Identifier is used for the element ID (id is a reserved prop in Stencil.js) If not set, it will be created.
947
970
  */
@@ -1153,6 +1176,12 @@ export interface MgTabsCustomEvent<T> extends CustomEvent<T> {
1153
1176
  target: HTMLMgTabsElement;
1154
1177
  }
1155
1178
  declare global {
1179
+ interface HTMLMgActionMoreElement extends Components.MgActionMore, HTMLStencilElement {
1180
+ }
1181
+ var HTMLMgActionMoreElement: {
1182
+ prototype: HTMLMgActionMoreElement;
1183
+ new (): HTMLMgActionMoreElement;
1184
+ };
1156
1185
  interface HTMLMgBadgeElement extends Components.MgBadge, HTMLStencilElement {
1157
1186
  }
1158
1187
  var HTMLMgBadgeElement: {
@@ -1334,6 +1363,7 @@ declare global {
1334
1363
  new (): HTMLMgTooltipElement;
1335
1364
  };
1336
1365
  interface HTMLElementTagNameMap {
1366
+ "mg-action-more": HTMLMgActionMoreElement;
1337
1367
  "mg-badge": HTMLMgBadgeElement;
1338
1368
  "mg-button": HTMLMgButtonElement;
1339
1369
  "mg-card": HTMLMgCardElement;
@@ -1367,6 +1397,24 @@ declare global {
1367
1397
  }
1368
1398
  }
1369
1399
  declare namespace LocalJSX {
1400
+ interface MgActionMore {
1401
+ /**
1402
+ * Define button properties Default: {variant: 'flat', isIcon: true}.
1403
+ */
1404
+ "button"?: MgActionMoreButtonType;
1405
+ /**
1406
+ * Define if chevron is display
1407
+ */
1408
+ "displayChevron"?: boolean;
1409
+ /**
1410
+ * Define displaied icon Default: {icon: 'ellipsis'}
1411
+ */
1412
+ "icon"?: MgActionMoreIconType;
1413
+ /**
1414
+ * Define the menu-items elements
1415
+ */
1416
+ "items": MgActionMoreItemType[];
1417
+ }
1370
1418
  interface MgBadge {
1371
1419
  /**
1372
1420
  * Badge label. Include short description. Required for accessibility
@@ -2343,6 +2391,10 @@ declare namespace LocalJSX {
2343
2391
  * Component current page
2344
2392
  */
2345
2393
  "currentPage"?: number;
2394
+ /**
2395
+ * Hide navigation label
2396
+ */
2397
+ "hideNavigationLabels"?: boolean;
2346
2398
  /**
2347
2399
  * Identifier is used for the element ID (id is a reserved prop in Stencil.js) If not set, it will be created.
2348
2400
  */
@@ -2501,6 +2553,7 @@ declare namespace LocalJSX {
2501
2553
  "placement"?: Placement;
2502
2554
  }
2503
2555
  interface IntrinsicElements {
2556
+ "mg-action-more": MgActionMore;
2504
2557
  "mg-badge": MgBadge;
2505
2558
  "mg-button": MgButton;
2506
2559
  "mg-card": MgCard;
@@ -2537,6 +2590,7 @@ export { LocalJSX as JSX };
2537
2590
  declare module "@stencil/core" {
2538
2591
  export namespace JSX {
2539
2592
  interface IntrinsicElements {
2593
+ "mg-action-more": LocalJSX.MgActionMore & JSXBase.HTMLAttributes<HTMLMgActionMoreElement>;
2540
2594
  "mg-badge": LocalJSX.MgBadge & JSXBase.HTMLAttributes<HTMLMgBadgeElement>;
2541
2595
  "mg-button": LocalJSX.MgButton & JSXBase.HTMLAttributes<HTMLMgButtonElement>;
2542
2596
  "mg-card": LocalJSX.MgCard & JSXBase.HTMLAttributes<HTMLMgCardElement>;
@@ -22,7 +22,9 @@ declare const messages: {
22
22
  };
23
23
  form: {
24
24
  required: string;
25
+ requiredSingle: string;
25
26
  allRequired: string;
27
+ allRequiredSingle: string;
26
28
  };
27
29
  message: {
28
30
  closeButton: string;
@@ -55,6 +57,9 @@ declare const messages: {
55
57
  moreLabel: string;
56
58
  badgeLabel: string;
57
59
  };
60
+ actionMore: {
61
+ label: string;
62
+ };
58
63
  };
59
64
  fr: {
60
65
  errors: {
@@ -79,7 +84,9 @@ declare const messages: {
79
84
  };
80
85
  form: {
81
86
  required: string;
87
+ requiredSingle: string;
82
88
  allRequired: string;
89
+ allRequiredSingle: string;
83
90
  };
84
91
  message: {
85
92
  closeButton: string;
@@ -112,16 +119,19 @@ declare const messages: {
112
119
  moreLabel: string;
113
120
  badgeLabel: string;
114
121
  };
122
+ actionMore: {
123
+ label: string;
124
+ };
115
125
  };
116
126
  };
117
127
  /**
118
128
  * Get Intl object
119
129
  *
120
130
  * @param {HTMLElement} element element we need to get the language
121
- * @returns {{ locale: string; messages: unknown }} messages object
131
+ * @returns {{ locale: string; messages: Record<string, unknown> }} messages object
122
132
  */
123
133
  export declare const initLocales: (element: HTMLElement) => {
124
134
  locale: string;
125
- messages: unknown;
135
+ messages: Record<string, unknown>;
126
136
  };
127
137
  export {};
@@ -257,6 +257,15 @@ export declare function getAssetPath(path: string): string;
257
257
  * @returns the set path
258
258
  */
259
259
  export declare function setAssetPath(path: string): string;
260
+ /**
261
+ * Used to specify a nonce value that corresponds with an application's
262
+ * [Content Security Policy (CSP)](https://developer.mozilla.org/en-US/docs/Web/HTTP/CSP).
263
+ * When set, the nonce will be added to all dynamically created script and style tags at runtime.
264
+ * Alternatively, the nonce value can be set on a `meta` tag in the DOM head
265
+ * (<meta name="csp-nonce" content="{ nonce value here }" />) and will result in the same behavior.
266
+ * @param nonce The value to be used for the nonce attribute.
267
+ */
268
+ export declare function setNonce(nonce: string): void;
260
269
  /**
261
270
  * Retrieve a Stencil element for a given reference
262
271
  * @param ref the ref to get the Stencil element for
@@ -7,7 +7,7 @@ export declare class OverflowBehavior {
7
7
  private element;
8
8
  private render;
9
9
  private resizeObserver;
10
- private moreELement;
10
+ private moreElement;
11
11
  private children;
12
12
  constructor(element: Element, render: () => HTMLElement);
13
13
  /**********
@@ -19,12 +19,6 @@ export declare class OverflowBehavior {
19
19
  * @returns {void}
20
20
  */
21
21
  disconnect: () => void;
22
- /**
23
- * Update more element status if active child
24
- *
25
- * @returns {void}
26
- */
27
- updateActiveStatus: () => void;
28
22
  /************
29
23
  * Internal *
30
24
  ************/
@@ -6,7 +6,7 @@
6
6
  * @param {string} currency currency to apply
7
7
  * @returns {string} formatted currency
8
8
  */
9
- export declare function localeCurrency(number: number, locale: string, currency: string): string;
9
+ export declare const localeCurrency: (number: number, locale: string, currency: string) => string;
10
10
  /**
11
11
  * Format number to locale
12
12
  *
@@ -14,7 +14,7 @@ export declare function localeCurrency(number: number, locale: string, currency:
14
14
  * @param {string} locale locale to apply
15
15
  * @returns {string} formatted number
16
16
  */
17
- export declare function localeNumber(number: number, locale: string): string;
17
+ export declare const localeNumber: (number: number, locale: string) => string;
18
18
  /**
19
19
  * Date RegExp
20
20
  */
@@ -26,7 +26,7 @@ export declare const dateRegExp: RegExp;
26
26
  * @param {string} locale locale to apply
27
27
  * @returns {string} formatted date
28
28
  */
29
- export declare function localeDate(date: string, locale: string): string;
29
+ export declare const localeDate: (date: string, locale: string) => string;
30
30
  /**
31
31
  * Get locale and messages
32
32
  * We load the defined locale but for now we only support the first subtag for messages
@@ -34,9 +34,9 @@ export declare function localeDate(date: string, locale: string): string;
34
34
  * @param {HTMLElement} element element we need to get the language
35
35
  * @param {unknown} messages messages to use
36
36
  * @param {string} defaultLocale default messages locale
37
- * @returns {{ locale: string; messages: unknown }} messages object
37
+ * @returns {{ locale: string; messages: Record<string, unknown> }} messages object
38
38
  */
39
39
  export declare const getLocaleMessages: (element: HTMLElement, messages: unknown, defaultLocale: string) => {
40
40
  locale: string;
41
- messages: unknown;
41
+ messages: Record<string, unknown>;
42
42
  };
@@ -70,9 +70,27 @@ export declare const setupResizeObserverMock: ({ disconnect, observe }: setupRes
70
70
  /**
71
71
  * force popover id when component use randomed identifier
72
72
  *
73
- * @param {Element} item element wich include mg-popover
73
+ * @param {Element} component element wich include mg-popover
74
74
  * @param {string} id new fixed id
75
+ * @param {string} interactiveElement element where attribute 'aria-controls' is set
75
76
  * @returns {void}
76
77
  */
77
- export declare const forcePopoverId: (item: Element, id: string) => void;
78
+ export declare const forcePopoverId: (component: Element, id: string, interactiveElement?: string) => void;
79
+ /**
80
+ * fix popper console.error in test
81
+ * it is generated in @popperjs/core/dist/cjs/popper.js l.1859
82
+ * this is due to internal function isHTMLElement(), so we can not mock it directly.
83
+ * this function check if test DOM element mockHTMLElement instance is 'instanceof HTMLElement'
84
+ * so we only override the console.error side effect for this error
85
+ *
86
+ * @returns {void}
87
+ */
88
+ export declare const mockConsoleError: () => void;
89
+ /**
90
+ * Add missing window.frames property to test context
91
+ * usefull for component with iframe listeners, ex: mg-popover
92
+ *
93
+ * @returns {void}
94
+ */
95
+ export declare const mockWindowFrames: () => void;
78
96
  export {};
package/loader/index.d.ts CHANGED
@@ -10,3 +10,12 @@ export interface CustomElementsDefineOptions {
10
10
  }
11
11
  export declare function defineCustomElements(win?: Window, opts?: CustomElementsDefineOptions): Promise<void>;
12
12
  export declare function applyPolyfills(): Promise<void>;
13
+
14
+ /**
15
+ * Used to specify a nonce value that corresponds with an application's CSP.
16
+ * When set, the nonce will be added to all dynamically created script and style tags at runtime.
17
+ * Alternatively, the nonce value can be set on a meta tag in the DOM head
18
+ * (<meta name="csp-nonce" content="{ nonce value here }" />) which
19
+ * will result in the same behavior.
20
+ */
21
+ export declare function setNonce(nonce: string): void;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@mgdis/mg-components",
3
- "version": "5.6.0",
3
+ "version": "5.7.0",
4
4
  "description": "MG Components",
5
5
  "packageManager": "pnpm@7.17.1",
6
6
  "engineStrict": true,
@@ -29,49 +29,50 @@
29
29
  },
30
30
  "dependencies": {
31
31
  "@popperjs/core": "^2.11.6",
32
- "@stencil/core": "^2.21.0",
32
+ "@stencil/core": "^2.22.1",
33
33
  "normalize.css": "^8.0.1"
34
34
  },
35
35
  "devDependencies": {
36
36
  "@babel/core": "^7.20.12",
37
- "@babel/plugin-transform-react-jsx": "^7.20.7",
37
+ "@babel/plugin-transform-react-jsx": "^7.20.13",
38
38
  "@pxtrn/storybook-addon-docs-stencil": "^6.4.1",
39
39
  "@stencil/eslint-plugin": "^0.4.0",
40
40
  "@stencil/sass": "^1.5.2",
41
- "@storybook/addon-a11y": "^6.5.15",
42
- "@storybook/addon-actions": "^6.5.15",
43
- "@storybook/addon-docs": "^6.5.15",
44
- "@storybook/addon-essentials": "^6.5.15",
45
- "@storybook/addon-links": "^6.5.15",
46
- "@storybook/html": "^6.5.15",
41
+ "@storybook/addon-a11y": "^6.5.16",
42
+ "@storybook/addon-actions": "^6.5.16",
43
+ "@storybook/addon-docs": "^6.5.16",
44
+ "@storybook/addon-essentials": "^6.5.16",
45
+ "@storybook/addon-links": "^6.5.16",
46
+ "@storybook/html": "^6.5.16",
47
47
  "@storybook/preset-scss": "^1.0.3",
48
48
  "@types/jest": "^26.0.24",
49
49
  "@types/jest-image-snapshot": "^4.3.2",
50
+ "@types/node": "^18.14.0",
50
51
  "@typescript-eslint/eslint-plugin": "^4.33.0",
51
52
  "@typescript-eslint/parser": "^4.33.0",
52
53
  "babel-loader": "^8.3.0",
53
54
  "babel-plugin-jsx-pragmatic": "^1.0.2",
54
- "chromatic": "^6.14.0",
55
+ "chromatic": "^6.15.0",
55
56
  "css-loader": "^5.2.7",
56
57
  "eslint": "^7.32.0",
57
58
  "eslint-plugin-jsdoc": "^38.1.6",
58
59
  "eslint-plugin-jsx-a11y": "^6.7.1",
59
- "eslint-plugin-react": "^7.32.0",
60
+ "eslint-plugin-react": "^7.32.2",
60
61
  "eslint-plugin-storybook": "^0.6.10",
61
62
  "husky": "^7.0.4",
62
63
  "jest": "^26.6.3",
63
64
  "jest-cli": "^26.6.3",
64
65
  "jest-image-snapshot": "^4.5.1",
65
66
  "jest-junit": "^13.2.0",
66
- "jsx-dom": "^8.0.3",
67
+ "jsx-dom": "^8.0.4",
67
68
  "npm-run-all": "^4.1.5",
68
- "prettier": "^2.8.2",
69
+ "prettier": "^2.8.3",
69
70
  "puppeteer": "^13.7.0",
70
- "sass": "^1.57.1",
71
+ "sass": "^1.58.0",
71
72
  "sass-loader": "^10.4.1",
72
73
  "style-loader": "^2.0.0",
73
74
  "ts-node": "^10.9.1",
74
- "turbo": "^1.7.0",
75
+ "turbo": "^1.8.1",
75
76
  "typescript": "~4.4.4"
76
77
  },
77
78
  "license": "BSD-3-Clause",
@@ -85,7 +86,7 @@
85
86
  "lint:prettier": "prettier --check **/*.{ts,tsx,scss,html,mdx,json}",
86
87
  "lint:prettier:fix": "prettier --write **/*.{ts,tsx,scss,html,mdx,json}",
87
88
  "test": "TZ=UTC stencil test --spec --e2e",
88
- "test:unit": "TZ=UTC stencil test --spec",
89
+ "test:unit": "TZ=UTC stencil test --spec --collectCoverage --reporters=\"default\" --reporters=\"jest-junit\"",
89
90
  "test:e2e": "stencil test --e2e",
90
91
  "test.watch": "stencil test --spec --e2e --watchAll",
91
92
  "generate": "stencil generate",
package/readme.md CHANGED
@@ -102,24 +102,6 @@ When a selector contains too many declaration it is recommended to organize them
102
102
  }
103
103
  ```
104
104
 
105
- ### Accessibility
106
-
107
- A good pratice is to manage hover, focus and active state at the same place.
108
-
109
- ```SCSS
110
- /* SCSS */
111
- button {
112
- &:hover, &:focus, &:active {
113
- text-decoration: underline;
114
- }
115
- }
116
-
117
- /* CSS */
118
- button:hover, button:focus, button:active {
119
- text-decoration: underline;
120
- }
121
- ```
122
-
123
105
  ## Storybook
124
106
 
125
107
  The plugin [storybook-addon-docs-stencil