@mgdis/mg-components 5.7.0 → 5.8.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 (53) hide show
  1. package/dist/cjs/loader.cjs.js +1 -1
  2. package/dist/cjs/mg-action-more_31.cjs.entry.js +216 -565
  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/menu/mg-menu/mg-menu.conf.js +0 -13
  11. package/dist/collection/components/molecules/menu/mg-menu/mg-menu.js +39 -67
  12. package/dist/collection/components/molecules/menu/mg-menu-item/mg-menu-item.css +3 -3
  13. package/dist/collection/components/molecules/menu/mg-menu-item/mg-menu-item.js +156 -77
  14. package/dist/collection/components/molecules/mg-item-more/mg-item-more.conf.js +1 -0
  15. package/dist/collection/components/molecules/mg-item-more/mg-item-more.css +30 -0
  16. package/dist/collection/components/molecules/mg-item-more/mg-item-more.js +200 -0
  17. package/dist/collection/components/molecules/mg-tabs/mg-tabs.css +0 -2
  18. package/dist/collection/styles/navigation-button.scss +1 -1
  19. package/dist/collection/utils/behaviors.utils.js +33 -29
  20. package/dist/components/index.d.ts +1 -0
  21. package/dist/components/index.js +1 -0
  22. package/dist/components/mg-action-more.js +2 -1
  23. package/dist/components/mg-button2.js +4 -1
  24. package/dist/components/mg-icon2.js +8 -0
  25. package/dist/components/mg-item-more.d.ts +11 -0
  26. package/dist/components/mg-item-more.js +336 -0
  27. package/dist/components/mg-menu-item2.js +134 -250
  28. package/dist/components/mg-menu.conf.js +14 -0
  29. package/dist/components/mg-menu2.js +35 -102
  30. package/dist/components/mg-tabs.js +1 -1
  31. package/dist/components/mg-tooltip2.js +6 -2
  32. package/dist/esm/loader.js +1 -1
  33. package/dist/esm/mg-action-more_31.entry.js +185 -534
  34. package/dist/esm/mg-components.js +1 -1
  35. package/dist/esm/mg-item-more.entry.js +269 -0
  36. package/dist/esm/mg-menu.conf-881fbd82.js +235 -0
  37. package/dist/mg-components/mg-components.css +1 -1
  38. package/dist/mg-components/mg-components.esm.js +1 -1
  39. package/dist/mg-components/p-1221773c.entry.js +1 -0
  40. package/dist/mg-components/p-367f92d2.js +1 -0
  41. package/dist/mg-components/p-6aeded97.entry.js +1 -0
  42. package/dist/mg-components/styles/navigation-button.scss +1 -1
  43. package/dist/types/components/atoms/mg-button/mg-button.d.ts +5 -0
  44. package/dist/types/components/molecules/menu/mg-menu/mg-menu.conf.d.ts +3 -27
  45. package/dist/types/components/molecules/menu/mg-menu/mg-menu.d.ts +9 -27
  46. package/dist/types/components/molecules/menu/mg-menu-item/mg-menu-item.conf.d.ts +5 -0
  47. package/dist/types/components/molecules/menu/mg-menu-item/mg-menu-item.d.ts +65 -16
  48. package/dist/types/components/molecules/mg-item-more/mg-item-more.conf.d.ts +26 -0
  49. package/dist/types/components/molecules/mg-item-more/mg-item-more.d.ts +74 -0
  50. package/dist/types/components.d.ts +66 -12
  51. package/dist/types/utils/behaviors.utils.d.ts +12 -5
  52. package/package.json +1 -1
  53. package/dist/mg-components/p-4cfd5423.entry.js +0 -1
@@ -0,0 +1,30 @@
1
+ /**
2
+ * A11Y
3
+ */
4
+ .sr-only {
5
+ border: 0 !important;
6
+ clip: rect(1px, 1px, 1px, 1px) !important;
7
+ -webkit-clip-path: inset(50%) !important;
8
+ clip-path: inset(50%) !important;
9
+ height: 1px !important;
10
+ margin: -1px !important;
11
+ overflow: hidden !important;
12
+ padding: 0 !important;
13
+ position: absolute !important;
14
+ width: 1px !important;
15
+ white-space: nowrap !important;
16
+ }
17
+
18
+ *:focus:not(:focus-visible) {
19
+ outline: none;
20
+ }
21
+
22
+ @media (prefers-reduced-motion) {
23
+ .mg-a11y-animation {
24
+ animation: none !important;
25
+ transition: none !important;
26
+ }
27
+ }
28
+ :host {
29
+ display: flex;
30
+ }
@@ -0,0 +1,200 @@
1
+ import { h, Host } from '@stencil/core';
2
+ import { initLocales } from '../../../locales';
3
+ import { OverflowBehavior } from '../../../utils/behaviors.utils';
4
+ import { Direction } from '../menu/mg-menu/mg-menu.conf';
5
+ export class MgItemMore {
6
+ constructor() {
7
+ /************
8
+ * Internal *
9
+ ************/
10
+ this.name = 'mg-item-more';
11
+ /***********
12
+ * Methods *
13
+ ***********/
14
+ /**
15
+ * render mg-item-more overflow element
16
+ *
17
+ * @returns {HTMLMgItemMoreElement} mg-item-more element
18
+ */
19
+ this.renderMgMenuItemOverflowElement = () => {
20
+ // create menu items proxy element from item clones
21
+ const moreElementMenuItem = this.element.shadowRoot.querySelector('mg-menu-item');
22
+ this.menuItems.forEach((child) => {
23
+ moreElementMenuItem.querySelector('mg-menu').appendChild(child.cloneNode(true));
24
+ });
25
+ const allMenuItem = Array.from(this.parentMenu.querySelectorAll('mg-menu-item:not([data-overflow-more])'));
26
+ Array.from(moreElementMenuItem.querySelectorAll('mg-menu-item:not([data-overflow-more])')).forEach((proxy, index) => {
27
+ // manage click on proxy to mirror it on initial element
28
+ proxy.addEventListener('click', () => {
29
+ (allMenuItem[index].shadowRoot.querySelector('a') || allMenuItem[index].shadowRoot.querySelector('button')).dispatchEvent(new MouseEvent('click', { bubbles: true }));
30
+ });
31
+ // add id suffix to prevent duplicate key. default html id is: '';
32
+ if (proxy.id.trim() !== '')
33
+ proxy.id = `${proxy.id}-proxy`;
34
+ // manage status change miror in proxy
35
+ allMenuItem[index].addEventListener('status-change', (event) => {
36
+ proxy.setAttribute('status', event.detail);
37
+ });
38
+ });
39
+ return this.element;
40
+ };
41
+ this.icon = { icon: 'ellipsis-vertical' };
42
+ this.slotlabel = { display: false };
43
+ this.size = undefined;
44
+ this.parentMenu = undefined;
45
+ }
46
+ validateIcon(newValue) {
47
+ if (typeof newValue !== 'object' || (typeof newValue === 'object' && typeof newValue.icon !== 'string'))
48
+ throw new Error(`<${this.name}> prop "icon" must match MgItemMore['icon'] type.`);
49
+ }
50
+ validateSlotLabel(newValue) {
51
+ if (typeof newValue !== 'object' || (typeof newValue === 'object' && typeof newValue.display !== 'boolean'))
52
+ throw new Error(`<${this.name}> prop "slotlabel" must match MgItemMore['slotlabel'] type.`);
53
+ else if (typeof newValue.label !== 'string')
54
+ this.slotlabel.label = this.messages.moreLabel;
55
+ }
56
+ validateSize(newValue) {
57
+ if (newValue && typeof newValue !== 'string')
58
+ throw new Error(`<${this.name}> prop "size" must match MgItemMore['size'] type.`);
59
+ }
60
+ /*************
61
+ * Lifecycle *
62
+ *************/
63
+ /**
64
+ * Disconnect overflow ResizeObserver
65
+ *
66
+ * @returns {void} run overflow resize obeserver disconnexion
67
+ */
68
+ disconnectedCallback() {
69
+ this.overflowBehavior.disconnect();
70
+ }
71
+ /**
72
+ * Set variables and validate props
73
+ *
74
+ * @returns {void}
75
+ */
76
+ componentWillLoad() {
77
+ // init variables
78
+ this.messages = initLocales(this.element).messages.plusMenu;
79
+ this.parentMenu = this.element.closest('mg-menu');
80
+ this.menuItems = Array.from(this.parentMenu.children).filter(item => item.nodeName === 'MG-MENU-ITEM');
81
+ // validate props
82
+ this.validateIcon(this.icon);
83
+ this.validateSlotLabel(this.slotlabel);
84
+ this.validateSize(this.size);
85
+ }
86
+ /**
87
+ * Add overflow behavior
88
+ *
89
+ * @returns {void}
90
+ */
91
+ componentDidLoad() {
92
+ this.overflowBehavior = new OverflowBehavior(this.parentMenu, this.renderMgMenuItemOverflowElement);
93
+ }
94
+ /**
95
+ * Render
96
+ *
97
+ * @returns {HTMLElement} HTML Element
98
+ */
99
+ render() {
100
+ return (h(Host, { role: "menuitem", "aria-haspopup": "true" }, h("mg-menu-item", { "data-overflow-more": true, "data-size": this.parentMenu.size }, h("mg-icon", { icon: this.icon.icon, slot: "image" }), h("span", { class: { 'sr-only': !this.slotlabel.display }, slot: "label" }, this.slotlabel.label), h("mg-menu", { direction: Direction.VERTICAL, label: this.messages.moreLabel, size: this.size }))));
101
+ }
102
+ static get is() { return "mg-item-more"; }
103
+ static get encapsulation() { return "shadow"; }
104
+ static get originalStyleUrls() {
105
+ return {
106
+ "$": ["mg-item-more.scss"]
107
+ };
108
+ }
109
+ static get styleUrls() {
110
+ return {
111
+ "$": ["mg-item-more.css"]
112
+ };
113
+ }
114
+ static get properties() {
115
+ return {
116
+ "icon": {
117
+ "type": "unknown",
118
+ "mutable": false,
119
+ "complexType": {
120
+ "original": "IconType",
121
+ "resolved": "{ icon: string; }",
122
+ "references": {
123
+ "IconType": {
124
+ "location": "import",
125
+ "path": "./mg-item-more.conf"
126
+ }
127
+ }
128
+ },
129
+ "required": false,
130
+ "optional": false,
131
+ "docs": {
132
+ "tags": [],
133
+ "text": "Define icon\nDefault: {icon: 'ellipsis-vertical'}"
134
+ },
135
+ "defaultValue": "{ icon: 'ellipsis-vertical' }"
136
+ },
137
+ "slotlabel": {
138
+ "type": "unknown",
139
+ "mutable": false,
140
+ "complexType": {
141
+ "original": "SlotLabelType",
142
+ "resolved": "{ label?: string; display?: boolean; }",
143
+ "references": {
144
+ "SlotLabelType": {
145
+ "location": "import",
146
+ "path": "./mg-item-more.conf"
147
+ }
148
+ }
149
+ },
150
+ "required": false,
151
+ "optional": false,
152
+ "docs": {
153
+ "tags": [],
154
+ "text": "Define slot label element\nDefault: {display: false}"
155
+ },
156
+ "defaultValue": "{ display: false }"
157
+ },
158
+ "size": {
159
+ "type": "string",
160
+ "mutable": false,
161
+ "complexType": {
162
+ "original": "SizeType",
163
+ "resolved": "\"large\" | \"medium\" | \"regular\"",
164
+ "references": {
165
+ "SizeType": {
166
+ "location": "import",
167
+ "path": "./mg-item-more.conf"
168
+ }
169
+ }
170
+ },
171
+ "required": false,
172
+ "optional": false,
173
+ "docs": {
174
+ "tags": [],
175
+ "text": "Define component child menu size."
176
+ },
177
+ "attribute": "size",
178
+ "reflect": false
179
+ }
180
+ };
181
+ }
182
+ static get states() {
183
+ return {
184
+ "parentMenu": {}
185
+ };
186
+ }
187
+ static get elementRef() { return "element"; }
188
+ static get watchers() {
189
+ return [{
190
+ "propName": "icon",
191
+ "methodName": "validateIcon"
192
+ }, {
193
+ "propName": "slotlabel",
194
+ "methodName": "validateSlotLabel"
195
+ }, {
196
+ "propName": "size",
197
+ "methodName": "validateSize"
198
+ }];
199
+ }
200
+ }
@@ -1,7 +1,6 @@
1
1
  .mg-tabs.mg-tabs--size-regular .mg-tabs__navigation-button,
2
2
  .mg-tabs__navigation-button.mg-tabs__navigation-button--size-regular {
3
3
  padding: 1rem 2rem;
4
- height: calc();
5
4
  }
6
5
  .mg-tabs.mg-tabs--size-regular .mg-tabs__navigation-button,
7
6
  .mg-tabs.mg-tabs--size-regular .mg-tabs__navigation-button ::slotted([slot=label]),
@@ -23,7 +22,6 @@
23
22
  .mg-tabs.mg-tabs--size-large .mg-tabs__navigation-button,
24
23
  .mg-tabs__navigation-button.mg-tabs__navigation-button--size-large {
25
24
  padding: 1.5rem 3rem;
26
- height: calc();
27
25
  }
28
26
  .mg-tabs.mg-tabs--size-large .mg-tabs__navigation-button,
29
27
  .mg-tabs.mg-tabs--size-large .mg-tabs__navigation-button ::slotted([slot=label]),
@@ -9,7 +9,7 @@ $navigation-button-column-gap: 1rem;
9
9
  .#{$element}.#{$element}--size-#{$name} .#{$element}__navigation-button,
10
10
  .#{$element}__navigation-button.#{$element}__navigation-button--size-#{$name} {
11
11
  padding: #{map.get($size, 'vertical')} #{map.get($size, 'horizontal')};
12
- height: calc(#{map.get($size, 'height')});
12
+ height: #{map.get($size, 'height')};
13
13
  &,
14
14
  ::slotted([slot='label']),
15
15
  ::slotted([slot='metadata']) {
@@ -1,13 +1,12 @@
1
1
  /**
2
- * MgMenuItem type guard
2
+ * MgItemMore type guard
3
3
  *
4
4
  * @param {HTMLElement} element element to control type
5
- * @returns {boolean} truthy if element is mg-menu-item
5
+ * @returns {boolean} truthy if element is mg-item-more
6
6
  */
7
- const isMgMenuItem = (element) => element.nodeName === 'MG-MENU-ITEM';
7
+ const isMgItemMore = (element) => element.nodeName === 'MG-ITEM-MORE';
8
8
  export var OverflowBehaviorElements;
9
9
  (function (OverflowBehaviorElements) {
10
- OverflowBehaviorElements["MORE"] = "data-overflow-more";
11
10
  OverflowBehaviorElements["BASE_INDEX"] = "data-overflow-base-index";
12
11
  OverflowBehaviorElements["PROXY_INDEX"] = "data-overflow-proxy-index";
13
12
  })(OverflowBehaviorElements || (OverflowBehaviorElements = {}));
@@ -24,7 +23,7 @@ export class OverflowBehavior {
24
23
  * @returns {void}
25
24
  */
26
25
  this.disconnect = () => {
27
- this.resizeObserver.disconnect();
26
+ this._resizeObserver.disconnect();
28
27
  };
29
28
  /************
30
29
  * Internal *
@@ -32,31 +31,35 @@ export class OverflowBehavior {
32
31
  /**
33
32
  * run overflow behavior
34
33
  *
35
- * @param {number} width width of the container
34
+ * @param {number} width width of the container. Optional.
36
35
  * @returns {void}
37
36
  */
38
37
  this.run = (width) => {
39
- if (this.moreElement === undefined) {
38
+ if (this._moreElement === undefined) {
40
39
  // set moreElement
41
- this.moreElement = this.render();
42
- this.moreElement.setAttribute(OverflowBehaviorElements.MORE, '');
40
+ this._moreElement = this.render();
43
41
  // set children
44
- this.children = Array.from(this.element.children);
45
- let moreElementChildren;
46
- const allowedElements = ['MG-MENU-ITEM', 'MG-BUTTON'];
47
- if (isMgMenuItem(this.moreElement)) {
48
- moreElementChildren = Array.from(this.moreElement.querySelector('mg-menu').children).filter(element => allowedElements.includes(element.nodeName));
42
+ this._baseChildren = this.getInteractiveItems(this.element);
43
+ if (isMgItemMore(this._moreElement)) {
44
+ this._proxyChildren = this.getInteractiveItems(this._moreElement.shadowRoot.querySelector('mg-menu'));
49
45
  }
50
- this.children.forEach((child, index) => {
46
+ // update children
47
+ this._baseChildren.forEach((child, index) => {
51
48
  child.setAttribute(OverflowBehaviorElements.BASE_INDEX, `${index}`);
52
- if (child.getAttribute(OverflowBehaviorElements.MORE) === null) {
53
- // set moreElement children
54
- moreElementChildren[index].setAttribute(OverflowBehaviorElements.PROXY_INDEX, `${index}`);
55
- }
49
+ // set moreElement children
50
+ this._proxyChildren[index].setAttribute(OverflowBehaviorElements.PROXY_INDEX, `${index}`);
56
51
  });
57
52
  }
58
- this.updateDisplayedItems(width);
53
+ if (width !== undefined)
54
+ this.updateDisplayedItems(width);
59
55
  };
56
+ /**
57
+ * Get interactive children filtred by authorized nodeName ['MG-MENU-ITEM', 'MG-BUTTON']
58
+ *
59
+ * @param {Element} element element to parse
60
+ * @returns {Element[]} children
61
+ */
62
+ this.getInteractiveItems = (element) => { var _a; return (((_a = element.children) === null || _a === void 0 ? void 0 : _a.length) > 0 ? Array.from(element.children) : []).filter(element => ['MG-MENU-ITEM', 'MG-BUTTON'].includes(element.nodeName)); };
60
63
  /**
61
64
  * Update displayed items in container from a given available space
62
65
  *
@@ -66,7 +69,7 @@ export class OverflowBehavior {
66
69
  this.updateDisplayedItems = (availableWidth) => {
67
70
  this.restoreItems();
68
71
  const acc = { accWidth: 0, previousItem: null };
69
- this.children.forEach((child) => {
72
+ [...this._baseChildren, this._moreElement].forEach((child) => {
70
73
  acc.accWidth += child.offsetWidth;
71
74
  const isPreviousItemHidden = acc.previousItem !== null && acc.previousItem.getAttribute('hidden') !== null;
72
75
  // if previous item is hidden AND is NOT more element we hidde current
@@ -90,7 +93,7 @@ export class OverflowBehavior {
90
93
  if (item.previousElementSibling === null || this.isMoreElement(item))
91
94
  return false;
92
95
  else if (!this.isMoreElement(item.nextElementSibling))
93
- return cumulateWidth + this.moreElement.offsetWidth > availableWidth;
96
+ return cumulateWidth + this._moreElement.offsetWidth > availableWidth;
94
97
  else
95
98
  return cumulateWidth > availableWidth;
96
99
  };
@@ -100,7 +103,7 @@ export class OverflowBehavior {
100
103
  * @param {Element} element element to match with 'MORE' element
101
104
  * @returns {boolean} truthy if element is the 'MORE' element
102
105
  */
103
- this.isMoreElement = (element) => element.getAttribute(OverflowBehaviorElements.MORE) !== null;
106
+ this.isMoreElement = (element) => element.nodeName === 'MG-ITEM-MORE';
104
107
  /**
105
108
  * Toggle display item element
106
109
  *
@@ -111,10 +114,10 @@ export class OverflowBehavior {
111
114
  this.toggleItem = (item, isHidden) => {
112
115
  const mgActionMenuindex = Number(item.getAttribute(OverflowBehaviorElements.BASE_INDEX));
113
116
  if (this.isMoreElement(item))
114
- this.toggleElement(this.moreElement, isHidden);
117
+ this.toggleElement(this._moreElement, isHidden);
115
118
  else if (mgActionMenuindex >= 0) {
116
119
  this.toggleElement(item, isHidden);
117
- this.toggleElement(this.moreElement.querySelector(`[${OverflowBehaviorElements.PROXY_INDEX}="${mgActionMenuindex}"]`), !isHidden);
120
+ this.toggleElement(this._proxyChildren[mgActionMenuindex], !isHidden);
118
121
  }
119
122
  };
120
123
  /**
@@ -136,16 +139,17 @@ export class OverflowBehavior {
136
139
  * @returns {void}
137
140
  */
138
141
  this.restoreItems = () => {
139
- this.children.forEach(item => item.removeAttribute('hidden'));
142
+ [...this._baseChildren, this._moreElement].forEach(item => item.removeAttribute('hidden'));
140
143
  };
141
- if (this.resizeObserver === undefined) {
144
+ if (this._resizeObserver === undefined) {
142
145
  // add resize observer
143
- this.resizeObserver = new ResizeObserver(entries => {
146
+ this._resizeObserver = new ResizeObserver(entries => {
144
147
  entries.forEach(entry => {
145
148
  this.run(entry.contentRect.width);
146
149
  });
147
150
  });
148
- this.resizeObserver.observe(this.element);
151
+ this._resizeObserver.observe(this.element);
149
152
  }
153
+ this.run();
150
154
  }
151
155
  }
@@ -19,6 +19,7 @@ export { MgInputText as MgInputText } from '../types/components/molecules/inputs
19
19
  export { MgInputTextarea as MgInputTextarea } from '../types/components/molecules/inputs/mg-input-textarea/mg-input-textarea';
20
20
  export { MgInputTitle as MgInputTitle } from '../types/components/atoms/mg-input-title/mg-input-title';
21
21
  export { MgInputToggle as MgInputToggle } from '../types/components/molecules/inputs/mg-input-toggle/mg-input-toggle';
22
+ export { MgItemMore as MgItemMore } from '../types/components/molecules/mg-item-more/mg-item-more';
22
23
  export { MgMenu as MgMenu } from '../types/components/molecules/menu/mg-menu/mg-menu';
23
24
  export { MgMenuItem as MgMenuItem } from '../types/components/molecules/menu/mg-menu-item/mg-menu-item';
24
25
  export { MgMessage as MgMessage } from '../types/components/molecules/mg-message/mg-message';
@@ -19,6 +19,7 @@ export { MgInputText, defineCustomElement as defineCustomElementMgInputText } fr
19
19
  export { MgInputTextarea, defineCustomElement as defineCustomElementMgInputTextarea } from './mg-input-textarea.js';
20
20
  export { MgInputTitle, defineCustomElement as defineCustomElementMgInputTitle } from './mg-input-title.js';
21
21
  export { MgInputToggle, defineCustomElement as defineCustomElementMgInputToggle } from './mg-input-toggle.js';
22
+ export { MgItemMore, defineCustomElement as defineCustomElementMgItemMore } from './mg-item-more.js';
22
23
  export { MgMenu, defineCustomElement as defineCustomElementMgMenu } from './mg-menu.js';
23
24
  export { MgMenuItem, defineCustomElement as defineCustomElementMgMenuItem } from './mg-menu-item.js';
24
25
  export { MgMessage, defineCustomElement as defineCustomElementMgMessage } from './mg-message.js';
@@ -1,6 +1,7 @@
1
1
  import { proxyCustomElement, HTMLElement, h, Host } from '@stencil/core/internal/client';
2
2
  import { i as initLocales } from './index2.js';
3
- import { D as Direction, S as Status, d as defineCustomElement$3 } from './mg-menu-item2.js';
3
+ import { S as Status, d as defineCustomElement$3 } from './mg-menu-item2.js';
4
+ import { D as Direction } from './mg-menu.conf.js';
4
5
  import { c as createID } from './components.utils.js';
5
6
  import { d as defineCustomElement$8 } from './mg-badge2.js';
6
7
  import { d as defineCustomElement$7 } from './mg-button2.js';
@@ -1,4 +1,4 @@
1
- import { proxyCustomElement, HTMLElement, h, Host } from '@stencil/core/internal/client';
1
+ import { proxyCustomElement, HTMLElement, createEvent, h, Host } from '@stencil/core/internal/client';
2
2
  import { C as ClassList } from './components.utils.js';
3
3
  import { d as defineCustomElement$1 } from './mg-icon2.js';
4
4
 
@@ -14,6 +14,7 @@ const MgButton = /*@__PURE__*/ proxyCustomElement(class extends HTMLElement {
14
14
  super();
15
15
  this.__registerHost();
16
16
  this.__attachShadow();
17
+ this.disabledChange = createEvent(this, "disabled-change", 7);
17
18
  /************
18
19
  * Internal *
19
20
  ************/
@@ -112,6 +113,8 @@ const MgButton = /*@__PURE__*/ proxyCustomElement(class extends HTMLElement {
112
113
  else {
113
114
  this.classList.delete(this.classDisabled);
114
115
  }
116
+ // emit value update
117
+ this.disabledChange.emit(isDisabled);
115
118
  }
116
119
  loadingHandler(newValue) {
117
120
  // we add loading style if it newvalue is true else we remove it
@@ -33,6 +33,7 @@ const icons = {
33
33
  'bell': () => (h("path", { fill: "currentColor", d: "M8 15.33a1.7 1.7 0 0 0 1.52-1.83h-3A1.7 1.7 0 0 0 8 15.33ZM13.13 11c-.46-.59-1.32-1.48-1.32-4.42a4.4 4.4 0 0 0-3.05-4.4v-.6A.85.85 0 0 0 8 .67a.85.85 0 0 0-.76.91v.6a4.4 4.4 0 0 0-3 4.44c0 2.94-.86 3.83-1.32 4.42a1 1 0 0 0-.2.63.85.85 0 0 0 .76.91h9.14a.85.85 0 0 0 .76-.91 1.05 1.05 0 0 0-.25-.67Z" })),
34
34
  'briefcase': () => (h("path", { fill: "currentColor", d: "M14 4.5h-3v-1c0-.55-.45-1-1-1H6c-.55 0-1 .45-1 1v1H2c-.55 0-1 .45-1 1v7c0 .55.45 1 1 1h12c.55 0 1-.45 1-1v-7c0-.55-.45-1-1-1Zm-8-1h4v1H6v-1Z" })),
35
35
  'briefcase-outline': () => (h("path", { fill: "currentColor", d: "M14 4.5h-3v-1c0-.55-.45-1-1-1H6c-.55 0-1 .45-1 1v1H2c-.55 0-1 .45-1 1v7c0 .55.45 1 1 1h12c.55 0 1-.45 1-1v-7c0-.55-.45-1-1-1Zm-8-1h4v1H6v-1Zm8 9H2v-7h12v7Z" })),
36
+ 'building-outline': () => (h("path", { fill: "currentColor", d: "M4 2h8v12H9v-1a1 1 0 1 0-2 0v1H4V2Zm4 13h4a1 1 0 0 0 1-1V2a1 1 0 0 0-1-1H4a1 1 0 0 0-1 1v12a1 1 0 0 0 1 1h4ZM7 4H5v2h2V4Zm2 0h2v2H9V4Zm2 4H9v2h2V8ZM5 8h2v2H5V8Z" })),
36
37
  'calculator': () => (h("path", { fill: "currentColor", d: "M12.83.67H3.17a.5.5 0 0 0-.5.5v13.66a.5.5 0 0 0 .5.5h9.66a.5.5 0 0 0 .5-.5V1.17a.5.5 0 0 0-.5-.5ZM5.58 13.39a.29.29 0 0 1-.28.3H4.1a.29.29 0 0 1-.3-.28v-1.2a.29.29 0 0 1 .28-.3h1.2a.29.29 0 0 1 .3.28v1.2Zm0-3.28a.29.29 0 0 1-.3.3H4.1a.29.29 0 0 1-.3-.3V8.93a.29.29 0 0 1 .28-.3h1.2a.29.29 0 0 1 .3.28v1.2Zm3.29 3.28a.29.29 0 0 1-.3.3H7.38a.29.29 0 0 1-.3-.3v-1.18a.29.29 0 0 1 .3-.3h1.19a.29.29 0 0 1 .3.3Zm0-3.28a.32.32 0 0 1-.3.3H7.38a.32.32 0 0 1-.3-.3V8.93a.29.29 0 0 1 .3-.3h1.19a.29.29 0 0 1 .3.3Zm3.33 3.28a.29.29 0 0 1-.28.3h-1.25a.29.29 0 0 1-.3-.28V8.93a.29.29 0 0 1 .28-.3h1.25a.29.29 0 0 1 .3.28v4.48Zm0-7.15a.29.29 0 0 1-.3.3H4.1a.29.29 0 0 1-.3-.3V2.61a.29.29 0 0 1 .28-.3h7.82a.29.29 0 0 1 .3.28v3.65Z" })),
37
38
  'calendar': () => (h("path", { fill: "currentColor", d: "M14 3.5c0-.55-.45-1-1-1h-1v-1h-1v1H5v-1H4v1H3c-.55 0-1 .45-1 1v.98s0 .02.02.02H2v9c0 .55.45 1 1 1h10c.55 0 1-.45 1-1v-9h-.02s.02 0 .02-.02V3.5Zm-11 10v-8h10v8H3Z" })),
38
39
  'calendar-outline': () => (h("path", { fill: "currentColor", d: "M13 2.5h-1v-1h-1v1H5v-1H4v1H3c-.55 0-1 .45-1 1v10c0 .55.45 1 1 1h10c.55 0 1-.45 1-1v-10c0-.55-.45-1-1-1Zm-10 11v-8h10v8H3Zm0-9v-1h10v1H3Z" })),
@@ -148,6 +149,7 @@ const icons = {
148
149
  'pen': () => (h("path", { fill: "currentColor", d: "M1.67,11.69v2.64h2.64l7.78-7.78-2.64-2.64L1.67,11.69ZM14.13,4.51c.27-.28,.27-.72,0-1h0l-1.65-1.64c-.28-.27-.72-.27-1,0h0l-1.28,1.29,2.64,2.64,1.29-1.29Z" })),
149
150
  'pen-circle': () => (h("path", { fill: "currentColor", d: "M8 .44C3.82.44.44 3.82.44 8S3.83 15.56 8 15.56s7.56-3.39 7.56-7.56C15.56 3.82 12.18.44 8 .44M5.47 12.19H3.62v-1.85l5.46-5.45 1.85 1.86-5.45 5.45Zm6.88-6.89-.9.9-1.86-1.85.9-.9c.19-.19.51-.19.7 0l1.16 1.15c.19.19.19.51 0 .7" })),
150
151
  'pen-fancy': () => (h("path", { fill: "currentColor", d: "M3.63,8.65c-.24,.07-.43,.26-.5,.5l-1.46,4.37,.11,.12,2.3-2.3c0-.06,0-.13,0-.19,0-.44,.35-.8,.79-.81,.44,0,.8,.35,.81,.79,0,.44-.35,.8-.79,.81,0,0-.01,0-.02,0h-.19l-2.3,2.3,.12,.11,4.37-1.46c.24-.07,.43-.26,.5-.5l.82-2.08-2.49-2.48-2.07,.82ZM10.8,2.35L6.27,7.28l2.42,2.42,4.94-4.52c2.1-1.86-.99-4.92-2.83-2.83Z" })),
152
+ 'pen-fancy-files-outline': () => (h("path", { fill: "currentColor", d: "M12 2H6v10h6V8.946l.023-.058.085-.078.892-.813V12a1 1 0 0 1-1 1H6a1 1 0 0 1-1-1V2a1 1 0 0 1 1-1h6a1 1 0 0 1 1 1v.112a2.298 2.298 0 0 0-.974.66L12 2.8V2Zm1 4.643-1 .913-.566.515-1.528-1.524L12 4.275l.767-.832c.075-.085.153-.156.233-.215 1.167-.857 2.796.9 1.555 1.997L13 6.643ZM4 3H3v11.5a.5.5 0 0 0 .5.5H11v-1H4V3Zm4.238 4.41a.466.466 0 0 0-.316.315L7 10.477l.07.076 1.452-1.449v-.12a.51.51 0 0 1 .5-.51.51.51 0 0 1 .511.498.51.51 0 0 1-.499.51h-.133L7.45 10.931l.075.069 2.76-.92a.466.466 0 0 0 .317-.314l.518-1.31-1.573-1.562-1.308.516Z" })),
151
153
  'pen-fancy-outline': () => (h("path", { fill: "currentColor", d: "M12.24 1.67c-.49 0-1 .21-1.44.7L6.27 7.3l2.42 2.42 4.94-4.52c1.6-1.42.19-3.53-1.39-3.53ZM8.72 8.34 7.66 7.28l3.9-4.24c.22-.24.44-.36.69-.36.41 0 .87.34 1.03.78.14.37.04.7-.32 1.02L8.73 8.36ZM5.7 7.86l-2.08.82c-.24.08-.42.26-.5.5l-1.46 4.37.12.12.56.56.12.12 4.37-1.46c.24-.08.42-.26.5-.5l.81-2.08L5.7 7.87Zm-2.57 4.46L4 9.72c.03-.08.09-.15.17-.18l1.29-.51 1.52 1.52-.5 1.29c-.03.08-.1.15-.19.18l-2.6.87.95-.95c.06.02.12.04.19.04.44 0 .79-.35.79-.79s-.35-.79-.79-.79-.79.35-.79.79c0 .07.02.13.04.19l-.95.95Z" })),
152
154
  'phone': () => (h("path", { fill: "currentColor", d: "M13.97 10.62 11.2 9.43a.6.6 0 0 0-.69.17l-1.23 1.5A9.137 9.137 0 0 1 4.9 6.72l1.5-1.23c.21-.17.28-.45.17-.69L5.38 2.03a.589.589 0 0 0-.68-.34l-2.57.59a.59.59 0 0 0-.46.58c0 6.34 5.14 11.48 11.48 11.48.28 0 .52-.19.58-.46l.59-2.57a.595.595 0 0 0-.35-.68Z" })),
153
155
  'picture': () => (h("path", { fill: "currentColor", d: "M14.33 12.93V3.07a1.4 1.4 0 0 0-1.4-1.4H3.07a1.4 1.4 0 0 0-1.4 1.4v9.86a1.4 1.4 0 0 0 1.4 1.4h9.86a1.4 1.4 0 0 0 1.4-1.4ZM5.54 9.06l1.76 2.11L9.76 8l3.17 4.22H3.07Z" })),
@@ -166,6 +168,8 @@ const icons = {
166
168
  h("path", { key: "tags-2", fill: "currentColor", d: "M15 7.37 10.15 3a1.12 1.12 0 0 0-.77-.29H8.26l4.5 4.09a1.76 1.76 0 0 1 0 2.65L8.77 13a1.17 1.17 0 0 0 1.55 0L15 8.79a.94.94 0 0 0 0-1.42Z" }),
167
169
  ],
168
170
  'thumb-up': () => (h("path", { fill: "currentColor", d: "M2.11 14.36h1a.45.45 0 0 0 .45-.44V7.17a.45.45 0 0 0-.45-.44h-1a.44.44 0 0 0-.44.44v6.75a.44.44 0 0 0 .44.44Zm12.22-7a1.27 1.27 0 0 0-1.27-1.27H9.71l.61-2.91v-.2a1.07 1.07 0 0 0-.28-.68l-.68-.66-4.17 4.19a1.26 1.26 0 0 0-.37.9v6.36a1.27 1.27 0 0 0 1.27 1.27h5.06a1.24 1.24 0 0 0 1.17-.77l1.92-4.49a1.22 1.22 0 0 0 .09-.46V7.42Z" })),
171
+ 'thumbtack': () => (h("path", { fill: "currentColor", d: "M8.91 2 7.71 5.594 2.364 7.09 5.274 10l-.707.706-1.687 1.687-.264.264-.09.09-.209.498L2 14l.755-.317.498-.21.09-.089.264-.264 1.687-1.687.706-.706 2.91 2.908 1.496-5.347L14 7.09 8.91 2Z" })),
172
+ 'thumbtack-outline': () => (h("path", { fill: "currentColor", "fill-rule": "evenodd", d: "m5.273 10-2.91 2.91L2 14l1.09-.364L6 10.727l2.91 2.91 1.496-5.348L14 7.09 8.91 2 7.71 5.594 2.364 7.09 5.273 10Zm3.241-3.563-4.18 1.17 4.059 4.059 1.17-4.18 2.533-.845-2.737-2.737-.845 2.533Z" })),
169
173
  'trash': () => [
170
174
  h("path", { key: "trash-1", fill: "currentColor", d: "M3.27 14.17c0 .66.54 1.19 1.2 1.2h7l-.05-.02h.08c.64-.02 1.14-.56 1.12-1.2V4.32H3.27v9.85Zm5.97-7.12c0-.33.27-.6.6-.6s.6.27.6.6v5.3c0 .33-.27.6-.6.6s-.6-.27-.6-.6v-5.3Zm-3.5 0c0-.33.27-.59.6-.6.32.02.58.28.6.6v5.3c-.02.32-.28.58-.6.6a.645.645 0 0 1-.6-.6v-5.3Zm7.28-5.39h-2.6V.95a.28.28 0 0 0-.28-.28H5.87a.28.28 0 0 0-.28.28v.72H2.91a.28.28 0 0 0-.28.28V3.1c0 .15.12.28.28.28h10.11c.15 0 .28-.12.28-.28V1.94a.28.28 0 0 0-.28-.28Z" }),
171
175
  h("path", { key: "trash-2", fill: "currentColor", d: "M13,2h-2.9L9.9,1.6 C9.8,1.4,9.6,1.2,9.4,1.2H6.6c-0.2,0-0.4,0.1-0.5,0.3L5.8,2H2.9C2.7,2,2.5,2.2,2.5,2.4c0,0,0,0,0,0v0.8c0,0.2,0.2,0.4,0.4,0.4H13 c0.2,0,0.4-0.2,0.4-0.4V2.4C13.4,2.2,13.2,2,13,2z" }),
@@ -176,6 +180,10 @@ const icons = {
176
180
  'upload': () => (h("path", { fill: "currentColor", d: "M9.58 10.74V6.59a.31.31 0 0 1 .31-.3H12a.3.3 0 0 0 .21-.52l-4-4a.29.29 0 0 0-.42 0l-4 4a.3.3 0 0 0 .21.52h2.11a.31.31 0 0 1 .31.3v4.15a.3.3 0 0 0 .3.3h2.56a.3.3 0 0 0 .3-.3ZM14.33 14v-1a.29.29 0 0 0-.29-.3H2a.29.29 0 0 0-.29.3v1a.29.29 0 0 0 .29.29h12a.29.29 0 0 0 .33-.29Z" })),
177
181
  'user': () => (h("path", { fill: "currentColor", d: "M8 8.79a3.56 3.56 0 1 0-3.56-3.56A3.56 3.56 0 0 0 8 8.79Zm3.17.79H9.8a4.27 4.27 0 0 1-3.6 0H4.83a3.16 3.16 0 0 0-3.16 3.17v.4a1.18 1.18 0 0 0 1.18 1.18h10.3a1.18 1.18 0 0 0 1.18-1.18v-.4a3.16 3.16 0 0 0-3.16-3.17Z" })),
178
182
  'user-circle': () => (h("path", { fill: "currentColor", d: "M8 .62C3.95.61.66 3.9.65 7.95c0 4.05 3.28 7.34 7.33 7.35 4.04 0 7.33-3.26 7.35-7.3.02-4.05-3.25-7.36-7.3-7.38H8Zm0 .75c3.64 0 6.59 2.96 6.58 6.6V8c0 1.35-.41 2.66-1.19 3.76a2.713 2.713 0 0 0-2.66-2.37H9.54c-.98.46-2.1.46-3.08 0H5.28c-1.36 0-2.5 1.02-2.67 2.37A6.483 6.483 0 0 1 1.42 8a6.59 6.59 0 0 1 6.55-6.63H8ZM5 5.63c0-1.68 1.37-3.05 3.05-3.05 1.68 0 3.05 1.37 3.05 3.05 0 1.68-1.37 3.05-3.05 3.05H8c-1.66-.03-3-1.39-3-3.05Z" })),
183
+ 'user-pen-fancy-outline': () => [
184
+ h("path", { fill: "currentColor", d: "M7.5 7a2.5 2.5 0 0 1 0-5 2.5 2.5 0 0 1 0 5Zm0-4C6.67 3 6 3.67 6 4.5S6.67 6 7.5 6 9 5.33 9 4.5 8.33 3 7.5 3ZM11.12 11.46l-.22.54-.3.77s-.04.09-.06.13c-.03.04-.06.07-.1.1-.05.04-.1.07-.16.08L7.52 14l-.07-.07 1.45-1.45h.13c.15 0 .27-.06.36-.16a.56.56 0 0 0 .1-.15c.01-.02.02-.04.03-.07v-.02s.01-.05.01-.08v-.03c0-.28-.23-.5-.51-.5-.28.01-.5.24-.5.51v.14l-.76.75-.14.13-.55.55-.07-.07.16-.48.1-.29.24-.71.42-1.27c.05-.16.17-.28.32-.32l1.31-.52 1.57 1.57ZM14.56 8.22l-2.05 1.87-.7.64-.06.05-.32.29-1.52-1.52.28-.31.06-.06.64-.7 1.88-2.04c1.16-1.31 3.11.61 1.79 1.78Z" }),
185
+ h("path", { fill: "currentColor", d: "M9 8H6c-2.21 0-4 1.79-4 4 0 .55.45 1 1 1h3.11l.33-1H3c0-1.66 1.34-3 3-3h3.05l.12-.13.71-.77C9.6 8.03 9.3 8 9 8Z" }),
186
+ ],
179
187
  'user-group': () => (h("path", { fill: "currentColor", d: "M13.15 4.12c-.81-.01-1.47.65-1.48 1.46 0 .82.65 1.47 1.46 1.48s1.47-.65 1.48-1.46-.65-1.47-1.46-1.48Zm-10.04.01a1.47 1.47 0 0 0-1.58 1.59c.06.71.62 1.28 1.34 1.34.81.07 1.52-.53 1.59-1.34.06-.81-.54-1.52-1.35-1.59Zm7.36.39c-.22-.84-.87-1.51-1.71-1.75-1.36-.41-2.8.36-3.22 1.72-.18.61-.13 1.27.14 1.85.41.9 1.33 1.48 2.32 1.45 1.41.01 2.56-1.14 2.57-2.55 0-.24-.03-.49-.1-.72Zm-.71 4h-.19c-.99.49-2.14.49-3.13 0h-.19c-1.46 0-2.64 1.18-2.64 2.64v2.69c1.23.93 2.74 1.47 4.39 1.47s3.17-.55 4.4-1.48v-2.68c0-1.46-1.18-2.64-2.64-2.64Zm5.52.25a7.282 7.282 0 0 1-1.65 3.91c-.08.1-.16.19-.25.28-.08.09-.17.18-.25.27v-.55h.03v-.72s.01-.07 0-.1v-.66c.01-1.25-.66-2.4-1.76-3 .27-.26.63-.41 1-.41h1.51c.63.01 1.17.41 1.37.98ZM2.86 11.16v1.52h.01v.55l-.28-.31c-.08-.08-.15-.16-.22-.24A7.238 7.238 0 0 1 .74 8.86c.16-.62.72-1.07 1.4-1.07h1.47c.37-.01.73.12 1.01.37-1.1.6-1.77 1.75-1.76 3Z" })),
180
188
  'user-plus': () => (h("path", { fill: "currentColor", d: "M14,3.33H12.65V2a.36.36,0,0,0-.35-.33h-.65A.36.36,0,0,0,11.3,2V3.33H10a.34.34,0,0,0-.33.34v.66a.34.34,0,0,0,.33.34H11.3V6a.37.37,0,0,0,.35.33h.65A.37.37,0,0,0,12.65,6V4.67H14a.34.34,0,0,0,.32-.34V3.67A.34.34,0,0,0,14,3.33ZM9.28,9.77h-.2a5.19,5.19,0,0,1-3.91,0H5A3,3,0,0,0,1.7,12.46h0v.72A1.27,1.27,0,0,0,3,14.33h8.25a1.26,1.26,0,0,0,1.36-1.14v-.68A3,3,0,0,0,9.37,9.76H9.28ZM7.13,3.7A2.64,2.64,0,1,1,4.5,6.34h0A2.64,2.64,0,0,1,7.13,3.7Z" })),
181
189
  'user-question-outline': () => (h("path", { fill: "currentColor", d: "M5.23 11.14c.86-.66 1.01-1.9.35-2.75s-1.9-1.01-2.75-.35a1.96 1.96 0 0 0 0 3.1c-.72.42-1.16 1.2-1.16 2.03v.8c0 .2.17.37.37.37h3.98c.2 0 .37-.17.37-.37v-.8c0-.83-.44-1.61-1.16-2.03ZM2.81 9.59c0-.67.55-1.22 1.22-1.22s1.22.55 1.22 1.22-.55 1.22-1.22 1.22-1.22-.55-1.22-1.22Zm2.83 4H2.41v-.42c0-.89.72-1.62 1.62-1.62s1.62.72 1.62 1.62v.42h-.01Zm7.13-11.93H8c-.86 0-1.56.7-1.56 1.56v7.16c0 .21.17.37.37.37.08 0 .16-.03.22-.07l1.49-1.12h4.25c.86 0 1.56-.7 1.56-1.56V3.22c0-.86-.7-1.56-1.56-1.56Zm.82 6.33c0 .45-.37.82-.82.82H8.4a.41.41 0 0 0-.22.07l-1 .75V3.22c0-.45.37-.82.82-.82h4.77c.45 0 .82.37.82.82v4.77Zm-2.8-.42c0 .23-.18.41-.41.41s-.41-.18-.41-.41.18-.41.41-.41c.23 0 .41.18.41.41Zm-.41-4.34c-.83 0-1.5.67-1.5 1.5 0 .23.18.41.41.41s.41-.18.41-.41c0-.38.31-.68.69-.68.38 0 .68.31.68.69 0 .38-.31.68-.68.68-.23 0-.41.18-.41.41v.44c0 .23.18.41.41.41s.41-.18.41-.41v-.09c.8-.23 1.26-1.06 1.04-1.85-.18-.65-.77-1.09-1.44-1.09Z" })),
@@ -0,0 +1,11 @@
1
+ import type { Components, JSX } from "../types/components";
2
+
3
+ interface MgItemMore extends Components.MgItemMore, HTMLElement {}
4
+ export const MgItemMore: {
5
+ prototype: MgItemMore;
6
+ new (): MgItemMore;
7
+ };
8
+ /**
9
+ * Used to define this component and all nested components recursively.
10
+ */
11
+ export const defineCustomElement: () => void;