@sanity/ui 0.37.12 → 0.37.14-next.6

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 (269) hide show
  1. package/lib/dts/src/components/autocomplete/autocomplete.d.ts +2 -2
  2. package/lib/dts/src/components/autocomplete/autocomplete.d.ts.map +1 -1
  3. package/lib/dts/src/components/autocomplete/autocomplete.styles.d.ts +1 -1
  4. package/lib/dts/src/components/autocomplete/autocomplete.styles.d.ts.map +1 -1
  5. package/lib/dts/src/components/autocomplete/constants.d.ts +0 -4
  6. package/lib/dts/src/components/autocomplete/constants.d.ts.map +1 -1
  7. package/lib/dts/src/components/breadcrumbs/breadcrumbs.d.ts.map +1 -1
  8. package/lib/dts/src/components/dialog/dialog.d.ts.map +1 -1
  9. package/lib/dts/src/components/dialog/styles.d.ts +1 -1
  10. package/lib/dts/src/components/dialog/styles.d.ts.map +1 -1
  11. package/lib/dts/src/components/hotkeys/hotkeys.d.ts.map +1 -1
  12. package/lib/dts/src/components/menu/menuButton.d.ts.map +1 -1
  13. package/lib/dts/src/components/menu/menuGroup.d.ts.map +1 -1
  14. package/lib/dts/src/components/menu/menuItem.d.ts.map +1 -1
  15. package/lib/dts/src/components/skeleton/skeleton.d.ts.map +1 -1
  16. package/lib/dts/src/constants.d.ts +10 -0
  17. package/lib/dts/src/constants.d.ts.map +1 -1
  18. package/lib/dts/src/hooks/_internal/useUnique.d.ts +2 -3
  19. package/lib/dts/src/hooks/_internal/useUnique.d.ts.map +1 -1
  20. package/lib/dts/src/hooks/index.d.ts +2 -1
  21. package/lib/dts/src/hooks/index.d.ts.map +1 -1
  22. package/lib/dts/src/hooks/useArrayProp.d.ts +7 -0
  23. package/lib/dts/src/hooks/useArrayProp.d.ts.map +1 -0
  24. package/lib/dts/src/hooks/useElementRect/useElementRect.d.ts +1 -1
  25. package/lib/dts/src/hooks/useElementRect/useElementRect.d.ts.map +1 -1
  26. package/lib/dts/src/hooks/useElementSize.d.ts +7 -0
  27. package/lib/dts/src/hooks/useElementSize.d.ts.map +1 -0
  28. package/lib/dts/src/index.d.ts +1 -0
  29. package/lib/dts/src/index.d.ts.map +1 -1
  30. package/lib/dts/src/observers/elementSizeObserver.d.ts +37 -0
  31. package/lib/dts/src/observers/elementSizeObserver.d.ts.map +1 -0
  32. package/lib/dts/src/observers/index.d.ts +3 -0
  33. package/lib/dts/src/observers/index.d.ts.map +1 -0
  34. package/lib/dts/src/observers/resizeObserver.d.ts +5 -0
  35. package/lib/dts/src/observers/resizeObserver.d.ts.map +1 -0
  36. package/lib/dts/src/primitives/_selectable/selectable.d.ts +1 -2
  37. package/lib/dts/src/primitives/_selectable/selectable.d.ts.map +1 -1
  38. package/lib/dts/src/primitives/avatar/avatar.d.ts.map +1 -1
  39. package/lib/dts/src/primitives/avatar/avatarCounter.d.ts +1 -0
  40. package/lib/dts/src/primitives/avatar/avatarCounter.d.ts.map +1 -1
  41. package/lib/dts/src/primitives/avatar/avatarStack.d.ts +1 -0
  42. package/lib/dts/src/primitives/avatar/avatarStack.d.ts.map +1 -1
  43. package/lib/dts/src/primitives/avatar/styles.d.ts.map +1 -1
  44. package/lib/dts/src/primitives/badge/badge.d.ts.map +1 -1
  45. package/lib/dts/src/primitives/box/box.d.ts.map +1 -1
  46. package/lib/dts/src/primitives/button/button.d.ts.map +1 -1
  47. package/lib/dts/src/primitives/card/card.d.ts.map +1 -1
  48. package/lib/dts/src/primitives/code/code.d.ts.map +1 -1
  49. package/lib/dts/src/primitives/container/container.d.ts.map +1 -1
  50. package/lib/dts/src/primitives/container/styles.d.ts.map +1 -1
  51. package/lib/dts/src/primitives/container/types.d.ts +1 -1
  52. package/lib/dts/src/primitives/container/types.d.ts.map +1 -1
  53. package/lib/dts/src/primitives/flex/flex.d.ts.map +1 -1
  54. package/lib/dts/src/primitives/grid/grid.d.ts.map +1 -1
  55. package/lib/dts/src/primitives/heading/heading.d.ts.map +1 -1
  56. package/lib/dts/src/primitives/inline/inline.d.ts.map +1 -1
  57. package/lib/dts/src/primitives/inline/styles.d.ts.map +1 -1
  58. package/lib/dts/src/primitives/inline/types.d.ts +1 -1
  59. package/lib/dts/src/primitives/inline/types.d.ts.map +1 -1
  60. package/lib/dts/src/primitives/kbd/kbd.d.ts.map +1 -1
  61. package/lib/dts/src/primitives/label/label.d.ts.map +1 -1
  62. package/lib/dts/src/primitives/popover/popover.d.ts +6 -5
  63. package/lib/dts/src/primitives/popover/popover.d.ts.map +1 -1
  64. package/lib/dts/src/primitives/popover/{arrow.d.ts → popoverArrow.d.ts} +1 -1
  65. package/lib/dts/src/primitives/popover/popoverArrow.d.ts.map +1 -0
  66. package/lib/dts/src/primitives/popover/popoverCard.d.ts +33 -0
  67. package/lib/dts/src/primitives/popover/popoverCard.d.ts.map +1 -0
  68. package/lib/dts/src/primitives/select/styles.d.ts +5 -1
  69. package/lib/dts/src/primitives/select/styles.d.ts.map +1 -1
  70. package/lib/dts/src/primitives/stack/stack.d.ts.map +1 -1
  71. package/lib/dts/src/primitives/stack/styles.d.ts +1 -1
  72. package/lib/dts/src/primitives/stack/styles.d.ts.map +1 -1
  73. package/lib/dts/src/primitives/text/text.d.ts.map +1 -1
  74. package/lib/dts/src/primitives/textArea/textArea.d.ts.map +1 -1
  75. package/lib/dts/src/primitives/textInput/textInput.d.ts.map +1 -1
  76. package/lib/dts/src/primitives/tooltip/tooltip.d.ts +2 -0
  77. package/lib/dts/src/primitives/tooltip/tooltip.d.ts.map +1 -1
  78. package/lib/dts/src/primitives/tooltip/tooltipArrow.d.ts.map +1 -1
  79. package/lib/dts/src/primitives/types.d.ts +1 -1
  80. package/lib/dts/src/primitives/types.d.ts.map +1 -1
  81. package/lib/dts/src/styles/border/types.d.ts +5 -5
  82. package/lib/dts/src/styles/border/types.d.ts.map +1 -1
  83. package/lib/dts/src/styles/box/types.d.ts +4 -4
  84. package/lib/dts/src/styles/box/types.d.ts.map +1 -1
  85. package/lib/dts/src/styles/flex/flexItemStyle.d.ts.map +1 -1
  86. package/lib/dts/src/styles/flex/types.d.ts +6 -6
  87. package/lib/dts/src/styles/flex/types.d.ts.map +1 -1
  88. package/lib/dts/src/styles/font/responsiveFont.d.ts +1 -1
  89. package/lib/dts/src/styles/font/responsiveFont.d.ts.map +1 -1
  90. package/lib/dts/src/styles/font/types.d.ts +3 -3
  91. package/lib/dts/src/styles/font/types.d.ts.map +1 -1
  92. package/lib/dts/src/styles/grid/types.d.ts +14 -14
  93. package/lib/dts/src/styles/grid/types.d.ts.map +1 -1
  94. package/lib/dts/src/styles/helpers.d.ts +4 -4
  95. package/lib/dts/src/styles/helpers.d.ts.map +1 -1
  96. package/lib/dts/src/styles/input/responsiveInputPaddingStyle.d.ts +12 -12
  97. package/lib/dts/src/styles/input/responsiveInputPaddingStyle.d.ts.map +1 -1
  98. package/lib/dts/src/styles/input/textInputStyle.d.ts +4 -1
  99. package/lib/dts/src/styles/input/textInputStyle.d.ts.map +1 -1
  100. package/lib/dts/src/styles/margin/types.d.ts +7 -7
  101. package/lib/dts/src/styles/margin/types.d.ts.map +1 -1
  102. package/lib/dts/src/styles/padding/types.d.ts +7 -7
  103. package/lib/dts/src/styles/padding/types.d.ts.map +1 -1
  104. package/lib/dts/src/styles/radius/types.d.ts +1 -1
  105. package/lib/dts/src/styles/radius/types.d.ts.map +1 -1
  106. package/lib/dts/src/styles/shadow/shadowStyle.d.ts.map +1 -1
  107. package/lib/dts/src/styles/shadow/types.d.ts +1 -1
  108. package/lib/dts/src/styles/shadow/types.d.ts.map +1 -1
  109. package/lib/dts/src/theme/lib/theme/fonts.d.ts +1 -3
  110. package/lib/dts/src/theme/lib/theme/fonts.d.ts.map +1 -1
  111. package/lib/dts/src/theme/studioTheme/fonts.d.ts.map +1 -1
  112. package/lib/dts/src/types/index.d.ts +2 -1
  113. package/lib/dts/src/types/index.d.ts.map +1 -1
  114. package/lib/dts/src/types/placement.d.ts +7 -0
  115. package/lib/dts/src/types/placement.d.ts.map +1 -0
  116. package/lib/dts/src/types/text.d.ts +5 -0
  117. package/lib/dts/src/types/text.d.ts.map +1 -0
  118. package/lib/dts/src/utils/elementQuery/elementQuery.d.ts.map +1 -1
  119. package/lib/dts/src/utils/index.d.ts +0 -1
  120. package/lib/dts/src/utils/index.d.ts.map +1 -1
  121. package/lib/dts/src/utils/virtualList/virtualList.d.ts.map +1 -1
  122. package/lib/sanity-ui.js +1214 -1054
  123. package/lib/sanity-ui.js.map +1 -1
  124. package/lib/{sanity-ui.modern.js → sanity-ui.modern.mjs} +1246 -1120
  125. package/lib/sanity-ui.modern.mjs.map +1 -0
  126. package/lib/sanity-ui.module.js +1106 -947
  127. package/lib/sanity-ui.module.js.map +1 -1
  128. package/package.json +11 -12
  129. package/src/__workshop__/color/overview.tsx +9 -11
  130. package/src/components/autocomplete/__workshop__/async.tsx +14 -12
  131. package/src/components/autocomplete/__workshop__/constrainedHeight.tsx +36 -0
  132. package/src/components/autocomplete/autocomplete.styles.tsx +0 -6
  133. package/src/components/autocomplete/autocomplete.tsx +14 -7
  134. package/src/components/autocomplete/constants.ts +3 -8
  135. package/src/components/breadcrumbs/breadcrumbs.tsx +3 -2
  136. package/src/components/dialog/dialog.tsx +17 -9
  137. package/src/components/dialog/styles.ts +3 -3
  138. package/src/components/hotkeys/hotkeys.tsx +3 -1
  139. package/src/components/menu/__workshop__/constrainedInBoundary.tsx +11 -14
  140. package/src/components/menu/__workshop__/groups.tsx +1 -1
  141. package/src/components/menu/menuButton.tsx +21 -13
  142. package/src/components/menu/menuGroup.tsx +3 -2
  143. package/src/components/menu/menuItem.tsx +4 -5
  144. package/src/components/skeleton/skeleton.tsx +10 -1
  145. package/src/components/skeleton/textSkeleton.tsx +7 -7
  146. package/src/constants.ts +17 -0
  147. package/src/hooks/_internal/useUnique.ts +4 -5
  148. package/src/hooks/index.ts +2 -1
  149. package/src/hooks/useArrayProp.ts +23 -0
  150. package/src/hooks/useElementRect/useElementRect.ts +4 -16
  151. package/src/hooks/useElementSize.ts +18 -0
  152. package/src/index.ts +1 -0
  153. package/src/observers/elementSizeObserver.ts +116 -0
  154. package/src/observers/index.ts +2 -0
  155. package/src/{utils → observers}/resizeObserver.ts +1 -4
  156. package/src/primitives/_selectable/selectable.tsx +5 -4
  157. package/src/primitives/avatar/avatar.tsx +7 -5
  158. package/src/primitives/avatar/avatarCounter.tsx +14 -12
  159. package/src/primitives/avatar/avatarStack.tsx +19 -13
  160. package/src/primitives/avatar/styles.ts +2 -2
  161. package/src/primitives/badge/badge.tsx +3 -2
  162. package/src/primitives/box/box.tsx +27 -26
  163. package/src/primitives/button/button.tsx +22 -10
  164. package/src/primitives/card/card.tsx +13 -11
  165. package/src/primitives/checkbox/__workshop__/example.tsx +4 -2
  166. package/src/primitives/checkbox/__workshop__/props.tsx +4 -2
  167. package/src/primitives/checkbox/__workshop__/readOnly.tsx +4 -2
  168. package/src/primitives/code/__workshop__/props.tsx +1 -1
  169. package/src/primitives/code/code.tsx +2 -1
  170. package/src/primitives/container/container.tsx +10 -1
  171. package/src/primitives/container/styles.ts +2 -2
  172. package/src/primitives/container/types.ts +1 -1
  173. package/src/primitives/flex/flex.tsx +6 -5
  174. package/src/primitives/grid/__workshop__/responsive.tsx +13 -12
  175. package/src/primitives/grid/grid.tsx +9 -8
  176. package/src/primitives/heading/__workshop__/opticalAlignment.tsx +19 -7
  177. package/src/primitives/heading/heading.tsx +3 -2
  178. package/src/primitives/inline/inline.tsx +12 -6
  179. package/src/primitives/inline/styles.ts +2 -2
  180. package/src/primitives/inline/types.ts +1 -1
  181. package/src/primitives/kbd/kbd.tsx +2 -1
  182. package/src/primitives/label/label.tsx +4 -3
  183. package/src/primitives/popover/__workshop__/{margins.tsx → MarginsStory.tsx} +1 -1
  184. package/src/primitives/popover/__workshop__/{matchReferenceWidth.tsx → MatchReferenceWidthStory.tsx} +0 -0
  185. package/src/primitives/popover/__workshop__/{plain.tsx → PlainStory.tsx} +13 -14
  186. package/src/primitives/popover/__workshop__/{recursive.tsx → RecursiveStory.tsx} +4 -1
  187. package/src/primitives/popover/__workshop__/RightAlignedStory.tsx +61 -0
  188. package/src/primitives/popover/__workshop__/TestStory.tsx +80 -0
  189. package/src/primitives/popover/__workshop__/index.ts +10 -5
  190. package/src/primitives/popover/popover.tsx +245 -193
  191. package/src/primitives/popover/{arrow.tsx → popoverArrow.tsx} +5 -5
  192. package/src/primitives/popover/popoverCard.tsx +160 -0
  193. package/src/primitives/select/select.tsx +9 -9
  194. package/src/primitives/select/styles.ts +10 -4
  195. package/src/primitives/stack/stack.tsx +2 -1
  196. package/src/primitives/stack/styles.ts +3 -3
  197. package/src/primitives/text/__workshop__/opticalAlignment.tsx +15 -5
  198. package/src/primitives/text/text.tsx +3 -2
  199. package/src/primitives/textArea/__workshop__/plain.tsx +23 -18
  200. package/src/primitives/textArea/textArea.tsx +17 -5
  201. package/src/primitives/textInput/__workshop__/clearButton.tsx +14 -8
  202. package/src/primitives/textInput/__workshop__/index.ts +2 -2
  203. package/src/primitives/textInput/__workshop__/plain.tsx +39 -32
  204. package/src/primitives/textInput/__workshop__/tones.tsx +97 -75
  205. package/src/primitives/textInput/__workshop__/typed.tsx +8 -2
  206. package/src/primitives/textInput/textInput.tsx +43 -12
  207. package/src/primitives/tooltip/__workshop__/props.tsx +7 -1
  208. package/src/primitives/tooltip/tooltip.tsx +162 -85
  209. package/src/primitives/tooltip/tooltipArrow.tsx +25 -10
  210. package/src/primitives/types.ts +1 -1
  211. package/src/styles/border/borderStyle.ts +6 -6
  212. package/src/styles/border/types.ts +5 -5
  213. package/src/styles/box/boxStyle.ts +5 -5
  214. package/src/styles/box/types.ts +4 -4
  215. package/src/styles/flex/flexItemStyle.ts +5 -4
  216. package/src/styles/flex/flexStyle.ts +6 -6
  217. package/src/styles/flex/types.ts +6 -6
  218. package/src/styles/font/responsiveFont.ts +7 -27
  219. package/src/styles/font/textAlignStyle.ts +2 -2
  220. package/src/styles/font/types.ts +4 -3
  221. package/src/styles/grid/gridItemStyle.ts +7 -7
  222. package/src/styles/grid/gridStyle.ts +9 -9
  223. package/src/styles/grid/types.ts +14 -14
  224. package/src/styles/helpers.ts +9 -9
  225. package/src/styles/input/responsiveInputPaddingStyle.ts +24 -27
  226. package/src/styles/input/textInputStyle.ts +89 -79
  227. package/src/styles/margin/marginStyle.ts +8 -8
  228. package/src/styles/margin/marginsStyle.test.ts +1 -1
  229. package/src/styles/margin/types.ts +7 -7
  230. package/src/styles/padding/paddingStyle.test.ts +1 -1
  231. package/src/styles/padding/paddingStyle.ts +8 -8
  232. package/src/styles/padding/types.ts +7 -7
  233. package/src/styles/radius/radiusStyle.ts +2 -2
  234. package/src/styles/radius/types.ts +1 -1
  235. package/src/styles/shadow/shadowStyle.ts +2 -5
  236. package/src/styles/shadow/types.ts +1 -1
  237. package/src/theme/lib/theme/fonts.ts +1 -3
  238. package/src/theme/studioTheme/fonts.ts +5 -9
  239. package/src/types/index.ts +2 -2
  240. package/src/types/placement.ts +18 -0
  241. package/src/types/text.ts +4 -0
  242. package/src/utils/elementQuery/elementQuery.tsx +5 -18
  243. package/src/utils/index.ts +0 -1
  244. package/src/utils/layer/layer.tsx +1 -1
  245. package/src/utils/layer/layerProvider.tsx +2 -2
  246. package/src/utils/virtualList/virtualList.tsx +8 -7
  247. package/lib/dts/src/hooks/useResponsiveProp.d.ts +0 -6
  248. package/lib/dts/src/hooks/useResponsiveProp.d.ts.map +0 -1
  249. package/lib/dts/src/primitives/popover/arrow.d.ts.map +0 -1
  250. package/lib/dts/src/primitives/popover/modifiers/getPopoverModifiers.d.ts +0 -4
  251. package/lib/dts/src/primitives/popover/modifiers/getPopoverModifiers.d.ts.map +0 -1
  252. package/lib/dts/src/primitives/popover/modifiers/index.d.ts +0 -2
  253. package/lib/dts/src/primitives/popover/modifiers/index.d.ts.map +0 -1
  254. package/lib/dts/src/primitives/popover/modifiers/types.d.ts +0 -18
  255. package/lib/dts/src/primitives/popover/modifiers/types.d.ts.map +0 -1
  256. package/lib/dts/src/primitives/popover/modifiers/usePopoverModifiers.d.ts +0 -4
  257. package/lib/dts/src/primitives/popover/modifiers/usePopoverModifiers.d.ts.map +0 -1
  258. package/lib/dts/src/types/common.d.ts +0 -11
  259. package/lib/dts/src/types/common.d.ts.map +0 -1
  260. package/lib/dts/src/utils/resizeObserver.d.ts +0 -6
  261. package/lib/dts/src/utils/resizeObserver.d.ts.map +0 -1
  262. package/lib/sanity-ui.modern.js.map +0 -1
  263. package/src/hooks/useResponsiveProp.ts +0 -10
  264. package/src/primitives/popover/__workshop__/rightAligned.tsx +0 -57
  265. package/src/primitives/popover/modifiers/getPopoverModifiers.ts +0 -137
  266. package/src/primitives/popover/modifiers/index.ts +0 -1
  267. package/src/primitives/popover/modifiers/types.ts +0 -18
  268. package/src/primitives/popover/modifiers/usePopoverModifiers.ts +0 -58
  269. package/src/types/common.ts +0 -12
@@ -1,10 +0,0 @@
1
- import {useMemo} from 'react'
2
- import {getResponsiveProp} from '../styles'
3
-
4
- /**
5
- * This API might change. DO NOT USE IN PRODUCTION.
6
- * @beta
7
- */
8
- export function useResponsiveProp<T = number>(val: T | T[] | undefined, defaultVal?: T[]): T[] {
9
- return useMemo(() => getResponsiveProp(val, defaultVal), [defaultVal, val])
10
- }
@@ -1,57 +0,0 @@
1
- import {EllipsisVerticalIcon} from '@sanity/icons'
2
- import {Box, Button, Card, Flex, Popover, Text, useClickOutside} from '@sanity/ui'
3
- import React, {useCallback, useState} from 'react'
4
-
5
- export default function RightAlignedStory() {
6
- const [open, setOpen] = useState(false)
7
- const [boundaryElement, setBoundaryElement] = useState<HTMLDivElement | null>(null)
8
- const [buttonElement, setButtonElement] = useState<HTMLButtonElement | null>(null)
9
- const [popoverElement, setPopoverElement] = useState<HTMLDivElement | null>(null)
10
- const content = (
11
- <Box overflow="auto" padding={3}>
12
- <Text>
13
- Lorem ipsum dolor sit amet, consectetur adipiscing elit. Quisque at nisl at sem tempor
14
- hendrerit scelerisque ut libero. Maecenas iaculis efficitur lorem, ac faucibus mi imperdiet
15
- quis. Cras a consectetur erat. Fusce imperdiet, dolor et pellentesque iaculis, ex quam
16
- luctus felis, non ultrices enim sem vitae quam. Duis lorem velit, lacinia at rhoncus a,
17
- tempus vel neque. Vestibulum ante ipsum primis in faucibus orci luctus et ultrices posuere
18
- cubilia curae; Sed id mauris quam. Nam finibus sapien non lacinia ultricies. Integer
19
- fermentum tortor at pellentesque faucibus. In venenatis commodo placerat. Curabitur commodo
20
- tortor libero, vel pellentesque elit luctus sodales. Donec mattis tristique nunc ac lacinia.
21
- Vestibulum non pulvinar turpis, posuere consequat arcu. Fusce ut urna blandit, finibus nisi
22
- a, molestie elit. Nulla sed eleifend mi.
23
- </Text>
24
- </Box>
25
- )
26
-
27
- const handleToggleOpen = useCallback(() => setOpen((v) => !v), [])
28
- const handleClose = useCallback(() => setOpen(false), [])
29
-
30
- useClickOutside(handleClose, [buttonElement, popoverElement])
31
-
32
- return (
33
- <Box height="fill" padding={[4, 5, 6]} sizing="border">
34
- <Card height="fill" padding={2} ref={setBoundaryElement} shadow={1}>
35
- <Flex justify="flex-end" padding={0}>
36
- <Popover
37
- boundaryElement={boundaryElement}
38
- constrainSize
39
- content={content}
40
- open={open}
41
- portal
42
- preventOverflow
43
- ref={setPopoverElement}
44
- >
45
- <Button
46
- icon={EllipsisVerticalIcon}
47
- mode="bleed"
48
- onClick={handleToggleOpen}
49
- ref={setButtonElement}
50
- selected={open}
51
- />
52
- </Popover>
53
- </Flex>
54
- </Card>
55
- </Box>
56
- )
57
- }
@@ -1,137 +0,0 @@
1
- import maxSizeModifier from 'popper-max-size-modifier'
2
- import {Modifier} from 'react-popper'
3
- import {PopoverModifiersProps} from './types'
4
-
5
- /*
6
-
7
- The order of popper phases:
8
-
9
- - beforeRead
10
- - read
11
- - afterRead
12
- - beforeMain
13
- - main
14
- - afterMain
15
- - beforeWrite
16
- - write
17
- - afterWrite
18
-
19
- */
20
-
21
- export function getPopoverModifiers(props: PopoverModifiersProps): Modifier<any, any>[] {
22
- const {
23
- allowedAutoPlacements,
24
- arrow,
25
- arrowElement,
26
- boundaryElement,
27
- constrainSize,
28
- distance,
29
- fallbackPlacements,
30
- margins,
31
- matchReferenceWidth,
32
- open,
33
- preventOverflow,
34
- skidding,
35
- tether,
36
- tetherOffset,
37
- } = props
38
-
39
- // NOTE: For later viewers:
40
- // Prior to adding this change, the popover would get `maxWidth: 0` the 2nd time it
41
- // was opened, when used with `constrainSize`. I was looking for a way to "reset"
42
- // the size of the popover as measured by Popper.js, and this seems to be a workaround.
43
- if (!open) {
44
- return []
45
- }
46
-
47
- const detectOverflowOptions = {
48
- altAxis: !constrainSize,
49
- boundary: boundaryElement || undefined,
50
- padding: 8,
51
- tether,
52
- tetherOffset,
53
- }
54
-
55
- return [
56
- constrainSize && {
57
- ...maxSizeModifier,
58
- options: detectOverflowOptions,
59
- },
60
- constrainSize && {
61
- name: 'applyMaxSize',
62
- enabled: true,
63
- phase: 'beforeWrite',
64
- requires: ['maxSize'],
65
- fn({state}: any) {
66
- const {width, height} = state.modifiersData.maxSize
67
-
68
- state.styles.popper = {
69
- ...state.styles.popper,
70
- maxWidth: `${width}px`,
71
- maxHeight: `${height}px`,
72
- }
73
- },
74
- },
75
- arrow && {
76
- name: 'arrow',
77
- options: {
78
- element: arrowElement,
79
- padding: 4,
80
- },
81
- },
82
- (constrainSize || preventOverflow) && {
83
- name: 'preventOverflow',
84
- options: detectOverflowOptions,
85
- },
86
- {
87
- name: 'offset',
88
- options: {
89
- offset: [skidding, distance],
90
- },
91
- },
92
- margins && {
93
- name: 'margins',
94
- enabled: true,
95
- phase: 'beforeRead',
96
- fn: ({state}: any) => {
97
- const {rects} = state
98
-
99
- if (rects.reference) {
100
- rects.reference.x += margins[3]
101
- rects.reference.y += margins[1]
102
- rects.reference.width -= margins[1] + margins[3]
103
- rects.reference.height -= margins[0] + margins[2]
104
- }
105
- },
106
- },
107
- {
108
- name: 'flip',
109
- options: {
110
- allowedAutoPlacements,
111
- boundary: boundaryElement || undefined,
112
- fallbackPlacements,
113
- padding: 8,
114
- },
115
- },
116
- matchReferenceWidth && {
117
- name: 'matchWidth',
118
- enabled: true,
119
- phase: 'beforeWrite',
120
- requires: ['computeStyles'],
121
- fn({state}: any) {
122
- const {width} = state.rects.reference
123
-
124
- state.styles.popper.width = `${width}px`
125
- },
126
- effect: ({state}: any) => {
127
- const refElement = state.elements.reference
128
-
129
- if (refElement instanceof HTMLElement) {
130
- state.elements.popper.style.width = `${
131
- refElement.offsetWidth - (margins ? margins[1] + margins[3] : 0)
132
- }px`
133
- }
134
- },
135
- },
136
- ].filter(Boolean) as Modifier<any, any>[]
137
- }
@@ -1 +0,0 @@
1
- export * from './usePopoverModifiers'
@@ -1,18 +0,0 @@
1
- import {Placement} from '../../../types'
2
-
3
- export interface PopoverModifiersProps {
4
- allowedAutoPlacements?: Placement[]
5
- arrow?: boolean
6
- arrowElement?: HTMLElement | null
7
- boundaryElement?: HTMLElement | null
8
- constrainSize?: boolean
9
- distance: number
10
- fallbackPlacements?: Placement[]
11
- margins?: [number, number, number, number]
12
- matchReferenceWidth?: boolean
13
- open: boolean
14
- preventOverflow?: boolean
15
- skidding: number
16
- tether?: boolean
17
- tetherOffset?: number | ((...args: any[]) => number)
18
- }
@@ -1,58 +0,0 @@
1
- import {useMemo} from 'react'
2
- import {Modifier} from 'react-popper'
3
-
4
- import {getPopoverModifiers} from './getPopoverModifiers'
5
- import {PopoverModifiersProps} from './types'
6
-
7
- export function usePopoverModifiers(props: PopoverModifiersProps): Modifier<any, any>[] {
8
- const {
9
- allowedAutoPlacements,
10
- arrow,
11
- arrowElement,
12
- boundaryElement,
13
- constrainSize,
14
- distance,
15
- fallbackPlacements,
16
- margins,
17
- matchReferenceWidth,
18
- open,
19
- preventOverflow,
20
- skidding,
21
- tether,
22
- tetherOffset,
23
- } = props
24
-
25
- return useMemo(() => {
26
- return getPopoverModifiers({
27
- allowedAutoPlacements,
28
- arrow,
29
- arrowElement,
30
- boundaryElement,
31
- constrainSize,
32
- distance,
33
- fallbackPlacements,
34
- margins,
35
- matchReferenceWidth,
36
- open,
37
- preventOverflow,
38
- skidding,
39
- tether,
40
- tetherOffset,
41
- })
42
- }, [
43
- allowedAutoPlacements,
44
- arrow,
45
- arrowElement,
46
- boundaryElement,
47
- constrainSize,
48
- distance,
49
- fallbackPlacements,
50
- margins,
51
- matchReferenceWidth,
52
- open,
53
- preventOverflow,
54
- skidding,
55
- tether,
56
- tetherOffset,
57
- ])
58
- }
@@ -1,12 +0,0 @@
1
- import {Placement as PopperPlacement} from '@popperjs/core'
2
-
3
- /**
4
- * @public
5
- */
6
- export type TextAlign = 'left' | 'right' | 'center' | 'justify' | 'initial'
7
-
8
- /**
9
- * A re-export of Popper’s `Placement` type
10
- * @public
11
- */
12
- export type Placement = PopperPlacement