@enact/limestone 1.10.0 → 1.10.1
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/ActionGuide/ActionGuide.module.css +4 -0
- package/BodyText/BodyText.module.css +21 -0
- package/Button/Button.module.css +72 -40
- package/CHANGELOG.md +40 -0
- package/Card/Card.js +3 -0
- package/Card/Card.module.css +31 -7
- package/Checkbox/Checkbox.module.css +4 -0
- package/Chips/Chip.module.css +3 -0
- package/Heading/Heading.module.css +16 -0
- package/Icon/Icon.module.css +12 -0
- package/IconItem/IconItem.module.css +16 -0
- package/ImageItem/ImageItem.module.css +17 -0
- package/Input/Input.module.css +25 -9
- package/Input/InputField.module.css +18 -0
- package/Item/Item.module.css +2 -1
- package/KeyGuide/KeyGuide.module.css +10 -0
- package/MediaOverlay/MediaOverlay.module.css +16 -4
- package/MediaPlayer/MediaControls.module.css +3 -0
- package/MediaPlayer/Times.module.css +4 -0
- package/PageViews/PageViews.module.css +4 -0
- package/Panels/Header.module.css +37 -31
- package/PopupTabLayout/PopupTabLayout.module.css +18 -0
- package/RadioItem/RadioItem.module.css +5 -0
- package/Scroller/EditableWrapper.js +2 -1
- package/Scroller/Scroller.module.css +10 -0
- package/Scroller/tests/Scroller-specs.js +91 -2
- package/Scroller/useThemeScroller.js +3 -0
- package/Slider/Slider.module.css +0 -3
- package/Steps/Steps.module.css +3 -0
- package/Switch/Switch.module.css +15 -1
- package/TabLayout/TabGroup.module.css +1 -1
- package/TimePicker/TimePicker.module.css +3 -0
- package/TooltipDecorator/Tooltip.module.css +4 -0
- package/VideoPlayer/Feedback.module.css +3 -0
- package/VideoPlayer/FeedbackTooltip.module.css +7 -0
- package/VideoPlayer/MediaTitle.module.css +8 -0
- package/internal/DateTime/DateTime.module.css +3 -0
- package/internal/Picker/Picker.module.css +22 -0
- package/package.json +9 -9
- package/styles/variables.less +117 -25
- package/useScroll/ScrollbarPlaceholder.js +8 -3
package/Panels/Header.module.css
CHANGED
|
@@ -17,25 +17,6 @@
|
|
|
17
17
|
.header .titlesRow .back {
|
|
18
18
|
margin-inline-start: 0;
|
|
19
19
|
}
|
|
20
|
-
.header .titlesRow .back:global(.largeText) {
|
|
21
|
-
font-family: "Limestone";
|
|
22
|
-
font-size: var(--primitive-font-size-60);
|
|
23
|
-
font-style: normal;
|
|
24
|
-
font-weight: var(--primitive-font-weight-semibold);
|
|
25
|
-
font-kerning: normal;
|
|
26
|
-
height: 2.75rem;
|
|
27
|
-
line-height: 2.5rem;
|
|
28
|
-
min-width: 2.75rem;
|
|
29
|
-
}
|
|
30
|
-
:global(.enact-locale-non-latin) .header .titlesRow .back:global(.largeText) {
|
|
31
|
-
font-family: "Limestone";
|
|
32
|
-
}
|
|
33
|
-
:global(.enact-locale-non-latin) .header .titlesRow .back:global(.largeText) {
|
|
34
|
-
font-family: "Limestone";
|
|
35
|
-
font-size: var(--primitive-font-size-54);
|
|
36
|
-
font-style: normal;
|
|
37
|
-
font-weight: var(--primitive-font-weight-bold);
|
|
38
|
-
}
|
|
39
20
|
.header .titlesRow .close {
|
|
40
21
|
margin-inline-end: 0;
|
|
41
22
|
}
|
|
@@ -103,6 +84,12 @@
|
|
|
103
84
|
.header.centered:not(.isPopupHeader) .slotBelow {
|
|
104
85
|
text-align: center;
|
|
105
86
|
}
|
|
87
|
+
.header.centered:not(.isPopupHeader).mini .title {
|
|
88
|
+
margin-top: calc(abs(-18px) / 2);
|
|
89
|
+
}
|
|
90
|
+
:global(.enact-orientation-portrait) .header.centered:not(.isPopupHeader).standard .title {
|
|
91
|
+
margin-top: calc(abs(-18px) / -2);
|
|
92
|
+
}
|
|
106
93
|
.header .title {
|
|
107
94
|
margin: 0;
|
|
108
95
|
}
|
|
@@ -127,25 +114,21 @@
|
|
|
127
114
|
margin: var(--primitive-spacing-18) calc(var(--primitive-spacing-36) * -1) 0 calc(var(--primitive-spacing-36) * -1);
|
|
128
115
|
}
|
|
129
116
|
.header.standard.slotBefore:not(.centered) .slotBefore,
|
|
130
|
-
.header.mini.slotBefore:not(.centered) .slotBefore,
|
|
131
117
|
.header.wizard.slotBefore:not(.centered) .slotBefore {
|
|
132
118
|
margin-left: 0;
|
|
133
119
|
margin-right: var(--primitive-spacing-36);
|
|
134
120
|
}
|
|
135
121
|
:global(.enact-locale-right-to-left) .header.standard.slotBefore:not(.centered) .slotBefore,
|
|
136
|
-
:global(.enact-locale-right-to-left) .header.mini.slotBefore:not(.centered) .slotBefore,
|
|
137
122
|
:global(.enact-locale-right-to-left) .header.wizard.slotBefore:not(.centered) .slotBefore {
|
|
138
123
|
margin-left: var(--primitive-spacing-36);
|
|
139
124
|
margin-right: 0;
|
|
140
125
|
}
|
|
141
126
|
.header.standard.slotAfter:not(.centered) .slotAfter,
|
|
142
|
-
.header.mini.slotAfter:not(.centered) .slotAfter,
|
|
143
127
|
.header.wizard.slotAfter:not(.centered) .slotAfter {
|
|
144
128
|
margin-left: var(--primitive-spacing-36);
|
|
145
129
|
margin-right: 0;
|
|
146
130
|
}
|
|
147
131
|
:global(.enact-locale-right-to-left) .header.standard.slotAfter:not(.centered) .slotAfter,
|
|
148
|
-
:global(.enact-locale-right-to-left) .header.mini.slotAfter:not(.centered) .slotAfter,
|
|
149
132
|
:global(.enact-locale-right-to-left) .header.wizard.slotAfter:not(.centered) .slotAfter {
|
|
150
133
|
margin-left: 0;
|
|
151
134
|
margin-right: var(--primitive-spacing-36);
|
|
@@ -185,21 +168,21 @@
|
|
|
185
168
|
:global(.enact-locale-non-latin) .header.compact .title {
|
|
186
169
|
font-size: 1.875rem;
|
|
187
170
|
}
|
|
188
|
-
.header.compact.slotBefore
|
|
171
|
+
.header.compact.slotBefore .slotBefore {
|
|
189
172
|
margin-left: 0;
|
|
190
|
-
margin-right: var(--primitive-spacing-
|
|
173
|
+
margin-right: var(--primitive-spacing-12);
|
|
191
174
|
}
|
|
192
|
-
:global(.enact-locale-right-to-left) .header.compact.slotBefore
|
|
193
|
-
margin-left: var(--primitive-spacing-
|
|
175
|
+
:global(.enact-locale-right-to-left) .header.compact.slotBefore .slotBefore {
|
|
176
|
+
margin-left: var(--primitive-spacing-12);
|
|
194
177
|
margin-right: 0;
|
|
195
178
|
}
|
|
196
|
-
.header.compact.slotAfter
|
|
197
|
-
margin-left: var(--primitive-spacing-
|
|
179
|
+
.header.compact.slotAfter .slotAfter {
|
|
180
|
+
margin-left: var(--primitive-spacing-12);
|
|
198
181
|
margin-right: 0;
|
|
199
182
|
}
|
|
200
|
-
:global(.enact-locale-right-to-left) .header.compact.slotAfter
|
|
183
|
+
:global(.enact-locale-right-to-left) .header.compact.slotAfter .slotAfter {
|
|
201
184
|
margin-left: 0;
|
|
202
|
-
margin-right: var(--primitive-spacing-
|
|
185
|
+
margin-right: var(--primitive-spacing-12);
|
|
203
186
|
}
|
|
204
187
|
.header.compact.isPopupHeader.slotAfter {
|
|
205
188
|
padding-left: 1.25rem;
|
|
@@ -234,6 +217,10 @@
|
|
|
234
217
|
.header.wizard.centered .subtitle {
|
|
235
218
|
text-align: center;
|
|
236
219
|
}
|
|
220
|
+
:global(.enact-orientation-portrait) .header.wizard.slotBefore .slotBefore,
|
|
221
|
+
:global(.enact-orientation-portrait) .header.wizard.slotAfter .slotAfter {
|
|
222
|
+
margin-top: NaNrem + -18px) * -1);
|
|
223
|
+
}
|
|
237
224
|
.header.mini {
|
|
238
225
|
margin: 0 0 0.75rem 0;
|
|
239
226
|
padding: 0.86458rem 1.25rem 0.55208rem 1.25rem;
|
|
@@ -250,6 +237,25 @@
|
|
|
250
237
|
:global(.enact-locale-non-latin) .header.mini .title {
|
|
251
238
|
font-size: 1.875rem;
|
|
252
239
|
}
|
|
240
|
+
.header.mini .title:not(.isPopupHeader) {
|
|
241
|
+
margin-top: calc(abs(-18px) / 2);
|
|
242
|
+
}
|
|
243
|
+
.header.mini.slotBefore .slotBefore {
|
|
244
|
+
margin-left: 0;
|
|
245
|
+
margin-right: var(--primitive-spacing-12);
|
|
246
|
+
}
|
|
247
|
+
:global(.enact-locale-right-to-left) .header.mini.slotBefore .slotBefore {
|
|
248
|
+
margin-left: var(--primitive-spacing-12);
|
|
249
|
+
margin-right: 0;
|
|
250
|
+
}
|
|
251
|
+
.header.mini.slotAfter .slotAfter {
|
|
252
|
+
margin-left: var(--primitive-spacing-12);
|
|
253
|
+
margin-right: 0;
|
|
254
|
+
}
|
|
255
|
+
:global(.enact-locale-right-to-left) .header.mini.slotAfter .slotAfter {
|
|
256
|
+
margin-left: 0;
|
|
257
|
+
margin-right: var(--primitive-spacing-12);
|
|
258
|
+
}
|
|
253
259
|
.header.mini.withSubtitle:not(.noSubtitle) .titlesRow {
|
|
254
260
|
padding-bottom: 70.2px;
|
|
255
261
|
}
|
|
@@ -64,6 +64,9 @@
|
|
|
64
64
|
.popupTabLayout:global(.neutral) .tabGroup .tab .icon {
|
|
65
65
|
--icon-size: 2rem;
|
|
66
66
|
}
|
|
67
|
+
.popupTabLayout:global(.neutral) .tabGroup .tab:global(.largeText) .icon {
|
|
68
|
+
--icon-size: 2.4rem;
|
|
69
|
+
}
|
|
67
70
|
:global(.noAnimation) .popupTabLayout:global(.neutral) .tabs,
|
|
68
71
|
:global(.noAnimation) .popupTabLayout:global(.neutral) .content .panels::before {
|
|
69
72
|
box-shadow: none;
|
|
@@ -92,6 +95,9 @@
|
|
|
92
95
|
:global(.enact-a11y-high-contrast) .popupTabLayout:global(.neutral):global(.highContrast) .tabGroup .tab .icon {
|
|
93
96
|
--icon-size: 2rem;
|
|
94
97
|
}
|
|
98
|
+
:global(.enact-a11y-high-contrast) .popupTabLayout:global(.neutral):global(.highContrast) .tabGroup .tab:global(.largeText) .icon {
|
|
99
|
+
--icon-size: 2.4rem;
|
|
100
|
+
}
|
|
95
101
|
:global(.noAnimation) :global(.enact-a11y-high-contrast) .popupTabLayout:global(.neutral):global(.highContrast) .tabs,
|
|
96
102
|
:global(.noAnimation) :global(.enact-a11y-high-contrast) .popupTabLayout:global(.neutral):global(.highContrast) .content .panels::before {
|
|
97
103
|
box-shadow: none;
|
|
@@ -120,6 +126,9 @@
|
|
|
120
126
|
.popupTabLayout:global(.light) .tabGroup .tab .icon {
|
|
121
127
|
--icon-size: 2rem;
|
|
122
128
|
}
|
|
129
|
+
.popupTabLayout:global(.light) .tabGroup .tab:global(.largeText) .icon {
|
|
130
|
+
--icon-size: 2.4rem;
|
|
131
|
+
}
|
|
123
132
|
:global(.noAnimation) .popupTabLayout:global(.light) .tabs,
|
|
124
133
|
:global(.noAnimation) .popupTabLayout:global(.light) .content .panels::before {
|
|
125
134
|
box-shadow: none;
|
|
@@ -151,6 +160,9 @@
|
|
|
151
160
|
.popupTabLayout:global(.game) .tabGroup .tab .icon {
|
|
152
161
|
--icon-size: 2rem;
|
|
153
162
|
}
|
|
163
|
+
.popupTabLayout:global(.game) .tabGroup .tab:global(.largeText) .icon {
|
|
164
|
+
--icon-size: 2.4rem;
|
|
165
|
+
}
|
|
154
166
|
:global(.noAnimation) .popupTabLayout:global(.game) .tabs,
|
|
155
167
|
:global(.noAnimation) .popupTabLayout:global(.game) .content .panels::before {
|
|
156
168
|
box-shadow: none;
|
|
@@ -181,6 +193,9 @@
|
|
|
181
193
|
:global(.green) .popupTabLayout:global(.game) .tabGroup .tab .icon {
|
|
182
194
|
--icon-size: 2rem;
|
|
183
195
|
}
|
|
196
|
+
:global(.green) .popupTabLayout:global(.game) .tabGroup .tab:global(.largeText) .icon {
|
|
197
|
+
--icon-size: 2.4rem;
|
|
198
|
+
}
|
|
184
199
|
:global(.noAnimation) :global(.green) .popupTabLayout:global(.game) .tabs,
|
|
185
200
|
:global(.noAnimation) :global(.green) .popupTabLayout:global(.game) .content .panels::before {
|
|
186
201
|
box-shadow: none;
|
|
@@ -211,6 +226,9 @@
|
|
|
211
226
|
:global(.orange) .popupTabLayout:global(.game) .tabGroup .tab .icon {
|
|
212
227
|
--icon-size: 2rem;
|
|
213
228
|
}
|
|
229
|
+
:global(.orange) .popupTabLayout:global(.game) .tabGroup .tab:global(.largeText) .icon {
|
|
230
|
+
--icon-size: 2.4rem;
|
|
231
|
+
}
|
|
214
232
|
:global(.noAnimation) :global(.orange) .popupTabLayout:global(.game) .tabs,
|
|
215
233
|
:global(.noAnimation) :global(.orange) .popupTabLayout:global(.game) .content .panels::before {
|
|
216
234
|
box-shadow: none;
|
|
@@ -7,6 +7,11 @@
|
|
|
7
7
|
.radioItem .icon {
|
|
8
8
|
border-radius: var(--semantic-radius-full);
|
|
9
9
|
font-size: var(--primitive-font-size-48);
|
|
10
|
+
--icon-size: 1.25rem;
|
|
11
|
+
}
|
|
12
|
+
.radioItem .icon:global(.largeText) {
|
|
13
|
+
font-size: var(--primitive-font-size-56);
|
|
14
|
+
--icon-size: 1.5rem;
|
|
10
15
|
}
|
|
11
16
|
.radioItem:global(.neutral) .icon {
|
|
12
17
|
color: transparent;
|
|
@@ -613,8 +613,9 @@ var _EditableWrapper = exports.EditableWrapper = function EditableWrapper(props)
|
|
|
613
613
|
if (selectItemBy === 'press') {
|
|
614
614
|
if ((0, _pointer.getPointerMode)()) {
|
|
615
615
|
_spotlight["default"].setPointerMode(false);
|
|
616
|
+
_spotlight["default"].focus(focusTarget);
|
|
616
617
|
}
|
|
617
|
-
_spotlight["default"].focus(focusTarget);
|
|
618
|
+
if (focusTarget !== _spotlight["default"].getCurrent()) _spotlight["default"].focus(focusTarget);
|
|
618
619
|
focusItem(focusTarget);
|
|
619
620
|
}
|
|
620
621
|
setTimeout(function () {
|
|
@@ -15,6 +15,16 @@
|
|
|
15
15
|
border-radius: var(--primitive-radius-12);
|
|
16
16
|
opacity: 0;
|
|
17
17
|
}
|
|
18
|
+
.focusableBody.hasVerticalScrollbar::before {
|
|
19
|
+
right: var(--scroll-scrollbar-size);
|
|
20
|
+
}
|
|
21
|
+
.focusableBody.hasHorizontalScrollbar::before {
|
|
22
|
+
bottom: var(--scroll-scrollbar-size);
|
|
23
|
+
}
|
|
24
|
+
:global(.enact-locale-right-to-left) .focusableBody.hasVerticalScrollbar::before {
|
|
25
|
+
right: 0;
|
|
26
|
+
left: var(--scroll-scrollbar-size);
|
|
27
|
+
}
|
|
18
28
|
:global(.spotlight-input-key):global(.spotlight-input-key) .focusableBody:global(.spottable):focus::before,
|
|
19
29
|
:global(.spotlight-input-key):global(.spotlight-input-mouse) .focusableBody:global(.spottable):focus::before {
|
|
20
30
|
background-color: color(from var(--semantic-color-surface-default-focused) srgb r g b / 0.1);
|
|
@@ -1,7 +1,9 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
|
|
3
3
|
require("@testing-library/jest-dom");
|
|
4
|
+
var _spotlight = _interopRequireDefault(require("@enact/spotlight"));
|
|
4
5
|
var _react = require("@testing-library/react");
|
|
6
|
+
var _react2 = require("react");
|
|
5
7
|
var _Scroller = _interopRequireDefault(require("../Scroller"));
|
|
6
8
|
var _jsxRuntime = require("react/jsx-runtime");
|
|
7
9
|
function _interopRequireDefault(e) { return e && e.__esModule ? e : { "default": e }; }
|
|
@@ -66,7 +68,7 @@ describe('Scroller', function () {
|
|
|
66
68
|
});
|
|
67
69
|
});
|
|
68
70
|
describe('focusable Scrollbar', function () {
|
|
69
|
-
test('should have
|
|
71
|
+
test('should have focusable body and thumb when \'focusableScrollbar\' is "byEnter"', function () {
|
|
70
72
|
var id = 'scroller';
|
|
71
73
|
(0, _react.render)(/*#__PURE__*/(0, _jsxRuntime.jsx)(_Scroller["default"], {
|
|
72
74
|
"data-testid": id,
|
|
@@ -86,7 +88,7 @@ describe('Scroller', function () {
|
|
|
86
88
|
expect(scrollBody).toHaveClass(expected);
|
|
87
89
|
expect(verticalScrollbar).toHaveClass(expected);
|
|
88
90
|
});
|
|
89
|
-
test('should have
|
|
91
|
+
test('should have focusable scroll thumb when \'focusableScrollbar\' is true', function () {
|
|
90
92
|
var id = 'scroller';
|
|
91
93
|
(0, _react.render)(/*#__PURE__*/(0, _jsxRuntime.jsx)(_Scroller["default"], {
|
|
92
94
|
"data-testid": id,
|
|
@@ -101,6 +103,93 @@ describe('Scroller', function () {
|
|
|
101
103
|
expect(scrollBody).not.toHaveClass(expected);
|
|
102
104
|
expect(verticalScrollbar).toHaveClass(expected);
|
|
103
105
|
});
|
|
106
|
+
describe('ScrollbarPlaceholder focus restoration', function () {
|
|
107
|
+
var focusSpy, pointerModeSpy, currentSpy, pausedSpy, containerSpy;
|
|
108
|
+
var placeholderElement;
|
|
109
|
+
var renderWithFocusedPlaceholder = function renderWithFocusedPlaceholder() {
|
|
110
|
+
placeholderElement = null;
|
|
111
|
+
currentSpy.mockImplementation(function () {
|
|
112
|
+
return placeholderElement;
|
|
113
|
+
});
|
|
114
|
+
var onRender = function onRender(id, phase) {
|
|
115
|
+
if (phase === 'mount') {
|
|
116
|
+
placeholderElement = document.querySelector('[data-spotlight-ignore-restore]');
|
|
117
|
+
}
|
|
118
|
+
};
|
|
119
|
+
var view = (0, _react.render)(/*#__PURE__*/(0, _jsxRuntime.jsx)(_react2.Profiler, {
|
|
120
|
+
id: "placeholder",
|
|
121
|
+
onRender: onRender,
|
|
122
|
+
children: /*#__PURE__*/(0, _jsxRuntime.jsx)(_Scroller["default"], {
|
|
123
|
+
focusableScrollbar: "byEnter",
|
|
124
|
+
verticalScrollbar: "visible",
|
|
125
|
+
children: contents
|
|
126
|
+
})
|
|
127
|
+
}));
|
|
128
|
+
currentSpy.mockImplementation(function () {
|
|
129
|
+
return null;
|
|
130
|
+
});
|
|
131
|
+
focusSpy.mockClear();
|
|
132
|
+
return view;
|
|
133
|
+
};
|
|
134
|
+
beforeEach(function () {
|
|
135
|
+
jest.useFakeTimers();
|
|
136
|
+
focusSpy = jest.spyOn(_spotlight["default"], 'focus').mockImplementation(function () {
|
|
137
|
+
return true;
|
|
138
|
+
});
|
|
139
|
+
pointerModeSpy = jest.spyOn(_spotlight["default"], 'getPointerMode').mockReturnValue(false);
|
|
140
|
+
currentSpy = jest.spyOn(_spotlight["default"], 'getCurrent').mockReturnValue(null);
|
|
141
|
+
pausedSpy = jest.spyOn(_spotlight["default"], 'isPaused').mockReturnValue(false);
|
|
142
|
+
containerSpy = jest.spyOn(_spotlight["default"], 'getActiveContainer').mockReturnValue('active-container');
|
|
143
|
+
});
|
|
144
|
+
afterEach(function () {
|
|
145
|
+
focusSpy.mockRestore();
|
|
146
|
+
pointerModeSpy.mockRestore();
|
|
147
|
+
currentSpy.mockRestore();
|
|
148
|
+
pausedSpy.mockRestore();
|
|
149
|
+
containerSpy.mockRestore();
|
|
150
|
+
jest.useRealTimers();
|
|
151
|
+
});
|
|
152
|
+
test('should focus the active container after the placeholder disappears', function () {
|
|
153
|
+
renderWithFocusedPlaceholder();
|
|
154
|
+
(0, _react.act)(function () {
|
|
155
|
+
return jest.advanceTimersByTime(0);
|
|
156
|
+
});
|
|
157
|
+
expect(focusSpy).toHaveBeenCalledWith('active-container', {
|
|
158
|
+
toOuterContainer: true
|
|
159
|
+
});
|
|
160
|
+
});
|
|
161
|
+
test('should not focus when pointer mode is active', function () {
|
|
162
|
+
pointerModeSpy.mockReturnValue(true);
|
|
163
|
+
renderWithFocusedPlaceholder();
|
|
164
|
+
(0, _react.act)(function () {
|
|
165
|
+
return jest.advanceTimersByTime(0);
|
|
166
|
+
});
|
|
167
|
+
expect(focusSpy).not.toHaveBeenCalled();
|
|
168
|
+
});
|
|
169
|
+
test('should defer focus while spotlight is paused, then focus after 400ms once it unpauses', function () {
|
|
170
|
+
pausedSpy.mockReturnValue(true);
|
|
171
|
+
renderWithFocusedPlaceholder();
|
|
172
|
+
(0, _react.act)(function () {
|
|
173
|
+
return jest.advanceTimersByTime(0);
|
|
174
|
+
});
|
|
175
|
+
expect(focusSpy).not.toHaveBeenCalled();
|
|
176
|
+
pausedSpy.mockReturnValue(false);
|
|
177
|
+
(0, _react.act)(function () {
|
|
178
|
+
return jest.advanceTimersByTime(400);
|
|
179
|
+
});
|
|
180
|
+
expect(focusSpy).toHaveBeenCalledWith('active-container', {
|
|
181
|
+
toOuterContainer: true
|
|
182
|
+
});
|
|
183
|
+
});
|
|
184
|
+
test('should not focus after the 400ms retry if spotlight is still paused', function () {
|
|
185
|
+
pausedSpy.mockReturnValue(true);
|
|
186
|
+
renderWithFocusedPlaceholder();
|
|
187
|
+
(0, _react.act)(function () {
|
|
188
|
+
return jest.advanceTimersByTime(400);
|
|
189
|
+
});
|
|
190
|
+
expect(focusSpy).not.toHaveBeenCalled();
|
|
191
|
+
});
|
|
192
|
+
});
|
|
104
193
|
});
|
|
105
194
|
describe('Scrollbar accessibility', function () {
|
|
106
195
|
test('should set a custom "aria-label" to the scroll thumb in the horizontal scroll bar', function () {
|
|
@@ -377,6 +377,9 @@ var useThemeScroller = exports.useThemeScroller = function useThemeScroller(prop
|
|
|
377
377
|
var _ref3 = props.focusableScrollbar === 'byEnter' ? getFocusableBodyProps(scrollContainerRef, contentId, isScrollbarVisible) : {},
|
|
378
378
|
setNavigableFilter = _ref3.setNavigableFilter,
|
|
379
379
|
focusableBodyProps = _objectWithoutProperties(_ref3, _excluded2);
|
|
380
|
+
if (focusableBodyProps.className) {
|
|
381
|
+
focusableBodyProps.className = (0, _classnames["default"])(focusableBodyProps.className, isVerticalScrollbarVisible && _ScrollerModule["default"].hasVerticalScrollbar, isHorizontalScrollbarVisible && _ScrollerModule["default"].hasHorizontalScrollbar);
|
|
382
|
+
}
|
|
380
383
|
(0, _react.useLayoutEffect)(function () {
|
|
381
384
|
// Initial filter setting
|
|
382
385
|
if (setNavigableFilter) {
|
package/Slider/Slider.module.css
CHANGED
|
@@ -169,9 +169,6 @@ Motion Mixins
|
|
|
169
169
|
.slider.horizontal .minMax {
|
|
170
170
|
margin-top: var(--primitive-spacing-24);
|
|
171
171
|
}
|
|
172
|
-
.slider.horizontal:global(.largeText) {
|
|
173
|
-
padding: 0.25rem 0.375rem;
|
|
174
|
-
}
|
|
175
172
|
.slider.vertical {
|
|
176
173
|
padding: 0.375rem 0.5rem;
|
|
177
174
|
min-height: 5rem;
|
package/Steps/Steps.module.css
CHANGED
package/Switch/Switch.module.css
CHANGED
|
@@ -86,7 +86,7 @@ Motion Mixins
|
|
|
86
86
|
position: relative;
|
|
87
87
|
}
|
|
88
88
|
.switch .client {
|
|
89
|
-
border-radius: var(--primitive-radius-
|
|
89
|
+
border-radius: var(--primitive-radius-999);
|
|
90
90
|
width: 2.5rem;
|
|
91
91
|
height: 1.25rem;
|
|
92
92
|
position: relative;
|
|
@@ -106,9 +106,23 @@ Motion Mixins
|
|
|
106
106
|
top: 0.125rem;
|
|
107
107
|
left: 0.125rem;
|
|
108
108
|
}
|
|
109
|
+
.switch:global(.largeText) .client {
|
|
110
|
+
width: 3rem;
|
|
111
|
+
height: 1.5rem;
|
|
112
|
+
}
|
|
113
|
+
.switch:global(.largeText) .icon {
|
|
114
|
+
height: 1.1875rem;
|
|
115
|
+
width: 1.1875rem;
|
|
116
|
+
line-height: 1.5rem;
|
|
117
|
+
top: 0.15625rem;
|
|
118
|
+
left: 0.15625rem;
|
|
119
|
+
}
|
|
109
120
|
.switch.selected .icon {
|
|
110
121
|
left: 1.375rem;
|
|
111
122
|
}
|
|
123
|
+
.switch.selected:global(.largeText) .icon {
|
|
124
|
+
left: 1.65625rem;
|
|
125
|
+
}
|
|
112
126
|
.switch.animated .client {
|
|
113
127
|
transition: background-color 200ms;
|
|
114
128
|
}
|
|
@@ -22,6 +22,9 @@
|
|
|
22
22
|
:global(.enact-locale-right-to-left) .timePicker .pickers .meridiemPicker {
|
|
23
23
|
order: 4;
|
|
24
24
|
}
|
|
25
|
+
.timePicker:global(.largeText) .timeSeparator {
|
|
26
|
+
font-size: var(--primitive-font-size-72);
|
|
27
|
+
}
|
|
25
28
|
.timePicker:global(.neutral) .timeSeparator[disabled] {
|
|
26
29
|
opacity: 1;
|
|
27
30
|
opacity: 0.3;
|
|
@@ -62,6 +62,10 @@
|
|
|
62
62
|
:global(.enact-locale-ja) .tooltip .tooltipLabel.multi {
|
|
63
63
|
line-break: strict;
|
|
64
64
|
}
|
|
65
|
+
.tooltip:global(.largeText) .tooltipLabel {
|
|
66
|
+
font-size: var(--primitive-font-size-66);
|
|
67
|
+
line-height: 1.75rem;
|
|
68
|
+
}
|
|
65
69
|
.tooltip.balloon {
|
|
66
70
|
/* Needed to prevent global class being added in the DOM */
|
|
67
71
|
}
|
|
@@ -14,6 +14,9 @@
|
|
|
14
14
|
font-size: var(--primitive-font-size-54);
|
|
15
15
|
margin-bottom: var(--primitive-spacing-30);
|
|
16
16
|
}
|
|
17
|
+
:global(.largeText) .feedbackTooltip.shift .content {
|
|
18
|
+
font-size: var(--primitive-font-size-56);
|
|
19
|
+
}
|
|
17
20
|
.feedbackTooltip.hidden {
|
|
18
21
|
display: none;
|
|
19
22
|
}
|
|
@@ -61,6 +64,10 @@
|
|
|
61
64
|
font-size: var(--primitive-font-size-48);
|
|
62
65
|
font-weight: var(--primitive-font-weight-regular);
|
|
63
66
|
}
|
|
67
|
+
:global(.largeText) .feedbackTooltip .content {
|
|
68
|
+
font-size: var(--primitive-font-size-58);
|
|
69
|
+
line-height: 1.75rem;
|
|
70
|
+
}
|
|
64
71
|
.feedbackTooltip .alignmentContainer {
|
|
65
72
|
position: relative;
|
|
66
73
|
right: 50%;
|
|
@@ -53,6 +53,14 @@
|
|
|
53
53
|
.titleFrame .infoComponents .fontLgIcons {
|
|
54
54
|
font-family: "LG Icons";
|
|
55
55
|
}
|
|
56
|
+
:global(.largeText) .titleFrame .title {
|
|
57
|
+
font-size: var(--primitive-font-size-108);
|
|
58
|
+
line-height: 3.04167rem;
|
|
59
|
+
}
|
|
60
|
+
:global(.largeText) .titleFrame .infoComponents {
|
|
61
|
+
font-size: var(--primitive-font-size-66);
|
|
62
|
+
line-height: 1.75rem;
|
|
63
|
+
}
|
|
56
64
|
:global(.noAnimation) .titleFrame.hidden {
|
|
57
65
|
transition: none;
|
|
58
66
|
}
|
|
@@ -19,6 +19,9 @@
|
|
|
19
19
|
.dateTime .pickers > *:nth-last-child(2) {
|
|
20
20
|
margin-inline-end: 0;
|
|
21
21
|
}
|
|
22
|
+
.dateTime:global(.largeText) .heading {
|
|
23
|
+
font-size: var(--primitive-font-size-80);
|
|
24
|
+
}
|
|
22
25
|
.dateTime:global(.neutral) .heading {
|
|
23
26
|
color: var(--semantic-color-on-background-main);
|
|
24
27
|
}
|
|
@@ -212,6 +212,28 @@
|
|
|
212
212
|
.picker.large .valueWrapper {
|
|
213
213
|
width: 9.75rem;
|
|
214
214
|
}
|
|
215
|
+
.picker:global(.largeText) .valueWrapper {
|
|
216
|
+
font-size: var(--primitive-font-size-66);
|
|
217
|
+
height: 1.75rem;
|
|
218
|
+
line-height: 1.75rem;
|
|
219
|
+
}
|
|
220
|
+
.picker:global(.largeText).joined .valueWrapper {
|
|
221
|
+
line-height: 1.75rem;
|
|
222
|
+
}
|
|
223
|
+
.picker:global(.largeText).joined.horizontal:not(.arrow) .valueWrapper {
|
|
224
|
+
font-size: var(--primitive-font-size-80);
|
|
225
|
+
height: 2.29167rem;
|
|
226
|
+
line-height: 2.29167rem;
|
|
227
|
+
}
|
|
228
|
+
.picker:global(.largeText).joined.horizontal:not(.arrow) .indicatorContainer .indicator {
|
|
229
|
+
width: calc(0.5rem * 1.2);
|
|
230
|
+
height: calc(0.5rem * 1.2);
|
|
231
|
+
}
|
|
232
|
+
.picker:global(.largeText).joined.vertical .valueWrapper {
|
|
233
|
+
font-size: var(--primitive-font-size-80);
|
|
234
|
+
height: 2.29167rem;
|
|
235
|
+
line-height: 2.29167rem;
|
|
236
|
+
}
|
|
215
237
|
.picker:global(.neutral) {
|
|
216
238
|
color: var(--semantic-color-on-background-main);
|
|
217
239
|
}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@enact/limestone",
|
|
3
|
-
"version": "1.10.
|
|
3
|
+
"version": "1.10.1",
|
|
4
4
|
"description": "Large-screen/TV support library for Enact, containing a variety of UI components.",
|
|
5
5
|
"repository": {
|
|
6
6
|
"type": "git",
|
|
@@ -39,15 +39,15 @@
|
|
|
39
39
|
"screenTypes": "ThemeDecorator/screenTypes.json"
|
|
40
40
|
},
|
|
41
41
|
"dependencies": {
|
|
42
|
-
"@enact/core": "^5.5.
|
|
43
|
-
"@enact/i18n": "^5.5.
|
|
44
|
-
"@enact/spotlight": "^5.5.
|
|
45
|
-
"@enact/ui": "^5.5.
|
|
46
|
-
"@enact/webos": "^5.5.
|
|
47
|
-
"@enovaui/core-tokens": "^0.
|
|
48
|
-
"@enovaui/webos-tokens": "^0.
|
|
42
|
+
"@enact/core": "^5.5.1",
|
|
43
|
+
"@enact/i18n": "^5.5.1",
|
|
44
|
+
"@enact/spotlight": "^5.5.1",
|
|
45
|
+
"@enact/ui": "^5.5.1",
|
|
46
|
+
"@enact/webos": "^5.5.1",
|
|
47
|
+
"@enovaui/core-tokens": "^2.0.0",
|
|
48
|
+
"@enovaui/webos-tokens": "^2.0.0",
|
|
49
49
|
"classnames": "^2.5.1",
|
|
50
|
-
"ilib": "^14.
|
|
50
|
+
"ilib": "^14.22.0",
|
|
51
51
|
"invariant": "^2.2.4",
|
|
52
52
|
"prop-types": "^15.8.1",
|
|
53
53
|
"ramda": "^0.32.0",
|