@sanity/ui 0.37.10 → 0.37.13

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 (242) 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.map +1 -1
  4. package/lib/dts/src/components/autocomplete/constants.d.ts +0 -4
  5. package/lib/dts/src/components/autocomplete/constants.d.ts.map +1 -1
  6. package/lib/dts/src/components/breadcrumbs/breadcrumbs.d.ts.map +1 -1
  7. package/lib/dts/src/components/dialog/dialog.d.ts.map +1 -1
  8. package/lib/dts/src/components/dialog/styles.d.ts +1 -1
  9. package/lib/dts/src/components/dialog/styles.d.ts.map +1 -1
  10. package/lib/dts/src/components/hotkeys/hotkeys.d.ts.map +1 -1
  11. package/lib/dts/src/components/menu/menuButton.d.ts.map +1 -1
  12. package/lib/dts/src/components/menu/menuGroup.d.ts.map +1 -1
  13. package/lib/dts/src/components/menu/menuItem.d.ts.map +1 -1
  14. package/lib/dts/src/components/skeleton/skeleton.d.ts.map +1 -1
  15. package/lib/dts/src/hooks/_internal/useUnique.d.ts +2 -3
  16. package/lib/dts/src/hooks/_internal/useUnique.d.ts.map +1 -1
  17. package/lib/dts/src/hooks/index.d.ts +2 -1
  18. package/lib/dts/src/hooks/index.d.ts.map +1 -1
  19. package/lib/dts/src/hooks/useArrayProp.d.ts +7 -0
  20. package/lib/dts/src/hooks/useArrayProp.d.ts.map +1 -0
  21. package/lib/dts/src/hooks/useElementRect/useElementRect.d.ts +1 -1
  22. package/lib/dts/src/hooks/useElementRect/useElementRect.d.ts.map +1 -1
  23. package/lib/dts/src/hooks/useElementSize.d.ts +7 -0
  24. package/lib/dts/src/hooks/useElementSize.d.ts.map +1 -0
  25. package/lib/dts/src/index.d.ts +1 -0
  26. package/lib/dts/src/index.d.ts.map +1 -1
  27. package/lib/dts/src/observers/elementSizeObserver.d.ts +37 -0
  28. package/lib/dts/src/observers/elementSizeObserver.d.ts.map +1 -0
  29. package/lib/dts/src/observers/index.d.ts +3 -0
  30. package/lib/dts/src/observers/index.d.ts.map +1 -0
  31. package/lib/dts/src/observers/resizeObserver.d.ts +5 -0
  32. package/lib/dts/src/observers/resizeObserver.d.ts.map +1 -0
  33. package/lib/dts/src/primitives/_selectable/selectable.d.ts +1 -2
  34. package/lib/dts/src/primitives/_selectable/selectable.d.ts.map +1 -1
  35. package/lib/dts/src/primitives/avatar/avatar.d.ts.map +1 -1
  36. package/lib/dts/src/primitives/avatar/avatarCounter.d.ts +1 -0
  37. package/lib/dts/src/primitives/avatar/avatarCounter.d.ts.map +1 -1
  38. package/lib/dts/src/primitives/avatar/avatarStack.d.ts +1 -0
  39. package/lib/dts/src/primitives/avatar/avatarStack.d.ts.map +1 -1
  40. package/lib/dts/src/primitives/avatar/styles.d.ts.map +1 -1
  41. package/lib/dts/src/primitives/badge/badge.d.ts.map +1 -1
  42. package/lib/dts/src/primitives/box/box.d.ts.map +1 -1
  43. package/lib/dts/src/primitives/button/button.d.ts.map +1 -1
  44. package/lib/dts/src/primitives/card/card.d.ts.map +1 -1
  45. package/lib/dts/src/primitives/code/code.d.ts.map +1 -1
  46. package/lib/dts/src/primitives/container/container.d.ts.map +1 -1
  47. package/lib/dts/src/primitives/container/styles.d.ts.map +1 -1
  48. package/lib/dts/src/primitives/container/types.d.ts +1 -1
  49. package/lib/dts/src/primitives/container/types.d.ts.map +1 -1
  50. package/lib/dts/src/primitives/flex/flex.d.ts.map +1 -1
  51. package/lib/dts/src/primitives/grid/grid.d.ts.map +1 -1
  52. package/lib/dts/src/primitives/heading/heading.d.ts.map +1 -1
  53. package/lib/dts/src/primitives/inline/inline.d.ts.map +1 -1
  54. package/lib/dts/src/primitives/inline/styles.d.ts.map +1 -1
  55. package/lib/dts/src/primitives/inline/types.d.ts +1 -1
  56. package/lib/dts/src/primitives/inline/types.d.ts.map +1 -1
  57. package/lib/dts/src/primitives/kbd/kbd.d.ts.map +1 -1
  58. package/lib/dts/src/primitives/label/label.d.ts.map +1 -1
  59. package/lib/dts/src/primitives/popover/popover.d.ts.map +1 -1
  60. package/lib/dts/src/primitives/select/styles.d.ts +5 -1
  61. package/lib/dts/src/primitives/select/styles.d.ts.map +1 -1
  62. package/lib/dts/src/primitives/stack/stack.d.ts.map +1 -1
  63. package/lib/dts/src/primitives/stack/styles.d.ts +1 -1
  64. package/lib/dts/src/primitives/stack/styles.d.ts.map +1 -1
  65. package/lib/dts/src/primitives/text/text.d.ts.map +1 -1
  66. package/lib/dts/src/primitives/textArea/textArea.d.ts.map +1 -1
  67. package/lib/dts/src/primitives/textInput/textInput.d.ts.map +1 -1
  68. package/lib/dts/src/primitives/tooltip/tooltip.d.ts.map +1 -1
  69. package/lib/dts/src/primitives/types.d.ts +1 -1
  70. package/lib/dts/src/primitives/types.d.ts.map +1 -1
  71. package/lib/dts/src/styles/border/types.d.ts +5 -5
  72. package/lib/dts/src/styles/border/types.d.ts.map +1 -1
  73. package/lib/dts/src/styles/box/types.d.ts +4 -4
  74. package/lib/dts/src/styles/box/types.d.ts.map +1 -1
  75. package/lib/dts/src/styles/flex/flexItemStyle.d.ts.map +1 -1
  76. package/lib/dts/src/styles/flex/types.d.ts +6 -6
  77. package/lib/dts/src/styles/flex/types.d.ts.map +1 -1
  78. package/lib/dts/src/styles/font/responsiveFont.d.ts +1 -1
  79. package/lib/dts/src/styles/font/responsiveFont.d.ts.map +1 -1
  80. package/lib/dts/src/styles/font/types.d.ts +3 -3
  81. package/lib/dts/src/styles/font/types.d.ts.map +1 -1
  82. package/lib/dts/src/styles/grid/types.d.ts +14 -14
  83. package/lib/dts/src/styles/grid/types.d.ts.map +1 -1
  84. package/lib/dts/src/styles/helpers.d.ts +4 -4
  85. package/lib/dts/src/styles/helpers.d.ts.map +1 -1
  86. package/lib/dts/src/styles/input/responsiveInputPaddingStyle.d.ts +12 -12
  87. package/lib/dts/src/styles/input/responsiveInputPaddingStyle.d.ts.map +1 -1
  88. package/lib/dts/src/styles/input/textInputStyle.d.ts +4 -1
  89. package/lib/dts/src/styles/input/textInputStyle.d.ts.map +1 -1
  90. package/lib/dts/src/styles/margin/types.d.ts +7 -7
  91. package/lib/dts/src/styles/margin/types.d.ts.map +1 -1
  92. package/lib/dts/src/styles/padding/types.d.ts +7 -7
  93. package/lib/dts/src/styles/padding/types.d.ts.map +1 -1
  94. package/lib/dts/src/styles/radius/types.d.ts +1 -1
  95. package/lib/dts/src/styles/radius/types.d.ts.map +1 -1
  96. package/lib/dts/src/styles/shadow/shadowStyle.d.ts.map +1 -1
  97. package/lib/dts/src/styles/shadow/types.d.ts +1 -1
  98. package/lib/dts/src/styles/shadow/types.d.ts.map +1 -1
  99. package/lib/dts/src/theme/lib/theme/fonts.d.ts +1 -3
  100. package/lib/dts/src/theme/lib/theme/fonts.d.ts.map +1 -1
  101. package/lib/dts/src/theme/studioTheme/fonts.d.ts.map +1 -1
  102. package/lib/dts/src/types/index.d.ts +2 -1
  103. package/lib/dts/src/types/index.d.ts.map +1 -1
  104. package/lib/dts/src/types/placement.d.ts +7 -0
  105. package/lib/dts/src/types/placement.d.ts.map +1 -0
  106. package/lib/dts/src/types/text.d.ts +5 -0
  107. package/lib/dts/src/types/text.d.ts.map +1 -0
  108. package/lib/dts/src/utils/elementQuery/elementQuery.d.ts.map +1 -1
  109. package/lib/dts/src/utils/index.d.ts +0 -1
  110. package/lib/dts/src/utils/index.d.ts.map +1 -1
  111. package/lib/dts/src/utils/virtualList/virtualList.d.ts.map +1 -1
  112. package/lib/sanity-ui.js +738 -627
  113. package/lib/sanity-ui.js.map +1 -1
  114. package/lib/{sanity-ui.modern.js → sanity-ui.modern.mjs} +736 -616
  115. package/lib/sanity-ui.modern.mjs.map +1 -0
  116. package/lib/sanity-ui.module.js +732 -623
  117. package/lib/sanity-ui.module.js.map +1 -1
  118. package/package.json +11 -11
  119. package/src/__workshop__/color/overview.tsx +9 -11
  120. package/src/components/autocomplete/__workshop__/async.tsx +14 -12
  121. package/src/components/autocomplete/__workshop__/constrainedHeight.tsx +36 -0
  122. package/src/components/autocomplete/autocomplete.styles.tsx +0 -1
  123. package/src/components/autocomplete/autocomplete.tsx +14 -7
  124. package/src/components/autocomplete/constants.ts +0 -5
  125. package/src/components/breadcrumbs/breadcrumbs.tsx +3 -2
  126. package/src/components/dialog/dialog.tsx +17 -9
  127. package/src/components/dialog/styles.ts +3 -3
  128. package/src/components/hotkeys/hotkeys.tsx +3 -1
  129. package/src/components/menu/__workshop__/constrainedInBoundary.tsx +11 -14
  130. package/src/components/menu/__workshop__/groups.tsx +1 -1
  131. package/src/components/menu/menuButton.tsx +21 -13
  132. package/src/components/menu/menuGroup.tsx +3 -2
  133. package/src/components/menu/menuItem.tsx +4 -5
  134. package/src/components/skeleton/skeleton.tsx +10 -1
  135. package/src/components/skeleton/textSkeleton.tsx +7 -7
  136. package/src/hooks/_internal/useUnique.ts +4 -5
  137. package/src/hooks/index.ts +2 -1
  138. package/src/hooks/useArrayProp.ts +23 -0
  139. package/src/hooks/useElementRect/useElementRect.ts +4 -16
  140. package/src/hooks/useElementSize.ts +18 -0
  141. package/src/index.ts +1 -0
  142. package/src/observers/elementSizeObserver.ts +116 -0
  143. package/src/observers/index.ts +2 -0
  144. package/src/{utils → observers}/resizeObserver.ts +1 -4
  145. package/src/primitives/_selectable/selectable.tsx +5 -4
  146. package/src/primitives/avatar/avatar.tsx +7 -5
  147. package/src/primitives/avatar/avatarCounter.tsx +14 -12
  148. package/src/primitives/avatar/avatarStack.tsx +19 -13
  149. package/src/primitives/avatar/styles.ts +2 -2
  150. package/src/primitives/badge/badge.tsx +3 -2
  151. package/src/primitives/box/box.tsx +27 -26
  152. package/src/primitives/button/button.tsx +22 -10
  153. package/src/primitives/card/card.tsx +13 -11
  154. package/src/primitives/checkbox/__workshop__/example.tsx +4 -2
  155. package/src/primitives/checkbox/__workshop__/props.tsx +4 -2
  156. package/src/primitives/checkbox/__workshop__/readOnly.tsx +4 -2
  157. package/src/primitives/code/__workshop__/props.tsx +1 -1
  158. package/src/primitives/code/code.tsx +2 -1
  159. package/src/primitives/container/container.tsx +10 -1
  160. package/src/primitives/container/styles.ts +2 -2
  161. package/src/primitives/container/types.ts +1 -1
  162. package/src/primitives/flex/flex.tsx +6 -5
  163. package/src/primitives/grid/__workshop__/responsive.tsx +13 -12
  164. package/src/primitives/grid/grid.tsx +9 -8
  165. package/src/primitives/heading/__workshop__/opticalAlignment.tsx +19 -7
  166. package/src/primitives/heading/heading.tsx +3 -2
  167. package/src/primitives/inline/inline.tsx +12 -6
  168. package/src/primitives/inline/styles.ts +2 -2
  169. package/src/primitives/inline/types.ts +1 -1
  170. package/src/primitives/kbd/kbd.tsx +2 -1
  171. package/src/primitives/label/label.tsx +4 -3
  172. package/src/primitives/popover/__workshop__/{margins.tsx → MarginsStory.tsx} +1 -1
  173. package/src/primitives/popover/__workshop__/{matchReferenceWidth.tsx → MatchReferenceWidthStory.tsx} +0 -0
  174. package/src/primitives/popover/__workshop__/{plain.tsx → PlainStory.tsx} +12 -14
  175. package/src/primitives/popover/__workshop__/{recursive.tsx → RecursiveStory.tsx} +4 -1
  176. package/src/primitives/popover/__workshop__/RightAlignedStory.tsx +60 -0
  177. package/src/primitives/popover/__workshop__/TestStory.tsx +79 -0
  178. package/src/primitives/popover/__workshop__/index.ts +10 -5
  179. package/src/primitives/popover/popover.tsx +5 -3
  180. package/src/primitives/select/select.tsx +9 -9
  181. package/src/primitives/select/styles.ts +10 -4
  182. package/src/primitives/stack/stack.tsx +2 -1
  183. package/src/primitives/stack/styles.ts +3 -3
  184. package/src/primitives/text/__workshop__/opticalAlignment.tsx +15 -5
  185. package/src/primitives/text/text.tsx +3 -2
  186. package/src/primitives/textArea/__workshop__/plain.tsx +23 -18
  187. package/src/primitives/textArea/textArea.tsx +17 -5
  188. package/src/primitives/textInput/__workshop__/clearButton.tsx +14 -8
  189. package/src/primitives/textInput/__workshop__/index.ts +2 -2
  190. package/src/primitives/textInput/__workshop__/plain.tsx +39 -32
  191. package/src/primitives/textInput/__workshop__/tones.tsx +97 -75
  192. package/src/primitives/textInput/__workshop__/typed.tsx +8 -2
  193. package/src/primitives/textInput/textInput.tsx +43 -12
  194. package/src/primitives/tooltip/__workshop__/props.tsx +5 -1
  195. package/src/primitives/tooltip/tooltip.tsx +3 -2
  196. package/src/primitives/types.ts +1 -1
  197. package/src/styles/border/borderStyle.ts +6 -6
  198. package/src/styles/border/types.ts +5 -5
  199. package/src/styles/box/boxStyle.ts +5 -5
  200. package/src/styles/box/types.ts +4 -4
  201. package/src/styles/flex/flexItemStyle.ts +5 -4
  202. package/src/styles/flex/flexStyle.ts +6 -6
  203. package/src/styles/flex/types.ts +6 -6
  204. package/src/styles/font/responsiveFont.ts +7 -27
  205. package/src/styles/font/textAlignStyle.ts +2 -2
  206. package/src/styles/font/types.ts +4 -3
  207. package/src/styles/grid/gridItemStyle.ts +7 -7
  208. package/src/styles/grid/gridStyle.ts +9 -9
  209. package/src/styles/grid/types.ts +14 -14
  210. package/src/styles/helpers.ts +9 -9
  211. package/src/styles/input/responsiveInputPaddingStyle.ts +24 -27
  212. package/src/styles/input/textInputStyle.ts +89 -79
  213. package/src/styles/margin/marginStyle.ts +8 -8
  214. package/src/styles/margin/marginsStyle.test.ts +1 -1
  215. package/src/styles/margin/types.ts +7 -7
  216. package/src/styles/padding/paddingStyle.test.ts +1 -1
  217. package/src/styles/padding/paddingStyle.ts +8 -8
  218. package/src/styles/padding/types.ts +7 -7
  219. package/src/styles/radius/radiusStyle.ts +2 -2
  220. package/src/styles/radius/types.ts +1 -1
  221. package/src/styles/shadow/shadowStyle.ts +2 -5
  222. package/src/styles/shadow/types.ts +1 -1
  223. package/src/theme/lib/theme/fonts.ts +1 -3
  224. package/src/theme/studioTheme/fonts.ts +5 -9
  225. package/src/types/index.ts +2 -2
  226. package/src/types/placement.ts +18 -0
  227. package/src/types/text.ts +4 -0
  228. package/src/utils/elementQuery/elementQuery.tsx +5 -18
  229. package/src/utils/index.ts +0 -1
  230. package/src/utils/layer/layer.tsx +1 -1
  231. package/src/utils/layer/layerProvider.tsx +2 -2
  232. package/src/utils/virtualList/virtualList.tsx +8 -7
  233. package/lib/dts/src/hooks/useResponsiveProp.d.ts +0 -6
  234. package/lib/dts/src/hooks/useResponsiveProp.d.ts.map +0 -1
  235. package/lib/dts/src/types/common.d.ts +0 -11
  236. package/lib/dts/src/types/common.d.ts.map +0 -1
  237. package/lib/dts/src/utils/resizeObserver.d.ts +0 -6
  238. package/lib/dts/src/utils/resizeObserver.d.ts.map +0 -1
  239. package/lib/sanity-ui.modern.js.map +0 -1
  240. package/src/hooks/useResponsiveProp.ts +0 -10
  241. package/src/primitives/popover/__workshop__/rightAligned.tsx +0 -57
  242. package/src/types/common.ts +0 -12
@@ -1,6 +1,6 @@
1
1
  import {CSSObject} from 'styled-components'
2
2
  import {ThemeFontSize, ThemeFontKey} from '../../theme'
3
- import {getResponsiveProp, rem, responsive} from '../helpers'
3
+ import {rem, _responsive} from '../helpers'
4
4
  import {ThemeProps} from '../types'
5
5
  import {ResponsiveFontStyleProps} from './types'
6
6
 
@@ -14,7 +14,7 @@ export function responsiveFont(
14
14
  ): CSSObject[] {
15
15
  const {$size, $weight, theme} = props
16
16
  const {fonts, media} = theme.sanity
17
- const {family, sizes, weights, horizontalOffset} = fonts[fontKey]
17
+ const {family, sizes, weights} = fonts[fontKey]
18
18
  const fontWeight = ($weight && weights[$weight]) || weights.regular
19
19
 
20
20
  // @todo: make this configurable
@@ -24,7 +24,7 @@ export function responsiveFont(
24
24
  position: 'relative',
25
25
  fontFamily: family,
26
26
  fontWeight,
27
- padding: '1px',
27
+ padding: '1px 0',
28
28
  margin: 0,
29
29
 
30
30
  '&:before': {
@@ -48,14 +48,12 @@ export function responsiveFont(
48
48
  },
49
49
  }
50
50
 
51
- const resp = responsive(media, getResponsiveProp($size), (sizeIndex) =>
52
- fontSize(sizes[sizeIndex] || defaultSize, horizontalOffset)
53
- )
51
+ const resp = _responsive(media, $size, (sizeIndex) => fontSize(sizes[sizeIndex] || defaultSize))
54
52
 
55
53
  return [base, ...resp]
56
54
  }
57
55
 
58
- export function fontSize(size: ThemeFontSize, horizontalOffset?: number): CSSObject {
56
+ export function fontSize(size: ThemeFontSize): CSSObject {
59
57
  const {ascenderHeight, descenderHeight, fontSize, iconSize, letterSpacing, lineHeight} = size
60
58
  const negHeight = ascenderHeight + descenderHeight
61
59
  const capHeight = lineHeight - negHeight
@@ -77,32 +75,14 @@ export function fontSize(size: ThemeFontSize, horizontalOffset?: number): CSSObj
77
75
  marginBottom: '-1px',
78
76
  },
79
77
 
80
- '& > code, & > span': {
81
- margin: horizontalOffset ? `0 calc(${rem(0 - horizontalOffset * fontSize)} - 1px)` : '0 -1px',
82
- },
83
-
84
78
  '& svg:not([data-sanity-icon])': {
85
79
  fontSize: `calc(${customIconSize} / 16 * 1rem)`,
86
- margin: [
87
- // top & bottom
88
- rem(customIconOffset),
89
- // left & right
90
- horizontalOffset
91
- ? `calc(${rem(customIconOffset)} + ${rem(horizontalOffset * fontSize)})`
92
- : rem(customIconOffset),
93
- ].join(' '),
80
+ margin: rem(customIconOffset),
94
81
  },
95
82
 
96
83
  '& [data-sanity-icon]': {
97
84
  fontSize: `calc(${iconSize} / 16 * 1rem)`,
98
- margin: [
99
- // top & bottom
100
- rem(iconOffset),
101
- // left & right
102
- horizontalOffset
103
- ? `calc(${rem(iconOffset)} + ${rem(horizontalOffset * fontSize)})`
104
- : rem(iconOffset),
105
- ].join(' '),
85
+ margin: rem(iconOffset),
106
86
  },
107
87
  }
108
88
  }
@@ -1,5 +1,5 @@
1
1
  import {CSSObject} from 'styled-components'
2
- import {getResponsiveProp, responsive} from '../helpers'
2
+ import {_responsive} from '../helpers'
3
3
  import {ThemeProps} from '../types'
4
4
  import {ResponsiveTextAlignStyleProps} from './types'
5
5
 
@@ -12,7 +12,7 @@ export function responsiveTextAlignStyle(
12
12
  ): CSSObject[] {
13
13
  const {theme} = props
14
14
 
15
- return responsive(theme.sanity.media, getResponsiveProp(props.$align), (textAlign) => {
15
+ return _responsive(theme.sanity.media, props.$align, (textAlign) => {
16
16
  return {textAlign}
17
17
  })
18
18
  }
@@ -5,7 +5,7 @@ import {TextAlign} from '../../types'
5
5
  * @internal
6
6
  */
7
7
  export interface ResponsiveFontSizeStyleProps {
8
- $size?: number | number[]
8
+ $size: number[]
9
9
  }
10
10
 
11
11
  /**
@@ -19,7 +19,7 @@ export interface FontWeightStyleProps {
19
19
  * @internal
20
20
  */
21
21
  export interface ResponsiveTextAlignStyleProps {
22
- $align?: TextAlign | TextAlign[]
22
+ $align: TextAlign[]
23
23
  }
24
24
 
25
25
  /**
@@ -27,7 +27,8 @@ export interface ResponsiveTextAlignStyleProps {
27
27
  */
28
28
  export interface ResponsiveFontStyleProps
29
29
  extends FontWeightStyleProps,
30
- ResponsiveFontSizeStyleProps {
30
+ ResponsiveFontSizeStyleProps,
31
+ ResponsiveTextAlignStyleProps {
31
32
  $accent?: boolean
32
33
  $muted?: boolean
33
34
  }
@@ -1,5 +1,5 @@
1
1
  import {CSSObject} from 'styled-components'
2
- import {getResponsiveProp, responsive} from '../helpers'
2
+ import {_responsive} from '../helpers'
3
3
  import {ThemeProps} from '../types'
4
4
  import {ResponsiveGridItemStyleProps} from './types'
5
5
 
@@ -30,7 +30,7 @@ function responsiveGridItemRowStyle(props: ResponsiveGridItemStyleProps & ThemeP
30
30
  const {theme} = props
31
31
  const {media} = theme.sanity
32
32
 
33
- return responsive(media, getResponsiveProp(props.$row), (row) => {
33
+ return _responsive(media, props.$row, (row) => {
34
34
  if (typeof row === 'number') {
35
35
  return {gridRow: `span ${row} / span ${row}`}
36
36
  }
@@ -43,7 +43,7 @@ function responsiveGridItemRowStartStyle(props: ResponsiveGridItemStyleProps & T
43
43
  const {theme} = props
44
44
  const {media} = theme.sanity
45
45
 
46
- return responsive(media, getResponsiveProp(props.$rowStart), (rowStart) => ({
46
+ return _responsive(media, props.$rowStart, (rowStart) => ({
47
47
  gridRowStart: rowStart,
48
48
  }))
49
49
  }
@@ -52,14 +52,14 @@ function responsiveGridItemRowEndStyle(props: ResponsiveGridItemStyleProps & The
52
52
  const {theme} = props
53
53
  const {media} = theme.sanity
54
54
 
55
- return responsive(media, getResponsiveProp(props.$rowEnd), (rowEnd) => ({gridRowEnd: rowEnd}))
55
+ return _responsive(media, props.$rowEnd, (rowEnd) => ({gridRowEnd: rowEnd}))
56
56
  }
57
57
 
58
58
  function responsiveGridItemColumnStyle(props: ResponsiveGridItemStyleProps & ThemeProps) {
59
59
  const {theme} = props
60
60
  const {media} = theme.sanity
61
61
 
62
- return responsive(media, getResponsiveProp(props.$column), (column) => {
62
+ return _responsive(media, props.$column, (column) => {
63
63
  if (typeof column === 'number') {
64
64
  return {gridColumn: `span ${column} / span ${column}`}
65
65
  }
@@ -72,7 +72,7 @@ function responsiveGridItemColumnStartStyle(props: ResponsiveGridItemStyleProps
72
72
  const {theme} = props
73
73
  const {media} = theme.sanity
74
74
 
75
- return responsive(media, getResponsiveProp(props.$columnStart), (columnStart) => ({
75
+ return _responsive(media, props.$columnStart, (columnStart) => ({
76
76
  gridColumnStart: columnStart,
77
77
  }))
78
78
  }
@@ -81,7 +81,7 @@ function responsiveGridItemColumnEndStyle(props: ResponsiveGridItemStyleProps &
81
81
  const {theme} = props
82
82
  const {media} = theme.sanity
83
83
 
84
- return responsive(media, getResponsiveProp(props.$columnEnd), (columnEnd) => ({
84
+ return _responsive(media, props.$columnEnd, (columnEnd) => ({
85
85
  gridColumnEnd: columnEnd,
86
86
  }))
87
87
  }
@@ -1,5 +1,5 @@
1
1
  import {CSSObject} from 'styled-components'
2
- import {getResponsiveProp, rem, responsive} from '../helpers'
2
+ import {rem, _responsive} from '../helpers'
3
3
  import {ThemeProps} from '../types'
4
4
  import {ResponsiveGridStyleProps} from './types'
5
5
 
@@ -46,7 +46,7 @@ function responsiveGridAutoFlowStyle(props: ResponsiveGridStyleProps & ThemeProp
46
46
  const {theme} = props
47
47
  const {media} = theme.sanity
48
48
 
49
- return responsive(media, getResponsiveProp(props.$autoFlow), (autoFlow) => ({
49
+ return _responsive(media, props.$autoFlow, (autoFlow) => ({
50
50
  gridAutoFlow: autoFlow,
51
51
  }))
52
52
  }
@@ -55,7 +55,7 @@ function responsiveGridAutoRowsStyle(props: ResponsiveGridStyleProps & ThemeProp
55
55
  const {theme} = props
56
56
  const {media} = theme.sanity
57
57
 
58
- return responsive(media, getResponsiveProp(props.$autoRows), (autoRows) => ({
58
+ return _responsive(media, props.$autoRows, (autoRows) => ({
59
59
  gridAutoRows: autoRows && GRID_AUTO_ROWS[autoRows],
60
60
  }))
61
61
  }
@@ -64,7 +64,7 @@ function responsiveGridAutoColsStyle(props: ResponsiveGridStyleProps & ThemeProp
64
64
  const {theme} = props
65
65
  const {media} = theme.sanity
66
66
 
67
- return responsive(media, getResponsiveProp(props.$autoCols), (autoCols) => ({
67
+ return _responsive(media, props.$autoCols, (autoCols) => ({
68
68
  gridAutoColumns: autoCols && GRID_AUTO_COLUMS[autoCols],
69
69
  }))
70
70
  }
@@ -73,7 +73,7 @@ function responsiveGridColumnsStyle(props: ResponsiveGridStyleProps & ThemeProps
73
73
  const {theme} = props
74
74
  const {media} = theme.sanity
75
75
 
76
- return responsive(media, getResponsiveProp(props.$columns), (columns) => ({
76
+ return _responsive(media, props.$columns, (columns) => ({
77
77
  gridTemplateColumns: columns && `repeat(${columns},minmax(0,1fr));`,
78
78
  }))
79
79
  }
@@ -82,7 +82,7 @@ function responsiveGridRowsStyle(props: ResponsiveGridStyleProps & ThemeProps) {
82
82
  const {theme} = props
83
83
  const {media} = theme.sanity
84
84
 
85
- return responsive(media, getResponsiveProp(props.$rows), (rows) => ({
85
+ return _responsive(media, props.$rows, (rows) => ({
86
86
  gridTemplateRows: rows && `repeat(${rows},minmax(0,1fr));`,
87
87
  }))
88
88
  }
@@ -91,7 +91,7 @@ function responsiveGridGapStyle(props: ResponsiveGridStyleProps & ThemeProps) {
91
91
  const {theme} = props
92
92
  const {media, space} = theme.sanity
93
93
 
94
- return responsive(media, getResponsiveProp(props.$gap), (gap) => ({
94
+ return _responsive(media, props.$gap, (gap) => ({
95
95
  gridGap: gap ? rem(space[gap]) : undefined,
96
96
  }))
97
97
  }
@@ -100,7 +100,7 @@ function responsiveGridGapXStyle(props: ResponsiveGridStyleProps & ThemeProps) {
100
100
  const {theme} = props
101
101
  const {media, space} = theme.sanity
102
102
 
103
- return responsive(media, getResponsiveProp(props.$gapX), (gapX) => ({
103
+ return _responsive(media, props.$gapX, (gapX) => ({
104
104
  columnGap: gapX ? rem(space[gapX]) : undefined,
105
105
  }))
106
106
  }
@@ -109,7 +109,7 @@ function responsiveGridGapYStyle(props: ResponsiveGridStyleProps & ThemeProps) {
109
109
  const {theme} = props
110
110
  const {media, space} = theme.sanity
111
111
 
112
- return responsive(media, getResponsiveProp(props.$gapY), (gapY) => ({
112
+ return _responsive(media, props.$gapY, (gapY) => ({
113
113
  rowGap: gapY ? rem(space[gapY]) : undefined,
114
114
  }))
115
115
  }
@@ -14,24 +14,24 @@ import {
14
14
  * @internal
15
15
  */
16
16
  export interface ResponsiveGridStyleProps {
17
- $autoRows?: GridAutoRows | GridAutoRows[]
18
- $autoCols?: GridAutoCols | GridAutoCols[]
19
- $autoFlow?: GridAutoFlow | GridAutoFlow[]
20
- $columns?: number | number[]
21
- $gap?: number | number[]
22
- $gapX?: number | number[]
23
- $gapY?: number | number[]
24
- $rows?: number | number[]
17
+ $autoRows: GridAutoRows[]
18
+ $autoCols: GridAutoCols[]
19
+ $autoFlow: GridAutoFlow[]
20
+ $columns: number[]
21
+ $gap: number[]
22
+ $gapX: number[]
23
+ $gapY: number[]
24
+ $rows: number[]
25
25
  }
26
26
 
27
27
  /**
28
28
  * @internal
29
29
  */
30
30
  export interface ResponsiveGridItemStyleProps {
31
- $column?: GridItemColumn | GridItemColumn[]
32
- $columnStart?: GridItemColumnStart | GridItemColumnStart[]
33
- $columnEnd?: GridItemColumnEnd | GridItemColumnEnd[]
34
- $row?: GridItemRow | GridItemRow[]
35
- $rowStart?: GridItemRowStart | GridItemRowStart[]
36
- $rowEnd?: GridItemRowEnd | GridItemRowEnd[]
31
+ $column: GridItemColumn[]
32
+ $columnStart: GridItemColumnStart[]
33
+ $columnEnd: GridItemColumnEnd[]
34
+ $row: GridItemRow[]
35
+ $rowStart: GridItemRowStart[]
36
+ $rowEnd: GridItemRowEnd[]
37
37
  }
@@ -5,11 +5,11 @@ import {Theme} from '../theme'
5
5
  /**
6
6
  * @internal
7
7
  */
8
- export function fillCSSObject(propKeys: string[], value: unknown): CSSObject {
9
- return propKeys.reduce((obj: CSSObject, propKey) => {
10
- obj[propKey] = value as any
8
+ export function _fillCSSObject(keys: string[], value: string | number | CSSObject): CSSObject {
9
+ return keys.reduce<CSSObject>((style, key) => {
10
+ style[key] = value
11
11
 
12
- return obj
12
+ return style
13
13
  }, {})
14
14
  }
15
15
 
@@ -25,7 +25,7 @@ export function rem(pixelValue: number): string | 0 {
25
25
  /**
26
26
  * @internal
27
27
  */
28
- export function responsive<T>(
28
+ export function _responsive<T>(
29
29
  media: number[],
30
30
  values: T[],
31
31
  callback: (value: T, index: number, array: T[]) => CSSObject
@@ -42,7 +42,7 @@ export function responsive<T>(
42
42
  /**
43
43
  * @internal
44
44
  */
45
- export function getResponsiveProp<T = number>(val: T | T[] | undefined, defaultVal?: T[]): T[] {
45
+ export function _getArrayProp<T = number>(val: T | T[] | undefined, defaultVal?: T[]): T[] {
46
46
  if (val === undefined) return defaultVal || EMPTY_ARRAY
47
47
 
48
48
  return Array.isArray(val) ? val : [val]
@@ -51,7 +51,7 @@ export function getResponsiveProp<T = number>(val: T | T[] | undefined, defaultV
51
51
  /**
52
52
  * @internal
53
53
  */
54
- export function getResponsiveSpace(
54
+ export function _getResponsiveSpace(
55
55
  theme: Theme,
56
56
  props: string[],
57
57
  spaceIndexes: number[] = EMPTY_ARRAY
@@ -64,7 +64,7 @@ export function getResponsiveSpace(
64
64
  return null
65
65
  }
66
66
 
67
- return responsive(theme.sanity.media, spaceIndexes, (spaceIndex) =>
68
- fillCSSObject(props, rem(theme.sanity.space[spaceIndex]))
67
+ return _responsive(theme.sanity.media, spaceIndexes, (spaceIndex) =>
68
+ _fillCSSObject(props, rem(theme.sanity.space[spaceIndex]))
69
69
  )
70
70
  }
@@ -1,44 +1,41 @@
1
1
  import {CSSObject} from 'styled-components'
2
- import {getResponsiveProp, rem, responsive} from '../helpers'
2
+ import {rem, _responsive} from '../helpers'
3
3
  import {ThemeProps} from '../types'
4
4
 
5
5
  export interface TextInputResponsivePaddingStyleProps {
6
- $fontSize?: number | number[]
6
+ $fontSize: number[]
7
7
  $iconLeft?: boolean
8
8
  $iconRight?: boolean
9
- $padding?: number | number[]
10
- $space?: number | number[]
9
+ $padding: number[]
10
+ $space: number[]
11
11
  }
12
12
 
13
13
  export function responsiveInputPaddingStyle(
14
14
  props: TextInputResponsivePaddingStyleProps & ThemeProps
15
15
  ): CSSObject[] {
16
- const {$iconLeft, $iconRight, theme} = props
16
+ const {$fontSize, $iconLeft, $iconRight, $padding, $space, theme} = props
17
17
  const {fonts, media, space: spaceScale} = theme.sanity
18
- const padding = getResponsiveProp(props.$padding, [0])
19
- const space = getResponsiveProp(props.$space, [0])
20
- const size = getResponsiveProp(props.$fontSize, [0])
21
- const len = Math.max(padding.length, space.length, size.length)
18
+ const len = Math.max($padding.length, $space.length, $fontSize.length)
22
19
  const _padding: number[] = []
23
20
  const _space: number[] = []
24
- const _size: number[] = []
21
+ const _fontSize: number[] = []
25
22
 
26
23
  for (let i = 0; i < len; i += 1) {
27
- _padding[i] = padding[i] === undefined ? _padding[i - 1] : padding[i]
28
- _space[i] = space[i] === undefined ? _space[i - 1] : space[i]
29
- _size[i] = size[i] === undefined ? _size[i - 1] : size[i]
24
+ _fontSize[i] = $fontSize[i] === undefined ? _fontSize[i - 1] : $fontSize[i]
25
+ _padding[i] = $padding[i] === undefined ? _padding[i - 1] : $padding[i]
26
+ _space[i] = $space[i] === undefined ? _space[i - 1] : $space[i]
30
27
  }
31
28
 
32
- return responsive(media, _padding, (_, i) => {
33
- const fontSize = fonts.text.sizes[_size[i]] || fonts.text.sizes[2]
34
- const emSize = fontSize.lineHeight - fontSize.ascenderHeight - fontSize.descenderHeight
29
+ return _responsive(media, _padding, (_, i) => {
30
+ const size = fonts.text.sizes[_fontSize[i]] || fonts.text.sizes[2]
31
+ const emSize = size.lineHeight - size.ascenderHeight - size.descenderHeight
35
32
  const p = spaceScale[_padding[i]]
36
33
  const s = spaceScale[_space[i]]
37
34
 
38
35
  const styles = {
39
- paddingTop: rem(p - fontSize.ascenderHeight),
36
+ paddingTop: rem(p - size.ascenderHeight),
40
37
  paddingRight: rem(p),
41
- paddingBottom: rem(p - fontSize.descenderHeight),
38
+ paddingBottom: rem(p - size.descenderHeight),
42
39
  paddingLeft: rem(p),
43
40
  }
44
41
 
@@ -51,9 +48,9 @@ export function responsiveInputPaddingStyle(
51
48
 
52
49
  export function responsiveInputPaddingIconsStyle(
53
50
  props: {
54
- padding?: number | number[]
55
- size?: number | number[]
56
- space?: number | number[]
51
+ $fontSize: number[]
52
+ $padding: number[]
53
+ $space: number[]
57
54
  } & ThemeProps
58
55
  ): CSSObject[] {
59
56
  return responsiveInputPaddingStyle({...props, $iconLeft: true, $iconRight: true})
@@ -61,9 +58,9 @@ export function responsiveInputPaddingIconsStyle(
61
58
 
62
59
  export function responsiveInputPaddingIconLeftStyle(
63
60
  props: {
64
- padding?: number | number[]
65
- size?: number | number[]
66
- space?: number | number[]
61
+ $fontSize: number[]
62
+ $padding: number[]
63
+ $space: number[]
67
64
  } & ThemeProps
68
65
  ): CSSObject[] {
69
66
  return responsiveInputPaddingStyle({...props, $iconLeft: true})
@@ -71,9 +68,9 @@ export function responsiveInputPaddingIconLeftStyle(
71
68
 
72
69
  export function responsiveInputPaddingIconRightStyle(
73
70
  props: {
74
- padding?: number | number[]
75
- size?: number | number[]
76
- space?: number | number[]
71
+ $fontSize: number[]
72
+ $padding: number[]
73
+ $space: number[]
77
74
  } & ThemeProps
78
75
  ): CSSObject[] {
79
76
  return responsiveInputPaddingStyle({...props, $iconRight: true})