@robot-admin/naive-ui-components 0.14.3 → 0.16.0

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.
Files changed (254) hide show
  1. package/CHANGELOG.md +35 -0
  2. package/README.md +130 -741
  3. package/README_EN.md +137 -678
  4. package/dist/C_ActionBar.css +57 -58
  5. package/dist/C_ActionBar2.cjs +1 -1
  6. package/dist/C_ActionBar2.js +1 -1
  7. package/dist/C_AntV.css +232 -238
  8. package/dist/C_AntV2.cjs +2 -2
  9. package/dist/C_AntV2.js +2 -2
  10. package/dist/C_AudioPlayer.css +9 -9
  11. package/dist/C_AvatarGroup.css +5 -6
  12. package/dist/C_Barcode.css +1 -1
  13. package/dist/C_Breadcrumb.css +15 -18
  14. package/dist/C_Breadcrumb2.cjs +1 -1
  15. package/dist/C_Breadcrumb2.js +1 -1
  16. package/dist/C_Captcha.css +46 -49
  17. package/dist/C_Captcha2.cjs +1 -1
  18. package/dist/C_Captcha2.js +1 -1
  19. package/dist/C_Cascade.css +5 -6
  20. package/dist/C_Chat.css +8 -8
  21. package/dist/C_City.css +2 -2
  22. package/dist/C_Code.css +9 -9
  23. package/dist/C_CollapsePanel.css +9 -9
  24. package/dist/C_ContextMenu.css +31 -31
  25. package/dist/C_Cron.css +271 -274
  26. package/dist/C_Date.css +1 -1
  27. package/dist/C_Draggable.css +10 -11
  28. package/dist/C_Editor.css +2 -2
  29. package/dist/C_FilePreview.css +423 -423
  30. package/dist/C_Form.base.css +608 -602
  31. package/dist/C_Form.cjs +1 -1
  32. package/dist/C_Form.css +610 -604
  33. package/dist/C_Form.d.cts +2 -2
  34. package/dist/C_Form.d.ts +2 -2
  35. package/dist/C_Form.js +1 -1
  36. package/dist/C_FormModal.cjs +1 -1
  37. package/dist/C_FormModal.css +12 -17
  38. package/dist/C_FormModal.js +1 -1
  39. package/dist/C_FormModal2.cjs +1 -1
  40. package/dist/C_FormModal2.js +1 -1
  41. package/dist/C_FormSearch.css +53 -55
  42. package/dist/C_FormSearch2.cjs +1 -1
  43. package/dist/C_FormSearch2.js +1 -1
  44. package/dist/C_FormulaEditor.css +204 -205
  45. package/dist/C_FullCalendar.css +13 -15
  46. package/dist/C_FullCalendar2.cjs +1 -1
  47. package/dist/C_FullCalendar2.js +1 -1
  48. package/dist/C_GlobalSearch.css +11 -12
  49. package/dist/C_Guide.css +10 -10
  50. package/dist/C_Icon.css +7 -8
  51. package/dist/C_ImageCropper.css +69 -69
  52. package/dist/C_Language.css +8 -8
  53. package/dist/C_Loading.css +22 -25
  54. package/dist/C_Loading2.cjs +1 -1
  55. package/dist/C_Loading2.js +1 -1
  56. package/dist/C_Login.css +130 -135
  57. package/dist/C_Login2.cjs +1 -1
  58. package/dist/C_Login2.js +1 -1
  59. package/dist/C_Map.css +22 -23
  60. package/dist/C_Markdown.css +6 -7
  61. package/dist/C_Menu.css +2 -5
  62. package/dist/C_Menu2.cjs +1 -1
  63. package/dist/C_Menu2.js +1 -1
  64. package/dist/C_NotificationCenter.css +316 -281
  65. package/dist/C_NotificationCenter.d.cts +2 -2
  66. package/dist/C_NotificationCenter.d.ts +2 -2
  67. package/dist/C_NotificationCenter2.cjs +1 -1
  68. package/dist/C_NotificationCenter2.js +1 -1
  69. package/dist/C_OrgChart.css +8 -8
  70. package/dist/C_PageLoading.css +34 -39
  71. package/dist/C_QRCode.css +5 -6
  72. package/dist/C_Signature.css +5 -6
  73. package/dist/C_Skeleton.css +2 -2
  74. package/dist/C_SplitPane.css +2 -2
  75. package/dist/C_Steps.css +5 -6
  76. package/dist/C_Table.base.css +1090 -879
  77. package/dist/C_Table.cjs +1 -1
  78. package/dist/C_Table.css +1096 -885
  79. package/dist/C_Table.d.cts +1 -1
  80. package/dist/C_Table.d.ts +1 -1
  81. package/dist/C_Table.js +1 -1
  82. package/dist/C_Tabs.css +5 -6
  83. package/dist/C_TagsView.css +60 -63
  84. package/dist/C_TagsView2.cjs +1 -1
  85. package/dist/C_TagsView2.js +1 -1
  86. package/dist/C_Theme.css +7 -8
  87. package/dist/C_Time.css +1 -1
  88. package/dist/C_Timeline.css +8 -8
  89. package/dist/C_Transfer.css +10 -11
  90. package/dist/C_Tree.css +16 -17
  91. package/dist/C_Upload.css +156 -157
  92. package/dist/C_VideoPlayer.css +267 -267
  93. package/dist/C_VtableGantt.css +2 -2
  94. package/dist/C_WaterFall.css +2 -2
  95. package/dist/C_WorkFlow.css +466 -470
  96. package/dist/C_WorkFlow2.cjs +1 -1
  97. package/dist/C_WorkFlow2.js +1 -1
  98. package/dist/Card.cjs +1 -0
  99. package/dist/Card.js +1 -0
  100. package/dist/Custom.cjs +1 -0
  101. package/dist/Custom.js +1 -0
  102. package/dist/Dynamic.cjs +1 -0
  103. package/dist/Dynamic.js +1 -0
  104. package/dist/Steps.cjs +1 -0
  105. package/dist/Steps.js +1 -0
  106. package/dist/Tabs.cjs +1 -0
  107. package/dist/Tabs.js +1 -0
  108. package/dist/cascader.cjs +1 -0
  109. package/dist/cascader.js +1 -0
  110. package/dist/color-picker.cjs +1 -0
  111. package/dist/color-picker.js +1 -0
  112. package/dist/constants3.d.cts +71 -117
  113. package/dist/constants3.d.ts +71 -117
  114. package/dist/constants4.d.cts +3 -3
  115. package/dist/constants4.d.ts +3 -3
  116. package/dist/constants5.d.cts +2 -2
  117. package/dist/constants5.d.ts +2 -2
  118. package/dist/context.cjs +1 -0
  119. package/dist/context.js +1 -0
  120. package/dist/contracts.d.cts +24 -0
  121. package/dist/contracts.d.ts +24 -0
  122. package/dist/createPageLoading.cjs +1 -1
  123. package/dist/createPageLoading.js +1 -1
  124. package/dist/data.cjs +1 -1
  125. package/dist/data.d.cts +9 -9
  126. package/dist/data.d.ts +9 -9
  127. package/dist/data.js +1 -1
  128. package/dist/date-picker.cjs +1 -0
  129. package/dist/date-picker.js +1 -0
  130. package/dist/feedback.cjs +1 -0
  131. package/dist/feedback.js +1 -0
  132. package/dist/helpers.cjs +1 -1
  133. package/dist/helpers.js +1 -1
  134. package/dist/index.cjs +1 -1
  135. package/dist/index.d.cts +7 -5
  136. package/dist/index.d.ts +7 -5
  137. package/dist/index.js +1 -1
  138. package/dist/index.vue.d.cts +5 -5
  139. package/dist/index.vue.d.ts +5 -5
  140. package/dist/index10.vue.d.cts +5 -5
  141. package/dist/index10.vue.d.ts +3 -3
  142. package/dist/index11.vue.d.cts +3 -3
  143. package/dist/index11.vue.d.ts +2 -2
  144. package/dist/index12.vue.d.cts +2 -2
  145. package/dist/index12.vue.d.ts +1 -1
  146. package/dist/index13.vue.d.cts +1 -1
  147. package/dist/index14.vue.d.ts +9 -9
  148. package/dist/index15.vue.d.cts +9 -9
  149. package/dist/index15.vue.d.ts +1 -1
  150. package/dist/index16.vue.d.cts +1 -1
  151. package/dist/index18.vue.d.ts +4 -4
  152. package/dist/index19.vue.d.cts +4 -4
  153. package/dist/index19.vue.d.ts +2 -9
  154. package/dist/index2.vue.d.cts +2 -2
  155. package/dist/index2.vue.d.ts +2 -2
  156. package/dist/index20.vue.d.cts +1 -1
  157. package/dist/index20.vue.d.ts +1 -1
  158. package/dist/index21.vue.d.cts +2 -2
  159. package/dist/index21.vue.d.ts +2 -2
  160. package/dist/index22.vue.d.cts +1 -1
  161. package/dist/index22.vue.d.ts +1 -1
  162. package/dist/index23.vue.d.cts +1 -1
  163. package/dist/index23.vue.d.ts +1 -1
  164. package/dist/index25.vue.d.cts +4 -4
  165. package/dist/index25.vue.d.ts +4 -4
  166. package/dist/index26.vue.d.cts +1 -1
  167. package/dist/index26.vue.d.ts +1 -1
  168. package/dist/index27.vue.d.cts +5 -5
  169. package/dist/index27.vue.d.ts +5 -5
  170. package/dist/index28.vue.d.cts +3 -3
  171. package/dist/index28.vue.d.ts +3 -3
  172. package/dist/index3.vue.d.cts +3 -3
  173. package/dist/index3.vue.d.ts +3 -3
  174. package/dist/index4.vue.d.cts +2 -9
  175. package/dist/index6.vue.d.ts +4 -4
  176. package/dist/index7.vue.d.cts +4 -4
  177. package/dist/index8.vue.d.ts +3 -3
  178. package/dist/index9.vue.d.cts +3 -3
  179. package/dist/index9.vue.d.ts +5 -5
  180. package/dist/mapUtils.d.cts +5 -5
  181. package/dist/mapUtils.d.ts +5 -5
  182. package/dist/presets.d.cts +8 -2
  183. package/dist/presets.d.ts +8 -2
  184. package/dist/rate.cjs +1 -0
  185. package/dist/rate.js +1 -0
  186. package/dist/slider.cjs +1 -0
  187. package/dist/slider.js +1 -0
  188. package/dist/style.css +10725 -10722
  189. package/dist/time-picker.cjs +1 -0
  190. package/dist/time-picker.js +1 -0
  191. package/dist/upload.cjs +1 -0
  192. package/dist/upload.js +1 -0
  193. package/dist/useActionTask.cjs +1 -0
  194. package/dist/useActionTask.js +1 -0
  195. package/dist/useCalendarEvents.d.cts +2 -2
  196. package/dist/useCalendarEvents.d.ts +2 -2
  197. package/dist/useCollapsePanel.d.cts +5 -5
  198. package/dist/useCollapsePanel.d.ts +5 -5
  199. package/dist/useComponentLocale.cjs +1 -0
  200. package/dist/useComponentLocale.js +1 -0
  201. package/dist/useCropperCore.d.cts +8 -8
  202. package/dist/useCropperCore.d.ts +8 -8
  203. package/dist/useDraggableLayout.d.cts +9 -9
  204. package/dist/useDraggableLayout.d.ts +9 -9
  205. package/dist/useDynamicFormState.cjs +1 -0
  206. package/dist/useDynamicFormState.d.cts +64 -40
  207. package/dist/useDynamicFormState.d.ts +64 -40
  208. package/dist/useDynamicFormState.js +1 -0
  209. package/dist/useEdgeInteraction.d.cts +2 -2
  210. package/dist/useEdgeInteraction.d.ts +2 -2
  211. package/dist/useQRCode.d.cts +2 -2
  212. package/dist/useQRCode.d.ts +2 -2
  213. package/dist/useSearchState.d.cts +14 -724
  214. package/dist/useSearchState.d.ts +14 -833
  215. package/dist/useSignatureHistory.d.cts +3 -3
  216. package/dist/useSignatureHistory.d.ts +3 -3
  217. package/dist/useSplitResize.d.cts +5 -5
  218. package/dist/useSplitResize.d.ts +5 -5
  219. package/dist/useTableQuery.cjs +3 -3
  220. package/dist/useTableQuery.d.cts +66 -33
  221. package/dist/useTableQuery.d.ts +66 -33
  222. package/dist/useTableQuery.js +3 -3
  223. package/dist/useTimeSelection.d.cts +2 -2
  224. package/dist/useTimeSelection.d.ts +2 -2
  225. package/dist/useTreeOperations.d.cts +7 -7
  226. package/dist/useTreeOperations.d.ts +7 -7
  227. package/dist/useWorkflowValidation.d.cts +5 -5
  228. package/dist/useWorkflowValidation.d.ts +5 -5
  229. package/dist/verification.d.cts +1 -1
  230. package/dist/verification.d.ts +1 -1
  231. package/docs/architecture.en.md +83 -0
  232. package/docs/architecture.md +83 -0
  233. package/docs/assets/README.md +47 -0
  234. package/docs/assets/naive-ui-components-banner.png +0 -0
  235. package/docs/assets/naive-ui-components-banner.svg +69 -0
  236. package/docs/assets/naive-ui-components-logo.png +0 -0
  237. package/docs/assets/naive-ui-components-logo.svg +22 -0
  238. package/docs/components.en.md +118 -0
  239. package/docs/components.md +118 -0
  240. package/docs/engineering.en.md +132 -0
  241. package/docs/engineering.md +133 -0
  242. package/docs/guides/notification-center.md +95 -0
  243. package/docs/guides/usage.en.md +638 -0
  244. package/docs/guides/usage.md +699 -0
  245. package/docs/performance-0.15.0.md +20 -0
  246. package/docs/security-scan-2026-10-06.md +11 -0
  247. package/docs/security-scan-2026-10-18.md +16 -0
  248. package/package.json +29 -11
  249. package/dist/C_Form2.cjs +0 -1
  250. package/dist/C_Form2.js +0 -1
  251. package/dist/config.cjs +0 -1
  252. package/dist/config.d.cts +0 -33
  253. package/dist/config.d.ts +0 -33
  254. package/dist/config.js +0 -1
@@ -1,138 +1,6 @@
1
1
  :root{--c-primary: var(--primary-color, #2080f0);--c-primary-hover: var(--primary-color-hover, #4098fc);--c-primary-pressed: var(--primary-color-pressed, #1060c9);--c-success: var(--success-color, #18a058);--c-warning: var(--warning-color, #f0a020);--c-error: var(--error-color, #d03050);--c-info: var(--info-color, #2080f0);--c-bg-body: var(--body-color, #ffffff);--c-bg-card: var(--card-color, #ffffff);--c-bg-surface: var(--popover-color, #ffffff);--c-text-1: var(--text-color-1, #262626);--c-text-2: var(--text-color-2, #525252);--c-text-3: var(--text-color-3, #a3a3a3);--c-text-4: var(--text-color-4, #c0c0c0);--c-border: var(--border-color, #e5e7eb);--c-radius-sm: var(--border-radius-small, 4px);--c-radius: var(--border-radius, 6px);--c-transition-fast: 0.15s cubic-bezier(0.4, 0, 0.2, 1);--c-transition-base: 0.3s cubic-bezier(0.4, 0, 0.2, 1);--c-shadow-sm: 0 1px 3px rgba(0, 0, 0, 0.08);--c-shadow-md: 0 4px 6px rgba(0, 0, 0, 0.1);--c-shadow-lg: 0 10px 15px rgba(0, 0, 0, 0.1)}
2
2
 
3
- /* unplugin-vue-components disabled */
4
- /* layer: default */
5
- .flex[data-v-a06c4b3a]{display:flex;}
6
- .inline-flex[data-v-a06c4b3a]{display:inline-flex;}
7
- .transform[data-v-a06c4b3a]{transform:translateX(var(--un-translate-x)) translateY(var(--un-translate-y)) translateZ(var(--un-translate-z)) rotate(var(--un-rotate)) rotateX(var(--un-rotate-x)) rotateY(var(--un-rotate-y)) rotateZ(var(--un-rotate-z)) skewX(var(--un-skew-x)) skewY(var(--un-skew-y)) scaleX(var(--un-scale-x)) scaleY(var(--un-scale-y)) scaleZ(var(--un-scale-z));}
8
- .transition[data-v-a06c4b3a]{transition-property:color,background-color,border-color,text-decoration-color,fill,stroke,opacity,box-shadow,transform,filter,backdrop-filter;transition-timing-function:cubic-bezier(0.4, 0, 0.2, 1);transition-duration:150ms;}
9
- .ease-in[data-v-a06c4b3a]{transition-timing-function:cubic-bezier(0.4, 0, 1, 1);}
10
- .ease-in-out[data-v-a06c4b3a]{transition-timing-function:cubic-bezier(0.4, 0, 0.2, 1);}
11
- .ease-out[data-v-a06c4b3a]{transition-timing-function:cubic-bezier(0, 0, 0.2, 1);}
12
-
13
- /* unplugin-vue-components disabled *//*
14
- * NPopover 的 content-class 样式需要在组件外部生效,
15
- * 因为 NPopover 将内容渲染到 teleport 容器中,scoped 样式无法覆盖。
16
- */
17
- .c-notification-center__popover {
18
- /*
19
- * Popover 被 Teleport 到 body 后无法继承触发器作用域内的 --c-*。
20
- * 直接桥接 NPopover 自身随主题注入的变量,确保明暗主题自动适配。
21
- */
22
- --c-bg-card: var(--n-color, #fff);
23
- --c-bg-surface: var(--n-color, #fff);
24
- --c-text-1: var(--n-text-color, #262626);
25
- --c-text-2: color-mix(
26
- in srgb,
27
- var(--n-text-color, #262626) 68%,
28
- transparent
29
- );
30
- --c-text-3: color-mix(
31
- in srgb,
32
- var(--n-text-color, #262626) 50%,
33
- transparent
34
- );
35
- --c-text-4: color-mix(
36
- in srgb,
37
- var(--n-text-color, #262626) 36%,
38
- transparent
39
- );
40
- --c-border: color-mix(
41
- in srgb,
42
- var(--n-text-color, #262626) 14%,
43
- transparent
44
- );
45
- color: var(--n-text-color);
46
- background-color: var(--n-color);
47
- padding: 0 !important;
48
- border-radius: 12px !important;
49
- overflow: hidden;
50
- box-shadow: var(--c-shadow, 0 12px 32px rgba(0, 0, 0, 0.1)) !important;
51
- }
52
- /* unplugin-vue-components disabled */.c-notification-center[data-v-a06c4b3a] {
53
- display: inline-flex;
54
- align-items: center;
55
- }
56
- .c-notification-center__panel[data-v-a06c4b3a] {
57
- display: flex;
58
- flex-direction: column;
59
- max-height: 560px;
60
- }
61
- .c-notification-center__header[data-v-a06c4b3a] {
62
- display: flex;
63
- align-items: center;
64
- justify-content: space-between;
65
- padding: 14px 16px 10px;
66
- border-bottom: 1px solid var(--c-border);
67
- }
68
- .c-notification-center__title[data-v-a06c4b3a] {
69
- font-size: 15px;
70
- font-weight: 600;
71
- color: var(--c-text-1);
72
- }
73
- .c-notification-center__header-extra[data-v-a06c4b3a] {
74
- display: flex;
75
- align-items: center;
76
- gap: 8px;
77
- }
78
- .c-notification-center__ws-dot[data-v-a06c4b3a] {
79
- width: 8px;
80
- height: 8px;
81
- border-radius: 50%;
82
- transition: background-color var(--c-transition, 0.2s ease);
83
- }
84
- .c-notification-center__ws-dot--connected[data-v-a06c4b3a] {
85
- background: #52c41a;
86
- box-shadow: 0 0 4px rgba(82, 196, 26, 0.5);
87
- }
88
- .c-notification-center__ws-dot--connecting[data-v-a06c4b3a], .c-notification-center__ws-dot--reconnecting[data-v-a06c4b3a] {
89
- background: #faad14;
90
- animation: status-blink-a06c4b3a 1s ease-in-out infinite;
91
- }
92
- .c-notification-center__ws-dot--disconnected[data-v-a06c4b3a] {
93
- background: var(--c-text-4);
94
- }
95
- @keyframes status-blink-a06c4b3a {
96
- 0%, 100% {
97
- opacity: 1;
98
- }
99
- 50% {
100
- opacity: 0.3;
101
- }
102
- }
103
- /* ─── 切换过渡 ───────────────────────────────── */
104
- .slide-fade-enter-active[data-v-a06c4b3a] {
105
- transition: all 0.25s ease-out;
106
- }
107
- .slide-fade-leave-active[data-v-a06c4b3a] {
108
- transition: all 0.2s ease-in;
109
- }
110
- .slide-fade-enter-from[data-v-a06c4b3a] {
111
- opacity: 0;
112
- transform: translateY(8px);
113
- }
114
- .slide-fade-leave-to[data-v-a06c4b3a] {
115
- opacity: 0;
116
- transform: translateY(-8px);
117
- }
118
- /* unplugin-vue-components disabled */
119
- /* layer: default */
120
- .absolute[data-v-51516250]{position:absolute;}
121
- .relative[data-v-51516250]{position:relative;}
122
- .inline-flex[data-v-51516250]{display:inline-flex;}
123
- .transform[data-v-51516250]{transform:translateX(var(--un-translate-x)) translateY(var(--un-translate-y)) translateZ(var(--un-translate-z)) rotate(var(--un-rotate)) rotateX(var(--un-rotate-x)) rotateY(var(--un-rotate-y)) rotateZ(var(--un-rotate-z)) skewX(var(--un-skew-x)) skewY(var(--un-skew-y)) scaleX(var(--un-scale-x)) scaleY(var(--un-scale-y)) scaleZ(var(--un-scale-z));}
124
- .border[data-v-51516250]{border-width:1px;}
125
- .outline[data-v-51516250]{outline-style:solid;}
126
- .transition[data-v-51516250]{transition-property:color,background-color,border-color,text-decoration-color,fill,stroke,opacity,box-shadow,transform,filter,backdrop-filter;transition-timing-function:cubic-bezier(0.4, 0, 0.2, 1);transition-duration:150ms;}
127
- .ease[data-v-51516250]{transition-timing-function:cubic-bezier(0.4, 0, 0.2, 1);}
128
-
129
- /* unplugin-vue-components disabled */
130
- /* layer: default */
131
- .flex[data-v-8e02b6cd]{display:flex;}
132
- .flex-wrap[data-v-8e02b6cd]{flex-wrap:wrap;}
133
- .px[data-v-8e02b6cd]{padding-left:1rem;padding-right:1rem;}
134
-
135
- /* unplugin-vue-components disabled */.notification-badge[data-v-51516250] {
3
+ .notification-badge[data-v-51516250] {
136
4
  position: relative;
137
5
  display: inline-flex;
138
6
  align-items: center;
@@ -221,7 +89,18 @@
221
89
  opacity: 1;
222
90
  }
223
91
  }
224
- /* unplugin-vue-components disabled */.notification-detail[data-v-8e02b6cd] {
92
+
93
+ /* layer: default */
94
+ .absolute[data-v-51516250]{position:absolute;}
95
+ .relative[data-v-51516250]{position:relative;}
96
+ .inline-flex[data-v-51516250]{display:inline-flex;}
97
+ .transform[data-v-51516250]{transform:translateX(var(--un-translate-x)) translateY(var(--un-translate-y)) translateZ(var(--un-translate-z)) rotate(var(--un-rotate)) rotateX(var(--un-rotate-x)) rotateY(var(--un-rotate-y)) rotateZ(var(--un-rotate-z)) skewX(var(--un-skew-x)) skewY(var(--un-skew-y)) scaleX(var(--un-scale-x)) scaleY(var(--un-scale-y)) scaleZ(var(--un-scale-z));}
98
+ .border[data-v-51516250]{border-width:1px;}
99
+ .outline[data-v-51516250]{outline-style:solid;}
100
+ .transition[data-v-51516250]{transition-property:color,background-color,border-color,text-decoration-color,fill,stroke,opacity,box-shadow,transform,filter,backdrop-filter;transition-timing-function:cubic-bezier(0.4, 0, 0.2, 1);transition-duration:150ms;}
101
+ .ease[data-v-51516250]{transition-timing-function:cubic-bezier(0.4, 0, 0.2, 1);}
102
+
103
+ .notification-detail[data-v-8e02b6cd] {
225
104
  display: flex;
226
105
  flex-direction: column;
227
106
  height: 100%;
@@ -291,127 +170,13 @@
291
170
  display: flex;
292
171
  justify-content: flex-end;
293
172
  }
294
- /* unplugin-vue-components disabled */
295
- /* layer: default */
296
- .absolute[data-v-d366768f]{position:absolute;}
297
- .relative[data-v-d366768f]{position:relative;}
298
- .flex[data-v-d366768f]{display:flex;}
299
- .px[data-v-d366768f]{padding-left:1rem;padding-right:1rem;}
300
- .tab[data-v-d366768f]{-moz-tab-size:4;-o-tab-size:4;tab-size:4;}
301
- .transition[data-v-d366768f]{transition-property:color,background-color,border-color,text-decoration-color,fill,stroke,opacity,box-shadow,transform,filter,backdrop-filter;transition-timing-function:cubic-bezier(0.4, 0, 0.2, 1);transition-duration:150ms;}
302
173
 
303
- /* unplugin-vue-components disabled */.notification-list__tabs[data-v-d366768f] {
304
- display: flex;
305
- border-bottom: 1px solid var(--c-border);
306
- padding: 0 4px;
307
- }
308
- .notification-list__tab[data-v-d366768f] {
309
- position: relative;
310
- display: flex;
311
- align-items: center;
312
- gap: 4px;
313
- padding: 10px 12px;
314
- font-size: 13px;
315
- color: var(--c-text-2);
316
- cursor: pointer;
317
- transition: all var(--c-transition, 0.2s ease);
318
- user-select: none;
319
- }
320
- .notification-list__tab[data-v-d366768f]::after {
321
- content: "";
322
- position: absolute;
323
- bottom: 0;
324
- left: 12px;
325
- right: 12px;
326
- height: 2px;
327
- background: transparent;
328
- border-radius: 1px;
329
- transition: background var(--c-transition, 0.2s ease);
330
- }
331
- .notification-list__tab[data-v-d366768f]:hover {
332
- color: var(--c-text-1);
333
- }
334
- .notification-list__tab--active[data-v-d366768f] {
335
- color: var(--c-primary);
336
- font-weight: 500;
337
- }
338
- .notification-list__tab--active[data-v-d366768f]::after {
339
- background: var(--c-primary);
340
- }
341
- .notification-list__tab-count[data-v-d366768f] {
342
- min-width: 16px;
343
- height: 16px;
344
- padding: 0 4px;
345
- border-radius: 8px;
346
- background: #f5222d;
347
- color: #fff;
348
- font-size: 10px;
349
- font-weight: 600;
350
- line-height: 16px;
351
- text-align: center;
352
- }
353
- .notification-list__toolbar[data-v-d366768f] {
354
- display: flex;
355
- align-items: center;
356
- justify-content: flex-end;
357
- gap: 12px;
358
- padding: 6px 16px;
359
- border-bottom: 1px solid var(--c-border);
360
- }
361
- .notification-list__scroll[data-v-d366768f] {
362
- flex: 1;
363
- }
364
- .notification-list__skeleton[data-v-d366768f] {
365
- display: flex;
366
- align-items: flex-start;
367
- gap: 12px;
368
- padding: 14px 16px;
369
- }
370
- .notification-list__skeleton-text[data-v-d366768f] {
371
- flex: 1;
372
- display: flex;
373
- flex-direction: column;
374
- gap: 8px;
375
- }
376
- .notification-list__load-more[data-v-d366768f] {
377
- display: flex;
378
- align-items: center;
379
- justify-content: center;
380
- gap: 6px;
381
- padding: 12px;
382
- font-size: 12px;
383
- color: var(--c-text-2);
384
- cursor: pointer;
385
- transition: color var(--c-transition, 0.2s ease);
386
- }
387
- .notification-list__load-more[data-v-d366768f]:hover {
388
- color: var(--c-primary);
389
- }
390
- .notification-list__empty[data-v-d366768f] {
391
- display: flex;
392
- flex-direction: column;
393
- align-items: center;
394
- justify-content: center;
395
- padding: 60px 0;
396
- gap: 12px;
397
- }
398
- .notification-list__empty-icon[data-v-d366768f] {
399
- color: var(--c-text-4);
400
- opacity: 0.5;
401
- }
402
- .notification-list__empty-text[data-v-d366768f] {
403
- font-size: 13px;
404
- color: var(--c-text-4);
405
- }
406
- /* unplugin-vue-components disabled */
407
174
  /* layer: default */
408
- .hidden[data-v-2f1c8e96]{display:none;}
409
- .flex[data-v-2f1c8e96]{display:flex;}
410
- .inline-flex[data-v-2f1c8e96]{display:inline-flex;}
411
- .flex-shrink[data-v-2f1c8e96]{flex-shrink:1;}
412
- .transition[data-v-2f1c8e96]{transition-property:color,background-color,border-color,text-decoration-color,fill,stroke,opacity,box-shadow,transform,filter,backdrop-filter;transition-timing-function:cubic-bezier(0.4, 0, 0.2, 1);transition-duration:150ms;}
175
+ .flex[data-v-8e02b6cd]{display:flex;}
176
+ .flex-wrap[data-v-8e02b6cd]{flex-wrap:wrap;}
177
+ .px[data-v-8e02b6cd]{padding-left:1rem;padding-right:1rem;}
413
178
 
414
- /* unplugin-vue-components disabled */.notification-item[data-v-2f1c8e96] {
179
+ .notification-item[data-v-8a4522f3] {
415
180
  display: flex;
416
181
  align-items: flex-start;
417
182
  gap: 10px;
@@ -420,58 +185,58 @@
420
185
  transition: background-color var(--c-transition, 0.2s ease);
421
186
  border-bottom: 1px solid var(--c-border);
422
187
  }
423
- .notification-item[data-v-2f1c8e96]:last-child {
188
+ .notification-item[data-v-8a4522f3]:last-child {
424
189
  border-bottom: none;
425
190
  }
426
- .notification-item[data-v-2f1c8e96]:hover {
191
+ .notification-item[data-v-8a4522f3]:hover {
427
192
  background-color: var(--c-bg-card);
428
193
  }
429
- .notification-item:hover .notification-item__actions[data-v-2f1c8e96] {
194
+ .notification-item:hover .notification-item__actions[data-v-8a4522f3] {
430
195
  opacity: 1;
431
196
  }
432
- .notification-item--unread[data-v-2f1c8e96] {
197
+ .notification-item--unread[data-v-8a4522f3] {
433
198
  background-color: color-mix(in srgb, var(--c-primary) 4%, transparent);
434
199
  }
435
- .notification-item--unread[data-v-2f1c8e96]:hover {
200
+ .notification-item--unread[data-v-8a4522f3]:hover {
436
201
  background-color: color-mix(in srgb, var(--c-primary) 8%, transparent);
437
202
  }
438
- .notification-item--urgent[data-v-2f1c8e96] {
203
+ .notification-item--urgent[data-v-8a4522f3] {
439
204
  border-left: 3px solid #f5222d;
440
205
  padding-left: 13px;
441
206
  }
442
- .notification-item[data-v-2f1c8e96] {
207
+ .notification-item[data-v-8a4522f3] {
443
208
  /* ─── 子元素 ──────────────────────────── */
444
209
  }
445
- .notification-item__indicator[data-v-2f1c8e96] {
210
+ .notification-item__indicator[data-v-8a4522f3] {
446
211
  flex-shrink: 0;
447
212
  width: 8px;
448
213
  display: flex;
449
214
  align-items: center;
450
215
  padding-top: 14px;
451
216
  }
452
- .notification-item__dot[data-v-2f1c8e96] {
217
+ .notification-item__dot[data-v-8a4522f3] {
453
218
  width: 6px;
454
219
  height: 6px;
455
220
  border-radius: 50%;
456
221
  background: var(--c-primary);
457
222
  }
458
- .notification-item__dot--urgent[data-v-2f1c8e96] {
223
+ .notification-item__dot--urgent[data-v-8a4522f3] {
459
224
  background: #f5222d;
460
225
  box-shadow: 0 0 4px rgba(245, 34, 45, 0.5);
461
226
  }
462
- .notification-item__dot--high[data-v-2f1c8e96] {
227
+ .notification-item__dot--high[data-v-8a4522f3] {
463
228
  background: #fa8c16;
464
229
  }
465
- .notification-item__dot--normal[data-v-2f1c8e96] {
230
+ .notification-item__dot--normal[data-v-8a4522f3] {
466
231
  background: var(--c-primary);
467
232
  }
468
- .notification-item__dot--low[data-v-2f1c8e96] {
233
+ .notification-item__dot--low[data-v-8a4522f3] {
469
234
  background: var(--c-text-4);
470
235
  }
471
- .notification-item__avatar[data-v-2f1c8e96] {
236
+ .notification-item__avatar[data-v-8a4522f3] {
472
237
  flex-shrink: 0;
473
238
  }
474
- .notification-item__avatar-placeholder[data-v-2f1c8e96] {
239
+ .notification-item__avatar-placeholder[data-v-8a4522f3] {
475
240
  width: 36px;
476
241
  height: 36px;
477
242
  border-radius: 50%;
@@ -481,27 +246,27 @@
481
246
  font-size: 16px;
482
247
  color: #fff;
483
248
  }
484
- .notification-item__avatar-placeholder--system[data-v-2f1c8e96] {
249
+ .notification-item__avatar-placeholder--system[data-v-8a4522f3] {
485
250
  background: linear-gradient(135deg, #667eea, #764ba2);
486
251
  }
487
- .notification-item__avatar-placeholder--business[data-v-2f1c8e96] {
252
+ .notification-item__avatar-placeholder--business[data-v-8a4522f3] {
488
253
  background: linear-gradient(135deg, #43e97b, #38f9d7);
489
254
  color: #0d1425;
490
255
  }
491
- .notification-item__avatar-placeholder--alarm[data-v-2f1c8e96] {
256
+ .notification-item__avatar-placeholder--alarm[data-v-8a4522f3] {
492
257
  background: linear-gradient(135deg, #f093fb, #f5576c);
493
258
  }
494
- .notification-item__body[data-v-2f1c8e96] {
259
+ .notification-item__body[data-v-8a4522f3] {
495
260
  flex: 1;
496
261
  min-width: 0;
497
262
  }
498
- .notification-item__header[data-v-2f1c8e96] {
263
+ .notification-item__header[data-v-8a4522f3] {
499
264
  display: flex;
500
265
  align-items: center;
501
266
  gap: 6px;
502
267
  margin-bottom: 4px;
503
268
  }
504
- .notification-item__title[data-v-2f1c8e96] {
269
+ .notification-item__title[data-v-8a4522f3] {
505
270
  font-size: 13px;
506
271
  font-weight: 500;
507
272
  color: var(--c-text-1);
@@ -510,7 +275,7 @@
510
275
  text-overflow: ellipsis;
511
276
  white-space: nowrap;
512
277
  }
513
- .notification-item__summary[data-v-2f1c8e96] {
278
+ .notification-item__summary[data-v-8a4522f3] {
514
279
  font-size: 12px;
515
280
  color: var(--c-text-2);
516
281
  line-height: 1.5;
@@ -520,21 +285,21 @@
520
285
  -webkit-box-orient: vertical;
521
286
  overflow: hidden;
522
287
  }
523
- .notification-item__meta[data-v-2f1c8e96] {
288
+ .notification-item__meta[data-v-8a4522f3] {
524
289
  display: flex;
525
290
  align-items: center;
526
291
  gap: 8px;
527
292
  margin-top: 6px;
528
293
  }
529
- .notification-item__time[data-v-2f1c8e96], .notification-item__sender[data-v-2f1c8e96] {
294
+ .notification-item__time[data-v-8a4522f3], .notification-item__sender[data-v-8a4522f3] {
530
295
  font-size: 11px;
531
296
  color: var(--c-text-4);
532
297
  }
533
- .notification-item__sender[data-v-2f1c8e96]::before {
298
+ .notification-item__sender[data-v-8a4522f3]::before {
534
299
  content: "·";
535
300
  margin-right: 8px;
536
301
  }
537
- .notification-item__actions[data-v-2f1c8e96] {
302
+ .notification-item__actions[data-v-8a4522f3] {
538
303
  flex-shrink: 0;
539
304
  display: flex;
540
305
  align-items: center;
@@ -542,7 +307,10 @@
542
307
  opacity: 0;
543
308
  transition: opacity var(--c-transition, 0.2s ease);
544
309
  }
545
- .notification-item__action[data-v-2f1c8e96] {
310
+ .notification-item__action[data-v-8a4522f3] {
311
+ appearance: none;
312
+ border: 0;
313
+ background: transparent;
546
314
  display: inline-flex;
547
315
  align-items: center;
548
316
  justify-content: center;
@@ -554,7 +322,274 @@
554
322
  color: var(--c-text-4);
555
323
  transition: all var(--c-transition, 0.2s ease);
556
324
  }
557
- .notification-item__action[data-v-2f1c8e96]:hover {
325
+ .notification-item__action[data-v-8a4522f3]:hover {
558
326
  color: var(--c-primary);
559
327
  background-color: var(--c-border);
560
- }
328
+ }
329
+ .notification-item__action[data-v-8a4522f3]:disabled {
330
+ cursor: wait;
331
+ opacity: 0.45;
332
+ }
333
+
334
+ /* layer: default */
335
+ .hidden[data-v-8a4522f3]{display:none;}
336
+ .flex[data-v-8a4522f3]{display:flex;}
337
+ .inline-flex[data-v-8a4522f3]{display:inline-flex;}
338
+ .flex-shrink[data-v-8a4522f3]{flex-shrink:1;}
339
+ .border[data-v-8a4522f3]{border-width:1px;}
340
+ .transition[data-v-8a4522f3]{transition-property:color,background-color,border-color,text-decoration-color,fill,stroke,opacity,box-shadow,transform,filter,backdrop-filter;transition-timing-function:cubic-bezier(0.4, 0, 0.2, 1);transition-duration:150ms;}
341
+
342
+ .notification-list__tabs[data-v-63a2d867] {
343
+ display: flex;
344
+ border-bottom: 1px solid var(--c-border);
345
+ padding: 0 4px;
346
+ }
347
+ .notification-list__tab[data-v-63a2d867] {
348
+ appearance: none;
349
+ border: 0;
350
+ background: transparent;
351
+ font-family: inherit;
352
+ position: relative;
353
+ display: flex;
354
+ align-items: center;
355
+ gap: 4px;
356
+ padding: 10px 12px;
357
+ font-size: 13px;
358
+ color: var(--c-text-2);
359
+ cursor: pointer;
360
+ transition: all var(--c-transition, 0.2s ease);
361
+ user-select: none;
362
+ }
363
+ .notification-list__tab[data-v-63a2d867]::after {
364
+ content: "";
365
+ position: absolute;
366
+ bottom: 0;
367
+ left: 12px;
368
+ right: 12px;
369
+ height: 2px;
370
+ background: transparent;
371
+ border-radius: 1px;
372
+ transition: background var(--c-transition, 0.2s ease);
373
+ }
374
+ .notification-list__tab[data-v-63a2d867]:hover {
375
+ color: var(--c-text-1);
376
+ }
377
+ .notification-list__tab--active[data-v-63a2d867] {
378
+ color: var(--c-primary);
379
+ font-weight: 500;
380
+ }
381
+ .notification-list__tab--active[data-v-63a2d867]::after {
382
+ background: var(--c-primary);
383
+ }
384
+ .notification-list__tab-count[data-v-63a2d867] {
385
+ min-width: 16px;
386
+ height: 16px;
387
+ padding: 0 4px;
388
+ border-radius: 8px;
389
+ background: #f5222d;
390
+ color: #fff;
391
+ font-size: 10px;
392
+ font-weight: 600;
393
+ line-height: 16px;
394
+ text-align: center;
395
+ }
396
+ .notification-list__toolbar[data-v-63a2d867] {
397
+ display: flex;
398
+ align-items: center;
399
+ justify-content: flex-end;
400
+ gap: 12px;
401
+ padding: 6px 16px;
402
+ border-bottom: 1px solid var(--c-border);
403
+ }
404
+ .notification-list__scroll[data-v-63a2d867] {
405
+ flex: 1;
406
+ }
407
+ .notification-list__skeleton[data-v-63a2d867] {
408
+ display: flex;
409
+ align-items: flex-start;
410
+ gap: 12px;
411
+ padding: 14px 16px;
412
+ }
413
+ .notification-list__skeleton-text[data-v-63a2d867] {
414
+ flex: 1;
415
+ display: flex;
416
+ flex-direction: column;
417
+ gap: 8px;
418
+ }
419
+ .notification-list__load-more[data-v-63a2d867] {
420
+ appearance: none;
421
+ border: 0;
422
+ background: transparent;
423
+ font-family: inherit;
424
+ width: 100%;
425
+ display: flex;
426
+ align-items: center;
427
+ justify-content: center;
428
+ gap: 6px;
429
+ padding: 12px;
430
+ font-size: 12px;
431
+ color: var(--c-text-2);
432
+ cursor: pointer;
433
+ transition: color var(--c-transition, 0.2s ease);
434
+ }
435
+ .notification-list__load-more[data-v-63a2d867]:hover {
436
+ color: var(--c-primary);
437
+ }
438
+ .notification-list__empty[data-v-63a2d867] {
439
+ display: flex;
440
+ flex-direction: column;
441
+ align-items: center;
442
+ justify-content: center;
443
+ padding: 60px 0;
444
+ gap: 12px;
445
+ }
446
+ .notification-list__empty-icon[data-v-63a2d867] {
447
+ color: var(--c-text-4);
448
+ opacity: 0.5;
449
+ }
450
+ .notification-list__empty-text[data-v-63a2d867] {
451
+ font-size: 13px;
452
+ color: var(--c-text-4);
453
+ }
454
+
455
+ /* layer: default */
456
+ .absolute[data-v-63a2d867]{position:absolute;}
457
+ .relative[data-v-63a2d867]{position:relative;}
458
+ .flex[data-v-63a2d867]{display:flex;}
459
+ .border[data-v-63a2d867]{border-width:1px;}
460
+ .px[data-v-63a2d867]{padding-left:1rem;padding-right:1rem;}
461
+ .tab[data-v-63a2d867]{-moz-tab-size:4;-o-tab-size:4;tab-size:4;}
462
+ .transition[data-v-63a2d867]{transition-property:color,background-color,border-color,text-decoration-color,fill,stroke,opacity,box-shadow,transform,filter,backdrop-filter;transition-timing-function:cubic-bezier(0.4, 0, 0.2, 1);transition-duration:150ms;}
463
+
464
+ .c-notification-center[data-v-21f127ad] {
465
+ display: inline-flex;
466
+ align-items: center;
467
+ }
468
+ .c-notification-center__panel[data-v-21f127ad] {
469
+ display: flex;
470
+ flex-direction: column;
471
+ max-height: 560px;
472
+ }
473
+ .c-notification-center__header[data-v-21f127ad] {
474
+ display: flex;
475
+ align-items: center;
476
+ justify-content: space-between;
477
+ padding: 14px 16px 10px;
478
+ border-bottom: 1px solid var(--c-border);
479
+ }
480
+ .c-notification-center__title[data-v-21f127ad] {
481
+ font-size: 15px;
482
+ font-weight: 600;
483
+ color: var(--c-text-1);
484
+ }
485
+ .c-notification-center__header-extra[data-v-21f127ad] {
486
+ display: flex;
487
+ align-items: center;
488
+ gap: 8px;
489
+ }
490
+ .c-notification-center__error[data-v-21f127ad] {
491
+ display: flex;
492
+ align-items: center;
493
+ justify-content: space-between;
494
+ gap: 12px;
495
+ margin: 10px 16px;
496
+ padding: 10px;
497
+ color: var(--c-text-1);
498
+ background: color-mix(in srgb, #d03050 8%, transparent);
499
+ border-radius: 6px;
500
+ font-size: 12px;
501
+ }
502
+ .c-notification-center__footer[data-v-21f127ad] {
503
+ display: flex;
504
+ justify-content: center;
505
+ padding: 10px 16px;
506
+ border-top: 1px solid var(--c-border);
507
+ }
508
+ .c-notification-center__ws-dot[data-v-21f127ad] {
509
+ width: 8px;
510
+ height: 8px;
511
+ border-radius: 50%;
512
+ transition: background-color var(--c-transition, 0.2s ease);
513
+ }
514
+ .c-notification-center__ws-dot--connected[data-v-21f127ad] {
515
+ background: #52c41a;
516
+ box-shadow: 0 0 4px rgba(82, 196, 26, 0.5);
517
+ }
518
+ .c-notification-center__ws-dot--connecting[data-v-21f127ad], .c-notification-center__ws-dot--reconnecting[data-v-21f127ad] {
519
+ background: #faad14;
520
+ animation: status-blink-21f127ad 1s ease-in-out infinite;
521
+ }
522
+ .c-notification-center__ws-dot--disconnected[data-v-21f127ad] {
523
+ background: var(--c-text-4);
524
+ }
525
+ @keyframes status-blink-21f127ad {
526
+ 0%, 100% {
527
+ opacity: 1;
528
+ }
529
+ 50% {
530
+ opacity: 0.3;
531
+ }
532
+ }
533
+ /* ─── 切换过渡 ───────────────────────────────── */
534
+ .slide-fade-enter-active[data-v-21f127ad] {
535
+ transition: all 0.25s ease-out;
536
+ }
537
+ .slide-fade-leave-active[data-v-21f127ad] {
538
+ transition: all 0.2s ease-in;
539
+ }
540
+ .slide-fade-enter-from[data-v-21f127ad] {
541
+ opacity: 0;
542
+ transform: translateY(8px);
543
+ }
544
+ .slide-fade-leave-to[data-v-21f127ad] {
545
+ opacity: 0;
546
+ transform: translateY(-8px);
547
+ }
548
+ /*
549
+ * NPopover 的 content-class 样式需要在组件外部生效,
550
+ * 因为 NPopover 将内容渲染到 teleport 容器中,scoped 样式无法覆盖。
551
+ */
552
+ .c-notification-center__popover {
553
+ /*
554
+ * Popover 被 Teleport 到 body 后无法继承触发器作用域内的 --c-*。
555
+ * 直接桥接 NPopover 自身随主题注入的变量,确保明暗主题自动适配。
556
+ */
557
+ --c-bg-card: var(--n-color, #fff);
558
+ --c-bg-surface: var(--n-color, #fff);
559
+ --c-text-1: var(--n-text-color, #262626);
560
+ --c-text-2: color-mix(
561
+ in srgb,
562
+ var(--n-text-color, #262626) 68%,
563
+ transparent
564
+ );
565
+ --c-text-3: color-mix(
566
+ in srgb,
567
+ var(--n-text-color, #262626) 50%,
568
+ transparent
569
+ );
570
+ --c-text-4: color-mix(
571
+ in srgb,
572
+ var(--n-text-color, #262626) 36%,
573
+ transparent
574
+ );
575
+ --c-border: color-mix(
576
+ in srgb,
577
+ var(--n-text-color, #262626) 14%,
578
+ transparent
579
+ );
580
+ color: var(--n-text-color);
581
+ background-color: var(--n-color);
582
+ padding: 0 !important;
583
+ border-radius: 12px !important;
584
+ overflow: hidden;
585
+ box-shadow: var(--c-shadow, 0 12px 32px rgba(0, 0, 0, 0.1)) !important;
586
+ }
587
+
588
+ /* layer: default */
589
+ .flex[data-v-21f127ad]{display:flex;}
590
+ .inline-flex[data-v-21f127ad]{display:inline-flex;}
591
+ .transform[data-v-21f127ad]{transform:translateX(var(--un-translate-x)) translateY(var(--un-translate-y)) translateZ(var(--un-translate-z)) rotate(var(--un-rotate)) rotateX(var(--un-rotate-x)) rotateY(var(--un-rotate-y)) rotateZ(var(--un-rotate-z)) skewX(var(--un-skew-x)) skewY(var(--un-skew-y)) scaleX(var(--un-scale-x)) scaleY(var(--un-scale-y)) scaleZ(var(--un-scale-z));}
592
+ .transition[data-v-21f127ad]{transition-property:color,background-color,border-color,text-decoration-color,fill,stroke,opacity,box-shadow,transform,filter,backdrop-filter;transition-timing-function:cubic-bezier(0.4, 0, 0.2, 1);transition-duration:150ms;}
593
+ .ease-in[data-v-21f127ad]{transition-timing-function:cubic-bezier(0.4, 0, 1, 1);}
594
+ .ease-in-out[data-v-21f127ad]{transition-timing-function:cubic-bezier(0.4, 0, 0.2, 1);}
595
+ .ease-out[data-v-21f127ad]{transition-timing-function:cubic-bezier(0, 0, 0.2, 1);}