@seed-design/lynx-css 0.14.1 → 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 +936 -275
- package/all.min.css +1 -1
- package/base.css +10 -0
- package/base.min.css +1 -1
- package/package.json +2 -2
- 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/page-banner.css +4 -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/vars/component/alert-dialog.d.ts +2 -0
- package/vars/component/bottom-sheet.d.ts +3 -0
- package/vars/component/bottom-sheet.mjs +1 -0
- package/vars/component/dialog.d.ts +6 -2
- package/vars/component/help-bubble.d.ts +2 -1
- package/vars/component/menu-sheet.d.ts +5 -0
- package/vars/component/menu-sheet.mjs +1 -0
- package/vars/component/menu.d.ts +2 -1
- package/vars/component/page-banner-close-button.d.ts +4 -4
- package/vars/component/page-banner-close-button.mjs +4 -4
- package/vars/component/popover.d.ts +4 -4
- package/vars/component/select.d.ts +2 -1
- package/vars/component/side-panel.d.ts +10 -7
- package/vars/component/snackbar.d.ts +1 -0
- package/recipes/input-button.d.ts +0 -40
|
@@ -10,6 +10,13 @@
|
|
|
10
10
|
border-width: 1px;
|
|
11
11
|
border-color: var(--seed-color-stroke-neutral-weak)
|
|
12
12
|
}
|
|
13
|
+
.seed-select-trigger__scaleContent {
|
|
14
|
+
display: flex;
|
|
15
|
+
flex-direction: row;
|
|
16
|
+
align-items: center;
|
|
17
|
+
width: 100%;
|
|
18
|
+
min-width: 0
|
|
19
|
+
}
|
|
13
20
|
.seed-select-trigger__pressedOverlay {
|
|
14
21
|
position: absolute;
|
|
15
22
|
top: 0;
|
|
@@ -59,11 +66,13 @@
|
|
|
59
66
|
}
|
|
60
67
|
.seed-select-trigger__root--size_large {
|
|
61
68
|
height: var(--seed-dimension-x13);
|
|
62
|
-
gap: var(--seed-dimension-x2_5);
|
|
63
69
|
padding-left: var(--seed-dimension-x4);
|
|
64
70
|
padding-right: var(--seed-dimension-x4);
|
|
65
71
|
border-radius: var(--seed-radius-r3)
|
|
66
72
|
}
|
|
73
|
+
.seed-select-trigger__scaleContent--size_large {
|
|
74
|
+
gap: var(--seed-dimension-x2_5)
|
|
75
|
+
}
|
|
67
76
|
.seed-select-trigger__pressedOverlay--size_large {
|
|
68
77
|
border-radius: var(--seed-radius-r3)
|
|
69
78
|
}
|
|
@@ -85,11 +94,13 @@
|
|
|
85
94
|
}
|
|
86
95
|
.seed-select-trigger__root--size_medium {
|
|
87
96
|
height: var(--seed-dimension-x10);
|
|
88
|
-
gap: var(--seed-dimension-x2);
|
|
89
97
|
padding-left: var(--seed-dimension-x3_5);
|
|
90
98
|
padding-right: var(--seed-dimension-x3_5);
|
|
91
99
|
border-radius: var(--seed-radius-r2)
|
|
92
100
|
}
|
|
101
|
+
.seed-select-trigger__scaleContent--size_medium {
|
|
102
|
+
gap: var(--seed-dimension-x2)
|
|
103
|
+
}
|
|
93
104
|
.seed-select-trigger__pressedOverlay--size_medium {
|
|
94
105
|
border-radius: var(--seed-radius-r2)
|
|
95
106
|
}
|
|
@@ -31,7 +31,7 @@ declare type SelectTriggerVariantMap = {
|
|
|
31
31
|
|
|
32
32
|
export declare type SelectTriggerVariantProps = Partial<SelectTriggerVariant>;
|
|
33
33
|
|
|
34
|
-
export declare type SelectTriggerSlotName = "root" | "pressedOverlay" | "value" | "placeholder" | "prefixIcon" | "suffixIcon";
|
|
34
|
+
export declare type SelectTriggerSlotName = "root" | "scaleContent" | "pressedOverlay" | "value" | "placeholder" | "prefixIcon" | "suffixIcon";
|
|
35
35
|
|
|
36
36
|
export declare const selectTriggerVariantMap: SelectTriggerVariantMap;
|
|
37
37
|
|
package/recipes/select.css
CHANGED
|
@@ -1,17 +1,5 @@
|
|
|
1
1
|
.seed-select__positioner {
|
|
2
|
-
|
|
3
|
-
top: 0;
|
|
4
|
-
left: 0;
|
|
5
|
-
width: 100%;
|
|
6
|
-
height: 100%;
|
|
7
|
-
z-index: 0
|
|
8
|
-
}
|
|
9
|
-
.seed-select__backdrop {
|
|
10
|
-
position: absolute;
|
|
11
|
-
top: 0;
|
|
12
|
-
right: 0;
|
|
13
|
-
bottom: 0;
|
|
14
|
-
left: 0
|
|
2
|
+
z-index: 99
|
|
15
3
|
}
|
|
16
4
|
.seed-select__content {
|
|
17
5
|
position: absolute;
|
package/recipes/select.d.ts
CHANGED
|
@@ -19,7 +19,7 @@ declare type SelectVariantMap = {
|
|
|
19
19
|
|
|
20
20
|
export declare type SelectVariantProps = Partial<SelectVariant>;
|
|
21
21
|
|
|
22
|
-
export declare type SelectSlotName = "positioner" | "
|
|
22
|
+
export declare type SelectSlotName = "positioner" | "content" | "scrollArea" | "scrollContent" | "group" | "groupLabel" | "separator";
|
|
23
23
|
|
|
24
24
|
export declare const selectVariantMap: SelectVariantMap;
|
|
25
25
|
|
package/recipes/select.mjs
CHANGED
|
@@ -3,8 +3,8 @@
|
|
|
3
3
|
top: 0;
|
|
4
4
|
bottom: 0;
|
|
5
5
|
width: max-content;
|
|
6
|
-
left: calc(var(--slider-marker-left, 0%) + var(--slider-marker-offset,
|
|
7
|
-
color: var(--
|
|
6
|
+
left: calc(var(--slider-marker-left, 0%) + var(--seed-dimension-x5) * var(--slider-marker-offset-ratio, 0));
|
|
7
|
+
color: var(--seed-color-fg-neutral-muted);
|
|
8
8
|
font-weight: var(--seed-font-weight-regular);
|
|
9
9
|
font-size: var(--seed-font-size-t3);
|
|
10
10
|
line-height: var(--seed-line-height-t3)
|
package/recipes/slider-tick.css
CHANGED
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
position: absolute;
|
|
3
3
|
top: 50%;
|
|
4
4
|
height: 100%;
|
|
5
|
-
left: calc(var(--slider-tick-left, 0%) + var(--slider-tick-offset,
|
|
5
|
+
left: calc(var(--slider-tick-left, 0%) + var(--seed-dimension-x5) * var(--slider-tick-offset-ratio, 0));
|
|
6
6
|
background-color: var(--seed-color-fg-on-neutral-solid);
|
|
7
7
|
transform: translate(-50%, -50%)
|
|
8
8
|
}
|
package/recipes/slider.css
CHANGED
|
@@ -32,7 +32,7 @@
|
|
|
32
32
|
.seed-slider__thumb {
|
|
33
33
|
position: absolute;
|
|
34
34
|
top: 50%;
|
|
35
|
-
left: calc(var(--slider-thumb-left, 0%) + var(--slider-thumb-offset,
|
|
35
|
+
left: calc(var(--slider-thumb-left, 0%) + var(--seed-dimension-x5) * var(--slider-thumb-offset-ratio, 0));
|
|
36
36
|
width: var(--seed-dimension-x5);
|
|
37
37
|
height: var(--seed-dimension-x5);
|
|
38
38
|
background-color: var(--seed-color-bg-neutral-solid);
|
|
@@ -51,6 +51,7 @@
|
|
|
51
51
|
top: 50%;
|
|
52
52
|
left: calc(var(--slider-value-indicator-left, 0%) + var(--slider-value-indicator-offset, 0px));
|
|
53
53
|
width: max-content;
|
|
54
|
+
height: max-content;
|
|
54
55
|
padding-top: 8px;
|
|
55
56
|
padding-right: 8px;
|
|
56
57
|
padding-bottom: 8px;
|
|
@@ -99,7 +100,6 @@
|
|
|
99
100
|
line-height: var(--seed-line-height-t3);
|
|
100
101
|
font-weight: var(--seed-font-weight-medium);
|
|
101
102
|
flex-shrink: 0;
|
|
102
|
-
white-space: nowrap;
|
|
103
103
|
text-align: center
|
|
104
104
|
}
|
|
105
105
|
.seed-slider__track--disabled_true {
|
|
@@ -111,9 +111,6 @@
|
|
|
111
111
|
.seed-slider__thumb--disabled_true {
|
|
112
112
|
background-color: var(--seed-color-fg-disabled)
|
|
113
113
|
}
|
|
114
|
-
.seed-slider__markers--disabled_true {
|
|
115
|
-
--slider-marker-color: var(--seed-color-fg-disabled)
|
|
116
|
-
}
|
|
117
114
|
.seed-slider__range--dragging_true {
|
|
118
115
|
transition: none
|
|
119
116
|
}
|
package/recipes/tabs.css
CHANGED
|
@@ -3,10 +3,7 @@
|
|
|
3
3
|
}
|
|
4
4
|
.seed-tabs__list {
|
|
5
5
|
position: relative;
|
|
6
|
-
background-color: var(--seed-color-bg-layer-default)
|
|
7
|
-
border-bottom-width: 1px;
|
|
8
|
-
border-bottom-style: solid;
|
|
9
|
-
border-bottom-color: var(--seed-color-stroke-neutral-muted)
|
|
6
|
+
background-color: var(--seed-color-bg-layer-default)
|
|
10
7
|
}
|
|
11
8
|
.seed-tabs__listContent {
|
|
12
9
|
display: flex;
|
|
@@ -15,7 +12,9 @@
|
|
|
15
12
|
flex-wrap: nowrap;
|
|
16
13
|
align-items: stretch;
|
|
17
14
|
width: max-content;
|
|
18
|
-
min-width: 100
|
|
15
|
+
min-width: 100%;
|
|
16
|
+
padding-bottom: 1px;
|
|
17
|
+
box-shadow: inset 0 -1px 0 0 var(--seed-color-stroke-neutral-muted)
|
|
19
18
|
}
|
|
20
19
|
.seed-tabs__carousel {
|
|
21
20
|
display: flex;
|
|
@@ -34,9 +33,9 @@
|
|
|
34
33
|
left: 0px;
|
|
35
34
|
bottom: 0px;
|
|
36
35
|
height: 2px;
|
|
37
|
-
width: var(--tabs-indicator-width, 0px);
|
|
38
36
|
background-color: var(--seed-color-fg-neutral);
|
|
39
|
-
|
|
37
|
+
box-sizing: border-box;
|
|
38
|
+
background-clip: content-box;
|
|
40
39
|
transition-property: transform, width;
|
|
41
40
|
transition-duration: var(--seed-duration-d4);
|
|
42
41
|
transition-timing-function: var(--seed-timing-function-easing)
|
|
@@ -62,8 +61,8 @@
|
|
|
62
61
|
padding-right: 0px
|
|
63
62
|
}
|
|
64
63
|
.seed-tabs__indicator--triggerLayout_fill {
|
|
65
|
-
|
|
66
|
-
|
|
64
|
+
padding-left: var(--seed-dimension-spacing-x-global-gutter);
|
|
65
|
+
padding-right: var(--seed-dimension-spacing-x-global-gutter)
|
|
67
66
|
}
|
|
68
67
|
.seed-tabs__trigger--triggerLayout_fill {
|
|
69
68
|
flex: 1
|
|
@@ -73,8 +72,9 @@
|
|
|
73
72
|
padding-right: var(--seed-dimension-spacing-x-global-gutter)
|
|
74
73
|
}
|
|
75
74
|
.seed-tabs__indicator--triggerLayout_hug {
|
|
76
|
-
|
|
77
|
-
|
|
75
|
+
left: var(--seed-dimension-spacing-x-global-gutter);
|
|
76
|
+
padding-left: 0px;
|
|
77
|
+
padding-right: 0px
|
|
78
78
|
}
|
|
79
79
|
.seed-tabs__root--contentLayout_fill {
|
|
80
80
|
display: flex;
|
|
@@ -0,0 +1,151 @@
|
|
|
1
|
+
.seed-wheel-picker__root {
|
|
2
|
+
position: relative;
|
|
3
|
+
width: 100%;
|
|
4
|
+
z-index: 0;
|
|
5
|
+
overflow: hidden;
|
|
6
|
+
background-color: var(--seed-color-bg-layer-floating);
|
|
7
|
+
}
|
|
8
|
+
.seed-wheel-picker__scrollFog {
|
|
9
|
+
position: relative;
|
|
10
|
+
z-index: 1;
|
|
11
|
+
height: 100%;
|
|
12
|
+
overflow: hidden;
|
|
13
|
+
}
|
|
14
|
+
.seed-wheel-picker__columns {
|
|
15
|
+
display: flex;
|
|
16
|
+
flex-direction: row;
|
|
17
|
+
width: 100%;
|
|
18
|
+
height: 100%;
|
|
19
|
+
justify-content: center;
|
|
20
|
+
}
|
|
21
|
+
.seed-wheel-picker__column {
|
|
22
|
+
position: relative;
|
|
23
|
+
flex-shrink: 0;
|
|
24
|
+
width: max-content;
|
|
25
|
+
height: 100%;
|
|
26
|
+
}
|
|
27
|
+
.seed-wheel-picker__track {
|
|
28
|
+
color: var(--seed-color-fg-disabled);
|
|
29
|
+
}
|
|
30
|
+
.seed-wheel-picker__sizingContent {
|
|
31
|
+
display: flex;
|
|
32
|
+
flex-direction: column;
|
|
33
|
+
align-items: center;
|
|
34
|
+
width: max-content;
|
|
35
|
+
height: 0;
|
|
36
|
+
overflow: hidden;
|
|
37
|
+
opacity: 0;
|
|
38
|
+
pointer-events: none;
|
|
39
|
+
}
|
|
40
|
+
.seed-wheel-picker__item {
|
|
41
|
+
display: flex;
|
|
42
|
+
flex-direction: row;
|
|
43
|
+
height: 100%;
|
|
44
|
+
align-items: center;
|
|
45
|
+
justify-content: center;
|
|
46
|
+
color: var(--seed-color-fg-disabled);
|
|
47
|
+
}
|
|
48
|
+
.seed-wheel-picker__item text {
|
|
49
|
+
color: var(--seed-color-fg-disabled);
|
|
50
|
+
}
|
|
51
|
+
.seed-wheel-picker__itemLabel {
|
|
52
|
+
display: flex;
|
|
53
|
+
flex-direction: row;
|
|
54
|
+
flex-shrink: 0;
|
|
55
|
+
width: max-content;
|
|
56
|
+
height: 100%;
|
|
57
|
+
align-items: center;
|
|
58
|
+
justify-content: center;
|
|
59
|
+
padding-left: var(--seed-dimension-x4);
|
|
60
|
+
padding-right: var(--seed-dimension-x4);
|
|
61
|
+
font-weight: var(--seed-font-weight-medium);
|
|
62
|
+
color: var(--seed-color-fg-disabled);
|
|
63
|
+
}
|
|
64
|
+
.seed-wheel-picker__itemText {
|
|
65
|
+
font-weight: var(--seed-font-weight-medium);
|
|
66
|
+
color: var(--seed-color-fg-disabled);
|
|
67
|
+
}
|
|
68
|
+
.seed-wheel-picker__selectionIndicator {
|
|
69
|
+
position: absolute;
|
|
70
|
+
z-index: 0;
|
|
71
|
+
left: var(--seed-dimension-x4);
|
|
72
|
+
right: var(--seed-dimension-x4);
|
|
73
|
+
top: 50%;
|
|
74
|
+
transform: translateY(-50%);
|
|
75
|
+
border-radius: var(--seed-radius-r2);
|
|
76
|
+
background-color: var(--seed-color-bg-neutral-weak);
|
|
77
|
+
pointer-events: none;
|
|
78
|
+
}
|
|
79
|
+
.seed-wheel-picker__root--size_small {
|
|
80
|
+
height: var(--seed-wheel-picker-viewport-size, 180px);
|
|
81
|
+
}
|
|
82
|
+
.seed-wheel-picker__selectionIndicator--size_small {
|
|
83
|
+
height: var(--seed-wheel-picker-item-size, 36px);
|
|
84
|
+
}
|
|
85
|
+
.seed-wheel-picker__itemLabel--size_small {
|
|
86
|
+
font-size: var(--seed-font-size-t7-static);
|
|
87
|
+
line-height: var(--seed-line-height-t7-static);
|
|
88
|
+
}
|
|
89
|
+
.seed-wheel-picker__itemText--size_small {
|
|
90
|
+
font-size: var(--seed-font-size-t7-static);
|
|
91
|
+
line-height: var(--seed-line-height-t7-static);
|
|
92
|
+
}
|
|
93
|
+
.seed-wheel-picker__root--size_medium {
|
|
94
|
+
height: var(--seed-wheel-picker-viewport-size, 220px);
|
|
95
|
+
}
|
|
96
|
+
.seed-wheel-picker__selectionIndicator--size_medium {
|
|
97
|
+
height: var(--seed-wheel-picker-item-size, 44px);
|
|
98
|
+
}
|
|
99
|
+
.seed-wheel-picker__itemLabel--size_medium {
|
|
100
|
+
font-size: var(--seed-font-size-t10-static);
|
|
101
|
+
line-height: var(--seed-line-height-t10-static);
|
|
102
|
+
}
|
|
103
|
+
.seed-wheel-picker__itemText--size_medium {
|
|
104
|
+
font-size: var(--seed-font-size-t10-static);
|
|
105
|
+
line-height: var(--seed-line-height-t10-static);
|
|
106
|
+
}
|
|
107
|
+
.seed-wheel-picker__track--selected_true {
|
|
108
|
+
color: var(--seed-color-fg-neutral);
|
|
109
|
+
}
|
|
110
|
+
.seed-wheel-picker__item--selected_true {
|
|
111
|
+
color: var(--seed-color-fg-neutral);
|
|
112
|
+
}
|
|
113
|
+
.seed-wheel-picker__item--selected_true text {
|
|
114
|
+
color: var(--seed-color-fg-neutral);
|
|
115
|
+
}
|
|
116
|
+
.seed-wheel-picker__itemLabel--selected_true {
|
|
117
|
+
color: var(--seed-color-fg-neutral);
|
|
118
|
+
}
|
|
119
|
+
.seed-wheel-picker__itemText--selected_true {
|
|
120
|
+
color: var(--seed-color-fg-neutral);
|
|
121
|
+
}
|
|
122
|
+
.seed-wheel-picker__track--disabled_true {
|
|
123
|
+
color: var(--seed-color-fg-disabled);
|
|
124
|
+
}
|
|
125
|
+
.seed-wheel-picker__item--disabled_true {
|
|
126
|
+
color: var(--seed-color-fg-disabled);
|
|
127
|
+
}
|
|
128
|
+
.seed-wheel-picker__item--disabled_true text {
|
|
129
|
+
color: var(--seed-color-fg-disabled);
|
|
130
|
+
}
|
|
131
|
+
.seed-wheel-picker__itemLabel--disabled_true {
|
|
132
|
+
color: var(--seed-color-fg-disabled);
|
|
133
|
+
}
|
|
134
|
+
.seed-wheel-picker__itemText--disabled_true {
|
|
135
|
+
color: var(--seed-color-fg-disabled);
|
|
136
|
+
}
|
|
137
|
+
.seed-wheel-picker__track--selected_true-disabled_true {
|
|
138
|
+
color: var(--seed-color-fg-disabled);
|
|
139
|
+
}
|
|
140
|
+
.seed-wheel-picker__item--selected_true-disabled_true {
|
|
141
|
+
color: var(--seed-color-fg-disabled);
|
|
142
|
+
}
|
|
143
|
+
.seed-wheel-picker__item--selected_true-disabled_true text {
|
|
144
|
+
color: var(--seed-color-fg-disabled);
|
|
145
|
+
}
|
|
146
|
+
.seed-wheel-picker__itemLabel--selected_true-disabled_true {
|
|
147
|
+
color: var(--seed-color-fg-disabled);
|
|
148
|
+
}
|
|
149
|
+
.seed-wheel-picker__itemText--selected_true-disabled_true {
|
|
150
|
+
color: var(--seed-color-fg-disabled);
|
|
151
|
+
}
|
|
@@ -0,0 +1,32 @@
|
|
|
1
|
+
declare interface WheelPickerVariant {
|
|
2
|
+
/**
|
|
3
|
+
* @default "medium"
|
|
4
|
+
*/
|
|
5
|
+
size: "small" | "medium";
|
|
6
|
+
/**
|
|
7
|
+
* @default false
|
|
8
|
+
*/
|
|
9
|
+
selected: boolean;
|
|
10
|
+
/**
|
|
11
|
+
* @default false
|
|
12
|
+
*/
|
|
13
|
+
disabled: boolean;
|
|
14
|
+
}
|
|
15
|
+
|
|
16
|
+
declare type WheelPickerVariantMap = {
|
|
17
|
+
[key in keyof WheelPickerVariant]: Array<WheelPickerVariant[key]>;
|
|
18
|
+
};
|
|
19
|
+
|
|
20
|
+
export declare type WheelPickerVariantProps = Partial<WheelPickerVariant>;
|
|
21
|
+
|
|
22
|
+
export declare type WheelPickerSlotName = "root" | "scrollFog" | "columns" | "column" | "track" | "sizingContent" | "item" | "itemLabel" | "itemText" | "selectionIndicator";
|
|
23
|
+
|
|
24
|
+
export declare const wheelPickerVariantMap: WheelPickerVariantMap;
|
|
25
|
+
|
|
26
|
+
export declare const wheelPicker: ((
|
|
27
|
+
props?: WheelPickerVariantProps,
|
|
28
|
+
) => Record<WheelPickerSlotName, string>) & {
|
|
29
|
+
splitVariantProps: <T extends WheelPickerVariantProps>(
|
|
30
|
+
props: T,
|
|
31
|
+
) => [WheelPickerVariantProps, Omit<T, keyof WheelPickerVariantProps>];
|
|
32
|
+
}
|
|
@@ -0,0 +1,90 @@
|
|
|
1
|
+
import './wheel-picker.css';
|
|
2
|
+
import { createClassName, mergeVariants, splitVariantProps } from "./shared.mjs";
|
|
3
|
+
|
|
4
|
+
const wheelPickerSlotNames = [
|
|
5
|
+
[
|
|
6
|
+
"root",
|
|
7
|
+
"seed-wheel-picker__root"
|
|
8
|
+
],
|
|
9
|
+
[
|
|
10
|
+
"scrollFog",
|
|
11
|
+
"seed-wheel-picker__scrollFog"
|
|
12
|
+
],
|
|
13
|
+
[
|
|
14
|
+
"columns",
|
|
15
|
+
"seed-wheel-picker__columns"
|
|
16
|
+
],
|
|
17
|
+
[
|
|
18
|
+
"column",
|
|
19
|
+
"seed-wheel-picker__column"
|
|
20
|
+
],
|
|
21
|
+
[
|
|
22
|
+
"track",
|
|
23
|
+
"seed-wheel-picker__track"
|
|
24
|
+
],
|
|
25
|
+
[
|
|
26
|
+
"sizingContent",
|
|
27
|
+
"seed-wheel-picker__sizingContent"
|
|
28
|
+
],
|
|
29
|
+
[
|
|
30
|
+
"item",
|
|
31
|
+
"seed-wheel-picker__item"
|
|
32
|
+
],
|
|
33
|
+
[
|
|
34
|
+
"itemLabel",
|
|
35
|
+
"seed-wheel-picker__itemLabel"
|
|
36
|
+
],
|
|
37
|
+
[
|
|
38
|
+
"itemText",
|
|
39
|
+
"seed-wheel-picker__itemText"
|
|
40
|
+
],
|
|
41
|
+
[
|
|
42
|
+
"selectionIndicator",
|
|
43
|
+
"seed-wheel-picker__selectionIndicator"
|
|
44
|
+
]
|
|
45
|
+
];
|
|
46
|
+
|
|
47
|
+
const defaultVariant = {
|
|
48
|
+
"size": "medium",
|
|
49
|
+
"selected": false,
|
|
50
|
+
"disabled": false
|
|
51
|
+
};
|
|
52
|
+
|
|
53
|
+
const compoundVariants = [
|
|
54
|
+
{
|
|
55
|
+
"selected": true,
|
|
56
|
+
"disabled": true
|
|
57
|
+
}
|
|
58
|
+
];
|
|
59
|
+
|
|
60
|
+
export const wheelPickerVariantMap = {
|
|
61
|
+
"size": [
|
|
62
|
+
"small",
|
|
63
|
+
"medium"
|
|
64
|
+
],
|
|
65
|
+
"selected": [
|
|
66
|
+
true,
|
|
67
|
+
false
|
|
68
|
+
],
|
|
69
|
+
"disabled": [
|
|
70
|
+
true,
|
|
71
|
+
false
|
|
72
|
+
]
|
|
73
|
+
};
|
|
74
|
+
|
|
75
|
+
export const wheelPickerVariantKeys = Object.keys(wheelPickerVariantMap);
|
|
76
|
+
|
|
77
|
+
export function wheelPicker(props) {
|
|
78
|
+
return Object.fromEntries(
|
|
79
|
+
wheelPickerSlotNames.map(([slot, className]) => {
|
|
80
|
+
return [
|
|
81
|
+
slot,
|
|
82
|
+
createClassName(className, mergeVariants(defaultVariant, props), compoundVariants),
|
|
83
|
+
];
|
|
84
|
+
}),
|
|
85
|
+
);
|
|
86
|
+
}
|
|
87
|
+
|
|
88
|
+
Object.assign(wheelPicker, { splitVariantProps: (props) => splitVariantProps(props, wheelPickerVariantMap) });
|
|
89
|
+
|
|
90
|
+
// @recipe(seed): wheel-picker
|
|
@@ -10,9 +10,11 @@ export declare const vars: {
|
|
|
10
10
|
"exitTimingFunction": "var(--seed-timing-function-exit)",
|
|
11
11
|
"exitOpacity": "0"
|
|
12
12
|
},
|
|
13
|
+
/** content는 가로 기준으로 안전 영역의 가운데에 놓입니다. 세로 기준으로는 상단과 하단 inset 중 큰 값을 위아래에 똑같이 두어 화면 가운데에 놓이고, 높이는 그 사이 높이를 넘지 않습니다. */
|
|
13
14
|
"content": {
|
|
14
15
|
"color": "var(--seed-color-bg-layer-floating)",
|
|
15
16
|
"cornerRadius": "var(--seed-radius-r5)",
|
|
17
|
+
/** content와 좌우 안전 영역 경계 사이의 최소 간격입니다. 화면 끝이 아니라 안전 영역 경계부터 잽니다. */
|
|
16
18
|
"marginX": "var(--seed-dimension-x8)",
|
|
17
19
|
"marginY": "var(--seed-dimension-x16)",
|
|
18
20
|
"maxWidth": "272px",
|
|
@@ -10,9 +10,12 @@ export declare const vars: {
|
|
|
10
10
|
"exitTimingFunction": "var(--seed-timing-function-exit)",
|
|
11
11
|
"exitOpacity": "0"
|
|
12
12
|
},
|
|
13
|
+
/** content는 가로 기준으로 안전 영역의 가운데에 놓이고, 하단 inset을 content의 하단 패딩으로 적용합니다. */
|
|
13
14
|
"content": {
|
|
14
15
|
"color": "var(--seed-color-bg-layer-floating)",
|
|
15
16
|
"maxWidth": "480px",
|
|
17
|
+
/** inset을 빼지 않은 viewport height 또는 parent height에 대한 최대 비율입니다. 최대 높이는 min(maxHeightFraction × 높이, 상단 inset을 뺀 높이)이므로, content는 상단 안전 영역 경계까지만 커집니다. */
|
|
18
|
+
"maxHeightFraction": "0.9",
|
|
16
19
|
"topCornerRadius": "var(--seed-radius-r6)",
|
|
17
20
|
"enterDuration": "var(--seed-duration-d6)",
|
|
18
21
|
"enterTimingFunction": "var(--seed-timing-function-enter-expressive)",
|
|
@@ -13,6 +13,7 @@ export const vars = {
|
|
|
13
13
|
"content": {
|
|
14
14
|
"color": "var(--seed-color-bg-layer-floating)",
|
|
15
15
|
"maxWidth": "480px",
|
|
16
|
+
"maxHeightFraction": "0.9",
|
|
16
17
|
"topCornerRadius": "var(--seed-radius-r6)",
|
|
17
18
|
"enterDuration": "var(--seed-duration-d6)",
|
|
18
19
|
"enterTimingFunction": "var(--seed-timing-function-enter-expressive)",
|
|
@@ -10,13 +10,15 @@ export declare const vars: {
|
|
|
10
10
|
"exitTimingFunction": "var(--seed-timing-function-exit)",
|
|
11
11
|
"exitOpacity": "0"
|
|
12
12
|
},
|
|
13
|
+
/** content는 가로 기준으로 안전 영역의 가운데에 놓이고, 소비자가 지정한 너비는 안전 영역의 너비를 기준으로 합니다. 세로 기준으로는 상단과 하단 inset 중 큰 값을 위아래에 똑같이 두어 화면 가운데에 놓입니다. */
|
|
13
14
|
"content": {
|
|
14
15
|
"color": "var(--seed-color-bg-layer-floating)",
|
|
15
16
|
"cornerRadius": "var(--seed-radius-r5)",
|
|
16
|
-
/** viewport width 또는 parent width에 대한 비율입니다. viewport `md` 미만에서 적용합니다. */
|
|
17
|
+
/** 좌우 inset을 뺀 viewport width 또는 parent width에 대한 비율입니다. viewport `md` 미만에서 적용합니다. */
|
|
17
18
|
"widthFraction": "0.9",
|
|
18
|
-
/** viewport height 또는 parent height에 대한 최대 비율입니다. */
|
|
19
|
+
/** viewport height 또는 parent height에 대한 최대 비율입니다. 최대 높이는 min(maxHeightFraction × 높이, 상단과 하단 inset 중 큰 값을 위아래에서 각각 뺀 높이)입니다. */
|
|
19
20
|
"maxHeightFraction": "0.8",
|
|
21
|
+
/** viewport `md` 이상에서 content와 좌우 안전 영역 경계 사이에 두는 최소 간격입니다. */
|
|
20
22
|
"marginX": "var(--seed-dimension-x5)",
|
|
21
23
|
"enterDuration": "var(--seed-duration-d4)",
|
|
22
24
|
"enterTimingFunction": "var(--seed-timing-function-enter-expressive)",
|
|
@@ -76,6 +78,7 @@ export declare const vars: {
|
|
|
76
78
|
},
|
|
77
79
|
"sizeMedium": {
|
|
78
80
|
"enabled": {
|
|
81
|
+
/** content는 가로 기준으로 안전 영역의 가운데에 놓이고, 소비자가 지정한 너비는 안전 영역의 너비를 기준으로 합니다. 세로 기준으로는 상단과 하단 inset 중 큰 값을 위아래에 똑같이 두어 화면 가운데에 놓입니다. */
|
|
79
82
|
"content": {
|
|
80
83
|
"maxWidth": "480px"
|
|
81
84
|
}
|
|
@@ -83,6 +86,7 @@ export declare const vars: {
|
|
|
83
86
|
},
|
|
84
87
|
"sizeLarge": {
|
|
85
88
|
"enabled": {
|
|
89
|
+
/** content는 가로 기준으로 안전 영역의 가운데에 놓이고, 소비자가 지정한 너비는 안전 영역의 너비를 기준으로 합니다. 세로 기준으로는 상단과 하단 inset 중 큰 값을 위아래에 똑같이 두어 화면 가운데에 놓입니다. */
|
|
86
90
|
"content": {
|
|
87
91
|
"maxWidth": "800px"
|
|
88
92
|
}
|
|
@@ -7,6 +7,7 @@ export declare const vars: {
|
|
|
7
7
|
"paddingX": "var(--seed-dimension-x3)",
|
|
8
8
|
"paddingY": "var(--seed-dimension-x2_5)",
|
|
9
9
|
"gap": "var(--seed-dimension-x1)",
|
|
10
|
+
/** 가용 너비(overflowPadding 참고)가 이보다 작으면 가용 너비로 축소됩니다. */
|
|
10
11
|
"maxWidth": "280px",
|
|
11
12
|
"enterScale": "0.9",
|
|
12
13
|
"enterOpacity": "0",
|
|
@@ -16,7 +17,7 @@ export declare const vars: {
|
|
|
16
17
|
"exitOpacity": "0",
|
|
17
18
|
"exitDuration": "var(--seed-duration-d4)",
|
|
18
19
|
"exitTimingFunction": "var(--seed-timing-function-easing)",
|
|
19
|
-
/** 말풍선과
|
|
20
|
+
/** 말풍선과 안전 영역 경계 사이의 최소 간격을 정의합니다. 말풍선은 화면 끝에서 inset + overflowPadding만큼 안쪽에 배치되며, 가용 너비도 같은 기준으로 계산합니다. */
|
|
20
21
|
"overflowPadding": "var(--seed-dimension-x4)"
|
|
21
22
|
},
|
|
22
23
|
"arrow": {
|
|
@@ -10,11 +10,15 @@ export declare const vars: {
|
|
|
10
10
|
"exitTimingFunction": "var(--seed-timing-function-exit)",
|
|
11
11
|
"exitOpacity": "0"
|
|
12
12
|
},
|
|
13
|
+
/** content는 가로 기준으로 안전 영역의 가운데에 놓입니다. */
|
|
13
14
|
"content": {
|
|
14
15
|
"color": "var(--seed-color-bg-layer-floating)",
|
|
15
16
|
"maxWidth": "480px",
|
|
17
|
+
/** inset을 빼지 않은 viewport height 또는 parent height에 대한 최대 비율입니다. 최대 높이는 min(maxHeightFraction × 높이, 상단 inset을 뺀 높이)이므로, content는 상단 안전 영역 경계까지만 커집니다. */
|
|
18
|
+
"maxHeightFraction": "0.9",
|
|
16
19
|
"paddingX": "var(--seed-dimension-spacing-x-global-gutter)",
|
|
17
20
|
"paddingTop": "var(--seed-dimension-x6)",
|
|
21
|
+
/** 이 값은 하단 inset과 합산하여 적용합니다. */
|
|
18
22
|
"paddingBottom": "var(--seed-dimension-x4)",
|
|
19
23
|
"topCornerRadius": "var(--seed-radius-r5)",
|
|
20
24
|
"enterDuration": "var(--seed-duration-d6)",
|
|
@@ -24,6 +28,7 @@ export declare const vars: {
|
|
|
24
28
|
},
|
|
25
29
|
"header": {
|
|
26
30
|
"gap": "var(--seed-dimension-x1)",
|
|
31
|
+
/** 이 값은 하단 inset과 합산하여 적용합니다. */
|
|
27
32
|
"paddingBottom": "var(--seed-dimension-x4)"
|
|
28
33
|
},
|
|
29
34
|
"title": {
|
|
@@ -13,6 +13,7 @@ export const vars = {
|
|
|
13
13
|
"content": {
|
|
14
14
|
"color": "var(--seed-color-bg-layer-floating)",
|
|
15
15
|
"maxWidth": "480px",
|
|
16
|
+
"maxHeightFraction": "0.9",
|
|
16
17
|
"paddingX": "var(--seed-dimension-spacing-x-global-gutter)",
|
|
17
18
|
"paddingTop": "var(--seed-dimension-x6)",
|
|
18
19
|
"paddingBottom": "var(--seed-dimension-x4)",
|
package/vars/component/menu.d.ts
CHANGED
|
@@ -17,8 +17,9 @@ export declare const vars: {
|
|
|
17
17
|
"gap": "var(--seed-dimension-x2)",
|
|
18
18
|
/** 트리거와 메뉴 사이의 간격을 정의합니다. */
|
|
19
19
|
"gutter": "var(--seed-dimension-x2)",
|
|
20
|
-
/** 메뉴와
|
|
20
|
+
/** 메뉴와 안전 영역 경계 사이의 최소 간격을 정의합니다. 메뉴는 화면 끝에서 inset + overflowPadding만큼 안쪽에 배치되며, 가용 높이도 같은 기준으로 계산합니다. */
|
|
21
21
|
"overflowPadding": "var(--seed-dimension-x2)",
|
|
22
|
+
/** 가용 높이(overflowPadding 참고)가 이보다 작으면 가용 높이로 축소됩니다. */
|
|
22
23
|
"maxHeight": "480px"
|
|
23
24
|
},
|
|
24
25
|
"groupLabel": {
|
|
@@ -55,7 +55,7 @@ export declare const vars: {
|
|
|
55
55
|
"tonePositiveVariantSolid": {
|
|
56
56
|
"enabled": {
|
|
57
57
|
"icon": {
|
|
58
|
-
"color": "var(--seed-color-
|
|
58
|
+
"color": "var(--seed-color-fg-on-positive-solid)"
|
|
59
59
|
}
|
|
60
60
|
}
|
|
61
61
|
},
|
|
@@ -75,7 +75,7 @@ export declare const vars: {
|
|
|
75
75
|
"toneInformativeVariantSolid": {
|
|
76
76
|
"enabled": {
|
|
77
77
|
"icon": {
|
|
78
|
-
"color": "var(--seed-color-
|
|
78
|
+
"color": "var(--seed-color-fg-on-informative-solid)"
|
|
79
79
|
}
|
|
80
80
|
}
|
|
81
81
|
},
|
|
@@ -95,7 +95,7 @@ export declare const vars: {
|
|
|
95
95
|
"toneWarningVariantSolid": {
|
|
96
96
|
"enabled": {
|
|
97
97
|
"icon": {
|
|
98
|
-
"color": "var(--seed-color-
|
|
98
|
+
"color": "var(--seed-color-fg-on-warning-solid)"
|
|
99
99
|
}
|
|
100
100
|
}
|
|
101
101
|
},
|
|
@@ -115,7 +115,7 @@ export declare const vars: {
|
|
|
115
115
|
"toneCriticalVariantSolid": {
|
|
116
116
|
"enabled": {
|
|
117
117
|
"icon": {
|
|
118
|
-
"color": "var(--seed-color-
|
|
118
|
+
"color": "var(--seed-color-fg-on-critical-solid)"
|
|
119
119
|
}
|
|
120
120
|
}
|
|
121
121
|
},
|