@mgdis/mg-components 3.2.0 → 4.0.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.
- package/dist/cjs/{index-bead7dbd.js → index-88560a66.js} +47 -48
- package/dist/cjs/{index-369388eb.js → index-a39c5567.js} +97 -10
- package/dist/cjs/loader.cjs.js +3 -17
- package/dist/cjs/mg-badge_21.cjs.entry.js +519 -294
- package/dist/cjs/mg-components.cjs.js +3 -7
- package/dist/cjs/mg-modal.cjs.entry.js +12 -6
- package/dist/cjs/mg-popover.cjs.entry.js +15 -10
- package/dist/cjs/{popper-0c3964e7.js → popper-71bf3058.js} +6 -2
- package/dist/collection/collection-manifest.json +1 -1
- package/dist/collection/components/atoms/mg-badge/{mg-badge.stories.js → doc/mg-badge.stories.js} +1 -1
- package/dist/collection/components/atoms/mg-badge/mg-badge.css +0 -2
- package/dist/collection/components/atoms/mg-badge/mg-badge.js +15 -3
- package/dist/collection/components/atoms/mg-button/{mg-button.stories.js → doc/mg-button.stories.js} +2 -2
- package/dist/collection/components/atoms/mg-button/mg-button.conf.js +1 -1
- package/dist/collection/components/atoms/mg-button/mg-button.css +20 -32
- package/dist/collection/components/atoms/mg-button/mg-button.js +8 -3
- package/dist/collection/components/atoms/mg-character-left/{mg-character-left.stories.js → doc/mg-character-left.stories.js} +1 -1
- package/dist/collection/components/atoms/mg-character-left/mg-character-left.js +10 -47
- package/dist/collection/components/atoms/mg-icon/{mg-icon.stories.js → doc/mg-icon.stories.js} +1 -1
- package/dist/collection/components/atoms/mg-icon/mg-icon.conf.js +97 -10
- package/dist/collection/components/atoms/mg-icon/mg-icon.css +4 -0
- package/dist/collection/components/atoms/mg-icon/mg-icon.js +22 -6
- package/dist/collection/components/atoms/mg-input-title/{mg-input-title.stories.js → doc/mg-input-title.stories.js} +0 -0
- package/dist/collection/components/atoms/mg-tag/{mg-tag.stories.js → doc/mg-tag.stories.js} +1 -1
- package/dist/collection/components/atoms/mg-tag/mg-tag.js +19 -4
- package/dist/collection/components/atoms/mg-tooltip/{mg-tooltip.stories.js → doc/mg-tooltip.stories.js} +14 -1
- package/dist/collection/components/atoms/mg-tooltip/mg-tooltip.conf.js +20 -0
- package/dist/collection/components/atoms/mg-tooltip/mg-tooltip.js +7 -2
- package/dist/collection/components/molecules/inputs/MgInput.conf.js +1 -7
- package/dist/collection/components/molecules/inputs/MgInput.js +5 -15
- package/dist/collection/components/molecules/inputs/mg-input-checkbox/{mg-input-checkbox.stories.js → doc/mg-input-checkbox.stories.js} +0 -0
- package/dist/collection/components/molecules/inputs/mg-input-checkbox/mg-input-checkbox.css +19 -13
- package/dist/collection/components/molecules/inputs/mg-input-checkbox/mg-input-checkbox.js +8 -21
- package/dist/collection/components/molecules/inputs/mg-input-date/{mg-input-date.stories.js → doc/mg-input-date.stories.js} +0 -0
- package/dist/collection/components/molecules/inputs/mg-input-date/mg-input-date.css +19 -18
- package/dist/collection/components/molecules/inputs/mg-input-date/mg-input-date.js +19 -18
- package/dist/collection/components/molecules/inputs/mg-input-numeric/{mg-input-numeric.stories.js → doc/mg-input-numeric.stories.js} +9 -2
- package/dist/collection/components/molecules/inputs/mg-input-numeric/mg-input-numeric.css +20 -19
- package/dist/collection/components/molecules/inputs/mg-input-numeric/mg-input-numeric.js +43 -19
- package/dist/collection/components/molecules/inputs/mg-input-password/{mg-input-password.stories.js → doc/mg-input-password.stories.js} +10 -1
- package/dist/collection/components/molecules/inputs/mg-input-password/mg-input-password.css +19 -18
- package/dist/collection/components/molecules/inputs/mg-input-password/mg-input-password.js +17 -22
- package/dist/collection/components/molecules/inputs/mg-input-radio/{mg-input-radio.stories.js → doc/mg-input-radio.stories.js} +0 -0
- package/dist/collection/components/molecules/inputs/mg-input-radio/mg-input-radio.css +19 -13
- package/dist/collection/components/molecules/inputs/mg-input-radio/mg-input-radio.js +8 -15
- package/dist/collection/components/molecules/inputs/mg-input-select/{mg-input-select.stories.js → doc/mg-input-select.stories.js} +10 -3
- package/dist/collection/components/molecules/inputs/mg-input-select/mg-input-select.css +20 -18
- package/dist/collection/components/molecules/inputs/mg-input-select/mg-input-select.js +24 -31
- package/dist/collection/components/molecules/inputs/mg-input-text/{mg-input-text.stories.js → doc/mg-input-text.stories.js} +11 -7
- package/dist/collection/components/molecules/inputs/mg-input-text/mg-input-text.css +51 -28
- package/dist/collection/components/molecules/inputs/mg-input-text/mg-input-text.js +42 -43
- package/dist/collection/components/molecules/inputs/mg-input-textarea/{mg-input-textarea.stories.js → doc/mg-input-textarea.stories.js} +10 -4
- package/dist/collection/components/molecules/inputs/mg-input-textarea/mg-input-textarea.css +51 -22
- package/dist/collection/components/molecules/inputs/mg-input-textarea/mg-input-textarea.js +66 -39
- package/dist/collection/components/molecules/inputs/mg-input-toggle/{mg-input-toggle.stories.js → doc/mg-input-toggle.stories.js} +0 -0
- package/dist/collection/components/molecules/inputs/mg-input-toggle/mg-input-toggle.css +18 -9
- package/dist/collection/components/molecules/inputs/mg-input-toggle/mg-input-toggle.js +10 -4
- package/dist/collection/components/molecules/mg-form/{mg-form.stories.js → doc/mg-form.stories.js} +0 -0
- package/dist/collection/components/molecules/mg-form/mg-form.css +4 -0
- package/dist/collection/components/molecules/mg-form/mg-form.js +5 -3
- package/dist/collection/components/molecules/mg-message/{mg-message.stories.js → doc/mg-message.stories.js} +1 -1
- package/dist/collection/components/molecules/mg-message/mg-message.js +15 -7
- package/dist/collection/components/molecules/mg-modal/{mg-modal.stories.js → doc/mg-modal.stories.js} +0 -0
- package/dist/collection/components/molecules/mg-modal/mg-modal.css +5 -7
- package/dist/collection/components/molecules/mg-modal/mg-modal.js +12 -5
- package/dist/collection/components/molecules/mg-pagination/{mg-pagination.stories.js → doc/mg-pagination.stories.js} +0 -0
- package/dist/collection/components/molecules/mg-pagination/mg-pagination.js +17 -18
- package/dist/collection/components/molecules/mg-panel/{mg-panel.stories.js → doc/mg-panel.stories.js} +9 -1
- package/dist/collection/components/molecules/mg-panel/mg-panel.css +13 -4
- package/dist/collection/components/molecules/mg-panel/mg-panel.js +119 -18
- package/dist/collection/components/molecules/mg-popover/{mg-popover.stories.js → doc/mg-popover.stories.js} +10 -0
- package/dist/collection/components/molecules/mg-popover/mg-popover.conf.js +20 -0
- package/dist/collection/components/molecules/mg-popover/mg-popover.js +19 -9
- package/dist/collection/components/molecules/mg-tabs/{mg-tabs.stories.js → doc/mg-tabs.stories.js} +12 -5
- package/dist/collection/components/molecules/mg-tabs/mg-tabs.conf.js +7 -0
- package/dist/collection/components/molecules/mg-tabs/mg-tabs.css +3 -0
- package/dist/collection/components/molecules/mg-tabs/mg-tabs.js +92 -27
- package/dist/collection/locales/index.js +33 -4
- package/dist/collection/stories/helpers.stories.js +33 -0
- package/dist/collection/utils/locale.utils.js +7 -4
- package/dist/collection/variables.css +9 -4
- package/dist/collection/variables.scss +9 -4
- package/dist/components/MgInput.js +6 -23
- package/dist/components/index.d.ts +23 -5
- package/dist/components/index.js +23 -0
- package/dist/components/index2.js +97 -8
- package/dist/components/locale.utils.js +7 -5
- package/dist/components/mg-badge2.js +16 -4
- package/dist/components/mg-button2.js +10 -5
- package/dist/components/mg-character-left2.js +4 -27
- package/dist/components/mg-form.js +6 -4
- package/dist/components/mg-icon2.js +120 -17
- package/dist/components/mg-input-checkbox.js +11 -27
- package/dist/components/mg-input-date.js +21 -25
- package/dist/components/mg-input-numeric.js +28 -26
- package/dist/components/mg-input-password.js +18 -28
- package/dist/components/mg-input-radio.js +10 -22
- package/dist/components/mg-input-select2.js +24 -35
- package/dist/components/mg-input-text2.js +38 -26
- package/dist/components/mg-input-textarea.js +44 -21
- package/dist/components/mg-input-toggle.js +11 -11
- package/dist/components/mg-message.js +16 -8
- package/dist/components/mg-modal.js +11 -5
- package/dist/components/mg-pagination.js +16 -22
- package/dist/components/mg-panel.js +51 -17
- package/dist/components/mg-popover.js +13 -8
- package/dist/components/mg-tabs.js +80 -22
- package/dist/components/mg-tag.js +20 -5
- package/dist/components/mg-tooltip2.js +1 -1
- package/dist/components/popper.js +6 -2
- package/dist/esm/{index-9e877561.js → index-bca81100.js} +48 -46
- package/dist/esm/{index-c346f52d.js → index-e51ae032.js} +97 -8
- package/dist/esm/loader.js +3 -17
- package/dist/esm/mg-badge_21.entry.js +516 -291
- package/dist/esm/mg-components.js +3 -7
- package/dist/esm/mg-modal.entry.js +12 -6
- package/dist/esm/mg-popover.entry.js +15 -10
- package/dist/esm/{popper-8874fd6c.js → popper-93ecb064.js} +6 -2
- package/dist/index.js +1 -1
- package/dist/mg-components/mg-components.css +1 -1
- package/dist/mg-components/mg-components.esm.js +1 -1
- package/dist/mg-components/p-462d648a.entry.js +1 -0
- package/dist/mg-components/p-4c66f794.js +1 -0
- package/dist/mg-components/p-5126ab10.entry.js +1 -0
- package/dist/mg-components/p-766c918b.entry.js +1 -0
- package/dist/mg-components/p-780bd52d.js +1 -0
- package/dist/mg-components/p-b14a3443.js +2 -0
- package/dist/mg-components/variables.css +9 -4
- package/dist/mg-components/variables.scss +9 -4
- package/dist/types/components/atoms/mg-badge/{mg-badge.stories.d.ts → doc/mg-badge.stories.d.ts} +0 -0
- package/dist/types/components/atoms/mg-badge/mg-badge.d.ts +8 -1
- package/dist/types/components/atoms/mg-button/{mg-button.stories.d.ts → doc/mg-button.stories.d.ts} +0 -0
- package/dist/types/components/atoms/mg-button/mg-button.d.ts +1 -1
- package/dist/types/components/atoms/mg-character-left/{mg-character-left.stories.d.ts → doc/mg-character-left.stories.d.ts} +0 -0
- package/dist/types/components/atoms/mg-character-left/mg-character-left.d.ts +5 -13
- package/dist/types/components/atoms/mg-icon/{mg-icon.stories.d.ts → doc/mg-icon.stories.d.ts} +0 -0
- package/dist/types/components/atoms/mg-icon/mg-icon.d.ts +3 -3
- package/dist/types/components/atoms/mg-input-title/{mg-input-title.stories.d.ts → doc/mg-input-title.stories.d.ts} +0 -0
- package/dist/types/components/atoms/mg-tag/{mg-tag.stories.d.ts → doc/mg-tag.stories.d.ts} +0 -0
- package/dist/types/components/atoms/mg-tag/mg-tag.d.ts +8 -1
- package/dist/types/components/atoms/mg-tooltip/doc/mg-tooltip.stories.d.ts +29 -0
- package/dist/types/components/atoms/mg-tooltip/mg-tooltip.conf.d.ts +8 -0
- package/dist/types/components/atoms/mg-tooltip/mg-tooltip.d.ts +2 -1
- package/dist/types/components/molecules/inputs/MgInput.conf.d.ts +0 -6
- package/dist/types/components/molecules/inputs/MgInput.d.ts +2 -4
- package/dist/types/components/molecules/inputs/mg-input-checkbox/{mg-input-checkbox.stories.d.ts → doc/mg-input-checkbox.stories.d.ts} +0 -0
- package/dist/types/components/molecules/inputs/mg-input-checkbox/mg-input-checkbox.d.ts +5 -2
- package/dist/types/components/molecules/inputs/mg-input-date/{mg-input-date.stories.d.ts → doc/mg-input-date.stories.d.ts} +0 -0
- package/dist/types/components/molecules/inputs/mg-input-date/mg-input-date.d.ts +7 -1
- package/dist/types/components/molecules/inputs/mg-input-numeric/{mg-input-numeric.stories.d.ts → doc/mg-input-numeric.stories.d.ts} +6 -0
- package/dist/types/components/molecules/inputs/mg-input-numeric/mg-input-numeric.d.ts +8 -2
- package/dist/types/components/molecules/inputs/mg-input-password/{mg-input-password.stories.d.ts → doc/mg-input-password.stories.d.ts} +8 -0
- package/dist/types/components/molecules/inputs/mg-input-password/mg-input-password.d.ts +7 -2
- package/dist/types/components/molecules/inputs/mg-input-radio/{mg-input-radio.stories.d.ts → doc/mg-input-radio.stories.d.ts} +0 -0
- package/dist/types/components/molecules/inputs/mg-input-radio/mg-input-radio.d.ts +5 -1
- package/dist/types/components/molecules/inputs/mg-input-select/{mg-input-select.stories.d.ts → doc/mg-input-select.stories.d.ts} +11 -5
- package/dist/types/components/molecules/inputs/mg-input-select/mg-input-select.d.ts +7 -2
- package/dist/types/components/molecules/inputs/mg-input-text/{mg-input-text.stories.d.ts → doc/mg-input-text.stories.d.ts} +8 -0
- package/dist/types/components/molecules/inputs/mg-input-text/mg-input-text.d.ts +7 -7
- package/dist/types/components/molecules/inputs/mg-input-textarea/doc/mg-input-textarea.stories.d.ts +19 -0
- package/dist/types/components/molecules/inputs/mg-input-textarea/mg-input-textarea.d.ts +15 -7
- package/dist/types/components/molecules/inputs/mg-input-toggle/{mg-input-toggle.stories.d.ts → doc/mg-input-toggle.stories.d.ts} +0 -0
- package/dist/types/components/molecules/inputs/mg-input-toggle/mg-input-toggle.d.ts +2 -0
- package/dist/types/components/molecules/mg-form/{mg-form.stories.d.ts → doc/mg-form.stories.d.ts} +0 -0
- package/dist/types/components/molecules/mg-form/mg-form.d.ts +1 -0
- package/dist/types/components/molecules/mg-message/{mg-message.stories.d.ts → doc/mg-message.stories.d.ts} +0 -0
- package/dist/types/components/molecules/mg-message/mg-message.d.ts +2 -0
- package/dist/types/components/molecules/mg-modal/{mg-modal.stories.d.ts → doc/mg-modal.stories.d.ts} +0 -0
- package/dist/types/components/molecules/mg-modal/mg-modal.d.ts +2 -0
- package/dist/types/components/molecules/mg-pagination/{mg-pagination.stories.d.ts → doc/mg-pagination.stories.d.ts} +0 -0
- package/dist/types/components/molecules/mg-pagination/mg-pagination.d.ts +8 -0
- package/dist/types/components/molecules/{inputs/mg-input-textarea/mg-input-textarea.stories.d.ts → mg-panel/doc/mg-panel.stories.d.ts} +1 -1
- package/dist/types/components/molecules/mg-panel/mg-panel.d.ts +29 -0
- package/dist/types/components/molecules/mg-popover/doc/mg-popover.stories.d.ts +25 -0
- package/dist/types/components/molecules/mg-popover/mg-popover.conf.d.ts +8 -0
- package/dist/types/components/molecules/mg-popover/mg-popover.d.ts +9 -1
- package/dist/types/components/molecules/mg-tabs/{mg-tabs.stories.d.ts → doc/mg-tabs.stories.d.ts} +5 -0
- package/dist/types/components/molecules/mg-tabs/mg-tabs.conf.d.ts +7 -1
- package/dist/types/components/molecules/mg-tabs/mg-tabs.d.ts +49 -0
- package/dist/types/components.d.ts +181 -151
- package/dist/types/locales/index.d.ts +109 -46
- package/dist/types/stories/{buttons.stories.d.ts → helpers.stories.d.ts} +1 -1
- package/dist/types/utils/locale.utils.d.ts +7 -3
- package/loader/index.js +1 -1
- package/package.json +14 -14
- package/readme.md +6 -35
- package/dist/cjs/css-shim-629916b0.js +0 -6
- package/dist/cjs/shadow-css-546083ef.js +0 -390
- package/dist/collection/stories/buttons.stories.js +0 -43
- package/dist/collection/stories/messages.stories.js +0 -44
- package/dist/collection/stories/tags.stories.js +0 -13
- package/dist/esm/css-shim-0993aa3b.js +0 -4
- package/dist/esm/shadow-css-dfa0587f.js +0 -388
- package/dist/esm-es5/css-shim-0993aa3b.js +0 -1
- package/dist/esm-es5/index-9e877561.js +0 -1
- package/dist/esm-es5/index-c346f52d.js +0 -1
- package/dist/esm-es5/index.js +0 -0
- package/dist/esm-es5/loader.js +0 -1
- package/dist/esm-es5/mg-badge_21.entry.js +0 -2
- package/dist/esm-es5/mg-components.js +0 -1
- package/dist/esm-es5/mg-modal.entry.js +0 -1
- package/dist/esm-es5/mg-popover.entry.js +0 -1
- package/dist/esm-es5/popper-8874fd6c.js +0 -1
- package/dist/esm-es5/shadow-css-dfa0587f.js +0 -12
- package/dist/mg-components/mg-components.js +0 -132
- package/dist/mg-components/p-3633e9e1.system.entry.js +0 -2
- package/dist/mg-components/p-3c14153d.js +0 -1
- package/dist/mg-components/p-50ea2036.system.js +0 -1
- package/dist/mg-components/p-55a22b35.system.js +0 -1
- package/dist/mg-components/p-5e796581.js +0 -12
- package/dist/mg-components/p-656b5efb.system.js +0 -1
- package/dist/mg-components/p-68d6f104.js +0 -1
- package/dist/mg-components/p-6d49ed95.js +0 -1
- package/dist/mg-components/p-70177194.entry.js +0 -1
- package/dist/mg-components/p-8b2d8a2a.system.js +0 -13
- package/dist/mg-components/p-8cb61c3f.system.js +0 -1
- package/dist/mg-components/p-ace173b1.js +0 -1
- package/dist/mg-components/p-c46fbd54.entry.js +0 -1
- package/dist/mg-components/p-c90cc4bf.system.js +0 -1
- package/dist/mg-components/p-cd2a4acc.system.entry.js +0 -1
- package/dist/mg-components/p-de1164fa.system.entry.js +0 -1
- package/dist/mg-components/p-dfe25da3.entry.js +0 -1
- package/dist/mg-components/p-e4a502b5.system.js +0 -1
- package/dist/types/components/atoms/mg-tooltip/mg-tooltip.stories.d.ts +0 -11
- package/dist/types/components/molecules/mg-panel/mg-panel.stories.d.ts +0 -6
- package/dist/types/components/molecules/mg-popover/mg-popover.stories.d.ts +0 -12
- package/dist/types/stories/messages.stories.d.ts +0 -13
- package/dist/types/stories/tags.stories.d.ts +0 -5
|
@@ -1,4 +1,33 @@
|
|
|
1
|
-
|
|
2
|
-
import fr from './fr
|
|
3
|
-
|
|
4
|
-
|
|
1
|
+
import en from './en/messages.json';
|
|
2
|
+
import fr from './fr/messages.json';
|
|
3
|
+
const defaultLocale = 'en';
|
|
4
|
+
const messages = { en, fr };
|
|
5
|
+
/**
|
|
6
|
+
* Get locale
|
|
7
|
+
*
|
|
8
|
+
* @param {HTMLElement} element element that needs to know the locale to use
|
|
9
|
+
* @returns {string} locale
|
|
10
|
+
*/
|
|
11
|
+
const getLocale = (element) => {
|
|
12
|
+
var _a;
|
|
13
|
+
return ((_a = element.closest('[lang]')) === null || _a === void 0 ? void 0 : _a.lang) || navigator.language || defaultLocale;
|
|
14
|
+
};
|
|
15
|
+
/**
|
|
16
|
+
* Get Intl object
|
|
17
|
+
* We load the defined locale but for now we only support the first subtag for messages
|
|
18
|
+
*
|
|
19
|
+
* @param {HTMLElement} element element we need to get the language
|
|
20
|
+
* @returns {{ locale: string; messages: unknown }} messages object
|
|
21
|
+
*/
|
|
22
|
+
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
23
|
+
export const initLocales = (element) => {
|
|
24
|
+
// Get local
|
|
25
|
+
const locale = getLocale(element);
|
|
26
|
+
// Only keep first subtag
|
|
27
|
+
const localeSubtag = locale.split('-').shift();
|
|
28
|
+
// Return
|
|
29
|
+
return {
|
|
30
|
+
locale,
|
|
31
|
+
messages: messages[localeSubtag] || messages[defaultLocale],
|
|
32
|
+
};
|
|
33
|
+
};
|
|
@@ -0,0 +1,33 @@
|
|
|
1
|
+
import { h } from '@stencil/core';
|
|
2
|
+
export default {
|
|
3
|
+
title: 'Style/Helpers',
|
|
4
|
+
argTypes: {
|
|
5
|
+
align: {
|
|
6
|
+
options: ['left', 'right'],
|
|
7
|
+
control: { type: 'select' },
|
|
8
|
+
},
|
|
9
|
+
},
|
|
10
|
+
};
|
|
11
|
+
const Template = args => (h("div", null,
|
|
12
|
+
h("h1", null, "Helpers"),
|
|
13
|
+
h("h2", null, ".mg-group-elements"),
|
|
14
|
+
h("p", null,
|
|
15
|
+
"Buttons can be grouped in an HTMLelement using the ",
|
|
16
|
+
h("code", null, ".mg-group-elements"),
|
|
17
|
+
" class, it will ensure a 10px margin space between them, even verticaly. Above exemples are using it."),
|
|
18
|
+
h("p", null,
|
|
19
|
+
"By adding the ",
|
|
20
|
+
h("code", null, ".mg-group-elements--align-right"),
|
|
21
|
+
" class you 'll set a right alignment of the button, even when line breaks."),
|
|
22
|
+
h("h3", null, "Demo"),
|
|
23
|
+
h("div", { class: `mg-group-elements${args.align === 'right' ? ' mg-group-elements--align-right' : ''}` },
|
|
24
|
+
h("mg-button", null, "First Button"),
|
|
25
|
+
h("mg-button", { label: "" },
|
|
26
|
+
h("mg-icon", { icon: "info-circle" }),
|
|
27
|
+
"Second Button"),
|
|
28
|
+
h("mg-button", { "is-icon": true, label: "Third button" },
|
|
29
|
+
h("mg-icon", { icon: "info-circle" })))));
|
|
30
|
+
export const Helpers = Template.bind({});
|
|
31
|
+
Helpers.args = {
|
|
32
|
+
align: 'left',
|
|
33
|
+
};
|
|
@@ -1,20 +1,22 @@
|
|
|
1
|
-
import { locale, currency } from '../locales';
|
|
2
1
|
/**
|
|
3
2
|
* Format number to the locale currency
|
|
4
3
|
*
|
|
5
4
|
* @param {number} number number to format
|
|
5
|
+
* @param {string} locale locale to apply
|
|
6
|
+
* @param {string} currency currency to apply
|
|
6
7
|
* @returns {string} formatted currency
|
|
7
8
|
*/
|
|
8
|
-
export function localeCurrency(number) {
|
|
9
|
+
export function localeCurrency(number, locale, currency) {
|
|
9
10
|
return new Intl.NumberFormat(locale, { style: 'currency', currency }).format(number);
|
|
10
11
|
}
|
|
11
12
|
/**
|
|
12
13
|
* Format number to locale
|
|
13
14
|
*
|
|
14
15
|
* @param {number} number number to format
|
|
16
|
+
* @param {string} locale locale to apply
|
|
15
17
|
* @returns {string} formatted number
|
|
16
18
|
*/
|
|
17
|
-
export function localeNumber(number) {
|
|
19
|
+
export function localeNumber(number, locale) {
|
|
18
20
|
return new Intl.NumberFormat(locale).format(number);
|
|
19
21
|
}
|
|
20
22
|
/**
|
|
@@ -25,9 +27,10 @@ export const dateRegExp = /^\d{4}-(0[1-9]|1[0-2])-(0[1-9]|[12]\d|3[01])$/;
|
|
|
25
27
|
* Locale date format
|
|
26
28
|
*
|
|
27
29
|
* @param {string} date date to format
|
|
30
|
+
* @param {string} locale locale to apply
|
|
28
31
|
* @returns {string} formatted date
|
|
29
32
|
*/
|
|
30
|
-
export function localeDate(date) {
|
|
33
|
+
export function localeDate(date, locale) {
|
|
31
34
|
if (typeof date !== 'string' || date === '' || !dateRegExp.test(date)) {
|
|
32
35
|
return '';
|
|
33
36
|
}
|
|
@@ -53,11 +53,11 @@
|
|
|
53
53
|
--color-info: var(--color-info-h), var(--color-info-s), var(--color-info-l);
|
|
54
54
|
|
|
55
55
|
/* Danger */
|
|
56
|
-
/* #
|
|
57
|
-
/* rgb(
|
|
56
|
+
/* #db1f29; */
|
|
57
|
+
/* rgb(219, 31, 41); */
|
|
58
58
|
--color-danger-h: 357;
|
|
59
|
-
--color-danger-s:
|
|
60
|
-
--color-danger-l:
|
|
59
|
+
--color-danger-s: 75%;
|
|
60
|
+
--color-danger-l: 49%;
|
|
61
61
|
--color-danger: var(--color-danger-h), var(--color-danger-s), var(--color-danger-l);
|
|
62
62
|
|
|
63
63
|
/* Dark */
|
|
@@ -99,6 +99,7 @@
|
|
|
99
99
|
/*
|
|
100
100
|
<mg-icon>
|
|
101
101
|
*/
|
|
102
|
+
--mg-icon-small-size: 1.2rem;
|
|
102
103
|
--mg-icon-regular-size: 1.6rem;
|
|
103
104
|
--mg-icon-large-size: 2.4rem;
|
|
104
105
|
--mg-icon-extra-large-size: 3.6rem;
|
|
@@ -111,6 +112,7 @@
|
|
|
111
112
|
--mg-button-icon-border-radius: var(--default-size);
|
|
112
113
|
--mg-button-disabled-opacity: 0.6;
|
|
113
114
|
--mg-button-gradient: 1; /* Can only be 1 or 0 to enable disable gradient */
|
|
115
|
+
--mg-button-border-variation: 1; /* Can only be 1 or 0 to enable disable border variation */
|
|
114
116
|
|
|
115
117
|
/* Primary */
|
|
116
118
|
--mg-button-primary-color-h: var(--color-dark-h);
|
|
@@ -187,6 +189,9 @@
|
|
|
187
189
|
--mg-inputs-color: #b5c2c9;
|
|
188
190
|
--mg-inputs-spacer: 1rem;
|
|
189
191
|
|
|
192
|
+
/* Error message background */
|
|
193
|
+
--mg-inputs-error-bg-color: var(--color-danger-h), calc(var(--color-danger-s) + 5%), calc(var(--color-danger-l) + 49%);
|
|
194
|
+
|
|
190
195
|
/* Input focus shadow */
|
|
191
196
|
/* #b5c2c9 */
|
|
192
197
|
/* rgb(0, 221, 255); */
|
|
@@ -53,11 +53,11 @@
|
|
|
53
53
|
--color-info: var(--color-info-h), var(--color-info-s), var(--color-info-l);
|
|
54
54
|
|
|
55
55
|
/* Danger */
|
|
56
|
-
/* #
|
|
57
|
-
/* rgb(
|
|
56
|
+
/* #db1f29; */
|
|
57
|
+
/* rgb(219, 31, 41); */
|
|
58
58
|
--color-danger-h: 357;
|
|
59
|
-
--color-danger-s:
|
|
60
|
-
--color-danger-l:
|
|
59
|
+
--color-danger-s: 75%;
|
|
60
|
+
--color-danger-l: 49%;
|
|
61
61
|
--color-danger: var(--color-danger-h), var(--color-danger-s), var(--color-danger-l);
|
|
62
62
|
|
|
63
63
|
/* Dark */
|
|
@@ -99,6 +99,7 @@
|
|
|
99
99
|
/*
|
|
100
100
|
<mg-icon>
|
|
101
101
|
*/
|
|
102
|
+
--mg-icon-small-size: 1.2rem;
|
|
102
103
|
--mg-icon-regular-size: 1.6rem;
|
|
103
104
|
--mg-icon-large-size: 2.4rem;
|
|
104
105
|
--mg-icon-extra-large-size: 3.6rem;
|
|
@@ -111,6 +112,7 @@
|
|
|
111
112
|
--mg-button-icon-border-radius: var(--default-size);
|
|
112
113
|
--mg-button-disabled-opacity: 0.6;
|
|
113
114
|
--mg-button-gradient: 1; /* Can only be 1 or 0 to enable disable gradient */
|
|
115
|
+
--mg-button-border-variation: 1; /* Can only be 1 or 0 to enable disable border variation */
|
|
114
116
|
|
|
115
117
|
/* Primary */
|
|
116
118
|
--mg-button-primary-color-h: var(--color-dark-h);
|
|
@@ -187,6 +189,9 @@
|
|
|
187
189
|
--mg-inputs-color: #b5c2c9;
|
|
188
190
|
--mg-inputs-spacer: 1rem;
|
|
189
191
|
|
|
192
|
+
/* Error message background */
|
|
193
|
+
--mg-inputs-error-bg-color: var(--color-danger-h), calc(var(--color-danger-s) + 5%), calc(var(--color-danger-l) + 49%);
|
|
194
|
+
|
|
190
195
|
/* Input focus shadow */
|
|
191
196
|
/* #b5c2c9 */
|
|
192
197
|
/* rgb(0, 221, 255); */
|
|
@@ -1,13 +1,5 @@
|
|
|
1
1
|
import { h } from '@stencil/core/internal/client';
|
|
2
2
|
|
|
3
|
-
/**
|
|
4
|
-
* Possible input classes
|
|
5
|
-
*/
|
|
6
|
-
var InputClass;
|
|
7
|
-
(function (InputClass) {
|
|
8
|
-
InputClass["ERROR"] = "is-not-valid";
|
|
9
|
-
})(InputClass || (InputClass = {}));
|
|
10
|
-
|
|
11
3
|
/**
|
|
12
4
|
* Apply in all input child node the aria-describedby attribute
|
|
13
5
|
*
|
|
@@ -36,11 +28,8 @@ const manageClasses = (props) => {
|
|
|
36
28
|
props.classList.add('mg-input--label-on-top');
|
|
37
29
|
if (props.readonly)
|
|
38
30
|
props.classList.add('mg-input--readonly');
|
|
39
|
-
if (props.
|
|
40
|
-
props.classList.add(`mg-input--width-${props.
|
|
41
|
-
if (props.readonly || props.disabled) {
|
|
42
|
-
props.classList.delete(InputClass.ERROR);
|
|
43
|
-
}
|
|
31
|
+
if (props.mgWidth !== undefined)
|
|
32
|
+
props.classList.add(`mg-input--width-${props.mgWidth}`);
|
|
44
33
|
};
|
|
45
34
|
/**
|
|
46
35
|
* Get tagname
|
|
@@ -74,12 +63,7 @@ const MgInput = (props, children, utils) => {
|
|
|
74
63
|
/**
|
|
75
64
|
* a11y IDs
|
|
76
65
|
*/
|
|
77
|
-
const ariaDescribedbyIDs = new Set();
|
|
78
|
-
// Character Left
|
|
79
|
-
const characterLeftId = `${props.identifier}-character-left`;
|
|
80
|
-
if (props.classList.has('is-focused') && props.displayCharacterLeft) {
|
|
81
|
-
ariaDescribedbyIDs.add(characterLeftId);
|
|
82
|
-
}
|
|
66
|
+
const ariaDescribedbyIDs = new Set(props.ariaDescribedbyIDs);
|
|
83
67
|
// Help text
|
|
84
68
|
const helpTextId = `${props.identifier}-help-text`;
|
|
85
69
|
if (typeof props.helpText === 'string' && props.helpText !== '') {
|
|
@@ -135,12 +119,11 @@ const MgInput = (props, children, utils) => {
|
|
|
135
119
|
props.readonly ? (h("div", { class: "mg-input__input-container" },
|
|
136
120
|
h("strong", null, props.readonlyValue || props.value),
|
|
137
121
|
children)) : (h("div", { class: "mg-input__input-container" },
|
|
138
|
-
h("div", { class:
|
|
122
|
+
h("div", { class: { 'mg-input__input': true, 'mg-input__input--has-error': props.errorMessage !== undefined } },
|
|
139
123
|
children,
|
|
140
124
|
!props.labelOnTop && props.tooltip && getTooltip()),
|
|
141
|
-
props.displayCharacterLeft && props.maxlength && props.classList.has('is-focused') && (h("mg-character-left", { identifier: characterLeftId, characters: props.value, maxlength: props.maxlength, template: props.characterLeftTemplate })),
|
|
142
125
|
props.helpText && h("div", { id: helpTextId, class: "mg-input__help-text", innerHTML: props.helpText }),
|
|
143
|
-
props.errorMessage && h("div", { id: helpTextErrorId, class: "mg-input__error", innerHTML: props.errorMessage, "aria-live": "assertive" })))));
|
|
126
|
+
props.errorMessage && !props.readonly && !props.disabled && (h("div", { id: helpTextErrorId, class: "mg-input__error", innerHTML: props.errorMessage, "aria-live": "assertive" }))))));
|
|
144
127
|
};
|
|
145
128
|
|
|
146
|
-
export {
|
|
129
|
+
export { MgInput as M };
|
|
@@ -1,6 +1,27 @@
|
|
|
1
1
|
/* MgComponents custom elements */
|
|
2
|
-
|
|
3
|
-
|
|
2
|
+
export { MgBadge as MgBadge } from '../types/components/mg-badge/mg-badge';
|
|
3
|
+
export { MgButton as MgButton } from '../types/components/mg-button/mg-button';
|
|
4
|
+
export { MgCharacterLeft as MgCharacterLeft } from '../types/components/mg-character-left/mg-character-left';
|
|
5
|
+
export { MgForm as MgForm } from '../types/components/mg-form/mg-form';
|
|
6
|
+
export { MgIcon as MgIcon } from '../types/components/mg-icon/mg-icon';
|
|
7
|
+
export { MgInputCheckbox as MgInputCheckbox } from '../types/components/mg-input-checkbox/mg-input-checkbox';
|
|
8
|
+
export { MgInputDate as MgInputDate } from '../types/components/mg-input-date/mg-input-date';
|
|
9
|
+
export { MgInputNumeric as MgInputNumeric } from '../types/components/mg-input-numeric/mg-input-numeric';
|
|
10
|
+
export { MgInputPassword as MgInputPassword } from '../types/components/mg-input-password/mg-input-password';
|
|
11
|
+
export { MgInputRadio as MgInputRadio } from '../types/components/mg-input-radio/mg-input-radio';
|
|
12
|
+
export { MgInputSelect as MgInputSelect } from '../types/components/mg-input-select/mg-input-select';
|
|
13
|
+
export { MgInputText as MgInputText } from '../types/components/mg-input-text/mg-input-text';
|
|
14
|
+
export { MgInputTextarea as MgInputTextarea } from '../types/components/mg-input-textarea/mg-input-textarea';
|
|
15
|
+
export { MgInputTitle as MgInputTitle } from '../types/components/mg-input-title/mg-input-title';
|
|
16
|
+
export { MgInputToggle as MgInputToggle } from '../types/components/mg-input-toggle/mg-input-toggle';
|
|
17
|
+
export { MgMessage as MgMessage } from '../types/components/mg-message/mg-message';
|
|
18
|
+
export { MgModal as MgModal } from '../types/components/mg-modal/mg-modal';
|
|
19
|
+
export { MgPagination as MgPagination } from '../types/components/mg-pagination/mg-pagination';
|
|
20
|
+
export { MgPanel as MgPanel } from '../types/components/mg-panel/mg-panel';
|
|
21
|
+
export { MgPopover as MgPopover } from '../types/components/mg-popover/mg-popover';
|
|
22
|
+
export { MgTabs as MgTabs } from '../types/components/mg-tabs/mg-tabs';
|
|
23
|
+
export { MgTag as MgTag } from '../types/components/mg-tag/mg-tag';
|
|
24
|
+
export { MgTooltip as MgTooltip } from '../types/components/mg-tooltip/mg-tooltip';
|
|
4
25
|
|
|
5
26
|
/**
|
|
6
27
|
* Used to manually set the base path where assets can be found.
|
|
@@ -20,7 +41,4 @@ export interface SetPlatformOptions {
|
|
|
20
41
|
rel?: (el: EventTarget, eventName: string, listener: EventListenerOrEventListenerObject, options: boolean | AddEventListenerOptions) => void;
|
|
21
42
|
}
|
|
22
43
|
export declare const setPlatformOptions: (opts: SetPlatformOptions) => void;
|
|
23
|
-
|
|
24
|
-
export type { Components, JSX };
|
|
25
|
-
|
|
26
44
|
export * from '../types';
|
package/dist/components/index.js
CHANGED
|
@@ -1 +1,24 @@
|
|
|
1
1
|
export { setAssetPath, setPlatformOptions } from '@stencil/core/internal/client';
|
|
2
|
+
export { MgBadge, defineCustomElement as defineCustomElementMgBadge } from './mg-badge.js';
|
|
3
|
+
export { MgButton, defineCustomElement as defineCustomElementMgButton } from './mg-button.js';
|
|
4
|
+
export { MgCharacterLeft, defineCustomElement as defineCustomElementMgCharacterLeft } from './mg-character-left.js';
|
|
5
|
+
export { MgForm, defineCustomElement as defineCustomElementMgForm } from './mg-form.js';
|
|
6
|
+
export { MgIcon, defineCustomElement as defineCustomElementMgIcon } from './mg-icon.js';
|
|
7
|
+
export { MgInputCheckbox, defineCustomElement as defineCustomElementMgInputCheckbox } from './mg-input-checkbox.js';
|
|
8
|
+
export { MgInputDate, defineCustomElement as defineCustomElementMgInputDate } from './mg-input-date.js';
|
|
9
|
+
export { MgInputNumeric, defineCustomElement as defineCustomElementMgInputNumeric } from './mg-input-numeric.js';
|
|
10
|
+
export { MgInputPassword, defineCustomElement as defineCustomElementMgInputPassword } from './mg-input-password.js';
|
|
11
|
+
export { MgInputRadio, defineCustomElement as defineCustomElementMgInputRadio } from './mg-input-radio.js';
|
|
12
|
+
export { MgInputSelect, defineCustomElement as defineCustomElementMgInputSelect } from './mg-input-select.js';
|
|
13
|
+
export { MgInputText, defineCustomElement as defineCustomElementMgInputText } from './mg-input-text.js';
|
|
14
|
+
export { MgInputTextarea, defineCustomElement as defineCustomElementMgInputTextarea } from './mg-input-textarea.js';
|
|
15
|
+
export { MgInputTitle, defineCustomElement as defineCustomElementMgInputTitle } from './mg-input-title.js';
|
|
16
|
+
export { MgInputToggle, defineCustomElement as defineCustomElementMgInputToggle } from './mg-input-toggle.js';
|
|
17
|
+
export { MgMessage, defineCustomElement as defineCustomElementMgMessage } from './mg-message.js';
|
|
18
|
+
export { MgModal, defineCustomElement as defineCustomElementMgModal } from './mg-modal.js';
|
|
19
|
+
export { MgPagination, defineCustomElement as defineCustomElementMgPagination } from './mg-pagination.js';
|
|
20
|
+
export { MgPanel, defineCustomElement as defineCustomElementMgPanel } from './mg-panel.js';
|
|
21
|
+
export { MgPopover, defineCustomElement as defineCustomElementMgPopover } from './mg-popover.js';
|
|
22
|
+
export { MgTabs, defineCustomElement as defineCustomElementMgTabs } from './mg-tabs.js';
|
|
23
|
+
export { MgTag, defineCustomElement as defineCustomElementMgTag } from './mg-tag.js';
|
|
24
|
+
export { MgTooltip, defineCustomElement as defineCustomElementMgTooltip } from './mg-tooltip.js';
|
|
@@ -1,10 +1,70 @@
|
|
|
1
|
+
const errors$1 = {
|
|
2
|
+
required: "This field is required.",
|
|
3
|
+
date: {
|
|
4
|
+
badInput: "The date format must be <span aria-hidden=\"true\">mm/dd/yyyy</span><span class=\"sr-only\">m m / d d / y y y y</span> and the date must be greater than {min}",
|
|
5
|
+
min: "The date cannot be earlier than {min}",
|
|
6
|
+
max: "The date cannot be later than {max}",
|
|
7
|
+
minMax: "The date must be between {min} and {max}"
|
|
8
|
+
},
|
|
9
|
+
numeric: {
|
|
10
|
+
min: "The value cannot be less than {min}",
|
|
11
|
+
max: "The value cannot be greater than {max}",
|
|
12
|
+
minMax: "The value must be between {min} et {max}"
|
|
13
|
+
}
|
|
14
|
+
};
|
|
15
|
+
const nbCharLeft$1 = "{counter} characters left.";
|
|
16
|
+
const input$1 = {
|
|
17
|
+
select: {
|
|
18
|
+
placeholder: "Select a value"
|
|
19
|
+
}
|
|
20
|
+
};
|
|
21
|
+
const form$1 = {
|
|
22
|
+
required: "Fields with a <strong class=\"is-asterisk\">*</strong> are required",
|
|
23
|
+
allRequired: "All fields are required"
|
|
24
|
+
};
|
|
25
|
+
const message$1 = {
|
|
26
|
+
closeButton: "Close message"
|
|
27
|
+
};
|
|
28
|
+
const modal$1 = {
|
|
29
|
+
closeButton: "Close modal"
|
|
30
|
+
};
|
|
31
|
+
const pagination$1 = {
|
|
32
|
+
label: "Pagination",
|
|
33
|
+
page: "page",
|
|
34
|
+
pages: "pages",
|
|
35
|
+
nextPage: "Next page",
|
|
36
|
+
previousPage: "Previous page",
|
|
37
|
+
selectPage: "Select the page to display."
|
|
38
|
+
};
|
|
39
|
+
const panel$1 = {
|
|
40
|
+
editLabel: "Edit section title."
|
|
41
|
+
};
|
|
42
|
+
const general$1 = {
|
|
43
|
+
confirm: "Confirm",
|
|
44
|
+
cancel: "Cancel",
|
|
45
|
+
close: "Close",
|
|
46
|
+
next: "next",
|
|
47
|
+
previous: "previous"
|
|
48
|
+
};
|
|
49
|
+
const en = {
|
|
50
|
+
errors: errors$1,
|
|
51
|
+
nbCharLeft: nbCharLeft$1,
|
|
52
|
+
input: input$1,
|
|
53
|
+
form: form$1,
|
|
54
|
+
message: message$1,
|
|
55
|
+
modal: modal$1,
|
|
56
|
+
pagination: pagination$1,
|
|
57
|
+
panel: panel$1,
|
|
58
|
+
general: general$1
|
|
59
|
+
};
|
|
60
|
+
|
|
1
61
|
const errors = {
|
|
2
62
|
required: "Ce champ est obligatoire.",
|
|
3
63
|
date: {
|
|
4
64
|
badInput: "Le format de la date doit être du type <span aria-hidden=\"true\">jj/mm/aaaa</span><span class=\"sr-only\">j j / m m / a a a a</span> et la date supérieure au {min}",
|
|
5
65
|
min: "La date ne peut pas être antérieure au {min}",
|
|
6
66
|
max: "La date ne peut pas être postérieure au {max}",
|
|
7
|
-
minMax: "La date doit être comprise entre {min} et {max}"
|
|
67
|
+
minMax: "La date doit être comprise entre le {min} et le {max}"
|
|
8
68
|
},
|
|
9
69
|
numeric: {
|
|
10
70
|
min: "La valeur ne peut pas être inférieure à {min}",
|
|
@@ -26,9 +86,10 @@ const message = {
|
|
|
26
86
|
closeButton: "Fermer le message"
|
|
27
87
|
};
|
|
28
88
|
const modal = {
|
|
29
|
-
closeButton: "Fermer la
|
|
89
|
+
closeButton: "Fermer la modale"
|
|
30
90
|
};
|
|
31
91
|
const pagination = {
|
|
92
|
+
label: "Pagination",
|
|
32
93
|
page: "page",
|
|
33
94
|
pages: "pages",
|
|
34
95
|
nextPage: "Page suivante",
|
|
@@ -36,10 +97,10 @@ const pagination = {
|
|
|
36
97
|
selectPage: "Sélectionner la page à afficher."
|
|
37
98
|
};
|
|
38
99
|
const panel = {
|
|
39
|
-
editLabel: "
|
|
100
|
+
editLabel: "Modifier le titre de la section."
|
|
40
101
|
};
|
|
41
102
|
const general = {
|
|
42
|
-
|
|
103
|
+
confirm: "Valider",
|
|
43
104
|
cancel: "Annuler",
|
|
44
105
|
close: "Fermer",
|
|
45
106
|
next: "suivant",
|
|
@@ -57,8 +118,36 @@ const fr = {
|
|
|
57
118
|
general: general
|
|
58
119
|
};
|
|
59
120
|
|
|
60
|
-
const
|
|
61
|
-
const messages = fr;
|
|
62
|
-
|
|
121
|
+
const defaultLocale = 'en';
|
|
122
|
+
const messages = { en, fr };
|
|
123
|
+
/**
|
|
124
|
+
* Get locale
|
|
125
|
+
*
|
|
126
|
+
* @param {HTMLElement} element element that needs to know the locale to use
|
|
127
|
+
* @returns {string} locale
|
|
128
|
+
*/
|
|
129
|
+
const getLocale = (element) => {
|
|
130
|
+
var _a;
|
|
131
|
+
return ((_a = element.closest('[lang]')) === null || _a === void 0 ? void 0 : _a.lang) || navigator.language || defaultLocale;
|
|
132
|
+
};
|
|
133
|
+
/**
|
|
134
|
+
* Get Intl object
|
|
135
|
+
* We load the defined locale but for now we only support the first subtag for messages
|
|
136
|
+
*
|
|
137
|
+
* @param {HTMLElement} element element we need to get the language
|
|
138
|
+
* @returns {{ locale: string; messages: unknown }} messages object
|
|
139
|
+
*/
|
|
140
|
+
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
141
|
+
const initLocales = (element) => {
|
|
142
|
+
// Get local
|
|
143
|
+
const locale = getLocale(element);
|
|
144
|
+
// Only keep first subtag
|
|
145
|
+
const localeSubtag = locale.split('-').shift();
|
|
146
|
+
// Return
|
|
147
|
+
return {
|
|
148
|
+
locale,
|
|
149
|
+
messages: messages[localeSubtag] || messages[defaultLocale],
|
|
150
|
+
};
|
|
151
|
+
};
|
|
63
152
|
|
|
64
|
-
export {
|
|
153
|
+
export { initLocales as i };
|
|
@@ -1,21 +1,22 @@
|
|
|
1
|
-
import { l as locale, c as currency } from './index2.js';
|
|
2
|
-
|
|
3
1
|
/**
|
|
4
2
|
* Format number to the locale currency
|
|
5
3
|
*
|
|
6
4
|
* @param {number} number number to format
|
|
5
|
+
* @param {string} locale locale to apply
|
|
6
|
+
* @param {string} currency currency to apply
|
|
7
7
|
* @returns {string} formatted currency
|
|
8
8
|
*/
|
|
9
|
-
function localeCurrency(number) {
|
|
9
|
+
function localeCurrency(number, locale, currency) {
|
|
10
10
|
return new Intl.NumberFormat(locale, { style: 'currency', currency }).format(number);
|
|
11
11
|
}
|
|
12
12
|
/**
|
|
13
13
|
* Format number to locale
|
|
14
14
|
*
|
|
15
15
|
* @param {number} number number to format
|
|
16
|
+
* @param {string} locale locale to apply
|
|
16
17
|
* @returns {string} formatted number
|
|
17
18
|
*/
|
|
18
|
-
function localeNumber(number) {
|
|
19
|
+
function localeNumber(number, locale) {
|
|
19
20
|
return new Intl.NumberFormat(locale).format(number);
|
|
20
21
|
}
|
|
21
22
|
/**
|
|
@@ -26,9 +27,10 @@ const dateRegExp = /^\d{4}-(0[1-9]|1[0-2])-(0[1-9]|[12]\d|3[01])$/;
|
|
|
26
27
|
* Locale date format
|
|
27
28
|
*
|
|
28
29
|
* @param {string} date date to format
|
|
30
|
+
* @param {string} locale locale to apply
|
|
29
31
|
* @returns {string} formatted date
|
|
30
32
|
*/
|
|
31
|
-
function localeDate(date) {
|
|
33
|
+
function localeDate(date, locale) {
|
|
32
34
|
if (typeof date !== 'string' || date === '' || !dateRegExp.test(date)) {
|
|
33
35
|
return '';
|
|
34
36
|
}
|
|
@@ -6,13 +6,18 @@ import { C as ClassList } from './components.utils.js';
|
|
|
6
6
|
*/
|
|
7
7
|
const variants = ['info', 'primary', 'secondary', 'success', 'warning', 'danger'];
|
|
8
8
|
|
|
9
|
-
const mgBadgeCss = ".sr-only{border:0 !important;clip:rect(1px, 1px, 1px, 1px) !important;-webkit-clip-path:inset(50%) !important;clip-path:inset(50%) !important;height:1px !important;margin:-1px !important;overflow:hidden !important;padding:0 !important;position:absolute !important;width:1px !important;white-space:nowrap !important}*:focus:not(:focus-visible){outline:none}.mg-badge{padding:0 0.4rem;height:var(--mg-badge-size);min-width:var(--mg-badge-size)
|
|
9
|
+
const mgBadgeCss = ".sr-only{border:0 !important;clip:rect(1px, 1px, 1px, 1px) !important;-webkit-clip-path:inset(50%) !important;clip-path:inset(50%) !important;height:1px !important;margin:-1px !important;overflow:hidden !important;padding:0 !important;position:absolute !important;width:1px !important;white-space:nowrap !important}*:focus:not(:focus-visible){outline:none}.mg-badge{padding:0 0.4rem;height:var(--mg-badge-size);min-width:var(--mg-badge-size);box-sizing:border-box;border:0.1rem solid;border-radius:calc(var(--mg-badge-size) / 2);font-size:var(--mg-badge-font-size);font-weight:600;text-align:center;line-height:var(--mg-badge-size)}.mg-badge.mg-badge--primary{background-color:hsl(var(--color-dark));border-color:hsl(var(--color-dark));color:hsl(var(--color-light))}.mg-badge.mg-badge--primary.mg-badge--outline{background-color:transparent;color:hsl(var(--color-dark))}.mg-badge.mg-badge--secondary{background-color:hsl(var(--color-light));border-color:hsl(var(--color-light));color:hsl(var(--color-dark))}.mg-badge.mg-badge--secondary.mg-badge--outline{background-color:transparent;color:hsl(var(--color-light))}.mg-badge.mg-badge--success{background-color:hsl(var(--color-success));border-color:hsl(var(--color-success));color:hsl(var(--color-dark))}.mg-badge.mg-badge--success.mg-badge--outline{background-color:transparent;color:hsl(var(--color-success))}.mg-badge.mg-badge--warning{background-color:hsl(var(--color-warning));border-color:hsl(var(--color-warning));color:hsl(var(--color-dark))}.mg-badge.mg-badge--warning.mg-badge--outline{background-color:transparent;color:hsl(var(--color-warning))}.mg-badge.mg-badge--danger{background-color:hsl(var(--color-danger));border-color:hsl(var(--color-danger));color:hsl(var(--color-light))}.mg-badge.mg-badge--danger.mg-badge--outline{background-color:transparent;color:hsl(var(--color-danger))}.mg-badge.mg-badge--info{background-color:hsl(var(--color-info));border-color:hsl(var(--color-info));color:hsl(var(--color-light))}.mg-badge.mg-badge--info.mg-badge--outline{background-color:transparent;color:hsl(var(--color-info))}.mg-badge,mg-badge{display:inline-flex;align-items:center;justify-content:center}";
|
|
10
10
|
|
|
11
11
|
const MgBadge = /*@__PURE__*/ proxyCustomElement(class extends HTMLElement {
|
|
12
12
|
constructor() {
|
|
13
13
|
super();
|
|
14
14
|
this.__registerHost();
|
|
15
15
|
this.__attachShadow();
|
|
16
|
+
/************
|
|
17
|
+
* Internal *
|
|
18
|
+
************/
|
|
19
|
+
// classes
|
|
20
|
+
this.classOutline = `mg-badge--outline`;
|
|
16
21
|
/**
|
|
17
22
|
* Define button variant
|
|
18
23
|
*/
|
|
@@ -27,15 +32,22 @@ const MgBadge = /*@__PURE__*/ proxyCustomElement(class extends HTMLElement {
|
|
|
27
32
|
throw new Error('<mg-badge> prop "value" must be interger or ponctuation character.');
|
|
28
33
|
}
|
|
29
34
|
}
|
|
30
|
-
validateVariant(newValue) {
|
|
35
|
+
validateVariant(newValue, oldValue) {
|
|
31
36
|
if (!variants.includes(newValue)) {
|
|
32
37
|
throw new Error(`<mg-badge> prop "variant" must be one of : ${variants.join(', ')}.`);
|
|
33
38
|
}
|
|
34
|
-
|
|
39
|
+
else {
|
|
40
|
+
if (oldValue !== undefined) {
|
|
41
|
+
this.classList.delete(`mg-badge--${oldValue}`);
|
|
42
|
+
}
|
|
43
|
+
this.classList.add(`mg-badge--${newValue}`);
|
|
44
|
+
}
|
|
35
45
|
}
|
|
36
46
|
validateOutline(newValue) {
|
|
37
47
|
if (newValue)
|
|
38
|
-
this.classList.add(
|
|
48
|
+
this.classList.add(this.classOutline);
|
|
49
|
+
else
|
|
50
|
+
this.classList.delete(this.classOutline);
|
|
39
51
|
}
|
|
40
52
|
/**
|
|
41
53
|
* Check if props are well configured on init
|
|
@@ -5,9 +5,9 @@ import { d as defineCustomElement$1 } from './mg-icon2.js';
|
|
|
5
5
|
/**
|
|
6
6
|
* List of all possibles variants
|
|
7
7
|
*/
|
|
8
|
-
const variants = ['primary', 'secondary', 'danger', 'danger-alt', 'info', 'flat'];
|
|
8
|
+
const variants = ['primary', 'secondary', 'danger', 'danger-alt', 'info', 'flat', 'success'];
|
|
9
9
|
|
|
10
|
-
const mgButtonCss = ".mg-button.sc-mg-button{position:relative;display:-ms-inline-flexbox;display:inline-flex;-ms-flex-align:center;align-items:center;-webkit-column-gap:0.6rem;-moz-column-gap:0.6rem;column-gap:0.6rem;padding:calc((var(--default-size) - 0.2rem - var(--font-size) * var(--line-height)) / 2) 1.1rem;min-height:var(--default-size);-webkit-box-sizing:border-box;box-sizing:border-box;border-top-right-radius:var(--mg-button-border-radius-top-right, var(--mg-button-border-radius));border-top-left-radius:var(--mg-button-border-radius-top-left, var(--mg-button-border-radius));border-bottom-right-radius:var(--mg-button-border-radius-bottom-right, var(--mg-button-border-radius));border-bottom-left-radius:var(--mg-button-border-radius-bottom-left, var(--mg-button-border-radius));cursor:pointer;background-image:none;border-top-width:var(--mg-button-border-top-width, 0.1rem);border-right-width:var(--mg-button-border-right-width, 0.1rem);border-bottom-width:var(--mg-button-border-bottom-width, 0.1rem);border-left-width:var(--mg-button-border-left-width, 0.1rem);border-style:solid;font-family:inherit;text-decoration:none;font-weight:normal;text-align:left;-ms-touch-action:manipulation;touch-action:manipulation}.mg-button[disabled].sc-mg-button,.mg-button[aria-disabled].sc-mg-button,.mg-button.disabled.sc-mg-button{opacity:var(--mg-button-disabled-opacity);cursor:default}.mg-button.mg-button--icon.sc-mg-button{padding:0;-ms-flex-pack:center;justify-content:center;width:var(--default-size);height:var(--default-size);border-top-right-radius:var(--mg-button-border-radius-top-right, var(--mg-button-icon-border-radius));border-top-left-radius:var(--mg-button-border-radius-top-left, var(--mg-button-icon-border-radius));border-bottom-right-radius:var(--mg-button-border-radius-bottom-right, var(--mg-button-icon-border-radius));border-bottom-left-radius:var(--mg-button-border-radius-bottom-left, var(--mg-button-icon-border-radius));font-size:var(--font-size);line-height:var(--font-size)}.mg-button.mg-button--primary.sc-mg-button{border-color:hsl(var(--mg-button-primary-color-h), var(--mg-button-primary-color-s), var(--mg-button-primary-color-l));border-color:hsl(var(--mg-button-primary-color-h), var(--mg-button-primary-color-s), calc(var(--mg-button-primary-color-l) - 10%));color:hsl(var(--mg-button-primary-font-color));background:hsl(var(--mg-button-primary-color-h), var(--mg-button-primary-color-s), var(--mg-button-primary-color-l));background:-webkit-gradient(linear, left top, left bottom, from(hsl(var(--mg-button-primary-color-h), var(--mg-button-primary-color-s), var(--mg-button-primary-color-l))), to(hsl(var(--mg-button-primary-color-h), var(--mg-button-primary-color-s), calc(var(--mg-button-primary-color-l) - var(--mg-button-gradient) * 10%))));background:linear-gradient(to bottom, hsl(var(--mg-button-primary-color-h), var(--mg-button-primary-color-s), var(--mg-button-primary-color-l)), hsl(var(--mg-button-primary-color-h), var(--mg-button-primary-color-s), calc(var(--mg-button-primary-color-l) - var(--mg-button-gradient) * 10%)))}.mg-button.mg-button--primary.sc-mg-button:hover:not([disabled],[aria-disabled].sc-mg-button,.disabled).sc-mg-button,.mg-button.mg-button--primary.sc-mg-button:focus:not([disabled],[aria-disabled].sc-mg-button,.disabled).sc-mg-button,.mg-button.mg-button--primary.sc-mg-button:active:not([disabled],[aria-disabled].sc-mg-button,.disabled).sc-mg-button{background:hsl(var(--mg-button-primary-color-h), var(--mg-button-primary-color-s), var(--mg-button-primary-color-l))}.mg-button.mg-button--secondary.sc-mg-button{border-color:hsl(var(--mg-button-secondary-color-h), var(--mg-button-secondary-color-s), var(--mg-button-secondary-color-l));border-color:hsl(var(--mg-button-secondary-color-h), var(--mg-button-secondary-color-s), calc(var(--mg-button-secondary-color-l) - 10%));color:hsl(var(--mg-button-secondary-font-color));background:hsl(var(--mg-button-secondary-color-h), var(--mg-button-secondary-color-s), var(--mg-button-secondary-color-l));background:-webkit-gradient(linear, left top, left bottom, from(hsl(var(--mg-button-secondary-color-h), var(--mg-button-secondary-color-s), var(--mg-button-secondary-color-l))), to(hsl(var(--mg-button-secondary-color-h), var(--mg-button-secondary-color-s), calc(var(--mg-button-secondary-color-l) - var(--mg-button-gradient) * 10%))));background:linear-gradient(to bottom, hsl(var(--mg-button-secondary-color-h), var(--mg-button-secondary-color-s), var(--mg-button-secondary-color-l)), hsl(var(--mg-button-secondary-color-h), var(--mg-button-secondary-color-s), calc(var(--mg-button-secondary-color-l) - var(--mg-button-gradient) * 10%)))}.mg-button.mg-button--secondary.sc-mg-button:hover:not([disabled],[aria-disabled].sc-mg-button,.disabled).sc-mg-button,.mg-button.mg-button--secondary.sc-mg-button:focus:not([disabled],[aria-disabled].sc-mg-button,.disabled).sc-mg-button,.mg-button.mg-button--secondary.sc-mg-button:active:not([disabled],[aria-disabled].sc-mg-button,.disabled).sc-mg-button{background:hsl(var(--mg-button-secondary-color-h), var(--mg-button-secondary-color-s), var(--mg-button-secondary-color-l))}.mg-button.mg-button--danger.sc-mg-button{border-color:hsl(var(--color-danger-h), var(--color-danger-s), var(--color-danger-l));border-color:hsl(var(--color-danger-h), var(--color-danger-s), calc(var(--color-danger-l) - 10%));color:hsl(var(--color-neutral));background:hsl(var(--color-danger-h), var(--color-danger-s), var(--color-danger-l));background:-webkit-gradient(linear, left top, left bottom, from(hsl(var(--color-danger-h), var(--color-danger-s), var(--color-danger-l))), to(hsl(var(--color-danger-h), var(--color-danger-s), calc(var(--color-danger-l) - var(--mg-button-gradient) * 10%))));background:linear-gradient(to bottom, hsl(var(--color-danger-h), var(--color-danger-s), var(--color-danger-l)), hsl(var(--color-danger-h), var(--color-danger-s), calc(var(--color-danger-l) - var(--mg-button-gradient) * 10%)))}.mg-button.mg-button--danger.sc-mg-button:hover:not([disabled],[aria-disabled].sc-mg-button,.disabled).sc-mg-button,.mg-button.mg-button--danger.sc-mg-button:focus:not([disabled],[aria-disabled].sc-mg-button,.disabled).sc-mg-button,.mg-button.mg-button--danger.sc-mg-button:active:not([disabled],[aria-disabled].sc-mg-button,.disabled).sc-mg-button{background:hsl(var(--color-danger-h), var(--color-danger-s), var(--color-danger-l))}.mg-button.mg-button--danger-alt.sc-mg-button{border-color:hsl(var(--color-neutral-h), var(--color-neutral-s), var(--color-neutral-l));border-color:hsl(var(--color-neutral-h), var(--color-neutral-s), calc(var(--color-neutral-l) - 10%));color:hsl(var(--color-danger));background:hsl(var(--color-neutral-h), var(--color-neutral-s), var(--color-neutral-l));background:-webkit-gradient(linear, left top, left bottom, from(hsl(var(--color-neutral-h), var(--color-neutral-s), var(--color-neutral-l))), to(hsl(var(--color-neutral-h), var(--color-neutral-s), calc(var(--color-neutral-l) - var(--mg-button-gradient) * 10%))));background:linear-gradient(to bottom, hsl(var(--color-neutral-h), var(--color-neutral-s), var(--color-neutral-l)), hsl(var(--color-neutral-h), var(--color-neutral-s), calc(var(--color-neutral-l) - var(--mg-button-gradient) * 10%)))}.mg-button.mg-button--danger-alt.sc-mg-button:hover:not([disabled],[aria-disabled].sc-mg-button,.disabled).sc-mg-button,.mg-button.mg-button--danger-alt.sc-mg-button:focus:not([disabled],[aria-disabled].sc-mg-button,.disabled).sc-mg-button,.mg-button.mg-button--danger-alt.sc-mg-button:active:not([disabled],[aria-disabled].sc-mg-button,.disabled).sc-mg-button{background:hsl(var(--color-neutral-h), var(--color-neutral-s), var(--color-neutral-l))}.mg-button.mg-button--info.sc-mg-button{border-color:hsl(var(--color-info-h), var(--color-info-s), var(--color-info-l));border-color:hsl(var(--color-info-h), var(--color-info-s), calc(var(--color-info-l) - 10%));color:hsl(var(--color-neutral));background:hsl(var(--color-info-h), var(--color-info-s), var(--color-info-l));background:-webkit-gradient(linear, left top, left bottom, from(hsl(var(--color-info-h), var(--color-info-s), var(--color-info-l))), to(hsl(var(--color-info-h), var(--color-info-s), calc(var(--color-info-l) - var(--mg-button-gradient) * 10%))));background:linear-gradient(to bottom, hsl(var(--color-info-h), var(--color-info-s), var(--color-info-l)), hsl(var(--color-info-h), var(--color-info-s), calc(var(--color-info-l) - var(--mg-button-gradient) * 10%)))}.mg-button.mg-button--info.sc-mg-button:hover:not([disabled],[aria-disabled].sc-mg-button,.disabled).sc-mg-button,.mg-button.mg-button--info.sc-mg-button:focus:not([disabled],[aria-disabled].sc-mg-button,.disabled).sc-mg-button,.mg-button.mg-button--info.sc-mg-button:active:not([disabled],[aria-disabled].sc-mg-button,.disabled).sc-mg-button{background:hsl(var(--color-info-h), var(--color-info-s), var(--color-info-l))}.mg-button.mg-button--flat.sc-mg-button{background:none;border:none}.mg-button.mg-button--flat.sc-mg-button:hover:not([disabled],[aria-disabled].sc-mg-button,.disabled).sc-mg-button,.mg-button.mg-button--flat.sc-mg-button:focus:not([disabled],[aria-disabled].sc-mg-button,.disabled).sc-mg-button,.mg-button.mg-button--flat.sc-mg-button:active:not([disabled],[aria-disabled].sc-mg-button,.disabled).sc-mg-button{background:hsla(var(--color-dark), 0.1)}.mg-button.sc-mg-button mg-icon.sc-mg-button:only-child,.mg-button .sc-mg-button-s>mg-icon{display:-ms-inline-flexbox;display:inline-flex;-ms-flex-negative:0;flex-shrink:0;line-height:1;margin:auto 0}.mg-button.mg-button--loading.sc-mg-button>mg-icon.sc-mg-button{position:absolute;left:50%;top:50%;-webkit-transform:translate(-50%, -50%);transform:translate(-50%, -50%)}.mg-button.mg-button--loading.sc-mg-button .mg-button__content.sc-mg-button{opacity:0}.mg-button__content.sc-mg-button{display:-ms-flexbox;display:flex;-ms-flex-align:center;align-items:center;-webkit-column-gap:0.6rem;-moz-column-gap:0.6rem;column-gap:0.6rem}mg-button.sc-mg-button{display:inline-block}.mg-button.sc-mg-button,mg-button.sc-mg-button{vertical-align:middle;max-width:100%}";
|
|
10
|
+
const mgButtonCss = ".mg-button.sc-mg-button{position:relative;display:inline-flex;align-items:center;column-gap:0.6rem;padding:calc((var(--default-size) - 0.2rem - var(--font-size) * var(--line-height)) / 2) 1.1rem;min-height:var(--default-size);box-sizing:border-box;border-top-right-radius:var(--mg-button-border-radius-top-right, var(--mg-button-border-radius));border-top-left-radius:var(--mg-button-border-radius-top-left, var(--mg-button-border-radius));border-bottom-right-radius:var(--mg-button-border-radius-bottom-right, var(--mg-button-border-radius));border-bottom-left-radius:var(--mg-button-border-radius-bottom-left, var(--mg-button-border-radius));cursor:pointer;background-image:none;border-top-width:var(--mg-button-border-top-width, 0.1rem);border-right-width:var(--mg-button-border-right-width, 0.1rem);border-bottom-width:var(--mg-button-border-bottom-width, 0.1rem);border-left-width:var(--mg-button-border-left-width, 0.1rem);border-style:solid;font-family:inherit;text-decoration:none;font-weight:normal;text-align:left;touch-action:manipulation}.mg-button[disabled].sc-mg-button,.mg-button[aria-disabled=true].sc-mg-button,.mg-button.disabled.sc-mg-button{opacity:var(--mg-button-disabled-opacity);cursor:default}.mg-button.mg-button--icon.sc-mg-button{padding:0;justify-content:center;width:var(--default-size);height:var(--default-size);border-top-right-radius:var(--mg-button-border-radius-top-right, var(--mg-button-icon-border-radius));border-top-left-radius:var(--mg-button-border-radius-top-left, var(--mg-button-icon-border-radius));border-bottom-right-radius:var(--mg-button-border-radius-bottom-right, var(--mg-button-icon-border-radius));border-bottom-left-radius:var(--mg-button-border-radius-bottom-left, var(--mg-button-icon-border-radius));font-size:var(--font-size);line-height:var(--font-size)}.mg-button.mg-button--primary.sc-mg-button{border-color:hsl(var(--mg-button-primary-border-color, var(--mg-button-primary-color-h), var(--mg-button-primary-color-s), calc(var(--mg-button-primary-color-l) - var(--mg-button-border-variation) * 10%)));color:hsl(var(--mg-button-primary-font-color));background:linear-gradient(to bottom, hsl(var(--mg-button-primary-color-h), var(--mg-button-primary-color-s), var(--mg-button-primary-color-l)), hsl(var(--mg-button-primary-color-h), var(--mg-button-primary-color-s), calc(var(--mg-button-primary-color-l) - var(--mg-button-gradient) * 10%)))}.mg-button.mg-button--primary.sc-mg-button:hover:not([disabled],[aria-disabled=true].sc-mg-button,.disabled).sc-mg-button,.mg-button.mg-button--primary.sc-mg-button:focus:not([disabled],[aria-disabled=true].sc-mg-button,.disabled).sc-mg-button,.mg-button.mg-button--primary.sc-mg-button:active:not([disabled],[aria-disabled=true].sc-mg-button,.disabled).sc-mg-button{background:hsl(var(--mg-button-primary-color-h), var(--mg-button-primary-color-s), var(--mg-button-primary-color-l))}.mg-button.mg-button--secondary.sc-mg-button{border-color:hsl(var(--mg-button-secondary-border-color, var(--mg-button-secondary-color-h), var(--mg-button-secondary-color-s), calc(var(--mg-button-secondary-color-l) - var(--mg-button-border-variation) * 10%)));color:hsl(var(--mg-button-secondary-font-color));background:linear-gradient(to bottom, hsl(var(--mg-button-secondary-color-h), var(--mg-button-secondary-color-s), var(--mg-button-secondary-color-l)), hsl(var(--mg-button-secondary-color-h), var(--mg-button-secondary-color-s), calc(var(--mg-button-secondary-color-l) - var(--mg-button-gradient) * 10%)))}.mg-button.mg-button--secondary.sc-mg-button:hover:not([disabled],[aria-disabled=true].sc-mg-button,.disabled).sc-mg-button,.mg-button.mg-button--secondary.sc-mg-button:focus:not([disabled],[aria-disabled=true].sc-mg-button,.disabled).sc-mg-button,.mg-button.mg-button--secondary.sc-mg-button:active:not([disabled],[aria-disabled=true].sc-mg-button,.disabled).sc-mg-button{background:hsl(var(--mg-button-secondary-color-h), var(--mg-button-secondary-color-s), var(--mg-button-secondary-color-l))}.mg-button.mg-button--danger.sc-mg-button{border-color:hsl(var(--mg-button-danger-border-color, var(--color-danger-h), var(--color-danger-s), calc(var(--color-danger-l) - var(--mg-button-border-variation) * 10%)));color:hsl(var(--color-neutral));background:linear-gradient(to bottom, hsl(var(--color-danger-h), var(--color-danger-s), var(--color-danger-l)), hsl(var(--color-danger-h), var(--color-danger-s), calc(var(--color-danger-l) - var(--mg-button-gradient) * 10%)))}.mg-button.mg-button--danger.sc-mg-button:hover:not([disabled],[aria-disabled=true].sc-mg-button,.disabled).sc-mg-button,.mg-button.mg-button--danger.sc-mg-button:focus:not([disabled],[aria-disabled=true].sc-mg-button,.disabled).sc-mg-button,.mg-button.mg-button--danger.sc-mg-button:active:not([disabled],[aria-disabled=true].sc-mg-button,.disabled).sc-mg-button{background:hsl(var(--color-danger-h), var(--color-danger-s), var(--color-danger-l))}.mg-button.mg-button--danger-alt.sc-mg-button{border-color:hsl(var(--mg-button-danger-alt-border-color, var(--color-neutral-h), var(--color-neutral-s), calc(var(--color-neutral-l) - var(--mg-button-border-variation) * 10%)));color:hsl(var(--color-danger));background:linear-gradient(to bottom, hsl(var(--color-neutral-h), var(--color-neutral-s), var(--color-neutral-l)), hsl(var(--color-neutral-h), var(--color-neutral-s), calc(var(--color-neutral-l) - var(--mg-button-gradient) * 10%)))}.mg-button.mg-button--danger-alt.sc-mg-button:hover:not([disabled],[aria-disabled=true].sc-mg-button,.disabled).sc-mg-button,.mg-button.mg-button--danger-alt.sc-mg-button:focus:not([disabled],[aria-disabled=true].sc-mg-button,.disabled).sc-mg-button,.mg-button.mg-button--danger-alt.sc-mg-button:active:not([disabled],[aria-disabled=true].sc-mg-button,.disabled).sc-mg-button{background:hsl(var(--color-neutral-h), var(--color-neutral-s), var(--color-neutral-l))}.mg-button.mg-button--info.sc-mg-button{border-color:hsl(var(--mg-button-info-border-color, var(--color-info-h), var(--color-info-s), calc(var(--color-info-l) - var(--mg-button-border-variation) * 10%)));color:hsl(var(--color-neutral));background:linear-gradient(to bottom, hsl(var(--color-info-h), var(--color-info-s), var(--color-info-l)), hsl(var(--color-info-h), var(--color-info-s), calc(var(--color-info-l) - var(--mg-button-gradient) * 10%)))}.mg-button.mg-button--info.sc-mg-button:hover:not([disabled],[aria-disabled=true].sc-mg-button,.disabled).sc-mg-button,.mg-button.mg-button--info.sc-mg-button:focus:not([disabled],[aria-disabled=true].sc-mg-button,.disabled).sc-mg-button,.mg-button.mg-button--info.sc-mg-button:active:not([disabled],[aria-disabled=true].sc-mg-button,.disabled).sc-mg-button{background:hsl(var(--color-info-h), var(--color-info-s), var(--color-info-l))}.mg-button.mg-button--success.sc-mg-button{border-color:hsl(var(--mg-button-success-border-color, var(--color-success-h), var(--color-success-s), calc(var(--color-success-l) - var(--mg-button-border-variation) * 10%)));color:hsl(var(--color-dark));background:linear-gradient(to bottom, hsl(var(--color-success-h), var(--color-success-s), var(--color-success-l)), hsl(var(--color-success-h), var(--color-success-s), calc(var(--color-success-l) - var(--mg-button-gradient) * 10%)))}.mg-button.mg-button--success.sc-mg-button:hover:not([disabled],[aria-disabled=true].sc-mg-button,.disabled).sc-mg-button,.mg-button.mg-button--success.sc-mg-button:focus:not([disabled],[aria-disabled=true].sc-mg-button,.disabled).sc-mg-button,.mg-button.mg-button--success.sc-mg-button:active:not([disabled],[aria-disabled=true].sc-mg-button,.disabled).sc-mg-button{background:hsl(var(--color-success-h), var(--color-success-s), var(--color-success-l))}.mg-button.mg-button--flat.sc-mg-button{background:none;border:none}.mg-button.mg-button--flat.sc-mg-button:hover:not([disabled],[aria-disabled=true].sc-mg-button,.disabled).sc-mg-button,.mg-button.mg-button--flat.sc-mg-button:focus:not([disabled],[aria-disabled=true].sc-mg-button,.disabled).sc-mg-button,.mg-button.mg-button--flat.sc-mg-button:active:not([disabled],[aria-disabled=true].sc-mg-button,.disabled).sc-mg-button{background:hsla(var(--color-dark), 0.1)}.mg-button.sc-mg-button mg-icon.sc-mg-button:only-child,.mg-button .sc-mg-button-s>mg-icon{display:inline-flex;flex-shrink:0;line-height:1;margin:auto 0}.mg-button.mg-button--loading.sc-mg-button>mg-icon.sc-mg-button{position:absolute;left:50%;top:50%;transform:translate(-50%, -50%)}.mg-button.mg-button--loading.sc-mg-button .mg-button__content.sc-mg-button{opacity:0}.mg-button__content.sc-mg-button{display:flex;align-items:center;column-gap:0.6rem}mg-button.sc-mg-button{display:inline-block}.mg-button.sc-mg-button,mg-button.sc-mg-button{vertical-align:middle;max-width:100%}";
|
|
11
11
|
|
|
12
12
|
const MgButton = /*@__PURE__*/ proxyCustomElement(class extends HTMLElement {
|
|
13
13
|
constructor() {
|
|
@@ -75,11 +75,16 @@ const MgButton = /*@__PURE__*/ proxyCustomElement(class extends HTMLElement {
|
|
|
75
75
|
}
|
|
76
76
|
};
|
|
77
77
|
}
|
|
78
|
-
validateVariant(newValue) {
|
|
78
|
+
validateVariant(newValue, oldValue) {
|
|
79
79
|
if (!variants.includes(newValue)) {
|
|
80
80
|
throw new Error(`<mg-button> prop "variant" must be one of : ${variants.join(', ')}`);
|
|
81
81
|
}
|
|
82
|
-
|
|
82
|
+
else {
|
|
83
|
+
if (oldValue !== undefined) {
|
|
84
|
+
this.classList.delete(`mg-button--${oldValue}`);
|
|
85
|
+
}
|
|
86
|
+
this.classList.add(`mg-button--${newValue}`);
|
|
87
|
+
}
|
|
83
88
|
}
|
|
84
89
|
disabledHandler(isDisabled) {
|
|
85
90
|
// Remove loading when enable
|
|
@@ -122,7 +127,7 @@ const MgButton = /*@__PURE__*/ proxyCustomElement(class extends HTMLElement {
|
|
|
122
127
|
* @returns {HTMLElement} html element
|
|
123
128
|
*/
|
|
124
129
|
render() {
|
|
125
|
-
return (h("button", { id: this.identifier, class: this.classList.join(), "aria-label": this.label, "aria-disabled": this.disabled, "aria-expanded": this.expanded, "aria-controls": this.controls, "aria-haspopup": this.haspopup, onClick: this.handleClick }, this.loading && h("mg-icon", { icon: "loader", spin: true }), h("div", { class: "mg-button__content" }, h("slot", null))));
|
|
130
|
+
return (h("button", { id: this.identifier, class: this.classList.join(), "aria-label": this.label, "aria-disabled": this.disabled.toString(), "aria-expanded": this.expanded, "aria-controls": this.controls, "aria-haspopup": this.haspopup, onClick: this.handleClick }, this.loading && h("mg-icon", { icon: "loader", spin: true }), h("div", { class: "mg-button__content" }, h("slot", null))));
|
|
126
131
|
}
|
|
127
132
|
get element() { return this; }
|
|
128
133
|
static get watchers() { return {
|