@enact/limestone 1.3.0 → 1.10.0

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 (200) 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 +13 -2
  7. package/Alert/Alert.js +39 -5
  8. package/Alert/Alert.module.css +48 -1
  9. package/Alert/tests/Alert-specs.js +91 -0
  10. package/BodyText/BodyText.d.ts +5 -4
  11. package/BodyText/BodyText.module.css +7 -7
  12. package/Button/Button.d.ts +17 -12
  13. package/Button/Button.js +1 -1
  14. package/Button/Button.module.css +195 -268
  15. package/Button/tests/Button-specs.js +26 -0
  16. package/CHANGELOG.md +254 -0
  17. package/Card/Card.d.ts +40 -12
  18. package/Card/Card.js +164 -28
  19. package/Card/Card.module.css +277 -58
  20. package/Card/tests/Card-specs.js +67 -3
  21. package/Checkbox/Checkbox.d.ts +8 -7
  22. package/Checkbox/Checkbox.js +3 -1
  23. package/Checkbox/Checkbox.module.css +213 -120
  24. package/Checkbox/tests/Checkbox-specs.js +1 -1
  25. package/CheckboxItem/CheckboxItem.d.ts +22 -7
  26. package/CheckboxItem/CheckboxItem.js +71 -4
  27. package/Chips/Chip.js +72 -13
  28. package/Chips/Chip.module.css +3 -3
  29. package/Chips/Chips.js +37 -17
  30. package/Chips/Chips.module.css +1 -1
  31. package/Chips/tests/Chip-specs.js +43 -13
  32. package/Chips/tests/Chips-specs.js +31 -21
  33. package/ColorPicker/ColorPicker.js +27 -25
  34. package/ContextualMenuDecorator/ContextualMenuDecorator.d.ts +4 -5
  35. package/ContextualPopupDecorator/ContextualPopup.module.css +34 -34
  36. package/ContextualPopupDecorator/ContextualPopupDecorator.js +567 -549
  37. package/DatePicker/DatePicker.d.ts +4 -5
  38. package/DayPicker/DayPicker.d.ts +8 -7
  39. package/DayPicker/DaySelectorDecorator.js +12 -7
  40. package/Dropdown/Dropdown.d.ts +11 -13
  41. package/Dropdown/Dropdown.module.css +13 -9
  42. package/Dropdown/DropdownList.js +80 -54
  43. package/FixedPopupPanels/FixedPopupPanels.d.ts +4 -2
  44. package/FixedPopupPanels/FixedPopupPanels.module.css +18 -18
  45. package/FlexiblePopupPanels/FlexiblePopupPanels.module.css +23 -23
  46. package/FlexiblePopupPanels/useNavButtonFocus.js +7 -10
  47. package/FormCheckboxItem/FormCheckboxItem.d.ts +5 -4
  48. package/Heading/Heading.d.ts +9 -8
  49. package/Heading/Heading.js +2 -2
  50. package/Heading/Heading.module.css +5 -5
  51. package/Icon/Icon.d.ts +15 -4
  52. package/Icon/Icon.js +49 -2
  53. package/Icon/Icon.module.css +1 -1
  54. package/Icon/IconList.js +27 -1
  55. package/IconItem/IconItem.d.ts +13 -12
  56. package/IconItem/IconItem.js +15 -0
  57. package/IconItem/IconItem.module.css +107 -1
  58. package/IconItem/tests/IconItem-specs.js +30 -1
  59. package/Image/Image.d.ts +5 -4
  60. package/Image/Image.js +6 -4
  61. package/ImageItem/ImageItem.d.ts +11 -10
  62. package/ImageItem/ImageItem.js +37 -31
  63. package/ImageItem/ImageItem.module.css +30 -30
  64. package/ImageItem/tests/ImageItem-specs.js +3 -10
  65. package/Input/Input.js +21 -3
  66. package/Input/Input.module.css +37 -8
  67. package/Input/InputField.js +79 -24
  68. package/Input/InputField.module.css +273 -41
  69. package/Input/InputFieldDecoratorIcon.js +1 -0
  70. package/Input/InputFieldSpotlightDecorator.js +257 -228
  71. package/Input/index.d.ts +120 -111
  72. package/Input/tests/Input-specs.js +26 -0
  73. package/Input/tests/InputField-specs.js +170 -3
  74. package/Input/tests/InputPopup-specs.js +1 -1
  75. package/Item/Item.d.ts +16 -9
  76. package/Item/Item.js +20 -2
  77. package/Item/Item.module.css +1 -1
  78. package/KeyGuide/KeyGuide.d.ts +8 -7
  79. package/KeyGuide/KeyGuide.js +29 -27
  80. package/KeyGuide/KeyGuide.module.css +25 -1
  81. package/Marquee/Marquee.d.ts +2 -4
  82. package/MediaOverlay/MediaOverlay.d.ts +12 -11
  83. package/MediaOverlay/MediaOverlay.js +43 -21
  84. package/MediaOverlay/MediaOverlay.module.css +114 -15
  85. package/MediaOverlay/tests/MediaOverlay-specs.js +29 -0
  86. package/MediaPlayer/MediaControls.js +195 -13
  87. package/MediaPlayer/MediaControls.module.css +3 -2
  88. package/MediaPlayer/MediaSlider.module.css +7 -20
  89. package/MediaPlayer/index.d.ts +59 -7
  90. package/MediaPlayer/tests/util-specs.js +4 -1
  91. package/PageViews/PageViews.js +232 -82
  92. package/PageViews/PageViews.module.css +3 -0
  93. package/PageViews/PageViewsRouter.js +100 -42
  94. package/PageViews/tests/PageViews-specs.js +171 -0
  95. package/Panels/Header.js +54 -34
  96. package/Panels/Header.module.css +83 -31
  97. package/Panels/Panel.module.css +1 -1
  98. package/Panels/index.d.ts +7 -8
  99. package/Picker/Picker.d.ts +4 -5
  100. package/Picker/Picker.module.css +2 -2
  101. package/Popup/Popup.js +245 -242
  102. package/Popup/Popup.module.css +24 -24
  103. package/PopupTabLayout/PopupTabLayout.d.ts +5 -7
  104. package/PopupTabLayout/PopupTabLayout.js +26 -18
  105. package/PopupTabLayout/PopupTabLayout.module.css +53 -16
  106. package/PopupTabLayout/PopupTabLayoutStateContext.js +8 -0
  107. package/ProgressBar/ProgressBar.d.ts +5 -4
  108. package/ProgressBar/ProgressBarTooltip.module.css +12 -12
  109. package/ProgressButton/ProgressButton.d.ts +4 -5
  110. package/QuickGuidePanels/QuickGuidePanels.module.css +2 -2
  111. package/RadioItem/RadioItem.d.ts +18 -5
  112. package/RadioItem/RadioItem.js +69 -2
  113. package/RadioItem/RadioItem.module.css +36 -36
  114. package/RangePicker/RangePicker.module.css +2 -2
  115. package/Scroller/EditableWrapper.js +28 -18
  116. package/Scroller/Scroller.d.ts +20 -16
  117. package/Scroller/Scroller.js +20 -13
  118. package/Scroller/Scroller.module.css +4 -4
  119. package/Scroller/useThemeScroller.js +3 -3
  120. package/Slider/Slider.d.ts +20 -14
  121. package/Slider/Slider.js +71 -14
  122. package/Slider/Slider.module.css +464 -91
  123. package/Slider/SliderBehaviorDecorator.js +16 -14
  124. package/Slider/tests/Slider-specs.js +53 -1
  125. package/Slider/utils.js +23 -7
  126. package/Spinner/Spinner.d.ts +5 -4
  127. package/Spinner/Spinner.js +10 -8
  128. package/Spinner/Spinner.module.css +9 -9
  129. package/Steps/Steps.d.ts +5 -4
  130. package/Steps/Steps.js +9 -5
  131. package/Switch/Switch.d.ts +8 -7
  132. package/Switch/Switch.module.css +100 -13
  133. package/SwitchItem/SwitchItem.d.ts +9 -6
  134. package/TabLayout/RefocusDecorator.js +26 -18
  135. package/TabLayout/TabGroup.js +3 -2
  136. package/TabLayout/TabGroup.module.css +2 -2
  137. package/TabLayout/TabLayout.d.ts +6 -0
  138. package/TabLayout/TabLayout.js +11 -1
  139. package/TabLayout/TabLayout.module.css +18 -0
  140. package/TabLayout/tests/TabGroup-specs.js +1 -1
  141. package/TabLayout/tests/TabLayout-specs.js +52 -0
  142. package/ThemeDecorator/AccessibilityDecorator.js +12 -11
  143. package/ThemeDecorator/I18nFontDecorator.js +6 -4
  144. package/ThemeDecorator/ThemeDecorator.d.ts +16 -10
  145. package/ThemeDecorator/ThemeDecorator.js +24 -9
  146. package/ThemeDecorator/fontGenerator.js +1 -1
  147. package/ThemeDecorator/screenTypes.json +1 -0
  148. package/TimePicker/TimePicker.module.css +1 -1
  149. package/TimePicker/TimePickerBase.js +5 -3
  150. package/TooltipDecorator/Tooltip.module.css +1 -2
  151. package/TooltipDecorator/TooltipDecorator.js +12 -7
  152. package/TooltipDecorator/tests/useTooltip-specs.js +5 -2
  153. package/TooltipDecorator/tests/util-specs.js +12 -0
  154. package/TooltipDecorator/useTooltip.js +1 -1
  155. package/TooltipDecorator/util.js +18 -11
  156. package/VideoPlayer/Feedback.js +3 -0
  157. package/VideoPlayer/Feedback.module.css +5 -9
  158. package/VideoPlayer/FeedbackIcons.js +1 -1
  159. package/VideoPlayer/FeedbackTooltip.module.css +55 -11
  160. package/VideoPlayer/VideoPlayer.d.ts +44 -18
  161. package/VideoPlayer/VideoPlayer.js +153 -47
  162. package/VideoPlayer/VideoPlayer.module.css +28 -11
  163. package/VirtualList/VirtualList.d.ts +9 -2
  164. package/VirtualList/VirtualList.js +51 -24
  165. package/VirtualList/tests/VirtualGridList-translate-specs.js +3 -0
  166. package/VirtualList/tests/VirtualList-specs.js +28 -1
  167. package/VirtualList/tests/VirtualList-translate-specs.js +4 -1
  168. package/VirtualList/useSpotlight.js +1 -1
  169. package/WizardPanels/WizardPanels.module.css +2 -2
  170. package/WizardPanels/index.d.ts +4 -2
  171. package/fonts/Limestone_Icons.ttf +0 -0
  172. package/internal/$L/$L.js +3 -3
  173. package/internal/AsyncRenderChildren/AsyncRenderChildren.js +9 -5
  174. package/internal/AsyncRenderChildren/tests/AsyncRenderChildren-specs.js +4 -1
  175. package/internal/DateComponentPicker/DateComponentPicker.module.css +2 -2
  176. package/internal/DateTime/DateTime.module.css +1 -0
  177. package/internal/DateTime/DateTimeDecorator.js +5 -4
  178. package/internal/Panels/PanelsRouter.js +48 -31
  179. package/internal/Panels/useAutoFocus.js +10 -6
  180. package/internal/Panels/useFocusOnTransition.js +4 -3
  181. package/internal/Picker/Picker.js +7 -5
  182. package/internal/Picker/Picker.module.css +2 -2
  183. package/internal/Picker/SpottablePicker.js +15 -13
  184. package/internal/SharedStateDecorator/SharedStateDecorator.js +78 -99
  185. package/internal/validators/validators.js +21 -2
  186. package/package.json +18 -15
  187. package/styles/colors-highcontrast.less +9 -1
  188. package/styles/colors.less +12 -7
  189. package/styles/motion-mixins.less +66 -0
  190. package/styles/motions.less +78 -0
  191. package/styles/variables.less +176 -150
  192. package/useScroll/HoverToScroll.js +23 -17
  193. package/useScroll/Scrollbar.js +14 -10
  194. package/useScroll/ScrollbarPlaceholder.js +3 -5
  195. package/useScroll/ScrollbarTrack.js +7 -5
  196. package/useScroll/ScrollbarTrack.module.css +8 -8
  197. package/useScroll/useEvent.js +14 -3
  198. package/useScroll/useScroll.js +12 -2
  199. package/useScroll/useScroll.module.css +6 -6
  200. package/.travis.yml +0 -40
package/Slider/Slider.js CHANGED
@@ -23,6 +23,7 @@ var _ProgressBar = _interopRequireDefault(require("@enact/ui/ProgressBar"));
23
23
  var _Pure = _interopRequireDefault(require("@enact/ui/internal/Pure"));
24
24
  var _Slottable = _interopRequireDefault(require("@enact/ui/Slottable"));
25
25
  var _Slider = _interopRequireDefault(require("@enact/ui/Slider"));
26
+ var _Touchable = _interopRequireDefault(require("@enact/ui/Touchable"));
26
27
  var _classnames2 = _interopRequireDefault(require("classnames"));
27
28
  var _propTypes = _interopRequireDefault(require("prop-types"));
28
29
  var _anyPass = _interopRequireDefault(require("ramda/src/anyPass"));
@@ -35,7 +36,7 @@ var _SliderBehaviorDecorator = _interopRequireDefault(require("./SliderBehaviorD
35
36
  var _utils = require("./utils");
36
37
  var _SliderModule = _interopRequireDefault(require("./Slider.module.css"));
37
38
  var _jsxRuntime = require("react/jsx-runtime");
38
- var _excluded = ["active", "className", "css", "disabled", "focused", "keyFrequency", "showAnchor"];
39
+ var _excluded = ["active", "className", "colorPicker", "css", "disabled", "focused", "keyFrequency", "max", "min", "pressed", "showAnchor", "showMinMax"];
39
40
  /**
40
41
  * Provides Limestone-themed slider components and behaviors.
41
42
  *
@@ -65,11 +66,13 @@ function _objectWithoutPropertiesLoose(r, e) { if (null == r) return {}; var t =
65
66
  var sliderDefaultProps = {
66
67
  activateOnSelect: false,
67
68
  active: false,
69
+ colorPicker: false,
68
70
  disabled: false,
69
71
  keyFrequency: [1],
70
72
  max: 100,
71
73
  min: 0,
72
74
  orientation: 'horizontal',
75
+ pressed: false,
73
76
  step: 1,
74
77
  wheelInterval: 0
75
78
  };
@@ -84,15 +87,21 @@ var sliderDefaultProps = {
84
87
  * @ui
85
88
  * @public
86
89
  */
87
- var SliderBase = exports.SliderBase = function SliderBase(props) {
90
+ var _SliderBase = exports.SliderBase = function SliderBase(props) {
88
91
  var sliderProps = (0, _util.setDefaultProps)(props, sliderDefaultProps);
92
+ (0, _util.checkPropTypes)(_SliderBase, sliderProps);
89
93
  var active = sliderProps.active,
90
94
  className = sliderProps.className,
95
+ colorPicker = sliderProps.colorPicker,
91
96
  css = sliderProps.css,
92
97
  disabled = sliderProps.disabled,
93
98
  focused = sliderProps.focused,
94
99
  keyFrequency = sliderProps.keyFrequency,
100
+ max = sliderProps.max,
101
+ min = sliderProps.min,
102
+ pressed = sliderProps.pressed,
95
103
  showAnchor = sliderProps.showAnchor,
104
+ showMinMax = sliderProps.showMinMax,
96
105
  rest = _objectWithoutProperties(sliderProps, _excluded);
97
106
  (0, _validators.validateSteppedOnce)(function (p) {
98
107
  return p.knobStep;
@@ -108,12 +117,13 @@ var SliderBase = exports.SliderBase = function SliderBase(props) {
108
117
  valueName: 'max'
109
118
  })(sliderProps);
110
119
  var tooltip = sliderProps.tooltip === true ? _ProgressBar2.ProgressBarTooltip : sliderProps.tooltip;
120
+ var context = (0, _react.useMemo)(function () {
121
+ return {
122
+ lastWheelTimeStamp: 0
123
+ };
124
+ }, []);
111
125
  var spotlightAccelerator = (0, _react.useRef)();
112
126
  var ref = (0, _react.useRef)();
113
- var _useRef = (0, _react.useRef)({
114
- lastWheelTimeStamp: 0
115
- }),
116
- context = _useRef.current;
117
127
  var handlers = (0, _useHandlers["default"])({
118
128
  onBlur: (0, _handle.handle)((0, _handle.forward)('onBlur'), (0, _handle.forProp)('active', true), (0, _handle.forward)('onActivate')),
119
129
  onKeyDown: (0, _handle.handle)((0, _handle.forProp)('disabled', false), (0, _handle.forwardWithPrevent)('onKeyDown'), (0, _anyPass["default"])([_utils.handleIncrement, _utils.handleDecrement])),
@@ -129,7 +139,7 @@ var SliderBase = exports.SliderBase = function SliderBase(props) {
129
139
  customCss: css,
130
140
  publicClassNames: true
131
141
  });
132
- var componentClassName = (0, _classnames2["default"])(_SliderModule["default"].slider, className, _defineProperty(_defineProperty({}, mergedCss.active, active), mergedCss.showAnchor, showAnchor), css && css.slider);
142
+ var componentClassName = (0, _classnames2["default"])(_SliderModule["default"].slider, className, _defineProperty(_defineProperty(_defineProperty(_defineProperty(_defineProperty({}, mergedCss.active, active), mergedCss.colorPicker, colorPicker), mergedCss.hasMinMax, showMinMax), mergedCss.pressed, pressed), mergedCss.showAnchor, showAnchor), css && css.slider);
133
143
  (0, _react.useEffect)(function () {
134
144
  spotlightAccelerator.current = new _Accelerator["default"](keyFrequency);
135
145
  }, [keyFrequency]);
@@ -155,25 +165,47 @@ var SliderBase = exports.SliderBase = function SliderBase(props) {
155
165
  delete rest.step;
156
166
  delete rest.tooltip;
157
167
  delete rest.wheelInterval;
168
+ var sliderMax = colorPicker ? 360 : max;
169
+ var sliderMin = colorPicker ? 0 : min;
170
+ var sliderStep = colorPicker ? 1 : step;
171
+ var styleObject = {
172
+ '--semantic-color-surface-default-handle': "hsla(".concat(rest.value ? rest.value : 0, ", 100%, 50%, 1)"),
173
+ '--semantic-color-surface-default-focused': "hsla(".concat(rest.value ? rest.value : 0, ", 100%, 50%, 1)")
174
+ };
158
175
  return /*#__PURE__*/(0, _jsxRuntime.jsx)(_Slider["default"], _objectSpread(_objectSpread(_objectSpread({}, rest), handlers), {}, {
159
176
  "aria-disabled": disabled,
177
+ colorPicker: colorPicker,
160
178
  className: componentClassName,
161
179
  css: mergedCss,
162
180
  disabled: disabled,
181
+ max: sliderMax,
182
+ min: sliderMin,
163
183
  progressBarComponent: /*#__PURE__*/(0, _jsxRuntime.jsx)(_ProgressBar["default"], {
164
- css: mergedCss
184
+ css: mergedCss,
185
+ style: {
186
+ backgroundImage: colorPicker && (0, _utils.hueGradient)(rest.orientation)
187
+ }
165
188
  }),
166
189
  ref: ref,
167
- step: step,
190
+ step: sliderStep,
191
+ style: colorPicker && styleObject,
168
192
  tooltipComponent: /*#__PURE__*/(0, _jsxRuntime.jsx)(_ComponentOverride["default"], {
169
193
  component: tooltip,
170
194
  css: mergedCss,
171
195
  visible: focused
172
- })
196
+ }),
197
+ minMaxComponent: showMinMax ? /*#__PURE__*/(0, _jsxRuntime.jsxs)("div", {
198
+ className: mergedCss.minMax,
199
+ children: [/*#__PURE__*/(0, _jsxRuntime.jsx)("div", {
200
+ children: sliderMin
201
+ }), /*#__PURE__*/(0, _jsxRuntime.jsx)("div", {
202
+ children: sliderMax
203
+ })]
204
+ }) : null
173
205
  }));
174
206
  };
175
- SliderBase.displayName = 'Slider';
176
- SliderBase.propTypes = /** @lends limestone/Slider.SliderBase.prototype */{
207
+ _SliderBase.displayName = 'Slider';
208
+ _SliderBase.propTypes = /** @lends limestone/Slider.SliderBase.prototype */{
177
209
  /**
178
210
  * Activates the component when selected so that it may be manipulated via the directional
179
211
  * input keys.
@@ -189,6 +221,14 @@ SliderBase.propTypes = /** @lends limestone/Slider.SliderBase.prototype */{
189
221
  * @public
190
222
  */
191
223
  active: _propTypes["default"].bool,
224
+ /**
225
+ * Indicates if this component will be used as a colorPicker.
226
+ *
227
+ * @type {Boolean}
228
+ * @default false
229
+ * @public
230
+ */
231
+ colorPicker: _propTypes["default"].bool,
192
232
  /**
193
233
  * Customizes the component by mapping the supplied collection of CSS class names to the
194
234
  * corresponding internal elements and states of this component.
@@ -304,6 +344,14 @@ SliderBase.propTypes = /** @lends limestone/Slider.SliderBase.prototype */{
304
344
  * @public
305
345
  */
306
346
  onKeyUp: _propTypes["default"].func,
347
+ /**
348
+ * Indicates if the component is pressed.
349
+ *
350
+ * @type {Boolean}
351
+ * @default false
352
+ * @private
353
+ */
354
+ pressed: _propTypes["default"].bool,
307
355
  /**
308
356
  * Displays an anchor at `progressAnchor`.
309
357
  *
@@ -311,6 +359,13 @@ SliderBase.propTypes = /** @lends limestone/Slider.SliderBase.prototype */{
311
359
  * @public
312
360
  */
313
361
  showAnchor: _propTypes["default"].bool,
362
+ /**
363
+ * Displays the min and max values at the edges of the slider.
364
+ *
365
+ * @type {Boolean}
366
+ * @public
367
+ */
368
+ showMinMax: _propTypes["default"].bool,
314
369
  /**
315
370
  * The amount to increment or decrement the value.
316
371
  *
@@ -391,7 +446,9 @@ SliderBase.propTypes = /** @lends limestone/Slider.SliderBase.prototype */{
391
446
  * @mixes ui/Slider.SliderDecorator
392
447
  * @public
393
448
  */
394
- var SliderDecorator = exports.SliderDecorator = (0, _compose["default"])(_Pure["default"], _Changeable["default"], _SliderBehaviorDecorator["default"], _Spottable["default"], (0, _Slottable["default"])({
449
+ var SliderDecorator = exports.SliderDecorator = (0, _compose["default"])(_Pure["default"], (0, _Touchable["default"])({
450
+ activeProp: 'pressed'
451
+ }), _Changeable["default"], _SliderBehaviorDecorator["default"], _Spottable["default"], (0, _Slottable["default"])({
395
452
  slots: ['knob', 'tooltip']
396
453
  }), _Skinnable["default"]);
397
454
 
@@ -424,7 +481,7 @@ var SliderDecorator = exports.SliderDecorator = (0, _compose["default"])(_Pure["
424
481
  * @public
425
482
  */
426
483
 
427
- var Slider = exports.Slider = SliderDecorator(SliderBase);
484
+ var Slider = exports.Slider = SliderDecorator(_SliderBase);
428
485
  Slider.defaultPropValues = sliderDefaultProps;
429
486
 
430
487
  /**