@seed-design/rootage-artifacts 2.2.1 → 2.3.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.
@@ -0,0 +1,298 @@
1
+ {
2
+ "kind": "ComponentSpec",
3
+ "metadata": {
4
+ "id": "select",
5
+ "name": "Select"
6
+ },
7
+ "data": {
8
+ "id": "select",
9
+ "name": "Select",
10
+ "schema": {
11
+ "slots": {
12
+ "root": {
13
+ "properties": {
14
+ "cornerRadius": {
15
+ "type": "dimension"
16
+ },
17
+ "color": {
18
+ "type": "color"
19
+ },
20
+ "shadow": {
21
+ "type": "shadow"
22
+ },
23
+ "paddingY": {
24
+ "type": "dimension"
25
+ },
26
+ "gap": {
27
+ "type": "dimension"
28
+ },
29
+ "enterDuration": {
30
+ "type": "duration"
31
+ },
32
+ "enterTimingFunction": {
33
+ "type": "cubicBezier"
34
+ },
35
+ "enterScale": {
36
+ "type": "number"
37
+ },
38
+ "enterOpacity": {
39
+ "type": "number"
40
+ },
41
+ "exitDuration": {
42
+ "type": "duration"
43
+ },
44
+ "exitTimingFunction": {
45
+ "type": "cubicBezier"
46
+ },
47
+ "exitScale": {
48
+ "type": "number"
49
+ },
50
+ "exitOpacity": {
51
+ "type": "number"
52
+ },
53
+ "gutter": {
54
+ "type": "dimension",
55
+ "description": "트리거와 목록 사이의 간격을 정의합니다."
56
+ },
57
+ "overflowPadding": {
58
+ "type": "dimension",
59
+ "description": "목록과 뷰포트 경계 사이의 최소 간격을 정의합니다."
60
+ },
61
+ "maxHeight": {
62
+ "type": "dimension"
63
+ }
64
+ }
65
+ },
66
+ "group": {
67
+ "properties": {}
68
+ },
69
+ "groupLabel": {
70
+ "properties": {
71
+ "color": {
72
+ "type": "color"
73
+ },
74
+ "paddingX": {
75
+ "type": "dimension"
76
+ },
77
+ "paddingY": {
78
+ "type": "dimension"
79
+ },
80
+ "fontSize": {
81
+ "type": "dimension"
82
+ },
83
+ "lineHeight": {
84
+ "type": "dimension"
85
+ },
86
+ "fontWeight": {
87
+ "type": "number"
88
+ }
89
+ }
90
+ },
91
+ "divider": {
92
+ "properties": {
93
+ "marginX": {
94
+ "type": "dimension"
95
+ },
96
+ "height": {
97
+ "type": "dimension"
98
+ },
99
+ "color": {
100
+ "type": "color"
101
+ }
102
+ }
103
+ }
104
+ },
105
+ "variants": {
106
+ "size": {
107
+ "values": {
108
+ "large": {
109
+ "description": "뷰포트 너비와 관계없이 사용할 수 있습니다."
110
+ },
111
+ "medium": {
112
+ "description": "Breakpoint `lg` 이상(데스크톱)에서만 사용하고, 모바일에서는 사용하지 않습니다. 정밀한 선택이 가능한 마우스 입력 환경에서 사이즈를 더 작게 만들고자 할 때 사용합니다."
113
+ }
114
+ },
115
+ "defaultValue": "large"
116
+ }
117
+ }
118
+ },
119
+ "definitions": [
120
+ {
121
+ "variants": {},
122
+ "definitions": [
123
+ {
124
+ "states": [
125
+ "enabled"
126
+ ],
127
+ "slots": {
128
+ "root": {
129
+ "cornerRadius": {
130
+ "type": "dimension",
131
+ "value": "$radius.r5"
132
+ },
133
+ "color": {
134
+ "type": "color",
135
+ "value": "$color.bg.layer-floating"
136
+ },
137
+ "shadow": {
138
+ "type": "shadow",
139
+ "value": "$shadow.s3"
140
+ },
141
+ "enterDuration": {
142
+ "type": "duration",
143
+ "value": "$duration.d3"
144
+ },
145
+ "enterTimingFunction": {
146
+ "type": "cubicBezier",
147
+ "value": "$timing-function.enter"
148
+ },
149
+ "enterScale": {
150
+ "type": "number",
151
+ "value": 0.95
152
+ },
153
+ "enterOpacity": {
154
+ "type": "number",
155
+ "value": 0
156
+ },
157
+ "exitDuration": {
158
+ "type": "duration",
159
+ "value": "$duration.d2"
160
+ },
161
+ "exitTimingFunction": {
162
+ "type": "cubicBezier",
163
+ "value": "$timing-function.exit"
164
+ },
165
+ "exitScale": {
166
+ "type": "number",
167
+ "value": 0.95
168
+ },
169
+ "exitOpacity": {
170
+ "type": "number",
171
+ "value": 0
172
+ },
173
+ "paddingY": {
174
+ "type": "dimension",
175
+ "value": "$dimension.x2"
176
+ },
177
+ "gap": {
178
+ "type": "dimension",
179
+ "value": "$dimension.x2"
180
+ },
181
+ "gutter": {
182
+ "type": "dimension",
183
+ "value": "$dimension.x2"
184
+ },
185
+ "overflowPadding": {
186
+ "type": "dimension",
187
+ "value": "$dimension.x2"
188
+ },
189
+ "maxHeight": {
190
+ "type": "dimension",
191
+ "value": {
192
+ "value": 480,
193
+ "unit": "px"
194
+ }
195
+ }
196
+ },
197
+ "groupLabel": {
198
+ "color": {
199
+ "type": "color",
200
+ "value": "$color.fg.neutral-subtle"
201
+ }
202
+ },
203
+ "divider": {
204
+ "marginX": {
205
+ "type": "dimension",
206
+ "value": "$dimension.x4"
207
+ },
208
+ "height": {
209
+ "type": "dimension",
210
+ "value": {
211
+ "value": 1,
212
+ "unit": "px"
213
+ }
214
+ },
215
+ "color": {
216
+ "type": "color",
217
+ "value": "$color.stroke.neutral-muted"
218
+ }
219
+ }
220
+ }
221
+ }
222
+ ]
223
+ },
224
+ {
225
+ "variants": {
226
+ "size": "large"
227
+ },
228
+ "definitions": [
229
+ {
230
+ "states": [
231
+ "enabled"
232
+ ],
233
+ "slots": {
234
+ "groupLabel": {
235
+ "paddingY": {
236
+ "type": "dimension",
237
+ "value": "$dimension.x2_5"
238
+ },
239
+ "paddingX": {
240
+ "type": "dimension",
241
+ "value": "$dimension.x4"
242
+ },
243
+ "fontSize": {
244
+ "type": "dimension",
245
+ "value": "$font-size.t4"
246
+ },
247
+ "lineHeight": {
248
+ "type": "dimension",
249
+ "value": "$line-height.t4"
250
+ },
251
+ "fontWeight": {
252
+ "type": "number",
253
+ "value": "$font-weight.medium"
254
+ }
255
+ }
256
+ }
257
+ }
258
+ ]
259
+ },
260
+ {
261
+ "variants": {
262
+ "size": "medium"
263
+ },
264
+ "definitions": [
265
+ {
266
+ "states": [
267
+ "enabled"
268
+ ],
269
+ "slots": {
270
+ "groupLabel": {
271
+ "paddingY": {
272
+ "type": "dimension",
273
+ "value": "$dimension.x2"
274
+ },
275
+ "paddingX": {
276
+ "type": "dimension",
277
+ "value": "$dimension.x4"
278
+ },
279
+ "fontSize": {
280
+ "type": "dimension",
281
+ "value": "$font-size.t3"
282
+ },
283
+ "lineHeight": {
284
+ "type": "dimension",
285
+ "value": "$line-height.t3"
286
+ },
287
+ "fontWeight": {
288
+ "type": "number",
289
+ "value": "$font-weight.regular"
290
+ }
291
+ }
292
+ }
293
+ }
294
+ ]
295
+ }
296
+ ]
297
+ }
298
+ }
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "Rootage",
3
- "version": "2.2.1",
3
+ "version": "2.3.0",
4
4
  "resources": [
5
5
  {
6
6
  "path": "/collections.json"
@@ -29,6 +29,9 @@
29
29
  {
30
30
  "path": "/components/action-sheet.json"
31
31
  },
32
+ {
33
+ "path": "/components/alert-dialog.json"
34
+ },
32
35
  {
33
36
  "path": "/components/attachment-input-dropzone.json"
34
37
  },
@@ -92,6 +95,9 @@
92
95
  {
93
96
  "path": "/components/control-chip.json"
94
97
  },
98
+ {
99
+ "path": "/components/dialog-close-button.json"
100
+ },
95
101
  {
96
102
  "path": "/components/dialog.json"
97
103
  },
@@ -185,6 +191,12 @@
185
191
  {
186
192
  "path": "/components/progress-circle.json"
187
193
  },
194
+ {
195
+ "path": "/components/quantity-picker-button.json"
196
+ },
197
+ {
198
+ "path": "/components/quantity-picker.json"
199
+ },
188
200
  {
189
201
  "path": "/components/radio-group.json"
190
202
  },
@@ -218,6 +230,15 @@
218
230
  {
219
231
  "path": "/components/select-box.json"
220
232
  },
233
+ {
234
+ "path": "/components/select-item.json"
235
+ },
236
+ {
237
+ "path": "/components/select-trigger.json"
238
+ },
239
+ {
240
+ "path": "/components/select.json"
241
+ },
221
242
  {
222
243
  "path": "/components/side-panel-close-button.json"
223
244
  },
@@ -0,0 +1,131 @@
1
+ # yaml-language-server: $schema=./schema.json
2
+ kind: ComponentSpec
3
+ metadata:
4
+ id: alert-dialog
5
+ name: Alert Dialog
6
+ data:
7
+ schema:
8
+ slots:
9
+ backdrop:
10
+ properties:
11
+ color:
12
+ type: color
13
+ enterDuration:
14
+ type: duration
15
+ enterTimingFunction:
16
+ type: cubicBezier
17
+ enterOpacity:
18
+ type: number
19
+ exitDuration:
20
+ type: duration
21
+ exitTimingFunction:
22
+ type: cubicBezier
23
+ exitOpacity:
24
+ type: number
25
+ content:
26
+ properties:
27
+ color:
28
+ type: color
29
+ cornerRadius:
30
+ type: dimension
31
+ marginX:
32
+ type: dimension
33
+ marginY:
34
+ type: dimension
35
+ maxWidth:
36
+ type: dimension
37
+ enterDuration:
38
+ type: duration
39
+ enterTimingFunction:
40
+ type: cubicBezier
41
+ enterOpacity:
42
+ type: number
43
+ enterScale:
44
+ type: number
45
+ exitDuration:
46
+ type: duration
47
+ exitTimingFunction:
48
+ type: cubicBezier
49
+ exitOpacity:
50
+ type: number
51
+ header:
52
+ properties:
53
+ gap:
54
+ type: dimension
55
+ paddingX:
56
+ type: dimension
57
+ paddingTop:
58
+ type: dimension
59
+ footer:
60
+ properties:
61
+ gap:
62
+ type: dimension
63
+ paddingX:
64
+ type: dimension
65
+ paddingTop:
66
+ type: dimension
67
+ paddingBottom:
68
+ type: dimension
69
+ title:
70
+ properties:
71
+ color:
72
+ type: color
73
+ fontSize:
74
+ type: dimension
75
+ lineHeight:
76
+ type: dimension
77
+ fontWeight:
78
+ type: number
79
+ description:
80
+ properties:
81
+ color:
82
+ type: color
83
+ fontSize:
84
+ type: dimension
85
+ lineHeight:
86
+ type: dimension
87
+ fontWeight:
88
+ type: number
89
+ definitions:
90
+ base:
91
+ enabled:
92
+ backdrop:
93
+ color: $color.bg.overlay
94
+ enterDuration: $duration.d2
95
+ enterTimingFunction: $timing-function.enter
96
+ enterOpacity: 0
97
+ exitDuration: $duration.d2
98
+ exitTimingFunction: $timing-function.exit
99
+ exitOpacity: 0
100
+ content:
101
+ color: $color.bg.layer-floating
102
+ cornerRadius: $radius.r5
103
+ marginX: $dimension.x8
104
+ marginY: $dimension.x16
105
+ maxWidth: 272px
106
+ enterDuration: $duration.d4
107
+ enterTimingFunction: $timing-function.enter-expressive
108
+ enterOpacity: 0
109
+ enterScale: 1.3
110
+ exitDuration: $duration.d2
111
+ exitTimingFunction: $timing-function.exit
112
+ exitOpacity: 0
113
+ header:
114
+ gap: $dimension.x1_5
115
+ paddingX: $dimension.x5
116
+ paddingTop: $dimension.x5
117
+ footer:
118
+ gap: $dimension.x2
119
+ paddingX: $dimension.x5
120
+ paddingTop: $dimension.x4
121
+ paddingBottom: $dimension.x5
122
+ title:
123
+ color: $color.fg.neutral
124
+ fontSize: $font-size.t7
125
+ lineHeight: $line-height.t7
126
+ fontWeight: $font-weight.bold
127
+ description:
128
+ color: $color.fg.neutral
129
+ fontSize: $font-size.t5
130
+ lineHeight: $line-height.t5
131
+ fontWeight: $font-weight.regular
@@ -0,0 +1,47 @@
1
+ # yaml-language-server: $schema=./schema.json
2
+ kind: ComponentSpec
3
+ metadata:
4
+ id: dialog-close-button
5
+ name: Dialog Close Button
6
+ data:
7
+ schema:
8
+ slots:
9
+ root:
10
+ properties:
11
+ color:
12
+ type: color
13
+ cornerRadius:
14
+ type: dimension
15
+ size:
16
+ type: dimension
17
+ colorDuration:
18
+ type: duration
19
+ colorTimingFunction:
20
+ type: cubicBezier
21
+ icon:
22
+ properties:
23
+ color:
24
+ type: color
25
+ size:
26
+ type: dimension
27
+ colorDuration:
28
+ type: duration
29
+ colorTimingFunction:
30
+ type: cubicBezier
31
+ definitions:
32
+ base:
33
+ enabled:
34
+ root:
35
+ color: $color.bg.transparent
36
+ cornerRadius: $radius.r3
37
+ size: 52px
38
+ colorDuration: $duration.color-transition
39
+ colorTimingFunction: $timing-function.easing
40
+ icon:
41
+ color: $color.fg.neutral-subtle
42
+ size: 22px
43
+ colorDuration: $duration.color-transition
44
+ colorTimingFunction: $timing-function.easing
45
+ pressed:
46
+ root:
47
+ color: $color.bg.transparent-pressed
@@ -28,12 +28,16 @@ data:
28
28
  type: color
29
29
  cornerRadius:
30
30
  type: dimension
31
- marginX:
32
- type: dimension
33
- marginY:
34
- type: dimension
35
31
  maxWidth:
36
32
  type: dimension
33
+ widthFraction:
34
+ type: number
35
+ description: viewport width 또는 parent width에 대한 비율입니다. viewport `md` 미만에서 적용합니다.
36
+ maxHeightFraction:
37
+ type: number
38
+ description: viewport height 또는 parent height에 대한 최대 비율입니다.
39
+ marginX:
40
+ type: dimension
37
41
  enterDuration:
38
42
  type: duration
39
43
  enterTimingFunction:
@@ -56,10 +60,30 @@ data:
56
60
  type: dimension
57
61
  paddingTop:
58
62
  type: dimension
59
- footer:
63
+ paddingBottom:
64
+ type: dimension
65
+ closeButtonGap:
66
+ type: dimension
67
+ description: closeButton이 표시되는 경우 paddingRight에 추가되는 여백입니다.
68
+ body:
60
69
  properties:
61
- gap:
70
+ paddingX:
71
+ type: dimension
72
+ paddingBottom:
62
73
  type: dimension
74
+ description: body의 하단 padding이며, 동시에 하단 scroll fog 그라데이션의 높이로도 사용됩니다. 본문이 오버플로되어 스크롤 가능한 경우에만 적용됩니다.
75
+ strokeWidth:
76
+ type: dimension
77
+ description: 본문이 스크롤된(scrolled) 상태에서 body 상단에 나타나는 divider의 두께입니다.
78
+ strokeColor:
79
+ type: color
80
+ description: 본문이 스크롤된(scrolled) 상태에서 body 상단에 나타나는 divider의 색상입니다.
81
+ strokeDuration:
82
+ type: duration
83
+ strokeTimingFunction:
84
+ type: cubicBezier
85
+ footer:
86
+ properties:
63
87
  paddingX:
64
88
  type: dimension
65
89
  paddingTop:
@@ -86,6 +110,12 @@ data:
86
110
  type: dimension
87
111
  fontWeight:
88
112
  type: number
113
+ closeButton:
114
+ properties:
115
+ fromTop:
116
+ type: dimension
117
+ fromRight:
118
+ type: dimension
89
119
  definitions:
90
120
  base:
91
121
  enabled:
@@ -100,9 +130,9 @@ data:
100
130
  content:
101
131
  color: $color.bg.layer-floating
102
132
  cornerRadius: $radius.r5
103
- marginX: $dimension.x8
104
- marginY: $dimension.x16
105
- maxWidth: 272px
133
+ widthFraction: 0.9
134
+ maxHeightFraction: 0.8
135
+ marginX: $dimension.x5
106
136
  enterDuration: $duration.d4
107
137
  enterTimingFunction: $timing-function.enter-expressive
108
138
  enterOpacity: 0
@@ -112,20 +142,41 @@ data:
112
142
  exitOpacity: 0
113
143
  header:
114
144
  gap: $dimension.x1_5
115
- paddingX: $dimension.x5
116
- paddingTop: $dimension.x5
145
+ paddingX: $dimension.x6
146
+ paddingTop: $dimension.x6
147
+ paddingBottom: $dimension.x4
148
+ closeButtonGap: $dimension.x1_5
149
+ body:
150
+ paddingX: $dimension.x6
151
+ paddingBottom: $dimension.x12
152
+ strokeDuration: $duration.color-transition
153
+ strokeTimingFunction: $timing-function.easing
117
154
  footer:
118
- gap: $dimension.x2
119
- paddingX: $dimension.x5
155
+ paddingX: $dimension.x6
120
156
  paddingTop: $dimension.x4
121
- paddingBottom: $dimension.x5
157
+ paddingBottom: $dimension.x6
122
158
  title:
123
159
  color: $color.fg.neutral
124
- fontSize: $font-size.t7
125
- lineHeight: $line-height.t7
160
+ fontSize: $font-size.t8
161
+ lineHeight: $line-height.t8
126
162
  fontWeight: $font-weight.bold
127
163
  description:
128
- color: $color.fg.neutral
164
+ color: $color.fg.neutral-muted
129
165
  fontSize: $font-size.t5
130
166
  lineHeight: $line-height.t5
131
167
  fontWeight: $font-weight.regular
168
+ closeButton:
169
+ fromTop: $dimension.x7
170
+ fromRight: $dimension.x6
171
+ scrolled:
172
+ body:
173
+ strokeColor: $color.stroke.neutral-muted
174
+ strokeWidth: 1px
175
+ size=medium:
176
+ enabled:
177
+ content:
178
+ maxWidth: 480px
179
+ size=large:
180
+ enabled:
181
+ content:
182
+ maxWidth: 800px