@itwin/itwinui-react 3.0.5 → 3.0.6
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/CHANGELOG.md +6 -0
- package/cjs/core/Dialog/DialogMain.js +25 -4
- package/cjs/core/utils/components/Resizer.js +1 -1
- package/cjs/core/utils/functions/dom.d.ts +2 -1
- package/cjs/core/utils/functions/dom.js +6 -2
- package/cjs/core/utils/functions/numbers.d.ts +7 -0
- package/cjs/core/utils/functions/numbers.js +12 -1
- package/cjs/core/utils/hooks/useDragAndDrop.js +2 -2
- package/cjs/styles.js +2 -2
- package/esm/core/Dialog/DialogMain.js +26 -5
- package/esm/core/utils/components/Resizer.js +2 -2
- package/esm/core/utils/functions/dom.d.ts +2 -1
- package/esm/core/utils/functions/dom.js +4 -1
- package/esm/core/utils/functions/numbers.d.ts +7 -0
- package/esm/core/utils/functions/numbers.js +10 -0
- package/esm/core/utils/hooks/useDragAndDrop.js +3 -3
- package/esm/styles.js +2 -2
- package/package.json +1 -1
- package/styles.css +2 -2
package/CHANGELOG.md
CHANGED
|
@@ -38,7 +38,7 @@ exports.DialogMain = React.forwardRef((props, ref) => {
|
|
|
38
38
|
const { className, children, styleType = 'default', isOpen = dialogContext.isOpen, isDismissible = dialogContext.isDismissible, onClose = dialogContext.onClose, closeOnEsc = dialogContext.closeOnEsc, trapFocus = dialogContext.trapFocus, setFocus = dialogContext.setFocus, preventDocumentScroll = dialogContext.preventDocumentScroll, onKeyDown, isDraggable = dialogContext.isDraggable, isResizable = dialogContext.isResizable, style: propStyle, placement = dialogContext.placement, ...rest } = props;
|
|
39
39
|
const [style, setStyle] = React.useState();
|
|
40
40
|
const dialogRef = React.useRef(null);
|
|
41
|
-
const
|
|
41
|
+
const [dialogElement, setDialogElement] = React.useState();
|
|
42
42
|
const hasBeenResized = React.useRef(false);
|
|
43
43
|
const previousFocusedElement = React.useRef();
|
|
44
44
|
const originalBodyOverflow = React.useRef('');
|
|
@@ -90,7 +90,7 @@ exports.DialogMain = React.forwardRef((props, ref) => {
|
|
|
90
90
|
return;
|
|
91
91
|
}
|
|
92
92
|
const rect = dialogRef.current?.getBoundingClientRect();
|
|
93
|
-
const [translateX, translateY] = (0, index_js_1.
|
|
93
|
+
const [translateX, translateY] = (0, index_js_1.getTranslateValuesFromElement)(dialogRef.current);
|
|
94
94
|
setStyle((oldStyle) => ({
|
|
95
95
|
...oldStyle,
|
|
96
96
|
inlineSize: rect?.width,
|
|
@@ -106,13 +106,17 @@ exports.DialogMain = React.forwardRef((props, ref) => {
|
|
|
106
106
|
...newStyle,
|
|
107
107
|
}));
|
|
108
108
|
}, []);
|
|
109
|
+
const roundedTransform = useRoundedTransform({
|
|
110
|
+
element: dialogElement,
|
|
111
|
+
transform,
|
|
112
|
+
});
|
|
109
113
|
const content = (React.createElement(index_js_1.Box, { className: (0, classnames_1.default)('iui-dialog', {
|
|
110
114
|
'iui-dialog-default': styleType === 'default',
|
|
111
115
|
'iui-dialog-full-page': styleType === 'fullPage',
|
|
112
116
|
'iui-dialog-visible': isOpen,
|
|
113
117
|
'iui-dialog-draggable': isDraggable,
|
|
114
|
-
}, className), role: 'dialog', ref:
|
|
115
|
-
transform,
|
|
118
|
+
}, className), role: 'dialog', ref: (0, index_js_1.useMergedRefs)(dialogRef, ref, setDialogElement), onKeyDown: handleKeyDown, tabIndex: -1, "data-iui-placement": placement, style: {
|
|
119
|
+
transform: roundedTransform,
|
|
116
120
|
...style,
|
|
117
121
|
...propStyle,
|
|
118
122
|
}, ...rest },
|
|
@@ -144,3 +148,20 @@ exports.DialogMain = React.forwardRef((props, ref) => {
|
|
|
144
148
|
!trapFocus && content)));
|
|
145
149
|
});
|
|
146
150
|
exports.default = exports.DialogMain;
|
|
151
|
+
// ----------------------------------------------------------------------------
|
|
152
|
+
/**
|
|
153
|
+
* Rounds off an element's transform value based on the device's pixel grid, to avoid blurring.
|
|
154
|
+
*/
|
|
155
|
+
const useRoundedTransform = ({ element, transform, }) => {
|
|
156
|
+
const [roundedStyles, setRoundedStyles] = React.useState(transform);
|
|
157
|
+
(0, index_js_1.useIsomorphicLayoutEffect)(() => {
|
|
158
|
+
if (!element || typeof DOMMatrix === 'undefined') {
|
|
159
|
+
return;
|
|
160
|
+
}
|
|
161
|
+
const [x, y] = transform
|
|
162
|
+
? (0, index_js_1.getTranslateValues)(transform)
|
|
163
|
+
: (0, index_js_1.getTranslateValuesFromElement)(element);
|
|
164
|
+
setRoundedStyles(`translate(${(0, index_js_1.roundByDPR)(x)}px, ${(0, index_js_1.roundByDPR)(y)}px)`);
|
|
165
|
+
}, [element, transform]);
|
|
166
|
+
return roundedStyles;
|
|
167
|
+
};
|
|
@@ -29,7 +29,7 @@ const Resizer = (props) => {
|
|
|
29
29
|
}
|
|
30
30
|
const initialPointerX = event.clientX;
|
|
31
31
|
const initialPointerY = event.clientY;
|
|
32
|
-
const [initialTranslateX, initialTranslateY] = (0, index_js_1.
|
|
32
|
+
const [initialTranslateX, initialTranslateY] = (0, index_js_1.getTranslateValuesFromElement)(elementRef.current);
|
|
33
33
|
const { width: initialWidth, height: initialHeight } = elementRef.current.getBoundingClientRect();
|
|
34
34
|
let width = `${initialWidth}px`;
|
|
35
35
|
let height = `${initialHeight}px`;
|
|
@@ -19,4 +19,5 @@ export declare const mergeEventHandlers: <E extends import("react").SyntheticEve
|
|
|
19
19
|
* @param element HTML element you want to get translate value of
|
|
20
20
|
* @returns Translate values in pixels in an array `[translateX, translateY]`
|
|
21
21
|
*/
|
|
22
|
-
export declare const
|
|
22
|
+
export declare const getTranslateValuesFromElement: (element: HTMLElement | null | undefined) => number[];
|
|
23
|
+
export declare const getTranslateValues: (transformValue: string) => number[];
|
|
@@ -4,7 +4,7 @@
|
|
|
4
4
|
* See LICENSE.md in the project root for license terms and full copyright notice.
|
|
5
5
|
*--------------------------------------------------------------------------------------------*/
|
|
6
6
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
7
|
-
exports.getTranslateValues = exports.mergeEventHandlers = exports.getWindow = exports.getDocument = void 0;
|
|
7
|
+
exports.getTranslateValues = exports.getTranslateValuesFromElement = exports.mergeEventHandlers = exports.getWindow = exports.getDocument = void 0;
|
|
8
8
|
/**
|
|
9
9
|
* Get document if it is defined.
|
|
10
10
|
* Used to support SSR/SSG applications.
|
|
@@ -39,11 +39,15 @@ exports.mergeEventHandlers = mergeEventHandlers;
|
|
|
39
39
|
* @param element HTML element you want to get translate value of
|
|
40
40
|
* @returns Translate values in pixels in an array `[translateX, translateY]`
|
|
41
41
|
*/
|
|
42
|
-
const
|
|
42
|
+
const getTranslateValuesFromElement = (element) => {
|
|
43
43
|
if (!element) {
|
|
44
44
|
return [];
|
|
45
45
|
}
|
|
46
46
|
const transformValue = getComputedStyle(element).getPropertyValue('transform');
|
|
47
|
+
return (0, exports.getTranslateValues)(transformValue);
|
|
48
|
+
};
|
|
49
|
+
exports.getTranslateValuesFromElement = getTranslateValuesFromElement;
|
|
50
|
+
const getTranslateValues = (transformValue) => {
|
|
47
51
|
const matrix = new DOMMatrix(transformValue);
|
|
48
52
|
return [matrix.m41, matrix.m42];
|
|
49
53
|
};
|
|
@@ -6,3 +6,10 @@ export declare const getBoundedValue: (val: number, min: number, max: number) =>
|
|
|
6
6
|
* Returns a random value of a given length containing `A-Za-z0-9_-` symbols.
|
|
7
7
|
*/
|
|
8
8
|
export declare const getRandomValue: (length?: number) => string;
|
|
9
|
+
/**
|
|
10
|
+
* Rounds a pixel value based on the device's pixel ratio. This ensures that values can be
|
|
11
|
+
* placed evenly on the device’s pixel grid, avoiding any blurring.
|
|
12
|
+
*
|
|
13
|
+
* @see https://floating-ui.com/docs/misc#subpixel-and-accelerated-positioning
|
|
14
|
+
*/
|
|
15
|
+
export declare const roundByDPR: (value: number) => number;
|
|
@@ -4,7 +4,7 @@
|
|
|
4
4
|
* See LICENSE.md in the project root for license terms and full copyright notice.
|
|
5
5
|
*--------------------------------------------------------------------------------------------*/
|
|
6
6
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
7
|
-
exports.getRandomValue = exports.getBoundedValue = void 0;
|
|
7
|
+
exports.roundByDPR = exports.getRandomValue = exports.getBoundedValue = void 0;
|
|
8
8
|
/**
|
|
9
9
|
* Return input value bounded by specified range.
|
|
10
10
|
*/
|
|
@@ -24,3 +24,14 @@ const getRandomValue = (length = 21) => {
|
|
|
24
24
|
return id;
|
|
25
25
|
};
|
|
26
26
|
exports.getRandomValue = getRandomValue;
|
|
27
|
+
/**
|
|
28
|
+
* Rounds a pixel value based on the device's pixel ratio. This ensures that values can be
|
|
29
|
+
* placed evenly on the device’s pixel grid, avoiding any blurring.
|
|
30
|
+
*
|
|
31
|
+
* @see https://floating-ui.com/docs/misc#subpixel-and-accelerated-positioning
|
|
32
|
+
*/
|
|
33
|
+
const roundByDPR = (value) => {
|
|
34
|
+
const dpr = window.devicePixelRatio || 1;
|
|
35
|
+
return Math.round(value * dpr) / dpr;
|
|
36
|
+
};
|
|
37
|
+
exports.roundByDPR = roundByDPR;
|
|
@@ -38,7 +38,7 @@ const useDragAndDrop = (elementRef, containerRef, enabled = true) => {
|
|
|
38
38
|
return;
|
|
39
39
|
}
|
|
40
40
|
const { top, right, bottom, left } = elementRef.current?.getBoundingClientRect();
|
|
41
|
-
let [newTranslateX, newTranslateY] = (0, index_js_1.
|
|
41
|
+
let [newTranslateX, newTranslateY] = (0, index_js_1.getTranslateValuesFromElement)(elementRef.current);
|
|
42
42
|
containerRectRef.current = getContainerRect(containerRef);
|
|
43
43
|
if (bottom > containerRectRef.current.bottom) {
|
|
44
44
|
newTranslateY -= bottom - containerRectRef.current.bottom;
|
|
@@ -84,7 +84,7 @@ const useDragAndDrop = (elementRef, containerRef, enabled = true) => {
|
|
|
84
84
|
if (!elementRef.current || e.button !== 0 || !enabled) {
|
|
85
85
|
return;
|
|
86
86
|
}
|
|
87
|
-
const [x, y] = (0, index_js_1.
|
|
87
|
+
const [x, y] = (0, index_js_1.getTranslateValuesFromElement)(elementRef.current);
|
|
88
88
|
grabOffsetX.current = e.clientX - x;
|
|
89
89
|
grabOffsetY.current = e.clientY - y;
|
|
90
90
|
originalUserSelect.current = elementRef.current.style.userSelect;
|
package/cjs/styles.js
CHANGED
|
@@ -208,9 +208,9 @@ const styles = {
|
|
|
208
208
|
"iui-overlay-exiting": "_iui3-overlay-exiting",
|
|
209
209
|
closeAnimation,
|
|
210
210
|
"iui-progress-indicator-radial": "_iui3-progress-indicator-radial",
|
|
211
|
-
"iui-
|
|
211
|
+
"iui-uj58gze": "_iui3-uj58gze",
|
|
212
212
|
"iui-progress-indicator-linear-label": "_iui3-progress-indicator-linear-label",
|
|
213
|
-
"iui-
|
|
213
|
+
"iui-uj58gzs": "_iui3-uj58gzs",
|
|
214
214
|
"iui-radio": "_iui3-radio",
|
|
215
215
|
"iui-radio-tile": "_iui3-radio-tile",
|
|
216
216
|
"iui-radio-tile-icon": "_iui3-radio-tile-icon",
|
|
@@ -4,7 +4,7 @@
|
|
|
4
4
|
*--------------------------------------------------------------------------------------------*/
|
|
5
5
|
import * as React from 'react';
|
|
6
6
|
import cx from 'classnames';
|
|
7
|
-
import { FocusTrap,
|
|
7
|
+
import { FocusTrap, getTranslateValuesFromElement, Resizer, useMergedRefs, useIsomorphicLayoutEffect, Box, getTranslateValues, roundByDPR, } from '../utils/index.js';
|
|
8
8
|
import { useDialogContext } from './DialogContext.js';
|
|
9
9
|
import { CSSTransition } from 'react-transition-group';
|
|
10
10
|
import { DialogDragContext } from './DialogDragContext.js';
|
|
@@ -34,7 +34,7 @@ export const DialogMain = React.forwardRef((props, ref) => {
|
|
|
34
34
|
const { className, children, styleType = 'default', isOpen = dialogContext.isOpen, isDismissible = dialogContext.isDismissible, onClose = dialogContext.onClose, closeOnEsc = dialogContext.closeOnEsc, trapFocus = dialogContext.trapFocus, setFocus = dialogContext.setFocus, preventDocumentScroll = dialogContext.preventDocumentScroll, onKeyDown, isDraggable = dialogContext.isDraggable, isResizable = dialogContext.isResizable, style: propStyle, placement = dialogContext.placement, ...rest } = props;
|
|
35
35
|
const [style, setStyle] = React.useState();
|
|
36
36
|
const dialogRef = React.useRef(null);
|
|
37
|
-
const
|
|
37
|
+
const [dialogElement, setDialogElement] = React.useState();
|
|
38
38
|
const hasBeenResized = React.useRef(false);
|
|
39
39
|
const previousFocusedElement = React.useRef();
|
|
40
40
|
const originalBodyOverflow = React.useRef('');
|
|
@@ -86,7 +86,7 @@ export const DialogMain = React.forwardRef((props, ref) => {
|
|
|
86
86
|
return;
|
|
87
87
|
}
|
|
88
88
|
const rect = dialogRef.current?.getBoundingClientRect();
|
|
89
|
-
const [translateX, translateY] =
|
|
89
|
+
const [translateX, translateY] = getTranslateValuesFromElement(dialogRef.current);
|
|
90
90
|
setStyle((oldStyle) => ({
|
|
91
91
|
...oldStyle,
|
|
92
92
|
inlineSize: rect?.width,
|
|
@@ -102,13 +102,17 @@ export const DialogMain = React.forwardRef((props, ref) => {
|
|
|
102
102
|
...newStyle,
|
|
103
103
|
}));
|
|
104
104
|
}, []);
|
|
105
|
+
const roundedTransform = useRoundedTransform({
|
|
106
|
+
element: dialogElement,
|
|
107
|
+
transform,
|
|
108
|
+
});
|
|
105
109
|
const content = (React.createElement(Box, { className: cx('iui-dialog', {
|
|
106
110
|
'iui-dialog-default': styleType === 'default',
|
|
107
111
|
'iui-dialog-full-page': styleType === 'fullPage',
|
|
108
112
|
'iui-dialog-visible': isOpen,
|
|
109
113
|
'iui-dialog-draggable': isDraggable,
|
|
110
|
-
}, className), role: 'dialog', ref:
|
|
111
|
-
transform,
|
|
114
|
+
}, className), role: 'dialog', ref: useMergedRefs(dialogRef, ref, setDialogElement), onKeyDown: handleKeyDown, tabIndex: -1, "data-iui-placement": placement, style: {
|
|
115
|
+
transform: roundedTransform,
|
|
112
116
|
...style,
|
|
113
117
|
...propStyle,
|
|
114
118
|
}, ...rest },
|
|
@@ -140,3 +144,20 @@ export const DialogMain = React.forwardRef((props, ref) => {
|
|
|
140
144
|
!trapFocus && content)));
|
|
141
145
|
});
|
|
142
146
|
export default DialogMain;
|
|
147
|
+
// ----------------------------------------------------------------------------
|
|
148
|
+
/**
|
|
149
|
+
* Rounds off an element's transform value based on the device's pixel grid, to avoid blurring.
|
|
150
|
+
*/
|
|
151
|
+
const useRoundedTransform = ({ element, transform, }) => {
|
|
152
|
+
const [roundedStyles, setRoundedStyles] = React.useState(transform);
|
|
153
|
+
useIsomorphicLayoutEffect(() => {
|
|
154
|
+
if (!element || typeof DOMMatrix === 'undefined') {
|
|
155
|
+
return;
|
|
156
|
+
}
|
|
157
|
+
const [x, y] = transform
|
|
158
|
+
? getTranslateValues(transform)
|
|
159
|
+
: getTranslateValuesFromElement(element);
|
|
160
|
+
setRoundedStyles(`translate(${roundByDPR(x)}px, ${roundByDPR(y)}px)`);
|
|
161
|
+
}, [element, transform]);
|
|
162
|
+
return roundedStyles;
|
|
163
|
+
};
|
|
@@ -3,7 +3,7 @@
|
|
|
3
3
|
* See LICENSE.md in the project root for license terms and full copyright notice.
|
|
4
4
|
*--------------------------------------------------------------------------------------------*/
|
|
5
5
|
import * as React from 'react';
|
|
6
|
-
import { getBoundedValue,
|
|
6
|
+
import { getBoundedValue, getTranslateValuesFromElement, } from '../functions/index.js';
|
|
7
7
|
/**
|
|
8
8
|
* Component that allows to resize parent element.
|
|
9
9
|
* Parent must have `position: relative`.
|
|
@@ -25,7 +25,7 @@ export const Resizer = (props) => {
|
|
|
25
25
|
}
|
|
26
26
|
const initialPointerX = event.clientX;
|
|
27
27
|
const initialPointerY = event.clientY;
|
|
28
|
-
const [initialTranslateX, initialTranslateY] =
|
|
28
|
+
const [initialTranslateX, initialTranslateY] = getTranslateValuesFromElement(elementRef.current);
|
|
29
29
|
const { width: initialWidth, height: initialHeight } = elementRef.current.getBoundingClientRect();
|
|
30
30
|
let width = `${initialWidth}px`;
|
|
31
31
|
let height = `${initialHeight}px`;
|
|
@@ -19,4 +19,5 @@ export declare const mergeEventHandlers: <E extends import("react").SyntheticEve
|
|
|
19
19
|
* @param element HTML element you want to get translate value of
|
|
20
20
|
* @returns Translate values in pixels in an array `[translateX, translateY]`
|
|
21
21
|
*/
|
|
22
|
-
export declare const
|
|
22
|
+
export declare const getTranslateValuesFromElement: (element: HTMLElement | null | undefined) => number[];
|
|
23
|
+
export declare const getTranslateValues: (transformValue: string) => number[];
|
|
@@ -33,11 +33,14 @@ export const mergeEventHandlers = (...callbacks) => (event) => {
|
|
|
33
33
|
* @param element HTML element you want to get translate value of
|
|
34
34
|
* @returns Translate values in pixels in an array `[translateX, translateY]`
|
|
35
35
|
*/
|
|
36
|
-
export const
|
|
36
|
+
export const getTranslateValuesFromElement = (element) => {
|
|
37
37
|
if (!element) {
|
|
38
38
|
return [];
|
|
39
39
|
}
|
|
40
40
|
const transformValue = getComputedStyle(element).getPropertyValue('transform');
|
|
41
|
+
return getTranslateValues(transformValue);
|
|
42
|
+
};
|
|
43
|
+
export const getTranslateValues = (transformValue) => {
|
|
41
44
|
const matrix = new DOMMatrix(transformValue);
|
|
42
45
|
return [matrix.m41, matrix.m42];
|
|
43
46
|
};
|
|
@@ -6,3 +6,10 @@ export declare const getBoundedValue: (val: number, min: number, max: number) =>
|
|
|
6
6
|
* Returns a random value of a given length containing `A-Za-z0-9_-` symbols.
|
|
7
7
|
*/
|
|
8
8
|
export declare const getRandomValue: (length?: number) => string;
|
|
9
|
+
/**
|
|
10
|
+
* Rounds a pixel value based on the device's pixel ratio. This ensures that values can be
|
|
11
|
+
* placed evenly on the device’s pixel grid, avoiding any blurring.
|
|
12
|
+
*
|
|
13
|
+
* @see https://floating-ui.com/docs/misc#subpixel-and-accelerated-positioning
|
|
14
|
+
*/
|
|
15
|
+
export declare const roundByDPR: (value: number) => number;
|
|
@@ -19,3 +19,13 @@ export const getRandomValue = (length = 21) => {
|
|
|
19
19
|
}
|
|
20
20
|
return id;
|
|
21
21
|
};
|
|
22
|
+
/**
|
|
23
|
+
* Rounds a pixel value based on the device's pixel ratio. This ensures that values can be
|
|
24
|
+
* placed evenly on the device’s pixel grid, avoiding any blurring.
|
|
25
|
+
*
|
|
26
|
+
* @see https://floating-ui.com/docs/misc#subpixel-and-accelerated-positioning
|
|
27
|
+
*/
|
|
28
|
+
export const roundByDPR = (value) => {
|
|
29
|
+
const dpr = window.devicePixelRatio || 1;
|
|
30
|
+
return Math.round(value * dpr) / dpr;
|
|
31
|
+
};
|
|
@@ -3,7 +3,7 @@
|
|
|
3
3
|
* See LICENSE.md in the project root for license terms and full copyright notice.
|
|
4
4
|
*--------------------------------------------------------------------------------------------*/
|
|
5
5
|
import * as React from 'react';
|
|
6
|
-
import {
|
|
6
|
+
import { getTranslateValuesFromElement, getWindow, } from '../functions/index.js';
|
|
7
7
|
import { useEventListener } from './useEventListener.js';
|
|
8
8
|
import { useResizeObserver } from './useResizeObserver.js';
|
|
9
9
|
const getContainerRect = (containerRef) => {
|
|
@@ -34,7 +34,7 @@ export const useDragAndDrop = (elementRef, containerRef, enabled = true) => {
|
|
|
34
34
|
return;
|
|
35
35
|
}
|
|
36
36
|
const { top, right, bottom, left } = elementRef.current?.getBoundingClientRect();
|
|
37
|
-
let [newTranslateX, newTranslateY] =
|
|
37
|
+
let [newTranslateX, newTranslateY] = getTranslateValuesFromElement(elementRef.current);
|
|
38
38
|
containerRectRef.current = getContainerRect(containerRef);
|
|
39
39
|
if (bottom > containerRectRef.current.bottom) {
|
|
40
40
|
newTranslateY -= bottom - containerRectRef.current.bottom;
|
|
@@ -80,7 +80,7 @@ export const useDragAndDrop = (elementRef, containerRef, enabled = true) => {
|
|
|
80
80
|
if (!elementRef.current || e.button !== 0 || !enabled) {
|
|
81
81
|
return;
|
|
82
82
|
}
|
|
83
|
-
const [x, y] =
|
|
83
|
+
const [x, y] = getTranslateValuesFromElement(elementRef.current);
|
|
84
84
|
grabOffsetX.current = e.clientX - x;
|
|
85
85
|
grabOffsetY.current = e.clientY - y;
|
|
86
86
|
originalUserSelect.current = elementRef.current.style.userSelect;
|
package/esm/styles.js
CHANGED
|
@@ -207,9 +207,9 @@ const styles = {
|
|
|
207
207
|
"iui-overlay-exiting": "_iui3-overlay-exiting",
|
|
208
208
|
closeAnimation,
|
|
209
209
|
"iui-progress-indicator-radial": "_iui3-progress-indicator-radial",
|
|
210
|
-
"iui-
|
|
210
|
+
"iui-uj58gze": "_iui3-uj58gze",
|
|
211
211
|
"iui-progress-indicator-linear-label": "_iui3-progress-indicator-linear-label",
|
|
212
|
-
"iui-
|
|
212
|
+
"iui-uj58gzs": "_iui3-uj58gzs",
|
|
213
213
|
"iui-radio": "_iui3-radio",
|
|
214
214
|
"iui-radio-tile": "_iui3-radio-tile",
|
|
215
215
|
"iui-radio-tile-icon": "_iui3-radio-tile-icon",
|
package/package.json
CHANGED
package/styles.css
CHANGED
|
@@ -694,14 +694,14 @@
|
|
|
694
694
|
}
|
|
695
695
|
|
|
696
696
|
@layer itwinui.v3{
|
|
697
|
-
._iui3-progress-indicator-radial :is(svg,img){inline-size:var(--iui-size-m);block-size:var(--iui-size-m);fill:var(--iui-color-icon);flex-shrink:0;display:flex}._iui3-progress-indicator-radial[data-iui-status=positive]{color:var(--iui-color-text-positive)}._iui3-progress-indicator-radial[data-iui-status=positive]:after{background-color:var(--iui-color-border-positive)}._iui3-progress-indicator-radial[data-iui-status=positive] :is(svg,img){fill:var(--iui-color-border-positive)}._iui3-progress-indicator-radial[data-iui-status=negative]{color:var(--iui-color-text-negative)}._iui3-progress-indicator-radial[data-iui-status=negative]:after{background-color:var(--iui-color-border-negative)}._iui3-progress-indicator-radial[data-iui-status=negative] :is(svg,img){fill:var(--iui-color-border-negative)}._iui3-progress-indicator-radial[data-iui-size=x-small]{--_iui-progress-indicator-radial-size:var(--iui-size-m)}._iui3-progress-indicator-radial[data-iui-size=x-small]:before,._iui3-progress-indicator-radial[data-iui-size=x-small]:after{border-width:var(--iui-size-3xs)}._iui3-progress-indicator-radial[data-iui-size=x-small]>*{display:none}._iui3-progress-indicator-radial[data-iui-size=small]{--_iui-progress-indicator-radial-size:calc(1.5*var(--iui-size-m))}._iui3-progress-indicator-radial[data-iui-size=small]:before,._iui3-progress-indicator-radial[data-iui-size=small]:after{border-width:calc(var(--iui-size-3xs)*1.5)}._iui3-progress-indicator-radial[data-iui-size=large]{--_iui-progress-indicator-radial-size:calc(3*var(--iui-size-m));font-size:var(--iui-font-size-2)}._iui3-progress-indicator-radial[data-iui-size=large]:before,._iui3-progress-indicator-radial[data-iui-size=large]:after{border-width:calc(var(--iui-size-2xs)*1.5)}._iui3-progress-indicator-radial[data-iui-size=large] :is(svg,img){inline-size:calc(1.5*var(--iui-size-m));block-size:calc(1.5*var(--iui-size-m));flex-shrink:0;display:flex}._iui3-progress-indicator-radial:where(:not([data-iui-indeterminate=true])):after{-webkit-mask-image:conic-gradient(#000 var(--iui-progress-percentage,100%),#0000 var(--iui-progress-percentage,100%)),linear-gradient(#000 0 0);mask-image:conic-gradient(#000 var(--iui-progress-percentage,100%),#0000 var(--iui-progress-percentage,100%)),linear-gradient(#000 0 0)}._iui3-progress-indicator-radial:where([data-iui-indeterminate=true]):after{animation:.8s cubic-bezier(.6,.4,.4,.6) infinite _iui3-
|
|
697
|
+
._iui3-progress-indicator-radial :is(svg,img){inline-size:var(--iui-size-m);block-size:var(--iui-size-m);fill:var(--iui-color-icon);flex-shrink:0;display:flex}._iui3-progress-indicator-radial[data-iui-status=positive]{color:var(--iui-color-text-positive)}._iui3-progress-indicator-radial[data-iui-status=positive]:after{background-color:var(--iui-color-border-positive)}._iui3-progress-indicator-radial[data-iui-status=positive] :is(svg,img){fill:var(--iui-color-border-positive)}._iui3-progress-indicator-radial[data-iui-status=negative]{color:var(--iui-color-text-negative)}._iui3-progress-indicator-radial[data-iui-status=negative]:after{background-color:var(--iui-color-border-negative)}._iui3-progress-indicator-radial[data-iui-status=negative] :is(svg,img){fill:var(--iui-color-border-negative)}._iui3-progress-indicator-radial[data-iui-size=x-small]{--_iui-progress-indicator-radial-size:var(--iui-size-m)}._iui3-progress-indicator-radial[data-iui-size=x-small]:before,._iui3-progress-indicator-radial[data-iui-size=x-small]:after{border-width:var(--iui-size-3xs)}._iui3-progress-indicator-radial[data-iui-size=x-small]>*{display:none}._iui3-progress-indicator-radial[data-iui-size=small]{--_iui-progress-indicator-radial-size:calc(1.5*var(--iui-size-m))}._iui3-progress-indicator-radial[data-iui-size=small]:before,._iui3-progress-indicator-radial[data-iui-size=small]:after{border-width:calc(var(--iui-size-3xs)*1.5)}._iui3-progress-indicator-radial[data-iui-size=large]{--_iui-progress-indicator-radial-size:calc(3*var(--iui-size-m));font-size:var(--iui-font-size-2)}._iui3-progress-indicator-radial[data-iui-size=large]:before,._iui3-progress-indicator-radial[data-iui-size=large]:after{border-width:calc(var(--iui-size-2xs)*1.5)}._iui3-progress-indicator-radial[data-iui-size=large] :is(svg,img){inline-size:calc(1.5*var(--iui-size-m));block-size:calc(1.5*var(--iui-size-m));flex-shrink:0;display:flex}._iui3-progress-indicator-radial:where(:not([data-iui-indeterminate=true])):after{-webkit-mask-image:conic-gradient(#000 var(--iui-progress-percentage,100%),#0000 var(--iui-progress-percentage,100%)),linear-gradient(#000 0 0);mask-image:conic-gradient(#000 var(--iui-progress-percentage,100%),#0000 var(--iui-progress-percentage,100%)),linear-gradient(#000 0 0)}._iui3-progress-indicator-radial:where([data-iui-indeterminate=true]):after{animation:.8s cubic-bezier(.6,.4,.4,.6) infinite _iui3-uj58gze;-webkit-mask-image:conic-gradient(#0000,#000),linear-gradient(#000 0 0);mask-image:conic-gradient(#0000,#000),linear-gradient(#000 0 0)}@keyframes _iui3-uj58gze{to{transform:rotate(360deg)}}._iui3-progress-indicator-linear-label{font-size:var(--iui-font-size-0);color:var(--_iui-progress-indicator-linear-label-color);--iui-svg-fill:var(--_iui-progress-indicator-linear-label-fill);justify-content:space-between;align-items:center;display:flex}._iui3-progress-indicator-linear-label>:only-child{margin-inline:auto}._iui3-progress-indicator-linear{gap:var(--iui-size-2xs);display:grid}._iui3-progress-indicator-linear:before{content:"";block-size:var(--iui-size-2xs);background-color:var(--iui-color-border);background-image:linear-gradient(90deg,var(--_iui-progress-indicator-track-fill,var(--iui-color-border-accent))0% 100%);background-repeat:no-repeat;background-size:var(--iui-progress-percentage,100%)100%;forced-color-adjust:none}
|
|
698
698
|
}
|
|
699
699
|
|
|
700
700
|
@layer itwinui.v3{@media (forced-colors:active){._iui3-progress-indicator-linear:before{background-color:#0000;background-image:linear-gradient(90deg,CanvasText 0% 100%);border:.5px solid}}
|
|
701
701
|
}
|
|
702
702
|
|
|
703
703
|
@layer itwinui.v3{
|
|
704
|
-
._iui3-progress-indicator-linear[data-iui-status=positive]{--_iui-progress-indicator-track-fill:var(--iui-color-border-positive);--_iui-progress-indicator-linear-label-color:var(--iui-color-text-positive);--_iui-progress-indicator-linear-label-fill:var(--iui-color-icon-positive)}._iui3-progress-indicator-linear[data-iui-status=positive]::selection,._iui3-progress-indicator-linear[data-iui-status=positive] ::selection{background-color:hsl(var(--iui-color-positive-hsl)/var(--iui-opacity-5))}._iui3-progress-indicator-linear[data-iui-status=negative]{--_iui-progress-indicator-track-fill:var(--iui-color-border-negative);--_iui-progress-indicator-linear-label-color:var(--iui-color-text-negative);--_iui-progress-indicator-linear-label-fill:var(--iui-color-icon-negative)}._iui3-progress-indicator-linear[data-iui-status=negative]::selection,._iui3-progress-indicator-linear[data-iui-status=negative] ::selection{background-color:hsl(var(--iui-color-negative-hsl)/var(--iui-opacity-5))}._iui3-progress-indicator-linear:where([data-iui-animated=true]:not([data-iui-indeterminate=true])):before{transition:background-size 1s ease-in-out}._iui3-progress-indicator-linear:where([data-iui-indeterminate=true]):before{animation:1.5s linear infinite _iui3-
|
|
704
|
+
._iui3-progress-indicator-linear[data-iui-status=positive]{--_iui-progress-indicator-track-fill:var(--iui-color-border-positive);--_iui-progress-indicator-linear-label-color:var(--iui-color-text-positive);--_iui-progress-indicator-linear-label-fill:var(--iui-color-icon-positive)}._iui3-progress-indicator-linear[data-iui-status=positive]::selection,._iui3-progress-indicator-linear[data-iui-status=positive] ::selection{background-color:hsl(var(--iui-color-positive-hsl)/var(--iui-opacity-5))}._iui3-progress-indicator-linear[data-iui-status=negative]{--_iui-progress-indicator-track-fill:var(--iui-color-border-negative);--_iui-progress-indicator-linear-label-color:var(--iui-color-text-negative);--_iui-progress-indicator-linear-label-fill:var(--iui-color-icon-negative)}._iui3-progress-indicator-linear[data-iui-status=negative]::selection,._iui3-progress-indicator-linear[data-iui-status=negative] ::selection{background-color:hsl(var(--iui-color-negative-hsl)/var(--iui-opacity-5))}._iui3-progress-indicator-linear:where([data-iui-animated=true]:not([data-iui-indeterminate=true])):before{transition:background-size 1s ease-in-out}._iui3-progress-indicator-linear:where([data-iui-indeterminate=true]):before{animation:1.5s linear infinite _iui3-uj58gzs}@keyframes _iui3-uj58gzs{0%{background-position:-60% 0;background-size:30% 100%}40%{background-position:-40% 0;background-size:40% 100%}to{background-position:200% 0;background-size:50% 100%}}._iui3-radio-wrapper{vertical-align:baseline;font-size:var(--iui-font-size-1);-webkit-user-select:none;user-select:none;cursor:pointer;color:var(--iui-color-text);align-items:center;gap:var(--iui-size-xs);border:none;inline-size:-moz-fit-content;inline-size:fit-content;margin:0;padding:0;display:flex;position:relative}._iui3-radio-wrapper._iui3-loading{cursor:progress;color:var(--iui-color-text-disabled);font-style:italic}._iui3-radio-wrapper>._iui3-checkbox-label,._iui3-radio-wrapper>._iui3-radio-label{line-height:var(--iui-size-l)}._iui3-radio-wrapper>._iui3-checkbox-label svg,._iui3-radio-wrapper>._iui3-radio-label svg{inline-size:var(--iui-size-m);block-size:var(--iui-size-m);vertical-align:middle;fill:var(--iui-color-icon);flex-shrink:0;display:flex}._iui3-radio-wrapper._iui3-disabled{cursor:not-allowed;color:var(--iui-color-text-disabled)}._iui3-radio-wrapper._iui3-disabled svg{fill:var(--iui-color-icon-disabled)}._iui3-radio-wrapper._iui3-positive{color:var(--iui-color-text-positive)}._iui3-radio-wrapper._iui3-warning{color:var(--iui-color-text-warning)}._iui3-radio-wrapper._iui3-negative{color:var(--iui-color-text-negative)}._iui3-radio{--_iui-checkbox-checkmark-svg:url("data:image/svg+xml;utf8,<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 16 16\"><path d=\"m6.5 12.5-4.5-4.5 1.5-1.5 3 3 6-6 1.5 1.5z\" /></svg>");--_iui-checkbox-indeterminate-svg:url("data:image/svg+xml;utf8,<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 16 16\"><path d=\"m2.75 6.875h10.5v2.25h-10.5z\" /></svg>");--_iui-checkbox-unchecked-svg:url("data:image/svg+xml;utf8,<svg viewBox=\"0 0 16 16\"></svg>");--_iui-checkbox-svg-color:var(--iui-color-icon-accent);--_iui-checkbox-border-color:var(--iui-color-border-foreground);--_iui-checkbox-background-color:var(--iui-color-background);--_iui-checkbox-mask-image:initial;inline-size:var(--iui-size-m);block-size:var(--iui-size-m);appearance:none;border-radius:var(--iui-border-radius-1);background-color:var(--_iui-checkbox-background-color);cursor:pointer;transition:outline-color var(--iui-duration-1)ease-out;outline:solid 1px var(--_iui-checkbox-border-color);outline-offset:-1px;border-radius:50%;flex-shrink:0;margin:0;display:flex;position:relative}._iui3-radio:before{content:"";inset:calc((var(--iui-checkbox-target-size,24px) - 16px)/-2);position:absolute}._iui3-radio:after{content:"";background-color:var(--_iui-checkbox-svg-color);-webkit-mask:var(--_iui-checkbox-mask-image)no-repeat center;mask:var(--_iui-checkbox-mask-image)no-repeat center;position:absolute;inset:0}._iui3-radio:not(:checked){--_iui-checkbox-mask-image:var(--_iui-checkbox-unchecked-svg)}._iui3-radio:indeterminate{--_iui-checkbox-mask-image:var(--_iui-checkbox-indeterminate-svg)}._iui3-radio:hover{--_iui-checkbox-border-color:var(--iui-color-border-foreground-hover)}._iui3-radio:focus-visible{outline:2px solid var(--iui-color-border-accent);outline-offset:-1px}@supports not selector(*:focus-visible){._iui3-radio:focus{outline:2px solid var(--iui-color-border-accent);outline-offset:-1px}}._iui3-radio:disabled{--_iui-checkbox-svg-color:var(--iui-color-icon-disabled);--_iui-checkbox-border-color:var(--iui-color-border-disabled);--_iui-checkbox-background-color:var(--iui-color-background-disabled);cursor:not-allowed}._iui3-radio._iui3-checkbox-visibility{--_iui-checkbox-checkmark-svg:url("data:image/svg+xml;utf8,<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 16 16\"><path d=\"m8 2.99051a8.81883 8.81883 0 0 0 -8 4.95062 8.74664 8.74664 0 0 0 8 5.06836 8.63266 8.63266 0 0 0 8-5.06836 8.83631 8.83631 0 0 0 -8-4.95062zm-1.31445 1.86981a1.47663 1.47663 0 1 1 -1.47663 1.47668 1.47665 1.47665 0 0 1 1.47663-1.47668zm1.31445 6.64917a7.17486 7.17486 0 0 1 -6.30475-3.55237 7.4952 7.4952 0 0 1 2.81475-2.6336 3.83956 3.83956 0 1 0 6.98126.00244 7.522 7.522 0 0 1 2.81774 2.63916 7.09785 7.09785 0 0 1 -6.309 3.54437z\" /></svg>");--_iui-checkbox-indeterminate-svg:url("data:image/svg+xml;utf8,<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 16 16\"><path d=\"m8 3v7.9a4.01179 4.01179 0 0 0 4-4 6.7509 6.7509 0 0 0 -.2-1.4l.1.1a6.89429 6.89429 0 0 1 2.4 2.4 8.39088 8.39088 0 0 1 -2.3 2.3 6.89412 6.89412 0 0 1 -3.9 1.2c-.03345 0-.06653-.00677-.1-.0072v1.5072a8.90686 8.90686 0 0 0 8-5 8.90686 8.90686 0 0 0 -8-5z\" opacity=\".33\" /><path d=\"m8 0a1 1 0 0 0 -1 1v2.07135a8.91637 8.91637 0 0 0 -7 4.92865 8.91637 8.91637 0 0 0 7 4.92865v2.07135a1 1 0 0 0 2 0v-14a1 1 0 0 0 -1-1zm-1.5 4.9a1.55426 1.55426 0 0 1 .5.087v2.81451a1.40746 1.40746 0 0 1 -.5.09849 1.538 1.538 0 0 1 -1.5-1.5 1.53794 1.53794 0 0 1 1.5-1.5zm-2.3 5.4a6.97279 6.97279 0 0 1 -2.5-2.3 6.89429 6.89429 0 0 1 2.4-2.4c.1 0 .1-.1.2-.1a3.194 3.194 0 0 0 -.3 1.4 4.0047 4.0047 0 0 0 3 3.857v.65289a6.37491 6.37491 0 0 1 -2.8-1.10989z\" /></svg>");--_iui-checkbox-unchecked-svg:url("data:image/svg+xml;utf8,<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 16 16\"><path d=\"m1.70671 12.879 11.17218-11.17219 1.4142 1.4142-11.17218 11.17218zm.99329-1.679 1.1-1.1a5.06317 5.06317 0 0 1 -2-2.1 7.48268 7.48268 0 0 1 6.2-3.5 4.86877 4.86877 0 0 1 1.2.1l1.3-1.3a10.07431 10.07431 0 0 0 -2.5-.3 8.84129 8.84129 0 0 0 -8 5 8.42455 8.42455 0 0 0 2.7 3.2zm10.7-6.4-1.1 1.1a7.08625 7.08625 0 0 1 2 2.1 7.50323 7.50323 0 0 1 -6.2 3.5 8.31665 8.31665 0 0 1 -1.3-.2l-1.3 1.3a8.909 8.909 0 0 0 6.4-.5 9.04344 9.04344 0 0 0 4.1-4.1 9.168 9.168 0 0 0 -2.6-3.2z\" /></svg>");--_iui-checkbox-border-color:transparent;--_iui-checkbox-background-color:transparent;outline-width:1px}._iui3-radio._iui3-checkbox-visibility:where(:not(:checked):not(:indeterminate)){--_iui-checkbox-svg-color:var(--iui-color-icon)}._iui3-radio._iui3-checkbox-visibility:where(:hover){--_iui-checkbox-border-color:transparent;--_iui-checkbox-background-color:var(--iui-color-background-transparent-hover)}._iui3-radio._iui3-checkbox-visibility:where(:disabled){--_iui-checkbox-svg-color:var(--iui-color-icon-disabled);--_iui-checkbox-background-color:var(--iui-color-background-disabled)}._iui3-radio._iui3-loading{--_iui-checkbox-border-color:transparent;--_iui-checkbox-background-color:transparent;opacity:0;cursor:wait;position:absolute}._iui3-radio:checked{--_iui-checkbox-mask-image:url("data:image/svg+xml;utf8,<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 16 16\" ><circle cx=\"8\" cy=\"8\" r=\"4\" /></svg>")}._iui3-radio:not(:checked),._iui3-radio:indeterminate{--_iui-checkbox-mask-image:var(--_iui-checkbox-unchecked-svg)}._iui3-radio-tile{-webkit-tap-highlight-color:hsl(var(--iui-color-accent-hsl)/var(--iui-opacity-6));inline-size:calc(var(--iui-size-xl)*5);padding:var(--iui-size-xs);z-index:1;outline:1px solid var(--iui-color-border);background-color:var(--iui-color-background);transition:outline-color var(--iui-duration-1)ease-out;align-content:center;justify-items:center;display:grid;position:relative}._iui3-radio-tile:where(:hover){z-index:2;outline-color:var(--iui-color-border-hover)}._iui3-radio-tile:where(:hover) ._iui3-radio-tile-icon svg{fill:var(--iui-color-icon-hover)}._iui3-radio-tile:where(:has(input:disabled),[data-iui-disabled=true]){outline-color:var(--iui-color-border-disabled);background-color:var(--iui-color-background-disabled)}._iui3-radio-tile-container{-webkit-user-select:none;user-select:none;isolation:isolate;flex-wrap:wrap;gap:1px;display:inline-flex;position:relative}._iui3-radio-tile-input{z-index:1;appearance:none;cursor:pointer;margin:0;position:absolute;inset:0}._iui3-radio-tile-input:checked{z-index:3;outline:2px solid var(--iui-color-border-accent);outline-offset:-2px}
|
|
705
705
|
}
|
|
706
706
|
|
|
707
707
|
@layer itwinui.v3{@media (forced-colors:active){._iui3-radio-tile-input:checked{outline-color:Highlight}}
|