* 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?
/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
```
* Enhance type hints for globally registered components
* Refactor Codemirror props and language support
* Update
Signed-off-by: Ryan Wang <i@ryanc.cc>
---------
Signed-off-by: Ryan Wang <i@ryanc.cc>
#### What type of PR is this?
/area ui
/kind improvement
/milestone 2.22.x
#### What this PR does / why we need it:
Lazy load some routes to improve initial render performance
#### Does this PR introduce a user-facing change?
```release-note
懒加载 Console 和 UC 的部分路由,优化首屏渲染速度
```
#### What type of PR is this?
/area ui
/kind api-change
/milestone 2.22.x
#### What this PR does / why we need it:
See #7925
#### Which issue(s) this PR fixes:
Fixes#7925
#### Special notes for your reviewer:
#### Does this PR introduce a user-facing change?
```release-note
将 `@halo-dev/console-shared` 重命名为 `@halo-dev/ui-shared`
```
#### What type of PR is this?
/area ui
/kind feature
/milestone 2.22.x
#### What this PR does / why we need it:
This PR introduces a developer-friendly utility for checking UI permissions, which is also exposed for use by plugins.
Usage:
```ts
import { utils } from "@halo-dev/console-shared"
utils.permission.has(['any:permission'])
```
#### Does this PR introduce a user-facing change?
```release-note
在 `@halo-dev/console-shared` 包中提供 UI 权限检查工具
```
Added a help message to the display name field in the attachment edit form, clarifying that the custom name is only for management interface display and does not affect the file name or access link.
#### What type of PR is this?
/area ui
/kind feature
/milestone 2.22.x
#### What this PR does / why we need it:
This PR introduces date and attachment utilities into the `@halo-dev/console-shared` package. This makes it convenient for plugins to share and reuse these common functions.
#### Does this PR introduce a user-facing change?
```release-note
在 `@halo-dev/console-shared` 包中提供统一的 date 和 attachment 工具
```
#### What type of PR is this?
/area ui
/kind improvement
/milestone 2.22.x
#### What this PR does / why we need it:
Replaces the 'visible' prop and v-model usage with internal modal ref and event-based close handling in AttachmentSelectorModal components. Updates all usages to use explicit visibility state and @close event, improving modal control and code consistency.
#### Does this PR introduce a user-facing change?
```release-note
None
```
#### What type of PR is this?
/area ui
/kind improvement
/milestone 2.22.x
#### What this PR does / why we need it:
Eliminated useTemplateRef and useElementVisibility from AttachmentThumbnailList.vue as they were no longer needed. The visibility check for the wrapper div was removed, simplifying the component.
#### Does this PR introduce a user-facing change?
```release-note
None
```
* Refactor attachment thumbnail preview components
Replaces AttachmentSingleThumbnailList and AttachmentSingleThumbnailItem with a new AttachmentThumbnailList component for improved thumbnail preview in attachment detail modals. Updates AttachmentDetailModal.vue in both console and user center modules to use the new component. Also removes the 'click to exit preview' feature and cleans up related code.
* Update vueuse packages and improve thumbnail visibility
Upgraded @vueuse dependencies to version 12.8.2 for improved compatibility and features. Modified AttachmentThumbnailList.vue to use the 'once' option with useElementVisibility for better performance.
#### What type of PR is this?
/area ui
/milestone 2.22.x
/kind feature
#### What this PR does / why we need it:
This PR adds an option in the storage policy settings to hide a policy from the upload interface.
This is useful because some storage policies are not intended for direct user uploads. Hiding them can help declutter the UI and prevent users from selecting them by mistake.
#### Which issue(s) this PR fixes:
Fixes#7787
#### Does this PR introduce a user-facing change?
```release-note
支持在附件上传界面隐藏部分存储策略
```
#### What type of PR is this?
/area ui
/milestone 2.22.x
#### What this PR does / why we need it:
Refactored AttachmentPolicyEditingModal.vue to group policy config fields under a 'config' group and improved the update logic to use JSON patch for displayName
#### Does this PR introduce a user-facing change?
```release-note
None
```
#### What type of PR is this?
/area ui
/kind improvement
/milestone 2.21.x
#### What this PR does / why we need it:
In the attachment upload modal, we previously persisted the user’s selected storage policy and group to make future uploads more convenient. However, this overlooked a common usage scenario—users often apply filters for storage policy and group in the attachment list before uploading. Persisting those previous selections could then conflict with the current filters and cause confusion. This PR removes the persistence of selected group and storage policy to avoid such mismatches.
#### Which issue(s) this PR fixes:
Fixes#7713
#### Does this PR introduce a user-facing change?
```release-note
在附件上传组件中取消所选分组和存储策略的持久化,默认选择为附件列表筛选条件相同的策略和分组。
```
#### What type of PR is this?
/area ui
/kind feature
/milestone 2.21.x
#### What this PR does / why we need it:
Add thumbnail records viewing feature. The main goal is to keep track of failed thumbnail generations, making it easier to check if thumbnails were generated correctly and retry if needed.
<img width="1009" height="859" alt="image" src="https://github.com/user-attachments/assets/d968e416-0b88-45bf-a554-a0c1abcf97a0" />
<img width="1014" height="952" alt="image" src="https://github.com/user-attachments/assets/c5d1a11b-7acc-4ab5-a2da-cf9467cb6b70" />
#### Which issue(s) this PR fixes:
Fixes #
#### Special notes for your reviewer:
#### Does this PR introduce a user-facing change?
```release-note
支持查看附件缩略图记录
```
#### What type of PR is this?
/kind bug
/area ui
/milestone 2.21.x
#### What this PR does / why we need it:
Bump rolldown-vite to 7.0.3 to fix a styling issue causing the attachment upload component to not load styles properly.
<img width="1234" alt="image" src="https://github.com/user-attachments/assets/ce12e4f1-fa86-4164-b1ce-b279f57407c5" />
Ref https://github.com/halo-sigs/plugin-moments/issues/150#issuecomment-3016260268
#### Special notes for your reviewer:
Need to test whether the attachment upload component works properly in both development and production environments, specifically in the console and UC.
#### Does this PR introduce a user-facing change?
```release-note
修复个人中心上传组件无法正常加载样式的问题。
```
#### What type of PR is this?
/area ui
/kind improvement
/milestone 2.21.x
#### What this PR does / why we need it:
Update attachment policy form using new configMap API
#### Does this PR introduce a user-facing change?
```release-note
None
```
#### What type of PR is this?
/area ui
/kind improvement
/milestone 2.21.x
#### What this PR does / why we need it:
1. Add ghost variant
2. Improve icon style
3. Refactoring css using scss functions
#### Does this PR introduce a user-facing change?
```release-note
None
```
#### What type of PR is this?
/area ui
/kind bug
/milestone 2.21.x
#### What this PR does / why we need it:
Fix correct attachment selection state after new upload.
#### Which issue(s) this PR fixes:
Fixes https://github.com/halo-dev/halo/issues/7472
#### Does this PR introduce a user-facing change?
```release-note
修复当有已选择附件时,上传新附件导致所选附件状态异常的问题。
```
* refactor: improve entity component layout for better device responsiveness
Signed-off-by: Ryan Wang <i@ryanc.cc>
* Resolve CSS style conflicts
Signed-off-by: Ryan Wang <i@ryanc.cc>
* Update missing translaions
Signed-off-by: Ryan Wang <i@ryanc.cc>
---------
Signed-off-by: Ryan Wang <i@ryanc.cc>
#### What type of PR is this?
/area ui
/kind improvement
/milestone 2.20.x
#### What this PR does / why we need it:
在创建附件分组或者存储策略时,支持检查是否有已存在的名称。
#### Which issue(s) this PR fixes:
Fixes#6946
#### Special notes for your reviewer:
#### Does this PR introduce a user-facing change?
```release-note
在创建附件分组或者存储策略时,支持检查是否有已存在的名称。
```
#### What type of PR is this?
/kind improvement
/area ui
/milestone 2.20.x
#### What this PR does / why we need it:
支持在附件上传界面创建新分组。
#### Which issue(s) this PR fixes:
Fixes#6942
#### Special notes for your reviewer:
#### Does this PR introduce a user-facing change?
```release-note
支持在附件上传界面创建新分组。
```
#### What type of PR is this?
/kind feature
/milestone 2.20.x
/area core
#### What this PR does / why we need it:
支持用户在个人中心管理自己的附件(需要具有对应权限)
Fixes https://github.com/halo-dev/halo/issues/5278
#### Does this PR introduce a user-facing change?
```release-note
支持用户在个人中心管理自己的附件(需要具有对应权限)
```
#### What type of PR is this?
/area core
/kind improvement
/milestone 2.20.x
#### What this PR does / why we need it:
为系统默认的存储策略添加保护措施,不允许删除。
<img width="893" alt="image" src="https://github.com/user-attachments/assets/990f834f-3d97-4ee8-9c24-01cc188b7be6">
#### Does this PR introduce a user-facing change?
```release-note
为系统默认的存储策略添加保护措施,不允许删除。
```
#### What type of PR is this?
/area ui
/kind improvement
/milestone 2.18.x
#### What this PR does / why we need it:
修改附件选择组件的默认显示数量,以解决因为图片数量过多或者图片过大导致的卡顿问题。
#### Which issue(s) this PR fixes:
Ref https://github.com/halo-dev/halo/issues/6352
#### Does this PR introduce a user-facing change?
```release-note
修改附件选择组件的默认显示数量,以解决因为图片数量过多或者图片过大导致的卡顿问题。
```
#### What type of PR is this?
/area ui
/kind improvement
/milestone 2.17.x
#### What this PR does / why we need it:
重新组织和固定 UI 部分代码的 imports 导入,防止后续因为 imports 的顺序造成不必要的 diff。
基于:https://github.com/halo-dev/halo/pull/6151
#### Does this PR introduce a user-facing change?
```release-note
None
```
#### What type of PR is this?
/area ui
/kind improvement
/milestone 2.17.x
#### What this PR does / why we need it:
使用新的 [patch](https://github.com/halo-dev/halo/pull/6031) 接口重构附件的移动功能。
#### Special notes for your reviewer:
1. 测试附件移动至其他分组的功能是否正常。
2. 测试删除附件分组,选择 **删除并将附件移动至未分组** 选项,观察删除分组之后,其中的附件是否已经移动到未分组。
#### Does this PR introduce a user-facing change?
```release-note
None
```
#### What type of PR is this?
/area ui
/kind bug
/milestone 2.17.x
#### What this PR does / why we need it:
修复首次上传附件时,没有默认选择第一个存储策略的问题。
#### Which issue(s) this PR fixes:
Fixes https://github.com/halo-dev/halo/issues/6094
#### Does this PR introduce a user-facing change?
```release-note
修复首次上传附件时,没有默认选择第一个存储策略的问题。
```
#### What type of PR is this?
/area ui
/kind cleanup
/milestone 2.16.x
#### What this PR does / why we need it:
规范 api client 的方法名,之前生成的 api client 的方法名没有完全遵循驼峰命名。
#### Which issue(s) this PR fixes:
Close https://github.com/halo-dev/halo/issues/5716
#### Special notes for your reviewer:
CI 通过即可。
#### Does this PR introduce a user-facing change?
```release-note
None
```