@itcase/ui 1.8.168 → 1.8.170
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/{DatePicker_cjs_D4cDD52G.js → DatePicker_cjs_Jt22mPR8.js} +1 -1
- package/dist/{DatePicker_es_BO71h8AR.js → DatePicker_es_CbKQCO3U.js} +1 -1
- package/dist/{Input_cjs_IhuIPBIq.js → Input_cjs_CJOik_SP.js} +2 -1
- package/dist/{Input_es_CifTvE3z.js → Input_es_Dboktsxf.js} +3 -2
- package/dist/cjs/components/Dadata.js +1 -1
- package/dist/cjs/components/DatePeriod.js +2 -2
- package/dist/cjs/components/DatePicker.js +2 -2
- package/dist/cjs/components/Input.js +1 -1
- package/dist/cjs/components/Modal.js +31 -3
- package/dist/components/Dadata.js +1 -1
- package/dist/components/DatePeriod.js +2 -2
- package/dist/components/DatePicker.js +2 -2
- package/dist/components/Input.js +1 -1
- package/dist/components/Modal.js +32 -4
- package/package.json +1 -1
|
@@ -10,7 +10,7 @@ var useDevicePropsGenerator = require('./cjs/hooks/useDevicePropsGenerator/useDe
|
|
|
10
10
|
var useStyles = require('./cjs/hooks/useStyles/useStyles.js');
|
|
11
11
|
var Button = require('./Button_cjs_CYWNdPTJ.js');
|
|
12
12
|
var Icon = require('./Icon_cjs_Xsu3KUlK.js');
|
|
13
|
-
var Input = require('./
|
|
13
|
+
var Input = require('./Input_cjs_CJOik_SP.js');
|
|
14
14
|
var Label = require('./Label_cjs_RHq5CRw5.js');
|
|
15
15
|
var Text = require('./Text_cjs_DaH5tVvz.js');
|
|
16
16
|
var _default = require('@itcase/icons/default');
|
|
@@ -8,7 +8,7 @@ import { useDevicePropsGenerator } from './hooks/useDevicePropsGenerator/useDevi
|
|
|
8
8
|
import { useStyles } from './hooks/useStyles/useStyles.js';
|
|
9
9
|
import { B as Button } from './Button_es_Bns3_lNe.js';
|
|
10
10
|
import { I as Icon } from './Icon_es_B02tKDTb.js';
|
|
11
|
-
import { I as Input } from './
|
|
11
|
+
import { I as Input } from './Input_es_Dboktsxf.js';
|
|
12
12
|
import { L as Label } from './Label_es_CwhSc0UL.js';
|
|
13
13
|
import { T as Text } from './Text_es_RDU9GLCV.js';
|
|
14
14
|
import { icons14 } from '@itcase/icons/default';
|
|
@@ -213,7 +213,8 @@ const Input = React.forwardRef(function Input(props, ref) {
|
|
|
213
213
|
const appearanceConfig = useAppearanceConfig.useAppearanceConfig(appearance, inputConfig, isDisabled);
|
|
214
214
|
const propsGenerator = useDevicePropsGenerator.useDevicePropsGenerator(props, appearanceConfig);
|
|
215
215
|
const { fillClass, fillHoverClass, borderColorClass, borderColorHoverClass, borderWidthClass, textColorClass, textSizeClass, textWeightClass, caretClass, placeholderTextColorClass, shapeClass, shapeStrengthClass, sizeClass, widthClass, } = propsGenerator;
|
|
216
|
-
|
|
216
|
+
const fallbackId = React.useId();
|
|
217
|
+
return (jsxRuntime.jsx("input", { id: String(id ?? fallbackId), className: clsx(className, 'input', type === 'number' && 'input_type_number', isDisabled && 'input_state_disabled', (textSizeClass || textColorClass || textWeightClass) && 'text', borderColorClass && `border-color_${borderColorClass}`, borderColorHoverClass && `border-color_hover_${borderColorHoverClass}`, borderWidthClass && `border-width_${borderWidthClass}`, caretClass && `caret-color_${caretClass}`, fillClass && `fill_${fillClass}`, fillHoverClass && `fill_hover_${fillHoverClass}`, placeholderTextColorClass &&
|
|
217
218
|
`placeholder-text-color_${placeholderTextColorClass}`, shapeClass && `shape_${shapeClass}`, shapeStrengthClass && `shape-strength_${shapeStrengthClass}`, sizeClass && `input_size_${sizeClass}`, textColorClass && `text-color_${textColorClass}`, textColorClass && `text-color_${textColorClass}`, textSizeClass && `text_size_${textSizeClass}`, textWeightClass && `text-weight_${textWeightClass}`, widthClass && `width_${widthClass}`), type: type, ref: ref, autoComplete: autocomplete, "data-test-id": dataTestId || (name ? `${name}Input` : 'input'), disabled: isDisabled, index: index, placeholder: placeholder, readOnly: isReadOnly, value: value, onClick: onClick, onBlur: onBlur, onChange: onChange, onFocus: onFocus, onKeyDown: onKeyDown }));
|
|
218
219
|
});
|
|
219
220
|
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { jsx } from 'react/jsx-runtime';
|
|
2
|
-
import React from 'react';
|
|
2
|
+
import React, { useId } from 'react';
|
|
3
3
|
import clsx from 'clsx';
|
|
4
4
|
import { useAppearanceConfig } from './hooks/useAppearanceConfig/useAppearanceConfig.js';
|
|
5
5
|
import { useDevicePropsGenerator } from './hooks/useDevicePropsGenerator/useDevicePropsGenerator.js';
|
|
@@ -211,7 +211,8 @@ const Input = React.forwardRef(function Input(props, ref) {
|
|
|
211
211
|
const appearanceConfig = useAppearanceConfig(appearance, inputConfig, isDisabled);
|
|
212
212
|
const propsGenerator = useDevicePropsGenerator(props, appearanceConfig);
|
|
213
213
|
const { fillClass, fillHoverClass, borderColorClass, borderColorHoverClass, borderWidthClass, textColorClass, textSizeClass, textWeightClass, caretClass, placeholderTextColorClass, shapeClass, shapeStrengthClass, sizeClass, widthClass, } = propsGenerator;
|
|
214
|
-
|
|
214
|
+
const fallbackId = useId();
|
|
215
|
+
return (jsx("input", { id: String(id ?? fallbackId), className: clsx(className, 'input', type === 'number' && 'input_type_number', isDisabled && 'input_state_disabled', (textSizeClass || textColorClass || textWeightClass) && 'text', borderColorClass && `border-color_${borderColorClass}`, borderColorHoverClass && `border-color_hover_${borderColorHoverClass}`, borderWidthClass && `border-width_${borderWidthClass}`, caretClass && `caret-color_${caretClass}`, fillClass && `fill_${fillClass}`, fillHoverClass && `fill_hover_${fillHoverClass}`, placeholderTextColorClass &&
|
|
215
216
|
`placeholder-text-color_${placeholderTextColorClass}`, shapeClass && `shape_${shapeClass}`, shapeStrengthClass && `shape-strength_${shapeStrengthClass}`, sizeClass && `input_size_${sizeClass}`, textColorClass && `text-color_${textColorClass}`, textColorClass && `text-color_${textColorClass}`, textSizeClass && `text_size_${textSizeClass}`, textWeightClass && `text-weight_${textWeightClass}`, widthClass && `width_${widthClass}`), type: type, ref: ref, autoComplete: autocomplete, "data-test-id": dataTestId || (name ? `${name}Input` : 'input'), disabled: isDisabled, index: index, placeholder: placeholder, readOnly: isReadOnly, value: value, onClick: onClick, onBlur: onBlur, onChange: onChange, onFocus: onFocus, onKeyDown: onKeyDown }));
|
|
216
217
|
});
|
|
217
218
|
|
|
@@ -4,7 +4,7 @@ var jsxRuntime = require('react/jsx-runtime');
|
|
|
4
4
|
var React = require('react');
|
|
5
5
|
var clsx = require('clsx');
|
|
6
6
|
var reactDadata = require('react-dadata');
|
|
7
|
-
var Input = require('../../
|
|
7
|
+
var Input = require('../../Input_cjs_CJOik_SP.js');
|
|
8
8
|
require('../hooks/useAppearanceConfig/useAppearanceConfig.js');
|
|
9
9
|
require('../hooks/useDevicePropsGenerator/useDevicePropsGenerator.js');
|
|
10
10
|
require('lodash/camelCase');
|
|
@@ -5,7 +5,7 @@ var React = require('react');
|
|
|
5
5
|
var clsx = require('clsx');
|
|
6
6
|
var luxon = require('luxon');
|
|
7
7
|
var common = require('@itcase/common');
|
|
8
|
-
var DatePicker = require('../../
|
|
8
|
+
var DatePicker = require('../../DatePicker_cjs_Jt22mPR8.js');
|
|
9
9
|
var useAppearanceConfig = require('../hooks/useAppearanceConfig/useAppearanceConfig.js');
|
|
10
10
|
var useDevicePropsGenerator = require('../hooks/useDevicePropsGenerator/useDevicePropsGenerator.js');
|
|
11
11
|
var ChipsGroup = require('../../ChipsGroup_cjs_B182e4c8.js');
|
|
@@ -31,7 +31,7 @@ require('../context/UrlAssetPrefix.js');
|
|
|
31
31
|
require('../../Link_cjs_qKXVfU8e.js');
|
|
32
32
|
require('../../Text_cjs_DaH5tVvz.js');
|
|
33
33
|
require('../../Loader_cjs_CRiUlTC3.js');
|
|
34
|
-
require('../../
|
|
34
|
+
require('../../Input_cjs_CJOik_SP.js');
|
|
35
35
|
require('../../Label_cjs_RHq5CRw5.js');
|
|
36
36
|
require('@itcase/icons/default');
|
|
37
37
|
require('lodash/castArray');
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
'use strict';
|
|
2
2
|
|
|
3
|
-
var DatePicker = require('../../
|
|
3
|
+
var DatePicker = require('../../DatePicker_cjs_Jt22mPR8.js');
|
|
4
4
|
require('react/jsx-runtime');
|
|
5
5
|
require('react');
|
|
6
6
|
require('clsx');
|
|
@@ -30,7 +30,7 @@ require('../context/UrlAssetPrefix.js');
|
|
|
30
30
|
require('../../Link_cjs_qKXVfU8e.js');
|
|
31
31
|
require('../../Text_cjs_DaH5tVvz.js');
|
|
32
32
|
require('../../Loader_cjs_CRiUlTC3.js');
|
|
33
|
-
require('../../
|
|
33
|
+
require('../../Input_cjs_CJOik_SP.js');
|
|
34
34
|
require('../../Label_cjs_RHq5CRw5.js');
|
|
35
35
|
require('@itcase/icons/default');
|
|
36
36
|
|
|
@@ -170,7 +170,9 @@ const Modal = React.forwardRef(function Modal(props, ref) {
|
|
|
170
170
|
}, [isOpen, isScrollOnOpen, isSetFocusOnOpen]);
|
|
171
171
|
// Show modal with children content
|
|
172
172
|
const openModal = React.useCallback(() => {
|
|
173
|
-
|
|
173
|
+
React.startTransition(() => {
|
|
174
|
+
setIsOpen(true);
|
|
175
|
+
});
|
|
174
176
|
// Callback
|
|
175
177
|
if (typeof onOpenModal === 'function') {
|
|
176
178
|
onOpenModal();
|
|
@@ -204,6 +206,12 @@ const Modal = React.forwardRef(function Modal(props, ref) {
|
|
|
204
206
|
// Callback
|
|
205
207
|
onCloseModal && onCloseModal();
|
|
206
208
|
}, [modalElement, onCloseModal]);
|
|
209
|
+
const handleClickOverlay = React.useCallback(() => {
|
|
210
|
+
if (isCloseOnBlur) {
|
|
211
|
+
closeModal();
|
|
212
|
+
}
|
|
213
|
+
onClickOverlay && onClickOverlay();
|
|
214
|
+
}, [closeModal, isCloseOnBlur, onClickOverlay]);
|
|
207
215
|
React.useEffect(() => {
|
|
208
216
|
if (!modalElement) {
|
|
209
217
|
return;
|
|
@@ -221,6 +229,26 @@ const Modal = React.forwardRef(function Modal(props, ref) {
|
|
|
221
229
|
addModalProps(element);
|
|
222
230
|
}
|
|
223
231
|
}, [addModalProps, className, modalIdQuerySelector]);
|
|
232
|
+
React.useEffect(() => {
|
|
233
|
+
if (!isCloseOnBlur || !isOpen) {
|
|
234
|
+
return;
|
|
235
|
+
}
|
|
236
|
+
const handleClickOutside = (event) => {
|
|
237
|
+
const target = event.target;
|
|
238
|
+
if (!modalElement || !target || !target.isConnected) {
|
|
239
|
+
return;
|
|
240
|
+
}
|
|
241
|
+
const isOutside = !modalElement.contains(target);
|
|
242
|
+
if (isOutside) {
|
|
243
|
+
setIsOpen(false);
|
|
244
|
+
onCloseModal && onCloseModal();
|
|
245
|
+
}
|
|
246
|
+
};
|
|
247
|
+
window.addEventListener('click', handleClickOutside);
|
|
248
|
+
return () => {
|
|
249
|
+
window.removeEventListener('click', handleClickOutside);
|
|
250
|
+
};
|
|
251
|
+
}, [onCloseModal, isCloseOnBlur, isOpen, modalElement]);
|
|
224
252
|
// Save ref things
|
|
225
253
|
React.useImperativeHandle(ref, () => ({ modalElement, openModal, closeModal, isOpen }), [isOpen, openModal, closeModal, modalElement]);
|
|
226
254
|
const appearanceConfig = useAppearanceConfig.useAppearanceConfig(appearance, modalConfig, isDisabled);
|
|
@@ -232,9 +260,9 @@ const Modal = React.forwardRef(function Modal(props, ref) {
|
|
|
232
260
|
return (modalElement &&
|
|
233
261
|
ReactDOM.createPortal(
|
|
234
262
|
// Any valid React child: JSX, strings, arrays, etc.
|
|
235
|
-
isOpen ? (jsxRuntime.jsxs(React.Fragment, { children: [jsxRuntime.jsxs("div", { id: id, className: clsx('modal__content', absoluteHeader && 'modal__content-absolute-header', !title && !closeIcon && 'modal__content-no-header', fillClass && `fill_${fillClass}`, borderWidthClass && `border-width_${borderWidthClass}`, borderColorClass && `border-color_${borderColorClass}`, borderTypeClass && `border_type_${borderTypeClass}`, shapeClass && `shape_${shapeClass}`, sizeClass && `modal_size_${sizeClass}`, shapeStrengthClass && `shape-strength_${shapeStrengthClass}`, borderColorClass && `border-color_${borderColorClass}`, borderWidthClass && `border-width_${borderWidthClass}`, borderTypeClass && `border_type_${borderTypeClass}`, elevationClass && `elevation_${elevationClass}`, scroll && `modal-scroll_${scroll}`, stickyHeader && 'modal-scroll_header_sticky', isSkeleton && 'modal_skeleton'), ref: modalContentRef, "data-test-id": dataTestId, "data-tour": dataTour, style: modalStyles, tabIndex: 0,
|
|
263
|
+
isOpen ? (jsxRuntime.jsxs(React.Fragment, { children: [jsxRuntime.jsxs("div", { id: id, className: clsx('modal__content', absoluteHeader && 'modal__content-absolute-header', !title && !closeIcon && 'modal__content-no-header', fillClass && `fill_${fillClass}`, borderWidthClass && `border-width_${borderWidthClass}`, borderColorClass && `border-color_${borderColorClass}`, borderTypeClass && `border_type_${borderTypeClass}`, shapeClass && `shape_${shapeClass}`, sizeClass && `modal_size_${sizeClass}`, shapeStrengthClass && `shape-strength_${shapeStrengthClass}`, borderColorClass && `border-color_${borderColorClass}`, borderWidthClass && `border-width_${borderWidthClass}`, borderTypeClass && `border_type_${borderTypeClass}`, elevationClass && `elevation_${elevationClass}`, scroll && `modal-scroll_${scroll}`, stickyHeader && 'modal-scroll_header_sticky', isSkeleton && 'modal_skeleton'), ref: modalContentRef, "data-test-id": dataTestId, "data-tour": dataTour, style: modalStyles, tabIndex: 0, children: [(title || closeIcon) && (jsxRuntime.jsxs("div", { className: clsx('modal__header', fillClass && `fill_${fillClass}`), children: [title && (jsxRuntime.jsx(Icon.Title, { width: titleTextWidth, flex: "1", size: titleTextSize, textColor: titleTextColor, textColorHover: titleTextColorHover, textTruncate: titleTextTruncate, textWeight: titleTextWeight, textWrap: titleTextWrap, children: title })), closeIcon && (jsxRuntime.jsx("div", { className: "modal__close", onClick: closeModal, children: jsxRuntime.jsx(Icon.Icon, { appearance: `${closeIconAppearance} ${closeIconAppearanceSize}`, fillSize: closeIconFillSize, iconSize: closeIconSize, shape: closeIconShape, SvgImage: closeIconImage ?? _default.icons24.Action.Close }) }))] })), jsxRuntime.jsx("div", { className: "modal__content-wrapper", children: children })] }), jsxRuntime.jsx(Overlay.Overlay, { className: "modal__overlay",
|
|
236
264
|
// ref={modalOverlayRef}
|
|
237
|
-
fill: overlayFill, opacity: overlayOpacity, isOverlay: isOverlay, onClick:
|
|
265
|
+
fill: overlayFill, opacity: overlayOpacity, isOverlay: isOverlay, onClick: handleClickOverlay })] })) : null,
|
|
238
266
|
// A DOM element
|
|
239
267
|
modalElement));
|
|
240
268
|
});
|
|
@@ -2,7 +2,7 @@ import { jsx } from 'react/jsx-runtime';
|
|
|
2
2
|
import { useMemo } from 'react';
|
|
3
3
|
import clsx from 'clsx';
|
|
4
4
|
import { PartySuggestions } from 'react-dadata';
|
|
5
|
-
import { I as Input } from '../
|
|
5
|
+
import { I as Input } from '../Input_es_Dboktsxf.js';
|
|
6
6
|
import '../hooks/useAppearanceConfig/useAppearanceConfig.js';
|
|
7
7
|
import '../hooks/useDevicePropsGenerator/useDevicePropsGenerator.js';
|
|
8
8
|
import 'lodash/camelCase';
|
|
@@ -3,7 +3,7 @@ import { useCallback } from 'react';
|
|
|
3
3
|
import clsx from 'clsx';
|
|
4
4
|
import { DateTime } from 'luxon';
|
|
5
5
|
import { DATE_PERIOD_INTERVALS } from '@itcase/common';
|
|
6
|
-
import { D as DatePickerInput } from '../
|
|
6
|
+
import { D as DatePickerInput } from '../DatePicker_es_CbKQCO3U.js';
|
|
7
7
|
import { useAppearanceConfig } from '../hooks/useAppearanceConfig/useAppearanceConfig.js';
|
|
8
8
|
import { useDevicePropsGenerator } from '../hooks/useDevicePropsGenerator/useDevicePropsGenerator.js';
|
|
9
9
|
import { b as ChipsGroup, C as Chips } from '../ChipsGroup_es_BflE-5Q3.js';
|
|
@@ -29,7 +29,7 @@ import '../context/UrlAssetPrefix.js';
|
|
|
29
29
|
import '../Link_es_P2b6ya7P.js';
|
|
30
30
|
import '../Text_es_RDU9GLCV.js';
|
|
31
31
|
import '../Loader_es_Dq2-7sn2.js';
|
|
32
|
-
import '../
|
|
32
|
+
import '../Input_es_Dboktsxf.js';
|
|
33
33
|
import '../Label_es_CwhSc0UL.js';
|
|
34
34
|
import '@itcase/icons/default';
|
|
35
35
|
import 'lodash/castArray';
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
export { D as DatePickerInput, a as datePickerAppearance, d as datePickerConfig } from '../
|
|
1
|
+
export { D as DatePickerInput, a as datePickerAppearance, d as datePickerConfig } from '../DatePicker_es_CbKQCO3U.js';
|
|
2
2
|
import 'react/jsx-runtime';
|
|
3
3
|
import 'react';
|
|
4
4
|
import 'clsx';
|
|
@@ -28,6 +28,6 @@ import '../context/UrlAssetPrefix.js';
|
|
|
28
28
|
import '../Link_es_P2b6ya7P.js';
|
|
29
29
|
import '../Text_es_RDU9GLCV.js';
|
|
30
30
|
import '../Loader_es_Dq2-7sn2.js';
|
|
31
|
-
import '../
|
|
31
|
+
import '../Input_es_Dboktsxf.js';
|
|
32
32
|
import '../Label_es_CwhSc0UL.js';
|
|
33
33
|
import '@itcase/icons/default';
|
package/dist/components/Input.js
CHANGED
package/dist/components/Modal.js
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { jsxs, jsx } from 'react/jsx-runtime';
|
|
2
|
-
import React, { useState, useRef, useCallback, useEffect, useLayoutEffect, useImperativeHandle } from 'react';
|
|
2
|
+
import React, { useState, useRef, useCallback, startTransition, useEffect, useLayoutEffect, useImperativeHandle } from 'react';
|
|
3
3
|
import clsx from 'clsx';
|
|
4
4
|
import ReactDOM from 'react-dom';
|
|
5
5
|
import { icons24, icons32, icons40 } from '@itcase/icons/default';
|
|
@@ -168,7 +168,9 @@ const Modal = React.forwardRef(function Modal(props, ref) {
|
|
|
168
168
|
}, [isOpen, isScrollOnOpen, isSetFocusOnOpen]);
|
|
169
169
|
// Show modal with children content
|
|
170
170
|
const openModal = useCallback(() => {
|
|
171
|
-
|
|
171
|
+
startTransition(() => {
|
|
172
|
+
setIsOpen(true);
|
|
173
|
+
});
|
|
172
174
|
// Callback
|
|
173
175
|
if (typeof onOpenModal === 'function') {
|
|
174
176
|
onOpenModal();
|
|
@@ -202,6 +204,12 @@ const Modal = React.forwardRef(function Modal(props, ref) {
|
|
|
202
204
|
// Callback
|
|
203
205
|
onCloseModal && onCloseModal();
|
|
204
206
|
}, [modalElement, onCloseModal]);
|
|
207
|
+
const handleClickOverlay = useCallback(() => {
|
|
208
|
+
if (isCloseOnBlur) {
|
|
209
|
+
closeModal();
|
|
210
|
+
}
|
|
211
|
+
onClickOverlay && onClickOverlay();
|
|
212
|
+
}, [closeModal, isCloseOnBlur, onClickOverlay]);
|
|
205
213
|
useEffect(() => {
|
|
206
214
|
if (!modalElement) {
|
|
207
215
|
return;
|
|
@@ -219,6 +227,26 @@ const Modal = React.forwardRef(function Modal(props, ref) {
|
|
|
219
227
|
addModalProps(element);
|
|
220
228
|
}
|
|
221
229
|
}, [addModalProps, className, modalIdQuerySelector]);
|
|
230
|
+
useEffect(() => {
|
|
231
|
+
if (!isCloseOnBlur || !isOpen) {
|
|
232
|
+
return;
|
|
233
|
+
}
|
|
234
|
+
const handleClickOutside = (event) => {
|
|
235
|
+
const target = event.target;
|
|
236
|
+
if (!modalElement || !target || !target.isConnected) {
|
|
237
|
+
return;
|
|
238
|
+
}
|
|
239
|
+
const isOutside = !modalElement.contains(target);
|
|
240
|
+
if (isOutside) {
|
|
241
|
+
setIsOpen(false);
|
|
242
|
+
onCloseModal && onCloseModal();
|
|
243
|
+
}
|
|
244
|
+
};
|
|
245
|
+
window.addEventListener('click', handleClickOutside);
|
|
246
|
+
return () => {
|
|
247
|
+
window.removeEventListener('click', handleClickOutside);
|
|
248
|
+
};
|
|
249
|
+
}, [onCloseModal, isCloseOnBlur, isOpen, modalElement]);
|
|
222
250
|
// Save ref things
|
|
223
251
|
useImperativeHandle(ref, () => ({ modalElement, openModal, closeModal, isOpen }), [isOpen, openModal, closeModal, modalElement]);
|
|
224
252
|
const appearanceConfig = useAppearanceConfig(appearance, modalConfig, isDisabled);
|
|
@@ -230,9 +258,9 @@ const Modal = React.forwardRef(function Modal(props, ref) {
|
|
|
230
258
|
return (modalElement &&
|
|
231
259
|
ReactDOM.createPortal(
|
|
232
260
|
// Any valid React child: JSX, strings, arrays, etc.
|
|
233
|
-
isOpen ? (jsxs(React.Fragment, { children: [jsxs("div", { id: id, className: clsx('modal__content', absoluteHeader && 'modal__content-absolute-header', !title && !closeIcon && 'modal__content-no-header', fillClass && `fill_${fillClass}`, borderWidthClass && `border-width_${borderWidthClass}`, borderColorClass && `border-color_${borderColorClass}`, borderTypeClass && `border_type_${borderTypeClass}`, shapeClass && `shape_${shapeClass}`, sizeClass && `modal_size_${sizeClass}`, shapeStrengthClass && `shape-strength_${shapeStrengthClass}`, borderColorClass && `border-color_${borderColorClass}`, borderWidthClass && `border-width_${borderWidthClass}`, borderTypeClass && `border_type_${borderTypeClass}`, elevationClass && `elevation_${elevationClass}`, scroll && `modal-scroll_${scroll}`, stickyHeader && 'modal-scroll_header_sticky', isSkeleton && 'modal_skeleton'), ref: modalContentRef, "data-test-id": dataTestId, "data-tour": dataTour, style: modalStyles, tabIndex: 0,
|
|
261
|
+
isOpen ? (jsxs(React.Fragment, { children: [jsxs("div", { id: id, className: clsx('modal__content', absoluteHeader && 'modal__content-absolute-header', !title && !closeIcon && 'modal__content-no-header', fillClass && `fill_${fillClass}`, borderWidthClass && `border-width_${borderWidthClass}`, borderColorClass && `border-color_${borderColorClass}`, borderTypeClass && `border_type_${borderTypeClass}`, shapeClass && `shape_${shapeClass}`, sizeClass && `modal_size_${sizeClass}`, shapeStrengthClass && `shape-strength_${shapeStrengthClass}`, borderColorClass && `border-color_${borderColorClass}`, borderWidthClass && `border-width_${borderWidthClass}`, borderTypeClass && `border_type_${borderTypeClass}`, elevationClass && `elevation_${elevationClass}`, scroll && `modal-scroll_${scroll}`, stickyHeader && 'modal-scroll_header_sticky', isSkeleton && 'modal_skeleton'), ref: modalContentRef, "data-test-id": dataTestId, "data-tour": dataTour, style: modalStyles, tabIndex: 0, children: [(title || closeIcon) && (jsxs("div", { className: clsx('modal__header', fillClass && `fill_${fillClass}`), children: [title && (jsx(Title, { width: titleTextWidth, flex: "1", size: titleTextSize, textColor: titleTextColor, textColorHover: titleTextColorHover, textTruncate: titleTextTruncate, textWeight: titleTextWeight, textWrap: titleTextWrap, children: title })), closeIcon && (jsx("div", { className: "modal__close", onClick: closeModal, children: jsx(Icon, { appearance: `${closeIconAppearance} ${closeIconAppearanceSize}`, fillSize: closeIconFillSize, iconSize: closeIconSize, shape: closeIconShape, SvgImage: closeIconImage ?? icons24.Action.Close }) }))] })), jsx("div", { className: "modal__content-wrapper", children: children })] }), jsx(Overlay, { className: "modal__overlay",
|
|
234
262
|
// ref={modalOverlayRef}
|
|
235
|
-
fill: overlayFill, opacity: overlayOpacity, isOverlay: isOverlay, onClick:
|
|
263
|
+
fill: overlayFill, opacity: overlayOpacity, isOverlay: isOverlay, onClick: handleClickOverlay })] })) : null,
|
|
236
264
|
// A DOM element
|
|
237
265
|
modalElement));
|
|
238
266
|
});
|