@team-monolith/cds 0.4.0 → 0.4.3

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 (88) hide show
  1. package/dist/index.d.ts +2 -0
  2. package/dist/index.js +2 -0
  3. package/package.json +5 -1
  4. package/public/favicon.ico +0 -0
  5. package/public/index.html +0 -43
  6. package/public/logo192.png +0 -0
  7. package/public/logo512.png +0 -0
  8. package/public/manifest.json +0 -25
  9. package/public/robots.txt +0 -3
  10. package/src/App.tsx +0 -7
  11. package/src/cds/CodleDesignSystemProvider.tsx +0 -93
  12. package/src/cds/README.md +0 -23
  13. package/src/cds/components/AlertDialog/AlertDialog.tsx +0 -101
  14. package/src/cds/components/AlertDialog/AlertDialogActions.tsx +0 -34
  15. package/src/cds/components/AlertDialog/AlertDialogContent.tsx +0 -36
  16. package/src/cds/components/AlertDialog/AlertDialogTitle.tsx +0 -63
  17. package/src/cds/components/AlertDialog/index.tsx +0 -4
  18. package/src/cds/components/Banner.tsx +0 -176
  19. package/src/cds/components/Button.tsx +0 -256
  20. package/src/cds/components/CheckboxInput.tsx +0 -270
  21. package/src/cds/components/Input.tsx +0 -171
  22. package/src/cds/components/InputBase.tsx +0 -226
  23. package/src/cds/components/Pagination.tsx +0 -99
  24. package/src/cds/components/PinInput.tsx +0 -322
  25. package/src/cds/components/RadioInput.tsx +0 -226
  26. package/src/cds/components/SquareButton.tsx +0 -229
  27. package/src/cds/components/Switch.tsx +0 -129
  28. package/src/cds/components/Tag.tsx +0 -155
  29. package/src/cds/components/Tooltip.tsx +0 -104
  30. package/src/cds/foundation/color.ts +0 -83
  31. package/src/cds/foundation/shadows.ts +0 -17
  32. package/src/cds/icons/Arrows/index.ts +0 -2
  33. package/src/cds/icons/Media/index.ts +0 -2
  34. package/src/cds/icons/System/index.ts +0 -2
  35. package/src/cds/icons/arrows.tsx +0 -116
  36. package/src/cds/icons/brand.tsx +0 -13
  37. package/src/cds/icons/design.tsx +0 -15
  38. package/src/cds/icons/map.tsx +0 -14
  39. package/src/cds/icons/system.tsx +0 -143
  40. package/src/cds/index.ts +0 -64
  41. package/src/cds/patterns/Card/Card.tsx +0 -294
  42. package/src/cds/patterns/Card/class-icon.svg +0 -28
  43. package/src/cds/patterns/Card/index.tsx +0 -2
  44. package/src/cds/patterns/Card/material-icon.svg +0 -25
  45. package/src/cds/patterns/Card/problem-icon.svg +0 -25
  46. package/src/cds/patterns/Card/thumbnail/sample.png +0 -0
  47. package/src/cds/patterns/Dialog/Dialog.tsx +0 -57
  48. package/src/cds/patterns/Dialog/DialogContent.tsx +0 -28
  49. package/src/cds/patterns/Dialog/DialogNavigation.tsx +0 -29
  50. package/src/cds/patterns/Dialog/DialogNavigationContext.tsx +0 -9
  51. package/src/cds/patterns/Dialog/DialogNavigationItem.tsx +0 -42
  52. package/src/cds/patterns/Dialog/DialogPanel.tsx +0 -40
  53. package/src/cds/patterns/Dialog/DialogPanels.tsx +0 -24
  54. package/src/cds/patterns/Dialog/DialogPanelsContext.tsx +0 -9
  55. package/src/cds/patterns/Dialog/DialogTitle.tsx +0 -55
  56. package/src/cds/patterns/Dialog/index.tsx +0 -7
  57. package/src/cds/patterns/Dropdown/Dropdown.tsx +0 -111
  58. package/src/cds/patterns/Dropdown/DropdownItem.tsx +0 -203
  59. package/src/cds/patterns/Dropdown/DropdownMenu.tsx +0 -176
  60. package/src/cds/patterns/Dropdown/index.tsx +0 -2
  61. package/src/cds/patterns/EmptyState/EmptyState.tsx +0 -91
  62. package/src/cds/patterns/EmptyState/empty-state-icon.svg +0 -36
  63. package/src/cds/patterns/EmptyState/index.tsx +0 -2
  64. package/src/cds/patterns/Navigation/NavigationContext.tsx +0 -9
  65. package/src/cds/patterns/Navigation/NavigationHorizontal.tsx +0 -32
  66. package/src/cds/patterns/Navigation/NavigationItem.tsx +0 -36
  67. package/src/cds/patterns/Navigation/NavigationVertical.tsx +0 -39
  68. package/src/cds/patterns/Navigation/index.tsx +0 -3
  69. package/src/cds/patterns/SegmentedControl/SegmentedControlButton.tsx +0 -55
  70. package/src/cds/patterns/SegmentedControl/SegmentedControlGroup.tsx +0 -81
  71. package/src/cds/patterns/SegmentedControl/SegmentedControlGroupPropsContext.tsx +0 -9
  72. package/src/cds/patterns/SegmentedControl/SegmentedControlSquareButton.tsx +0 -51
  73. package/src/cds/patterns/SegmentedControl/index.ts +0 -3
  74. package/src/cds/patterns/Table/Table.tsx +0 -62
  75. package/src/cds/patterns/Table/TableBody.tsx +0 -30
  76. package/src/cds/patterns/Table/TableCell.tsx +0 -253
  77. package/src/cds/patterns/Table/TableHead.tsx +0 -30
  78. package/src/cds/patterns/Table/TablePropsContext.tsx +0 -9
  79. package/src/cds/patterns/Table/TableRow.tsx +0 -70
  80. package/src/cds/patterns/Table/TableVariantContext.tsx +0 -9
  81. package/src/cds/patterns/Table/index.tsx +0 -15
  82. package/src/cds/utils/hover.tsx +0 -24
  83. package/src/cds/utils/reset.tsx +0 -19
  84. package/src/cds/utils/zIndex.tsx +0 -3
  85. package/src/index.tsx +0 -10
  86. package/tsconfig.json +0 -22
  87. /package/{src/cds → @types}/emotion.d.ts +0 -0
  88. /package/{src/cds → @types}/svg.d.ts +0 -0
@@ -1,253 +0,0 @@
1
- /** @jsxImportSource @emotion/react */
2
- import { css, useTheme } from "@emotion/react";
3
- import React, { useContext } from "react";
4
- import TableVariantContext from "./TableVariantContext";
5
- import TablePropsContext from "./TablePropsContext";
6
- import { TableSize } from "./Table";
7
- import {
8
- ArrowDownFillIcon,
9
- ArrowUpFillIcon,
10
- ExpandUpDownIcon,
11
- } from "../../icons/arrows";
12
- import styled from "@emotion/styled";
13
- import { RESET_BUTTON } from "../../utils/reset";
14
- import { FilterFillIcon } from "../../icons/system";
15
-
16
- export interface TableCellProps {
17
- className?: string;
18
- component?: React.ElementType;
19
-
20
- /* Cell의 col span 값 */
21
- colSpan?: number;
22
- /* sort 아이콘을 위한 인자입니다. undefined일때는 아이콘을 그리지 않습니다. */
23
- sort?: "asc" | "desc" | "none";
24
- /* filter 아이콘을 위한 인자입니다. undefined일때는 아이콘을 그리지 않습니다. */
25
- isFilterActive?: boolean;
26
- /* Cell을 클릭할 때 호출되는 함수 */
27
- onClick?: () => void;
28
- /* 정렬 버튼을 클릭할 때 호출되는 함수 */
29
- onSortClick?: React.MouseEventHandler<HTMLButtonElement>;
30
- /* 필터 버튼을 클릭할 때 호출되는 함수 */
31
- onFilterClick?: React.MouseEventHandler<HTMLButtonElement>;
32
- /* 필터 버튼의 ref */
33
- filterButttonRef?: React.MutableRefObject<HTMLButtonElement | null>;
34
- /** Cell의 내용입니다. */
35
- children?: React.ReactNode;
36
- }
37
-
38
- const SIZE_TO_STYLES = (size: TableSize) =>
39
- ({
40
- small: css`
41
- padding: 8px 8px;
42
- `,
43
- medium: css`
44
- padding: 12px 8px;
45
- `,
46
- large: css`
47
- padding: 16px 8px;
48
- `,
49
- }[size]);
50
-
51
- export default function TableCell(props: TableCellProps) {
52
- const {
53
- className,
54
- component: Component,
55
- children,
56
- sort,
57
- colSpan,
58
- isFilterActive,
59
- onFilterClick,
60
- onClick,
61
- onSortClick,
62
- filterButttonRef,
63
- } = props;
64
- // variant 값에 따라 th 태그로 그릴지, td 태그로 그릴지를 결정합니다.
65
- const { variant } = useContext(TableVariantContext);
66
- const Element = Component ?? variant === "head" ? "th" : "td";
67
- const { size, disabled } = useContext(TablePropsContext);
68
- const theme = useTheme();
69
-
70
- if (variant === "body") {
71
- return (
72
- <Element
73
- colSpan={colSpan}
74
- className={className}
75
- onClick={onClick}
76
- css={[
77
- SIZE_TO_STYLES(size ?? "medium"),
78
- css`
79
- font-style: normal;
80
- font-weight: 400;
81
- font-size: 16px;
82
- line-height: 24px;
83
- `,
84
- css`
85
- display: table-cell;
86
- text-align: initial;
87
-
88
- &:first-of-type {
89
- padding-left: 16px;
90
- }
91
-
92
- &:last-of-type {
93
- padding-right: 16px;
94
- }
95
- `,
96
- ]}
97
- >
98
- {children}
99
- </Element>
100
- );
101
- }
102
-
103
- return (
104
- <Element
105
- colSpan={colSpan}
106
- className={className}
107
- onClick={onClick}
108
- css={[
109
- SIZE_TO_STYLES(size ?? "medium"),
110
- Element === "th"
111
- ? css`
112
- background: ${theme.color.background.neutralAlt};
113
- font-style: normal;
114
- font-weight: 500;
115
- font-size: 14px;
116
- line-height: 16px;
117
- `
118
- : css`
119
- font-style: normal;
120
- font-weight: 400;
121
- font-size: 16px;
122
- line-height: 24px;
123
- `,
124
- css`
125
- display: table-cell;
126
- text-align: initial;
127
-
128
- &:first-of-type {
129
- padding-left: 16px;
130
- }
131
-
132
- &:last-of-type {
133
- padding-right: 16px;
134
- }
135
- `,
136
- ]}
137
- >
138
- <Cell>
139
- {children}
140
- <Buttons>
141
- {sort && (
142
- <SortButton
143
- sort={sort}
144
- onSortClick={onSortClick}
145
- disabled={disabled}
146
- />
147
- )}
148
- {isFilterActive !== undefined && (
149
- <FilterButton
150
- isFilterActive={isFilterActive ?? false}
151
- onFilterClick={onFilterClick}
152
- ref={filterButttonRef}
153
- disabled={disabled}
154
- />
155
- )}
156
- </Buttons>
157
- </Cell>
158
- </Element>
159
- );
160
- }
161
-
162
- const Cell = styled.span`
163
- display: flex;
164
- justify-content: space-between;
165
- align-items: center;
166
- `;
167
-
168
- const Buttons = styled.span`
169
- display: flex;
170
- gap: 4px;
171
- `;
172
-
173
- const SortButton = (props: {
174
- sort?: "asc" | "desc" | "none";
175
- onSortClick?: React.MouseEventHandler<HTMLButtonElement>;
176
- disabled?: boolean;
177
- }) => {
178
- let sortIcon = <></>;
179
- switch (props.sort) {
180
- case "asc":
181
- sortIcon = <ArrowDownFillIcon />;
182
- break;
183
- case "desc":
184
- sortIcon = <ArrowUpFillIcon />;
185
- break;
186
- case "none":
187
- sortIcon = <ExpandUpDownIcon />;
188
- break;
189
- }
190
-
191
- return (
192
- <button
193
- disabled={props.disabled}
194
- onClick={props.onSortClick}
195
- css={css`
196
- ${RESET_BUTTON}
197
- display: flex;
198
- justify-content: center;
199
- align-items: center;
200
- padding: 6px;
201
-
202
- cursor: pointer;
203
-
204
- svg {
205
- width: 12px;
206
- height: 12px;
207
- }
208
- `}
209
- >
210
- {sortIcon}
211
- </button>
212
- );
213
- };
214
-
215
- const FilterButton = React.forwardRef<
216
- HTMLButtonElement,
217
- {
218
- isFilterActive: boolean;
219
- onFilterClick?: React.MouseEventHandler<HTMLButtonElement>;
220
- disabled?: boolean;
221
- }
222
- >((props, ref) => {
223
- const theme = useTheme();
224
- return (
225
- <button
226
- ref={ref}
227
- disabled={props.disabled}
228
- onClick={props.onFilterClick}
229
- css={[
230
- css`
231
- ${RESET_BUTTON}
232
- display: flex;
233
- justify-content: center;
234
- align-items: center;
235
- padding: 6px;
236
-
237
- cursor: pointer;
238
-
239
- svg {
240
- width: 12px;
241
- height: 12px;
242
- }
243
- `,
244
- props.isFilterActive &&
245
- css`
246
- color: ${theme.color.foreground.primary};
247
- `,
248
- ]}
249
- >
250
- <FilterFillIcon />
251
- </button>
252
- );
253
- });
@@ -1,30 +0,0 @@
1
- /** @jsxImportSource @emotion/react */
2
- import { css } from "@emotion/react";
3
- import React from "react";
4
- import TableVariantContext from "./TableVariantContext";
5
-
6
- export interface TableHeadProps {
7
- className?: string;
8
- component?: React.ElementType;
9
-
10
- /** Table의 내용입니다. 일반적으로 TableRow로 구성됩니다. */
11
- children?: React.ReactNode;
12
- }
13
-
14
- export default function TableHead(props: TableHeadProps) {
15
- const { className, component: Component = "thead", children } = props;
16
- return (
17
- <Component
18
- className={className}
19
- css={[
20
- css`
21
- display: table-header-group;
22
- `,
23
- ]}
24
- >
25
- <TableVariantContext.Provider value={{ variant: "head" }}>
26
- {children}
27
- </TableVariantContext.Provider>
28
- </Component>
29
- );
30
- }
@@ -1,9 +0,0 @@
1
- import * as React from "react";
2
- import { TableSize } from "./Table";
3
-
4
- const TablePropsContext = React.createContext<{
5
- size?: TableSize;
6
- disabled?: boolean;
7
- }>({});
8
-
9
- export default TablePropsContext;
@@ -1,70 +0,0 @@
1
- /** @jsxImportSource @emotion/react */
2
- import { css, useTheme } from "@emotion/react";
3
- import React, { useContext } from "react";
4
- import { HOVER } from "../../utils/hover";
5
- import TablePropsContext from "./TablePropsContext";
6
-
7
- export interface TableRowProps {
8
- className?: string;
9
- component?: React.ElementType;
10
-
11
- /** Table의 내용입니다. 일반적으로 TableCell로 구성됩니다. */
12
- children?: React.ReactNode;
13
- /** `true`일 때 기본적으로 적용되는 hover 배경색이 비활성화됩니다. */
14
- disableHover?: boolean;
15
- /** 이 행이 선택되었음을 결정하는 속성. `true`일때 배경색이 활성화됩니다. */
16
- isSelected?: boolean;
17
- /** 행을 클릭할 때 호출되는 함수 */
18
- onClick?: (event: any) => void;
19
- }
20
-
21
- export default function TableRow(props: TableRowProps) {
22
- const {
23
- className,
24
- component: Component = "tr",
25
- isSelected,
26
- disableHover,
27
- children,
28
- onClick,
29
- } = props;
30
- const theme = useTheme();
31
- const { disabled } = useContext(TablePropsContext);
32
- return (
33
- <Component
34
- className={className}
35
- onClick={disabled ? undefined : onClick}
36
- css={[
37
- css`
38
- display: table-row;
39
- &:not(:first-of-type) {
40
- td {
41
- border-top: 1px solid ${theme.color.background.neutralAlt};
42
- }
43
- }
44
- `,
45
- isSelected &&
46
- css`
47
- background: ${theme.color.container.primaryContainer};
48
- `,
49
- disabled
50
- ? css`
51
- color: ${theme.color.foreground.neutralBaseDisabled};
52
- `
53
- : css`
54
- ${!disableHover &&
55
- HOVER(
56
- css`
57
- background: ${theme.color.container.primaryContainer};
58
- `
59
- )}
60
- ${onClick &&
61
- css`
62
- cursor: pointer;
63
- `}
64
- `,
65
- ]}
66
- >
67
- {children}
68
- </Component>
69
- );
70
- }
@@ -1,9 +0,0 @@
1
- import * as React from "react";
2
-
3
- interface TableVariantContextProps {
4
- variant?: "head" | "body";
5
- }
6
-
7
- const TableVariantContext = React.createContext<TableVariantContextProps>({});
8
-
9
- export default TableVariantContext;
@@ -1,15 +0,0 @@
1
- import Table, { TableSize, TableProps } from "./Table";
2
- import TableHead, { TableHeadProps } from "./TableHead";
3
- import TableBody, { TableBodyProps } from "./TableBody";
4
- import TableRow, { TableRowProps } from "./TableRow";
5
- import TableCell, { TableCellProps } from "./TableCell";
6
-
7
- export { Table, TableHead, TableBody, TableRow, TableCell };
8
- export type {
9
- TableSize,
10
- TableProps,
11
- TableHeadProps,
12
- TableBodyProps,
13
- TableRowProps,
14
- TableCellProps,
15
- };
@@ -1,24 +0,0 @@
1
- import { css } from "@emotion/react";
2
- import { CSSInterpolation } from "@emotion/serialize";
3
-
4
- // https://choi-jinwoo.github.io/post/development/css-media-hover/
5
- export function HOVER(style: CSSInterpolation) {
6
- // -ms-high-contrast: none is for IE11 support.
7
- return css`
8
- @media (hover: hover), (-ms-high-contrast: none) {
9
- &:hover {
10
- ${style}
11
- }
12
- }
13
- `;
14
- }
15
-
16
- export function FOCUS(style: CSSInterpolation) {
17
- return css`
18
- @media (hover: hover), (-ms-high-contrast: none) {
19
- &:focus {
20
- ${style}
21
- }
22
- }
23
- `;
24
- }
@@ -1,19 +0,0 @@
1
- import { css } from "@emotion/react";
2
-
3
- export const RESET_BUTTON = css`
4
- display: inline-block;
5
- margin: 0;
6
- padding: 0;
7
- box-sizing: border-box;
8
- border: none;
9
- background: none;
10
- font: inherit;
11
- text-align: inherit;
12
- `;
13
-
14
- export const RESET_TABLE = css`
15
- padding: 0;
16
- border: 0;
17
- border-spacing: 0px;
18
- border-collapse: collapse;
19
- `;
@@ -1,3 +0,0 @@
1
- export const ZINDEX = {
2
- inputBase: 1, // https://github.com/mui/material-ui/blob/master/packages/mui-material/src/internal/SwitchBase.js#L35
3
- };
package/src/index.tsx DELETED
@@ -1,10 +0,0 @@
1
- import React from 'react';
2
- import ReactDOM from "react-dom";
3
- import App from './App';
4
-
5
- ReactDOM.render(
6
- <React.StrictMode>
7
- <App />
8
- </React.StrictMode>,
9
- document.getElementById("root")
10
- );
package/tsconfig.json DELETED
@@ -1,22 +0,0 @@
1
- {
2
- "compilerOptions": {
3
- "target": "es5",
4
- "lib": ["dom", "dom.iterable", "esnext"],
5
- "outDir": "./dist",
6
- "declaration": true,
7
- "allowJs": true,
8
- "skipLibCheck": true,
9
- "esModuleInterop": true,
10
- "allowSyntheticDefaultImports": true,
11
- "strict": true,
12
- "forceConsistentCasingInFileNames": true,
13
- "noFallthroughCasesInSwitch": true,
14
- "module": "esnext",
15
- "moduleResolution": "node",
16
- "resolveJsonModule": true,
17
- "isolatedModules": true,
18
- "jsx": "react-jsx"
19
- },
20
- "include": ["src/cds", "src/cds/svg.d.ts"],
21
- "exclude": ["node_modules", "dist"]
22
- }
File without changes
File without changes