@highpixel-co/palda-design-system 0.4.1 → 0.5.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/README.md +21 -2
- package/dist/guide/LICENSE +21 -0
- package/dist/guide/NOTICE +29 -0
- package/dist/guide/README.md +57 -0
- package/dist/guide/catalog/components.yml +272 -0
- package/dist/guide/catalog/drafts.yml +333 -0
- package/dist/guide/catalog/icons.yml +309 -0
- package/dist/guide/catalog/patterns.yml +124 -0
- package/dist/guide/catalog/tokens.yml +14 -0
- package/dist/guide/docs/ACCESSIBILITY.md +10 -0
- package/dist/guide/docs/AI_UI_DESIGNER_HANDOFF.md +256 -0
- package/dist/guide/docs/COMPONENT_POLICY.md +105 -0
- package/dist/guide/docs/CONSUMER_GUIDE.md +131 -0
- package/dist/guide/docs/CONTENT.md +148 -0
- package/dist/guide/docs/DESIGN_GRAMMAR.md +378 -0
- package/dist/guide/docs/DESIGN_PRINCIPLES.md +254 -0
- package/dist/guide/docs/FIGMA_ALIGNMENT_DELTA.md +141 -0
- package/dist/guide/docs/FIGMA_NAME_MAPPING.md +84 -0
- package/dist/guide/docs/FIGMA_WORKFLOW.md +33 -0
- package/dist/guide/docs/ICON_POLICY.md +175 -0
- package/dist/guide/docs/LAYOUT.md +221 -0
- package/dist/guide/docs/PATTERN_POLICY.md +13 -0
- package/dist/guide/docs/TOKEN_POLICY.md +255 -0
- package/dist/guide/icons/manifest.json +572 -0
- package/dist/harness/check.mjs +330 -0
- package/dist/harness/cli.mjs +88 -0
- package/dist/harness/metadata.json +1323 -0
- package/dist/scripts/check-examples.mjs +444 -0
- package/package.json +13 -2
|
@@ -0,0 +1,333 @@
|
|
|
1
|
+
# Draft는 승인 대기열이 아니라 추적 가능한 임시 결정이다. based_on에는 Stable catalog key만 쓴다.
|
|
2
|
+
# 기존 Stable 컴포넌트 기반이 없으면 based_on_none_reason으로 그 이유를 명시한다.
|
|
3
|
+
|
|
4
|
+
layout-popup-width:
|
|
5
|
+
catalog: tokens
|
|
6
|
+
entry: layout-popup-width
|
|
7
|
+
based_on_none_reason: 브라우저 확장 팝업과 같은 역할의 Stable layout width token이 없다
|
|
8
|
+
reused:
|
|
9
|
+
- 기존 layout namespace와 전역 palda 접두사
|
|
10
|
+
- 기존 팝업의 310px content와 좌우 20px inset이 만든 350px 외곽 폭
|
|
11
|
+
gap: sidebar와 page content가 아닌 브라우저 확장 팝업 표면의 폭 token이 없다
|
|
12
|
+
rejected_alternatives:
|
|
13
|
+
- sidebar-width 220px은 내비게이션 열 전용이라 팝업 역할과 실제 폭을 모두 왜곡한다
|
|
14
|
+
- content-width 1220px은 페이지 본문 전용이라 팝업에 사용할 수 없다
|
|
15
|
+
added:
|
|
16
|
+
- 브라우저 확장과 좁은 독립 팝업 표면용 350px layout width
|
|
17
|
+
unchanged:
|
|
18
|
+
- sidebar와 content width 및 기존 spacing scale
|
|
19
|
+
feedback_questions:
|
|
20
|
+
- 기존 외곽 폭 350px을 유지하는 것이 새 DS 밀도에서도 적절한가
|
|
21
|
+
|
|
22
|
+
alert:
|
|
23
|
+
catalog: components
|
|
24
|
+
entry: alert
|
|
25
|
+
based_on_none_reason: 흐름을 끊지 않고 화면에 남아 안내를 전하는 Stable 표면이 없다
|
|
26
|
+
reused:
|
|
27
|
+
- Badge와 같은 축의 틴트 조합 — 배경 {family}/subtle, 글자 text/{family}
|
|
28
|
+
- 기존 아이콘 세트와 본문 typography
|
|
29
|
+
gap: 화면에 남아 있는 안내·경고·오류를 담을 자리가 없다
|
|
30
|
+
rejected_alternatives:
|
|
31
|
+
- Toast는 잠깐 떴다 사라져서 남아 있어야 하는 안내에 못 쓴다
|
|
32
|
+
- Modal은 흐름을 끊어서 읽고 넘어가는 안내에 과하다
|
|
33
|
+
- TextField의 error는 필드 하나에, FormSection의 오류는 섹션 하나에 붙는다
|
|
34
|
+
added:
|
|
35
|
+
- neutral·accent·warning·danger 4종과 이어서 할 액션 슬롯 하나
|
|
36
|
+
unchanged:
|
|
37
|
+
- 보더를 주지 않는 기본값(0011)과 role을 variant에서 파생하는 규칙(0004)
|
|
38
|
+
feedback_questions:
|
|
39
|
+
- 파랑 계열 primitive가 없어 info variant를 두지 않았는데 파란 배너가 필요한가
|
|
40
|
+
- 닫을 수 있는 배너가 필요한가 — 지금은 닫기 버튼을 두지 않았다
|
|
41
|
+
|
|
42
|
+
checkbox:
|
|
43
|
+
catalog: components
|
|
44
|
+
entry: checkbox
|
|
45
|
+
based_on_none_reason: 다중 선택을 나타내는 Stable form control이 없다
|
|
46
|
+
reused:
|
|
47
|
+
- 기존 control size와 focus token
|
|
48
|
+
- 기존 label typography
|
|
49
|
+
gap: 다중 선택과 약관 동의를 네이티브 의미로 제공할 요소가 없다
|
|
50
|
+
rejected_alternatives:
|
|
51
|
+
- Switch는 즉시 반영되는 설정 의미다
|
|
52
|
+
- Chip은 필터와 선택 목록 의미다
|
|
53
|
+
added:
|
|
54
|
+
- checked와 unchecked와 disabled 상태
|
|
55
|
+
unchanged:
|
|
56
|
+
- label 클릭과 focus-visible 접근성 원칙
|
|
57
|
+
feedback_questions:
|
|
58
|
+
- disabled checked 표시의 대비가 충분한가
|
|
59
|
+
|
|
60
|
+
dropdown-button:
|
|
61
|
+
catalog: components
|
|
62
|
+
entry: dropdown-button
|
|
63
|
+
based_on:
|
|
64
|
+
- button
|
|
65
|
+
reused:
|
|
66
|
+
- Button trigger의 typography와 높이와 focus
|
|
67
|
+
- 기존 surface와 shadow token
|
|
68
|
+
gap: 하나의 트리거에 여러 액션을 연결하는 Stable 요소가 없다
|
|
69
|
+
rejected_alternatives:
|
|
70
|
+
- Button 여러 개는 좁은 공간에서 액션 우선순위를 흐린다
|
|
71
|
+
- Radio는 액션 목록을 표현하지 않는다
|
|
72
|
+
added:
|
|
73
|
+
- trigger 주변 menu surface와 keyboard selection
|
|
74
|
+
unchanged:
|
|
75
|
+
- Button의 visual contract
|
|
76
|
+
feedback_questions:
|
|
77
|
+
- 메뉴 폭과 정렬과 chevron 표현이 적절한가
|
|
78
|
+
|
|
79
|
+
link:
|
|
80
|
+
catalog: components
|
|
81
|
+
entry: link
|
|
82
|
+
based_on_none_reason: 주소 이동 의미를 가진 Stable text component가 없다
|
|
83
|
+
reused:
|
|
84
|
+
- 기존 text와 accent와 focus token
|
|
85
|
+
- 기존 typography class
|
|
86
|
+
gap: 새 탭과 주소 복사 의미를 보존하는 inline navigation 요소가 없다
|
|
87
|
+
rejected_alternatives:
|
|
88
|
+
- Button은 주소 이동의 브라우저 기본 동작을 제공하지 않는다
|
|
89
|
+
added:
|
|
90
|
+
- primary와 accent link 및 external 표시
|
|
91
|
+
unchanged:
|
|
92
|
+
- 네이티브 anchor 동작
|
|
93
|
+
feedback_questions:
|
|
94
|
+
- 기본 밑줄과 visited 저강도 표현이 적절한가
|
|
95
|
+
|
|
96
|
+
modal:
|
|
97
|
+
catalog: components
|
|
98
|
+
entry: modal
|
|
99
|
+
based_on:
|
|
100
|
+
- button
|
|
101
|
+
- icon-button
|
|
102
|
+
reused:
|
|
103
|
+
- 기존 Button과 IconButton action
|
|
104
|
+
- 기존 surface와 shadow와 spacing token
|
|
105
|
+
gap: 흐름을 멈추고 포커스를 관리하는 Stable dialog surface가 없다
|
|
106
|
+
rejected_alternatives:
|
|
107
|
+
- Card는 포커스를 가두거나 배경을 inert 처리하지 않는다
|
|
108
|
+
added:
|
|
109
|
+
- dim과 focus trap과 scroll lock과 Escape close
|
|
110
|
+
unchanged:
|
|
111
|
+
- action button contract와 typography
|
|
112
|
+
feedback_questions:
|
|
113
|
+
- 기본 폭과 dim 강도와 close 위치가 적절한가
|
|
114
|
+
|
|
115
|
+
navigation-button:
|
|
116
|
+
catalog: components
|
|
117
|
+
entry: navigation-button
|
|
118
|
+
based_on:
|
|
119
|
+
- button
|
|
120
|
+
reused:
|
|
121
|
+
- Button typography와 focus와 icon spacing
|
|
122
|
+
- 기존 navigation semantic color
|
|
123
|
+
gap: 현재 위치를 표시하는 사이드바 전용 이동 항목이 없다
|
|
124
|
+
rejected_alternatives:
|
|
125
|
+
- 일반 Button은 현재 위치와 주소 이동 의미를 제공하지 않는다
|
|
126
|
+
- Chip은 보기 필터 의미다
|
|
127
|
+
added:
|
|
128
|
+
- 주소 이동용 anchor와 동작용 button 의미 분리
|
|
129
|
+
- aria-current와 selected navigation 표현
|
|
130
|
+
unchanged:
|
|
131
|
+
- 기존 action size와 icon rules
|
|
132
|
+
feedback_questions:
|
|
133
|
+
- 비선택 항목 대비와 모바일 줄 배치가 적절한가
|
|
134
|
+
|
|
135
|
+
progress-bar:
|
|
136
|
+
catalog: components
|
|
137
|
+
entry: progress-bar
|
|
138
|
+
based_on_none_reason: 끝이 정해진 작업의 진행률을 값으로 보여주는 Stable 요소가 없다
|
|
139
|
+
reused:
|
|
140
|
+
- 기존 primary 채움과 트랙의 surface/sunken
|
|
141
|
+
- 기존 label typography와 radius scale
|
|
142
|
+
gap: 작업이 얼마나 찼는지를 값으로 보여줄 요소가 없다
|
|
143
|
+
rejected_alternatives:
|
|
144
|
+
- 스피너는 끝을 모르는 대기용이라 진행률을 못 전한다
|
|
145
|
+
- 단계 목록은 진행률이 아니라 구조다. 진행률은 값 하나다
|
|
146
|
+
added:
|
|
147
|
+
- label과 값이 짝인 막대 하나. label은 필수다
|
|
148
|
+
unchanged:
|
|
149
|
+
- 값과 aria가 같은 수를 쓰는 접근성 원칙
|
|
150
|
+
feedback_questions:
|
|
151
|
+
- 높이 8px은 명세 실측값이고 대응 토큰이 없다. 반복이 확인되면 토큰으로 올릴 것인가
|
|
152
|
+
- 색으로 상태를 가르는 variant가 필요한가 — 지금은 채움이 accent가 아니라 primary 하나다
|
|
153
|
+
|
|
154
|
+
tab:
|
|
155
|
+
catalog: components
|
|
156
|
+
entry: tab
|
|
157
|
+
based_on:
|
|
158
|
+
- button
|
|
159
|
+
reused:
|
|
160
|
+
- Button typography와 focus token
|
|
161
|
+
- 기존 accent semantic color
|
|
162
|
+
gap: 같은 화면 안의 단일 view를 전환하는 Stable tab control이 없다
|
|
163
|
+
rejected_alternatives:
|
|
164
|
+
- Chip은 다중 filter toggle 의미가 있다
|
|
165
|
+
- Button은 tab 관계와 선택 상태를 전달하지 않는다
|
|
166
|
+
added:
|
|
167
|
+
- tab role과 selected underline state
|
|
168
|
+
unchanged:
|
|
169
|
+
- 기존 text와 focus 체계
|
|
170
|
+
feedback_questions:
|
|
171
|
+
- 활성 underline과 탭 간격이 적절한가
|
|
172
|
+
|
|
173
|
+
toast:
|
|
174
|
+
catalog: components
|
|
175
|
+
entry: toast
|
|
176
|
+
based_on:
|
|
177
|
+
- button
|
|
178
|
+
- icon-button
|
|
179
|
+
reused:
|
|
180
|
+
- Stable action controls
|
|
181
|
+
- 기존 floating surface와 semantic token
|
|
182
|
+
gap: 작업 결과를 흐름을 막지 않고 잠시 알리는 Stable feedback component가 없다
|
|
183
|
+
rejected_alternatives:
|
|
184
|
+
- Alert는 화면 안에 계속 남는 메시지다
|
|
185
|
+
- Modal은 확인이 필요 없는 결과의 흐름을 막는다
|
|
186
|
+
added:
|
|
187
|
+
- timed live-region message와 dismiss action
|
|
188
|
+
unchanged:
|
|
189
|
+
- Button과 IconButton action contract
|
|
190
|
+
feedback_questions:
|
|
191
|
+
- 위치와 유지 시간과 최대 폭이 적절한가
|
|
192
|
+
|
|
193
|
+
tooltip:
|
|
194
|
+
catalog: components
|
|
195
|
+
entry: tooltip
|
|
196
|
+
based_on:
|
|
197
|
+
- icon-button
|
|
198
|
+
reused:
|
|
199
|
+
- Stable trigger focus behavior
|
|
200
|
+
- 기존 floating surface와 typography token
|
|
201
|
+
gap: 아이콘과 축약 UI의 짧은 설명을 hover와 focus 모두에 제공할 요소가 없다
|
|
202
|
+
rejected_alternatives:
|
|
203
|
+
- Popover는 상호작용 콘텐츠를 위한 더 무거운 표면이다
|
|
204
|
+
added:
|
|
205
|
+
- hover와 focus description surface
|
|
206
|
+
unchanged:
|
|
207
|
+
- trigger의 accessible name 책임
|
|
208
|
+
feedback_questions:
|
|
209
|
+
- 지연 시간과 위치와 최대 폭이 적절한가
|
|
210
|
+
|
|
211
|
+
app-shell:
|
|
212
|
+
catalog: patterns
|
|
213
|
+
entry: app-shell
|
|
214
|
+
based_on_none_reason: 페이지 전체 레이아웃을 정의하는 Stable pattern이 없다
|
|
215
|
+
reused:
|
|
216
|
+
- 기존 layout과 spacing과 breakpoint token
|
|
217
|
+
- Stable navigation action
|
|
218
|
+
gap: sidebar와 top row와 status와 body를 일관되게 배치하는 canonical shell이 없다
|
|
219
|
+
rejected_alternatives:
|
|
220
|
+
- 화면별 layout은 여백과 배경 위계를 반복해서 달리 만든다
|
|
221
|
+
added:
|
|
222
|
+
- full-height sidebar와 content bands와 responsive collapse
|
|
223
|
+
unchanged:
|
|
224
|
+
- 각 화면이 자신의 상태를 소유하는 원칙
|
|
225
|
+
feedback_questions:
|
|
226
|
+
- sidebar 폭과 mobile 전환과 상단 행 밀도가 적절한가
|
|
227
|
+
|
|
228
|
+
card:
|
|
229
|
+
catalog: patterns
|
|
230
|
+
entry: card
|
|
231
|
+
based_on:
|
|
232
|
+
- button
|
|
233
|
+
reused:
|
|
234
|
+
- Button의 selectable interaction semantics
|
|
235
|
+
- 기존 surface와 border와 radius token
|
|
236
|
+
gap: 선택 가능한 객체와 최상위 요약 면을 일관되게 담는 Stable pattern이 없다
|
|
237
|
+
rejected_alternatives:
|
|
238
|
+
- FormSection은 설정 묶음이고 surface를 만들지 않는다
|
|
239
|
+
- ListRow는 행 나열과 요약 값에 맞는다
|
|
240
|
+
added:
|
|
241
|
+
- selectable button card와 noninteractive section card
|
|
242
|
+
unchanged:
|
|
243
|
+
- shadow는 floating surface에만 쓰는 원칙
|
|
244
|
+
feedback_questions:
|
|
245
|
+
- 선택 border와 container padding과 사용 범위가 적절한가
|
|
246
|
+
|
|
247
|
+
list-row:
|
|
248
|
+
catalog: patterns
|
|
249
|
+
entry: list-row
|
|
250
|
+
based_on:
|
|
251
|
+
- icon-button
|
|
252
|
+
reused:
|
|
253
|
+
- Stable trailing action과 icon size
|
|
254
|
+
- 기존 divider와 typography token
|
|
255
|
+
gap: 제목과 설명과 좌우 slot을 가진 정보 행 pattern이 없다
|
|
256
|
+
rejected_alternatives:
|
|
257
|
+
- Card 반복은 목록 밀도와 위계를 과도하게 높인다
|
|
258
|
+
added:
|
|
259
|
+
- divider row와 filled summary tone과 optional selection
|
|
260
|
+
unchanged:
|
|
261
|
+
- action은 별도 control이 소유하는 원칙
|
|
262
|
+
feedback_questions:
|
|
263
|
+
- 긴 trailing 줄바꿈과 모바일 정렬이 적절한가
|
|
264
|
+
|
|
265
|
+
form-section:
|
|
266
|
+
catalog: patterns
|
|
267
|
+
entry: form-section
|
|
268
|
+
based_on_none_reason: 제목과 설명과 상태를 가진 무표면 section Stable pattern이 없다
|
|
269
|
+
reused:
|
|
270
|
+
- 기존 typography와 vertical spacing token
|
|
271
|
+
- field component 자체 spacing
|
|
272
|
+
gap: 설정과 정보 섹션을 Card 없이 일관되게 묶을 pattern이 없다
|
|
273
|
+
rejected_alternatives:
|
|
274
|
+
- Card는 모든 섹션을 불필요한 표면으로 만든다
|
|
275
|
+
added:
|
|
276
|
+
- title와 description과 error와 content grouping
|
|
277
|
+
unchanged:
|
|
278
|
+
- 개별 field spacing은 field가 소유하는 원칙
|
|
279
|
+
feedback_questions:
|
|
280
|
+
- 섹션 간격과 제목 위계가 긴 설정 화면에 적절한가
|
|
281
|
+
|
|
282
|
+
live-preview:
|
|
283
|
+
catalog: patterns
|
|
284
|
+
entry: live-preview
|
|
285
|
+
based_on_none_reason: form 결과를 옆에서 비추는 Stable layout pattern이 없다
|
|
286
|
+
reused:
|
|
287
|
+
- 기존 layout breakpoint와 surface token
|
|
288
|
+
- 기존 loading과 empty와 error components
|
|
289
|
+
gap: editor와 preview의 responsive 2-column 상태 구성을 반복해서 사용한다
|
|
290
|
+
rejected_alternatives:
|
|
291
|
+
- 화면별 grid는 sticky와 상태 표현을 중복 구현한다
|
|
292
|
+
added:
|
|
293
|
+
- ready와 loading과 empty와 error preview column
|
|
294
|
+
unchanged:
|
|
295
|
+
- form state는 부모가 소유하는 원칙
|
|
296
|
+
feedback_questions:
|
|
297
|
+
- 319px preview 폭과 1-column 전환 지점이 적절한가
|
|
298
|
+
|
|
299
|
+
bottom-bar:
|
|
300
|
+
catalog: patterns
|
|
301
|
+
entry: bottom-bar
|
|
302
|
+
based_on:
|
|
303
|
+
- button
|
|
304
|
+
reused:
|
|
305
|
+
- Stable action controls
|
|
306
|
+
- 기존 layout inset과 content width token
|
|
307
|
+
gap: 페이지 전체 저장 행동과 상태를 하단에 일관되게 배치할 pattern이 없다
|
|
308
|
+
rejected_alternatives:
|
|
309
|
+
- 화면 본문 Button은 긴 편집 화면에서 행동 위치를 잃는다
|
|
310
|
+
added:
|
|
311
|
+
- full-bleed footer와 constrained inner action band
|
|
312
|
+
unchanged:
|
|
313
|
+
- loading은 Button disabled가 소유하는 원칙
|
|
314
|
+
feedback_questions:
|
|
315
|
+
- mobile 고정 여부와 배경 구분 강도가 적절한가
|
|
316
|
+
|
|
317
|
+
empty-state:
|
|
318
|
+
catalog: patterns
|
|
319
|
+
entry: empty-state
|
|
320
|
+
based_on:
|
|
321
|
+
- button
|
|
322
|
+
reused:
|
|
323
|
+
- Stable primary action
|
|
324
|
+
- 기존 typography와 icon size와 spacing token
|
|
325
|
+
gap: 빈 목록과 검색 결과에서 설명과 다음 행동을 일관되게 제시할 pattern이 없다
|
|
326
|
+
rejected_alternatives:
|
|
327
|
+
- Alert는 문제나 정보를 알리지만 다음 행동 중심의 빈 상태가 아니다
|
|
328
|
+
added:
|
|
329
|
+
- optional icon과 description과 single action layout
|
|
330
|
+
unchanged:
|
|
331
|
+
- Button action contract와 semantic text hierarchy
|
|
332
|
+
feedback_questions:
|
|
333
|
+
- 최대 폭과 vertical spacing과 action 강조가 적절한가
|
|
@@ -0,0 +1,309 @@
|
|
|
1
|
+
blank:
|
|
2
|
+
status: draft
|
|
3
|
+
source: icons/svg/blank.svg
|
|
4
|
+
figma: TODO
|
|
5
|
+
|
|
6
|
+
search:
|
|
7
|
+
status: draft
|
|
8
|
+
source: icons/svg/search.svg
|
|
9
|
+
figma: TODO
|
|
10
|
+
|
|
11
|
+
filter:
|
|
12
|
+
status: draft
|
|
13
|
+
source: icons/svg/filter.svg
|
|
14
|
+
figma: TODO
|
|
15
|
+
|
|
16
|
+
info:
|
|
17
|
+
status: draft
|
|
18
|
+
source: icons/svg/info.svg
|
|
19
|
+
figma: TODO
|
|
20
|
+
|
|
21
|
+
dashboard:
|
|
22
|
+
status: draft
|
|
23
|
+
source: icons/svg/dashboard.svg
|
|
24
|
+
figma: TODO
|
|
25
|
+
|
|
26
|
+
close:
|
|
27
|
+
status: draft
|
|
28
|
+
source: icons/svg/close.svg
|
|
29
|
+
figma: TODO
|
|
30
|
+
|
|
31
|
+
home:
|
|
32
|
+
status: draft
|
|
33
|
+
source: icons/svg/home.svg
|
|
34
|
+
figma: TODO
|
|
35
|
+
|
|
36
|
+
report:
|
|
37
|
+
status: draft
|
|
38
|
+
source: icons/svg/report.svg
|
|
39
|
+
figma: TODO
|
|
40
|
+
|
|
41
|
+
product:
|
|
42
|
+
status: draft
|
|
43
|
+
source: icons/svg/product.svg
|
|
44
|
+
figma: TODO
|
|
45
|
+
|
|
46
|
+
chevron-up:
|
|
47
|
+
status: draft
|
|
48
|
+
source: icons/svg/chevron-up.svg
|
|
49
|
+
figma: TODO
|
|
50
|
+
|
|
51
|
+
chevron-down:
|
|
52
|
+
status: draft
|
|
53
|
+
source: icons/svg/chevron-down.svg
|
|
54
|
+
figma: TODO
|
|
55
|
+
|
|
56
|
+
chevron-left:
|
|
57
|
+
status: draft
|
|
58
|
+
source: icons/svg/chevron-left.svg
|
|
59
|
+
figma: TODO
|
|
60
|
+
|
|
61
|
+
chevron-right:
|
|
62
|
+
status: draft
|
|
63
|
+
source: icons/svg/chevron-right.svg
|
|
64
|
+
figma: TODO
|
|
65
|
+
|
|
66
|
+
arrow-right:
|
|
67
|
+
status: draft
|
|
68
|
+
source: icons/svg/arrow-right.svg
|
|
69
|
+
figma: TODO
|
|
70
|
+
|
|
71
|
+
arrow-left:
|
|
72
|
+
status: draft
|
|
73
|
+
source: icons/svg/arrow-left.svg
|
|
74
|
+
figma: TODO
|
|
75
|
+
|
|
76
|
+
person:
|
|
77
|
+
status: draft
|
|
78
|
+
source: icons/svg/person.svg
|
|
79
|
+
figma: TODO
|
|
80
|
+
|
|
81
|
+
plus:
|
|
82
|
+
status: draft
|
|
83
|
+
source: icons/svg/plus.svg
|
|
84
|
+
figma: TODO
|
|
85
|
+
|
|
86
|
+
check:
|
|
87
|
+
status: draft
|
|
88
|
+
source: icons/svg/check.svg
|
|
89
|
+
figma: TODO
|
|
90
|
+
|
|
91
|
+
alert:
|
|
92
|
+
status: draft
|
|
93
|
+
source: icons/svg/alert.svg
|
|
94
|
+
figma: TODO
|
|
95
|
+
|
|
96
|
+
alarm:
|
|
97
|
+
status: draft
|
|
98
|
+
source: icons/svg/alarm.svg
|
|
99
|
+
figma: TODO
|
|
100
|
+
|
|
101
|
+
card:
|
|
102
|
+
status: draft
|
|
103
|
+
source: icons/svg/card.svg
|
|
104
|
+
figma: TODO
|
|
105
|
+
|
|
106
|
+
history:
|
|
107
|
+
status: draft
|
|
108
|
+
source: icons/svg/history.svg
|
|
109
|
+
figma: TODO
|
|
110
|
+
|
|
111
|
+
logout:
|
|
112
|
+
status: draft
|
|
113
|
+
source: icons/svg/logout.svg
|
|
114
|
+
figma: TODO
|
|
115
|
+
|
|
116
|
+
external-link:
|
|
117
|
+
status: draft
|
|
118
|
+
source: icons/svg/external-link.svg
|
|
119
|
+
figma: TODO
|
|
120
|
+
|
|
121
|
+
menu:
|
|
122
|
+
status: draft
|
|
123
|
+
source: icons/svg/menu.svg
|
|
124
|
+
figma: TODO
|
|
125
|
+
|
|
126
|
+
help:
|
|
127
|
+
status: draft
|
|
128
|
+
source: icons/svg/help.svg
|
|
129
|
+
figma: TODO
|
|
130
|
+
|
|
131
|
+
more-vertical:
|
|
132
|
+
status: draft
|
|
133
|
+
source: icons/svg/more-vertical.svg
|
|
134
|
+
figma: TODO
|
|
135
|
+
|
|
136
|
+
refresh:
|
|
137
|
+
status: draft
|
|
138
|
+
source: icons/svg/refresh.svg
|
|
139
|
+
figma: TODO
|
|
140
|
+
|
|
141
|
+
send:
|
|
142
|
+
status: draft
|
|
143
|
+
source: icons/svg/send.svg
|
|
144
|
+
figma: TODO
|
|
145
|
+
|
|
146
|
+
pencil:
|
|
147
|
+
status: draft
|
|
148
|
+
source: icons/svg/pencil.svg
|
|
149
|
+
figma: TODO
|
|
150
|
+
|
|
151
|
+
trash:
|
|
152
|
+
status: draft
|
|
153
|
+
source: icons/svg/trash.svg
|
|
154
|
+
figma: TODO
|
|
155
|
+
|
|
156
|
+
upload:
|
|
157
|
+
status: draft
|
|
158
|
+
source: icons/svg/upload.svg
|
|
159
|
+
figma: TODO
|
|
160
|
+
|
|
161
|
+
copy:
|
|
162
|
+
status: draft
|
|
163
|
+
source: icons/svg/copy.svg
|
|
164
|
+
figma: TODO
|
|
165
|
+
|
|
166
|
+
link:
|
|
167
|
+
status: draft
|
|
168
|
+
source: icons/svg/link.svg
|
|
169
|
+
figma: TODO
|
|
170
|
+
|
|
171
|
+
eye:
|
|
172
|
+
status: draft
|
|
173
|
+
source: icons/svg/eye.svg
|
|
174
|
+
figma: TODO
|
|
175
|
+
|
|
176
|
+
eye-off:
|
|
177
|
+
status: draft
|
|
178
|
+
source: icons/svg/eye-off.svg
|
|
179
|
+
figma: TODO
|
|
180
|
+
|
|
181
|
+
pause:
|
|
182
|
+
status: draft
|
|
183
|
+
source: icons/svg/pause.svg
|
|
184
|
+
figma: TODO
|
|
185
|
+
|
|
186
|
+
camera:
|
|
187
|
+
status: draft
|
|
188
|
+
source: icons/svg/camera.svg
|
|
189
|
+
figma: TODO
|
|
190
|
+
|
|
191
|
+
sliders:
|
|
192
|
+
status: draft
|
|
193
|
+
source: icons/svg/sliders.svg
|
|
194
|
+
figma: TODO
|
|
195
|
+
|
|
196
|
+
type:
|
|
197
|
+
status: draft
|
|
198
|
+
source: icons/svg/type.svg
|
|
199
|
+
figma: TODO
|
|
200
|
+
|
|
201
|
+
unplug:
|
|
202
|
+
status: draft
|
|
203
|
+
source: icons/svg/unplug.svg
|
|
204
|
+
figma: TODO
|
|
205
|
+
|
|
206
|
+
store:
|
|
207
|
+
status: draft
|
|
208
|
+
source: icons/svg/store.svg
|
|
209
|
+
figma: TODO
|
|
210
|
+
|
|
211
|
+
message:
|
|
212
|
+
status: draft
|
|
213
|
+
source: icons/svg/message.svg
|
|
214
|
+
figma: TODO
|
|
215
|
+
|
|
216
|
+
smartphone:
|
|
217
|
+
status: draft
|
|
218
|
+
source: icons/svg/smartphone.svg
|
|
219
|
+
figma: TODO
|
|
220
|
+
|
|
221
|
+
monitor:
|
|
222
|
+
status: draft
|
|
223
|
+
source: icons/svg/monitor.svg
|
|
224
|
+
figma: TODO
|
|
225
|
+
|
|
226
|
+
phone:
|
|
227
|
+
status: draft
|
|
228
|
+
source: icons/svg/phone.svg
|
|
229
|
+
figma: TODO
|
|
230
|
+
|
|
231
|
+
truck:
|
|
232
|
+
status: draft
|
|
233
|
+
source: icons/svg/truck.svg
|
|
234
|
+
figma: TODO
|
|
235
|
+
|
|
236
|
+
image:
|
|
237
|
+
status: draft
|
|
238
|
+
source: icons/svg/image.svg
|
|
239
|
+
figma: TODO
|
|
240
|
+
|
|
241
|
+
cable:
|
|
242
|
+
status: draft
|
|
243
|
+
source: icons/svg/cable.svg
|
|
244
|
+
figma: TODO
|
|
245
|
+
|
|
246
|
+
mouse-pointer-click:
|
|
247
|
+
status: draft
|
|
248
|
+
source: icons/svg/mouse-pointer-click.svg
|
|
249
|
+
figma: TODO
|
|
250
|
+
|
|
251
|
+
trending-up:
|
|
252
|
+
status: draft
|
|
253
|
+
source: icons/svg/trending-up.svg
|
|
254
|
+
figma: TODO
|
|
255
|
+
|
|
256
|
+
lock:
|
|
257
|
+
status: draft
|
|
258
|
+
source: icons/svg/lock.svg
|
|
259
|
+
figma: TODO
|
|
260
|
+
|
|
261
|
+
key:
|
|
262
|
+
status: draft
|
|
263
|
+
source: icons/svg/key.svg
|
|
264
|
+
figma: TODO
|
|
265
|
+
|
|
266
|
+
shield-check:
|
|
267
|
+
status: draft
|
|
268
|
+
source: icons/svg/shield-check.svg
|
|
269
|
+
figma: TODO
|
|
270
|
+
|
|
271
|
+
gift:
|
|
272
|
+
status: draft
|
|
273
|
+
source: icons/svg/gift.svg
|
|
274
|
+
figma: TODO
|
|
275
|
+
|
|
276
|
+
star:
|
|
277
|
+
status: draft
|
|
278
|
+
source: icons/svg/star.svg
|
|
279
|
+
figma: TODO
|
|
280
|
+
|
|
281
|
+
sparkles:
|
|
282
|
+
status: draft
|
|
283
|
+
source: icons/svg/sparkles.svg
|
|
284
|
+
figma: TODO
|
|
285
|
+
|
|
286
|
+
thumbs-up:
|
|
287
|
+
status: draft
|
|
288
|
+
source: icons/svg/thumbs-up.svg
|
|
289
|
+
figma: TODO
|
|
290
|
+
|
|
291
|
+
lightbulb:
|
|
292
|
+
status: draft
|
|
293
|
+
source: icons/svg/lightbulb.svg
|
|
294
|
+
figma: TODO
|
|
295
|
+
|
|
296
|
+
timer:
|
|
297
|
+
status: draft
|
|
298
|
+
source: icons/svg/timer.svg
|
|
299
|
+
figma: TODO
|
|
300
|
+
|
|
301
|
+
loading:
|
|
302
|
+
status: draft
|
|
303
|
+
source: icons/svg/loading.svg
|
|
304
|
+
figma: TODO
|
|
305
|
+
|
|
306
|
+
success:
|
|
307
|
+
status: draft
|
|
308
|
+
source: icons/svg/success.svg
|
|
309
|
+
figma: TODO
|