@seed-design/lynx-css 0.14.2 → 1.0.0
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/all.css +930 -253
- package/all.min.css +1 -1
- package/base.css +10 -0
- package/base.min.css +1 -1
- package/package.json +1 -1
- package/recipes/alert-dialog.css +11 -0
- package/recipes/alert-dialog.d.ts +1 -1
- package/recipes/alert-dialog.mjs +8 -0
- package/recipes/app-bar.css +7 -3
- package/recipes/attachment-input-item.css +7 -0
- package/recipes/attachment-input.css +2 -1
- package/recipes/avatar-stack.css +69 -0
- package/recipes/avatar-stack.d.ts +24 -0
- package/recipes/avatar-stack.mjs +55 -0
- package/recipes/avatar.css +257 -0
- package/recipes/avatar.d.ts +28 -0
- package/recipes/avatar.mjs +82 -0
- package/recipes/badge.css +1 -9
- package/recipes/badge.d.ts +0 -4
- package/recipes/badge.mjs +1 -14
- package/recipes/bottom-sheet.css +33 -2
- package/recipes/bottom-sheet.d.ts +5 -1
- package/recipes/bottom-sheet.mjs +28 -2
- package/recipes/callout.css +1 -8
- package/recipes/checkbox.css +7 -1
- package/recipes/checkmark.css +17 -26
- package/recipes/checkmark.d.ts +1 -5
- package/recipes/checkmark.mjs +7 -60
- package/recipes/content-placeholder.css +29 -0
- package/recipes/content-placeholder.d.ts +21 -0
- package/recipes/content-placeholder.mjs +44 -0
- package/recipes/dialog.css +4 -2
- package/recipes/{input-button.css → field-button.css} +49 -49
- package/recipes/field-button.d.ts +40 -0
- package/recipes/{input-button.mjs → field-button.mjs} +20 -20
- package/recipes/floating-action-button.css +15 -8
- package/recipes/image-frame-icon.css +8 -0
- package/recipes/image-frame-icon.d.ts +19 -0
- package/recipes/image-frame-icon.mjs +22 -0
- package/recipes/image-frame-indicator.css +17 -0
- package/recipes/image-frame-indicator.d.ts +21 -0
- package/recipes/image-frame-indicator.mjs +36 -0
- package/recipes/image-frame-reaction-button.css +20 -0
- package/recipes/image-frame-reaction-button.d.ts +21 -0
- package/recipes/image-frame-reaction-button.mjs +40 -0
- package/recipes/image-frame.css +87 -0
- package/recipes/image-frame.d.ts +32 -0
- package/recipes/image-frame.mjs +72 -0
- package/recipes/list-item.css +0 -4
- package/recipes/list-item.d.ts +1 -1
- package/recipes/list-item.mjs +0 -4
- package/recipes/menu-sheet-item.css +5 -1
- package/recipes/menu-sheet.css +5 -0
- package/recipes/menu-sheet.d.ts +1 -1
- package/recipes/menu-sheet.mjs +4 -0
- package/recipes/menu.css +1 -13
- package/recipes/menu.d.ts +1 -1
- package/recipes/menu.mjs +0 -4
- package/recipes/progress-circle.css +38 -4
- package/recipes/progress-circle.d.ts +1 -1
- package/recipes/progress-circle.mjs +1 -0
- package/recipes/pull-to-refresh.css +14 -0
- package/recipes/pull-to-refresh.d.ts +21 -0
- package/recipes/pull-to-refresh.mjs +40 -0
- package/recipes/reaction-button.css +0 -6
- package/recipes/reaction-button.d.ts +0 -4
- package/recipes/reaction-button.mjs +0 -11
- package/recipes/scroll-fog.css +4 -17
- package/recipes/scroll-fog.d.ts +1 -1
- package/recipes/scroll-fog.mjs +0 -8
- package/recipes/segmented-control.css +24 -14
- package/recipes/segmented-control.d.ts +4 -4
- package/recipes/segmented-control.mjs +8 -8
- package/recipes/select-box-checkmark.css +4 -7
- package/recipes/select-box.css +10 -4
- package/recipes/select-item.css +13 -2
- package/recipes/select-item.d.ts +1 -1
- package/recipes/select-item.mjs +4 -0
- package/recipes/select-trigger.css +13 -2
- package/recipes/select-trigger.d.ts +1 -1
- package/recipes/select-trigger.mjs +4 -0
- package/recipes/select.css +1 -13
- package/recipes/select.d.ts +1 -1
- package/recipes/select.mjs +0 -4
- package/recipes/slider-marker.css +2 -2
- package/recipes/slider-tick.css +1 -1
- package/recipes/slider.css +2 -5
- package/recipes/tabs.css +11 -11
- package/recipes/wheel-picker.css +151 -0
- package/recipes/wheel-picker.d.ts +32 -0
- package/recipes/wheel-picker.mjs +90 -0
- package/recipes/input-button.d.ts +0 -40
|
@@ -1,54 +1,54 @@
|
|
|
1
|
-
import './
|
|
1
|
+
import './field-button.css';
|
|
2
2
|
import { createClassName, mergeVariants, splitVariantProps } from "./shared.mjs";
|
|
3
3
|
|
|
4
|
-
const
|
|
4
|
+
const fieldButtonSlotNames = [
|
|
5
5
|
[
|
|
6
6
|
"root",
|
|
7
|
-
"seed-
|
|
7
|
+
"seed-field-button__root"
|
|
8
8
|
],
|
|
9
9
|
[
|
|
10
10
|
"button",
|
|
11
|
-
"seed-
|
|
11
|
+
"seed-field-button__button"
|
|
12
12
|
],
|
|
13
13
|
[
|
|
14
14
|
"content",
|
|
15
|
-
"seed-
|
|
15
|
+
"seed-field-button__content"
|
|
16
16
|
],
|
|
17
17
|
[
|
|
18
18
|
"baseStroke",
|
|
19
|
-
"seed-
|
|
19
|
+
"seed-field-button__baseStroke"
|
|
20
20
|
],
|
|
21
21
|
[
|
|
22
22
|
"stroke",
|
|
23
|
-
"seed-
|
|
23
|
+
"seed-field-button__stroke"
|
|
24
24
|
],
|
|
25
25
|
[
|
|
26
26
|
"value",
|
|
27
|
-
"seed-
|
|
27
|
+
"seed-field-button__value"
|
|
28
28
|
],
|
|
29
29
|
[
|
|
30
30
|
"placeholder",
|
|
31
|
-
"seed-
|
|
31
|
+
"seed-field-button__placeholder"
|
|
32
32
|
],
|
|
33
33
|
[
|
|
34
34
|
"prefixText",
|
|
35
|
-
"seed-
|
|
35
|
+
"seed-field-button__prefixText"
|
|
36
36
|
],
|
|
37
37
|
[
|
|
38
38
|
"prefixIcon",
|
|
39
|
-
"seed-
|
|
39
|
+
"seed-field-button__prefixIcon"
|
|
40
40
|
],
|
|
41
41
|
[
|
|
42
42
|
"suffixText",
|
|
43
|
-
"seed-
|
|
43
|
+
"seed-field-button__suffixText"
|
|
44
44
|
],
|
|
45
45
|
[
|
|
46
46
|
"suffixIcon",
|
|
47
|
-
"seed-
|
|
47
|
+
"seed-field-button__suffixIcon"
|
|
48
48
|
],
|
|
49
49
|
[
|
|
50
50
|
"clearButton",
|
|
51
|
-
"seed-
|
|
51
|
+
"seed-field-button__clearButton"
|
|
52
52
|
]
|
|
53
53
|
];
|
|
54
54
|
|
|
@@ -67,7 +67,7 @@ const compoundVariants = [
|
|
|
67
67
|
}
|
|
68
68
|
];
|
|
69
69
|
|
|
70
|
-
export const
|
|
70
|
+
export const fieldButtonVariantMap = {
|
|
71
71
|
"size": [
|
|
72
72
|
"large",
|
|
73
73
|
"medium"
|
|
@@ -90,11 +90,11 @@ export const inputButtonVariantMap = {
|
|
|
90
90
|
]
|
|
91
91
|
};
|
|
92
92
|
|
|
93
|
-
export const
|
|
93
|
+
export const fieldButtonVariantKeys = Object.keys(fieldButtonVariantMap);
|
|
94
94
|
|
|
95
|
-
export function
|
|
95
|
+
export function fieldButton(props) {
|
|
96
96
|
return Object.fromEntries(
|
|
97
|
-
|
|
97
|
+
fieldButtonSlotNames.map(([slot, className]) => {
|
|
98
98
|
return [
|
|
99
99
|
slot,
|
|
100
100
|
createClassName(className, mergeVariants(defaultVariant, props), compoundVariants),
|
|
@@ -103,6 +103,6 @@ export function inputButton(props) {
|
|
|
103
103
|
);
|
|
104
104
|
}
|
|
105
105
|
|
|
106
|
-
Object.assign(
|
|
106
|
+
Object.assign(fieldButton, { splitVariantProps: (props) => splitVariantProps(props, fieldButtonVariantMap) });
|
|
107
107
|
|
|
108
|
-
// @recipe(seed):
|
|
108
|
+
// @recipe(seed): field-button
|
|
@@ -3,14 +3,15 @@
|
|
|
3
3
|
display: flex;
|
|
4
4
|
flex-direction: row;
|
|
5
5
|
align-items: center;
|
|
6
|
-
justify-content:
|
|
6
|
+
justify-content: flex-start;
|
|
7
7
|
flex-shrink: 0;
|
|
8
8
|
max-width: 100%;
|
|
9
9
|
overflow: hidden;
|
|
10
|
+
gap: var(--seed-dimension-x1);
|
|
10
11
|
background-color: var(--seed-color-bg-brand-solid);
|
|
11
12
|
border-radius: var(--seed-radius-full);
|
|
12
13
|
box-shadow: var(--seed-shadow-s3);
|
|
13
|
-
transition: background-color var(--seed-duration-color-transition) var(--seed-timing-function-easing), width var(--seed-duration-d4) var(--seed-timing-function-easing), height var(--seed-duration-d4) var(--seed-timing-function-easing), padding-left var(--seed-duration-d4) var(--seed-timing-function-easing), padding-right var(--seed-duration-d4) var(--seed-timing-function-easing)
|
|
14
|
+
transition: background-color var(--seed-duration-color-transition) var(--seed-timing-function-easing), width var(--seed-duration-d4) var(--seed-timing-function-easing), height var(--seed-duration-d4) var(--seed-timing-function-easing), padding-left var(--seed-duration-d4) var(--seed-timing-function-easing), padding-right var(--seed-duration-d4) var(--seed-timing-function-easing)
|
|
14
15
|
}
|
|
15
16
|
.seed-floating-action-button__icon {
|
|
16
17
|
flex-shrink: 0;
|
|
@@ -20,17 +21,18 @@
|
|
|
20
21
|
.seed-floating-action-button__label {
|
|
21
22
|
width: max-content;
|
|
22
23
|
flex-shrink: 0;
|
|
24
|
+
white-space: nowrap;
|
|
23
25
|
color: var(--seed-color-fg-on-brand-solid);
|
|
24
26
|
font-size: var(--seed-font-size-t5);
|
|
25
27
|
line-height: var(--seed-line-height-t5);
|
|
26
|
-
font-weight: var(--seed-font-weight-bold)
|
|
28
|
+
font-weight: var(--seed-font-weight-bold);
|
|
29
|
+
transition: opacity var(--seed-duration-d4) var(--seed-timing-function-easing)
|
|
27
30
|
}
|
|
28
31
|
.seed-floating-action-button__root--extended_true {
|
|
29
32
|
width: fit-content;
|
|
30
33
|
height: 48px;
|
|
31
34
|
padding-left: var(--seed-dimension-x4_5);
|
|
32
|
-
padding-right: var(--seed-dimension-x4_5)
|
|
33
|
-
gap: var(--seed-dimension-x1)
|
|
35
|
+
padding-right: var(--seed-dimension-x4_5)
|
|
34
36
|
}
|
|
35
37
|
.seed-floating-action-button__icon--extended_true {
|
|
36
38
|
width: var(--seed-dimension-x4);
|
|
@@ -39,14 +41,16 @@
|
|
|
39
41
|
.seed-floating-action-button__root--extended_false {
|
|
40
42
|
width: 56px;
|
|
41
43
|
height: 56px;
|
|
42
|
-
padding-left:
|
|
43
|
-
padding-right: 0
|
|
44
|
-
gap: 0
|
|
44
|
+
padding-left: calc((56px - var(--seed-dimension-x6)) / 2);
|
|
45
|
+
padding-right: 0
|
|
45
46
|
}
|
|
46
47
|
.seed-floating-action-button__icon--extended_false {
|
|
47
48
|
width: var(--seed-dimension-x6);
|
|
48
49
|
height: var(--seed-dimension-x6)
|
|
49
50
|
}
|
|
51
|
+
.seed-floating-action-button__label--extended_false {
|
|
52
|
+
opacity: 0
|
|
53
|
+
}
|
|
50
54
|
.seed-floating-action-button__root--pressed_true {
|
|
51
55
|
background-color: var(--seed-color-bg-brand-solid-pressed)
|
|
52
56
|
}
|
|
@@ -56,6 +60,9 @@
|
|
|
56
60
|
.seed-floating-action-button__icon--transitionEnabled_false {
|
|
57
61
|
transition-duration: 0s
|
|
58
62
|
}
|
|
63
|
+
.seed-floating-action-button__label--transitionEnabled_false {
|
|
64
|
+
transition-duration: 0s
|
|
65
|
+
}
|
|
59
66
|
.seed-floating-action-button__root--extended_true-transitionEnabled_true {
|
|
60
67
|
width: calc(var(--fab-label-width) + var(--seed-dimension-x4) + var(--seed-dimension-x1) + 2 * var(--seed-dimension-x4_5))
|
|
61
68
|
}
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
declare interface ImageFrameIconVariant {
|
|
2
|
+
|
|
3
|
+
}
|
|
4
|
+
|
|
5
|
+
declare type ImageFrameIconVariantMap = {
|
|
6
|
+
[key in keyof ImageFrameIconVariant]: Array<ImageFrameIconVariant[key]>;
|
|
7
|
+
};
|
|
8
|
+
|
|
9
|
+
export declare type ImageFrameIconVariantProps = Partial<ImageFrameIconVariant>;
|
|
10
|
+
|
|
11
|
+
export declare const imageFrameIconVariantMap: ImageFrameIconVariantMap;
|
|
12
|
+
|
|
13
|
+
export declare const imageFrameIcon: ((
|
|
14
|
+
props?: ImageFrameIconVariantProps,
|
|
15
|
+
) => string) & {
|
|
16
|
+
splitVariantProps: <T extends ImageFrameIconVariantProps>(
|
|
17
|
+
props: T,
|
|
18
|
+
) => [ImageFrameIconVariantProps, Omit<T, keyof ImageFrameIconVariantProps>];
|
|
19
|
+
}
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
import './image-frame-icon.css';
|
|
2
|
+
import { createClassName, mergeVariants, splitVariantProps } from "./shared.mjs";
|
|
3
|
+
|
|
4
|
+
const defaultVariant = {};
|
|
5
|
+
|
|
6
|
+
const compoundVariants = [];
|
|
7
|
+
|
|
8
|
+
export const imageFrameIconVariantMap = {};
|
|
9
|
+
|
|
10
|
+
export const imageFrameIconVariantKeys = Object.keys(imageFrameIconVariantMap);
|
|
11
|
+
|
|
12
|
+
export function imageFrameIcon(props) {
|
|
13
|
+
return createClassName(
|
|
14
|
+
"seed-image-frame-icon",
|
|
15
|
+
mergeVariants(defaultVariant, props),
|
|
16
|
+
compoundVariants,
|
|
17
|
+
);
|
|
18
|
+
}
|
|
19
|
+
|
|
20
|
+
Object.assign(imageFrameIcon, { splitVariantProps: (props) => splitVariantProps(props, imageFrameIconVariantMap) });
|
|
21
|
+
|
|
22
|
+
// @recipe(seed): image-frame-icon
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
.seed-image-frame-indicator__root {
|
|
2
|
+
display: flex;
|
|
3
|
+
align-items: center;
|
|
4
|
+
justify-content: center;
|
|
5
|
+
background-color: var(--seed-color-palette-static-black-alpha-800);
|
|
6
|
+
border-radius: var(--seed-radius-full);
|
|
7
|
+
padding-left: var(--seed-dimension-x1_5);
|
|
8
|
+
padding-right: var(--seed-dimension-x1_5);
|
|
9
|
+
padding-top: var(--seed-dimension-x0_5);
|
|
10
|
+
padding-bottom: var(--seed-dimension-x0_5)
|
|
11
|
+
}
|
|
12
|
+
.seed-image-frame-indicator__label {
|
|
13
|
+
color: var(--seed-color-palette-static-white);
|
|
14
|
+
font-size: var(--seed-font-size-t1);
|
|
15
|
+
line-height: var(--seed-line-height-t1);
|
|
16
|
+
font-weight: var(--seed-font-weight-medium)
|
|
17
|
+
}
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
declare interface ImageFrameIndicatorVariant {
|
|
2
|
+
|
|
3
|
+
}
|
|
4
|
+
|
|
5
|
+
declare type ImageFrameIndicatorVariantMap = {
|
|
6
|
+
[key in keyof ImageFrameIndicatorVariant]: Array<ImageFrameIndicatorVariant[key]>;
|
|
7
|
+
};
|
|
8
|
+
|
|
9
|
+
export declare type ImageFrameIndicatorVariantProps = Partial<ImageFrameIndicatorVariant>;
|
|
10
|
+
|
|
11
|
+
export declare type ImageFrameIndicatorSlotName = "root" | "label";
|
|
12
|
+
|
|
13
|
+
export declare const imageFrameIndicatorVariantMap: ImageFrameIndicatorVariantMap;
|
|
14
|
+
|
|
15
|
+
export declare const imageFrameIndicator: ((
|
|
16
|
+
props?: ImageFrameIndicatorVariantProps,
|
|
17
|
+
) => Record<ImageFrameIndicatorSlotName, string>) & {
|
|
18
|
+
splitVariantProps: <T extends ImageFrameIndicatorVariantProps>(
|
|
19
|
+
props: T,
|
|
20
|
+
) => [ImageFrameIndicatorVariantProps, Omit<T, keyof ImageFrameIndicatorVariantProps>];
|
|
21
|
+
}
|
|
@@ -0,0 +1,36 @@
|
|
|
1
|
+
import './image-frame-indicator.css';
|
|
2
|
+
import { createClassName, mergeVariants, splitVariantProps } from "./shared.mjs";
|
|
3
|
+
|
|
4
|
+
const imageFrameIndicatorSlotNames = [
|
|
5
|
+
[
|
|
6
|
+
"root",
|
|
7
|
+
"seed-image-frame-indicator__root"
|
|
8
|
+
],
|
|
9
|
+
[
|
|
10
|
+
"label",
|
|
11
|
+
"seed-image-frame-indicator__label"
|
|
12
|
+
]
|
|
13
|
+
];
|
|
14
|
+
|
|
15
|
+
const defaultVariant = {};
|
|
16
|
+
|
|
17
|
+
const compoundVariants = [];
|
|
18
|
+
|
|
19
|
+
export const imageFrameIndicatorVariantMap = {};
|
|
20
|
+
|
|
21
|
+
export const imageFrameIndicatorVariantKeys = Object.keys(imageFrameIndicatorVariantMap);
|
|
22
|
+
|
|
23
|
+
export function imageFrameIndicator(props) {
|
|
24
|
+
return Object.fromEntries(
|
|
25
|
+
imageFrameIndicatorSlotNames.map(([slot, className]) => {
|
|
26
|
+
return [
|
|
27
|
+
slot,
|
|
28
|
+
createClassName(className, mergeVariants(defaultVariant, props), compoundVariants),
|
|
29
|
+
];
|
|
30
|
+
}),
|
|
31
|
+
);
|
|
32
|
+
}
|
|
33
|
+
|
|
34
|
+
Object.assign(imageFrameIndicator, { splitVariantProps: (props) => splitVariantProps(props, imageFrameIndicatorVariantMap) });
|
|
35
|
+
|
|
36
|
+
// @recipe(seed): image-frame-indicator
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
.seed-image-frame-reaction-button__root {
|
|
2
|
+
display: flex;
|
|
3
|
+
align-items: center;
|
|
4
|
+
justify-content: center;
|
|
5
|
+
flex-shrink: 0;
|
|
6
|
+
position: relative;
|
|
7
|
+
width: var(--seed-dimension-x6);
|
|
8
|
+
height: var(--seed-dimension-x6);
|
|
9
|
+
background-color: transparent
|
|
10
|
+
}
|
|
11
|
+
.seed-image-frame-reaction-button__fillIcon {
|
|
12
|
+
width: var(--seed-dimension-x6);
|
|
13
|
+
height: var(--seed-dimension-x6);
|
|
14
|
+
pointer-events: none
|
|
15
|
+
}
|
|
16
|
+
.seed-image-frame-reaction-button__lineIcon {
|
|
17
|
+
width: var(--seed-dimension-x6);
|
|
18
|
+
height: var(--seed-dimension-x6);
|
|
19
|
+
pointer-events: none
|
|
20
|
+
}
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
declare interface ImageFrameReactionButtonVariant {
|
|
2
|
+
|
|
3
|
+
}
|
|
4
|
+
|
|
5
|
+
declare type ImageFrameReactionButtonVariantMap = {
|
|
6
|
+
[key in keyof ImageFrameReactionButtonVariant]: Array<ImageFrameReactionButtonVariant[key]>;
|
|
7
|
+
};
|
|
8
|
+
|
|
9
|
+
export declare type ImageFrameReactionButtonVariantProps = Partial<ImageFrameReactionButtonVariant>;
|
|
10
|
+
|
|
11
|
+
export declare type ImageFrameReactionButtonSlotName = "root" | "fillIcon" | "lineIcon";
|
|
12
|
+
|
|
13
|
+
export declare const imageFrameReactionButtonVariantMap: ImageFrameReactionButtonVariantMap;
|
|
14
|
+
|
|
15
|
+
export declare const imageFrameReactionButton: ((
|
|
16
|
+
props?: ImageFrameReactionButtonVariantProps,
|
|
17
|
+
) => Record<ImageFrameReactionButtonSlotName, string>) & {
|
|
18
|
+
splitVariantProps: <T extends ImageFrameReactionButtonVariantProps>(
|
|
19
|
+
props: T,
|
|
20
|
+
) => [ImageFrameReactionButtonVariantProps, Omit<T, keyof ImageFrameReactionButtonVariantProps>];
|
|
21
|
+
}
|
|
@@ -0,0 +1,40 @@
|
|
|
1
|
+
import './image-frame-reaction-button.css';
|
|
2
|
+
import { createClassName, mergeVariants, splitVariantProps } from "./shared.mjs";
|
|
3
|
+
|
|
4
|
+
const imageFrameReactionButtonSlotNames = [
|
|
5
|
+
[
|
|
6
|
+
"root",
|
|
7
|
+
"seed-image-frame-reaction-button__root"
|
|
8
|
+
],
|
|
9
|
+
[
|
|
10
|
+
"fillIcon",
|
|
11
|
+
"seed-image-frame-reaction-button__fillIcon"
|
|
12
|
+
],
|
|
13
|
+
[
|
|
14
|
+
"lineIcon",
|
|
15
|
+
"seed-image-frame-reaction-button__lineIcon"
|
|
16
|
+
]
|
|
17
|
+
];
|
|
18
|
+
|
|
19
|
+
const defaultVariant = {};
|
|
20
|
+
|
|
21
|
+
const compoundVariants = [];
|
|
22
|
+
|
|
23
|
+
export const imageFrameReactionButtonVariantMap = {};
|
|
24
|
+
|
|
25
|
+
export const imageFrameReactionButtonVariantKeys = Object.keys(imageFrameReactionButtonVariantMap);
|
|
26
|
+
|
|
27
|
+
export function imageFrameReactionButton(props) {
|
|
28
|
+
return Object.fromEntries(
|
|
29
|
+
imageFrameReactionButtonSlotNames.map(([slot, className]) => {
|
|
30
|
+
return [
|
|
31
|
+
slot,
|
|
32
|
+
createClassName(className, mergeVariants(defaultVariant, props), compoundVariants),
|
|
33
|
+
];
|
|
34
|
+
}),
|
|
35
|
+
);
|
|
36
|
+
}
|
|
37
|
+
|
|
38
|
+
Object.assign(imageFrameReactionButton, { splitVariantProps: (props) => splitVariantProps(props, imageFrameReactionButtonVariantMap) });
|
|
39
|
+
|
|
40
|
+
// @recipe(seed): image-frame-reaction-button
|
|
@@ -0,0 +1,87 @@
|
|
|
1
|
+
.seed-image-frame__root {
|
|
2
|
+
position: relative;
|
|
3
|
+
overflow: hidden;
|
|
4
|
+
flex-shrink: 0;
|
|
5
|
+
aspect-ratio: var(--seed-image-frame-ratio)
|
|
6
|
+
}
|
|
7
|
+
.seed-image-frame__content {
|
|
8
|
+
position: absolute;
|
|
9
|
+
top: 0;
|
|
10
|
+
right: 0;
|
|
11
|
+
bottom: 0;
|
|
12
|
+
left: 0;
|
|
13
|
+
width: 100%;
|
|
14
|
+
height: 100%;
|
|
15
|
+
opacity: 0;
|
|
16
|
+
pointer-events: none
|
|
17
|
+
}
|
|
18
|
+
.seed-image-frame__fallback {
|
|
19
|
+
position: absolute;
|
|
20
|
+
top: 0;
|
|
21
|
+
right: 0;
|
|
22
|
+
bottom: 0;
|
|
23
|
+
left: 0
|
|
24
|
+
}
|
|
25
|
+
.seed-image-frame__stroke {
|
|
26
|
+
position: absolute;
|
|
27
|
+
top: 0;
|
|
28
|
+
right: 0;
|
|
29
|
+
bottom: 0;
|
|
30
|
+
left: 0;
|
|
31
|
+
border-radius: var(--seed-image-frame-radius);
|
|
32
|
+
pointer-events: none
|
|
33
|
+
}
|
|
34
|
+
.seed-image-frame__floater {
|
|
35
|
+
position: absolute;
|
|
36
|
+
display: flex
|
|
37
|
+
}
|
|
38
|
+
.seed-image-frame__stroke--stroke_true {
|
|
39
|
+
border-width: 1px;
|
|
40
|
+
border-style: solid;
|
|
41
|
+
border-color: var(--seed-color-stroke-neutral-subtle)
|
|
42
|
+
}
|
|
43
|
+
.seed-image-frame__content--loaded_true {
|
|
44
|
+
opacity: 1;
|
|
45
|
+
pointer-events: auto
|
|
46
|
+
}
|
|
47
|
+
.seed-image-frame__floater--placement_top-start {
|
|
48
|
+
top: var(--seed-image-frame-offset-y);
|
|
49
|
+
left: var(--seed-image-frame-offset-x)
|
|
50
|
+
}
|
|
51
|
+
.seed-image-frame__floater--placement_top-center {
|
|
52
|
+
top: var(--seed-image-frame-offset-y);
|
|
53
|
+
left: calc(50% + var(--seed-image-frame-offset-x));
|
|
54
|
+
transform: translateX(-50%)
|
|
55
|
+
}
|
|
56
|
+
.seed-image-frame__floater--placement_top-end {
|
|
57
|
+
top: var(--seed-image-frame-offset-y);
|
|
58
|
+
right: var(--seed-image-frame-offset-x)
|
|
59
|
+
}
|
|
60
|
+
.seed-image-frame__floater--placement_middle-start {
|
|
61
|
+
top: calc(50% + var(--seed-image-frame-offset-y));
|
|
62
|
+
left: var(--seed-image-frame-offset-x);
|
|
63
|
+
transform: translateY(-50%)
|
|
64
|
+
}
|
|
65
|
+
.seed-image-frame__floater--placement_middle-center {
|
|
66
|
+
top: calc(50% + var(--seed-image-frame-offset-y));
|
|
67
|
+
left: calc(50% + var(--seed-image-frame-offset-x));
|
|
68
|
+
transform: translate(-50%, -50%)
|
|
69
|
+
}
|
|
70
|
+
.seed-image-frame__floater--placement_middle-end {
|
|
71
|
+
top: calc(50% + var(--seed-image-frame-offset-y));
|
|
72
|
+
right: var(--seed-image-frame-offset-x);
|
|
73
|
+
transform: translateY(-50%)
|
|
74
|
+
}
|
|
75
|
+
.seed-image-frame__floater--placement_bottom-start {
|
|
76
|
+
bottom: var(--seed-image-frame-offset-y);
|
|
77
|
+
left: var(--seed-image-frame-offset-x)
|
|
78
|
+
}
|
|
79
|
+
.seed-image-frame__floater--placement_bottom-center {
|
|
80
|
+
bottom: var(--seed-image-frame-offset-y);
|
|
81
|
+
left: calc(50% + var(--seed-image-frame-offset-x));
|
|
82
|
+
transform: translateX(-50%)
|
|
83
|
+
}
|
|
84
|
+
.seed-image-frame__floater--placement_bottom-end {
|
|
85
|
+
bottom: var(--seed-image-frame-offset-y);
|
|
86
|
+
right: var(--seed-image-frame-offset-x)
|
|
87
|
+
}
|
|
@@ -0,0 +1,32 @@
|
|
|
1
|
+
declare interface ImageFrameVariant {
|
|
2
|
+
/**
|
|
3
|
+
* @default false
|
|
4
|
+
*/
|
|
5
|
+
stroke: boolean;
|
|
6
|
+
/**
|
|
7
|
+
* @default false
|
|
8
|
+
*/
|
|
9
|
+
loaded: boolean;
|
|
10
|
+
/**
|
|
11
|
+
* @default "bottom-end"
|
|
12
|
+
*/
|
|
13
|
+
placement: "top-start" | "top-center" | "top-end" | "middle-start" | "middle-center" | "middle-end" | "bottom-start" | "bottom-center" | "bottom-end";
|
|
14
|
+
}
|
|
15
|
+
|
|
16
|
+
declare type ImageFrameVariantMap = {
|
|
17
|
+
[key in keyof ImageFrameVariant]: Array<ImageFrameVariant[key]>;
|
|
18
|
+
};
|
|
19
|
+
|
|
20
|
+
export declare type ImageFrameVariantProps = Partial<ImageFrameVariant>;
|
|
21
|
+
|
|
22
|
+
export declare type ImageFrameSlotName = "root" | "content" | "fallback" | "stroke" | "floater";
|
|
23
|
+
|
|
24
|
+
export declare const imageFrameVariantMap: ImageFrameVariantMap;
|
|
25
|
+
|
|
26
|
+
export declare const imageFrame: ((
|
|
27
|
+
props?: ImageFrameVariantProps,
|
|
28
|
+
) => Record<ImageFrameSlotName, string>) & {
|
|
29
|
+
splitVariantProps: <T extends ImageFrameVariantProps>(
|
|
30
|
+
props: T,
|
|
31
|
+
) => [ImageFrameVariantProps, Omit<T, keyof ImageFrameVariantProps>];
|
|
32
|
+
}
|
|
@@ -0,0 +1,72 @@
|
|
|
1
|
+
import './image-frame.css';
|
|
2
|
+
import { createClassName, mergeVariants, splitVariantProps } from "./shared.mjs";
|
|
3
|
+
|
|
4
|
+
const imageFrameSlotNames = [
|
|
5
|
+
[
|
|
6
|
+
"root",
|
|
7
|
+
"seed-image-frame__root"
|
|
8
|
+
],
|
|
9
|
+
[
|
|
10
|
+
"content",
|
|
11
|
+
"seed-image-frame__content"
|
|
12
|
+
],
|
|
13
|
+
[
|
|
14
|
+
"fallback",
|
|
15
|
+
"seed-image-frame__fallback"
|
|
16
|
+
],
|
|
17
|
+
[
|
|
18
|
+
"stroke",
|
|
19
|
+
"seed-image-frame__stroke"
|
|
20
|
+
],
|
|
21
|
+
[
|
|
22
|
+
"floater",
|
|
23
|
+
"seed-image-frame__floater"
|
|
24
|
+
]
|
|
25
|
+
];
|
|
26
|
+
|
|
27
|
+
const defaultVariant = {
|
|
28
|
+
"stroke": false,
|
|
29
|
+
"loaded": false,
|
|
30
|
+
"placement": "bottom-end"
|
|
31
|
+
};
|
|
32
|
+
|
|
33
|
+
const compoundVariants = [];
|
|
34
|
+
|
|
35
|
+
export const imageFrameVariantMap = {
|
|
36
|
+
"stroke": [
|
|
37
|
+
true,
|
|
38
|
+
false
|
|
39
|
+
],
|
|
40
|
+
"loaded": [
|
|
41
|
+
true,
|
|
42
|
+
false
|
|
43
|
+
],
|
|
44
|
+
"placement": [
|
|
45
|
+
"top-start",
|
|
46
|
+
"top-center",
|
|
47
|
+
"top-end",
|
|
48
|
+
"middle-start",
|
|
49
|
+
"middle-center",
|
|
50
|
+
"middle-end",
|
|
51
|
+
"bottom-start",
|
|
52
|
+
"bottom-center",
|
|
53
|
+
"bottom-end"
|
|
54
|
+
]
|
|
55
|
+
};
|
|
56
|
+
|
|
57
|
+
export const imageFrameVariantKeys = Object.keys(imageFrameVariantMap);
|
|
58
|
+
|
|
59
|
+
export function imageFrame(props) {
|
|
60
|
+
return Object.fromEntries(
|
|
61
|
+
imageFrameSlotNames.map(([slot, className]) => {
|
|
62
|
+
return [
|
|
63
|
+
slot,
|
|
64
|
+
createClassName(className, mergeVariants(defaultVariant, props), compoundVariants),
|
|
65
|
+
];
|
|
66
|
+
}),
|
|
67
|
+
);
|
|
68
|
+
}
|
|
69
|
+
|
|
70
|
+
Object.assign(imageFrame, { splitVariantProps: (props) => splitVariantProps(props, imageFrameVariantMap) });
|
|
71
|
+
|
|
72
|
+
// @recipe(seed): image-frame
|
package/recipes/list-item.css
CHANGED
package/recipes/list-item.d.ts
CHANGED
|
@@ -23,7 +23,7 @@ declare type ListItemVariantMap = {
|
|
|
23
23
|
|
|
24
24
|
export declare type ListItemVariantProps = Partial<ListItemVariant>;
|
|
25
25
|
|
|
26
|
-
export declare type ListItemSlotName = "
|
|
26
|
+
export declare type ListItemSlotName = "root" | "highlightedOverlay" | "pressedOverlay" | "layout" | "content" | "title" | "detail" | "prefix" | "suffix" | "prefixIcon" | "suffixIcon";
|
|
27
27
|
|
|
28
28
|
export declare const listItemVariantMap: ListItemVariantMap;
|
|
29
29
|
|
package/recipes/list-item.mjs
CHANGED
|
@@ -3,6 +3,7 @@
|
|
|
3
3
|
flex-direction: row;
|
|
4
4
|
align-items: center;
|
|
5
5
|
justify-content: flex-start;
|
|
6
|
+
position: relative;
|
|
6
7
|
width: 100%;
|
|
7
8
|
min-height: 52px;
|
|
8
9
|
padding-top: var(--seed-dimension-x3_5);
|
|
@@ -48,7 +49,10 @@
|
|
|
48
49
|
height: 22px;
|
|
49
50
|
}
|
|
50
51
|
.seed-menu-sheet-item__divider {
|
|
51
|
-
|
|
52
|
+
position: absolute;
|
|
53
|
+
right: 0;
|
|
54
|
+
bottom: 0;
|
|
55
|
+
left: 0;
|
|
52
56
|
height: 1px;
|
|
53
57
|
background-color: var(--seed-color-stroke-neutral-muted);
|
|
54
58
|
}
|
package/recipes/menu-sheet.css
CHANGED
|
@@ -45,6 +45,7 @@
|
|
|
45
45
|
flex-direction: column;
|
|
46
46
|
align-items: center;
|
|
47
47
|
text-align: center;
|
|
48
|
+
flex-shrink: 0;
|
|
48
49
|
gap: var(--seed-dimension-x1);
|
|
49
50
|
padding-bottom: var(--seed-dimension-x4);
|
|
50
51
|
}
|
|
@@ -63,6 +64,9 @@
|
|
|
63
64
|
margin: 0;
|
|
64
65
|
}
|
|
65
66
|
.seed-menu-sheet__list {
|
|
67
|
+
flex-shrink: 1;
|
|
68
|
+
}
|
|
69
|
+
.seed-menu-sheet__listContent {
|
|
66
70
|
display: flex;
|
|
67
71
|
flex-direction: column;
|
|
68
72
|
align-items: stretch;
|
|
@@ -79,6 +83,7 @@
|
|
|
79
83
|
display: flex;
|
|
80
84
|
flex-direction: column;
|
|
81
85
|
align-items: stretch;
|
|
86
|
+
flex-shrink: 0;
|
|
82
87
|
padding-top: var(--seed-dimension-x2_5);
|
|
83
88
|
}
|
|
84
89
|
.seed-menu-sheet__closeButton {
|
package/recipes/menu-sheet.d.ts
CHANGED
|
@@ -15,7 +15,7 @@ declare type MenuSheetVariantMap = {
|
|
|
15
15
|
|
|
16
16
|
export declare type MenuSheetVariantProps = Partial<MenuSheetVariant>;
|
|
17
17
|
|
|
18
|
-
export declare type MenuSheetSlotName = "positioner" | "backdrop" | "content" | "contentInner" | "header" | "title" | "description" | "list" | "group" | "footer" | "closeButton" | "closeButtonLabel";
|
|
18
|
+
export declare type MenuSheetSlotName = "positioner" | "backdrop" | "content" | "contentInner" | "header" | "title" | "description" | "list" | "listContent" | "group" | "footer" | "closeButton" | "closeButtonLabel";
|
|
19
19
|
|
|
20
20
|
export declare const menuSheetVariantMap: MenuSheetVariantMap;
|
|
21
21
|
|