@mgdis/mg-components 6.20.0 → 6.22.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 (205) hide show
  1. package/dist/cjs/{index-TUElr4Wv.js → index-BxB20_Vw.js} +54 -0
  2. package/dist/cjs/{index-Bp6wZzau.js → index-C2viYwrR.js} +1761 -80
  3. package/dist/cjs/loader.cjs.js +2 -2
  4. package/dist/cjs/mg-action-more_37.cjs.entry.js +761 -371
  5. package/dist/cjs/mg-alert.cjs.entry.js +17 -9
  6. package/dist/cjs/mg-breadcrumb.cjs.entry.js +63 -0
  7. package/dist/cjs/mg-components.cjs.js +3 -3
  8. package/dist/cjs/mg-fieldset.cjs.entry.js +24 -7
  9. package/dist/cjs/mg-input-combobox.cjs.entry.js +49 -19
  10. package/dist/cjs/mg-input-file.cjs.entry.js +384 -0
  11. package/dist/cjs/mg-input-rich-text-editor.cjs.entry.js +40096 -15821
  12. package/dist/cjs/{mg-input.conf-D7jmj_lh.js → mg-input.conf-BNpeATnq.js} +7 -0
  13. package/dist/cjs/mg-loader.cjs.entry.js +8 -6
  14. package/dist/cjs/mg-progress.cjs.entry.js +19 -9
  15. package/dist/collection/assets/icons/index.js +1 -1
  16. package/dist/collection/collection-manifest.json +5 -3
  17. package/dist/collection/components/atoms/internals/mg-character-left/mg-character-left.js +1 -1
  18. package/dist/collection/components/atoms/internals/mg-input-title/mg-input-title.js +1 -1
  19. package/dist/collection/components/atoms/mg-card/mg-card.js +1 -1
  20. package/dist/collection/components/atoms/mg-divider/mg-divider.js +1 -1
  21. package/dist/collection/components/atoms/mg-icon/mg-icon.js +2 -2
  22. package/dist/collection/components/atoms/mg-tag/mg-tag.js +1 -1
  23. package/dist/collection/components/atoms/mg-tooltip/mg-tooltip-content/mg-tooltip-content.js +1 -1
  24. package/dist/collection/components/atoms/mg-tooltip/mg-tooltip.js +1 -1
  25. package/dist/collection/components/molecules/inputs/mg-input/mg-input.conf.js +6 -0
  26. package/dist/collection/components/molecules/inputs/mg-input/mg-input.js +1 -1
  27. package/dist/collection/components/molecules/inputs/mg-input-checkbox/MgInputCheckboxList.js +2 -2
  28. package/dist/collection/components/molecules/inputs/mg-input-checkbox/mg-input-checkbox-paginated/mg-input-checkbox-paginated.js +2 -2
  29. package/dist/collection/components/molecules/inputs/mg-input-checkbox/mg-input-checkbox.js +1 -1
  30. package/dist/collection/components/molecules/inputs/mg-input-combobox/mg-input-combobox.js +1 -1
  31. package/dist/collection/components/molecules/inputs/mg-input-date/mg-input-date.js +1 -1
  32. package/dist/collection/components/molecules/inputs/mg-input-file/mg-input-file.js +877 -0
  33. package/dist/collection/components/molecules/inputs/mg-input-numeric/mg-input-numeric.js +1 -1
  34. package/dist/collection/components/molecules/inputs/mg-input-password/mg-input-password.js +2 -2
  35. package/dist/collection/components/molecules/inputs/mg-input-radio/mg-input-radio.js +1 -1
  36. package/dist/collection/components/molecules/inputs/mg-input-rich-text-editor/editor/custom-properties.scss +212 -0
  37. package/dist/collection/components/molecules/inputs/mg-input-rich-text-editor/editor/editor.conf.js +1 -0
  38. package/dist/collection/components/molecules/inputs/mg-input-rich-text-editor/editor/index.js +300 -94
  39. package/dist/collection/components/molecules/inputs/mg-input-rich-text-editor/mg-input-rich-text-editor.conf.js +29 -0
  40. package/dist/collection/components/molecules/inputs/mg-input-rich-text-editor/mg-input-rich-text-editor.js +163 -53
  41. package/dist/collection/components/molecules/inputs/mg-input-select/mg-input-select.js +1 -1
  42. package/dist/collection/components/molecules/inputs/mg-input-text/mg-input-text.js +2 -2
  43. package/dist/collection/components/molecules/inputs/mg-input-textarea/mg-input-textarea.js +1 -1
  44. package/dist/collection/components/molecules/inputs/mg-input-toggle/mg-input-toggle.js +1 -1
  45. package/dist/collection/components/molecules/internals/mg-item-more/mg-item-more.js +3 -36
  46. package/dist/collection/components/molecules/menus/mg-menu/mg-menu.conf.js +0 -4
  47. package/dist/collection/components/molecules/menus/mg-menu/mg-menu.js +21 -43
  48. package/dist/collection/components/molecules/menus/mg-menu-item/mg-menu-item.js +65 -38
  49. package/dist/collection/components/molecules/mg-action-more/mg-action-more.js +2 -2
  50. package/dist/collection/components/molecules/mg-alert/mg-alert.js +1 -1
  51. package/dist/collection/components/molecules/mg-breadcrumb/mg-breadcrumb.conf.js +1 -0
  52. package/dist/collection/components/molecules/mg-breadcrumb/mg-breadcrumb.js +92 -0
  53. package/dist/collection/components/molecules/mg-details/mg-details.js +1 -1
  54. package/dist/collection/components/molecules/mg-fieldset/mg-fieldset.js +12 -3
  55. package/dist/collection/components/molecules/mg-form/mg-form.js +12 -2
  56. package/dist/collection/components/molecules/mg-illustrated-message/mg-illustrated-message.js +1 -1
  57. package/dist/collection/components/molecules/mg-loader/mg-loader.js +1 -1
  58. package/dist/collection/components/molecules/mg-message/mg-message.js +2 -2
  59. package/dist/collection/components/molecules/mg-modal/mg-modal.js +2 -2
  60. package/dist/collection/components/molecules/mg-panel/mg-panel.js +1 -1
  61. package/dist/collection/components/molecules/mg-popover/mg-popover-content/mg-popover-content.js +1 -1
  62. package/dist/collection/components/molecules/mg-popover/mg-popover.js +1 -1
  63. package/dist/collection/components/molecules/mg-progress/mg-progress.js +1 -1
  64. package/dist/collection/components/molecules/mg-skip-links/mg-skip-links.js +1 -1
  65. package/dist/collection/components/molecules/mg-table/mg-table.js +37 -0
  66. package/dist/collection/components/molecules/mg-tabs/mg-tabs.conf.js +0 -4
  67. package/dist/collection/components/molecules/mg-tabs/mg-tabs.js +13 -33
  68. package/dist/collection/locales/en/messages.json +14 -0
  69. package/dist/collection/locales/fr/messages.json +14 -0
  70. package/dist/components/events.utils.js +1 -23
  71. package/dist/components/index.d.ts +2 -0
  72. package/dist/components/index.js +1 -1
  73. package/dist/components/index2.js +1 -408
  74. package/dist/components/index3.js +1 -476
  75. package/dist/components/mg-action-more.js +1 -254
  76. package/dist/components/mg-alert.js +1 -224
  77. package/dist/components/mg-badge.js +1 -6
  78. package/dist/components/mg-badge2.js +1 -113
  79. package/dist/components/mg-breadcrumb.d.ts +11 -0
  80. package/dist/components/mg-breadcrumb.js +1 -0
  81. package/dist/components/mg-button.js +1 -6
  82. package/dist/components/mg-button2.js +1 -275
  83. package/dist/components/mg-card.js +1 -6
  84. package/dist/components/mg-card2.js +1 -92
  85. package/dist/components/mg-character-left.js +1 -6
  86. package/dist/components/mg-character-left2.js +1 -75
  87. package/dist/components/mg-details.js +1 -104
  88. package/dist/components/mg-divider.js +1 -6
  89. package/dist/components/mg-divider2.js +1 -49
  90. package/dist/components/mg-fieldset.js +1 -209
  91. package/dist/components/mg-form.js +1 -302
  92. package/dist/components/mg-icon.js +1 -6
  93. package/dist/components/mg-icon2.js +1 -188
  94. package/dist/components/mg-illustrated-message.js +1 -129
  95. package/dist/components/mg-input-checkbox-paginated.js +1 -6
  96. package/dist/components/mg-input-checkbox-paginated2.js +1 -135
  97. package/dist/components/mg-input-checkbox.js +1 -762
  98. package/dist/components/mg-input-combobox.js +1 -940
  99. package/dist/components/mg-input-date.js +1 -463
  100. package/dist/components/mg-input-file.d.ts +11 -0
  101. package/dist/components/mg-input-file.js +1 -0
  102. package/dist/components/mg-input-numeric.js +1 -592
  103. package/dist/components/mg-input-password.js +1 -360
  104. package/dist/components/mg-input-radio.js +1 -392
  105. package/dist/components/mg-input-rich-text-editor.js +1663 -16797
  106. package/dist/components/mg-input-select.js +1 -6
  107. package/dist/components/mg-input-select2.js +1 -481
  108. package/dist/components/mg-input-text.js +1 -6
  109. package/dist/components/mg-input-text2.js +1 -514
  110. package/dist/components/mg-input-textarea.js +1 -412
  111. package/dist/components/mg-input-title.js +1 -6
  112. package/dist/components/mg-input-title2.js +1 -81
  113. package/dist/components/mg-input-toggle.js +1 -371
  114. package/dist/components/mg-input.conf.js +1 -0
  115. package/dist/components/mg-input.js +1 -6
  116. package/dist/components/mg-input2.js +1 -459
  117. package/dist/components/mg-item-more.js +1 -6
  118. package/dist/components/mg-item-more2.js +1 -505
  119. package/dist/components/mg-loader.js +1 -6
  120. package/dist/components/mg-loader2.js +1 -74
  121. package/dist/components/mg-menu-item.js +1 -6
  122. package/dist/components/mg-menu-item2.js +1 -485
  123. package/dist/components/mg-menu.js +1 -6
  124. package/dist/components/mg-message.js +1 -6
  125. package/dist/components/mg-message2.js +1 -146
  126. package/dist/components/mg-modal.js +1 -184
  127. package/dist/components/mg-pagination.js +1 -234
  128. package/dist/components/mg-panel.js +1 -350
  129. package/dist/components/mg-popover-content.js +1 -6
  130. package/dist/components/mg-popover-content2.js +1 -96
  131. package/dist/components/mg-popover.js +1 -6
  132. package/dist/components/mg-popover2.js +1 -312
  133. package/dist/components/mg-progress.js +1 -123
  134. package/dist/components/mg-skip-links.js +1 -78
  135. package/dist/components/mg-table.js +1 -319
  136. package/dist/components/mg-tabs.js +1 -6
  137. package/dist/components/mg-tabs2.js +1 -315
  138. package/dist/components/mg-tag.js +1 -133
  139. package/dist/components/mg-tooltip-content.js +1 -6
  140. package/dist/components/mg-tooltip-content2.js +1 -42
  141. package/dist/components/mg-tooltip.js +1 -6
  142. package/dist/components/mg-tooltip2.js +1 -421
  143. package/dist/components/popper.js +1 -1790
  144. package/dist/esm/{index-BluNKQ3L.js → index-DFwaH2hS.js} +1761 -80
  145. package/dist/esm/{index-CNX6lq0x.js → index-DSEloqPn.js} +54 -1
  146. package/dist/esm/loader.js +3 -3
  147. package/dist/esm/mg-action-more_37.entry.js +761 -371
  148. package/dist/esm/mg-alert.entry.js +17 -9
  149. package/dist/esm/mg-breadcrumb.entry.js +61 -0
  150. package/dist/esm/mg-components.js +4 -4
  151. package/dist/esm/mg-fieldset.entry.js +24 -7
  152. package/dist/esm/mg-input-combobox.entry.js +49 -19
  153. package/dist/esm/mg-input-file.entry.js +382 -0
  154. package/dist/esm/mg-input-rich-text-editor.entry.js +40083 -15808
  155. package/dist/esm/{mg-input.conf-DDnrE1hD.js → mg-input.conf-C9rmNQIL.js} +7 -1
  156. package/dist/esm/mg-loader.entry.js +8 -6
  157. package/dist/esm/mg-progress.entry.js +19 -9
  158. package/dist/mg-components/locales/en/messages.json +14 -0
  159. package/dist/mg-components/locales/fr/messages.json +14 -0
  160. package/dist/mg-components/mg-components.esm.js +1 -1
  161. package/dist/mg-components/p-0482eb9f.entry.js +1 -0
  162. package/dist/mg-components/{p-7132bca1.entry.js → p-2ee92f38.entry.js} +1 -1
  163. package/dist/mg-components/{p-916dfb6d.entry.js → p-3b653226.entry.js} +1 -1
  164. package/dist/mg-components/p-5745fbea.entry.js +1 -0
  165. package/dist/mg-components/p-C9rmNQIL.js +1 -0
  166. package/dist/mg-components/p-DFwaH2hS.js +2 -0
  167. package/dist/mg-components/p-DSEloqPn.js +1 -0
  168. package/dist/mg-components/p-adec7fcc.entry.js +1 -0
  169. package/dist/mg-components/p-c63f97f0.entry.js +1658 -0
  170. package/dist/mg-components/p-c8c8cfc1.entry.js +1 -0
  171. package/dist/mg-components/p-cc793586.entry.js +1 -0
  172. package/dist/mg-components/p-d5e69c95.entry.js +1 -0
  173. package/dist/types/assets/icons/index.d.ts +2 -0
  174. package/dist/types/components/molecules/inputs/mg-input/mg-input.conf.d.ts +7 -1
  175. package/dist/types/components/molecules/inputs/mg-input-file/mg-input-file.d.ts +210 -0
  176. package/dist/types/components/molecules/inputs/mg-input-rich-text-editor/editor/editor.conf.d.ts +17 -0
  177. package/dist/types/components/molecules/inputs/mg-input-rich-text-editor/editor/index.d.ts +27 -19
  178. package/dist/types/components/molecules/inputs/mg-input-rich-text-editor/mg-input-rich-text-editor.conf.d.ts +3 -0
  179. package/dist/types/components/molecules/inputs/mg-input-rich-text-editor/mg-input-rich-text-editor.d.ts +50 -16
  180. package/dist/types/components/molecules/internals/mg-item-more/mg-item-more.conf.d.ts +0 -5
  181. package/dist/types/components/molecules/internals/mg-item-more/mg-item-more.d.ts +1 -6
  182. package/dist/types/components/molecules/menus/mg-menu/mg-menu.conf.d.ts +2 -10
  183. package/dist/types/components/molecules/menus/mg-menu/mg-menu.d.ts +7 -7
  184. package/dist/types/components/molecules/menus/mg-menu-item/mg-menu-item.d.ts +12 -8
  185. package/dist/types/components/molecules/mg-breadcrumb/mg-breadcrumb.conf.d.ts +18 -0
  186. package/dist/types/components/molecules/mg-breadcrumb/mg-breadcrumb.d.ts +34 -0
  187. package/dist/types/components/molecules/mg-table/mg-table.d.ts +6 -0
  188. package/dist/types/components/molecules/mg-tabs/mg-tabs.conf.d.ts +1 -9
  189. package/dist/types/components/molecules/mg-tabs/mg-tabs.d.ts +4 -4
  190. package/dist/types/components.d.ts +302 -46
  191. package/dist/types/stencil-public-runtime.d.ts +76 -12
  192. package/ide/intellij/web-types.json +483 -51
  193. package/ide/vscode/css-custom-data.json +10 -2
  194. package/ide/vscode/html-custom-data.json +445 -104
  195. package/package.json +24 -23
  196. package/dist/collection/components/molecules/inputs/mg-input-rich-text-editor/editor/editor.scss +0 -1
  197. package/dist/mg-components/p-016bd291.entry.js +0 -1
  198. package/dist/mg-components/p-186a6139.entry.js +0 -1
  199. package/dist/mg-components/p-BluNKQ3L.js +0 -2
  200. package/dist/mg-components/p-CNX6lq0x.js +0 -1
  201. package/dist/mg-components/p-DDnrE1hD.js +0 -1
  202. package/dist/mg-components/p-cd061b38.entry.js +0 -1
  203. package/dist/mg-components/p-d2c72f09.entry.js +0 -1
  204. package/dist/mg-components/p-d5a276eb.entry.js +0 -1
  205. package/ide/vscode/custom.css-data.json +0 -425
@@ -1,312 +1 @@
1
- import { proxyCustomElement, HTMLElement, createEvent, h, Host } from '@stencil/core/internal/client';
2
- import { c as createID, a as isValideID, t as toString, g as getWindows } from './index2.js';
3
- import { d as defineCustomElement$4 } from './mg-button2.js';
4
- import { d as defineCustomElement$3 } from './mg-card2.js';
5
- import { d as defineCustomElement$2 } from './mg-icon2.js';
6
- import { d as defineCustomElement$1 } from './mg-popover-content2.js';
7
- import { c as createPopper } from './popper.js';
8
-
9
- const mgPopoverCss = "/*!\n * @prop --mg-c-popover-color-background: Defines the background color of the popover. Default value: `--mg-b-color-light`.\n * @prop --mg-c-popover-color-text: Defines the font color of the popover. Default value: `--mg-b-color-font-dark`.\n * @prop --mg-c-popover-title-font-size: Defines the font size of the popover title. Default value: `--mg-b-font-size-h5`.\n * @prop --mg-c-popover-padding-vertical: Defines the vertical padding of the popover. Default value: `unset`, fallback to `--mg-b-size-16`.\n * @prop --mg-c-popover-padding-horizontal: Defines the horizontal padding of the popover. Default value: `unset`, fallback to `--mg-b-size-16`.\n * @prop --mg-c-popover-max-width: Defines the max-width of the popover. Default value: `--mg-b-size-floating-element-max-width`.\n * @prop --mg-c-popover-max-height: Defines the max-height of the popover. Default value: `unset`.\n * @prop --mg-c-popover-overflow: Defines the overflow property for the popover. Unset by default, fallback on `--mg-c-card-overflow`.\n * @prop --mg-c-popover-border-radius: Defines the border-radius of the popover. Default value: `--mg-c-card-border-radius-default`.\n * @prop --mg-c-popover-min-width: Defines the min-width of the popover. Default value: `unset`.\n */:host{--mg-c-card-spacing:var(--mg-c-popover-padding-vertical, var(--mg-b-size-16)) var(--mg-c-popover-padding-horizontal, var(--mg-b-size-16));--mg-c-card-border:none;--mg-c-card-border-radius:var(--mg-c-popover-border-radius);--mg-c-card-color-background:var(--mg-c-popover-color-background);position:relative;display:contents}:host::slotted(*){display:inline-block}";
10
-
11
- const MgPopover = /*@__PURE__*/ proxyCustomElement(class MgPopover extends HTMLElement {
12
- constructor(registerHost) {
13
- super();
14
- if (registerHost !== false) {
15
- this.__registerHost();
16
- }
17
- this.__attachShadow();
18
- this.displayChange = createEvent(this, "display-change", 7);
19
- this.componentClose = createEvent(this, "component-close", 7);
20
- /**
21
- * Sets an `id` attribute.
22
- * Needed by the input for accessibility `aria-decribedby`.
23
- */
24
- this.identifier = createID('mg-popover');
25
- /**
26
- * Popover placement
27
- */
28
- this.placement = 'bottom';
29
- /**
30
- * Hide popover arrow
31
- */
32
- this.arrowHide = false;
33
- /**
34
- * Define if popover has a cross button
35
- */
36
- this.closeButton = false;
37
- /**
38
- * Display popover
39
- */
40
- this.display = false;
41
- /**
42
- * Disable popover
43
- */
44
- this.disabled = false;
45
- /**
46
- * Check if clicked outside of component
47
- * @param event - mouse event
48
- */
49
- this.clickOutside = (event) => {
50
- if (!this.disabled && event.target.closest('mg-popover') !== this.element && event.target.closest(`[data-mg-popover-guard="${this.identifier}"]`) === null) {
51
- this.display = false;
52
- }
53
- };
54
- /**
55
- * Show popover
56
- */
57
- this.show = () => {
58
- // Make the popover visible
59
- this.mgPopover.dataset.show = '';
60
- // Update aria-expanded
61
- this.interactiveElement.setAttribute('aria-expanded', 'true');
62
- // Enable the event listeners
63
- this.setPopperListeners(true);
64
- // hide when click outside
65
- // setTimeout is used to prevent event to trigger after creation
66
- setTimeout(() => {
67
- this.manageClickOutsideListeners('addEventListener');
68
- });
69
- };
70
- /**
71
- * Hide popover
72
- */
73
- this.hide = () => {
74
- // Hide the popover
75
- this.mgPopover.removeAttribute('data-show');
76
- // Update aria-expanded
77
- this.interactiveElement.setAttribute('aria-expanded', 'false');
78
- // Disable the event listeners
79
- this.setPopperListeners(false);
80
- // Remove event listener
81
- this.manageClickOutsideListeners('removeEventListener');
82
- };
83
- /**
84
- * Set popper listeners
85
- * @param newValue - if true enable popper listners
86
- */
87
- this.setPopperListeners = (newValue) => {
88
- this.popper.setOptions(options => (Object.assign(Object.assign({}, options), { modifiers: [...options.modifiers, { name: 'eventListeners', enabled: newValue }] })));
89
- };
90
- /**
91
- * Manage all clickOustside listeners
92
- * @param action - top process on elements listeners
93
- */
94
- this.manageClickOutsideListeners = (action) => {
95
- var _a, _b;
96
- // clickOutside listeners need to bind windows
97
- // AND as shawdowDom content is not include on windows listeners `event.target` we need to include popover guard content DOM if it's a web-component
98
- // by doing this we can get and parse all needeed document DOM elements in clickOutside callback event.details.
99
- // This result in the givern junction :
100
- // Windows > document > [data-mg-popover-guard] + [data-mg-popover-guard] > shadowRoot = Windows > document > [data-mg-popover-guard] > shadowRoot
101
- const guardChildren = Array.from(((_b = (_a = document.querySelector(`[data-mg-popover-guard="${this.identifier}"]`)) === null || _a === void 0 ? void 0 : _a.shadowRoot) === null || _b === void 0 ? void 0 : _b.children) || new Set());
102
- [...guardChildren, ...this.windows].forEach((element) => {
103
- if (element !== null) {
104
- element[action]('click', this.clickOutside, false);
105
- }
106
- });
107
- };
108
- /**
109
- * Handle content hide event
110
- */
111
- this.handleHideContent = () => {
112
- this.display = false;
113
- this.componentClose.emit();
114
- };
115
- /**
116
- * Render popover content element
117
- */
118
- this.renderPopoverContent = () => {
119
- const mgPopoverContent = this.element.querySelector('mg-popover-content');
120
- if (mgPopoverContent === null) {
121
- this.mgPopoverContent = document.createElement('mg-popover-content');
122
- this.mgPopoverContent.setAttribute('slot', 'content');
123
- this.mgPopoverContent.setAttribute('id', this.identifier);
124
- this.mgPopoverContent.addEventListener('hide-content', this.handleHideContent);
125
- const arrow = document.createElement('div');
126
- arrow.setAttribute('slot', 'arrow');
127
- arrow.dataset.popperArrow = '';
128
- this.mgPopoverContent.appendChild(arrow);
129
- // insert elements in DOM
130
- ['[slot="title"]', '[slot="content"]:not(mg-popover-content)'].forEach(slotType => {
131
- Array.from(this.element.querySelectorAll(slotType)).forEach(slot => {
132
- this.mgPopoverContent.appendChild(slot);
133
- });
134
- });
135
- this.element.appendChild(this.mgPopoverContent);
136
- }
137
- else {
138
- mgPopoverContent.setAttribute('id', this.identifier);
139
- }
140
- };
141
- }
142
- validateIdentifier(newValue) {
143
- if (!isValideID(newValue)) {
144
- throw new Error(`<mg-popover> prop "identifier" value is invalid. Passed value: ${toString(newValue)}.`);
145
- }
146
- // use renderPopoverContent to update popover-content id
147
- this.renderPopoverContent();
148
- }
149
- validateArrowHide(newValue) {
150
- if (newValue)
151
- this.mgPopoverContent.dataset.arrowHide = '';
152
- else
153
- delete this.mgPopoverContent.dataset.arrowHide;
154
- }
155
- validateCloseButton(newValue) {
156
- this.mgPopoverContent.closeButton = newValue;
157
- }
158
- handleDisplay(newValue) {
159
- if (newValue) {
160
- this.show();
161
- }
162
- else {
163
- this.hide();
164
- }
165
- this.displayChange.emit(newValue);
166
- }
167
- /*************
168
- * Lifecycle *
169
- *************/
170
- /**
171
- * update popper position after props change on component did update hook to benefit from render ended
172
- */
173
- componentDidUpdate() {
174
- this.popper.update();
175
- }
176
- /**
177
- * Check if component props are well configured on init
178
- */
179
- componentWillLoad() {
180
- // Get windows to attach events
181
- this.windows = getWindows(window);
182
- // render mg-popover-content slot
183
- this.renderPopoverContent();
184
- this.validateCloseButton(this.closeButton);
185
- this.validateIdentifier(this.identifier);
186
- this.validateArrowHide(this.arrowHide);
187
- }
188
- /**
189
- * Check if component props are well configured on init
190
- */
191
- componentDidLoad() {
192
- // Get popover content
193
- this.mgPopover = this.element.querySelector(`#${this.identifier}`);
194
- //Get interactive element (first element without slot attribute)
195
- this.interactiveElement = this.element.querySelector(':not([slot])');
196
- // Add aria attributes
197
- this.interactiveElement.setAttribute('aria-controls', this.identifier);
198
- this.interactiveElement.setAttribute('aria-expanded', `${this.display}`);
199
- const fallbackPlacements = [];
200
- if (this.element.dataset.fallbackPlacement !== undefined) {
201
- fallbackPlacements.push(this.element.dataset.fallbackPlacement);
202
- }
203
- // Create popperjs popover
204
- this.popper = createPopper(this.interactiveElement, this.mgPopover, {
205
- placement: this.placement,
206
- strategy: 'fixed',
207
- modifiers: [
208
- {
209
- name: 'offset',
210
- options: {
211
- offset: [0, 0],
212
- },
213
- },
214
- {
215
- name: 'flip',
216
- options: {
217
- fallbackPlacements: [...fallbackPlacements, 'auto'],
218
- },
219
- },
220
- ],
221
- });
222
- // add resize observer
223
- [this.interactiveElement, this.element.querySelector('mg-popover-content')].forEach(element => {
224
- new ResizeObserver(() => {
225
- this.popper.update();
226
- }).observe(element);
227
- });
228
- // Add events to toggle display
229
- this.interactiveElement.addEventListener('click', () => {
230
- if (!this.disabled)
231
- this.display = !this.display;
232
- });
233
- this.element.addEventListener('click', (event) => {
234
- const target = event.target.closest('[popovertargetaction]');
235
- if (this.display === true && target !== null && target.getAttribute('popovertargetaction') === 'hide') {
236
- this.display = false;
237
- }
238
- });
239
- // Add events to hide popover
240
- this.element.addEventListener('keydown', e => {
241
- if (!this.disabled && e.code === 'Escape') {
242
- this.display = false;
243
- this.componentClose.emit();
244
- this.interactiveElement.focus();
245
- }
246
- });
247
- this.handleDisplay(this.display);
248
- }
249
- /**
250
- * Render
251
- * @returns HTML Element
252
- */
253
- render() {
254
- return (h(Host, { key: '2c1506b8e2da100519aeeae75fc5c378a81c473c' }, h("slot", { key: 'f9aea885e8cbc168614c05761829f0a0740eba9e' }), h("slot", { key: 'fa6106a660a73b3761d4783f8d46d401c47b4eb6', name: "content" })));
255
- }
256
- get element() { return this; }
257
- static get watchers() { return {
258
- "identifier": ["validateIdentifier"],
259
- "arrowHide": ["validateArrowHide"],
260
- "closeButton": ["validateCloseButton"],
261
- "display": ["handleDisplay"]
262
- }; }
263
- static get style() { return mgPopoverCss; }
264
- }, [257, "mg-popover", {
265
- "identifier": [1],
266
- "placement": [1],
267
- "arrowHide": [4, "arrow-hide"],
268
- "closeButton": [4, "close-button"],
269
- "display": [1028],
270
- "disabled": [4]
271
- }, undefined, {
272
- "identifier": ["validateIdentifier"],
273
- "arrowHide": ["validateArrowHide"],
274
- "closeButton": ["validateCloseButton"],
275
- "display": ["handleDisplay"]
276
- }]);
277
- function defineCustomElement() {
278
- if (typeof customElements === "undefined") {
279
- return;
280
- }
281
- const components = ["mg-popover", "mg-button", "mg-card", "mg-icon", "mg-popover-content"];
282
- components.forEach(tagName => { switch (tagName) {
283
- case "mg-popover":
284
- if (!customElements.get(tagName)) {
285
- customElements.define(tagName, MgPopover);
286
- }
287
- break;
288
- case "mg-button":
289
- if (!customElements.get(tagName)) {
290
- defineCustomElement$4();
291
- }
292
- break;
293
- case "mg-card":
294
- if (!customElements.get(tagName)) {
295
- defineCustomElement$3();
296
- }
297
- break;
298
- case "mg-icon":
299
- if (!customElements.get(tagName)) {
300
- defineCustomElement$2();
301
- }
302
- break;
303
- case "mg-popover-content":
304
- if (!customElements.get(tagName)) {
305
- defineCustomElement$1();
306
- }
307
- break;
308
- } });
309
- }
310
- defineCustomElement();
311
-
312
- export { MgPopover as M, defineCustomElement as d };
1
+ import{transformTag as t,proxyCustomElement as e,HTMLElement as i,createEvent as s,h as o,Host as a}from"@stencil/core/internal/client";import{c as r,a as n,t as h,g as c}from"./index2.js";import{d}from"./mg-button2.js";import{d as l}from"./mg-card2.js";import{d as p}from"./mg-icon2.js";import{d as m}from"./mg-popover-content2.js";import{c as v}from"./popper.js";const g=e(class extends i{constructor(t){super(),!1!==t&&this.__registerHost(),this.__attachShadow(),this.displayChange=s(this,"display-change",7),this.componentClose=s(this,"component-close",7),this.identifier=r("mg-popover"),this.placement="bottom",this.arrowHide=!1,this.closeButton=!1,this.display=!1,this.disabled=!1,this.clickOutside=t=>{this.disabled||t.target.closest("mg-popover")===this.element||null!==t.target.closest(`[data-mg-popover-guard="${this.identifier}"]`)||(this.display=!1)},this.show=()=>{this.mgPopover.dataset.show="",this.interactiveElement.setAttribute("aria-expanded","true"),this.setPopperListeners(!0),setTimeout((()=>{this.manageClickOutsideListeners("addEventListener")}))},this.hide=()=>{this.mgPopover.removeAttribute("data-show"),this.interactiveElement.setAttribute("aria-expanded","false"),this.setPopperListeners(!1),this.manageClickOutsideListeners("removeEventListener")},this.setPopperListeners=t=>{this.popper.setOptions((e=>Object.assign(Object.assign({},e),{modifiers:[...e.modifiers,{name:"eventListeners",enabled:t}]})))},this.manageClickOutsideListeners=t=>{var e,i;[...Array.from((null===(i=null===(e=document.querySelector(`[data-mg-popover-guard="${this.identifier}"]`))||void 0===e?void 0:e.shadowRoot)||void 0===i?void 0:i.children)||new Set),...this.windows].forEach((e=>{null!==e&&e[t]("click",this.clickOutside,!1)}))},this.handleHideContent=()=>{this.display=!1,this.componentClose.emit()},this.renderPopoverContent=()=>{const t=this.element.querySelector("mg-popover-content");if(null===t){this.mgPopoverContent=document.createElement("mg-popover-content"),this.mgPopoverContent.setAttribute("slot","content"),this.mgPopoverContent.setAttribute("id",this.identifier),this.mgPopoverContent.addEventListener("hide-content",this.handleHideContent);const t=document.createElement("div");t.setAttribute("slot","arrow"),t.dataset.popperArrow="",this.mgPopoverContent.appendChild(t),['[slot="title"]','[slot="content"]:not(mg-popover-content)'].forEach((t=>{Array.from(this.element.querySelectorAll(t)).forEach((t=>{this.mgPopoverContent.appendChild(t)}))})),this.element.appendChild(this.mgPopoverContent)}else t.setAttribute("id",this.identifier)}}validateIdentifier(t){if(!n(t))throw new Error(`<mg-popover> prop "identifier" value is invalid. Passed value: ${h(t)}.`);this.renderPopoverContent()}validateArrowHide(t){t?this.mgPopoverContent.dataset.arrowHide="":delete this.mgPopoverContent.dataset.arrowHide}validateCloseButton(t){this.mgPopoverContent.closeButton=t}handleDisplay(t){t?this.show():this.hide(),this.displayChange.emit(t)}componentDidUpdate(){this.popper.update()}componentWillLoad(){this.windows=c(window),this.renderPopoverContent(),this.validateCloseButton(this.closeButton),this.validateIdentifier(this.identifier),this.validateArrowHide(this.arrowHide)}componentDidLoad(){this.mgPopover=this.element.querySelector(`#${this.identifier}`),this.interactiveElement=this.element.querySelector(":not([slot])"),this.interactiveElement.setAttribute("aria-controls",this.identifier),this.interactiveElement.setAttribute("aria-expanded",`${this.display}`);const t=[];void 0!==this.element.dataset.fallbackPlacement&&t.push(this.element.dataset.fallbackPlacement),this.popper=v(this.interactiveElement,this.mgPopover,{placement:this.placement,strategy:"fixed",modifiers:[{name:"offset",options:{offset:[0,0]}},{name:"flip",options:{fallbackPlacements:[...t,"auto"]}}]}),[this.interactiveElement,this.element.querySelector("mg-popover-content")].forEach((t=>{new ResizeObserver((()=>{this.popper.update()})).observe(t)})),this.interactiveElement.addEventListener("click",(()=>{this.disabled||(this.display=!this.display)})),this.element.addEventListener("click",(t=>{const e=t.target.closest("[popovertargetaction]");!0===this.display&&null!==e&&"hide"===e.getAttribute("popovertargetaction")&&(this.display=!1)})),this.element.addEventListener("keydown",(t=>{this.disabled||"Escape"!==t.code||(this.display=!1,this.componentClose.emit(),this.interactiveElement.focus())})),this.handleDisplay(this.display)}render(){return o(a,{key:"530971c84be3edae39c5aed0013d0c5b9005a1c1"},o("slot",{key:"6e717bc8c5aa3d58fc048c4232e706cc78ab66ec"}),o("slot",{key:"e779db01e55a28ffaedde21e9944f5ef3c79fa29",name:"content"}))}get element(){return this}static get watchers(){return{identifier:[{validateIdentifier:0}],arrowHide:[{validateArrowHide:0}],closeButton:[{validateCloseButton:0}],display:[{handleDisplay:0}]}}static get style(){return":host{--mg-c-card-spacing:var(--mg-c-popover-spacing-vertical, var(--mg-b-size-16)) var(--mg-c-popover-spacing-horizontal, var(--mg-b-size-16));--mg-c-card-border:none;--mg-c-card-border-radius:var(--mg-c-popover-border-radius);--mg-c-card-color-background:var(--mg-c-popover-color-background);position:relative;display:contents}:host::slotted(*){display:inline-block}"}},[257,"mg-popover",{identifier:[1],placement:[1],arrowHide:[4,"arrow-hide"],closeButton:[4,"close-button"],display:[1028],disabled:[4]},void 0,{identifier:[{validateIdentifier:0}],arrowHide:[{validateArrowHide:0}],closeButton:[{validateCloseButton:0}],display:[{handleDisplay:0}]}]);function u(){"undefined"!=typeof customElements&&["mg-popover","mg-button","mg-card","mg-icon","mg-popover-content"].forEach((e=>{switch(e){case"mg-popover":customElements.get(t(e))||customElements.define(t(e),g);break;case"mg-button":customElements.get(t(e))||d();break;case"mg-card":customElements.get(t(e))||l();break;case"mg-icon":customElements.get(t(e))||p();break;case"mg-popover-content":customElements.get(t(e))||m()}}))}u();export{g as M,u as d}
@@ -1,123 +1 @@
1
- import { proxyCustomElement, HTMLElement, h, Host } from '@stencil/core/internal/client';
2
- import { i as isValidString, t as toString, q as isValidNumber } from './index2.js';
3
-
4
- /**
5
- * List of all possibles roles
6
- */
7
- const roles = ['progressbar', 'meter'];
8
-
9
- const mgProgressCss = "/*!\n * @prop --mg-c-progress-size: Defines the size of the progress bar. Default value is `--mg-b-size-8`.\n * @prop --mg-c-progress-border-color: Defines the color of the progress bar border. Default value is `--mg-b-color-neutral-80`.\n * @prop --mg-c-progress-bar-color-background: Defines the color of the progress bar. Default value is `--mg-b-color-neutral-30`.\n * @prop --mg-c-progress-fill-color-background: Defines the color of the progress bar fill background. Default value is `--mg-b-color-app`.\n */.mg-c-progress{min-width:calc(var(--mg-b-size-16)*4)}.mg-c-progress__bar{position:relative;overflow:hidden;height:var(--mg-c-progress-size);border-width:var(--mg-b-size-border);border-style:solid;border-color:var(--mg-c-progress-border-color);border-radius:calc((var(--mg-c-progress-size) + var(--mg-b-size-border)*2)/2);background-color:var(--mg-c-progress-bar-color-background)}.mg-c-progress__fill{height:100%;border-radius:calc((var(--mg-c-progress-size) + var(--mg-b-size-border)*2)/2);transition:width 300ms ease-in-out}.mg-c-progress__bar.mg-c-progress__bar--active .mg-c-progress__fill{background-color:var(--mg-c-progress-fill-color-background)}";
10
-
11
- const MgProgress$1 = /*@__PURE__*/ proxyCustomElement(class MgProgress extends HTMLElement {
12
- constructor(registerHost) {
13
- super();
14
- if (registerHost !== false) {
15
- this.__registerHost();
16
- }
17
- this.__attachShadow();
18
- /**
19
- * Define progress role
20
- * - `progressbar` to indicate a progress, such as loading or percent completion of a task
21
- * - `meter` to indicate a graphical display of a numeric value that varies within a defined range
22
- */
23
- this.ariaRole = 'progressbar';
24
- /**
25
- * Define current value
26
- * By default, it will be displayed as a percentage value.
27
- * If you don’t specify the min and max props, the value should be a number within the range of 0 to 100.
28
- */
29
- this.value = 0;
30
- /**
31
- * Define the minimum value in the range
32
- */
33
- this.min = 0;
34
- /**
35
- * Define the maximum value in the range
36
- */
37
- this.max = 100;
38
- }
39
- watchLabel(newValue) {
40
- if (!isValidString(newValue)) {
41
- throw new Error(`<mg-progress> prop "label" must be a valid string. Passed value: ${toString(newValue)}.`);
42
- }
43
- }
44
- watchAriaRole(newValue) {
45
- if (newValue && !roles.includes(newValue)) {
46
- throw new Error(`<mg-progress> prop "ariaRole" must be one of: ${roles.join(', ')}. Passed value: ${toString(newValue)}.`);
47
- }
48
- }
49
- watchValue(newValue) {
50
- if (newValue !== undefined && (!isValidNumber(newValue) || !(newValue >= this.min && newValue <= this.max)))
51
- throw new Error(`<mg-progress> prop “value” must be a number within the range ${this.min} to ${this.max}. Passed value: ${toString(newValue)}.`);
52
- }
53
- watchMin(newValue) {
54
- if (newValue !== 0 && newValue !== undefined && (!isValidNumber(newValue) || newValue >= this.max))
55
- throw new Error(`<mg-progress> prop “min” must be a number lower than: ${this.max}. Passed value: ${toString(newValue)}.`);
56
- }
57
- watchMax(newValue) {
58
- if (newValue !== 100 && newValue !== undefined && (!isValidNumber(newValue) || newValue <= this.min))
59
- throw new Error(`<mg-progress> prop “max” must be a number greater than: ${this.min}. Passed value: ${toString(newValue)}.`);
60
- }
61
- /*************
62
- * Lifecycle *
63
- *************/
64
- /**
65
- * Check if component props are well configured on init
66
- */
67
- componentWillLoad() {
68
- // validate props
69
- this.watchLabel(this.label);
70
- this.watchAriaRole(this.ariaRole);
71
- this.watchMin(this.min);
72
- this.watchMax(this.max);
73
- this.watchValue(this.value);
74
- }
75
- /**
76
- * Render
77
- * @returns HTML Element
78
- */
79
- render() {
80
- return (h(Host, { key: '8e6c727e9416fa777fd94b32d618a9137e8e08f7', role: this.ariaRole, "aria-label": this.label, "aria-valuenow": this.value, "aria-valuemin": this.min, "aria-valuemax": this.max }, h("div", { key: 'ac42ee9c5dda55d70aad7391895e4a013aaa27f9', class: "mg-c-progress" }, h("div", { key: '34c77bc6c133bc59b9daa68d7d6c8534f13f7d37', class: { 'mg-c-progress__bar': true, 'mg-c-progress__bar--active': this.value > this.min } }, h("div", { key: '7ea03a3f0c54ca0c81616c7c070d178a510dd7e1', class: "mg-c-progress__fill", style: {
81
- width: `${Math.round(((this.value - this.min) / (this.max - this.min)) * 100)}%`,
82
- } })))));
83
- }
84
- static get watchers() { return {
85
- "label": ["watchLabel"],
86
- "ariaRole": ["watchAriaRole"],
87
- "value": ["watchValue"],
88
- "min": ["watchMin"],
89
- "max": ["watchMax"]
90
- }; }
91
- static get style() { return mgProgressCss; }
92
- }, [257, "mg-progress", {
93
- "label": [1],
94
- "ariaRole": [1, "aria-role"],
95
- "value": [2],
96
- "min": [2],
97
- "max": [2]
98
- }, undefined, {
99
- "label": ["watchLabel"],
100
- "ariaRole": ["watchAriaRole"],
101
- "value": ["watchValue"],
102
- "min": ["watchMin"],
103
- "max": ["watchMax"]
104
- }]);
105
- function defineCustomElement$1() {
106
- if (typeof customElements === "undefined") {
107
- return;
108
- }
109
- const components = ["mg-progress"];
110
- components.forEach(tagName => { switch (tagName) {
111
- case "mg-progress":
112
- if (!customElements.get(tagName)) {
113
- customElements.define(tagName, MgProgress$1);
114
- }
115
- break;
116
- } });
117
- }
118
- defineCustomElement$1();
119
-
120
- const MgProgress = MgProgress$1;
121
- const defineCustomElement = defineCustomElement$1;
122
-
123
- export { MgProgress, defineCustomElement };
1
+ import{transformTag as r,proxyCustomElement as e,HTMLElement as s,h as a,Host as t}from"@stencil/core/internal/client";import{i,t as o,q as c}from"./index2.js";const l=["progressbar","meter"],h=e(class extends s{constructor(r){super(),!1!==r&&this.__registerHost(),this.__attachShadow(),this.ariaRole="progressbar",this.value=0,this.min=0,this.max=100}watchLabel(r){if(!i(r))throw Error(`<mg-progress> prop "label" must be a valid string. Passed value: ${o(r)}.`)}watchAriaRole(r){if(r&&!l.includes(r))throw Error(`<mg-progress> prop "ariaRole" must be one of: ${l.join(", ")}. Passed value: ${o(r)}.`)}watchValue(r){if(!(void 0===r||c(r)&&r>=this.min&&r<=this.max))throw Error(`<mg-progress> prop “value” must be a number within the range ${this.min} to ${this.max}. Passed value: ${o(r)}.`)}watchMin(r){if(0!==r&&void 0!==r&&(!c(r)||r>=this.max))throw Error(`<mg-progress> prop “min” must be a number lower than: ${this.max}. Passed value: ${o(r)}.`)}watchMax(r){if(100!==r&&void 0!==r&&(!c(r)||r<=this.min))throw Error(`<mg-progress> prop “max” must be a number greater than: ${this.min}. Passed value: ${o(r)}.`)}componentWillLoad(){this.watchLabel(this.label),this.watchAriaRole(this.ariaRole),this.watchMin(this.min),this.watchMax(this.max),this.watchValue(this.value)}render(){return a(t,{key:"02466f9df3e5204eef158b9f733ba0af811ad9ed",role:this.ariaRole,"aria-label":this.label,"aria-valuenow":this.value,"aria-valuemin":this.min,"aria-valuemax":this.max},a("div",{key:"88c2eafe55d169502ef5afccfbde3371fee5165f",class:"mg-c-progress"},a("div",{key:"b46159dbed388c58b198bdc330096669c454bcd3",class:{"mg-c-progress__bar":!0,"mg-c-progress__bar--active":this.value>this.min}},a("div",{key:"0faebcc86cc7a55ccab3d9fb8dce4403bff16ebf",class:"mg-c-progress__fill",style:{width:Math.round((this.value-this.min)/(this.max-this.min)*100)+"%"}}))))}static get watchers(){return{label:[{watchLabel:0}],ariaRole:[{watchAriaRole:0}],value:[{watchValue:0}],min:[{watchMin:0}],max:[{watchMax:0}]}}static get style(){return".mg-c-progress{min-width:calc(var(--mg-b-size-16)*4)}.mg-c-progress__bar{position:relative;overflow:hidden;height:var(--mg-c-progress-size);border-width:var(--mg-b-size-border);border-style:solid;border-color:var(--mg-c-progress-border-color);border-radius:calc((var(--mg-c-progress-size) + var(--mg-b-size-border)*2)/2);background-color:var(--mg-c-progress-bar-color-background)}.mg-c-progress__fill{height:100%;border-radius:calc((var(--mg-c-progress-size) + var(--mg-b-size-border)*2)/2);transition:width 300ms ease-in-out}.mg-c-progress__bar.mg-c-progress__bar--active .mg-c-progress__fill{background-color:var(--mg-c-progress-fill-color-background)}"}},[1,"mg-progress",{label:[1],ariaRole:[1,"aria-role"],value:[2],min:[2],max:[2]},void 0,{label:[{watchLabel:0}],ariaRole:[{watchAriaRole:0}],value:[{watchValue:0}],min:[{watchMin:0}],max:[{watchMax:0}]}]);function g(){"undefined"!=typeof customElements&&["mg-progress"].forEach((e=>{"mg-progress"===e&&(customElements.get(r(e))||customElements.define(r(e),h))}))}g();const m=h,b=g;export{m as MgProgress,b as defineCustomElement}
@@ -1,78 +1 @@
1
- import { proxyCustomElement, HTMLElement, createEvent, h } from '@stencil/core/internal/client';
2
- import { i as initLocales } from './index3.js';
3
- import { i as isValidString } from './index2.js';
4
-
5
- const mgSkipLinksCss = ".mg-c-skip-links{position:absolute;display:flex;min-height:var(--mg-b-size-56);align-items:center;background:var(--mg-b-color-light);opacity:0;transform:translateY(-100%)}.mg-c-skip-links:focus-within{position:relative;opacity:1;transform:translateY(0)}.mg-c-skip-links__list{display:flex;flex-wrap:wrap;align-items:center;padding:0 var(--mg-b-size-16);margin:0;gap:var(--mg-b-spacing-actions);list-style:none}.mg-c-skip-links__link{display:inline-block;padding:var(--mg-b-size-8) var(--mg-b-size-16);color:var(--mg-b-color-dark)}.mg-c-skip-links__link:hover{background:hsl(var(--mg-b-color-dark-h), var(--mg-b-color-dark-s), var(--mg-b-color-dark-l), 10%)}";
6
-
7
- const MgSkipLinks$1 = /*@__PURE__*/ proxyCustomElement(class MgSkipLinks extends HTMLElement {
8
- constructor(registerHost) {
9
- super();
10
- if (registerHost !== false) {
11
- this.__registerHost();
12
- }
13
- this.__attachShadow();
14
- this.goToAnchor = createEvent(this, "go-to-anchor", 7);
15
- /***********
16
- * Methods *
17
- **********/
18
- /**
19
- * Handle link click and emit go-to-anchor event
20
- * @param event - mouse event
21
- */
22
- this.handleLinkCLick = (event) => {
23
- const element = event.currentTarget;
24
- element.blur();
25
- this.goToAnchor.emit(element.getAttribute('href'));
26
- };
27
- }
28
- validateLinks(links) {
29
- if (links === undefined || links.length === 0 || links.some(link => !isValidString(link.href) || !link.href.startsWith('#') || !isValidString(link.label))) {
30
- throw new Error(`<mg-skip-links> prop "links": Cannot be empty and each link must contains an href starting with a "#" and a non empty label attributes.`);
31
- }
32
- }
33
- /*************
34
- * Lifecycle *
35
- *************/
36
- /**
37
- * Check if props are well configured on init
38
- */
39
- componentWillLoad() {
40
- this.validateLinks(this.links);
41
- this.messages = initLocales(this.element).messages;
42
- }
43
- /**
44
- * Render
45
- * @returns HTML Element
46
- */
47
- render() {
48
- return (h("nav", { key: '5bf4427662bdca6512969bee91aa03f43a126743', class: "mg-c-skip-links", role: "navigation", "aria-label": this.messages.skipLinks.navLabel }, h("ul", { key: '1d2b2a56b3960f70a3d37b333c77bf686643e0fd', class: "mg-c-skip-links__list", role: "list" }, this.links.map(link => (h("li", { key: link.href }, h("a", { class: "mg-c-skip-links__link", href: link.href, onClick: this.handleLinkCLick }, link.label)))))));
49
- }
50
- get element() { return this; }
51
- static get watchers() { return {
52
- "links": ["validateLinks"]
53
- }; }
54
- static get style() { return mgSkipLinksCss; }
55
- }, [257, "mg-skip-links", {
56
- "links": [16]
57
- }, undefined, {
58
- "links": ["validateLinks"]
59
- }]);
60
- function defineCustomElement$1() {
61
- if (typeof customElements === "undefined") {
62
- return;
63
- }
64
- const components = ["mg-skip-links"];
65
- components.forEach(tagName => { switch (tagName) {
66
- case "mg-skip-links":
67
- if (!customElements.get(tagName)) {
68
- customElements.define(tagName, MgSkipLinks$1);
69
- }
70
- break;
71
- } });
72
- }
73
- defineCustomElement$1();
74
-
75
- const MgSkipLinks = MgSkipLinks$1;
76
- const defineCustomElement = defineCustomElement$1;
77
-
78
- export { MgSkipLinks, defineCustomElement };
1
+ import{transformTag as i,proxyCustomElement as s,HTMLElement as t,createEvent as n,h as e}from"@stencil/core/internal/client";import{i as a}from"./index3.js";import{i as l}from"./index2.js";const r=s(class extends t{constructor(i){super(),!1!==i&&this.__registerHost(),this.__attachShadow(),this.goToAnchor=n(this,"go-to-anchor",7),this.handleLinkCLick=i=>{const s=i.currentTarget;s.blur(),this.goToAnchor.emit(s.getAttribute("href"))}}validateLinks(i){if(void 0===i||0===i.length||i.some((i=>!l(i.href)||!i.href.startsWith("#")||!l(i.label))))throw Error('<mg-skip-links> prop "links": Cannot be empty and each link must contains an href starting with a "#" and a non empty label attributes.')}componentWillLoad(){this.validateLinks(this.links),this.messages=a(this.element).messages}render(){return e("nav",{key:"b126d6fe3aa2553562fe18a0d4340205e178fbe0",class:"mg-c-skip-links",role:"navigation","aria-label":this.messages.skipLinks.navLabel},e("ul",{key:"1028704238d5119f67cf2e7a77282dec504bbc4f",class:"mg-c-skip-links__list",role:"list"},this.links.map((i=>e("li",{key:i.href},e("a",{class:"mg-c-skip-links__link",href:i.href,onClick:this.handleLinkCLick},i.label))))))}get element(){return this}static get watchers(){return{links:[{validateLinks:0}]}}static get style(){return".mg-c-skip-links{position:absolute;display:flex;min-height:var(--mg-b-size-56);align-items:center;background:var(--mg-b-color-light);opacity:0;transform:translateY(-100%)}.mg-c-skip-links:focus-within{position:relative;opacity:1;transform:translateY(0)}.mg-c-skip-links__list{display:flex;flex-wrap:wrap;align-items:center;padding:0 var(--mg-b-size-16);margin:0;gap:var(--mg-b-spacing-actions);list-style:none}.mg-c-skip-links__link{display:inline-block;padding:var(--mg-b-size-8) var(--mg-b-size-16);color:var(--mg-b-color-dark)}.mg-c-skip-links__link:hover{background:hsl(var(--mg-b-color-dark-h), var(--mg-b-color-dark-s), var(--mg-b-color-dark-l), 10%)}"}},[1,"mg-skip-links",{links:[16]},void 0,{links:[{validateLinks:0}]}]);function o(){"undefined"!=typeof customElements&&["mg-skip-links"].forEach((s=>{"mg-skip-links"===s&&(customElements.get(i(s))||customElements.define(i(s),r))}))}o();const c=r,k=o;export{c as MgSkipLinks,k as defineCustomElement}