@team-monolith/cds 1.119.3 → 1.119.4

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 (199) hide show
  1. package/@types/emotion.d.ts +160 -160
  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 +51 -51
  10. package/dist/components/Book/Book.js +174 -174
  11. package/dist/components/Button.js +179 -179
  12. package/dist/components/CheckboxInput.js +148 -148
  13. package/dist/components/FileTypeAlertDialog.js +4 -4
  14. package/dist/components/Input.js +53 -53
  15. package/dist/components/InputBase.js +72 -72
  16. package/dist/components/Modal.js +4 -4
  17. package/dist/components/OverflowTooltip.js +4 -4
  18. package/dist/components/Pagination.js +56 -56
  19. package/dist/components/PinInput.js +64 -64
  20. package/dist/components/Popover.js +27 -27
  21. package/dist/components/RadioInput.js +73 -73
  22. package/dist/components/SquareButton.js +109 -109
  23. package/dist/components/Switch.js +69 -69
  24. package/dist/components/SwitchButton.js +107 -107
  25. package/dist/components/Tag.js +72 -72
  26. package/dist/components/Tooltip.js +19 -19
  27. package/dist/foundation/breakpoints.js +16 -16
  28. package/dist/icons/custom/colored/ai-helper.svg +4 -4
  29. package/dist/icons/custom/colored/ai-quiz-color.svg +20 -20
  30. package/dist/icons/custom/colored/badge-color.svg +4 -4
  31. package/dist/icons/custom/colored/badge-gold.svg +11 -11
  32. package/dist/icons/custom/colored/badge-green.svg +11 -11
  33. package/dist/icons/custom/colored/badge-silver.svg +11 -11
  34. package/dist/icons/custom/colored/basic-plus.svg +31 -31
  35. package/dist/icons/custom/colored/basic.svg +3 -3
  36. package/dist/icons/custom/colored/board-color.svg +5 -5
  37. package/dist/icons/custom/colored/cast-cloudy-color.svg +6 -6
  38. package/dist/icons/custom/colored/cast-partly-color.svg +7 -7
  39. package/dist/icons/custom/colored/cast-rainbow-color.svg +13 -13
  40. package/dist/icons/custom/colored/cast-sunny-color.svg +4 -4
  41. package/dist/icons/custom/colored/clap-bronze.svg +8 -8
  42. package/dist/icons/custom/colored/clap-gold.svg +8 -8
  43. package/dist/icons/custom/colored/clap-silver.svg +8 -8
  44. package/dist/icons/custom/colored/class.svg +13 -13
  45. package/dist/icons/custom/colored/codap-color.svg +13 -13
  46. package/dist/icons/custom/colored/ebook-color.svg +5 -5
  47. package/dist/icons/custom/colored/embedded-color.svg +38 -38
  48. package/dist/icons/custom/colored/emo-clap-color.svg +252 -252
  49. package/dist/icons/custom/colored/emo-good-color.svg +68 -68
  50. package/dist/icons/custom/colored/emo-great-color.svg +67 -67
  51. package/dist/icons/custom/colored/emo-heart-color.svg +239 -239
  52. package/dist/icons/custom/colored/emo-hundred-color.svg +194 -194
  53. package/dist/icons/custom/colored/emo-neutral-color.svg +76 -76
  54. package/dist/icons/custom/colored/emo-stars-color.svg +121 -121
  55. package/dist/icons/custom/colored/emo-thumbup-color.svg +238 -238
  56. package/dist/icons/custom/colored/empty.svg +1 -1
  57. package/dist/icons/custom/colored/entry-color.svg +4 -4
  58. package/dist/icons/custom/colored/filename-all-color.svg +4 -4
  59. package/dist/icons/custom/colored/filename-doc-color.svg +5 -5
  60. package/dist/icons/custom/colored/filename-hwp-color.svg +6 -6
  61. package/dist/icons/custom/colored/filename-img-color.svg +6 -6
  62. package/dist/icons/custom/colored/filename-mp4-color.svg +5 -5
  63. package/dist/icons/custom/colored/filename-pdf-color.svg +12 -12
  64. package/dist/icons/custom/colored/filename-ppt-color.svg +6 -6
  65. package/dist/icons/custom/colored/filename-xls-color.svg +5 -5
  66. package/dist/icons/custom/colored/filename-zip-color.svg +5 -5
  67. package/dist/icons/custom/colored/google.svg +13 -13
  68. package/dist/icons/custom/colored/hand-fill.svg +4 -4
  69. package/dist/icons/custom/colored/judge-color.svg +6 -6
  70. package/dist/icons/custom/colored/makecode-color.svg +4 -4
  71. package/dist/icons/custom/colored/master.svg +12 -12
  72. package/dist/icons/custom/colored/material.svg +6 -6
  73. package/dist/icons/custom/colored/medal-bronze.svg +9 -9
  74. package/dist/icons/custom/colored/medal-gold.svg +9 -9
  75. package/dist/icons/custom/colored/medal-silver.svg +9 -9
  76. package/dist/icons/custom/colored/pro.svg +4 -4
  77. package/dist/icons/custom/colored/problem.svg +7 -7
  78. package/dist/icons/custom/colored/python-color.svg +4 -4
  79. package/dist/icons/custom/colored/quiz-color.svg +12 -12
  80. package/dist/icons/custom/colored/resource-color.svg +13 -13
  81. package/dist/icons/custom/colored/scratch-color.svg +6 -6
  82. package/dist/icons/custom/colored/type-helper.svg +9 -9
  83. package/dist/icons/custom/colored/whale.svg +7 -7
  84. package/dist/icons/custom/colored/worksheet-color.svg +5 -5
  85. package/dist/icons/custom/default/ai-quiz.svg +8 -8
  86. package/dist/icons/custom/default/badge.svg +4 -4
  87. package/dist/icons/custom/default/board.svg +5 -5
  88. package/dist/icons/custom/default/cast-cloudy.svg +3 -3
  89. package/dist/icons/custom/default/cast-partly.svg +4 -4
  90. package/dist/icons/custom/default/cast-rainbow.svg +12 -12
  91. package/dist/icons/custom/default/cast-sunny.svg +3 -3
  92. package/dist/icons/custom/default/codap.svg +11 -11
  93. package/dist/icons/custom/default/ebook.svg +3 -3
  94. package/dist/icons/custom/default/embedded.svg +4 -4
  95. package/dist/icons/custom/default/emo-clap.svg +6 -6
  96. package/dist/icons/custom/default/emo-good.svg +12 -12
  97. package/dist/icons/custom/default/emo-great.svg +12 -12
  98. package/dist/icons/custom/default/emo-heart.svg +5 -5
  99. package/dist/icons/custom/default/emo-hundred.svg +3 -3
  100. package/dist/icons/custom/default/emo-neutral.svg +14 -14
  101. package/dist/icons/custom/default/emo-stars.svg +14 -14
  102. package/dist/icons/custom/default/emo-thumbup.svg +3 -3
  103. package/dist/icons/custom/default/entry.svg +4 -4
  104. package/dist/icons/custom/default/fab.svg +10 -10
  105. package/dist/icons/custom/default/grant-alt.svg +5 -5
  106. package/dist/icons/custom/default/grant.svg +4 -4
  107. package/dist/icons/custom/default/hand-line.svg +3 -3
  108. package/dist/icons/custom/default/judge.svg +3 -3
  109. package/dist/icons/custom/default/makecode.svg +5 -5
  110. package/dist/icons/custom/default/pdf.svg +3 -3
  111. package/dist/icons/custom/default/python.svg +7 -7
  112. package/dist/icons/custom/default/quiz.svg +4 -4
  113. package/dist/icons/custom/default/resource.svg +11 -11
  114. package/dist/icons/custom/default/scratch.svg +3 -3
  115. package/dist/icons/custom/default/scroll-alt.svg +5 -5
  116. package/dist/icons/custom/default/scroll-fill.svg +4 -4
  117. package/dist/icons/custom/default/scroll-line.svg +5 -5
  118. package/dist/icons/custom/default/symbol.svg +4 -4
  119. package/dist/icons/custom/default/worksheet.svg +4 -4
  120. package/dist/icons/custom/svgrColoredTemplate.js +26 -26
  121. package/dist/icons/custom/svgrDefaultTemplate.js +26 -26
  122. package/dist/patterns/Accordion.js +20 -20
  123. package/dist/patterns/Dropdown/DropdownItem/DropdownItem.js +60 -60
  124. package/dist/patterns/Dropdown/DropdownMenu/DropdownMenu.js +27 -27
  125. package/dist/patterns/Dropdown/DropdownMenu/style.js +19 -19
  126. package/dist/patterns/LexicalEditor/Plugins.js +38 -37
  127. package/dist/patterns/LexicalEditor/components/FileSelectInput.js +23 -23
  128. package/dist/patterns/LexicalEditor/components/InsertImageDialog/ImagePreview.js +4 -4
  129. package/dist/patterns/LexicalEditor/components/InsertImageDialog/InsertImageDialog.js +15 -15
  130. package/dist/patterns/LexicalEditor/components/InsertVideoDialog/InsertVideoDialog.js +17 -17
  131. package/dist/patterns/LexicalEditor/components/UploadFileDialog/UploadFileDialog.js +2 -2
  132. package/dist/patterns/LexicalEditor/hr.svg +3 -3
  133. package/dist/patterns/LexicalEditor/nodes/FileNode/FileComponent.js +44 -44
  134. package/dist/patterns/LexicalEditor/nodes/FileNode/FileDownloadButton.js +25 -25
  135. package/dist/patterns/LexicalEditor/nodes/ImageNode/ImageComponent.js +8 -8
  136. package/dist/patterns/LexicalEditor/nodes/ImageNode/ImageResizer.js +60 -60
  137. package/dist/patterns/LexicalEditor/nodes/ProblemInputNode/InputComponent.js +19 -19
  138. package/dist/patterns/LexicalEditor/nodes/ProblemInputNode/SegmentedInput.js +49 -49
  139. package/dist/patterns/LexicalEditor/nodes/ProblemInputNode/SettingForm/FormSolution.js +7 -7
  140. package/dist/patterns/LexicalEditor/nodes/ProblemInputNode/SettingForm/SettingForm.js +73 -73
  141. package/dist/patterns/LexicalEditor/nodes/ProblemInputNode/SettingForm/TextTypeDropdown.js +5 -5
  142. package/dist/patterns/LexicalEditor/nodes/ProblemInputNode/TextInput.js +7 -7
  143. package/dist/patterns/LexicalEditor/nodes/ProblemSelectNode/SelectBox/SelectBoxComponent.js +69 -69
  144. package/dist/patterns/LexicalEditor/nodes/ProblemSelectNode/SelectBox/SelectBoxEdit.js +3 -3
  145. package/dist/patterns/LexicalEditor/nodes/ProblemSelectNode/SelectBox/SelectBoxView.js +15 -15
  146. package/dist/patterns/LexicalEditor/nodes/ProblemSelectNode/SelectComponent.js +28 -28
  147. package/dist/patterns/LexicalEditor/nodes/ProblemSelectNode/SettingForm/FormSelection.js +54 -54
  148. package/dist/patterns/LexicalEditor/nodes/ProblemSelectNode/SettingForm/SettingForm.js +61 -61
  149. package/dist/patterns/LexicalEditor/nodes/SelfEvaluationNode/EvaluationComponent/Evaluation/Evaluation.js +75 -75
  150. package/dist/patterns/LexicalEditor/nodes/SelfEvaluationNode/EvaluationComponent/Evaluation/SettingForm/FormIconAndLabel/FormIconAndLabel.js +17 -17
  151. package/dist/patterns/LexicalEditor/nodes/SelfEvaluationNode/EvaluationComponent/Evaluation/SettingForm/FormIconAndLabel/FormLabel.js +7 -7
  152. package/dist/patterns/LexicalEditor/nodes/SelfEvaluationNode/EvaluationComponent/Evaluation/SettingForm/FormQuestion.js +28 -28
  153. package/dist/patterns/LexicalEditor/nodes/SelfEvaluationNode/EvaluationComponent/Evaluation/SettingForm/SettingForm.js +52 -52
  154. package/dist/patterns/LexicalEditor/nodes/SelfEvaluationNode/EvaluationComponent/EvaluationComponent.js +7 -7
  155. package/dist/patterns/LexicalEditor/nodes/SheetInputNode/InputComponent.js +25 -25
  156. package/dist/patterns/LexicalEditor/nodes/SheetInputNode/SettingForm.js +53 -53
  157. package/dist/patterns/LexicalEditor/nodes/SheetSelectNode/SelectComponent/SelectBox/SelectBoxComponent.js +54 -54
  158. package/dist/patterns/LexicalEditor/nodes/SheetSelectNode/SelectComponent/SelectBox/SelectBoxView.js +5 -5
  159. package/dist/patterns/LexicalEditor/nodes/SheetSelectNode/SelectComponent/SelectComponent.js +21 -21
  160. package/dist/patterns/LexicalEditor/nodes/SheetSelectNode/SelectComponent/SettingForm/FormSelection.js +42 -42
  161. package/dist/patterns/LexicalEditor/nodes/SheetSelectNode/SelectComponent/SettingForm/SettingForm.js +71 -71
  162. package/dist/patterns/LexicalEditor/nodes/VideoNode/VideoComponent.js +6 -6
  163. package/dist/patterns/LexicalEditor/nodes/index.d.ts +3 -0
  164. package/dist/patterns/LexicalEditor/nodes/index.js +3 -0
  165. package/dist/patterns/LexicalEditor/nodes/nodes.d.ts +4 -2
  166. package/dist/patterns/LexicalEditor/nodes/nodes.js +6 -0
  167. package/dist/patterns/LexicalEditor/nodes/toggleNodes/ToggleContainerNode.d.ts +32 -0
  168. package/dist/patterns/LexicalEditor/nodes/toggleNodes/ToggleContainerNode.js +131 -0
  169. package/dist/patterns/LexicalEditor/nodes/toggleNodes/ToggleContentNode.d.ts +23 -0
  170. package/dist/patterns/LexicalEditor/nodes/toggleNodes/ToggleContentNode.js +88 -0
  171. package/dist/patterns/LexicalEditor/nodes/toggleNodes/ToggleTitleNode.d.ts +24 -0
  172. package/dist/patterns/LexicalEditor/nodes/toggleNodes/ToggleTitleNode.js +105 -0
  173. package/dist/patterns/LexicalEditor/plugins/ComponentAdderPlugin/ComponentAdder.js +51 -51
  174. package/dist/patterns/LexicalEditor/plugins/ComponentAdderPlugin/ComponentAdderPlugin.js +11 -11
  175. package/dist/patterns/LexicalEditor/plugins/ComponentAdderPlugin/menu.svg +7 -7
  176. package/dist/patterns/LexicalEditor/plugins/ComponentAdderPlugin/plus.svg +2 -2
  177. package/dist/patterns/LexicalEditor/plugins/ComponentAdderPlugin/useContextMenuOptions.js +76 -12
  178. package/dist/patterns/LexicalEditor/plugins/ComponentPickerMenuPlugin/ComponentPickerMenuItem.js +32 -32
  179. package/dist/patterns/LexicalEditor/plugins/ComponentPickerMenuPlugin/ComponentPickerMenuList.js +32 -32
  180. package/dist/patterns/LexicalEditor/plugins/ComponentPickerMenuPlugin/ComponentPickerMenuPlugin.js +38 -17
  181. package/dist/patterns/LexicalEditor/plugins/FloatingLinkEditorPlugin/FloatingLinkEditor.js +49 -49
  182. package/dist/patterns/LexicalEditor/plugins/FloatingTextFormatToolbarPlugin/FloatingTextFormatPopup.js +36 -36
  183. package/dist/patterns/LexicalEditor/plugins/ParagraphPlaceholderPlugin/index.js +10 -1
  184. package/dist/patterns/LexicalEditor/plugins/TogglePlugin/index.d.ts +9 -0
  185. package/dist/patterns/LexicalEditor/plugins/TogglePlugin/index.js +198 -0
  186. package/dist/patterns/LexicalEditor/theme.d.ts +6 -0
  187. package/dist/patterns/LexicalEditor/theme.js +281 -243
  188. package/dist/patterns/LexicalEditor/utils/toggleUtils.d.ts +9 -0
  189. package/dist/patterns/LexicalEditor/utils/toggleUtils.js +18 -0
  190. package/dist/patterns/SegmentedControl/SegmentedControlButton.js +10 -10
  191. package/dist/patterns/SegmentedControl/SegmentedControlGroup.js +8 -8
  192. package/dist/patterns/SegmentedControl/SegmentedControlSquareButton.js +2 -2
  193. package/dist/patterns/Tabs.js +43 -43
  194. package/dist/patterns/ToggleButtonGroup/ToggleButton.js +40 -40
  195. package/dist/patterns/ToggleButtonGroup/ToggleButtonGroup.js +11 -11
  196. package/dist/utils/hover.js +12 -12
  197. package/dist/utils/reset.js +19 -19
  198. package/dist/utils/visuallyHidden.js +10 -10
  199. package/package.json +109 -109
@@ -38,6 +38,7 @@ import { FilePlugin } from "./plugins/FilePlugin";
38
38
  import { DragDropPastePlugin } from "./plugins/DragDropPastePlugin";
39
39
  import { ParagraphPlaceholderPlugin } from "./plugins/ParagraphPlaceholderPlugin";
40
40
  import { AutoLinkPlugin } from "./plugins/AutoLinkPlugin";
41
+ import { TogglePlugin } from "./plugins/TogglePlugin";
41
42
  import { useTranslation } from "react-i18next";
42
43
  export function Plugins(props) {
43
44
  const { className, contentEditableClassName, onChange, isSheetEnabled, isQuizEnabled, showFileUpload, autoFocus, } = props;
@@ -54,46 +55,46 @@ export function Plugins(props) {
54
55
  onChange === null || onChange === void 0 ? void 0 : onChange(editorState.toJSON());
55
56
  },
56
57
  // ignore 하지 않으면 Form에서 수정하지 않았는데 Dirty로 처리됨.
57
- ignoreSelectionChange: true }), autoFocus && _jsx(AutoFocusPlugin, {}), isEditable && (_jsxs(_Fragment, { children: [_jsx(TabIndentationPlugin, {}), _jsx(ComponentPickerMenuPlugin, { isSheetEnabled: isSheetEnabled, isQuizEnabled: isQuizEnabled, showFileUpload: showFileUpload }), _jsx(MarkdownShortcutPlugin, { transformers: CUSTOM_TRANSFORMERS }), _jsx(HistoryPlugin, {}), _jsx(ParagraphPlaceholderPlugin, { placeholder: t("명령어 사용 시에는 '/'를 누르세요. 블록에 마우스를 올려 나타나는 '+'를 클릭하면 아래에 블록을 추가할 수 있습니다.") })] })), floatingAnchorElem && isEditable && (_jsxs(_Fragment, { children: [_jsx(ComponentAdderPlugin, { anchorElem: floatingAnchorElem, isSheetEnabled: isSheetEnabled, isQuizEnabled: isQuizEnabled, showFileUpload: showFileUpload }), _jsx(FloatingTextFormatToolbarPlugin, { anchorElem: floatingAnchorElem }), _jsx(FloatingLinkEditorPlugin, { anchorElem: floatingAnchorElem, isLinkEditMode: isLinkEditMode, setIsLinkEditMode: setIsLinkEditMode })] })), !isEditable && _jsx(ClickableLinkPlugin, {}), _jsx(ListPlugin, {}), _jsx(HorizontalRulePlugin, {}), _jsx(ImagesPlugin, {}), _jsx(VideosPlugin, {}), _jsx(FilePlugin, {}), _jsx(TablePlugin, {}), _jsx(LinkPlugin, {}), _jsx(ListMaxIndentLevelPlugin, { maxDepth: 5 }), _jsx(ProblemInputPlugin, {}), _jsx(ProblemSelectPlugin, {}), _jsx(LayoutPlugin, {}), _jsx(SheetSelectPlugin, {}), _jsx(SheetInputPlugin, {}), _jsx(SelfEvaluationPlugin, {}), _jsx(AutoLinkPlugin, {})] }));
58
+ ignoreSelectionChange: true }), autoFocus && _jsx(AutoFocusPlugin, {}), isEditable && (_jsxs(_Fragment, { children: [_jsx(TabIndentationPlugin, {}), _jsx(ComponentPickerMenuPlugin, { isSheetEnabled: isSheetEnabled, isQuizEnabled: isQuizEnabled, showFileUpload: showFileUpload }), _jsx(MarkdownShortcutPlugin, { transformers: CUSTOM_TRANSFORMERS }), _jsx(HistoryPlugin, {}), _jsx(ParagraphPlaceholderPlugin, { placeholder: t("명령어 사용 시에는 '/'를 누르세요. 블록에 마우스를 올려 나타나는 '+'를 클릭하면 아래에 블록을 추가할 수 있습니다.") })] })), floatingAnchorElem && isEditable && (_jsxs(_Fragment, { children: [_jsx(ComponentAdderPlugin, { anchorElem: floatingAnchorElem, isSheetEnabled: isSheetEnabled, isQuizEnabled: isQuizEnabled, showFileUpload: showFileUpload }), _jsx(FloatingTextFormatToolbarPlugin, { anchorElem: floatingAnchorElem }), _jsx(FloatingLinkEditorPlugin, { anchorElem: floatingAnchorElem, isLinkEditMode: isLinkEditMode, setIsLinkEditMode: setIsLinkEditMode })] })), !isEditable && _jsx(ClickableLinkPlugin, {}), _jsx(ListPlugin, {}), _jsx(HorizontalRulePlugin, {}), _jsx(ImagesPlugin, {}), _jsx(VideosPlugin, {}), _jsx(FilePlugin, {}), _jsx(TablePlugin, {}), _jsx(LinkPlugin, {}), _jsx(ListMaxIndentLevelPlugin, { maxDepth: 5 }), _jsx(ProblemInputPlugin, {}), _jsx(ProblemSelectPlugin, {}), _jsx(LayoutPlugin, {}), _jsx(SheetSelectPlugin, {}), _jsx(SheetInputPlugin, {}), _jsx(SelfEvaluationPlugin, {}), _jsx(AutoLinkPlugin, {}), _jsx(TogglePlugin, {})] }));
58
59
  }
59
- const ScrollArea = styled.div `
60
- min-height: 150px;
61
- border: 0;
62
- display: flex;
63
- position: relative;
64
- outline: 0;
65
- z-index: 0;
66
- overflow: auto;
60
+ const ScrollArea = styled.div `
61
+ min-height: 150px;
62
+ border: 0;
63
+ display: flex;
64
+ position: relative;
65
+ outline: 0;
66
+ z-index: 0;
67
+ overflow: auto;
67
68
  `;
68
- const FloatingAnchor = styled.div `
69
- flex: auto;
70
- position: relative;
71
- z-index: -1;
69
+ const FloatingAnchor = styled.div `
70
+ flex: auto;
71
+ position: relative;
72
+ z-index: -1;
72
73
  `;
73
74
  const StyledContentEditable = styled(ContentEditable, {
74
75
  shouldForwardProp: (prop) => prop !== "isEditable",
75
- }) `
76
- border: 0;
77
- font-size: 15px;
78
- display: block;
79
- position: relative;
80
- outline: 0;
81
- // ComponentAdder 를 위한 공간
82
- ${({ isEditable }) => isEditable && "padding-left: 64px;"}
83
- // ScrollArea에서 스크롤이 발생해도 64px 더 아래로 내릴 수 있도록 합니다.
84
- padding-bottom: 64px;
85
- min-height: 150px;
86
-
87
- hr {
88
- // HorizontalRuleNode는 Lexical theme에 등록되어 있지 않습니다.
89
- // 따라서 hr 태그를 직접 조작합니다.
90
-
91
- // FloatingMenu가 올바른 위치에 붙으려면 충분한 높이를 가져야합니다.
92
- // HR 태그에서 border를 이용해서 중심에 선을 그리기 어렵습니다.
93
- // hr svg는 1px 높이의 svg입니다.
94
- // center 및 repeat-x를 지정하여 좌우로 긴 선을 그립니다.
95
- height: 26px;
96
- border: 0;
97
- background: url(${hr}) center repeat-x;
98
- }
76
+ }) `
77
+ border: 0;
78
+ font-size: 15px;
79
+ display: block;
80
+ position: relative;
81
+ outline: 0;
82
+ // ComponentAdder 를 위한 공간
83
+ ${({ isEditable }) => isEditable && "padding-left: 64px;"}
84
+ // ScrollArea에서 스크롤이 발생해도 64px 더 아래로 내릴 수 있도록 합니다.
85
+ padding-bottom: 64px;
86
+ min-height: 150px;
87
+
88
+ hr {
89
+ // HorizontalRuleNode는 Lexical theme에 등록되어 있지 않습니다.
90
+ // 따라서 hr 태그를 직접 조작합니다.
91
+
92
+ // FloatingMenu가 올바른 위치에 붙으려면 충분한 높이를 가져야합니다.
93
+ // HR 태그에서 border를 이용해서 중심에 선을 그리기 어렵습니다.
94
+ // hr svg는 1px 높이의 svg입니다.
95
+ // center 및 repeat-x를 지정하여 좌우로 긴 선을 그립니다.
96
+ height: 26px;
97
+ border: 0;
98
+ background: url(${hr}) center repeat-x;
99
+ }
99
100
  `;
@@ -82,32 +82,32 @@ export function FileSelectInput(props) {
82
82
  return (_jsxs(_Fragment, { children: [_jsxs(Container, { children: [_jsx(Button, { fullWidth: true, color: "grey", size: "medium", label: t("파일 선택하기"), onClick: () => {
83
83
  var _a;
84
84
  (_a = inputRef.current) === null || _a === void 0 ? void 0 : _a.click();
85
- }, startIcon: _jsx(UploadLineIcon, {}), bold: bold }), _jsx(IconAndErrorMessage, { children: errorMessage && (_jsxs(_Fragment, { children: [_jsx(FileWarningLineIcon, { css: css `
86
- padding: 0 4px;
87
- width: 24px;
88
- height: 24px;
89
- color: ${theme.color.background.danger};
85
+ }, startIcon: _jsx(UploadLineIcon, {}), bold: bold }), _jsx(IconAndErrorMessage, { children: errorMessage && (_jsxs(_Fragment, { children: [_jsx(FileWarningLineIcon, { css: css `
86
+ padding: 0 4px;
87
+ width: 24px;
88
+ height: 24px;
89
+ color: ${theme.color.background.danger};
90
90
  ` }), _jsx(ErrorMessage, { children: errorMessage })] })) })] }), _jsx(HiddenInput, { ref: inputRef, type: "file", accept: accept, onChange: handleFileChange })] }));
91
91
  }
92
- const HiddenInput = styled.input `
93
- display: none;
92
+ const HiddenInput = styled.input `
93
+ display: none;
94
94
  `;
95
- const ErrorMessage = styled.div(({ theme }) => css `
96
- color: ${theme.color.foreground.danger};
97
- font-family: ${theme.fontFamily.ui};
98
- font-size: 14px;
99
- font-weight: 400;
100
- line-height: 20px;
95
+ const ErrorMessage = styled.div(({ theme }) => css `
96
+ color: ${theme.color.foreground.danger};
97
+ font-family: ${theme.fontFamily.ui};
98
+ font-size: 14px;
99
+ font-weight: 400;
100
+ line-height: 20px;
101
101
  `);
102
- const Container = styled.div `
103
- display: flex;
104
- flex-direction: column;
105
- gap: 4px;
102
+ const Container = styled.div `
103
+ display: flex;
104
+ flex-direction: column;
105
+ gap: 4px;
106
106
  `;
107
- const IconAndErrorMessage = styled.div `
108
- padding-left: 8px;
109
- display: flex;
110
- flex-direction: row;
111
- align-items: center;
112
- gap: 4px;
107
+ const IconAndErrorMessage = styled.div `
108
+ padding-left: 8px;
109
+ display: flex;
110
+ flex-direction: row;
111
+ align-items: center;
112
+ gap: 4px;
113
113
  `;
@@ -8,8 +8,8 @@ export function ImagePreview(props) {
8
8
  const { t } = useTranslation();
9
9
  return (_jsxs(Container, { children: [t("이미지 미리보기"), erroredSrc === src ? (fallback) : (_jsx("img", { src: src, alt: alt, onError: () => setErroredSrc(src) }))] }));
10
10
  }
11
- const Container = styled.div `
12
- display: flex;
13
- flex-direction: column;
14
- gap: 8px;
11
+ const Container = styled.div `
12
+ display: flex;
13
+ flex-direction: column;
14
+ gap: 8px;
15
15
  `;
@@ -53,21 +53,21 @@ export function InsertImageDialog(props) {
53
53
  setValue("src", value);
54
54
  }, fileType: "image" }), _jsx(FormInput, { name: "src", control: control, placeholder: "https://www.pexels.com/photo/n-2848492", size: "medium", label: "URL", fullWidth: true, startIcon: _jsx(LinkIcon, {}) }), previewSrc && (_jsx(ImagePreview, { src: previewSrc, alt: watch("altText"), fallback: _jsx(ImageNotAvailable, {}) })), _jsx(FormInput, { name: "altText", control: control, placeholder: t("삽입하는 이미지에 관한 설명"), size: "medium", label: t("대체 텍스트"), fullWidth: true })] }) }), _jsxs(AlertDialogActions, { children: [_jsx(Button, { type: "submit", fullWidth: true, label: t("삽입하기"), size: "medium", color: "primary", disabled: isDisabled }), onDelete && (_jsx(Button, { color: "danger", size: "medium", fullWidth: true, label: t("삭제하기"), onClick: onDelete }))] })] }));
55
55
  }
56
- const StyledAlertDialog = styled(AlertDialog) `
57
- gap: 16px;
56
+ const StyledAlertDialog = styled(AlertDialog) `
57
+ gap: 16px;
58
58
  `;
59
- const StyledAlertDialogTitle = styled(AlertDialogTitle)(({ theme }) => css `
60
- color: ${theme.color.foreground.neutralBase};
61
- text-align: center;
62
- font-family: ${theme.fontFamily.ui};
63
- font-size: 20px;
64
- font-style: normal;
65
- font-weight: 700;
66
- line-height: 28px;
67
- letter-spacing: 0.25px;
59
+ const StyledAlertDialogTitle = styled(AlertDialogTitle)(({ theme }) => css `
60
+ color: ${theme.color.foreground.neutralBase};
61
+ text-align: center;
62
+ font-family: ${theme.fontFamily.ui};
63
+ font-size: 20px;
64
+ font-style: normal;
65
+ font-weight: 700;
66
+ line-height: 28px;
67
+ letter-spacing: 0.25px;
68
68
  `);
69
- const Inputs = styled.div `
70
- display: flex;
71
- flex-direction: column;
72
- gap: 16px;
69
+ const Inputs = styled.div `
70
+ display: flex;
71
+ flex-direction: column;
72
+ gap: 16px;
73
73
  `;
@@ -48,8 +48,8 @@ export function InsertVideoDialog(props) {
48
48
  handleSubmit(onSubmit)();
49
49
  }, disableIconPadding: true, children: [_jsx(StyledAlertDialogTitle, { onClose: handleOnClose, children: title }), _jsx(AlertDialogContent, { children: _jsxs(Inputs, { children: [_jsx(FormInput, { name: "src", control: control, rules: {
50
50
  validate: (value) => ReactPlayer.canPlay(value) || "올바른 동영상 URL을 입력하세요.",
51
- }, placeholder: "https://example.com/video.mp4", size: "medium", label: "URL", fullWidth: true, startIcon: _jsx(LinkIcon, {}) }), videoCanPlay && (_jsx(ReactPlayer, { css: css `
52
- background: black;
51
+ }, placeholder: "https://example.com/video.mp4", size: "medium", label: "URL", fullWidth: true, startIcon: _jsx(LinkIcon, {}) }), videoCanPlay && (_jsx(ReactPlayer, { css: css `
52
+ background: black;
53
53
  `, width: "100%", url: previewSrc, controls: true, config: {
54
54
  file: {
55
55
  hlsOptions: {
@@ -58,21 +58,21 @@ export function InsertVideoDialog(props) {
58
58
  },
59
59
  } }))] }) }), _jsxs(AlertDialogActions, { children: [_jsx(Button, { type: "submit", fullWidth: true, label: "\uC0BD\uC785\uD558\uAE30", size: "medium", color: "primary", disabled: !videoCanPlay }), onDelete && (_jsx(Button, { color: "danger", size: "medium", fullWidth: true, label: "\uC0AD\uC81C\uD558\uAE30", onClick: onDelete }))] })] }));
60
60
  }
61
- const StyledAlertDialog = styled(AlertDialog) `
62
- gap: 16px;
61
+ const StyledAlertDialog = styled(AlertDialog) `
62
+ gap: 16px;
63
63
  `;
64
- const StyledAlertDialogTitle = styled(AlertDialogTitle)(({ theme }) => css `
65
- color: ${theme.color.foreground.neutralBase};
66
- text-align: center;
67
- font-family: ${theme.fontFamily.ui};
68
- font-size: 20px;
69
- font-style: normal;
70
- font-weight: 700;
71
- line-height: 28px;
72
- letter-spacing: 0.25px;
64
+ const StyledAlertDialogTitle = styled(AlertDialogTitle)(({ theme }) => css `
65
+ color: ${theme.color.foreground.neutralBase};
66
+ text-align: center;
67
+ font-family: ${theme.fontFamily.ui};
68
+ font-size: 20px;
69
+ font-style: normal;
70
+ font-weight: 700;
71
+ line-height: 28px;
72
+ letter-spacing: 0.25px;
73
73
  `);
74
- const Inputs = styled.div `
75
- display: flex;
76
- flex-direction: column;
77
- gap: 16px;
74
+ const Inputs = styled.div `
75
+ display: flex;
76
+ flex-direction: column;
77
+ gap: 16px;
78
78
  `;
@@ -57,6 +57,6 @@ export function UploadFileDialog({ open, onClose, onChange, }) {
57
57
  }, [open]);
58
58
  return (_jsx(HiddenInput, { ref: inputRef, type: "file", accept: "*", onChange: handleFileChange }));
59
59
  }
60
- const HiddenInput = styled.input `
61
- display: none;
60
+ const HiddenInput = styled.input `
61
+ display: none;
62
62
  `;
@@ -1,3 +1,3 @@
1
- <svg width="521" height="1" viewBox="0 0 521 1" fill="none" xmlns="http://www.w3.org/2000/svg">
2
- <line y1="0.5" x2="521" y2="0.5" stroke="#9C9C9C"/>
3
- </svg>
1
+ <svg width="521" height="1" viewBox="0 0 521 1" fill="none" xmlns="http://www.w3.org/2000/svg">
2
+ <line y1="0.5" x2="521" y2="0.5" stroke="#9C9C9C"/>
3
+ </svg>
@@ -45,9 +45,9 @@ export function FileComponent({ fileName, fileSize, nodeKey, fileUrl, fileUpload
45
45
  }, COMMAND_PRIORITY_LOW), editor.registerCommand(KEY_DELETE_COMMAND, $onDelete, COMMAND_PRIORITY_LOW), editor.registerCommand(KEY_BACKSPACE_COMMAND, $onDelete, COMMAND_PRIORITY_LOW)), [clearSelection, editor, isSelected, nodeKey, $onDelete, setSelected]);
46
46
  return (_jsx(_Fragment, { children: isEditable ? (_jsx(FileDetailContainer, { isSelected: isSelected, ref: ref, children: _jsxs(FileInfo, { children: [_jsx(IconContainer, { children: getFileIcon(fileName) }), _jsx(FileName, { children: _jsx(OverflowTooltip, { text: fileName }) }), _jsx(FileOptionalInfo, { children: fileUploadDate }), _jsxs(FileSize, { children: [(fileSize / (1024 * 1024)).toFixed(1), " MB"] })] }) })) : (_jsx(FileDownloadButton, { fileName: fileName, fileUrl: fileUrl, fileSize: fileSize })) }));
47
47
  }
48
- export const FileName = styled.div `
49
- flex: 1;
50
- overflow: hidden;
48
+ export const FileName = styled.div `
49
+ flex: 1;
50
+ overflow: hidden;
51
51
  `;
52
52
  export function getFileIcon(fileName) {
53
53
  var _a;
@@ -85,51 +85,51 @@ export function getFileIcon(fileName) {
85
85
  return _jsx(CustomFilenameAllColorIcon, {});
86
86
  }
87
87
  }
88
- export const FileDetailContainer = styled.div(({ isSelected, theme }) => css `
89
- display: flex;
90
- flex-direction: column;
91
- width: 620px;
92
- min-width: 400px;
88
+ export const FileDetailContainer = styled.div(({ isSelected, theme }) => css `
89
+ display: flex;
90
+ flex-direction: column;
91
+ width: 620px;
92
+ min-width: 400px;
93
93
  background: ${isSelected
94
94
  ? theme.color.background.neutralAltActive
95
- : theme.color.background.neutralAlt};
96
- border-radius: 10px;
95
+ : theme.color.background.neutralAlt};
96
+ border-radius: 10px;
97
97
  `);
98
- export const IconContainer = styled.div `
99
- flex-shrink: 0;
100
- width: 24px;
101
- height: 24px;
98
+ export const IconContainer = styled.div `
99
+ flex-shrink: 0;
100
+ width: 24px;
101
+ height: 24px;
102
102
  `;
103
- export const FileInfo = styled.div(({ theme }) => css `
104
- display: flex;
105
- padding: 16px;
106
- align-items: center;
107
- height: 48px;
108
- gap: 8px;
109
- color: ${theme.color.foreground.neutralBase};
110
- font-family: ${theme.fontFamily.ui};
111
- font-size: 16px;
112
- font-weight: 500;
113
- line-height: 20px; /* 125% */
114
- border-radius: 10px;
115
- cursor: pointer;
103
+ export const FileInfo = styled.div(({ theme }) => css `
104
+ display: flex;
105
+ padding: 16px;
106
+ align-items: center;
107
+ height: 48px;
108
+ gap: 8px;
109
+ color: ${theme.color.foreground.neutralBase};
110
+ font-family: ${theme.fontFamily.ui};
111
+ font-size: 16px;
112
+ font-weight: 500;
113
+ line-height: 20px; /* 125% */
114
+ border-radius: 10px;
115
+ cursor: pointer;
116
116
  `);
117
- export const FileSize = styled.span(({ theme }) => css `
118
- flex-shrink: 0;
119
- margin-left: auto;
120
- color: ${theme.color.foreground.neutralBaseDisabled};
121
- font-family: ${theme.fontFamily.ui};
122
- font-size: 14px;
123
- font-weight: 400;
124
- line-height: 20px; /* 142.857% */
117
+ export const FileSize = styled.span(({ theme }) => css `
118
+ flex-shrink: 0;
119
+ margin-left: auto;
120
+ color: ${theme.color.foreground.neutralBaseDisabled};
121
+ font-family: ${theme.fontFamily.ui};
122
+ font-size: 14px;
123
+ font-weight: 400;
124
+ line-height: 20px; /* 142.857% */
125
125
  `);
126
- export const FileOptionalInfo = styled.div(({ theme }) => css `
127
- font-family: ${theme.fontFamily.ui};
128
- font-size: 14px;
129
- font-style: normal;
130
- font-weight: 400;
131
- line-height: 20px;
132
- color: ${theme.color.foreground.neutralBaseDisabled};
133
- text-align: right;
134
- flex-shrink: 0;
126
+ export const FileOptionalInfo = styled.div(({ theme }) => css `
127
+ font-family: ${theme.fontFamily.ui};
128
+ font-size: 14px;
129
+ font-style: normal;
130
+ font-weight: 400;
131
+ line-height: 20px;
132
+ color: ${theme.color.foreground.neutralBaseDisabled};
133
+ text-align: right;
134
+ flex-shrink: 0;
135
135
  `);
@@ -59,30 +59,30 @@ export function FileDownloadButton({ fileName, fileSize, fileUrl, }) {
59
59
  });
60
60
  return (_jsxs(ButtonContainer, { onClick: handleDownload, theme: theme, children: [_jsx(IconContainer, { children: getFileIcon(fileName) }), _jsx(FileNameLabel, { children: _jsx(OverflowTooltip, { text: fileName }) }), _jsxs(FileSize, { children: [(fileSize / (1024 * 1024)).toFixed(1), " MB"] })] }));
61
61
  }
62
- const ButtonContainer = styled.button(({ theme }) => css `
63
- display: flex;
64
- align-items: center;
65
- gap: 8px;
66
- padding: 12px 16px;
67
- height: 48px;
68
- background-color: ${theme.color.background.neutralAlt};
69
- border: none;
70
- border-radius: 10px;
71
- cursor: pointer;
72
- color: ${theme.color.foreground.neutralBase};
73
- font-family: ${theme.fontFamily.ui};
74
- font-size: 16px;
75
- font-weight: 500;
76
- font-style: normal;
77
- line-height: 20px; /* 125% */
78
- text-align: left;
79
- overflow: hidden;
80
-
81
- ${HOVER(css `
82
- background: ${theme.color.background.neutralAltActive};
83
- color: ${theme.color.foreground.neutralBaseActive};
84
- `)}
62
+ const ButtonContainer = styled.button(({ theme }) => css `
63
+ display: flex;
64
+ align-items: center;
65
+ gap: 8px;
66
+ padding: 12px 16px;
67
+ height: 48px;
68
+ background-color: ${theme.color.background.neutralAlt};
69
+ border: none;
70
+ border-radius: 10px;
71
+ cursor: pointer;
72
+ color: ${theme.color.foreground.neutralBase};
73
+ font-family: ${theme.fontFamily.ui};
74
+ font-size: 16px;
75
+ font-weight: 500;
76
+ font-style: normal;
77
+ line-height: 20px; /* 125% */
78
+ text-align: left;
79
+ overflow: hidden;
80
+
81
+ ${HOVER(css `
82
+ background: ${theme.color.background.neutralAltActive};
83
+ color: ${theme.color.foreground.neutralBaseActive};
84
+ `)}
85
85
  `);
86
- const FileNameLabel = styled.div `
87
- max-width: 152px;
86
+ const FileNameLabel = styled.div `
87
+ max-width: 152px;
88
88
  `;
@@ -194,15 +194,15 @@ export function ImageComponent({ src, altText, nodeKey, width, height, maxWidth,
194
194
  if (!isEditable) {
195
195
  return (_jsx(Suspense, { fallback: null, children: _jsx("div", { draggable: draggable, children: isLoadError ? (_jsx(ImageNotAvailable, {})) : (_jsx(LazyImage, { className: isFocused
196
196
  ? `focused ${$isNodeSelection(selection) ? "draggable" : ""}`
197
- : null, css: css `
198
- cursor: pointer;
197
+ : null, css: css `
198
+ cursor: pointer;
199
199
  `, src: src, altText: altText, imageRef: imageRef, width: width, height: height, maxWidth: maxWidth, onError: () => setIsLoadError(true), buttonProps: {
200
200
  onClick: () => window.open(src, "_blank"),
201
201
  }, title: t("클릭해서 원본 이미지 보기."), addtionalInfoLabel: _jsx("span", { css: VISUALLY_HIDDEN, children: t("(새 창)", { context: "렉시컬 이미지 도구" }) }) })) }) }));
202
202
  }
203
- return (_jsxs(_Fragment, { children: [_jsxs(EditContainer, { children: [_jsx(Suspense, { fallback: null, children: _jsx("div", { draggable: draggable, css: css `
204
- // ImageResizer를 위한 relative 설정입니다.
205
- position: relative;
203
+ return (_jsxs(_Fragment, { children: [_jsxs(EditContainer, { children: [_jsx(Suspense, { fallback: null, children: _jsx("div", { draggable: draggable, css: css `
204
+ // ImageResizer를 위한 relative 설정입니다.
205
+ position: relative;
206
206
  `, children: isLoadError ? (_jsx(ImageNotAvailable, {})) : (_jsxs(_Fragment, { children: [_jsx(LazyImage, { className: isFocused
207
207
  ? `focused ${$isNodeSelection(selection) ? "draggable" : ""}`
208
208
  : null, src: src, altText: altText, imageRef: imageRef, width: width, height: height, maxWidth: maxWidth, onError: () => setIsLoadError(true) }), resizable && $isNodeSelection(selection) && isFocused && (_jsx(ImageResizer, { showCaption: false, setShowCaption: () => { }, editor: editor, buttonRef: buttonRef, imageRef: imageRef,
@@ -236,7 +236,7 @@ export function ImageComponent({ src, altText, nodeKey, width, height, maxWidth,
236
236
  });
237
237
  } })] }));
238
238
  }
239
- const EditContainer = styled.div `
240
- display: flex;
241
- gap: 4px;
239
+ const EditContainer = styled.div `
240
+ display: flex;
241
+ gap: 4px;
242
242
  `;
@@ -174,64 +174,64 @@ export function ImageResizer({ onResizeStart, onResizeEnd, buttonRef, imageRef,
174
174
  handlePointerDown(event, Direction.north | Direction.west);
175
175
  } })] }));
176
176
  }
177
- const Container = styled.div `
178
- &.image-control-wrapper--resizing {
179
- touch-action: none;
180
- }
181
- .image-resizer {
182
- display: block;
183
- width: 7px;
184
- height: 7px;
185
- position: absolute;
186
- background-color: rgb(60, 132, 244);
187
- border: 1px solid #fff;
188
- }
189
-
190
- .image-resizer.image-resizer-n {
191
- top: -6px;
192
- left: 48%;
193
- cursor: n-resize;
194
- }
195
-
196
- .image-resizer.image-resizer-ne {
197
- top: -6px;
198
- right: -6px;
199
- cursor: ne-resize;
200
- }
201
-
202
- .image-resizer.image-resizer-e {
203
- bottom: 48%;
204
- right: -6px;
205
- cursor: e-resize;
206
- }
207
-
208
- .image-resizer.image-resizer-se {
209
- bottom: -2px;
210
- right: -6px;
211
- cursor: nwse-resize;
212
- }
213
-
214
- .image-resizer.image-resizer-s {
215
- bottom: -2px;
216
- left: 48%;
217
- cursor: s-resize;
218
- }
219
-
220
- .image-resizer.image-resizer-sw {
221
- bottom: -2px;
222
- left: -6px;
223
- cursor: sw-resize;
224
- }
225
-
226
- .image-resizer.image-resizer-w {
227
- bottom: 48%;
228
- left: -6px;
229
- cursor: w-resize;
230
- }
231
-
232
- .image-resizer.image-resizer-nw {
233
- top: -6px;
234
- left: -6px;
235
- cursor: nw-resize;
236
- }
177
+ const Container = styled.div `
178
+ &.image-control-wrapper--resizing {
179
+ touch-action: none;
180
+ }
181
+ .image-resizer {
182
+ display: block;
183
+ width: 7px;
184
+ height: 7px;
185
+ position: absolute;
186
+ background-color: rgb(60, 132, 244);
187
+ border: 1px solid #fff;
188
+ }
189
+
190
+ .image-resizer.image-resizer-n {
191
+ top: -6px;
192
+ left: 48%;
193
+ cursor: n-resize;
194
+ }
195
+
196
+ .image-resizer.image-resizer-ne {
197
+ top: -6px;
198
+ right: -6px;
199
+ cursor: ne-resize;
200
+ }
201
+
202
+ .image-resizer.image-resizer-e {
203
+ bottom: 48%;
204
+ right: -6px;
205
+ cursor: e-resize;
206
+ }
207
+
208
+ .image-resizer.image-resizer-se {
209
+ bottom: -2px;
210
+ right: -6px;
211
+ cursor: nwse-resize;
212
+ }
213
+
214
+ .image-resizer.image-resizer-s {
215
+ bottom: -2px;
216
+ left: 48%;
217
+ cursor: s-resize;
218
+ }
219
+
220
+ .image-resizer.image-resizer-sw {
221
+ bottom: -2px;
222
+ left: -6px;
223
+ cursor: sw-resize;
224
+ }
225
+
226
+ .image-resizer.image-resizer-w {
227
+ bottom: 48%;
228
+ left: -6px;
229
+ cursor: w-resize;
230
+ }
231
+
232
+ .image-resizer.image-resizer-nw {
233
+ top: -6px;
234
+ left: -6px;
235
+ cursor: nw-resize;
236
+ }
237
237
  `;
@@ -61,27 +61,27 @@ export function InputComponent(props) {
61
61
  }, fullWidth: true }));
62
62
  }
63
63
  // 교사 edit view
64
- return (_jsxs(_Fragment, { children: [_jsxs("div", { css: css `
65
- display: flex;
66
- align-items: center;
67
- gap: 4px;
64
+ return (_jsxs(_Fragment, { children: [_jsxs("div", { css: css `
65
+ display: flex;
66
+ align-items: center;
67
+ gap: 4px;
68
68
  `, children: [_jsx(VirtualInput, { onClick: () => setSettingOpen(true), children: t("주관식 입력 칸", { context: "렉시컬 주관식 입력 도구" }) }), _jsx(SquareButton, { size: "small", color: "icon", icon: _jsx(Settings3FillIcon, {}), onClick: () => {
69
69
  setSettingOpen(true);
70
70
  }, "aria-label": t("입력 칸 설정", { context: "렉시컬 주관식 입력 도구" }) })] }), settingOpen && (_jsx(SettingForm, Object.assign({}, settingFormProps, { onClose: () => setSettingOpen(false) })))] }));
71
71
  }
72
- const VirtualInput = styled.div(({ theme }) => css `
73
- box-sizing: border-box;
74
- height: 36px;
75
- width: 300px;
76
- padding: 8px 16px;
77
- align-items: center;
78
- border-radius: 8px;
79
- background: ${theme.color.background.neutralAlt};
80
- cursor: pointer;
81
- color: ${theme.color.foreground.neutralBaseDisabled};
82
- font-family: ${theme.fontFamily.ui};
83
- font-size: 14px;
84
- font-style: normal;
85
- font-weight: 400;
86
- line-height: 20px; /* 142.857% */
72
+ const VirtualInput = styled.div(({ theme }) => css `
73
+ box-sizing: border-box;
74
+ height: 36px;
75
+ width: 300px;
76
+ padding: 8px 16px;
77
+ align-items: center;
78
+ border-radius: 8px;
79
+ background: ${theme.color.background.neutralAlt};
80
+ cursor: pointer;
81
+ color: ${theme.color.foreground.neutralBaseDisabled};
82
+ font-family: ${theme.fontFamily.ui};
83
+ font-size: 14px;
84
+ font-style: normal;
85
+ font-weight: 400;
86
+ line-height: 20px; /* 142.857% */
87
87
  `);