@sanity/ui 4.0.0-static.24 → 4.0.0-static.26

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 (54) hide show
  1. package/dist/css/index.css +1 -1
  2. package/dist/css/index.css.map +1 -1
  3. package/dist/css/index.d.ts +22 -6
  4. package/dist/css/index.js +29 -20
  5. package/dist/css/index.js.map +1 -1
  6. package/dist/index.d.ts +8 -13
  7. package/dist/index.js +519 -531
  8. package/dist/index.js.map +1 -1
  9. package/exports/css/index.css +1 -0
  10. package/package.json +12 -12
  11. package/src/core/components/dialog/__workshop__/Panes.tsx +4 -0
  12. package/src/core/components/menu/Menu.tsx +0 -4
  13. package/src/core/components/menu/MenuItem.tsx +1 -1
  14. package/src/core/components/toast/useToast.ts +2 -2
  15. package/src/core/primitives/avatar/Avatar.tsx +2 -2
  16. package/src/core/primitives/avatar/__workshop__/PropsStory.tsx +22 -0
  17. package/src/core/primitives/avatar/__workshop__/index.ts +5 -0
  18. package/src/core/primitives/button/Button.tsx +5 -5
  19. package/src/core/primitives/code/Code.tsx +25 -1
  20. package/src/core/primitives/heading/Heading.tsx +16 -0
  21. package/src/core/primitives/label/Label.tsx +16 -0
  22. package/src/core/primitives/radio/Radio.tsx +2 -2
  23. package/src/core/primitives/select/Select.tsx +5 -3
  24. package/src/core/primitives/switch/Switch.tsx +2 -10
  25. package/src/core/primitives/text/Text.tsx +14 -0
  26. package/src/core/primitives/textArea/TextArea.tsx +7 -1
  27. package/src/core/primitives/textInput/TextInput.tsx +18 -17
  28. package/src/core/types.ts +6 -5
  29. package/src/core/utils/portal/PortalProvider.tsx +2 -2
  30. package/src/css/primitives/_input/_input.css.ts +2 -3
  31. package/src/css/primitives/_input/input.ts +2 -0
  32. package/src/css/primitives/_input/types.ts +2 -1
  33. package/src/css/primitives/avatar/avatar.css.ts +8 -0
  34. package/src/css/primitives/box/box.css.ts +21 -1
  35. package/src/css/primitives/button/button.css.ts +1 -0
  36. package/src/css/primitives/card/card.css.ts +0 -60
  37. package/src/css/primitives/checkbox/checkbox.css.ts +1 -0
  38. package/src/css/primitives/code/code.ts +4 -0
  39. package/src/css/primitives/code/types.ts +7 -1
  40. package/src/css/primitives/heading/heading.ts +4 -0
  41. package/src/css/primitives/heading/types.ts +7 -1
  42. package/src/css/primitives/label/label.ts +4 -0
  43. package/src/css/primitives/label/types.ts +7 -1
  44. package/src/css/primitives/radio/radio.css.ts +1 -1
  45. package/src/css/primitives/root/root.css.ts +0 -1
  46. package/src/css/primitives/select/select.css.ts +7 -1
  47. package/src/css/primitives/selectable/selectable.css.ts +5 -31
  48. package/src/css/primitives/switch/switch.css.ts +10 -1
  49. package/src/css/primitives/text/text.ts +2 -0
  50. package/src/css/primitives/text/types.ts +6 -1
  51. package/src/css/primitives/textInput/textInput.css.ts +15 -3
  52. package/src/css/props/width/types.ts +1 -1
  53. package/src/css/props/width/width.css.ts +5 -2
  54. package/src/core/primitives/popover/helpers.ts +0 -32
@@ -1,5 +1,6 @@
1
1
  import {_composeClassNames} from '../../_composeClassNames'
2
2
  import {_responsiveClassName} from '../../_responsiveClassName'
3
+ import {flex} from '../../props/flex/flex'
3
4
  import {radius} from '../../props/radius/radius'
4
5
  import {width} from '../../props/width/width'
5
6
  import {border, element, fontSize, gap, padding, presentation, root} from './_input.css'
@@ -13,6 +14,7 @@ export function _input(props: InputStyleProps): string | undefined {
13
14
  _responsiveClassName(fontSize, props.fontSize ?? 2),
14
15
  _responsiveClassName(padding, props.padding ?? 3),
15
16
  _responsiveClassName(gap, props.gap ?? 3),
17
+ flex(props),
16
18
  radius(props),
17
19
  width(props),
18
20
  )
@@ -1,11 +1,12 @@
1
1
  import type {FontTextSize, Space} from '@sanity/ui/theme'
2
2
 
3
+ import type {FlexStyleProps} from '../../props/flex/types'
3
4
  import type {RadiusStyleProps} from '../../props/radius/types'
4
5
  import type {WidthStyleProps} from '../../props/width/types'
5
6
  import type {ResponsiveProp} from '../../types'
6
7
 
7
8
  /** @public */
8
- export interface InputStyleProps extends RadiusStyleProps, WidthStyleProps {
9
+ export interface InputStyleProps extends FlexStyleProps, RadiusStyleProps, WidthStyleProps {
9
10
  border?: boolean
10
11
  fontSize?: ResponsiveProp<FontTextSize>
11
12
  gap?: ResponsiveProp<Space>
@@ -162,6 +162,14 @@ export const imageOutline: string = _style(layers.primitives, {
162
162
  ].join(', '),
163
163
  })
164
164
 
165
+ globalStyle(`${root}[data-hide-inner-stroke] ${imageOutline}`, {
166
+ '@layer': {
167
+ [layers.primitives]: {
168
+ boxShadow: `inset 0 0 0 1px ${vars.color.avatar.bg}`,
169
+ },
170
+ },
171
+ })
172
+
165
173
  export const initials: string = _style(layers.primitives, {
166
174
  color: vars.color.avatar.fg,
167
175
  borderRadius: 'inherit',
@@ -4,6 +4,16 @@ import {vars} from '../../vars.css'
4
4
 
5
5
  export const root: string = _style(layers.primitives, {
6
6
  selectors: {
7
+ 'button.&': {
8
+ WebkitFontSmoothing: 'inherit',
9
+ appearance: 'none',
10
+ outline: 'none',
11
+ font: 'inherit',
12
+ textAlign: 'inherit',
13
+ border: 'none',
14
+ inlineSize: 'stretch',
15
+ },
16
+
7
17
  'iframe.&': {
8
18
  border: 'none',
9
19
  },
@@ -15,5 +25,15 @@ export const root: string = _style(layers.primitives, {
15
25
  })
16
26
 
17
27
  export const muted: string = _style(layers.primitives, {
18
- backgroundColor: vars.color.muted.bg,
28
+ backgroundColor: vars.color.bg,
29
+
30
+ transition: 'background-color 100ms ease-in-out',
31
+
32
+ selectors: {
33
+ '&&': {
34
+ vars: {
35
+ [vars.color.bg]: vars.color.muted.bg,
36
+ },
37
+ },
38
+ },
19
39
  })
@@ -23,6 +23,7 @@ export const root: string = _style(layers.primitives, {
23
23
  verticalAlign: 'top',
24
24
  backgroundColor: vars.color.bg,
25
25
  color: vars.color.fg,
26
+ inlineSize: 'max-content',
26
27
 
27
28
  //
28
29
  transition:
@@ -19,7 +19,6 @@ export const root: string = _style(layers.primitives, {
19
19
  backgroundColor: vars.color.bg,
20
20
  color: vars.color.fg,
21
21
 
22
- //
23
22
  transition:
24
23
  'background-color 100ms ease-in-out, border-color 100ms, box-shadow 100ms ease-in-out, color 100ms ease-in-out',
25
24
 
@@ -33,17 +32,6 @@ export const root: string = _style(layers.primitives, {
33
32
  },
34
33
 
35
34
  selectors: {
36
- 'button.&': {
37
- WebkitFontSmoothing: 'inherit',
38
- appearance: 'none',
39
- outline: 'none',
40
- font: 'inherit',
41
- textAlign: 'inherit',
42
- border: 'none',
43
- // See https://caniuse.com/?search=width%3A%20stretch
44
- width: ['-moz-available', '-webkit-fill-available', 'stretch'],
45
- },
46
-
47
35
  'a.&': {
48
36
  outline: 'none',
49
37
  textDecoration: 'none',
@@ -343,54 +331,6 @@ function buildToneRule(tone: CardTone): StyleRule {
343
331
  }
344
332
  }
345
333
 
346
- // assign legacy vars
347
- // todo: remove before release?
348
- _assign(toneVars, {
349
- '--card-accent-fg-color': vars.color.tinted.suggest.fg[4],
350
- })
351
- for (const color of AVATAR_COLORS) {
352
- _assign(toneVars, {
353
- [`--card-avatar-${color}-bg-color`]: vars.color.avatar[color].bg,
354
- [`--card-avatar-${color}-fg-color`]: vars.color.avatar[color].fg,
355
- })
356
- }
357
- _assign(toneVars, {
358
- '--card-backdrop-color': vars.color.backdrop,
359
- })
360
- for (const tone of ELEMENT_TONES) {
361
- _assign(toneVars, {
362
- [`--card-badge-${tone}-bg-color`]: vars.color.tinted[tone].bg[1],
363
- [`--card-badge-${tone}-dot-color`]: vars.color.tinted[tone].fg[4],
364
- [`--card-badge-${tone}-fg-color`]: vars.color.tinted[tone].fg[2],
365
- [`--card-badge-${tone}-icon-color`]: vars.color.tinted[tone].fg[4],
366
- })
367
- }
368
- _assign(toneVars, {
369
- '--card-bg-color': vars.color.bg,
370
- '--card-bg2-color': vars.color.muted.bg,
371
- '--card-border-color': vars.color.border,
372
- '--card-code-bg-color': vars.color.code.bg,
373
- '--card-code-fg-color': vars.color.code.fg,
374
- '--card-fg-color': vars.color.fg,
375
- '--card-focus-ring-color': vars.color.focusRing,
376
- '--card-hairline-soft-color': vars.color.tinted.default.border[1],
377
- '--card-hairline-hard-color': vars.color.tinted.default.border[2],
378
- '--card-icon-color': vars.color.fg,
379
- '--card-kbd-bg-color': vars.color.muted.bg,
380
- '--card-kbd-border-color': vars.color.tinted.default.border[1],
381
- '--card-kbd-fg-color': vars.color.muted.fg,
382
- '--card-link-color': vars.color.link.fg,
383
- '--card-link-fg-color': vars.color.link.fg,
384
- '--card-muted-bg-color': vars.color.muted.bg,
385
- '--card-muted-fg-color': vars.color.muted.fg,
386
- '--card-shadow-outline-color': vars.color.shadow.outline,
387
- '--card-shadow-umbra-color': vars.color.shadow.umbra,
388
- '--card-shadow-penumbra-color': vars.color.shadow.penumbra,
389
- '--card-shadow-ambient-color': vars.color.shadow.ambient,
390
- '--card-skeleton-from-color': vars.color.skeleton.from,
391
- '--card-skeleton-to-color': vars.color.skeleton.to,
392
- })
393
-
394
334
  return {
395
335
  vars: toneVars,
396
336
  }
@@ -6,6 +6,7 @@ import {vars} from '../../vars.css'
6
6
 
7
7
  export const root: string = _style(layers.primitives, {
8
8
  position: 'relative',
9
+ flex: 'none',
9
10
 
10
11
  selectors: {
11
12
  '&:not([hidden])': {
@@ -3,6 +3,8 @@ import {_responsiveClassName} from '../../_responsiveClassName'
3
3
  import {display} from '../../props/display/display'
4
4
  import {flex} from '../../props/flex/flex'
5
5
  import {font} from '../../props/font/font'
6
+ import {margin} from '../../props/margin/margin'
7
+ import {maxWidth} from '../../props/maxWidth/maxWidth'
6
8
  import {root, scale} from './code.css'
7
9
  import type {CodeStyleProps} from './types'
8
10
 
@@ -15,5 +17,7 @@ export function code(props: CodeStyleProps): string | undefined {
15
17
  display({display: 'block'}),
16
18
  flex(props),
17
19
  font(props),
20
+ margin(props),
21
+ maxWidth(props),
18
22
  )
19
23
  }
@@ -2,10 +2,16 @@ import type {FontCodeSize} from '@sanity/ui/theme'
2
2
 
3
3
  import type {FlexStyleProps} from '../../props/flex/types'
4
4
  import type {FontStyleProps} from '../../props/font/types'
5
+ import type {MarginStyleProps} from '../../props/margin/types'
6
+ import type {MaxWidthStyleProps} from '../../props/maxWidth/types'
5
7
  import type {ResponsiveProp} from '../../types'
6
8
 
7
9
  /** @public */
8
- export interface CodeStyleProps extends FlexStyleProps, Omit<FontStyleProps, 'align'> {
10
+ export interface CodeStyleProps
11
+ extends FlexStyleProps,
12
+ Omit<FontStyleProps, 'align'>,
13
+ MarginStyleProps,
14
+ MaxWidthStyleProps {
9
15
  className?: string
10
16
  size?: ResponsiveProp<FontCodeSize>
11
17
  }
@@ -3,6 +3,8 @@ import {_responsiveClassName} from '../../_responsiveClassName'
3
3
  import {display} from '../../props/display/display'
4
4
  import {flex} from '../../props/flex/flex'
5
5
  import {font} from '../../props/font/font'
6
+ import {margin} from '../../props/margin/margin'
7
+ import {maxWidth} from '../../props/maxWidth/maxWidth'
6
8
  import {textAlign} from '../../props/textAlign/textAlign'
7
9
  import {muted, root, sizes} from './heading.css'
8
10
  import type {HeadingStyleProps} from './types'
@@ -17,6 +19,8 @@ export function heading(props: HeadingStyleProps): string | undefined {
17
19
  display({display: 'block'}),
18
20
  flex(props),
19
21
  font(props),
22
+ margin(props),
23
+ maxWidth(props),
20
24
  textAlign({textAlign: props.align}),
21
25
  )
22
26
  }
@@ -2,11 +2,17 @@ import type {FontHeadingSize} from '@sanity/ui/theme'
2
2
 
3
3
  import type {FlexStyleProps} from '../../props/flex/types'
4
4
  import type {FontStyleProps} from '../../props/font/types'
5
+ import type {MarginStyleProps} from '../../props/margin/types'
6
+ import type {MaxWidthStyleProps} from '../../props/maxWidth/types'
5
7
  import type {TextAlignStyleProps} from '../../props/textAlign/types'
6
8
  import type {ResponsiveProp} from '../../types'
7
9
 
8
10
  /** @public */
9
- export interface HeadingStyleProps extends FontStyleProps, FlexStyleProps {
11
+ export interface HeadingStyleProps
12
+ extends FontStyleProps,
13
+ FlexStyleProps,
14
+ MarginStyleProps,
15
+ MaxWidthStyleProps {
10
16
  align?: TextAlignStyleProps['textAlign']
11
17
  className?: string
12
18
  muted?: boolean
@@ -3,6 +3,8 @@ import {_responsiveClassName} from '../../_responsiveClassName'
3
3
  import {display} from '../../props/display/display'
4
4
  import {flex} from '../../props/flex/flex'
5
5
  import {font} from '../../props/font/font'
6
+ import {margin} from '../../props/margin/margin'
7
+ import {maxWidth} from '../../props/maxWidth/maxWidth'
6
8
  import {textAlign} from '../../props/textAlign/textAlign'
7
9
  import {muted, root, sizes} from './label.css'
8
10
  import type {LabelStyleProps} from './types'
@@ -17,6 +19,8 @@ export function label(props: LabelStyleProps): string | undefined {
17
19
  display({display: 'block'}),
18
20
  flex(props),
19
21
  font(props),
22
+ margin(props),
23
+ maxWidth(props),
20
24
  textAlign({textAlign: props.align}),
21
25
  )
22
26
  }
@@ -2,11 +2,17 @@ import type {FontLabelSize} from '@sanity/ui/theme'
2
2
 
3
3
  import type {FlexStyleProps} from '../../props/flex/types'
4
4
  import type {FontStyleProps} from '../../props/font/types'
5
+ import type {MarginStyleProps} from '../../props/margin/types'
6
+ import type {MaxWidthStyleProps} from '../../props/maxWidth/types'
5
7
  import type {TextAlignStyleProps} from '../../props/textAlign/types'
6
8
  import type {ResponsiveProp} from '../../types'
7
9
 
8
10
  /** @public */
9
- export interface LabelStyleProps extends FlexStyleProps, FontStyleProps {
11
+ export interface LabelStyleProps
12
+ extends FlexStyleProps,
13
+ FontStyleProps,
14
+ MarginStyleProps,
15
+ MaxWidthStyleProps {
10
16
  align?: TextAlignStyleProps['textAlign']
11
17
  className?: string
12
18
  muted?: boolean
@@ -7,7 +7,7 @@ export const root: string = _style(layers.primitives, {
7
7
 
8
8
  selectors: {
9
9
  '&:not([hidden])': {
10
- display: 'inline-block',
10
+ display: 'block',
11
11
  },
12
12
  },
13
13
  })
@@ -4,7 +4,6 @@ import {layers} from '../../layers.css'
4
4
  export const _root: string = _style(layers.primitives, {
5
5
  containerType: 'inline-size',
6
6
  WebkitFontSmoothing: 'antialiased',
7
- // minWidth: `${320 / 16}rem`, // 320px
8
7
 
9
8
  selectors: {
10
9
  'html.&': {
@@ -3,7 +3,13 @@ import {globalStyle} from '@vanilla-extract/css'
3
3
  import {_style} from '../../_style.css'
4
4
  import {layers} from '../../layers.css'
5
5
 
6
- export const root: string = _style(layers.primitives, {})
6
+ export const root: string = _style(layers.primitives, {
7
+ selectors: {
8
+ '&:not([hidden])': {
9
+ display: 'block',
10
+ },
11
+ },
12
+ })
7
13
 
8
14
  export const input: string = _style(layers.primitives, {
9
15
  ':disabled': {
@@ -42,6 +42,8 @@ export const tones: Record<ElementTone, string> = {
42
42
  [vars.color.bg]: tinted.bg[0],
43
43
  [vars.color.border]: tinted.border[1],
44
44
  [vars.color.fg]: tinted.fg[2],
45
+ [vars.color.muted.bg]: tinted.bg[1],
46
+ [vars.color.muted.fg]: tinted.fg[3],
45
47
  },
46
48
 
47
49
  '@media': {
@@ -53,18 +55,10 @@ export const tones: Record<ElementTone, string> = {
53
55
  [vars.color.bg]: tinted.bg[1],
54
56
  [vars.color.border]: tinted.border[2],
55
57
  [vars.color.fg]: tinted.fg[1],
58
+ [vars.color.muted.bg]: tinted.bg[2],
59
+ [vars.color.muted.fg]: tinted.fg[4],
56
60
  },
57
61
  },
58
-
59
- // '&:not([data-disabled]):hover': {
60
- // vars: {
61
- // [vars.color.bg]: tinted.bg[1],
62
- // [vars.color.border]: tinted.border[3],
63
- // [vars.color.fg]: tinted.fg[1],
64
- // [vars.color.muted.bg]: tinted.bg[2],
65
- // [vars.color.muted.fg]: tinted.fg[4],
66
- // },
67
- // },
68
62
  },
69
63
  },
70
64
  },
@@ -83,16 +77,7 @@ export const tones: Record<ElementTone, string> = {
83
77
  },
84
78
 
85
79
  // focused
86
- '&:not([data-disabled]):focus': {
87
- vars: {
88
- [vars.color.bg]: focused.bg[0],
89
- [vars.color.border]: focused.border[1],
90
- [vars.color.fg]: focused.fg[0],
91
- [vars.color.muted.bg]: focused.bg[1],
92
- [vars.color.muted.fg]: focused.fg[3],
93
- },
94
- },
95
- '&:not([data-disabled])[data-focused]': {
80
+ '&:not([data-disabled]):focus, &:not([data-disabled])[data-focused]': {
96
81
  vars: {
97
82
  [vars.color.bg]: focused.bg[0],
98
83
  [vars.color.border]: focused.border[1],
@@ -102,17 +87,6 @@ export const tones: Record<ElementTone, string> = {
102
87
  },
103
88
  },
104
89
 
105
- // // selected
106
- // '&:not([data-disabled])[data-selected]': {
107
- // vars: {
108
- // [vars.color.bg]: focused.bg[0],
109
- // [vars.color.border]: focused.border[1],
110
- // [vars.color.fg]: focused.fg[0],
111
- // [vars.color.muted.bg]: focused.bg[1],
112
- // [vars.color.muted.fg]: focused.fg[3],
113
- // },
114
- // },
115
-
116
90
  // disabled
117
91
  '&[data-disabled]': {
118
92
  vars: {
@@ -2,7 +2,16 @@ import {_style} from '../../_style.css'
2
2
  import {layers} from '../../layers.css'
3
3
  import {vars} from '../../vars.css'
4
4
 
5
- export const root: string = _style(layers.primitives, {})
5
+ export const root: string = _style(layers.primitives, {
6
+ flex: 'none',
7
+ position: 'relative',
8
+
9
+ selectors: {
10
+ '&:not([hidden])': {
11
+ display: 'block',
12
+ },
13
+ },
14
+ })
6
15
 
7
16
  export const input: string = _style(layers.primitives, {
8
17
  position: 'absolute',
@@ -3,6 +3,7 @@ import {_responsiveClassName} from '../../_responsiveClassName'
3
3
  import {display} from '../../props/display/display'
4
4
  import {flex} from '../../props/flex/flex'
5
5
  import {font} from '../../props/font/font'
6
+ import {margin} from '../../props/margin/margin'
6
7
  import {maxWidth} from '../../props/maxWidth/maxWidth'
7
8
  import {textAlign} from '../../props/textAlign/textAlign'
8
9
  import {muted, root, sizes} from './text.css'
@@ -18,6 +19,7 @@ export function text(props: TextStyleProps): string | undefined {
18
19
  display({display: 'block'}),
19
20
  flex(props),
20
21
  font(props),
22
+ margin(props),
21
23
  maxWidth(props),
22
24
  textAlign({textAlign: props.align}),
23
25
  )
@@ -2,6 +2,7 @@ import type {FontTextSize} from '@sanity/ui/theme'
2
2
 
3
3
  import type {FlexStyleProps} from '../../props/flex/types'
4
4
  import type {FontStyleProps} from '../../props/font/types'
5
+ import type {MarginStyleProps} from '../../props/margin/types'
5
6
  import type {MaxWidthStyleProps} from '../../props/maxWidth/types'
6
7
  import type {TextAlignStyleProps} from '../../props/textAlign/types'
7
8
  import type {ResponsiveProp} from '../../types'
@@ -10,7 +11,11 @@ import type {ResponsiveProp} from '../../types'
10
11
  export type TextSize = number
11
12
 
12
13
  /** @public */
13
- export interface TextStyleProps extends FlexStyleProps, FontStyleProps, MaxWidthStyleProps {
14
+ export interface TextStyleProps
15
+ extends FlexStyleProps,
16
+ FontStyleProps,
17
+ MarginStyleProps,
18
+ MaxWidthStyleProps {
14
19
  align?: TextAlignStyleProps['textAlign']
15
20
  className?: string
16
21
  muted?: boolean
@@ -4,7 +4,13 @@ import {_style} from '../../_style.css'
4
4
  import {layers} from '../../layers.css'
5
5
  import {vars} from '../../vars.css'
6
6
 
7
- export const root: string = _style(layers.primitives, {})
7
+ export const root: string = _style(layers.primitives, {
8
+ selectors: {
9
+ '&:not([hidden])': {
10
+ display: 'flex',
11
+ },
12
+ },
13
+ })
8
14
 
9
15
  export const prefix: string = _style(layers.primitives, {
10
16
  borderTop: `${vars.input.border.width} solid ${vars.color.border}`,
@@ -12,18 +18,23 @@ export const prefix: string = _style(layers.primitives, {
12
18
  borderBottom: `${vars.input.border.width} solid ${vars.color.border}`,
13
19
  borderTopLeftRadius: 'inherit',
14
20
  borderBottomLeftRadius: 'inherit',
21
+ flex: 'none',
15
22
  })
16
23
 
17
24
  globalStyle(`${prefix} > span`, {
18
25
  [`@layer ${layers.primitives}`]: {
19
26
  display: 'block',
20
- margin: `calc(0 - ${vars.input.border.width})`,
27
+ margin: `calc(0px - ${vars.input.border.width})`,
21
28
  marginRight: 0,
22
29
  },
23
30
  })
24
31
 
25
32
  export const element: string = _style(layers.primitives, {
33
+ display: 'block',
26
34
  borderRadius: 'inherit',
35
+ flex: 1,
36
+ position: 'relative',
37
+ width: 'stretch',
27
38
  })
28
39
 
29
40
  export const suffix: string = _style(layers.primitives, {
@@ -32,12 +43,13 @@ export const suffix: string = _style(layers.primitives, {
32
43
  borderBottom: `${vars.input.border.width}solid ${vars.color.border}`,
33
44
  borderTopRightRadius: 'inherit',
34
45
  borderBottomRightRadius: 'inherit',
46
+ flex: 'none',
35
47
  })
36
48
 
37
49
  globalStyle(`${suffix} > span`, {
38
50
  [`@layer ${layers.primitives}`]: {
39
51
  display: 'block',
40
- margin: `calc(0 - ${vars.input.border.width})`,
52
+ margin: `calc(0px - ${vars.input.border.width})`,
41
53
  marginLeft: 0,
42
54
  },
43
55
  })
@@ -3,7 +3,7 @@ import type {ContainerWidth} from '@sanity/ui/theme'
3
3
  import type {ResponsiveProp} from '../../types'
4
4
 
5
5
  /** @public */
6
- export type Width = ContainerWidth | 'auto' | 'fill' | 'stretch' | 'min'
6
+ export type Width = ContainerWidth | 'auto' | 'fill' | 'stretch' | 'min' | 'max'
7
7
 
8
8
  /** @public */
9
9
  export interface WidthStyleProps {
@@ -14,11 +14,14 @@ export const options: ResponsiveRuleOptions<Width> = {
14
14
  fill: _responsiveStyle(layers.props, {
15
15
  width: '100%',
16
16
  }),
17
+ stretch: _responsiveStyle(layers.props, {
18
+ width: 'stretch',
19
+ }),
17
20
  min: _responsiveStyle(layers.props, {
18
21
  width: 'min-content',
19
22
  }),
20
- stretch: _responsiveStyle(layers.props, {
21
- width: 'stretch',
23
+ max: _responsiveStyle(layers.props, {
24
+ width: 'max-content',
22
25
  }),
23
26
  ..._fromEntries(
24
27
  CONTAINER_SCALE.map((index) => [
@@ -1,32 +0,0 @@
1
- import type {ContainerWidth} from '@sanity/ui/theme'
2
-
3
- import {DEFAULT_POPOVER_PADDING} from './constants'
4
-
5
- export function calcCurrentWidth(params: {
6
- mediaIndex: number
7
- container: number[]
8
- width: (ContainerWidth | 'fill' | null | undefined)[]
9
- }): number | undefined {
10
- const {container, mediaIndex, width} = params
11
-
12
- const w = width[mediaIndex]
13
- const currentWidth = w === undefined ? width[width.length - 1] : w
14
-
15
- return typeof currentWidth === 'number' ? container[currentWidth] : undefined
16
- }
17
-
18
- export function calcMaxWidth(params: {
19
- boundaryWidth: number | undefined
20
- currentWidth: number | undefined
21
- }): number | undefined {
22
- const {boundaryWidth, currentWidth} = params
23
-
24
- if (currentWidth === undefined && boundaryWidth === undefined) {
25
- return undefined
26
- }
27
-
28
- return Math.min(
29
- currentWidth ?? Infinity,
30
- (boundaryWidth || Infinity) - DEFAULT_POPOVER_PADDING * 2,
31
- )
32
- }