gitextract_iabkvbp0/ ├── .dockerignore ├── .editorconfig ├── .eslintignore ├── .eslintrc.json ├── .github/ │ └── workflows/ │ ├── ci.yml │ └── publish.yml ├── .gitignore ├── .prettierignore ├── .prettierrc ├── .vscode/ │ ├── extensions.json │ └── settings.json ├── CFPAGE-DEPLOY.md ├── CHANGELOG.md ├── Dockerfile ├── LICENSE ├── README.md ├── README_en.md ├── SECURITY.md ├── apps/ │ ├── web/ │ │ ├── .eslintrc.json │ │ ├── index.html │ │ ├── jest.config.ts │ │ ├── project.json │ │ ├── public/ │ │ │ ├── _headers │ │ │ ├── _redirects │ │ │ ├── robots.txt │ │ │ └── sitemap.xml │ │ ├── src/ │ │ │ ├── app/ │ │ │ │ ├── app.module.scss │ │ │ │ ├── app.spec.tsx │ │ │ │ └── app.tsx │ │ │ ├── assets/ │ │ │ │ └── .gitkeep │ │ │ ├── main.tsx │ │ │ └── styles.scss │ │ ├── tsconfig.app.json │ │ ├── tsconfig.json │ │ ├── tsconfig.spec.json │ │ └── vite.config.ts │ └── web-e2e/ │ ├── .eslintrc.json │ ├── playwright.config.ts │ ├── project.json │ ├── src/ │ │ └── example.spec.ts │ └── tsconfig.json ├── jest.config.ts ├── jest.preset.js ├── nx.json ├── package.json ├── packages/ │ ├── drawnix/ │ │ ├── .babelrc │ │ ├── .eslintrc.json │ │ ├── README.md │ │ ├── jest.config.ts │ │ ├── package.json │ │ ├── project.json │ │ ├── src/ │ │ │ ├── components/ │ │ │ │ ├── arrow-mark-picker.tsx │ │ │ │ ├── arrow-picker.tsx │ │ │ │ ├── clean-confirm/ │ │ │ │ │ ├── clean-confirm.scss │ │ │ │ │ └── clean-confirm.tsx │ │ │ │ ├── color-picker.scss │ │ │ │ ├── color-picker.tsx │ │ │ │ ├── dialog/ │ │ │ │ │ ├── dialog.scss │ │ │ │ │ └── dialog.tsx │ │ │ │ ├── icons.tsx │ │ │ │ ├── island.scss │ │ │ │ ├── island.tsx │ │ │ │ ├── menu/ │ │ │ │ │ ├── common.ts │ │ │ │ │ ├── menu-group.tsx │ │ │ │ │ ├── menu-item-content-radio.tsx │ │ │ │ │ ├── menu-item-content.tsx │ │ │ │ │ ├── menu-item-custom.tsx │ │ │ │ │ ├── menu-item-link.tsx │ │ │ │ │ ├── menu-item.tsx │ │ │ │ │ ├── menu-separator.tsx │ │ │ │ │ ├── menu.scss │ │ │ │ │ └── menu.tsx │ │ │ │ ├── popover/ │ │ │ │ │ └── popover.tsx │ │ │ │ ├── popup/ │ │ │ │ │ └── link-popup/ │ │ │ │ │ ├── link-popup.scss │ │ │ │ │ └── link-popup.tsx │ │ │ │ ├── radio-group.scss │ │ │ │ ├── radio-group.tsx │ │ │ │ ├── select/ │ │ │ │ │ ├── select.scss │ │ │ │ │ └── select.tsx │ │ │ │ ├── shape-picker.tsx │ │ │ │ ├── size-slider.scss │ │ │ │ ├── size-slider.tsx │ │ │ │ ├── stack.scss │ │ │ │ ├── stack.tsx │ │ │ │ ├── tool-button.tsx │ │ │ │ ├── tool-icon.scss │ │ │ │ ├── toolbar/ │ │ │ │ │ ├── app-toolbar/ │ │ │ │ │ │ ├── app-menu-items.tsx │ │ │ │ │ │ ├── app-toolbar.tsx │ │ │ │ │ │ └── language-switcher-menu.tsx │ │ │ │ │ ├── creation-toolbar.tsx │ │ │ │ │ ├── extra-tools/ │ │ │ │ │ │ ├── extra-tools-button.tsx │ │ │ │ │ │ └── menu-items.tsx │ │ │ │ │ ├── freehand-panel/ │ │ │ │ │ │ └── freehand-panel.tsx │ │ │ │ │ ├── pencil-mode-toolbar.tsx │ │ │ │ │ ├── popup-toolbar/ │ │ │ │ │ │ ├── arrow-mark-button.tsx │ │ │ │ │ │ ├── fill-button.tsx │ │ │ │ │ │ ├── font-color-button.tsx │ │ │ │ │ │ ├── font-size-control.tsx │ │ │ │ │ │ ├── link-button.tsx │ │ │ │ │ │ ├── popup-toolbar.scss │ │ │ │ │ │ ├── popup-toolbar.tsx │ │ │ │ │ │ └── stroke-button.tsx │ │ │ │ │ ├── theme-toolbar.tsx │ │ │ │ │ └── zoom-toolbar.tsx │ │ │ │ ├── ttd-dialog/ │ │ │ │ │ ├── markdown-to-drawnix.tsx │ │ │ │ │ ├── mermaid-to-drawnix.scss │ │ │ │ │ ├── mermaid-to-drawnix.tsx │ │ │ │ │ ├── ttd-dialog-input.tsx │ │ │ │ │ ├── ttd-dialog-output.tsx │ │ │ │ │ ├── ttd-dialog-panel.tsx │ │ │ │ │ ├── ttd-dialog-panels.tsx │ │ │ │ │ ├── ttd-dialog-submit-shortcut.tsx │ │ │ │ │ ├── ttd-dialog.scss │ │ │ │ │ └── ttd-dialog.tsx │ │ │ │ ├── tutorial.scss │ │ │ │ └── tutorial.tsx │ │ │ ├── constants/ │ │ │ │ └── color.ts │ │ │ ├── constants.ts │ │ │ ├── css.d.ts │ │ │ ├── data/ │ │ │ │ ├── blob.ts │ │ │ │ ├── filesystem.ts │ │ │ │ ├── image.ts │ │ │ │ ├── json.ts │ │ │ │ └── types.ts │ │ │ ├── drawnix.spec.tsx │ │ │ ├── drawnix.tsx │ │ │ ├── errors.ts │ │ │ ├── hooks/ │ │ │ │ └── use-drawnix.tsx │ │ │ ├── i18n/ │ │ │ │ ├── index.tsx │ │ │ │ ├── translations/ │ │ │ │ │ ├── ar.ts │ │ │ │ │ ├── en.ts │ │ │ │ │ ├── index.ts │ │ │ │ │ ├── ru.ts │ │ │ │ │ ├── vi.ts │ │ │ │ │ └── zh.ts │ │ │ │ └── types.ts │ │ │ ├── i18n.tsx │ │ │ ├── index.ts │ │ │ ├── keys.ts │ │ │ ├── libs/ │ │ │ │ └── image-viewer.ts │ │ │ ├── plugins/ │ │ │ │ ├── components/ │ │ │ │ │ ├── emoji.tsx │ │ │ │ │ └── image.tsx │ │ │ │ ├── freehand/ │ │ │ │ │ ├── freehand.component.ts │ │ │ │ │ ├── freehand.generator.ts │ │ │ │ │ ├── smoother.ts │ │ │ │ │ ├── type.ts │ │ │ │ │ ├── utils.ts │ │ │ │ │ ├── with-freehand-create.ts │ │ │ │ │ ├── with-freehand-erase.ts │ │ │ │ │ ├── with-freehand-fragment.ts │ │ │ │ │ └── with-freehand.ts │ │ │ │ ├── with-common.tsx │ │ │ │ ├── with-hotkey.ts │ │ │ │ ├── with-image.tsx │ │ │ │ ├── with-mind-extend.tsx │ │ │ │ ├── with-pencil.ts │ │ │ │ └── with-text-link.tsx │ │ │ ├── styles/ │ │ │ │ ├── index.scss │ │ │ │ ├── theme.scss │ │ │ │ └── variables.module.scss │ │ │ ├── transforms/ │ │ │ │ └── property.ts │ │ │ ├── types.ts │ │ │ └── utils/ │ │ │ ├── color.ts │ │ │ ├── common.ts │ │ │ ├── image.ts │ │ │ ├── index.ts │ │ │ ├── laser-pointer.ts │ │ │ ├── property.ts │ │ │ └── utility-types.ts │ │ ├── tsconfig.json │ │ ├── tsconfig.lib.json │ │ ├── tsconfig.spec.json │ │ └── vite.config.ts │ ├── react-board/ │ │ ├── .babelrc │ │ ├── .eslintrc.json │ │ ├── README.md │ │ ├── jest.config.ts │ │ ├── package.json │ │ ├── project.json │ │ ├── src/ │ │ │ ├── board.spec.tsx │ │ │ ├── board.tsx │ │ │ ├── hooks/ │ │ │ │ ├── use-board-event.ts │ │ │ │ ├── use-board.tsx │ │ │ │ └── use-plugin-event.tsx │ │ │ ├── index.ts │ │ │ ├── plugins/ │ │ │ │ ├── board.ts │ │ │ │ ├── with-pinch-zoom-plugin.ts │ │ │ │ └── with-react.tsx │ │ │ ├── styles/ │ │ │ │ ├── index.scss │ │ │ │ └── mixins.scss │ │ │ └── wrapper.tsx │ │ ├── tsconfig.json │ │ ├── tsconfig.lib.json │ │ ├── tsconfig.spec.json │ │ └── vite.config.ts │ └── react-text/ │ ├── .babelrc │ ├── .eslintrc.json │ ├── README.md │ ├── jest.config.ts │ ├── package.json │ ├── project.json │ ├── src/ │ │ ├── custom-types.ts │ │ ├── index.ts │ │ ├── plugins/ │ │ │ ├── index.ts │ │ │ ├── with-link.tsx │ │ │ └── with-text.ts │ │ ├── styles/ │ │ │ └── index.scss │ │ ├── text.spec.tsx │ │ └── text.tsx │ ├── tsconfig.json │ ├── tsconfig.lib.json │ ├── tsconfig.spec.json │ └── vite.config.ts ├── scripts/ │ ├── publish.js │ └── release-version.js └── tsconfig.base.json