@tamagui/popper 1.68.6 → 1.69.1

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.
@@ -20,7 +20,7 @@ import { getSpace } from "@tamagui/get-token";
20
20
  import { ThemeableStack, YStack } from "@tamagui/stacks";
21
21
  import * as React from "react";
22
22
  import { Keyboard, useWindowDimensions } from "react-native";
23
- const PopperContext = createStyledContext({}), usePopperContext = () => React.useContext(PopperContext);
23
+ const PopperContext = createStyledContext({}), { useStyledContext: usePopperContext, Provider: PopperProvider } = PopperContext;
24
24
  function Popper(props) {
25
25
  const {
26
26
  children,
@@ -29,7 +29,8 @@ function Popper(props) {
29
29
  placement = "bottom",
30
30
  stayInFrame,
31
31
  allowFlip,
32
- offset
32
+ offset,
33
+ __scopePopper
33
34
  } = props, [isMounted, setIsMounted] = React.useState(!1);
34
35
  useIsomorphicLayoutEffect(() => {
35
36
  setIsMounted(!0);
@@ -80,23 +81,26 @@ function Popper(props) {
80
81
  arrowStyle: middlewareData.arrow,
81
82
  onArrowSize: setArrowSize,
82
83
  isMounted,
84
+ scope: __scopePopper,
83
85
  ...floating
84
86
  };
85
- return <PopperContext.Provider {...popperContext}>{children}</PopperContext.Provider>;
87
+ return <PopperProvider {...popperContext}>{children}</PopperProvider>;
86
88
  }
87
89
  const PopperAnchor = YStack.extractable(
88
- React.forwardRef(function(props, forwardedRef) {
89
- const { virtualRef, ...anchorProps } = props, { anchorRef, getReferenceProps } = usePopperContext(), ref = React.useRef(null), composedRefs = useComposedRefs(forwardedRef, ref, anchorRef);
90
- if (virtualRef)
91
- return null;
92
- const stackProps = {
93
- ref: composedRefs,
94
- ...anchorProps
95
- };
96
- return <TamaguiView
97
- {...getReferenceProps ? getReferenceProps(stackProps) : stackProps}
98
- />;
99
- })
90
+ React.forwardRef(
91
+ function(props, forwardedRef) {
92
+ const { virtualRef, __scopePopper, ...anchorProps } = props, { anchorRef, getReferenceProps } = usePopperContext(__scopePopper), ref = React.useRef(null), composedRefs = useComposedRefs(forwardedRef, ref, anchorRef);
93
+ if (virtualRef)
94
+ return null;
95
+ const stackProps = {
96
+ ref: composedRefs,
97
+ ...anchorProps
98
+ };
99
+ return <TamaguiView
100
+ {...getReferenceProps ? getReferenceProps(stackProps) : stackProps}
101
+ />;
102
+ }
103
+ )
100
104
  ), PopperContentFrame = styled(ThemeableStack, {
101
105
  name: "PopperContent",
102
106
  variants: {
@@ -118,29 +122,27 @@ const PopperAnchor = YStack.extractable(
118
122
  defaultVariants: {
119
123
  unstyled: !1
120
124
  }
121
- }), PopperContent = React.forwardRef(
122
- function(props, forwardedRef) {
123
- const { strategy, placement, refs, x, y, getFloatingProps, size, isMounted, update } = usePopperContext(), contentRefs = useComposedRefs(refs.setFloating, forwardedRef), contents = React.useMemo(() => <PopperContentFrame
124
- key="popper-content-frame"
125
- data-placement={placement}
126
- data-strategy={strategy}
127
- contain="layout"
128
- size={size}
129
- {...props}
130
- />, [placement, strategy, props]);
131
- if (useIsomorphicLayoutEffect(() => {
132
- isMounted && update();
133
- }, [isMounted]), !isMounted)
134
- return null;
135
- const frameProps = {
136
- ref: contentRefs,
137
- x: x || 0,
138
- y: y || 0,
139
- position: strategy
140
- };
141
- return <YStack {...getFloatingProps ? getFloatingProps(frameProps) : frameProps}>{contents}</YStack>;
142
- }
143
- ), PopperArrowFrame = styled(YStack, {
125
+ }), PopperContent = React.forwardRef(function(props, forwardedRef) {
126
+ const { __scopePopper, ...rest } = props, { strategy, placement, refs, x, y, getFloatingProps, size, isMounted, update } = usePopperContext(__scopePopper), contentRefs = useComposedRefs(refs.setFloating, forwardedRef), contents = React.useMemo(() => <PopperContentFrame
127
+ key="popper-content-frame"
128
+ data-placement={placement}
129
+ data-strategy={strategy}
130
+ contain="layout"
131
+ size={size}
132
+ {...rest}
133
+ />, [placement, strategy, props]);
134
+ if (useIsomorphicLayoutEffect(() => {
135
+ isMounted && update();
136
+ }, [isMounted]), !isMounted)
137
+ return null;
138
+ const frameProps = {
139
+ ref: contentRefs,
140
+ x: x || 0,
141
+ y: y || 0,
142
+ position: strategy
143
+ };
144
+ return <YStack {...getFloatingProps ? getFloatingProps(frameProps) : frameProps}>{contents}</YStack>;
145
+ }), PopperArrowFrame = styled(YStack, {
144
146
  name: "PopperArrow",
145
147
  variants: {
146
148
  unstyled: {
@@ -176,48 +178,46 @@ const PopperAnchor = YStack.extractable(
176
178
  right: "left",
177
179
  bottom: "top",
178
180
  left: "right"
179
- }, PopperArrow = PopperArrowFrame.styleable(
180
- function(propsIn, forwardedRef) {
181
- var _a, _b;
182
- const props = useProps(propsIn), { offset, size: sizeProp, borderWidth = 0, ...arrowProps } = props, context = usePopperContext(), sizeVal = sizeProp ?? context.size, size = +getVariableValue(
183
- getSpace(sizeVal, {
184
- shift: -2,
185
- bounds: [2]
186
- })
187
- ), { placement } = context, refs = useComposedRefs(context.arrowRef, forwardedRef), x = ((_a = context.arrowStyle) == null ? void 0 : _a.x) || 0, y = ((_b = context.arrowStyle) == null ? void 0 : _b.y) || 0, primaryPlacement = placement ? placement.split("-")[0] : "top", arrowStyle = { x, y, width: size, height: size }, innerArrowStyle = {}, isVertical = primaryPlacement === "bottom" || primaryPlacement === "top";
188
- if (primaryPlacement) {
189
- arrowStyle[isVertical ? "width" : "height"] = size * 2;
190
- const oppSide = opposites[primaryPlacement];
191
- oppSide && (arrowStyle[oppSide] = -size, innerArrowStyle[oppSide] = size / 2), (oppSide === "top" || oppSide === "bottom") && (arrowStyle.left = 0), (oppSide === "left" || oppSide === "right") && (arrowStyle.top = 0);
192
- }
193
- return useIsomorphicLayoutEffect(() => {
181
+ }, PopperArrow = PopperArrowFrame.styleable(function(propsIn, forwardedRef) {
182
+ var _a, _b;
183
+ const { __scopePopper, ...rest } = propsIn, props = useProps(rest), { offset, size: sizeProp, borderWidth = 0, ...arrowProps } = props, context = usePopperContext(__scopePopper), sizeVal = sizeProp ?? context.size, size = +getVariableValue(
184
+ getSpace(sizeVal, {
185
+ shift: -2,
186
+ bounds: [2]
187
+ })
188
+ ), { placement } = context, refs = useComposedRefs(context.arrowRef, forwardedRef), x = ((_a = context.arrowStyle) == null ? void 0 : _a.x) || 0, y = ((_b = context.arrowStyle) == null ? void 0 : _b.y) || 0, primaryPlacement = placement ? placement.split("-")[0] : "top", arrowStyle = { x, y, width: size, height: size }, innerArrowStyle = {}, isVertical = primaryPlacement === "bottom" || primaryPlacement === "top";
189
+ if (primaryPlacement) {
190
+ arrowStyle[isVertical ? "width" : "height"] = size * 2;
191
+ const oppSide = opposites[primaryPlacement];
192
+ oppSide && (arrowStyle[oppSide] = -size, innerArrowStyle[oppSide] = size / 2), (oppSide === "top" || oppSide === "bottom") && (arrowStyle.left = 0), (oppSide === "left" || oppSide === "right") && (arrowStyle.top = 0), useIsomorphicLayoutEffect(() => {
194
193
  var _a2;
195
194
  (_a2 = context.onArrowSize) == null || _a2.call(context, size);
196
- }, [size, context.onArrowSize]), <PopperArrowOuterFrame ref={refs} {...arrowStyle}><PopperArrowFrame
197
- width={size}
198
- height={size}
199
- {...arrowProps}
200
- {...innerArrowStyle}
201
- rotate="45deg"
202
- {...primaryPlacement === "bottom" && {
203
- borderLeftWidth: borderWidth,
204
- borderTopWidth: borderWidth
205
- }}
206
- {...primaryPlacement === "top" && {
207
- borderBottomWidth: borderWidth,
208
- borderRightWidth: borderWidth
209
- }}
210
- {...primaryPlacement === "right" && {
211
- borderLeftWidth: borderWidth,
212
- borderBottomWidth: borderWidth
213
- }}
214
- {...primaryPlacement === "left" && {
215
- borderTopWidth: borderWidth,
216
- borderRightWidth: borderWidth
217
- }}
218
- /></PopperArrowOuterFrame>;
195
+ }, [size, context.onArrowSize]);
219
196
  }
220
- );
197
+ return <PopperArrowOuterFrame ref={refs} {...arrowStyle}><PopperArrowFrame
198
+ width={size}
199
+ height={size}
200
+ {...arrowProps}
201
+ {...innerArrowStyle}
202
+ rotate="45deg"
203
+ {...primaryPlacement === "bottom" && {
204
+ borderLeftWidth: borderWidth,
205
+ borderTopWidth: borderWidth
206
+ }}
207
+ {...primaryPlacement === "top" && {
208
+ borderBottomWidth: borderWidth,
209
+ borderRightWidth: borderWidth
210
+ }}
211
+ {...primaryPlacement === "right" && {
212
+ borderLeftWidth: borderWidth,
213
+ borderBottomWidth: borderWidth
214
+ }}
215
+ {...primaryPlacement === "left" && {
216
+ borderTopWidth: borderWidth,
217
+ borderRightWidth: borderWidth
218
+ }}
219
+ /></PopperArrowOuterFrame>;
220
+ });
221
221
  export {
222
222
  Popper,
223
223
  PopperAnchor,
@@ -225,6 +225,7 @@ export {
225
225
  PopperContent,
226
226
  PopperContentFrame,
227
227
  PopperContext,
228
+ PopperProvider,
228
229
  usePopperContext
229
230
  };
230
231
  //# sourceMappingURL=Popper.js.map
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../src/Popper.tsx"],
4
- "mappings": "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",
4
+ "mappings": "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",
5
5
  "names": ["_a"]
6
6
  }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@tamagui/popper",
3
- "version": "1.68.6",
3
+ "version": "1.69.1",
4
4
  "sideEffects": [
5
5
  "*.css"
6
6
  ],
@@ -31,19 +31,19 @@
31
31
  }
32
32
  },
33
33
  "dependencies": {
34
- "@tamagui/compose-refs": "1.68.6",
35
- "@tamagui/core": "1.68.6",
36
- "@tamagui/floating": "1.68.6",
37
- "@tamagui/get-token": "1.68.6",
38
- "@tamagui/stacks": "1.68.6",
39
- "@tamagui/use-controllable-state": "1.68.6"
34
+ "@tamagui/compose-refs": "1.69.1",
35
+ "@tamagui/core": "1.69.1",
36
+ "@tamagui/floating": "1.69.1",
37
+ "@tamagui/get-token": "1.69.1",
38
+ "@tamagui/stacks": "1.69.1",
39
+ "@tamagui/use-controllable-state": "1.69.1"
40
40
  },
41
41
  "peerDependencies": {
42
42
  "react": "*",
43
43
  "react-native": "*"
44
44
  },
45
45
  "devDependencies": {
46
- "@tamagui/build": "1.68.6",
46
+ "@tamagui/build": "1.69.1",
47
47
  "react": "^18.2.0",
48
48
  "react-native": "^0.72.1"
49
49
  },
package/src/Popper.tsx CHANGED
@@ -12,6 +12,7 @@ import {
12
12
  useIsomorphicLayoutEffect,
13
13
  useProps,
14
14
  } from '@tamagui/core'
15
+ import type { ScopedProps } from '@tamagui/core'
15
16
  import {
16
17
  Coords,
17
18
  OffsetOptions,
@@ -51,7 +52,8 @@ export type PopperContextValue = UseFloatingReturn & {
51
52
 
52
53
  export const PopperContext = createStyledContext<PopperContextValue>({} as any)
53
54
 
54
- export const usePopperContext = () => React.useContext(PopperContext)
55
+ export const { useStyledContext: usePopperContext, Provider: PopperProvider } =
56
+ PopperContext
55
57
 
56
58
  export type PopperProps = {
57
59
  size?: SizeTokens
@@ -63,7 +65,9 @@ export type PopperProps = {
63
65
  offset?: OffsetOptions
64
66
  }
65
67
 
66
- export function Popper(props: PopperProps) {
68
+ type ScopedPopperProps<P> = ScopedProps<P, 'Popper'>
69
+
70
+ export function Popper(props: ScopedPopperProps<PopperProps>) {
67
71
  const {
68
72
  children,
69
73
  size,
@@ -72,6 +76,7 @@ export function Popper(props: PopperProps) {
72
76
  stayInFrame,
73
77
  allowFlip,
74
78
  offset,
79
+ __scopePopper,
75
80
  } = props
76
81
 
77
82
  const [isMounted, setIsMounted] = React.useState(false)
@@ -152,10 +157,11 @@ export function Popper(props: PopperProps) {
152
157
  arrowStyle: middlewareData.arrow,
153
158
  onArrowSize: setArrowSize,
154
159
  isMounted,
160
+ scope: __scopePopper,
155
161
  ...floating,
156
162
  }
157
163
 
158
- return <PopperContext.Provider {...popperContext}>{children}</PopperContext.Provider>
164
+ return <PopperProvider {...popperContext}>{children}</PopperProvider>
159
165
  }
160
166
 
161
167
  /* -------------------------------------------------------------------------------------------------
@@ -169,27 +175,26 @@ export type PopperAnchorProps = YStackProps & {
169
175
  }
170
176
 
171
177
  export const PopperAnchor = YStack.extractable(
172
- React.forwardRef<PopperAnchorRef, PopperAnchorProps>(function PopperAnchor(
173
- props: PopperAnchorProps,
174
- forwardedRef
175
- ) {
176
- const { virtualRef, ...anchorProps } = props
177
- const { anchorRef, getReferenceProps } = usePopperContext()
178
- const ref = React.useRef<PopperAnchorRef>(null)
179
- const composedRefs = useComposedRefs(forwardedRef, ref, anchorRef)
180
- if (virtualRef) {
181
- return null
182
- }
183
- const stackProps = {
184
- ref: composedRefs,
185
- ...anchorProps,
178
+ React.forwardRef<PopperAnchorRef, ScopedPopperProps<PopperAnchorProps>>(
179
+ function PopperAnchor(props: ScopedPopperProps<PopperAnchorProps>, forwardedRef) {
180
+ const { virtualRef, __scopePopper, ...anchorProps } = props
181
+ const { anchorRef, getReferenceProps } = usePopperContext(__scopePopper)
182
+ const ref = React.useRef<PopperAnchorRef>(null)
183
+ const composedRefs = useComposedRefs(forwardedRef, ref, anchorRef)
184
+ if (virtualRef) {
185
+ return null
186
+ }
187
+ const stackProps = {
188
+ ref: composedRefs,
189
+ ...anchorProps,
190
+ }
191
+ return (
192
+ <TamaguiView
193
+ {...(getReferenceProps ? getReferenceProps(stackProps) : stackProps)}
194
+ />
195
+ )
186
196
  }
187
- return (
188
- <TamaguiView
189
- {...(getReferenceProps ? getReferenceProps(stackProps) : stackProps)}
190
- />
191
- )
192
- })
197
+ )
193
198
  )
194
199
 
195
200
  /* -------------------------------------------------------------------------------------------------
@@ -228,51 +233,53 @@ export const PopperContentFrame = styled(ThemeableStack, {
228
233
  },
229
234
  })
230
235
 
231
- export const PopperContent = React.forwardRef<PopperContentElement, PopperContentProps>(
232
- function PopperContent(props: PopperContentProps, forwardedRef) {
233
- const { strategy, placement, refs, x, y, getFloatingProps, size, isMounted, update } =
234
- usePopperContext()
235
- const contentRefs = useComposedRefs<any>(refs.setFloating, forwardedRef)
236
+ export const PopperContent = React.forwardRef<
237
+ PopperContentElement,
238
+ ScopedPopperProps<PopperContentProps>
239
+ >(function PopperContent(props: ScopedPopperProps<PopperContentProps>, forwardedRef) {
240
+ const { __scopePopper, ...rest } = props
241
+ const { strategy, placement, refs, x, y, getFloatingProps, size, isMounted, update } =
242
+ usePopperContext(__scopePopper)
243
+ const contentRefs = useComposedRefs<any>(refs.setFloating, forwardedRef)
236
244
 
237
- const contents = React.useMemo(() => {
238
- return (
239
- <PopperContentFrame
240
- key="popper-content-frame"
241
- data-placement={placement}
242
- data-strategy={strategy}
243
- contain="layout"
244
- size={size}
245
- {...props}
246
- />
247
- )
248
- }, [placement, strategy, props])
249
-
250
- useIsomorphicLayoutEffect(() => {
251
- if (isMounted) {
252
- update()
253
- }
254
- }, [isMounted])
245
+ const contents = React.useMemo(() => {
246
+ return (
247
+ <PopperContentFrame
248
+ key="popper-content-frame"
249
+ data-placement={placement}
250
+ data-strategy={strategy}
251
+ contain="layout"
252
+ size={size}
253
+ {...rest}
254
+ />
255
+ )
256
+ }, [placement, strategy, props])
255
257
 
256
- // all poppers hidden on ssr by default
257
- if (!isMounted) {
258
- return null
258
+ useIsomorphicLayoutEffect(() => {
259
+ if (isMounted) {
260
+ update()
259
261
  }
262
+ }, [isMounted])
260
263
 
261
- const frameProps = {
262
- ref: contentRefs,
263
- x: x || 0,
264
- y: y || 0,
265
- position: strategy,
266
- }
264
+ // all poppers hidden on ssr by default
265
+ if (!isMounted) {
266
+ return null
267
+ }
267
268
 
268
- // outer frame because we explicitly dont want animation to apply to this
269
- return (
270
- <YStack {...(getFloatingProps ? getFloatingProps(frameProps) : frameProps)}>
271
- {contents}
272
- </YStack>
273
- )
269
+ const frameProps = {
270
+ ref: contentRefs,
271
+ x: x || 0,
272
+ y: y || 0,
273
+ position: strategy,
274
274
  }
275
- )
275
+
276
+ // outer frame because we explicitly dont want animation to apply to this
277
+ return (
278
+ <YStack {...(getFloatingProps ? getFloatingProps(frameProps) : frameProps)}>
279
+ {contents}
280
+ </YStack>
281
+ )
282
+ })
276
283
 
277
284
  /* -------------------------------------------------------------------------------------------------
278
285
  * PopperArrow
@@ -331,84 +338,85 @@ const opposites = {
331
338
 
332
339
  type Sides = keyof typeof opposites
333
340
 
334
- export const PopperArrow = PopperArrowFrame.styleable<PopperArrowProps>(
335
- function PopperArrow(propsIn: PopperArrowProps, forwardedRef) {
336
- const props = useProps(propsIn)
337
- const { offset, size: sizeProp, borderWidth = 0, ...arrowProps } = props
338
-
339
- const context = usePopperContext()
340
- const sizeVal = sizeProp ?? context.size
341
- const sizeValResolved = getVariableValue(
342
- getSpace(sizeVal, {
343
- shift: -2,
344
- bounds: [2],
345
- })
346
- )
347
- const size = +sizeValResolved
348
- const { placement } = context
349
- const refs = useComposedRefs(context.arrowRef, forwardedRef)
350
-
351
- // Sometimes floating-ui can return NaN during orientation or screen size changes on native
352
- // so we explictly force the x,y position types as a number
353
- const x = (context.arrowStyle?.x as number) || 0
354
- const y = (context.arrowStyle?.y as number) || 0
355
-
356
- const primaryPlacement = (placement ? placement.split('-')[0] : 'top') as Sides
357
-
358
- const arrowStyle: StackProps = { x, y, width: size, height: size }
359
- const innerArrowStyle: StackProps = {}
360
- const isVertical = primaryPlacement === 'bottom' || primaryPlacement === 'top'
361
-
362
- if (primaryPlacement) {
363
- // allows for extra diagonal size
364
- arrowStyle[isVertical ? 'width' : 'height'] = size * 2
365
- const oppSide = opposites[primaryPlacement]
366
- if (oppSide) {
367
- arrowStyle[oppSide] = -size
368
- innerArrowStyle[oppSide] = size / 2
369
- }
370
- if (oppSide === 'top' || oppSide === 'bottom') {
371
- arrowStyle.left = 0
372
- }
373
- if (oppSide === 'left' || oppSide === 'right') {
374
- arrowStyle.top = 0
375
- }
341
+ export const PopperArrow = PopperArrowFrame.styleable<
342
+ ScopedPopperProps<PopperArrowProps>
343
+ >(function PopperArrow(propsIn: ScopedPopperProps<PopperArrowProps>, forwardedRef) {
344
+ const { __scopePopper, ...rest } = propsIn
345
+ const props = useProps(rest)
346
+ const { offset, size: sizeProp, borderWidth = 0, ...arrowProps } = props
347
+
348
+ const context = usePopperContext(__scopePopper)
349
+ const sizeVal = sizeProp ?? context.size
350
+ const sizeValResolved = getVariableValue(
351
+ getSpace(sizeVal, {
352
+ shift: -2,
353
+ bounds: [2],
354
+ })
355
+ )
356
+ const size = +sizeValResolved
357
+ const { placement } = context
358
+ const refs = useComposedRefs(context.arrowRef, forwardedRef)
359
+
360
+ // Sometimes floating-ui can return NaN during orientation or screen size changes on native
361
+ // so we explictly force the x,y position types as a number
362
+ const x = (context.arrowStyle?.x as number) || 0
363
+ const y = (context.arrowStyle?.y as number) || 0
364
+
365
+ const primaryPlacement = (placement ? placement.split('-')[0] : 'top') as Sides
366
+
367
+ const arrowStyle: StackProps = { x, y, width: size, height: size }
368
+ const innerArrowStyle: StackProps = {}
369
+ const isVertical = primaryPlacement === 'bottom' || primaryPlacement === 'top'
370
+
371
+ if (primaryPlacement) {
372
+ // allows for extra diagonal size
373
+ arrowStyle[isVertical ? 'width' : 'height'] = size * 2
374
+ const oppSide = opposites[primaryPlacement]
375
+ if (oppSide) {
376
+ arrowStyle[oppSide] = -size
377
+ innerArrowStyle[oppSide] = size / 2
378
+ }
379
+ if (oppSide === 'top' || oppSide === 'bottom') {
380
+ arrowStyle.left = 0
381
+ }
382
+ if (oppSide === 'left' || oppSide === 'right') {
383
+ arrowStyle.top = 0
376
384
  }
377
385
 
378
386
  // send the Arrow's offset up to Popper
379
387
  useIsomorphicLayoutEffect(() => {
380
388
  context.onArrowSize?.(size)
381
389
  }, [size, context.onArrowSize])
382
-
383
- // outer frame to cut off for ability to have nicer shadows/borders
384
- return (
385
- <PopperArrowOuterFrame ref={refs} {...arrowStyle}>
386
- <PopperArrowFrame
387
- width={size}
388
- height={size}
389
- {...arrowProps}
390
- {...innerArrowStyle}
391
- rotate="45deg"
392
- {...(primaryPlacement === 'bottom' && {
393
- borderLeftWidth: borderWidth,
394
- borderTopWidth: borderWidth,
395
- })}
396
- {...(primaryPlacement === 'top' && {
397
- borderBottomWidth: borderWidth,
398
- borderRightWidth: borderWidth,
399
- })}
400
- {...(primaryPlacement === 'right' && {
401
- borderLeftWidth: borderWidth,
402
- borderBottomWidth: borderWidth,
403
- })}
404
- {...(primaryPlacement === 'left' && {
405
- borderTopWidth: borderWidth,
406
- borderRightWidth: borderWidth,
407
- })}
408
- />
409
- </PopperArrowOuterFrame>
410
- )
411
390
  }
412
- )
391
+
392
+ // outer frame to cut off for ability to have nicer shadows/borders
393
+ return (
394
+ <PopperArrowOuterFrame ref={refs} {...arrowStyle}>
395
+ <PopperArrowFrame
396
+ width={size}
397
+ height={size}
398
+ {...arrowProps}
399
+ {...innerArrowStyle}
400
+ rotate="45deg"
401
+ {...(primaryPlacement === 'bottom' && {
402
+ borderLeftWidth: borderWidth,
403
+ borderTopWidth: borderWidth,
404
+ })}
405
+ {...(primaryPlacement === 'top' && {
406
+ borderBottomWidth: borderWidth,
407
+ borderRightWidth: borderWidth,
408
+ })}
409
+ {...(primaryPlacement === 'right' && {
410
+ borderLeftWidth: borderWidth,
411
+ borderBottomWidth: borderWidth,
412
+ })}
413
+ {...(primaryPlacement === 'left' && {
414
+ borderTopWidth: borderWidth,
415
+ borderRightWidth: borderWidth,
416
+ })}
417
+ />
418
+ </PopperArrowOuterFrame>
419
+ )
420
+ })
413
421
 
414
422
  /* -----------------------------------------------------------------------------------------------*/