@mgdis/mg-components 5.7.0 → 5.8.1

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 (66) hide show
  1. package/dist/cjs/loader.cjs.js +1 -1
  2. package/dist/cjs/mg-action-more_31.cjs.entry.js +351 -600
  3. package/dist/cjs/mg-components.cjs.js +1 -1
  4. package/dist/cjs/mg-item-more.cjs.entry.js +273 -0
  5. package/dist/cjs/mg-menu.conf-9afe6571.js +242 -0
  6. package/dist/collection/collection-manifest.json +2 -1
  7. package/dist/collection/components/atoms/mg-button/mg-button.js +24 -0
  8. package/dist/collection/components/atoms/mg-icon/mg-icon.conf.js +8 -0
  9. package/dist/collection/components/atoms/mg-tooltip/mg-tooltip.js +6 -2
  10. package/dist/collection/components/molecules/inputs/mg-input-checkbox/mg-input-checkbox.js +14 -10
  11. package/dist/collection/components/molecules/inputs/mg-input-select/mg-input-select.js +91 -21
  12. package/dist/collection/components/molecules/menu/mg-menu/mg-menu.conf.js +0 -13
  13. package/dist/collection/components/molecules/menu/mg-menu/mg-menu.js +80 -76
  14. package/dist/collection/components/molecules/menu/mg-menu-item/mg-menu-item.css +7 -5
  15. package/dist/collection/components/molecules/menu/mg-menu-item/mg-menu-item.js +174 -78
  16. package/dist/collection/components/molecules/mg-form/mg-form.js +1 -1
  17. package/dist/collection/components/molecules/mg-item-more/mg-item-more.conf.js +1 -0
  18. package/dist/collection/components/molecules/mg-item-more/mg-item-more.css +30 -0
  19. package/dist/collection/components/molecules/mg-item-more/mg-item-more.js +200 -0
  20. package/dist/collection/components/molecules/mg-tabs/mg-tabs.css +0 -2
  21. package/dist/collection/styles/navigation-button.scss +1 -1
  22. package/dist/collection/utils/behaviors.utils.js +33 -29
  23. package/dist/collection/utils/components.utils.js +2 -4
  24. package/dist/collection/utils/unit.test.utils.js +25 -0
  25. package/dist/components/components.utils.js +2 -4
  26. package/dist/components/index.d.ts +1 -0
  27. package/dist/components/index.js +1 -0
  28. package/dist/components/mg-action-more.js +2 -1
  29. package/dist/components/mg-button2.js +4 -1
  30. package/dist/components/mg-form.js +1 -1
  31. package/dist/components/mg-icon2.js +8 -0
  32. package/dist/components/mg-input-checkbox.js +5 -4
  33. package/dist/components/mg-input-select2.js +83 -17
  34. package/dist/components/mg-item-more.d.ts +11 -0
  35. package/dist/components/mg-item-more.js +336 -0
  36. package/dist/components/mg-menu-item2.js +138 -251
  37. package/dist/components/mg-menu.conf.js +14 -0
  38. package/dist/components/mg-menu2.js +76 -111
  39. package/dist/components/mg-tabs.js +1 -1
  40. package/dist/components/mg-tooltip2.js +6 -2
  41. package/dist/esm/loader.js +1 -1
  42. package/dist/esm/mg-action-more_31.entry.js +321 -570
  43. package/dist/esm/mg-components.js +1 -1
  44. package/dist/esm/mg-item-more.entry.js +269 -0
  45. package/dist/esm/mg-menu.conf-881fbd82.js +235 -0
  46. package/dist/mg-components/mg-components.css +1 -1
  47. package/dist/mg-components/mg-components.esm.js +1 -1
  48. package/dist/mg-components/p-1221773c.entry.js +1 -0
  49. package/dist/mg-components/p-30bc87db.entry.js +1 -0
  50. package/dist/mg-components/p-367f92d2.js +1 -0
  51. package/dist/mg-components/styles/navigation-button.scss +1 -1
  52. package/dist/types/components/atoms/mg-button/mg-button.d.ts +5 -0
  53. package/dist/types/components/molecules/inputs/mg-input-checkbox/mg-input-checkbox.d.ts +3 -3
  54. package/dist/types/components/molecules/inputs/mg-input-select/mg-input-select.d.ts +39 -4
  55. package/dist/types/components/molecules/menu/mg-menu/mg-menu.conf.d.ts +3 -27
  56. package/dist/types/components/molecules/menu/mg-menu/mg-menu.d.ts +38 -30
  57. package/dist/types/components/molecules/menu/mg-menu-item/mg-menu-item.conf.d.ts +5 -0
  58. package/dist/types/components/molecules/menu/mg-menu-item/mg-menu-item.d.ts +69 -16
  59. package/dist/types/components/molecules/mg-item-more/mg-item-more.conf.d.ts +26 -0
  60. package/dist/types/components/molecules/mg-item-more/mg-item-more.d.ts +74 -0
  61. package/dist/types/components.d.ts +75 -17
  62. package/dist/types/utils/behaviors.utils.d.ts +12 -5
  63. package/dist/types/utils/components.utils.d.ts +2 -2
  64. package/dist/types/utils/unit.test.utils.d.ts +11 -0
  65. package/package.json +1 -1
  66. package/dist/mg-components/p-4cfd5423.entry.js +0 -1
@@ -14,11 +14,12 @@ import { Width } from "./components/molecules/inputs/MgInput.conf";
14
14
  import { RadioOption } from "./components/molecules/inputs/mg-input-radio/mg-input-radio.conf";
15
15
  import { SelectOption } from "./components/molecules/inputs/mg-input-select/mg-input-select.conf";
16
16
  import { ToggleValue } from "./components/molecules/inputs/mg-input-toggle/mg-input-toggle.conf";
17
- import { Direction, MenuSizeType, MoreItemType } from "./components/molecules/menu/mg-menu/mg-menu.conf";
17
+ import { IconType, SizeType, SlotLabelType } from "./components/molecules/mg-item-more/mg-item-more.conf";
18
+ import { Direction, ItemMoreType, MenuSizeType } from "./components/molecules/menu/mg-menu/mg-menu.conf";
18
19
  import { Status } from "./components/molecules/menu/mg-menu-item/mg-menu-item.conf";
19
20
  import { Placement } from "@popperjs/core";
20
21
  import { SkipLink } from "./components/molecules/mg-skip-links/mg-skip-links.conf";
21
- import { SizeType, TabItem } from "./components/molecules/mg-tabs/mg-tabs.conf";
22
+ import { SizeType as SizeType1, TabItem } from "./components/molecules/mg-tabs/mg-tabs.conf";
22
23
  import { TagVariantType } from "./components/atoms/mg-tag/mg-tag.conf";
23
24
  export namespace Components {
24
25
  interface MgActionMore {
@@ -574,7 +575,7 @@ export namespace Components {
574
575
  /**
575
576
  * Items are the possible options to select
576
577
  */
577
- "items": string[] | SelectOption[];
578
+ "items": (string | SelectOption)[];
578
579
  /**
579
580
  * Input label
580
581
  */
@@ -884,19 +885,33 @@ export namespace Components {
884
885
  */
885
886
  "value": any;
886
887
  }
888
+ interface MgItemMore {
889
+ /**
890
+ * Define icon Default: {icon: 'ellipsis-vertical'}
891
+ */
892
+ "icon": IconType;
893
+ /**
894
+ * Define component child menu size.
895
+ */
896
+ "size": SizeType;
897
+ /**
898
+ * Define slot label element Default: {display: false}
899
+ */
900
+ "slotlabel": SlotLabelType;
901
+ }
887
902
  interface MgMenu {
888
903
  /**
889
904
  * Component display direction. Default: "horizontal"
890
905
  */
891
906
  "direction": Direction;
892
907
  /**
893
- * Menu label. Include short menu description. Required for accessibility
908
+ * Customize "mg-item-more" element Used with direction: 'vertical' to manage overflow
894
909
  */
895
- "label": string;
910
+ "itemmore": ItemMoreType;
896
911
  /**
897
- * Customize mg-menu "more element" Used with direction: 'vertical' to manage overflow
912
+ * Menu label. Include short menu description. Required for accessibility
898
913
  */
899
- "moreitem": MoreItemType;
914
+ "label": string;
900
915
  /**
901
916
  * Define mg-menu size Default: 'regular'
902
917
  */
@@ -911,6 +926,10 @@ export namespace Components {
911
926
  * Define menu-item href when defined menu-item contain an anchor instead of button
912
927
  */
913
928
  "href": string;
929
+ /**
930
+ * Identifier is used to control mg-popover Default: createID('mg-menu-item');
931
+ */
932
+ "identifier": string;
914
933
  /**
915
934
  * Define menu-item status. Default: "visible"
916
935
  */
@@ -1060,7 +1079,7 @@ export namespace Components {
1060
1079
  /**
1061
1080
  * Define tabs size
1062
1081
  */
1063
- "size": SizeType;
1082
+ "size": SizeType1;
1064
1083
  }
1065
1084
  interface MgTag {
1066
1085
  /**
@@ -1099,6 +1118,10 @@ export namespace Components {
1099
1118
  "placement": Placement;
1100
1119
  }
1101
1120
  }
1121
+ export interface MgButtonCustomEvent<T> extends CustomEvent<T> {
1122
+ detail: T;
1123
+ target: HTMLMgButtonElement;
1124
+ }
1102
1125
  export interface MgDetailsCustomEvent<T> extends CustomEvent<T> {
1103
1126
  detail: T;
1104
1127
  target: HTMLMgDetailsElement;
@@ -1296,6 +1319,12 @@ declare global {
1296
1319
  prototype: HTMLMgInputToggleElement;
1297
1320
  new (): HTMLMgInputToggleElement;
1298
1321
  };
1322
+ interface HTMLMgItemMoreElement extends Components.MgItemMore, HTMLStencilElement {
1323
+ }
1324
+ var HTMLMgItemMoreElement: {
1325
+ prototype: HTMLMgItemMoreElement;
1326
+ new (): HTMLMgItemMoreElement;
1327
+ };
1299
1328
  interface HTMLMgMenuElement extends Components.MgMenu, HTMLStencilElement {
1300
1329
  }
1301
1330
  var HTMLMgMenuElement: {
@@ -1383,6 +1412,7 @@ declare global {
1383
1412
  "mg-input-textarea": HTMLMgInputTextareaElement;
1384
1413
  "mg-input-title": HTMLMgInputTitleElement;
1385
1414
  "mg-input-toggle": HTMLMgInputToggleElement;
1415
+ "mg-item-more": HTMLMgItemMoreElement;
1386
1416
  "mg-menu": HTMLMgMenuElement;
1387
1417
  "mg-menu-item": HTMLMgMenuItemElement;
1388
1418
  "mg-message": HTMLMgMessageElement;
@@ -1462,6 +1492,10 @@ declare namespace LocalJSX {
1462
1492
  * aria-label In case button text is not explicit enough
1463
1493
  */
1464
1494
  "label"?: string;
1495
+ /**
1496
+ * Emmited event when disabled change
1497
+ */
1498
+ "onDisabled-change"?: (event: MgButtonCustomEvent<MgButton['disabled']>) => void;
1465
1499
  /**
1466
1500
  * Define button type
1467
1501
  */
@@ -1617,11 +1651,11 @@ declare namespace LocalJSX {
1617
1651
  /**
1618
1652
  * Emited event when checking validity
1619
1653
  */
1620
- "onInput-valid"?: (event: MgInputCheckboxCustomEvent<boolean>) => void;
1654
+ "onInput-valid"?: (event: MgInputCheckboxCustomEvent<MgInputCheckbox['valid']>) => void;
1621
1655
  /**
1622
1656
  * Emitted event when value change
1623
1657
  */
1624
- "onValue-change"?: (event: MgInputCheckboxCustomEvent<CheckboxValue[]>) => void;
1658
+ "onValue-change"?: (event: MgInputCheckboxCustomEvent<MgInputCheckbox['value']>) => void;
1625
1659
  /**
1626
1660
  * Define if input is readonly
1627
1661
  */
@@ -1967,7 +2001,7 @@ declare namespace LocalJSX {
1967
2001
  /**
1968
2002
  * Items are the possible options to select
1969
2003
  */
1970
- "items": string[] | SelectOption[];
2004
+ "items": (string | SelectOption)[];
1971
2005
  /**
1972
2006
  * Input label
1973
2007
  */
@@ -1995,7 +2029,7 @@ declare namespace LocalJSX {
1995
2029
  /**
1996
2030
  * Emited event when value change
1997
2031
  */
1998
- "onValue-change"?: (event: MgInputSelectCustomEvent<any>) => void;
2032
+ "onValue-change"?: (event: MgInputSelectCustomEvent<MgInputSelect['value']>) => void;
1999
2033
  /**
2000
2034
  * Input placeholder. It should be a word or short phrase that demonstrates the expected type of data, not a replacement for labels or help text.
2001
2035
  */
@@ -2294,19 +2328,33 @@ declare namespace LocalJSX {
2294
2328
  */
2295
2329
  "value"?: any;
2296
2330
  }
2331
+ interface MgItemMore {
2332
+ /**
2333
+ * Define icon Default: {icon: 'ellipsis-vertical'}
2334
+ */
2335
+ "icon"?: IconType;
2336
+ /**
2337
+ * Define component child menu size.
2338
+ */
2339
+ "size"?: SizeType;
2340
+ /**
2341
+ * Define slot label element Default: {display: false}
2342
+ */
2343
+ "slotlabel"?: SlotLabelType;
2344
+ }
2297
2345
  interface MgMenu {
2298
2346
  /**
2299
2347
  * Component display direction. Default: "horizontal"
2300
2348
  */
2301
2349
  "direction"?: Direction;
2302
2350
  /**
2303
- * Menu label. Include short menu description. Required for accessibility
2351
+ * Customize "mg-item-more" element Used with direction: 'vertical' to manage overflow
2304
2352
  */
2305
- "label": string;
2353
+ "itemmore"?: ItemMoreType;
2306
2354
  /**
2307
- * Customize mg-menu "more element" Used with direction: 'vertical' to manage overflow
2355
+ * Menu label. Include short menu description. Required for accessibility
2308
2356
  */
2309
- "moreitem"?: MoreItemType;
2357
+ "label": string;
2310
2358
  /**
2311
2359
  * Define mg-menu size Default: 'regular'
2312
2360
  */
@@ -2321,6 +2369,14 @@ declare namespace LocalJSX {
2321
2369
  * Define menu-item href when defined menu-item contain an anchor instead of button
2322
2370
  */
2323
2371
  "href"?: string;
2372
+ /**
2373
+ * Identifier is used to control mg-popover Default: createID('mg-menu-item');
2374
+ */
2375
+ "identifier"?: string;
2376
+ /**
2377
+ * Emited event when item is loaded
2378
+ */
2379
+ "onItem-loaded"?: (event: MgMenuItemCustomEvent<void>) => void;
2324
2380
  /**
2325
2381
  * Emited event when status change
2326
2382
  */
@@ -2514,7 +2570,7 @@ declare namespace LocalJSX {
2514
2570
  /**
2515
2571
  * Define tabs size
2516
2572
  */
2517
- "size"?: SizeType;
2573
+ "size"?: SizeType1;
2518
2574
  }
2519
2575
  interface MgTag {
2520
2576
  /**
@@ -2573,6 +2629,7 @@ declare namespace LocalJSX {
2573
2629
  "mg-input-textarea": MgInputTextarea;
2574
2630
  "mg-input-title": MgInputTitle;
2575
2631
  "mg-input-toggle": MgInputToggle;
2632
+ "mg-item-more": MgItemMore;
2576
2633
  "mg-menu": MgMenu;
2577
2634
  "mg-menu-item": MgMenuItem;
2578
2635
  "mg-message": MgMessage;
@@ -2610,6 +2667,7 @@ declare module "@stencil/core" {
2610
2667
  "mg-input-textarea": LocalJSX.MgInputTextarea & JSXBase.HTMLAttributes<HTMLMgInputTextareaElement>;
2611
2668
  "mg-input-title": LocalJSX.MgInputTitle & JSXBase.HTMLAttributes<HTMLMgInputTitleElement>;
2612
2669
  "mg-input-toggle": LocalJSX.MgInputToggle & JSXBase.HTMLAttributes<HTMLMgInputToggleElement>;
2670
+ "mg-item-more": LocalJSX.MgItemMore & JSXBase.HTMLAttributes<HTMLMgItemMoreElement>;
2613
2671
  "mg-menu": LocalJSX.MgMenu & JSXBase.HTMLAttributes<HTMLMgMenuElement>;
2614
2672
  "mg-menu-item": LocalJSX.MgMenuItem & JSXBase.HTMLAttributes<HTMLMgMenuItemElement>;
2615
2673
  "mg-message": LocalJSX.MgMessage & JSXBase.HTMLAttributes<HTMLMgMessageElement>;
@@ -1,14 +1,14 @@
1
1
  export declare enum OverflowBehaviorElements {
2
- MORE = "data-overflow-more",
3
2
  BASE_INDEX = "data-overflow-base-index",
4
3
  PROXY_INDEX = "data-overflow-proxy-index"
5
4
  }
6
5
  export declare class OverflowBehavior {
7
6
  private element;
8
7
  private render;
9
- private resizeObserver;
10
- private moreElement;
11
- private children;
8
+ private _resizeObserver;
9
+ private _moreElement;
10
+ private _baseChildren;
11
+ private _proxyChildren;
12
12
  constructor(element: Element, render: () => HTMLElement);
13
13
  /**********
14
14
  * Public *
@@ -25,10 +25,17 @@ export declare class OverflowBehavior {
25
25
  /**
26
26
  * run overflow behavior
27
27
  *
28
- * @param {number} width width of the container
28
+ * @param {number} width width of the container. Optional.
29
29
  * @returns {void}
30
30
  */
31
31
  private run;
32
+ /**
33
+ * Get interactive children filtred by authorized nodeName ['MG-MENU-ITEM', 'MG-BUTTON']
34
+ *
35
+ * @param {Element} element element to parse
36
+ * @returns {Element[]} children
37
+ */
38
+ private getInteractiveItems;
32
39
  /**
33
40
  * Update displayed items in container from a given available space
34
41
  *
@@ -44,10 +44,10 @@ export declare class ClassList {
44
44
  /**
45
45
  * Check if all items are string
46
46
  *
47
- * @param {string[]} items items to check
47
+ * @param {unknown} items items to check
48
48
  * @returns {boolean} all items are string
49
49
  */
50
- export declare const allItemsAreString: (items: string[]) => boolean;
50
+ export declare const allItemsAreString: (items: unknown) => items is string[];
51
51
  /**
52
52
  * Check if element is a heading
53
53
  *
@@ -1,3 +1,4 @@
1
+ import { MockCustomEvent } from '@stencil/core/mock-doc';
1
2
  /**
2
3
  * Clone Deep function
3
4
  *
@@ -67,6 +68,16 @@ type setupResizeObserverMockParams = {
67
68
  observe: ResizeObserver['observe'];
68
69
  };
69
70
  export declare const setupResizeObserverMock: ({ disconnect, observe }: setupResizeObserverMockParams) => typeof ResizeObserver;
71
+ /**
72
+ * Utility function that mocks the `SubmitEvent` API. Recommended to execute inside `beforeEach`.
73
+ *
74
+ * @returns {void}
75
+ * @example
76
+ * ```
77
+ * setupSubmitEventMock();
78
+ * ```
79
+ */
80
+ export declare const setupSubmitEventMock: () => typeof MockCustomEvent;
70
81
  /**
71
82
  * force popover id when component use randomed identifier
72
83
  *
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@mgdis/mg-components",
3
- "version": "5.7.0",
3
+ "version": "5.8.1",
4
4
  "description": "MG Components",
5
5
  "packageManager": "pnpm@7.17.1",
6
6
  "engineStrict": true,