@skbkontur/react-ui 6.0.0-beta.3 → 6.0.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/CHANGELOG.md +135 -0
- package/README.md +2 -2
- package/components/DateInput/DateInput.js +1 -1
- package/components/DateInput/DateInput.js.map +1 -1
- package/components/FileUploader/FileUploader.js +1 -0
- package/components/FileUploader/FileUploader.js.map +1 -1
- package/components/FileUploader/FileUploader.styles.d.ts +1 -0
- package/components/FileUploader/FileUploader.styles.js +7 -4
- package/components/FileUploader/FileUploader.styles.js.map +1 -1
- package/components/Input/InputLayout/InputLayoutAsideIcon.js +1 -1
- package/components/Input/InputLayout/InputLayoutAsideIcon.js.map +1 -1
- package/components/Kebab/Kebab.js +1 -1
- package/components/Kebab/Kebab.js.map +1 -1
- package/components/SingleToast/SingleToast.js +1 -1
- package/components/SingleToast/SingleToast.js.map +1 -1
- package/components/Textarea/Textarea.styles.js +1 -1
- package/components/Textarea/Textarea.styles.js.map +1 -1
- package/components/TokenInput/TokenInput.js +1 -1
- package/components/TokenInput/TokenInput.js.map +1 -1
- package/components/TokenInput/TokenInput.styles.d.ts +1 -0
- package/components/TokenInput/TokenInput.styles.js +6 -2
- package/components/TokenInput/TokenInput.styles.js.map +1 -1
- package/internal/CustomComboBox/ComboBoxView.d.ts +1 -4
- package/internal/CustomComboBox/ComboBoxView.js +1 -1
- package/internal/CustomComboBox/ComboBoxView.js.map +1 -1
- package/internal/CustomComboBox/CustomComboBox.js +1 -1
- package/internal/CustomComboBox/CustomComboBox.js.map +1 -1
- package/internal/InputLikeText/InputLikeText.js +1 -1
- package/internal/InputLikeText/InputLikeText.js.map +1 -1
- package/internal/InternalTextareaWithLayout/InternalTextareaWithLayout.js +0 -1
- package/internal/InternalTextareaWithLayout/InternalTextareaWithLayout.js.map +1 -1
- package/internal/MobilePopup/MobilePopup.d.ts +7 -0
- package/internal/MobilePopup/MobilePopup.js +14 -1
- package/internal/MobilePopup/MobilePopup.js.map +1 -1
- package/internal/MobilePopup/MobilePopup.styles.js +1 -1
- package/internal/MobilePopup/MobilePopup.styles.js.map +1 -1
- package/internal/Popup/Popup.d.ts +13 -1
- package/internal/Popup/Popup.js +133 -25
- package/internal/Popup/Popup.js.map +1 -1
- package/internal/Popup/PopupHelper.d.ts +25 -0
- package/internal/Popup/PopupHelper.js +99 -2
- package/internal/Popup/PopupHelper.js.map +1 -1
- package/internal/themes/BasicTheme.d.ts +0 -2
- package/internal/themes/BasicTheme.js +7 -9
- package/internal/themes/BasicTheme.js.map +1 -1
- package/internal/themes/DarkTheme6_0.js +3 -3
- package/internal/themes/DarkTheme6_0.js.map +1 -1
- package/lib/getElementRef.js +1 -4
- package/lib/getElementRef.js.map +1 -1
- package/lib/globalObject.js +4 -4
- package/lib/globalObject.js.map +1 -1
- package/lib/react-is.d.ts +9 -0
- package/lib/react-is.js +93 -0
- package/lib/react-is.js.map +1 -0
- package/lib/styles/ColorFunctions.d.ts +20 -0
- package/lib/styles/ColorFunctions.js +20 -1
- package/lib/styles/ColorFunctions.js.map +1 -1
- package/lib/styles/ColorKeywords.d.ts +1 -0
- package/lib/styles/ColorKeywords.js +1 -0
- package/lib/styles/ColorKeywords.js.map +1 -1
- package/lib/utils.js +1 -1
- package/lib/utils.js.map +1 -1
- package/package.json +5 -7
|
@@ -23,7 +23,7 @@ function isAbsoluteRectFullyVisible(coordinates, popupRect, globalObject) {
|
|
|
23
23
|
};
|
|
24
24
|
return _rectContainsRect(windowAbsoluteRect, absoluteRect);
|
|
25
25
|
}
|
|
26
|
-
|
|
26
|
+
/** Может стать полностью видимым после прокрутки в область видимости */
|
|
27
27
|
function canBecomeFullyVisible(positionName, coordinates, globalObject) {
|
|
28
28
|
var position = getPositionObject(positionName);
|
|
29
29
|
if (position.direction === 'top') {
|
|
@@ -34,7 +34,7 @@ function canBecomeFullyVisible(positionName, coordinates, globalObject) {
|
|
|
34
34
|
var availableScrollDistances = convertRectToAbsolute(_getWindowRelativeRect(globalObject), globalObject);
|
|
35
35
|
return coordinates.left + availableScrollDistances.left >= 0;
|
|
36
36
|
}
|
|
37
|
-
// NOTE:
|
|
37
|
+
// NOTE: в случаях bottom/right браузер всегда расширяет размер документа
|
|
38
38
|
return true;
|
|
39
39
|
}
|
|
40
40
|
function _getElementRelativeRect(element) {
|
|
@@ -81,6 +81,98 @@ function _rectContainsRect(outerRect, innerRect) {
|
|
|
81
81
|
innerRect.left > outerRect.left &&
|
|
82
82
|
innerRect.left + innerRect.width < outerRect.left + outerRect.width);
|
|
83
83
|
}
|
|
84
|
+
/** Прямоугольник вьюпорта в координатах документа (абсолютных) */
|
|
85
|
+
function getViewportAbsoluteRect(globalObject) {
|
|
86
|
+
return convertRectToAbsolute(_getWindowRelativeRect(globalObject), globalObject);
|
|
87
|
+
}
|
|
88
|
+
/** Какие стороны попапа (с заданными координатами) выходят за пределы вьюпорта */
|
|
89
|
+
function getOverflowEdges(coordinates, popupRect, globalObject) {
|
|
90
|
+
var viewport = getViewportAbsoluteRect(globalObject);
|
|
91
|
+
var popup = {
|
|
92
|
+
top: coordinates.top,
|
|
93
|
+
left: coordinates.left,
|
|
94
|
+
width: popupRect.width,
|
|
95
|
+
height: popupRect.height,
|
|
96
|
+
};
|
|
97
|
+
return {
|
|
98
|
+
top: popup.top < viewport.top,
|
|
99
|
+
bottom: popup.top + popup.height > viewport.top + viewport.height,
|
|
100
|
+
left: popup.left < viewport.left,
|
|
101
|
+
right: popup.left + popup.width > viewport.left + viewport.width,
|
|
102
|
+
};
|
|
103
|
+
}
|
|
104
|
+
/** Количество сторон, по которым попап выходит за вьюпорт (0–4) */
|
|
105
|
+
function getOverflowCount(overflow) {
|
|
106
|
+
return [overflow.top, overflow.bottom, overflow.left, overflow.right].filter(Boolean).length;
|
|
107
|
+
}
|
|
108
|
+
/** Предпочтительное направление по вертикали при переполнении */
|
|
109
|
+
function getPreferredDirection(overflow, defaultPosition) {
|
|
110
|
+
if (overflow.bottom) {
|
|
111
|
+
return 'top';
|
|
112
|
+
}
|
|
113
|
+
if (overflow.top) {
|
|
114
|
+
return 'bottom';
|
|
115
|
+
}
|
|
116
|
+
return getPositionObject(defaultPosition).direction;
|
|
117
|
+
}
|
|
118
|
+
/**
|
|
119
|
+
* Упорядоченный список кандидатов для fallback-позиции: при горизонтальном переполнении
|
|
120
|
+
* сначала позиции с нужным align (в т.ч. из pinnablePositions), затем по direction и positions.
|
|
121
|
+
*/
|
|
122
|
+
function getOrderedFallbackCandidates(positions, overflow, preferredDirection, preferredAlignOrder, pinnablePositions) {
|
|
123
|
+
var seen = new Set();
|
|
124
|
+
var add = function (p) {
|
|
125
|
+
if (!seen.has(p)) {
|
|
126
|
+
seen.add(p);
|
|
127
|
+
return true;
|
|
128
|
+
}
|
|
129
|
+
return false;
|
|
130
|
+
};
|
|
131
|
+
var candidates = [];
|
|
132
|
+
var hasHorizontalOverflow = overflow.left || overflow.right;
|
|
133
|
+
if (hasHorizontalOverflow) {
|
|
134
|
+
var preferredAlign = preferredAlignOrder[0];
|
|
135
|
+
for (var _i = 0, _a = ['bottom', 'top']; _i < _a.length; _i++) {
|
|
136
|
+
var dir = _a[_i];
|
|
137
|
+
var p = "".concat(dir, " ").concat(preferredAlign);
|
|
138
|
+
if (pinnablePositions.includes(p) && add(p)) {
|
|
139
|
+
candidates.push(p);
|
|
140
|
+
}
|
|
141
|
+
}
|
|
142
|
+
for (var _b = 0, preferredAlignOrder_1 = preferredAlignOrder; _b < preferredAlignOrder_1.length; _b++) {
|
|
143
|
+
var align = preferredAlignOrder_1[_b];
|
|
144
|
+
for (var _c = 0, positions_1 = positions; _c < positions_1.length; _c++) {
|
|
145
|
+
var p = positions_1[_c];
|
|
146
|
+
if (getPositionObject(p).align === align && add(p)) {
|
|
147
|
+
candidates.push(p);
|
|
148
|
+
}
|
|
149
|
+
}
|
|
150
|
+
}
|
|
151
|
+
}
|
|
152
|
+
for (var _d = 0, preferredAlignOrder_2 = preferredAlignOrder; _d < preferredAlignOrder_2.length; _d++) {
|
|
153
|
+
var align = preferredAlignOrder_2[_d];
|
|
154
|
+
for (var _e = 0, positions_2 = positions; _e < positions_2.length; _e++) {
|
|
155
|
+
var p = positions_2[_e];
|
|
156
|
+
var pos = getPositionObject(p);
|
|
157
|
+
if (pos.direction === preferredDirection && pos.align === align && add(p)) {
|
|
158
|
+
candidates.push(p);
|
|
159
|
+
}
|
|
160
|
+
}
|
|
161
|
+
}
|
|
162
|
+
for (var _f = 0, positions_3 = positions; _f < positions_3.length; _f++) {
|
|
163
|
+
var p = positions_3[_f];
|
|
164
|
+
if (getPositionObject(p).direction === preferredDirection && add(p)) {
|
|
165
|
+
candidates.push(p);
|
|
166
|
+
}
|
|
167
|
+
}
|
|
168
|
+
for (var _g = 0, positions_4 = positions; _g < positions_4.length; _g++) {
|
|
169
|
+
var p = positions_4[_g];
|
|
170
|
+
if (add(p)) {
|
|
171
|
+
candidates.push(p);
|
|
172
|
+
}
|
|
173
|
+
}
|
|
174
|
+
return candidates;
|
|
175
|
+
}
|
|
84
176
|
function _getViewProperty(getProperty, globalObject) {
|
|
85
177
|
var _a, _b;
|
|
86
178
|
var views = [(_a = globalObject.document) === null || _a === void 0 ? void 0 : _a.documentElement, (_b = globalObject.document) === null || _b === void 0 ? void 0 : _b.body];
|
|
@@ -91,5 +183,10 @@ export var PopupHelper = {
|
|
|
91
183
|
getElementAbsoluteRect: getElementAbsoluteRect,
|
|
92
184
|
isFullyVisible: isAbsoluteRectFullyVisible,
|
|
93
185
|
canBecomeFullyVisible: canBecomeFullyVisible,
|
|
186
|
+
getViewportAbsoluteRect: getViewportAbsoluteRect,
|
|
187
|
+
getOverflowEdges: getOverflowEdges,
|
|
188
|
+
getOverflowCount: getOverflowCount,
|
|
189
|
+
getPreferredDirection: getPreferredDirection,
|
|
190
|
+
getOrderedFallbackCandidates: getOrderedFallbackCandidates,
|
|
94
191
|
};
|
|
95
192
|
//# sourceMappingURL=PopupHelper.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"PopupHelper.js","sourceRoot":"","sources":["../../../internal/Popup/PopupHelper.tsx"],"names":[],"mappings":"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","sourcesContent":["import { getDOMRect } from '../../lib/dom/getDOMRect.js';\nimport type { GlobalObject } from '../../lib/globalObject.js';\nimport { getOwnerGlobalObject } from '../../lib/globalObject.js';\n\nimport type { PopupPositionsType } from './Popup.js';\n\nexport interface Rect {\n top: number;\n left: number;\n width: number;\n height: number;\n}\n\nexport interface Offset {\n top: number;\n left: number;\n}\n\nexport interface PositionObject {\n direction: string;\n align: string;\n}\n\nfunction getPositionObject(position: string): PositionObject {\n const x = position.split(' ');\n\n return {\n direction: x[0],\n align: x[1],\n };\n}\n\nfunction getElementAbsoluteRect(element: Element): Rect {\n const globalObject = getOwnerGlobalObject(element);\n const rect = _getElementRelativeRect(element);\n return convertRectToAbsolute(rect, globalObject);\n}\n\nfunction isAbsoluteRectFullyVisible(coordinates: Offset, popupRect: Rect, globalObject: GlobalObject): boolean {\n const windowRelativeRect = _getWindowRelativeRect(globalObject);\n const windowAbsoluteRect = convertRectToAbsolute(windowRelativeRect, globalObject);\n const absoluteRect = {\n top: coordinates.top,\n left: coordinates.left,\n height: popupRect.height,\n width: popupRect.width,\n };\n\n return _rectContainsRect(windowAbsoluteRect, absoluteRect);\n}\n\n// Can become fully visible by scrolling into viewport\nfunction canBecomeFullyVisible(positionName: PopupPositionsType, coordinates: Offset, globalObject: GlobalObject) {\n const position = getPositionObject(positionName);\n\n if (position.direction === 'top') {\n const availableScrollDistances = convertRectToAbsolute(_getWindowRelativeRect(globalObject), globalObject);\n return coordinates.top + availableScrollDistances.top >= 0;\n }\n\n if (position.direction === 'left') {\n const availableScrollDistances = convertRectToAbsolute(_getWindowRelativeRect(globalObject), globalObject);\n return coordinates.left + availableScrollDistances.left >= 0;\n }\n\n // NOTE: for bottom/right cases browser will always expand document size\n return true;\n}\n\nfunction _getElementRelativeRect(element: Element) {\n const rect = getDOMRect(element);\n\n return {\n top: rect.top,\n left: rect.left,\n width: rect.right - rect.left,\n height: rect.bottom - rect.top,\n };\n}\n\nfunction _getWindowRelativeRect(globalObject: GlobalObject): Rect {\n return {\n top: 0,\n left: 0,\n width: _getViewProperty((x) => x.clientWidth, globalObject) || globalObject.innerWidth || 0,\n height: _getViewProperty((x) => x.clientHeight, globalObject) || globalObject.innerHeight || 0,\n };\n}\n\nfunction convertRectToAbsolute(rect: Rect, globalObject: GlobalObject): Rect {\n const offset = _getAbsoluteOffset(globalObject);\n\n return {\n top: rect.top + offset.top,\n left: rect.left + offset.left,\n width: rect.width,\n height: rect.height,\n };\n}\n\nfunction _getAbsoluteOffset(globalObject: GlobalObject): Offset {\n const scrollTop = globalObject.pageYOffset || _getViewProperty((x) => x.scrollTop, globalObject);\n const scrollLeft = globalObject.pageXOffset || _getViewProperty((x) => x.scrollLeft, globalObject);\n\n const clientTop = _getViewProperty((x) => x.clientTop, globalObject);\n const clientLeft = _getViewProperty((x) => x.clientLeft, globalObject);\n\n const top = scrollTop - clientTop;\n const left = scrollLeft - clientLeft;\n\n return {\n top,\n left,\n };\n}\n\nfunction _rectContainsRect(outerRect: Rect, innerRect: Rect): boolean {\n return (\n innerRect.top > outerRect.top &&\n innerRect.top + innerRect.height < outerRect.top + outerRect.height &&\n innerRect.left > outerRect.left &&\n innerRect.left + innerRect.width < outerRect.left + outerRect.width\n );\n}\n\nfunction _getViewProperty(getProperty: (e: Element) => number, globalObject: GlobalObject): number {\n const views = [globalObject.document?.documentElement, globalObject.document?.body];\n return views.map((x) => x && getProperty(x)).find(Boolean) || 0;\n}\n\nexport const PopupHelper = {\n getPositionObject,\n getElementAbsoluteRect,\n isFullyVisible: isAbsoluteRectFullyVisible,\n canBecomeFullyVisible,\n};\n"]}
|
|
1
|
+
{"version":3,"file":"PopupHelper.js","sourceRoot":"","sources":["../../../internal/Popup/PopupHelper.tsx"],"names":[],"mappings":"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","sourcesContent":["import { getDOMRect } from '../../lib/dom/getDOMRect.js';\nimport type { GlobalObject } from '../../lib/globalObject.js';\nimport { getOwnerGlobalObject } from '../../lib/globalObject.js';\n\nimport type { PopupPositionsType } from './Popup.js';\n\nexport interface Rect {\n top: number;\n left: number;\n width: number;\n height: number;\n}\n\nexport interface Offset {\n top: number;\n left: number;\n}\n\nexport interface PositionObject {\n direction: string;\n align: string;\n}\n\nfunction getPositionObject(position: string): PositionObject {\n const x = position.split(' ');\n\n return {\n direction: x[0],\n align: x[1],\n };\n}\n\nfunction getElementAbsoluteRect(element: Element): Rect {\n const globalObject = getOwnerGlobalObject(element);\n const rect = _getElementRelativeRect(element);\n return convertRectToAbsolute(rect, globalObject);\n}\n\nfunction isAbsoluteRectFullyVisible(coordinates: Offset, popupRect: Rect, globalObject: GlobalObject): boolean {\n const windowRelativeRect = _getWindowRelativeRect(globalObject);\n const windowAbsoluteRect = convertRectToAbsolute(windowRelativeRect, globalObject);\n const absoluteRect = {\n top: coordinates.top,\n left: coordinates.left,\n height: popupRect.height,\n width: popupRect.width,\n };\n\n return _rectContainsRect(windowAbsoluteRect, absoluteRect);\n}\n\n/** Может стать полностью видимым после прокрутки в область видимости */\nfunction canBecomeFullyVisible(positionName: PopupPositionsType, coordinates: Offset, globalObject: GlobalObject) {\n const position = getPositionObject(positionName);\n\n if (position.direction === 'top') {\n const availableScrollDistances = convertRectToAbsolute(_getWindowRelativeRect(globalObject), globalObject);\n return coordinates.top + availableScrollDistances.top >= 0;\n }\n\n if (position.direction === 'left') {\n const availableScrollDistances = convertRectToAbsolute(_getWindowRelativeRect(globalObject), globalObject);\n return coordinates.left + availableScrollDistances.left >= 0;\n }\n\n // NOTE: в случаях bottom/right браузер всегда расширяет размер документа\n return true;\n}\n\nfunction _getElementRelativeRect(element: Element) {\n const rect = getDOMRect(element);\n\n return {\n top: rect.top,\n left: rect.left,\n width: rect.right - rect.left,\n height: rect.bottom - rect.top,\n };\n}\n\nfunction _getWindowRelativeRect(globalObject: GlobalObject): Rect {\n return {\n top: 0,\n left: 0,\n width: _getViewProperty((x) => x.clientWidth, globalObject) || globalObject.innerWidth || 0,\n height: _getViewProperty((x) => x.clientHeight, globalObject) || globalObject.innerHeight || 0,\n };\n}\n\nfunction convertRectToAbsolute(rect: Rect, globalObject: GlobalObject): Rect {\n const offset = _getAbsoluteOffset(globalObject);\n\n return {\n top: rect.top + offset.top,\n left: rect.left + offset.left,\n width: rect.width,\n height: rect.height,\n };\n}\n\nfunction _getAbsoluteOffset(globalObject: GlobalObject): Offset {\n const scrollTop = globalObject.pageYOffset || _getViewProperty((x) => x.scrollTop, globalObject);\n const scrollLeft = globalObject.pageXOffset || _getViewProperty((x) => x.scrollLeft, globalObject);\n\n const clientTop = _getViewProperty((x) => x.clientTop, globalObject);\n const clientLeft = _getViewProperty((x) => x.clientLeft, globalObject);\n\n const top = scrollTop - clientTop;\n const left = scrollLeft - clientLeft;\n\n return {\n top,\n left,\n };\n}\n\nfunction _rectContainsRect(outerRect: Rect, innerRect: Rect): boolean {\n return (\n innerRect.top > outerRect.top &&\n innerRect.top + innerRect.height < outerRect.top + outerRect.height &&\n innerRect.left > outerRect.left &&\n innerRect.left + innerRect.width < outerRect.left + outerRect.width\n );\n}\n\n/** Прямоугольник вьюпорта в координатах документа (абсолютных) */\nfunction getViewportAbsoluteRect(globalObject: GlobalObject): Rect {\n return convertRectToAbsolute(_getWindowRelativeRect(globalObject), globalObject);\n}\n\nexport interface OverflowEdges {\n top: boolean;\n bottom: boolean;\n left: boolean;\n right: boolean;\n}\n\n/** Какие стороны попапа (с заданными координатами) выходят за пределы вьюпорта */\nfunction getOverflowEdges(coordinates: Offset, popupRect: Rect, globalObject: GlobalObject): OverflowEdges {\n const viewport = getViewportAbsoluteRect(globalObject);\n const popup = {\n top: coordinates.top,\n left: coordinates.left,\n width: popupRect.width,\n height: popupRect.height,\n };\n return {\n top: popup.top < viewport.top,\n bottom: popup.top + popup.height > viewport.top + viewport.height,\n left: popup.left < viewport.left,\n right: popup.left + popup.width > viewport.left + viewport.width,\n };\n}\n\n/** Количество сторон, по которым попап выходит за вьюпорт (0–4) */\nfunction getOverflowCount(overflow: OverflowEdges): number {\n return [overflow.top, overflow.bottom, overflow.left, overflow.right].filter(Boolean).length;\n}\n\n/** Предпочтительное направление по вертикали при переполнении */\nfunction getPreferredDirection(overflow: OverflowEdges, defaultPosition: PopupPositionsType): string {\n if (overflow.bottom) {\n return 'top';\n }\n if (overflow.top) {\n return 'bottom';\n }\n return getPositionObject(defaultPosition).direction;\n}\n\n/**\n * Упорядоченный список кандидатов для fallback-позиции: при горизонтальном переполнении\n * сначала позиции с нужным align (в т.ч. из pinnablePositions), затем по direction и positions.\n */\nfunction getOrderedFallbackCandidates(\n positions: Readonly<PopupPositionsType[]>,\n overflow: OverflowEdges,\n preferredDirection: string,\n preferredAlignOrder: string[],\n pinnablePositions: Readonly<PopupPositionsType[]>,\n): PopupPositionsType[] {\n const seen = new Set<PopupPositionsType>();\n const add = (p: PopupPositionsType) => {\n if (!seen.has(p)) {\n seen.add(p);\n return true;\n }\n return false;\n };\n\n const candidates: PopupPositionsType[] = [];\n const hasHorizontalOverflow = overflow.left || overflow.right;\n\n if (hasHorizontalOverflow) {\n const preferredAlign = preferredAlignOrder[0];\n for (const dir of ['bottom', 'top']) {\n const p = `${dir} ${preferredAlign}` as PopupPositionsType;\n if (pinnablePositions.includes(p) && add(p)) {\n candidates.push(p);\n }\n }\n for (const align of preferredAlignOrder) {\n for (const p of positions) {\n if (getPositionObject(p).align === align && add(p)) {\n candidates.push(p);\n }\n }\n }\n }\n\n for (const align of preferredAlignOrder) {\n for (const p of positions) {\n const pos = getPositionObject(p);\n if (pos.direction === preferredDirection && pos.align === align && add(p)) {\n candidates.push(p);\n }\n }\n }\n for (const p of positions) {\n if (getPositionObject(p).direction === preferredDirection && add(p)) {\n candidates.push(p);\n }\n }\n for (const p of positions) {\n if (add(p)) {\n candidates.push(p);\n }\n }\n\n return candidates;\n}\n\nfunction _getViewProperty(getProperty: (e: Element) => number, globalObject: GlobalObject): number {\n const views = [globalObject.document?.documentElement, globalObject.document?.body];\n return views.map((x) => x && getProperty(x)).find(Boolean) || 0;\n}\n\nexport const PopupHelper = {\n getPositionObject,\n getElementAbsoluteRect,\n isFullyVisible: isAbsoluteRectFullyVisible,\n canBecomeFullyVisible,\n getViewportAbsoluteRect,\n getOverflowEdges,\n getOverflowCount,\n getPreferredDirection,\n getOrderedFallbackCandidates,\n};\n"]}
|
|
@@ -1022,8 +1022,6 @@ export declare class BasicThemeClass {
|
|
|
1022
1022
|
static get textareaMinHeightSmall(): string;
|
|
1023
1023
|
static get textareaMinHeightMedium(): string;
|
|
1024
1024
|
static get textareaMinHeightLarge(): string;
|
|
1025
|
-
/** @deprecated Перестала использоваться с версии `react-ui@5.6.7`. */
|
|
1026
|
-
static textareaWidth: string;
|
|
1027
1025
|
static textareaPaddingXSmall: string;
|
|
1028
1026
|
static textareaPaddingXMedium: string;
|
|
1029
1027
|
static textareaPaddingXLarge: string;
|
|
@@ -3754,15 +3754,15 @@ var BasicThemeClass = /** @class */ (function () {
|
|
|
3754
3754
|
BasicThemeClass.btnIconSizeSmall = '16px';
|
|
3755
3755
|
BasicThemeClass.btnIconSizeMedium = '20px';
|
|
3756
3756
|
BasicThemeClass.btnIconSizeLarge = '24px';
|
|
3757
|
-
BasicThemeClass.btnDefaultBg =
|
|
3757
|
+
BasicThemeClass.btnDefaultBg = '#fff';
|
|
3758
3758
|
BasicThemeClass.btnDefaultBgStart = 'none';
|
|
3759
3759
|
BasicThemeClass.btnDefaultBgEnd = 'none';
|
|
3760
3760
|
// TODO: create token in colors package
|
|
3761
|
-
BasicThemeClass.btnDefaultHoverBg = '#
|
|
3761
|
+
BasicThemeClass.btnDefaultHoverBg = '#f2f2f2';
|
|
3762
3762
|
BasicThemeClass.btnDefaultHoverBgStart = 'none';
|
|
3763
3763
|
BasicThemeClass.btnDefaultHoverBgEnd = 'none';
|
|
3764
3764
|
// TODO: create token in colors package
|
|
3765
|
-
BasicThemeClass.btnDefaultActiveBg = '#
|
|
3765
|
+
BasicThemeClass.btnDefaultActiveBg = '#f2f2f2';
|
|
3766
3766
|
BasicThemeClass.btnDefaultHoverTextColor = colors.textNeutralHeavy;
|
|
3767
3767
|
BasicThemeClass.btnDefaultBorderColor = colors.lineNeutralPale;
|
|
3768
3768
|
BasicThemeClass.btnDefaultActiveShadow = 'none';
|
|
@@ -3918,8 +3918,8 @@ var BasicThemeClass = /** @class */ (function () {
|
|
|
3918
3918
|
BasicThemeClass.modalSeparatorBorderBottom = "1px solid ".concat(colors.lineNeutralFaint);
|
|
3919
3919
|
BasicThemeClass.modalSeparatorMargin = '0 32px';
|
|
3920
3920
|
BasicThemeClass.modalSeparatorFixedMargin = '0 16px';
|
|
3921
|
-
BasicThemeClass.modalBodyTextColor =
|
|
3922
|
-
BasicThemeClass.modalFooterTextColor =
|
|
3921
|
+
BasicThemeClass.modalBodyTextColor = _a.textColorDefault;
|
|
3922
|
+
BasicThemeClass.modalFooterTextColor = _a.textColorDefault;
|
|
3923
3923
|
BasicThemeClass.modalBodyPaddingTop = '0';
|
|
3924
3924
|
BasicThemeClass.modalBodyPaddingBottom = '20px';
|
|
3925
3925
|
BasicThemeClass.modalBodyBorderRadius = '0px';
|
|
@@ -3961,8 +3961,8 @@ var BasicThemeClass = /** @class */ (function () {
|
|
|
3961
3961
|
BasicThemeClass.sidePageFooterPaddingTop = '20px';
|
|
3962
3962
|
BasicThemeClass.sidePageFooterPaddingBottom = '20px';
|
|
3963
3963
|
BasicThemeClass.sidePageBgDefault = colors.surfaceHigh;
|
|
3964
|
-
BasicThemeClass.sidePageBodyTextColor =
|
|
3965
|
-
BasicThemeClass.sidePageFooterTextColor =
|
|
3964
|
+
BasicThemeClass.sidePageBodyTextColor = _a.textColorDefault;
|
|
3965
|
+
BasicThemeClass.sidePageFooterTextColor = _a.textColorDefault;
|
|
3966
3966
|
BasicThemeClass.sidePageHeaderFontSize = '24px';
|
|
3967
3967
|
BasicThemeClass.sidePageHeaderLineHeight = '32px';
|
|
3968
3968
|
BasicThemeClass.sidePageHeaderPaddingBottom = '16px';
|
|
@@ -4275,8 +4275,6 @@ var BasicThemeClass = /** @class */ (function () {
|
|
|
4275
4275
|
BasicThemeClass.textareaBorderColor = colors.lineNeutralPale;
|
|
4276
4276
|
BasicThemeClass.textareaBackgroundClip = 'padding-box';
|
|
4277
4277
|
BasicThemeClass.textareaBorderRadius = '2px';
|
|
4278
|
-
/** @deprecated Перестала использоваться с версии `react-ui@5.6.7`. */
|
|
4279
|
-
BasicThemeClass.textareaWidth = '250px';
|
|
4280
4278
|
BasicThemeClass.textareaPaddingXSmall = '7px';
|
|
4281
4279
|
BasicThemeClass.textareaPaddingXMedium = '11px';
|
|
4282
4280
|
BasicThemeClass.textareaPaddingXLarge = '15px';
|