@enact/limestone 1.10.1 → 1.10.2
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/PULL_REQUEST_TEMPLATE.md +1 -0
- package/ActionGuide/ActionGuide.d.ts +1 -1
- package/ActionGuide/ActionGuide.module.css +3 -0
- package/Alert/Alert.d.ts +9 -0
- package/Alert/Alert.js +63 -21
- package/Alert/Alert.module.css +41 -9
- package/Alert/AlertImage.module.css +5 -1
- package/Alert/tests/Alert-specs.js +6 -2
- package/BodyText/BodyText.d.ts +1 -1
- package/BodyText/BodyText.js +14 -9
- package/BodyText/BodyText.module.css +1 -1
- package/Button/Button.d.ts +3 -3
- package/Button/Button.module.css +14 -28
- package/CHANGELOG.md +48 -1
- package/Card/Card.d.ts +81 -9
- package/Card/Card.js +321 -84
- package/Card/Card.module.css +171 -20
- package/Card/tests/Card-specs.js +100 -0
- package/Checkbox/Checkbox.d.ts +2 -2
- package/Checkbox/Checkbox.module.css +2 -9
- package/CheckboxItem/CheckboxItem.d.ts +8 -1
- package/CheckboxItem/CheckboxItem.js +39 -12
- package/CheckboxItem/CheckboxItem.module.css +228 -4
- package/Chips/Chip.module.css +2 -2
- package/ContextualMenuDecorator/ContextualMenuDecorator.d.ts +2 -2
- package/ContextualPopupDecorator/ContextualPopup.module.css +1 -1
- package/ContextualPopupDecorator/ContextualPopupDecorator.js +2 -4
- package/ContextualPopupDecorator/tests/ContextualPopupDecorator-specs.js +39 -2
- package/Dropdown/Dropdown.d.ts +2 -2
- package/Dropdown/Dropdown.module.css +7 -7
- package/FixedPopupPanels/FixedPopupPanels.d.ts +2 -2
- package/FlexiblePopupPanels/FlexiblePopupPanels.module.css +15 -3
- package/FlexiblePopupPanels/index.d.ts +2 -2
- package/FormCheckboxItem/FormCheckboxItem.d.ts +1 -1
- package/FormCheckboxItem/FormCheckboxItem.js +1 -0
- package/FormCheckboxItem/FormCheckboxItem.module.css +1 -1
- package/Heading/Heading.d.ts +2 -2
- package/Icon/Icon.d.ts +22 -1
- package/Icon/Icon.js +21 -0
- package/Icon/IconList.js +43 -1
- package/IconItem/IconItem.d.ts +2 -2
- package/IconItem/IconItem.module.css +11 -14
- package/Image/Image.d.ts +1 -1
- package/Image/Image.module.css +1 -1
- package/ImageItem/ImageItem.d.ts +2 -2
- package/ImageItem/ImageItem.js +3 -16
- package/ImageItem/ImageItem.module.css +105 -97
- package/ImageItem/tests/ImageItem-specs.js +6 -5
- package/Input/Input.module.css +8 -7
- package/Input/InputField.module.css +4 -4
- package/Input/index.d.ts +1 -1
- package/Input/tests/Input-specs.js +2 -2
- package/Input/tests/InputField-specs.js +1 -1
- package/Item/Item.d.ts +2 -2
- package/Item/Item.module.css +27 -15
- package/KeyGuide/KeyGuide.d.ts +2 -2
- package/MediaOverlay/MediaOverlay.d.ts +2 -2
- package/MediaOverlay/MediaOverlay.module.css +2 -5
- package/MediaPlayer/MediaSlider.module.css +1 -0
- package/MediaPlayer/Times.module.css +1 -1
- package/MediaPlayer/index.d.ts +2 -2
- package/PageViews/PageViews.module.css +2 -1
- package/Panels/Header.module.css +40 -28
- package/Panels/Panel.module.css +1 -1
- package/Panels/index.d.ts +1 -1
- package/Picker/Picker.d.ts +1 -1
- package/Popup/Popup.module.css +4 -1
- package/PopupTabLayout/PopupTabLayout.d.ts +6 -6
- package/PopupTabLayout/PopupTabLayout.module.css +6 -6
- package/ProgressBar/ProgressBar.d.ts +1 -1
- package/ProgressBar/ProgressBar.module.css +12 -12
- package/ProgressBar/ProgressBarTooltip.module.css +7 -7
- package/ProgressButton/ProgressButton.d.ts +2 -2
- package/QuickGuidePanels/QuickGuidePanels.module.css +1 -1
- package/RadioItem/RadioItem.d.ts +1 -1
- package/RadioItem/RadioItem.module.css +18 -20
- package/Scroller/Scroller.d.ts +12 -0
- package/Scroller/Scroller.js +15 -0
- package/Scroller/tests/Scroller-specs.js +29 -0
- package/Scroller/useThemeScroller.js +22 -2
- package/Slider/Slider.d.ts +1 -1
- package/Slider/Slider.module.css +539 -300
- package/Spinner/Spinner.d.ts +1 -1
- package/Spinner/Spinner.module.css +2 -2
- package/Steps/Steps.d.ts +1 -1
- package/Steps/Steps.js +12 -6
- package/Steps/Steps.module.css +16 -2
- package/Switch/Switch.module.css +2 -5
- package/SwitchItem/SwitchItem.d.ts +1 -1
- package/TabLayout/RefocusDecorator.js +1 -1
- package/TabLayout/TabGroup.module.css +12 -6
- package/TabLayout/TabLayout.js +4 -0
- package/ThemeDecorator/ThemeDecorator.d.ts +1 -1
- package/ThemeDecorator/ThemeDecorator.module.css +22 -1
- package/TooltipDecorator/Tooltip.js +68 -7
- package/TooltipDecorator/Tooltip.module.css +40 -23
- package/TooltipDecorator/TooltipDecorator.d.ts +52 -0
- package/TooltipDecorator/TooltipDecorator.js +42 -0
- package/TooltipDecorator/TooltipLabel.js +67 -14
- package/TooltipDecorator/tests/TooltipDecorator-specs.js +46 -0
- package/TooltipDecorator/useTooltip.js +14 -2
- package/VideoPlayer/MediaTitle.module.css +1 -1
- package/VirtualList/VirtualList.d.ts +24 -0
- package/VirtualList/VirtualList.js +30 -0
- package/VirtualList/tests/stickTo-specs.js +115 -0
- package/VirtualList/tests/useEvent-specs.js +39 -0
- package/VirtualList/useEvent.js +45 -10
- package/VirtualList/useThemeVirtualList.js +20 -2
- package/WizardPanels/WizardPanels.module.css +1 -1
- package/fonts/Limestone_Icons.ttf +0 -0
- package/internal/DateComponentPicker/DateComponentPicker.module.css +3 -3
- package/internal/Picker/Picker.js +8 -10
- package/internal/Picker/Picker.module.css +74 -141
- package/package.json +11 -14
- package/styles/color-mixins.less +4 -60
- package/styles/colors-game.less +5 -5
- package/styles/colors.less +9 -10
- package/styles/mixins.less +0 -46
- package/styles/motion-mixins.less +16 -7
- package/styles/motions.less +2 -2
- package/styles/variables.less +71 -46
- package/useScroll/useScroll.js +3 -1
|
@@ -3,6 +3,7 @@
|
|
|
3
3
|
* [ ] I have read and understand the [contribution guide](https://enactjs.com/docs/developer-guide/contributing/)
|
|
4
4
|
* [ ] A [CHANGELOG entry](https://enactjs.com/docs/developer-guide/contributing/changelogs/) is included
|
|
5
5
|
* [ ] At least one test case is included for this feature or bug fix
|
|
6
|
+
* [ ] I have run automated testing and it is passed
|
|
6
7
|
* [ ] Documentation was added or is not needed
|
|
7
8
|
* [ ] This is an API breaking change
|
|
8
9
|
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
// Type definitions for limestone/ActionGuide
|
|
2
2
|
|
|
3
|
-
import { SkinnableProps as limestone_Skinnable_SkinnableProps } from "limestone/Skinnable";
|
|
3
|
+
import { SkinnableProps as limestone_Skinnable_SkinnableProps } from "@enact/limestone/Skinnable";
|
|
4
4
|
import * as React from "react";
|
|
5
5
|
|
|
6
6
|
type Omit<T, K extends keyof T> = Pick<T, Exclude<keyof T, K>>;
|
package/Alert/Alert.d.ts
CHANGED
|
@@ -102,6 +102,15 @@ corresponding internal elements and states of this component.
|
|
|
102
102
|
| "center"
|
|
103
103
|
| "top left"
|
|
104
104
|
| "top right";
|
|
105
|
+
/**
|
|
106
|
+
* Size of the Alert when `type="overlay"` .
|
|
107
|
+
* * `small` - narrow width
|
|
108
|
+
* * `medium` - medium width
|
|
109
|
+
* * `large` - wide width, supports title
|
|
110
|
+
*
|
|
111
|
+
* When omitted, defaults to `medium` when there are exactly 2 buttons, otherwise `small` .
|
|
112
|
+
*/
|
|
113
|
+
size?: "small" | "medium" | "large";
|
|
105
114
|
/**
|
|
106
115
|
* The primary text displayed.
|
|
107
116
|
*
|
package/Alert/Alert.js
CHANGED
|
@@ -24,7 +24,7 @@ var _Popup = _interopRequireDefault(require("../Popup"));
|
|
|
24
24
|
var _AlertImage = _interopRequireDefault(require("./AlertImage"));
|
|
25
25
|
var _AlertModule = _interopRequireDefault(require("./Alert.module.css"));
|
|
26
26
|
var _jsxRuntime = require("react/jsx-runtime");
|
|
27
|
-
var _excluded = ["buttonDirection", "buttons", "contentComponent", "children", "css", "id", "image", "overlayPosition", "title", "type", "style"];
|
|
27
|
+
var _excluded = ["buttonDirection", "buttons", "contentComponent", "children", "css", "id", "image", "overlayPosition", "size", "title", "type", "style"];
|
|
28
28
|
/**
|
|
29
29
|
* Limestone styled modal Alert components.
|
|
30
30
|
*
|
|
@@ -160,6 +160,19 @@ var AlertBase = exports.AlertBase = (0, _kind["default"])({
|
|
|
160
160
|
* @public
|
|
161
161
|
*/
|
|
162
162
|
overlayPosition: _propTypes["default"].oneOf(['bottom left', 'bottom right', 'center', 'top left', 'top right']),
|
|
163
|
+
/**
|
|
164
|
+
* Size of the Alert when `type="overlay"`.
|
|
165
|
+
*
|
|
166
|
+
* * `small` - narrow width
|
|
167
|
+
* * `medium` - medium width
|
|
168
|
+
* * `large` - wide width, supports title
|
|
169
|
+
*
|
|
170
|
+
* When omitted, defaults to `medium` when there are exactly 2 buttons, otherwise `small`.
|
|
171
|
+
*
|
|
172
|
+
* @type {('small'|'medium'|'large')}
|
|
173
|
+
* @public
|
|
174
|
+
*/
|
|
175
|
+
size: _propTypes["default"].oneOf(['small', 'medium', 'large']),
|
|
163
176
|
/**
|
|
164
177
|
* The primary text displayed.
|
|
165
178
|
*
|
|
@@ -217,34 +230,51 @@ var AlertBase = exports.AlertBase = (0, _kind["default"])({
|
|
|
217
230
|
}
|
|
218
231
|
},
|
|
219
232
|
className: function className(_ref3) {
|
|
220
|
-
var
|
|
233
|
+
var buttons = _ref3.buttons,
|
|
234
|
+
buttonDirection = _ref3.buttonDirection,
|
|
235
|
+
image = _ref3.image,
|
|
236
|
+
size = _ref3.size,
|
|
221
237
|
type = _ref3.type,
|
|
222
238
|
styler = _ref3.styler;
|
|
239
|
+
var buttonCount = _react.Children.toArray(buttons).filter(Boolean).length;
|
|
240
|
+
var resolvedSize = size || (buttonDirection !== 'vertical' && buttonCount === 2 ? 'medium' : 'small');
|
|
241
|
+
var resolvedButtonDirection = buttonDirection;
|
|
242
|
+
if (buttonDirection === 'auto') {
|
|
243
|
+
var useHorizontal = type === 'overlay' && buttonCount === 2 || type === 'fullscreen' && buttonCount < 4;
|
|
244
|
+
resolvedButtonDirection = useHorizontal ? 'horizontal' : 'vertical';
|
|
245
|
+
}
|
|
223
246
|
return styler.append({
|
|
224
247
|
noImage: !image
|
|
225
|
-
}, type);
|
|
248
|
+
}, resolvedSize, type, resolvedButtonDirection);
|
|
249
|
+
},
|
|
250
|
+
size: function size(_ref4) {
|
|
251
|
+
var buttons = _ref4.buttons,
|
|
252
|
+
buttonDirection = _ref4.buttonDirection,
|
|
253
|
+
_size = _ref4.size;
|
|
254
|
+
return _size || (buttonDirection !== 'vertical' && _react.Children.toArray(buttons).filter(Boolean).length === 2 ? 'medium' : 'small');
|
|
226
255
|
}
|
|
227
256
|
},
|
|
228
|
-
render: function render(
|
|
229
|
-
var buttonDirection =
|
|
230
|
-
buttons =
|
|
231
|
-
contentComponent =
|
|
232
|
-
children =
|
|
233
|
-
css =
|
|
234
|
-
id =
|
|
235
|
-
image =
|
|
236
|
-
overlayPosition =
|
|
237
|
-
|
|
238
|
-
|
|
239
|
-
|
|
240
|
-
|
|
257
|
+
render: function render(_ref5) {
|
|
258
|
+
var buttonDirection = _ref5.buttonDirection,
|
|
259
|
+
buttons = _ref5.buttons,
|
|
260
|
+
contentComponent = _ref5.contentComponent,
|
|
261
|
+
children = _ref5.children,
|
|
262
|
+
css = _ref5.css,
|
|
263
|
+
id = _ref5.id,
|
|
264
|
+
image = _ref5.image,
|
|
265
|
+
overlayPosition = _ref5.overlayPosition,
|
|
266
|
+
size = _ref5.size,
|
|
267
|
+
title = _ref5.title,
|
|
268
|
+
type = _ref5.type,
|
|
269
|
+
style = _ref5.style,
|
|
270
|
+
rest = _objectWithoutProperties(_ref5, _excluded);
|
|
241
271
|
var fullscreen = type === 'fullscreen';
|
|
242
272
|
var position = type === 'overlay' ? overlayPosition : type;
|
|
243
|
-
var showTitle = fullscreen && title;
|
|
244
273
|
var buttonCount = _react.Children.toArray(buttons).filter(Boolean).length;
|
|
274
|
+
var showTitle = (fullscreen || size === 'large') && title;
|
|
245
275
|
var resolvedButtonDirection = buttonDirection;
|
|
246
276
|
if (buttonDirection === 'auto') {
|
|
247
|
-
var useHorizontal = type === 'overlay' && buttonCount === 2 || type === 'fullscreen' && buttonCount <
|
|
277
|
+
var useHorizontal = type === 'overlay' && buttonCount === 2 || type === 'fullscreen' && buttonCount < 4;
|
|
248
278
|
resolvedButtonDirection = useHorizontal ? 'horizontal' : 'vertical';
|
|
249
279
|
}
|
|
250
280
|
var overlayHorizontalButtons = type === 'overlay' && resolvedButtonDirection === 'horizontal';
|
|
@@ -256,6 +286,9 @@ var AlertBase = exports.AlertBase = (0, _kind["default"])({
|
|
|
256
286
|
});
|
|
257
287
|
}
|
|
258
288
|
var ariaLabelledBy = (showTitle ? "".concat(id, "_title ") : '') + "".concat(id, "_content ").concat(id, "_buttons");
|
|
289
|
+
var resolvedImage = (image === null || image === void 0 ? void 0 : image.props.type) === "thumbnail" ? /*#__PURE__*/(0, _react.cloneElement)(image, {
|
|
290
|
+
iconSize: !fullscreen && size === 'large' ? 'large' : 'small'
|
|
291
|
+
}) : null;
|
|
259
292
|
return /*#__PURE__*/(0, _jsxRuntime.jsx)("div", {
|
|
260
293
|
"aria-owns": id,
|
|
261
294
|
className: css.alertWrapper,
|
|
@@ -269,11 +302,20 @@ var AlertBase = exports.AlertBase = (0, _kind["default"])({
|
|
|
269
302
|
children: /*#__PURE__*/(0, _jsxRuntime.jsxs)(_Layout["default"], {
|
|
270
303
|
align: "center center",
|
|
271
304
|
orientation: "vertical",
|
|
272
|
-
children: [
|
|
305
|
+
children: [showTitle && !fullscreen ? /*#__PURE__*/(0, _jsxRuntime.jsx)(_Layout.Cell, {
|
|
306
|
+
shrink: true,
|
|
307
|
+
align: "stretch",
|
|
308
|
+
children: /*#__PURE__*/(0, _jsxRuntime.jsx)(_Heading["default"], {
|
|
309
|
+
size: "title",
|
|
310
|
+
className: css.title,
|
|
311
|
+
id: "".concat(id, "_title"),
|
|
312
|
+
children: title
|
|
313
|
+
})
|
|
314
|
+
}) : null, resolvedImage || image ? /*#__PURE__*/(0, _jsxRuntime.jsx)(_Layout.Cell, {
|
|
273
315
|
shrink: true,
|
|
274
316
|
className: css.alertImage,
|
|
275
|
-
children: image
|
|
276
|
-
}) : null, showTitle ? /*#__PURE__*/(0, _jsxRuntime.jsx)(_Layout.Cell, {
|
|
317
|
+
children: resolvedImage || image
|
|
318
|
+
}) : null, showTitle && fullscreen ? /*#__PURE__*/(0, _jsxRuntime.jsx)(_Layout.Cell, {
|
|
277
319
|
shrink: true,
|
|
278
320
|
children: /*#__PURE__*/(0, _jsxRuntime.jsx)(_Heading["default"], {
|
|
279
321
|
size: "title",
|
package/Alert/Alert.module.css
CHANGED
|
@@ -1,9 +1,22 @@
|
|
|
1
1
|
.alertWrapper {
|
|
2
2
|
display: inline;
|
|
3
3
|
}
|
|
4
|
+
.alert .title {
|
|
5
|
+
font-family: "Limestone Title", "Limestone";
|
|
6
|
+
}
|
|
4
7
|
.alert.noImage {
|
|
5
8
|
/* Needed to prevent global class being added in the DOM */
|
|
6
9
|
}
|
|
10
|
+
.alert.horizontal .button {
|
|
11
|
+
margin-top: 0;
|
|
12
|
+
margin-bottom: 0;
|
|
13
|
+
}
|
|
14
|
+
.alert.vertical .buttonCell:first-child .button {
|
|
15
|
+
margin-top: 0;
|
|
16
|
+
}
|
|
17
|
+
.alert.vertical .buttonCell:last-child .button {
|
|
18
|
+
margin-bottom: 0;
|
|
19
|
+
}
|
|
7
20
|
.alert.fullscreen .alertImage {
|
|
8
21
|
margin-bottom: var(--primitive-spacing-60);
|
|
9
22
|
}
|
|
@@ -28,30 +41,30 @@
|
|
|
28
41
|
font-size: var(--primitive-font-size-108);
|
|
29
42
|
}
|
|
30
43
|
.alert.fullscreen .buttonContainer {
|
|
31
|
-
margin-top: var(--primitive-spacing-
|
|
44
|
+
margin-top: var(--primitive-spacing-120);
|
|
32
45
|
}
|
|
33
46
|
.alert.overlay {
|
|
34
47
|
overflow: hidden;
|
|
35
48
|
}
|
|
36
49
|
.alert.overlay .alertImage {
|
|
37
50
|
margin-bottom: var(--primitive-spacing-36);
|
|
38
|
-
padding: 0 var(--primitive-spacing-
|
|
51
|
+
padding: 0 var(--primitive-spacing-90);
|
|
39
52
|
}
|
|
40
53
|
.alert.overlay .buttonContainer {
|
|
41
54
|
box-sizing: border-box;
|
|
42
|
-
margin-top: var(--primitive-spacing-
|
|
43
|
-
padding: 0 var(--primitive-spacing-
|
|
55
|
+
margin-top: var(--primitive-spacing-72);
|
|
56
|
+
padding: 0 var(--primitive-spacing-90);
|
|
44
57
|
}
|
|
45
58
|
.alert.overlay .content {
|
|
46
59
|
align-self: stretch;
|
|
47
60
|
font-family: "Limestone";
|
|
48
|
-
line-height: 1.
|
|
61
|
+
line-height: 1.34em;
|
|
49
62
|
font-weight: var(--primitive-font-weight-semibold);
|
|
50
63
|
font-size: var(--primitive-font-size-60);
|
|
51
64
|
text-align: initial;
|
|
52
65
|
overflow-wrap: break-word;
|
|
53
66
|
word-break: keep-all;
|
|
54
|
-
padding: 0 var(--primitive-spacing-
|
|
67
|
+
padding: 0 var(--primitive-spacing-90);
|
|
55
68
|
margin: 0;
|
|
56
69
|
max-width: var(--alert-overlay-content-max-width, 23.5rem);
|
|
57
70
|
}
|
|
@@ -78,13 +91,24 @@
|
|
|
78
91
|
overflow-wrap: normal;
|
|
79
92
|
word-break: normal;
|
|
80
93
|
}
|
|
94
|
+
.alert.overlay:global(.largeText) .content {
|
|
95
|
+
font-size: var(--primitive-font-size-72);
|
|
96
|
+
}
|
|
97
|
+
.alert.overlay.large .title {
|
|
98
|
+
margin: 0 0 var(--primitive-spacing-36) 0;
|
|
99
|
+
padding: 0 var(--primitive-spacing-90);
|
|
100
|
+
font-size: var(--primitive-font-size-90);
|
|
101
|
+
}
|
|
102
|
+
:global(.enact-locale-non-latin) .alert.overlay.large .title {
|
|
103
|
+
font-size: var(--primitive-font-size-108);
|
|
104
|
+
}
|
|
81
105
|
.popup.overlay {
|
|
82
106
|
box-sizing: border-box;
|
|
83
107
|
--alert-overlay-horizontal-button-count: 1;
|
|
84
|
-
--alert-overlay-horizontal-button-width:
|
|
108
|
+
--alert-overlay-horizontal-button-width: calc(840px + (2 * var(--primitive-spacing-36)));
|
|
85
109
|
--alert-overlay-horizontal-buttons-total-width: calc(var(--alert-overlay-horizontal-button-width) * var(--alert-overlay-horizontal-button-count));
|
|
86
110
|
--alert-overlay-width: max(1128px, var(--alert-overlay-horizontal-buttons-total-width));
|
|
87
|
-
--alert-overlay-content-horizontal-padding: var(--primitive-spacing-
|
|
111
|
+
--alert-overlay-content-horizontal-padding: var(--primitive-spacing-90);
|
|
88
112
|
--alert-overlay-content-max-width: calc(var(--alert-overlay-width) - (2 * var(--alert-overlay-content-horizontal-padding)));
|
|
89
113
|
width: var(--alert-overlay-width);
|
|
90
114
|
min-width: 23.5rem;
|
|
@@ -93,9 +117,17 @@
|
|
|
93
117
|
margin-right: auto;
|
|
94
118
|
}
|
|
95
119
|
.popup.overlay .body {
|
|
96
|
-
padding: var(--primitive-spacing-
|
|
120
|
+
padding: var(--primitive-spacing-90) 0;
|
|
97
121
|
max-height: 42.25rem;
|
|
98
122
|
}
|
|
123
|
+
.popup.overlay.medium {
|
|
124
|
+
--alert-overlay-width: max(1656px, var(--alert-overlay-horizontal-buttons-total-width));
|
|
125
|
+
min-width: 34.5rem;
|
|
126
|
+
}
|
|
127
|
+
.popup.overlay.large {
|
|
128
|
+
--alert-overlay-width: max(2184px, var(--alert-overlay-horizontal-buttons-total-width));
|
|
129
|
+
min-width: 45.5rem;
|
|
130
|
+
}
|
|
99
131
|
.popup:global(.neutral) {
|
|
100
132
|
background-color: var(--semantic-color-background-full-default);
|
|
101
133
|
}
|
|
@@ -102,7 +102,7 @@ describe('Alert', function () {
|
|
|
102
102
|
var expectedClass = 'thumbnail';
|
|
103
103
|
expect(image).toHaveClass(expectedClass);
|
|
104
104
|
});
|
|
105
|
-
test('should align buttons horizontally by default in fullscreen when button count is less than
|
|
105
|
+
test('should align buttons horizontally by default in fullscreen when button count is less than 4', function () {
|
|
106
106
|
(0, _react.render)(/*#__PURE__*/(0, _jsxRuntime.jsx)(FloatingLayerController, {
|
|
107
107
|
children: /*#__PURE__*/(0, _jsxRuntime.jsx)(_Alert.Alert, {
|
|
108
108
|
open: true,
|
|
@@ -111,6 +111,8 @@ describe('Alert', function () {
|
|
|
111
111
|
children: "yes"
|
|
112
112
|
}), /*#__PURE__*/(0, _jsxRuntime.jsx)(_Button["default"], {
|
|
113
113
|
children: "no"
|
|
114
|
+
}), /*#__PURE__*/(0, _jsxRuntime.jsx)(_Button["default"], {
|
|
115
|
+
children: "maybe"
|
|
114
116
|
})]
|
|
115
117
|
})
|
|
116
118
|
})
|
|
@@ -119,7 +121,7 @@ describe('Alert', function () {
|
|
|
119
121
|
var buttonsLayout = alert.querySelector('[id$="_buttons"]');
|
|
120
122
|
expect(buttonsLayout).toHaveClass('horizontal');
|
|
121
123
|
});
|
|
122
|
-
test('should align buttons vertically by default in fullscreen when button count is
|
|
124
|
+
test('should align buttons vertically by default in fullscreen when button count is 4', function () {
|
|
123
125
|
(0, _react.render)(/*#__PURE__*/(0, _jsxRuntime.jsx)(FloatingLayerController, {
|
|
124
126
|
children: /*#__PURE__*/(0, _jsxRuntime.jsx)(_Alert.Alert, {
|
|
125
127
|
open: true,
|
|
@@ -128,6 +130,8 @@ describe('Alert', function () {
|
|
|
128
130
|
children: "yes"
|
|
129
131
|
}), /*#__PURE__*/(0, _jsxRuntime.jsx)(_Button["default"], {
|
|
130
132
|
children: "no"
|
|
133
|
+
}), /*#__PURE__*/(0, _jsxRuntime.jsx)(_Button["default"], {
|
|
134
|
+
children: "maybe"
|
|
131
135
|
}), /*#__PURE__*/(0, _jsxRuntime.jsx)(_Button["default"], {
|
|
132
136
|
children: "later"
|
|
133
137
|
})]
|
package/BodyText/BodyText.d.ts
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
// Type definitions for limestone/BodyText
|
|
2
2
|
|
|
3
|
-
import { SkinnableProps as limestone_Skinnable_SkinnableProps } from "limestone/Skinnable";
|
|
3
|
+
import { SkinnableProps as limestone_Skinnable_SkinnableProps } from "@enact/limestone/Skinnable";
|
|
4
4
|
import { BodyTextProps as ui_BodyText_BodyTextProps } from "@enact/ui/BodyText";
|
|
5
5
|
import * as React from "react";
|
|
6
6
|
|
package/BodyText/BodyText.js
CHANGED
|
@@ -101,20 +101,25 @@ var BodyTextBase = exports.BodyTextBase = (0, _kind["default"])({
|
|
|
101
101
|
publicClassNames: 'bodyText'
|
|
102
102
|
},
|
|
103
103
|
computed: {
|
|
104
|
-
|
|
105
|
-
var
|
|
106
|
-
|
|
107
|
-
|
|
104
|
+
children: function children(_ref) {
|
|
105
|
+
var _children = _ref.children,
|
|
106
|
+
noWrap = _ref.noWrap;
|
|
107
|
+
return noWrap ? _children === null || _children === void 0 ? void 0 : _children.replaceAll('\n', ' ') : _children;
|
|
108
|
+
},
|
|
109
|
+
className: function className(_ref2) {
|
|
110
|
+
var noWrap = _ref2.noWrap,
|
|
111
|
+
size = _ref2.size,
|
|
112
|
+
styler = _ref2.styler;
|
|
108
113
|
return styler.append(size, {
|
|
109
114
|
noWrap: noWrap
|
|
110
115
|
});
|
|
111
116
|
}
|
|
112
117
|
},
|
|
113
|
-
render: function render(
|
|
114
|
-
var centered =
|
|
115
|
-
css =
|
|
116
|
-
noWrap =
|
|
117
|
-
rest = _objectWithoutProperties(
|
|
118
|
+
render: function render(_ref3) {
|
|
119
|
+
var centered = _ref3.centered,
|
|
120
|
+
css = _ref3.css,
|
|
121
|
+
noWrap = _ref3.noWrap,
|
|
122
|
+
rest = _objectWithoutProperties(_ref3, _excluded);
|
|
118
123
|
delete rest.size;
|
|
119
124
|
if (noWrap) {
|
|
120
125
|
return /*#__PURE__*/(0, _jsxRuntime.jsx)(MarqueeBodyText, _objectSpread(_objectSpread({
|
|
@@ -3,7 +3,7 @@
|
|
|
3
3
|
font-size: var(--primitive-font-size-60);
|
|
4
4
|
font-style: normal;
|
|
5
5
|
font-family: "Limestone";
|
|
6
|
-
line-height: 1.
|
|
6
|
+
line-height: 1.34em;
|
|
7
7
|
margin: 0 var(--primitive-spacing-36) var(--primitive-font-size-60) var(--primitive-spacing-36);
|
|
8
8
|
padding: 0;
|
|
9
9
|
white-space: normal;
|
package/Button/Button.d.ts
CHANGED
|
@@ -1,10 +1,10 @@
|
|
|
1
1
|
// Type definitions for limestone/Button
|
|
2
2
|
|
|
3
|
-
import { TooltipDecoratorProps as limestone_TooltipDecorator_TooltipDecoratorProps } from "limestone/TooltipDecorator";
|
|
4
|
-
import { MarqueeDecoratorProps as limestone_Marquee_MarqueeDecoratorProps } from "limestone/Marquee";
|
|
3
|
+
import { TooltipDecoratorProps as limestone_TooltipDecorator_TooltipDecoratorProps } from "@enact/limestone/TooltipDecorator";
|
|
4
|
+
import { MarqueeDecoratorProps as limestone_Marquee_MarqueeDecoratorProps } from "@enact/limestone/Marquee";
|
|
5
5
|
import { ButtonDecoratorProps as ui_Button_ButtonDecoratorProps } from "@enact/ui/Button";
|
|
6
6
|
import { SpottableProps as spotlight_Spottable_SpottableProps } from "@enact/spotlight/Spottable";
|
|
7
|
-
import { SkinnableProps as limestone_Skinnable_SkinnableProps } from "limestone/Skinnable";
|
|
7
|
+
import { SkinnableProps as limestone_Skinnable_SkinnableProps } from "@enact/limestone/Skinnable";
|
|
8
8
|
import { ButtonBaseProps as ui_Button_ButtonBaseProps } from "@enact/ui/Button";
|
|
9
9
|
import * as React from "react";
|
|
10
10
|
|
package/Button/Button.module.css
CHANGED
|
@@ -34,8 +34,8 @@ Animations properties
|
|
|
34
34
|
--lime-bounce-motion-easing-function: var(--lime-default-motion-easing-function);
|
|
35
35
|
--lime-focus-in-motion-easing-function: var(--lime-EIO-motion-easing-function);
|
|
36
36
|
--lime-focus-out-motion-easing-function: var(--lime-EO-motion-easing-function);
|
|
37
|
-
--lime-press-motion-easing-function: var(--lime-
|
|
38
|
-
--lime-release-motion-easing-function: var(--lime-
|
|
37
|
+
--lime-press-motion-easing-function: var(--lime-EO-motion-easing-function);
|
|
38
|
+
--lime-release-motion-easing-function: var(--lime-EIO-motion-easing-function);
|
|
39
39
|
/* ---------------------------------------
|
|
40
40
|
Keyframes names
|
|
41
41
|
------------------------------------------ */
|
|
@@ -76,9 +76,6 @@ Keyframes
|
|
|
76
76
|
}
|
|
77
77
|
}
|
|
78
78
|
/* ---------------------------------------
|
|
79
|
-
Motion Variables
|
|
80
|
-
------------------------------------------ */
|
|
81
|
-
/* ---------------------------------------
|
|
82
79
|
Motion Mixins
|
|
83
80
|
------------------------------------------ */
|
|
84
81
|
.button {
|
|
@@ -109,7 +106,6 @@ Motion Mixins
|
|
|
109
106
|
.button:global(.largeText) {
|
|
110
107
|
font-size: var(--primitive-font-size-72);
|
|
111
108
|
height: 2.75rem;
|
|
112
|
-
min-width: 2.75rem;
|
|
113
109
|
line-height: 2.5rem;
|
|
114
110
|
--button-height: 2.75rem;
|
|
115
111
|
}
|
|
@@ -361,13 +357,9 @@ Motion Mixins
|
|
|
361
357
|
.button.small:global(.largeText) {
|
|
362
358
|
font-size: var(--primitive-font-size-66);
|
|
363
359
|
height: 2.25rem;
|
|
364
|
-
min-width: 2.25rem;
|
|
365
360
|
line-height: 2rem;
|
|
366
361
|
--button-height: 2.25rem;
|
|
367
362
|
}
|
|
368
|
-
.button.small:global(.largeText).minWidth {
|
|
369
|
-
min-width: 15rem;
|
|
370
|
-
}
|
|
371
363
|
.button.small:global(.largeText).red .client::before,
|
|
372
364
|
.button.small:global(.largeText).green .client::before,
|
|
373
365
|
.button.small:global(.largeText).yellow .client::before,
|
|
@@ -385,9 +377,6 @@ Motion Mixins
|
|
|
385
377
|
.button.iconOnly {
|
|
386
378
|
min-width: 2.75rem;
|
|
387
379
|
}
|
|
388
|
-
.button.iconOnly:global(.largeText) {
|
|
389
|
-
min-width: 2.75rem;
|
|
390
|
-
}
|
|
391
380
|
.button.iconOnly .client {
|
|
392
381
|
padding: 0;
|
|
393
382
|
}
|
|
@@ -413,9 +402,6 @@ Motion Mixins
|
|
|
413
402
|
padding-left: 0.375rem;
|
|
414
403
|
padding-right: 0.375rem;
|
|
415
404
|
}
|
|
416
|
-
.button.iconOnly.small:global(.largeText) {
|
|
417
|
-
min-width: 2.25rem;
|
|
418
|
-
}
|
|
419
405
|
.button.iconOnly.iconAfter .icon,
|
|
420
406
|
.button.iconOnly.iconBefore .icon,
|
|
421
407
|
.button.iconOnly.large .icon,
|
|
@@ -1485,12 +1471,12 @@ Motion Mixins
|
|
|
1485
1471
|
transition: transform var(--lime-focus-out-motion-duration) var(--lime-focus-out-motion-easing-function);
|
|
1486
1472
|
border-width: 0.125rem;
|
|
1487
1473
|
border-style: solid;
|
|
1488
|
-
border-color:
|
|
1474
|
+
border-color: rgba(162, 115, 200, 0.5);
|
|
1489
1475
|
border-radius: 0;
|
|
1490
1476
|
}
|
|
1491
1477
|
.button:global(.game).bordered .bg {
|
|
1492
1478
|
background-color: color(from var(--semantic-color-surface-default) srgb r g b / 0.5);
|
|
1493
|
-
border: 0.125rem solid
|
|
1479
|
+
border: 0.125rem solid rgba(162, 115, 200, 0.5);
|
|
1494
1480
|
}
|
|
1495
1481
|
.button:global(.game).bordered .client {
|
|
1496
1482
|
color: var(--semantic-color-on-surface-main);
|
|
@@ -1617,7 +1603,7 @@ Motion Mixins
|
|
|
1617
1603
|
}
|
|
1618
1604
|
:global(.spotlight-input-key) .button:global(.game):global(.spottable):focus.iconOnly .bg,
|
|
1619
1605
|
:global(.spotlight-input-mouse) .button:global(.game):global(.spottable):focus.iconOnly .bg {
|
|
1620
|
-
background-color:
|
|
1606
|
+
background-color: rgba(139, 49, 215, 0.5);
|
|
1621
1607
|
}
|
|
1622
1608
|
:global(.spotlight-input-key) .button:global(.game):global(.spottable):focus.focusExpand .bg,
|
|
1623
1609
|
:global(.spotlight-input-mouse) .button:global(.game):global(.spottable):focus.focusExpand .bg {
|
|
@@ -1661,7 +1647,7 @@ Motion Mixins
|
|
|
1661
1647
|
text-shadow: none;
|
|
1662
1648
|
}
|
|
1663
1649
|
:global(.spotlight-input-touch) .button:global(.game):global(.spottable):active.iconOnly .bg {
|
|
1664
|
-
background-color:
|
|
1650
|
+
background-color: rgba(139, 49, 215, 0.5);
|
|
1665
1651
|
}
|
|
1666
1652
|
:global(.spotlight-input-touch) .button:global(.game):global(.spottable):active.focusExpand .bg {
|
|
1667
1653
|
transform: scale(1.1);
|
|
@@ -1824,12 +1810,12 @@ Motion Mixins
|
|
|
1824
1810
|
transition: transform var(--lime-focus-out-motion-duration) var(--lime-focus-out-motion-easing-function);
|
|
1825
1811
|
border-width: 0.125rem;
|
|
1826
1812
|
border-style: solid;
|
|
1827
|
-
border-color:
|
|
1813
|
+
border-color: rgba(0, 255, 194, 0.5);
|
|
1828
1814
|
border-radius: 0;
|
|
1829
1815
|
}
|
|
1830
1816
|
:global(.green) .button:global(.game).bordered .bg {
|
|
1831
1817
|
background-color: color(from var(--semantic-color-surface-default) srgb r g b / 0.5);
|
|
1832
|
-
border: 0.125rem solid
|
|
1818
|
+
border: 0.125rem solid rgba(0, 255, 194, 0.5);
|
|
1833
1819
|
}
|
|
1834
1820
|
:global(.green) .button:global(.game).bordered .client {
|
|
1835
1821
|
color: var(--semantic-color-on-surface-main);
|
|
@@ -1956,7 +1942,7 @@ Motion Mixins
|
|
|
1956
1942
|
}
|
|
1957
1943
|
:global(.spotlight-input-key) :global(.green) .button:global(.game):global(.spottable):focus.iconOnly .bg,
|
|
1958
1944
|
:global(.spotlight-input-mouse) :global(.green) .button:global(.game):global(.spottable):focus.iconOnly .bg {
|
|
1959
|
-
background-color:
|
|
1945
|
+
background-color: rgba(69, 193, 148, 0.5);
|
|
1960
1946
|
}
|
|
1961
1947
|
:global(.spotlight-input-key) :global(.green) .button:global(.game):global(.spottable):focus.focusExpand .bg,
|
|
1962
1948
|
:global(.spotlight-input-mouse) :global(.green) .button:global(.game):global(.spottable):focus.focusExpand .bg {
|
|
@@ -2000,7 +1986,7 @@ Motion Mixins
|
|
|
2000
1986
|
text-shadow: none;
|
|
2001
1987
|
}
|
|
2002
1988
|
:global(.spotlight-input-touch) :global(.green) .button:global(.game):global(.spottable):active.iconOnly .bg {
|
|
2003
|
-
background-color:
|
|
1989
|
+
background-color: rgba(69, 193, 148, 0.5);
|
|
2004
1990
|
}
|
|
2005
1991
|
:global(.spotlight-input-touch) :global(.green) .button:global(.game):global(.spottable):active.focusExpand .bg {
|
|
2006
1992
|
transform: scale(1.1);
|
|
@@ -2163,12 +2149,12 @@ Motion Mixins
|
|
|
2163
2149
|
transition: transform var(--lime-focus-out-motion-duration) var(--lime-focus-out-motion-easing-function);
|
|
2164
2150
|
border-width: 0.125rem;
|
|
2165
2151
|
border-style: solid;
|
|
2166
|
-
border-color:
|
|
2152
|
+
border-color: rgba(235, 94, 0, 0.5);
|
|
2167
2153
|
border-radius: 0;
|
|
2168
2154
|
}
|
|
2169
2155
|
:global(.orange) .button:global(.game).bordered .bg {
|
|
2170
2156
|
background-color: color(from var(--semantic-color-surface-default) srgb r g b / 0.5);
|
|
2171
|
-
border: 0.125rem solid
|
|
2157
|
+
border: 0.125rem solid rgba(235, 94, 0, 0.5);
|
|
2172
2158
|
}
|
|
2173
2159
|
:global(.orange) .button:global(.game).bordered .client {
|
|
2174
2160
|
color: var(--semantic-color-on-surface-main);
|
|
@@ -2295,7 +2281,7 @@ Motion Mixins
|
|
|
2295
2281
|
}
|
|
2296
2282
|
:global(.spotlight-input-key) :global(.orange) .button:global(.game):global(.spottable):focus.iconOnly .bg,
|
|
2297
2283
|
:global(.spotlight-input-mouse) :global(.orange) .button:global(.game):global(.spottable):focus.iconOnly .bg {
|
|
2298
|
-
background-color:
|
|
2284
|
+
background-color: rgba(215, 84, 49, 0.5);
|
|
2299
2285
|
}
|
|
2300
2286
|
:global(.spotlight-input-key) :global(.orange) .button:global(.game):global(.spottable):focus.focusExpand .bg,
|
|
2301
2287
|
:global(.spotlight-input-mouse) :global(.orange) .button:global(.game):global(.spottable):focus.focusExpand .bg {
|
|
@@ -2339,7 +2325,7 @@ Motion Mixins
|
|
|
2339
2325
|
text-shadow: none;
|
|
2340
2326
|
}
|
|
2341
2327
|
:global(.spotlight-input-touch) :global(.orange) .button:global(.game):global(.spottable):active.iconOnly .bg {
|
|
2342
|
-
background-color:
|
|
2328
|
+
background-color: rgba(215, 84, 49, 0.5);
|
|
2343
2329
|
}
|
|
2344
2330
|
:global(.spotlight-input-touch) :global(.orange) .button:global(.game):global(.spottable):active.focusExpand .bg {
|
|
2345
2331
|
transform: scale(1.1);
|
package/CHANGELOG.md
CHANGED
|
@@ -2,7 +2,54 @@
|
|
|
2
2
|
|
|
3
3
|
The following is a curated list of changes in the Enact limestone module, newest changes on the top.
|
|
4
4
|
|
|
5
|
-
## [1.10.
|
|
5
|
+
## [1.10.2] - 2026-07-09
|
|
6
|
+
|
|
7
|
+
### Added
|
|
8
|
+
|
|
9
|
+
- `limestone/Alert` `size` prop for overlay type
|
|
10
|
+
- `limestone/Alert` styling to match the latest GUI
|
|
11
|
+
- `limestone/Input` `title` to use the `LGSmart UI 3.0 Title` font,
|
|
12
|
+
- `limestone/Icon` supported icon list, adding new icons `smartmode`, `databackup`, `deleteviewinginfo`, `lgmembers`, `manage`, `pay`, `paymentmethod`, `productregistration`, `purchased`, `rate`, `report`, `security`, `subscriptions`, `terminatemyaccount`, `update`, `usagecare`, `voucher`, `filter`, `ezsetting`, `fitness`, and `auracast2`
|
|
13
|
+
- `limestone/Panels.Header` `title` to use the `LGSmart UI 3.0 Title` font
|
|
14
|
+
- `limestone/Scroller` prop `stickTo` to allow the scroller to stick to a specific element
|
|
15
|
+
- `limestone/VirtualGridList` prop `stickTo` to allow the scroller to stick to a specific element
|
|
16
|
+
- `limestone/VirtualList` prop `stickTo` to allow the scroller to stick to a specific element
|
|
17
|
+
|
|
18
|
+
### Changed
|
|
19
|
+
|
|
20
|
+
- `limestone/Alert` styling to match the latest GUI
|
|
21
|
+
- `limestone/Button` styling to match the latest GUI
|
|
22
|
+
- `limestone/Card` styling to match the latest GUI
|
|
23
|
+
- `limestone/IconItem` press/release motion to match the latest motion guide
|
|
24
|
+
- `limestone/ImageItem` styling to match the latest GUI
|
|
25
|
+
- `limestone/Item` styling to match the latest GUI
|
|
26
|
+
- `limestone/Picker` to use `Steps` instead of own indicator
|
|
27
|
+
- `limestone/Popup` styling to match the latest GUI
|
|
28
|
+
- `limestone/ProgressBar` styling to match the latest GUI
|
|
29
|
+
- `limestone/Slider` press/release motion to match the latest motion guide
|
|
30
|
+
- `limestone/Slider` styling to match the latest GUI
|
|
31
|
+
- `limestone/Steps` styling to match the latest GUI
|
|
32
|
+
- `limestone/TabLayout` styling to match the latest GUI
|
|
33
|
+
- `limestone/Tooltip` styling to match the latest GUI
|
|
34
|
+
|
|
35
|
+
### Fixed
|
|
36
|
+
|
|
37
|
+
- `limestone/Bodytext` to properly display marquee when `noWrap` is true
|
|
38
|
+
- `limestone/Card` styling when both `hasContainer` and `captionOverlayOnFocus` are true
|
|
39
|
+
- `limestone/ContextualPopupDecorator` to remove global key listeners on unmount when popup is open
|
|
40
|
+
- `limestone/TabLayout` isomorphic build
|
|
41
|
+
- `limestone/VirtualList` focus jump and scroll freeze when scrolled by long press
|
|
42
|
+
- `limestone/WizardPanels` header to maintain the same height when there is no title
|
|
43
|
+
|
|
44
|
+
## [1.10.1] - 2026-06-01
|
|
45
|
+
|
|
46
|
+
### Deprecated
|
|
47
|
+
|
|
48
|
+
- `limestone/FormCheckboxItem` to be removed in 2.0.0
|
|
49
|
+
|
|
50
|
+
### Added
|
|
51
|
+
|
|
52
|
+
- `limestone/CheckboxItem` `formCheckbox` prop to mirror the behaviour of `FormCheckboxItem`
|
|
6
53
|
|
|
7
54
|
### Changed
|
|
8
55
|
|