@atlaskit/reactions 27.1.4 → 27.2.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.
package/CHANGELOG.md CHANGED
@@ -1,5 +1,26 @@
1
1
  # @atlaskit/reactions
2
2
 
3
+ ## 27.2.0
4
+
5
+ ### Minor Changes
6
+
7
+ - [#127089](https://bitbucket.org/atlassian/atlassian-frontend-monorepo/pull-requests/127089)
8
+ [`ec78c2756240e`](https://bitbucket.org/atlassian/atlassian-frontend-monorepo/commits/ec78c2756240e) -
9
+ Adding an optional placement and overflow control for reactions popper
10
+
11
+ ### Patch Changes
12
+
13
+ - Updated dependencies
14
+
15
+ ## 27.1.5
16
+
17
+ ### Patch Changes
18
+
19
+ - [#126792](https://bitbucket.org/atlassian/atlassian-frontend-monorepo/pull-requests/126792)
20
+ [`ac38e3b73e5ab`](https://bitbucket.org/atlassian/atlassian-frontend-monorepo/commits/ac38e3b73e5ab) -
21
+ add interactionName to Spinner
22
+ - Updated dependencies
23
+
3
24
  ## 27.1.4
4
25
 
5
26
  ### Patch Changes
@@ -11,7 +11,7 @@ var _analyticsGasTypes = require("@atlaskit/analytics-gas-types");
11
11
  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; }
12
12
  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) { (0, _defineProperty2.default)(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; }
13
13
  var packageName = "@atlaskit/reactions";
14
- var packageVersion = "27.1.4";
14
+ var packageVersion = "27.2.0";
15
15
  /**
16
16
  * TODO: move to utility package?
17
17
  * A random sampling function
@@ -53,7 +53,8 @@ var ReactionView = exports.ReactionView = function ReactionView(_ref) {
53
53
  }, alphabeticalNames.length === 0 ? (0, _react2.jsx)(_primitives.Box, {
54
54
  xcss: centerSpinnerStyle
55
55
  }, (0, _react2.jsx)(_spinner.default, {
56
- size: "large"
56
+ size: "large",
57
+ interactionName: "reactions-spinner"
57
58
  })) :
58
59
  // eslint-disable-next-line @atlaskit/design-system/consistent-css-prop-usage, @atlaskit/ui-styling-standard/no-imported-style-values -- Ignored via go/DSP-18766
59
60
  (0, _react2.jsx)("ul", {
@@ -43,33 +43,6 @@ var RENDER_REACTIONPICKERPANEL_TESTID = exports.RENDER_REACTIONPICKERPANEL_TESTI
43
43
  * Emoji Picker Controller Id for Accessibility Labels
44
44
  */
45
45
  var PICKER_CONTROL_ID = 'emoji-picker';
46
- var popperModifiers = [
47
- /**
48
- Removing this applyStyle modifier as it throws client errors ref:
49
- https://popper.js.org/docs/v1/#modifiers
50
- https://popper.js.org/docs/v1/#modifiers..applyStyle
51
- { name: 'applyStyle', enabled: false },
52
- */
53
- {
54
- name: 'hide',
55
- enabled: false
56
- }, {
57
- name: 'offset',
58
- enabled: true,
59
- options: {
60
- offset: [0, 0]
61
- }
62
- }, {
63
- name: 'flip',
64
- enabled: true,
65
- options: {
66
- flipVariations: true,
67
- boundariesElement: 'scrollParent'
68
- }
69
- }, {
70
- name: 'preventOverflow',
71
- enabled: true
72
- }];
73
46
  /**
74
47
  * Picker component for adding reactions
75
48
  */
@@ -101,7 +74,9 @@ var ReactionPicker = exports.ReactionPicker = /*#__PURE__*/_react.default.memo(f
101
74
  _props$reactionPicker = props.reactionPickerAdditionalStyle,
102
75
  reactionPickerAdditionalStyle = _props$reactionPicker === void 0 ? undefined : _props$reactionPicker,
103
76
  reactionPickerTriggerIcon = props.reactionPickerTriggerIcon,
104
- useButtonAlignmentStyling = props.useButtonAlignmentStyling;
77
+ useButtonAlignmentStyling = props.useButtonAlignmentStyling,
78
+ reactionPickerPlacement = props.reactionPickerPlacement,
79
+ reactionsPickerPreventOverflowOptions = props.reactionsPickerPreventOverflowOptions;
105
80
  var _useState = (0, _react.useState)(null),
106
81
  _useState2 = (0, _slicedToArray2.default)(_useState, 2),
107
82
  triggerRef = _useState2[0],
@@ -116,6 +91,36 @@ var ReactionPicker = exports.ReactionPicker = /*#__PURE__*/_react.default.memo(f
116
91
  selectionStyle = _useState4[0],
117
92
  setSelectionStyle = _useState4[1];
118
93
  var updatePopper = (0, _react.useRef)();
94
+ var popperPlacement = showRoundTrigger ? 'left' : reactionPickerPlacement || 'bottom-start';
95
+ var popperModifiers = [
96
+ /**
97
+ Removing this applyStyle modifier as it throws client errors ref:
98
+ https://popper.js.org/docs/v1/#modifiers
99
+ https://popper.js.org/docs/v1/#modifiers..applyStyle
100
+ { name: 'applyStyle', enabled: false },
101
+ */
102
+ {
103
+ name: 'hide',
104
+ enabled: false
105
+ }, {
106
+ name: 'offset',
107
+ enabled: true,
108
+ options: {
109
+ offset: [0, 0]
110
+ }
111
+ }, {
112
+ name: 'flip',
113
+ enabled: true,
114
+ options: {
115
+ flipVariations: true,
116
+ boundariesElement: 'scrollParent'
117
+ }
118
+ }, _objectSpread({
119
+ name: 'preventOverflow',
120
+ enabled: true
121
+ }, reactionsPickerPreventOverflowOptions && {
122
+ options: reactionsPickerPreventOverflowOptions
123
+ })];
119
124
  var _useState5 = (0, _react.useState)({
120
125
  /**
121
126
  * Show the picker floating panel
@@ -128,7 +133,7 @@ var ReactionPicker = exports.ReactionPicker = /*#__PURE__*/_react.default.memo(f
128
133
  /**
129
134
  * Use left placement for popper - using value based on showRoundTrigger for now since it needs the left placement
130
135
  */
131
- useLeftPopperPlacement: showRoundTrigger
136
+ popperPlacement: popperPlacement
132
137
  }),
133
138
  _useState6 = (0, _slicedToArray2.default)(_useState5, 2),
134
139
  settings = _useState6[0],
@@ -174,10 +179,10 @@ var ReactionPicker = exports.ReactionPicker = /*#__PURE__*/_react.default.memo(f
174
179
  setSettings({
175
180
  isOpen: true,
176
181
  showFullPicker: true,
177
- useLeftPopperPlacement: showRoundTrigger
182
+ popperPlacement: popperPlacement
178
183
  });
179
184
  onShowMore();
180
- }, [onShowMore, showRoundTrigger]);
185
+ }, [onShowMore, popperPlacement]);
181
186
 
182
187
  /**
183
188
  * Event callback when an emoji icon is selected
@@ -201,7 +206,7 @@ var ReactionPicker = exports.ReactionPicker = /*#__PURE__*/_react.default.memo(f
201
206
  setSettings({
202
207
  isOpen: !settings.isOpen,
203
208
  showFullPicker: !!allowAllEmojis && Array.isArray(pickerQuickReactionEmojiIds) && pickerQuickReactionEmojiIds.length === 0,
204
- useLeftPopperPlacement: showRoundTrigger
209
+ popperPlacement: popperPlacement
205
210
  });
206
211
  onOpen();
207
212
  // ufo reactions picker opened success
@@ -262,7 +267,8 @@ var ReactionPicker = exports.ReactionPicker = /*#__PURE__*/_react.default.memo(f
262
267
  })
263
268
  );
264
269
  }), settings.isOpen && (0, _react2.jsx)(PopperWrapper, {
265
- settings: settings
270
+ settings: settings,
271
+ popperModifiers: popperModifiers
266
272
  }, settings.showFullPicker ? (0, _react2.jsx)(_picker.EmojiPicker, {
267
273
  emojiProvider: emojiProvider,
268
274
  onSelection: onEmojiSelected,
@@ -281,7 +287,8 @@ var ReactionPicker = exports.ReactionPicker = /*#__PURE__*/_react.default.memo(f
281
287
  });
282
288
  var PopperWrapper = exports.PopperWrapper = function PopperWrapper(props) {
283
289
  var settings = props.settings,
284
- children = props.children;
290
+ children = props.children,
291
+ popperModifiers = props.popperModifiers;
285
292
  var _useState7 = (0, _react.useState)(null),
286
293
  _useState8 = (0, _slicedToArray2.default)(_useState7, 2),
287
294
  popupRef = _useState8[0],
@@ -294,9 +301,9 @@ var PopperWrapper = exports.PopperWrapper = function PopperWrapper(props) {
294
301
  targetRef: popupRef
295
302
  });
296
303
  return (0, _react2.jsx)(_popper.Popper, {
297
- placement: settings.useLeftPopperPlacement ? 'left' : 'bottom-start',
304
+ placement: settings.popperPlacement,
298
305
  modifiers: popperModifiers,
299
- strategy: 'absolute'
306
+ strategy: "absolute"
300
307
  }, function (_ref3) {
301
308
  var _ref4 = _ref3.ref,
302
309
  style = _ref3.style,
@@ -152,6 +152,8 @@ var Reactions = exports.Reactions = /*#__PURE__*/_react.default.memo(function (_
152
152
  onlyRenderPicker = _ref$onlyRenderPicker === void 0 ? false : _ref$onlyRenderPicker,
153
153
  _ref$showRoundTrigger = _ref.showRoundTrigger,
154
154
  showRoundTrigger = _ref$showRoundTrigger === void 0 ? false : _ref$showRoundTrigger,
155
+ reactionPickerPlacement = _ref.reactionPickerPlacement,
156
+ reactionsPickerPreventOverflowOptions = _ref.reactionsPickerPreventOverflowOptions,
155
157
  _ref$isViewOnly = _ref.isViewOnly,
156
158
  isViewOnly = _ref$isViewOnly === void 0 ? false : _ref$isViewOnly,
157
159
  reactionPickerAdditionalStyle = _ref.reactionPickerAdditionalStyle,
@@ -384,7 +386,9 @@ var Reactions = exports.Reactions = /*#__PURE__*/_react.default.memo(function (_
384
386
  showRoundTrigger: showRoundTrigger,
385
387
  reactionPickerTriggerIcon: reactionPickerTriggerIcon,
386
388
  reactionPickerAdditionalStyle: reactionPickerAdditionalStyle,
387
- useButtonAlignmentStyling: useButtonAlignmentStyling
389
+ useButtonAlignmentStyling: useButtonAlignmentStyling,
390
+ reactionPickerPlacement: reactionPickerPlacement,
391
+ reactionsPickerPreventOverflowOptions: reactionsPickerPreventOverflowOptions
388
392
  }), (0, _react2.jsx)(_modalDialog.ModalTransition, null, !!selectedEmojiId && (0, _react2.jsx)(_segment.default, {
389
393
  name: "reactions-dialog"
390
394
  }, (0, _react2.jsx)(_ReactionDialog.ReactionsDialog, {
@@ -1,7 +1,7 @@
1
1
  import { createAndFireEvent } from '@atlaskit/analytics-next';
2
2
  import { UI_EVENT_TYPE, OPERATIONAL_EVENT_TYPE } from '@atlaskit/analytics-gas-types';
3
3
  const packageName = "@atlaskit/reactions";
4
- const packageVersion = "27.1.4";
4
+ const packageVersion = "27.2.0";
5
5
  /**
6
6
  * TODO: move to utility package?
7
7
  * A random sampling function
@@ -43,7 +43,8 @@ export const ReactionView = ({
43
43
  }, alphabeticalNames.length === 0 ? jsx(Box, {
44
44
  xcss: centerSpinnerStyle
45
45
  }, jsx(Spinner, {
46
- size: "large"
46
+ size: "large",
47
+ interactionName: "reactions-spinner"
47
48
  })) :
48
49
  // eslint-disable-next-line @atlaskit/design-system/consistent-css-prop-usage, @atlaskit/ui-styling-standard/no-imported-style-values -- Ignored via go/DSP-18766
49
50
  jsx("ul", {
@@ -32,33 +32,6 @@ export const RENDER_REACTIONPICKERPANEL_TESTID = 'reactionPickerPanel-testid';
32
32
  * Emoji Picker Controller Id for Accessibility Labels
33
33
  */
34
34
  const PICKER_CONTROL_ID = 'emoji-picker';
35
- const popperModifiers = [
36
- /**
37
- Removing this applyStyle modifier as it throws client errors ref:
38
- https://popper.js.org/docs/v1/#modifiers
39
- https://popper.js.org/docs/v1/#modifiers..applyStyle
40
- { name: 'applyStyle', enabled: false },
41
- */
42
- {
43
- name: 'hide',
44
- enabled: false
45
- }, {
46
- name: 'offset',
47
- enabled: true,
48
- options: {
49
- offset: [0, 0]
50
- }
51
- }, {
52
- name: 'flip',
53
- enabled: true,
54
- options: {
55
- flipVariations: true,
56
- boundariesElement: 'scrollParent'
57
- }
58
- }, {
59
- name: 'preventOverflow',
60
- enabled: true
61
- }];
62
35
  /**
63
36
  * Picker component for adding reactions
64
37
  */
@@ -82,7 +55,9 @@ export const ReactionPicker = /*#__PURE__*/React.memo(props => {
82
55
  showRoundTrigger = false,
83
56
  reactionPickerAdditionalStyle = undefined,
84
57
  reactionPickerTriggerIcon,
85
- useButtonAlignmentStyling
58
+ useButtonAlignmentStyling,
59
+ reactionPickerPlacement,
60
+ reactionsPickerPreventOverflowOptions
86
61
  } = props;
87
62
  const [triggerRef, setTriggerRef] = useState(null);
88
63
 
@@ -92,6 +67,37 @@ export const ReactionPicker = /*#__PURE__*/React.memo(props => {
92
67
  const wrapperRef = useRef(null);
93
68
  const [selectionStyle, setSelectionStyle] = useState(undefined);
94
69
  const updatePopper = useRef();
70
+ const popperPlacement = showRoundTrigger ? 'left' : reactionPickerPlacement || 'bottom-start';
71
+ const popperModifiers = [
72
+ /**
73
+ Removing this applyStyle modifier as it throws client errors ref:
74
+ https://popper.js.org/docs/v1/#modifiers
75
+ https://popper.js.org/docs/v1/#modifiers..applyStyle
76
+ { name: 'applyStyle', enabled: false },
77
+ */
78
+ {
79
+ name: 'hide',
80
+ enabled: false
81
+ }, {
82
+ name: 'offset',
83
+ enabled: true,
84
+ options: {
85
+ offset: [0, 0]
86
+ }
87
+ }, {
88
+ name: 'flip',
89
+ enabled: true,
90
+ options: {
91
+ flipVariations: true,
92
+ boundariesElement: 'scrollParent'
93
+ }
94
+ }, {
95
+ name: 'preventOverflow',
96
+ enabled: true,
97
+ ...(reactionsPickerPreventOverflowOptions && {
98
+ options: reactionsPickerPreventOverflowOptions
99
+ })
100
+ }];
95
101
  const [settings, setSettings] = useState({
96
102
  /**
97
103
  * Show the picker floating panel
@@ -104,7 +110,7 @@ export const ReactionPicker = /*#__PURE__*/React.memo(props => {
104
110
  /**
105
111
  * Use left placement for popper - using value based on showRoundTrigger for now since it needs the left placement
106
112
  */
107
- useLeftPopperPlacement: showRoundTrigger
113
+ popperPlacement
108
114
  });
109
115
 
110
116
  /**
@@ -146,10 +152,10 @@ export const ReactionPicker = /*#__PURE__*/React.memo(props => {
146
152
  setSettings({
147
153
  isOpen: true,
148
154
  showFullPicker: true,
149
- useLeftPopperPlacement: showRoundTrigger
155
+ popperPlacement
150
156
  });
151
157
  onShowMore();
152
- }, [onShowMore, showRoundTrigger]);
158
+ }, [onShowMore, popperPlacement]);
153
159
 
154
160
  /**
155
161
  * Event callback when an emoji icon is selected
@@ -173,7 +179,7 @@ export const ReactionPicker = /*#__PURE__*/React.memo(props => {
173
179
  setSettings({
174
180
  isOpen: !settings.isOpen,
175
181
  showFullPicker: !!allowAllEmojis && Array.isArray(pickerQuickReactionEmojiIds) && pickerQuickReactionEmojiIds.length === 0,
176
- useLeftPopperPlacement: showRoundTrigger
182
+ popperPlacement
177
183
  });
178
184
  onOpen();
179
185
  // ufo reactions picker opened success
@@ -232,7 +238,8 @@ export const ReactionPicker = /*#__PURE__*/React.memo(props => {
232
238
  reactionPickerTriggerIcon: reactionPickerTriggerIcon,
233
239
  useButtonAlignmentStyling: useButtonAlignmentStyling
234
240
  })), settings.isOpen && jsx(PopperWrapper, {
235
- settings: settings
241
+ settings: settings,
242
+ popperModifiers: popperModifiers
236
243
  }, settings.showFullPicker ? jsx(EmojiPicker, {
237
244
  emojiProvider: emojiProvider,
238
245
  onSelection: onEmojiSelected,
@@ -252,7 +259,8 @@ export const ReactionPicker = /*#__PURE__*/React.memo(props => {
252
259
  export const PopperWrapper = props => {
253
260
  const {
254
261
  settings,
255
- children
262
+ children,
263
+ popperModifiers
256
264
  } = props;
257
265
  const [popupRef, setPopupRef] = useState(null);
258
266
  /**
@@ -263,9 +271,9 @@ export const PopperWrapper = props => {
263
271
  targetRef: popupRef
264
272
  });
265
273
  return jsx(Popper, {
266
- placement: settings.useLeftPopperPlacement ? 'left' : 'bottom-start',
274
+ placement: settings.popperPlacement,
267
275
  modifiers: popperModifiers,
268
- strategy: 'absolute'
276
+ strategy: "absolute"
269
277
  }, ({
270
278
  ref,
271
279
  style,
@@ -118,6 +118,8 @@ export const Reactions = /*#__PURE__*/React.memo(({
118
118
  ProfileCardWrapper,
119
119
  onlyRenderPicker = false,
120
120
  showRoundTrigger = false,
121
+ reactionPickerPlacement,
122
+ reactionsPickerPreventOverflowOptions,
121
123
  isViewOnly = false,
122
124
  reactionPickerAdditionalStyle,
123
125
  noWrap = false,
@@ -330,7 +332,9 @@ export const Reactions = /*#__PURE__*/React.memo(({
330
332
  showRoundTrigger: showRoundTrigger,
331
333
  reactionPickerTriggerIcon: reactionPickerTriggerIcon,
332
334
  reactionPickerAdditionalStyle: reactionPickerAdditionalStyle,
333
- useButtonAlignmentStyling: useButtonAlignmentStyling
335
+ useButtonAlignmentStyling: useButtonAlignmentStyling,
336
+ reactionPickerPlacement: reactionPickerPlacement,
337
+ reactionsPickerPreventOverflowOptions: reactionsPickerPreventOverflowOptions
334
338
  }), jsx(ModalTransition, null, !!selectedEmojiId && jsx(UFOSegment, {
335
339
  name: "reactions-dialog"
336
340
  }, jsx(ReactionsDialog, {
@@ -4,7 +4,7 @@ function _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t =
4
4
  import { createAndFireEvent } from '@atlaskit/analytics-next';
5
5
  import { UI_EVENT_TYPE, OPERATIONAL_EVENT_TYPE } from '@atlaskit/analytics-gas-types';
6
6
  var packageName = "@atlaskit/reactions";
7
- var packageVersion = "27.1.4";
7
+ var packageVersion = "27.2.0";
8
8
  /**
9
9
  * TODO: move to utility package?
10
10
  * A random sampling function
@@ -44,7 +44,8 @@ export var ReactionView = function ReactionView(_ref) {
44
44
  }, alphabeticalNames.length === 0 ? jsx(Box, {
45
45
  xcss: centerSpinnerStyle
46
46
  }, jsx(Spinner, {
47
- size: "large"
47
+ size: "large",
48
+ interactionName: "reactions-spinner"
48
49
  })) :
49
50
  // eslint-disable-next-line @atlaskit/design-system/consistent-css-prop-usage, @atlaskit/ui-styling-standard/no-imported-style-values -- Ignored via go/DSP-18766
50
51
  jsx("ul", {
@@ -36,33 +36,6 @@ export var RENDER_REACTIONPICKERPANEL_TESTID = 'reactionPickerPanel-testid';
36
36
  * Emoji Picker Controller Id for Accessibility Labels
37
37
  */
38
38
  var PICKER_CONTROL_ID = 'emoji-picker';
39
- var popperModifiers = [
40
- /**
41
- Removing this applyStyle modifier as it throws client errors ref:
42
- https://popper.js.org/docs/v1/#modifiers
43
- https://popper.js.org/docs/v1/#modifiers..applyStyle
44
- { name: 'applyStyle', enabled: false },
45
- */
46
- {
47
- name: 'hide',
48
- enabled: false
49
- }, {
50
- name: 'offset',
51
- enabled: true,
52
- options: {
53
- offset: [0, 0]
54
- }
55
- }, {
56
- name: 'flip',
57
- enabled: true,
58
- options: {
59
- flipVariations: true,
60
- boundariesElement: 'scrollParent'
61
- }
62
- }, {
63
- name: 'preventOverflow',
64
- enabled: true
65
- }];
66
39
  /**
67
40
  * Picker component for adding reactions
68
41
  */
@@ -94,7 +67,9 @@ export var ReactionPicker = /*#__PURE__*/React.memo(function (props) {
94
67
  _props$reactionPicker = props.reactionPickerAdditionalStyle,
95
68
  reactionPickerAdditionalStyle = _props$reactionPicker === void 0 ? undefined : _props$reactionPicker,
96
69
  reactionPickerTriggerIcon = props.reactionPickerTriggerIcon,
97
- useButtonAlignmentStyling = props.useButtonAlignmentStyling;
70
+ useButtonAlignmentStyling = props.useButtonAlignmentStyling,
71
+ reactionPickerPlacement = props.reactionPickerPlacement,
72
+ reactionsPickerPreventOverflowOptions = props.reactionsPickerPreventOverflowOptions;
98
73
  var _useState = useState(null),
99
74
  _useState2 = _slicedToArray(_useState, 2),
100
75
  triggerRef = _useState2[0],
@@ -109,6 +84,36 @@ export var ReactionPicker = /*#__PURE__*/React.memo(function (props) {
109
84
  selectionStyle = _useState4[0],
110
85
  setSelectionStyle = _useState4[1];
111
86
  var updatePopper = useRef();
87
+ var popperPlacement = showRoundTrigger ? 'left' : reactionPickerPlacement || 'bottom-start';
88
+ var popperModifiers = [
89
+ /**
90
+ Removing this applyStyle modifier as it throws client errors ref:
91
+ https://popper.js.org/docs/v1/#modifiers
92
+ https://popper.js.org/docs/v1/#modifiers..applyStyle
93
+ { name: 'applyStyle', enabled: false },
94
+ */
95
+ {
96
+ name: 'hide',
97
+ enabled: false
98
+ }, {
99
+ name: 'offset',
100
+ enabled: true,
101
+ options: {
102
+ offset: [0, 0]
103
+ }
104
+ }, {
105
+ name: 'flip',
106
+ enabled: true,
107
+ options: {
108
+ flipVariations: true,
109
+ boundariesElement: 'scrollParent'
110
+ }
111
+ }, _objectSpread({
112
+ name: 'preventOverflow',
113
+ enabled: true
114
+ }, reactionsPickerPreventOverflowOptions && {
115
+ options: reactionsPickerPreventOverflowOptions
116
+ })];
112
117
  var _useState5 = useState({
113
118
  /**
114
119
  * Show the picker floating panel
@@ -121,7 +126,7 @@ export var ReactionPicker = /*#__PURE__*/React.memo(function (props) {
121
126
  /**
122
127
  * Use left placement for popper - using value based on showRoundTrigger for now since it needs the left placement
123
128
  */
124
- useLeftPopperPlacement: showRoundTrigger
129
+ popperPlacement: popperPlacement
125
130
  }),
126
131
  _useState6 = _slicedToArray(_useState5, 2),
127
132
  settings = _useState6[0],
@@ -167,10 +172,10 @@ export var ReactionPicker = /*#__PURE__*/React.memo(function (props) {
167
172
  setSettings({
168
173
  isOpen: true,
169
174
  showFullPicker: true,
170
- useLeftPopperPlacement: showRoundTrigger
175
+ popperPlacement: popperPlacement
171
176
  });
172
177
  onShowMore();
173
- }, [onShowMore, showRoundTrigger]);
178
+ }, [onShowMore, popperPlacement]);
174
179
 
175
180
  /**
176
181
  * Event callback when an emoji icon is selected
@@ -194,7 +199,7 @@ export var ReactionPicker = /*#__PURE__*/React.memo(function (props) {
194
199
  setSettings({
195
200
  isOpen: !settings.isOpen,
196
201
  showFullPicker: !!allowAllEmojis && Array.isArray(pickerQuickReactionEmojiIds) && pickerQuickReactionEmojiIds.length === 0,
197
- useLeftPopperPlacement: showRoundTrigger
202
+ popperPlacement: popperPlacement
198
203
  });
199
204
  onOpen();
200
205
  // ufo reactions picker opened success
@@ -255,7 +260,8 @@ export var ReactionPicker = /*#__PURE__*/React.memo(function (props) {
255
260
  })
256
261
  );
257
262
  }), settings.isOpen && jsx(PopperWrapper, {
258
- settings: settings
263
+ settings: settings,
264
+ popperModifiers: popperModifiers
259
265
  }, settings.showFullPicker ? jsx(EmojiPicker, {
260
266
  emojiProvider: emojiProvider,
261
267
  onSelection: onEmojiSelected,
@@ -274,7 +280,8 @@ export var ReactionPicker = /*#__PURE__*/React.memo(function (props) {
274
280
  });
275
281
  export var PopperWrapper = function PopperWrapper(props) {
276
282
  var settings = props.settings,
277
- children = props.children;
283
+ children = props.children,
284
+ popperModifiers = props.popperModifiers;
278
285
  var _useState7 = useState(null),
279
286
  _useState8 = _slicedToArray(_useState7, 2),
280
287
  popupRef = _useState8[0],
@@ -287,9 +294,9 @@ export var PopperWrapper = function PopperWrapper(props) {
287
294
  targetRef: popupRef
288
295
  });
289
296
  return jsx(Popper, {
290
- placement: settings.useLeftPopperPlacement ? 'left' : 'bottom-start',
297
+ placement: settings.popperPlacement,
291
298
  modifiers: popperModifiers,
292
- strategy: 'absolute'
299
+ strategy: "absolute"
293
300
  }, function (_ref3) {
294
301
  var _ref4 = _ref3.ref,
295
302
  style = _ref3.style,
@@ -138,6 +138,8 @@ export var Reactions = /*#__PURE__*/React.memo(function (_ref) {
138
138
  onlyRenderPicker = _ref$onlyRenderPicker === void 0 ? false : _ref$onlyRenderPicker,
139
139
  _ref$showRoundTrigger = _ref.showRoundTrigger,
140
140
  showRoundTrigger = _ref$showRoundTrigger === void 0 ? false : _ref$showRoundTrigger,
141
+ reactionPickerPlacement = _ref.reactionPickerPlacement,
142
+ reactionsPickerPreventOverflowOptions = _ref.reactionsPickerPreventOverflowOptions,
141
143
  _ref$isViewOnly = _ref.isViewOnly,
142
144
  isViewOnly = _ref$isViewOnly === void 0 ? false : _ref$isViewOnly,
143
145
  reactionPickerAdditionalStyle = _ref.reactionPickerAdditionalStyle,
@@ -370,7 +372,9 @@ export var Reactions = /*#__PURE__*/React.memo(function (_ref) {
370
372
  showRoundTrigger: showRoundTrigger,
371
373
  reactionPickerTriggerIcon: reactionPickerTriggerIcon,
372
374
  reactionPickerAdditionalStyle: reactionPickerAdditionalStyle,
373
- useButtonAlignmentStyling: useButtonAlignmentStyling
375
+ useButtonAlignmentStyling: useButtonAlignmentStyling,
376
+ reactionPickerPlacement: reactionPickerPlacement,
377
+ reactionsPickerPreventOverflowOptions: reactionsPickerPreventOverflowOptions
374
378
  }), jsx(ModalTransition, null, !!selectedEmojiId && jsx(UFOSegment, {
375
379
  name: "reactions-dialog"
376
380
  }, jsx(ReactionsDialog, {
@@ -7,6 +7,7 @@ import { jsx } from '@emotion/react';
7
7
  import { type PickerSize } from '@atlaskit/emoji/types';
8
8
  import { type XCSS } from '@atlaskit/primitives';
9
9
  import { type EmojiProvider } from '@atlaskit/emoji/resource';
10
+ import { type PopperProps, type Placement } from '@atlaskit/popper';
10
11
  import { type ReactionSource } from '../../types';
11
12
  import { type SelectorProps } from '../Selector';
12
13
  import { type TriggerProps } from '../Trigger';
@@ -73,6 +74,14 @@ export interface ReactionPickerProps extends Pick<SelectorProps, 'pickerQuickRea
73
74
  * Optional prop for controlling if the picker hover border will be rounded
74
75
  */
75
76
  showRoundTrigger?: boolean;
77
+ /**
78
+ * Optional prop for controlling the picker location, gets overrided by showRoundTrigger
79
+ */
80
+ reactionPickerPlacement?: Placement;
81
+ /**
82
+ * Optional prop for controlling the overflow of the reaction picker
83
+ */
84
+ reactionsPickerPreventOverflowOptions?: Record<string, any>;
76
85
  /**
77
86
  * Option prop for controlling the reaction picker selection style
78
87
  */
@@ -91,7 +100,8 @@ export interface PopperWrapperProps {
91
100
  settings: {
92
101
  isOpen: boolean;
93
102
  showFullPicker: boolean;
94
- useLeftPopperPlacement: boolean;
103
+ popperPlacement: Placement;
95
104
  };
105
+ popperModifiers?: PopperProps<{}>['modifiers'];
96
106
  }
97
107
  export declare const PopperWrapper: (props: PropsWithChildren<PopperWrapperProps>) => jsx.JSX.Element;
@@ -2,13 +2,13 @@
2
2
  * Copied from ADS popup component with some tweeks for our use
3
3
  */
4
4
  import React from 'react';
5
- import { type PopperChildrenProps } from '@atlaskit/popper';
5
+ import { type PopperChildrenProps, type Placement } from '@atlaskit/popper';
6
6
  export type RepositionOnUpdateProps = {
7
7
  update: PopperChildrenProps['update'];
8
8
  settings: {
9
9
  isOpen: boolean;
10
10
  showFullPicker: boolean;
11
- useLeftPopperPlacement: boolean;
11
+ popperPlacement: Placement;
12
12
  };
13
13
  };
14
14
  export declare const RepositionOnUpdate: ({ children, update, settings, }: React.PropsWithChildren<RepositionOnUpdateProps>) => React.JSX.Element;
@@ -142,6 +142,14 @@ export interface ReactionsProps extends Pick<ReactionPickerProps, 'allowAllEmoji
142
142
  * Optional prop for controlling if the picker hover border will be rounded
143
143
  */
144
144
  showRoundTrigger?: boolean;
145
+ /**
146
+ * Optional prop for controlling the placement of the reaction picker, is overriden by showRoundTrigger
147
+ */
148
+ reactionPickerPlacement?: Placement;
149
+ /**
150
+ * Optional prop for controlling the overflow of the reaction picker
151
+ */
152
+ reactionsPickerPreventOverflowOptions?: Record<string, any>;
145
153
  /**
146
154
  * Optional prop for controlling if the reactions component is view only, disabling adding reactions
147
155
  */
@@ -179,4 +187,4 @@ export declare function getTooltip(status: ReactionStatus, errorMessage?: string
179
187
  /**
180
188
  * Renders list of reactions
181
189
  */
182
- export declare const Reactions: React.MemoExoticComponent<({ flash, particleEffectByEmoji, status, errorMessage, loadReaction, quickReactionEmojis, pickerQuickReactionEmojiIds, getReactionDetails, onSelection, reactions, emojiProvider, allowAllEmojis, onReactionClick, allowUserDialog, onDialogOpenCallback, onDialogCloseCallback, onDialogSelectReactionCallback, onDialogPageChangeCallback, emojiPickerSize, miniMode, summaryViewEnabled, summaryViewThreshold, summaryViewPlacement, showOpaqueBackground, subtleReactionsSummaryAndPicker, showAddReactionText, hideDefaultReactions, ProfileCardWrapper, onlyRenderPicker, showRoundTrigger, isViewOnly, reactionPickerAdditionalStyle, noWrap, noRelativeContainer, showSubtleDefaultReactions, reactionPickerTriggerToolipContent, reactionPickerTriggerIcon, allowSelectFromSummaryView, useButtonAlignmentStyling, }: ReactionsProps) => jsx.JSX.Element>;
190
+ export declare const Reactions: React.MemoExoticComponent<({ flash, particleEffectByEmoji, status, errorMessage, loadReaction, quickReactionEmojis, pickerQuickReactionEmojiIds, getReactionDetails, onSelection, reactions, emojiProvider, allowAllEmojis, onReactionClick, allowUserDialog, onDialogOpenCallback, onDialogCloseCallback, onDialogSelectReactionCallback, onDialogPageChangeCallback, emojiPickerSize, miniMode, summaryViewEnabled, summaryViewThreshold, summaryViewPlacement, showOpaqueBackground, subtleReactionsSummaryAndPicker, showAddReactionText, hideDefaultReactions, ProfileCardWrapper, onlyRenderPicker, showRoundTrigger, reactionPickerPlacement, reactionsPickerPreventOverflowOptions, isViewOnly, reactionPickerAdditionalStyle, noWrap, noRelativeContainer, showSubtleDefaultReactions, reactionPickerTriggerToolipContent, reactionPickerTriggerIcon, allowSelectFromSummaryView, useButtonAlignmentStyling, }: ReactionsProps) => jsx.JSX.Element>;
@@ -7,6 +7,7 @@ import { jsx } from '@emotion/react';
7
7
  import { type PickerSize } from '@atlaskit/emoji/types';
8
8
  import { type XCSS } from '@atlaskit/primitives';
9
9
  import { type EmojiProvider } from '@atlaskit/emoji/resource';
10
+ import { type PopperProps, type Placement } from '@atlaskit/popper';
10
11
  import { type ReactionSource } from '../../types';
11
12
  import { type SelectorProps } from '../Selector';
12
13
  import { type TriggerProps } from '../Trigger';
@@ -73,6 +74,14 @@ export interface ReactionPickerProps extends Pick<SelectorProps, 'pickerQuickRea
73
74
  * Optional prop for controlling if the picker hover border will be rounded
74
75
  */
75
76
  showRoundTrigger?: boolean;
77
+ /**
78
+ * Optional prop for controlling the picker location, gets overrided by showRoundTrigger
79
+ */
80
+ reactionPickerPlacement?: Placement;
81
+ /**
82
+ * Optional prop for controlling the overflow of the reaction picker
83
+ */
84
+ reactionsPickerPreventOverflowOptions?: Record<string, any>;
76
85
  /**
77
86
  * Option prop for controlling the reaction picker selection style
78
87
  */
@@ -91,7 +100,8 @@ export interface PopperWrapperProps {
91
100
  settings: {
92
101
  isOpen: boolean;
93
102
  showFullPicker: boolean;
94
- useLeftPopperPlacement: boolean;
103
+ popperPlacement: Placement;
95
104
  };
105
+ popperModifiers?: PopperProps<{}>['modifiers'];
96
106
  }
97
107
  export declare const PopperWrapper: (props: PropsWithChildren<PopperWrapperProps>) => jsx.JSX.Element;
@@ -2,13 +2,13 @@
2
2
  * Copied from ADS popup component with some tweeks for our use
3
3
  */
4
4
  import React from 'react';
5
- import { type PopperChildrenProps } from '@atlaskit/popper';
5
+ import { type PopperChildrenProps, type Placement } from '@atlaskit/popper';
6
6
  export type RepositionOnUpdateProps = {
7
7
  update: PopperChildrenProps['update'];
8
8
  settings: {
9
9
  isOpen: boolean;
10
10
  showFullPicker: boolean;
11
- useLeftPopperPlacement: boolean;
11
+ popperPlacement: Placement;
12
12
  };
13
13
  };
14
14
  export declare const RepositionOnUpdate: ({ children, update, settings, }: React.PropsWithChildren<RepositionOnUpdateProps>) => React.JSX.Element;
@@ -142,6 +142,14 @@ export interface ReactionsProps extends Pick<ReactionPickerProps, 'allowAllEmoji
142
142
  * Optional prop for controlling if the picker hover border will be rounded
143
143
  */
144
144
  showRoundTrigger?: boolean;
145
+ /**
146
+ * Optional prop for controlling the placement of the reaction picker, is overriden by showRoundTrigger
147
+ */
148
+ reactionPickerPlacement?: Placement;
149
+ /**
150
+ * Optional prop for controlling the overflow of the reaction picker
151
+ */
152
+ reactionsPickerPreventOverflowOptions?: Record<string, any>;
145
153
  /**
146
154
  * Optional prop for controlling if the reactions component is view only, disabling adding reactions
147
155
  */
@@ -179,4 +187,4 @@ export declare function getTooltip(status: ReactionStatus, errorMessage?: string
179
187
  /**
180
188
  * Renders list of reactions
181
189
  */
182
- export declare const Reactions: React.MemoExoticComponent<({ flash, particleEffectByEmoji, status, errorMessage, loadReaction, quickReactionEmojis, pickerQuickReactionEmojiIds, getReactionDetails, onSelection, reactions, emojiProvider, allowAllEmojis, onReactionClick, allowUserDialog, onDialogOpenCallback, onDialogCloseCallback, onDialogSelectReactionCallback, onDialogPageChangeCallback, emojiPickerSize, miniMode, summaryViewEnabled, summaryViewThreshold, summaryViewPlacement, showOpaqueBackground, subtleReactionsSummaryAndPicker, showAddReactionText, hideDefaultReactions, ProfileCardWrapper, onlyRenderPicker, showRoundTrigger, isViewOnly, reactionPickerAdditionalStyle, noWrap, noRelativeContainer, showSubtleDefaultReactions, reactionPickerTriggerToolipContent, reactionPickerTriggerIcon, allowSelectFromSummaryView, useButtonAlignmentStyling, }: ReactionsProps) => jsx.JSX.Element>;
190
+ export declare const Reactions: React.MemoExoticComponent<({ flash, particleEffectByEmoji, status, errorMessage, loadReaction, quickReactionEmojis, pickerQuickReactionEmojiIds, getReactionDetails, onSelection, reactions, emojiProvider, allowAllEmojis, onReactionClick, allowUserDialog, onDialogOpenCallback, onDialogCloseCallback, onDialogSelectReactionCallback, onDialogPageChangeCallback, emojiPickerSize, miniMode, summaryViewEnabled, summaryViewThreshold, summaryViewPlacement, showOpaqueBackground, subtleReactionsSummaryAndPicker, showAddReactionText, hideDefaultReactions, ProfileCardWrapper, onlyRenderPicker, showRoundTrigger, reactionPickerPlacement, reactionsPickerPreventOverflowOptions, isViewOnly, reactionPickerAdditionalStyle, noWrap, noRelativeContainer, showSubtleDefaultReactions, reactionPickerTriggerToolipContent, reactionPickerTriggerIcon, allowSelectFromSummaryView, useButtonAlignmentStyling, }: ReactionsProps) => jsx.JSX.Element>;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@atlaskit/reactions",
3
- "version": "27.1.4",
3
+ "version": "27.2.0",
4
4
  "description": "Reactions component",
5
5
  "publishConfig": {
6
6
  "registry": "https://registry.npmjs.org/"