@team-monolith/cds 1.125.0 → 1.126.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (197) hide show
  1. package/@types/emotion.d.ts +194 -194
  2. package/README.md +37 -37
  3. package/dist/CdsProvider.js +4 -4
  4. package/dist/components/AlertDialog/AlertDialog.js +54 -54
  5. package/dist/components/AlertDialog/AlertDialogActions.js +7 -7
  6. package/dist/components/AlertDialog/AlertDialogContent.js +8 -8
  7. package/dist/components/AlertDialog/AlertDialogTitle.js +34 -34
  8. package/dist/components/AnimatedButton.js +32 -32
  9. package/dist/components/Banner.js +45 -45
  10. package/dist/components/Book/Book.js +174 -174
  11. package/dist/components/Button.d.ts +0 -2
  12. package/dist/components/Button.js +181 -181
  13. package/dist/components/CheckboxInput.js +148 -148
  14. package/dist/components/FileTypeAlertDialog.js +6 -6
  15. package/dist/components/Input.js +53 -53
  16. package/dist/components/InputBase.js +72 -72
  17. package/dist/components/Modal.js +4 -4
  18. package/dist/components/OverflowTooltip.js +4 -4
  19. package/dist/components/Pagination.js +56 -56
  20. package/dist/components/PinInput.js +64 -64
  21. package/dist/components/Popover.js +27 -27
  22. package/dist/components/RadioInput.js +73 -73
  23. package/dist/components/Slider.js +58 -58
  24. package/dist/components/SquareButton.js +109 -109
  25. package/dist/components/Switch.js +69 -69
  26. package/dist/components/SwitchButton.js +107 -107
  27. package/dist/components/Tag.js +72 -72
  28. package/dist/components/Tooltip.js +19 -19
  29. package/dist/foundation/breakpoints.js +16 -16
  30. package/dist/foundation/typography.js +186 -186
  31. package/dist/icons/custom/colored/Microsoft.d.ts +5 -0
  32. package/dist/icons/custom/colored/Microsoft.js +7 -0
  33. package/dist/icons/custom/colored/ai-helper.svg +4 -4
  34. package/dist/icons/custom/colored/ai-quiz-color.svg +20 -20
  35. package/dist/icons/custom/colored/ai-socroom-color.svg +14 -14
  36. package/dist/icons/custom/colored/badge-color.svg +4 -4
  37. package/dist/icons/custom/colored/badge-gold.svg +11 -11
  38. package/dist/icons/custom/colored/badge-green.svg +11 -11
  39. package/dist/icons/custom/colored/badge-silver.svg +11 -11
  40. package/dist/icons/custom/colored/basic-plus.svg +31 -31
  41. package/dist/icons/custom/colored/basic.svg +3 -3
  42. package/dist/icons/custom/colored/board-color.svg +5 -5
  43. package/dist/icons/custom/colored/cast-cloudy-color.svg +6 -6
  44. package/dist/icons/custom/colored/cast-partly-color.svg +7 -7
  45. package/dist/icons/custom/colored/cast-rainbow-color.svg +13 -13
  46. package/dist/icons/custom/colored/cast-sunny-color.svg +4 -4
  47. package/dist/icons/custom/colored/clap-bronze.svg +8 -8
  48. package/dist/icons/custom/colored/clap-gold.svg +8 -8
  49. package/dist/icons/custom/colored/clap-silver.svg +8 -8
  50. package/dist/icons/custom/colored/class.svg +13 -13
  51. package/dist/icons/custom/colored/codap-color.svg +13 -13
  52. package/dist/icons/custom/colored/ebook-color.svg +5 -5
  53. package/dist/icons/custom/colored/embedded-color.svg +38 -38
  54. package/dist/icons/custom/colored/emo-clap-color.svg +252 -252
  55. package/dist/icons/custom/colored/emo-good-color.svg +68 -68
  56. package/dist/icons/custom/colored/emo-great-color.svg +67 -67
  57. package/dist/icons/custom/colored/emo-heart-color.svg +239 -239
  58. package/dist/icons/custom/colored/emo-hundred-color.svg +194 -194
  59. package/dist/icons/custom/colored/emo-neutral-color.svg +76 -76
  60. package/dist/icons/custom/colored/emo-stars-color.svg +121 -121
  61. package/dist/icons/custom/colored/emo-thumbup-color.svg +238 -238
  62. package/dist/icons/custom/colored/empty.svg +1 -1
  63. package/dist/icons/custom/colored/entry-color.svg +4 -4
  64. package/dist/icons/custom/colored/filename-all-color.svg +4 -4
  65. package/dist/icons/custom/colored/filename-doc-color.svg +5 -5
  66. package/dist/icons/custom/colored/filename-hwp-color.svg +6 -6
  67. package/dist/icons/custom/colored/filename-img-color.svg +6 -6
  68. package/dist/icons/custom/colored/filename-mp4-color.svg +5 -5
  69. package/dist/icons/custom/colored/filename-pdf-color.svg +12 -12
  70. package/dist/icons/custom/colored/filename-ppt-color.svg +6 -6
  71. package/dist/icons/custom/colored/filename-xls-color.svg +5 -5
  72. package/dist/icons/custom/colored/filename-zip-color.svg +5 -5
  73. package/dist/icons/custom/colored/google.svg +13 -13
  74. package/dist/icons/custom/colored/hand-fill.svg +4 -4
  75. package/dist/icons/custom/colored/index.d.ts +1 -0
  76. package/dist/icons/custom/colored/index.js +1 -0
  77. package/dist/icons/custom/colored/judge-color.svg +6 -6
  78. package/dist/icons/custom/colored/makecode-color.svg +4 -4
  79. package/dist/icons/custom/colored/master.svg +12 -12
  80. package/dist/icons/custom/colored/material.svg +6 -6
  81. package/dist/icons/custom/colored/medal-bronze.svg +9 -9
  82. package/dist/icons/custom/colored/medal-gold.svg +9 -9
  83. package/dist/icons/custom/colored/medal-silver.svg +9 -9
  84. package/dist/icons/custom/colored/microsoft.svg +6 -0
  85. package/dist/icons/custom/colored/pro.svg +4 -4
  86. package/dist/icons/custom/colored/problem.svg +7 -7
  87. package/dist/icons/custom/colored/python-color.svg +4 -4
  88. package/dist/icons/custom/colored/quiz-color.svg +12 -12
  89. package/dist/icons/custom/colored/resource-color.svg +13 -13
  90. package/dist/icons/custom/colored/scratch-color.svg +6 -6
  91. package/dist/icons/custom/colored/type-helper.svg +9 -9
  92. package/dist/icons/custom/colored/whale.svg +7 -7
  93. package/dist/icons/custom/colored/worksheet-color.svg +5 -5
  94. package/dist/icons/custom/default/ai-quiz.svg +8 -8
  95. package/dist/icons/custom/default/ai-socroom.svg +13 -13
  96. package/dist/icons/custom/default/badge.svg +4 -4
  97. package/dist/icons/custom/default/board.svg +5 -5
  98. package/dist/icons/custom/default/cast-cloudy.svg +3 -3
  99. package/dist/icons/custom/default/cast-partly.svg +4 -4
  100. package/dist/icons/custom/default/cast-rainbow.svg +12 -12
  101. package/dist/icons/custom/default/cast-sunny.svg +3 -3
  102. package/dist/icons/custom/default/codap.svg +11 -11
  103. package/dist/icons/custom/default/ebook.svg +3 -3
  104. package/dist/icons/custom/default/embedded.svg +4 -4
  105. package/dist/icons/custom/default/emo-clap.svg +6 -6
  106. package/dist/icons/custom/default/emo-good.svg +12 -12
  107. package/dist/icons/custom/default/emo-great.svg +12 -12
  108. package/dist/icons/custom/default/emo-heart.svg +5 -5
  109. package/dist/icons/custom/default/emo-hundred.svg +3 -3
  110. package/dist/icons/custom/default/emo-neutral.svg +14 -14
  111. package/dist/icons/custom/default/emo-stars.svg +14 -14
  112. package/dist/icons/custom/default/emo-thumbup.svg +3 -3
  113. package/dist/icons/custom/default/entry.svg +4 -4
  114. package/dist/icons/custom/default/fab.svg +10 -10
  115. package/dist/icons/custom/default/grant-alt.svg +5 -5
  116. package/dist/icons/custom/default/grant.svg +4 -4
  117. package/dist/icons/custom/default/hand-line.svg +3 -3
  118. package/dist/icons/custom/default/judge.svg +3 -3
  119. package/dist/icons/custom/default/makecode.svg +5 -5
  120. package/dist/icons/custom/default/pdf.svg +3 -3
  121. package/dist/icons/custom/default/python.svg +7 -7
  122. package/dist/icons/custom/default/quiz.svg +4 -4
  123. package/dist/icons/custom/default/resource.svg +11 -11
  124. package/dist/icons/custom/default/scratch.svg +3 -3
  125. package/dist/icons/custom/default/scroll-alt.svg +5 -5
  126. package/dist/icons/custom/default/scroll-fill.svg +4 -4
  127. package/dist/icons/custom/default/scroll-line.svg +5 -5
  128. package/dist/icons/custom/default/symbol.svg +4 -4
  129. package/dist/icons/custom/default/worksheet.svg +4 -4
  130. package/dist/icons/custom/svgrColoredTemplate.js +26 -26
  131. package/dist/icons/custom/svgrDefaultTemplate.js +26 -26
  132. package/dist/patterns/Accordion.js +20 -20
  133. package/dist/patterns/Dropdown/Dropdown.d.ts +0 -2
  134. package/dist/patterns/Dropdown/Dropdown.js +2 -3
  135. package/dist/patterns/Dropdown/DropdownItem/DropdownItem.js +58 -58
  136. package/dist/patterns/Dropdown/DropdownMenu/DropdownMenu.js +27 -27
  137. package/dist/patterns/Dropdown/DropdownMenu/style.js +19 -19
  138. package/dist/patterns/LexicalEditor/Plugins.js +36 -36
  139. package/dist/patterns/LexicalEditor/components/FileSelectInput.d.ts +0 -1
  140. package/dist/patterns/LexicalEditor/components/FileSelectInput.js +24 -24
  141. package/dist/patterns/LexicalEditor/components/InsertImageDialog/ImagePreview.js +4 -4
  142. package/dist/patterns/LexicalEditor/components/InsertImageDialog/InsertImageDialog.js +15 -15
  143. package/dist/patterns/LexicalEditor/components/InsertVideoDialog/InsertVideoDialog.js +17 -17
  144. package/dist/patterns/LexicalEditor/components/UploadFileDialog/UploadFileDialog.js +2 -2
  145. package/dist/patterns/LexicalEditor/hr.svg +3 -3
  146. package/dist/patterns/LexicalEditor/nodes/FileNode/FileComponent.js +44 -44
  147. package/dist/patterns/LexicalEditor/nodes/FileNode/FileDownloadButton.js +25 -25
  148. package/dist/patterns/LexicalEditor/nodes/ImageNode/ImageComponent.js +8 -8
  149. package/dist/patterns/LexicalEditor/nodes/ImageNode/ImageResizer.js +60 -60
  150. package/dist/patterns/LexicalEditor/nodes/ProblemInputNode/InputComponent.js +19 -19
  151. package/dist/patterns/LexicalEditor/nodes/ProblemInputNode/SegmentedInput.js +49 -49
  152. package/dist/patterns/LexicalEditor/nodes/ProblemInputNode/SettingForm/FormSolution.js +7 -7
  153. package/dist/patterns/LexicalEditor/nodes/ProblemInputNode/SettingForm/SettingForm.js +73 -73
  154. package/dist/patterns/LexicalEditor/nodes/ProblemInputNode/SettingForm/TextTypeDropdown.js +5 -5
  155. package/dist/patterns/LexicalEditor/nodes/ProblemInputNode/TextInput.js +7 -7
  156. package/dist/patterns/LexicalEditor/nodes/ProblemSelectNode/SelectBox/SelectBoxComponent.js +69 -69
  157. package/dist/patterns/LexicalEditor/nodes/ProblemSelectNode/SelectBox/SelectBoxEdit.js +3 -3
  158. package/dist/patterns/LexicalEditor/nodes/ProblemSelectNode/SelectBox/SelectBoxView.js +15 -15
  159. package/dist/patterns/LexicalEditor/nodes/ProblemSelectNode/SelectComponent.js +28 -28
  160. package/dist/patterns/LexicalEditor/nodes/ProblemSelectNode/SettingForm/FormSelection.js +54 -54
  161. package/dist/patterns/LexicalEditor/nodes/ProblemSelectNode/SettingForm/SettingForm.js +61 -61
  162. package/dist/patterns/LexicalEditor/nodes/SelfEvaluationNode/EvaluationComponent/Evaluation/Evaluation.js +75 -75
  163. package/dist/patterns/LexicalEditor/nodes/SelfEvaluationNode/EvaluationComponent/Evaluation/SettingForm/FormIconAndLabel/FormIconAndLabel.js +18 -18
  164. package/dist/patterns/LexicalEditor/nodes/SelfEvaluationNode/EvaluationComponent/Evaluation/SettingForm/FormIconAndLabel/FormLabel.js +7 -7
  165. package/dist/patterns/LexicalEditor/nodes/SelfEvaluationNode/EvaluationComponent/Evaluation/SettingForm/FormQuestion.js +28 -28
  166. package/dist/patterns/LexicalEditor/nodes/SelfEvaluationNode/EvaluationComponent/Evaluation/SettingForm/SettingForm.js +53 -53
  167. package/dist/patterns/LexicalEditor/nodes/SelfEvaluationNode/EvaluationComponent/EvaluationComponent.js +7 -7
  168. package/dist/patterns/LexicalEditor/nodes/SheetInputNode/InputComponent.js +25 -25
  169. package/dist/patterns/LexicalEditor/nodes/SheetInputNode/SettingForm.js +54 -54
  170. package/dist/patterns/LexicalEditor/nodes/SheetSelectNode/SelectComponent/SelectBox/SelectBoxComponent.js +54 -54
  171. package/dist/patterns/LexicalEditor/nodes/SheetSelectNode/SelectComponent/SelectBox/SelectBoxView.js +5 -5
  172. package/dist/patterns/LexicalEditor/nodes/SheetSelectNode/SelectComponent/SelectComponent.js +21 -21
  173. package/dist/patterns/LexicalEditor/nodes/SheetSelectNode/SelectComponent/SettingForm/FormSelection.js +42 -42
  174. package/dist/patterns/LexicalEditor/nodes/SheetSelectNode/SelectComponent/SettingForm/SettingForm.js +72 -72
  175. package/dist/patterns/LexicalEditor/nodes/VideoNode/VideoComponent.js +7 -7
  176. package/dist/patterns/LexicalEditor/plugins/ComponentAdderPlugin/ComponentAdder.js +51 -51
  177. package/dist/patterns/LexicalEditor/plugins/ComponentAdderPlugin/ComponentAdderPlugin.js +11 -11
  178. package/dist/patterns/LexicalEditor/plugins/ComponentAdderPlugin/menu.svg +7 -7
  179. package/dist/patterns/LexicalEditor/plugins/ComponentAdderPlugin/plus.svg +2 -2
  180. package/dist/patterns/LexicalEditor/plugins/ComponentPickerMenuPlugin/ComponentPickerMenuItem.js +32 -32
  181. package/dist/patterns/LexicalEditor/plugins/ComponentPickerMenuPlugin/ComponentPickerMenuList.js +32 -32
  182. package/dist/patterns/LexicalEditor/plugins/ComponentPickerMenuPlugin/ComponentPickerMenuPlugin.js +12 -12
  183. package/dist/patterns/LexicalEditor/plugins/ComponentPickerMenuPlugin/componentPickerOptionUtils.js +2 -2
  184. package/dist/patterns/LexicalEditor/plugins/FloatingLinkEditorPlugin/FloatingLinkEditor.js +49 -49
  185. package/dist/patterns/LexicalEditor/plugins/FloatingTextFormatToolbarPlugin/FloatingTextFormatPopup.js +36 -36
  186. package/dist/patterns/LexicalEditor/plugins/ParagraphPlaceholderPlugin/index.js +7 -7
  187. package/dist/patterns/LexicalEditor/theme.js +243 -243
  188. package/dist/patterns/SegmentedControl/SegmentedControlButton.js +10 -10
  189. package/dist/patterns/SegmentedControl/SegmentedControlGroup.js +8 -8
  190. package/dist/patterns/SegmentedControl/SegmentedControlSquareButton.js +2 -2
  191. package/dist/patterns/Tabs.js +43 -43
  192. package/dist/patterns/ToggleButtonGroup/ToggleButton.js +40 -40
  193. package/dist/patterns/ToggleButtonGroup/ToggleButtonGroup.js +11 -11
  194. package/dist/utils/hover.js +12 -12
  195. package/dist/utils/reset.js +19 -19
  196. package/dist/utils/visuallyHidden.js +10 -10
  197. package/package.json +109 -109
@@ -22,104 +22,104 @@ export const checkboxInputClasses = {
22
22
  label: "CheckboxInput-label",
23
23
  };
24
24
  const CHECKBOX_ICON_STYLE = (theme, type, disabled) => ({
25
- default: css `
26
- rect {
27
- fill: ${theme.color.background.neutralBase};
28
- stroke: ${theme.color.background.neutralAltActive};
29
- }
25
+ default: css `
26
+ rect {
27
+ fill: ${theme.color.background.neutralBase};
28
+ stroke: ${theme.color.background.neutralAltActive};
29
+ }
30
30
  ${disabled
31
- ? css `
32
- rect {
33
- fill: ${theme.color.background.neutralBaseDisabled};
34
- stroke: ${theme.color.foreground.neutralBaseDisabled};
35
- }
31
+ ? css `
32
+ rect {
33
+ fill: ${theme.color.background.neutralBaseDisabled};
34
+ stroke: ${theme.color.foreground.neutralBaseDisabled};
35
+ }
36
36
  `
37
- : css `
38
- input[type="checkbox"]:hover + & {
39
- rect {
40
- stroke: ${theme.color.background.primary};
41
- }
42
- }
43
- input[type="checkbox"]:focus-visible + & {
44
- rect {
45
- stroke: ${theme.color.background.primary};
46
- }
47
- }
48
- `}
37
+ : css `
38
+ input[type="checkbox"]:hover + & {
39
+ rect {
40
+ stroke: ${theme.color.background.primary};
41
+ }
42
+ }
43
+ input[type="checkbox"]:focus-visible + & {
44
+ rect {
45
+ stroke: ${theme.color.background.primary};
46
+ }
47
+ }
48
+ `}
49
49
  `,
50
- checked: css `
51
- rect {
52
- fill: ${theme.color.background.primary};
53
- stroke: ${theme.color.background.primary};
54
- }
55
- path {
56
- fill: ${theme.color.background.neutralBase};
57
- }
50
+ checked: css `
51
+ rect {
52
+ fill: ${theme.color.background.primary};
53
+ stroke: ${theme.color.background.primary};
54
+ }
55
+ path {
56
+ fill: ${theme.color.background.neutralBase};
57
+ }
58
58
  ${disabled
59
- ? css `
60
- rect {
61
- fill: ${theme.color.background.neutralBaseDisabled};
62
- stroke: ${theme.color.background.primaryDisabled};
63
- }
64
- path {
65
- fill: ${theme.color.background.primaryDisabled};
66
- }
59
+ ? css `
60
+ rect {
61
+ fill: ${theme.color.background.neutralBaseDisabled};
62
+ stroke: ${theme.color.background.primaryDisabled};
63
+ }
64
+ path {
65
+ fill: ${theme.color.background.primaryDisabled};
66
+ }
67
67
  `
68
- : css `
69
- input[type="checkbox"]:hover + & {
70
- rect {
71
- fill: ${theme.color.background.primaryActive};
72
- stroke: ${theme.color.background.primaryActive};
73
- }
74
- }
75
- input[type="checkbox"]:focus-visible + & {
76
- rect {
77
- fill: ${theme.color.background.primaryActive};
78
- stroke: ${theme.color.background.primaryActive};
79
- }
80
- }
81
- `}
68
+ : css `
69
+ input[type="checkbox"]:hover + & {
70
+ rect {
71
+ fill: ${theme.color.background.primaryActive};
72
+ stroke: ${theme.color.background.primaryActive};
73
+ }
74
+ }
75
+ input[type="checkbox"]:focus-visible + & {
76
+ rect {
77
+ fill: ${theme.color.background.primaryActive};
78
+ stroke: ${theme.color.background.primaryActive};
79
+ }
80
+ }
81
+ `}
82
82
  `,
83
- partial: css `
84
- rect {
85
- fill: ${theme.color.background.neutralBase};
86
- stroke: ${theme.color.background.primary};
87
- }
88
- rect + rect {
89
- fill: ${theme.color.background.primary};
90
- stroke: none;
91
- }
83
+ partial: css `
84
+ rect {
85
+ fill: ${theme.color.background.neutralBase};
86
+ stroke: ${theme.color.background.primary};
87
+ }
88
+ rect + rect {
89
+ fill: ${theme.color.background.primary};
90
+ stroke: none;
91
+ }
92
92
  ${disabled
93
- ? css `
94
- rect {
95
- fill: ${theme.color.background.neutralBaseDisabled};
96
- stroke: ${theme.color.background.primaryDisabled};
97
- }
98
- rect + rect {
99
- fill: ${theme.color.background.primaryDisabled};
100
- stroke: none;
101
- }
93
+ ? css `
94
+ rect {
95
+ fill: ${theme.color.background.neutralBaseDisabled};
96
+ stroke: ${theme.color.background.primaryDisabled};
97
+ }
98
+ rect + rect {
99
+ fill: ${theme.color.background.primaryDisabled};
100
+ stroke: none;
101
+ }
102
102
  `
103
- : css `
104
- input[type="checkbox"]:hover + & {
105
- rect {
106
- stroke: ${theme.color.background.primaryActive};
107
- }
108
- rect + rect {
109
- fill: ${theme.color.background.primaryActive};
110
- stroke: none;
111
- }
112
- }
113
- input[type="checkbox"]:focus-visible + & {
114
- rect {
115
- stroke: ${theme.color.background.primaryActive};
116
- }
117
- rect + rect {
118
- fill: ${theme.color.background.primaryActive};
119
- stroke: none;
120
- }
121
- }
122
- `}
103
+ : css `
104
+ input[type="checkbox"]:hover + & {
105
+ rect {
106
+ stroke: ${theme.color.background.primaryActive};
107
+ }
108
+ rect + rect {
109
+ fill: ${theme.color.background.primaryActive};
110
+ stroke: none;
111
+ }
112
+ }
113
+ input[type="checkbox"]:focus-visible + & {
114
+ rect {
115
+ stroke: ${theme.color.background.primaryActive};
116
+ }
117
+ rect + rect {
118
+ fill: ${theme.color.background.primaryActive};
119
+ stroke: none;
120
+ }
121
+ }
122
+ `}
123
123
  `,
124
124
  })[type];
125
125
  /**
@@ -141,8 +141,8 @@ export const CheckboxInput = React.forwardRef(function CheckboxInput(props, ref)
141
141
  };
142
142
  return (_jsxs(Label, Object.assign({ className: [checkboxInputClasses.root, className]
143
143
  .filter(Boolean)
144
- .join(" "), ref: ref, disabled: disabled !== null && disabled !== void 0 ? disabled : false }, other, { children: [_jsx(Checkbox, Object.assign({ className: checkboxInputClasses.checkbox }, checkboxProps)), _jsx("span", { className: checkboxInputClasses.label, css: css `
145
- margin-left: 8px;
144
+ .join(" "), ref: ref, disabled: disabled !== null && disabled !== void 0 ? disabled : false }, other, { children: [_jsx(Checkbox, Object.assign({ className: checkboxInputClasses.checkbox }, checkboxProps)), _jsx("span", { className: checkboxInputClasses.label, css: css `
145
+ margin-left: 8px;
146
146
  `, children: label })] })));
147
147
  });
148
148
  const Checkbox = React.forwardRef(function Checkbox(props, ref) {
@@ -155,68 +155,68 @@ const Checkbox = React.forwardRef(function Checkbox(props, ref) {
155
155
  const clampedSize = Math.max(hitAreaSize, DEFAULT_CHECKBOX_SIZE);
156
156
  return (_jsxs(CheckboxContainer, Object.assign({ className: className, spacer: spacer, disabled: disabled, hitAreaSize: clampedSize, ref: ref }, other, { children: [_jsx(StyledInput, Object.assign({ type: "checkbox" }, inputProps, { checked: checked, disabled: disabled, onClick: onClick, onChange: onChange, size: clampedSize })), _jsx(CheckboxIcon, { type: type, disabled: disabled })] })));
157
157
  });
158
- const CheckboxContainer = styled.span(({ theme, spacer, disabled, hitAreaSize }) => css `
159
- display: flex;
160
- align-items: center;
161
- justify-content: center;
162
- position: relative;
163
- width: ${DEFAULT_CHECKBOX_SIZE}px;
164
- height: ${DEFAULT_CHECKBOX_SIZE}px;
165
- cursor: ${disabled ? "default" : "pointer"};
166
- margin-bottom: ${spacer ? "8px" : "0"};
167
-
168
- svg {
169
- z-index: 1;
170
- pointer-events: none;
171
- }
172
-
158
+ const CheckboxContainer = styled.span(({ theme, spacer, disabled, hitAreaSize }) => css `
159
+ display: flex;
160
+ align-items: center;
161
+ justify-content: center;
162
+ position: relative;
163
+ width: ${DEFAULT_CHECKBOX_SIZE}px;
164
+ height: ${DEFAULT_CHECKBOX_SIZE}px;
165
+ cursor: ${disabled ? "default" : "pointer"};
166
+ margin-bottom: ${spacer ? "8px" : "0"};
167
+
168
+ svg {
169
+ z-index: 1;
170
+ pointer-events: none;
171
+ }
172
+
173
173
  ${hitAreaSize > DEFAULT_CHECKBOX_SIZE &&
174
- css `
175
- &::before {
176
- content: "";
177
- position: absolute;
178
- top: ${(DEFAULT_CHECKBOX_SIZE - hitAreaSize) / 2}px;
179
- left: ${(DEFAULT_CHECKBOX_SIZE - hitAreaSize) / 2}px;
180
- width: ${hitAreaSize}px;
181
- height: ${hitAreaSize}px;
182
- border-radius: 50%;
183
- background: ${theme.color.background.neutralAltActive};
184
- opacity: 0;
185
- pointer-events: none;
186
- }
187
- `}
174
+ css `
175
+ &::before {
176
+ content: "";
177
+ position: absolute;
178
+ top: ${(DEFAULT_CHECKBOX_SIZE - hitAreaSize) / 2}px;
179
+ left: ${(DEFAULT_CHECKBOX_SIZE - hitAreaSize) / 2}px;
180
+ width: ${hitAreaSize}px;
181
+ height: ${hitAreaSize}px;
182
+ border-radius: 50%;
183
+ background: ${theme.color.background.neutralAltActive};
184
+ opacity: 0;
185
+ pointer-events: none;
186
+ }
187
+ `}
188
188
  ${!disabled &&
189
- css `
190
- &:hover::before,
191
- &:focus-visible::before {
192
- opacity: 0.5; /* input 영역 hover 및 focus 시 표시 */
193
- }
194
- `}
189
+ css `
190
+ &:hover::before,
191
+ &:focus-visible::before {
192
+ opacity: 0.5; /* input 영역 hover 및 focus 시 표시 */
193
+ }
194
+ `}
195
195
  `);
196
- const StyledInput = styled.input(({ size }) => css `
197
- cursor: inherit;
198
- position: absolute;
199
- top: ${(DEFAULT_CHECKBOX_SIZE - size) / 2}px;
200
- left: ${(DEFAULT_CHECKBOX_SIZE - size) / 2}px;
201
- opacity: 0;
202
- width: ${size}px;
203
- height: ${size}px;
204
- margin: 0;
205
- padding: 0;
206
- // input 컴포넌트는 보이지 않지만, 클릭이 가능하게 z-index를 설정합니다.
207
- z-index: ${ZINDEX.inputBase};
196
+ const StyledInput = styled.input(({ size }) => css `
197
+ cursor: inherit;
198
+ position: absolute;
199
+ top: ${(DEFAULT_CHECKBOX_SIZE - size) / 2}px;
200
+ left: ${(DEFAULT_CHECKBOX_SIZE - size) / 2}px;
201
+ opacity: 0;
202
+ width: ${size}px;
203
+ height: ${size}px;
204
+ margin: 0;
205
+ padding: 0;
206
+ // input 컴포넌트는 보이지 않지만, 클릭이 가능하게 z-index를 설정합니다.
207
+ z-index: ${ZINDEX.inputBase};
208
208
  `);
209
- const Label = styled.label `
210
- display: flex;
211
- position: relative;
212
- width: fit-content;
213
- font-size: 14px;
214
- font-weight: 500;
215
- line-height: 16px;
209
+ const Label = styled.label `
210
+ display: flex;
211
+ position: relative;
212
+ width: fit-content;
213
+ font-size: 14px;
214
+ font-weight: 500;
215
+ line-height: 16px;
216
216
  color: ${({ theme, disabled }) => disabled
217
217
  ? theme.color.foreground.neutralBaseDisabled
218
- : theme.color.foreground.neutralBase};
219
- align-self: center;
218
+ : theme.color.foreground.neutralBase};
219
+ align-self: center;
220
220
  `;
221
221
  const CheckboxIcon = (props) => {
222
222
  const theme = useTheme();
@@ -17,12 +17,12 @@ export function FileTypeAlertDialog(props) {
17
17
  const { t } = useTranslation();
18
18
  return (_jsxs(AlertDialog, { className: [fileTypeAlertDialogClasses.root, className]
19
19
  .filter(Boolean)
20
- .join(" "), open: open, onClose: onClose, icon: _jsx(AlertFillIcon, { css: css `
21
- color: ${theme.color.background.danger};
22
- ` }), children: [_jsx(AlertDialogTitle, { className: fileTypeAlertDialogClasses.title, css: css `
23
- font-weight: 700;
24
- `, onClose: onClose, children: t("파일 형식을 확인해주세요.") }), _jsx(AlertDialogContent, { className: fileTypeAlertDialogClasses.content, children: content }), _jsxs(AlertDialogActions, { className: fileTypeAlertDialogClasses.actions, children: [_jsx(Button, { color: "grey", label: t("닫기", { context: "다이얼로그" }), size: "medium", onClick: onClose, bold: true }), _jsx(Button, { color: "primary", label: t("다시 업로드"), size: "medium", onClick: () => {
20
+ .join(" "), open: open, onClose: onClose, icon: _jsx(AlertFillIcon, { css: css `
21
+ color: ${theme.color.background.danger};
22
+ ` }), children: [_jsx(AlertDialogTitle, { className: fileTypeAlertDialogClasses.title, css: css `
23
+ font-weight: 700;
24
+ `, onClose: onClose, children: t("파일 형식을 확인해주세요.") }), _jsx(AlertDialogContent, { className: fileTypeAlertDialogClasses.content, children: content }), _jsxs(AlertDialogActions, { className: fileTypeAlertDialogClasses.actions, children: [_jsx(Button, { color: "grey", label: t("닫기", { context: "다이얼로그" }), size: "medium", onClick: onClose }), _jsx(Button, { color: "primary", label: t("다시 업로드"), size: "medium", onClick: () => {
25
25
  onClose();
26
26
  openFileBrowser();
27
- }, bold: true })] })] }));
27
+ } })] })] }));
28
28
  }
@@ -21,50 +21,50 @@ export const inputClasses = {
21
21
  hint: "Input-hint",
22
22
  };
23
23
  const COLOR_TO_HINT_STYLES = (theme, color, disabled) => disabled
24
- ? css `
25
- color: ${theme.color.foreground.neutralBaseDisabled};
24
+ ? css `
25
+ color: ${theme.color.foreground.neutralBaseDisabled};
26
26
  `
27
27
  : {
28
- default: css `
29
- color: ${theme.color.foreground.neutralBaseDisabled};
28
+ default: css `
29
+ color: ${theme.color.foreground.neutralBaseDisabled};
30
30
  `,
31
- base: css `
32
- color: ${theme.color.foreground.neutralBaseDisabled};
31
+ base: css `
32
+ color: ${theme.color.foreground.neutralBaseDisabled};
33
33
  `,
34
- activePrimary: css `
35
- color: ${theme.color.foreground.neutralBaseDisabled};
34
+ activePrimary: css `
35
+ color: ${theme.color.foreground.neutralBaseDisabled};
36
36
  `,
37
- activeDanger: css `
38
- color: ${theme.color.foreground.danger};
37
+ activeDanger: css `
38
+ color: ${theme.color.foreground.danger};
39
39
  `,
40
- activeSuccess: css `
41
- color: ${theme.color.foreground.success};
40
+ activeSuccess: css `
41
+ color: ${theme.color.foreground.success};
42
42
  `,
43
43
  }[color];
44
44
  const SIZE_TO_FONT_STYLES = (size) => ({
45
- small: css `
46
- font-size: 14px;
47
- line-height: 20px;
48
- svg {
49
- width: 16px;
50
- height: 16px;
51
- }
45
+ small: css `
46
+ font-size: 14px;
47
+ line-height: 20px;
48
+ svg {
49
+ width: 16px;
50
+ height: 16px;
51
+ }
52
52
  `,
53
- medium: css `
54
- font-size: 16px;
55
- line-height: 24px;
56
- svg {
57
- width: 16px;
58
- height: 16px;
59
- }
53
+ medium: css `
54
+ font-size: 16px;
55
+ line-height: 24px;
56
+ svg {
57
+ width: 16px;
58
+ height: 16px;
59
+ }
60
60
  `,
61
- large: css `
62
- font-size: 18px;
63
- line-height: 28px;
64
- svg {
65
- width: 18px;
66
- height: 18px;
67
- }
61
+ large: css `
62
+ font-size: 18px;
63
+ line-height: 28px;
64
+ svg {
65
+ width: 18px;
66
+ height: 18px;
67
+ }
68
68
  `,
69
69
  })[size];
70
70
  /**
@@ -81,27 +81,27 @@ export const Input = React.forwardRef(function Input(props, ref) {
81
81
  });
82
82
  const InputWrapper = styled("span", {
83
83
  shouldForwardProp: (prop) => prop !== "fullWidth",
84
- }) `
85
- display: flex;
86
- flex-direction: column;
87
- gap: 8px;
88
- ${({ size }) => SIZE_TO_FONT_STYLES(size)}
89
- ${({ fullWidth }) => fullWidth && `width: 100%;`}
90
-
91
- position: relative;
84
+ }) `
85
+ display: flex;
86
+ flex-direction: column;
87
+ gap: 8px;
88
+ ${({ size }) => SIZE_TO_FONT_STYLES(size)}
89
+ ${({ fullWidth }) => fullWidth && `width: 100%;`}
90
+
91
+ position: relative;
92
92
  `;
93
- const Label = styled.label `
94
- display: flex;
95
- flex-direction: column;
96
- gap: 8px;
93
+ const Label = styled.label `
94
+ display: flex;
95
+ flex-direction: column;
96
+ gap: 8px;
97
97
  ${({ theme, disabled }) => disabled &&
98
- css `
99
- color: ${theme.color.foreground.neutralBaseDisabled};
100
- `}
98
+ css `
99
+ color: ${theme.color.foreground.neutralBaseDisabled};
100
+ `}
101
101
  `;
102
- const Hint = styled.div(({ theme, color, disabled }) => css `
103
- display: flex;
104
- align-items: center;
105
- gap: 4px;
106
- ${COLOR_TO_HINT_STYLES(theme, color, disabled)};
102
+ const Hint = styled.div(({ theme, color, disabled }) => css `
103
+ display: flex;
104
+ align-items: center;
105
+ gap: 4px;
106
+ ${COLOR_TO_HINT_STYLES(theme, color, disabled)};
107
107
  `);
@@ -16,79 +16,79 @@ export const inputBaseClasses = {
16
16
  // 이 컴포넌트는 multiline을 고려하여 height를 명시적으로 지정하지 않았습니다.
17
17
  const COLOR_TO_INPUT_STYLES = (theme, color, disabled) => {
18
18
  if (disabled) {
19
- return css `
20
- border: 2px solid ${theme.color.background.neutralAltActive};
21
- background: ${theme.color.background.neutralAltDisabled};
22
- color: ${theme.color.foreground.neutralBaseDisabled};
19
+ return css `
20
+ border: 2px solid ${theme.color.background.neutralAltActive};
21
+ background: ${theme.color.background.neutralAltDisabled};
22
+ color: ${theme.color.foreground.neutralBaseDisabled};
23
23
  `;
24
24
  }
25
25
  return {
26
- default: css `
27
- border: 2px solid ${theme.color.background.neutralAltActive};
28
- background: ${theme.color.background.neutralAlt};
29
- color: ${theme.color.foreground.neutralBase};
26
+ default: css `
27
+ border: 2px solid ${theme.color.background.neutralAltActive};
28
+ background: ${theme.color.background.neutralAlt};
29
+ color: ${theme.color.foreground.neutralBase};
30
30
  `,
31
- base: css `
32
- border: 2px solid transparent;
33
- background: ${theme.color.background.neutralBase};
34
- color: ${theme.color.foreground.neutralBase};
31
+ base: css `
32
+ border: 2px solid transparent;
33
+ background: ${theme.color.background.neutralBase};
34
+ color: ${theme.color.foreground.neutralBase};
35
35
  `,
36
- activePrimary: css `
37
- border: 2px solid ${theme.color.foreground.primary};
38
- background: ${theme.color.background.neutralBase};
39
- color: ${theme.color.foreground.neutralBase};
36
+ activePrimary: css `
37
+ border: 2px solid ${theme.color.foreground.primary};
38
+ background: ${theme.color.background.neutralBase};
39
+ color: ${theme.color.foreground.neutralBase};
40
40
  `,
41
- activeDanger: css `
42
- border: 2px solid ${theme.color.foreground.danger};
43
- background: ${theme.color.background.neutralBase};
44
- color: ${theme.color.foreground.neutralBase};
41
+ activeDanger: css `
42
+ border: 2px solid ${theme.color.foreground.danger};
43
+ background: ${theme.color.background.neutralBase};
44
+ color: ${theme.color.foreground.neutralBase};
45
45
  `,
46
- activeSuccess: css `
47
- border: 2px solid ${theme.color.foreground.success};
48
- background: ${theme.color.background.neutralBase};
49
- color: ${theme.color.foreground.neutralBase};
46
+ activeSuccess: css `
47
+ border: 2px solid ${theme.color.foreground.success};
48
+ background: ${theme.color.background.neutralBase};
49
+ color: ${theme.color.foreground.neutralBase};
50
50
  `,
51
51
  }[color];
52
52
  };
53
53
  // 아래 padding 값은 피그마와 조금 다릅니다.
54
54
  // 왜냐하면 border가 따로 크기가 계산되므로 제외했기 때문입니다.
55
55
  const SIZE_TO_STYLES = (size, fullWidth) => ({
56
- small: css `
57
- padding-top: 6px;
58
- padding-bottom: 6px;
59
- ${!fullWidth && "max-width: 300px"};
56
+ small: css `
57
+ padding-top: 6px;
58
+ padding-bottom: 6px;
59
+ ${!fullWidth && "max-width: 300px"};
60
60
  `,
61
- medium: css `
62
- padding-top: 10px;
63
- padding-bottom: 10px;
64
- ${!fullWidth && "max-width: 375px"};
61
+ medium: css `
62
+ padding-top: 10px;
63
+ padding-bottom: 10px;
64
+ ${!fullWidth && "max-width: 375px"};
65
65
  `,
66
- large: css `
67
- padding-top: 12px;
68
- padding-bottom: 12px;
69
- ${!fullWidth && "max-width: 375px"};
66
+ large: css `
67
+ padding-top: 12px;
68
+ padding-bottom: 12px;
69
+ ${!fullWidth && "max-width: 375px"};
70
70
  `,
71
71
  })[size];
72
72
  function InputComponent(props) {
73
73
  const { placeholder, disabled = false, defaultValue, value } = props;
74
74
  const theme = useTheme();
75
- const style = css `
76
- appearance: none;
77
- flex: 1;
78
- width: 0; // https://stackoverflow.com/questions/42421361/input-button-elements-not-shrinking-in-a-flex-container
79
- border: none;
80
- padding: 0;
81
- background-color: transparent;
82
- font: inherit;
83
- color: currentColor;
84
- resize: none;
85
-
86
- &:focus-visible {
87
- outline: none;
88
- }
89
- &::placeholder {
90
- color: ${theme.color.foreground.neutralBaseDisabled};
91
- }
75
+ const style = css `
76
+ appearance: none;
77
+ flex: 1;
78
+ width: 0; // https://stackoverflow.com/questions/42421361/input-button-elements-not-shrinking-in-a-flex-container
79
+ border: none;
80
+ padding: 0;
81
+ background-color: transparent;
82
+ font: inherit;
83
+ color: currentColor;
84
+ resize: none;
85
+
86
+ &:focus-visible {
87
+ outline: none;
88
+ }
89
+ &::placeholder {
90
+ color: ${theme.color.foreground.neutralBaseDisabled};
91
+ }
92
92
  `;
93
93
  // Type Safety 때문에 코드의 중복을 허용합니다.
94
94
  if (props.multiline) {
@@ -107,24 +107,24 @@ export function InputBase(props) {
107
107
  }
108
108
  const InputContainer = styled("div", {
109
109
  shouldForwardProp: (prop) => !["inputSize", "fullWidth"].includes(prop),
110
- })(({ theme, color, inputSize, disabled, fullWidth }) => css `
111
- display: flex;
112
- align-items: center;
113
- gap: 16px;
114
-
115
- box-sizing: border-box;
116
- padding: 14px 16px;
117
- border-radius: 8px;
118
- ${COLOR_TO_INPUT_STYLES(theme, color, disabled)}
119
- ${SIZE_TO_STYLES(inputSize, fullWidth)}
120
- ${fullWidth && `width: inherit;`} // InputWrapper의 width를 따릅니다.
110
+ })(({ theme, color, inputSize, disabled, fullWidth }) => css `
111
+ display: flex;
112
+ align-items: center;
113
+ gap: 16px;
114
+
115
+ box-sizing: border-box;
116
+ padding: 14px 16px;
117
+ border-radius: 8px;
118
+ ${COLOR_TO_INPUT_STYLES(theme, color, disabled)}
119
+ ${SIZE_TO_STYLES(inputSize, fullWidth)}
120
+ ${fullWidth && `width: inherit;`} // InputWrapper의 width를 따릅니다.
121
121
  `);
122
- const ClearButton = styled.button `
123
- ${RESET_BUTTON}
124
- color: currentColor;
125
- &:not(:disabled) {
126
- cursor: pointer;
127
- }
128
- display: flex;
129
- align-items: center;
122
+ const ClearButton = styled.button `
123
+ ${RESET_BUTTON}
124
+ color: currentColor;
125
+ &:not(:disabled) {
126
+ cursor: pointer;
127
+ }
128
+ display: flex;
129
+ align-items: center;
130
130
  `;
@@ -1,7 +1,7 @@
1
1
  import styled from "@emotion/styled";
2
2
  import { Modal as MuiModal, css } from "@mui/material";
3
- export const Modal = styled(MuiModal)(({ theme }) => css `
4
- .MuiModal-backdrop {
5
- background-color: ${theme.color.blanket.neutral};
6
- }
3
+ export const Modal = styled(MuiModal)(({ theme }) => css `
4
+ .MuiModal-backdrop {
5
+ background-color: ${theme.color.blanket.neutral};
6
+ }
7
7
  `);