@mgdis/mg-components 5.5.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 (242) hide show
  1. package/dist/cjs/{index-c3450336.js → index-5e7ede97.js} +120 -4
  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} +1223 -547
  4. package/dist/cjs/mg-components.cjs.js +7 -3
  5. package/dist/collection/collection-manifest.json +6 -5
  6. package/dist/collection/components/atoms/mg-badge/mg-badge.conf.js +1 -1
  7. package/dist/collection/components/atoms/mg-badge/mg-badge.css +13 -0
  8. package/dist/collection/components/atoms/mg-badge/mg-badge.js +4 -4
  9. package/dist/collection/components/atoms/mg-button/mg-button.css +9 -22
  10. package/dist/collection/components/atoms/mg-button/mg-button.js +1 -1
  11. package/dist/collection/components/atoms/mg-card/mg-card.css +13 -6
  12. package/dist/collection/components/atoms/mg-icon/mg-icon.conf.js +38 -28
  13. package/dist/collection/components/atoms/mg-icon/mg-icon.js +3 -3
  14. package/dist/collection/components/atoms/mg-tag/mg-tag.css +6 -6
  15. package/dist/collection/components/atoms/mg-tag/mg-tag.js +4 -4
  16. package/dist/collection/components/atoms/mg-tooltip/mg-tooltip.css +2 -0
  17. package/dist/collection/components/atoms/mg-tooltip/mg-tooltip.js +14 -17
  18. package/dist/collection/components/molecules/inputs/MgInput.js +6 -1
  19. package/dist/collection/components/molecules/inputs/mg-input-checkbox/mg-input-checkbox.css +4 -3
  20. package/dist/collection/components/molecules/inputs/mg-input-checkbox/mg-input-checkbox.js +3 -2
  21. package/dist/collection/components/molecules/inputs/mg-input-date/mg-input-date.css +7 -3
  22. package/dist/collection/components/molecules/inputs/mg-input-date/mg-input-date.js +5 -2
  23. package/dist/collection/components/molecules/inputs/mg-input-numeric/mg-input-numeric.css +7 -3
  24. package/dist/collection/components/molecules/inputs/mg-input-numeric/mg-input-numeric.js +1 -1
  25. package/dist/collection/components/molecules/inputs/mg-input-password/mg-input-password.css +7 -3
  26. package/dist/collection/components/molecules/inputs/mg-input-radio/mg-input-radio.css +4 -3
  27. package/dist/collection/components/molecules/inputs/mg-input-radio/mg-input-radio.js +2 -1
  28. package/dist/collection/components/molecules/inputs/mg-input-select/mg-input-select.css +7 -3
  29. package/dist/collection/components/molecules/inputs/mg-input-select/mg-input-select.js +8 -4
  30. package/dist/collection/components/molecules/inputs/mg-input-text/mg-input-text.css +7 -3
  31. package/dist/collection/components/molecules/inputs/mg-input-textarea/mg-input-textarea.css +7 -3
  32. package/dist/collection/components/molecules/inputs/mg-input-textarea/mg-input-textarea.js +1 -1
  33. package/dist/collection/components/molecules/inputs/mg-input-toggle/mg-input-toggle.css +4 -4
  34. package/dist/collection/components/molecules/menu/mg-menu/mg-menu.conf.js +17 -0
  35. package/dist/collection/components/molecules/menu/mg-menu/mg-menu.css +27 -0
  36. package/dist/collection/components/molecules/menu/mg-menu/mg-menu.js +141 -19
  37. package/dist/collection/components/molecules/menu/mg-menu-item/mg-menu-item.conf.js +0 -4
  38. package/dist/collection/components/molecules/menu/mg-menu-item/mg-menu-item.css +48 -21
  39. package/dist/collection/components/molecules/menu/mg-menu-item/mg-menu-item.js +139 -71
  40. package/dist/collection/components/molecules/mg-action-more/mg-action-more.conf.js +1 -0
  41. package/dist/collection/components/molecules/mg-action-more/mg-action-more.css +38 -0
  42. package/dist/collection/components/molecules/mg-action-more/mg-action-more.js +252 -0
  43. package/dist/collection/components/molecules/mg-form/mg-form.js +2 -2
  44. package/dist/collection/components/molecules/mg-illustrated-message/mg-illustrated-message.js +4 -3
  45. package/dist/collection/components/molecules/mg-message/mg-message.css +7 -0
  46. package/dist/collection/components/molecules/mg-message/mg-message.js +54 -13
  47. package/dist/collection/components/molecules/mg-modal/mg-modal.css +8 -1
  48. package/dist/collection/components/molecules/mg-pagination/mg-pagination.js +19 -1
  49. package/dist/collection/components/molecules/mg-panel/mg-panel.css +7 -0
  50. package/dist/collection/components/molecules/mg-panel/mg-panel.js +2 -2
  51. package/dist/collection/components/molecules/mg-popover/mg-popover.css +72 -15
  52. package/dist/collection/components/molecules/mg-popover/mg-popover.js +64 -7
  53. package/dist/collection/components/molecules/mg-skip-links/mg-skip-links.js +33 -1
  54. package/dist/collection/components/molecules/mg-tabs/mg-tabs.css +12 -7
  55. package/dist/collection/components/molecules/mg-tabs/mg-tabs.js +105 -57
  56. package/dist/collection/locales/en/messages.json +10 -1
  57. package/dist/collection/locales/fr/messages.json +10 -1
  58. package/dist/collection/locales/index.js +3 -26
  59. package/dist/collection/styles/a11y.scss +32 -0
  60. package/dist/collection/styles/components.scss +3 -0
  61. package/dist/collection/styles/fonts.scss +21 -0
  62. package/dist/collection/styles/form.scss +3 -0
  63. package/dist/collection/styles/global.scss +87 -0
  64. package/dist/collection/styles/layout.scss +29 -0
  65. package/dist/collection/styles/main.scss +23 -0
  66. package/dist/collection/styles/mg-icon-animation.scss +6 -0
  67. package/dist/collection/styles/navigation-button.scss +77 -0
  68. package/dist/collection/styles/reset-mg-card-slotted-variables.scss +9 -0
  69. package/dist/collection/styles/typography.scss +75 -0
  70. package/dist/collection/styles/utilities.scss +21 -0
  71. package/dist/collection/utils/behaviors.utils.js +151 -0
  72. package/dist/collection/utils/components.utils.js +52 -0
  73. package/dist/collection/utils/locale.utils.js +28 -6
  74. package/dist/collection/utils/unit.test.utils.js +65 -32
  75. package/dist/collection/variables.css +11 -10
  76. package/dist/components/MgInput.js +6 -1
  77. package/dist/components/components.utils.js +53 -1
  78. package/dist/components/index.d.ts +10 -0
  79. package/dist/components/index.js +2 -1
  80. package/dist/components/index2.js +79 -20
  81. package/dist/components/mg-action-more.d.ts +11 -0
  82. package/dist/components/mg-action-more.js +215 -0
  83. package/dist/components/mg-badge2.js +5 -5
  84. package/dist/components/mg-button2.js +2 -2
  85. package/dist/components/mg-card2.js +1 -1
  86. package/dist/components/mg-form.js +2 -2
  87. package/dist/components/mg-icon2.js +41 -31
  88. package/dist/components/mg-illustrated-message.js +4 -3
  89. package/dist/components/mg-input-checkbox.js +3 -3
  90. package/dist/components/mg-input-date.js +7 -5
  91. package/dist/components/mg-input-numeric.js +3 -4
  92. package/dist/components/mg-input-password.js +1 -1
  93. package/dist/components/mg-input-radio.js +2 -2
  94. package/dist/components/mg-input-select2.js +9 -5
  95. package/dist/components/mg-input-text2.js +1 -1
  96. package/dist/components/mg-input-textarea.js +2 -2
  97. package/dist/components/mg-input-toggle.js +1 -1
  98. package/dist/components/mg-menu-item.js +1 -253
  99. package/dist/components/mg-menu-item2.js +520 -0
  100. package/dist/components/mg-menu.js +1 -129
  101. package/dist/components/mg-menu2.js +247 -0
  102. package/dist/components/mg-message.js +55 -14
  103. package/dist/components/mg-modal.js +1 -1
  104. package/dist/components/mg-pagination.js +3 -1
  105. package/dist/components/mg-panel.js +3 -3
  106. package/dist/components/mg-popover.js +1 -190
  107. package/dist/components/mg-popover2.js +226 -0
  108. package/dist/components/mg-skip-links.js +16 -2
  109. package/dist/components/mg-tabs.js +104 -55
  110. package/dist/components/mg-tag.js +5 -5
  111. package/dist/components/mg-tooltip2.js +15 -18
  112. package/dist/esm/{index-78edde1d.js → index-03cceb11.js} +120 -5
  113. package/dist/esm/loader.js +4 -3
  114. package/dist/esm/{mg-badge_30.entry.js → mg-action-more_31.entry.js} +1223 -548
  115. package/dist/esm/mg-components.js +4 -3
  116. package/dist/esm/polyfills/css-shim.js +1 -1
  117. package/dist/mg-components/locales/en/messages.json +10 -1
  118. package/dist/mg-components/locales/fr/messages.json +10 -1
  119. package/dist/mg-components/mg-components.css +1 -1
  120. package/dist/mg-components/mg-components.esm.js +1 -1
  121. package/dist/mg-components/p-4cfd5423.entry.js +1 -0
  122. package/dist/mg-components/p-e126dd84.js +2 -0
  123. package/dist/mg-components/styles/a11y.scss +32 -0
  124. package/dist/mg-components/styles/components.scss +3 -0
  125. package/dist/mg-components/styles/fonts.scss +21 -0
  126. package/dist/mg-components/styles/form.scss +3 -0
  127. package/dist/mg-components/styles/global.scss +87 -0
  128. package/dist/mg-components/styles/layout.scss +29 -0
  129. package/dist/mg-components/styles/main.scss +23 -0
  130. package/dist/mg-components/styles/mg-icon-animation.scss +6 -0
  131. package/dist/mg-components/styles/navigation-button.scss +77 -0
  132. package/dist/mg-components/styles/reset-mg-card-slotted-variables.scss +9 -0
  133. package/dist/mg-components/styles/typography.scss +75 -0
  134. package/dist/mg-components/styles/utilities.scss +21 -0
  135. package/dist/mg-components/variables.css +11 -10
  136. package/dist/types/components/atoms/mg-badge/mg-badge.conf.d.ts +2 -2
  137. package/dist/types/components/atoms/mg-button/mg-button.conf.d.ts +2 -2
  138. package/dist/types/components/atoms/mg-icon/mg-icon.conf.d.ts +2 -2
  139. package/dist/types/components/atoms/mg-tag/mg-tag.conf.d.ts +1 -1
  140. package/dist/types/components/molecules/inputs/MgInput.conf.d.ts +2 -2
  141. package/dist/types/components/molecules/inputs/mg-input-checkbox/mg-input-checkbox.conf.d.ts +2 -2
  142. package/dist/types/components/molecules/inputs/mg-input-radio/mg-input-radio.conf.d.ts +1 -1
  143. package/dist/types/components/molecules/inputs/mg-input-select/mg-input-select.conf.d.ts +2 -2
  144. package/dist/types/components/molecules/inputs/mg-input-textarea/mg-input-textarea.d.ts +1 -1
  145. package/dist/types/components/molecules/inputs/mg-input-toggle/mg-input-toggle.conf.d.ts +1 -1
  146. package/dist/types/components/molecules/menu/mg-menu/mg-menu.conf.d.ts +37 -0
  147. package/dist/types/components/molecules/menu/mg-menu/mg-menu.d.ts +51 -3
  148. package/dist/types/components/molecules/menu/mg-menu-item/mg-menu-item.conf.d.ts +0 -8
  149. package/dist/types/components/molecules/menu/mg-menu-item/mg-menu-item.d.ts +61 -15
  150. package/dist/types/components/molecules/mg-action-more/mg-action-more.conf.d.ts +42 -0
  151. package/dist/types/components/molecules/mg-action-more/mg-action-more.d.ts +81 -0
  152. package/dist/types/components/molecules/mg-message/mg-message.d.ts +21 -4
  153. package/dist/types/components/molecules/mg-pagination/mg-pagination.d.ts +4 -0
  154. package/dist/types/components/molecules/mg-popover/mg-popover.d.ts +13 -0
  155. package/dist/types/components/molecules/mg-skip-links/mg-skip-links.conf.d.ts +1 -1
  156. package/dist/types/components/molecules/mg-skip-links/mg-skip-links.d.ts +15 -0
  157. package/dist/types/components/molecules/mg-tabs/mg-tabs.conf.d.ts +5 -3
  158. package/dist/types/components/molecules/mg-tabs/mg-tabs.d.ts +22 -12
  159. package/dist/types/components.d.ts +98 -12
  160. package/dist/types/locales/index.d.ts +21 -10
  161. package/dist/types/stencil-public-runtime.d.ts +48 -3
  162. package/dist/types/utils/behaviors.utils.d.ts +77 -0
  163. package/dist/types/utils/components.utils.d.ts +14 -0
  164. package/dist/types/utils/locale.utils.d.ts +16 -3
  165. package/dist/types/utils/unit.test.utils.d.ts +68 -14
  166. package/loader/index.d.ts +9 -0
  167. package/package.json +28 -27
  168. package/readme.md +22 -31
  169. package/dist/.storybook/utils.js +0 -24
  170. package/dist/collection/components/atoms/mg-badge/doc/mg-badge.stories.js +0 -27
  171. package/dist/collection/components/atoms/mg-button/doc/mg-button.stories.js +0 -38
  172. package/dist/collection/components/atoms/mg-card/doc/mg-card.stories.js +0 -18
  173. package/dist/collection/components/atoms/mg-character-left/doc/mg-character-left.stories.js +0 -20
  174. package/dist/collection/components/atoms/mg-divider/doc/mg-divider.stories.js +0 -18
  175. package/dist/collection/components/atoms/mg-icon/doc/mg-icon.stories.js +0 -41
  176. package/dist/collection/components/atoms/mg-input-title/doc/mg-input-title.stories.js +0 -21
  177. package/dist/collection/components/atoms/mg-tag/doc/mg-tag.stories.js +0 -22
  178. package/dist/collection/components/atoms/mg-tooltip/doc/mg-tooltip.stories.js +0 -50
  179. package/dist/collection/components/molecules/inputs/mg-input-checkbox/doc/mg-input-checkbox.stories.js +0 -50
  180. package/dist/collection/components/molecules/inputs/mg-input-date/doc/mg-input-date.stories.js +0 -43
  181. package/dist/collection/components/molecules/inputs/mg-input-numeric/doc/mg-input-numeric.stories.js +0 -68
  182. package/dist/collection/components/molecules/inputs/mg-input-password/doc/mg-input-password.stories.js +0 -46
  183. package/dist/collection/components/molecules/inputs/mg-input-radio/doc/mg-input-radio.stories.js +0 -59
  184. package/dist/collection/components/molecules/inputs/mg-input-select/doc/mg-input-select.stories.js +0 -77
  185. package/dist/collection/components/molecules/inputs/mg-input-text/doc/mg-input-text.stories.js +0 -110
  186. package/dist/collection/components/molecules/inputs/mg-input-textarea/doc/mg-input-textarea.stories.js +0 -54
  187. package/dist/collection/components/molecules/inputs/mg-input-toggle/doc/mg-input-toggle.stories.js +0 -51
  188. package/dist/collection/components/molecules/menu/mg-menu/doc/mg-menu.stories.js +0 -87
  189. package/dist/collection/components/molecules/menu/mg-menu-item/doc/mg-menu-item.stories.js +0 -39
  190. package/dist/collection/components/molecules/mg-details/doc/mg-details.stories.js +0 -24
  191. package/dist/collection/components/molecules/mg-form/doc/mg-form.stories.js +0 -47
  192. package/dist/collection/components/molecules/mg-illustrated-message/doc/mg-illustrated-message.stories.js +0 -19
  193. package/dist/collection/components/molecules/mg-message/doc/mg-message.stories.js +0 -39
  194. package/dist/collection/components/molecules/mg-modal/doc/mg-modal.stories.js +0 -39
  195. package/dist/collection/components/molecules/mg-pagination/doc/mg-pagination.stories.js +0 -20
  196. package/dist/collection/components/molecules/mg-panel/doc/mg-panel.stories.js +0 -22
  197. package/dist/collection/components/molecules/mg-popover/doc/mg-popover.stories.js +0 -34
  198. package/dist/collection/components/molecules/mg-skip-links/doc/mg-skip-links.stories.js +0 -24
  199. package/dist/collection/components/molecules/mg-tabs/doc/mg-tabs.stories.js +0 -51
  200. package/dist/collection/stories/grids.stories.js +0 -7
  201. package/dist/collection/stories/helpers.stories.js +0 -23
  202. package/dist/collection/stories/icons.stories.js +0 -25
  203. package/dist/collection/stories/typography.stories.js +0 -24
  204. package/dist/components/locale.utils.js +0 -40
  205. package/dist/components/mg-menu.conf.js +0 -10
  206. package/dist/mg-components/p-125c54ca.js +0 -2
  207. package/dist/mg-components/p-4961c96c.entry.js +0 -1
  208. package/dist/types/components/atoms/mg-badge/doc/mg-badge.stories.d.ts +0 -13
  209. package/dist/types/components/atoms/mg-button/doc/mg-button.stories.d.ts +0 -16
  210. package/dist/types/components/atoms/mg-card/doc/mg-card.stories.d.ts +0 -6
  211. package/dist/types/components/atoms/mg-character-left/doc/mg-character-left.stories.d.ts +0 -6
  212. package/dist/types/components/atoms/mg-divider/doc/mg-divider.stories.d.ts +0 -6
  213. package/dist/types/components/atoms/mg-icon/doc/mg-icon.stories.d.ts +0 -26
  214. package/dist/types/components/atoms/mg-input-title/doc/mg-input-title.stories.d.ts +0 -6
  215. package/dist/types/components/atoms/mg-tag/doc/mg-tag.stories.d.ts +0 -6
  216. package/dist/types/components/atoms/mg-tooltip/doc/mg-tooltip.stories.d.ts +0 -18
  217. package/dist/types/components/molecules/inputs/mg-input-checkbox/doc/mg-input-checkbox.stories.d.ts +0 -11
  218. package/dist/types/components/molecules/inputs/mg-input-date/doc/mg-input-date.stories.d.ts +0 -12
  219. package/dist/types/components/molecules/inputs/mg-input-numeric/doc/mg-input-numeric.stories.d.ts +0 -32
  220. package/dist/types/components/molecules/inputs/mg-input-password/doc/mg-input-password.stories.d.ts +0 -22
  221. package/dist/types/components/molecules/inputs/mg-input-radio/doc/mg-input-radio.stories.d.ts +0 -20
  222. package/dist/types/components/molecules/inputs/mg-input-select/doc/mg-input-select.stories.d.ts +0 -34
  223. package/dist/types/components/molecules/inputs/mg-input-text/doc/mg-input-text.stories.d.ts +0 -39
  224. package/dist/types/components/molecules/inputs/mg-input-textarea/doc/mg-input-textarea.stories.d.ts +0 -19
  225. package/dist/types/components/molecules/inputs/mg-input-toggle/doc/mg-input-toggle.stories.d.ts +0 -12
  226. package/dist/types/components/molecules/menu/mg-menu/doc/mg-menu.stories.d.ts +0 -17
  227. package/dist/types/components/molecules/menu/mg-menu-item/doc/mg-menu-item.stories.d.ts +0 -12
  228. package/dist/types/components/molecules/mg-details/doc/mg-details.stories.d.ts +0 -11
  229. package/dist/types/components/molecules/mg-form/doc/mg-form.stories.d.ts +0 -11
  230. package/dist/types/components/molecules/mg-illustrated-message/doc/mg-illustrated-message.stories.d.ts +0 -6
  231. package/dist/types/components/molecules/mg-message/doc/mg-message.stories.d.ts +0 -26
  232. package/dist/types/components/molecules/mg-modal/doc/mg-modal.stories.d.ts +0 -13
  233. package/dist/types/components/molecules/mg-pagination/doc/mg-pagination.stories.d.ts +0 -11
  234. package/dist/types/components/molecules/mg-panel/doc/mg-panel.stories.d.ts +0 -11
  235. package/dist/types/components/molecules/mg-popover/doc/mg-popover.stories.d.ts +0 -22
  236. package/dist/types/components/molecules/mg-skip-links/doc/mg-skip-links.stories.d.ts +0 -11
  237. package/dist/types/components/molecules/mg-tabs/doc/mg-tabs.stories.d.ts +0 -20
  238. package/dist/types/home/runner/work/mg-components/mg-components/.stencil/.storybook/utils.d.ts +0 -1
  239. package/dist/types/stories/grids.stories.d.ts +0 -5
  240. package/dist/types/stories/helpers.stories.d.ts +0 -13
  241. package/dist/types/stories/icons.stories.d.ts +0 -13
  242. package/dist/types/stories/typography.stories.d.ts +0 -5
@@ -1,3 +1,5 @@
1
+ import { MgIcon } from '../../../atoms/mg-icon/mg-icon';
2
+ import { MgMenu } from './mg-menu';
1
3
  /**
2
4
  * Menu direction type
3
5
  */
@@ -5,3 +7,38 @@ export declare enum Direction {
5
7
  VERTICAL = "vertical",
6
8
  HORIZONTAL = "horizontal"
7
9
  }
10
+ /**
11
+ * message type
12
+ */
13
+ export type MessageType = {
14
+ moreLabel: string;
15
+ badgeLabel: string;
16
+ };
17
+ /**
18
+ * more item type
19
+ */
20
+ export type MoreItemType = {
21
+ mgIcon?: {
22
+ icon: MgIcon['icon'];
23
+ };
24
+ slotLabel?: {
25
+ label?: string;
26
+ display?: boolean;
27
+ };
28
+ size?: MgMenu['size'];
29
+ };
30
+ /**
31
+ * More item type guard
32
+ *
33
+ * @param {unknown} element element to control
34
+ * @returns {boolean} truthy if element is more-item
35
+ */
36
+ export declare const isMoreItem: (element: unknown) => element is MoreItemType;
37
+ /**
38
+ * List of all possibles sizes
39
+ */
40
+ export declare const sizes: readonly ["regular", "medium", "large"];
41
+ /**
42
+ * item Size from sizes
43
+ */
44
+ export type MenuSizeType = (typeof sizes)[number];
@@ -1,11 +1,13 @@
1
- import { Direction } from './mg-menu.conf';
1
+ import { Direction, MenuSizeType, MoreItemType } from './mg-menu.conf';
2
2
  export declare class MgMenu {
3
3
  /************
4
4
  * Internal *
5
5
  ************/
6
6
  private readonly name;
7
+ private messages;
7
8
  private menuItems;
8
9
  private focusedMenuItem;
10
+ private overflowBehavior;
9
11
  /**************
10
12
  * Decorators *
11
13
  **************/
@@ -24,22 +26,50 @@ export declare class MgMenu {
24
26
  */
25
27
  direction: Direction;
26
28
  validateDirection(newValue: MgMenu['direction']): void;
29
+ /**
30
+ * Customize mg-menu "more element"
31
+ * Used with direction: 'vertical' to manage overflow
32
+ */
33
+ moreitem: MoreItemType;
34
+ validateMoreItem(newValue: MgMenu['moreitem']): void;
35
+ /**
36
+ * Define mg-menu size
37
+ * Default: 'regular'
38
+ */
39
+ size: MenuSizeType;
40
+ validateSize(newValue: MgMenu['size']): void;
27
41
  /**
28
42
  * is this menu a child menu. Used for conditional render.
29
43
  */
30
44
  isChildMenu: boolean;
45
+ /**
46
+ * Define if component manage child overflow
47
+ * Default: false
48
+ */
49
+ hasOverflow: boolean;
31
50
  /**
32
51
  * Close matching menu-item
33
52
  *
34
- * @param {HTMLMgMenuItemElement} item menu-item to close
53
+ * @param {HTMLElement} item menu-item to close
35
54
  * @param {boolean} condition addionnal condition
36
55
  * @returns {void}
37
56
  */
38
57
  private closeMenuItem;
58
+ /*************
59
+ * Methods *
60
+ *************/
39
61
  /**
40
62
  * Store menu-items on component init and add listeners
63
+ *
64
+ * @returns {void}
41
65
  */
42
- private initMenuItems;
66
+ private initMenuItemsListeners;
67
+ /**
68
+ * render mg-menu-more
69
+ *
70
+ * @returns {HTMLElement} formated mg-menu-item element
71
+ */
72
+ private renderMgMenuMore;
43
73
  /*************
44
74
  * Lifecycle *
45
75
  *************/
@@ -55,6 +85,24 @@ export declare class MgMenu {
55
85
  * @returns {ReturnType<typeof setTimeout>} timeout
56
86
  */
57
87
  componentDidLoad(): ReturnType<typeof setTimeout>;
88
+ /**
89
+ * Check add listeners to childs
90
+ *
91
+ * @returns {void}
92
+ */
93
+ componentDidRender(): void;
94
+ /**
95
+ * Disconnect overflow ResizeObserver
96
+ *
97
+ * @returns {void} run overflow resize obeserver disconnexion
98
+ */
99
+ disconnectedCallback(): void;
100
+ /**
101
+ * Render mg-menu-item more element for overflow behavior
102
+ *
103
+ * @returns {HTMLElement} rendered mg-menu-item more element
104
+ */
105
+ private renderMgMenuItemMore;
58
106
  /**
59
107
  * Render
60
108
  *
@@ -14,11 +14,3 @@ export declare enum Status {
14
14
  DISABLED = "disabled",
15
15
  ACTIVE = "active"
16
16
  }
17
- /**
18
- * List of all possibles sizes
19
- */
20
- export declare const sizes: readonly ["regular", "medium", "large"];
21
- /**
22
- * item Size from sizes
23
- */
24
- export declare type MenuItemSizeType = typeof sizes[number];
@@ -1,12 +1,15 @@
1
+ import { EventEmitter } from '../../../../stencil-public-runtime';
1
2
  import { ClassList } from '../../../../utils/components.utils';
2
3
  import { MgMenu } from '../mg-menu/mg-menu';
3
- import { MenuItemSizeType, Status } from './mg-menu-item.conf';
4
+ import { MenuSizeType } from '../mg-menu/mg-menu.conf';
5
+ import { Status } from './mg-menu-item.conf';
4
6
  export declare class MgMenuItem {
5
7
  /************
6
8
  * Internal *
7
9
  ************/
8
10
  private readonly name;
9
11
  private readonly navigationButton;
12
+ private badgeLabel;
10
13
  /**************
11
14
  * Decorators *
12
15
  **************/
@@ -18,7 +21,7 @@ export declare class MgMenuItem {
18
21
  * Props *
19
22
  ************/
20
23
  /**
21
- * Define menu-item badge
24
+ * Define menu-item href
22
25
  * when defined menu-item contain an anchor instead of button
23
26
  */
24
27
  href: string;
@@ -27,19 +30,26 @@ export declare class MgMenuItem {
27
30
  */
28
31
  status: Status;
29
32
  validateStatus(newValue: MgMenuItem['status'], oldValue?: MgMenuItem['status']): void;
30
- /**
31
- * Define menu-item size. Default: "large".
32
- */
33
- size: MenuItemSizeType;
34
- validateSize(newValue: MgMenuItem['size'], oldValue?: MgMenuItem['size']): void;
35
33
  /**
36
34
  * Define menu-item content expanded. Default: false.
37
35
  */
38
36
  expanded: boolean;
39
37
  validateExpanded(newValue: MgMenuItem['expanded']): void;
40
- /************
38
+ /**********
39
+ * Events *
40
+ *********/
41
+ /**
42
+ * Emited event when status change
43
+ */
44
+ statusChange: EventEmitter<MgMenuItem['status']>;
45
+ /**********
41
46
  * States *
42
- ************/
47
+ *********/
48
+ /**
49
+ * Define menu-item size. Default: "regular".
50
+ */
51
+ size: MenuSizeType;
52
+ validateSize(newValue: MgMenuItem['size'], oldValue?: MgMenuItem['size']): void;
43
53
  /**
44
54
  * Component button classes
45
55
  */
@@ -57,9 +67,13 @@ export declare class MgMenuItem {
57
67
  */
58
68
  hasChildren: boolean;
59
69
  validateHasChildren(newValue: boolean): void;
60
- /************
70
+ /**
71
+ * Does component should display notification badge.
72
+ */
73
+ displayNotificationBadge: boolean;
74
+ /***********
61
75
  * Methods *
62
- ************/
76
+ **********/
63
77
  /**
64
78
  * Toggle expanded prop value
65
79
  *
@@ -67,20 +81,20 @@ export declare class MgMenuItem {
67
81
  */
68
82
  private toggleExpanded;
69
83
  /**
70
- * Does an HTMLElement contain child with given Status
84
+ * Does an Element have given Status
71
85
  *
72
- * @param {HTMLElement} element to parse
86
+ * @param {HTMLMgMenuItemElement} mgMenuItemElement to parse
73
87
  * @param {MgMenuItem['status']} status to check
74
88
  * @returns {boolean} true if element with status is found
75
89
  */
76
- private hasChildElementStatus;
90
+ private hasStatus;
77
91
  /**
78
92
  * Is component contextual direction match the given direction
79
93
  *
80
94
  * @param {MgMenuItem['direction']} direction in parent menu
81
95
  * @returns {boolean} true is direction match the direction propertie
82
96
  */
83
- private isdirection;
97
+ private isDirection;
84
98
  /************
85
99
  * Handlers *
86
100
  ************/
@@ -91,6 +105,26 @@ export declare class MgMenuItem {
91
105
  * @returns {void}
92
106
  */
93
107
  private handleElementCLick;
108
+ /**
109
+ * Handle popover element display-change event
110
+ *
111
+ * @param {CustomEvent} event popover display event
112
+ * @returns {void}
113
+ */
114
+ private handlePopoverDisplay;
115
+ /**
116
+ * Update displayNotificationBadge
117
+ * current component notification badge have priority over the slot badge when submenu contain badge
118
+ *
119
+ * @returns {void} update displayNotificationBadge value
120
+ */
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;
94
128
  /*************
95
129
  * Lifecycle *
96
130
  *************/
@@ -106,6 +140,18 @@ export declare class MgMenuItem {
106
140
  * @returns {ReturnType<typeof setTimeout>} timeout
107
141
  */
108
142
  componentDidLoad(): ReturnType<typeof setTimeout>;
143
+ /**
144
+ * Render ineractive element
145
+ *
146
+ * @returns {HTMLElement} HTML Element
147
+ */
148
+ private renderInteractiveElement;
149
+ /**
150
+ * Render slot
151
+ *
152
+ * @returns {HTMLElement} HTML Element
153
+ */
154
+ private renderSlot;
109
155
  /**
110
156
  * Render
111
157
  *
@@ -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
+ }
@@ -7,6 +7,8 @@ export declare class MgMessage {
7
7
  private readonly classHide;
8
8
  private closeButtonId;
9
9
  private storedTimer;
10
+ private isFocused;
11
+ private isHovered;
10
12
  private messages;
11
13
  /**************
12
14
  * Decorators *
@@ -59,13 +61,28 @@ export declare class MgMessage {
59
61
  */
60
62
  componentHide: EventEmitter<string>;
61
63
  /**
62
- * Handle close button
64
+ * Set timer
65
+ *
66
+ * @returns {void}
63
67
  */
64
- private handleClose;
68
+ private setTimer;
65
69
  /**
66
- * Hide component whith delay
70
+ * Clear timer
71
+ *
72
+ * @returns {void}
67
73
  */
68
- private hideWithDelay;
74
+ private clearTimer;
75
+ /**
76
+ * Event to add on element
77
+ *
78
+ * @param {MouseEvent | FocusEvent} event event
79
+ * @returns {void}
80
+ */
81
+ private timerEvents;
82
+ /**
83
+ * Handle close button
84
+ */
85
+ private handleClose;
69
86
  /**
70
87
  * Get icon corresponding to variant
71
88
  *
@@ -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,4 +1,5 @@
1
1
  import { EventEmitter } from '../../../stencil-public-runtime';
2
+ import { ClassList } from '../../../utils/components.utils';
2
3
  import { Placement } from '@popperjs/core';
3
4
  export declare class MgPopover {
4
5
  /************
@@ -7,7 +8,10 @@ export declare class MgPopover {
7
8
  private popper;
8
9
  private popover;
9
10
  private closeButtonId;
11
+ private windows;
12
+ private resizeObserver;
10
13
  private messages;
14
+ private readonly classArrowHide;
11
15
  /**************
12
16
  * Decorators *
13
17
  **************/
@@ -24,6 +28,11 @@ export declare class MgPopover {
24
28
  * Popover placement
25
29
  */
26
30
  placement: Placement;
31
+ /**
32
+ * Hide popover arrow
33
+ */
34
+ arrowHide: boolean;
35
+ validateArrowHide(newValue: MgPopover['arrowHide']): void;
27
36
  /**
28
37
  * Define if popover has a cross button
29
38
  */
@@ -37,6 +46,10 @@ export declare class MgPopover {
37
46
  * Disable popover
38
47
  */
39
48
  disabled: boolean;
49
+ /**
50
+ * Component classes
51
+ */
52
+ classList: ClassList;
40
53
  /**
41
54
  * Emited event when display value change
42
55
  */
@@ -1,7 +1,7 @@
1
1
  /**
2
2
  * type SkipLink
3
3
  */
4
- export declare type SkipLink = {
4
+ export type SkipLink = {
5
5
  href: string;
6
6
  label: string;
7
7
  };
@@ -1,3 +1,4 @@
1
+ import { EventEmitter } from '../../../stencil-public-runtime';
1
2
  import { SkipLink } from './mg-skip-links.conf';
2
3
  export declare class MgSkipLinks {
3
4
  /************
@@ -16,6 +17,20 @@ export declare class MgSkipLinks {
16
17
  */
17
18
  links: SkipLink[];
18
19
  validateLinks(links: SkipLink[]): void;
20
+ /**
21
+ * Emited event when link is clicked
22
+ */
23
+ goToAnchor: EventEmitter<string>;
24
+ /***********
25
+ * Methods *
26
+ **********/
27
+ /**
28
+ * Handle link click and emit go-to-anchor event
29
+ *
30
+ * @param {MouseEvent} event mouse event
31
+ * @returns {void}
32
+ */
33
+ private handleLinkCLick;
19
34
  /*************
20
35
  * Lifecycle *
21
36
  *************/
@@ -13,10 +13,12 @@ export declare enum Status {
13
13
  * type TabItem
14
14
  * use to match tabs items
15
15
  */
16
- export declare type TabItem = {
16
+ export type TabItem = {
17
17
  label: string;
18
18
  icon?: MgIcon['icon'];
19
- badge?: Pick<MgBadge, 'value' | 'variant' | 'label'>;
19
+ badge?: Pick<MgBadge, 'value' | 'variant' | 'label'> & {
20
+ role: 'notification' | 'information';
21
+ };
20
22
  status: Status;
21
23
  };
22
24
  /**
@@ -26,4 +28,4 @@ export declare const sizes: readonly ["regular", "large"];
26
28
  /**
27
29
  * Variant type from variants
28
30
  */
29
- export declare type SizeType = typeof sizes[number];
31
+ export type SizeType = (typeof sizes)[number];
@@ -7,6 +7,7 @@ export declare class MgTabs {
7
7
  ************/
8
8
  private readonly tabPanel;
9
9
  private readonly buttonTabBaseClass;
10
+ private tabFocus;
10
11
  private startIndex;
11
12
  /**************
12
13
  * Decorators *
@@ -39,7 +40,6 @@ export declare class MgTabs {
39
40
  validateItems(newValue: MgTabs['items']): void;
40
41
  /**
41
42
  * Active tab number
42
- * default: first is 1
43
43
  */
44
44
  activeTab: number;
45
45
  validateActiveTab(newValue: MgTabs['activeTab']): void;
@@ -55,13 +55,6 @@ export declare class MgTabs {
55
55
  * Emited event when active tab change
56
56
  */
57
57
  activeTabChange: EventEmitter<number>;
58
- /**
59
- * Method to set active tab
60
- *
61
- * @param {number} tabKey item tab key to set to ACTIVE status
62
- * @returns {void}
63
- */
64
- private setActiveTab;
65
58
  /**
66
59
  * Method to know if given tab has the given status
67
60
  *
@@ -69,7 +62,7 @@ export declare class MgTabs {
69
62
  * @param {Status} status status to valide
70
63
  * @returns {boolean} status comparaison
71
64
  */
72
- private tabHasGivenStatus;
65
+ private tabHasStatus;
73
66
  /**
74
67
  * Method to get element id from index
75
68
  *
@@ -79,12 +72,18 @@ export declare class MgTabs {
79
72
  */
80
73
  private getElementId;
81
74
  /**
82
- * Method to get tab index
75
+ * Method to get tab item index
83
76
  *
84
77
  * @param {number} index to get
85
78
  * @returns {number} index
86
79
  */
87
- private getTabIndex;
80
+ private getTabItemIndex;
81
+ /**
82
+ * Method to get the active-tab value
83
+ *
84
+ * @returns {number} of the active-tab
85
+ */
86
+ private getActiveTab;
88
87
  /**
89
88
  * Handle click events on tabs
90
89
  *
@@ -95,7 +94,6 @@ export declare class MgTabs {
95
94
  * get navigation button class from given status
96
95
  *
97
96
  * @param {Status} status button tab status
98
- * @param {boolean} isSelector set if we need a CSS selector with the dot '.' at the begin. default value = false.
99
97
  * @returns {string} button class/selector variant
100
98
  */
101
99
  private getNavigationButtonClass;
@@ -106,6 +104,12 @@ export declare class MgTabs {
106
104
  * @returns {void}
107
105
  */
108
106
  private handleKeydown;
107
+ /**
108
+ * Method to reset focus behavior
109
+ *
110
+ * @returns {void}
111
+ */
112
+ private resetFocus;
109
113
  /**
110
114
  * Validate slots setting
111
115
  */
@@ -119,6 +123,12 @@ export declare class MgTabs {
119
123
  * @returns {void}
120
124
  */
121
125
  componentWillLoad(): void;
126
+ /**
127
+ * add listners
128
+ *
129
+ * @returns {void}
130
+ */
131
+ componentDidLoad(): void;
122
132
  /**
123
133
  * Render
124
134
  *