@enact/limestone 1.10.0 → 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 (133) 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 +7 -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 +22 -1
  12. package/Button/Button.d.ts +3 -3
  13. package/Button/Button.module.css +81 -63
  14. package/CHANGELOG.md +87 -0
  15. package/Card/Card.d.ts +81 -9
  16. package/Card/Card.js +324 -84
  17. package/Card/Card.module.css +200 -25
  18. package/Card/tests/Card-specs.js +100 -0
  19. package/Checkbox/Checkbox.d.ts +2 -2
  20. package/Checkbox/Checkbox.module.css +2 -5
  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 +5 -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/Heading/Heading.module.css +16 -0
  39. package/Icon/Icon.d.ts +22 -1
  40. package/Icon/Icon.js +21 -0
  41. package/Icon/Icon.module.css +12 -0
  42. package/Icon/IconList.js +43 -1
  43. package/IconItem/IconItem.d.ts +2 -2
  44. package/IconItem/IconItem.module.css +27 -14
  45. package/Image/Image.d.ts +1 -1
  46. package/Image/Image.module.css +1 -1
  47. package/ImageItem/ImageItem.d.ts +2 -2
  48. package/ImageItem/ImageItem.js +3 -16
  49. package/ImageItem/ImageItem.module.css +122 -97
  50. package/ImageItem/tests/ImageItem-specs.js +6 -5
  51. package/Input/Input.module.css +33 -16
  52. package/Input/InputField.module.css +22 -4
  53. package/Input/index.d.ts +1 -1
  54. package/Input/tests/Input-specs.js +2 -2
  55. package/Input/tests/InputField-specs.js +1 -1
  56. package/Item/Item.d.ts +2 -2
  57. package/Item/Item.module.css +29 -16
  58. package/KeyGuide/KeyGuide.d.ts +2 -2
  59. package/KeyGuide/KeyGuide.module.css +10 -0
  60. package/MediaOverlay/MediaOverlay.d.ts +2 -2
  61. package/MediaOverlay/MediaOverlay.module.css +18 -9
  62. package/MediaPlayer/MediaControls.module.css +3 -0
  63. package/MediaPlayer/MediaSlider.module.css +1 -0
  64. package/MediaPlayer/Times.module.css +5 -1
  65. package/MediaPlayer/index.d.ts +2 -2
  66. package/PageViews/PageViews.module.css +6 -1
  67. package/Panels/Header.module.css +74 -56
  68. package/Panels/Panel.module.css +1 -1
  69. package/Panels/index.d.ts +1 -1
  70. package/Picker/Picker.d.ts +1 -1
  71. package/Popup/Popup.module.css +4 -1
  72. package/PopupTabLayout/PopupTabLayout.d.ts +6 -6
  73. package/PopupTabLayout/PopupTabLayout.module.css +24 -6
  74. package/ProgressBar/ProgressBar.d.ts +1 -1
  75. package/ProgressBar/ProgressBar.module.css +12 -12
  76. package/ProgressBar/ProgressBarTooltip.module.css +7 -7
  77. package/ProgressButton/ProgressButton.d.ts +2 -2
  78. package/QuickGuidePanels/QuickGuidePanels.module.css +1 -1
  79. package/RadioItem/RadioItem.d.ts +1 -1
  80. package/RadioItem/RadioItem.module.css +21 -18
  81. package/Scroller/EditableWrapper.js +2 -1
  82. package/Scroller/Scroller.d.ts +12 -0
  83. package/Scroller/Scroller.js +15 -0
  84. package/Scroller/Scroller.module.css +10 -0
  85. package/Scroller/tests/Scroller-specs.js +120 -2
  86. package/Scroller/useThemeScroller.js +25 -2
  87. package/Slider/Slider.d.ts +1 -1
  88. package/Slider/Slider.module.css +539 -303
  89. package/Spinner/Spinner.d.ts +1 -1
  90. package/Spinner/Spinner.module.css +2 -2
  91. package/Steps/Steps.d.ts +1 -1
  92. package/Steps/Steps.js +12 -6
  93. package/Steps/Steps.module.css +19 -2
  94. package/Switch/Switch.module.css +17 -6
  95. package/SwitchItem/SwitchItem.d.ts +1 -1
  96. package/TabLayout/RefocusDecorator.js +1 -1
  97. package/TabLayout/TabGroup.module.css +13 -7
  98. package/TabLayout/TabLayout.js +4 -0
  99. package/ThemeDecorator/ThemeDecorator.d.ts +1 -1
  100. package/ThemeDecorator/ThemeDecorator.module.css +22 -1
  101. package/TimePicker/TimePicker.module.css +3 -0
  102. package/TooltipDecorator/Tooltip.js +68 -7
  103. package/TooltipDecorator/Tooltip.module.css +44 -23
  104. package/TooltipDecorator/TooltipDecorator.d.ts +52 -0
  105. package/TooltipDecorator/TooltipDecorator.js +42 -0
  106. package/TooltipDecorator/TooltipLabel.js +67 -14
  107. package/TooltipDecorator/tests/TooltipDecorator-specs.js +46 -0
  108. package/TooltipDecorator/useTooltip.js +14 -2
  109. package/VideoPlayer/Feedback.module.css +3 -0
  110. package/VideoPlayer/FeedbackTooltip.module.css +7 -0
  111. package/VideoPlayer/MediaTitle.module.css +9 -1
  112. package/VirtualList/VirtualList.d.ts +24 -0
  113. package/VirtualList/VirtualList.js +30 -0
  114. package/VirtualList/tests/stickTo-specs.js +115 -0
  115. package/VirtualList/tests/useEvent-specs.js +39 -0
  116. package/VirtualList/useEvent.js +45 -10
  117. package/VirtualList/useThemeVirtualList.js +20 -2
  118. package/WizardPanels/WizardPanels.module.css +1 -1
  119. package/fonts/Limestone_Icons.ttf +0 -0
  120. package/internal/DateComponentPicker/DateComponentPicker.module.css +3 -3
  121. package/internal/DateTime/DateTime.module.css +3 -0
  122. package/internal/Picker/Picker.js +8 -10
  123. package/internal/Picker/Picker.module.css +92 -137
  124. package/package.json +14 -17
  125. package/styles/color-mixins.less +4 -60
  126. package/styles/colors-game.less +5 -5
  127. package/styles/colors.less +9 -10
  128. package/styles/mixins.less +0 -46
  129. package/styles/motion-mixins.less +16 -7
  130. package/styles/motions.less +2 -2
  131. package/styles/variables.less +186 -69
  132. package/useScroll/ScrollbarPlaceholder.js +8 -3
  133. package/useScroll/useScroll.js +3 -1
@@ -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 {
@@ -107,11 +104,25 @@ Motion Mixins
107
104
  font-weight: var(--primitive-font-weight-bold);
108
105
  }
109
106
  .button:global(.largeText) {
110
- font-size: var(--primitive-font-size-96);
111
- height: 4rem;
112
- min-width: 4rem;
113
- line-height: 3.75rem;
114
- --button-height: 4rem;
107
+ font-size: var(--primitive-font-size-72);
108
+ height: 2.75rem;
109
+ line-height: 2.5rem;
110
+ --button-height: 2.75rem;
111
+ }
112
+ .button:global(.largeText).red .client::before,
113
+ .button:global(.largeText).green .client::before,
114
+ .button:global(.largeText).yellow .client::before,
115
+ .button:global(.largeText).blue .client::before {
116
+ bottom: var(--primitive-spacing-12);
117
+ width: 1.5rem;
118
+ height: 0.625rem;
119
+ }
120
+ .button:global(.largeText).red:not(.minWidth) .client::before,
121
+ .button:global(.largeText).green:not(.minWidth) .client::before,
122
+ .button:global(.largeText).yellow:not(.minWidth) .client::before,
123
+ .button:global(.largeText).blue:not(.minWidth) .client::before {
124
+ width: 0.625rem;
125
+ height: 0.25rem;
115
126
  }
116
127
  .button.focusStatic {
117
128
  /* Defined to prevent global export */
@@ -169,10 +180,24 @@ Motion Mixins
169
180
  bottom: var(--primitive-spacing-12);
170
181
  left: 50%;
171
182
  width: 1.25rem;
172
- height: 0.25rem;
183
+ height: 0.5rem;
173
184
  border-radius: var(--semantic-radius-full);
174
185
  transform: translate(-50%, 50%);
175
186
  }
187
+ .button.red:not(.minWidth) .client::before,
188
+ .button.green:not(.minWidth) .client::before,
189
+ .button.yellow:not(.minWidth) .client::before,
190
+ .button.blue:not(.minWidth) .client::before {
191
+ width: 0.625rem;
192
+ height: 0.25rem;
193
+ }
194
+ .button.red:not(.minWidth):global(.largeText) .client::before,
195
+ .button.green:not(.minWidth):global(.largeText) .client::before,
196
+ .button.yellow:not(.minWidth):global(.largeText) .client::before,
197
+ .button.blue:not(.minWidth):global(.largeText) .client::before {
198
+ width: 0.625rem;
199
+ height: 0.25rem;
200
+ }
176
201
  .button.red.minWidth .icon,
177
202
  .button.green.minWidth .icon,
178
203
  .button.yellow.minWidth .icon,
@@ -280,7 +305,21 @@ Motion Mixins
280
305
  .button.small.blue .client::before {
281
306
  bottom: var(--primitive-spacing-12);
282
307
  width: 1.0625rem;
283
- height: 0.1875rem;
308
+ height: 0.4375rem;
309
+ }
310
+ .button.small.red:not(.minWidth) .client::before,
311
+ .button.small.green:not(.minWidth) .client::before,
312
+ .button.small.yellow:not(.minWidth) .client::before,
313
+ .button.small.blue:not(.minWidth) .client::before {
314
+ width: 0.625rem;
315
+ height: 0.25rem;
316
+ }
317
+ .button.small.red:not(.minWidth):global(.largeText) .client::before,
318
+ .button.small.green:not(.minWidth):global(.largeText) .client::before,
319
+ .button.small.yellow:not(.minWidth):global(.largeText) .client::before,
320
+ .button.small.blue:not(.minWidth):global(.largeText) .client::before {
321
+ width: 0.625rem;
322
+ height: 0.25rem;
284
323
  }
285
324
  .button.small.red.minWidth .client,
286
325
  .button.small.green.minWidth .client,
@@ -316,21 +355,28 @@ Motion Mixins
316
355
  margin-inline-start: var(--primitive-spacing-24);
317
356
  }
318
357
  .button.small:global(.largeText) {
319
- font-size: var(--primitive-font-size-72);
320
- height: 3rem;
321
- min-width: 3rem;
322
- line-height: 2.75rem;
323
- --button-height: 3rem;
358
+ font-size: var(--primitive-font-size-66);
359
+ height: 2.25rem;
360
+ line-height: 2rem;
361
+ --button-height: 2.25rem;
324
362
  }
325
- .button.small:global(.largeText).minWidth {
326
- min-width: 15rem;
363
+ .button.small:global(.largeText).red .client::before,
364
+ .button.small:global(.largeText).green .client::before,
365
+ .button.small:global(.largeText).yellow .client::before,
366
+ .button.small:global(.largeText).blue .client::before {
367
+ width: 1.25rem;
368
+ height: 0.5rem;
369
+ }
370
+ .button.small:global(.largeText).red:not(.minWidth) .client::before,
371
+ .button.small:global(.largeText).green:not(.minWidth) .client::before,
372
+ .button.small:global(.largeText).yellow:not(.minWidth) .client::before,
373
+ .button.small:global(.largeText).blue:not(.minWidth) .client::before {
374
+ width: 0.625rem;
375
+ height: 0.25rem;
327
376
  }
328
377
  .button.iconOnly {
329
378
  min-width: 2.75rem;
330
379
  }
331
- .button.iconOnly:global(.largeText) {
332
- min-width: 4rem;
333
- }
334
380
  .button.iconOnly .client {
335
381
  padding: 0;
336
382
  }
@@ -356,9 +402,6 @@ Motion Mixins
356
402
  padding-left: 0.375rem;
357
403
  padding-right: 0.375rem;
358
404
  }
359
- .button.iconOnly.small:global(.largeText) {
360
- min-width: 3rem;
361
- }
362
405
  .button.iconOnly.iconAfter .icon,
363
406
  .button.iconOnly.iconBefore .icon,
364
407
  .button.iconOnly.large .icon,
@@ -369,34 +412,9 @@ Motion Mixins
369
412
  .button.iconOnly.iconBefore .icon:global(.largeText),
370
413
  .button.iconOnly.large .icon:global(.largeText),
371
414
  .button.iconOnly.small .icon:global(.largeText) {
415
+ overflow: visible;
372
416
  width: 100%;
373
417
  }
374
- .button.iconOnly.iconAfter.red .client::before,
375
- .button.iconOnly.iconBefore.red .client::before,
376
- .button.iconOnly.large.red .client::before,
377
- .button.iconOnly.small.red .client::before,
378
- .button.iconOnly.iconAfter.green .client::before,
379
- .button.iconOnly.iconBefore.green .client::before,
380
- .button.iconOnly.large.green .client::before,
381
- .button.iconOnly.small.green .client::before,
382
- .button.iconOnly.iconAfter.yellow .client::before,
383
- .button.iconOnly.iconBefore.yellow .client::before,
384
- .button.iconOnly.large.yellow .client::before,
385
- .button.iconOnly.small.yellow .client::before,
386
- .button.iconOnly.iconAfter.blue .client::before,
387
- .button.iconOnly.iconBefore.blue .client::before,
388
- .button.iconOnly.large.blue .client::before,
389
- .button.iconOnly.small.blue .client::before {
390
- width: 1.375rem;
391
- height: 0.1875rem;
392
- }
393
- .button.iconOnly.red .client::before,
394
- .button.iconOnly.green .client::before,
395
- .button.iconOnly.yellow .client::before,
396
- .button.iconOnly.blue .client::before {
397
- width: 1.375rem;
398
- height: 0.1875rem;
399
- }
400
418
  .button.collapsable.hasIcon:not(.iconOnly) {
401
419
  padding-left: 0;
402
420
  padding-right: 0;
@@ -1453,12 +1471,12 @@ Motion Mixins
1453
1471
  transition: transform var(--lime-focus-out-motion-duration) var(--lime-focus-out-motion-easing-function);
1454
1472
  border-width: 0.125rem;
1455
1473
  border-style: solid;
1456
- border-color: var(--semantic-color-stroke-button-outline);
1474
+ border-color: rgba(162, 115, 200, 0.5);
1457
1475
  border-radius: 0;
1458
1476
  }
1459
1477
  .button:global(.game).bordered .bg {
1460
1478
  background-color: color(from var(--semantic-color-surface-default) srgb r g b / 0.5);
1461
- border: 0.125rem solid var(--semantic-color-stroke-button-outline);
1479
+ border: 0.125rem solid rgba(162, 115, 200, 0.5);
1462
1480
  }
1463
1481
  .button:global(.game).bordered .client {
1464
1482
  color: var(--semantic-color-on-surface-main);
@@ -1585,7 +1603,7 @@ Motion Mixins
1585
1603
  }
1586
1604
  :global(.spotlight-input-key) .button:global(.game):global(.spottable):focus.iconOnly .bg,
1587
1605
  :global(.spotlight-input-mouse) .button:global(.game):global(.spottable):focus.iconOnly .bg {
1588
- background-color: '';
1606
+ background-color: rgba(139, 49, 215, 0.5);
1589
1607
  }
1590
1608
  :global(.spotlight-input-key) .button:global(.game):global(.spottable):focus.focusExpand .bg,
1591
1609
  :global(.spotlight-input-mouse) .button:global(.game):global(.spottable):focus.focusExpand .bg {
@@ -1629,7 +1647,7 @@ Motion Mixins
1629
1647
  text-shadow: none;
1630
1648
  }
1631
1649
  :global(.spotlight-input-touch) .button:global(.game):global(.spottable):active.iconOnly .bg {
1632
- background-color: '';
1650
+ background-color: rgba(139, 49, 215, 0.5);
1633
1651
  }
1634
1652
  :global(.spotlight-input-touch) .button:global(.game):global(.spottable):active.focusExpand .bg {
1635
1653
  transform: scale(1.1);
@@ -1792,12 +1810,12 @@ Motion Mixins
1792
1810
  transition: transform var(--lime-focus-out-motion-duration) var(--lime-focus-out-motion-easing-function);
1793
1811
  border-width: 0.125rem;
1794
1812
  border-style: solid;
1795
- border-color: var(--semantic-color-stroke-button-outline);
1813
+ border-color: rgba(0, 255, 194, 0.5);
1796
1814
  border-radius: 0;
1797
1815
  }
1798
1816
  :global(.green) .button:global(.game).bordered .bg {
1799
1817
  background-color: color(from var(--semantic-color-surface-default) srgb r g b / 0.5);
1800
- border: 0.125rem solid var(--semantic-color-stroke-button-outline);
1818
+ border: 0.125rem solid rgba(0, 255, 194, 0.5);
1801
1819
  }
1802
1820
  :global(.green) .button:global(.game).bordered .client {
1803
1821
  color: var(--semantic-color-on-surface-main);
@@ -1924,7 +1942,7 @@ Motion Mixins
1924
1942
  }
1925
1943
  :global(.spotlight-input-key) :global(.green) .button:global(.game):global(.spottable):focus.iconOnly .bg,
1926
1944
  :global(.spotlight-input-mouse) :global(.green) .button:global(.game):global(.spottable):focus.iconOnly .bg {
1927
- background-color: '';
1945
+ background-color: rgba(69, 193, 148, 0.5);
1928
1946
  }
1929
1947
  :global(.spotlight-input-key) :global(.green) .button:global(.game):global(.spottable):focus.focusExpand .bg,
1930
1948
  :global(.spotlight-input-mouse) :global(.green) .button:global(.game):global(.spottable):focus.focusExpand .bg {
@@ -1968,7 +1986,7 @@ Motion Mixins
1968
1986
  text-shadow: none;
1969
1987
  }
1970
1988
  :global(.spotlight-input-touch) :global(.green) .button:global(.game):global(.spottable):active.iconOnly .bg {
1971
- background-color: '';
1989
+ background-color: rgba(69, 193, 148, 0.5);
1972
1990
  }
1973
1991
  :global(.spotlight-input-touch) :global(.green) .button:global(.game):global(.spottable):active.focusExpand .bg {
1974
1992
  transform: scale(1.1);
@@ -2131,12 +2149,12 @@ Motion Mixins
2131
2149
  transition: transform var(--lime-focus-out-motion-duration) var(--lime-focus-out-motion-easing-function);
2132
2150
  border-width: 0.125rem;
2133
2151
  border-style: solid;
2134
- border-color: var(--semantic-color-stroke-button-outline);
2152
+ border-color: rgba(235, 94, 0, 0.5);
2135
2153
  border-radius: 0;
2136
2154
  }
2137
2155
  :global(.orange) .button:global(.game).bordered .bg {
2138
2156
  background-color: color(from var(--semantic-color-surface-default) srgb r g b / 0.5);
2139
- border: 0.125rem solid var(--semantic-color-stroke-button-outline);
2157
+ border: 0.125rem solid rgba(235, 94, 0, 0.5);
2140
2158
  }
2141
2159
  :global(.orange) .button:global(.game).bordered .client {
2142
2160
  color: var(--semantic-color-on-surface-main);
@@ -2263,7 +2281,7 @@ Motion Mixins
2263
2281
  }
2264
2282
  :global(.spotlight-input-key) :global(.orange) .button:global(.game):global(.spottable):focus.iconOnly .bg,
2265
2283
  :global(.spotlight-input-mouse) :global(.orange) .button:global(.game):global(.spottable):focus.iconOnly .bg {
2266
- background-color: '';
2284
+ background-color: rgba(215, 84, 49, 0.5);
2267
2285
  }
2268
2286
  :global(.spotlight-input-key) :global(.orange) .button:global(.game):global(.spottable):focus.focusExpand .bg,
2269
2287
  :global(.spotlight-input-mouse) :global(.orange) .button:global(.game):global(.spottable):focus.focusExpand .bg {
@@ -2307,7 +2325,7 @@ Motion Mixins
2307
2325
  text-shadow: none;
2308
2326
  }
2309
2327
  :global(.spotlight-input-touch) :global(.orange) .button:global(.game):global(.spottable):active.iconOnly .bg {
2310
- background-color: '';
2328
+ background-color: rgba(215, 84, 49, 0.5);
2311
2329
  }
2312
2330
  :global(.spotlight-input-touch) :global(.orange) .button:global(.game):global(.spottable):active.focusExpand .bg {
2313
2331
  transform: scale(1.1);
package/CHANGELOG.md CHANGED
@@ -2,6 +2,92 @@
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.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`
53
+
54
+ ### Changed
55
+
56
+ - `limestone/ActionGuide` styling to match the latest GUI
57
+ - `limestone/BodyText` styling to match the latest GUI
58
+ - `limestone/Button` styling to match the latest GUI
59
+ - `limestone/Card` styling to match the latest GUI
60
+ - `limestone/Checkbox` styling to match the latest GUI
61
+ - `limestone/Chips.Chip` styling to match the latest GUI
62
+ - `limestone/DatePicker` styling to match the latest GUI
63
+ - `limestone/Heading` styling to match the latest GUI
64
+ - `limestone/Icon` styling to match the latest GUI
65
+ - `limestone/IconItem` styling to match the latest GUI
66
+ - `limestone/ImageItem` styling to match the latest GUI
67
+ - `limestone/Input` styling to match the latest GUI
68
+ - `limestone/InputField` styling to match the latest GUI
69
+ - `limestone/Item` styling to match the latest GUI
70
+ - `limestone/KeyGuide` styling to match the latest GUI
71
+ - `limestone/MediaOverlay` styling to match the latest GUI
72
+ - `limestone/PageViews` styling to match the latest GUI
73
+ - `limestone/Panels.Header` styling to match the latest GUI
74
+ - `limestone/Picker` styling to match the latest GUI
75
+ - `limestone/PopupTabLayout` styling to match the latest GUI
76
+ - `limestone/RadioItem` styling to match the latest GUI
77
+ - `limestone/Scroller` focus area to be separated from the vertical and horizontal scrollbars when `focusableScrollbar` is `"byEnter"`
78
+ - `limestone/Slider` styling to match the latest GUI
79
+ - `limestone/Steps` styling to match the latest GUI
80
+ - `limestone/Switch` styling to match the latest GUI
81
+ - `limestone/TabLayout` styling to match the latest GUI
82
+ - `limestone/TimePicker` styling to match the latest GUI
83
+ - `limestone/TooltipDecorator` styling to match the latest GUI
84
+ - `limestone/VideoPlayer` styling to match the latest GUI
85
+
86
+ ### Fixed
87
+
88
+ - `limestone/Scroller` to set initial focus on the scrollbar thumb when navigating between panels with `focusableScrollbar`
89
+
90
+
5
91
  ## [1.10.0] - 2026-05-08
6
92
 
7
93
  ### Added
@@ -33,6 +119,7 @@ The following is a curated list of changes in the Enact limestone module, newest
33
119
  - `limestone/MediaOverlay` press motion to work with key press
34
120
  - `limestone/Popup` to not flicker on transition
35
121
  - `limestone/Popup` to not delay when closed with pointer
122
+ - `limestone/Scroller.EditableWrapper` to not stop the `Marquee` when editing is complete
36
123
  - `limestone/Slider` press motion to work with key press
37
124
  - `limestone/useScroll` to not scroll on hover right after scroll by wheel
38
125
 
package/Card/Card.d.ts CHANGED
@@ -1,8 +1,8 @@
1
1
  // Type definitions for limestone/Card
2
2
 
3
- import { MarqueeControllerProps as limestone_Marquee_MarqueeControllerProps } from "limestone/Marquee";
3
+ import { MarqueeControllerProps as limestone_Marquee_MarqueeControllerProps } from "@enact/limestone/Marquee";
4
4
  import { SpottableProps as spotlight_Spottable_SpottableProps } from "@enact/spotlight/Spottable";
5
- import { SkinnableProps as limestone_Skinnable_SkinnableProps } from "limestone/Skinnable";
5
+ import { SkinnableProps as limestone_Skinnable_SkinnableProps } from "@enact/limestone/Skinnable";
6
6
  import { CardProps as ui_Card_CardProps } from "@enact/ui/Card";
7
7
  import * as React from "react";
8
8
 
@@ -21,6 +21,31 @@ a specific screenSize.
21
21
  */
22
22
  "aria-label"?: string;
23
23
  /**
24
+ * Sources for the image icon.
25
+ *
26
+ * An array of String values or Objects of values used to determine which image will appear on
27
+ a specific screenSize. This prop is only used when `orientation` is `'vertical'` .
28
+ */
29
+ captionImageIconsSrc?: string[] | object[];
30
+ /**
31
+ * The size of the caption images.
32
+ *
33
+ * The following properties should be provided:
34
+ * * `height` - The height of the image
35
+ * * `width` - The width of the image
36
+ */
37
+ captionImageSize?: object;
38
+ /**
39
+ * Determines whether the caption will overflow the card container or not.
40
+ It only applies when `orientation` is `'vertical'` and `captionOverlay` and `captionOverlayOnFocus` is `false` .
41
+ */
42
+ captionOverflow?: boolean;
43
+ /**
44
+ * Determines whether the caption will overflow the card container and show only on card focus.
45
+ It only applies when `orientation` is `'vertical'` and `captionOverlay` and `captionOverlayOnFocus` is `false` .
46
+ */
47
+ captionOverflowOnFocus?: boolean;
48
+ /**
24
49
  * Determines whether the caption will be placed over the image or not.
25
50
  It only applies when `orientation` is `'vertical'` .
26
51
  */
@@ -34,6 +59,11 @@ It only applies when `orientation` is `'vertical'` .
34
59
  * Centers the captions when `imageIconSrc` is not provided.
35
60
  */
36
61
  centered?: boolean;
62
+ /**
63
+ * Centers the title and `imageIconSrc` horizontally and vertically.
64
+ It only applies when `captionOverlay` or `captionOverlayOnFocus` is `true` .
65
+ */
66
+ centeredTitle?: boolean;
37
67
  /**
38
68
  * The primary caption displayed with the image.
39
69
  */
@@ -47,6 +77,14 @@ corresponding internal elements and states of this component.
47
77
  * Disables Card and becomes non-interactive.
48
78
  */
49
79
  disabled?: boolean;
80
+ /**
81
+ * Media's entire duration in seconds.
82
+ */
83
+ duration?: number;
84
+ /**
85
+ * Determines whether the `Duration` will be placed over the image or not.
86
+ */
87
+ durationOverlay?: boolean;
50
88
  /**
51
89
  * Fits the image to its height and width and positions it on the center of the Card.
52
90
  */
@@ -63,10 +101,10 @@ When `orientation` is `'horizontal'` , this prop is always `true` and provi
63
101
  /**
64
102
  * Source for the image icon.
65
103
  *
66
- * String value or Object of values used to determine which image will appear on
67
- a specific screenSize. This prop is only used when `orientation` is `'vertical'` .
104
+ * String value or element or Object of values used to determine which image will appear on
105
+ a specific screenSize. This prop is only used when `orientation` is `'vertical'` or `centeredTitle` is `true` .
68
106
  */
69
- imageIconSrc?: string | object;
107
+ imageIconSrc?: string | object | JSX.Element;
70
108
  /**
71
109
  * The size of the image.
72
110
  *
@@ -79,6 +117,12 @@ a specific screenSize. This prop is only used when `orientation` is `'vertica
79
117
  * A secondary caption displayed with the image.
80
118
  */
81
119
  label?: string;
120
+ /**
121
+ * Icons to be included with the secondary caption.
122
+ *
123
+ * Typically, up to 3 icons are used.
124
+ */
125
+ labelIcons?: JSX.Element | JSX.Element[];
82
126
  /**
83
127
  * The layout orientation of the component.
84
128
  */
@@ -88,29 +132,57 @@ a specific screenSize. This prop is only used when `orientation` is `'vertica
88
132
  */
89
133
  placeholder?: string;
90
134
  /**
91
- * The primary badge image source.
135
+ * The primary badge.
92
136
  */
93
- primaryBadgeSrc?: string | object;
137
+ primaryBadge?: JSX.Element | string;
138
+ /**
139
+ * The size of the primary badge. Can be a number or an object with specific dimensions.
140
+ The following properties should be provided for the object:
141
+ * * `height` - The height of the badge
142
+ * * `width` - The width of the badge
143
+ */
144
+ primaryBadgeSize?: object | number;
94
145
  /**
95
146
  * The progress displayed inside the ProgressBar
96
147
  */
97
148
  progress?: number;
149
+ /**
150
+ * Determines whether the `ProgressBar` will be placed over the image or not.
151
+ */
152
+ progressBarOverlay?: boolean;
98
153
  /**
99
154
  * Set to `true` to display the image with rounded corners.
100
155
  */
101
156
  roundedImage?: boolean;
102
157
  /**
103
- * The secondary badge image source.
158
+ * The secondary badge.
104
159
  */
105
- secondaryBadgeSrc?: string | object;
160
+ secondaryBadge?: JSX.Element | string;
161
+ /**
162
+ * The size of the secondary badge. Can be a number or an object with specific dimensions.
163
+ The following properties should be provided for the object:
164
+ * * `height` - The height of the badge
165
+ * * `width` - The width of the badge
166
+ */
167
+ secondaryBadgeSize?: object | number;
106
168
  /**
107
169
  * A ternary caption displayed with the image.
108
170
  */
109
171
  secondaryLabel?: string;
172
+ /**
173
+ * Icons to be included with the ternary caption.
174
+ *
175
+ * Typically, up to 3 icons are used.
176
+ */
177
+ secondaryLabelIcons?: JSX.Element | JSX.Element[];
110
178
  /**
111
179
  * Applies a selected visual effect to the image.
112
180
  */
113
181
  selected?: boolean;
182
+ /**
183
+ * Activates the 'Duration'.
184
+ */
185
+ showDuration?: boolean;
114
186
  /**
115
187
  * Activates the 'ProgressBar'.
116
188
  */