@dynamic-framework/ui-react 2.10.0 → 2.11.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/DPortalStack-6zJm6JoD.js +14 -0
- package/dist/DPortalStack-6zJm6JoD.js.map +1 -0
- package/dist/DPortalStack-D1-GGU4C.js +12 -0
- package/dist/DPortalStack-D1-GGU4C.js.map +1 -0
- package/dist/api.json +7429 -0
- package/dist/css/dynamic-ui.css +95 -26
- package/dist/css/dynamic-ui.min.css +2 -2
- package/dist/esm/components/DAlert/DAlert.js +2 -2
- package/dist/esm/components/DAlert/DAlert.js.map +1 -1
- package/dist/esm/components/DButtonIcon/DButtonIcon.js +6 -3
- package/dist/esm/components/DButtonIcon/DButtonIcon.js.map +1 -1
- package/dist/esm/components/DDataStateWrapper/DDataStateWrapper.js +10 -3
- package/dist/esm/components/DDataStateWrapper/DDataStateWrapper.js.map +1 -1
- package/dist/esm/components/DErrorBoundary/DErrorBoundary.js +3 -3
- package/dist/esm/components/DErrorBoundary/DErrorBoundary.js.map +1 -1
- package/dist/esm/components/DErrorBoundary/components/DefaultErrorBoundary.js +2 -2
- package/dist/esm/components/DErrorBoundary/components/DefaultErrorBoundary.js.map +1 -1
- package/dist/esm/components/DInput/DInput.js +15 -3
- package/dist/esm/components/DInput/DInput.js.map +1 -1
- package/dist/esm/components/DInputCheck/DInputCheck.js +45 -8
- package/dist/esm/components/DInputCheck/DInputCheck.js.map +1 -1
- package/dist/esm/components/DInputCounter/DInputCounter.js +78 -20
- package/dist/esm/components/DInputCounter/DInputCounter.js.map +1 -1
- package/dist/esm/components/DInputCurrency/DInputCurrency.js +8 -3
- package/dist/esm/components/DInputCurrency/DInputCurrency.js.map +1 -1
- package/dist/esm/components/DInputPhone/DInputPhone.js +14 -2
- package/dist/esm/components/DInputPhone/DInputPhone.js.map +1 -1
- package/dist/esm/components/DInputPin/DInputPin.js +3 -1
- package/dist/esm/components/DInputPin/DInputPin.js.map +1 -1
- package/dist/esm/components/DInputRange/DInputRange.js +16 -2
- package/dist/esm/components/DInputRange/DInputRange.js.map +1 -1
- package/dist/esm/components/DInputSelect/DInputSelect.js +18 -4
- package/dist/esm/components/DInputSelect/DInputSelect.js.map +1 -1
- package/dist/esm/components/DInputSwitch/DInputSwitch.js +20 -9
- package/dist/esm/components/DInputSwitch/DInputSwitch.js.map +1 -1
- package/dist/esm/components/DListGroup/DListGroup.js +10 -2
- package/dist/esm/components/DListGroup/DListGroup.js.map +1 -1
- package/dist/esm/components/DListGroup/ListGroupContext.js +11 -0
- package/dist/esm/components/DListGroup/ListGroupContext.js.map +1 -0
- package/dist/esm/components/DListGroup/components/DListGroupItem.js +34 -16
- package/dist/esm/components/DListGroup/components/DListGroupItem.js.map +1 -1
- package/dist/esm/components/DListGroup/components/warnInvalidListMarkup.js +30 -0
- package/dist/esm/components/DListGroup/components/warnInvalidListMarkup.js.map +1 -0
- package/dist/esm/components/DPasswordStrengthMeter/DPasswordStrengthMeter.js +2 -2
- package/dist/esm/components/DPasswordStrengthMeter/DPasswordStrengthMeter.js.map +1 -1
- package/dist/esm/components/DProgress/DProgress.js +9 -3
- package/dist/esm/components/DProgress/DProgress.js.map +1 -1
- package/dist/esm/components/DSelect/DSelect.js +31 -3
- package/dist/esm/components/DSelect/DSelect.js.map +1 -1
- package/dist/esm/components/DSelect/createAriaGuidance.js +57 -0
- package/dist/esm/components/DSelect/createAriaGuidance.js.map +1 -0
- package/dist/esm/components/DTabs/DTabs.js +29 -40
- package/dist/esm/components/DTabs/DTabs.js.map +1 -1
- package/dist/esm/components/DTabs/TabContext.js +3 -2
- package/dist/esm/components/DTabs/TabContext.js.map +1 -1
- package/dist/esm/components/DTabs/components/DTabContent.js +2 -2
- package/dist/esm/components/DTabs/components/DTabContent.js.map +1 -1
- package/dist/esm/components/DTabs/components/DTabsProvider.js +22 -0
- package/dist/esm/components/DTabs/components/DTabsProvider.js.map +1 -0
- package/dist/esm/components/DTabs/index.js +1 -0
- package/dist/esm/components/DTabs/index.js.map +1 -1
- package/dist/esm/components/DToast/DToast.js +7 -2
- package/dist/esm/components/DToast/DToast.js.map +1 -1
- package/dist/esm/components/DToastContainer/useDToast.js +5 -5
- package/dist/esm/components/DToastContainer/useDToast.js.map +1 -1
- package/dist/esm/components/internal/DFormLabel.js +46 -0
- package/dist/esm/components/internal/DFormLabel.js.map +1 -0
- package/dist/esm/contexts/DPortalContext.js +43 -8
- package/dist/esm/contexts/DPortalContext.js.map +1 -1
- package/dist/esm/contexts/portal/DPortalStack.js +12 -0
- package/dist/esm/contexts/portal/DPortalStack.js.map +1 -0
- package/dist/esm/hooks/useControlledState.js +51 -0
- package/dist/esm/hooks/useControlledState.js.map +1 -0
- package/dist/esm/hooks/useInputCurrency.js +73 -19
- package/dist/esm/hooks/useInputCurrency.js.map +1 -1
- package/dist/esm/hooks/useMediaBreakpointUp.js +42 -3
- package/dist/esm/hooks/useMediaBreakpointUp.js.map +1 -1
- package/dist/esm/hooks/useResponsiveProp.js +13 -2
- package/dist/esm/hooks/useResponsiveProp.js.map +1 -1
- package/dist/esm/index.js +1 -0
- package/dist/esm/index.js.map +1 -1
- package/dist/esm/utils/hasLabelContent.js +48 -0
- package/dist/esm/utils/hasLabelContent.js.map +1 -0
- package/dist/esm/utils/isTextLabel.js +23 -0
- package/dist/esm/utils/isTextLabel.js.map +1 -0
- package/dist/esm/utils/labelClickGuard.js +61 -0
- package/dist/esm/utils/labelClickGuard.js.map +1 -0
- package/dist/esm/utils/warnLabelUsage.js +57 -0
- package/dist/esm/utils/warnLabelUsage.js.map +1 -0
- package/dist/icons-core.json +1 -1
- package/dist/index.esm.js +865 -163
- package/dist/index.esm.js.map +1 -1
- package/dist/index.js +864 -161
- package/dist/index.js.map +1 -1
- package/dist/types/components/DAlert/DAlert.d.ts +16 -2
- package/dist/types/components/DButtonIcon/DButtonIcon.d.ts +9 -1
- package/dist/types/components/DDataStateWrapper/DDataStateWrapper.d.ts +29 -4
- package/dist/types/components/DDataStateWrapper/index.d.ts +1 -1
- package/dist/types/components/DErrorBoundary/DErrorBoundary.d.ts +6 -1
- package/dist/types/components/DErrorBoundary/components/DefaultErrorBoundary.d.ts +3 -1
- package/dist/types/components/DInput/DInput.d.ts +11 -2
- package/dist/types/components/DInputCheck/DInputCheck.d.ts +28 -3
- package/dist/types/components/DInputCounter/DInputCounter.d.ts +15 -3
- package/dist/types/components/DInputCurrency/DInputCurrency.d.ts +10 -3
- package/dist/types/components/DInputPhone/DInputPhone.d.ts +11 -2
- package/dist/types/components/DInputPin/DInputPin.d.ts +12 -2
- package/dist/types/components/DInputRange/DInputRange.d.ts +15 -2
- package/dist/types/components/DInputSelect/DInputSelect.d.ts +18 -3
- package/dist/types/components/DInputSwitch/DInputSwitch.d.ts +28 -3
- package/dist/types/components/DListGroup/DListGroup.d.ts +12 -1
- package/dist/types/components/DListGroup/ListGroupContext.d.ts +8 -0
- package/dist/types/components/DListGroup/components/DListGroupItem.d.ts +6 -1
- package/dist/types/components/DListGroup/components/warnInvalidListMarkup.d.ts +13 -0
- package/dist/types/components/DPasswordStrengthMeter/DPasswordStrengthMeter.d.ts +18 -3
- package/dist/types/components/DProgress/DProgress.d.ts +13 -1
- package/dist/types/components/DSelect/DSelect.d.ts +23 -3
- package/dist/types/components/DSelect/createAriaGuidance.d.ts +21 -0
- package/dist/types/components/DTabs/DTabs.d.ts +13 -2
- package/dist/types/components/DTabs/TabContext.d.ts +5 -0
- package/dist/types/components/DTabs/components/DTabsProvider.d.ts +11 -0
- package/dist/types/components/DTabs/index.d.ts +1 -0
- package/dist/types/components/DToast/DToast.d.ts +10 -3
- package/dist/types/components/DToastContainer/useDToast.d.ts +8 -1
- package/dist/types/components/index.d.ts +2 -2
- package/dist/types/components/interface.d.ts +7 -0
- package/dist/types/components/internal/DFormLabel.d.ts +30 -0
- package/dist/types/contexts/portal/DPortalStack.d.ts +13 -0
- package/dist/types/hooks/useControlledState.d.ts +17 -0
- package/dist/types/hooks/useInputCurrency.d.ts +26 -1
- package/dist/types/hooks/useMediaBreakpointUp.d.ts +10 -0
- package/dist/types/utils/hasLabelContent.d.ts +30 -0
- package/dist/types/utils/isTextLabel.d.ts +17 -0
- package/dist/types/utils/labelClickGuard.d.ts +20 -0
- package/dist/types/utils/warnLabelUsage.d.ts +43 -0
- package/package.json +8 -3
- package/src/style/abstracts/variables/_body.scss +2 -2
- package/src/style/abstracts/variables/_chips.scss +2 -0
- package/src/style/abstracts/variables/_colors.scss +2 -2
- package/src/style/base/_buttons.scss +4 -1
- package/src/style/base/_input-group.scss +5 -2
- package/src/style/base/_list-group.scss +55 -0
- package/src/style/components/_d-chip.scss +7 -2
- package/src/style/components/_d-tabs.scss +3 -0
- package/src/style/helpers/_color-bg.scss +5 -0
- package/src/style/root/_root.scss +9 -0
|
@@ -4,12 +4,12 @@ import { useMemo } from 'react';
|
|
|
4
4
|
import DIcon from '../DIcon/DIcon.js';
|
|
5
5
|
import { useDContext } from '../../contexts/DContext.js';
|
|
6
6
|
|
|
7
|
-
function DAlert({ color = 'success', icon: iconProp, iconFamilyClass, iconFamilyPrefix, iconMaterialStyle, iconClose: iconCloseProp, iconCloseFamilyClass, iconCloseFamilyPrefix, iconCloseMaterialStyle, showClose, onClose, children, id, className, style, dataAttributes, }) {
|
|
7
|
+
function DAlert({ color = 'success', role = 'alert', icon: iconProp, showIcon = true, iconFamilyClass, iconFamilyPrefix, iconMaterialStyle, iconClose: iconCloseProp, iconCloseFamilyClass, iconCloseFamilyPrefix, iconCloseMaterialStyle, showClose, closeAriaLabel = 'Close', onClose, children, id, className, style, dataAttributes, }) {
|
|
8
8
|
const { icon: { materialStyle, familyClass, familyPrefix, }, iconMap: { alert, xLg, }, } = useDContext();
|
|
9
9
|
const icon = useMemo(() => iconProp || alert[color], [alert, iconProp, color]);
|
|
10
10
|
const iconClose = useMemo(() => (iconCloseProp || xLg), [iconCloseProp, xLg]);
|
|
11
11
|
const generateClasses = useMemo(() => (Object.assign({ alert: true, [`alert-${color}`]: true, 'fade show': !!showClose }, className && { [className]: true })), [color, showClose, className]);
|
|
12
|
-
return (jsxs("div", Object.assign({ className: classNames(generateClasses), style: style, role
|
|
12
|
+
return (jsxs("div", Object.assign({ className: classNames(generateClasses), style: style }, role !== 'none' && { role }, { id: id }, dataAttributes, { children: [showIcon && icon && (jsx(DIcon, { className: "alert-icon", icon: icon, familyClass: iconFamilyClass !== null && iconFamilyClass !== void 0 ? iconFamilyClass : familyClass, familyPrefix: iconFamilyPrefix !== null && iconFamilyPrefix !== void 0 ? iconFamilyPrefix : familyPrefix, materialStyle: iconMaterialStyle !== null && iconMaterialStyle !== void 0 ? iconMaterialStyle : materialStyle })), jsx("div", { className: "alert-text", children: children }), showClose && (jsx("button", { type: "button", className: "d-close", "aria-label": closeAriaLabel, onClick: onClose, children: jsx(DIcon, { icon: iconClose, familyClass: iconCloseFamilyClass !== null && iconCloseFamilyClass !== void 0 ? iconCloseFamilyClass : familyClass, familyPrefix: iconCloseFamilyPrefix !== null && iconCloseFamilyPrefix !== void 0 ? iconCloseFamilyPrefix : familyPrefix, materialStyle: iconCloseMaterialStyle !== null && iconCloseMaterialStyle !== void 0 ? iconCloseMaterialStyle : materialStyle }) }))] })));
|
|
13
13
|
}
|
|
14
14
|
|
|
15
15
|
export { DAlert as default };
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"DAlert.js","sources":["../../../../dist-transpiled/components/DAlert/DAlert.js"],"sourcesContent":["import { jsx as _jsx, jsxs as _jsxs } from \"react/jsx-runtime\";\nimport classNames from 'classnames';\nimport { useMemo } from 'react';\nimport DIcon from '../DIcon';\nimport { useDContext } from '../../contexts';\nexport default function DAlert({ color = 'success', icon: iconProp, iconFamilyClass, iconFamilyPrefix, iconMaterialStyle, iconClose: iconCloseProp, iconCloseFamilyClass, iconCloseFamilyPrefix, iconCloseMaterialStyle, showClose, onClose, children, id, className, style, dataAttributes, }) {\n const { icon: { materialStyle, familyClass, familyPrefix, }, iconMap: { alert, xLg, }, } = useDContext();\n const icon = useMemo(() => iconProp || alert[color], [alert, iconProp, color]);\n const iconClose = useMemo(() => (iconCloseProp || xLg), [iconCloseProp, xLg]);\n const generateClasses = useMemo(() => (Object.assign({ alert: true, [`alert-${color}`]: true, 'fade show': !!showClose }, className && { [className]: true })), [color, showClose, className]);\n return (_jsxs(\"div\", Object.assign({ className: classNames(generateClasses), style: style, role
|
|
1
|
+
{"version":3,"file":"DAlert.js","sources":["../../../../dist-transpiled/components/DAlert/DAlert.js"],"sourcesContent":["import { jsx as _jsx, jsxs as _jsxs } from \"react/jsx-runtime\";\nimport classNames from 'classnames';\nimport { useMemo } from 'react';\nimport DIcon from '../DIcon';\nimport { useDContext } from '../../contexts';\nexport default function DAlert({ color = 'success', role = 'alert', icon: iconProp, showIcon = true, iconFamilyClass, iconFamilyPrefix, iconMaterialStyle, iconClose: iconCloseProp, iconCloseFamilyClass, iconCloseFamilyPrefix, iconCloseMaterialStyle, showClose, closeAriaLabel = 'Close', onClose, children, id, className, style, dataAttributes, }) {\n const { icon: { materialStyle, familyClass, familyPrefix, }, iconMap: { alert, xLg, }, } = useDContext();\n const icon = useMemo(() => iconProp || alert[color], [alert, iconProp, color]);\n const iconClose = useMemo(() => (iconCloseProp || xLg), [iconCloseProp, xLg]);\n const generateClasses = useMemo(() => (Object.assign({ alert: true, [`alert-${color}`]: true, 'fade show': !!showClose }, className && { [className]: true })), [color, showClose, className]);\n return (_jsxs(\"div\", Object.assign({ className: classNames(generateClasses), style: style }, role !== 'none' && { role }, { id: id }, dataAttributes, { children: [showIcon && icon && (_jsx(DIcon, { className: \"alert-icon\", icon: icon, familyClass: iconFamilyClass !== null && iconFamilyClass !== void 0 ? iconFamilyClass : familyClass, familyPrefix: iconFamilyPrefix !== null && iconFamilyPrefix !== void 0 ? iconFamilyPrefix : familyPrefix, materialStyle: iconMaterialStyle !== null && iconMaterialStyle !== void 0 ? iconMaterialStyle : materialStyle })), _jsx(\"div\", { className: \"alert-text\", children: children }), showClose && (_jsx(\"button\", { type: \"button\", className: \"d-close\", \"aria-label\": closeAriaLabel, onClick: onClose, children: _jsx(DIcon, { icon: iconClose, familyClass: iconCloseFamilyClass !== null && iconCloseFamilyClass !== void 0 ? iconCloseFamilyClass : familyClass, familyPrefix: iconCloseFamilyPrefix !== null && iconCloseFamilyPrefix !== void 0 ? iconCloseFamilyPrefix : familyPrefix, materialStyle: iconCloseMaterialStyle !== null && iconCloseMaterialStyle !== void 0 ? iconCloseMaterialStyle : materialStyle }) }))] })));\n}\n//# sourceMappingURL=DAlert.js.map"],"names":["_jsxs","_jsx"],"mappings":";;;;;;AAKe,SAAS,MAAM,CAAC,EAAE,KAAK,GAAG,SAAS,EAAE,IAAI,GAAG,OAAO,EAAE,IAAI,EAAE,QAAQ,EAAE,QAAQ,GAAG,IAAI,EAAE,eAAe,EAAE,gBAAgB,EAAE,iBAAiB,EAAE,SAAS,EAAE,aAAa,EAAE,oBAAoB,EAAE,qBAAqB,EAAE,sBAAsB,EAAE,SAAS,EAAE,cAAc,GAAG,OAAO,EAAE,OAAO,EAAE,QAAQ,EAAE,EAAE,EAAE,SAAS,EAAE,KAAK,EAAE,cAAc,GAAG,EAAE;AAC3V,IAAI,MAAM,EAAE,IAAI,EAAE,EAAE,aAAa,EAAE,WAAW,EAAE,YAAY,GAAG,EAAE,OAAO,EAAE,EAAE,KAAK,EAAE,GAAG,GAAG,GAAG,GAAG,WAAW,EAAE;AAC5G,IAAI,MAAM,IAAI,GAAG,OAAO,CAAC,MAAM,QAAQ,IAAI,KAAK,CAAC,KAAK,CAAC,EAAE,CAAC,KAAK,EAAE,QAAQ,EAAE,KAAK,CAAC,CAAC;AAClF,IAAI,MAAM,SAAS,GAAG,OAAO,CAAC,OAAO,aAAa,IAAI,GAAG,CAAC,EAAE,CAAC,aAAa,EAAE,GAAG,CAAC,CAAC;AACjF,IAAI,MAAM,eAAe,GAAG,OAAO,CAAC,OAAO,MAAM,CAAC,MAAM,CAAC,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC,MAAM,EAAE,KAAK,CAAC,CAAC,GAAG,IAAI,EAAE,WAAW,EAAE,CAAC,CAAC,SAAS,EAAE,EAAE,SAAS,IAAI,EAAE,CAAC,SAAS,GAAG,IAAI,EAAE,CAAC,CAAC,EAAE,CAAC,KAAK,EAAE,SAAS,EAAE,SAAS,CAAC,CAAC;AAClM,IAAI,QAAQA,IAAK,CAAC,KAAK,EAAE,MAAM,CAAC,MAAM,CAAC,EAAE,SAAS,EAAE,UAAU,CAAC,eAAe,CAAC,EAAE,KAAK,EAAE,KAAK,EAAE,EAAE,IAAI,KAAK,MAAM,IAAI,EAAE,IAAI,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,cAAc,EAAE,EAAE,QAAQ,EAAE,CAAC,QAAQ,IAAI,IAAI,KAAKC,GAAI,CAAC,KAAK,EAAE,EAAE,SAAS,EAAE,YAAY,EAAE,IAAI,EAAE,IAAI,EAAE,WAAW,EAAE,eAAe,KAAK,IAAI,IAAI,eAAe,KAAK,MAAM,GAAG,eAAe,GAAG,WAAW,EAAE,YAAY,EAAE,gBAAgB,KAAK,IAAI,IAAI,gBAAgB,KAAK,MAAM,GAAG,gBAAgB,GAAG,YAAY,EAAE,aAAa,EAAE,iBAAiB,KAAK,IAAI,IAAI,iBAAiB,KAAK,MAAM,GAAG,iBAAiB,GAAG,aAAa,EAAE,CAAC,CAAC,EAAEA,GAAI,CAAC,KAAK,EAAE,EAAE,SAAS,EAAE,YAAY,EAAE,QAAQ,EAAE,QAAQ,EAAE,CAAC,EAAE,SAAS,KAAKA,GAAI,CAAC,QAAQ,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,SAAS,EAAE,SAAS,EAAE,YAAY,EAAE,cAAc,EAAE,OAAO,EAAE,OAAO,EAAE,QAAQ,EAAEA,GAAI,CAAC,KAAK,EAAE,EAAE,IAAI,EAAE,SAAS,EAAE,WAAW,EAAE,oBAAoB,KAAK,IAAI,IAAI,oBAAoB,KAAK,MAAM,GAAG,oBAAoB,GAAG,WAAW,EAAE,YAAY,EAAE,qBAAqB,KAAK,IAAI,IAAI,qBAAqB,KAAK,MAAM,GAAG,qBAAqB,GAAG,YAAY,EAAE,aAAa,EAAE,sBAAsB,KAAK,IAAI,IAAI,sBAAsB,KAAK,MAAM,GAAG,sBAAsB,GAAG,aAAa,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;AACloC;;;;"}
|
|
@@ -7,7 +7,7 @@ import warnMissingAccessibleName from './warnMissingAccessibleName.js';
|
|
|
7
7
|
import { useDContext } from '../../contexts/DContext.js';
|
|
8
8
|
|
|
9
9
|
function DButtonIcon(_a) {
|
|
10
|
-
var { id, icon, size, className, variant, state, loadingAriaLabel, iconMaterialStyle, disabled = false, color = 'primary', loading = false, href, target, rel, stopPropagationEnabled = true, style, iconFamilyClass, iconFamilyPrefix, dataAttributes, onClick, 'aria-label': ariaLabelProp } = _a, rest = __rest(_a, ["id", "icon", "size", "className", "variant", "state", "loadingAriaLabel", "iconMaterialStyle", "disabled", "color", "loading", "href", "target", "rel", "stopPropagationEnabled", "style", "iconFamilyClass", "iconFamilyPrefix", "dataAttributes", "onClick", 'aria-label']);
|
|
10
|
+
var { id, icon, size, iconSize, className, variant, state, loadingAriaLabel, iconMaterialStyle, disabled = false, color = 'primary', loading = false, href, target, rel, stopPropagationEnabled = true, style, iconFamilyClass, iconFamilyPrefix, dataAttributes, onClick, 'aria-label': ariaLabelProp } = _a, rest = __rest(_a, ["id", "icon", "size", "iconSize", "className", "variant", "state", "loadingAriaLabel", "iconMaterialStyle", "disabled", "color", "loading", "href", "target", "rel", "stopPropagationEnabled", "style", "iconFamilyClass", "iconFamilyPrefix", "dataAttributes", "onClick", 'aria-label']);
|
|
11
11
|
const { icon: { familyClass, familyPrefix, materialStyle, }, } = useDContext();
|
|
12
12
|
const generateClasses = useMemo(() => {
|
|
13
13
|
const variantClass = !variant || variant === 'solid'
|
|
@@ -15,6 +15,9 @@ function DButtonIcon(_a) {
|
|
|
15
15
|
: `btn-${variant}-${color}`;
|
|
16
16
|
return Object.assign(Object.assign(Object.assign({ 'btn d-button-icon': true, [variantClass]: true }, size && { [`btn-${size}`]: true }), (state && state !== 'disabled') && { [state]: true }), { loading });
|
|
17
17
|
}, [variant, color, size, state, loading]);
|
|
18
|
+
// A responsive iconSize has to follow viewport changes, so DIcon only
|
|
19
|
+
// listens to breakpoints when it gets an object; a plain string needs none.
|
|
20
|
+
const useIconSizeListener = typeof iconSize === 'object';
|
|
18
21
|
const isDisabled = useMemo(() => (state === 'disabled' || loading || disabled), [state, loading, disabled]);
|
|
19
22
|
const clickHandler = useCallback((event) => {
|
|
20
23
|
if (stopPropagationEnabled) {
|
|
@@ -41,11 +44,11 @@ function DButtonIcon(_a) {
|
|
|
41
44
|
if (href) {
|
|
42
45
|
return (jsx("a", Object.assign({ id: id, href: href, target: target, rel: rel, className: classNames(generateClasses, className), style: style, onClick: clickHandler, "aria-label": ariaLabel, "aria-disabled": isDisabled }, dataAttributes, { children: loading
|
|
43
46
|
? (jsx("span", { className: "spinner-border spinner-border-sm", role: "status", "aria-hidden": "true", children: jsx("span", { className: "visually-hidden", children: "Loading..." }) }))
|
|
44
|
-
: (jsx(DIcon, { icon: icon, familyClass: iconFamilyClass !== null && iconFamilyClass !== void 0 ? iconFamilyClass : familyClass, familyPrefix: iconFamilyPrefix !== null && iconFamilyPrefix !== void 0 ? iconFamilyPrefix : familyPrefix, materialStyle: iconMaterialStyle !== null && iconMaterialStyle !== void 0 ? iconMaterialStyle : materialStyle })) })));
|
|
47
|
+
: (jsx(DIcon, { icon: icon, size: iconSize, useListenerSize: useIconSizeListener, familyClass: iconFamilyClass !== null && iconFamilyClass !== void 0 ? iconFamilyClass : familyClass, familyPrefix: iconFamilyPrefix !== null && iconFamilyPrefix !== void 0 ? iconFamilyPrefix : familyPrefix, materialStyle: iconMaterialStyle !== null && iconMaterialStyle !== void 0 ? iconMaterialStyle : materialStyle })) })));
|
|
45
48
|
}
|
|
46
49
|
return (jsx("button", Object.assign({ className: classNames(generateClasses, className), style: style, disabled: state === 'disabled' || loading, onClick: clickHandler, "aria-label": ariaLabel }, dataAttributes, rest, { children: loading
|
|
47
50
|
? (jsx("span", { className: "spinner-border spinner-border-sm", role: "status", "aria-hidden": "true", children: jsx("span", { className: "visually-hidden", children: "Loading..." }) }))
|
|
48
|
-
: (jsx(DIcon, { icon: icon, familyClass: iconFamilyClass !== null && iconFamilyClass !== void 0 ? iconFamilyClass : familyClass, familyPrefix: iconFamilyPrefix !== null && iconFamilyPrefix !== void 0 ? iconFamilyPrefix : familyPrefix, materialStyle: iconMaterialStyle !== null && iconMaterialStyle !== void 0 ? iconMaterialStyle : materialStyle })) })));
|
|
51
|
+
: (jsx(DIcon, { icon: icon, size: iconSize, useListenerSize: useIconSizeListener, familyClass: iconFamilyClass !== null && iconFamilyClass !== void 0 ? iconFamilyClass : familyClass, familyPrefix: iconFamilyPrefix !== null && iconFamilyPrefix !== void 0 ? iconFamilyPrefix : familyPrefix, materialStyle: iconMaterialStyle !== null && iconMaterialStyle !== void 0 ? iconMaterialStyle : materialStyle })) })));
|
|
49
52
|
}
|
|
50
53
|
|
|
51
54
|
export { DButtonIcon as default };
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"DButtonIcon.js","sources":["../../../../dist-transpiled/components/DButtonIcon/DButtonIcon.js"],"sourcesContent":["import { __rest } from \"tslib\";\nimport { jsx as _jsx } from \"react/jsx-runtime\";\n/* eslint-disable react/button-has-type */\nimport { useMemo, useCallback } from 'react';\nimport classNames from 'classnames';\nimport DIcon from '../DIcon';\nimport { useDContext } from '../../contexts';\nimport warnMissingAccessibleName from './warnMissingAccessibleName';\nexport default function DButtonIcon(_a) {\n var { id, icon, size, className, variant, state, loadingAriaLabel, iconMaterialStyle, disabled = false, color = 'primary', loading = false, href, target, rel, stopPropagationEnabled = true, style, iconFamilyClass, iconFamilyPrefix, dataAttributes, onClick, 'aria-label': ariaLabelProp } = _a, rest = __rest(_a, [\"id\", \"icon\", \"size\", \"className\", \"variant\", \"state\", \"loadingAriaLabel\", \"iconMaterialStyle\", \"disabled\", \"color\", \"loading\", \"href\", \"target\", \"rel\", \"stopPropagationEnabled\", \"style\", \"iconFamilyClass\", \"iconFamilyPrefix\", \"dataAttributes\", \"onClick\", 'aria-label']);\n const { icon: { familyClass, familyPrefix, materialStyle, }, } = useDContext();\n const generateClasses = useMemo(() => {\n const variantClass = !variant || variant === 'solid'\n ? `btn-${color}`\n : `btn-${variant}-${color}`;\n return Object.assign(Object.assign(Object.assign({ 'btn d-button-icon': true, [variantClass]: true }, size && { [`btn-${size}`]: true }), (state && state !== 'disabled') && { [state]: true }), { loading });\n }, [variant, color, size, state, loading]);\n const isDisabled = useMemo(() => (state === 'disabled' || loading || disabled), [state, loading, disabled]);\n const clickHandler = useCallback((event) => {\n if (stopPropagationEnabled) {\n event.stopPropagation();\n }\n if (isDisabled) {\n event.preventDefault();\n return;\n }\n onClick === null || onClick === void 0 ? void 0 : onClick(event);\n }, [stopPropagationEnabled, onClick, isDisabled]);\n const ariaLabel = useMemo(() => (loading\n ? loadingAriaLabel || ariaLabelProp\n : ariaLabelProp), [loading, loadingAriaLabel, ariaLabelProp]);\n /**\n * `aria-labelledby` and `title` also name a control, but they travel in `rest`,\n * which only the button branch spreads — an anchor drops them, so there the\n * button really is unnamed and the warning still applies.\n */\n const hasAccessibleName = useMemo(() => !!ariaLabel || (!href && (!!rest['aria-labelledby'] || !!rest.title)), [ariaLabel, href, rest]);\n if (process.env.NODE_ENV !== 'production' && !hasAccessibleName) {\n warnMissingAccessibleName(icon, href ? 'link' : 'button');\n }\n if (href) {\n return (_jsx(\"a\", Object.assign({ id: id, href: href, target: target, rel: rel, className: classNames(generateClasses, className), style: style, onClick: clickHandler, \"aria-label\": ariaLabel, \"aria-disabled\": isDisabled }, dataAttributes, { children: loading\n ? (_jsx(\"span\", { className: \"spinner-border spinner-border-sm\", role: \"status\", \"aria-hidden\": \"true\", children: _jsx(\"span\", { className: \"visually-hidden\", children: \"Loading...\" }) }))\n : (_jsx(DIcon, { icon: icon, familyClass: iconFamilyClass !== null && iconFamilyClass !== void 0 ? iconFamilyClass : familyClass, familyPrefix: iconFamilyPrefix !== null && iconFamilyPrefix !== void 0 ? iconFamilyPrefix : familyPrefix, materialStyle: iconMaterialStyle !== null && iconMaterialStyle !== void 0 ? iconMaterialStyle : materialStyle })) })));\n }\n return (_jsx(\"button\", Object.assign({ className: classNames(generateClasses, className), style: style, disabled: state === 'disabled' || loading, onClick: clickHandler, \"aria-label\": ariaLabel }, dataAttributes, rest, { children: loading\n ? (_jsx(\"span\", { className: \"spinner-border spinner-border-sm\", role: \"status\", \"aria-hidden\": \"true\", children: _jsx(\"span\", { className: \"visually-hidden\", children: \"Loading...\" }) }))\n : (_jsx(DIcon, { icon: icon, familyClass: iconFamilyClass !== null && iconFamilyClass !== void 0 ? iconFamilyClass : familyClass, familyPrefix: iconFamilyPrefix !== null && iconFamilyPrefix !== void 0 ? iconFamilyPrefix : familyPrefix, materialStyle: iconMaterialStyle !== null && iconMaterialStyle !== void 0 ? iconMaterialStyle : materialStyle })) })));\n}\n//# sourceMappingURL=DButtonIcon.js.map"],"names":["_jsx"],"mappings":";;;;;;;;AAQe,SAAS,WAAW,CAAC,EAAE,EAAE;AACxC,IAAI,IAAI,EAAE,EAAE,EAAE,IAAI,EAAE,IAAI,EAAE,SAAS,EAAE,OAAO,EAAE,KAAK,EAAE,gBAAgB,EAAE,iBAAiB,EAAE,QAAQ,GAAG,KAAK,EAAE,KAAK,GAAG,SAAS,EAAE,OAAO,GAAG,KAAK,EAAE,IAAI,EAAE,MAAM,EAAE,GAAG,EAAE,sBAAsB,GAAG,IAAI,EAAE,KAAK,EAAE,eAAe,EAAE,gBAAgB,EAAE,cAAc,EAAE,OAAO,EAAE,YAAY,EAAE,aAAa,EAAE,GAAG,EAAE,EAAE,IAAI,GAAG,MAAM,CAAC,EAAE,EAAE,CAAC,IAAI,EAAE,MAAM,EAAE,MAAM,EAAE,WAAW,EAAE,SAAS,EAAE,OAAO,EAAE,kBAAkB,EAAE,mBAAmB,EAAE,UAAU,EAAE,OAAO,EAAE,SAAS,EAAE,MAAM,EAAE,QAAQ,EAAE,KAAK,EAAE,wBAAwB,EAAE,OAAO,EAAE,iBAAiB,EAAE,kBAAkB,EAAE,gBAAgB,EAAE,SAAS,EAAE,YAAY,CAAC,CAAC;
|
|
1
|
+
{"version":3,"file":"DButtonIcon.js","sources":["../../../../dist-transpiled/components/DButtonIcon/DButtonIcon.js"],"sourcesContent":["import { __rest } from \"tslib\";\nimport { jsx as _jsx } from \"react/jsx-runtime\";\n/* eslint-disable react/button-has-type */\nimport { useMemo, useCallback } from 'react';\nimport classNames from 'classnames';\nimport DIcon from '../DIcon';\nimport { useDContext } from '../../contexts';\nimport warnMissingAccessibleName from './warnMissingAccessibleName';\nexport default function DButtonIcon(_a) {\n var { id, icon, size, iconSize, className, variant, state, loadingAriaLabel, iconMaterialStyle, disabled = false, color = 'primary', loading = false, href, target, rel, stopPropagationEnabled = true, style, iconFamilyClass, iconFamilyPrefix, dataAttributes, onClick, 'aria-label': ariaLabelProp } = _a, rest = __rest(_a, [\"id\", \"icon\", \"size\", \"iconSize\", \"className\", \"variant\", \"state\", \"loadingAriaLabel\", \"iconMaterialStyle\", \"disabled\", \"color\", \"loading\", \"href\", \"target\", \"rel\", \"stopPropagationEnabled\", \"style\", \"iconFamilyClass\", \"iconFamilyPrefix\", \"dataAttributes\", \"onClick\", 'aria-label']);\n const { icon: { familyClass, familyPrefix, materialStyle, }, } = useDContext();\n const generateClasses = useMemo(() => {\n const variantClass = !variant || variant === 'solid'\n ? `btn-${color}`\n : `btn-${variant}-${color}`;\n return Object.assign(Object.assign(Object.assign({ 'btn d-button-icon': true, [variantClass]: true }, size && { [`btn-${size}`]: true }), (state && state !== 'disabled') && { [state]: true }), { loading });\n }, [variant, color, size, state, loading]);\n // A responsive iconSize has to follow viewport changes, so DIcon only\n // listens to breakpoints when it gets an object; a plain string needs none.\n const useIconSizeListener = typeof iconSize === 'object';\n const isDisabled = useMemo(() => (state === 'disabled' || loading || disabled), [state, loading, disabled]);\n const clickHandler = useCallback((event) => {\n if (stopPropagationEnabled) {\n event.stopPropagation();\n }\n if (isDisabled) {\n event.preventDefault();\n return;\n }\n onClick === null || onClick === void 0 ? void 0 : onClick(event);\n }, [stopPropagationEnabled, onClick, isDisabled]);\n const ariaLabel = useMemo(() => (loading\n ? loadingAriaLabel || ariaLabelProp\n : ariaLabelProp), [loading, loadingAriaLabel, ariaLabelProp]);\n /**\n * `aria-labelledby` and `title` also name a control, but they travel in `rest`,\n * which only the button branch spreads — an anchor drops them, so there the\n * button really is unnamed and the warning still applies.\n */\n const hasAccessibleName = useMemo(() => !!ariaLabel || (!href && (!!rest['aria-labelledby'] || !!rest.title)), [ariaLabel, href, rest]);\n if (process.env.NODE_ENV !== 'production' && !hasAccessibleName) {\n warnMissingAccessibleName(icon, href ? 'link' : 'button');\n }\n if (href) {\n return (_jsx(\"a\", Object.assign({ id: id, href: href, target: target, rel: rel, className: classNames(generateClasses, className), style: style, onClick: clickHandler, \"aria-label\": ariaLabel, \"aria-disabled\": isDisabled }, dataAttributes, { children: loading\n ? (_jsx(\"span\", { className: \"spinner-border spinner-border-sm\", role: \"status\", \"aria-hidden\": \"true\", children: _jsx(\"span\", { className: \"visually-hidden\", children: \"Loading...\" }) }))\n : (_jsx(DIcon, { icon: icon, size: iconSize, useListenerSize: useIconSizeListener, familyClass: iconFamilyClass !== null && iconFamilyClass !== void 0 ? iconFamilyClass : familyClass, familyPrefix: iconFamilyPrefix !== null && iconFamilyPrefix !== void 0 ? iconFamilyPrefix : familyPrefix, materialStyle: iconMaterialStyle !== null && iconMaterialStyle !== void 0 ? iconMaterialStyle : materialStyle })) })));\n }\n return (_jsx(\"button\", Object.assign({ className: classNames(generateClasses, className), style: style, disabled: state === 'disabled' || loading, onClick: clickHandler, \"aria-label\": ariaLabel }, dataAttributes, rest, { children: loading\n ? (_jsx(\"span\", { className: \"spinner-border spinner-border-sm\", role: \"status\", \"aria-hidden\": \"true\", children: _jsx(\"span\", { className: \"visually-hidden\", children: \"Loading...\" }) }))\n : (_jsx(DIcon, { icon: icon, size: iconSize, useListenerSize: useIconSizeListener, familyClass: iconFamilyClass !== null && iconFamilyClass !== void 0 ? iconFamilyClass : familyClass, familyPrefix: iconFamilyPrefix !== null && iconFamilyPrefix !== void 0 ? iconFamilyPrefix : familyPrefix, materialStyle: iconMaterialStyle !== null && iconMaterialStyle !== void 0 ? iconMaterialStyle : materialStyle })) })));\n}\n//# sourceMappingURL=DButtonIcon.js.map"],"names":["_jsx"],"mappings":"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"}
|
|
@@ -8,6 +8,11 @@ function render(renderable) {
|
|
|
8
8
|
return null;
|
|
9
9
|
return typeof renderable === 'function' ? renderable() : renderable;
|
|
10
10
|
}
|
|
11
|
+
function isEmpty(data) {
|
|
12
|
+
if (Array.isArray(data))
|
|
13
|
+
return data.length === 0;
|
|
14
|
+
return data === null || data === undefined;
|
|
15
|
+
}
|
|
11
16
|
function DDataStateWrapper({ isLoading, isError, data, onRetry, messages, renderLoading, renderEmpty, renderError, children, }) {
|
|
12
17
|
// 1. Loading
|
|
13
18
|
if (isLoading) {
|
|
@@ -21,13 +26,15 @@ function DDataStateWrapper({ isLoading, isError, data, onRetry, messages, render
|
|
|
21
26
|
return render(renderError);
|
|
22
27
|
return (jsx(ErrorState, { onRetry: onRetry, message: messages === null || messages === void 0 ? void 0 : messages.error, retryMessage: messages === null || messages === void 0 ? void 0 : messages.retry }));
|
|
23
28
|
}
|
|
24
|
-
// 3. Empty
|
|
25
|
-
if (
|
|
29
|
+
// 3. Empty: no items for a collection, null/undefined for a single resource
|
|
30
|
+
if (isEmpty(data)) {
|
|
26
31
|
if (renderEmpty)
|
|
27
32
|
return render(renderEmpty);
|
|
28
33
|
return (jsx(EmptyState, { message: messages === null || messages === void 0 ? void 0 : messages.empty }));
|
|
29
34
|
}
|
|
30
|
-
// 4. Success
|
|
35
|
+
// 4. Success: the render prop gets the same shape it was given
|
|
36
|
+
// Both overloads pair `data` with its own `children` signature, so the
|
|
37
|
+
// value is handed back exactly as it was received.
|
|
31
38
|
return jsx(Fragment, { children: children(data) });
|
|
32
39
|
}
|
|
33
40
|
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"DDataStateWrapper.js","sources":["../../../../dist-transpiled/components/DDataStateWrapper/DDataStateWrapper.js"],"sourcesContent":["import { jsx as _jsx, Fragment as _Fragment } from \"react/jsx-runtime\";\nimport { ErrorState } from './components/ErrorState';\nimport { EmptyState } from './components/EmptyState';\nimport { LoadingState } from './components/LoadingState';\nfunction render(renderable) {\n if (renderable === undefined)\n return null;\n return typeof renderable === 'function' ? renderable() : renderable;\n}\
|
|
1
|
+
{"version":3,"file":"DDataStateWrapper.js","sources":["../../../../dist-transpiled/components/DDataStateWrapper/DDataStateWrapper.js"],"sourcesContent":["import { jsx as _jsx, Fragment as _Fragment } from \"react/jsx-runtime\";\nimport { ErrorState } from './components/ErrorState';\nimport { EmptyState } from './components/EmptyState';\nimport { LoadingState } from './components/LoadingState';\nfunction render(renderable) {\n if (renderable === undefined)\n return null;\n return typeof renderable === 'function' ? renderable() : renderable;\n}\nfunction isEmpty(data) {\n if (Array.isArray(data))\n return data.length === 0;\n return data === null || data === undefined;\n}\nfunction DDataStateWrapper({ isLoading, isError, data, onRetry, messages, renderLoading, renderEmpty, renderError, children, }) {\n // 1. Loading\n if (isLoading) {\n if (renderLoading)\n return render(renderLoading);\n return _jsx(LoadingState, { ariaLabel: messages === null || messages === void 0 ? void 0 : messages.loading });\n }\n // 2. Error\n if (isError) {\n if (renderError)\n return render(renderError);\n return (_jsx(ErrorState, { onRetry: onRetry, message: messages === null || messages === void 0 ? void 0 : messages.error, retryMessage: messages === null || messages === void 0 ? void 0 : messages.retry }));\n }\n // 3. Empty: no items for a collection, null/undefined for a single resource\n if (isEmpty(data)) {\n if (renderEmpty)\n return render(renderEmpty);\n return (_jsx(EmptyState, { message: messages === null || messages === void 0 ? void 0 : messages.empty }));\n }\n // 4. Success: the render prop gets the same shape it was given\n // Both overloads pair `data` with its own `children` signature, so the\n // value is handed back exactly as it was received.\n return _jsx(_Fragment, { children: children(data) });\n}\nexport default DDataStateWrapper;\n//# sourceMappingURL=DDataStateWrapper.js.map"],"names":["_jsx","_Fragment"],"mappings":";;;;;AAIA,SAAS,MAAM,CAAC,UAAU,EAAE;AAC5B,IAAI,IAAI,UAAU,KAAK,SAAS;AAChC,QAAQ,OAAO,IAAI;AACnB,IAAI,OAAO,OAAO,UAAU,KAAK,UAAU,GAAG,UAAU,EAAE,GAAG,UAAU;AACvE;AACA,SAAS,OAAO,CAAC,IAAI,EAAE;AACvB,IAAI,IAAI,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC;AAC3B,QAAQ,OAAO,IAAI,CAAC,MAAM,KAAK,CAAC;AAChC,IAAI,OAAO,IAAI,KAAK,IAAI,IAAI,IAAI,KAAK,SAAS;AAC9C;AACA,SAAS,iBAAiB,CAAC,EAAE,SAAS,EAAE,OAAO,EAAE,IAAI,EAAE,OAAO,EAAE,QAAQ,EAAE,aAAa,EAAE,WAAW,EAAE,WAAW,EAAE,QAAQ,GAAG,EAAE;AAChI;AACA,IAAI,IAAI,SAAS,EAAE;AACnB,QAAQ,IAAI,aAAa;AACzB,YAAY,OAAO,MAAM,CAAC,aAAa,CAAC;AACxC,QAAQ,OAAOA,GAAI,CAAC,YAAY,EAAE,EAAE,SAAS,EAAE,QAAQ,KAAK,IAAI,IAAI,QAAQ,KAAK,MAAM,GAAG,MAAM,GAAG,QAAQ,CAAC,OAAO,EAAE,CAAC;AACtH,IAAI;AACJ;AACA,IAAI,IAAI,OAAO,EAAE;AACjB,QAAQ,IAAI,WAAW;AACvB,YAAY,OAAO,MAAM,CAAC,WAAW,CAAC;AACtC,QAAQ,QAAQA,GAAI,CAAC,UAAU,EAAE,EAAE,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,QAAQ,KAAK,IAAI,IAAI,QAAQ,KAAK,MAAM,GAAG,MAAM,GAAG,QAAQ,CAAC,KAAK,EAAE,YAAY,EAAE,QAAQ,KAAK,IAAI,IAAI,QAAQ,KAAK,MAAM,GAAG,MAAM,GAAG,QAAQ,CAAC,KAAK,EAAE,CAAC;AACrN,IAAI;AACJ;AACA,IAAI,IAAI,OAAO,CAAC,IAAI,CAAC,EAAE;AACvB,QAAQ,IAAI,WAAW;AACvB,YAAY,OAAO,MAAM,CAAC,WAAW,CAAC;AACtC,QAAQ,QAAQA,GAAI,CAAC,UAAU,EAAE,EAAE,OAAO,EAAE,QAAQ,KAAK,IAAI,IAAI,QAAQ,KAAK,MAAM,GAAG,MAAM,GAAG,QAAQ,CAAC,KAAK,EAAE,CAAC;AACjH,IAAI;AACJ;AACA;AACA;AACA,IAAI,OAAOA,GAAI,CAACC,QAAS,EAAE,EAAE,QAAQ,EAAE,QAAQ,CAAC,IAAI,CAAC,EAAE,CAAC;AACxD;;;;"}
|
|
@@ -4,7 +4,7 @@ import { getErrorMessage, ErrorBoundary } from 'react-error-boundary';
|
|
|
4
4
|
export { getErrorMessage, useErrorBoundary } from 'react-error-boundary';
|
|
5
5
|
import DefaultErrorBoundary from './components/DefaultErrorBoundary.js';
|
|
6
6
|
|
|
7
|
-
function DErrorBoundary({ name, fallback, resetKeys, onReset, onError, children, }) {
|
|
7
|
+
function DErrorBoundary({ name, fallback, resetKeys, onReset, onError, messages, children, }) {
|
|
8
8
|
const handleError = useCallback((error, info) => {
|
|
9
9
|
// eslint-disable-next-line no-console
|
|
10
10
|
console.error(`[DErrorBoundary${name ? `:${name}` : ''}]`, getErrorMessage(error), info);
|
|
@@ -13,8 +13,8 @@ function DErrorBoundary({ name, fallback, resetKeys, onReset, onError, children,
|
|
|
13
13
|
const FallbackRender = useCallback((props) => {
|
|
14
14
|
if (fallback)
|
|
15
15
|
return fallback(props);
|
|
16
|
-
return (jsx(DefaultErrorBoundary, { resetErrorBoundary: props.resetErrorBoundary }));
|
|
17
|
-
}, [fallback]);
|
|
16
|
+
return (jsx(DefaultErrorBoundary, { resetErrorBoundary: props.resetErrorBoundary, message: messages === null || messages === void 0 ? void 0 : messages.error, retryMessage: messages === null || messages === void 0 ? void 0 : messages.retry }));
|
|
17
|
+
}, [fallback, messages]);
|
|
18
18
|
return (jsx(ErrorBoundary, { resetKeys: resetKeys, onReset: onReset, onError: handleError, fallbackRender: FallbackRender, children: children }));
|
|
19
19
|
}
|
|
20
20
|
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"DErrorBoundary.js","sources":["../../../../dist-transpiled/components/DErrorBoundary/DErrorBoundary.js"],"sourcesContent":["import { jsx as _jsx } from \"react/jsx-runtime\";\nimport { useCallback, } from 'react';\nimport { ErrorBoundary, useErrorBoundary, getErrorMessage, } from 'react-error-boundary';\nimport DefaultErrorBoundary from './components/DefaultErrorBoundary';\nexport { useErrorBoundary, getErrorMessage, };\nexport default function DErrorBoundary({ name, fallback, resetKeys, onReset, onError, children, }) {\n const handleError = useCallback((error, info) => {\n // eslint-disable-next-line no-console\n console.error(`[DErrorBoundary${name ? `:${name}` : ''}]`, getErrorMessage(error), info);\n onError === null || onError === void 0 ? void 0 : onError(error, info);\n }, [name, onError]);\n const FallbackRender = useCallback((props) => {\n if (fallback)\n return fallback(props);\n return (_jsx(DefaultErrorBoundary, { resetErrorBoundary: props.resetErrorBoundary }));\n }, [fallback]);\n return (_jsx(ErrorBoundary, { resetKeys: resetKeys, onReset: onReset, onError: handleError, fallbackRender: FallbackRender, children: children }));\n}\n//# sourceMappingURL=DErrorBoundary.js.map"],"names":["_jsx"],"mappings":";;;;;;AAKe,SAAS,cAAc,CAAC,EAAE,IAAI,EAAE,QAAQ,EAAE,SAAS,EAAE,OAAO,EAAE,OAAO,EAAE,QAAQ,GAAG,EAAE;
|
|
1
|
+
{"version":3,"file":"DErrorBoundary.js","sources":["../../../../dist-transpiled/components/DErrorBoundary/DErrorBoundary.js"],"sourcesContent":["import { jsx as _jsx } from \"react/jsx-runtime\";\nimport { useCallback, } from 'react';\nimport { ErrorBoundary, useErrorBoundary, getErrorMessage, } from 'react-error-boundary';\nimport DefaultErrorBoundary from './components/DefaultErrorBoundary';\nexport { useErrorBoundary, getErrorMessage, };\nexport default function DErrorBoundary({ name, fallback, resetKeys, onReset, onError, messages, children, }) {\n const handleError = useCallback((error, info) => {\n // eslint-disable-next-line no-console\n console.error(`[DErrorBoundary${name ? `:${name}` : ''}]`, getErrorMessage(error), info);\n onError === null || onError === void 0 ? void 0 : onError(error, info);\n }, [name, onError]);\n const FallbackRender = useCallback((props) => {\n if (fallback)\n return fallback(props);\n return (_jsx(DefaultErrorBoundary, { resetErrorBoundary: props.resetErrorBoundary, message: messages === null || messages === void 0 ? void 0 : messages.error, retryMessage: messages === null || messages === void 0 ? void 0 : messages.retry }));\n }, [fallback, messages]);\n return (_jsx(ErrorBoundary, { resetKeys: resetKeys, onReset: onReset, onError: handleError, fallbackRender: FallbackRender, children: children }));\n}\n//# sourceMappingURL=DErrorBoundary.js.map"],"names":["_jsx"],"mappings":";;;;;;AAKe,SAAS,cAAc,CAAC,EAAE,IAAI,EAAE,QAAQ,EAAE,SAAS,EAAE,OAAO,EAAE,OAAO,EAAE,QAAQ,EAAE,QAAQ,GAAG,EAAE;AAC7G,IAAI,MAAM,WAAW,GAAG,WAAW,CAAC,CAAC,KAAK,EAAE,IAAI,KAAK;AACrD;AACA,QAAQ,OAAO,CAAC,KAAK,CAAC,CAAC,eAAe,EAAE,IAAI,GAAG,CAAC,CAAC,EAAE,IAAI,CAAC,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC,EAAE,eAAe,CAAC,KAAK,CAAC,EAAE,IAAI,CAAC;AAChG,QAAQ,OAAO,KAAK,IAAI,IAAI,OAAO,KAAK,MAAM,GAAG,MAAM,GAAG,OAAO,CAAC,KAAK,EAAE,IAAI,CAAC;AAC9E,IAAI,CAAC,EAAE,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC;AACvB,IAAI,MAAM,cAAc,GAAG,WAAW,CAAC,CAAC,KAAK,KAAK;AAClD,QAAQ,IAAI,QAAQ;AACpB,YAAY,OAAO,QAAQ,CAAC,KAAK,CAAC;AAClC,QAAQ,QAAQA,GAAI,CAAC,oBAAoB,EAAE,EAAE,kBAAkB,EAAE,KAAK,CAAC,kBAAkB,EAAE,OAAO,EAAE,QAAQ,KAAK,IAAI,IAAI,QAAQ,KAAK,MAAM,GAAG,MAAM,GAAG,QAAQ,CAAC,KAAK,EAAE,YAAY,EAAE,QAAQ,KAAK,IAAI,IAAI,QAAQ,KAAK,MAAM,GAAG,MAAM,GAAG,QAAQ,CAAC,KAAK,EAAE,CAAC;AAC3P,IAAI,CAAC,EAAE,CAAC,QAAQ,EAAE,QAAQ,CAAC,CAAC;AAC5B,IAAI,QAAQA,GAAI,CAAC,aAAa,EAAE,EAAE,SAAS,EAAE,SAAS,EAAE,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,WAAW,EAAE,cAAc,EAAE,cAAc,EAAE,QAAQ,EAAE,QAAQ,EAAE,CAAC;AACrJ;;;;"}
|
|
@@ -2,8 +2,8 @@ import { jsx, jsxs } from 'react/jsx-runtime';
|
|
|
2
2
|
import DAlert from '../../DAlert/DAlert.js';
|
|
3
3
|
import DButton from '../../DButton/DButton.js';
|
|
4
4
|
|
|
5
|
-
function DefaultErrorBoundary({ resetErrorBoundary }) {
|
|
6
|
-
return (jsx(DAlert, { color: "danger", showClose: false, children: jsxs("div", { className: "d-error-boundary-content", children: [jsx("span", { children:
|
|
5
|
+
function DefaultErrorBoundary({ resetErrorBoundary, message = 'An unexpected error occurred.', retryMessage = 'Retry', }) {
|
|
6
|
+
return (jsx(DAlert, { color: "danger", showClose: false, children: jsxs("div", { className: "d-error-boundary-content", children: [jsx("span", { children: message }), jsx(DButton, { color: "secondary", variant: "outline", size: "sm", onClick: resetErrorBoundary, children: retryMessage })] }) }));
|
|
7
7
|
}
|
|
8
8
|
|
|
9
9
|
export { DefaultErrorBoundary as default };
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"DefaultErrorBoundary.js","sources":["../../../../../dist-transpiled/components/DErrorBoundary/components/DefaultErrorBoundary.js"],"sourcesContent":["import { jsx as _jsx, jsxs as _jsxs } from \"react/jsx-runtime\";\nimport DAlert from '../../DAlert';\nimport DButton from '../../DButton';\nexport default function DefaultErrorBoundary({ resetErrorBoundary }) {\n return (_jsx(DAlert, { color: \"danger\", showClose: false, children: _jsxs(\"div\", { className: \"d-error-boundary-content\", children: [_jsx(\"span\", { children:
|
|
1
|
+
{"version":3,"file":"DefaultErrorBoundary.js","sources":["../../../../../dist-transpiled/components/DErrorBoundary/components/DefaultErrorBoundary.js"],"sourcesContent":["import { jsx as _jsx, jsxs as _jsxs } from \"react/jsx-runtime\";\nimport DAlert from '../../DAlert';\nimport DButton from '../../DButton';\nexport default function DefaultErrorBoundary({ resetErrorBoundary, message = 'An unexpected error occurred.', retryMessage = 'Retry', }) {\n return (_jsx(DAlert, { color: \"danger\", showClose: false, children: _jsxs(\"div\", { className: \"d-error-boundary-content\", children: [_jsx(\"span\", { children: message }), _jsx(DButton, { color: \"secondary\", variant: \"outline\", size: \"sm\", onClick: resetErrorBoundary, children: retryMessage })] }) }));\n}\n//# sourceMappingURL=DefaultErrorBoundary.js.map"],"names":["_jsx","_jsxs"],"mappings":";;;;AAGe,SAAS,oBAAoB,CAAC,EAAE,kBAAkB,EAAE,OAAO,GAAG,+BAA+B,EAAE,YAAY,GAAG,OAAO,GAAG,EAAE;AACzI,IAAI,QAAQA,GAAI,CAAC,MAAM,EAAE,EAAE,KAAK,EAAE,QAAQ,EAAE,SAAS,EAAE,KAAK,EAAE,QAAQ,EAAEC,IAAK,CAAC,KAAK,EAAE,EAAE,SAAS,EAAE,0BAA0B,EAAE,QAAQ,EAAE,CAACD,GAAI,CAAC,MAAM,EAAE,EAAE,QAAQ,EAAE,OAAO,EAAE,CAAC,EAAEA,GAAI,CAAC,OAAO,EAAE,EAAE,KAAK,EAAE,WAAW,EAAE,OAAO,EAAE,SAAS,EAAE,IAAI,EAAE,IAAI,EAAE,OAAO,EAAE,kBAAkB,EAAE,QAAQ,EAAE,YAAY,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC;AAC/S;;;;"}
|
|
@@ -4,6 +4,9 @@ import { forwardRef, useId, useMemo, useCallback } from 'react';
|
|
|
4
4
|
import classNames from 'classnames';
|
|
5
5
|
import DIcon from '../DIcon/DIcon.js';
|
|
6
6
|
import useProvidedRefOrCreate from '../../hooks/useProvidedRefOrCreate.js';
|
|
7
|
+
import DFormLabel from '../internal/DFormLabel.js';
|
|
8
|
+
import hasLabelContent from '../../utils/hasLabelContent.js';
|
|
9
|
+
import warnLabelUsage from '../../utils/warnLabelUsage.js';
|
|
7
10
|
import { useDContext } from '../../contexts/DContext.js';
|
|
8
11
|
|
|
9
12
|
function DInput(_a, ref) {
|
|
@@ -45,7 +48,7 @@ function DInput(_a, ref) {
|
|
|
45
48
|
const inputComponent = useMemo(() => (jsx("input", Object.assign({ ref: inputRef, id: id, className: classNames('form-control', {
|
|
46
49
|
'is-invalid': invalid,
|
|
47
50
|
'is-valid': valid,
|
|
48
|
-
}), disabled: disabled || loading, readOnly: readonly, value: value, onChange: handleOnChange }, (floatingLabel || placeholder) && { placeholder: floatingLabel ? '' : placeholder }, ariaDescribedby && { 'aria-describedby': ariaDescribedby }, inputProps))), [
|
|
51
|
+
}), disabled: disabled || loading, readOnly: readonly, value: value, onChange: handleOnChange }, (floatingLabel || placeholder) && { placeholder: floatingLabel ? '' : placeholder }, ariaDescribedby && { 'aria-describedby': ariaDescribedby }, invalid && { 'aria-invalid': true }, inputProps))), [
|
|
49
52
|
ariaDescribedby,
|
|
50
53
|
disabled,
|
|
51
54
|
handleOnChange,
|
|
@@ -60,7 +63,7 @@ function DInput(_a, ref) {
|
|
|
60
63
|
value,
|
|
61
64
|
readonly,
|
|
62
65
|
]);
|
|
63
|
-
const labelComponent = useMemo(() => (jsx(
|
|
66
|
+
const labelComponent = useMemo(() => (jsx(DFormLabel, { htmlFor: id, children: label })), [
|
|
64
67
|
id,
|
|
65
68
|
label,
|
|
66
69
|
]);
|
|
@@ -70,7 +73,16 @@ function DInput(_a, ref) {
|
|
|
70
73
|
}
|
|
71
74
|
return inputComponent;
|
|
72
75
|
}, [floatingLabel, inputComponent, labelComponent]);
|
|
73
|
-
|
|
76
|
+
if (process.env.NODE_ENV !== 'production') {
|
|
77
|
+
warnLabelUsage({
|
|
78
|
+
component: 'DInput',
|
|
79
|
+
label,
|
|
80
|
+
hasAccessibleName: !!inputProps['aria-label'] || !!inputProps['aria-labelledby'],
|
|
81
|
+
accessibleNameProp: 'aria-label',
|
|
82
|
+
floatingLabel,
|
|
83
|
+
});
|
|
84
|
+
}
|
|
85
|
+
return (jsxs("div", Object.assign({ className: className, style: style }, dataAttributes, { children: [hasLabelContent(label) && !floatingLabel && labelComponent, jsxs("div", { className: classNames({
|
|
74
86
|
[`input-group-${size}`]: !!size,
|
|
75
87
|
'input-group': true,
|
|
76
88
|
'has-validation': invalid || valid,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"DInput.js","sources":["../../../../dist-transpiled/components/DInput/DInput.js"],"sourcesContent":["import { __rest } from \"tslib\";\nimport { jsx as _jsx, jsxs as _jsxs } from \"react/jsx-runtime\";\nimport { forwardRef, useCallback, useMemo, useId, } from 'react';\nimport classNames from 'classnames';\nimport DIcon from '../DIcon';\nimport useProvidedRefOrCreate from '../../hooks/useProvidedRefOrCreate';\nimport { useDContext } from '../../contexts';\nfunction DInput(_a, ref) {\n var { id: idProp, style, className, label = '', disabled = false, loading = false, iconFamilyClass, iconFamilyPrefix, iconMaterialStyle, iconStart, iconStartDisabled, iconStartFamilyClass, iconStartFamilyPrefix, iconStartAriaLabel, iconStartTabIndex, iconStartMaterialStyle, iconEnd, iconEndDisabled, iconEndFamilyClass, iconEndFamilyPrefix, iconEndAriaLabel, iconEndTabIndex, iconEndMaterialStyle, hint, size, invalid = false, valid = false, floatingLabel = false, inputStart, inputEnd, value, placeholder = '', dataAttributes, readonly, onChange, onIconStartClick, onIconEndClick } = _a, inputProps = __rest(_a, [\"id\", \"style\", \"className\", \"label\", \"disabled\", \"loading\", \"iconFamilyClass\", \"iconFamilyPrefix\", \"iconMaterialStyle\", \"iconStart\", \"iconStartDisabled\", \"iconStartFamilyClass\", \"iconStartFamilyPrefix\", \"iconStartAriaLabel\", \"iconStartTabIndex\", \"iconStartMaterialStyle\", \"iconEnd\", \"iconEndDisabled\", \"iconEndFamilyClass\", \"iconEndFamilyPrefix\", \"iconEndAriaLabel\", \"iconEndTabIndex\", \"iconEndMaterialStyle\", \"hint\", \"size\", \"invalid\", \"valid\", \"floatingLabel\", \"inputStart\", \"inputEnd\", \"value\", \"placeholder\", \"dataAttributes\", \"readonly\", \"onChange\", \"onIconStartClick\", \"onIconEndClick\"]);\n const inputRef = useProvidedRefOrCreate(ref);\n const innerId = useId();\n const id = useMemo(() => idProp || innerId, [idProp, innerId]);\n const { icon: { familyClass, familyPrefix, materialStyle, }, } = useDContext();\n const handleOnChange = useCallback((event) => {\n onChange === null || onChange === void 0 ? void 0 : onChange(event.currentTarget.value);\n }, [onChange]);\n const handleOnIconStartClick = useCallback(() => {\n onIconStartClick === null || onIconStartClick === void 0 ? void 0 : onIconStartClick(value);\n }, [onIconStartClick, value]);\n const handleOnIconEndClick = useCallback(() => {\n onIconEndClick === null || onIconEndClick === void 0 ? void 0 : onIconEndClick(value);\n }, [onIconEndClick, value]);\n const ariaDescribedby = useMemo(() => ([\n !!inputStart && `${id}InputStart`,\n !!iconStart && `${id}Start`,\n (invalid || valid) && !iconEnd && !loading && `${id}State`,\n (iconEnd && !loading) && `${id}End`,\n loading && `${id}Loading`,\n !!inputEnd && `${id}InputEnd`,\n !!hint && `${id}Hint`,\n ]\n .filter(Boolean)\n .join(' ')), [\n id,\n inputStart,\n iconStart,\n invalid,\n valid,\n iconEnd,\n loading,\n inputEnd,\n hint,\n ]);\n const inputComponent = useMemo(() => (_jsx(\"input\", Object.assign({ ref: inputRef, id: id, className: classNames('form-control', {\n 'is-invalid': invalid,\n 'is-valid': valid,\n }), disabled: disabled || loading, readOnly: readonly, value: value, onChange: handleOnChange }, (floatingLabel || placeholder) && { placeholder: floatingLabel ? '' : placeholder }, ariaDescribedby && { 'aria-describedby': ariaDescribedby }, inputProps))), [\n ariaDescribedby,\n disabled,\n handleOnChange,\n id,\n inputProps,\n inputRef,\n invalid,\n loading,\n placeholder,\n floatingLabel,\n valid,\n value,\n readonly,\n ]);\n const labelComponent = useMemo(() => (_jsx(\"label\", { htmlFor: id, children: label })), [\n id,\n label,\n ]);\n const dynamicComponent = useMemo(() => {\n if (floatingLabel) {\n return (_jsxs(\"div\", { className: \"form-floating\", children: [inputComponent, labelComponent] }));\n }\n return inputComponent;\n }, [floatingLabel, inputComponent, labelComponent]);\n return (_jsxs(\"div\", Object.assign({ className: className, style: style }, dataAttributes, { children: [label && !floatingLabel && labelComponent, _jsxs(\"div\", { className: classNames({\n [`input-group-${size}`]: !!size,\n 'input-group': true,\n 'has-validation': invalid || valid,\n }), children: [!!inputStart && (_jsx(\"div\", { className: \"input-group-text\", id: `${id}InputStart`, children: inputStart })), iconStart && (onIconStartClick ? (_jsx(\"button\", { type: \"button\", className: \"input-group-text\", id: `${id}Start`, onClick: handleOnIconStartClick, disabled: disabled || loading || iconStartDisabled, \"aria-label\": iconStartAriaLabel || (typeof iconStart === 'string' ? iconStart : 'start icon'), tabIndex: iconStartTabIndex, children: _jsx(DIcon, { icon: iconStart, familyClass: iconStartFamilyClass !== null && iconStartFamilyClass !== void 0 ? iconStartFamilyClass : familyClass, familyPrefix: iconStartFamilyPrefix !== null && iconStartFamilyPrefix !== void 0 ? iconStartFamilyPrefix : familyPrefix, materialStyle: iconStartMaterialStyle !== null && iconStartMaterialStyle !== void 0 ? iconStartMaterialStyle : materialStyle }) })) : (_jsx(\"div\", { className: \"input-group-text\", id: `${id}Start`, tabIndex: -1, children: _jsx(DIcon, { icon: iconStart, familyClass: iconStartFamilyClass !== null && iconStartFamilyClass !== void 0 ? iconStartFamilyClass : familyClass, familyPrefix: iconStartFamilyPrefix !== null && iconStartFamilyPrefix !== void 0 ? iconStartFamilyPrefix : familyPrefix, materialStyle: iconStartMaterialStyle !== null && iconStartMaterialStyle !== void 0 ? iconStartMaterialStyle : materialStyle }) }))), dynamicComponent, (iconEnd && !loading) && (onIconEndClick ? (_jsx(\"button\", { type: \"button\", className: \"input-group-text\", id: `${id}End`, onClick: handleOnIconEndClick, disabled: disabled || loading || iconEndDisabled, \"aria-label\": iconEndAriaLabel || (typeof iconEnd === 'string' ? iconEnd : 'end icon'), tabIndex: iconEndTabIndex, children: _jsx(DIcon, { icon: iconEnd, familyClass: iconEndFamilyClass !== null && iconEndFamilyClass !== void 0 ? iconEndFamilyClass : familyClass, familyPrefix: iconEndFamilyPrefix !== null && iconEndFamilyPrefix !== void 0 ? iconEndFamilyPrefix : familyPrefix, materialStyle: iconEndMaterialStyle !== null && iconEndMaterialStyle !== void 0 ? iconEndMaterialStyle : materialStyle }) })) : (_jsx(\"div\", { className: \"input-group-text\", id: `${id}End`, tabIndex: -1, children: _jsx(DIcon, { icon: iconEnd, familyClass: iconEndFamilyClass !== null && iconEndFamilyClass !== void 0 ? iconEndFamilyClass : familyClass, familyPrefix: iconEndFamilyPrefix !== null && iconEndFamilyPrefix !== void 0 ? iconEndFamilyPrefix : familyPrefix, materialStyle: iconEndMaterialStyle !== null && iconEndMaterialStyle !== void 0 ? iconEndMaterialStyle : materialStyle }) }))), loading && (_jsx(\"div\", { className: \"input-group-text\", id: `${id}Loading`, children: _jsx(\"span\", { className: \"spinner-border spinner-border-sm\", role: \"status\", \"aria-hidden\": \"true\", \"data-testid\": \"loading-spinner\", children: _jsx(\"span\", { className: \"visually-hidden\", children: \"Loading...\" }) }) })), !!inputEnd && (_jsx(\"div\", { className: \"input-group-text\", id: `${id}InputEnd`, children: inputEnd }))] }), hint && (_jsx(\"div\", { className: \"form-text\", id: `${id}Hint`, children: hint }))] })));\n}\nconst ForwardedDInput = forwardRef(DInput);\nForwardedDInput.displayName = 'DInput';\nexport default ForwardedDInput;\n//# sourceMappingURL=DInput.js.map"],"names":["_jsx","_jsxs"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"DInput.js","sources":["../../../../dist-transpiled/components/DInput/DInput.js"],"sourcesContent":["import { __rest } from \"tslib\";\nimport { jsx as _jsx, jsxs as _jsxs } from \"react/jsx-runtime\";\nimport { forwardRef, useCallback, useMemo, useId, } from 'react';\nimport classNames from 'classnames';\nimport DIcon from '../DIcon';\nimport useProvidedRefOrCreate from '../../hooks/useProvidedRefOrCreate';\nimport DFormLabel from '../internal/DFormLabel';\nimport hasLabelContent from '../../utils/hasLabelContent';\nimport warnLabelUsage from '../../utils/warnLabelUsage';\nimport { useDContext } from '../../contexts';\nfunction DInput(_a, ref) {\n var { id: idProp, style, className, label = '', disabled = false, loading = false, iconFamilyClass, iconFamilyPrefix, iconMaterialStyle, iconStart, iconStartDisabled, iconStartFamilyClass, iconStartFamilyPrefix, iconStartAriaLabel, iconStartTabIndex, iconStartMaterialStyle, iconEnd, iconEndDisabled, iconEndFamilyClass, iconEndFamilyPrefix, iconEndAriaLabel, iconEndTabIndex, iconEndMaterialStyle, hint, size, invalid = false, valid = false, floatingLabel = false, inputStart, inputEnd, value, placeholder = '', dataAttributes, readonly, onChange, onIconStartClick, onIconEndClick } = _a, inputProps = __rest(_a, [\"id\", \"style\", \"className\", \"label\", \"disabled\", \"loading\", \"iconFamilyClass\", \"iconFamilyPrefix\", \"iconMaterialStyle\", \"iconStart\", \"iconStartDisabled\", \"iconStartFamilyClass\", \"iconStartFamilyPrefix\", \"iconStartAriaLabel\", \"iconStartTabIndex\", \"iconStartMaterialStyle\", \"iconEnd\", \"iconEndDisabled\", \"iconEndFamilyClass\", \"iconEndFamilyPrefix\", \"iconEndAriaLabel\", \"iconEndTabIndex\", \"iconEndMaterialStyle\", \"hint\", \"size\", \"invalid\", \"valid\", \"floatingLabel\", \"inputStart\", \"inputEnd\", \"value\", \"placeholder\", \"dataAttributes\", \"readonly\", \"onChange\", \"onIconStartClick\", \"onIconEndClick\"]);\n const inputRef = useProvidedRefOrCreate(ref);\n const innerId = useId();\n const id = useMemo(() => idProp || innerId, [idProp, innerId]);\n const { icon: { familyClass, familyPrefix, materialStyle, }, } = useDContext();\n const handleOnChange = useCallback((event) => {\n onChange === null || onChange === void 0 ? void 0 : onChange(event.currentTarget.value);\n }, [onChange]);\n const handleOnIconStartClick = useCallback(() => {\n onIconStartClick === null || onIconStartClick === void 0 ? void 0 : onIconStartClick(value);\n }, [onIconStartClick, value]);\n const handleOnIconEndClick = useCallback(() => {\n onIconEndClick === null || onIconEndClick === void 0 ? void 0 : onIconEndClick(value);\n }, [onIconEndClick, value]);\n const ariaDescribedby = useMemo(() => ([\n !!inputStart && `${id}InputStart`,\n !!iconStart && `${id}Start`,\n (invalid || valid) && !iconEnd && !loading && `${id}State`,\n (iconEnd && !loading) && `${id}End`,\n loading && `${id}Loading`,\n !!inputEnd && `${id}InputEnd`,\n !!hint && `${id}Hint`,\n ]\n .filter(Boolean)\n .join(' ')), [\n id,\n inputStart,\n iconStart,\n invalid,\n valid,\n iconEnd,\n loading,\n inputEnd,\n hint,\n ]);\n const inputComponent = useMemo(() => (_jsx(\"input\", Object.assign({ ref: inputRef, id: id, className: classNames('form-control', {\n 'is-invalid': invalid,\n 'is-valid': valid,\n }), disabled: disabled || loading, readOnly: readonly, value: value, onChange: handleOnChange }, (floatingLabel || placeholder) && { placeholder: floatingLabel ? '' : placeholder }, ariaDescribedby && { 'aria-describedby': ariaDescribedby }, invalid && { 'aria-invalid': true }, inputProps))), [\n ariaDescribedby,\n disabled,\n handleOnChange,\n id,\n inputProps,\n inputRef,\n invalid,\n loading,\n placeholder,\n floatingLabel,\n valid,\n value,\n readonly,\n ]);\n const labelComponent = useMemo(() => (_jsx(DFormLabel, { htmlFor: id, children: label })), [\n id,\n label,\n ]);\n const dynamicComponent = useMemo(() => {\n if (floatingLabel) {\n return (_jsxs(\"div\", { className: \"form-floating\", children: [inputComponent, labelComponent] }));\n }\n return inputComponent;\n }, [floatingLabel, inputComponent, labelComponent]);\n if (process.env.NODE_ENV !== 'production') {\n warnLabelUsage({\n component: 'DInput',\n label,\n hasAccessibleName: !!inputProps['aria-label'] || !!inputProps['aria-labelledby'],\n accessibleNameProp: 'aria-label',\n floatingLabel,\n });\n }\n return (_jsxs(\"div\", Object.assign({ className: className, style: style }, dataAttributes, { children: [hasLabelContent(label) && !floatingLabel && labelComponent, _jsxs(\"div\", { className: classNames({\n [`input-group-${size}`]: !!size,\n 'input-group': true,\n 'has-validation': invalid || valid,\n }), children: [!!inputStart && (_jsx(\"div\", { className: \"input-group-text\", id: `${id}InputStart`, children: inputStart })), iconStart && (onIconStartClick ? (_jsx(\"button\", { type: \"button\", className: \"input-group-text\", id: `${id}Start`, onClick: handleOnIconStartClick, disabled: disabled || loading || iconStartDisabled, \"aria-label\": iconStartAriaLabel || (typeof iconStart === 'string' ? iconStart : 'start icon'), tabIndex: iconStartTabIndex, children: _jsx(DIcon, { icon: iconStart, familyClass: iconStartFamilyClass !== null && iconStartFamilyClass !== void 0 ? iconStartFamilyClass : familyClass, familyPrefix: iconStartFamilyPrefix !== null && iconStartFamilyPrefix !== void 0 ? iconStartFamilyPrefix : familyPrefix, materialStyle: iconStartMaterialStyle !== null && iconStartMaterialStyle !== void 0 ? iconStartMaterialStyle : materialStyle }) })) : (_jsx(\"div\", { className: \"input-group-text\", id: `${id}Start`, tabIndex: -1, children: _jsx(DIcon, { icon: iconStart, familyClass: iconStartFamilyClass !== null && iconStartFamilyClass !== void 0 ? iconStartFamilyClass : familyClass, familyPrefix: iconStartFamilyPrefix !== null && iconStartFamilyPrefix !== void 0 ? iconStartFamilyPrefix : familyPrefix, materialStyle: iconStartMaterialStyle !== null && iconStartMaterialStyle !== void 0 ? iconStartMaterialStyle : materialStyle }) }))), dynamicComponent, (iconEnd && !loading) && (onIconEndClick ? (_jsx(\"button\", { type: \"button\", className: \"input-group-text\", id: `${id}End`, onClick: handleOnIconEndClick, disabled: disabled || loading || iconEndDisabled, \"aria-label\": iconEndAriaLabel || (typeof iconEnd === 'string' ? iconEnd : 'end icon'), tabIndex: iconEndTabIndex, children: _jsx(DIcon, { icon: iconEnd, familyClass: iconEndFamilyClass !== null && iconEndFamilyClass !== void 0 ? iconEndFamilyClass : familyClass, familyPrefix: iconEndFamilyPrefix !== null && iconEndFamilyPrefix !== void 0 ? iconEndFamilyPrefix : familyPrefix, materialStyle: iconEndMaterialStyle !== null && iconEndMaterialStyle !== void 0 ? iconEndMaterialStyle : materialStyle }) })) : (_jsx(\"div\", { className: \"input-group-text\", id: `${id}End`, tabIndex: -1, children: _jsx(DIcon, { icon: iconEnd, familyClass: iconEndFamilyClass !== null && iconEndFamilyClass !== void 0 ? iconEndFamilyClass : familyClass, familyPrefix: iconEndFamilyPrefix !== null && iconEndFamilyPrefix !== void 0 ? iconEndFamilyPrefix : familyPrefix, materialStyle: iconEndMaterialStyle !== null && iconEndMaterialStyle !== void 0 ? iconEndMaterialStyle : materialStyle }) }))), loading && (_jsx(\"div\", { className: \"input-group-text\", id: `${id}Loading`, children: _jsx(\"span\", { className: \"spinner-border spinner-border-sm\", role: \"status\", \"aria-hidden\": \"true\", \"data-testid\": \"loading-spinner\", children: _jsx(\"span\", { className: \"visually-hidden\", children: \"Loading...\" }) }) })), !!inputEnd && (_jsx(\"div\", { className: \"input-group-text\", id: `${id}InputEnd`, children: inputEnd }))] }), hint && (_jsx(\"div\", { className: \"form-text\", id: `${id}Hint`, children: hint }))] })));\n}\nconst ForwardedDInput = forwardRef(DInput);\nForwardedDInput.displayName = 'DInput';\nexport default ForwardedDInput;\n//# sourceMappingURL=DInput.js.map"],"names":["_jsx","_jsxs"],"mappings":"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"}
|
|
@@ -2,15 +2,32 @@ import { __rest } from 'tslib';
|
|
|
2
2
|
import { jsx, jsxs } from 'react/jsx-runtime';
|
|
3
3
|
import { useRef, useId, useMemo, useCallback, useEffect } from 'react';
|
|
4
4
|
import classNames from 'classnames';
|
|
5
|
+
import DFormLabel from '../internal/DFormLabel.js';
|
|
6
|
+
import hasLabelContent from '../../utils/hasLabelContent.js';
|
|
7
|
+
import warnLabelUsage from '../../utils/warnLabelUsage.js';
|
|
5
8
|
|
|
6
9
|
function DInputCheck(_a) {
|
|
7
|
-
var { id: idProp, type, name, label, ariaLabel, checked
|
|
10
|
+
var { id: idProp, type, name, label, ariaLabel, checked, defaultChecked, disabled = false, invalid = false, valid = false, indeterminate, inputClassName, value, hint, onChange, className, style, dataAttributes } = _a, props = __rest(_a, ["id", "type", "name", "label", "ariaLabel", "checked", "defaultChecked", "disabled", "invalid", "valid", "indeterminate", "inputClassName", "value", "hint", "onChange", "className", "style", "dataAttributes"]);
|
|
8
11
|
const innerRef = useRef(null);
|
|
12
|
+
// See `useControlledState` for why `onChange` takes part in this decision.
|
|
13
|
+
const isControlled = checked !== undefined && onChange !== undefined;
|
|
9
14
|
const innerId = useId();
|
|
10
15
|
const id = useMemo(() => idProp || innerId, [idProp, innerId]);
|
|
11
16
|
const handleChange = useCallback((event) => {
|
|
12
17
|
onChange === null || onChange === void 0 ? void 0 : onChange(event);
|
|
13
|
-
|
|
18
|
+
// Controlled only. Activating a checkbox clears the DOM `indeterminate`
|
|
19
|
+
// flag, and it has no HTML attribute for React to restore the way it
|
|
20
|
+
// restores `checked` when the parent rejects the change, so the mixed state
|
|
21
|
+
// would be gone after the first click — the effect below only re-runs when
|
|
22
|
+
// the prop moves. Uncontrolled keeps the browser's behaviour, where the
|
|
23
|
+
// click owns the state and `indeterminate` was only the starting look.
|
|
24
|
+
// Reapplied after `onChange` so a handler reading
|
|
25
|
+
// `event.target.indeterminate` still sees what the browser left, and a
|
|
26
|
+
// parent that does move the prop wins through that effect.
|
|
27
|
+
if (isControlled && innerRef.current) {
|
|
28
|
+
innerRef.current.indeterminate = type === 'checkbox' && Boolean(indeterminate);
|
|
29
|
+
}
|
|
30
|
+
}, [onChange, isControlled, indeterminate, type]);
|
|
14
31
|
const ariaDescribedby = useMemo(() => ([
|
|
15
32
|
!!hint && `${id}Hint`,
|
|
16
33
|
]
|
|
@@ -24,15 +41,24 @@ function DInputCheck(_a) {
|
|
|
24
41
|
innerRef.current.indeterminate = type === 'checkbox' && Boolean(indeterminate);
|
|
25
42
|
}
|
|
26
43
|
}, [indeterminate, type]);
|
|
44
|
+
// Legacy path only: a `checked` with no `onChange` behind it still lands on
|
|
45
|
+
// the element, but through the DOM, so the input stays uncontrolled and both
|
|
46
|
+
// clicking it and the native radio-group behaviour keep working.
|
|
27
47
|
useEffect(() => {
|
|
28
|
-
if (innerRef.current) {
|
|
29
|
-
|
|
48
|
+
if (isControlled || checked === undefined || !innerRef.current) {
|
|
49
|
+
return;
|
|
30
50
|
}
|
|
31
|
-
|
|
32
|
-
|
|
51
|
+
innerRef.current.checked = checked;
|
|
52
|
+
}, [isControlled, checked]);
|
|
53
|
+
const inputComponent = useMemo(() => (jsx("input", Object.assign({ ref: innerRef }, isControlled
|
|
54
|
+
? { checked }
|
|
55
|
+
: defaultChecked !== undefined && { defaultChecked }, { onChange: handleChange, className: classNames('form-check-input', {
|
|
33
56
|
'is-invalid': invalid,
|
|
34
57
|
'is-valid': valid,
|
|
35
58
|
}, inputClassName), style: style, id: id, disabled: disabled, type: type, name: name, value: value, "aria-label": ariaLabel }, ariaDescribedby && { 'aria-describedby': ariaDescribedby }, props))), [
|
|
59
|
+
isControlled,
|
|
60
|
+
checked,
|
|
61
|
+
defaultChecked,
|
|
36
62
|
handleChange,
|
|
37
63
|
invalid,
|
|
38
64
|
valid,
|
|
@@ -47,10 +73,21 @@ function DInputCheck(_a) {
|
|
|
47
73
|
ariaDescribedby,
|
|
48
74
|
props,
|
|
49
75
|
]);
|
|
50
|
-
if (
|
|
76
|
+
if (process.env.NODE_ENV !== 'production') {
|
|
77
|
+
warnLabelUsage({
|
|
78
|
+
component: 'DInputCheck',
|
|
79
|
+
label,
|
|
80
|
+
// `{...props}` is spread after `aria-label={ariaLabel}`, so a native
|
|
81
|
+
// `aria-label` wins — including when it is explicitly undefined.
|
|
82
|
+
hasAccessibleName: !!('aria-label' in props ? props['aria-label'] : ariaLabel)
|
|
83
|
+
|| !!props['aria-labelledby'],
|
|
84
|
+
accessibleNameProp: 'ariaLabel',
|
|
85
|
+
});
|
|
86
|
+
}
|
|
87
|
+
if (!hasLabelContent(label)) {
|
|
51
88
|
return inputComponent;
|
|
52
89
|
}
|
|
53
|
-
return (jsxs("div", Object.assign({ className: classNames('form-check', className) }, dataAttributes, { children: [inputComponent, jsx(
|
|
90
|
+
return (jsxs("div", Object.assign({ className: classNames('form-check', className) }, dataAttributes, { children: [inputComponent, jsx(DFormLabel, { className: "form-check-label", htmlFor: id, children: label }), hint && (jsx("div", { className: "form-text", id: `${id}Hint`, children: hint }))] })));
|
|
54
91
|
}
|
|
55
92
|
|
|
56
93
|
export { DInputCheck as default };
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"DInputCheck.js","sources":["../../../../dist-transpiled/components/DInputCheck/DInputCheck.js"],"sourcesContent":["import { __rest } from \"tslib\";\nimport { jsx as _jsx, jsxs as _jsxs } from \"react/jsx-runtime\";\nimport { useCallback, useEffect, useId, useMemo, useRef, } from 'react';\nimport classNames from 'classnames';\nexport default function DInputCheck(_a) {\n var { id: idProp, type, name, label, ariaLabel, checked
|
|
1
|
+
{"version":3,"file":"DInputCheck.js","sources":["../../../../dist-transpiled/components/DInputCheck/DInputCheck.js"],"sourcesContent":["import { __rest } from \"tslib\";\nimport { jsx as _jsx, jsxs as _jsxs } from \"react/jsx-runtime\";\nimport { useCallback, useEffect, useId, useMemo, useRef, } from 'react';\nimport classNames from 'classnames';\nimport DFormLabel from '../internal/DFormLabel';\nimport hasLabelContent from '../../utils/hasLabelContent';\nimport warnLabelUsage from '../../utils/warnLabelUsage';\nexport default function DInputCheck(_a) {\n var { id: idProp, type, name, label, ariaLabel, checked, defaultChecked, disabled = false, invalid = false, valid = false, indeterminate, inputClassName, value, hint, onChange, className, style, dataAttributes } = _a, props = __rest(_a, [\"id\", \"type\", \"name\", \"label\", \"ariaLabel\", \"checked\", \"defaultChecked\", \"disabled\", \"invalid\", \"valid\", \"indeterminate\", \"inputClassName\", \"value\", \"hint\", \"onChange\", \"className\", \"style\", \"dataAttributes\"]);\n const innerRef = useRef(null);\n // See `useControlledState` for why `onChange` takes part in this decision.\n const isControlled = checked !== undefined && onChange !== undefined;\n const innerId = useId();\n const id = useMemo(() => idProp || innerId, [idProp, innerId]);\n const handleChange = useCallback((event) => {\n onChange === null || onChange === void 0 ? void 0 : onChange(event);\n // Controlled only. Activating a checkbox clears the DOM `indeterminate`\n // flag, and it has no HTML attribute for React to restore the way it\n // restores `checked` when the parent rejects the change, so the mixed state\n // would be gone after the first click — the effect below only re-runs when\n // the prop moves. Uncontrolled keeps the browser's behaviour, where the\n // click owns the state and `indeterminate` was only the starting look.\n // Reapplied after `onChange` so a handler reading\n // `event.target.indeterminate` still sees what the browser left, and a\n // parent that does move the prop wins through that effect.\n if (isControlled && innerRef.current) {\n innerRef.current.indeterminate = type === 'checkbox' && Boolean(indeterminate);\n }\n }, [onChange, isControlled, indeterminate, type]);\n const ariaDescribedby = useMemo(() => ([\n !!hint && `${id}Hint`,\n ]\n .filter(Boolean)\n .join(' ')), [\n id,\n hint,\n ]);\n useEffect(() => {\n if (innerRef.current) {\n innerRef.current.indeterminate = type === 'checkbox' && Boolean(indeterminate);\n }\n }, [indeterminate, type]);\n // Legacy path only: a `checked` with no `onChange` behind it still lands on\n // the element, but through the DOM, so the input stays uncontrolled and both\n // clicking it and the native radio-group behaviour keep working.\n useEffect(() => {\n if (isControlled || checked === undefined || !innerRef.current) {\n return;\n }\n innerRef.current.checked = checked;\n }, [isControlled, checked]);\n const inputComponent = useMemo(() => (_jsx(\"input\", Object.assign({ ref: innerRef }, isControlled\n ? { checked }\n : defaultChecked !== undefined && { defaultChecked }, { onChange: handleChange, className: classNames('form-check-input', {\n 'is-invalid': invalid,\n 'is-valid': valid,\n }, inputClassName), style: style, id: id, disabled: disabled, type: type, name: name, value: value, \"aria-label\": ariaLabel }, ariaDescribedby && { 'aria-describedby': ariaDescribedby }, props))), [\n isControlled,\n checked,\n defaultChecked,\n handleChange,\n invalid,\n valid,\n inputClassName,\n style,\n id,\n disabled,\n type,\n name,\n value,\n ariaLabel,\n ariaDescribedby,\n props,\n ]);\n if (process.env.NODE_ENV !== 'production') {\n warnLabelUsage({\n component: 'DInputCheck',\n label,\n // `{...props}` is spread after `aria-label={ariaLabel}`, so a native\n // `aria-label` wins — including when it is explicitly undefined.\n hasAccessibleName: !!('aria-label' in props ? props['aria-label'] : ariaLabel)\n || !!props['aria-labelledby'],\n accessibleNameProp: 'ariaLabel',\n });\n }\n if (!hasLabelContent(label)) {\n return inputComponent;\n }\n return (_jsxs(\"div\", Object.assign({ className: classNames('form-check', className) }, dataAttributes, { children: [inputComponent, _jsx(DFormLabel, { className: \"form-check-label\", htmlFor: id, children: label }), hint && (_jsx(\"div\", { className: \"form-text\", id: `${id}Hint`, children: hint }))] })));\n}\n//# sourceMappingURL=DInputCheck.js.map"],"names":["_jsx","_jsxs"],"mappings":"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"}
|