@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.
- package/dist/css/index.css +1 -1
- package/dist/css/index.css.map +1 -1
- package/dist/css/index.d.ts +22 -6
- package/dist/css/index.js +29 -20
- package/dist/css/index.js.map +1 -1
- package/dist/index.d.ts +8 -13
- package/dist/index.js +519 -531
- package/dist/index.js.map +1 -1
- package/exports/css/index.css +1 -0
- package/package.json +12 -12
- package/src/core/components/dialog/__workshop__/Panes.tsx +4 -0
- package/src/core/components/menu/Menu.tsx +0 -4
- package/src/core/components/menu/MenuItem.tsx +1 -1
- package/src/core/components/toast/useToast.ts +2 -2
- package/src/core/primitives/avatar/Avatar.tsx +2 -2
- package/src/core/primitives/avatar/__workshop__/PropsStory.tsx +22 -0
- package/src/core/primitives/avatar/__workshop__/index.ts +5 -0
- package/src/core/primitives/button/Button.tsx +5 -5
- package/src/core/primitives/code/Code.tsx +25 -1
- package/src/core/primitives/heading/Heading.tsx +16 -0
- package/src/core/primitives/label/Label.tsx +16 -0
- package/src/core/primitives/radio/Radio.tsx +2 -2
- package/src/core/primitives/select/Select.tsx +5 -3
- package/src/core/primitives/switch/Switch.tsx +2 -10
- package/src/core/primitives/text/Text.tsx +14 -0
- package/src/core/primitives/textArea/TextArea.tsx +7 -1
- package/src/core/primitives/textInput/TextInput.tsx +18 -17
- package/src/core/types.ts +6 -5
- package/src/core/utils/portal/PortalProvider.tsx +2 -2
- package/src/css/primitives/_input/_input.css.ts +2 -3
- package/src/css/primitives/_input/input.ts +2 -0
- package/src/css/primitives/_input/types.ts +2 -1
- package/src/css/primitives/avatar/avatar.css.ts +8 -0
- package/src/css/primitives/box/box.css.ts +21 -1
- package/src/css/primitives/button/button.css.ts +1 -0
- package/src/css/primitives/card/card.css.ts +0 -60
- package/src/css/primitives/checkbox/checkbox.css.ts +1 -0
- package/src/css/primitives/code/code.ts +4 -0
- package/src/css/primitives/code/types.ts +7 -1
- package/src/css/primitives/heading/heading.ts +4 -0
- package/src/css/primitives/heading/types.ts +7 -1
- package/src/css/primitives/label/label.ts +4 -0
- package/src/css/primitives/label/types.ts +7 -1
- package/src/css/primitives/radio/radio.css.ts +1 -1
- package/src/css/primitives/root/root.css.ts +0 -1
- package/src/css/primitives/select/select.css.ts +7 -1
- package/src/css/primitives/selectable/selectable.css.ts +5 -31
- package/src/css/primitives/switch/switch.css.ts +10 -1
- package/src/css/primitives/text/text.ts +2 -0
- package/src/css/primitives/text/types.ts +6 -1
- package/src/css/primitives/textInput/textInput.css.ts +15 -3
- package/src/css/props/width/types.ts +1 -1
- package/src/css/props/width/width.css.ts +5 -2
- 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.
|
|
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
|
})
|
|
@@ -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
|
}
|
|
@@ -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
|
|
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
|
|
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
|
|
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
|
|
@@ -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
|
|
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(
|
|
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(
|
|
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
|
-
|
|
21
|
-
width: '
|
|
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
|
-
}
|