@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.
Files changed (122) hide show
  1. package/.github/PULL_REQUEST_TEMPLATE.md +1 -0
  2. package/ActionGuide/ActionGuide.d.ts +1 -1
  3. package/ActionGuide/ActionGuide.module.css +3 -0
  4. package/Alert/Alert.d.ts +9 -0
  5. package/Alert/Alert.js +63 -21
  6. package/Alert/Alert.module.css +41 -9
  7. package/Alert/AlertImage.module.css +5 -1
  8. package/Alert/tests/Alert-specs.js +6 -2
  9. package/BodyText/BodyText.d.ts +1 -1
  10. package/BodyText/BodyText.js +14 -9
  11. package/BodyText/BodyText.module.css +1 -1
  12. package/Button/Button.d.ts +3 -3
  13. package/Button/Button.module.css +14 -28
  14. package/CHANGELOG.md +48 -1
  15. package/Card/Card.d.ts +81 -9
  16. package/Card/Card.js +321 -84
  17. package/Card/Card.module.css +171 -20
  18. package/Card/tests/Card-specs.js +100 -0
  19. package/Checkbox/Checkbox.d.ts +2 -2
  20. package/Checkbox/Checkbox.module.css +2 -9
  21. package/CheckboxItem/CheckboxItem.d.ts +8 -1
  22. package/CheckboxItem/CheckboxItem.js +39 -12
  23. package/CheckboxItem/CheckboxItem.module.css +228 -4
  24. package/Chips/Chip.module.css +2 -2
  25. package/ContextualMenuDecorator/ContextualMenuDecorator.d.ts +2 -2
  26. package/ContextualPopupDecorator/ContextualPopup.module.css +1 -1
  27. package/ContextualPopupDecorator/ContextualPopupDecorator.js +2 -4
  28. package/ContextualPopupDecorator/tests/ContextualPopupDecorator-specs.js +39 -2
  29. package/Dropdown/Dropdown.d.ts +2 -2
  30. package/Dropdown/Dropdown.module.css +7 -7
  31. package/FixedPopupPanels/FixedPopupPanels.d.ts +2 -2
  32. package/FlexiblePopupPanels/FlexiblePopupPanels.module.css +15 -3
  33. package/FlexiblePopupPanels/index.d.ts +2 -2
  34. package/FormCheckboxItem/FormCheckboxItem.d.ts +1 -1
  35. package/FormCheckboxItem/FormCheckboxItem.js +1 -0
  36. package/FormCheckboxItem/FormCheckboxItem.module.css +1 -1
  37. package/Heading/Heading.d.ts +2 -2
  38. package/Icon/Icon.d.ts +22 -1
  39. package/Icon/Icon.js +21 -0
  40. package/Icon/IconList.js +43 -1
  41. package/IconItem/IconItem.d.ts +2 -2
  42. package/IconItem/IconItem.module.css +11 -14
  43. package/Image/Image.d.ts +1 -1
  44. package/Image/Image.module.css +1 -1
  45. package/ImageItem/ImageItem.d.ts +2 -2
  46. package/ImageItem/ImageItem.js +3 -16
  47. package/ImageItem/ImageItem.module.css +105 -97
  48. package/ImageItem/tests/ImageItem-specs.js +6 -5
  49. package/Input/Input.module.css +8 -7
  50. package/Input/InputField.module.css +4 -4
  51. package/Input/index.d.ts +1 -1
  52. package/Input/tests/Input-specs.js +2 -2
  53. package/Input/tests/InputField-specs.js +1 -1
  54. package/Item/Item.d.ts +2 -2
  55. package/Item/Item.module.css +27 -15
  56. package/KeyGuide/KeyGuide.d.ts +2 -2
  57. package/MediaOverlay/MediaOverlay.d.ts +2 -2
  58. package/MediaOverlay/MediaOverlay.module.css +2 -5
  59. package/MediaPlayer/MediaSlider.module.css +1 -0
  60. package/MediaPlayer/Times.module.css +1 -1
  61. package/MediaPlayer/index.d.ts +2 -2
  62. package/PageViews/PageViews.module.css +2 -1
  63. package/Panels/Header.module.css +40 -28
  64. package/Panels/Panel.module.css +1 -1
  65. package/Panels/index.d.ts +1 -1
  66. package/Picker/Picker.d.ts +1 -1
  67. package/Popup/Popup.module.css +4 -1
  68. package/PopupTabLayout/PopupTabLayout.d.ts +6 -6
  69. package/PopupTabLayout/PopupTabLayout.module.css +6 -6
  70. package/ProgressBar/ProgressBar.d.ts +1 -1
  71. package/ProgressBar/ProgressBar.module.css +12 -12
  72. package/ProgressBar/ProgressBarTooltip.module.css +7 -7
  73. package/ProgressButton/ProgressButton.d.ts +2 -2
  74. package/QuickGuidePanels/QuickGuidePanels.module.css +1 -1
  75. package/RadioItem/RadioItem.d.ts +1 -1
  76. package/RadioItem/RadioItem.module.css +18 -20
  77. package/Scroller/Scroller.d.ts +12 -0
  78. package/Scroller/Scroller.js +15 -0
  79. package/Scroller/tests/Scroller-specs.js +29 -0
  80. package/Scroller/useThemeScroller.js +22 -2
  81. package/Slider/Slider.d.ts +1 -1
  82. package/Slider/Slider.module.css +539 -300
  83. package/Spinner/Spinner.d.ts +1 -1
  84. package/Spinner/Spinner.module.css +2 -2
  85. package/Steps/Steps.d.ts +1 -1
  86. package/Steps/Steps.js +12 -6
  87. package/Steps/Steps.module.css +16 -2
  88. package/Switch/Switch.module.css +2 -5
  89. package/SwitchItem/SwitchItem.d.ts +1 -1
  90. package/TabLayout/RefocusDecorator.js +1 -1
  91. package/TabLayout/TabGroup.module.css +12 -6
  92. package/TabLayout/TabLayout.js +4 -0
  93. package/ThemeDecorator/ThemeDecorator.d.ts +1 -1
  94. package/ThemeDecorator/ThemeDecorator.module.css +22 -1
  95. package/TooltipDecorator/Tooltip.js +68 -7
  96. package/TooltipDecorator/Tooltip.module.css +40 -23
  97. package/TooltipDecorator/TooltipDecorator.d.ts +52 -0
  98. package/TooltipDecorator/TooltipDecorator.js +42 -0
  99. package/TooltipDecorator/TooltipLabel.js +67 -14
  100. package/TooltipDecorator/tests/TooltipDecorator-specs.js +46 -0
  101. package/TooltipDecorator/useTooltip.js +14 -2
  102. package/VideoPlayer/MediaTitle.module.css +1 -1
  103. package/VirtualList/VirtualList.d.ts +24 -0
  104. package/VirtualList/VirtualList.js +30 -0
  105. package/VirtualList/tests/stickTo-specs.js +115 -0
  106. package/VirtualList/tests/useEvent-specs.js +39 -0
  107. package/VirtualList/useEvent.js +45 -10
  108. package/VirtualList/useThemeVirtualList.js +20 -2
  109. package/WizardPanels/WizardPanels.module.css +1 -1
  110. package/fonts/Limestone_Icons.ttf +0 -0
  111. package/internal/DateComponentPicker/DateComponentPicker.module.css +3 -3
  112. package/internal/Picker/Picker.js +8 -10
  113. package/internal/Picker/Picker.module.css +74 -141
  114. package/package.json +11 -14
  115. package/styles/color-mixins.less +4 -60
  116. package/styles/colors-game.less +5 -5
  117. package/styles/colors.less +9 -10
  118. package/styles/mixins.less +0 -46
  119. package/styles/motion-mixins.less +16 -7
  120. package/styles/motions.less +2 -2
  121. package/styles/variables.less +71 -46
  122. 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>>;
@@ -11,6 +11,9 @@
11
11
  min-width: 1.75rem;
12
12
  width: 1.75rem;
13
13
  }
14
+ .actionGuide .button.hasIcon.large {
15
+ padding: 0;
16
+ }
14
17
  .actionGuide .label {
15
18
  font-family: "Limestone";
16
19
  font-size: var(--primitive-font-size-48);
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 image = _ref3.image,
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(_ref4) {
229
- var buttonDirection = _ref4.buttonDirection,
230
- buttons = _ref4.buttons,
231
- contentComponent = _ref4.contentComponent,
232
- children = _ref4.children,
233
- css = _ref4.css,
234
- id = _ref4.id,
235
- image = _ref4.image,
236
- overlayPosition = _ref4.overlayPosition,
237
- title = _ref4.title,
238
- type = _ref4.type,
239
- style = _ref4.style,
240
- rest = _objectWithoutProperties(_ref4, _excluded);
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 < 3;
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: [image ? /*#__PURE__*/(0, _jsxRuntime.jsx)(_Layout.Cell, {
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",
@@ -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-96);
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-84);
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-36);
43
- padding: 0 var(--primitive-spacing-84);
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.75rem;
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-84);
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: NaNrem + (2 * var(--primitive-spacing-36)));
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-84);
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-84) 0;
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
  }
@@ -1,7 +1,11 @@
1
1
  .alertImage {
2
2
  margin: 0;
3
3
  }
4
- .alertImage.thumbnail {
4
+ .alertImage.thumbnail.large {
5
+ width: 41.75rem;
6
+ height: 17.8125rem;
7
+ }
8
+ .alertImage.thumbnail.small {
5
9
  width: 20rem;
6
10
  height: 11.25rem;
7
11
  }
@@ -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 3', function () {
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 3', function () {
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
  })]
@@ -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
 
@@ -101,20 +101,25 @@ var BodyTextBase = exports.BodyTextBase = (0, _kind["default"])({
101
101
  publicClassNames: 'bodyText'
102
102
  },
103
103
  computed: {
104
- className: function className(_ref) {
105
- var noWrap = _ref.noWrap,
106
- size = _ref.size,
107
- styler = _ref.styler;
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(_ref2) {
114
- var centered = _ref2.centered,
115
- css = _ref2.css,
116
- noWrap = _ref2.noWrap,
117
- rest = _objectWithoutProperties(_ref2, _excluded);
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.4em;
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;
@@ -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
 
@@ -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-EIO-motion-easing-function);
38
- --lime-release-motion-easing-function: var(--lime-EO-motion-easing-function);
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: var(--semantic-color-stroke-button-outline);
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 var(--semantic-color-stroke-button-outline);
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: var(--semantic-color-stroke-button-outline);
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 var(--semantic-color-stroke-button-outline);
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: var(--semantic-color-stroke-button-outline);
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 var(--semantic-color-stroke-button-outline);
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.1] - 2026-06-01
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