@enact/limestone 1.3.0 → 1.9.3

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 (163) hide show
  1. package/.github/workflows/ci-branch.yml +21 -0
  2. package/.github/workflows/ci-pull-request.yml +16 -0
  3. package/.github/workflows/ci-reusable.yml +73 -0
  4. package/ActionGuide/ActionGuide.d.ts +5 -4
  5. package/ActionGuide/ActionGuide.module.css +1 -1
  6. package/Alert/Alert.d.ts +4 -2
  7. package/Alert/Alert.js +4 -1
  8. package/Alert/Alert.module.css +36 -0
  9. package/BodyText/BodyText.d.ts +5 -4
  10. package/BodyText/BodyText.module.css +7 -7
  11. package/Button/Button.d.ts +17 -12
  12. package/Button/Button.js +1 -1
  13. package/Button/Button.module.css +195 -268
  14. package/CHANGELOG.md +220 -0
  15. package/Card/Card.d.ts +36 -8
  16. package/Card/Card.js +157 -20
  17. package/Card/Card.module.css +277 -58
  18. package/Card/tests/Card-specs.js +30 -0
  19. package/Checkbox/Checkbox.d.ts +8 -7
  20. package/Checkbox/Checkbox.js +3 -1
  21. package/Checkbox/Checkbox.module.css +213 -120
  22. package/Checkbox/tests/Checkbox-specs.js +1 -1
  23. package/CheckboxItem/CheckboxItem.d.ts +22 -7
  24. package/CheckboxItem/CheckboxItem.js +69 -4
  25. package/Chips/Chip.js +60 -7
  26. package/Chips/Chip.module.css +3 -3
  27. package/Chips/Chips.js +26 -12
  28. package/Chips/Chips.module.css +1 -1
  29. package/Chips/tests/Chip-specs.js +19 -9
  30. package/Chips/tests/Chips-specs.js +19 -19
  31. package/ContextualMenuDecorator/ContextualMenuDecorator.d.ts +4 -5
  32. package/ContextualPopupDecorator/ContextualPopup.module.css +34 -34
  33. package/ContextualPopupDecorator/ContextualPopupDecorator.js +557 -549
  34. package/DatePicker/DatePicker.d.ts +4 -5
  35. package/DayPicker/DayPicker.d.ts +8 -7
  36. package/Dropdown/Dropdown.d.ts +11 -13
  37. package/Dropdown/Dropdown.module.css +9 -9
  38. package/Dropdown/DropdownList.js +16 -11
  39. package/FixedPopupPanels/FixedPopupPanels.d.ts +4 -2
  40. package/FixedPopupPanels/FixedPopupPanels.module.css +18 -18
  41. package/FlexiblePopupPanels/FlexiblePopupPanels.module.css +23 -23
  42. package/FormCheckboxItem/FormCheckboxItem.d.ts +5 -4
  43. package/Heading/Heading.d.ts +8 -7
  44. package/Heading/Heading.module.css +5 -5
  45. package/Icon/Icon.d.ts +14 -4
  46. package/Icon/Icon.js +48 -2
  47. package/Icon/Icon.module.css +1 -1
  48. package/Icon/IconList.js +25 -1
  49. package/IconItem/IconItem.d.ts +13 -12
  50. package/IconItem/IconItem.js +15 -0
  51. package/IconItem/IconItem.module.css +107 -1
  52. package/Image/Image.d.ts +5 -4
  53. package/ImageItem/ImageItem.d.ts +11 -10
  54. package/ImageItem/ImageItem.js +37 -31
  55. package/ImageItem/ImageItem.module.css +30 -30
  56. package/ImageItem/tests/ImageItem-specs.js +3 -10
  57. package/Input/Input.js +9 -2
  58. package/Input/Input.module.css +37 -8
  59. package/Input/InputField.js +5 -1
  60. package/Input/InputField.module.css +17 -2
  61. package/Input/InputFieldSpotlightDecorator.js +213 -229
  62. package/Input/index.d.ts +15 -18
  63. package/Input/tests/InputField-specs.js +21 -0
  64. package/Item/Item.d.ts +16 -9
  65. package/Item/Item.js +20 -2
  66. package/Item/Item.module.css +1 -1
  67. package/KeyGuide/KeyGuide.d.ts +8 -7
  68. package/KeyGuide/KeyGuide.module.css +25 -1
  69. package/Marquee/Marquee.d.ts +2 -4
  70. package/MediaOverlay/MediaOverlay.d.ts +12 -11
  71. package/MediaOverlay/MediaOverlay.js +43 -21
  72. package/MediaOverlay/MediaOverlay.module.css +114 -15
  73. package/MediaPlayer/MediaControls.js +195 -13
  74. package/MediaPlayer/MediaControls.module.css +3 -2
  75. package/MediaPlayer/MediaSlider.module.css +7 -20
  76. package/MediaPlayer/index.d.ts +59 -7
  77. package/PageViews/PageViews.js +165 -80
  78. package/PageViews/PageViewsRouter.js +9 -0
  79. package/PageViews/tests/PageViews-specs.js +84 -0
  80. package/Panels/Header.js +48 -30
  81. package/Panels/Header.module.css +83 -31
  82. package/Panels/Panel.module.css +1 -1
  83. package/Panels/index.d.ts +7 -8
  84. package/Picker/Picker.d.ts +4 -5
  85. package/Picker/Picker.module.css +2 -2
  86. package/Popup/Popup.js +242 -240
  87. package/Popup/Popup.module.css +24 -24
  88. package/PopupTabLayout/PopupTabLayout.d.ts +5 -7
  89. package/PopupTabLayout/PopupTabLayout.js +15 -9
  90. package/PopupTabLayout/PopupTabLayout.module.css +53 -16
  91. package/PopupTabLayout/PopupTabLayoutStateContext.js +8 -0
  92. package/ProgressBar/ProgressBar.d.ts +5 -4
  93. package/ProgressBar/ProgressBarTooltip.module.css +12 -12
  94. package/ProgressButton/ProgressButton.d.ts +4 -5
  95. package/QuickGuidePanels/QuickGuidePanels.module.css +2 -2
  96. package/RadioItem/RadioItem.d.ts +18 -5
  97. package/RadioItem/RadioItem.js +67 -2
  98. package/RadioItem/RadioItem.module.css +36 -36
  99. package/RangePicker/RangePicker.module.css +2 -2
  100. package/Scroller/EditableWrapper.js +11 -4
  101. package/Scroller/Scroller.d.ts +20 -16
  102. package/Scroller/Scroller.js +9 -3
  103. package/Scroller/Scroller.module.css +4 -4
  104. package/Slider/Slider.d.ts +16 -14
  105. package/Slider/Slider.js +37 -4
  106. package/Slider/Slider.module.css +314 -91
  107. package/Slider/tests/Slider-specs.js +2 -1
  108. package/Spinner/Spinner.d.ts +5 -4
  109. package/Spinner/Spinner.module.css +9 -9
  110. package/Steps/Steps.d.ts +5 -4
  111. package/Steps/Steps.js +9 -5
  112. package/Switch/Switch.d.ts +8 -7
  113. package/Switch/Switch.module.css +100 -13
  114. package/SwitchItem/SwitchItem.d.ts +9 -6
  115. package/TabLayout/RefocusDecorator.js +15 -9
  116. package/TabLayout/TabGroup.js +3 -2
  117. package/TabLayout/TabGroup.module.css +2 -2
  118. package/TabLayout/TabLayout.d.ts +6 -0
  119. package/TabLayout/TabLayout.js +11 -1
  120. package/TabLayout/TabLayout.module.css +18 -0
  121. package/TabLayout/tests/TabLayout-specs.js +52 -0
  122. package/ThemeDecorator/ThemeDecorator.d.ts +9 -10
  123. package/ThemeDecorator/fontGenerator.js +1 -1
  124. package/ThemeDecorator/screenTypes.json +1 -0
  125. package/TimePicker/TimePicker.module.css +1 -1
  126. package/TooltipDecorator/Tooltip.module.css +1 -2
  127. package/TooltipDecorator/tests/util-specs.js +12 -0
  128. package/TooltipDecorator/useTooltip.js +1 -1
  129. package/TooltipDecorator/util.js +18 -11
  130. package/VideoPlayer/Feedback.js +3 -0
  131. package/VideoPlayer/Feedback.module.css +5 -9
  132. package/VideoPlayer/FeedbackIcons.js +1 -1
  133. package/VideoPlayer/FeedbackTooltip.module.css +55 -11
  134. package/VideoPlayer/VideoPlayer.d.ts +44 -18
  135. package/VideoPlayer/VideoPlayer.js +128 -23
  136. package/VideoPlayer/VideoPlayer.module.css +28 -11
  137. package/VirtualList/VirtualList.d.ts +9 -2
  138. package/VirtualList/VirtualList.js +31 -6
  139. package/VirtualList/tests/VirtualGridList-translate-specs.js +3 -0
  140. package/VirtualList/tests/VirtualList-specs.js +28 -1
  141. package/VirtualList/tests/VirtualList-translate-specs.js +4 -1
  142. package/WizardPanels/WizardPanels.module.css +2 -2
  143. package/WizardPanels/index.d.ts +4 -2
  144. package/fonts/Limestone_Icons.ttf +0 -0
  145. package/internal/$L/$L.js +3 -3
  146. package/internal/DateComponentPicker/DateComponentPicker.module.css +2 -2
  147. package/internal/DateTime/DateTime.module.css +1 -0
  148. package/internal/Panels/PanelsRouter.js +16 -5
  149. package/internal/Picker/Picker.module.css +2 -2
  150. package/internal/SharedStateDecorator/SharedStateDecorator.js +76 -99
  151. package/internal/validators/validators.js +21 -2
  152. package/package.json +14 -14
  153. package/styles/colors-highcontrast.less +9 -1
  154. package/styles/colors.less +11 -7
  155. package/styles/motion-mixins.less +66 -0
  156. package/styles/motions.less +78 -0
  157. package/styles/variables.less +176 -150
  158. package/useScroll/HoverToScroll.js +8 -5
  159. package/useScroll/ScrollbarTrack.module.css +8 -8
  160. package/useScroll/useEvent.js +7 -1
  161. package/useScroll/useScroll.js +2 -0
  162. package/useScroll/useScroll.module.css +6 -6
  163. package/.travis.yml +0 -40
package/Icon/IconList.js CHANGED
@@ -79,8 +79,12 @@ var _default = exports["default"] = {
79
79
  // pausejumpbackward
80
80
  jumpforward: 0x0EFFE7,
81
81
  // indicator_end
82
+ next: 0x0EFFE7,
83
+ // indicator_end
82
84
  jumpbackward: 0x0EFFE8,
83
85
  // indicator_begin
86
+ previous: 0x0EFFE8,
87
+ // indicator_begin
84
88
  skip: 0x0EFFE9,
85
89
  // skip
86
90
  list: 0x0EFFEB,
@@ -607,5 +611,25 @@ var _default = exports["default"] = {
607
611
  // soundbar_line
608
612
  jumpforward2: 0x0F01ED,
609
613
  // jumpforward
610
- jumpbackward2: 0x0F01EE // jumpbackward
614
+ jumpbackward2: 0x0F01EE,
615
+ // jumpbackward
616
+ link2: 0x0F01EF,
617
+ // Link
618
+ btspeakermute: 0x0F01F0,
619
+ // bt_speaker_mute
620
+ system: 0x0F01F1,
621
+ // system
622
+ remotecontrolsetting: 0x0F01F2,
623
+ // remote_control_setting
624
+ warning: 0x0F01F3,
625
+ // warning
626
+ filepdf: 0x0F01F4,
627
+ // file_pdf
628
+ filedoc: 0x0F01F5,
629
+ // file_doc
630
+ filexls: 0x0F01F6,
631
+ // file_xls
632
+ subtitleru: 0x10017F,
633
+ // subtitleru
634
+ mypageru: 0x0F01F7 // mypageru
611
635
  };
@@ -18,11 +18,11 @@ The following properties should be provided:
18
18
  * * `height` - The height of the image
19
19
  * * `width` - The width of the image
20
20
  */
21
- size: object /**
21
+ size: object; /**
22
22
  * Source for the image.
23
23
  String value or Object of values used to determine which image will appear on
24
24
  a specific screenSize.
25
- */;
25
+ */
26
26
  src: string | object;
27
27
  }
28
28
  export interface IconItemBaseProps {
@@ -103,20 +103,21 @@ export class IconItemBase extends React.Component<
103
103
  Merge<React.HTMLProps<HTMLElement>, IconItemBaseProps>
104
104
  > {}
105
105
 
106
- export interface IconItemDecoratorProps
107
- extends Merge<
108
- Merge<
109
- limestone_Marquee_MarqueeControllerProps,
110
- spotlight_Spottable_SpottableProps
111
- >,
112
- limestone_Skinnable_SkinnableProps
113
- > {}
106
+ export interface IconItemDecoratorProps extends Merge<
107
+ Merge<
108
+ limestone_Marquee_MarqueeControllerProps,
109
+ spotlight_Spottable_SpottableProps
110
+ >,
111
+ limestone_Skinnable_SkinnableProps
112
+ > {}
114
113
  export function IconItemDecorator<P>(
115
114
  Component: React.ComponentType<P> | string,
116
115
  ): React.ComponentType<P & IconItemDecoratorProps>;
117
116
 
118
- export interface IconItemProps
119
- extends Merge<IconItemBaseProps, IconItemDecoratorProps> {}
117
+ export interface IconItemProps extends Merge<
118
+ IconItemBaseProps,
119
+ IconItemDecoratorProps
120
+ > {}
120
121
  /**
121
122
  * A limestone-styled icon item, Marquee and Spottable applied.
122
123
  *
@@ -14,6 +14,7 @@ var _Image = _interopRequireDefault(require("../Image"));
14
14
  var _Marquee = require("../Marquee");
15
15
  var _Skinnable = _interopRequireDefault(require("../Skinnable"));
16
16
  var _IconItemModule = _interopRequireDefault(require("./IconItem.module.css"));
17
+ var _Touchable = _interopRequireDefault(require("@enact/ui/Touchable"));
17
18
  var _jsxRuntime = require("react/jsx-runtime");
18
19
  var _excluded = ["children", "disabled"];
19
20
  function _interopRequireDefault(e) { return e && e.__esModule ? e : { "default": e }; }
@@ -191,6 +192,14 @@ var IconItemBase = exports.IconItemBase = (0, _kind["default"])({
191
192
  * @private
192
193
  */
193
194
  order: _propTypes["default"].number,
195
+ /**
196
+ * Indicates if the component is pressed.
197
+ *
198
+ * @type {Boolean}
199
+ * @default false
200
+ * @private
201
+ */
202
+ pressed: _propTypes["default"].bool,
194
203
  /**
195
204
  * Title text showing below the icon.
196
205
  *
@@ -211,6 +220,7 @@ var IconItemBase = exports.IconItemBase = (0, _kind["default"])({
211
220
  'data-webos-voice-intent': 'Select',
212
221
  labelColor: 'light',
213
222
  labelOn: 'render',
223
+ pressed: false,
214
224
  titleOn: 'render'
215
225
  },
216
226
  styles: {
@@ -224,11 +234,13 @@ var IconItemBase = exports.IconItemBase = (0, _kind["default"])({
224
234
  label = _ref2.label,
225
235
  labelColor = _ref2.labelColor,
226
236
  labelOn = _ref2.labelOn,
237
+ pressed = _ref2.pressed,
227
238
  styler = _ref2.styler,
228
239
  title = _ref2.title,
229
240
  titleOn = _ref2.titleOn;
230
241
  return styler.append({
231
242
  bordered: bordered,
243
+ pressed: pressed,
232
244
  hasLabel: !!label,
233
245
  hasTitle: !!title,
234
246
  labelOnFocus: labelOn === 'focus',
@@ -310,6 +322,7 @@ var IconItemBase = exports.IconItemBase = (0, _kind["default"])({
310
322
  delete rest.label;
311
323
  delete rest.labelColor;
312
324
  delete rest.labelOn;
325
+ delete rest.pressed;
313
326
  delete rest.title;
314
327
  delete rest.titleOn;
315
328
  return /*#__PURE__*/(0, _jsxRuntime.jsx)("div", _objectSpread(_objectSpread({}, rest), {}, {
@@ -333,6 +346,8 @@ var IconItemBase = exports.IconItemBase = (0, _kind["default"])({
333
346
  */
334
347
  var IconItemDecorator = exports.IconItemDecorator = (0, _compose["default"])((0, _Marquee.MarqueeController)({
335
348
  marqueeOnFocus: true
349
+ }), (0, _Touchable["default"])({
350
+ activeProp: 'pressed'
336
351
  }), _Spottable["default"], _Skinnable["default"]);
337
352
 
338
353
  /**
@@ -1,6 +1,89 @@
1
+ /* ---------------------------------------
2
+ Animations
3
+ ------------------------------------------ */
4
+ :root {
5
+ /* Bounce
6
+ ------------------------------------------ */
7
+ --lime-bounce-motion: var(--lime-bounce-animation-name) var(--lime-bounce-motion-duration) var(--lime-bounce-motion-easing-function);
8
+ --lime-check-motion: var(--lime-check-animation-name) var(--lime-check-motion-duration) forwards;
9
+ }
10
+ /* ---------------------------------------
11
+ Animations properties
12
+ ------------------------------------------ */
13
+ :root {
14
+ /* ---------------------------------------
15
+ Durations
16
+ ------------------------------------------ */
17
+ --lime-motion-default-duration: 200ms;
18
+ --lime-motion-medium1-duration: 250ms;
19
+ --lime-motion-medium2-duration: 300ms;
20
+ --lime-motion-medium4-duration: 400ms;
21
+ --lime-motion-long2-duration: 500ms;
22
+ --lime-bounce-motion-duration: var(--lime-motion-medium2-duration);
23
+ --lime-check-motion-duration: var(--lime-motion-medium4-duration);
24
+ --lime-focus-in-motion-duration: var(--lime-motion-medium2-duration);
25
+ --lime-focus-out-motion-duration: var(--lime-motion-long2-duration);
26
+ --lime-press-motion-duration: var(--lime-motion-medium1-duration);
27
+ --lime-release-motion-duration: var(--lime-motion-medium2-duration);
28
+ /* ---------------------------------------
29
+ Easing functions
30
+ ------------------------------------------ */
31
+ --lime-default-motion-easing-function: ease-out;
32
+ --lime-EIO-motion-easing-function: cubic-bezier(0.2, 0, 0.05, 1);
33
+ --lime-EO-motion-easing-function: cubic-bezier(0.1, 0.6, 0.15, 1);
34
+ --lime-bounce-motion-easing-function: var(--lime-default-motion-easing-function);
35
+ --lime-focus-in-motion-easing-function: var(--lime-EIO-motion-easing-function);
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);
39
+ /* ---------------------------------------
40
+ Keyframes names
41
+ ------------------------------------------ */
42
+ --lime-bounce-animation-name: bounce-motion;
43
+ --lime-check-animation-name: check-motion;
44
+ /* ---------------------------------------
45
+ Keyframes values
46
+ ------------------------------------------ */
47
+ --lime-bounce-motion-offset-default-value: 0.125rem;
48
+ }
49
+ /* ---------------------------------------
50
+ Keyframes
51
+ ------------------------------------------ */
52
+ /* Bounce
53
+ ------------------------------------------ */
54
+ @keyframes bounce-motion {
55
+ 0% {
56
+ transform: translateX(0);
57
+ }
58
+ 50% {
59
+ transform: translateX(var(--lime-bounce-motion-offset-value, --lime-bounce-motion-offset-default-value));
60
+ }
61
+ 80% {
62
+ transform: translateX(calc(var(--lime-bounce-motion-offset-value, --lime-bounce-motion-offset-default-value) / -2));
63
+ }
64
+ 100% {
65
+ transform: translateX(0);
66
+ }
67
+ }
68
+ /* Check
69
+ ------------------------------------------ */
70
+ @keyframes check-motion {
71
+ 0% {
72
+ transform: translateX(0);
73
+ }
74
+ 100% {
75
+ transform: translateX(100%);
76
+ }
77
+ }
78
+ /* ---------------------------------------
79
+ Motion Variables
80
+ ------------------------------------------ */
81
+ /* ---------------------------------------
82
+ Motion Mixins
83
+ ------------------------------------------ */
1
84
  .iconItem {
2
85
  position: relative;
3
- transition: transform 200ms ease-in-out;
86
+ transition: transform var(--lime-focus-out-motion-duration) var(--lime-focus-out-motion-easing-function);
4
87
  will-change: transform;
5
88
  height: 5.33333rem;
6
89
  width: 6.95833rem;
@@ -57,6 +140,7 @@
57
140
  :global(.spotlight-input-key) .iconItem:global(.spottable):focus,
58
141
  :global(.spotlight-input-mouse) .iconItem:global(.spottable):focus {
59
142
  transform: scale(1.1);
143
+ transition: transform var(--lime-focus-in-motion-duration) var(--lime-focus-in-motion-easing-function);
60
144
  }
61
145
  :global(.spotlight-input-key) .iconItem:global(.spottable):focus.labelOnFocus .label,
62
146
  :global(.spotlight-input-mouse) .iconItem:global(.spottable):focus.labelOnFocus .label,
@@ -70,6 +154,7 @@
70
154
  }
71
155
  :global(.spotlight-input-touch) .iconItem:global(.spottable):active {
72
156
  transform: scale(1.1);
157
+ transition: transform var(--lime-focus-in-motion-duration) var(--lime-focus-in-motion-easing-function);
73
158
  }
74
159
  :global(.spotlight-input-touch) .iconItem:global(.spottable):active.labelOnFocus .label,
75
160
  :global(.spotlight-input-touch) .iconItem:global(.spottable):active.labelOnFocus .labelContainer {
@@ -78,6 +163,27 @@
78
163
  :global(.spotlight-input-touch) .iconItem:global(.spottable):active.titleOnFocus .title {
79
164
  visibility: visible;
80
165
  }
166
+ :global(.spotlight-input-key) .iconItem:not([disabled]):global(.spottable):focus.pressed,
167
+ :global(.spotlight-input-mouse) .iconItem:not([disabled]):global(.spottable):focus.pressed,
168
+ :global(.spotlight-input-key) .iconItem:not([disabled]):global(.spottable):focus:active,
169
+ :global(.spotlight-input-mouse) .iconItem:not([disabled]):global(.spottable):focus:active {
170
+ transform: scale(1.05);
171
+ transition: transform var(--lime-press-motion-duration) var(--lime-press-motion-easing-function);
172
+ }
173
+ :global(.spotlight-input-key) .iconItem:not([disabled]):global(.spottable):focus:not(.pressed),
174
+ :global(.spotlight-input-mouse) .iconItem:not([disabled]):global(.spottable):focus:not(.pressed) {
175
+ transform: scale(1.1);
176
+ transition: transform var(--lime-release-motion-duration) var(--lime-release-motion-easing-function);
177
+ }
178
+ :global(.spotlight-input-touch) .iconItem:not([disabled]):global(.spottable):active.pressed,
179
+ :global(.spotlight-input-touch) .iconItem:not([disabled]):global(.spottable):active:active {
180
+ transform: scale(1.05);
181
+ transition: transform var(--lime-press-motion-duration) var(--lime-press-motion-easing-function);
182
+ }
183
+ :global(.spotlight-input-touch) .iconItem:not([disabled]):global(.spottable):active:not(.pressed) {
184
+ transform: scale(1.1);
185
+ transition: transform var(--lime-release-motion-duration) var(--lime-release-motion-easing-function);
186
+ }
81
187
  :global(.noAnimation) .iconItem {
82
188
  transition: none;
83
189
  }
package/Image/Image.d.ts CHANGED
@@ -32,14 +32,15 @@ export class ImageBase extends React.Component<
32
32
  Merge<React.HTMLProps<HTMLElement>, ImageBaseProps>
33
33
  > {}
34
34
 
35
- export interface ImageDecoratorProps
36
- extends limestone_Skinnable_SkinnableProps {}
35
+ export interface ImageDecoratorProps extends limestone_Skinnable_SkinnableProps {}
37
36
  export function ImageDecorator<P>(
38
37
  Component: React.ComponentType<P> | string,
39
38
  ): React.ComponentType<P & ImageDecoratorProps>;
40
39
 
41
- export interface ImageProps
42
- extends Merge<ImageBaseProps, ImageDecoratorProps> {}
40
+ export interface ImageProps extends Merge<
41
+ ImageBaseProps,
42
+ ImageDecoratorProps
43
+ > {}
43
44
  /**
44
45
  * A Limestone-styled image component
45
46
  * ```
@@ -99,20 +99,21 @@ export class ImageItemBase extends React.Component<
99
99
  Merge<React.HTMLProps<HTMLElement>, ImageItemBaseProps>
100
100
  > {}
101
101
 
102
- export interface ImageItemDecoratorProps
103
- extends Merge<
104
- Merge<
105
- limestone_Marquee_MarqueeControllerProps,
106
- spotlight_Spottable_SpottableProps
107
- >,
108
- limestone_Skinnable_SkinnableProps
109
- > {}
102
+ export interface ImageItemDecoratorProps extends Merge<
103
+ Merge<
104
+ limestone_Marquee_MarqueeControllerProps,
105
+ spotlight_Spottable_SpottableProps
106
+ >,
107
+ limestone_Skinnable_SkinnableProps
108
+ > {}
110
109
  export function ImageItemDecorator<P>(
111
110
  Component: React.ComponentType<P> | string,
112
111
  ): React.ComponentType<P & ImageItemDecoratorProps>;
113
112
 
114
- export interface ImageItemProps
115
- extends Merge<ImageItemBaseProps, ImageItemDecoratorProps> {}
113
+ export interface ImageItemProps extends Merge<
114
+ ImageItemBaseProps,
115
+ ImageItemDecoratorProps
116
+ > {}
116
117
  /**
117
118
  * A limestone-styled image item, Marquee and Spottable applied.
118
119
  *
@@ -11,6 +11,7 @@ var _ImageItem = require("@enact/ui/ImageItem");
11
11
  var _Layout = require("@enact/ui/Layout");
12
12
  var _propTypes2 = _interopRequireDefault(require("prop-types"));
13
13
  var _compose = _interopRequireDefault(require("ramda/src/compose"));
14
+ var _$L = _interopRequireDefault(require("../internal/$L"));
14
15
  var _Checkbox = require("../Checkbox");
15
16
  var _Icon = _interopRequireDefault(require("../Icon"));
16
17
  var _Image = _interopRequireDefault(require("../Image"));
@@ -225,15 +226,24 @@ var ImageItemBase = exports.ImageItemBase = (0, _kind["default"])({
225
226
  publicClassNames: ['imageItem', 'caption', 'fullImage', 'horizontal', 'image', 'imageIcon', 'label', 'selected', 'selectionIcon', 'vertical']
226
227
  },
227
228
  computed: {
228
- children: function children(_ref) {
229
- var centered = _ref.centered,
230
- _children = _ref.children,
231
- css = _ref.css,
232
- index = _ref['data-index'],
233
- imageIconComponent = _ref.imageIconComponent,
234
- imageIconSrc = _ref.imageIconSrc,
229
+ 'aria-label': function ariaLabel(_ref) {
230
+ var customAriaLabel = _ref['aria-label'],
231
+ children = _ref.children,
235
232
  label = _ref.label,
236
- orientation = _ref.orientation;
233
+ selected = _ref.selected,
234
+ showSelection = _ref.showSelection;
235
+ var defaultAriaLabel = "".concat(children || '').concat(label ? " ".concat(label) : '');
236
+ return "".concat(customAriaLabel || defaultAriaLabel).concat(selected && showSelection ? ' ' + (0, _$L["default"])('Selected') : '');
237
+ },
238
+ children: function children(_ref2) {
239
+ var centered = _ref2.centered,
240
+ _children = _ref2.children,
241
+ css = _ref2.css,
242
+ index = _ref2['data-index'],
243
+ imageIconComponent = _ref2.imageIconComponent,
244
+ imageIconSrc = _ref2.imageIconSrc,
245
+ label = _ref2.label,
246
+ orientation = _ref2.orientation;
237
247
  var hasImageIcon = imageIconSrc && orientation === 'vertical';
238
248
  if (!hasImageIcon && !_children && !label) return;
239
249
  var alignment = orientation === 'vertical' && centered ? {
@@ -270,23 +280,23 @@ var ImageItemBase = exports.ImageItemBase = (0, _kind["default"])({
270
280
  children: captions
271
281
  }) : captions;
272
282
  },
273
- className: function className(_ref2) {
274
- var children = _ref2.children,
275
- imageIconSrc = _ref2.imageIconSrc,
276
- label = _ref2.label,
277
- orientation = _ref2.orientation,
278
- styler = _ref2.styler,
279
- wideImage = _ref2.wideImage;
283
+ className: function className(_ref3) {
284
+ var children = _ref3.children,
285
+ imageIconSrc = _ref3.imageIconSrc,
286
+ label = _ref3.label,
287
+ orientation = _ref3.orientation,
288
+ styler = _ref3.styler,
289
+ wideImage = _ref3.wideImage;
280
290
  return styler.append({
281
291
  fullImage: orientation === 'vertical' && !children && !label && !imageIconSrc,
282
292
  wideImage: orientation === 'horizontal' && wideImage
283
293
  });
284
294
  },
285
- selectionComponent: function selectionComponent(_ref3) {
286
- var css = _ref3.css,
287
- orientation = _ref3.orientation,
288
- selected = _ref3.selected,
289
- SelectionComponent = _ref3.selectionComponent;
295
+ selectionComponent: function selectionComponent(_ref4) {
296
+ var css = _ref4.css,
297
+ orientation = _ref4.orientation,
298
+ selected = _ref4.selected,
299
+ SelectionComponent = _ref4.selectionComponent;
290
300
  if (SelectionComponent) {
291
301
  return /*#__PURE__*/(0, _jsxRuntime.jsx)(SelectionComponent, {});
292
302
  } else if (orientation === 'vertical') {
@@ -303,23 +313,19 @@ var ImageItemBase = exports.ImageItemBase = (0, _kind["default"])({
303
313
  }
304
314
  }
305
315
  },
306
- render: function render(_ref4) {
307
- var css = _ref4.css,
308
- disabled = _ref4.disabled,
309
- orientation = _ref4.orientation,
310
- SelectionComponent = _ref4.selectionComponent,
311
- showSelection = _ref4.showSelection,
312
- rest = _objectWithoutProperties(_ref4, _excluded);
316
+ render: function render(_ref5) {
317
+ var css = _ref5.css,
318
+ disabled = _ref5.disabled,
319
+ orientation = _ref5.orientation,
320
+ SelectionComponent = _ref5.selectionComponent,
321
+ showSelection = _ref5.showSelection,
322
+ rest = _objectWithoutProperties(_ref5, _excluded);
313
323
  var isSlotBefore = orientation === 'horizontal' && showSelection;
314
324
  delete rest.centered;
315
325
  delete rest.imageIconComponent;
316
326
  delete rest.imageIconSrc;
317
327
  delete rest.label;
318
328
  delete rest.wideImage;
319
- if (showSelection) {
320
- rest['role'] = 'checkbox';
321
- rest['aria-checked'] = rest.selected;
322
- }
323
329
  return /*#__PURE__*/(0, _jsxRuntime.jsx)(_ImageItem.ImageItem, _objectSpread(_objectSpread({}, rest), {}, {
324
330
  "aria-disabled": disabled,
325
331
  css: css,
@@ -20,16 +20,16 @@
20
20
  line-height: 1.75rem;
21
21
  }
22
22
  :global(.enact-locale-km) .imageItem .caption {
23
- font-size: 1.125rem;
23
+ font-size: var(--primitive-font-size-54);
24
24
  }
25
25
  :global(.enact-locale-si) .imageItem .caption {
26
- font-size: 1.125rem;
26
+ font-size: var(--primitive-font-size-54);
27
27
  }
28
28
  :global(.enact-locale-th) .imageItem .caption {
29
- font-size: 1.125rem;
29
+ font-size: var(--primitive-font-size-54);
30
30
  }
31
31
  :global(.enact-locale-vi) .imageItem .caption {
32
- font-size: 1.125rem;
32
+ font-size: var(--primitive-font-size-54);
33
33
  }
34
34
  .imageItem .label {
35
35
  font-size: var(--primitive-font-size-48);
@@ -37,20 +37,20 @@
37
37
  line-height: 1.25rem;
38
38
  }
39
39
  :global(.enact-locale-km) .imageItem .label {
40
- font-size: 0.75rem;
40
+ font-size: var(--primitive-font-size-36);
41
41
  }
42
42
  :global(.enact-locale-si) .imageItem .label {
43
- font-size: 0.75rem;
43
+ font-size: var(--primitive-font-size-36);
44
44
  }
45
45
  :global(.enact-locale-th) .imageItem .label {
46
- font-size: 0.75rem;
46
+ font-size: var(--primitive-font-size-36);
47
47
  }
48
48
  :global(.enact-locale-vi) .imageItem .label {
49
- font-size: 0.75rem;
49
+ font-size: var(--primitive-font-size-36);
50
50
  }
51
51
  .imageItem.vertical.fullImage {
52
52
  border-radius: 0;
53
- padding: 1.25rem;
53
+ padding: var(--primitive-spacing-60);
54
54
  }
55
55
  .imageItem.vertical.fullImage .image {
56
56
  transition: transform 200ms ease-in-out, box-shadow 200ms ease-in-out;
@@ -71,7 +71,7 @@
71
71
  }
72
72
  .imageItem.vertical:not(.fullImage) {
73
73
  padding: var(--primitive-spacing-24) var(--primitive-spacing-24) var(--primitive-spacing-30);
74
- margin: 0 0.75rem 0.625rem 0.75rem;
74
+ margin: 0 var(--primitive-spacing-36) var(--primitive-spacing-30) var(--primitive-spacing-36);
75
75
  }
76
76
  .imageItem.vertical .selectionContainer {
77
77
  background-color: transparent;
@@ -123,9 +123,9 @@
123
123
  height: 1.375rem;
124
124
  }
125
125
  .imageItem.horizontal {
126
- padding: 0.625rem 1rem;
126
+ padding: var(--primitive-spacing-30) 1rem;
127
127
  align-items: center;
128
- margin: 0 0.75rem 0.625rem 0.75rem;
128
+ margin: 0 var(--primitive-spacing-36) var(--primitive-spacing-30) var(--primitive-spacing-36);
129
129
  }
130
130
  .imageItem.horizontal .image {
131
131
  width: 3.75rem;
@@ -180,7 +180,7 @@
180
180
  border-color: color(from var(--semantic-color-on-surface-main-selected) srgb r g b / 0.7);
181
181
  }
182
182
  .imageItem:global(.neutral).selected.vertical .selectionIcon {
183
- background-color: var(--semantic-color-surface-accent);
183
+ background-color: var(--semantic-color-surface-highlight);
184
184
  color: var(--semantic-color-on-surface-white);
185
185
  }
186
186
  .imageItem:global(.neutral).vertical.fullImage .selectionContainer::after {
@@ -248,7 +248,7 @@
248
248
  }
249
249
  :global(.spotlight-input-key) .imageItem:global(.neutral):global(.spottable):focus.vertical.selected .selectionIcon,
250
250
  :global(.spotlight-input-mouse) .imageItem:global(.neutral):global(.spottable):focus.vertical.selected .selectionIcon {
251
- background-color: var(--semantic-color-surface-accent);
251
+ background-color: var(--semantic-color-surface-highlight);
252
252
  color: var(--semantic-color-on-surface-white);
253
253
  }
254
254
  :global(.spotlight-input-touch) .imageItem:global(.neutral):global(.spottable):active {
@@ -284,7 +284,7 @@
284
284
  box-shadow: 0 0.75rem 0.75rem color(from var(--semantic-color-on-background-black) srgb r g b / 0.35);
285
285
  }
286
286
  :global(.spotlight-input-touch) .imageItem:global(.neutral):global(.spottable):active.vertical.selected .selectionIcon {
287
- background-color: var(--semantic-color-surface-accent);
287
+ background-color: var(--semantic-color-surface-highlight);
288
288
  color: var(--semantic-color-on-surface-white);
289
289
  }
290
290
  :global(.noAnimation) .imageItem:global(.neutral).vertical.fullImage .image {
@@ -332,7 +332,7 @@
332
332
  border-color: color(from var(--semantic-color-on-surface-main-selected) srgb r g b / 0.7);
333
333
  }
334
334
  :global(.enact-a11y-high-contrast) .imageItem:global(.neutral):global(.highContrast).selected.vertical .selectionIcon {
335
- background-color: var(--semantic-color-surface-accent);
335
+ background-color: var(--semantic-color-surface-highlight);
336
336
  color: var(--semantic-color-on-surface-white);
337
337
  }
338
338
  :global(.enact-a11y-high-contrast) .imageItem:global(.neutral):global(.highContrast).vertical.fullImage .selectionContainer::after {
@@ -400,7 +400,7 @@
400
400
  }
401
401
  :global(.spotlight-input-key) :global(.enact-a11y-high-contrast) .imageItem:global(.neutral):global(.highContrast):global(.spottable):focus.vertical.selected .selectionIcon,
402
402
  :global(.spotlight-input-mouse) :global(.enact-a11y-high-contrast) .imageItem:global(.neutral):global(.highContrast):global(.spottable):focus.vertical.selected .selectionIcon {
403
- background-color: var(--semantic-color-surface-accent);
403
+ background-color: var(--semantic-color-surface-highlight);
404
404
  color: var(--semantic-color-on-surface-white);
405
405
  }
406
406
  :global(.spotlight-input-touch) :global(.enact-a11y-high-contrast) .imageItem:global(.neutral):global(.highContrast):global(.spottable):active {
@@ -436,7 +436,7 @@
436
436
  box-shadow: 0 0.75rem 0.75rem color(from var(--semantic-color-on-background-black) srgb r g b / 0.35);
437
437
  }
438
438
  :global(.spotlight-input-touch) :global(.enact-a11y-high-contrast) .imageItem:global(.neutral):global(.highContrast):global(.spottable):active.vertical.selected .selectionIcon {
439
- background-color: var(--semantic-color-surface-accent);
439
+ background-color: var(--semantic-color-surface-highlight);
440
440
  color: var(--semantic-color-on-surface-white);
441
441
  }
442
442
  :global(.noAnimation) :global(.enact-a11y-high-contrast) .imageItem:global(.neutral):global(.highContrast).vertical.fullImage .image {
@@ -484,7 +484,7 @@
484
484
  border-color: color(from var(--semantic-color-on-surface-main-selected) srgb r g b / 0.7);
485
485
  }
486
486
  .imageItem:global(.light).selected.vertical .selectionIcon {
487
- background-color: var(--semantic-color-surface-accent);
487
+ background-color: var(--semantic-color-surface-highlight);
488
488
  color: var(--semantic-color-on-surface-white);
489
489
  }
490
490
  .imageItem:global(.light).vertical.fullImage .selectionContainer::after {
@@ -552,7 +552,7 @@
552
552
  }
553
553
  :global(.spotlight-input-key) .imageItem:global(.light):global(.spottable):focus.vertical.selected .selectionIcon,
554
554
  :global(.spotlight-input-mouse) .imageItem:global(.light):global(.spottable):focus.vertical.selected .selectionIcon {
555
- background-color: var(--semantic-color-surface-accent);
555
+ background-color: var(--semantic-color-surface-highlight);
556
556
  color: var(--semantic-color-on-surface-white);
557
557
  }
558
558
  :global(.spotlight-input-touch) .imageItem:global(.light):global(.spottable):active {
@@ -588,7 +588,7 @@
588
588
  box-shadow: 0 0.75rem 0.75rem color(from var(--semantic-color-on-background-black) srgb r g b / 0.35);
589
589
  }
590
590
  :global(.spotlight-input-touch) .imageItem:global(.light):global(.spottable):active.vertical.selected .selectionIcon {
591
- background-color: var(--semantic-color-surface-accent);
591
+ background-color: var(--semantic-color-surface-highlight);
592
592
  color: var(--semantic-color-on-surface-white);
593
593
  }
594
594
  :global(.noAnimation) .imageItem:global(.light).vertical.fullImage .image {
@@ -641,7 +641,7 @@
641
641
  border-color: color(from var(--semantic-color-on-surface-main-selected) srgb r g b / 0.7);
642
642
  }
643
643
  .imageItem:global(.game).selected.vertical .selectionIcon {
644
- background-color: var(--semantic-color-surface-accent);
644
+ background-color: var(--semantic-color-surface-highlight);
645
645
  color: var(--semantic-color-on-surface-white);
646
646
  }
647
647
  .imageItem:global(.game).vertical.fullImage .selectionContainer::after {
@@ -709,7 +709,7 @@
709
709
  }
710
710
  :global(.spotlight-input-key) .imageItem:global(.game):global(.spottable):focus.vertical.selected .selectionIcon,
711
711
  :global(.spotlight-input-mouse) .imageItem:global(.game):global(.spottable):focus.vertical.selected .selectionIcon {
712
- background-color: var(--semantic-color-surface-accent);
712
+ background-color: var(--semantic-color-surface-highlight);
713
713
  color: var(--semantic-color-on-surface-white);
714
714
  }
715
715
  :global(.spotlight-input-touch) .imageItem:global(.game):global(.spottable):active {
@@ -745,7 +745,7 @@
745
745
  box-shadow: 0 0.75rem 0.75rem color(from var(--semantic-color-on-background-black) srgb r g b / 0.35);
746
746
  }
747
747
  :global(.spotlight-input-touch) .imageItem:global(.game):global(.spottable):active.vertical.selected .selectionIcon {
748
- background-color: var(--semantic-color-surface-accent);
748
+ background-color: var(--semantic-color-surface-highlight);
749
749
  color: var(--semantic-color-on-surface-white);
750
750
  }
751
751
  :global(.noAnimation) .imageItem:global(.game).vertical.fullImage .image {
@@ -797,7 +797,7 @@
797
797
  border-color: color(from var(--semantic-color-on-surface-main-selected) srgb r g b / 0.7);
798
798
  }
799
799
  :global(.green) .imageItem:global(.game).selected.vertical .selectionIcon {
800
- background-color: var(--semantic-color-surface-accent);
800
+ background-color: var(--semantic-color-surface-highlight);
801
801
  color: var(--semantic-color-on-surface-white);
802
802
  }
803
803
  :global(.green) .imageItem:global(.game).vertical.fullImage .selectionContainer::after {
@@ -865,7 +865,7 @@
865
865
  }
866
866
  :global(.spotlight-input-key) :global(.green) .imageItem:global(.game):global(.spottable):focus.vertical.selected .selectionIcon,
867
867
  :global(.spotlight-input-mouse) :global(.green) .imageItem:global(.game):global(.spottable):focus.vertical.selected .selectionIcon {
868
- background-color: var(--semantic-color-surface-accent);
868
+ background-color: var(--semantic-color-surface-highlight);
869
869
  color: var(--semantic-color-on-surface-white);
870
870
  }
871
871
  :global(.spotlight-input-touch) :global(.green) .imageItem:global(.game):global(.spottable):active {
@@ -901,7 +901,7 @@
901
901
  box-shadow: 0 0.75rem 0.75rem color(from var(--semantic-color-on-background-black) srgb r g b / 0.35);
902
902
  }
903
903
  :global(.spotlight-input-touch) :global(.green) .imageItem:global(.game):global(.spottable):active.vertical.selected .selectionIcon {
904
- background-color: var(--semantic-color-surface-accent);
904
+ background-color: var(--semantic-color-surface-highlight);
905
905
  color: var(--semantic-color-on-surface-white);
906
906
  }
907
907
  :global(.noAnimation) :global(.green) .imageItem:global(.game).vertical.fullImage .image {
@@ -953,7 +953,7 @@
953
953
  border-color: color(from var(--semantic-color-on-surface-main-selected) srgb r g b / 0.7);
954
954
  }
955
955
  :global(.orange) .imageItem:global(.game).selected.vertical .selectionIcon {
956
- background-color: var(--semantic-color-surface-accent);
956
+ background-color: var(--semantic-color-surface-highlight);
957
957
  color: var(--semantic-color-on-surface-white);
958
958
  }
959
959
  :global(.orange) .imageItem:global(.game).vertical.fullImage .selectionContainer::after {
@@ -1021,7 +1021,7 @@
1021
1021
  }
1022
1022
  :global(.spotlight-input-key) :global(.orange) .imageItem:global(.game):global(.spottable):focus.vertical.selected .selectionIcon,
1023
1023
  :global(.spotlight-input-mouse) :global(.orange) .imageItem:global(.game):global(.spottable):focus.vertical.selected .selectionIcon {
1024
- background-color: var(--semantic-color-surface-accent);
1024
+ background-color: var(--semantic-color-surface-highlight);
1025
1025
  color: var(--semantic-color-on-surface-white);
1026
1026
  }
1027
1027
  :global(.spotlight-input-touch) :global(.orange) .imageItem:global(.game):global(.spottable):active {
@@ -1057,7 +1057,7 @@
1057
1057
  box-shadow: 0 0.75rem 0.75rem color(from var(--semantic-color-on-background-black) srgb r g b / 0.35);
1058
1058
  }
1059
1059
  :global(.spotlight-input-touch) :global(.orange) .imageItem:global(.game):global(.spottable):active.vertical.selected .selectionIcon {
1060
- background-color: var(--semantic-color-surface-accent);
1060
+ background-color: var(--semantic-color-surface-highlight);
1061
1061
  color: var(--semantic-color-on-surface-white);
1062
1062
  }
1063
1063
  :global(.noAnimation) :global(.orange) .imageItem:global(.game).vertical.fullImage .image {