@dynamic-framework/ui-react 1.1.4 → 1.2.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.
- package/dist/css/dynamic-ui-all.css +1 -0
- package/dist/css/dynamic-ui-react.css +1 -1
- package/dist/css/dynamic-ui.css +1 -0
- package/dist/index.esm.js +107 -26
- package/dist/index.esm.js.map +1 -1
- package/dist/index.js +117 -26
- package/dist/index.js.map +1 -1
- package/dist/types/components/MBoxFile.d.ts +1 -1
- package/dist/types/components/MCalendar.d.ts +1 -1
- package/dist/types/components/MCarousel.d.ts +7 -0
- package/dist/types/components/MCarouselSlide.d.ts +5 -0
- package/dist/types/components/MCollapse.d.ts +1 -1
- package/dist/types/components/MCurrencyText.d.ts +1 -2
- package/dist/types/components/MFormikInput.d.ts +1 -1
- package/dist/types/components/MFormikInputCurrency.d.ts +7 -0
- package/dist/types/components/MFormikInputSelect.d.ts +1 -1
- package/dist/types/components/MInputCurrency.d.ts +3 -1
- package/dist/types/components/MList.d.ts +10 -0
- package/dist/types/components/MListItem.d.ts +10 -0
- package/dist/types/components/MListItemMovement.d.ts +10 -0
- package/dist/types/components/MPaginator.d.ts +12 -0
- package/dist/types/components/MPopover.d.ts +1 -1
- package/dist/types/components/MSkeleton.d.ts +1 -1
- package/dist/types/components/MStepper.d.ts +12 -0
- package/dist/types/components/MTabContent.d.ts +1 -1
- package/dist/types/components/MTabs.d.ts +1 -1
- package/dist/types/components/MToastContainer.d.ts +1 -1
- package/dist/types/components/MTooltip.d.ts +1 -1
- package/dist/types/components/banking/MCollapseIconText.d.ts +1 -1
- package/dist/types/components/banking/MPermissionGroup.d.ts +1 -2
- package/dist/types/components/banking/MPermissionItem.d.ts +1 -2
- package/dist/types/components/banking/MSummaryCard.d.ts +1 -1
- package/dist/types/components/index.d.ts +7 -0
- package/dist/types/contexts/LiquidContext.d.ts +1 -1
- package/dist/types/contexts/ModalContext.d.ts +1 -1
- package/dist/types/contexts/OffcanvasContext.d.ts +1 -1
- package/dist/types/stories/components/MCarousel.stories.d.ts +9 -0
- package/dist/types/stories/components/MFormikInputCurrency.stories.d.ts +8 -0
- package/dist/types/stories/components/MList.stories.d.ts +10 -0
- package/dist/types/stories/components/MListItem.stories.d.ts +9 -0
- package/dist/types/stories/components/MListItemMovement.stories.d.ts +7 -0
- package/dist/types/stories/components/MPaginator.stories.d.ts +10 -0
- package/dist/types/stories/components/MStepper.stories.d.ts +7 -0
- package/dist/types/stories/hooks/useFormatCurrency.stories.d.ts +1 -2
- package/dist/types/stories/hooks/useModalContext.stories.d.ts +1 -2
- package/dist/types/stories/hooks/useOffcanvasContext.stories.d.ts +1 -2
- package/dist/types/stories/hooks/useToast.stories.d.ts +1 -2
- package/dist/types/utils/index.d.ts +1 -0
- package/package.json +16 -13
- package/src/style/components/_+import.scss +3 -0
- package/src/style/components/_m-carousel.scss +44 -0
- package/src/style/components/_m-paginator.scss +98 -0
- package/src/style/components/_m-stepper.scss +156 -0
- package/src/style/dynamic-ui-all.scss +3 -0
- package/src/style/dynamic-ui.scss +1 -0
- /package/dist/types/stories/{patterns → components}/MBadge.stories.d.ts +0 -0
- /package/dist/types/stories/{patterns → components}/MChip.stories.d.ts +0 -0
- /package/src/style/{main.scss → dynamic-ui-react.scss} +0 -0
package/dist/index.js
CHANGED
|
@@ -9,7 +9,7 @@ const es = require('date-fns/locale/es');
|
|
|
9
9
|
const React = require('react');
|
|
10
10
|
const ui = require('@dynamic-framework/ui');
|
|
11
11
|
const ContentLoader = require('react-content-loader');
|
|
12
|
-
const
|
|
12
|
+
const classNames = require('classnames');
|
|
13
13
|
const reactToastify = require('react-toastify');
|
|
14
14
|
require('react-toastify/dist/ReactToastify.css');
|
|
15
15
|
const react = require('@floating-ui/react');
|
|
@@ -37,6 +37,7 @@ const mQuickActionCheck_js = require('@dynamic-framework/ui/components/m-quick-a
|
|
|
37
37
|
const mQuickActionSelect_js = require('@dynamic-framework/ui/components/m-quick-action-select.js');
|
|
38
38
|
const mQuickActionSwitch_js = require('@dynamic-framework/ui/components/m-quick-action-switch.js');
|
|
39
39
|
const reactDropzone = require('react-dropzone');
|
|
40
|
+
const reactSplide = require('@splidejs/react-splide');
|
|
40
41
|
const i18n = require('i18next');
|
|
41
42
|
const reactI18next = require('react-i18next');
|
|
42
43
|
const html2canvas = require('html2canvas');
|
|
@@ -48,7 +49,7 @@ const DatePicker__default = /*#__PURE__*/_interopDefaultLegacy(DatePicker);
|
|
|
48
49
|
const es__default = /*#__PURE__*/_interopDefaultLegacy(es);
|
|
49
50
|
const React__default = /*#__PURE__*/_interopDefaultLegacy(React);
|
|
50
51
|
const ContentLoader__default = /*#__PURE__*/_interopDefaultLegacy(ContentLoader);
|
|
51
|
-
const
|
|
52
|
+
const classNames__default = /*#__PURE__*/_interopDefaultLegacy(classNames);
|
|
52
53
|
const i18n__default = /*#__PURE__*/_interopDefaultLegacy(i18n);
|
|
53
54
|
const html2canvas__default = /*#__PURE__*/_interopDefaultLegacy(html2canvas);
|
|
54
55
|
|
|
@@ -288,7 +289,7 @@ function MCollapse({ id, className, Component, hasSeparator = false, defaultColl
|
|
|
288
289
|
React.useEffect(() => {
|
|
289
290
|
setToggle(defaultCollapsed);
|
|
290
291
|
}, [defaultCollapsed]);
|
|
291
|
-
return (jsxRuntime.jsxs("div", Object.assign({ id: id, className:
|
|
292
|
+
return (jsxRuntime.jsxs("div", Object.assign({ id: id, className: classNames__default["default"]('m-collapse collapse-container', className) }, { children: [jsxRuntime.jsxs("button", Object.assign({ className: "collapse-button", type: "button", onClick: onChangeCollapse }, { children: [jsxRuntime.jsx("div", Object.assign({ className: "flex-grow-1" }, { children: Component })), jsxRuntime.jsx(MIcon, { color: `var(--${ui.PREFIX_BS}gray)`, size: `var(--${ui.PREFIX_BS}ref-fs-small)`, icon: toggle ? 'chevron-up' : 'chevron-down' })] })), toggle && (jsxRuntime.jsx("div", Object.assign({ className: classNames__default["default"]({
|
|
292
293
|
'collapse-body': true,
|
|
293
294
|
}), style: {
|
|
294
295
|
[`--${ui.PREFIX_BS}m-collapse-separator-display`]: hasSeparator ? 'block' : 'none',
|
|
@@ -615,10 +616,10 @@ function MTabs({ children, defaultSelected, onChange, options, className, isVert
|
|
|
615
616
|
const value = React.useMemo(() => ({
|
|
616
617
|
isSelected,
|
|
617
618
|
}), [isSelected]);
|
|
618
|
-
return (jsxRuntime.jsx(TabContext.Provider, Object.assign({ value: value }, { children: jsxRuntime.jsxs("div", Object.assign({ className:
|
|
619
|
+
return (jsxRuntime.jsx(TabContext.Provider, Object.assign({ value: value }, { children: jsxRuntime.jsxs("div", Object.assign({ className: classNames__default["default"]({
|
|
619
620
|
'm-tabs': true,
|
|
620
621
|
'm-tabs-vertical': isVertical,
|
|
621
|
-
}) }, { children: [jsxRuntime.jsx("nav", Object.assign({ className: "nav" }, { children: options.map((option) => (jsxRuntime.jsx("button", Object.assign({ id: `${option.tab}Tab`, className:
|
|
622
|
+
}) }, { children: [jsxRuntime.jsx("nav", Object.assign({ className: "nav" }, { children: options.map((option) => (jsxRuntime.jsx("button", Object.assign({ id: `${option.tab}Tab`, className: classNames__default["default"]('nav-link', {
|
|
622
623
|
active: option.tab === selected,
|
|
623
624
|
}, className), type: "button", role: "tab", "aria-controls": `${option.tab}Pane`, "aria-selected": option.tab === selected, disabled: option.isDisabled, onClick: () => onSelect(option) }, { children: option.label }), option.label))) })), jsxRuntime.jsx("div", Object.assign({ className: "tab-content" }, { children: children }))] })) })));
|
|
624
625
|
}
|
|
@@ -638,7 +639,7 @@ function MTabContent({ tab, children }) {
|
|
|
638
639
|
return (jsxRuntime.jsx("div", Object.assign({ className: "tab-pane fade show active", id: `${tab}Pane`, role: "tabpanel", tabIndex: 0, "aria-labelledby": `${tab}Tab` }, { children: children })));
|
|
639
640
|
}
|
|
640
641
|
|
|
641
|
-
function MToastContainer({ style, position = '
|
|
642
|
+
function MToastContainer({ style, position = 'top-right', }) {
|
|
642
643
|
return (jsxRuntime.jsx(reactToastify.ToastContainer, { toastClassName: () => 'shadow-none p-0 cursor-default', position: position, autoClose: false, hideProgressBar: true, closeOnClick: false, closeButton: false, transition: reactToastify.Slide, style: style }));
|
|
643
644
|
}
|
|
644
645
|
|
|
@@ -689,9 +690,9 @@ function MCurrencyText({ value, className, }) {
|
|
|
689
690
|
}
|
|
690
691
|
|
|
691
692
|
function MFormikInput(_a) {
|
|
692
|
-
var { name } = _a, props = tslib.__rest(_a, ["name"]);
|
|
693
|
+
var { name, hint } = _a, props = tslib.__rest(_a, ["name", "hint"]);
|
|
693
694
|
const [field, meta, helpers] = formik.useField(name);
|
|
694
|
-
return (jsxRuntime.jsx(MInput, Object.assign({}, props, { name: field.name, value: field.value, onMChange: ({ detail }) => helpers.setValue(detail), onMBlur: ({ detail }) => field.onBlur(detail), isInvalid: !!meta.error })));
|
|
695
|
+
return (jsxRuntime.jsx(MInput, Object.assign({}, props, { name: field.name, value: field.value, onMChange: ({ detail }) => helpers.setValue(detail), onMBlur: ({ detail }) => field.onBlur(detail), isInvalid: !!meta.error, hint: meta.error || hint })));
|
|
695
696
|
}
|
|
696
697
|
|
|
697
698
|
function MFormikInputSelect(_a) {
|
|
@@ -759,40 +760,66 @@ function MTooltip({ classNameContainer, className, offSet = ARROW_HEIGHT + GAP,
|
|
|
759
760
|
}
|
|
760
761
|
|
|
761
762
|
function MInputCurrency(_a) {
|
|
762
|
-
var { onChange } = _a, otherProps = tslib.__rest(_a, ["onChange"]);
|
|
763
|
+
var { onChange, onBlur, onFocus } = _a, otherProps = tslib.__rest(_a, ["onChange", "onBlur", "onFocus"]);
|
|
763
764
|
const { currency } = useLiquidContext();
|
|
764
|
-
return (jsxRuntime.jsx(MInputCurrencyBase, Object.assign({ currencyOptions: currency, onMChange: ({ detail }) => onChange(detail) }, otherProps)));
|
|
765
|
+
return (jsxRuntime.jsx(MInputCurrencyBase, Object.assign({ currencyOptions: currency, onMChange: ({ detail }) => onChange(detail), onMBlur: ({ detail }) => onBlur(detail), onMFocus: ({ detail }) => onFocus(detail) }, otherProps)));
|
|
765
766
|
}
|
|
766
767
|
|
|
767
768
|
function MBoxFile(_a) {
|
|
768
769
|
var { icon = 'cloud-upload', iconFamilyClass, iconFamilyPrefix, isDisabled = false, children } = _a, dropzoneOptions = tslib.__rest(_a, ["icon", "iconFamilyClass", "iconFamilyPrefix", "isDisabled", "children"]);
|
|
769
770
|
const { acceptedFiles, getRootProps, getInputProps, } = reactDropzone.useDropzone(Object.assign({ disabled: isDisabled }, dropzoneOptions));
|
|
770
|
-
return (jsxRuntime.jsxs("section", Object.assign({ className:
|
|
771
|
+
return (jsxRuntime.jsxs("section", Object.assign({ className: classNames__default["default"]('m-box-file', {
|
|
771
772
|
'm-box-file-selected': !!acceptedFiles.length,
|
|
772
773
|
}) }, { children: [jsxRuntime.jsxs("div", Object.assign({}, getRootProps({
|
|
773
|
-
className:
|
|
774
|
+
className: classNames__default["default"]('m-box-file-dropzone', {
|
|
774
775
|
disabled: isDisabled,
|
|
775
776
|
}),
|
|
776
777
|
}), { children: [jsxRuntime.jsx("input", Object.assign({}, getInputProps())), jsxRuntime.jsx(MIcon, { icon: icon, familyClass: iconFamilyClass, familyPrefix: iconFamilyPrefix }), jsxRuntime.jsx("div", Object.assign({ className: "m-box-content" }, { children: children }))] })), !!acceptedFiles.length && (jsxRuntime.jsx("aside", Object.assign({ className: "m-box-files" }, { children: acceptedFiles.map((file) => (jsxRuntime.jsx("div", Object.assign({ className: "m-box-files-text" }, { children: `${file.name} - ${file.size} bytes` }), file.name))) })))] })));
|
|
777
778
|
}
|
|
778
779
|
|
|
779
|
-
|
|
780
|
-
|
|
781
|
-
|
|
782
|
-
|
|
783
|
-
|
|
784
|
-
|
|
785
|
-
|
|
786
|
-
|
|
787
|
-
|
|
788
|
-
|
|
789
|
-
|
|
790
|
-
|
|
791
|
-
|
|
780
|
+
function MCarousel(_a) {
|
|
781
|
+
var { children, className, options } = _a, props = tslib.__rest(_a, ["children", "className", "options"]);
|
|
782
|
+
return (jsxRuntime.jsx(reactSplide.Splide, Object.assign({ className: classNames__default["default"]('m-carousel', className), options: Object.assign(Object.assign({}, options), { classes: {
|
|
783
|
+
// Arrows
|
|
784
|
+
arrows: 'splide__arrows m-carousel-arrows',
|
|
785
|
+
arrow: 'splide__arrow m-carousel-arrow',
|
|
786
|
+
prev: 'splide__arrow--prev m-carousel-arrow-prev',
|
|
787
|
+
next: 'splide__arrow--next m-carousel-arrow-next',
|
|
788
|
+
// Paginator
|
|
789
|
+
pagination: 'splide__pagination m-carousel-pagination',
|
|
790
|
+
page: 'splide__pagination__page m-carousel-pagination-page',
|
|
791
|
+
} }) }, props, { children: children })));
|
|
792
|
+
}
|
|
793
|
+
|
|
794
|
+
function MCarouselSlide(_a) {
|
|
795
|
+
var { className } = _a, props = tslib.__rest(_a, ["className"]);
|
|
796
|
+
return (jsxRuntime.jsx(reactSplide.SplideSlide, Object.assign({ className: classNames__default["default"]('m-carousel-slide', className) }, props)));
|
|
797
|
+
}
|
|
798
|
+
|
|
799
|
+
function MList({ children, className, isFlush = false, isNumbered = false, isHorizontal = false, horizontalBreakpoint, }) {
|
|
800
|
+
if (isFlush && isHorizontal) {
|
|
801
|
+
throw new Error("Horizontal and Flush props don't work together");
|
|
802
|
+
}
|
|
803
|
+
return (jsxRuntime.jsx("div", Object.assign({ className: classNames__default["default"]('m-list list-group', {
|
|
804
|
+
'list-group-flush': isFlush && !isHorizontal,
|
|
805
|
+
'list-group-numbered': isNumbered,
|
|
806
|
+
'list-group-horizontal': isHorizontal && !horizontalBreakpoint,
|
|
807
|
+
}, (isHorizontal && horizontalBreakpoint) && `list-group-horizontal-${horizontalBreakpoint}`, className) }, { children: children })));
|
|
808
|
+
}
|
|
809
|
+
|
|
810
|
+
function MListItem({ children, className, isActive = false, isDisabled = false, theme, onMClick, }) {
|
|
811
|
+
const Tag = React.useMemo(() => (onMClick ? 'button' : 'div'), [onMClick]);
|
|
812
|
+
return (jsxRuntime.jsx(Tag, Object.assign({}, Tag === 'button' && {
|
|
813
|
+
onClick: onMClick,
|
|
814
|
+
type: 'button',
|
|
815
|
+
}, { className: classNames__default["default"]('m-list-item list-group-item list-group-item-action', theme ? `list-group-item-${theme}` : undefined, className, {
|
|
816
|
+
active: isActive,
|
|
817
|
+
disabled: isDisabled,
|
|
818
|
+
}) }, isActive && { 'aria-current': true }, { children: children })));
|
|
792
819
|
}
|
|
793
820
|
|
|
794
821
|
function useToast() {
|
|
795
|
-
const toast = React.useCallback((message, { position = '
|
|
822
|
+
const toast = React.useCallback((message, { position = 'top-right', type = 'info', showClose = true, autoClose = false, } = {}) => {
|
|
796
823
|
reactToastify.toast(({ closeToast }) => (jsxRuntime.jsx(MAlert, Object.assign({ type: type, showClose: showClose, onMClose: closeToast }, { children: message }))), {
|
|
797
824
|
transition: reactToastify.Slide,
|
|
798
825
|
position,
|
|
@@ -867,6 +894,63 @@ function useScreenshotWebShare() {
|
|
|
867
894
|
};
|
|
868
895
|
}
|
|
869
896
|
|
|
897
|
+
function MListItemMovement(_a) {
|
|
898
|
+
var { description, date, amount, classNameMovement } = _a, props = tslib.__rest(_a, ["description", "date", "amount", "classNameMovement"]);
|
|
899
|
+
const { format } = useFormatCurrency();
|
|
900
|
+
const value = React.useMemo(() => {
|
|
901
|
+
const valueFormatted = format(amount);
|
|
902
|
+
if (amount > 0) {
|
|
903
|
+
return {
|
|
904
|
+
theme: 'text-success',
|
|
905
|
+
valueFormatted,
|
|
906
|
+
};
|
|
907
|
+
}
|
|
908
|
+
return {
|
|
909
|
+
theme: 'text-danger',
|
|
910
|
+
valueFormatted,
|
|
911
|
+
};
|
|
912
|
+
}, [format, amount]);
|
|
913
|
+
return (jsxRuntime.jsx(MListItem, Object.assign({}, props, { children: jsxRuntime.jsxs("div", Object.assign({ className: classNames__default["default"]('m-list-item-movement', 'd-flex justify-content-between align-items-center p-3 gap-3', classNameMovement) }, { children: [jsxRuntime.jsxs("div", Object.assign({ className: "d-flex flex-column gap-1" }, { children: [jsxRuntime.jsx("span", Object.assign({ className: "fs-6" }, { children: description })), jsxRuntime.jsx("span", Object.assign({ className: "sp text-gray-700" }, { children: date }))] })), jsxRuntime.jsx("span", Object.assign({ className: classNames__default["default"]('fs-6', value.theme) }, { children: value.valueFormatted }))] })) })));
|
|
914
|
+
}
|
|
915
|
+
|
|
916
|
+
function MStepper({ options, currentStep, successIcon = 'check', isVertical = false, }) {
|
|
917
|
+
return (jsxRuntime.jsx("div", Object.assign({ className: classNames__default["default"]({
|
|
918
|
+
'm-stepper': true,
|
|
919
|
+
'is-vertical': isVertical,
|
|
920
|
+
}) }, { children: options.map(({ label, value }) => (jsxRuntime.jsxs("div", Object.assign({ className: "m-step" }, { children: [jsxRuntime.jsx("div", Object.assign({ className: "m-step-value" }, { children: jsxRuntime.jsx("div", Object.assign({ className: classNames__default["default"]({
|
|
921
|
+
'm-step-icon-container': true,
|
|
922
|
+
'm-step-check': value < currentStep,
|
|
923
|
+
'm-step-current': value === currentStep,
|
|
924
|
+
}) }, { children: value < currentStep
|
|
925
|
+
? (jsxRuntime.jsx(MIcon, { icon: successIcon, innerClass: "m-step-icon" }))
|
|
926
|
+
: value })) })), jsxRuntime.jsx("div", Object.assign({ className: "m-step-label" }, { children: label }))] }), label))) })));
|
|
927
|
+
}
|
|
928
|
+
|
|
929
|
+
function MFormikInputCurrency(_a) {
|
|
930
|
+
var { name, hint } = _a, props = tslib.__rest(_a, ["name", "hint"]);
|
|
931
|
+
const [field, meta, helpers] = formik.useField(name);
|
|
932
|
+
return (jsxRuntime.jsx(MInputCurrency, Object.assign({}, props, { name: field.name, value: field.value, onChange: (value) => helpers.setValue(value), onMBlur: ({ detail }) => field.onBlur(detail), isInvalid: !!meta.error, hint: meta.error || hint })));
|
|
933
|
+
}
|
|
934
|
+
|
|
935
|
+
const LANG = ui.liquidParser.parse('{{site.language}}');
|
|
936
|
+
async function configureI8n(resources, _a = {}) {
|
|
937
|
+
var { lng = LANG, fallbackLng = 'es' } = _a, config = tslib.__rest(_a, ["lng", "fallbackLng"]);
|
|
938
|
+
return i18n__default["default"]
|
|
939
|
+
.use(reactI18next.initReactI18next)
|
|
940
|
+
.init(Object.assign({ resources,
|
|
941
|
+
lng, initImmediate: true, fallbackLng, interpolation: {
|
|
942
|
+
escapeValue: false,
|
|
943
|
+
prefix: '{',
|
|
944
|
+
suffix: '}',
|
|
945
|
+
// skipOnVariables: false,
|
|
946
|
+
} }, config))
|
|
947
|
+
.then((t) => t);
|
|
948
|
+
}
|
|
949
|
+
|
|
950
|
+
Object.defineProperty(exports, 'liquidParser', {
|
|
951
|
+
enumerable: true,
|
|
952
|
+
get: function () { return ui.liquidParser; }
|
|
953
|
+
});
|
|
870
954
|
exports.LiquidContext = LiquidContext$1;
|
|
871
955
|
exports.LiquidContextProvider = LiquidContextProvider;
|
|
872
956
|
exports.MAlert = MAlert;
|
|
@@ -874,11 +958,14 @@ exports.MBadge = MBadge;
|
|
|
874
958
|
exports.MBoxFile = MBoxFile;
|
|
875
959
|
exports.MButton = MButton;
|
|
876
960
|
exports.MCalendar = MCalendar;
|
|
961
|
+
exports.MCarousel = MCarousel;
|
|
962
|
+
exports.MCarouselSlide = MCarouselSlide;
|
|
877
963
|
exports.MChip = MChip;
|
|
878
964
|
exports.MCollapse = MCollapse;
|
|
879
965
|
exports.MCollapseIconText = MCollapseIconText;
|
|
880
966
|
exports.MCurrencyText = MCurrencyText;
|
|
881
967
|
exports.MFormikInput = MFormikInput;
|
|
968
|
+
exports.MFormikInputCurrency = MFormikInputCurrency;
|
|
882
969
|
exports.MFormikInputSelect = MFormikInputSelect;
|
|
883
970
|
exports.MIcon = MIcon;
|
|
884
971
|
exports.MInput = MInput;
|
|
@@ -891,6 +978,9 @@ exports.MInputPin = MInputPin;
|
|
|
891
978
|
exports.MInputSearch = MInputSearch;
|
|
892
979
|
exports.MInputSelect = MInputSelect;
|
|
893
980
|
exports.MInputSwitch = MInputSwitch;
|
|
981
|
+
exports.MList = MList;
|
|
982
|
+
exports.MListItem = MListItem;
|
|
983
|
+
exports.MListItemMovement = MListItemMovement;
|
|
894
984
|
exports.MModal = MModal;
|
|
895
985
|
exports.MOffcanvas = MOffcanvas;
|
|
896
986
|
exports.MPermissionGroup = MPermissionGroup;
|
|
@@ -902,6 +992,7 @@ exports.MQuickActionCheck = MQuickActionCheck;
|
|
|
902
992
|
exports.MQuickActionSelect = MQuickActionSelect;
|
|
903
993
|
exports.MQuickActionSwitch = MQuickActionSwitch;
|
|
904
994
|
exports.MSkeleton = MSkeleton;
|
|
995
|
+
exports.MStepper = MStepper;
|
|
905
996
|
exports.MSummaryCard = MSummaryCard;
|
|
906
997
|
exports.MTabContent = MTabContent;
|
|
907
998
|
exports.MTabs = MTabs;
|