@enact/limestone 1.3.0 → 1.10.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/.github/workflows/ci-branch.yml +21 -0
- package/.github/workflows/ci-pull-request.yml +16 -0
- package/.github/workflows/ci-reusable.yml +73 -0
- package/ActionGuide/ActionGuide.d.ts +5 -4
- package/ActionGuide/ActionGuide.module.css +1 -1
- package/Alert/Alert.d.ts +13 -2
- package/Alert/Alert.js +39 -5
- package/Alert/Alert.module.css +48 -1
- package/Alert/tests/Alert-specs.js +91 -0
- package/BodyText/BodyText.d.ts +5 -4
- package/BodyText/BodyText.module.css +7 -7
- package/Button/Button.d.ts +17 -12
- package/Button/Button.js +1 -1
- package/Button/Button.module.css +195 -268
- package/Button/tests/Button-specs.js +26 -0
- package/CHANGELOG.md +254 -0
- package/Card/Card.d.ts +40 -12
- package/Card/Card.js +164 -28
- package/Card/Card.module.css +277 -58
- package/Card/tests/Card-specs.js +67 -3
- package/Checkbox/Checkbox.d.ts +8 -7
- package/Checkbox/Checkbox.js +3 -1
- package/Checkbox/Checkbox.module.css +213 -120
- package/Checkbox/tests/Checkbox-specs.js +1 -1
- package/CheckboxItem/CheckboxItem.d.ts +22 -7
- package/CheckboxItem/CheckboxItem.js +71 -4
- package/Chips/Chip.js +72 -13
- package/Chips/Chip.module.css +3 -3
- package/Chips/Chips.js +37 -17
- package/Chips/Chips.module.css +1 -1
- package/Chips/tests/Chip-specs.js +43 -13
- package/Chips/tests/Chips-specs.js +31 -21
- package/ColorPicker/ColorPicker.js +27 -25
- package/ContextualMenuDecorator/ContextualMenuDecorator.d.ts +4 -5
- package/ContextualPopupDecorator/ContextualPopup.module.css +34 -34
- package/ContextualPopupDecorator/ContextualPopupDecorator.js +567 -549
- package/DatePicker/DatePicker.d.ts +4 -5
- package/DayPicker/DayPicker.d.ts +8 -7
- package/DayPicker/DaySelectorDecorator.js +12 -7
- package/Dropdown/Dropdown.d.ts +11 -13
- package/Dropdown/Dropdown.module.css +13 -9
- package/Dropdown/DropdownList.js +80 -54
- package/FixedPopupPanels/FixedPopupPanels.d.ts +4 -2
- package/FixedPopupPanels/FixedPopupPanels.module.css +18 -18
- package/FlexiblePopupPanels/FlexiblePopupPanels.module.css +23 -23
- package/FlexiblePopupPanels/useNavButtonFocus.js +7 -10
- package/FormCheckboxItem/FormCheckboxItem.d.ts +5 -4
- package/Heading/Heading.d.ts +9 -8
- package/Heading/Heading.js +2 -2
- package/Heading/Heading.module.css +5 -5
- package/Icon/Icon.d.ts +15 -4
- package/Icon/Icon.js +49 -2
- package/Icon/Icon.module.css +1 -1
- package/Icon/IconList.js +27 -1
- package/IconItem/IconItem.d.ts +13 -12
- package/IconItem/IconItem.js +15 -0
- package/IconItem/IconItem.module.css +107 -1
- package/IconItem/tests/IconItem-specs.js +30 -1
- package/Image/Image.d.ts +5 -4
- package/Image/Image.js +6 -4
- package/ImageItem/ImageItem.d.ts +11 -10
- package/ImageItem/ImageItem.js +37 -31
- package/ImageItem/ImageItem.module.css +30 -30
- package/ImageItem/tests/ImageItem-specs.js +3 -10
- package/Input/Input.js +21 -3
- package/Input/Input.module.css +37 -8
- package/Input/InputField.js +79 -24
- package/Input/InputField.module.css +273 -41
- package/Input/InputFieldDecoratorIcon.js +1 -0
- package/Input/InputFieldSpotlightDecorator.js +257 -228
- package/Input/index.d.ts +120 -111
- package/Input/tests/Input-specs.js +26 -0
- package/Input/tests/InputField-specs.js +170 -3
- package/Input/tests/InputPopup-specs.js +1 -1
- package/Item/Item.d.ts +16 -9
- package/Item/Item.js +20 -2
- package/Item/Item.module.css +1 -1
- package/KeyGuide/KeyGuide.d.ts +8 -7
- package/KeyGuide/KeyGuide.js +29 -27
- package/KeyGuide/KeyGuide.module.css +25 -1
- package/Marquee/Marquee.d.ts +2 -4
- package/MediaOverlay/MediaOverlay.d.ts +12 -11
- package/MediaOverlay/MediaOverlay.js +43 -21
- package/MediaOverlay/MediaOverlay.module.css +114 -15
- package/MediaOverlay/tests/MediaOverlay-specs.js +29 -0
- package/MediaPlayer/MediaControls.js +195 -13
- package/MediaPlayer/MediaControls.module.css +3 -2
- package/MediaPlayer/MediaSlider.module.css +7 -20
- package/MediaPlayer/index.d.ts +59 -7
- package/MediaPlayer/tests/util-specs.js +4 -1
- package/PageViews/PageViews.js +232 -82
- package/PageViews/PageViews.module.css +3 -0
- package/PageViews/PageViewsRouter.js +100 -42
- package/PageViews/tests/PageViews-specs.js +171 -0
- package/Panels/Header.js +54 -34
- package/Panels/Header.module.css +83 -31
- package/Panels/Panel.module.css +1 -1
- package/Panels/index.d.ts +7 -8
- package/Picker/Picker.d.ts +4 -5
- package/Picker/Picker.module.css +2 -2
- package/Popup/Popup.js +245 -242
- package/Popup/Popup.module.css +24 -24
- package/PopupTabLayout/PopupTabLayout.d.ts +5 -7
- package/PopupTabLayout/PopupTabLayout.js +26 -18
- package/PopupTabLayout/PopupTabLayout.module.css +53 -16
- package/PopupTabLayout/PopupTabLayoutStateContext.js +8 -0
- package/ProgressBar/ProgressBar.d.ts +5 -4
- package/ProgressBar/ProgressBarTooltip.module.css +12 -12
- package/ProgressButton/ProgressButton.d.ts +4 -5
- package/QuickGuidePanels/QuickGuidePanels.module.css +2 -2
- package/RadioItem/RadioItem.d.ts +18 -5
- package/RadioItem/RadioItem.js +69 -2
- package/RadioItem/RadioItem.module.css +36 -36
- package/RangePicker/RangePicker.module.css +2 -2
- package/Scroller/EditableWrapper.js +28 -18
- package/Scroller/Scroller.d.ts +20 -16
- package/Scroller/Scroller.js +20 -13
- package/Scroller/Scroller.module.css +4 -4
- package/Scroller/useThemeScroller.js +3 -3
- package/Slider/Slider.d.ts +20 -14
- package/Slider/Slider.js +71 -14
- package/Slider/Slider.module.css +464 -91
- package/Slider/SliderBehaviorDecorator.js +16 -14
- package/Slider/tests/Slider-specs.js +53 -1
- package/Slider/utils.js +23 -7
- package/Spinner/Spinner.d.ts +5 -4
- package/Spinner/Spinner.js +10 -8
- package/Spinner/Spinner.module.css +9 -9
- package/Steps/Steps.d.ts +5 -4
- package/Steps/Steps.js +9 -5
- package/Switch/Switch.d.ts +8 -7
- package/Switch/Switch.module.css +100 -13
- package/SwitchItem/SwitchItem.d.ts +9 -6
- package/TabLayout/RefocusDecorator.js +26 -18
- package/TabLayout/TabGroup.js +3 -2
- package/TabLayout/TabGroup.module.css +2 -2
- package/TabLayout/TabLayout.d.ts +6 -0
- package/TabLayout/TabLayout.js +11 -1
- package/TabLayout/TabLayout.module.css +18 -0
- package/TabLayout/tests/TabGroup-specs.js +1 -1
- package/TabLayout/tests/TabLayout-specs.js +52 -0
- package/ThemeDecorator/AccessibilityDecorator.js +12 -11
- package/ThemeDecorator/I18nFontDecorator.js +6 -4
- package/ThemeDecorator/ThemeDecorator.d.ts +16 -10
- package/ThemeDecorator/ThemeDecorator.js +24 -9
- package/ThemeDecorator/fontGenerator.js +1 -1
- package/ThemeDecorator/screenTypes.json +1 -0
- package/TimePicker/TimePicker.module.css +1 -1
- package/TimePicker/TimePickerBase.js +5 -3
- package/TooltipDecorator/Tooltip.module.css +1 -2
- package/TooltipDecorator/TooltipDecorator.js +12 -7
- package/TooltipDecorator/tests/useTooltip-specs.js +5 -2
- package/TooltipDecorator/tests/util-specs.js +12 -0
- package/TooltipDecorator/useTooltip.js +1 -1
- package/TooltipDecorator/util.js +18 -11
- package/VideoPlayer/Feedback.js +3 -0
- package/VideoPlayer/Feedback.module.css +5 -9
- package/VideoPlayer/FeedbackIcons.js +1 -1
- package/VideoPlayer/FeedbackTooltip.module.css +55 -11
- package/VideoPlayer/VideoPlayer.d.ts +44 -18
- package/VideoPlayer/VideoPlayer.js +153 -47
- package/VideoPlayer/VideoPlayer.module.css +28 -11
- package/VirtualList/VirtualList.d.ts +9 -2
- package/VirtualList/VirtualList.js +51 -24
- package/VirtualList/tests/VirtualGridList-translate-specs.js +3 -0
- package/VirtualList/tests/VirtualList-specs.js +28 -1
- package/VirtualList/tests/VirtualList-translate-specs.js +4 -1
- package/VirtualList/useSpotlight.js +1 -1
- package/WizardPanels/WizardPanels.module.css +2 -2
- package/WizardPanels/index.d.ts +4 -2
- package/fonts/Limestone_Icons.ttf +0 -0
- package/internal/$L/$L.js +3 -3
- package/internal/AsyncRenderChildren/AsyncRenderChildren.js +9 -5
- package/internal/AsyncRenderChildren/tests/AsyncRenderChildren-specs.js +4 -1
- package/internal/DateComponentPicker/DateComponentPicker.module.css +2 -2
- package/internal/DateTime/DateTime.module.css +1 -0
- package/internal/DateTime/DateTimeDecorator.js +5 -4
- package/internal/Panels/PanelsRouter.js +48 -31
- package/internal/Panels/useAutoFocus.js +10 -6
- package/internal/Panels/useFocusOnTransition.js +4 -3
- package/internal/Picker/Picker.js +7 -5
- package/internal/Picker/Picker.module.css +2 -2
- package/internal/Picker/SpottablePicker.js +15 -13
- package/internal/SharedStateDecorator/SharedStateDecorator.js +78 -99
- package/internal/validators/validators.js +21 -2
- package/package.json +18 -15
- package/styles/colors-highcontrast.less +9 -1
- package/styles/colors.less +12 -7
- package/styles/motion-mixins.less +66 -0
- package/styles/motions.less +78 -0
- package/styles/variables.less +176 -150
- package/useScroll/HoverToScroll.js +23 -17
- package/useScroll/Scrollbar.js +14 -10
- package/useScroll/ScrollbarPlaceholder.js +3 -5
- package/useScroll/ScrollbarTrack.js +7 -5
- package/useScroll/ScrollbarTrack.module.css +8 -8
- package/useScroll/useEvent.js +14 -3
- package/useScroll/useScroll.js +12 -2
- package/useScroll/useScroll.module.css +6 -6
- package/.travis.yml +0 -40
|
@@ -126,11 +126,10 @@ export class DatePickerBase extends React.Component<
|
|
|
126
126
|
Merge<React.HTMLProps<HTMLElement>, DatePickerBaseProps>
|
|
127
127
|
> {}
|
|
128
128
|
|
|
129
|
-
export interface DatePickerProps
|
|
130
|
-
|
|
131
|
-
|
|
132
|
-
|
|
133
|
-
> {
|
|
129
|
+
export interface DatePickerProps extends Omit<
|
|
130
|
+
Merge<DatePickerBaseProps, ui_Changeable_ChangeableProps>,
|
|
131
|
+
"day" | "maxDays" | "maxMonths" | "month" | "order" | "year"
|
|
132
|
+
> {
|
|
134
133
|
/**
|
|
135
134
|
* The initial value used when `value` is not set.
|
|
136
135
|
*/
|
package/DayPicker/DayPicker.d.ts
CHANGED
|
@@ -7,8 +7,10 @@ import { ChangeableProps as ui_Changeable_ChangeableProps } from "@enact/ui/Chan
|
|
|
7
7
|
type Omit<T, K extends keyof T> = Pick<T, Exclude<keyof T, K>>;
|
|
8
8
|
type Merge<M, N> = Omit<M, Extract<keyof M, keyof N>> & N;
|
|
9
9
|
|
|
10
|
-
export interface DayPickerBaseProps
|
|
11
|
-
|
|
10
|
+
export interface DayPickerBaseProps extends Omit<
|
|
11
|
+
ui_Group_GroupProps,
|
|
12
|
+
"children"
|
|
13
|
+
> {}
|
|
12
14
|
/**
|
|
13
15
|
* A day of the week selection component.
|
|
14
16
|
*
|
|
@@ -20,11 +22,10 @@ export class DayPickerBase extends React.Component<
|
|
|
20
22
|
Merge<React.HTMLProps<HTMLElement>, DayPickerBaseProps>
|
|
21
23
|
> {}
|
|
22
24
|
|
|
23
|
-
export interface DayPickerProps
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
> {
|
|
25
|
+
export interface DayPickerProps extends Omit<
|
|
26
|
+
Merge<DayPickerBaseProps, ui_Changeable_ChangeableProps>,
|
|
27
|
+
"onChange" | "value" | "defaultValue"
|
|
28
|
+
> {
|
|
28
29
|
/**
|
|
29
30
|
* Disables all days in this picker.
|
|
30
31
|
*/
|
|
@@ -207,13 +207,18 @@ var daySelectorDecoratorDefaultProps = {
|
|
|
207
207
|
* @private
|
|
208
208
|
*/
|
|
209
209
|
var DaySelectorDecorator = exports.DaySelectorDecorator = (0, _hoc["default"])(function (config, Wrapped) {
|
|
210
|
-
var
|
|
211
|
-
var daySelectorDecoratorProps = (0,
|
|
210
|
+
var _DaySelector = function DaySelector(props) {
|
|
211
|
+
var daySelectorDecoratorProps = (0, _react.useMemo)(function () {
|
|
212
|
+
return (0, _util.setDefaultProps)(props, daySelectorDecoratorDefaultProps);
|
|
213
|
+
}, [props]);
|
|
214
|
+
(0, _util.checkPropTypes)(_DaySelector, daySelectorDecoratorProps);
|
|
212
215
|
var dayNameLength = daySelectorDecoratorProps.dayNameLength,
|
|
213
216
|
locale = daySelectorDecoratorProps.locale,
|
|
214
217
|
selected = daySelectorDecoratorProps.selected,
|
|
215
218
|
rest = _objectWithoutProperties(daySelectorDecoratorProps, _excluded);
|
|
216
|
-
var state =
|
|
219
|
+
var state = (0, _react.useMemo)(function () {
|
|
220
|
+
return getLocaleState(dayNameLength, locale);
|
|
221
|
+
}, [dayNameLength, locale]);
|
|
217
222
|
var localSelected = localizeSelected(selected, state);
|
|
218
223
|
var abbreviatedDayNames = orderDays(state.abbreviatedDayNames, state);
|
|
219
224
|
var fullDayNames = orderDays(state.fullDayNames, state);
|
|
@@ -243,8 +248,8 @@ var DaySelectorDecorator = exports.DaySelectorDecorator = (0, _hoc["default"])(f
|
|
|
243
248
|
})
|
|
244
249
|
}));
|
|
245
250
|
};
|
|
246
|
-
|
|
247
|
-
|
|
251
|
+
_DaySelector.displayName = 'DaySelectorDecorator';
|
|
252
|
+
_DaySelector.propTypes = /** @lends limestone/DayPicker.DaySelectorDecorator.prototype */{
|
|
248
253
|
/**
|
|
249
254
|
* The "aria-label" for the selector.
|
|
250
255
|
*
|
|
@@ -295,7 +300,7 @@ var DaySelectorDecorator = exports.DaySelectorDecorator = (0, _hoc["default"])(f
|
|
|
295
300
|
*/
|
|
296
301
|
selected: _propTypes["default"].oneOfType([_propTypes["default"].number, _propTypes["default"].arrayOf(_propTypes["default"].number)])
|
|
297
302
|
};
|
|
298
|
-
|
|
299
|
-
return
|
|
303
|
+
_DaySelector.defaultPropValues = daySelectorDecoratorDefaultProps;
|
|
304
|
+
return _DaySelector;
|
|
300
305
|
});
|
|
301
306
|
var _default = exports["default"] = DaySelectorDecorator;
|
package/Dropdown/Dropdown.d.ts
CHANGED
|
@@ -10,14 +10,13 @@ import { ContextualPopupDecoratorProps as limestone_ContextualPopupDecorator_Con
|
|
|
10
10
|
type Omit<T, K extends keyof T> = Pick<T, Exclude<keyof T, K>>;
|
|
11
11
|
type Merge<M, N> = Omit<M, Extract<keyof M, keyof N>> & N;
|
|
12
12
|
|
|
13
|
-
export interface DropdownBaseProps
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
> {
|
|
13
|
+
export interface DropdownBaseProps extends Omit<
|
|
14
|
+
Merge<
|
|
15
|
+
limestone_Button_ButtonProps,
|
|
16
|
+
limestone_ContextualPopupDecorator_ContextualPopupDecoratorProps
|
|
17
|
+
>,
|
|
18
|
+
"popupComponent"
|
|
19
|
+
> {
|
|
21
20
|
/**
|
|
22
21
|
* The "aria-label" for the Dropdown.
|
|
23
22
|
*/
|
|
@@ -96,11 +95,10 @@ export class DropdownBase extends React.Component<
|
|
|
96
95
|
Merge<React.HTMLProps<HTMLElement>, DropdownBaseProps>
|
|
97
96
|
> {}
|
|
98
97
|
|
|
99
|
-
export interface DropdownDecoratorProps
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
> {
|
|
98
|
+
export interface DropdownDecoratorProps extends Merge<
|
|
99
|
+
Merge<ui_Changeable_ChangeableProps, ui_Toggleable_ToggleableProps>,
|
|
100
|
+
spotlight_SpotlightContainerDecorator_SpotlightContainerDecoratorProps
|
|
101
|
+
> {
|
|
104
102
|
/**
|
|
105
103
|
* Displays the items.
|
|
106
104
|
*/
|
|
@@ -4,44 +4,44 @@
|
|
|
4
4
|
min-width: 6.25rem;
|
|
5
5
|
}
|
|
6
6
|
.dropdown.tinyWidth .title {
|
|
7
|
-
width:
|
|
7
|
+
width: NaNrem - var(--primitive-spacing-24) * 2);
|
|
8
8
|
}
|
|
9
9
|
.dropdown.tinyWidth .button {
|
|
10
10
|
width: 10rem;
|
|
11
11
|
}
|
|
12
12
|
.dropdown.smallWidth .title {
|
|
13
|
-
width:
|
|
13
|
+
width: NaNrem - var(--primitive-spacing-24) * 2);
|
|
14
14
|
}
|
|
15
15
|
.dropdown.smallWidth .button {
|
|
16
16
|
width: 11.25rem;
|
|
17
17
|
}
|
|
18
18
|
.dropdown.mediumWidth .title {
|
|
19
|
-
width:
|
|
19
|
+
width: NaNrem - var(--primitive-spacing-24) * 2);
|
|
20
20
|
}
|
|
21
21
|
.dropdown.mediumWidth .button {
|
|
22
22
|
width: 14.375rem;
|
|
23
23
|
}
|
|
24
24
|
.dropdown.largeWidth .title {
|
|
25
|
-
width:
|
|
25
|
+
width: NaNrem - var(--primitive-spacing-24) * 2);
|
|
26
26
|
}
|
|
27
27
|
.dropdown.largeWidth .button {
|
|
28
28
|
width: 17.5rem;
|
|
29
29
|
}
|
|
30
30
|
.dropdown.x-largeWidth .title {
|
|
31
|
-
width:
|
|
31
|
+
width: NaNrem - var(--primitive-spacing-24) * 2);
|
|
32
32
|
}
|
|
33
33
|
.dropdown.x-largeWidth .button {
|
|
34
34
|
width: 21.875rem;
|
|
35
35
|
}
|
|
36
36
|
.dropdown.hugeWidth .title {
|
|
37
|
-
width:
|
|
37
|
+
width: NaNrem - var(--primitive-spacing-24) * 2);
|
|
38
38
|
}
|
|
39
39
|
.dropdown.hugeWidth .button {
|
|
40
40
|
width: 28.75rem;
|
|
41
41
|
}
|
|
42
42
|
.dropdown .title {
|
|
43
|
-
min-width:
|
|
44
|
-
padding:
|
|
43
|
+
min-width: NaNrem - var(--primitive-spacing-24) * 2);
|
|
44
|
+
padding: var(--primitive-spacing-36) var(--primitive-spacing-24);
|
|
45
45
|
margin: 0;
|
|
46
46
|
}
|
|
47
47
|
.dropdown .button {
|
|
@@ -50,6 +50,10 @@
|
|
|
50
50
|
padding: 0 var(--primitive-spacing-48);
|
|
51
51
|
margin: 0;
|
|
52
52
|
}
|
|
53
|
+
.dropdown .button.small {
|
|
54
|
+
min-width: unset;
|
|
55
|
+
max-width: unset;
|
|
56
|
+
}
|
|
53
57
|
:global(.spotlight-input-key) .dropdown .button:not([disabled]):global(.spottable):focus.pressed .bg,
|
|
54
58
|
:global(.spotlight-input-mouse) .dropdown .button:not([disabled]):global(.spottable):focus.pressed .bg,
|
|
55
59
|
:global(.spotlight-input-key) .dropdown .button:not([disabled]):global(.spottable):focus:active .bg,
|
|
@@ -73,7 +77,7 @@
|
|
|
73
77
|
min-width: 6.25rem;
|
|
74
78
|
}
|
|
75
79
|
.dropdownList.verticalScrollbar .scrollbarTrack {
|
|
76
|
-
height: calc(100% -
|
|
80
|
+
height: calc(100% - var(--primitive-spacing-12));
|
|
77
81
|
}
|
|
78
82
|
.dropdownList.tiny {
|
|
79
83
|
width: 9.875rem;
|
package/Dropdown/DropdownList.js
CHANGED
|
@@ -9,6 +9,7 @@ var _handle = require("@enact/core/handle");
|
|
|
9
9
|
var _hoc = _interopRequireDefault(require("@enact/core/hoc"));
|
|
10
10
|
var _propTypes = _interopRequireDefault(require("@enact/core/internal/prop-types"));
|
|
11
11
|
var _WithRef = require("@enact/core/internal/WithRef");
|
|
12
|
+
var _util = require("@enact/core/util");
|
|
12
13
|
var _spotlight = _interopRequireDefault(require("@enact/spotlight"));
|
|
13
14
|
var _IdProvider = _interopRequireDefault(require("@enact/ui/internal/IdProvider"));
|
|
14
15
|
var _resolution = _interopRequireDefault(require("@enact/ui/resolution"));
|
|
@@ -17,16 +18,16 @@ var _propTypes2 = _interopRequireDefault(require("prop-types"));
|
|
|
17
18
|
var _compose = _interopRequireDefault(require("ramda/src/compose"));
|
|
18
19
|
var _react = require("react");
|
|
19
20
|
var _$L = _interopRequireDefault(require("../internal/$L"));
|
|
21
|
+
var _util2 = require("../internal/util");
|
|
20
22
|
var _Icon = _interopRequireDefault(require("../Icon"));
|
|
21
23
|
var _Item = _interopRequireDefault(require("../Item"));
|
|
22
24
|
var _Skinnable = _interopRequireDefault(require("../Skinnable"));
|
|
23
25
|
var _VirtualList = _interopRequireDefault(require("../VirtualList"));
|
|
24
26
|
var _DropdownModule = _interopRequireDefault(require("./Dropdown.module.css"));
|
|
25
|
-
var _util = require("../internal/util");
|
|
26
27
|
var _jsxRuntime = require("react/jsx-runtime");
|
|
27
28
|
var _excluded = ["index"],
|
|
28
29
|
_excluded2 = ["key"],
|
|
29
|
-
_excluded3 = ["dataSize", "id", "itemSize", "scrollTo", "width"];
|
|
30
|
+
_excluded3 = ["dataSize", "id", "itemSize", "maxItems", "scrollTo", "width"];
|
|
30
31
|
function _interopRequireDefault(e) { return e && e.__esModule ? e : { "default": e }; }
|
|
31
32
|
function _slicedToArray(r, e) { return _arrayWithHoles(r) || _iterableToArrayLimit(r, e) || _unsupportedIterableToArray(r, e) || _nonIterableRest(); }
|
|
32
33
|
function _nonIterableRest() { throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); }
|
|
@@ -34,13 +35,21 @@ function _unsupportedIterableToArray(r, a) { if (r) { if ("string" == typeof r)
|
|
|
34
35
|
function _arrayLikeToArray(r, a) { (null == a || a > r.length) && (a = r.length); for (var e = 0, n = Array(a); e < a; e++) n[e] = r[e]; return n; }
|
|
35
36
|
function _iterableToArrayLimit(r, l) { var t = null == r ? null : "undefined" != typeof Symbol && r[Symbol.iterator] || r["@@iterator"]; if (null != t) { var e, n, i, u, a = [], f = !0, o = !1; try { if (i = (t = t.call(r)).next, 0 === l) { if (Object(t) !== t) return; f = !1; } else for (; !(f = (e = i.call(t)).done) && (a.push(e.value), a.length !== l); f = !0); } catch (r) { o = !0, n = r; } finally { try { if (!f && null != t["return"] && (u = t["return"](), Object(u) !== u)) return; } finally { if (o) throw n; } } return a; } }
|
|
36
37
|
function _arrayWithHoles(r) { if (Array.isArray(r)) return r; }
|
|
38
|
+
function _objectWithoutProperties(e, t) { if (null == e) return {}; var o, r, i = _objectWithoutPropertiesLoose(e, t); if (Object.getOwnPropertySymbols) { var n = Object.getOwnPropertySymbols(e); for (r = 0; r < n.length; r++) o = n[r], -1 === t.indexOf(o) && {}.propertyIsEnumerable.call(e, o) && (i[o] = e[o]); } return i; }
|
|
39
|
+
function _objectWithoutPropertiesLoose(r, e) { if (null == r) return {}; var t = {}; for (var n in r) if ({}.hasOwnProperty.call(r, n)) { if (-1 !== e.indexOf(n)) continue; t[n] = r[n]; } return t; }
|
|
37
40
|
function ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }
|
|
38
41
|
function _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
|
|
39
42
|
function _defineProperty(e, r, t) { return (r = _toPropertyKey(r)) in e ? Object.defineProperty(e, r, { value: t, enumerable: !0, configurable: !0, writable: !0 }) : e[r] = t, e; }
|
|
40
43
|
function _toPropertyKey(t) { var i = _toPrimitive(t, "string"); return "symbol" == typeof i ? i : i + ""; }
|
|
41
44
|
function _toPrimitive(t, r) { if ("object" != typeof t || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || "default"); if ("object" != typeof i) return i; throw new TypeError("@@toPrimitive must return a primitive value."); } return ("string" === r ? String : Number)(t); }
|
|
42
|
-
|
|
43
|
-
|
|
45
|
+
var ReadyState = {
|
|
46
|
+
// Initial state. Scrolling and focusing pending
|
|
47
|
+
INIT: 0,
|
|
48
|
+
// Scroll requested
|
|
49
|
+
SCROLLED: 1,
|
|
50
|
+
// Focus completed or not required
|
|
51
|
+
DONE: 2
|
|
52
|
+
};
|
|
44
53
|
var isSelectedValid = exports.isSelectedValid = function isSelectedValid(_ref) {
|
|
45
54
|
var children = _ref.children,
|
|
46
55
|
selected = _ref.selected;
|
|
@@ -65,6 +74,31 @@ var indexFromKey = function indexFromKey(children, key) {
|
|
|
65
74
|
}
|
|
66
75
|
return index;
|
|
67
76
|
};
|
|
77
|
+
var stateReducer = function stateReducer(prevState, _ref3) {
|
|
78
|
+
var adjustedFocusIndex = _ref3.adjustedFocusIndex,
|
|
79
|
+
props = _ref3.props,
|
|
80
|
+
type = _ref3.type;
|
|
81
|
+
switch (type) {
|
|
82
|
+
case ReadyState.INIT:
|
|
83
|
+
return {
|
|
84
|
+
prevChildren: props.children,
|
|
85
|
+
prevFocused: adjustedFocusIndex,
|
|
86
|
+
prevSelected: props.selected,
|
|
87
|
+
prevSelectedKey: getKey(props),
|
|
88
|
+
ready: ReadyState.INIT
|
|
89
|
+
};
|
|
90
|
+
case ReadyState.SCROLLED:
|
|
91
|
+
return _objectSpread(_objectSpread({}, prevState), {}, {
|
|
92
|
+
ready: ReadyState.SCROLLED
|
|
93
|
+
});
|
|
94
|
+
case ReadyState.DONE:
|
|
95
|
+
return _objectSpread(_objectSpread({}, prevState), {}, {
|
|
96
|
+
ready: ReadyState.DONE
|
|
97
|
+
});
|
|
98
|
+
default:
|
|
99
|
+
return prevState;
|
|
100
|
+
}
|
|
101
|
+
};
|
|
68
102
|
var DropdownListBase = exports.DropdownListBase = (0, _kind["default"])({
|
|
69
103
|
name: 'DropdownListBase',
|
|
70
104
|
propTypes: {
|
|
@@ -122,9 +156,9 @@ var DropdownListBase = exports.DropdownListBase = (0, _kind["default"])({
|
|
|
122
156
|
className: 'dropdownList'
|
|
123
157
|
},
|
|
124
158
|
handlers: {
|
|
125
|
-
itemRenderer: function itemRenderer(
|
|
126
|
-
var index =
|
|
127
|
-
rest = _objectWithoutProperties(
|
|
159
|
+
itemRenderer: function itemRenderer(_ref4, props) {
|
|
160
|
+
var index = _ref4.index,
|
|
161
|
+
rest = _objectWithoutProperties(_ref4, _excluded);
|
|
128
162
|
var children = props.children,
|
|
129
163
|
selected = props.selected;
|
|
130
164
|
var isSelected = index === selected;
|
|
@@ -159,31 +193,36 @@ var DropdownListBase = exports.DropdownListBase = (0, _kind["default"])({
|
|
|
159
193
|
}
|
|
160
194
|
},
|
|
161
195
|
computed: {
|
|
162
|
-
className: function className(
|
|
163
|
-
var children =
|
|
164
|
-
styler =
|
|
165
|
-
width =
|
|
196
|
+
className: function className(_ref5) {
|
|
197
|
+
var children = _ref5.children,
|
|
198
|
+
styler = _ref5.styler,
|
|
199
|
+
width = _ref5.width;
|
|
166
200
|
return styler.append(typeof width === 'string' ? width : null, {
|
|
167
201
|
verticalScrollbar: (children === null || children === void 0 ? void 0 : children.length) > 5
|
|
168
202
|
});
|
|
169
203
|
},
|
|
170
|
-
dataSize: function dataSize(
|
|
171
|
-
var children =
|
|
204
|
+
dataSize: function dataSize(_ref6) {
|
|
205
|
+
var children = _ref6.children;
|
|
172
206
|
return children ? children.length : 0;
|
|
173
207
|
},
|
|
174
208
|
// Note: Retaining this in case we need to support different item sizes for large text mode:
|
|
175
209
|
// itemSize: ({skinVariants}) => ri.scale(skinVariants && skinVariants.largeText ? 156 : 156)
|
|
176
210
|
itemSize: function itemSize() {
|
|
177
211
|
return 156;
|
|
212
|
+
},
|
|
213
|
+
maxItems: function maxItems(_ref7) {
|
|
214
|
+
var children = _ref7.children;
|
|
215
|
+
return (children === null || children === void 0 ? void 0 : children.length) > 5;
|
|
178
216
|
}
|
|
179
217
|
},
|
|
180
|
-
render: function render(
|
|
181
|
-
var dataSize =
|
|
182
|
-
id =
|
|
183
|
-
itemSize =
|
|
184
|
-
|
|
185
|
-
|
|
186
|
-
|
|
218
|
+
render: function render(_ref8) {
|
|
219
|
+
var dataSize = _ref8.dataSize,
|
|
220
|
+
id = _ref8.id,
|
|
221
|
+
itemSize = _ref8.itemSize,
|
|
222
|
+
maxItems = _ref8.maxItems,
|
|
223
|
+
scrollTo = _ref8.scrollTo,
|
|
224
|
+
width = _ref8.width,
|
|
225
|
+
rest = _objectWithoutProperties(_ref8, _excluded3);
|
|
187
226
|
delete rest.children;
|
|
188
227
|
delete rest.onSelect;
|
|
189
228
|
delete rest.selected;
|
|
@@ -194,9 +233,9 @@ var DropdownListBase = exports.DropdownListBase = (0, _kind["default"])({
|
|
|
194
233
|
"aria-labelledby": "".concat(id, "_dropdownlist"),
|
|
195
234
|
children: [/*#__PURE__*/(0, _jsxRuntime.jsx)("div", {
|
|
196
235
|
id: "".concat(id, "_dropdownlist"),
|
|
197
|
-
"aria-label": new _IString["default"]((0, _$L["default"])('
|
|
236
|
+
"aria-label": "".concat((0, _$L["default"])('Dropdown list opened'), " ").concat(new _IString["default"]((0, _$L["default"])('{total} items in total')).format({
|
|
198
237
|
total: dataSize
|
|
199
|
-
})
|
|
238
|
+
}))
|
|
200
239
|
}), /*#__PURE__*/(0, _jsxRuntime.jsx)(_VirtualList["default"], _objectSpread(_objectSpread({}, rest), {}, {
|
|
201
240
|
cbScrollTo: scrollTo,
|
|
202
241
|
dataSize: dataSize,
|
|
@@ -205,37 +244,30 @@ var DropdownListBase = exports.DropdownListBase = (0, _kind["default"])({
|
|
|
205
244
|
scrollbarTrackCss: _DropdownModule["default"],
|
|
206
245
|
style: {
|
|
207
246
|
backgroundColor: 'transparent',
|
|
208
|
-
height: _resolution["default"].scaleToRem(itemSize * dataSize + 36),
|
|
247
|
+
height: !maxItems ? _resolution["default"].scaleToRem(itemSize * dataSize + 36) : null,
|
|
209
248
|
width: typeof width === 'number' ? _resolution["default"].scaleToRem(width) : null
|
|
210
249
|
}
|
|
211
250
|
}))]
|
|
212
251
|
});
|
|
213
252
|
}
|
|
214
253
|
});
|
|
215
|
-
var ReadyState = {
|
|
216
|
-
// Initial state. Scrolling and focusing pending
|
|
217
|
-
INIT: 0,
|
|
218
|
-
// Scroll requested
|
|
219
|
-
SCROLLED: 1,
|
|
220
|
-
// Focus completed or not required
|
|
221
|
-
DONE: 2
|
|
222
|
-
};
|
|
223
254
|
var DropdownListSpotlightDecorator = (0, _hoc["default"])(function (config, Wrapped) {
|
|
224
255
|
var WrappedWithRef = (0, _WithRef.WithRef)(Wrapped);
|
|
225
256
|
|
|
226
257
|
// eslint-disable-next-line no-shadow
|
|
227
|
-
var
|
|
258
|
+
var _DropdownListSpotlightDecorator = function DropdownListSpotlightDecorator(props) {
|
|
259
|
+
(0, _util.checkPropTypes)(_DropdownListSpotlightDecorator, props);
|
|
228
260
|
var clientSiblingRef = (0, _react.useRef)(null);
|
|
229
|
-
var
|
|
261
|
+
var _useReducer = (0, _react.useReducer)(stateReducer, {
|
|
230
262
|
prevChildren: props.children,
|
|
231
263
|
prevFocused: null,
|
|
232
264
|
prevSelected: props.selected,
|
|
233
265
|
prevSelectedKey: getKey(props),
|
|
234
266
|
ready: isSelectedValid(props) ? ReadyState.INIT : ReadyState.DONE
|
|
235
267
|
}),
|
|
236
|
-
|
|
237
|
-
state =
|
|
238
|
-
|
|
268
|
+
_useReducer2 = _slicedToArray(_useReducer, 2),
|
|
269
|
+
state = _useReducer2[0],
|
|
270
|
+
dispatch = _useReducer2[1];
|
|
239
271
|
var scrollToRef = (0, _react.useRef)(function () {});
|
|
240
272
|
var lastFocusedKey = (0, _react.useRef)(null);
|
|
241
273
|
(0, _react.useEffect)(function () {
|
|
@@ -245,10 +277,8 @@ var DropdownListSpotlightDecorator = (0, _hoc["default"])(function (config, Wrap
|
|
|
245
277
|
}, []); // eslint-disable-line react-hooks/exhaustive-deps
|
|
246
278
|
|
|
247
279
|
var focusSelected = function focusSelected() {
|
|
248
|
-
|
|
249
|
-
|
|
250
|
-
ready: ReadyState.DONE
|
|
251
|
-
});
|
|
280
|
+
dispatch({
|
|
281
|
+
type: ReadyState.DONE
|
|
252
282
|
});
|
|
253
283
|
};
|
|
254
284
|
var resetFocus = (0, _react.useCallback)(function (keysDiffer) {
|
|
@@ -259,12 +289,10 @@ var DropdownListSpotlightDecorator = (0, _hoc["default"])(function (config, Wrap
|
|
|
259
289
|
adjustedFocusIndex = targetIndex;
|
|
260
290
|
}
|
|
261
291
|
}
|
|
262
|
-
|
|
263
|
-
|
|
264
|
-
|
|
265
|
-
|
|
266
|
-
prevSelectedKey: getKey(props),
|
|
267
|
-
ready: ReadyState.INIT
|
|
292
|
+
dispatch({
|
|
293
|
+
adjustedFocusIndex: adjustedFocusIndex,
|
|
294
|
+
props: props,
|
|
295
|
+
type: ReadyState.INIT
|
|
268
296
|
});
|
|
269
297
|
}, [props]);
|
|
270
298
|
var scrollIntoView = (0, _react.useCallback)(function () {
|
|
@@ -282,10 +310,8 @@ var DropdownListSpotlightDecorator = (0, _hoc["default"])(function (config, Wrap
|
|
|
282
310
|
// @lime-item-small-height * 2 (TODO: large text mode not supported!)
|
|
283
311
|
stickTo: 'start' // offset from the top of the dropdown
|
|
284
312
|
});
|
|
285
|
-
|
|
286
|
-
|
|
287
|
-
ready: ReadyState.SCROLLED
|
|
288
|
-
});
|
|
313
|
+
dispatch({
|
|
314
|
+
type: ReadyState.SCROLLED
|
|
289
315
|
});
|
|
290
316
|
}, [props, state.prevFocused]);
|
|
291
317
|
(0, _react.useEffect)(function () {
|
|
@@ -296,7 +322,7 @@ var DropdownListSpotlightDecorator = (0, _hoc["default"])(function (config, Wrap
|
|
|
296
322
|
} else {
|
|
297
323
|
var key = getKey(props);
|
|
298
324
|
var keysDiffer = key && state.prevSelectedKey && key !== state.prevSelectedKey;
|
|
299
|
-
if (keysDiffer || (!key || !state.prevSelectedKey) && state.prevSelected !== props.selected || !(0,
|
|
325
|
+
if (keysDiffer || (!key || !state.prevSelectedKey) && state.prevSelected !== props.selected || !(0, _util2.compareChildren)(state.prevChildren, props.children)) {
|
|
300
326
|
resetFocus(keysDiffer);
|
|
301
327
|
}
|
|
302
328
|
}
|
|
@@ -327,8 +353,8 @@ var DropdownListSpotlightDecorator = (0, _hoc["default"])(function (config, Wrap
|
|
|
327
353
|
scrollTo: setScrollTo
|
|
328
354
|
}));
|
|
329
355
|
};
|
|
330
|
-
|
|
331
|
-
|
|
356
|
+
_DropdownListSpotlightDecorator.displayName = 'DropdownListSpotlightDecorator';
|
|
357
|
+
_DropdownListSpotlightDecorator.propTypes = {
|
|
332
358
|
/*
|
|
333
359
|
* Passed by DropdownBase to resume Spotlight
|
|
334
360
|
*
|
|
@@ -348,7 +374,7 @@ var DropdownListSpotlightDecorator = (0, _hoc["default"])(function (config, Wrap
|
|
|
348
374
|
*/
|
|
349
375
|
selected: _propTypes2["default"].number
|
|
350
376
|
};
|
|
351
|
-
return
|
|
377
|
+
return _DropdownListSpotlightDecorator;
|
|
352
378
|
});
|
|
353
379
|
var DropdownListDecorator = (0, _compose["default"])(DropdownListSpotlightDecorator, (0, _IdProvider["default"])({
|
|
354
380
|
generateProp: null,
|
|
@@ -22,8 +22,10 @@ export class FixedPopupPanelsBase extends React.Component<
|
|
|
22
22
|
Merge<React.HTMLProps<HTMLElement>, FixedPopupPanelsBaseProps>
|
|
23
23
|
> {}
|
|
24
24
|
|
|
25
|
-
export interface FixedPopupPanelsProps
|
|
26
|
-
|
|
25
|
+
export interface FixedPopupPanelsProps extends Merge<
|
|
26
|
+
FixedPopupPanelsBaseProps,
|
|
27
|
+
FixedPopupPanelsDecoratorProps
|
|
28
|
+
> {
|
|
27
29
|
/**
|
|
28
30
|
* Size of the popup.
|
|
29
31
|
*/
|
|
@@ -31,12 +31,12 @@
|
|
|
31
31
|
padding: 0;
|
|
32
32
|
}
|
|
33
33
|
.fixedPopupPanels.popup {
|
|
34
|
-
margin:
|
|
35
|
-
max-height: calc(100vh -
|
|
34
|
+
margin: var(--primitive-spacing-60) var(--primitive-spacing-60) var(--primitive-spacing-132);
|
|
35
|
+
max-height: calc(100vh - (var(--primitive-spacing-60) + var(--primitive-spacing-132)));
|
|
36
36
|
}
|
|
37
37
|
.fixedPopupPanels.popup.left {
|
|
38
|
-
margin-left:
|
|
39
|
-
margin-right:
|
|
38
|
+
margin-left: var(--primitive-spacing-60);
|
|
39
|
+
margin-right: var(--primitive-spacing-60);
|
|
40
40
|
}
|
|
41
41
|
.fixedPopupPanels:global(.neutral) {
|
|
42
42
|
background-color: transparent;
|
|
@@ -46,9 +46,9 @@
|
|
|
46
46
|
border-radius: var(--semantic-radius-overlay);
|
|
47
47
|
box-shadow: 0 0.75rem 1rem color(from var(--semantic-color-on-background-black) srgb r g b / 0.35);
|
|
48
48
|
outline-color: var(--semantic-color-stroke-overlay-default);
|
|
49
|
-
outline-width: 0.
|
|
49
|
+
outline-width: 0.063rem;
|
|
50
50
|
outline-style: solid;
|
|
51
|
-
outline-offset: -0.
|
|
51
|
+
outline-offset: -0.063rem;
|
|
52
52
|
}
|
|
53
53
|
:global(.noAnimation) .fixedPopupPanels:global(.neutral) .viewport {
|
|
54
54
|
box-shadow: none;
|
|
@@ -60,10 +60,10 @@
|
|
|
60
60
|
background-color: var(--semantic-color-background-overlay-default);
|
|
61
61
|
border-radius: var(--semantic-radius-overlay);
|
|
62
62
|
box-shadow: 0 0.75rem 1rem color(from var(--semantic-color-on-background-black) srgb r g b / 0.35);
|
|
63
|
-
outline-color:
|
|
64
|
-
outline-width: 0.
|
|
63
|
+
outline-color: var(--semantic-color-stroke-main);
|
|
64
|
+
outline-width: 0.063rem;
|
|
65
65
|
outline-style: solid;
|
|
66
|
-
outline-offset: -0.
|
|
66
|
+
outline-offset: -0.063rem;
|
|
67
67
|
}
|
|
68
68
|
:global(.noAnimation) :global(.enact-a11y-high-contrast) .fixedPopupPanels:global(.neutral):global(.highContrast) .viewport {
|
|
69
69
|
box-shadow: none;
|
|
@@ -76,9 +76,9 @@
|
|
|
76
76
|
border-radius: var(--semantic-radius-overlay);
|
|
77
77
|
box-shadow: 0 0.75rem 1rem color(from var(--semantic-color-on-background-black) srgb r g b / 0.35);
|
|
78
78
|
outline-color: var(--semantic-color-stroke-overlay-default);
|
|
79
|
-
outline-width: 0.
|
|
79
|
+
outline-width: 0.063rem;
|
|
80
80
|
outline-style: solid;
|
|
81
|
-
outline-offset: -0.
|
|
81
|
+
outline-offset: -0.063rem;
|
|
82
82
|
}
|
|
83
83
|
:global(.noAnimation) .fixedPopupPanels:global(.light) .viewport {
|
|
84
84
|
box-shadow: none;
|
|
@@ -94,9 +94,9 @@
|
|
|
94
94
|
border-radius: var(--semantic-radius-overlay);
|
|
95
95
|
box-shadow: 0 0.75rem 1rem color(from var(--semantic-color-on-background-black) srgb r g b / 0.35);
|
|
96
96
|
outline-color: var(--semantic-color-stroke-overlay-default);
|
|
97
|
-
outline-width: 0.
|
|
97
|
+
outline-width: 0.063rem;
|
|
98
98
|
outline-style: solid;
|
|
99
|
-
outline-offset: -0.
|
|
99
|
+
outline-offset: -0.063rem;
|
|
100
100
|
}
|
|
101
101
|
:global(.noAnimation) .fixedPopupPanels:global(.game) .viewport {
|
|
102
102
|
box-shadow: none;
|
|
@@ -111,9 +111,9 @@
|
|
|
111
111
|
border-radius: var(--semantic-radius-overlay);
|
|
112
112
|
box-shadow: 0 0.75rem 1rem color(from var(--semantic-color-on-background-black) srgb r g b / 0.35);
|
|
113
113
|
outline-color: var(--semantic-color-stroke-overlay-default);
|
|
114
|
-
outline-width: 0.
|
|
114
|
+
outline-width: 0.063rem;
|
|
115
115
|
outline-style: solid;
|
|
116
|
-
outline-offset: -0.
|
|
116
|
+
outline-offset: -0.063rem;
|
|
117
117
|
}
|
|
118
118
|
:global(.noAnimation) :global(.green) .fixedPopupPanels:global(.game) .viewport {
|
|
119
119
|
box-shadow: none;
|
|
@@ -128,15 +128,15 @@
|
|
|
128
128
|
border-radius: var(--semantic-radius-overlay);
|
|
129
129
|
box-shadow: 0 0.75rem 1rem color(from var(--semantic-color-on-background-black) srgb r g b / 0.35);
|
|
130
130
|
outline-color: var(--semantic-color-stroke-overlay-default);
|
|
131
|
-
outline-width: 0.
|
|
131
|
+
outline-width: 0.063rem;
|
|
132
132
|
outline-style: solid;
|
|
133
|
-
outline-offset: -0.
|
|
133
|
+
outline-offset: -0.063rem;
|
|
134
134
|
}
|
|
135
135
|
:global(.noAnimation) :global(.orange) .fixedPopupPanels:global(.game) .viewport {
|
|
136
136
|
box-shadow: none;
|
|
137
137
|
}
|
|
138
138
|
.panel {
|
|
139
|
-
max-height: calc(100vh -
|
|
139
|
+
max-height: calc(100vh - (var(--primitive-spacing-60) + var(--primitive-spacing-132)));
|
|
140
140
|
}
|
|
141
141
|
.panel > .body {
|
|
142
142
|
display: flex;
|