* Refactor list toolbar items and unify icon sizing
* Replace MDI icons with Mingcute icons in editor extensions
* Replace MDI icons with Mingcute and other icon sets
* Unify button styles and icon sizing in editor UI
* Refactor editor icons and remove BlockCard component
* Refactor CommandsView menu styles and structure
* Add transition-colors to interactive UI components
* Refactor toolbar and toolbox item props typing
* Refactor BubbleItem props to use shared type
* Fix optional chaining for isActive prop in LinkBubbleButton
* Replace MDI icons with Mingcute icons in editor UI
* Refactor editor layout and styles for improved flexibility
* Refactor editor layout and update styles
* Replace icon set in CodeBlockViewRenderer
* Extend props types for toolbar, bubble, and toolbox items
* Refactor bubble components into subfolder
* Add BubbleButton component and update usage
* Refactor dropdown and toolbar item components
* Add image position dropdown to image bubble menu
* Refactor editor extension isActive checks to use class names
* Refactor gallery bubble items to use new UI components
* Refactor iframe align actions into dedicated component
* Refactor video position bubble to dropdown component
* Refactor input components and unify input UI
* Increase input container width from w-60 to w-64
* Refactor video size UI and update link popper widths
* Add audio position alignment to editor extension
* Refactor iframe and video size controls, update icons
* Add ResourceReplaceButton and refactor media replace UI
* Add configurable gap for gallery items
* Increase group size options to 10 in gallery
Expanded the selectable group size options in BubbleItemGroupSize.vue from 6 to 10, allowing users to choose larger group sizes for gallery items.
* Add danger type to cover delete dropdown item
* Add auto-focus to Input components in editor bubbles
* Add top margin to GalleryView node wrapper
#### What type of PR is this?
/kind bug
/area editor
/milestone 2.22.x
#### What this PR does / why we need it:
解决由于调整图片时多个位置同时修改 figure 而导致的报错问题。
#### Which issue(s) this PR fixes:
Fixes#7980
#### Does this PR introduce a user-facing change?
```release-note
解决在 figure 中添加 caption 后拖动图片报错的问题
```
#### What type of PR is this?
/kind improvement
/area editor
/milestone 2.22.x
#### What this PR does / why we need it:
将 Fragment 包从 PM 包中导出,而不是 core 包,用于解决 https://github.com/halo-sigs/plugin-hybrid-edit-block/issues/24 的错误
#### How to test it?
测试使用插件 `plugin-hybrid-edit-block` 是否会报错的问题。
#### Does this PR introduce a user-facing change?
```release-note
None
```
#### What type of PR is this?
/kind bug
/area editor
/milestone 2.22.x
#### What this PR does / why we need it:
解决 video 缺少 node-view-wrapper 导入的问题。
#### Which issue(s) this PR fixes:
Fixes#7981
#### Does this PR introduce a user-facing change?
```release-note
解决无法在编辑器中插入视频的问题
```
* Refactor dropdown components to use floating-vue directly
* Replace floating-vue with @halo-dev/components in editor
* Remove Dropdown.vue and update story usage
* Remove unused popper class and related styles
* Refactor gallery dropdowns to use VDropdownItem
* Move extensions
Signed-off-by: Ryan Wang <i@ryanc.cc>
* Refactor editor extensions to use explicit naming
* Refactor attachment selector integration in editor
* Remove vue-demi from Vite external dependencies
* Add README for richtext-editor package
* Refactor attachment composable and update upload permissions
* Refactor editor i18n keys and move upload strings
* Refactor AllExtensions to ExtensionsKit and update usage
* Move heading id attribute to extension implementation
* Refactor i18n usage to use i18n.global.t
* Update README to reflect changes in editor extensions, replacing AllExtensions with ExtensionsKit
---------
Signed-off-by: Ryan Wang <i@ryanc.cc>
#### What type of PR is this?
/kind feature
/area editor
#### What this PR does / why we need it:
添加 figure 功能至 editor 中。
当前会将 `figure` 应用至 `image`、`video`、`audio` 等。
由于 figure 的引入,image 等结构会有一定的变化,将由原先的行内元素转变为块级元素。
> 更新后,将兼容旧版本 image,打开编辑器后会自动将其转换为带有 `figure` 父节点的内容。
#### How to test it?
测试原有的 `image`、`video`、`audio` 等功能是否正常可用。
测试 `figure-caption` 是否正常可用。
测试历史数据是否正常渲染。
#### Which issue(s) this PR fixes:
Fixes#5388
#### Does this PR introduce a user-facing change?
```release-note
为默认编辑器添加 Figure 功能并应用至图片、视频、音频
```
#### What type of PR is this?
/area ui
/kind cleanup
#### What this PR does / why we need it:
Upgrade dev dependencies versions
#### Does this PR introduce a user-facing change?
```release-note
None
```
* Bump vue and related-deps version
Signed-off-by: Ryan Wang <i@ryanc.cc>
* Update @intlify/unplugin-vue-i18n to v11.0.1
---------
Signed-off-by: Ryan Wang <i@ryanc.cc>
#### What type of PR is this?
/kind feature
/area ui
/area editor
#### What this PR does / why we need it:
为编辑器增加画廊的扩展。
<img width="1908" height="960" alt="image" src="https://github.com/user-attachments/assets/7971cf83-9bf4-4330-ac2a-612ce0e3c9bf" />
#### How to test it?
在编辑器中测试画廊是否正常可用
#### Which issue(s) this PR fixes:
Fixes#6307
#### Does this PR introduce a user-facing change?
```release-note
为编辑器新增画廊(图片集)功能
```
#### What type of PR is this?
/area ui
/kind cleanup
/milestone 2.22.x
#### What this PR does / why we need it:
Rename output files from rich-text-editor to index
#### Does this PR introduce a user-facing change?
```release-note
None
```
#### What type of PR is this?
/area ui
/kind cleanup
#### What this PR does / why we need it:
Upgrade Node.js to 22
#### Does this PR introduce a user-facing change?
```release-note
None
```
#### What type of PR is this?
/area ui
/kind cleanup
#### What this PR does / why we need it:
Integrated [eslint-plugin-unicorn](https://github.com/sindresorhus/eslint-plugin-unicorn) into the ESLint config and added related rules. Updated all imports of core Node.js modules to use the 'node:' protocol for improved compatibility and linting.
#### Does this PR introduce a user-facing change?
```release-note
None
```
#### What type of PR is this?
/kind cleanup
#### What this PR does / why we need it:
This PR moves the .gitignore, .editorconfig, and .vscode files from the ui/ directory to the project root. This change is to avoid the need to maintain multiple, separate configuration files.
#### Does this PR introduce a user-facing change?
```release-note
None
```
#### What type of PR is this?
/kind feature
/area editor
#### What this PR does / why we need it:
支持使用中文符号`、`唤起建议菜单
#### Which issue(s) this PR fixes:
Fixes#7770
#### Does this PR introduce a user-facing change?
```release-note
支持使用中文符号、唤起建议菜单
```
#### What type of PR is this?
/kind bug
/area editor
#### What this PR does / why we need it:
当切换代码块语言时,可能会导致页面不正常跳动。
当前 PR 移除了切换代码块语言之后的设置焦点事件用于解决此问题
#### Which issue(s) this PR fixes:
Fixes#7795
#### Does this PR introduce a user-facing change?
```release-note
解决切换代码块语言时编辑器页面不正常跳动的问题
```
Adjusted the priority values for toolbox items in audio, code-block, columns, iframe, and table extensions to refine their ordering. Added a getCommandMenuItems method to the image extension, enabling image insertion via the command menu.
#### What type of PR is this?
/kind chore
/area editor
#### What this PR does / why we need it:
升级 tiptap 至 2.24.1
#### Does this PR introduce a user-facing change?
```release-note
升级 tiptap 至 2.24.1
```
#### What type of PR is this?
/area ui
/area editor
/milestone 2.21.x
/kind improvement
#### What this PR does / why we need it:
Change the editor's toolbox button to expand on click, rather than on hover, to maintain consistency with other toolbar buttons.
#### Does this PR introduce a user-facing change?
```release-note
将编辑器的工具箱按钮改为点击展开
```
#### What type of PR is this?
/kind importment
/area editor
/milestone 2.21.x
#### What this PR does / why we need it:
为默认编辑器拖拽事件增加节流,解决部分由于鼠标移动事件所产生的性能损耗。
#### Does this PR introduce a user-facing change?
```release-note
None
```
#### What type of PR is this?
/area ui
/kind cleanup
#### What this PR does / why we need it:
Bump TailwindCSS version to 3.4
#### Does this PR introduce a user-facing change?
```release-note
None
```
#### What type of PR is this?
/area ui
/kind cleanup
#### What this PR does / why we need it:
Upgrade Prettier and related plugins, and simplify Prettier configuration.
Now, formatting for all packages will be managed by Prettier in the project root directory.
#### Does this PR introduce a user-facing change?
```release-note
None
```
#### What type of PR is this?
/area ui
/kind cleanup
#### What this PR does / why we need it:
Migrate to ESLint 9, use flat config file, and simplify ESLint configuration.
Now, linting for all packages will be managed by the configuration in the project root directory.
#### Does this PR introduce a user-facing change?
```release-note
None
```
#### What type of PR is this?
/kind improvement
/area editor
/milestone 2.21.x
#### What this PR does / why we need it:
Improve English translations for the editor. The changes in https://github.com/halo-dev/halo/pull/7444 did not provide English translations.
#### Does this PR introduce a user-facing change?
```release-note
None
```
#### What type of PR is this?
/kind cleanup
/area core
/milestone 2.21.x
#### What this PR does / why we need it:
This PR bumps versions to 2.21.0-SNAPSHOT, including ui packages and API client.
#### Does this PR introduce a user-facing change?
```release-note
None
```
#### What type of PR is this?
/area plugin
/area editor
/milestone 2.20.x
#### What this PR does / why we need it:
Previously, editor extension related types were not exported because the type names conflicted with some UI component names, making it impossible to import extension types in plugins. This PR modifies the type names and exports them in index.ts.
#### Does this PR introduce a user-facing change?
```release-note
导出与编辑器扩展相关的类型定义
```
#### What type of PR is this?
/area ui
/kind cleanup
/milestone 2.20.x
#### What this PR does / why we need it:
Bump vue related dependencies
#### Does this PR introduce a user-facing change?
```release-note
None
```
#### What type of PR is this?
/area ui
/kind cleanup
/milestone 2.20.x
#### What this PR does / why we need it:
Bump tiptap version to 2.11.x
#### Does this PR introduce a user-facing change?
```release-note
None
```
#### What type of PR is this?
/area ui
/kind improvement
#### What this PR does / why we need it:
Bump vite version to [6](https://vite.dev/guide/migration.html)
#### Does this PR introduce a user-facing change?
```release-note
None
```
#### What type of PR is this?
/area ui
/milestone 2.20.x
#### What this PR does / why we need it:
升级 Tiptap 的依赖至 [2.10.x](https://github.com/ueberdosis/tiptap/releases)。
#### Does this PR introduce a user-facing change?
```release-note
升级 Tiptap 的依赖至 2.10.x。
```
#### What type of PR is this?
/area ui
/kind improvement
/milestone 2.20.x
#### What this PR does / why we need it:
Bump vue version to [3.5.11](https://github.com/vuejs/core/blob/main/CHANGELOG.md#3511-2024-10-03)
#### Does this PR introduce a user-facing change?
```release-note
None
```
#### What type of PR is this?
/area ui
/kind improvement
/milestone 2.20.x
#### What this PR does / why we need it:
升级 UI 项目的 Vue 版本至 3.5.x。
#### Does this PR introduce a user-facing change?
```release-note
升级 UI 项目的 Vue 版本至 3.5.x。
```
#### What type of PR is this?
/area ui
/kind bug
/milestone 2.20.x
#### What this PR does / why we need it:
修复编辑器中有序列表的样式问题。
#### Which issue(s) this PR fixes:
Fixes#6615
#### Does this PR introduce a user-facing change?
```release-note
修复编辑器中有序列表的样式问题。
```