@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
@@ -6,8 +6,10 @@ import * as React from "react";
6
6
  type Omit<T, K extends keyof T> = Pick<T, Exclude<keyof T, K>>;
7
7
  type Merge<M, N> = Omit<M, Extract<keyof M, keyof N>> & N;
8
8
 
9
- export interface WizardPanelsProps
10
- extends Merge<WizardPanelsBaseProps, ui_Changeable_ChangeableProps> {
9
+ export interface WizardPanelsProps extends Merge<
10
+ WizardPanelsBaseProps,
11
+ ui_Changeable_ChangeableProps
12
+ > {
11
13
  /**
12
14
  * Called when the back button is pressed.
13
15
  *
Binary file
package/internal/$L/$L.js CHANGED
@@ -15,7 +15,7 @@ function ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbol
15
15
  function _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
16
16
  function _defineProperty(e, r, t) { return (r = _toPropertyKey(r)) in e ? Object.defineProperty(e, r, { value: t, enumerable: !0, configurable: !0, writable: !0 }) : e[r] = t, e; }
17
17
  function _toPropertyKey(t) { var i = _toPrimitive(t, "string"); return "symbol" == typeof i ? i : i + ""; }
18
- function _toPrimitive(t, r) { if ("object" != typeof t || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || "default"); if ("object" != typeof i) return i; throw new TypeError("@@toPrimitive must return a primitive value."); } return ("string" === r ? String : Number)(t); } /* global ILIB_SANDSTONE_PATH */
18
+ function _toPrimitive(t, r) { if ("object" != typeof t || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || "default"); if ("object" != typeof i) return i; throw new TypeError("@@toPrimitive must return a primitive value."); } return ("string" === r ? String : Number)(t); } /* global ILIB_LIMESTONE_PATH */
19
19
  // The ilib.ResBundle for the active locale used by $L
20
20
  var resBundle;
21
21
 
@@ -37,8 +37,8 @@ function getResBundle() {
37
37
  */
38
38
  function createResBundle(options) {
39
39
  var opts = options;
40
- if (typeof ILIB_SANDSTONE_PATH !== 'undefined') {
41
- opts.basePath = ILIB_SANDSTONE_PATH;
40
+ if (typeof ILIB_LIMESTONE_PATH !== 'undefined') {
41
+ opts.basePath = ILIB_LIMESTONE_PATH;
42
42
  }
43
43
  if (!opts.onLoad) return;
44
44
 
@@ -1,7 +1,7 @@
1
1
  .dateComponentPicker {
2
2
  display: inline-block;
3
3
  text-align: center;
4
- margin: 0 0.5rem;
4
+ margin: 0 var(--primitive-spacing-24);
5
5
  vertical-align: inherit;
6
6
  }
7
7
  .dateComponentPicker .label {
@@ -20,7 +20,7 @@
20
20
  :global(.enact-locale-non-latin) .dateComponentPicker .label {
21
21
  font-family: "Limestone";
22
22
  font-weight: var(--primitive-font-weight-light);
23
- font-size: 1.125rem;
23
+ font-size: var(--primitive-font-size-54);
24
24
  font-style: normal;
25
25
  }
26
26
  :global(.enact-locale-km) .dateComponentPicker .label {
@@ -2,6 +2,7 @@
2
2
  display: inline-block;
3
3
  }
4
4
  .dateTime .heading {
5
+ font-size: var(--primitive-font-size-66);
5
6
  margin: 0 0 var(--primitive-spacing-132);
6
7
  border-bottom: none;
7
8
  }
@@ -13,7 +13,7 @@ var _useAutoFocus = _interopRequireDefault(require("./useAutoFocus"));
13
13
  var _useFocusOnTransition2 = _interopRequireDefault(require("./useFocusOnTransition"));
14
14
  var _useToggleRole2 = _interopRequireDefault(require("./useToggleRole"));
15
15
  var _jsxRuntime = require("react/jsx-runtime");
16
- var _excluded = ["children", "componentRef", "data-spotlight-id", "index", "onTransition", "onWillTransition", "rtl", "subtitle", "title"],
16
+ var _excluded = ["autoFocus", "children", "componentRef", "data-spotlight-id", "index", "onTransition", "onWillTransition", "rtl", "subtitle", "title"],
17
17
  _excluded2 = ["onWillTransition"];
18
18
  function _interopRequireDefault(e) { return e && e.__esModule ? e : { "default": e }; }
19
19
  function ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }
@@ -67,7 +67,9 @@ var defaultConfig = {
67
67
  */
68
68
  var PanelsRouter = exports.PanelsRouter = (0, _hoc["default"])(defaultConfig, function (config, Wrapped) {
69
69
  var PanelsProvider = function PanelsProvider(_ref) {
70
- var children = _ref.children,
70
+ var _ref$autoFocus = _ref.autoFocus,
71
+ autoFocus = _ref$autoFocus === void 0 ? 'default-element' : _ref$autoFocus,
72
+ children = _ref.children,
71
73
  componentRef = _ref.componentRef,
72
74
  spotlightId = _ref['data-spotlight-id'],
73
75
  _ref$index = _ref.index,
@@ -87,11 +89,11 @@ var PanelsRouter = exports.PanelsRouter = (0, _hoc["default"])(defaultConfig, fu
87
89
  var _useToggleRole = (0, _useToggleRole2["default"])(),
88
90
  a11yRef = _useToggleRole.ref,
89
91
  a11yOnWillTransition = _useToggleRole.onWillTransition;
90
- var autoFocus = (0, _useAutoFocus["default"])({
91
- autoFocus: 'default-element',
92
+ var autoFocusRef = (0, _useAutoFocus["default"])({
93
+ autoFocus: autoFocus,
92
94
  hideChildren: panel == null
93
95
  });
94
- var ref = (0, _useChainRefs["default"])(autoFocus, a11yRef, componentRef);
96
+ var ref = (0, _useChainRefs["default"])(autoFocusRef, a11yRef, componentRef);
95
97
  var _useReverseTransition = useReverseTransition(index, rtl),
96
98
  reverseTransition = _useReverseTransition.reverseTransition,
97
99
  prevIndex = _useReverseTransition.prevIndex;
@@ -139,6 +141,15 @@ var PanelsRouter = exports.PanelsRouter = (0, _hoc["default"])(defaultConfig, fu
139
141
  });
140
142
  };
141
143
  PanelsProvider.propTypes = /** @lends limestone/internal/Panels.PanelsRouter.prototype */{
144
+ /**
145
+ * Sets the strategy used to automatically focus an element within the Panels upon render.
146
+ * When set to 'none', focus is not set only on the first render.
147
+ *
148
+ * @type {('default-element'|'last-focused'|'none'|String)}
149
+ * @default 'default-element'
150
+ * @private
151
+ */
152
+ autoFocus: _propTypes2["default"].string,
142
153
  /**
143
154
  * Obtains a reference to the root node.
144
155
  *
@@ -2,7 +2,7 @@
2
2
  vertical-align: bottom;
3
3
  position: relative;
4
4
  text-align: center;
5
- margin: 0 0.75rem;
5
+ margin: 0 var(--primitive-spacing-36);
6
6
  }
7
7
  .picker .sizingPlaceholder,
8
8
  .picker .valueWrapper {
@@ -195,7 +195,7 @@
195
195
  .picker.joined.horizontal.arrow .decrementer {
196
196
  line-height: 2rem;
197
197
  height: 2.25rem;
198
- margin: 0.1875rem 0.75rem;
198
+ margin: 0.1875rem var(--primitive-spacing-36);
199
199
  padding: 0 0.375rem;
200
200
  }
201
201
  .picker.joined.vertical .valueWrapper {
@@ -12,19 +12,15 @@ function _interopRequireDefault(e) { return e && e.__esModule ? e : { "default":
12
12
  function ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }
13
13
  function _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
14
14
  function _defineProperty(e, r, t) { return (r = _toPropertyKey(r)) in e ? Object.defineProperty(e, r, { value: t, enumerable: !0, configurable: !0, writable: !0 }) : e[r] = t, e; }
15
- function _objectDestructuringEmpty(t) { if (null == t) throw new TypeError("Cannot destructure " + t); }
16
- function _classCallCheck(a, n) { if (!(a instanceof n)) throw new TypeError("Cannot call a class as a function"); }
17
- function _defineProperties(e, r) { for (var t = 0; t < r.length; t++) { var o = r[t]; o.enumerable = o.enumerable || !1, o.configurable = !0, "value" in o && (o.writable = !0), Object.defineProperty(e, _toPropertyKey(o.key), o); } }
18
- function _createClass(e, r, t) { return r && _defineProperties(e.prototype, r), t && _defineProperties(e, t), Object.defineProperty(e, "prototype", { writable: !1 }), e; }
19
15
  function _toPropertyKey(t) { var i = _toPrimitive(t, "string"); return "symbol" == typeof i ? i : i + ""; }
20
16
  function _toPrimitive(t, r) { if ("object" != typeof t || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || "default"); if ("object" != typeof i) return i; throw new TypeError("@@toPrimitive must return a primitive value."); } return ("string" === r ? String : Number)(t); }
21
- function _callSuper(t, o, e) { return o = _getPrototypeOf(o), _possibleConstructorReturn(t, _isNativeReflectConstruct() ? Reflect.construct(o, e || [], _getPrototypeOf(t).constructor) : o.apply(t, e)); }
22
- function _possibleConstructorReturn(t, e) { if (e && ("object" == typeof e || "function" == typeof e)) return e; if (void 0 !== e) throw new TypeError("Derived constructors may only return object or undefined"); return _assertThisInitialized(t); }
23
- function _assertThisInitialized(e) { if (void 0 === e) throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); return e; }
24
- function _isNativeReflectConstruct() { try { var t = !Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); } catch (t) {} return (_isNativeReflectConstruct = function _isNativeReflectConstruct() { return !!t; })(); }
25
- function _getPrototypeOf(t) { return _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf.bind() : function (t) { return t.__proto__ || Object.getPrototypeOf(t); }, _getPrototypeOf(t); }
26
- function _inherits(t, e) { if ("function" != typeof e && null !== e) throw new TypeError("Super expression must either be null or a function"); t.prototype = Object.create(e && e.prototype, { constructor: { value: t, writable: !0, configurable: !0 } }), Object.defineProperty(t, "prototype", { writable: !1 }), e && _setPrototypeOf(t, e); }
27
- function _setPrototypeOf(t, e) { return _setPrototypeOf = Object.setPrototypeOf ? Object.setPrototypeOf.bind() : function (t, e) { return t.__proto__ = e, t; }, _setPrototypeOf(t, e); }
17
+ function _objectDestructuringEmpty(t) { if (null == t) throw new TypeError("Cannot destructure " + t); }
18
+ function _slicedToArray(r, e) { return _arrayWithHoles(r) || _iterableToArrayLimit(r, e) || _unsupportedIterableToArray(r, e) || _nonIterableRest(); }
19
+ function _nonIterableRest() { throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); }
20
+ function _unsupportedIterableToArray(r, a) { if (r) { if ("string" == typeof r) return _arrayLikeToArray(r, a); var t = {}.toString.call(r).slice(8, -1); return "Object" === t && r.constructor && (t = r.constructor.name), "Map" === t || "Set" === t ? Array.from(r) : "Arguments" === t || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(t) ? _arrayLikeToArray(r, a) : void 0; } }
21
+ function _arrayLikeToArray(r, a) { (null == a || a > r.length) && (a = r.length); for (var e = 0, n = Array(a); e < a; e++) n[e] = r[e]; return n; }
22
+ function _iterableToArrayLimit(r, l) { var t = null == r ? null : "undefined" != typeof Symbol && r[Symbol.iterator] || r["@@iterator"]; if (null != t) { var e, n, i, u, a = [], f = !0, o = !1; try { if (i = (t = t.call(r)).next, 0 === l) { if (Object(t) !== t) return; f = !1; } else for (; !(f = (e = i.call(t)).done) && (a.push(e.value), a.length !== l); f = !0); } catch (r) { o = !0, n = r; } finally { try { if (!f && null != t["return"] && (u = t["return"](), Object(u) !== u)) return; } finally { if (o) throw n; } } return a; } }
23
+ function _arrayWithHoles(r) { if (Array.isArray(r)) return r; }
28
24
  var SharedState = exports.SharedState = /*#__PURE__*/(0, _react.createContext)(null);
29
25
  var defaultConfig = {
30
26
  idProp: 'id',
@@ -60,100 +56,80 @@ var defaultConfig = {
60
56
  * @private
61
57
  */
62
58
  var SharedStateDecorator = exports.SharedStateDecorator = (0, _hoc["default"])(defaultConfig, function (config, Wrapped) {
63
- var _Class;
64
59
  var idProp = config.idProp,
65
60
  updateOnMount = config.updateOnMount;
66
- return _Class = /*#__PURE__*/function (_Component) {
67
- function _Class(props) {
68
- var _this;
69
- _classCallCheck(this, _Class);
70
- _this = _callSuper(this, _Class, [props]);
71
- _this.data = {};
72
- _this.sharedState = _this.initSharedState();
73
- _this.state = {
74
- updateOnMount: false
75
- };
76
- return _this;
77
- }
78
- _inherits(_Class, _Component);
79
- return _createClass(_Class, [{
80
- key: "componentDidMount",
81
- value: function componentDidMount() {
82
- this.loadFromContext();
83
- }
84
- }, {
85
- key: "componentDidUpdate",
86
- value: function componentDidUpdate(prevProps) {
87
- if (!prevProps.noSharedState && this.props.noSharedState) {
88
- this.data = {};
89
- } else if (prevProps.noSharedState && !this.props.noSharedState) {
90
- this.loadFromContext();
91
- }
92
- }
93
- }, {
94
- key: "isUpdateable",
95
- value: function isUpdateable() {
96
- var _this$props = this.props,
97
- id = _this$props[idProp],
98
- noSharedState = _this$props.noSharedState;
99
- return !noSharedState && (id || id === 0);
100
- }
101
- }, {
102
- key: "initSharedState",
103
- value: function initSharedState() {
104
- var _this2 = this;
105
- return {
106
- set: function set(key, value) {
107
- var id = _this2.props[idProp];
108
- if (_this2.isUpdateable()) {
109
- _this2.data[id] = _this2.data[id] || {};
110
- _this2.data[id][key] = value;
111
- }
112
- },
113
- get: function get(key) {
114
- var id = _this2.props[idProp];
115
- return _this2.isUpdateable() && _this2.data[id] ? _this2.data[id][key] : null;
116
- },
117
- "delete": function _delete(key) {
118
- var id = _this2.props[idProp];
119
- if (_this2.isUpdateable() && _this2.data[id]) {
120
- delete _this2.data[id][key];
121
- }
122
- }
123
- };
124
- }
125
- }, {
126
- key: "loadFromContext",
127
- value: function loadFromContext() {
128
- var _this$props2 = this.props,
129
- id = _this$props2[idProp],
130
- noSharedState = _this$props2.noSharedState;
131
- if (!noSharedState && this.context && this.context.get) {
132
- var data = this.context.get(id);
133
- if (data) {
134
- this.data = data;
135
- } else {
136
- this.context.set(id, this.data);
61
+
62
+ // eslint-disable-next-line no-shadow
63
+ var SharedStateDecorator = function SharedStateDecorator(props) {
64
+ var context = (0, _react.useContext)(SharedState);
65
+ var data = (0, _react.useRef)({});
66
+ var _useState = (0, _react.useState)(false),
67
+ _useState2 = _slicedToArray(_useState, 2),
68
+ setUpdateOnMountState = _useState2[1];
69
+ var isUpdatable = (0, _react.useCallback)(function () {
70
+ var id = props[idProp],
71
+ noSharedState = props.noSharedState;
72
+ return !noSharedState && (id || id === 0);
73
+ }, [props]);
74
+ var initSharedState = (0, _react.useCallback)(function () {
75
+ return {
76
+ set: function set(key, value) {
77
+ var id = props[idProp];
78
+ if (isUpdatable()) {
79
+ data.current[id] = data.current[id] || {};
80
+ data.current[id][key] = value;
137
81
  }
138
- if (updateOnMount) {
139
- this.setState({
140
- updateOnMount: true
141
- });
82
+ },
83
+ get: function get(key) {
84
+ var id = props[idProp];
85
+ return isUpdatable() && data.current[id] ? data.current[id][key] : null;
86
+ },
87
+ "delete": function _delete(key) {
88
+ var id = props[idProp];
89
+ if (isUpdatable() && data.current[id]) {
90
+ delete data.current[id][key];
142
91
  }
143
92
  }
93
+ };
94
+ }, [isUpdatable, props]);
95
+ var loadFromContext = (0, _react.useCallback)(function () {
96
+ var id = props[idProp],
97
+ noSharedState = props.noSharedState;
98
+ if (!noSharedState && context && context.get) {
99
+ var contextData = context.get(id);
100
+ if (contextData) {
101
+ data.current = contextData;
102
+ } else {
103
+ context.set(id, data.current);
104
+ }
105
+ if (updateOnMount) {
106
+ setUpdateOnMountState(true);
107
+ }
144
108
  }
145
- }, {
146
- key: "render",
147
- value: function render() {
148
- var props = Object.assign({}, (_objectDestructuringEmpty(this.props), this.props));
149
- delete props.noSharedState;
150
- return /*#__PURE__*/(0, _jsxRuntime.jsx)(SharedState, {
151
- value: this.sharedState,
152
- children: /*#__PURE__*/(0, _jsxRuntime.jsx)(Wrapped, _objectSpread({}, props))
153
- });
109
+ }, [context, props]);
110
+ var sharedState = (0, _react.useRef)(initSharedState());
111
+ var prevProps = (0, _react.useRef)(props);
112
+ (0, _react.useEffect)(function () {
113
+ loadFromContext();
114
+ // eslint-disable-next-line react-hooks/exhaustive-deps
115
+ }, []);
116
+ (0, _react.useEffect)(function () {
117
+ if (!prevProps.current.noSharedState && props.noSharedState) {
118
+ data.current = {};
119
+ } else if (prevProps.current.noSharedState && !props.noSharedState) {
120
+ loadFromContext();
154
121
  }
155
- }]);
156
- }(_react.Component), _Class.displayName = 'SharedStateDecorator', _Class.contextType = SharedState, _Class.propTypes = {
122
+ prevProps.current = props;
123
+ }, [loadFromContext, props]);
124
+ var wrappedComponentProps = Object.assign({}, (_objectDestructuringEmpty(props), props));
125
+ delete wrappedComponentProps.noSharedState;
126
+ return /*#__PURE__*/(0, _jsxRuntime.jsx)(SharedState, {
127
+ value: sharedState.current,
128
+ children: /*#__PURE__*/(0, _jsxRuntime.jsx)(Wrapped, _objectSpread({}, wrappedComponentProps))
129
+ });
130
+ };
131
+ SharedStateDecorator.displayName = 'SharedStateDecorator';
132
+ SharedStateDecorator.propTypes = {
157
133
  /**
158
134
  * Prevents the component from setting or restoring any framework shared state.
159
135
  *
@@ -162,6 +138,7 @@ var SharedStateDecorator = exports.SharedStateDecorator = (0, _hoc["default"])(d
162
138
  * @public
163
139
  */
164
140
  noSharedState: _propTypes["default"].bool
165
- }, _Class;
141
+ };
142
+ return SharedStateDecorator;
166
143
  });
167
144
  var _default = exports["default"] = SharedStateDecorator;
@@ -3,7 +3,7 @@
3
3
  Object.defineProperty(exports, "__esModule", {
4
4
  value: true
5
5
  });
6
- exports.warn = exports.validateSteppedOnce = exports.validateStepped = exports.validateRangeOnce = exports.validateRange = void 0;
6
+ exports.warning = exports.warn = exports.validateSteppedOnce = exports.validateStepped = exports.validateRangeOnce = exports.validateRange = void 0;
7
7
  /**
8
8
  * Exports various utilities for performing dev-time validations
9
9
  *
@@ -15,7 +15,7 @@ exports.warn = exports.validateSteppedOnce = exports.validateStepped = exports.v
15
15
  * Issues a warning to the console
16
16
  *
17
17
  * @function
18
- * @param {String} msg Event name
18
+ * @param {String} msg Event name
19
19
  *
20
20
  * @returns {undefined}
21
21
  * @memberof limestone/internal/validators
@@ -27,6 +27,25 @@ var warn = exports.warn = function warn(msg) {
27
27
  }
28
28
  };
29
29
 
30
+ /**
31
+ * Issues a warning to the console
32
+ *
33
+ * @function
34
+ * @param {Boolean} condition Condition for trigger
35
+ * @param {String} msg Event name
36
+ *
37
+ * @returns {undefined}
38
+ * @memberof limestone/internal/validators
39
+ * @private
40
+ */
41
+ var warning = exports.warning = function warning(condition, msg) {
42
+ if (process.env.NODE_ENV !== "production") {
43
+ if (typeof console !== 'undefined' && condition) {
44
+ console.warn('Warning: ' + msg); // eslint-disable-line no-console
45
+ }
46
+ }
47
+ };
48
+
30
49
  /**
31
50
  * Issues a warning to the console if `value` is not within the range
32
51
  * `min` to `max` or if `min` is less than `max`. In production mode,
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@enact/limestone",
3
- "version": "1.3.0",
3
+ "version": "1.9.3",
4
4
  "description": "Large-screen/TV support library for Enact, containing a variety of UI components.",
5
5
  "repository": {
6
6
  "type": "git",
@@ -39,20 +39,20 @@
39
39
  "screenTypes": "ThemeDecorator/screenTypes.json"
40
40
  },
41
41
  "dependencies": {
42
- "@enact/core": "^5.2.0",
43
- "@enact/i18n": "^5.2.0",
44
- "@enact/spotlight": "^5.2.0",
45
- "@enact/ui": "^5.2.0",
46
- "@enact/webos": "^5.2.0",
47
- "@enovaui/core-tokens": "^0.8.0",
48
- "@enovaui/webos-tokens": "^0.8.0",
42
+ "@enact/core": "^5.4.3",
43
+ "@enact/i18n": "^5.4.3",
44
+ "@enact/spotlight": "^5.4.3",
45
+ "@enact/ui": "^5.4.3",
46
+ "@enact/webos": "^5.4.3",
47
+ "@enovaui/core-tokens": "^0.14.0",
48
+ "@enovaui/webos-tokens": "^0.14.0",
49
49
  "classnames": "^2.5.1",
50
- "ilib": "^14.21.0 || ^14.21.0-webos1",
50
+ "ilib": "^14.21.3",
51
51
  "invariant": "^2.2.4",
52
52
  "prop-types": "^15.8.1",
53
- "ramda": "^0.31.3",
54
- "react": "^19.1.0",
55
- "react-dom": "^19.1.0",
53
+ "ramda": "^0.32.0",
54
+ "react": "^19.2.5",
55
+ "react-dom": "^19.2.5",
56
56
  "warning": "^4.0.3"
57
57
  },
58
58
  "peerDependencies": {
@@ -63,7 +63,7 @@
63
63
  "vue-template-compiler": "@vue/compiler-sfc@3.4.31"
64
64
  },
65
65
  "devDependencies": {
66
- "@enact/docs-utils": "^0.4.13",
67
- "@enact/ui-test-utils": "^3.0.0"
66
+ "@enact/docs-utils": "^0.4.17",
67
+ "@enact/ui-test-utils": "^4.0.2"
68
68
  }
69
69
  }
@@ -8,7 +8,7 @@
8
8
  // UI Conceptual Colors
9
9
  // ---------------------------------------
10
10
 
11
- @lime-overlay-outline-color: #7c848b;
11
+ @lime-overlay-outline-color: var(--semantic-color-stroke-main);
12
12
  @lime-overlay-outline-style: solid;
13
13
 
14
14
  // ---------------------------------------
@@ -19,3 +19,11 @@
19
19
  // ---------------------------------------
20
20
  @lime-popup-bg-color: var(--semantic-color-background-overlay-default); // opaque
21
21
  @lime-popup-scrimtransparent-bg-color: var(--semantic-color-background-overlay-default); // opaque
22
+
23
+ // PopupTanLayout
24
+ // ---------------------------------------
25
+ @lime-popuptablayout-content-background-color: var(--semantic-color-background-overlay-default);
26
+
27
+ // KeyGuide
28
+ // ---------------------------------------
29
+ @lime-keyguide-outline-color: @lime-overlay-outline-color;
@@ -26,6 +26,7 @@
26
26
  // ---------------------------------------
27
27
  @lime-alert-overlay-bg-color: var(--semantic-color-background-popup-default);
28
28
  @lime-alert-overlay-bg-color-opacity: 1;
29
+ @lime-alert-overlay-button-bg-color: var(--semantic-color-surface-popup-default);
29
30
  @lime-alert-overlay-label-color: var(--semantic-color-on-background-popup-main);
30
31
  @lime-alert-overlay-label-sub-color: var(--semantic-color-on-background-popup-sub);
31
32
  @lime-alert-overlay-outline-style: none;
@@ -63,7 +64,6 @@
63
64
  // ---------------------------------------
64
65
  @lime-button-fill-label-color: var(--semantic-color-on-surface-main);
65
66
  @lime-button-fill-container-color: var(--semantic-color-surface-default);
66
- @lime-button-fill-icon-color: var(--semantic-color-on-surface-main);
67
67
  @lime-button-fill-label-focused-color: var(--semantic-color-on-surface-main-focused);
68
68
  @lime-button-fill-container-focused-color: var(--semantic-color-surface-default-focused);
69
69
  @lime-button-fill-icon-focused-color: @lime-button-fill-label-focused-color;
@@ -80,7 +80,6 @@
80
80
  @lime-button-outline-container-selected-color: ~"color(from" var(--semantic-color-surface-default-selected) ~"srgb r g b / 0.5)";
81
81
  @lime-button-outline-border-selected-color: var(--semantic-color-stroke-main-selected);
82
82
  @lime-button-transparent-label-color: var(--semantic-color-on-background-main);
83
- @lime-button-transparent-icon-color: @lime-button-transparent-label-color;
84
83
  @lime-button-transparent-label-focused-color: @lime-button-fill-label-focused-color;
85
84
  @lime-button-transparent-container-focused-color: @lime-button-fill-container-focused-color;
86
85
  @lime-button-transparent-icon-focused-color: @lime-button-fill-icon-focused-color;
@@ -98,7 +97,7 @@
98
97
  @lime-card-container-color: ~"color(from" var(--semantic-color-surface-default-translucent) ~"srgb r g b / 0.1)";
99
98
  @lime-card-selection-icon-color: transparent;
100
99
  @lime-card-selection-icon-selected-color: var(--semantic-color-on-surface-main-selected);
101
- @lime-card-selection-container-selected-color: var(--semantic-color-surface-accent);
100
+ @lime-card-selection-container-selected-color: var(--semantic-color-surface-highlight);
102
101
  @lime-card-border-selected-color: var(--semantic-color-stroke-main-selected);
103
102
  @lime-card-container-focused-color: var(--semantic-color-surface-default-focused);
104
103
  @lime-card-border-focused-color: var(--semantic-color-stroke-main-focused);
@@ -113,7 +112,7 @@
113
112
  // ---------------------------------------
114
113
  @lime-checkbox-container-color: transparent;
115
114
  @lime-checkbox-container-focused-color: @lime-checkbox-container-color;
116
- @lime-checkbox-container-selected-color: var(--semantic-color-surface-accent);
115
+ @lime-checkbox-container-selected-color: var(--semantic-color-surface-highlight);
117
116
  @lime-checkbox-container-selected-focused-color: @lime-checkbox-container-selected-color;
118
117
  @lime-checkbox-container-selected-disabled-color: @lime-checkbox-container-selected-color;
119
118
  @lime-checkbox-container-selected-disabled-focused-color: @lime-checkbox-container-selected-color;
@@ -215,7 +214,7 @@
215
214
  @lime-imageitem-selected-image-border-color: ~"color(from" var(--semantic-color-on-surface-main-selected) ~"srgb r g b / 0.7)";
216
215
  @lime-imageitem-selection-container-color: transparent;
217
216
  @lime-imageitem-selection-icon-color: transparent;
218
- @lime-imageitem-selection-container-selected-color: var(--semantic-color-surface-accent);
217
+ @lime-imageitem-selection-container-selected-color: var(--semantic-color-surface-highlight);
219
218
  @lime-imageitem-selection-icon-selected-color: var(--semantic-color-on-surface-white);
220
219
  @lime-imageitem-selection-container-focused-color: @lime-imageitem-selection-container-color;
221
220
  @lime-imageitem-selection-icon-focused-color: @lime-imageitem-selection-icon-color;
@@ -232,6 +231,7 @@
232
231
  @lime-input-fullscreen-dot-color: var(--semantic-color-on-surface-input-field);
233
232
  @lime-input-overlay-background-color: var(--semantic-color-background-popup-default);
234
233
  @lime-input-overlay-dot-color: var(--semantic-color-on-surface-popup-input-field);
234
+ @lime-input-overlay-button-bg-color: var(--semantic-color-surface-popup-default);
235
235
  @lime-input-dot-focused-color: var(--semantic-color-on-surface-main-focused);
236
236
  @lime-input-button-popup-transparent-icon-color: var(--semantic-color-on-background-popup-main);
237
237
  @lime-input-button-popup-transparent-label-color: var(--semantic-color-on-background-popup-main);
@@ -270,6 +270,7 @@
270
270
  // KeyGuide
271
271
  // ---------------------------------------
272
272
  @lime-keyguide-container-color: var(--semantic-color-surface-overlay-default);
273
+ @lime-keyguide-outline-color: transparent;
273
274
  @lime-keyguide-label-color: var(--semantic-color-on-surface-overlay-main);
274
275
  @lime-keyguide-icon-color: var(--semantic-color-on-surface-overlay-sub);
275
276
  @lime-keyguide-colordot-red-color: @lime-colorkey-icon-red;
@@ -345,7 +346,7 @@
345
346
  @lime-radioitem-item-container-selected-color: transparent;
346
347
  @lime-radioitem-container-color: transparent;
347
348
  @lime-radioitem-container-focused-color: transparent;
348
- @lime-radioitem-container-selected-color: var(--semantic-color-surface-accent);
349
+ @lime-radioitem-container-selected-color: var(--semantic-color-surface-highlight);
349
350
  @lime-radioitem-container-selected-focused-color: @lime-radioitem-container-selected-color;
350
351
  @lime-radioitem-border-color: var(--semantic-color-stroke-selection-inactive);
351
352
  @lime-radioitem-border-focused-color: var(--semantic-color-stroke-selection-inactive-focused);
@@ -367,6 +368,7 @@
367
368
 
368
369
  // Slider
369
370
  // ---------------------------------------
371
+ @lime-slider-min-max-color: var(--semantic-color-on-background-sub);
370
372
  @lime-slider-track-color: ~"color(from" var(--semantic-color-surface-default-track) ~"srgb r g b / 0.7)";
371
373
  @lime-slider-track-buffer-color: ~"color(from" var(--semantic-color-surface-white) ~"srgb r g b / 0.5)";
372
374
  @lime-slider-track-active-color: var(--semantic-color-surface-accent);
@@ -384,7 +386,7 @@
384
386
  @lime-spinner-color: var(--semantic-color-on-background-main);
385
387
  @lime-spinner-head-color: @lime-spinner-color;
386
388
  @lime-spinner-empty-color: ~"color(from" @lime-spinner-color ~"srgb r g b / 0.2)";
387
- @lime-spinner-bg-color: var(--semantic-color-surface-default);
389
+ @lime-spinner-bg-color: var(--semantic-color-surface-spinner);
388
390
  @lime-spinner-label-color: var(--semantic-color-on-background-sub);
389
391
 
390
392
  // Steps
@@ -429,6 +431,8 @@
429
431
  @lime-video-player-bottom-bg-color: transparent;
430
432
  @lime-video-player-label-color: var(--semantic-color-on-background-main);
431
433
  @lime-video-player-scrim-gradient-color: linear-gradient(180deg, transparent 0%, #000 100%);
434
+ @lime-video-tooltip-background-color: ~"color(from" var(--semantic-color-surface-overlay-default) ~"srgb r g b / 0.5)";
435
+ @lime-video-tooltip-gradient-color: linear-gradient(180deg, transparent 0%, ~"color(from" var(--semantic-color-on-surface-black) ~"srgb r g b / 0.7)" 100%);
432
436
 
433
437
  // VirtualList
434
438
  // ---------------------------------------
@@ -0,0 +1,66 @@
1
+ // Motion Variables
2
+ @import "./motions.less";
3
+ @import "./mixins.less";
4
+
5
+ /* ---------------------------------------
6
+ Motion Variables
7
+ ------------------------------------------ */
8
+ @lime-bounce-motion: var(--lime-bounce-motion);
9
+ @lime-check-motion: var(--lime-check-motion);
10
+
11
+ /* ---------------------------------------
12
+ Motion Mixins
13
+ ------------------------------------------ */
14
+ .lime-toggle-motion(@offset: var(--lime-bounce-motion-offset-default-value), @duration: var(--lime-bounce-motion-duration)) {
15
+ animation: var(--lime-bounce-animation-name) @duration var(--lime-bounce-motion-easing-function);
16
+ --lime-bounce-motion-offset-value: @offset;
17
+ }
18
+
19
+ .lime-check-motion() {
20
+ &::after {
21
+ content: '';
22
+ position: absolute;
23
+ .position(0);
24
+ background-color: inherit;
25
+ animation: var(--lime-check-animation-name) var(--lime-check-motion-duration) forwards;
26
+ }
27
+ }
28
+
29
+ .lime-focus-in-motion() {
30
+ transform: @lime-focusexpand-focus-transform;
31
+ transition: transform var(--lime-focus-in-motion-duration) var(--lime-focus-in-motion-easing-function);
32
+ }
33
+
34
+ .lime-focus-out-motion() {
35
+ transition: transform var(--lime-focus-out-motion-duration) var(--lime-focus-out-motion-easing-function);
36
+ }
37
+
38
+ .lime-press-motion() {
39
+ transform: @lime-focusexpand-pressed-transform;
40
+ transition: transform var(--lime-press-motion-duration) var(--lime-press-motion-easing-function);
41
+ }
42
+
43
+ .lime-release-motion() {
44
+ transform: @lime-focusexpand-focus-transform;
45
+ transition: transform var(--lime-release-motion-duration) var(--lime-release-motion-easing-function);
46
+ }
47
+
48
+ .lime-slider-focus-in-motion() {
49
+ transform: @lime-translate-center @lime-slider-focusin-transform;
50
+ transition: transform var(--lime-focus-in-motion-duration) var(--lime-focus-in-motion-easing-function);
51
+ }
52
+
53
+ .lime-slider-focus-out-motion() {
54
+ transform: @lime-translate-center @lime-slider-focusout-transform;
55
+ transition: transform var(--lime-focus-out-motion-duration) var(--lime-focus-out-motion-easing-function);
56
+ }
57
+
58
+ .lime-slider-press-motion() {
59
+ transform: @lime-translate-center @lime-slider-press-transform;
60
+ transition: transform var(--lime-press-motion-duration) var(--lime-press-motion-easing-function);
61
+ }
62
+
63
+ .lime-slider-release-motion() {
64
+ transform: @lime-translate-center @lime-slider-release-transform;
65
+ transition: transform var(--lime-release-motion-duration) var(--lime-release-motion-easing-function);
66
+ }