@sproutsocial/racine 8.6.0 → 8.6.3-dar10.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.
@@ -203,3 +203,23 @@ export const MenuWithCheckboxes = (props) => {
203
203
  </Menu>
204
204
  );
205
205
  };
206
+
207
+ // Specifically testing that icons with a color inverse when active like the text does.
208
+ export const MenuWithIcons = (props) => {
209
+ return (
210
+ <Menu width="200px" {...props}>
211
+ <Menu.Item key="positive" onClick={() => alert("positive")}>
212
+ <Icon name="flat-positive-sentiment" mr={200} color="blue.600" />
213
+ Positive
214
+ </Menu.Item>
215
+ <Menu.Item key="negative" onClick={() => alert("negative")}>
216
+ <Icon name="flat-negative-sentiment" mr={200} color="red.500" />
217
+ Negative
218
+ </Menu.Item>
219
+ <Menu.Item key="neutral" onClick={() => alert("neutral")}>
220
+ <Icon name="flat-neutral-sentiment" mr={200} />
221
+ Neutral
222
+ </Menu.Item>
223
+ </Menu>
224
+ );
225
+ };
@@ -41,6 +41,10 @@ export const MenuItemContainer = styled<
41
41
  css`
42
42
  color: ${(props) => props.theme.colors.text.inverse};
43
43
  background-color: ${props.theme.colors.listItem.background.selected};
44
+
45
+ .Icon-svg {
46
+ color: ${(props) => props.theme.colors.text.inverse};
47
+ }
44
48
  `}
45
49
 
46
50
  ${(props) =>
@@ -118,6 +118,7 @@ var Panel = function Panel(_ref3) {
118
118
  }
119
119
  }, [isOpen]);
120
120
  return /*#__PURE__*/React.createElement(_styles.CollapsingBox, _extends({
121
+ hasShadow: collapsedHeight || openHeight > 0,
121
122
  scrollable: isOpen,
122
123
  maxHeight: isOpen ? maxHeight : collapsedHeight,
123
124
  minHeight: collapsedHeight,
@@ -12,16 +12,14 @@ function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { de
12
12
  var CollapsingBox = (0, _styledComponents.default)(_Box.default).withConfig({
13
13
  displayName: "styles__CollapsingBox",
14
14
  componentId: "sc-1xvfbl7-0"
15
- })(["transition:max-height ", " ", ";will-change:max-height;position:relative;overflow:auto;background:linear-gradient( ", " 30%,rgba(255,255,255,0) ),linear-gradient( rgba(255,255,255,0),", " 70% ) 0 100%,radial-gradient( farthest-side at 50% 0,rgb(39 51 51 / 5%),rgba(0,0,0,0) ),radial-gradient( farthest-side at 50% 100%,rgb(39 51 51 / 5%),rgba(0,0,0,0) ) 0 100%;background-repeat:no-repeat;background-size:100% 40px,100% 40px,100% 14px,100% 14px;background-attachment:local,local,scroll,scroll;", ";"], function (p) {
15
+ })(["transition:max-height ", " ", ";will-change:max-height;position:relative;overflow:auto;", ""], function (p) {
16
16
  return p.theme.duration.medium;
17
17
  }, function (p) {
18
18
  return p.theme.easing.ease_inout;
19
- }, function (p) {
20
- return p.theme.colors.neutral[100];
21
- }, function (p) {
22
- return p.theme.colors.neutral[100];
23
19
  }, function (_ref) {
24
- var scrollable = _ref.scrollable;
25
- return scrollable ? "overflow: auto" : "overflow: hidden";
20
+ var hasShadow = _ref.hasShadow,
21
+ theme = _ref.theme,
22
+ scrollable = _ref.scrollable;
23
+ return hasShadow ? "background: /* Shadow covers */ linear-gradient(\n transparent 30%,\n rgba(255, 255, 255, 0)\n ),\n linear-gradient(rgba(255, 255, 255, 0), transparent 70%) 0 100%,\n /* Shadows */\n radial-gradient(\n farthest-side at 50% 0,\n rgb(39 51 51 / 5%),\n rgba(0, 0, 0, 0)\n ),\n radial-gradient(\n farthest-side at 50% 100%,\n rgb(39 51 51 / 5%),\n rgba(0, 0, 0, 0)\n )\n 0 100%;\n background-repeat: no-repeat;\n background-size: 100% 40px, 100% 40px, 100% 14px, 100% 14px;\n background-attachment: local, local, scroll, scroll;\n " + (scrollable ? "overflow: auto" : "overflow: hidden") + ";" : "";
26
24
  });
27
25
  exports.CollapsingBox = CollapsingBox;
@@ -25,7 +25,8 @@ var MenuContext = /*#__PURE__*/(0, _react.createContext)({
25
25
  state: {
26
26
  selectionIndex: 0,
27
27
  filterQuery: "",
28
- filteredItems: null
28
+ filteredItems: null,
29
+ isFilterInputFocused: false
29
30
  },
30
31
  setState: function setState() {},
31
32
  selectCallbacks: {
@@ -75,7 +76,8 @@ function useMenuKeyDown() {
75
76
  _useContext$state = _useContext.state,
76
77
  filterQuery = _useContext$state.filterQuery,
77
78
  selectionIndex = _useContext$state.selectionIndex,
78
- filteredItems = _useContext$state.filteredItems;
79
+ filteredItems = _useContext$state.filteredItems,
80
+ isFilterInputFocused = _useContext$state.isFilterInputFocused;
79
81
 
80
82
  var _useContext2 = (0, _react.useContext)(MenuButtonContext),
81
83
  closePopout = _useContext2.closePopout,
@@ -134,8 +136,15 @@ function useMenuKeyDown() {
134
136
  var key = event.key;
135
137
 
136
138
  switch (key) {
137
- case "Enter":
138
139
  case " ":
140
+ if (isFilterInputFocused) {
141
+ return;
142
+ }
143
+
144
+ // falls through
145
+ // eslint-disable-next-line no-fallthrough
146
+
147
+ case "Enter":
139
148
  var selected = items[selectionIndex];
140
149
 
141
150
  if (selected) {
@@ -296,18 +296,37 @@ var MenuDivider = function MenuDivider(props) {
296
296
  exports.MenuDivider = MenuDivider;
297
297
 
298
298
  var MenuFilterInput = function MenuFilterInput(props) {
299
+ var onChange = props.onChange,
300
+ onFocus = props.onFocus,
301
+ onBlur = props.onBlur;
302
+
299
303
  var _useContext3 = (0, React.useContext)(_hooks2.MenuContext),
300
304
  state = _useContext3.state,
301
305
  setState = _useContext3.setState;
302
306
 
303
- var updateFilterQuery = (0, React.useCallback)(function (event) {
304
- return setState({
305
- filterQuery: event.currentTarget.value
307
+ var handleOnChange = (0, React.useCallback)(function (event, value) {
308
+ onChange && onChange(event, value);
309
+ setState({
310
+ filterQuery: value
311
+ });
312
+ }, [setState, onChange]);
313
+ var handleOnFocus = (0, React.useCallback)(function (event) {
314
+ onFocus && onFocus(event);
315
+ setState({
316
+ isFilterInputFocused: true
317
+ });
318
+ }, [setState, onFocus]);
319
+ var handleOnBlur = (0, React.useCallback)(function (event) {
320
+ onBlur && onBlur(event);
321
+ setState({
322
+ isFilterInputFocused: false
306
323
  });
307
- }, [setState]);
324
+ }, [setState, onBlur]);
308
325
  return /*#__PURE__*/React.createElement(_Input.default, _extends({}, props, {
309
326
  value: state.filterQuery,
310
- onChange: updateFilterQuery
327
+ onChange: handleOnChange,
328
+ onFocus: handleOnFocus,
329
+ onBlur: handleOnBlur
311
330
  }));
312
331
  };
313
332
 
@@ -353,7 +372,8 @@ var Menu = function Menu(_ref4) {
353
372
  var _useState = (0, React.useState)({
354
373
  selectionIndex: 0,
355
374
  filterQuery: "",
356
- filteredItems: null
375
+ filteredItems: null,
376
+ isFilterInputFocused: false
357
377
  }),
358
378
  state = _useState[0],
359
379
  setState = _useState[1];
@@ -35,9 +35,11 @@ var MenuItemContainer = (0, _styledComponents.default)(_Box.default).withConfig(
35
35
  }, function (props) {
36
36
  return (0, _styledComponents.css)(["", ";"], props.theme.typography[200]);
37
37
  }, function (props) {
38
- return props.active && !props.disabled && (0, _styledComponents.css)(["color:", ";background-color:", ";"], function (props) {
38
+ return props.active && !props.disabled && (0, _styledComponents.css)(["color:", ";background-color:", ";.Icon-svg{color:", ";}"], function (props) {
39
39
  return props.theme.colors.text.inverse;
40
- }, props.theme.colors.listItem.background.selected);
40
+ }, props.theme.colors.listItem.background.selected, function (props) {
41
+ return props.theme.colors.text.inverse;
42
+ });
41
43
  }, function (props) {
42
44
  return props.selected && !props.isCheckboxOrRadio && (0, _styledComponents.css)(["font-weight:", ";"], function (props) {
43
45
  return props.theme.fontWeights.semibold;