{ "comment": "entries 의 모든 사용자 가시 문자열은 다국어 키 ($t:layout_editor.palette..) 사용. sirsoft-basic 템플릿은 Tailwind 디자인 시스템 사용 — defaultNode 의 props.className 에 그 템플릿 운영 레이아웃의 대표 디자인 토큰 적용. 다른 템플릿은 자기 CSS 시스템에 맞춰 className 또는 inline style 등 자기 토큰을 사용한다 (편집기 코어 CSS 비종속 원칙 은 코어 코드에만 적용, 템플릿 defaultNode 는 자기 디자인 시스템 사용이 정상).", "groups": [ { "label": "$t:layout_editor.palette.group.design", "kind": "design", "components": [ "Div", "Container", "Flex", "Grid", "SectionLayout", "ThreeColumnLayout", "Span", "P", "H1", "H2", "H3", "H4", "A", "Button", "Img", "Icon", "Hr", "Ul", "Li", "Nav", "HtmlContent", "ExpandableContent", "TabNavigation", "Form", "Table", "Input", "Textarea", "Select", "Checkbox", "PasswordInput", "Label", "FileUploader", "AvatarUploader", "HtmlEditor", "RichTextEditor", "SocialLoginButtons" ] }, { "label": "$t:layout_editor.palette.group.db", "kind": "data", "components": [ "ProductCard", "ImageGallery", "Pagination", "SearchBar", "Avatar", "UserInfo", "QuantitySelector", "ProductImageViewer", "PostReactions" ] } ], "entries": { "Div": { "label": "$t:layout_editor.palette.div.label", "requiresDefaultNode": true, "defaultNode": { "type": "basic", "name": "Div", "props": { "className": "min-h-[40px] p-2 border border-dashed border-gray-300 dark:border-gray-600" } } }, "Container": { "label": "$t:layout_editor.palette.container.label", "requiresDefaultNode": true, "defaultNode": { "type": "layout", "name": "Container", "props": { "className": "p-4" }, "children": [ { "type": "basic", "name": "Div", "text": "$t:layout_editor.palette.container.default_child_text" } ] } }, "Flex": { "label": "$t:layout_editor.palette.flex.label", "requiresDefaultNode": true, "defaultNode": { "type": "layout", "name": "Flex", "props": { "className": "flex gap-2 min-h-[40px] p-2 border border-dashed border-gray-300 dark:border-gray-600" } } }, "Grid": { "label": "$t:layout_editor.palette.grid.label", "requiresDefaultNode": true, "defaultNode": { "type": "layout", "name": "Grid", "props": { "className": "grid grid-cols-2 gap-2 min-h-[40px] p-2 border border-dashed border-gray-300 dark:border-gray-600" } } }, "SectionLayout": { "label": "$t:layout_editor.palette.section_layout.label", "requiresDefaultNode": true, "defaultNode": { "type": "layout", "name": "SectionLayout", "props": { "className": "min-h-[80px] p-4 border border-dashed border-gray-300 dark:border-gray-600" } } }, "ThreeColumnLayout": { "label": "$t:layout_editor.palette.three_column_layout.label", "requiresDefaultNode": true, "defaultNode": { "type": "layout", "name": "ThreeColumnLayout", "props": { "className": "min-h-[80px] p-4 border border-dashed border-gray-300 dark:border-gray-600" } } }, "Span": { "label": "$t:layout_editor.palette.span.label", "requiresDefaultNode": true, "defaultNode": { "type": "basic", "name": "Span", "props": { "className": "font-semibold text-gray-900 dark:text-white" }, "text": "$t:layout_editor.palette.span.default_text" } }, "P": { "label": "$t:layout_editor.palette.p.label", "requiresDefaultNode": true, "defaultNode": { "type": "basic", "name": "P", "props": { "className": "text-gray-600 dark:text-gray-400" }, "text": "$t:layout_editor.palette.p.default_text" } }, "H1": { "label": "$t:layout_editor.palette.h1.label", "requiresDefaultNode": true, "defaultNode": { "type": "basic", "name": "H1", "props": { "className": "text-2xl font-bold text-gray-900 dark:text-white" }, "text": "$t:layout_editor.palette.h1.default_text" } }, "H2": { "label": "$t:layout_editor.palette.h2.label", "requiresDefaultNode": true, "defaultNode": { "type": "basic", "name": "H2", "props": { "className": "text-lg font-semibold text-gray-900 dark:text-white" }, "text": "$t:layout_editor.palette.h2.default_text" } }, "H3": { "label": "$t:layout_editor.palette.h3.label", "requiresDefaultNode": true, "defaultNode": { "type": "basic", "name": "H3", "props": { "className": "text-lg font-semibold text-gray-900 dark:text-white" }, "text": "$t:layout_editor.palette.h3.default_text" } }, "H4": { "label": "$t:layout_editor.palette.h4.label", "requiresDefaultNode": true, "defaultNode": { "type": "basic", "name": "H4", "props": { "className": "text-base font-semibold text-gray-900 dark:text-white" }, "text": "$t:layout_editor.palette.h4.default_text" } }, "A": { "label": "$t:layout_editor.palette.a.label", "requiresDefaultNode": true, "defaultNode": { "type": "basic", "name": "A", "props": { "href": "#", "className": "text-blue-600 dark:text-blue-400 hover:underline" }, "text": "$t:layout_editor.palette.a.default_text" } }, "Button": { "label": "$t:layout_editor.palette.button.label", "requiresDefaultNode": true, "defaultNode": { "type": "basic", "name": "Button", "props": { "type": "button", "className": "w-full py-3 bg-gray-900 dark:bg-white text-white dark:text-gray-900 rounded-lg font-medium hover:bg-gray-800 dark:hover:bg-gray-100 transition-colors" }, "text": "$t:layout_editor.palette.button.default_text" } }, "Img": { "label": "$t:layout_editor.palette.img.label", "requiresDefaultNode": true, "defaultNode": { "type": "basic", "name": "Img", "props": { "src": "https://via.placeholder.com/200x120", "alt": "$t:layout_editor.palette.img.default_alt", "className": "w-full h-auto object-cover" } } }, "Icon": { "label": "$t:layout_editor.palette.icon.label", "requiresDefaultNode": true, "defaultNode": { "type": "basic", "name": "Icon", "props": { "name": "star", "size": "md" } } }, "Hr": { "label": "$t:layout_editor.palette.hr.label", "requiresDefaultNode": true, "defaultNode": { "type": "basic", "name": "Hr", "props": { "className": "border-gray-200 dark:border-gray-700 my-2" } } }, "Ul": { "label": "$t:layout_editor.palette.ul.label", "requiresDefaultNode": true, "defaultNode": { "type": "basic", "name": "Ul", "props": { "className": "space-y-2" }, "children": [ { "type": "basic", "name": "Li", "props": { "className": "text-gray-700 dark:text-gray-300" }, "text": "$t:layout_editor.palette.ul.default_item_text" } ] } }, "Li": { "label": "$t:layout_editor.palette.li.label", "requiresDefaultNode": true, "defaultNode": { "type": "basic", "name": "Li", "props": { "className": "text-gray-700 dark:text-gray-300" }, "text": "$t:layout_editor.palette.li.default_text" } }, "Nav": { "label": "$t:layout_editor.palette.nav.label", "requiresDefaultNode": true, "defaultNode": { "type": "basic", "name": "Nav", "props": { "className": "flex items-center gap-3" }, "children": [ { "type": "basic", "name": "A", "props": { "href": "#", "className": "text-blue-600 dark:text-blue-400 hover:underline" }, "text": "$t:layout_editor.palette.nav.default_item_text" } ] } }, "HtmlContent": { "label": "$t:layout_editor.palette.html_content.label", "requiresDefaultNode": true, "defaultNode": { "type": "composite", "name": "HtmlContent", "props": { "content": "$t:layout_editor.palette.html_content.default_text", "isHtml": false, "className": "prose dark:prose-invert prose-sm max-w-none text-gray-700 dark:text-gray-300" } } }, "ExpandableContent": { "label": "$t:layout_editor.palette.expandable_content.label", "requiresDefaultNode": true, "defaultNode": { "type": "composite", "name": "ExpandableContent", "props": { "title": "$t:layout_editor.palette.expandable_content.default_title" }, "children": [ { "type": "basic", "name": "Div", "text": "$t:layout_editor.palette.expandable_content.default_body" } ] } }, "TabNavigation": { "label": "$t:layout_editor.palette.tab_navigation.label", "requiresDefaultNode": true, "defaultNode": { "type": "composite", "name": "TabNavigation", "props": { "tabs": [ { "key": "tab1", "label": "$t:layout_editor.palette.tab_navigation.default_tab1_label" }, { "key": "tab2", "label": "$t:layout_editor.palette.tab_navigation.default_tab2_label" } ] } } }, "Input": { "label": "$t:layout_editor.palette.input.label", "requiresDefaultNode": true, "defaultNode": { "type": "basic", "name": "Input", "props": { "type": "text", "placeholder": "$t:layout_editor.palette.input.default_placeholder", "className": "w-full px-4 py-2 border border-gray-300 dark:border-gray-600 rounded-lg bg-white dark:bg-gray-700 text-gray-900 dark:text-white focus:ring-2 focus:ring-blue-500 focus:border-blue-500 transition-colors" } } }, "Textarea": { "label": "$t:layout_editor.palette.textarea.label", "requiresDefaultNode": true, "defaultNode": { "type": "basic", "name": "Textarea", "props": { "rows": 4, "placeholder": "$t:layout_editor.palette.textarea.default_placeholder", "className": "w-full px-3 py-2 border border-gray-300 dark:border-gray-600 rounded-lg bg-white dark:bg-gray-700 text-gray-900 dark:text-white text-sm focus:ring-2 focus:ring-blue-500 focus:border-blue-500 resize-none" } } }, "Select": { "label": "$t:layout_editor.palette.select.label", "requiresDefaultNode": true, "defaultNode": { "type": "basic", "name": "Select", "props": { "className": "w-full px-4 py-2 border border-gray-300 dark:border-gray-600 rounded-lg bg-white dark:bg-gray-800 text-gray-900 dark:text-white focus:ring-2 focus:ring-blue-500", "value": "{{_local.selectValue ?? ''}}", "options": [ { "value": "1", "label": "$t:layout_editor.palette.select.default_option1_label" }, { "value": "2", "label": "$t:layout_editor.palette.select.default_option2_label" } ] }, "actions": [ { "type": "change", "handler": "setState", "target": "local", "params": { "selectValue": "{{$event.target.value}}" } } ] } }, "Checkbox": { "label": "$t:layout_editor.palette.checkbox.label", "requiresDefaultNode": true, "defaultNode": { "type": "basic", "name": "Checkbox", "props": { "label": "$t:layout_editor.palette.checkbox.default_label", "className": "w-4 h-4 text-gray-900 dark:text-white border-gray-300 dark:border-gray-600 rounded focus:ring-gray-900 dark:focus:ring-white" } } }, "PasswordInput": { "label": "$t:layout_editor.palette.password_input.label", "requiresDefaultNode": true, "defaultNode": { "type": "basic", "name": "PasswordInput", "props": { "placeholder": "$t:layout_editor.palette.password_input.default_placeholder", "showToggle": true, "className": "w-full px-4 py-2 border border-gray-300 dark:border-gray-600 rounded-lg bg-white dark:bg-gray-700 text-gray-900 dark:text-white focus:ring-2 focus:ring-blue-500 focus:border-blue-500 transition-colors" } } }, "Label": { "label": "$t:layout_editor.palette.label.label", "requiresDefaultNode": true, "defaultNode": { "type": "basic", "name": "Label", "props": { "className": "block text-sm font-medium text-gray-700 dark:text-gray-300 mb-3" }, "text": "$t:layout_editor.palette.label.default_text" } }, "FileUploader": { "label": "$t:layout_editor.palette.file_uploader.label", "requiresDefaultNode": true, "defaultNode": { "type": "composite", "name": "FileUploader", "props": { "label": "$t:layout_editor.palette.file_uploader.default_label" } } }, "AvatarUploader": { "label": "$t:layout_editor.palette.avatar_uploader.label", "requiresDefaultNode": true, "defaultNode": { "type": "composite", "name": "AvatarUploader", "props": { "label": "$t:layout_editor.palette.avatar_uploader.default_label" } } }, "HtmlEditor": { "label": "$t:layout_editor.palette.html_editor.label", "requiresDefaultNode": true, "defaultNode": { "type": "composite", "name": "HtmlEditor", "props": { "value": "", "placeholder": "$t:layout_editor.palette.html_editor.default_placeholder" } } }, "RichTextEditor": { "label": "$t:layout_editor.palette.rich_text_editor.label", "requiresDefaultNode": true, "defaultNode": { "type": "composite", "name": "RichTextEditor", "props": { "value": "", "placeholder": "$t:layout_editor.palette.rich_text_editor.default_placeholder" } } }, "SocialLoginButtons": { "label": "$t:layout_editor.palette.social_login_buttons.label", "requiresDefaultNode": true, "defaultNode": { "type": "composite", "name": "SocialLoginButtons", "props": { "providers": [ "google", "kakao", "naver" ] } } }, "ProductCard": { "label": "$t:layout_editor.palette.product_card.label", "requiresDefaultNode": true, "defaultNode": { "type": "composite", "name": "ProductCard", "props": { "product": { "id": "sample", "name": "$t:layout_editor.palette.product_card.default_name", "price": 10000, "image": "https://via.placeholder.com/240" } } } }, "ImageGallery": { "label": "$t:layout_editor.palette.image_gallery.label", "requiresDefaultNode": true, "defaultNode": { "type": "composite", "name": "ImageGallery", "props": { "images": [ { "src": "https://via.placeholder.com/200", "alt": "$t:layout_editor.palette.image_gallery.default_alt1" }, { "src": "https://via.placeholder.com/200", "alt": "$t:layout_editor.palette.image_gallery.default_alt2" } ] } } }, "Pagination": { "label": "$t:layout_editor.palette.pagination.label", "requiresDefaultNode": true, "defaultNode": { "type": "composite", "name": "Pagination", "props": { "total": 100, "perPage": 10, "currentPage": 1, "className": "mt-6 flex justify-center" } } }, "SearchBar": { "label": "$t:layout_editor.palette.search_bar.label", "requiresDefaultNode": true, "defaultNode": { "type": "composite", "name": "SearchBar", "props": { "placeholder": "$t:layout_editor.palette.search_bar.default_placeholder" } } }, "Avatar": { "label": "$t:layout_editor.palette.avatar.label", "requiresDefaultNode": true, "defaultNode": { "type": "composite", "name": "Avatar", "props": { "src": "https://via.placeholder.com/64", "alt": "$t:layout_editor.palette.avatar.default_alt", "size": "md" } } }, "UserInfo": { "label": "$t:layout_editor.palette.user_info.label", "requiresDefaultNode": true, "defaultNode": { "type": "composite", "name": "UserInfo", "props": { "name": "$t:layout_editor.palette.user_info.default_name", "userId": "sample", "subText": "user@example.com" } } }, "QuantitySelector": { "label": "$t:layout_editor.palette.quantity_selector.label", "requiresDefaultNode": true, "defaultNode": { "type": "composite", "name": "QuantitySelector", "props": { "value": 1, "min": 1, "max": 99 } } }, "ProductImageViewer": { "label": "$t:layout_editor.palette.product_image_viewer.label", "requiresDefaultNode": true, "defaultNode": { "type": "composite", "name": "ProductImageViewer", "props": { "images": [ { "src": "https://via.placeholder.com/400", "alt": "$t:layout_editor.palette.product_image_viewer.default_alt" } ] } } }, "PostReactions": { "label": "$t:layout_editor.palette.post_reactions.label", "requiresDefaultNode": true, "defaultNode": { "type": "composite", "name": "PostReactions", "props": { "postId": "sample", "reactions": [ { "type": "like", "count": 3 }, { "type": "funny", "count": 1 } ] } } }, "Form": { "label": "$t:layout_editor.palette.form.label", "requiresDefaultNode": true, "defaultNode": { "type": "basic", "name": "Form", "props": { "className": "space-y-6" }, "children": [ { "type": "basic", "name": "Label", "props": { "className": "block text-sm font-medium text-gray-700 dark:text-gray-300 mb-3" }, "text": "$t:layout_editor.palette.form.default_label_text" }, { "type": "basic", "name": "Input", "props": { "type": "text", "placeholder": "$t:layout_editor.palette.form.default_input_placeholder", "className": "w-full px-4 py-2 border border-gray-300 dark:border-gray-600 rounded-lg bg-white dark:bg-gray-700 text-gray-900 dark:text-white focus:ring-2 focus:ring-blue-500 focus:border-blue-500 transition-colors" } }, { "type": "basic", "name": "Button", "props": { "type": "submit", "className": "w-full py-3 bg-gray-900 dark:bg-white text-white dark:text-gray-900 rounded-lg font-medium hover:bg-gray-800 dark:hover:bg-gray-100 transition-colors" }, "text": "$t:layout_editor.palette.form.default_submit_text" } ] } }, "Table": { "label": "$t:layout_editor.palette.table.label", "requiresDefaultNode": true, "defaultNode": { "type": "basic", "name": "Table", "props": { "className": "w-full text-sm text-left text-gray-700 dark:text-gray-300 border border-gray-200 dark:border-gray-700 border-collapse" }, "children": [ { "type": "basic", "name": "Thead", "props": { "className": "bg-gray-50 dark:bg-gray-800" }, "children": [ { "type": "basic", "name": "Tr", "children": [ { "type": "basic", "name": "Th", "props": { "className": "px-4 py-2 border border-gray-200 dark:border-gray-700 font-semibold" }, "text": "$t:layout_editor.palette.table.header_1" }, { "type": "basic", "name": "Th", "props": { "className": "px-4 py-2 border border-gray-200 dark:border-gray-700 font-semibold" }, "text": "$t:layout_editor.palette.table.header_2" } ] } ] }, { "type": "basic", "name": "Tbody", "children": [ { "type": "basic", "name": "Tr", "children": [ { "type": "basic", "name": "Td", "props": { "className": "px-4 py-2 border border-gray-200 dark:border-gray-700" }, "text": "$t:layout_editor.palette.table.cell" }, { "type": "basic", "name": "Td", "props": { "className": "px-4 py-2 border border-gray-200 dark:border-gray-700" }, "text": "$t:layout_editor.palette.table.cell" } ] }, { "type": "basic", "name": "Tr", "children": [ { "type": "basic", "name": "Td", "props": { "className": "px-4 py-2 border border-gray-200 dark:border-gray-700" }, "text": "$t:layout_editor.palette.table.cell" }, { "type": "basic", "name": "Td", "props": { "className": "px-4 py-2 border border-gray-200 dark:border-gray-700" }, "text": "$t:layout_editor.palette.table.cell" } ] } ] } ] } } } }