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

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/build/components/data/icon-names.js +129 -0
  2. package/build/components/examples/opsnow-common-calendar-examples-data.js +48 -0
  3. package/build/components/examples/opsnow-common-chart-examples-data.js +6843 -0
  4. package/build/components/examples/opsnow-common-data-status-examples-data.js +65 -0
  5. package/build/components/examples/opsnow-common-file-upload-examples-data.js +95 -0
  6. package/build/components/examples/opsnow-common-forms-examples-data.js +1715 -0
  7. package/build/components/examples/opsnow-common-grid-examples-data.js +2389 -0
  8. package/build/components/examples/opsnow-common-icons-examples-data.js +72 -0
  9. package/build/components/examples/opsnow-common-layout-examples-data.js +97 -0
  10. package/build/components/examples/opsnow-common-notification-examples-data.js +78 -0
  11. package/build/components/examples/opsnow-common-pagination-examples-data.js +82 -0
  12. package/build/components/examples/opsnow-common-popup-examples-data.js +205 -0
  13. package/build/components/examples/opsnow-common-progress-examples-data.js +86 -0
  14. package/build/components/examples/opsnow-common-select-examples-data.js +131 -0
  15. package/build/components/examples/opsnow-common-stepper-examples-data.js +180 -0
  16. package/build/components/examples/opsnow-common-storage-examples-data.js +8 -0
  17. package/build/components/examples/opsnow-common-tab-examples-data.js +87 -0
  18. package/build/components/examples/opsnow-common-toast-popup-examples-data.js +129 -0
  19. package/build/components/examples/opsnow-common-tooltip-examples-data.js +80 -0
  20. package/build/components/examples/opsnow-common-typography-examples-data.js +366 -0
  21. package/build/components/opsnow-common-calendar.js +228 -0
  22. package/build/components/opsnow-common-chart.js +1643 -0
  23. package/build/components/opsnow-common-data-status.js +116 -0
  24. package/build/components/opsnow-common-examples.js +109 -0
  25. package/build/components/opsnow-common-file-upload.js +57 -0
  26. package/build/components/opsnow-common-forms.js +1009 -0
  27. package/build/components/opsnow-common-grid.js +352 -0
  28. package/build/components/opsnow-common-icons.js +139 -0
  29. package/build/components/opsnow-common-layout.js +141 -0
  30. package/build/components/opsnow-common-notification.js +110 -0
  31. package/build/components/opsnow-common-pagination.js +164 -0
  32. package/build/components/opsnow-common-popup.js +71 -0
  33. package/build/components/opsnow-common-progress.js +177 -0
  34. package/build/components/opsnow-common-select.js +135 -0
  35. package/build/components/opsnow-common-stepper.js +72 -0
  36. package/build/components/opsnow-common-tab.js +111 -0
  37. package/build/components/opsnow-common-toast-popup.js +135 -0
  38. package/build/components/opsnow-common-tooltip.js +204 -0
  39. package/build/components/opsnow-common-typography.js +93 -0
  40. package/build/index.js +135 -0
  41. package/package.json +1 -1
@@ -0,0 +1,72 @@
1
+ // Icons 컴포넌트 예제 데이터
2
+ export const IconExamples = [
3
+ {
4
+ title: '기본 아이콘',
5
+ code: `<OpsnowCommonIcon iconName="CloudAi" />`,
6
+ description: 'CloudAi 아이콘 예제입니다.'
7
+ },
8
+ {
9
+ title: '색상 아이콘',
10
+ code: `<OpsnowCommonIcon iconName="CloudAi" color="red" />`,
11
+ description: '색상이 적용된 CloudAi 아이콘 예제입니다.'
12
+ },
13
+ {
14
+ title: 'AiBot 아이콘',
15
+ code: `<OpsnowCommonIcon iconName="AiBot" />`,
16
+ description: 'AI/기술 카테고리의 AiBot 아이콘 예제입니다.'
17
+ },
18
+ {
19
+ title: '알림 아이콘',
20
+ code: `<OpsnowCommonIcon iconName="AlertWarningCircleFilled" />`,
21
+ description: '알림/경고 카테고리의 AlertWarningCircleFilled 아이콘 예제입니다.'
22
+ },
23
+ {
24
+ title: '화살표 아이콘',
25
+ code: `<OpsnowCommonIcon iconName="ArrowRight" />`,
26
+ description: '화살표 카테고리의 ArrowRight 아이콘 예제입니다.'
27
+ },
28
+ {
29
+ title: '문서 추가 아이콘',
30
+ code: `<OpsnowCommonIcon iconName="DocumentPlus" />`,
31
+ description: '문서/파일 카테고리의 DocumentPlus 아이콘 예제입니다.'
32
+ },
33
+ {
34
+ title: '사용자 아이콘',
35
+ code: `<OpsnowCommonIcon iconName="UserCircle" />`,
36
+ description: '사용자 카테고리의 UserCircle 아이콘 예제입니다.'
37
+ }
38
+ ];
39
+ export const MuiIconExamples = [
40
+ {
41
+ title: '닫기 MUI 아이콘',
42
+ code: `<OpsnowCommonMuiIcon theme="close" size={24} />`,
43
+ description: 'MUI 닫기 아이콘 예제입니다.'
44
+ },
45
+ {
46
+ title: '메뉴 MUI 아이콘',
47
+ code: `<OpsnowCommonMuiIcon theme="menu" size={24} />`,
48
+ description: 'MUI 메뉴 아이콘 예제입니다.'
49
+ },
50
+ {
51
+ title: '검색 MUI 아이콘',
52
+ code: `<OpsnowCommonMuiIcon theme="search" size={24} />`,
53
+ description: 'MUI 검색 아이콘 예제입니다.'
54
+ }
55
+ ];
56
+ export const MarkersExamples = [
57
+ {
58
+ title: '정사각 마커',
59
+ code: `<OpsnowCommonMarkers theme="square" />`,
60
+ description: '정사각형 마커 예제입니다.'
61
+ },
62
+ {
63
+ title: '선 그래프 마커',
64
+ code: `<OpsnowCommonMarkers theme="line-graph" />`,
65
+ description: '선 그래프용 마커 예제입니다.'
66
+ },
67
+ {
68
+ title: '트렌드 마커',
69
+ code: `<OpsnowCommonMarkers theme="line-trend" />`,
70
+ description: '트렌드 그래프용 마커 예제입니다.'
71
+ }
72
+ ];
@@ -0,0 +1,97 @@
1
+ // OpsNow Common Layout(Grid) 컴포넌트 예제 데이터
2
+ export const GridLayoutExamples = [
3
+ {
4
+ title: '4열 그리드 레이아웃',
5
+ description: 'Wrap="nowrap"와 고정 패딩·간격을 적용한 4열 레이아웃 예제입니다.',
6
+ code: `
7
+ <Grid container wrap="nowrap" spacing={0} sx={{ padding: '27px', gap: '27px' }}>
8
+ <Grid item xs={12} sm={6} md={3} key={0}>
9
+ <Box sx={{
10
+ border: '1px solid #ddd',
11
+ borderRadius: '12px',
12
+ padding: 2,
13
+ display: 'flex',
14
+ flexDirection: 'column',
15
+ boxShadow: '2px 2px 8px 0 #4254663D',
16
+ }}>
17
+ </Box>
18
+ </Grid>
19
+ <!-- 총 4개 아이템 반복 -->
20
+ <!-- ... -->
21
+ </Grid>
22
+ `,
23
+ },
24
+ {
25
+ title: '2열 그리드 레이아웃',
26
+ description: '2개의 박스를 한 줄에 배치하는 예제입니다.',
27
+ code: `
28
+ <Grid container wrap="nowrap" spacing={0} sx={{ padding: '27px', gap: '27px' }}>
29
+ <Grid item xs={12} md={6} key={0}>
30
+ <Box sx={{ /* 동일한 스타일 */ }}>
31
+ </Box>
32
+ </Grid>
33
+ <Grid item xs={12} md={6} key={1}>
34
+ <Box sx={{ /* 동일한 스타일 */ }}>
35
+ </Box>
36
+ </Grid>
37
+ </Grid>
38
+ `,
39
+ },
40
+ {
41
+ title: '3열 그리드 레이아웃',
42
+ description: '3개의 박스를 한 줄에 배치하는 예제입니다.',
43
+ code: `
44
+ <Grid container wrap="nowrap" spacing={0} sx={{ padding: '27px', gap: '27px' }}>
45
+ <Grid item xs={12} md={4} key={0}>
46
+ <Box sx={{ /* 동일한 스타일 */ }}>
47
+ </Box>
48
+ </Grid>
49
+ <Grid item xs={12} md={4} key={1}>
50
+ <Box sx={{ /* 동일한 스타일 */ }}>
51
+ </Box>
52
+ </Grid>
53
+ <Grid item xs={12} md={4} key={2}>
54
+ <Box sx={{ /* 동일한 스타일 */ }}>
55
+ </Box>
56
+ </Grid>
57
+ </Grid>
58
+ `,
59
+ },
60
+ {
61
+ title: 'Tile with Checkbox UI',
62
+ description: 'Tile 내부에 체크박스와 텍스트가 포함된 2열 레이아웃 예제입니다.',
63
+ code: `<Grid container spacing={3} sx={{ marginTop: '20px' }}><Grid item xs={12} md={6} sx={{ display: 'flex' }}><OpsnowCommonTile sx={{ width: '100%' }}><OpsnowCommonTile.Content><Stack direction="row" alignItems="flex-start" spacing={2}><OpsnowCommonCheckbox name="organizationScope" checked={checkboxStates.organizationScope} onChange={handleCheckboxChange} color="primary" /><Stack spacing={1}><OpsnowCommonTypography variant="body1" fontWeight={600}>Use Organization Scope(Cost Allocation)</OpsnowCommonTypography><OpsnowCommonTypography variant="body2" color="textSecondary">The same scope defined in Organization Settings is used as the baseline for Budget and KPI tracking.</OpsnowCommonTypography></Stack></Stack></OpsnowCommonTile.Content></OpsnowCommonTile></Grid><Grid item xs={12} md={6} sx={{ display: 'flex' }}><OpsnowCommonTile sx={{ width: '100%' }}><OpsnowCommonTile.Content><Stack direction="row" alignItems="flex-start" spacing={2}><OpsnowCommonCheckbox name="customizeScope" checked={checkboxStates.customizeScope} onChange={handleCheckboxChange} color="primary" /><Stack spacing={1}><OpsnowCommonTypography variant="body1" fontWeight={600}>Customize Scope</OpsnowCommonTypography><OpsnowCommonTypography variant="body2" color="textSecondary">Apply only to selected dimensions, such as specific services (e.g., EC2)</OpsnowCommonTypography></Stack></Stack></OpsnowCommonTile.Content></OpsnowCommonTile></Grid></Grid>`,
64
+ },
65
+ ];
66
+ export const MegaFilterExamples = [
67
+ {
68
+ title: 'basic-megafilter-with-vendors-daterange',
69
+ description: '벤더 선택, 날짜 범위, 필터 기능이 포함된 MegaFilter 예제입니다.',
70
+ code: `<OpsnowCommonMegaFilter filters={filters} vendors={vendors} selectedVendor={selectedVendor} onVendorChange={handleVendorChange} onFilterChange={handleFilterChange} selectedDateRange={selectedDateRange} onDateRangeChange={handleDateRangeChange} locale="ko" title="필터" clearAllText="전체 초기화" applyText="적용" cancelText="취소" />`,
71
+ },
72
+ {
73
+ title: 'megafilter-button-click-apply',
74
+ description: '버튼 클릭 시 필터를 적용하는 방식의 MegaFilter 예제입니다. addText로 개별 필터 추가 버튼 텍스트를 설정하고, onFilterChange를 async로 처리합니다.',
75
+ code: `<OpsnowCommonMegaFilter
76
+ filters={sampleFilters}
77
+ vendors={vendorOptions}
78
+ selectedVendor={selectedVendor}
79
+ onVendorChange={(vendor) => setSelectedVendor(vendor)}
80
+ onFilterChange={async (newFilterState) => {
81
+ await fetchData(newFilterState);
82
+ setFilterState(newFilterState);
83
+ }}
84
+ selectedDateRange={selectedDateRange}
85
+ onDateRangeChange={(range) => setSelectedDateRange(range)}
86
+ locale="en"
87
+ title="Filters"
88
+ clearAllText="Clear All"
89
+ clearText="Clear"
90
+ applyText="Apply"
91
+ addText="Add"
92
+ cancelText="Cancel"
93
+ searchPlaceholder="Search..."
94
+ noItemsText="No items found"
95
+ />`,
96
+ },
97
+ ];
@@ -0,0 +1,78 @@
1
+ // Notification 컴포넌트 예제 데이터
2
+ export const NotificationExamples = [
3
+ {
4
+ title: "success",
5
+ code: `<OpsnowCommonNotification severity="success" ></OpsnowCommonNotification>`,
6
+ description: "성공 알림 기본 예제입니다.",
7
+ },
8
+ {
9
+ title: "success-title-message",
10
+ code: `<OpsnowCommonNotification severity="success" useTitle title="성공">작업이 완료되었습니다.</OpsnowCommonNotification>`,
11
+ description: "제목과 메시지를 포함한 성공 알림 예제입니다.",
12
+ },
13
+ {
14
+ title: "error-title-message",
15
+ code: `<OpsnowCommonNotification severity="error"useTitle title="에러">문제가 발생했습니다.</OpsnowCommonNotification>`,
16
+ description: "제목과 메시지를 포함한 에러 알림 예제입니다.",
17
+ },
18
+ {
19
+ title: "error-title-message-closable",
20
+ code: `<OpsnowCommonNotification severity="error" useTitle title="에러" onClose={() => setOpenError(false)}>문제가 발생했습니다.</OpsnowCommonNotification>`,
21
+ description: "닫기 버튼이 없는 에러 알림 예제입니다.",
22
+ },
23
+ {
24
+ title: "error-title-message-action",
25
+ code: `<OpsnowCommonNotification severity="error" useTitle title="에러" action={<OpsnowCommonButton label="확인" />} >문제가 발생했습니다.</OpsnowCommonNotification>`,
26
+ description: "액션 버튼이 있는 에러 알림 예제입니다.",
27
+ },
28
+ {
29
+ title: "success-title-message-action",
30
+ code: `<OpsnowCommonNotification severity="success" useTitle title="성공" action={<OpsnowCommonButton label="확인" />} >작업이 완료되었습니다.</OpsnowCommonNotification>`,
31
+ description: "액션 버튼이 있는 성공 알림 예제입니다.",
32
+ },
33
+ {
34
+ title: "success-closable-action-isCustom",
35
+ code: `<OpsnowCommonNotification severity="success" onClose={() => setOpenSuccess(false)} customActionBtn={<OpsnowCommonButton label="확인" />} ></OpsnowCommonNotification>`,
36
+ description: "커스텀 액션 버튼이 있는 에러 알림 예제입니다.",
37
+ },
38
+ {
39
+ title: "success-closable-action-isCustom",
40
+ code: `<OpsnowCommonNotification severity="success" onClose={() => setOpenSuccess(false)} customActionBtn={<OpsnowCommonButton label="확인"/>} ></OpsnowCommonNotification>`,
41
+ description: "커스텀 액션 버튼이 있는 성공 알림 예제입니다.",
42
+ },
43
+ {
44
+ title: "info-closable-action-isCustom",
45
+ code: `<OpsnowCommonNotification severity="info" onClose={() => setOpenSuccess(false)} customActionBtn={<OpsnowCommonButton label="확인" />} ></OpsnowCommonNotification>`,
46
+ description: "커스텀 액션 버튼이 있는 인포 알림 예제입니다.",
47
+ },
48
+ {
49
+ title: "info-card-bgWhite",
50
+ code: `<OpsnowCommonNotification severity="info" placement="card" bgWhite ></OpsnowCommonNotification>`,
51
+ description: "흰 배경(bgWhite)의 카드 형태의 인포 알림 예제입니다. ",
52
+ },
53
+ {
54
+ title: "error-card-bgWhite",
55
+ code: `<OpsnowCommonNotification severity="error" placement="card" ></OpsnowCommonNotification>`,
56
+ description: "하얀 배경(bgWhite)의 카드 형태의 에러 알림 예제입니다. ",
57
+ },
58
+ {
59
+ title: "infoSuccess-page-bgWhite-message-title",
60
+ code: `<OpsnowCommonNotification severity="infoSuccess" placement="page" useTitle title="성공" >성공했습니다.</OpsnowCommonNotification>`,
61
+ description: "모서리가 둥근 형태의 회색 배경의 왼쪽 컬러 라인과 아이콘이 초록색인 성공 알림 예제입니다.",
62
+ },
63
+ {
64
+ title: "infoWarning-page-message-title",
65
+ code: `<OpsnowCommonNotification severity="infoWarning" placement="page" useTitle title="경고" >경고입니다.</OpsnowCommonNotification>`,
66
+ description: "모서리가 둥근 형태의 회색 배경의 왼쪽 컬러 라인과 아이콘이 주황색인 경고 알림 예제입니다.",
67
+ },
68
+ {
69
+ title: "infoError-page-message-title",
70
+ code: `<OpsnowCommonNotification severity="infoError" placement="page" useTitle title="에러">에러입니다.</OpsnowCommonNotification>`,
71
+ description: "모서리가 둥근 형태의 회색 배경의 왼쪽 컬러 라인과 아이콘이 빨간색인 에러 알림 예제입니다.",
72
+ },
73
+ {
74
+ title: "info-page-message-title",
75
+ code: `<OpsnowCommonNotification severity="info" placement="page" useTitle title="정보" >정보입니다.</OpsnowCommonNotification>`,
76
+ description: "모서리가 둥근 형태의 회색 배경의 컬러라인이 없는 정보 알림 예제입니다.",
77
+ }
78
+ ];
@@ -0,0 +1,82 @@
1
+ // Pagination 컴포넌트 예제 데이터
2
+ export const PaginationExamples = [
3
+ {
4
+ title: "page-count",
5
+ code: `<OpsnowCommonPagination page={1} count={100} />`,
6
+ description: "기본 페이지네이션 예제입니다.",
7
+ },
8
+ {
9
+ title: "page-count-small",
10
+ code: `<OpsnowCommonPagination page={1} count={100} size="small" />`,
11
+ description: "크기가 작은 페이지네이션 예제입니다.",
12
+ },
13
+ {
14
+ title: "page-count-medium",
15
+ code: `<OpsnowCommonPagination page={1} count={100} size="medium" />`,
16
+ description: "크기가 중간인 페이지네이션 예제입니다.",
17
+ },
18
+ {
19
+ title: "page-count-rowsPerPage",
20
+ code: `<OpsnowCommonPagination page={1} count={100} rowsPerPage={10} />`,
21
+ description: "한 번에 10개씩 보여주는 페이지네이션 예제입니다.",
22
+ },
23
+ {
24
+ title: "page-count-rowsPerPage-list",
25
+ code: `<OpsnowCommonPagination page={1} count={100} rowsPerPage={10} count={list.length} list = {list}/>`,
26
+ description: "한 페이지당 10개씩 페이지네이션으로 표시하는 예제입니다.",
27
+ },
28
+ {
29
+ title: "page-count-rowsPerPage-rowsPerPageOptions",
30
+ code: `<OpsnowCommonPagination page={1} count={100} rowsPerPage={rowsPerPage} rowsPerPageOptions={[
31
+ { value: '10', label: '10 per Page' },
32
+ { value: '5', label: '5 per Page' },
33
+ ]} />`,
34
+ description: "rowsPerPage 옵션을 설정하고 옵션에 따라 페이지네이션 옵션이 변경되는 예제입니다.",
35
+ },
36
+ {
37
+ title: "page-count-rowsPerPage-locale",
38
+ code: `<OpsnowCommonPagination page={1} count={100} rowsPerPage={10} locale={i18n.getLocale()} />`,
39
+ description: "언어 설정을 받아오고 한 번에 10개씩 보여주는 페이지네이션 예제입니다.",
40
+ },
41
+ {
42
+ title: "page-count-rowsPerPage-locale",
43
+ code: `<OpsnowCommonPagination page={1} count={100} rowsPerPage={10} locale={i18n.getLocale()} />`,
44
+ description: "언어 설정을 받아오고 한 번에 10개씩 보여주는 페이지네이션 예제입니다.",
45
+ },
46
+ {
47
+ title: "page-count-onChangePageNum",
48
+ code: `<OpsnowCommonPagination page={1} count={100} onChangePageNum = {(pageNum) => {
49
+ console.log('페이지 번호가', pageNum, '으로 변경되었습니다.')
50
+ }} />`,
51
+ description: "페이지 번호가 변경되었을때 핸들러 함수를 설정하는 기본 예제입니다.",
52
+ },
53
+ {
54
+ title: "page-count-onChangePageSize",
55
+ code: `<OpsnowCommonPagination page={1} count={100} onChangePageSize = {(pageSize, pageNum) => {
56
+ console.log('페이지당 항목 수가', pageSize, '로 변경되었습니다.')
57
+ }} />`,
58
+ description: "페이지당 항목 수나 페이지 번호가 변경되었을때 핸들러 함수를 설정하는 기본 예제입니다.",
59
+ },
60
+ {
61
+ title: "page-count-onNext",
62
+ code: `<OpsnowCommonPagination page={1} count={100} onNext = {(pageNum) => {
63
+ console.log('다음 페이지로 이동, 현재 페이지:', pageNum)
64
+ }} />`,
65
+ description: "다음 페이지로 이동할때 핸들러 함수를 설정하는 기본 예제입니다.",
66
+ },
67
+ {
68
+ title: "page-count-onPrevious",
69
+ code: `<OpsnowCommonPagination page={1} count={100} onPrevious = {(pageNum) => {
70
+ console.log('이전 페이지로 이동, 현재 페이지:', pageNum)
71
+ }} />`,
72
+ description: "이전 페이지로 이동할때 핸들러 함수를 설정하는 기본 예제입니다.",
73
+ },
74
+ {
75
+ title: "page-count-onPageChange",
76
+ code: `<OpsnowCommonPagination page={1} count={100} onPageChange = {(pageData) => {
77
+ setCurrentPageData(pageData)
78
+ console.log('Current Page Data:', pageData)
79
+ }} />`,
80
+ description: "페이지 데이터가 변경되었을때 핸들러 함수를 설정하는 기본 예제입니다.",
81
+ },
82
+ ];
@@ -0,0 +1,205 @@
1
+ // Popup 컴포넌트 예제 데이터
2
+ export const PopupExamples = [
3
+ {
4
+ title: '기본 팝업',
5
+ code: `<OpsnowCommonPopup title="팝업" open={true} onClose={handleClose}>
6
+ <p>Popup content here</p>
7
+ </OpsnowCommonPopup>`,
8
+ description: '가장 기본적인 팝업 예제입니다.'
9
+ },
10
+ {
11
+ title: 'Wing 타입, 작은 사이즈',
12
+ code: `<OpsnowCommonPopup title="Wing Popup" open={true} onClose={handleClose} size="sm" type="wing">
13
+ <p>Popup content here</p>
14
+ </OpsnowCommonPopup>`,
15
+ description: 'wing 타입과 작은 사이즈(sm)를 사용하는 팝업 예제입니다.'
16
+ },
17
+ {
18
+ title: 'Standard 타입, 큰 사이즈',
19
+ code: `<OpsnowCommonPopup title="Standard Popup" open={true} onClose={handleClose} size="lg" type="standard">
20
+ <p>Popup content here</p>
21
+ </OpsnowCommonPopup>`,
22
+ description: 'standard 타입과 큰 사이즈(lg)를 사용하는 팝업 예제입니다.'
23
+ },
24
+ {
25
+ title: 'Footer 버튼 커스텀',
26
+ code: `<OpsnowCommonPopup title="Footer Custom" open={true} onClose={handleClose} footer={[{ text: '확인', type: 'primary', action: 'onConfirm' }, { text: '취소', type: 'default', action: 'onCancel' }]}>
27
+ <p>Popup content here</p>
28
+ </OpsnowCommonPopup>`,
29
+ description: 'footer prop을 통해 하단 버튼을 커스텀하는 예제입니다.'
30
+ },
31
+ {
32
+ title: 'Closable/MaskClosable 옵션',
33
+ code: `<OpsnowCommonPopup title="Closable Popup" open={true} onClose={handleClose} closable={false} maskClosable={false}>
34
+ <p>Popup content here</p>
35
+ </OpsnowCommonPopup>`,
36
+ description: '닫기 버튼과 마스크 클릭으로 닫기 비활성화 예제입니다.'
37
+ },
38
+ {
39
+ title: 'Position(위치) 지정',
40
+ code: `<OpsnowCommonPopup title="Bottom Popup" open={true} onClose={handleClose} position="bottom">
41
+ <p>Popup content here</p>
42
+ </OpsnowCommonPopup>`,
43
+ description: '팝업 위치를 bottom으로 지정한 예제입니다.'
44
+ },
45
+ {
46
+ title: 'Wing 타입, 작은 사이즈 + cancel/confirm + disableEscapeKeyDown',
47
+ code: `<OpsnowCommonPopup
48
+ title="Example Popup"
49
+ open={true}
50
+ onClose={handleClose}
51
+ size="sm"
52
+ cancelButton={{ variant: 'outlined' }}
53
+ confirmButton={{ color: 'primary', text: 'Save' }}
54
+ type="wing"
55
+ disableEscapeKeyDown
56
+ >
57
+ <p>Popup content here</p>
58
+ </OpsnowCommonPopup>`,
59
+ description: 'wing 타입, 작은 사이즈(sm)에 cancel/confirm 버튼과 disableEscapeKeyDown 옵션을 적용한 예제입니다.'
60
+ },
61
+ {
62
+ title: 'Wing 타입, md, Special Title & Footer Action Button',
63
+ code: `<OpsnowCommonPopup
64
+ title="Example Popup"
65
+ open={true}
66
+ onClose={handleClose}
67
+ size="md"
68
+ useFooterActionBtn
69
+ useSpecialTitle
70
+ actionButton={{ disabled: true }}
71
+ type="wing"
72
+ >
73
+ <p>Popup content here</p>
74
+ </OpsnowCommonPopup>`,
75
+ description: 'wing 타입의 기본 크기(md)에서 Special Title과 Footer Action Button(disabled)을 사용하는 예제입니다.'
76
+ },
77
+ {
78
+ title: 'Wing 타입, 큰 사이즈',
79
+ code: `<OpsnowCommonPopup
80
+ title="Example Popup"
81
+ open={true}
82
+ onClose={handleClose}
83
+ size="lg"
84
+ type="wing"
85
+ >
86
+ <p>Popup content here</p>
87
+ </OpsnowCommonPopup>`,
88
+ description: 'wing 타입과 큰 사이즈(lg)를 사용하는 팝업 예제입니다.'
89
+ },
90
+ {
91
+ title: 'Wing 타입, hideFooter',
92
+ code: `<OpsnowCommonPopup
93
+ title="Example Popup"
94
+ open={true}
95
+ onClose={handleClose}
96
+ hideFooter
97
+ type="wing"
98
+ >
99
+ <p>Popup content here</p>
100
+ </OpsnowCommonPopup>`,
101
+ description: 'wing 타입에서 footer를 숨기는 예제입니다.'
102
+ },
103
+ {
104
+ title: 'Wing 타입, hideHeaderClose',
105
+ code: `<OpsnowCommonPopup
106
+ title="Example Popup"
107
+ open={true}
108
+ onClose={handleClose}
109
+ hideHeaderClose
110
+ type="wing"
111
+ >
112
+ <p>Popup content here</p>
113
+ </OpsnowCommonPopup>`,
114
+ description: 'wing 타입에서 헤더 우측 닫기 버튼을 숨기는 예제입니다.'
115
+ },
116
+ {
117
+ title: 'Standard 타입, 작은 사이즈 + 커스텀 헤더/푸터',
118
+ code: `<OpsnowCommonPopup
119
+ title="Example Popup"
120
+ open={true}
121
+ onClose={handleClose}
122
+ size="sm"
123
+ confirmButton={{ color: 'error', variant: 'text' }}
124
+ useCustomHeader
125
+ useCustomFooter
126
+ headerContent={<div style={{ padding: '20px', backgroundColor: '#f0f0f0' }}><h2>Custom Header</h2></div>}
127
+ footerContent={<div style={{ padding: '20px', backgroundColor: '#f0f0f0' }}><button onClick={handleClose}>Cancel</button></div>}
128
+ >
129
+ <p>Popup content here</p>
130
+ </OpsnowCommonPopup>`,
131
+ description: 'standard 타입, 작은 사이즈(sm)에서 커스텀 헤더와 푸터를 사용하는 예제입니다.'
132
+ },
133
+ {
134
+ title: 'useCustomFooter + 버튼 추가',
135
+ code: `<OpsnowCommonPopup
136
+ open={showPopup}
137
+ title={\`결과 상세: \${popupTitle}\`}
138
+ size="lg"
139
+ onClose={() => setShowPopup(false)}
140
+ useCustomFooter
141
+ footerContent={
142
+ <div
143
+ style={{
144
+ display: 'flex',
145
+ justifyContent: 'flex-end',
146
+ gap: '8px',
147
+ marginRight: '43px',
148
+ marginBottom: '16px',
149
+ marginTop: '16px',
150
+ }}
151
+ >
152
+ <OpsnowCommonButton
153
+ label="닫기"
154
+ variant="contained"
155
+ color="primary"
156
+ onClick={() => setShowPopup(false)}
157
+ />
158
+ </div>
159
+ }
160
+ >
161
+ <p>Popup content here</p>
162
+ </OpsnowCommonPopup>`,
163
+ description: 'useCustomFooter를 사용하여 커스텀 버튼을 추가한 예제입니다.'
164
+ },
165
+ {
166
+ title: 'Standard 타입, hideFooter',
167
+ code: `<OpsnowCommonPopup
168
+ title="Example Popup"
169
+ open={true}
170
+ onClose={handleClose}
171
+ type="standard"
172
+ hideFooter
173
+ >
174
+ <p>Popup content here</p>
175
+ </OpsnowCommonPopup>`,
176
+ description: 'standard 타입에서 footer를 숨기는 예제입니다.'
177
+ },
178
+ {
179
+ title: 'Bottom 타입, cancel/confirm 버튼',
180
+ code: `<OpsnowCommonPopup
181
+ title="Example Popup"
182
+ open={true}
183
+ onClose={handleClose}
184
+ cancelButton={{ variant: 'outlined' }}
185
+ confirmButton={{ color: 'primary', text: 'Save' }}
186
+ type="bottom"
187
+ >
188
+ <p>Popup content here</p>
189
+ </OpsnowCommonPopup>`,
190
+ description: 'bottom 타입에서 cancelButton과 confirmButton을 사용하는 예제입니다.'
191
+ },
192
+ {
193
+ title: '고정 크기(width/height)',
194
+ code: `<OpsnowCommonPopup
195
+ title="Size Popup"
196
+ open={true}
197
+ onClose={handleClose}
198
+ width={400}
199
+ height={300}
200
+ >
201
+ <p>Popup content here</p>
202
+ </OpsnowCommonPopup>`,
203
+ description: '팝업의 너비와 높이를 고정(px)으로 지정하는 예제입니다.'
204
+ }
205
+ ];
@@ -0,0 +1,86 @@
1
+ // Progress 컴포넌트 예제 데이터
2
+ export const ProgressExamples = [
3
+ {
4
+ title: "value",
5
+ code: `<OpsnowCommonProgress value={50} />`,
6
+ description: "50% 진행률을 보여주는 기본 Progress 예제입니다.",
7
+ },
8
+ {
9
+ title: "value-size",
10
+ code: `<OpsnowCommonProgress value={50} size={32}/>`,
11
+ description: "사이즈가 32이고 value가 50인 기본 Progress 예제입니다.",
12
+ },
13
+ {
14
+ title: "value-inherit",
15
+ code: `<OpsnowCommonProgress value={75} color="inherit" />`,
16
+ description: "색상이 inherit이고 75% 진행률 Progress 예제입니다.",
17
+ },
18
+ {
19
+ title: "buffer-value-valueBuffer",
20
+ code: `<OpsnowCommonProgress variant="buffer" value={50} valueBuffer={25} />`,
21
+ description: "버퍼 추가 진행률을 보여주는 Progress 예제입니다.",
22
+ },
23
+ {
24
+ title: "value-label",
25
+ code: `<OpsnowCommonProgress value={50} label />`,
26
+ description: "퍼센트 정보를 표시하는 Progress 예제입니다.",
27
+ },
28
+ {
29
+ title: "indeterminate-label",
30
+ code: `<OpsnowCommonProgress variant="indeterminate" color="primary" />`,
31
+ description: "primary 색상의 무한 로딩 Progress 바 예제입니다.",
32
+ },
33
+ {
34
+ title: "value-label-determinate-secondary",
35
+ code: `<OpsnowCommonProgress value = {50} variant="determinate" label color="secondary" />`,
36
+ description: "50% 진행률인 secondary 색상의 고정 Progress 예제입니다. 퍼센트 정보를 표시합니다.",
37
+ },
38
+ ];
39
+ // Loading 컴포넌트 예제 데이터
40
+ export const LoadingExamples = [
41
+ {
42
+ title: "loadingDots-dotSize",
43
+ code: `<OpsnowCommonLoading loadingDots dotSize={32}/>`,
44
+ description: "dot 형태 Progress 의 dotSize가 32인 예제입니다.",
45
+ },
46
+ {
47
+ title: "indeterminate",
48
+ code: `<OpsnowCommonLoading variant="indeterminate" />`,
49
+ description: "무한 로딩 Progress 예제입니다.",
50
+ },
51
+ {
52
+ title: "determinate-value",
53
+ code: `<OpsnowCommonLoading variant="determinate" value={50} />`,
54
+ description: "고정 상태의 로딩 예제입니다.",
55
+ },
56
+ {
57
+ title: "isFullScreen-open",
58
+ code: `<OpsnowCommonLoading isFullScreen open = {false} " />`,
59
+ description: "전체 화면 로딩 Progress 예제입니다. open이 true 일때 해당 컴포넌트가 보입니다. 추가로 button을 활용하여 컴포넌트를 이용할 수 있습니다.",
60
+ },
61
+ {
62
+ title: "isFullScreen-open",
63
+ code: `<OpsnowCommonLoading value = {50} isFullScreen open = {false} " />`,
64
+ description: "전체 화면 로딩 Progress 예제입니다. open이 true 일때 해당 컴포넌트가 보입니다. 추가로 button을 활용하여 컴포넌트를 이용할 수 있습니다.",
65
+ },
66
+ {
67
+ title: "label-value",
68
+ code: `<OpsnowCommonLoading label value={50} />`,
69
+ description: "value값을 보고 싶을때 사용합니다.",
70
+ },
71
+ {
72
+ title: "primary-determinate-value",
73
+ code: `<OpsnowCommonLoading color="primary" variant="determinate" value={50} />`,
74
+ description: "색상을 primary, 고정인 로딩 상태의 퍼센트가 50% 인 예제입니다.",
75
+ },
76
+ {
77
+ title: "secondary-determinate-value",
78
+ code: `<OpsnowCommonLoading color="secondary" variant="determinate" value={50} />`,
79
+ description: "색상을 secondary, 고정인 로딩 상태의 퍼센트가 50% 인 예제입니다.",
80
+ },
81
+ {
82
+ title: "inherit-determinate-value",
83
+ code: `<OpsnowCommonLoading color="secondary" variant="determinate" value={50} />`,
84
+ description: "색상을 inherit, 고정인 로딩 상태의 퍼센트가 50% 인 예제입니다.",
85
+ },
86
+ ];