@opsnow-mcp/opsnow-mcp-common-ui-server 1.0.19 → 1.0.21

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.
Files changed (41) hide show
  1. package/package.json +1 -1
  2. package/build/components/data/icon-names.js +0 -129
  3. package/build/components/examples/opsnow-common-calendar-examples-data.js +0 -48
  4. package/build/components/examples/opsnow-common-chart-examples-data.js +0 -6590
  5. package/build/components/examples/opsnow-common-data-status-examples-data.js +0 -65
  6. package/build/components/examples/opsnow-common-file-upload-examples-data.js +0 -95
  7. package/build/components/examples/opsnow-common-forms-examples-data.js +0 -1699
  8. package/build/components/examples/opsnow-common-grid-examples-data.js +0 -2328
  9. package/build/components/examples/opsnow-common-icons-examples-data.js +0 -72
  10. package/build/components/examples/opsnow-common-layout-examples-data.js +0 -72
  11. package/build/components/examples/opsnow-common-notification-examples-data.js +0 -78
  12. package/build/components/examples/opsnow-common-pagination-examples-data.js +0 -82
  13. package/build/components/examples/opsnow-common-popup-examples-data.js +0 -205
  14. package/build/components/examples/opsnow-common-progress-examples-data.js +0 -86
  15. package/build/components/examples/opsnow-common-select-examples-data.js +0 -106
  16. package/build/components/examples/opsnow-common-stepper-examples-data.js +0 -180
  17. package/build/components/examples/opsnow-common-storage-examples-data.js +0 -8
  18. package/build/components/examples/opsnow-common-tab-examples-data.js +0 -87
  19. package/build/components/examples/opsnow-common-toast-popup-examples-data.js +0 -129
  20. package/build/components/examples/opsnow-common-tooltip-examples-data.js +0 -80
  21. package/build/components/examples/opsnow-common-typography-examples-data.js +0 -366
  22. package/build/components/opsnow-common-calendar.js +0 -228
  23. package/build/components/opsnow-common-chart.js +0 -1643
  24. package/build/components/opsnow-common-data-status.js +0 -116
  25. package/build/components/opsnow-common-examples.js +0 -109
  26. package/build/components/opsnow-common-file-upload.js +0 -57
  27. package/build/components/opsnow-common-forms.js +0 -1006
  28. package/build/components/opsnow-common-grid.js +0 -352
  29. package/build/components/opsnow-common-icons.js +0 -139
  30. package/build/components/opsnow-common-layout.js +0 -138
  31. package/build/components/opsnow-common-notification.js +0 -110
  32. package/build/components/opsnow-common-pagination.js +0 -164
  33. package/build/components/opsnow-common-popup.js +0 -71
  34. package/build/components/opsnow-common-progress.js +0 -177
  35. package/build/components/opsnow-common-select.js +0 -132
  36. package/build/components/opsnow-common-stepper.js +0 -72
  37. package/build/components/opsnow-common-tab.js +0 -111
  38. package/build/components/opsnow-common-toast-popup.js +0 -135
  39. package/build/components/opsnow-common-tooltip.js +0 -204
  40. package/build/components/opsnow-common-typography.js +0 -93
  41. package/build/index.js +0 -124
@@ -1,1699 +0,0 @@
1
- // 각 컴포넌트별 예제 정보 export (opsnow-common-examples.ts에서 import해서 MCP 툴로 활용)
2
- export const ButtonExamples = [
3
- // === Large size examples ===
4
- {
5
- title: 'large-contained-primary-icon-left',
6
- code: `<OpsnowCommonButton iconName="CloudPlus" label="Label" size="large" onClick={muiButtonTest} />`,
7
- description: '대형 크기의 기본 Contained Primary 버튼 (왼쪽 아이콘) 예제입니다.'
8
- },
9
- {
10
- title: 'large-contained-secondary',
11
- code: `<OpsnowCommonButton label="Label" size="large" color="secondary" onClick={muiButtonTest} />`,
12
- description: '대형 크기의 Contained Secondary 버튼 예제입니다.'
13
- },
14
- {
15
- title: 'large-contained-error',
16
- code: `<OpsnowCommonButton label="Label" size="large" color="error" onClick={muiButtonTest} />`,
17
- description: '대형 크기의 Contained Error 버튼 예제입니다.'
18
- },
19
- {
20
- title: 'large-contained-inherit',
21
- code: `<OpsnowCommonButton label="Label" size="large" color="inherit" onClick={muiButtonTest} />`,
22
- description: '대형 크기의 Contained Inherit 버튼 예제입니다.'
23
- },
24
- {
25
- title: 'large-contained-inherit-white-theme',
26
- code: `<OpsnowCommonButton label="Label" theme="white" size="large" color="inherit" onClick={muiButtonTest} />`,
27
- description: '대형 크기의 흰 테마 Contained Inherit 버튼 예제입니다.'
28
- },
29
- {
30
- title: 'large-contained-disabled-white-theme',
31
- code: `<OpsnowCommonButton label="Label" theme="white" size="large" disabled onClick={muiButtonTest} />`,
32
- description: '대형 크기의 흰 테마 Disabled Contained 버튼 예제입니다.'
33
- },
34
- {
35
- title: 'large-outlined-primary-icon-right',
36
- code: `<OpsnowCommonButton iconPosition="right" iconName="LogoAws" label="Label" variant="outlined" size="large" onClick={muiButtonTest} />`,
37
- description: '대형 크기의 Outlined Primary 버튼 (오른쪽 아이콘) 예제입니다.'
38
- },
39
- {
40
- title: 'large-outlined-secondary',
41
- code: `<OpsnowCommonButton label="Label" size="large" variant="outlined" color="secondary" onClick={muiButtonTest} />`,
42
- description: '대형 크기의 Outlined Secondary 버튼 예제입니다.'
43
- },
44
- {
45
- title: 'large-outlined-error',
46
- code: `<OpsnowCommonButton label="Label" size="large" variant="outlined" color="error" onClick={muiButtonTest} />`,
47
- description: '대형 크기의 Outlined Error 버튼 예제입니다.'
48
- },
49
- {
50
- title: 'large-outlined-inherit',
51
- code: `<OpsnowCommonButton label="Label" size="large" variant="outlined" color="inherit" onClick={muiButtonTest} />`,
52
- description: '대형 크기의 Outlined Inherit 버튼 예제입니다.'
53
- },
54
- {
55
- title: 'large-outlined-inherit-white-theme',
56
- code: `<OpsnowCommonButton label="Label" theme="white" size="large" variant="outlined" color="inherit" onClick={muiButtonTest} />`,
57
- description: '대형 크기의 흰 테마 Outlined Inherit 버튼 예제입니다.'
58
- },
59
- {
60
- title: 'large-outlined-disabled',
61
- code: `<OpsnowCommonButton label="Label" size="large" variant="outlined" disabled onClick={muiButtonTest} />`,
62
- description: '대형 크기의 Disabled Outlined 버튼 예제입니다.'
63
- },
64
- {
65
- title: 'large-text-primary-icon-left',
66
- code: `<OpsnowCommonButton iconName="PlusCircleOutline" label="Label" variant="text" size="large" onClick={muiButtonTest} />`,
67
- description: '대형 크기의 Text Primary 버튼 (왼쪽 아이콘) 예제입니다.'
68
- },
69
- {
70
- title: 'large-text-secondary',
71
- code: `<OpsnowCommonButton label="Label" variant="text" size="large" color="secondary" onClick={muiButtonTest} />`,
72
- description: '대형 크기의 Text Secondary 버튼 예제입니다.'
73
- },
74
- {
75
- title: 'large-text-error',
76
- code: `<OpsnowCommonButton label="Label" variant="text" size="large" color="error" onClick={muiButtonTest} />`,
77
- description: '대형 크기의 Text Error 버튼 예제입니다.'
78
- },
79
- {
80
- title: 'large-text-inherit',
81
- code: `<OpsnowCommonButton label="Label" variant="text" size="large" color="inherit" onClick={muiButtonTest} />`,
82
- description: '대형 크기의 Text Inherit 버튼 예제입니다.'
83
- },
84
- {
85
- title: 'large-text-inherit-white-theme',
86
- code: `<OpsnowCommonButton label="Label" variant="text" theme="white" size="large" color="inherit" onClick={muiButtonTest} />`,
87
- description: '대형 크기의 흰 테마 Text Inherit 버튼 예제입니다.'
88
- },
89
- {
90
- title: 'large-text-disabled',
91
- code: `<OpsnowCommonButton label="Label" variant="text" size="large" disabled onClick={muiButtonTest} />`,
92
- description: '대형 크기의 Disabled Text 버튼 예제입니다.'
93
- },
94
- // === Medium size examples ===
95
- {
96
- title: 'medium-contained-primary-icon-left',
97
- code: `<OpsnowCommonButton muiIconName="mic" label="Label" onClick={muiButtonTest} />`,
98
- description: '중간 크기의 기본 Contained Primary 버튼 (왼쪽 아이콘) 예제입니다.'
99
- },
100
- {
101
- title: 'medium-contained-secondary',
102
- code: `<OpsnowCommonButton label="Label" color="secondary" onClick={muiButtonTest} />`,
103
- description: '중간 크기의 Contained Secondary 버튼 예제입니다.'
104
- },
105
- {
106
- title: 'medium-contained-error',
107
- code: `<OpsnowCommonButton label="Label" color="error" onClick={muiButtonTest} />`,
108
- description: '중간 크기의 Contained Error 버튼 예제입니다.'
109
- },
110
- {
111
- title: 'medium-contained-inherit',
112
- code: `<OpsnowCommonButton label="Label" color="inherit" onClick={muiButtonTest} />`,
113
- description: '중간 크기의 Contained Inherit 버튼 예제입니다.'
114
- },
115
- {
116
- title: 'medium-contained-inherit-white-theme',
117
- code: `<OpsnowCommonButton label="Label" theme="white" color="inherit" onClick={muiButtonTest} />`,
118
- description: '중간 크기의 흰 테마 Contained Inherit 버튼 예제입니다.'
119
- },
120
- {
121
- title: 'medium-contained-disabled',
122
- code: `<OpsnowCommonButton label="Label" theme="white" disabled onClick={muiButtonTest} />`,
123
- description: '중간 크기의 Disabled Contained 버튼 예제입니다.'
124
- },
125
- {
126
- title: 'medium-outlined-primary-icon-right',
127
- code: `<OpsnowCommonButton iconPosition="right" iconName="LogoAws" label="Label" variant="outlined" onClick={muiButtonTest} />`,
128
- description: '중간 크기의 Outlined Primary 버튼 (오른쪽 아이콘) 예제입니다.'
129
- },
130
- {
131
- title: 'medium-outlined-secondary',
132
- code: `<OpsnowCommonButton label="Label" variant="outlined" color="secondary" onClick={muiButtonTest} />`,
133
- description: '중간 크기의 Outlined Secondary 버튼 예제입니다.'
134
- },
135
- {
136
- title: 'medium-outlined-error',
137
- code: `<OpsnowCommonButton label="Label" variant="outlined" color="error" onClick={muiButtonTest} />`,
138
- description: '중간 크기의 Outlined Error 버튼 예제입니다.'
139
- }
140
- ];
141
- export const BadgeExamples = [
142
- // === No children badge examples ===
143
- {
144
- title: 'badge-no-children-primary',
145
- code: `<OpsnowCommonBadge badgeContent={4} color="primary" />`,
146
- description: '자식 없는 기본 Primary 배지 예제입니다.'
147
- },
148
- {
149
- title: 'badge-no-children-error',
150
- code: `<OpsnowCommonBadge badgeContent={4} color="error" />`,
151
- description: '자식 없는 Error 배지 예제입니다.'
152
- },
153
- {
154
- title: 'badge-no-children-info',
155
- code: `<OpsnowCommonBadge badgeContent={4} color="info" />`,
156
- description: '자식 없는 Info 배지 예제입니다.'
157
- },
158
- {
159
- title: 'badge-no-children-warning',
160
- code: `<OpsnowCommonBadge badgeContent={4} color="warning" />`,
161
- description: '자식 없는 Warning 배지 예제입니다.'
162
- },
163
- {
164
- title: 'badge-no-children-success',
165
- code: `<OpsnowCommonBadge badgeContent={4} color="success" />`,
166
- description: '자식 없는 Success 배지 예제입니다.'
167
- },
168
- // === Standard badge (with MailIcon) examples ===
169
- {
170
- title: 'badge-standard-primary',
171
- code: `<OpsnowCommonBadge badgeContent={4} color="primary">
172
- <MailIcon />
173
- </OpsnowCommonBadge>`,
174
- description: 'MailIcon이 포함된 Primary 배지 예제입니다.'
175
- },
176
- {
177
- title: 'badge-standard-error',
178
- code: `<OpsnowCommonBadge badgeContent={4} color="error">
179
- <MailIcon />
180
- </OpsnowCommonBadge>`,
181
- description: 'MailIcon이 포함된 Error 배지 예제입니다.'
182
- },
183
- {
184
- title: 'badge-standard-info',
185
- code: `<OpsnowCommonBadge badgeContent={4} color="info">
186
- <MailIcon />
187
- </OpsnowCommonBadge>`,
188
- description: 'MailIcon이 포함된 Info 배지 예제입니다.'
189
- },
190
- {
191
- title: 'badge-standard-warning',
192
- code: `<OpsnowCommonBadge badgeContent={4} color="warning">
193
- <MailIcon />
194
- </OpsnowCommonBadge>`,
195
- description: 'MailIcon이 포함된 Warning 배지 예제입니다.'
196
- },
197
- {
198
- title: 'badge-standard-success',
199
- code: `<OpsnowCommonBadge badgeContent={4} color="success">
200
- <MailIcon />
201
- </OpsnowCommonBadge>`,
202
- description: 'MailIcon이 포함된 Success 배지 예제입니다.'
203
- },
204
- {
205
- title: 'badge-standard-show-zero',
206
- code: `<OpsnowCommonBadge badgeContent={0} color="success" showZero>
207
- <MailIcon />
208
- </OpsnowCommonBadge>`,
209
- description: '0 값을 표시하는 ShowZero 옵션이 적용된 배지 예제입니다.'
210
- },
211
- // === Dot badge (with MailIcon) examples ===
212
- {
213
- title: 'badge-dot-primary',
214
- code: `<OpsnowCommonBadge badgeContent={4} color="primary" variant="dot">
215
- <MailIcon />
216
- </OpsnowCommonBadge>`,
217
- description: 'MailIcon이 포함된 Primary Dot 배지 예제입니다.'
218
- },
219
- {
220
- title: 'badge-dot-error',
221
- code: `<OpsnowCommonBadge badgeContent={4} color="error" variant="dot">
222
- <MailIcon />
223
- </OpsnowCommonBadge>`,
224
- description: 'MailIcon이 포함된 Error Dot 배지 예제입니다.'
225
- },
226
- {
227
- title: 'badge-dot-info',
228
- code: `<OpsnowCommonBadge badgeContent={4} color="info" variant="dot">
229
- <MailIcon />
230
- </OpsnowCommonBadge>`,
231
- description: 'MailIcon이 포함된 Info Dot 배지 예제입니다.'
232
- },
233
- {
234
- title: 'badge-dot-warning',
235
- code: `<OpsnowCommonBadge badgeContent={4} color="warning" variant="dot">
236
- <MailIcon />
237
- </OpsnowCommonBadge>`,
238
- description: 'MailIcon이 포함된 Warning Dot 배지 예제입니다.'
239
- },
240
- {
241
- title: 'badge-dot-success',
242
- code: `<OpsnowCommonBadge badgeContent={4} color="success" variant="dot">
243
- <MailIcon />
244
- </OpsnowCommonBadge>`,
245
- description: 'MailIcon이 포함된 Success Dot 배지 예제입니다.'
246
- }
247
- ];
248
- export const TextareaExamples = [
249
- {
250
- title: 'outlined-variant-default',
251
- code: `<OpsnowCommonTextarea
252
- placeholder="Outlined variant textarea"
253
- value={textOutlined}
254
- onChange={(e) => setTextOutlined(e.target.value)}
255
- variant="outlined"
256
- />`,
257
- description: 'Outlined Variant (default) 예제입니다.'
258
- },
259
- {
260
- title: 'standard-variant',
261
- code: `<OpsnowCommonTextarea
262
- placeholder="Standard variant textarea"
263
- value={textStandard}
264
- onChange={(e) => setTextStandard(e.target.value)}
265
- variant="standard"
266
- />`,
267
- description: 'Standard Variant 예제입니다.'
268
- },
269
- {
270
- title: 'filled-variant',
271
- code: `<OpsnowCommonTextarea
272
- placeholder="Filled variant textarea"
273
- value={textFilled}
274
- onChange={(e) => setTextFilled(e.target.value)}
275
- variant="filled"
276
- />`,
277
- description: 'Filled Variant 예제입니다.'
278
- },
279
- {
280
- title: 'fixed-height-rows-10',
281
- code: `<OpsnowCommonTextarea
282
- placeholder="Fixed height textarea"
283
- value={textFixed}
284
- onChange={(e) => setTextFixed(e.target.value)}
285
- rows={10}
286
- />`,
287
- description: 'Fixed Height (rows=10) 예제입니다.'
288
- },
289
- {
290
- title: 'auto-resize',
291
- code: `<OpsnowCommonTextarea
292
- placeholder="Auto resize textarea"
293
- autoSize
294
- value={textAuto}
295
- onChange={(e) => setTextAuto(e.target.value)}
296
- />`,
297
- description: 'Auto Resize 예제입니다.'
298
- },
299
- {
300
- title: 'with-helper-text',
301
- code: `<OpsnowCommonTextarea
302
- placeholder="Textarea with helper text"
303
- value={textHelper}
304
- onChange={(e) => setTextHelper(e.target.value)}
305
- helperText="Helper text goes here"
306
- />`,
307
- description: 'With Helper Text 예제입니다.'
308
- }
309
- ];
310
- export const SwitchExamples = [
311
- {
312
- title: 'default-switch',
313
- code: `<OpsnowCommonSwitch
314
- checked={switchStates.default}
315
- onChange={handleToggle('default')}
316
- />`,
317
- description: 'Default Switch 예제입니다.'
318
- },
319
- {
320
- title: 'default-switch-small',
321
- code: `<OpsnowCommonSwitch
322
- size="small"
323
- checked={switchStates.default}
324
- onChange={handleToggle('default')}
325
- />`,
326
- description: 'Default Switch (small) 예제입니다.'
327
- },
328
- {
329
- title: 'disabled-default-switch',
330
- code: `<OpsnowCommonSwitch
331
- checked={switchStates.default}
332
- onChange={handleToggle('default')}
333
- disabled
334
- />`,
335
- description: 'Disabled Default Switch 예제입니다.'
336
- },
337
- {
338
- title: 'primary-switch',
339
- code: `<OpsnowCommonSwitch
340
- checked={switchStates.primary}
341
- onChange={handleToggle('primary')}
342
- color="primary"
343
- />`,
344
- description: 'Primary Switch 예제입니다.'
345
- },
346
- {
347
- title: 'secondary-switch',
348
- code: `<OpsnowCommonSwitch
349
- checked={switchStates.secondary}
350
- onChange={handleToggle('secondary')}
351
- color="secondary"
352
- />`,
353
- description: 'Secondary Switch 예제입니다.'
354
- },
355
- {
356
- title: 'error-switch',
357
- code: `<OpsnowCommonSwitch
358
- checked={switchStates.error}
359
- onChange={handleToggle('error')}
360
- color="error"
361
- />`,
362
- description: 'Error Switch 예제입니다.'
363
- },
364
- {
365
- title: 'warning-switch',
366
- code: `<OpsnowCommonSwitch
367
- checked={switchStates.warning}
368
- onChange={handleToggle('warning')}
369
- color="warning"
370
- />`,
371
- description: 'Warning Switch 예제입니다.'
372
- },
373
- {
374
- title: 'info-switch',
375
- code: `<OpsnowCommonSwitch
376
- checked={switchStates.info}
377
- onChange={handleToggle('info')}
378
- color="info"
379
- />`,
380
- description: 'Info Switch 예제입니다.'
381
- },
382
- {
383
- title: 'success-switch',
384
- code: `<OpsnowCommonSwitch
385
- checked={switchStates.success}
386
- onChange={handleToggle('success')}
387
- color="success"
388
- />`,
389
- description: 'Success Switch 예제입니다.'
390
- }
391
- ];
392
- export const ChipExamples = [
393
- {
394
- title: 'default-chip-with-avatar-click-delete',
395
- code: `<OpsnowCommonChip
396
- label="Primary"
397
- color="default"
398
- deleteIcon={<OpsnowCommonIcon size={18} iconName="CloseSm" />}
399
- onClick={handleClickChip}
400
- onDelete={handleDeleteCip}
401
- avatar={<Avatar>OP</Avatar>}
402
- />`,
403
- description: 'Default Chips #1: avatar, click, delete 예제입니다.'
404
- },
405
- {
406
- title: 'default-chip-with-avatar-click',
407
- code: `<OpsnowCommonChip
408
- label="Default"
409
- color="default"
410
- deleteIcon={<OpsnowCommonIcon size={18} iconName="CloseSm" />}
411
- onClick={handleClickChip}
412
- avatar={<Avatar>OP</Avatar>}
413
- />`,
414
- description: 'Default Chips #2: avatar와 click 예제입니다.'
415
- },
416
- {
417
- title: 'default-chip-basic',
418
- code: `<OpsnowCommonChip
419
- label="Default"
420
- color="default"
421
- />`,
422
- description: 'Default Chips #3: 기본 예제입니다.'
423
- },
424
- {
425
- title: 'default-chip-deletable',
426
- code: `<OpsnowCommonChip
427
- label="Default"
428
- color="default"
429
- deleteIcon={<OpsnowCommonIcon size={18} iconName="CloseSm" />}
430
- onDelete={handleDeleteCip}
431
- />`,
432
- description: 'Default Chips #4: deleteOnly 예제입니다.'
433
- },
434
- {
435
- title: 'default-chip-disabled',
436
- code: `<OpsnowCommonChip
437
- label="Default"
438
- color="default"
439
- disabled
440
- />`,
441
- description: 'Default Chips #5: disabled 예제입니다.'
442
- },
443
- {
444
- title: 'default-chip-small-with-avatar-click-delete',
445
- code: `<OpsnowCommonChip
446
- label="Default"
447
- color="default"
448
- size="small"
449
- deleteIcon={<OpsnowCommonIcon size={18} iconName="CloseSm" />}
450
- onClick={handleClickChip}
451
- avatar={<Avatar>OP</Avatar>}
452
- />`,
453
- description: 'Default Chips #6 (small): avatar, click, delete 예제입니다.'
454
- },
455
- {
456
- title: 'default-chip-small-basic',
457
- code: `<OpsnowCommonChip
458
- label="Default"
459
- color="default"
460
- size="small"
461
- />`,
462
- description: 'Default Chips #7 (small): 기본 예제입니다.'
463
- },
464
- {
465
- title: 'default-chip-small-deletable',
466
- code: `<OpsnowCommonChip
467
- label="Default"
468
- color="default"
469
- size="small"
470
- deleteIcon={<OpsnowCommonIcon size={18} iconName="CloseSm" />}
471
- onDelete={handleDeleteCip}
472
- />`,
473
- description: 'Default Chips #8 (small): deleteOnly 예제입니다.'
474
- },
475
- {
476
- title: 'outlined-chip-with-avatar-click-delete',
477
- code: `<OpsnowCommonChip
478
- label="Default"
479
- color="default"
480
- variant="outlined"
481
- deleteIcon={<OpsnowCommonIcon size={18} iconName="CloseSm" />}
482
- onClick={handleClickChip}
483
- avatar={<Avatar>OP</Avatar>}
484
- />`,
485
- description: 'Outlined Variant #1: avatar, click, delete 예제입니다.'
486
- },
487
- {
488
- title: 'outlined-chip-basic',
489
- code: `<OpsnowCommonChip
490
- label="Default"
491
- color="default"
492
- variant="outlined"
493
- />`,
494
- description: 'Outlined Variant #2: 기본 예제입니다.'
495
- },
496
- {
497
- title: 'outlined-chip-deletable',
498
- code: `<OpsnowCommonChip
499
- label="Default"
500
- color="default"
501
- variant="outlined"
502
- deleteIcon={<OpsnowCommonIcon size={18} iconName="CloseSm" />}
503
- onDelete={handleDeleteCip}
504
- />`,
505
- description: 'Outlined Variant #3: deleteOnly 예제입니다.'
506
- },
507
- {
508
- title: 'outlined-chip-disabled',
509
- code: `<OpsnowCommonChip
510
- label="Default"
511
- color="default"
512
- variant="outlined"
513
- disabled
514
- />`,
515
- description: 'Outlined Variant #4: disabled 예제입니다.'
516
- },
517
- {
518
- title: 'outlined-chip-small-with-avatar-click',
519
- code: `<OpsnowCommonChip
520
- label="Default"
521
- color="default"
522
- variant="outlined"
523
- size="small"
524
- deleteIcon={<OpsnowCommonIcon size={18} iconName="CloseSm" />}
525
- onClick={handleClickChip}
526
- avatar={<Avatar>OP</Avatar>}
527
- />`,
528
- description: 'Outlined Variant #5 (small): avatar, click 예제입니다.'
529
- },
530
- {
531
- title: 'outlined-chip-small-basic',
532
- code: `<OpsnowCommonChip
533
- label="Default"
534
- color="default"
535
- variant="outlined"
536
- size="small"
537
- />`,
538
- description: 'Outlined Variant #6 (small): 기본 예제입니다.'
539
- },
540
- {
541
- title: 'outlined-chip-small-deletable',
542
- code: `<OpsnowCommonChip
543
- label="Default"
544
- color="default"
545
- variant="outlined"
546
- size="small"
547
- deleteIcon={<OpsnowCommonIcon size={18} iconName="CloseSm" />}
548
- onDelete={handleDeleteCip}
549
- />`,
550
- description: 'Outlined Variant #7 (small): deleteOnly 예제입니다.'
551
- },
552
- {
553
- title: 'outlined-chip-small-disabled',
554
- code: `<OpsnowCommonChip
555
- label="Default"
556
- color="default"
557
- variant="outlined"
558
- size="small"
559
- disabled
560
- />`,
561
- description: 'Outlined Variant #8 (small): disabled 예제입니다.'
562
- }
563
- ];
564
- export const TextFieldExamples = [
565
- // 1) Basic TextFields
566
- {
567
- title: 'basic-standard-name',
568
- code: `<OpsnowCommonTextField
569
- placeholder="Enter your name"
570
- adornmentLabel='less than'
571
- value={name}
572
- onChange={(e) => setName(e.target.value)}
573
- variant="standard"
574
- />`,
575
- description: 'Name (standard) 예제입니다.'
576
- },
577
- {
578
- title: 'basic-outlined-email',
579
- code: `<OpsnowCommonTextField
580
- placeholder="Enter your email"
581
- value={email}
582
- adornmentIconName='SearchMagnifier'
583
- onChange={handleEmailChange}
584
- helperText={emailHelperText}
585
- error={!!emailHelperText && emailHelperText !== '이메일을 입력하세요'}
586
- variant="outlined"
587
- />`,
588
- description: 'Email (outlined) 예제입니다.'
589
- },
590
- {
591
- title: 'basic-filled-password',
592
- code: `<OpsnowCommonTextField
593
- placeholder="Password"
594
- adornmentLabel='MB/M'
595
- adornmentPosition='end'
596
- type="password"
597
- value={password}
598
- onChange={(e) => setPassword(e.target.value)}
599
- variant="filled"
600
- />`,
601
- description: 'Password (filled) 예제입니다.'
602
- },
603
- {
604
- title: 'basic-outlined-password-preview',
605
- code: `<OpsnowCommonTextField
606
- placeholder="비밀번호를 입력하세요"
607
- variant="outlined"
608
- type={showPassword ? 'text' : 'password'}
609
- value={password}
610
- onChange={(e) => setPassword(e.target.value)}
611
- InputProps={{
612
- endAdornment: (
613
- <InputAdornment position="end">
614
- <IconButton
615
- aria-label={showPassword ? '비밀번호 숨기기' : '비밀번호 보이기'}
616
- onClick={handleToggleShow}
617
- onMouseDown={handleMouseDown}
618
- edge="end"
619
- >
620
- {showPassword ? <VisibilityOff /> : <Visibility />}
621
- </IconButton>
622
- </InputAdornment>
623
- ),
624
- }}
625
- />`,
626
- description: 'Password 미리보기 (outlined) 예제입니다.'
627
- },
628
- {
629
- title: 'basic-outlined-readonly',
630
- code: `<OpsnowCommonTextField
631
- placeholder="Read Only"
632
- value="Read only text"
633
- inputProps={{ readOnly: true }}
634
- variant="outlined"
635
- />`,
636
- description: 'Read Only (outlined) 예제입니다.'
637
- },
638
- {
639
- title: 'basic-standard-number-only',
640
- code: `<OpsnowCommonTextField
641
- placeholder="Enter numbers only"
642
- variant="standard"
643
- type="number"
644
- value={number}
645
- onChange={(e) => setNumber(e.target.value.replace(/[^0-9]/g, ''))}
646
- inputProps={{ inputMode: 'numeric', pattern: '[0-9]*' }}
647
- />`,
648
- description: 'Number Only (standard) 예제입니다.'
649
- },
650
- // 2) Error States
651
- {
652
- title: 'error-filled',
653
- code: `<OpsnowCommonTextField
654
- placeholder="Email"
655
- error
656
- variant="filled"
657
- />`,
658
- description: 'Filled Error 예제입니다.'
659
- },
660
- {
661
- title: 'error-outlined',
662
- code: `<OpsnowCommonTextField
663
- placeholder="Password"
664
- type="password"
665
- error
666
- variant="outlined"
667
- />`,
668
- description: 'Outlined Error 예제입니다.'
669
- },
670
- // 3) Disabled States
671
- {
672
- title: 'disabled-standard',
673
- code: `<OpsnowCommonTextField
674
- placeholder="Disabled Input"
675
- variant="standard"
676
- disabled
677
- />`,
678
- description: 'Standard Disabled 예제입니다.'
679
- },
680
- {
681
- title: 'disabled-outlined',
682
- code: `<OpsnowCommonTextField
683
- placeholder="Disabled Input"
684
- disabled
685
- variant="outlined"
686
- />`,
687
- description: 'Outlined Disabled 예제입니다.'
688
- },
689
- {
690
- title: 'disabled-filled',
691
- code: `<OpsnowCommonTextField
692
- placeholder="Disabled Input"
693
- disabled
694
- variant="filled"
695
- />`,
696
- description: 'Filled Disabled 예제입니다.'
697
- },
698
- {
699
- title: 'disabled-with-value',
700
- code: `<OpsnowCommonTextField
701
- placeholder="Disabled with Value"
702
- value="Can't edit this"
703
- disabled
704
- variant="outlined"
705
- />`,
706
- description: 'Disabled with Value 예제입니다.'
707
- },
708
- // 4) Additional Variants
709
- {
710
- title: 'variant-filled',
711
- code: `<OpsnowCommonTextField
712
- placeholder="Filled"
713
- variant="filled"
714
- value="Filled variant"
715
- />`,
716
- description: 'Filled 예제입니다.'
717
- },
718
- {
719
- title: 'variant-outlined',
720
- code: `<OpsnowCommonTextField
721
- placeholder="Outlined"
722
- variant="outlined"
723
- value="Outlined variant"
724
- />`,
725
- description: 'Outlined 예제입니다.'
726
- },
727
- {
728
- title: 'variant-medium-standard',
729
- code: `<OpsnowCommonTextField
730
- placeholder="Medium Size"
731
- size="medium"
732
- variant="standard"
733
- />`,
734
- description: 'Medium (standard) 예제입니다.'
735
- },
736
- {
737
- title: 'variant-small-outlined',
738
- code: `<OpsnowCommonTextField
739
- placeholder="Small Size"
740
- size="small"
741
- variant="outlined"
742
- />`,
743
- description: 'Small (outlined) 예제입니다.'
744
- }
745
- ];
746
- export const AvatarExamples = [
747
- // 1) Basic Avatars
748
- {
749
- title: 'basic-avatar-no-badge',
750
- code: `<OpsnowCommonAvatar />`,
751
- description: 'Basic Avatar (no badge) 예제입니다.'
752
- },
753
- {
754
- title: 'basic-avatar-with-badge',
755
- code: `<OpsnowCommonAvatar showBadge />`,
756
- description: 'Basic Avatar with badge 예제입니다.'
757
- },
758
- // 2) Text Avatars
759
- {
760
- title: 'text-avatar-xsmall',
761
- code: `<OpsnowCommonAvatar size="xsmall">홍길동</OpsnowCommonAvatar>`,
762
- description: 'Text Avatar (xsmall) 예제입니다.'
763
- },
764
- {
765
- title: 'text-avatar-small',
766
- code: `<OpsnowCommonAvatar size="small">OpsNow</OpsnowCommonAvatar>`,
767
- description: 'Text Avatar (small) 예제입니다.'
768
- },
769
- {
770
- title: 'text-avatar-medium',
771
- code: `<OpsnowCommonAvatar>옵스나우</OpsnowCommonAvatar>`,
772
- description: 'Text Avatar (medium) 예제입니다.'
773
- },
774
- {
775
- title: 'text-avatar-large',
776
- code: `<OpsnowCommonAvatar size="large">Test Company</OpsnowCommonAvatar>`,
777
- description: 'Text Avatar (large) 예제입니다.'
778
- },
779
- // 3) Avatars with OpsnowCommonIcon
780
- {
781
- title: 'icon-avatar-xsmall',
782
- code: `<OpsnowCommonAvatar size="xsmall"><OpsnowCommonIcon iconName="CloudPlus" /></OpsnowCommonAvatar>`,
783
- description: 'Avatar with OpsnowCommonIcon (xsmall) 예제입니다.'
784
- },
785
- {
786
- title: 'icon-avatar-small',
787
- code: `<OpsnowCommonAvatar size="small"><OpsnowCommonIcon iconName="CloudPlus" /></OpsnowCommonAvatar>`,
788
- description: 'Avatar with OpsnowCommonIcon (small) 예제입니다.'
789
- },
790
- {
791
- title: 'icon-avatar-medium',
792
- code: `<OpsnowCommonAvatar><OpsnowCommonIcon iconName="CloudPlus" /></OpsnowCommonAvatar>`,
793
- description: 'Avatar with OpsnowCommonIcon (medium) 예제입니다.'
794
- },
795
- {
796
- title: 'icon-avatar-large',
797
- code: `<OpsnowCommonAvatar size="large"><OpsnowCommonIcon iconName="CloudPlus" /></OpsnowCommonAvatar>`,
798
- description: 'Avatar with OpsnowCommonIcon (large) 예제입니다.'
799
- },
800
- // 4) Different Variant & Colors
801
- {
802
- title: 'variant-avatar-circular-red',
803
- code: `<OpsnowCommonAvatar
804
- variant="circular"
805
- size="medium"
806
- sx={{ bgcolor: 'red', color: 'white' }}
807
- >
808
- 홍gildong
809
- </OpsnowCommonAvatar>`,
810
- description: 'Circular variant (red) 예제입니다.'
811
- },
812
- {
813
- title: 'variant-avatar-rounded-green',
814
- code: `<OpsnowCommonAvatar
815
- variant="rounded"
816
- size="medium"
817
- sx={{ bgcolor: 'green', color: 'white' }}
818
- >
819
- OpsNow
820
- </OpsnowCommonAvatar>`,
821
- description: 'Rounded variant (green) 예제입니다.'
822
- },
823
- {
824
- title: 'variant-avatar-square-blue',
825
- code: `<OpsnowCommonAvatar
826
- variant="square"
827
- size="medium"
828
- sx={{ bgcolor: 'blue', color: 'white' }}
829
- >
830
- T스트
831
- </OpsnowCommonAvatar>`,
832
- description: 'Square variant (blue) 예제입니다.'
833
- },
834
- // 5) Avatar with Image
835
- {
836
- title: 'image-avatar-sample',
837
- code: `<OpsnowCommonAvatar alt="Sample Avatar" src={sampleImageUrl} />`,
838
- description: 'Avatar with image 예제입니다.'
839
- },
840
- // 6) Various Sizes
841
- {
842
- title: 'image-avatar-xsmall',
843
- code: `<OpsnowCommonAvatar alt="xsmall Avatar" src={sampleImageUrl} size="xsmall" />`,
844
- description: 'Image Avatar (xsmall) 예제입니다.'
845
- },
846
- {
847
- title: 'image-avatar-small',
848
- code: `<OpsnowCommonAvatar alt="small Avatar" src={sampleImageUrl} size="small" />`,
849
- description: 'Image Avatar (small) 예제입니다.'
850
- },
851
- {
852
- title: 'image-avatar-medium',
853
- code: `<OpsnowCommonAvatar alt="medium Avatar" src={sampleImageUrl} size="medium" />`,
854
- description: 'Image Avatar (medium) 예제입니다.'
855
- },
856
- {
857
- title: 'image-avatar-large',
858
- code: `<OpsnowCommonAvatar alt="large Avatar" src={sampleImageUrl} size="large" />`,
859
- description: 'Image Avatar (large) 예제입니다.'
860
- },
861
- // 7) Clickable Avatar
862
- {
863
- title: 'clickable-avatar',
864
- code: `<OpsnowCommonAvatar
865
- alt="Clickable Avatar"
866
- src={sampleImageUrl}
867
- onClick={() => { alert('Avatar clicked!') }}
868
- />`,
869
- description: 'Clickable Avatar 예제입니다.'
870
- },
871
- // 8) alt Property
872
- {
873
- title: 'avatar-no-exist-image-alt',
874
- code: `<OpsnowCommonAvatar alt="Digital platform" src={noExistImageUrl} />`,
875
- description: 'No Exist Image 예제입니다.'
876
- }
877
- ];
878
- export const CheckboxExamples = [
879
- {
880
- title: 'primary-checkbox-small',
881
- code: `<OpsnowCommonCheckbox
882
- color="primary"
883
- checked={checkboxStates.primary}
884
- onChange={handleCheckboxChange}
885
- name="primary"
886
- label="Primary (Small)"
887
- size="small"
888
- />`,
889
- description: 'Primary Checkbox (small) 예제입니다.'
890
- },
891
- {
892
- title: 'primary-checkbox-large',
893
- code: `<OpsnowCommonCheckbox
894
- color="primary"
895
- checked={checkboxStates.primary}
896
- onChange={handleCheckboxChange}
897
- name="primary"
898
- label="Primary (large)"
899
- size="large"
900
- />`,
901
- description: 'Primary Checkbox (large) 예제입니다.'
902
- },
903
- {
904
- title: 'secondary-checkbox',
905
- code: `<OpsnowCommonCheckbox
906
- color="secondary"
907
- checked={checkboxStates.secondary}
908
- onChange={handleCheckboxChange}
909
- name="secondary"
910
- label="Secondary"
911
- />`,
912
- description: 'Secondary Checkbox 예제입니다.'
913
- },
914
- {
915
- title: 'error-checkbox',
916
- code: `<OpsnowCommonCheckbox
917
- color="error"
918
- checked={checkboxStates.error}
919
- onChange={handleCheckboxChange}
920
- name="error"
921
- label="Error"
922
- />`,
923
- description: 'Error Checkbox 예제입니다.'
924
- },
925
- {
926
- title: 'success-checkbox',
927
- code: `<OpsnowCommonCheckbox
928
- color="success"
929
- checked={checkboxStates.success}
930
- onChange={handleCheckboxChange}
931
- name="success"
932
- label="Success"
933
- />`,
934
- description: 'Success Checkbox 예제입니다.'
935
- },
936
- {
937
- title: 'warning-checkbox',
938
- code: `<OpsnowCommonCheckbox
939
- color="warning"
940
- checked={checkboxStates.warning}
941
- onChange={handleCheckboxChange}
942
- name="warning"
943
- label="Warning"
944
- />`,
945
- description: 'Warning Checkbox 예제입니다.'
946
- },
947
- {
948
- title: 'info-checkbox',
949
- code: `<OpsnowCommonCheckbox
950
- color="info"
951
- checked={checkboxStates.info}
952
- onChange={handleCheckboxChange}
953
- name="info"
954
- label="Info"
955
- />`,
956
- description: 'Info Checkbox 예제입니다.'
957
- },
958
- {
959
- title: 'default-checkbox',
960
- code: `<OpsnowCommonCheckbox
961
- checked={checkboxStates.default}
962
- onChange={handleCheckboxChange}
963
- name="default"
964
- label="Default"
965
- />`,
966
- description: 'Default Checkbox 예제입니다.'
967
- },
968
- {
969
- title: 'disabled-checkbox',
970
- code: `<OpsnowCommonCheckbox
971
- disabled
972
- checked={checkboxStates.disabled}
973
- onChange={handleCheckboxChange}
974
- name="disabled"
975
- label="Disabled"
976
- />`,
977
- description: 'Disabled Checkbox 예제입니다.'
978
- },
979
- {
980
- title: 'parent-checkbox',
981
- code: `<OpsnowCommonCheckbox
982
- checked={checkboxStates.parent}
983
- indeterminate={!checkboxStates.parent && (checkboxStates.child1 || checkboxStates.child2 || checkboxStates.child3)}
984
- onChange={handleParentCheckboxChange}
985
- name="parent"
986
- label="Parent Checkbox"
987
- />`,
988
- description: 'Parent Checkbox 예제입니다.'
989
- },
990
- {
991
- title: 'child1-checkbox',
992
- code: `<OpsnowCommonCheckbox
993
- checked={checkboxStates.child1}
994
- onChange={handleChildCheckboxChange}
995
- name="child1"
996
- label="Child Checkbox 1"
997
- />`,
998
- description: 'Child Checkbox 1 예제입니다.'
999
- },
1000
- {
1001
- title: 'child2-checkbox',
1002
- code: `<OpsnowCommonCheckbox
1003
- checked={checkboxStates.child2}
1004
- onChange={handleChildCheckboxChange}
1005
- name="child2"
1006
- label="Child Checkbox 2"
1007
- />`,
1008
- description: 'Child Checkbox 2 예제입니다.'
1009
- },
1010
- {
1011
- title: 'child3-checkbox',
1012
- code: `<OpsnowCommonCheckbox
1013
- checked={checkboxStates.child3}
1014
- onChange={handleChildCheckboxChange}
1015
- name="child3"
1016
- label="Child Checkbox 3"
1017
- />`,
1018
- description: 'Child Checkbox 3 예제입니다.'
1019
- }
1020
- ];
1021
- export const RadioGroupExamples = [
1022
- {
1023
- title: 'primary-radio-group-small',
1024
- code: `<OpsnowCommonRadioGroup
1025
- options={options}
1026
- color="primary"
1027
- name="radio-buttons-primary"
1028
- defaultValue="option1"
1029
- row
1030
- size="small"
1031
- />`,
1032
- description: 'Primary RadioGroup (small) 예제입니다.'
1033
- },
1034
- {
1035
- title: 'primary-radio-group-large',
1036
- code: `<OpsnowCommonRadioGroup
1037
- options={options}
1038
- color="primary"
1039
- name="radio-buttons-primary"
1040
- defaultValue="option1"
1041
- row
1042
- size="large"
1043
- />`,
1044
- description: 'Primary RadioGroup (large) 예제입니다.'
1045
- },
1046
- {
1047
- title: 'secondary-radio-group',
1048
- code: `<OpsnowCommonRadioGroup
1049
- options={options}
1050
- color="secondary"
1051
- name="radio-buttons-secondary"
1052
- defaultValue="option1"
1053
- row
1054
- />`,
1055
- description: 'Secondary RadioGroup 예제입니다.'
1056
- },
1057
- {
1058
- title: 'error-radio-group',
1059
- code: `<OpsnowCommonRadioGroup
1060
- options={options}
1061
- color="error"
1062
- name="radio-buttons-error"
1063
- defaultValue="option1"
1064
- row
1065
- />`,
1066
- description: 'Error RadioGroup 예제입니다.'
1067
- },
1068
- {
1069
- title: 'success-radio-group',
1070
- code: `<OpsnowCommonRadioGroup
1071
- options={options}
1072
- color="success"
1073
- name="radio-buttons-success"
1074
- defaultValue="option1"
1075
- row
1076
- />`,
1077
- description: 'Success RadioGroup 예제입니다.'
1078
- },
1079
- {
1080
- title: 'warning-radio-group',
1081
- code: `<OpsnowCommonRadioGroup
1082
- options={options}
1083
- color="warning"
1084
- name="radio-buttons-warning"
1085
- defaultValue="option1"
1086
- row
1087
- />`,
1088
- description: 'Warning RadioGroup 예제입니다.'
1089
- },
1090
- {
1091
- title: 'info-radio-group',
1092
- code: `<OpsnowCommonRadioGroup
1093
- options={options}
1094
- color="info"
1095
- name="radio-buttons-info"
1096
- defaultValue="option1"
1097
- row
1098
- />`,
1099
- description: 'Info RadioGroup 예제입니다.'
1100
- },
1101
- {
1102
- title: 'default-radio-group',
1103
- code: `<OpsnowCommonRadioGroup
1104
- options={options}
1105
- color="default"
1106
- name="radio-buttons-default"
1107
- defaultValue="option1"
1108
- row
1109
- />`,
1110
- description: 'Default RadioGroup 예제입니다.'
1111
- }
1112
- ];
1113
- export const CollapseExamples = [
1114
- {
1115
- title: 'default-collapse',
1116
- code: `<OpsnowCommonCollapse
1117
- label="Toggle ContentToggle ContentToggle ContentToggle ContentToggle ContentToggle ContentToggle ContentToggle ContentToggle Content"
1118
- >
1119
- <div>This is the content inside the collapse component.</div>
1120
- </OpsnowCommonCollapse>`,
1121
- description: '기본 Collapse 예제입니다.'
1122
- },
1123
- {
1124
- title: 'controlled-collapse',
1125
- code: `<OpsnowCommonCollapse
1126
- label="Toggle ContentToggle ContentToggle ContentToggle ContentToggle ContentToggle ContentToggle ContentToggle ContentToggle Content"
1127
- defaultExpanded
1128
- >
1129
- <div>This is the content inside the collapse component.</div>
1130
- </OpsnowCommonCollapse>`,
1131
- description: 'defaultExpanded 속성이 설정된 Collapse 예제입니다.'
1132
- }
1133
- ];
1134
- export const SliderExamples = [
1135
- // 1) Continuous Sliders
1136
- {
1137
- title: 'continuous-slider-primary-medium',
1138
- code: `<OpsnowCommonSlider defaultValue={30} color="primary" size="medium" />`,
1139
- description: 'Continuous Slider (primary, medium) 예제입니다.'
1140
- },
1141
- {
1142
- title: 'continuous-slider-secondary-small',
1143
- code: `<OpsnowCommonSlider defaultValue={50} color="secondary" size="small" />`,
1144
- description: 'Continuous Slider (secondary, small) 예제입니다.'
1145
- },
1146
- // 2) Discrete Sliders
1147
- {
1148
- title: 'discrete-slider-primary-medium',
1149
- code: `<OpsnowCommonSlider
1150
- defaultValue={30}
1151
- color="primary"
1152
- size="medium"
1153
- step={10}
1154
- marks
1155
- valueLabelDisplay="auto"
1156
- />`,
1157
- description: 'Discrete Slider (primary, medium) 예제입니다.'
1158
- },
1159
- {
1160
- title: 'discrete-slider-secondary-small',
1161
- code: `<OpsnowCommonSlider
1162
- defaultValue={50}
1163
- color="secondary"
1164
- size="small"
1165
- step={10}
1166
- marks
1167
- valueLabelDisplay="auto"
1168
- />`,
1169
- description: 'Discrete Slider (secondary, small) 예제입니다.'
1170
- },
1171
- // 3) Range Sliders
1172
- {
1173
- title: 'range-slider-primary-medium',
1174
- code: `<OpsnowCommonSlider defaultValue={[20, 60]} color="primary" size="medium" />`,
1175
- description: 'Range Slider (primary, medium) 예제입니다.'
1176
- },
1177
- {
1178
- title: 'range-slider-secondary-small',
1179
- code: `<OpsnowCommonSlider defaultValue={[30, 70]} color="secondary" size="small" />`,
1180
- description: 'Range Slider (secondary, small) 예제입니다.'
1181
- },
1182
- // 4) Disabled Slider
1183
- {
1184
- title: 'disabled-continuous-slider',
1185
- code: `<OpsnowCommonSlider
1186
- defaultValue={30}
1187
- color="primary"
1188
- size="medium"
1189
- disabled
1190
- />`,
1191
- description: 'Disabled Continuous Slider 예제입니다.'
1192
- },
1193
- // 5) Range with Value Labels
1194
- {
1195
- title: 'range-slider-with-marks',
1196
- code: `<OpsnowCommonSlider
1197
- defaultValue={[80, 220]}
1198
- color="primary"
1199
- size="medium"
1200
- valueLabelDisplay="on"
1201
- marks={marks}
1202
- min={1}
1203
- max={300}
1204
- />`,
1205
- description: 'Range Slider with value labels 예제입니다.'
1206
- },
1207
- // 6) Custom Marks Slider
1208
- {
1209
- title: 'custom-marks-slider',
1210
- code: `<Box sx={{ width: 300, margin: '0 auto' }}>
1211
- <OpsnowCommonSlider
1212
- aria-label="Custom marks"
1213
- defaultValue={20}
1214
- getAriaValueText={valuetext}
1215
- step={10}
1216
- marks={temperatureMarks}
1217
- valueLabelDisplay="auto"
1218
- color="primary"
1219
- size="medium"
1220
- />
1221
- </Box>`,
1222
- description: 'Custom Marks Slider 예제입니다.'
1223
- },
1224
- // 7) Vertical Sliders
1225
- {
1226
- title: 'vertical-slider-default',
1227
- code: `<OpsnowCommonSlider
1228
- orientation="vertical"
1229
- defaultValue={30}
1230
- color="primary"
1231
- size="medium"
1232
- />`,
1233
- description: 'Vertical Slider (default) 예제입니다.'
1234
- },
1235
- {
1236
- title: 'vertical-slider-disabled',
1237
- code: `<OpsnowCommonSlider
1238
- orientation="vertical"
1239
- defaultValue={30}
1240
- color="primary"
1241
- size="medium"
1242
- disabled
1243
- />`,
1244
- description: 'Vertical Slider (disabled) 예제입니다.'
1245
- },
1246
- {
1247
- title: 'vertical-slider-no-value',
1248
- code: `<OpsnowCommonSlider
1249
- orientation="vertical"
1250
- color="primary"
1251
- size="medium"
1252
- />`,
1253
- description: 'Vertical Slider (no value) 예제입니다.'
1254
- }
1255
- ];
1256
- export const LinkExamples = [
1257
- {
1258
- title: 'primary-link-always-underline-click',
1259
- code: `<OpsnowCommonLink
1260
- href="#"
1261
- color="primary"
1262
- underline="always"
1263
- onClick={(event) => handleClick(event, 'Primary Link (Always underline)')}
1264
- >
1265
- Primary Link (Always underline)
1266
- </OpsnowCommonLink>`,
1267
- description: 'Primary Link (Always underline) onClick 예제입니다.'
1268
- },
1269
- {
1270
- title: 'primary-link-hover-underline-click',
1271
- code: `<OpsnowCommonLink
1272
- href="#"
1273
- color="primary"
1274
- underline="hover"
1275
- onClick={(event) => handleClick(event, 'Primary Link (hover)')}
1276
- >
1277
- Primary Link (hover)
1278
- </OpsnowCommonLink>`,
1279
- description: 'Primary Link (hover) onClick 예제입니다.'
1280
- },
1281
- {
1282
- title: 'primary-link-no-underline-click',
1283
- code: `<OpsnowCommonLink
1284
- href="#"
1285
- color="primary"
1286
- underline="none"
1287
- onClick={(event) => handleClick(event, 'Primary Link (No underline)')}
1288
- >
1289
- Primary Link (No underline)
1290
- </OpsnowCommonLink>`,
1291
- description: 'Primary Link (No underline) onClick 예제입니다.'
1292
- },
1293
- {
1294
- title: 'inherit-link-always-underline',
1295
- code: `<OpsnowCommonLink
1296
- href="#"
1297
- color="inherit"
1298
- underline="always"
1299
- >
1300
- Inherit Link (Always underline)
1301
- </OpsnowCommonLink>`,
1302
- description: 'Inherit Link (Always underline) 예제입니다.'
1303
- },
1304
- {
1305
- title: 'inherit-link-hover-underline',
1306
- code: `<OpsnowCommonLink
1307
- href="#"
1308
- color="inherit"
1309
- underline="hover"
1310
- >
1311
- Inherit Link (hover)
1312
- </OpsnowCommonLink>`,
1313
- description: 'Inherit Link (hover) 예제입니다.'
1314
- },
1315
- {
1316
- title: 'inherit-link-no-underline',
1317
- code: `<OpsnowCommonLink
1318
- href="#"
1319
- color="inherit"
1320
- underline="none"
1321
- >
1322
- Inherit Link (No underline)
1323
- </OpsnowCommonLink>`,
1324
- description: 'Inherit Link (No underline) 예제입니다.'
1325
- },
1326
- {
1327
- title: 'focusable-primary-link',
1328
- code: `<OpsnowCommonLink
1329
- href="#"
1330
- color="primary"
1331
- underline="always"
1332
- >
1333
- Focusable Primary Link
1334
- </OpsnowCommonLink>`,
1335
- description: 'Focusable Primary Link 예제입니다.'
1336
- },
1337
- {
1338
- title: 'focusable-inherit-link',
1339
- code: `<OpsnowCommonLink
1340
- href="#"
1341
- color="inherit"
1342
- underline="none"
1343
- >
1344
- Focusable Inherit Link
1345
- </OpsnowCommonLink>`,
1346
- description: 'Focusable Inherit Link 예제입니다.'
1347
- }
1348
- ];
1349
- export const TreeViewExamples = [
1350
- {
1351
- title: 'basic-treeview-with-mui-icons',
1352
- code: `<OpsnowCommonTreeView
1353
- data={[
1354
- {
1355
- id: 'c1',
1356
- label: 'Settings',
1357
- muiIconName: 'settings',
1358
- children: [
1359
- {
1360
- id: 'c11',
1361
- label: 'Profile',
1362
- muiIconName: 'person',
1363
- },
1364
- {
1365
- id: 'c12',
1366
- label: 'Security',
1367
- muiIconName: 'lock',
1368
- },
1369
- {
1370
- id: 'c13',
1371
- label: 'Notifications',
1372
- muiIconName: 'notifications',
1373
- },
1374
- ],
1375
- },
1376
- {
1377
- id: 'c2',
1378
- label: 'Help',
1379
- muiIconName: 'help',
1380
- children: [
1381
- {
1382
- id: 'c21',
1383
- label: 'Documentation',
1384
- muiIconName: 'menu_book',
1385
- },
1386
- {
1387
- id: 'c22',
1388
- label: 'Support',
1389
- muiIconName: 'support_agent',
1390
- },
1391
- ],
1392
- },
1393
- ]}
1394
- onNodeClick={handleNodeClick}
1395
- selectedNodeId={selectedNode?.id}
1396
- />`,
1397
- description: 'Material-UI 아이콘을 사용한 기본 TreeView 예제입니다.'
1398
- },
1399
- {
1400
- title: 'treeview-no-search-no-total',
1401
- code: `<OpsnowCommonTreeView
1402
- data={treeData}
1403
- searchable={false}
1404
- showTotal={false}
1405
- defaultExpandAll={true}
1406
- onNodeClick={handleNodeClick}
1407
- selectedNodeId={selectedNode?.id}
1408
- />`,
1409
- description: '검색 기능과 Total 라벨을 숨긴 TreeView 예제입니다.'
1410
- },
1411
- {
1412
- title: 'treeview-with-total-label',
1413
- code: `<OpsnowCommonTreeView
1414
- data={treeData}
1415
- totalLabel="All Items"
1416
- totalIconName="FolderOpen"
1417
- onTotalClick={handleTotalClick}
1418
- onNodeClick={handleNodeClick}
1419
- selectedNodeId={selectedNode?.id}
1420
- />`,
1421
- description: 'Total 라벨과 아이콘이 있는 TreeView 예제입니다.'
1422
- },
1423
- {
1424
- title: 'treeview-with-render-content',
1425
- code: `<OpsnowCommonTreeView
1426
- data={treeData}
1427
- renderRightContent={(node) => (
1428
- <Chip label={node.count || 0} size="small" />
1429
- )}
1430
- onNodeClick={handleNodeClick}
1431
- selectedNodeId={selectedNode?.id}
1432
- />`,
1433
- description: '각 노드 우측에 커스텀 콘텐츠를 렌더링하는 TreeView 예제입니다.'
1434
- },
1435
- {
1436
- title: 'treeview-expanded-by-default',
1437
- code: `<OpsnowCommonTreeView
1438
- data={treeData}
1439
- defaultExpandAll={true}
1440
- searchable={true}
1441
- onNodeClick={handleNodeClick}
1442
- selectedNodeId={selectedNode?.id}
1443
- />`,
1444
- description: '기본적으로 모든 노드가 확장된 TreeView 예제입니다.'
1445
- },
1446
- {
1447
- title: 'treeview-cloud-providers',
1448
- code: `<OpsnowCommonTreeView
1449
- data={[
1450
- {
1451
- id: 'aws',
1452
- label: 'AWS',
1453
- muiIconName: 'cloud',
1454
- children: [
1455
- { id: 'ec2', label: 'EC2', muiIconName: 'storage' },
1456
- { id: 's3', label: 'S3', muiIconName: 'folder' },
1457
- { id: 'rds', label: 'RDS', muiIconName: 'database' },
1458
- ],
1459
- },
1460
- {
1461
- id: 'azure',
1462
- label: 'Azure',
1463
- muiIconName: 'cloud',
1464
- children: [
1465
- { id: 'vm', label: 'Virtual Machines', muiIconName: 'computer' },
1466
- { id: 'blob', label: 'Blob Storage', muiIconName: 'folder' },
1467
- ],
1468
- },
1469
- {
1470
- id: 'gcp',
1471
- label: 'GCP',
1472
- muiIconName: 'cloud',
1473
- children: [
1474
- { id: 'compute', label: 'Compute Engine', muiIconName: 'dns' },
1475
- { id: 'gcs', label: 'Cloud Storage', muiIconName: 'cloud_upload' },
1476
- ],
1477
- },
1478
- ]}
1479
- totalLabel="All Cloud Providers"
1480
- searchable={true}
1481
- onNodeClick={handleNodeClick}
1482
- selectedNodeId={selectedNode?.id}
1483
- />`,
1484
- description: '클라우드 프로바이더 트리 구조 예제입니다.'
1485
- },
1486
- {
1487
- title: 'treeview-with-checkbox-multiselect',
1488
- code: `<OpsnowCommonTreeView
1489
- data={sampleTreeData}
1490
- checkboxSelection={true}
1491
- multiSelect={true}
1492
- onCheckedItemsChange={handleMultiCheckedItemsChange}
1493
- defaultCheckedItems={multiCheckedItems}
1494
- showTotal={true}
1495
- totalLabel="Total"
1496
- totalIconName="Building"
1497
- searchable={false}
1498
- defaultExpandAll={true}
1499
- />`,
1500
- description: '체크박스와 다중 선택 기능이 있는 TreeView 예제입니다.'
1501
- },
1502
- {
1503
- title: 'treeview-checkbox-with-custom-content',
1504
- code: `<OpsnowCommonTreeView
1505
- data={sampleTreeData}
1506
- checkboxSelection={true}
1507
- multiSelect={true}
1508
- onCheckedItemsChange={handleMultiCheckedItemsChange}
1509
- defaultCheckedItems={multiCheckedItems}
1510
- showTotal={true}
1511
- totalLabel="Total"
1512
- totalIconName="Building"
1513
- onTotalClick={handleTotalClick}
1514
- renderTotalRightContent={() => (
1515
- <OpsnowCommonChip
1516
- label={\`\${String(sampleTreeData.length)} BU\`}
1517
- size="small"
1518
- sx={{
1519
- backgroundColor: 'white',
1520
- border: '1px solid',
1521
- }}
1522
- />
1523
- )}
1524
- searchable={false}
1525
- defaultExpandAll={true}
1526
- renderRightContent={(node) => (
1527
- <OpsnowCommonChip
1528
- label={
1529
- node.children && node.children.length > 0
1530
- ? \`\${String(node.children.length)} Teams\`
1531
- : String(node.data?.memberCount ?? '0')
1532
- }
1533
- size="small"
1534
- sx={{
1535
- backgroundColor: 'white',
1536
- border: '1px solid',
1537
- }}
1538
- />
1539
- )}
1540
- />`,
1541
- description: '체크박스, 커스텀 콘텐츠, Chip이 함께 사용된 TreeView 예제입니다.'
1542
- }
1543
- ];
1544
- export const InsightCardExamples = [
1545
- {
1546
- title: 'basic-insight-card-with-loading',
1547
- code: `<Box sx={{ mt: 2 }}><OpsnowCommonInsightCard loading={loading} loadingStage={loadingStage} insightText={insightText} title="Opsnow Insight AI" subtitle="AI-powered cost analysis and recommendations" /></Box>`,
1548
- description: '로딩 상태와 AI insight 텍스트를 표시하는 InsightCard (타일 형태) 예제입니다.'
1549
- }
1550
- ];
1551
- export const InsightContentExamples = [
1552
- {
1553
- title: 'basic-insight-content',
1554
- code: `<OpsnowCommonInsightContent
1555
- loading={loading}
1556
- loadingStage={loadingStage}
1557
- insightText={insightText}
1558
- collapsed={false}
1559
- />`,
1560
- description: '타일 없이 AI insight 콘텐츠만 표시하는 InsightContent 예제입니다.'
1561
- },
1562
- {
1563
- title: 'popup-content-rtf-download',
1564
- code: `// useCommonComponents에서 downloadInsightAsRtf 가져오기
1565
- const { OpsnowCommonInsightContent, OpsnowCommonPopup, downloadInsightAsRtf } = useCommonComponents()
1566
-
1567
- // downloadInsightAsRtf 유틸리티로 RTF 파일 다운로드
1568
- const handleDownload = useCallback(() => {
1569
- downloadInsightAsRtf({
1570
- text: popupInsightText,
1571
- title: 'AI_Insight',
1572
- })
1573
- }, [downloadInsightAsRtf, popupInsightText])
1574
-
1575
- <OpsnowCommonPopup
1576
- open={popupOpen}
1577
- onClose={handleClosePopup}
1578
- title="AI Insight"
1579
- size="md"
1580
- >
1581
- <Box sx={{ maxHeight: '60vh', overflowY: 'auto', padding: '16px' }}>
1582
- <OpsnowCommonInsightContent
1583
- loading={popupLoading}
1584
- loadingStage={popupLoadingStage}
1585
- insightText={popupInsightText}
1586
- collapsed={false}
1587
- emptyMessage="AI 분석 버튼을 클릭하여 인사이트를 생성하세요"
1588
- />
1589
- </Box>
1590
- </OpsnowCommonPopup>`,
1591
- description: '팝업에서 텍스트 콘텐츠를 표시하고 RTF 파일로 다운로드하는 예제입니다. downloadInsightAsRtf 유틸리티를 사용하면 어떤 텍스트든 RTF 문서로 내보낼 수 있습니다. [검색 키워드: RTF 다운로드, 콘텐츠 내보내기, 문서 저장, 텍스트 내보내기, 리포트 다운로드]'
1592
- }
1593
- ];
1594
- export const ToggleButtonExamples = [
1595
- {
1596
- title: 'large-toggle-group',
1597
- code: `<OpsnowCommonToggleButtonGroup
1598
- value={alignmentLarge}
1599
- exclusive
1600
- onChange={handleAlignmentLarge}
1601
- size="large"
1602
- >
1603
- <OpsnowCommonToggleButton value="left">Left</OpsnowCommonToggleButton>
1604
- <OpsnowCommonToggleButton value="center">Center</OpsnowCommonToggleButton>
1605
- <OpsnowCommonToggleButton value="right">Right</OpsnowCommonToggleButton>
1606
- </OpsnowCommonToggleButtonGroup>`,
1607
- description: 'Large size toggle button group 예제입니다.'
1608
- },
1609
- {
1610
- title: 'medium-toggle-group',
1611
- code: `<OpsnowCommonToggleButtonGroup
1612
- value={alignmentMedium}
1613
- exclusive
1614
- onChange={handleAlignmentMedium}
1615
- size="medium"
1616
- >
1617
- <OpsnowCommonToggleButton value="left">Left</OpsnowCommonToggleButton>
1618
- <OpsnowCommonToggleButton value="center">Center</OpsnowCommonToggleButton>
1619
- <OpsnowCommonToggleButton value="right">Right</OpsnowCommonToggleButton>
1620
- </OpsnowCommonToggleButtonGroup>`,
1621
- description: 'Medium size toggle button group 예제입니다.'
1622
- },
1623
- {
1624
- title: 'small-toggle-group-icon',
1625
- code: `<OpsnowCommonToggleButtonGroup
1626
- value={alignmentSmall}
1627
- exclusive
1628
- onChange={handleAlignmentSmall}
1629
- size="small"
1630
- >
1631
- <OpsnowCommonToggleButton value="left">
1632
- <OpsnowCommonIcon size={16} iconName="SearchMagnifierChart" />
1633
- Left
1634
- </OpsnowCommonToggleButton>
1635
- <OpsnowCommonToggleButton value="center">Center</OpsnowCommonToggleButton>
1636
- <OpsnowCommonToggleButton value="right">Right</OpsnowCommonToggleButton>
1637
- </OpsnowCommonToggleButtonGroup>`,
1638
- description: 'Small size toggle group with icon 예제입니다.'
1639
- },
1640
- {
1641
- title: 'medium-icon-text-theme-new',
1642
- code: `<OpsnowCommonToggleButtonGroup
1643
- value={iconAlignmentMedium}
1644
- exclusive
1645
- theme="new"
1646
- onChange={handleIconAlignmentMedium}
1647
- size="medium"
1648
- >
1649
- <OpsnowCommonToggleButton value="aws">
1650
- <OpsnowCommonIcon size={16} iconName="LogoAws" />
1651
- AWS
1652
- </OpsnowCommonToggleButton>
1653
- <OpsnowCommonToggleButton value="azure">
1654
- <OpsnowCommonIcon size={16} iconName="LogoAzure" />
1655
- Azure
1656
- </OpsnowCommonToggleButton>
1657
- <OpsnowCommonToggleButton value="gcp">
1658
- <OpsnowCommonIcon size={16} iconName="LogoGcp" />
1659
- GCP
1660
- </OpsnowCommonToggleButton>
1661
- </OpsnowCommonToggleButtonGroup>`,
1662
- description: 'Medium size icon + text (theme="new") 예제입니다.'
1663
- },
1664
- {
1665
- title: 'medium-icon-only',
1666
- code: `<OpsnowCommonToggleButtonGroup
1667
- value={iconAlignmentMedium}
1668
- exclusive
1669
- onChange={handleIconAlignmentMedium}
1670
- size="medium"
1671
- >
1672
- <OpsnowCommonToggleButton value="aws">
1673
- <OpsnowCommonIcon size={16} iconName="LogoAws" />
1674
- </OpsnowCommonToggleButton>
1675
- <OpsnowCommonToggleButton value="azure">
1676
- <OpsnowCommonIcon size={16} iconName="LogoAzure" />
1677
- </OpsnowCommonToggleButton>
1678
- <OpsnowCommonToggleButton value="gcp">
1679
- <OpsnowCommonIcon size={16} iconName="LogoGcp" />
1680
- </OpsnowCommonToggleButton>
1681
- </OpsnowCommonToggleButtonGroup>`,
1682
- description: 'Medium size icon only toggle buttons 예제입니다.'
1683
- },
1684
- {
1685
- title: 'medium-disabled-toggle-group',
1686
- code: `<OpsnowCommonToggleButtonGroup
1687
- value={disabledAlignment}
1688
- exclusive
1689
- onChange={handleDisabledAlignment}
1690
- size="medium"
1691
- disabled
1692
- >
1693
- <OpsnowCommonToggleButton value="left">Left</OpsnowCommonToggleButton>
1694
- <OpsnowCommonToggleButton value="center">Center</OpsnowCommonToggleButton>
1695
- <OpsnowCommonToggleButton value="right">Right</OpsnowCommonToggleButton>
1696
- </OpsnowCommonToggleButtonGroup>`,
1697
- description: 'Medium size disabled toggle button group 예제입니다.'
1698
- }
1699
- ];