@dynamic-framework/ui-react 1.12.0 → 1.13.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-non-root.css +50 -26
- package/dist/css/dynamic-ui-non-root.min.css +1 -1
- package/dist/css/dynamic-ui-root.css +1 -1
- package/dist/css/dynamic-ui-root.min.css +1 -1
- package/dist/css/dynamic-ui.css +51 -27
- package/dist/css/dynamic-ui.min.css +1 -1
- package/dist/index.esm.js +17 -30
- package/dist/index.esm.js.map +1 -1
- package/dist/index.js +16 -30
- package/dist/index.js.map +1 -1
- package/dist/types/components/DCurrencyText/DCurrencyText.d.ts +0 -1
- package/dist/types/components/DMonthPicker/DMonthPicker.d.ts +1 -1
- package/dist/types/components/index.d.ts +0 -1
- package/dist/types/components/interface.d.ts +2 -0
- package/dist/types/contexts/DContext.d.ts +10 -6
- package/package.json +2 -2
- package/src/style/abstracts/variables/_+import.scss +1 -1
- package/src/style/abstracts/variables/_forms.scss +3 -2
- package/src/style/abstracts/variables/_navs.scss +1 -1
- package/src/style/abstracts/variables/_quick-action-check.scss +1 -1
- package/src/style/components/_d-datepicker.scss +18 -5
- package/src/style/components/_d-input.scss +18 -10
- package/src/style/components/_d-stepper-desktop.scss +1 -1
- package/src/style/components/_d-stepper-mobile.scss +5 -1
- package/src/style/components/_d-tabs.scss +5 -0
- package/dist/types/components/DListItemMovement/DListItemMovement.d.ts +0 -10
- package/dist/types/components/DListItemMovement/index.d.ts +0 -2
package/dist/index.js
CHANGED
|
@@ -232,13 +232,15 @@ const defaultState = {
|
|
|
232
232
|
separator: ',',
|
|
233
233
|
decimal: '.',
|
|
234
234
|
},
|
|
235
|
+
setContext: () => { },
|
|
235
236
|
};
|
|
236
237
|
const DContext = React.createContext(defaultState);
|
|
237
238
|
function DContextProvider({ language = defaultState.language, currency = defaultState.currency, children, }) {
|
|
238
|
-
const
|
|
239
|
+
const [internalContext, setInternalContext,] = React.useState({
|
|
239
240
|
language,
|
|
240
241
|
currency,
|
|
241
|
-
})
|
|
242
|
+
});
|
|
243
|
+
const value = React.useMemo(() => (Object.assign(Object.assign({}, internalContext), { setContext: (newValue) => setInternalContext(newValue) })), [internalContext]);
|
|
242
244
|
return (jsxRuntime.jsx(DContext.Provider, { value: value, children: children }));
|
|
243
245
|
}
|
|
244
246
|
function useDContext() {
|
|
@@ -439,7 +441,7 @@ function useProvidedRefOrCreate(providedRef) {
|
|
|
439
441
|
}
|
|
440
442
|
|
|
441
443
|
function DInput(_a, ref) {
|
|
442
|
-
var { id, style, className, label = '', labelIcon, labelIconFamilyClass, labelIconFamilyPrefix, disabled = false, readOnly = false, loading = false, iconFamilyClass, iconFamilyPrefix, iconStart, iconStartFamilyClass, iconStartFamilyPrefix, iconStartAriaLabel, iconStartTabIndex, iconEnd, iconEndFamilyClass, iconEndFamilyPrefix, iconEndAriaLabel, iconEndTabIndex, hint, invalid = false, valid = false, floatingLabel = false, inputStart, value, placeholder = '', onChange, onIconStartClick, onIconEndClick } = _a, inputProps = tslib.__rest(_a, ["id", "style", "className", "label", "labelIcon", "labelIconFamilyClass", "labelIconFamilyPrefix", "disabled", "readOnly", "loading", "iconFamilyClass", "iconFamilyPrefix", "iconStart", "iconStartFamilyClass", "iconStartFamilyPrefix", "iconStartAriaLabel", "iconStartTabIndex", "iconEnd", "iconEndFamilyClass", "iconEndFamilyPrefix", "iconEndAriaLabel", "iconEndTabIndex", "hint", "invalid", "valid", "floatingLabel", "inputStart", "value", "placeholder", "onChange", "onIconStartClick", "onIconEndClick"]);
|
|
444
|
+
var { id, style, className, label = '', labelIcon, labelIconFamilyClass, labelIconFamilyPrefix, disabled = false, readOnly = false, loading = false, iconFamilyClass, iconFamilyPrefix, iconStart, iconStartDisabled, iconStartFamilyClass, iconStartFamilyPrefix, iconStartAriaLabel, iconStartTabIndex, iconEnd, iconEndDisabled, iconEndFamilyClass, iconEndFamilyPrefix, iconEndAriaLabel, iconEndTabIndex, hint, invalid = false, valid = false, floatingLabel = false, inputStart, value, placeholder = '', onChange, onIconStartClick, onIconEndClick } = _a, inputProps = tslib.__rest(_a, ["id", "style", "className", "label", "labelIcon", "labelIconFamilyClass", "labelIconFamilyPrefix", "disabled", "readOnly", "loading", "iconFamilyClass", "iconFamilyPrefix", "iconStart", "iconStartDisabled", "iconStartFamilyClass", "iconStartFamilyPrefix", "iconStartAriaLabel", "iconStartTabIndex", "iconEnd", "iconEndDisabled", "iconEndFamilyClass", "iconEndFamilyPrefix", "iconEndAriaLabel", "iconEndTabIndex", "hint", "invalid", "valid", "floatingLabel", "inputStart", "value", "placeholder", "onChange", "onIconStartClick", "onIconEndClick"]);
|
|
443
445
|
const inputRef = useProvidedRefOrCreate(ref);
|
|
444
446
|
const handleOnChange = React.useCallback((event) => {
|
|
445
447
|
onChange === null || onChange === void 0 ? void 0 : onChange(event.currentTarget.value);
|
|
@@ -492,7 +494,7 @@ function DInput(_a, ref) {
|
|
|
492
494
|
'input-group': true,
|
|
493
495
|
'has-validation': invalid,
|
|
494
496
|
disabled: disabled || loading,
|
|
495
|
-
}), children: [!!inputStart && (jsxRuntime.jsx("div", { className: "input-group-text", children: inputStart })), iconStart && (jsxRuntime.jsx("button", { type: "button", className: "input-group-text", id: `${id}Start`, onClick: handleOnIconStartClick, disabled: disabled || loading, "aria-label": iconStartAriaLabel, tabIndex: iconStartTabIndex, children:
|
|
497
|
+
}), children: [!!inputStart && (jsxRuntime.jsx("div", { className: "input-group-text", children: inputStart })), iconStart && (jsxRuntime.jsx("button", { type: "button", className: "input-group-text", id: `${id}Start`, onClick: handleOnIconStartClick, disabled: disabled || loading || iconStartDisabled, "aria-label": iconStartAriaLabel, tabIndex: iconStartTabIndex, children: jsxRuntime.jsx(DIcon, { className: "d-input-icon", icon: iconStart, familyClass: iconStartFamilyClass, familyPrefix: iconStartFamilyPrefix }) })), dynamicComponent, ((invalid || valid) && !iconEnd && !loading) && (jsxRuntime.jsx("span", { className: "input-group-text", id: `${id}State`, children: jsxRuntime.jsx(DIcon, { className: "d-input-validation-icon", icon: invalid ? 'exclamation-circle' : 'check', familyClass: iconFamilyClass, familyPrefix: iconFamilyPrefix }) })), (iconEnd && !loading) && (jsxRuntime.jsx("button", { type: "button", className: "input-group-text", id: `${id}End`, onClick: handleOnIconEndClick, disabled: disabled || loading || iconEndDisabled, "aria-label": iconEndAriaLabel, tabIndex: iconEndTabIndex, children: jsxRuntime.jsx(DIcon, { className: "d-input-icon", icon: iconEnd, familyClass: iconEndFamilyClass, familyPrefix: iconEndFamilyPrefix }) })), loading && (jsxRuntime.jsx("div", { className: "input-group-text d-input-icon", children: jsxRuntime.jsx("span", { className: "spinner-border spinner-border-sm", role: "status", "aria-hidden": "true", children: jsxRuntime.jsx("span", { className: "visually-hidden", children: "Loading..." }) }) }))] }), hint && (jsxRuntime.jsx("div", { className: "form-text", id: `${id}Hint`, children: hint }))] })] }));
|
|
496
498
|
}
|
|
497
499
|
const ForwardedDInput = React.forwardRef(DInput);
|
|
498
500
|
ForwardedDInput.displayName = 'DInput';
|
|
@@ -514,10 +516,10 @@ ForwardedDDatePickerInput.displayName = 'DDatePickerInput';
|
|
|
514
516
|
var DDatePickerInput$1 = ForwardedDDatePickerInput;
|
|
515
517
|
|
|
516
518
|
function DMonthPicker(_a) {
|
|
517
|
-
var { onChangeDate, date, locale, className, headerPrevYearAriaLabel = 'decrease year', headerNextYearAriaLabel = 'increase year' } = _a, props = tslib.__rest(_a, ["onChangeDate", "date", "locale", "className", "headerPrevYearAriaLabel", "headerNextYearAriaLabel"]);
|
|
519
|
+
var { onChangeDate, date, locale, className, calendarClassName, headerPrevYearAriaLabel = 'decrease year', headerNextYearAriaLabel = 'increase year' } = _a, props = tslib.__rest(_a, ["onChangeDate", "date", "locale", "className", "calendarClassName", "headerPrevYearAriaLabel", "headerNextYearAriaLabel"]);
|
|
518
520
|
const selected = React.useMemo(() => dateFns.parseISO(date), [date]);
|
|
519
521
|
const dateFormatted = React.useMemo(() => (dateFns.format(new Date(date), 'MMMM yyyy', { locale })), [date, locale]);
|
|
520
|
-
return (jsxRuntime.jsx(DatePicker, Object.assign({ showMonthYearPicker: true, selected: selected, calendarClassName: classNames('d-month-picker',
|
|
522
|
+
return (jsxRuntime.jsx(DatePicker, Object.assign({ showMonthYearPicker: true, selected: selected, className: className, calendarClassName: classNames('d-month-picker', calendarClassName), onChange: onChangeDate }, locale && { locale }, { customInput: (jsxRuntime.jsx("p", { className: "fw-bold text-capitalize", children: dateFormatted })), renderCustomHeader: ({ monthDate, decreaseYear, increaseYear, prevYearButtonDisabled, nextYearButtonDisabled, }) => (jsxRuntime.jsxs("div", { className: "d-flex align-items-center justify-content-between gap-4 fs-6 bg-dark", children: [jsxRuntime.jsx(DButton, { iconStart: "chevron-left", size: "sm", variant: "link", theme: "light", onClick: decreaseYear, disabled: prevYearButtonDisabled, ariaLabel: headerPrevYearAriaLabel }), jsxRuntime.jsx("p", { className: "fs-6 fw-bold", children: monthDate.getFullYear() }), jsxRuntime.jsx(DButton, { iconStart: "chevron-right", size: "sm", variant: "link", theme: "light", onClick: increaseYear, disabled: nextYearButtonDisabled, ariaLabel: headerNextYearAriaLabel })] })) }, props)));
|
|
521
523
|
}
|
|
522
524
|
|
|
523
525
|
function DDatePickerHeader({ monthDate, changeMonth, changeYear, decreaseMonth, increaseMonth, prevMonthButtonDisabled, nextMonthButtonDisabled, withMonthSelector, prevMonthIcon, nextMonthIcon, prevMonthAriaLabel = 'decrease month', nextMonthAriaLabel = 'increase month', iconSize, buttonVariant, buttonTheme, locale, style, className, }) {
|
|
@@ -527,7 +529,7 @@ function DDatePickerHeader({ monthDate, changeMonth, changeYear, decreaseMonth,
|
|
|
527
529
|
changeYear(dateFns.getYear(value));
|
|
528
530
|
}
|
|
529
531
|
}, [changeMonth, changeYear]);
|
|
530
|
-
return (jsxRuntime.jsxs("div", { className: classNames('d-flex align-items-center justify-content-between d-datepicker-header', className), style: style, children: [jsxRuntime.jsx(DButton, { iconStart: prevMonthIcon, size: iconSize, variant: buttonVariant, theme: buttonTheme, onClick: decreaseMonth, disabled: prevMonthButtonDisabled, ariaLabel: prevMonthAriaLabel }), jsxRuntime.jsx(DMonthPicker, Object.assign({}, !withMonthSelector && { readOnly: true }, { date: monthDate.toISOString(), onChangeDate: onChangeDate }, locale && { locale })), jsxRuntime.jsx(DButton, { iconStart: nextMonthIcon, size: iconSize, variant: buttonVariant, theme: buttonTheme, onClick: increaseMonth, disabled: nextMonthButtonDisabled, ariaLabel: nextMonthAriaLabel })] }));
|
|
532
|
+
return (jsxRuntime.jsxs("div", { className: classNames('d-flex align-items-center justify-content-between d-datepicker-header', className), style: style, children: [jsxRuntime.jsx(DButton, { iconStart: prevMonthIcon, size: iconSize, variant: buttonVariant, theme: buttonTheme, onClick: decreaseMonth, disabled: prevMonthButtonDisabled, ariaLabel: prevMonthAriaLabel }), jsxRuntime.jsx(DMonthPicker, Object.assign({}, !withMonthSelector && { readOnly: true }, withMonthSelector && { className: 'cursor-pointer' }, { date: monthDate.toISOString(), onChangeDate: onChangeDate }, locale && { locale })), jsxRuntime.jsx(DButton, { iconStart: nextMonthIcon, size: iconSize, variant: buttonVariant, theme: buttonTheme, onClick: increaseMonth, disabled: nextMonthButtonDisabled, ariaLabel: nextMonthAriaLabel })] }));
|
|
531
533
|
}
|
|
532
534
|
|
|
533
535
|
function DDatePicker(_a) {
|
|
@@ -579,7 +581,11 @@ function DInputCounter(_a, ref) {
|
|
|
579
581
|
React.useEffect(() => {
|
|
580
582
|
setInternalIsInvalid(!(internalValue >= minValue && internalValue <= maxValue));
|
|
581
583
|
}, [internalValue, minValue, maxValue]);
|
|
582
|
-
return (jsxRuntime.jsx(DInput$1, Object.assign({ ref: inputRef, value: valueString, style: generateStyleVariables, iconStart: iconStart, iconEnd: iconEnd, invalid: internalIsInvalid || invalid, type: "number", onChange: handleOnChange, onIconStartClick: handleOnIconStartClick, onIconEndClick: handleOnIconEndClick, iconStartAriaLabel: iconStartAriaLabel, iconEndAriaLabel: iconEndAriaLabel },
|
|
584
|
+
return (jsxRuntime.jsx(DInput$1, Object.assign({ ref: inputRef, value: valueString, style: generateStyleVariables, iconStart: iconStart, iconEnd: iconEnd, invalid: internalIsInvalid || invalid, type: "number", onChange: handleOnChange, onIconStartClick: handleOnIconStartClick, onIconEndClick: handleOnIconEndClick, iconStartAriaLabel: iconStartAriaLabel, iconEndAriaLabel: iconEndAriaLabel }, internalValue === minValue && {
|
|
585
|
+
iconStartDisabled: true,
|
|
586
|
+
}, internalValue === maxValue && {
|
|
587
|
+
iconEndDisabled: true,
|
|
588
|
+
}, props)));
|
|
583
589
|
}
|
|
584
590
|
const ForwardedDInputCounter = React.forwardRef(DInputCounter);
|
|
585
591
|
ForwardedDInputCounter.displayName = 'DInputCounter';
|
|
@@ -654,7 +660,7 @@ function useInputCurrency(currencyOptions, value, onFocus, onChange, onBlur, ref
|
|
|
654
660
|
}
|
|
655
661
|
|
|
656
662
|
function DInputCurrencyBase(_a, ref) {
|
|
657
|
-
var { value, minValue, maxValue, currencyOptions, currencyCode,
|
|
663
|
+
var { value, minValue, maxValue, currencyOptions, currencyCode, onFocus, onBlur, onChange } = _a, inputProps = tslib.__rest(_a, ["value", "minValue", "maxValue", "currencyOptions", "currencyCode", "onFocus", "onBlur", "onChange"]);
|
|
658
664
|
const { inputRef, innerValue, innerType, handleOnFocus, handleOnChange, handleOnBlur, handleOnWheel, generateStyleVariables, generateSymbolStyleVariables, } = useInputCurrency(currencyOptions, value, onFocus, onChange, onBlur, ref);
|
|
659
665
|
return (jsxRuntime.jsx(DInput$1, Object.assign({ ref: inputRef, value: innerValue, onChange: handleOnChange, style: generateStyleVariables, inputMode: "decimal", pattern: "^[0-9]", type: innerType, onFocus: handleOnFocus, onBlur: handleOnBlur, onWheel: handleOnWheel, inputStart: (jsxRuntime.jsx("span", { slot: "input-start", style: generateSymbolStyleVariables, children: currencyCode || currencyOptions.symbol })) }, inputProps)));
|
|
660
666
|
}
|
|
@@ -663,7 +669,7 @@ ForwardedDInputCurrencyBase$1.displayName = 'DInputCurrencyBase';
|
|
|
663
669
|
var DInputCurrencyBase$1 = ForwardedDInputCurrencyBase$1;
|
|
664
670
|
|
|
665
671
|
function DInputCurrency(_a, ref) {
|
|
666
|
-
var { value, minValue, maxValue, currencyCode,
|
|
672
|
+
var { value, minValue, maxValue, currencyCode, onFocus, onBlur, onChange } = _a, props = tslib.__rest(_a, ["value", "minValue", "maxValue", "currencyCode", "onFocus", "onBlur", "onChange"]);
|
|
667
673
|
const { currency: currencyOptions } = useDContext();
|
|
668
674
|
const { inputRef, innerValue, innerType, handleOnFocus, handleOnChange, handleOnBlur, handleOnWheel, generateStyleVariables, generateSymbolStyleVariables, } = useInputCurrency(currencyOptions, value, onFocus, onChange, onBlur, ref);
|
|
669
675
|
return (jsxRuntime.jsx(DInput$1, Object.assign({ ref: inputRef, value: innerValue, onChange: handleOnChange, style: generateStyleVariables, inputMode: "decimal", pattern: "^[0-9]", type: innerType, onFocus: handleOnFocus, onBlur: handleOnBlur, onWheel: handleOnWheel, inputStart: (jsxRuntime.jsx("span", { slot: "input-start", style: generateSymbolStyleVariables, children: currencyCode || currencyOptions.symbol })) }, props)));
|
|
@@ -876,25 +882,6 @@ var DList$1 = Object.assign(DList, {
|
|
|
876
882
|
Item: DListItem,
|
|
877
883
|
});
|
|
878
884
|
|
|
879
|
-
function DListItemMovement(_a) {
|
|
880
|
-
var { description, date, amount, className, style } = _a, props = tslib.__rest(_a, ["description", "date", "amount", "className", "style"]);
|
|
881
|
-
const { format } = useFormatCurrency();
|
|
882
|
-
const value = React.useMemo(() => {
|
|
883
|
-
const valueFormatted = format(amount);
|
|
884
|
-
if (amount > 0) {
|
|
885
|
-
return {
|
|
886
|
-
theme: 'text-success',
|
|
887
|
-
valueFormatted,
|
|
888
|
-
};
|
|
889
|
-
}
|
|
890
|
-
return {
|
|
891
|
-
theme: 'text-danger',
|
|
892
|
-
valueFormatted,
|
|
893
|
-
};
|
|
894
|
-
}, [format, amount]);
|
|
895
|
-
return (jsxRuntime.jsx(DListItem, Object.assign({}, props, { children: jsxRuntime.jsxs("div", { className: classNames('d-flex justify-content-between align-items-center p-3 gap-3', className), style: style, children: [jsxRuntime.jsxs("div", { className: "d-flex flex-column gap-1", children: [jsxRuntime.jsx("span", { className: "fs-6", children: description }), jsxRuntime.jsx("span", { className: "small text-gray-700", children: date })] }), jsxRuntime.jsx("span", { className: classNames('fs-6', value.theme), children: value.valueFormatted })] }) })));
|
|
896
|
-
}
|
|
897
|
-
|
|
898
885
|
function DModalHeader({ showCloseButton, onClose, children, className, style, }) {
|
|
899
886
|
return (jsxRuntime.jsxs("div", { className: classNames('modal-header', className), style: style, children: [jsxRuntime.jsx("div", { className: "d-modal-slot", children: children }), showCloseButton && (jsxRuntime.jsx("button", { type: "button", className: "d-modal-close", "aria-label": "Close", onClick: onClose, children: jsxRuntime.jsx(DIcon, { icon: "x-lg" }) }))] }));
|
|
900
887
|
}
|
|
@@ -1276,7 +1263,6 @@ exports.DInputSelect = DInputSelect;
|
|
|
1276
1263
|
exports.DInputSwitch = DInputSwitch;
|
|
1277
1264
|
exports.DList = DList$1;
|
|
1278
1265
|
exports.DListItem = DListItem;
|
|
1279
|
-
exports.DListItemMovement = DListItemMovement;
|
|
1280
1266
|
exports.DModal = DModal$1;
|
|
1281
1267
|
exports.DModalBody = DModalBody;
|
|
1282
1268
|
exports.DModalContext = DModalContext;
|