@wagemule/daemon 0.1.2 → 0.1.3
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +9 -1
- package/dist/main.cjs +91 -32
- package/dist/main.cjs.map +2 -2
- package/dist/skills/larksuite/lark-approval/SKILL.md +56 -0
- package/dist/skills/larksuite/lark-attendance/SKILL.md +57 -0
- package/dist/skills/larksuite/lark-base/SKILL.md +349 -0
- package/dist/skills/larksuite/lark-base/references/dashboard-block-data-config.md +350 -0
- package/dist/skills/larksuite/lark-base/references/examples.md +140 -0
- package/dist/skills/larksuite/lark-base/references/formula-field-guide.md +735 -0
- package/dist/skills/larksuite/lark-base/references/lark-base-advperm-disable.md +83 -0
- package/dist/skills/larksuite/lark-base/references/lark-base-advperm-enable.md +80 -0
- package/dist/skills/larksuite/lark-base/references/lark-base-base-copy.md +74 -0
- package/dist/skills/larksuite/lark-base/references/lark-base-base-create.md +68 -0
- package/dist/skills/larksuite/lark-base/references/lark-base-base-get.md +39 -0
- package/dist/skills/larksuite/lark-base/references/lark-base-cell-value.md +151 -0
- package/dist/skills/larksuite/lark-base/references/lark-base-dashboard-arrange.md +83 -0
- package/dist/skills/larksuite/lark-base/references/lark-base-dashboard-block-create.md +108 -0
- package/dist/skills/larksuite/lark-base/references/lark-base-dashboard-block-delete.md +46 -0
- package/dist/skills/larksuite/lark-base/references/lark-base-dashboard-block-get.md +57 -0
- package/dist/skills/larksuite/lark-base/references/lark-base-dashboard-block-list.md +53 -0
- package/dist/skills/larksuite/lark-base/references/lark-base-dashboard-block-update.md +84 -0
- package/dist/skills/larksuite/lark-base/references/lark-base-dashboard-create.md +73 -0
- package/dist/skills/larksuite/lark-base/references/lark-base-dashboard-delete.md +44 -0
- package/dist/skills/larksuite/lark-base/references/lark-base-dashboard-get.md +59 -0
- package/dist/skills/larksuite/lark-base/references/lark-base-dashboard-list.md +52 -0
- package/dist/skills/larksuite/lark-base/references/lark-base-dashboard-update.md +69 -0
- package/dist/skills/larksuite/lark-base/references/lark-base-dashboard.md +240 -0
- package/dist/skills/larksuite/lark-base/references/lark-base-data-analysis-sop.md +88 -0
- package/dist/skills/larksuite/lark-base/references/lark-base-data-query.md +451 -0
- package/dist/skills/larksuite/lark-base/references/lark-base-field-create.md +104 -0
- package/dist/skills/larksuite/lark-base/references/lark-base-field-delete.md +51 -0
- package/dist/skills/larksuite/lark-base/references/lark-base-field-get.md +42 -0
- package/dist/skills/larksuite/lark-base/references/lark-base-field-list.md +44 -0
- package/dist/skills/larksuite/lark-base/references/lark-base-field-search-options.md +48 -0
- package/dist/skills/larksuite/lark-base/references/lark-base-field-update.md +166 -0
- package/dist/skills/larksuite/lark-base/references/lark-base-field.md +23 -0
- package/dist/skills/larksuite/lark-base/references/lark-base-form-create.md +87 -0
- package/dist/skills/larksuite/lark-base/references/lark-base-form-delete.md +64 -0
- package/dist/skills/larksuite/lark-base/references/lark-base-form-get.md +68 -0
- package/dist/skills/larksuite/lark-base/references/lark-base-form-list.md +73 -0
- package/dist/skills/larksuite/lark-base/references/lark-base-form-questions-create.md +118 -0
- package/dist/skills/larksuite/lark-base/references/lark-base-form-questions-delete.md +68 -0
- package/dist/skills/larksuite/lark-base/references/lark-base-form-questions-list.md +84 -0
- package/dist/skills/larksuite/lark-base/references/lark-base-form-questions-update.md +92 -0
- package/dist/skills/larksuite/lark-base/references/lark-base-form-questions.md +23 -0
- package/dist/skills/larksuite/lark-base/references/lark-base-form-update.md +82 -0
- package/dist/skills/larksuite/lark-base/references/lark-base-form.md +24 -0
- package/dist/skills/larksuite/lark-base/references/lark-base-history.md +16 -0
- package/dist/skills/larksuite/lark-base/references/lark-base-record-batch-create.md +58 -0
- package/dist/skills/larksuite/lark-base/references/lark-base-record-batch-update.md +53 -0
- package/dist/skills/larksuite/lark-base/references/lark-base-record-delete.md +62 -0
- package/dist/skills/larksuite/lark-base/references/lark-base-record-history-list.md +86 -0
- package/dist/skills/larksuite/lark-base/references/lark-base-record-share-link-create.md +72 -0
- package/dist/skills/larksuite/lark-base/references/lark-base-record-upload-attachment.md +50 -0
- package/dist/skills/larksuite/lark-base/references/lark-base-record-upsert.md +64 -0
- package/dist/skills/larksuite/lark-base/references/lark-base-record.md +29 -0
- package/dist/skills/larksuite/lark-base/references/lark-base-role-create.md +89 -0
- package/dist/skills/larksuite/lark-base/references/lark-base-role-delete.md +83 -0
- package/dist/skills/larksuite/lark-base/references/lark-base-role-get.md +87 -0
- package/dist/skills/larksuite/lark-base/references/lark-base-role-list.md +81 -0
- package/dist/skills/larksuite/lark-base/references/lark-base-role-update.md +94 -0
- package/dist/skills/larksuite/lark-base/references/lark-base-shortcut-field-properties.md +481 -0
- package/dist/skills/larksuite/lark-base/references/lark-base-table-create.md +62 -0
- package/dist/skills/larksuite/lark-base/references/lark-base-table-delete.md +51 -0
- package/dist/skills/larksuite/lark-base/references/lark-base-table-get.md +46 -0
- package/dist/skills/larksuite/lark-base/references/lark-base-table-list.md +43 -0
- package/dist/skills/larksuite/lark-base/references/lark-base-table-update.md +49 -0
- package/dist/skills/larksuite/lark-base/references/lark-base-table.md +20 -0
- package/dist/skills/larksuite/lark-base/references/lark-base-view-create.md +50 -0
- package/dist/skills/larksuite/lark-base/references/lark-base-view-delete.md +48 -0
- package/dist/skills/larksuite/lark-base/references/lark-base-view-get-card.md +38 -0
- package/dist/skills/larksuite/lark-base/references/lark-base-view-get-filter.md +38 -0
- package/dist/skills/larksuite/lark-base/references/lark-base-view-get-group.md +38 -0
- package/dist/skills/larksuite/lark-base/references/lark-base-view-get-sort.md +38 -0
- package/dist/skills/larksuite/lark-base/references/lark-base-view-get-timebar.md +38 -0
- package/dist/skills/larksuite/lark-base/references/lark-base-view-get-visible-fields.md +28 -0
- package/dist/skills/larksuite/lark-base/references/lark-base-view-get.md +38 -0
- package/dist/skills/larksuite/lark-base/references/lark-base-view-list.md +44 -0
- package/dist/skills/larksuite/lark-base/references/lark-base-view-rename.md +44 -0
- package/dist/skills/larksuite/lark-base/references/lark-base-view-set-card.md +55 -0
- package/dist/skills/larksuite/lark-base/references/lark-base-view-set-filter.md +181 -0
- package/dist/skills/larksuite/lark-base/references/lark-base-view-set-group.md +65 -0
- package/dist/skills/larksuite/lark-base/references/lark-base-view-set-sort.md +63 -0
- package/dist/skills/larksuite/lark-base/references/lark-base-view-set-timebar.md +51 -0
- package/dist/skills/larksuite/lark-base/references/lark-base-view-set-visible-fields.md +46 -0
- package/dist/skills/larksuite/lark-base/references/lark-base-view.md +44 -0
- package/dist/skills/larksuite/lark-base/references/lark-base-workflow-create.md +180 -0
- package/dist/skills/larksuite/lark-base/references/lark-base-workflow-disable.md +94 -0
- package/dist/skills/larksuite/lark-base/references/lark-base-workflow-enable.md +94 -0
- package/dist/skills/larksuite/lark-base/references/lark-base-workflow-get.md +147 -0
- package/dist/skills/larksuite/lark-base/references/lark-base-workflow-guide.md +718 -0
- package/dist/skills/larksuite/lark-base/references/lark-base-workflow-list.md +124 -0
- package/dist/skills/larksuite/lark-base/references/lark-base-workflow-schema.md +935 -0
- package/dist/skills/larksuite/lark-base/references/lark-base-workflow-update.md +167 -0
- package/dist/skills/larksuite/lark-base/references/lark-base-workflow.md +23 -0
- package/dist/skills/larksuite/lark-base/references/lark-base-workspace.md +18 -0
- package/dist/skills/larksuite/lark-base/references/lookup-field-guide.md +510 -0
- package/dist/skills/larksuite/lark-base/references/role-config.md +539 -0
- package/dist/skills/larksuite/lark-calendar/SKILL.md +154 -0
- package/dist/skills/larksuite/lark-calendar/references/lark-calendar-agenda.md +78 -0
- package/dist/skills/larksuite/lark-calendar/references/lark-calendar-create.md +109 -0
- package/dist/skills/larksuite/lark-calendar/references/lark-calendar-freebusy.md +124 -0
- package/dist/skills/larksuite/lark-calendar/references/lark-calendar-room-find.md +113 -0
- package/dist/skills/larksuite/lark-calendar/references/lark-calendar-rsvp.md +42 -0
- package/dist/skills/larksuite/lark-calendar/references/lark-calendar-schedule-meeting.md +265 -0
- package/dist/skills/larksuite/lark-calendar/references/lark-calendar-suggestion.md +125 -0
- package/dist/skills/larksuite/lark-calendar/references/lark-calendar-update.md +105 -0
- package/dist/skills/larksuite/lark-contact/SKILL.md +45 -0
- package/dist/skills/larksuite/lark-contact/references/lark-contact-get-user.md +19 -0
- package/dist/skills/larksuite/lark-contact/references/lark-contact-search-user.md +124 -0
- package/dist/skills/larksuite/lark-doc/SKILL.md +69 -0
- package/dist/skills/larksuite/lark-doc/references/lark-doc-create.md +89 -0
- package/dist/skills/larksuite/lark-doc/references/lark-doc-fetch.md +141 -0
- package/dist/skills/larksuite/lark-doc/references/lark-doc-md.md +71 -0
- package/dist/skills/larksuite/lark-doc/references/lark-doc-media-download.md +50 -0
- package/dist/skills/larksuite/lark-doc/references/lark-doc-media-insert.md +114 -0
- package/dist/skills/larksuite/lark-doc/references/lark-doc-media-preview.md +41 -0
- package/dist/skills/larksuite/lark-doc/references/lark-doc-search.md +217 -0
- package/dist/skills/larksuite/lark-doc/references/lark-doc-update.md +252 -0
- package/dist/skills/larksuite/lark-doc/references/lark-doc-whiteboard.md +100 -0
- package/dist/skills/larksuite/lark-doc/references/lark-doc-xml.md +169 -0
- package/dist/skills/larksuite/lark-doc/references/style/lark-doc-create-workflow.md +56 -0
- package/dist/skills/larksuite/lark-doc/references/style/lark-doc-style.md +106 -0
- package/dist/skills/larksuite/lark-doc/references/style/lark-doc-update-workflow.md +54 -0
- package/dist/skills/larksuite/lark-drive/SKILL.md +343 -0
- package/dist/skills/larksuite/lark-drive/references/lark-drive-add-comment.md +169 -0
- package/dist/skills/larksuite/lark-drive/references/lark-drive-apply-permission.md +77 -0
- package/dist/skills/larksuite/lark-drive/references/lark-drive-create-folder.md +73 -0
- package/dist/skills/larksuite/lark-drive/references/lark-drive-create-shortcut.md +103 -0
- package/dist/skills/larksuite/lark-drive/references/lark-drive-delete.md +79 -0
- package/dist/skills/larksuite/lark-drive/references/lark-drive-download.md +31 -0
- package/dist/skills/larksuite/lark-drive/references/lark-drive-export-download.md +50 -0
- package/dist/skills/larksuite/lark-drive/references/lark-drive-export.md +119 -0
- package/dist/skills/larksuite/lark-drive/references/lark-drive-import.md +154 -0
- package/dist/skills/larksuite/lark-drive/references/lark-drive-move.md +120 -0
- package/dist/skills/larksuite/lark-drive/references/lark-drive-pull.md +137 -0
- package/dist/skills/larksuite/lark-drive/references/lark-drive-push.md +162 -0
- package/dist/skills/larksuite/lark-drive/references/lark-drive-reactions.md +113 -0
- package/dist/skills/larksuite/lark-drive/references/lark-drive-search.md +239 -0
- package/dist/skills/larksuite/lark-drive/references/lark-drive-status.md +137 -0
- package/dist/skills/larksuite/lark-drive/references/lark-drive-task-result.md +302 -0
- package/dist/skills/larksuite/lark-drive/references/lark-drive-upload.md +101 -0
- package/dist/skills/larksuite/lark-event/SKILL.md +145 -0
- package/dist/skills/larksuite/lark-event/references/lark-event-im.md +86 -0
- package/dist/skills/larksuite/lark-im/SKILL.md +162 -0
- package/dist/skills/larksuite/lark-im/references/lark-im-chat-create.md +162 -0
- package/dist/skills/larksuite/lark-im/references/lark-im-chat-identity.md +55 -0
- package/dist/skills/larksuite/lark-im/references/lark-im-chat-list.md +113 -0
- package/dist/skills/larksuite/lark-im/references/lark-im-chat-messages-list.md +142 -0
- package/dist/skills/larksuite/lark-im/references/lark-im-chat-search.md +136 -0
- package/dist/skills/larksuite/lark-im/references/lark-im-chat-update.md +84 -0
- package/dist/skills/larksuite/lark-im/references/lark-im-flag-cancel.md +67 -0
- package/dist/skills/larksuite/lark-im/references/lark-im-flag-create.md +67 -0
- package/dist/skills/larksuite/lark-im/references/lark-im-flag-list.md +100 -0
- package/dist/skills/larksuite/lark-im/references/lark-im-messages-mget.md +95 -0
- package/dist/skills/larksuite/lark-im/references/lark-im-messages-reply.md +222 -0
- package/dist/skills/larksuite/lark-im/references/lark-im-messages-resources-download.md +94 -0
- package/dist/skills/larksuite/lark-im/references/lark-im-messages-search.md +217 -0
- package/dist/skills/larksuite/lark-im/references/lark-im-messages-send.md +223 -0
- package/dist/skills/larksuite/lark-im/references/lark-im-reactions.md +297 -0
- package/dist/skills/larksuite/lark-im/references/lark-im-threads-messages-list.md +111 -0
- package/dist/skills/larksuite/lark-mail/SKILL.md +648 -0
- package/dist/skills/larksuite/lark-mail/references/lark-mail-decline-receipt.md +115 -0
- package/dist/skills/larksuite/lark-mail/references/lark-mail-draft-create.md +123 -0
- package/dist/skills/larksuite/lark-mail/references/lark-mail-draft-edit.md +400 -0
- package/dist/skills/larksuite/lark-mail/references/lark-mail-forward.md +232 -0
- package/dist/skills/larksuite/lark-mail/references/lark-mail-message.md +230 -0
- package/dist/skills/larksuite/lark-mail/references/lark-mail-messages.md +108 -0
- package/dist/skills/larksuite/lark-mail/references/lark-mail-reply-all.md +206 -0
- package/dist/skills/larksuite/lark-mail/references/lark-mail-reply.md +242 -0
- package/dist/skills/larksuite/lark-mail/references/lark-mail-send-receipt.md +120 -0
- package/dist/skills/larksuite/lark-mail/references/lark-mail-send.md +216 -0
- package/dist/skills/larksuite/lark-mail/references/lark-mail-share-to-chat.md +87 -0
- package/dist/skills/larksuite/lark-mail/references/lark-mail-signature.md +98 -0
- package/dist/skills/larksuite/lark-mail/references/lark-mail-template-create.md +129 -0
- package/dist/skills/larksuite/lark-mail/references/lark-mail-template-update.md +150 -0
- package/dist/skills/larksuite/lark-mail/references/lark-mail-thread.md +111 -0
- package/dist/skills/larksuite/lark-mail/references/lark-mail-triage.md +122 -0
- package/dist/skills/larksuite/lark-mail/references/lark-mail-watch.md +94 -0
- package/dist/skills/larksuite/lark-markdown/SKILL.md +46 -0
- package/dist/skills/larksuite/lark-markdown/references/lark-markdown-create.md +86 -0
- package/dist/skills/larksuite/lark-markdown/references/lark-markdown-fetch.md +79 -0
- package/dist/skills/larksuite/lark-markdown/references/lark-markdown-overwrite.md +85 -0
- package/dist/skills/larksuite/lark-minutes/SKILL.md +139 -0
- package/dist/skills/larksuite/lark-minutes/references/lark-minutes-download.md +137 -0
- package/dist/skills/larksuite/lark-minutes/references/lark-minutes-search.md +206 -0
- package/dist/skills/larksuite/lark-minutes/references/lark-minutes-upload.md +104 -0
- package/dist/skills/larksuite/lark-okr/SKILL.md +133 -0
- package/dist/skills/larksuite/lark-okr/references/lark-okr-contentblock.md +359 -0
- package/dist/skills/larksuite/lark-okr/references/lark-okr-cycle-detail.md +84 -0
- package/dist/skills/larksuite/lark-okr/references/lark-okr-cycle-list.md +90 -0
- package/dist/skills/larksuite/lark-okr/references/lark-okr-entities.md +329 -0
- package/dist/skills/larksuite/lark-okr/references/lark-okr-image-upload.md +116 -0
- package/dist/skills/larksuite/lark-okr/references/lark-okr-progress-create.md +81 -0
- package/dist/skills/larksuite/lark-okr/references/lark-okr-progress-delete.md +47 -0
- package/dist/skills/larksuite/lark-okr/references/lark-okr-progress-get.md +62 -0
- package/dist/skills/larksuite/lark-okr/references/lark-okr-progress-list.md +80 -0
- package/dist/skills/larksuite/lark-okr/references/lark-okr-progress-update.md +81 -0
- package/dist/skills/larksuite/lark-openapi-explorer/SKILL.md +153 -0
- package/dist/skills/larksuite/lark-shared/SKILL.md +138 -0
- package/dist/skills/larksuite/lark-sheets/SKILL.md +345 -0
- package/dist/skills/larksuite/lark-sheets/references/lark-sheets-cell-data.md +197 -0
- package/dist/skills/larksuite/lark-sheets/references/lark-sheets-cell-images.md +59 -0
- package/dist/skills/larksuite/lark-sheets/references/lark-sheets-cell-style-and-merge.md +141 -0
- package/dist/skills/larksuite/lark-sheets/references/lark-sheets-dropdown.md +133 -0
- package/dist/skills/larksuite/lark-sheets/references/lark-sheets-filter-views.md +193 -0
- package/dist/skills/larksuite/lark-sheets/references/lark-sheets-float-images.md +125 -0
- package/dist/skills/larksuite/lark-sheets/references/lark-sheets-formula.md +88 -0
- package/dist/skills/larksuite/lark-sheets/references/lark-sheets-row-column-management.md +151 -0
- package/dist/skills/larksuite/lark-sheets/references/lark-sheets-sheet-management.md +164 -0
- package/dist/skills/larksuite/lark-sheets/references/lark-sheets-spreadsheet-management.md +134 -0
- package/dist/skills/larksuite/lark-skill-maker/SKILL.md +85 -0
- package/dist/skills/larksuite/lark-slides/SKILL.md +525 -0
- package/dist/skills/larksuite/lark-slides/assets/templates/administration--all_hands_meeting.xml +1999 -0
- package/dist/skills/larksuite/lark-slides/assets/templates/administration--annual_gala.xml +1160 -0
- package/dist/skills/larksuite/lark-slides/assets/templates/administration--company_intro.xml +1376 -0
- package/dist/skills/larksuite/lark-slides/assets/templates/administration--corporate_culture.xml +1765 -0
- package/dist/skills/larksuite/lark-slides/assets/templates/hr--employee_training.xml +912 -0
- package/dist/skills/larksuite/lark-slides/assets/templates/hr--employee_training_workshop.xml +1504 -0
- package/dist/skills/larksuite/lark-slides/assets/templates/hr--onboarding.xml +933 -0
- package/dist/skills/larksuite/lark-slides/assets/templates/marketing--brand_communication.xml +1367 -0
- package/dist/skills/larksuite/lark-slides/assets/templates/marketing--brand_logo_design.xml +1347 -0
- package/dist/skills/larksuite/lark-slides/assets/templates/marketing--brand_operations_plan.xml +1309 -0
- package/dist/skills/larksuite/lark-slides/assets/templates/marketing--business_plan.xml +1646 -0
- package/dist/skills/larksuite/lark-slides/assets/templates/marketing--marketing_plan.xml +1469 -0
- package/dist/skills/larksuite/lark-slides/assets/templates/marketing--marketing_strategy.xml +1484 -0
- package/dist/skills/larksuite/lark-slides/assets/templates/marketing--product_whitepaper.xml +1455 -0
- package/dist/skills/larksuite/lark-slides/assets/templates/marketing--roadshow_business_plan.xml +1506 -0
- package/dist/skills/larksuite/lark-slides/assets/templates/misc--book_sharing.xml +1338 -0
- package/dist/skills/larksuite/lark-slides/assets/templates/misc--club_event_plan.xml +4885 -0
- package/dist/skills/larksuite/lark-slides/assets/templates/misc--student_career_plan.xml +1854 -0
- package/dist/skills/larksuite/lark-slides/assets/templates/office--dark_general.xml +3763 -0
- package/dist/skills/larksuite/lark-slides/assets/templates/office--dept_annual_report.xml +1192 -0
- package/dist/skills/larksuite/lark-slides/assets/templates/office--light_general.xml +3378 -0
- package/dist/skills/larksuite/lark-slides/assets/templates/office--project_kickoff.xml +3152 -0
- package/dist/skills/larksuite/lark-slides/assets/templates/office--quarterly_review.xml +1253 -0
- package/dist/skills/larksuite/lark-slides/assets/templates/office--work_report.xml +1099 -0
- package/dist/skills/larksuite/lark-slides/assets/templates/office--work_summary.xml +4420 -0
- package/dist/skills/larksuite/lark-slides/assets/templates/office--work_summary_report.xml +1523 -0
- package/dist/skills/larksuite/lark-slides/assets/templates/operations--brand_logo_design.xml +1347 -0
- package/dist/skills/larksuite/lark-slides/assets/templates/operations--brand_operations_plan.xml +1309 -0
- package/dist/skills/larksuite/lark-slides/assets/templates/operations--marketing_plan.xml +1469 -0
- package/dist/skills/larksuite/lark-slides/assets/templates/operations--product_promotion.xml +687 -0
- package/dist/skills/larksuite/lark-slides/assets/templates/personal--experience_sharing.xml +2242 -0
- package/dist/skills/larksuite/lark-slides/assets/templates/personal--personal_resume.xml +2047 -0
- package/dist/skills/larksuite/lark-slides/assets/templates/personal--promotion_defense.xml +1099 -0
- package/dist/skills/larksuite/lark-slides/assets/templates/personal--promotion_report.xml +1039 -0
- package/dist/skills/larksuite/lark-slides/assets/templates/personal--self_intro.xml +696 -0
- package/dist/skills/larksuite/lark-slides/assets/templates/personal--teaching_sharing.xml +3013 -0
- package/dist/skills/larksuite/lark-slides/assets/templates/product--business_case_analysis.xml +1341 -0
- package/dist/skills/larksuite/lark-slides/assets/templates/product--market_analysis.xml +898 -0
- package/dist/skills/larksuite/lark-slides/assets/templates/product--product_analysis.xml +1537 -0
- package/dist/skills/larksuite/lark-slides/assets/templates/product--product_intro.xml +2838 -0
- package/dist/skills/larksuite/lark-slides/assets/templates/product--product_promotion.xml +687 -0
- package/dist/skills/larksuite/lark-slides/assets/templates/product--product_promotion_2.xml +687 -0
- package/dist/skills/larksuite/lark-slides/references/examples.md +261 -0
- package/dist/skills/larksuite/lark-slides/references/lark-slides-create.md +137 -0
- package/dist/skills/larksuite/lark-slides/references/lark-slides-edit-workflows.md +142 -0
- package/dist/skills/larksuite/lark-slides/references/lark-slides-media-upload.md +128 -0
- package/dist/skills/larksuite/lark-slides/references/lark-slides-replace-slide.md +239 -0
- package/dist/skills/larksuite/lark-slides/references/lark-slides-xml-presentation-slide-create.md +221 -0
- package/dist/skills/larksuite/lark-slides/references/lark-slides-xml-presentation-slide-delete.md +123 -0
- package/dist/skills/larksuite/lark-slides/references/lark-slides-xml-presentation-slide-get.md +110 -0
- package/dist/skills/larksuite/lark-slides/references/lark-slides-xml-presentation-slide-replace.md +186 -0
- package/dist/skills/larksuite/lark-slides/references/lark-slides-xml-presentations-get.md +98 -0
- package/dist/skills/larksuite/lark-slides/references/slide-templates.md +201 -0
- package/dist/skills/larksuite/lark-slides/references/slides_demo.xml +226 -0
- package/dist/skills/larksuite/lark-slides/references/slides_xml_schema_definition.xml +3004 -0
- package/dist/skills/larksuite/lark-slides/references/template-catalog.md +464 -0
- package/dist/skills/larksuite/lark-slides/references/template-index.json +1853 -0
- package/dist/skills/larksuite/lark-slides/references/xml-format-guide.md +369 -0
- package/dist/skills/larksuite/lark-slides/references/xml-schema-quick-ref.md +215 -0
- package/dist/skills/larksuite/lark-slides/scripts/layout_lint.py +349 -0
- package/dist/skills/larksuite/lark-slides/scripts/layout_lint_test.py +159 -0
- package/dist/skills/larksuite/lark-slides/scripts/template_tool.py +970 -0
- package/dist/skills/larksuite/lark-slides/scripts/template_tool_test.py +177 -0
- package/dist/skills/larksuite/lark-task/SKILL.md +165 -0
- package/dist/skills/larksuite/lark-task/references/lark-task-assign.md +38 -0
- package/dist/skills/larksuite/lark-task/references/lark-task-comment.md +28 -0
- package/dist/skills/larksuite/lark-task/references/lark-task-complete.md +27 -0
- package/dist/skills/larksuite/lark-task/references/lark-task-create.md +57 -0
- package/dist/skills/larksuite/lark-task/references/lark-task-followers.md +35 -0
- package/dist/skills/larksuite/lark-task/references/lark-task-get-my-tasks.md +55 -0
- package/dist/skills/larksuite/lark-task/references/lark-task-get-related-tasks.md +53 -0
- package/dist/skills/larksuite/lark-task/references/lark-task-reminder.md +36 -0
- package/dist/skills/larksuite/lark-task/references/lark-task-reopen.md +27 -0
- package/dist/skills/larksuite/lark-task/references/lark-task-search.md +41 -0
- package/dist/skills/larksuite/lark-task/references/lark-task-set-ancestor.md +32 -0
- package/dist/skills/larksuite/lark-task/references/lark-task-subscribe-event.md +86 -0
- package/dist/skills/larksuite/lark-task/references/lark-task-tasklist-create.md +35 -0
- package/dist/skills/larksuite/lark-task/references/lark-task-tasklist-members.md +36 -0
- package/dist/skills/larksuite/lark-task/references/lark-task-tasklist-search.md +38 -0
- package/dist/skills/larksuite/lark-task/references/lark-task-tasklist-task-add.md +38 -0
- package/dist/skills/larksuite/lark-task/references/lark-task-update.md +37 -0
- package/dist/skills/larksuite/lark-task/references/lark-task-upload-attachment.md +59 -0
- package/dist/skills/larksuite/lark-vc/SKILL.md +168 -0
- package/dist/skills/larksuite/lark-vc/references/lark-vc-notes.md +126 -0
- package/dist/skills/larksuite/lark-vc/references/lark-vc-recording.md +153 -0
- package/dist/skills/larksuite/lark-vc/references/lark-vc-search.md +176 -0
- package/dist/skills/larksuite/lark-vc-agent/SKILL.md +121 -0
- package/dist/skills/larksuite/lark-vc-agent/references/lark-vc-agent-meeting-events.md +247 -0
- package/dist/skills/larksuite/lark-vc-agent/references/lark-vc-agent-meeting-join.md +133 -0
- package/dist/skills/larksuite/lark-vc-agent/references/lark-vc-agent-meeting-leave.md +111 -0
- package/dist/skills/larksuite/lark-whiteboard/SKILL.md +144 -0
- package/dist/skills/larksuite/lark-whiteboard/references/connectors.md +102 -0
- package/dist/skills/larksuite/lark-whiteboard/references/content.md +40 -0
- package/dist/skills/larksuite/lark-whiteboard/references/image.md +80 -0
- package/dist/skills/larksuite/lark-whiteboard/references/lark-whiteboard-query.md +49 -0
- package/dist/skills/larksuite/lark-whiteboard/references/lark-whiteboard-update.md +100 -0
- package/dist/skills/larksuite/lark-whiteboard/references/layout.md +374 -0
- package/dist/skills/larksuite/lark-whiteboard/references/schema.md +357 -0
- package/dist/skills/larksuite/lark-whiteboard/references/style.md +318 -0
- package/dist/skills/larksuite/lark-whiteboard/references/typography.md +73 -0
- package/dist/skills/larksuite/lark-whiteboard/routes/dsl.md +107 -0
- package/dist/skills/larksuite/lark-whiteboard/routes/mermaid.md +27 -0
- package/dist/skills/larksuite/lark-whiteboard/routes/svg.md +54 -0
- package/dist/skills/larksuite/lark-whiteboard/scenes/architecture.md +433 -0
- package/dist/skills/larksuite/lark-whiteboard/scenes/bar-chart.md +187 -0
- package/dist/skills/larksuite/lark-whiteboard/scenes/comparison.md +135 -0
- package/dist/skills/larksuite/lark-whiteboard/scenes/fishbone.md +238 -0
- package/dist/skills/larksuite/lark-whiteboard/scenes/flowchart.md +185 -0
- package/dist/skills/larksuite/lark-whiteboard/scenes/flywheel.md +195 -0
- package/dist/skills/larksuite/lark-whiteboard/scenes/funnel.md +101 -0
- package/dist/skills/larksuite/lark-whiteboard/scenes/line-chart.md +214 -0
- package/dist/skills/larksuite/lark-whiteboard/scenes/mermaid.md +130 -0
- package/dist/skills/larksuite/lark-whiteboard/scenes/milestone.md +139 -0
- package/dist/skills/larksuite/lark-whiteboard/scenes/organization.md +173 -0
- package/dist/skills/larksuite/lark-whiteboard/scenes/photo-showcase.md +126 -0
- package/dist/skills/larksuite/lark-whiteboard/scenes/pyramid.md +99 -0
- package/dist/skills/larksuite/lark-whiteboard/scenes/swimlane.md +371 -0
- package/dist/skills/larksuite/lark-whiteboard/scenes/treemap.md +216 -0
- package/dist/skills/larksuite/lark-wiki/SKILL.md +111 -0
- package/dist/skills/larksuite/lark-wiki/references/lark-wiki-delete-space.md +205 -0
- package/dist/skills/larksuite/lark-wiki/references/lark-wiki-move.md +183 -0
- package/dist/skills/larksuite/lark-wiki/references/lark-wiki-node-copy.md +72 -0
- package/dist/skills/larksuite/lark-wiki/references/lark-wiki-node-create.md +127 -0
- package/dist/skills/larksuite/lark-wiki/references/lark-wiki-node-list.md +88 -0
- package/dist/skills/larksuite/lark-wiki/references/lark-wiki-space-list.md +68 -0
- package/dist/skills/larksuite/lark-workflow-meeting-summary/SKILL.md +104 -0
- package/dist/skills/larksuite/lark-workflow-standup-report/SKILL.md +120 -0
- package/package.json +2 -1
|
@@ -0,0 +1,357 @@
|
|
|
1
|
+
# DSL Schema
|
|
2
|
+
|
|
3
|
+
> 本文件只说明 **DSL 里能写什么**:节点类型、字段、枚举值、硬约束。布局策略、组合方法、Dagre/Flex 心智模型统一放在 `references/layout.md`。
|
|
4
|
+
> `?` 表示该字段在 schema 层是 optional;若需要稳定产出,再参考对应 scene 或 layout 文件中的最佳实践。
|
|
5
|
+
|
|
6
|
+
**📝 布局引擎核心法则**:
|
|
7
|
+
- **基本行为与 Flexbox 等同**:Frame 布局基于 Yoga 引擎。`layout: 'horizontal'` = `flex-direction: row`,`fill-container` = `flex: 1`,`fit-content` = `width: auto`,`gap` / `padding` / `alignItems` / `justifyContent` 语义相同。
|
|
8
|
+
- **枚举值无 flex- 前缀**:一律使用 `'start'` / `'end'` 而非原生 CSS 的 `'flex-start'` / `'flex-end'`。
|
|
9
|
+
- **默认对齐的差异**:`alignItems` 的默认值是 `'start'`(原生 CSS 默认是 `stretch`)。所以同排卡片需要等高时,**必须显式声名** `alignItems: 'stretch'`。
|
|
10
|
+
- **Dagre 引擎的特殊性**:`layout: 'dagre'` 作为专属拓扑连线引擎,自身不支持 `fill-container` 宽高,对其父容器而言,它是一个自适应(打包裹)的黑盒。
|
|
11
|
+
|
|
12
|
+
## WBDocument
|
|
13
|
+
|
|
14
|
+
```typescript
|
|
15
|
+
interface WBDocument {
|
|
16
|
+
version: 2;
|
|
17
|
+
nodes: WBNode[]; // 顶层节点。connector 必须放在这里,不能嵌套在 children 中
|
|
18
|
+
}
|
|
19
|
+
```
|
|
20
|
+
|
|
21
|
+
## 节点类型
|
|
22
|
+
|
|
23
|
+
### Frame(容器)
|
|
24
|
+
|
|
25
|
+
唯一可以包含子节点的类型。用于分组、布局、背景。
|
|
26
|
+
|
|
27
|
+
```typescript
|
|
28
|
+
{
|
|
29
|
+
type: 'frame';
|
|
30
|
+
id?: string;
|
|
31
|
+
x?: number; y?: number; // Flex 子节点不需要 x/y
|
|
32
|
+
width: WBSizeValue;
|
|
33
|
+
height: WBSizeValue;
|
|
34
|
+
layout: 'horizontal' | 'vertical' | 'none' | 'dagre'; // 布局模式
|
|
35
|
+
gap: number; // 必须显式写(不写节点会粘连,容易出 bug)
|
|
36
|
+
padding: number | [number, number] | [number, number, number, number]; // 必须显式写(不写内容贴边)
|
|
37
|
+
justifyContent?: 'start' | 'center' | 'end' | 'space-between' | 'space-around';
|
|
38
|
+
alignItems?: 'start' | 'center' | 'end' | 'stretch';
|
|
39
|
+
layoutOptions?: { // 仅当 layout 为 'dagre' 时生效
|
|
40
|
+
rankdir?: 'TB' | 'BT' | 'LR' | 'RL';
|
|
41
|
+
nodesep?: number;
|
|
42
|
+
edgesep?: number;
|
|
43
|
+
ranksep?: number;
|
|
44
|
+
edges?: Array<[string, string] | [string, string, string]>; // [fromId, toId, label?] 引擎自动排版子节点并生成贝塞尔曲线连线
|
|
45
|
+
isCluster?: boolean; // 透明子图。为 true 时子节点参与父级 Dagre 拓扑运算,连线可穿越边界
|
|
46
|
+
clusterTitle?: string; // 子图悬浮标题(自动吸附左上角)
|
|
47
|
+
clusterTitleColor?: string; // 标题颜色 (HEX格式,如 "#8B5CF6")
|
|
48
|
+
};
|
|
49
|
+
fillColor?: string;
|
|
50
|
+
borderColor?: string;
|
|
51
|
+
borderWidth?: number;
|
|
52
|
+
borderDash?: 'solid' | 'dashed' | 'dotted';
|
|
53
|
+
borderRadius?: number;
|
|
54
|
+
children?: WBNode[]; // 不能包含 connector
|
|
55
|
+
}
|
|
56
|
+
```
|
|
57
|
+
|
|
58
|
+
**Dagre 嵌套排版规则**:
|
|
59
|
+
|
|
60
|
+
1. **不透明节点(Opaque Node)**:Dagre 内的子容器,无论 `layout` 是 `flex`、`absolute` 还是 `dagre`,只要未声明 `isCluster: true`,对外层 Dagre 就是具有确定宽高的不透明原子节点。外层连线无法寻址其内部子节点。
|
|
61
|
+
2. **连线兜底重定向(Edge Redirect Fallback)**:当 `edges` 引用了某不透明节点内部的子节点 ID 时,引擎自动将该连线端点重定向至其最近的不透明祖先节点。不报错,不产生悬空连线。
|
|
62
|
+
3. **透明子图(Compound Cluster)**:子容器同时声明 `layout: "dagre"` 与 `layoutOptions: { isCluster: true }` 时,成为外层 Dagre 的复合子图。其内部子节点直接参与外层拓扑运算,连线可穿越子图边界。子图自身不执行独立排版,尺寸由外层 Dagre 根据内部节点包围盒自动撑开。
|
|
63
|
+
|
|
64
|
+
**isCluster 最小用法**:
|
|
65
|
+
```json
|
|
66
|
+
{
|
|
67
|
+
"type": "frame", "id": "cluster_a",
|
|
68
|
+
"layout": "dagre", "layoutOptions": { "isCluster": true },
|
|
69
|
+
"fillColor": "#F0FDF4", "borderColor": "#86EFAC", "borderWidth": 2, "borderDash": "dashed", "borderRadius": 16,
|
|
70
|
+
"children": [
|
|
71
|
+
{ "type": "text", "text": "区域标题", "fontSize": 11, "textColor": "#15803D" },
|
|
72
|
+
{ "type": "rect", "id": "node_inside", "width": 120, "height": 40, "text": "内部节点" }
|
|
73
|
+
]
|
|
74
|
+
}
|
|
75
|
+
```
|
|
76
|
+
> 注意:`edges` 必须写在**最外层的根 Dagre** 的 `layoutOptions` 中,不要写在 cluster 内部。
|
|
77
|
+
**其他约束**:
|
|
78
|
+
- `layout / gap / padding` 在 schema 层是 optional,但实际生成时推荐显式写出,避免依赖默认行为。
|
|
79
|
+
- `layoutOptions` 仅在 `layout: 'dagre'` 时生效。
|
|
80
|
+
- `children` 里不能出现 `connector`。
|
|
81
|
+
|
|
82
|
+
> **虚拟 frame 陷阱**:没有 `fillColor`、`borderColor`、`borderWidth` 的 frame 在编译时可能被当作纯布局容器跳过(子节点直接提升到父级)。如果给这种 frame 设了 `id` 并让外部 connector 连接它,编译后 frame 消失,connector 引用会失效。需要保留这个 frame 时,请给它加上不会被优化掉的外观属性。
|
|
83
|
+
|
|
84
|
+
### 基础图形
|
|
85
|
+
|
|
86
|
+
```typescript
|
|
87
|
+
{
|
|
88
|
+
type: 'rect' | 'ellipse' | 'cylinder' | 'diamond' | 'triangle' | 'trapezoid';
|
|
89
|
+
id?: string;
|
|
90
|
+
x?: number; y?: number;
|
|
91
|
+
opacity?: number; // 0-1,仅影响 fillColor 的透明度(对 frame/text/stickyNote 无效)
|
|
92
|
+
vFlip?: boolean;
|
|
93
|
+
hFlip?: boolean;
|
|
94
|
+
width: WBSizeValue;
|
|
95
|
+
height: WBSizeValue;
|
|
96
|
+
fillColor?: string;
|
|
97
|
+
borderColor?: string;
|
|
98
|
+
borderWidth?: number;
|
|
99
|
+
borderDash?: 'solid' | 'dashed' | 'dotted';
|
|
100
|
+
borderRadius?: number;
|
|
101
|
+
topWidth?: number; // 仅对 triangle / trapezoid 有效,梯形顶边宽度或三角形顶角截断宽度
|
|
102
|
+
text?: string | WBTextRun[]; // 纯文本或富文本
|
|
103
|
+
fontSize?: number;
|
|
104
|
+
textColor?: string;
|
|
105
|
+
textAlign?: 'left' | 'center' | 'right'; // Shape 默认 'center'(与 CSS 不同)
|
|
106
|
+
verticalAlign?: 'top' | 'middle' | 'bottom'; // Shape 默认 'middle'(与 CSS 不同)
|
|
107
|
+
}
|
|
108
|
+
```
|
|
109
|
+
|
|
110
|
+
> **cylinder 约束**:cylinder 的弧度固定 16px,不随宽度缩放。宽度过大会变成扁椭圆。禁止 `width: "fill-container"`,必须用固定宽度 + `height: "fit-content"`。宽度根据文字长度选择,通常 120-200px。
|
|
111
|
+
|
|
112
|
+
> **Shape 内边距(TEXT_INSET)**:Shape 节点有强制内边距,fit-content 会自动补偿。
|
|
113
|
+
> - rect / ellipse / diamond / triangle:上下左右各 12px
|
|
114
|
+
> - cylinder:顶部弧形 32px + 底部弧形 10px(垂直 +42px),水平各 7px
|
|
115
|
+
>
|
|
116
|
+
> 需要手算固定尺寸时:`实际文字宽/高 + 对应 inset`。
|
|
117
|
+
> 例:rect 内 14px 字号两行文字高 ~32px → `height >= 32 + 24 = 56px`
|
|
118
|
+
|
|
119
|
+
### Image(图片节点)
|
|
120
|
+
|
|
121
|
+
图片节点用于在画板中展示图片。图片不能直接使用 URL,必须先上传到飞书获取 media token。
|
|
122
|
+
|
|
123
|
+
```typescript
|
|
124
|
+
{
|
|
125
|
+
type: 'image';
|
|
126
|
+
id?: string;
|
|
127
|
+
x?: number; y?: number;
|
|
128
|
+
width: WBSizeValue; // 固定宽度,推荐 240 或 200
|
|
129
|
+
height: WBSizeValue; // 固定高度,推荐按 3:2 比例(如 240×160 或 200×133)
|
|
130
|
+
image: {
|
|
131
|
+
src: string; // media token(通过 docs +media-upload --parent-type whiteboard 上传获取)
|
|
132
|
+
};
|
|
133
|
+
}
|
|
134
|
+
```
|
|
135
|
+
|
|
136
|
+
> **关键约束**:
|
|
137
|
+
> - `image.src` 必须是通过 `docs +media-upload --parent-type whiteboard --parent-node <画板token>` 上传后返回的 **media token**,不能是 URL 或 Drive file token
|
|
138
|
+
> - 图片必须上传到**目标画板**,跨画板的 token 不可用
|
|
139
|
+
> - 同一画板内所有 image 节点应使用统一的 width/height,保持视觉一致
|
|
140
|
+
> - 图片宽高比推荐 3:2(如 240×160),避免变形
|
|
141
|
+
> - 详细上传流程见 [`references/image.md`](image.md)
|
|
142
|
+
|
|
143
|
+
### Text(纯文本节点)
|
|
144
|
+
|
|
145
|
+
```typescript
|
|
146
|
+
{
|
|
147
|
+
type: 'text';
|
|
148
|
+
id?: string;
|
|
149
|
+
x?: number; y?: number;
|
|
150
|
+
width: WBSizeValue;
|
|
151
|
+
height: WBSizeValue;
|
|
152
|
+
text?: string | WBTextRun[];
|
|
153
|
+
fontSize?: number;
|
|
154
|
+
textColor?: string;
|
|
155
|
+
textAlign?: 'left' | 'center' | 'right';
|
|
156
|
+
verticalAlign?: 'top' | 'middle' | 'bottom';
|
|
157
|
+
}
|
|
158
|
+
```
|
|
159
|
+
|
|
160
|
+
### StickyNote(便签)
|
|
161
|
+
|
|
162
|
+
```typescript
|
|
163
|
+
{
|
|
164
|
+
type: 'stickyNote';
|
|
165
|
+
id?: string;
|
|
166
|
+
x?: number; y?: number;
|
|
167
|
+
width: WBSizeValue;
|
|
168
|
+
height: WBSizeValue;
|
|
169
|
+
fillColor?: '#FEF1CE' | '#F5D1A7' | '#DFF5E5' | '#CDF7CC' | '#C9E8EF' | '#D6DCF3' | '#D3CCEE' | '#F1C5E7' | '#F6C8C8'; // 便签底色(仅支持这 9 种)
|
|
170
|
+
text?: string | WBTextRun[];
|
|
171
|
+
fontSize?: number;
|
|
172
|
+
textColor?: string;
|
|
173
|
+
textAlign?: 'left' | 'center' | 'right';
|
|
174
|
+
verticalAlign?: 'top' | 'middle' | 'bottom';
|
|
175
|
+
}
|
|
176
|
+
```
|
|
177
|
+
|
|
178
|
+
### Connector(连线)
|
|
179
|
+
|
|
180
|
+
必须放在顶层 `nodes` 数组中,不能嵌套在 frame 的 `children` 里。
|
|
181
|
+
|
|
182
|
+
```typescript
|
|
183
|
+
{
|
|
184
|
+
type: 'connector';
|
|
185
|
+
id?: string;
|
|
186
|
+
connector: {
|
|
187
|
+
from: string | { x: number; y: number }; // 节点 id 或坐标
|
|
188
|
+
to: string | { x: number; y: number };
|
|
189
|
+
fromAnchor?: 'top' | 'right' | 'bottom' | 'left';
|
|
190
|
+
toAnchor?: 'top' | 'right' | 'bottom' | 'left';
|
|
191
|
+
lineShape?: 'straight' | 'polyline' | 'curve' | 'rightAngle'; // 直线、圆角折线、曲线、直角折线
|
|
192
|
+
lineColor?: string;
|
|
193
|
+
lineWidth?: number;
|
|
194
|
+
lineStyle?: 'solid' | 'dashed' | 'dotted';
|
|
195
|
+
startArrow?: 'none' | 'arrow' | 'triangle' | 'circle' | 'diamond';
|
|
196
|
+
endArrow?: 'none' | 'arrow' | 'triangle' | 'circle' | 'diamond';
|
|
197
|
+
waypoints?: { x: number; y: number }[]; // polyline 途经点
|
|
198
|
+
label?: string; // 连线中间的标签文字
|
|
199
|
+
labelPosition?: number; // 标签位置,0-1,默认 0.5(中点)
|
|
200
|
+
};
|
|
201
|
+
}
|
|
202
|
+
```
|
|
203
|
+
|
|
204
|
+
### SVG
|
|
205
|
+
|
|
206
|
+
```typescript
|
|
207
|
+
{
|
|
208
|
+
type: 'svg';
|
|
209
|
+
id?: string;
|
|
210
|
+
x?: number; y?: number;
|
|
211
|
+
opacity?: number;
|
|
212
|
+
width: WBSizeValue;
|
|
213
|
+
height: WBSizeValue;
|
|
214
|
+
svg: { code: string }; // SVG 代码字符串
|
|
215
|
+
}
|
|
216
|
+
```
|
|
217
|
+
|
|
218
|
+
#### 渲染规范
|
|
219
|
+
|
|
220
|
+
SVG 通过 `image/svg+xml` Blob 加载到画布,**不在 HTML DOM 中**,因此存在严格限制:
|
|
221
|
+
|
|
222
|
+
**必须**:
|
|
223
|
+
- 包含 `viewBox` 属性(如 `viewBox="0 0 24 24"`),引擎依赖它确定坐标系
|
|
224
|
+
- 包含 `xmlns="http://www.w3.org/2000/svg"`(SVG 作为独立 `image/svg+xml` 解析时,XML 规范要求声明命名空间)
|
|
225
|
+
|
|
226
|
+
**允许的元素**(纯几何绘制):
|
|
227
|
+
- 基本图形:`<rect>` `<circle>` `<ellipse>` `<line>` `<polyline>` `<polygon>` `<path>`
|
|
228
|
+
- 渐变/滤镜:`<defs>` `<linearGradient>` `<radialGradient>` `<filter>` `<feGaussianBlur>` `<feMerge>`
|
|
229
|
+
- 结构:`<g>` `<clipPath>` `<mask>` `<use>`
|
|
230
|
+
|
|
231
|
+
**禁止的元素**(字体和外部资源在 Blob 沙箱中无法加载):
|
|
232
|
+
- `<text>` `<tspan>`(用同层 DSL rect 节点 + text 属性替代)
|
|
233
|
+
- `<image>`(用同层 DSL image 节点替代)
|
|
234
|
+
- `<foreignObject>`
|
|
235
|
+
- 任何引用外部 URL 的属性(`xlink:href` 指向远程资源等)
|
|
236
|
+
|
|
237
|
+
#### 两种典型用法
|
|
238
|
+
|
|
239
|
+
**1. 背景装饰 SVG**(大尺寸,与 frame 同大小)
|
|
240
|
+
|
|
241
|
+
用于绘制连线、曲线、发光效果等几何背景。文字信息通过同一 frame 内的 rect 节点叠加:
|
|
242
|
+
|
|
243
|
+
```json
|
|
244
|
+
{
|
|
245
|
+
"type": "frame", "width": 1400, "height": 680, "layout": "none",
|
|
246
|
+
"children": [
|
|
247
|
+
{ "type": "svg", "x": 0, "y": 0, "width": 1400, "height": 680,
|
|
248
|
+
"svg": { "code": "<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 1400 680\" ...>...</svg>" } },
|
|
249
|
+
{ "type": "rect", "x": 100, "y": 50, "width": 200, "height": 40,
|
|
250
|
+
"text": "Label", "fillColor": "transparent" }
|
|
251
|
+
]
|
|
252
|
+
}
|
|
253
|
+
```
|
|
254
|
+
|
|
255
|
+
**2. 内联图标 SVG**(24-48px,Feather/Lucide 风格)
|
|
256
|
+
|
|
257
|
+
用于卡片/按钮中的小图标,纯 stroke 线条:
|
|
258
|
+
|
|
259
|
+
```json
|
|
260
|
+
{ "type": "svg", "width": 32, "height": 32,
|
|
261
|
+
"svg": { "code": "<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"#3B82F6\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\"><circle cx=\"12\" cy=\"12\" r=\"10\"/><polyline points=\"12 6 12 12 16 14\"/></svg>" } }
|
|
262
|
+
```
|
|
263
|
+
|
|
264
|
+
### Icon(内置图标)
|
|
265
|
+
|
|
266
|
+
引用画板内置图标库的图标。比手写 SVG 更简单——只需指定 `name`。
|
|
267
|
+
|
|
268
|
+
```typescript
|
|
269
|
+
{
|
|
270
|
+
type: 'icon';
|
|
271
|
+
id?: string;
|
|
272
|
+
x?: number; y?: number;
|
|
273
|
+
width?: WBSizeValue; // 默认 48
|
|
274
|
+
height?: WBSizeValue; // 默认 48,保持正方形
|
|
275
|
+
name: string; // 图标名称,从 npx -y @larksuite/whiteboard-cli@^0.2.11 --icons 输出中选取
|
|
276
|
+
color?: string; // 可选颜色覆盖,hex 格式如 '#FF6600'
|
|
277
|
+
}
|
|
278
|
+
```
|
|
279
|
+
|
|
280
|
+
**获取可用图标**:规划好内容和布局后,运行以下命令查看所有可用图标名,从中选取:
|
|
281
|
+
```bash
|
|
282
|
+
npx -y @larksuite/whiteboard-cli@^0.2.11 --icons
|
|
283
|
+
```
|
|
284
|
+
|
|
285
|
+
用法:
|
|
286
|
+
```json
|
|
287
|
+
{ "type": "icon", "id": "db", "name": "database", "width": 48, "height": 48 }
|
|
288
|
+
```
|
|
289
|
+
|
|
290
|
+
**使用建议**:
|
|
291
|
+
- 当图表中的节点代表具体事物(服务器、用户、数据库等)时,用图标比纯文字方块更直观
|
|
292
|
+
- 一张图 3-8 个图标为宜,为关键组件配图标,次要节点用普通形状
|
|
293
|
+
- 用 `color` 为图标指定合适的颜色, 比如与所在容器的配色一致
|
|
294
|
+
- 图标可放在 frame 子元素中参与 flex 布局,连线可通过 id 连接到图标
|
|
295
|
+
- 图标+文字组合:frame(vertical) 中放 icon + text,形成富组件
|
|
296
|
+
|
|
297
|
+
```json
|
|
298
|
+
{
|
|
299
|
+
"type": "frame", "layout": "vertical", "gap": 8, "padding": 12,
|
|
300
|
+
"alignItems": "center", "fillColor": "#F0F5FF", "borderColor": "#ADC6FF",
|
|
301
|
+
"children": [
|
|
302
|
+
{ "type": "icon", "id": "db-icon", "name": "database", "width": 36, "height": 36 },
|
|
303
|
+
{ "type": "text", "text": "PostgreSQL", "fontSize": 12, "width": "fit-content", "height": "fit-content" }
|
|
304
|
+
]
|
|
305
|
+
}
|
|
306
|
+
```
|
|
307
|
+
|
|
308
|
+
---
|
|
309
|
+
|
|
310
|
+
## 富文本 WBTextRun
|
|
311
|
+
|
|
312
|
+
`text` 字段可以是纯字符串或 `WBTextRun[]` 数组。类似 HTML 内联样式:bold 对应 `<b>`,italic 对应 `<i>`,listType 对应 `<ol>/<ul>`。每个 run 是一段带样式的文字:
|
|
313
|
+
|
|
314
|
+
```typescript
|
|
315
|
+
interface WBTextRun {
|
|
316
|
+
content: string; // 文字内容,可含 \n 换行
|
|
317
|
+
bold?: boolean;
|
|
318
|
+
italic?: boolean;
|
|
319
|
+
underline?: boolean;
|
|
320
|
+
strikeThrough?: boolean;
|
|
321
|
+
fontSize?: number;
|
|
322
|
+
color?: string; // 文字颜色
|
|
323
|
+
backgroundColor?: string; // 文字高亮背景
|
|
324
|
+
hyperlink?: string;
|
|
325
|
+
listType?: 'none' | 'ordered' | 'unordered';
|
|
326
|
+
indent?: number; // 缩进级数
|
|
327
|
+
quote?: boolean; // 引用块
|
|
328
|
+
}
|
|
329
|
+
```
|
|
330
|
+
|
|
331
|
+
示例:
|
|
332
|
+
|
|
333
|
+
```json
|
|
334
|
+
{
|
|
335
|
+
"text": [
|
|
336
|
+
{ "content": "标题文字\n", "bold": true, "fontSize": 16 },
|
|
337
|
+
{ "content": "正文内容,", "fontSize": 14 },
|
|
338
|
+
{ "content": "高亮部分", "backgroundColor": "#FEF1CE", "fontSize": 14 }
|
|
339
|
+
]
|
|
340
|
+
}
|
|
341
|
+
```
|
|
342
|
+
|
|
343
|
+
`text` 和 `content` 中出现的双引号必须写成 `\"`,这是 JSON 规范要求。换行用 `\n`(JSON 中写为 `"第一行\n第二行"`,不要双重转义为 `\\n`)。
|
|
344
|
+
|
|
345
|
+
---
|
|
346
|
+
|
|
347
|
+
## 尺寸值 WBSizeValue
|
|
348
|
+
|
|
349
|
+
| 值 | 含义 | 注意 |
|
|
350
|
+
| --------------------- | --------------------------- | -------------------------------------- |
|
|
351
|
+
| `number` | 固定像素 | 任何场景 |
|
|
352
|
+
| `'fit-content'` | 由内容决定大小 | 父级需要 Flex 布局 |
|
|
353
|
+
| `'fit-content(N)'` | 同上,无内容时 fallback N | 同上 |
|
|
354
|
+
| `'fill-container'` | 填满父级剩余空间 | 父级需要 Flex 布局,且祖先链有固定宽度 |
|
|
355
|
+
| `'fill-container(N)'` | 同上,无 Flex 时 fallback N | — |
|
|
356
|
+
|
|
357
|
+
`fill-container` 在 `layout: 'none'`(绝对定位)下无效。`fit-content` 仍可用于含文字节点(引擎通过 Yoga measureFunc 测量文字尺寸)。
|
|
@@ -0,0 +1,318 @@
|
|
|
1
|
+
# 配色系统
|
|
2
|
+
|
|
3
|
+
## 怎么上色(最重要)
|
|
4
|
+
|
|
5
|
+
上色步骤:
|
|
6
|
+
|
|
7
|
+
1. **找出图中有几个分组**(层级、分支、类别、阶段...)
|
|
8
|
+
2. **为每个分组选一种不同颜色**(从色板中选 2-4 种颜色)
|
|
9
|
+
3. **分组容器**用浅色填充 — 告诉读者"这块是一个整体"
|
|
10
|
+
4. **分组内节点**用白色填充 + 该分组的深色 borderColor — 告诉读者"这些属于这个分组"
|
|
11
|
+
|
|
12
|
+
具体映射(经典色板):
|
|
13
|
+
|
|
14
|
+
| 分组 | 层容器 fillColor | 层容器 borderColor | 内部节点 borderColor |
|
|
15
|
+
|------|----------------|-------------------|---------------------|
|
|
16
|
+
| 第 1 组 | #F0F4FC(浅蓝) | #5178C6 | #5178C6 |
|
|
17
|
+
| 第 2 组 | #EAE2FE(浅紫) | #8569CB | #8569CB |
|
|
18
|
+
| 第 3 组 | #DFF5E5(浅绿) | #509863 | #509863 |
|
|
19
|
+
| 第 4 组 | #FEF1CE(浅黄) | #D4B45B | #D4B45B |
|
|
20
|
+
| 第 5 组 | #FEE3E2(浅红) | #D25D5A | #D25D5A |
|
|
21
|
+
| 内部节点 | #FFFFFF | 跟随所属分组 | — |
|
|
22
|
+
|
|
23
|
+
**各类图表怎么上色**:
|
|
24
|
+
- 架构图有 3 层 → 每层一种颜色,层背景浅色填充,层内节点白色+深色边框
|
|
25
|
+
- 对比表有 3 列 → 每列表头一种颜色,该列数据单元格用同色边框
|
|
26
|
+
- 组织架构有 4 个部门 → 每个部门一种颜色,子部门白色+同色边框
|
|
27
|
+
- 流程图 → 起止节点一种颜色,判断节点一种颜色,步骤节点白色
|
|
28
|
+
|
|
29
|
+
> [!IMPORTANT]
|
|
30
|
+
> **用户配色优先。** 用户指定了色值/风格时以用户为准。用户只给 1-2 个色值时,推导完整色板:主色→浅底→深边框→灰调连线色。
|
|
31
|
+
> 用户**未指定**配色时,必须从上方色板表中选取颜色,不要使用表中没有的自创色值(如 `#E8F3FF`、`#1664FF`、`#14C9C9` 等都不在色板中)。
|
|
32
|
+
|
|
33
|
+
---
|
|
34
|
+
|
|
35
|
+
## 结构规则
|
|
36
|
+
|
|
37
|
+
### 分组 — 不同层/分组必须用不同颜色
|
|
38
|
+
|
|
39
|
+
选 2-4 种颜色,每种代表一个分组。同组节点视觉完全一致(fillColor、borderColor 相同)。
|
|
40
|
+
|
|
41
|
+
### 分层 — 外重内轻
|
|
42
|
+
|
|
43
|
+
- 外层(大分区):浅色填充背景
|
|
44
|
+
- 内层(具体节点):白色填充 + 分组色边框
|
|
45
|
+
|
|
46
|
+
### 清晰
|
|
47
|
+
|
|
48
|
+
- 所有节点有边框(borderWidth=2)
|
|
49
|
+
- 间距不粘连(gap >= 8,有连线时 >= 40)
|
|
50
|
+
- 文字在背景上清晰可读(fontSize >= 14)。文字与背景色对比度应足够(参考 WCAG 2.1:正文至少 4.5:1,标题至少 3:1)
|
|
51
|
+
- 不要仅靠颜色区分信息——同时使用边框、形状或文字标签辅助,确保色觉障碍用户也能理解
|
|
52
|
+
- 连线用灰色(#BBBFC4),不抢节点注意力
|
|
53
|
+
|
|
54
|
+
### 统一参数
|
|
55
|
+
|
|
56
|
+
| 参数 | 值 | 为什么 |
|
|
57
|
+
|------|---|--------|
|
|
58
|
+
| borderWidth | 2 | 让边框清晰可见 |
|
|
59
|
+
| borderRadius | 8 | 统一的圆角,整洁 |
|
|
60
|
+
| gap(最小值) | 8 | 元素不粘连 |
|
|
61
|
+
| padding(最小值) | 8 | 内容不贴边 |
|
|
62
|
+
| gap(有连线时) | 40 | 给箭头留空间 |
|
|
63
|
+
| fontSize(正文) | >= 14 | 可读 |
|
|
64
|
+
| fontSize(标题) | >= 24 | 醒目 |
|
|
65
|
+
| fontSize(辅助) | >= 13 | 不费眼 |
|
|
66
|
+
|
|
67
|
+
---
|
|
68
|
+
|
|
69
|
+
## 色板选择指南
|
|
70
|
+
|
|
71
|
+
根据用户需求的关键词或场景选择合适的色板。未指定时默认使用"经典"色板。
|
|
72
|
+
|
|
73
|
+
| 色板 | 适用场景 | 关键词 |
|
|
74
|
+
|------|---------|-------|
|
|
75
|
+
| 经典 | 通用图表、说明文档 | 默认、通用 |
|
|
76
|
+
| 商务 | 汇报、企业架构、正式文档 | 专业、正式、给老板看 |
|
|
77
|
+
| 科技 | 技术架构、DevOps、监控 | 技术、炫酷、暗色 |
|
|
78
|
+
| 清新 | 流程图、用户旅程、教程 | 清新、自然、轻松 |
|
|
79
|
+
| 极简 | 论文配图、学术报告 | 学术、极简、黑白 |
|
|
80
|
+
|
|
81
|
+
---
|
|
82
|
+
|
|
83
|
+
## 预设色板
|
|
84
|
+
|
|
85
|
+
每套色板定义 7 个角色的颜色。**连线色是色板的一部分**,不同色板的连线色不同。
|
|
86
|
+
|
|
87
|
+
### 经典
|
|
88
|
+
|
|
89
|
+
| 角色 | fillColor | borderColor | textColor |
|
|
90
|
+
|------|-----------|-------------|-----------|
|
|
91
|
+
| 分区背景 | #F0F4FC | #5178C6 | #1F2329 |
|
|
92
|
+
| 分组标题 | #EAE2FE | #8569CB | #1F2329 |
|
|
93
|
+
| 内容节点 | #FFFFFF | #5178C6 | #1F2329 |
|
|
94
|
+
| 第二分组 | #DFF5E5 | #509863 | #1F2329 |
|
|
95
|
+
| 第三分组 | #FEF1CE | #D4B45B | #1F2329 |
|
|
96
|
+
| 第四分组 | #FEE3E2 | #D25D5A | #1F2329 |
|
|
97
|
+
| 强调/表头 | #1F2329 | #1F2329 | #FFFFFF |
|
|
98
|
+
| 连线 | -- | -- | #BBBFC4 |
|
|
99
|
+
|
|
100
|
+
### 商务
|
|
101
|
+
|
|
102
|
+
| 角色 | fillColor | borderColor | textColor |
|
|
103
|
+
|------|-----------|-------------|-----------|
|
|
104
|
+
| 分区背景 | #EDF2F7 | #4A6FA5 | #1A202C |
|
|
105
|
+
| 分组标题 | #D4E0ED | #4A6FA5 | #1A202C |
|
|
106
|
+
| 内容节点 | #FFFFFF | #718BAE | #1A202C |
|
|
107
|
+
| 第二分组 | #E8EDF3 | #5A7B9A | #1A202C |
|
|
108
|
+
| 第三分组 | #F0F0F0 | #8895A7 | #1A202C |
|
|
109
|
+
| 强调/表头 | #2D4A7A | #2D4A7A | #FFFFFF |
|
|
110
|
+
| 连线 | -- | -- | #718BAE |
|
|
111
|
+
|
|
112
|
+
### 科技
|
|
113
|
+
|
|
114
|
+
| 角色 | fillColor | borderColor | textColor |
|
|
115
|
+
|------|-----------|-------------|-----------|
|
|
116
|
+
| 画布/分区背景 | #0F172A | #1E293B | #E2E8F0 |
|
|
117
|
+
| 分组标题 | #1E293B | #3B82F6 | #E2E8F0 |
|
|
118
|
+
| 内容节点 | #1E293B | #334155 | #E2E8F0 |
|
|
119
|
+
| 第二分组 | #1E293B | #8B5CF6 | #E2E8F0 |
|
|
120
|
+
| 第三分组 | #1E293B | #10B981 | #E2E8F0 |
|
|
121
|
+
| 强调 | #2563EB | #3B82F6 | #FFFFFF |
|
|
122
|
+
| 连线 | -- | -- | #475569 |
|
|
123
|
+
|
|
124
|
+
### 清新
|
|
125
|
+
|
|
126
|
+
| 角色 | fillColor | borderColor | textColor |
|
|
127
|
+
|------|-----------|-------------|-----------|
|
|
128
|
+
| 分区背景 | #F0FDF4 | #86EFAC | #14532D |
|
|
129
|
+
| 分组标题 | #DCFCE7 | #4ADE80 | #14532D |
|
|
130
|
+
| 内容节点 | #FFFFFF | #86EFAC | #14532D |
|
|
131
|
+
| 第二分组 | #ECFDF5 | #6EE7B7 | #14532D |
|
|
132
|
+
| 第三分组 | #F0FDFA | #5EEAD4 | #134E4A |
|
|
133
|
+
| 强调 | #16A34A | #16A34A | #FFFFFF |
|
|
134
|
+
| 连线 | -- | -- | #86EFAC |
|
|
135
|
+
|
|
136
|
+
### 极简
|
|
137
|
+
|
|
138
|
+
| 角色 | fillColor | borderColor | textColor |
|
|
139
|
+
|------|-----------|-------------|-----------|
|
|
140
|
+
| 分区背景 | #F8F9FA | #DEE2E6 | #212529 |
|
|
141
|
+
| 分组标题 | #E9ECEF | #ADB5BD | #212529 |
|
|
142
|
+
| 内容节点 | #FFFFFF | #CED4DA | #212529 |
|
|
143
|
+
| 第二分组 | #F1F3F5 | #868E96 | #212529 |
|
|
144
|
+
| 第三分组 | #F8F9FA | #ADB5BD | #212529 |
|
|
145
|
+
| 强调/表头 | #495057 | #495057 | #FFFFFF |
|
|
146
|
+
| 连线 | -- | -- | #ADB5BD |
|
|
147
|
+
|
|
148
|
+
---
|
|
149
|
+
|
|
150
|
+
## 各元素怎么画
|
|
151
|
+
|
|
152
|
+
> 以下示例使用经典色板。如果选了其他色板,替换对应颜色即可,结构保持不变。
|
|
153
|
+
|
|
154
|
+
### 图表标题
|
|
155
|
+
|
|
156
|
+
告诉读者"这张图讲什么"。大号深色文字,居中。
|
|
157
|
+
|
|
158
|
+
```json
|
|
159
|
+
{ "type": "text", "fontSize": 24, "textColor": "#1F2329", "textAlign": "center" }
|
|
160
|
+
```
|
|
161
|
+
|
|
162
|
+
### 分区背景
|
|
163
|
+
|
|
164
|
+
把相关的内容圈在一起,告诉读者"这些属于同一个大类"。浅色做 fillColor,对应深色做 borderColor。内部放白色节点。
|
|
165
|
+
|
|
166
|
+
```json
|
|
167
|
+
{ "fillColor": "#F0F4FC", "borderColor": "#5178C6", "borderWidth": 2, "borderRadius": 8, "padding": 20 }
|
|
168
|
+
```
|
|
169
|
+
|
|
170
|
+
### 分区标签
|
|
171
|
+
|
|
172
|
+
给分区一个名字。用独立 text 节点,不要用 frame 的 `title` 属性(会被渲染为极小标题栏)。
|
|
173
|
+
|
|
174
|
+
**所有分区标签统一用深色文字 `#1F2329`**,不要给每个标签用不同颜色——颜色区分通过层容器背景和边框体现,标签文字颜色保持一致。
|
|
175
|
+
|
|
176
|
+
```json
|
|
177
|
+
{ "type": "text", "width": 180, "height": "fit-content", "text": "Access layer", "fontSize": 20, "textColor": "#1F2329", "textAlign": "right" }
|
|
178
|
+
```
|
|
179
|
+
|
|
180
|
+
### 分组标题
|
|
181
|
+
|
|
182
|
+
告诉读者"这个子分组叫什么"。色板色填充 + 同色系深色边框。
|
|
183
|
+
|
|
184
|
+
```json
|
|
185
|
+
{ "fillColor": "#EAE2FE", "borderColor": "#8569CB", "borderWidth": 2, "borderRadius": 8, "fontSize": 14, "textColor": "#1F2329" }
|
|
186
|
+
```
|
|
187
|
+
|
|
188
|
+
### 内容节点
|
|
189
|
+
|
|
190
|
+
具体的信息项。白色填充,边框颜色跟随所属分组。
|
|
191
|
+
|
|
192
|
+
```json
|
|
193
|
+
{ "fillColor": "#FFFFFF", "borderColor": "#5178C6", "borderWidth": 2, "borderRadius": 8, "fontSize": 14, "textColor": "#1F2329" }
|
|
194
|
+
```
|
|
195
|
+
|
|
196
|
+
白色节点的 borderColor 取决于它所属的分组:
|
|
197
|
+
```
|
|
198
|
+
属于蓝色分组: fillColor="#FFFFFF" borderColor="#5178C6" borderWidth=2
|
|
199
|
+
属于紫色分组: fillColor="#FFFFFF" borderColor="#8569CB" borderWidth=2
|
|
200
|
+
独立节点: fillColor="#FFFFFF" borderColor="#DEE0E3" borderWidth=2
|
|
201
|
+
```
|
|
202
|
+
(注:以上为经典色板的值,其他色板替换对应的 borderColor)
|
|
203
|
+
|
|
204
|
+
### 表头
|
|
205
|
+
|
|
206
|
+
告诉读者"这一列/行是什么维度"。深色填充 + 白色文字。
|
|
207
|
+
|
|
208
|
+
```json
|
|
209
|
+
{ "fillColor": "#1F2329", "borderColor": "#1F2329", "borderWidth": 2, "borderRadius": 0, "fontSize": 15, "textColor": "#FFFFFF", "textAlign": "center" }
|
|
210
|
+
```
|
|
211
|
+
|
|
212
|
+
### 图标组件
|
|
213
|
+
|
|
214
|
+
icon + text 的组合卡片。icon 的 `color` 跟随所属分组的 borderColor,与其他节点视觉一致。
|
|
215
|
+
|
|
216
|
+
```json
|
|
217
|
+
{
|
|
218
|
+
"type": "frame", "layout": "vertical", "gap": 4, "padding": 12,
|
|
219
|
+
"alignItems": "center", "fillColor": "#FFFFFF", "borderColor": "#5178C6", "borderWidth": 2, "borderRadius": 8,
|
|
220
|
+
"children": [
|
|
221
|
+
{ "type": "icon", "name": "server", "width": 36, "height": 36, "color": "#5178C6" },
|
|
222
|
+
{ "type": "text", "width": "fit-content", "height": "fit-content", "text": "应用服务器", "fontSize": 12 }
|
|
223
|
+
]
|
|
224
|
+
}
|
|
225
|
+
```
|
|
226
|
+
|
|
227
|
+
icon color 需要结合上下文选择合适的颜色, 比如: 使用所属分组的borderColor
|
|
228
|
+
|
|
229
|
+
### textColor 规则
|
|
230
|
+
|
|
231
|
+
```
|
|
232
|
+
- 正文:#1F2329(深色,在白底/浅色底上清晰)
|
|
233
|
+
- 辅助说明:#646A73(弱化,不抢注意力)
|
|
234
|
+
- 深色底上:#FFFFFF(反色,清晰可读)
|
|
235
|
+
(以上为经典色板的值,其他色板参考对应 textColor 列)
|
|
236
|
+
```
|
|
237
|
+
|
|
238
|
+
### 辅助说明
|
|
239
|
+
|
|
240
|
+
补充信息,不抢主角的注意力。灰色小字。
|
|
241
|
+
|
|
242
|
+
```json
|
|
243
|
+
{ "fontSize": 13, "textColor": "#646A73" }
|
|
244
|
+
```
|
|
245
|
+
|
|
246
|
+
### 连线
|
|
247
|
+
|
|
248
|
+
表达元素之间的关系或流向。使用色板中的连线色。
|
|
249
|
+
|
|
250
|
+
```json
|
|
251
|
+
{ "lineColor": "#BBBFC4", "lineWidth": 2 }
|
|
252
|
+
```
|
|
253
|
+
|
|
254
|
+
### 布局容器
|
|
255
|
+
|
|
256
|
+
纯粹用来排版的 frame,读者看不见它。不设 fillColor、borderColor。
|
|
257
|
+
|
|
258
|
+
```json
|
|
259
|
+
{ "type": "frame", "layout": "vertical", "gap": 28, "padding": 32 }
|
|
260
|
+
```
|
|
261
|
+
|
|
262
|
+
### 分组容器
|
|
263
|
+
|
|
264
|
+
用虚线框圈定一组节点,比分区背景更轻量。
|
|
265
|
+
|
|
266
|
+
```json
|
|
267
|
+
{ "borderColor": "#DEE0E3", "borderWidth": 2, "borderDash": "dashed", "borderRadius": 8 }
|
|
268
|
+
```
|
|
269
|
+
|
|
270
|
+
---
|
|
271
|
+
|
|
272
|
+
## 常见错误
|
|
273
|
+
|
|
274
|
+
错误:每个节点一种颜色 -> 读者分不清谁和谁是一组
|
|
275
|
+
```json
|
|
276
|
+
{ "fillColor": "#8569CB" }, { "fillColor": "#5178C6" }, { "fillColor": "#509863" }
|
|
277
|
+
```
|
|
278
|
+
正确:同组节点视觉一致 -> 读者一眼看出关系
|
|
279
|
+
```json
|
|
280
|
+
{ "fillColor": "#FFFFFF", "borderColor": "#8569CB" }, { "fillColor": "#FFFFFF", "borderColor": "#8569CB" }
|
|
281
|
+
```
|
|
282
|
+
|
|
283
|
+
错误:内外层都用重色 -> 读者不知道先看哪里
|
|
284
|
+
```json
|
|
285
|
+
{ "type": "frame", "fillColor": "#5178C6", "children": [{ "fillColor": "#8569CB" }] }
|
|
286
|
+
```
|
|
287
|
+
正确:外层浅色内层白色 -> 读者先看结构再看细节
|
|
288
|
+
```json
|
|
289
|
+
{ "type": "frame", "fillColor": "#F0F4FC", "children": [{ "fillColor": "#FFFFFF", "borderColor": "#5178C6" }] }
|
|
290
|
+
```
|
|
291
|
+
|
|
292
|
+
错误:连线用和节点一样的彩色 -> 和节点颜色抢注意力
|
|
293
|
+
```json
|
|
294
|
+
{ "connector": { "lineColor": "#5178C6" } }
|
|
295
|
+
```
|
|
296
|
+
正确:连线用色板中的连线色 -> 衬托节点
|
|
297
|
+
```json
|
|
298
|
+
{ "connector": { "lineColor": "#BBBFC4" } }
|
|
299
|
+
```
|
|
300
|
+
|
|
301
|
+
错误:节点没边框 -> 和背景融为一体,看不清边界
|
|
302
|
+
```json
|
|
303
|
+
{ "fillColor": "#FFFFFF" }
|
|
304
|
+
```
|
|
305
|
+
正确:节点有边框 -> 边界清晰
|
|
306
|
+
```json
|
|
307
|
+
{ "fillColor": "#FFFFFF", "borderColor": "#DEE0E3", "borderWidth": 2 }
|
|
308
|
+
```
|
|
309
|
+
|
|
310
|
+
错误:全图黑白灰,没有颜色区分 -> 读者无法快速识别分组
|
|
311
|
+
```json
|
|
312
|
+
{ "fillColor": "#FFFFFF", "borderColor": "#DEE0E3" }
|
|
313
|
+
```
|
|
314
|
+
正确:不同分组用不同颜色 -> 一眼看出结构(蓝色分组 + 紫色分组)
|
|
315
|
+
```json
|
|
316
|
+
{ "fillColor": "#F0F4FC", "borderColor": "#5178C6" }
|
|
317
|
+
{ "fillColor": "#EAE2FE", "borderColor": "#8569CB" }
|
|
318
|
+
```
|