@robot-admin/naive-ui-components 0.14.2 → 0.15.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 (255) hide show
  1. package/CHANGELOG.md +30 -0
  2. package/README.md +130 -721
  3. package/README_EN.md +137 -658
  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 +215 -222
  8. package/dist/C_AntV2.cjs +2 -2
  9. package/dist/C_AntV2.js +2 -2
  10. package/dist/C_AudioPlayer.css +11 -12
  11. package/dist/C_AvatarGroup.css +5 -6
  12. package/dist/C_Barcode.css +1 -1
  13. package/dist/C_Breadcrumb.css +15 -17
  14. package/dist/C_Breadcrumb2.cjs +1 -1
  15. package/dist/C_Breadcrumb2.js +1 -1
  16. package/dist/C_Captcha.css +45 -47
  17. package/dist/C_Captcha2.cjs +1 -1
  18. package/dist/C_Captcha2.js +1 -1
  19. package/dist/C_Cascade.css +2 -2
  20. package/dist/C_Chat.css +8 -8
  21. package/dist/C_City.css +6 -7
  22. package/dist/C_Code.css +14 -15
  23. package/dist/C_CollapsePanel.css +12 -13
  24. package/dist/C_ContextMenu.css +31 -31
  25. package/dist/C_Cron.css +272 -275
  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 +193 -193
  30. package/dist/C_Form.base.css +607 -601
  31. package/dist/C_Form.cjs +1 -1
  32. package/dist/C_Form.css +609 -603
  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 +14 -20
  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 +314 -315
  45. package/dist/C_FullCalendar.css +14 -16
  46. package/dist/C_FullCalendar2.cjs +1 -1
  47. package/dist/C_FullCalendar2.js +1 -1
  48. package/dist/C_GlobalSearch.css +2 -2
  49. package/dist/C_Guide.css +14 -15
  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 +20 -22
  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 +2 -2
  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 +300 -301
  65. package/dist/C_OrgChart.css +3 -3
  66. package/dist/C_PageLoading.css +35 -39
  67. package/dist/C_QRCode.css +5 -6
  68. package/dist/C_Signature.css +5 -6
  69. package/dist/C_Skeleton.css +6 -7
  70. package/dist/C_SplitPane.css +2 -2
  71. package/dist/C_Steps.css +2 -2
  72. package/dist/C_Table.base.css +1097 -870
  73. package/dist/C_Table.cjs +1 -1
  74. package/dist/C_Table.css +1101 -874
  75. package/dist/C_Table.d.cts +1 -1
  76. package/dist/C_Table.d.ts +1 -1
  77. package/dist/C_Table.js +1 -1
  78. package/dist/C_Tabs.css +2 -2
  79. package/dist/C_TagsView.css +72 -76
  80. package/dist/C_TagsView2.cjs +1 -1
  81. package/dist/C_TagsView2.js +1 -1
  82. package/dist/C_Theme.css +7 -8
  83. package/dist/C_Time.css +1 -1
  84. package/dist/C_Timeline.css +8 -8
  85. package/dist/C_Transfer.css +10 -11
  86. package/dist/C_Tree.css +16 -17
  87. package/dist/C_Upload.css +147 -148
  88. package/dist/C_VideoPlayer.css +280 -281
  89. package/dist/C_VtableGantt.css +2 -2
  90. package/dist/C_WaterFall.css +17 -18
  91. package/dist/C_WorkFlow.css +453 -457
  92. package/dist/C_WorkFlow2.cjs +1 -1
  93. package/dist/C_WorkFlow2.js +1 -1
  94. package/dist/Card.cjs +1 -0
  95. package/dist/Card.js +1 -0
  96. package/dist/Custom.cjs +1 -0
  97. package/dist/Custom.js +1 -0
  98. package/dist/Dynamic.cjs +1 -0
  99. package/dist/Dynamic.js +1 -0
  100. package/dist/Steps.cjs +1 -0
  101. package/dist/Steps.js +1 -0
  102. package/dist/Tabs.cjs +1 -0
  103. package/dist/Tabs.js +1 -0
  104. package/dist/cascader.cjs +1 -0
  105. package/dist/cascader.js +1 -0
  106. package/dist/color-picker.cjs +1 -0
  107. package/dist/color-picker.js +1 -0
  108. package/dist/constants.d.cts +1 -1
  109. package/dist/constants.d.ts +1 -1
  110. package/dist/constants3.d.cts +5 -5
  111. package/dist/constants3.d.ts +5 -5
  112. package/dist/constants4.d.cts +4 -4
  113. package/dist/constants4.d.ts +4 -4
  114. package/dist/constants5.d.cts +2 -2
  115. package/dist/constants5.d.ts +2 -2
  116. package/dist/context.cjs +1 -0
  117. package/dist/context.js +1 -0
  118. package/dist/contracts.d.cts +24 -0
  119. package/dist/contracts.d.ts +24 -0
  120. package/dist/createPageLoading.cjs +1 -1
  121. package/dist/createPageLoading.js +1 -1
  122. package/dist/data.cjs +1 -1
  123. package/dist/data.d.cts +9 -9
  124. package/dist/data.d.ts +9 -9
  125. package/dist/data.js +1 -1
  126. package/dist/date-picker.cjs +1 -0
  127. package/dist/date-picker.js +1 -0
  128. package/dist/feedback.cjs +1 -0
  129. package/dist/feedback.js +1 -0
  130. package/dist/helpers.cjs +1 -1
  131. package/dist/helpers.js +1 -1
  132. package/dist/index.cjs +1 -1
  133. package/dist/index.d.cts +6 -4
  134. package/dist/index.d.ts +6 -4
  135. package/dist/index.js +1 -1
  136. package/dist/index.vue.d.cts +4 -4
  137. package/dist/index.vue.d.ts +4 -4
  138. package/dist/index10.vue.d.cts +3 -3
  139. package/dist/index11.vue.d.ts +2 -2
  140. package/dist/index12.vue.d.cts +2 -2
  141. package/dist/index12.vue.d.ts +1 -1
  142. package/dist/index13.vue.d.cts +1 -1
  143. package/dist/index13.vue.d.ts +3 -3
  144. package/dist/index14.vue.d.cts +3 -3
  145. package/dist/index14.vue.d.ts +7 -7
  146. package/dist/index15.vue.d.cts +7 -7
  147. package/dist/index16.vue.d.ts +1 -1
  148. package/dist/index17.vue.d.cts +1 -1
  149. package/dist/index17.vue.d.ts +1 -1
  150. package/dist/index18.vue.d.cts +1 -1
  151. package/dist/index18.vue.d.ts +1 -1
  152. package/dist/index19.vue.d.cts +1 -1
  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 +1 -1
  159. package/dist/index21.vue.d.ts +1 -1
  160. package/dist/index22.vue.d.cts +2 -2
  161. package/dist/index22.vue.d.ts +2 -2
  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 +4 -4
  169. package/dist/index27.vue.d.ts +4 -4
  170. package/dist/index28.vue.d.cts +1 -1
  171. package/dist/index28.vue.d.ts +1 -1
  172. package/dist/index3.vue.d.cts +4 -4
  173. package/dist/index3.vue.d.ts +4 -4
  174. package/dist/index4.vue.d.cts +2 -9
  175. package/dist/index6.vue.d.ts +3 -3
  176. package/dist/index7.vue.d.cts +3 -3
  177. package/dist/index8.vue.d.ts +2 -2
  178. package/dist/index9.vue.d.cts +2 -2
  179. package/dist/index9.vue.d.ts +3 -3
  180. package/dist/mapUtils.d.cts +2 -2
  181. package/dist/mapUtils.d.ts +2 -2
  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 +10898 -10915
  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 +1 -1
  196. package/dist/useCalendarEvents.d.ts +1 -1
  197. package/dist/useCollapsePanel.d.cts +4 -4
  198. package/dist/useCollapsePanel.d.ts +4 -4
  199. package/dist/useComponentLocale.cjs +1 -0
  200. package/dist/useComponentLocale.js +1 -0
  201. package/dist/useCropperCore.d.cts +6 -6
  202. package/dist/useCropperCore.d.ts +6 -6
  203. package/dist/useDraggableLayout.d.cts +1 -1
  204. package/dist/useDraggableLayout.d.ts +1 -1
  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 +3 -3
  210. package/dist/useEdgeInteraction.d.ts +3 -3
  211. package/dist/useGlobalSearch.d.cts +1 -1
  212. package/dist/useGlobalSearch.d.ts +1 -1
  213. package/dist/useQRCode.d.cts +2 -2
  214. package/dist/useQRCode.d.ts +2 -2
  215. package/dist/useSearchState.d.cts +15 -725
  216. package/dist/useSearchState.d.ts +15 -834
  217. package/dist/useSignatureHistory.d.cts +4 -4
  218. package/dist/useSignatureHistory.d.ts +4 -4
  219. package/dist/useSplitResize.d.cts +3 -3
  220. package/dist/useSplitResize.d.ts +3 -3
  221. package/dist/useTableQuery.cjs +3 -3
  222. package/dist/useTableQuery.d.cts +73 -34
  223. package/dist/useTableQuery.d.ts +73 -34
  224. package/dist/useTableQuery.js +3 -3
  225. package/dist/useTimeSelection.d.cts +1 -1
  226. package/dist/useTimeSelection.d.ts +1 -1
  227. package/dist/useTreeOperations.d.cts +5 -5
  228. package/dist/useTreeOperations.d.ts +5 -5
  229. package/dist/useWorkflowValidation.d.cts +3 -3
  230. package/dist/useWorkflowValidation.d.ts +3 -3
  231. package/dist/verification.d.cts +4 -4
  232. package/dist/verification.d.ts +4 -4
  233. package/docs/architecture.en.md +83 -0
  234. package/docs/architecture.md +83 -0
  235. package/docs/assets/README.md +47 -0
  236. package/docs/assets/naive-ui-components-banner.png +0 -0
  237. package/docs/assets/naive-ui-components-banner.svg +69 -0
  238. package/docs/assets/naive-ui-components-logo.png +0 -0
  239. package/docs/assets/naive-ui-components-logo.svg +22 -0
  240. package/docs/components.en.md +118 -0
  241. package/docs/components.md +118 -0
  242. package/docs/engineering.en.md +132 -0
  243. package/docs/engineering.md +133 -0
  244. package/docs/guides/usage.en.md +638 -0
  245. package/docs/guides/usage.md +699 -0
  246. package/docs/performance-0.15.0.md +20 -0
  247. package/docs/security-scan-2026-10-06.md +11 -0
  248. package/docs/security-scan-2026-10-18.md +16 -0
  249. package/package.json +35 -12
  250. package/dist/C_Form2.cjs +0 -1
  251. package/dist/C_Form2.js +0 -1
  252. package/dist/config.cjs +0 -1
  253. package/dist/config.d.cts +0 -33
  254. package/dist/config.d.ts +0 -33
  255. package/dist/config.js +0 -1
@@ -1,208 +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
- * NPopover 的 content-class 样式需要在组件外部生效,
5
- * 因为 NPopover 将内容渲染到 teleport 容器中,scoped 样式无法覆盖。
6
- */
7
- .c-notification-center__popover {
8
- /*
9
- * Popover 被 Teleport 到 body 后无法继承触发器作用域内的 --c-*。
10
- * 直接桥接 NPopover 自身随主题注入的变量,确保明暗主题自动适配。
11
- */
12
- --c-bg-card: var(--n-color, #fff);
13
- --c-bg-surface: var(--n-color, #fff);
14
- --c-text-1: var(--n-text-color, #262626);
15
- --c-text-2: color-mix(
16
- in srgb,
17
- var(--n-text-color, #262626) 68%,
18
- transparent
19
- );
20
- --c-text-3: color-mix(
21
- in srgb,
22
- var(--n-text-color, #262626) 50%,
23
- transparent
24
- );
25
- --c-text-4: color-mix(
26
- in srgb,
27
- var(--n-text-color, #262626) 36%,
28
- transparent
29
- );
30
- --c-border: color-mix(
31
- in srgb,
32
- var(--n-text-color, #262626) 14%,
33
- transparent
34
- );
35
- color: var(--n-text-color);
36
- background-color: var(--n-color);
37
- padding: 0 !important;
38
- border-radius: 12px !important;
39
- overflow: hidden;
40
- box-shadow: var(--c-shadow, 0 12px 32px rgba(0, 0, 0, 0.1)) !important;
41
- }
42
- /* unplugin-vue-components disabled */
43
- /* layer: default */
44
- .flex[data-v-a06c4b3a]{display:flex;}
45
- .inline-flex[data-v-a06c4b3a]{display:inline-flex;}
46
- .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));}
47
- .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;}
48
- .ease-in[data-v-a06c4b3a]{transition-timing-function:cubic-bezier(0.4, 0, 1, 1);}
49
- .ease-in-out[data-v-a06c4b3a]{transition-timing-function:cubic-bezier(0.4, 0, 0.2, 1);}
50
- .ease-out[data-v-a06c4b3a]{transition-timing-function:cubic-bezier(0, 0, 0.2, 1);}
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
- .flex[data-v-8e02b6cd]{display:flex;}
121
- .flex-wrap[data-v-8e02b6cd]{flex-wrap:wrap;}
122
- .px[data-v-8e02b6cd]{padding-left:1rem;padding-right:1rem;}
123
-
124
- /* unplugin-vue-components disabled */.notification-detail[data-v-8e02b6cd] {
125
- display: flex;
126
- flex-direction: column;
127
- height: 100%;
128
- }
129
- .notification-detail__back[data-v-8e02b6cd] {
130
- padding: 8px 16px;
131
- border-bottom: 1px solid var(--c-border);
132
- }
133
- .notification-detail__header[data-v-8e02b6cd] {
134
- padding: 16px;
135
- border-bottom: 1px solid var(--c-border);
136
- }
137
- .notification-detail__title[data-v-8e02b6cd] {
138
- font-size: 15px;
139
- font-weight: 600;
140
- color: var(--c-text-1);
141
- line-height: 1.5;
142
- margin: 0 0 8px;
143
- }
144
- .notification-detail__meta[data-v-8e02b6cd] {
145
- display: flex;
146
- align-items: center;
147
- gap: 8px;
148
- flex-wrap: wrap;
149
- }
150
- .notification-detail__time[data-v-8e02b6cd] {
151
- font-size: 11px;
152
- color: var(--c-text-4);
153
- }
154
- .notification-detail__sender[data-v-8e02b6cd] {
155
- display: flex;
156
- align-items: center;
157
- gap: 6px;
158
- margin-top: 8px;
159
- font-size: 12px;
160
- color: var(--c-text-2);
161
- }
162
- .notification-detail__content[data-v-8e02b6cd] {
163
- flex: 1;
164
- min-height: 0;
165
- }
166
- .notification-detail__body[data-v-8e02b6cd] {
167
- padding: 16px;
168
- font-size: 13px;
169
- line-height: 1.7;
170
- color: var(--c-text-1);
171
- word-break: break-word;
172
- }
173
- .notification-detail__body[data-v-8e02b6cd] p {
174
- margin: 0 0 8px;
175
- }
176
- .notification-detail__body[data-v-8e02b6cd] ul,
177
- .notification-detail__body[data-v-8e02b6cd] ol {
178
- padding-left: 20px;
179
- margin: 8px 0;
180
- }
181
- .notification-detail__body[data-v-8e02b6cd] li {
182
- margin: 4px 0;
183
- }
184
- .notification-detail__body[data-v-8e02b6cd] strong {
185
- font-weight: 600;
186
- color: var(--c-primary);
187
- }
188
- .notification-detail__footer[data-v-8e02b6cd] {
189
- padding: 12px 16px;
190
- border-top: 1px solid var(--c-border);
191
- display: flex;
192
- justify-content: flex-end;
193
- }
194
- /* unplugin-vue-components disabled */
195
- /* layer: default */
196
- .absolute[data-v-51516250]{position:absolute;}
197
- .relative[data-v-51516250]{position:relative;}
198
- .inline-flex[data-v-51516250]{display:inline-flex;}
199
- .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));}
200
- .border[data-v-51516250]{border-width:1px;}
201
- .outline[data-v-51516250]{outline-style:solid;}
202
- .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;}
203
- .ease[data-v-51516250]{transition-timing-function:cubic-bezier(0.4, 0, 0.2, 1);}
204
-
205
- /* unplugin-vue-components disabled */.notification-badge[data-v-51516250] {
3
+ .notification-badge[data-v-51516250] {
206
4
  position: relative;
207
5
  display: inline-flex;
208
6
  align-items: center;
@@ -291,127 +89,94 @@
291
89
  opacity: 1;
292
90
  }
293
91
  }
294
- /* unplugin-vue-components disabled */
92
+
295
93
  /* 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;}
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);}
302
102
 
303
- /* unplugin-vue-components disabled */.notification-list__tabs[data-v-d366768f] {
103
+ .notification-detail[data-v-8e02b6cd] {
304
104
  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);
105
+ flex-direction: column;
106
+ height: 100%;
333
107
  }
334
- .notification-list__tab--active[data-v-d366768f] {
335
- color: var(--c-primary);
336
- font-weight: 500;
108
+ .notification-detail__back[data-v-8e02b6cd] {
109
+ padding: 8px 16px;
110
+ border-bottom: 1px solid var(--c-border);
337
111
  }
338
- .notification-list__tab--active[data-v-d366768f]::after {
339
- background: var(--c-primary);
112
+ .notification-detail__header[data-v-8e02b6cd] {
113
+ padding: 16px;
114
+ border-bottom: 1px solid var(--c-border);
340
115
  }
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;
116
+ .notification-detail__title[data-v-8e02b6cd] {
117
+ font-size: 15px;
349
118
  font-weight: 600;
350
- line-height: 16px;
351
- text-align: center;
119
+ color: var(--c-text-1);
120
+ line-height: 1.5;
121
+ margin: 0 0 8px;
352
122
  }
353
- .notification-list__toolbar[data-v-d366768f] {
123
+ .notification-detail__meta[data-v-8e02b6cd] {
354
124
  display: flex;
355
125
  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
126
  gap: 8px;
127
+ flex-wrap: wrap;
375
128
  }
376
- .notification-list__load-more[data-v-d366768f] {
129
+ .notification-detail__time[data-v-8e02b6cd] {
130
+ font-size: 11px;
131
+ color: var(--c-text-4);
132
+ }
133
+ .notification-detail__sender[data-v-8e02b6cd] {
377
134
  display: flex;
378
135
  align-items: center;
379
- justify-content: center;
380
136
  gap: 6px;
381
- padding: 12px;
137
+ margin-top: 8px;
382
138
  font-size: 12px;
383
139
  color: var(--c-text-2);
384
- cursor: pointer;
385
- transition: color var(--c-transition, 0.2s ease);
386
140
  }
387
- .notification-list__load-more[data-v-d366768f]:hover {
388
- color: var(--c-primary);
141
+ .notification-detail__content[data-v-8e02b6cd] {
142
+ flex: 1;
143
+ min-height: 0;
389
144
  }
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;
145
+ .notification-detail__body[data-v-8e02b6cd] {
146
+ padding: 16px;
147
+ font-size: 13px;
148
+ line-height: 1.7;
149
+ color: var(--c-text-1);
150
+ word-break: break-word;
151
+ }
152
+ .notification-detail__body[data-v-8e02b6cd] p {
153
+ margin: 0 0 8px;
154
+ }
155
+ .notification-detail__body[data-v-8e02b6cd] ul,
156
+ .notification-detail__body[data-v-8e02b6cd] ol {
157
+ padding-left: 20px;
158
+ margin: 8px 0;
159
+ }
160
+ .notification-detail__body[data-v-8e02b6cd] li {
161
+ margin: 4px 0;
397
162
  }
398
- .notification-list__empty-icon[data-v-d366768f] {
399
- color: var(--c-text-4);
400
- opacity: 0.5;
163
+ .notification-detail__body[data-v-8e02b6cd] strong {
164
+ font-weight: 600;
165
+ color: var(--c-primary);
401
166
  }
402
- .notification-list__empty-text[data-v-d366768f] {
403
- font-size: 13px;
404
- color: var(--c-text-4);
167
+ .notification-detail__footer[data-v-8e02b6cd] {
168
+ padding: 12px 16px;
169
+ border-top: 1px solid var(--c-border);
170
+ display: flex;
171
+ justify-content: flex-end;
405
172
  }
406
- /* unplugin-vue-components disabled */
173
+
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-2f1c8e96] {
415
180
  display: flex;
416
181
  align-items: flex-start;
417
182
  gap: 10px;
@@ -557,4 +322,238 @@
557
322
  .notification-item__action[data-v-2f1c8e96]:hover {
558
323
  color: var(--c-primary);
559
324
  background-color: var(--c-border);
560
- }
325
+ }
326
+
327
+ /* layer: default */
328
+ .hidden[data-v-2f1c8e96]{display:none;}
329
+ .flex[data-v-2f1c8e96]{display:flex;}
330
+ .inline-flex[data-v-2f1c8e96]{display:inline-flex;}
331
+ .flex-shrink[data-v-2f1c8e96]{flex-shrink:1;}
332
+ .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;}
333
+
334
+ .notification-list__tabs[data-v-d366768f] {
335
+ display: flex;
336
+ border-bottom: 1px solid var(--c-border);
337
+ padding: 0 4px;
338
+ }
339
+ .notification-list__tab[data-v-d366768f] {
340
+ position: relative;
341
+ display: flex;
342
+ align-items: center;
343
+ gap: 4px;
344
+ padding: 10px 12px;
345
+ font-size: 13px;
346
+ color: var(--c-text-2);
347
+ cursor: pointer;
348
+ transition: all var(--c-transition, 0.2s ease);
349
+ user-select: none;
350
+ }
351
+ .notification-list__tab[data-v-d366768f]::after {
352
+ content: "";
353
+ position: absolute;
354
+ bottom: 0;
355
+ left: 12px;
356
+ right: 12px;
357
+ height: 2px;
358
+ background: transparent;
359
+ border-radius: 1px;
360
+ transition: background var(--c-transition, 0.2s ease);
361
+ }
362
+ .notification-list__tab[data-v-d366768f]:hover {
363
+ color: var(--c-text-1);
364
+ }
365
+ .notification-list__tab--active[data-v-d366768f] {
366
+ color: var(--c-primary);
367
+ font-weight: 500;
368
+ }
369
+ .notification-list__tab--active[data-v-d366768f]::after {
370
+ background: var(--c-primary);
371
+ }
372
+ .notification-list__tab-count[data-v-d366768f] {
373
+ min-width: 16px;
374
+ height: 16px;
375
+ padding: 0 4px;
376
+ border-radius: 8px;
377
+ background: #f5222d;
378
+ color: #fff;
379
+ font-size: 10px;
380
+ font-weight: 600;
381
+ line-height: 16px;
382
+ text-align: center;
383
+ }
384
+ .notification-list__toolbar[data-v-d366768f] {
385
+ display: flex;
386
+ align-items: center;
387
+ justify-content: flex-end;
388
+ gap: 12px;
389
+ padding: 6px 16px;
390
+ border-bottom: 1px solid var(--c-border);
391
+ }
392
+ .notification-list__scroll[data-v-d366768f] {
393
+ flex: 1;
394
+ }
395
+ .notification-list__skeleton[data-v-d366768f] {
396
+ display: flex;
397
+ align-items: flex-start;
398
+ gap: 12px;
399
+ padding: 14px 16px;
400
+ }
401
+ .notification-list__skeleton-text[data-v-d366768f] {
402
+ flex: 1;
403
+ display: flex;
404
+ flex-direction: column;
405
+ gap: 8px;
406
+ }
407
+ .notification-list__load-more[data-v-d366768f] {
408
+ display: flex;
409
+ align-items: center;
410
+ justify-content: center;
411
+ gap: 6px;
412
+ padding: 12px;
413
+ font-size: 12px;
414
+ color: var(--c-text-2);
415
+ cursor: pointer;
416
+ transition: color var(--c-transition, 0.2s ease);
417
+ }
418
+ .notification-list__load-more[data-v-d366768f]:hover {
419
+ color: var(--c-primary);
420
+ }
421
+ .notification-list__empty[data-v-d366768f] {
422
+ display: flex;
423
+ flex-direction: column;
424
+ align-items: center;
425
+ justify-content: center;
426
+ padding: 60px 0;
427
+ gap: 12px;
428
+ }
429
+ .notification-list__empty-icon[data-v-d366768f] {
430
+ color: var(--c-text-4);
431
+ opacity: 0.5;
432
+ }
433
+ .notification-list__empty-text[data-v-d366768f] {
434
+ font-size: 13px;
435
+ color: var(--c-text-4);
436
+ }
437
+
438
+ /* layer: default */
439
+ .absolute[data-v-d366768f]{position:absolute;}
440
+ .relative[data-v-d366768f]{position:relative;}
441
+ .flex[data-v-d366768f]{display:flex;}
442
+ .px[data-v-d366768f]{padding-left:1rem;padding-right:1rem;}
443
+ .tab[data-v-d366768f]{-moz-tab-size:4;-o-tab-size:4;tab-size:4;}
444
+ .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;}
445
+
446
+ .c-notification-center[data-v-a06c4b3a] {
447
+ display: inline-flex;
448
+ align-items: center;
449
+ }
450
+ .c-notification-center__panel[data-v-a06c4b3a] {
451
+ display: flex;
452
+ flex-direction: column;
453
+ max-height: 560px;
454
+ }
455
+ .c-notification-center__header[data-v-a06c4b3a] {
456
+ display: flex;
457
+ align-items: center;
458
+ justify-content: space-between;
459
+ padding: 14px 16px 10px;
460
+ border-bottom: 1px solid var(--c-border);
461
+ }
462
+ .c-notification-center__title[data-v-a06c4b3a] {
463
+ font-size: 15px;
464
+ font-weight: 600;
465
+ color: var(--c-text-1);
466
+ }
467
+ .c-notification-center__header-extra[data-v-a06c4b3a] {
468
+ display: flex;
469
+ align-items: center;
470
+ gap: 8px;
471
+ }
472
+ .c-notification-center__ws-dot[data-v-a06c4b3a] {
473
+ width: 8px;
474
+ height: 8px;
475
+ border-radius: 50%;
476
+ transition: background-color var(--c-transition, 0.2s ease);
477
+ }
478
+ .c-notification-center__ws-dot--connected[data-v-a06c4b3a] {
479
+ background: #52c41a;
480
+ box-shadow: 0 0 4px rgba(82, 196, 26, 0.5);
481
+ }
482
+ .c-notification-center__ws-dot--connecting[data-v-a06c4b3a], .c-notification-center__ws-dot--reconnecting[data-v-a06c4b3a] {
483
+ background: #faad14;
484
+ animation: status-blink-a06c4b3a 1s ease-in-out infinite;
485
+ }
486
+ .c-notification-center__ws-dot--disconnected[data-v-a06c4b3a] {
487
+ background: var(--c-text-4);
488
+ }
489
+ @keyframes status-blink-a06c4b3a {
490
+ 0%, 100% {
491
+ opacity: 1;
492
+ }
493
+ 50% {
494
+ opacity: 0.3;
495
+ }
496
+ }
497
+ /* ─── 切换过渡 ───────────────────────────────── */
498
+ .slide-fade-enter-active[data-v-a06c4b3a] {
499
+ transition: all 0.25s ease-out;
500
+ }
501
+ .slide-fade-leave-active[data-v-a06c4b3a] {
502
+ transition: all 0.2s ease-in;
503
+ }
504
+ .slide-fade-enter-from[data-v-a06c4b3a] {
505
+ opacity: 0;
506
+ transform: translateY(8px);
507
+ }
508
+ .slide-fade-leave-to[data-v-a06c4b3a] {
509
+ opacity: 0;
510
+ transform: translateY(-8px);
511
+ }
512
+ /*
513
+ * NPopover 的 content-class 样式需要在组件外部生效,
514
+ * 因为 NPopover 将内容渲染到 teleport 容器中,scoped 样式无法覆盖。
515
+ */
516
+ .c-notification-center__popover {
517
+ /*
518
+ * Popover 被 Teleport 到 body 后无法继承触发器作用域内的 --c-*。
519
+ * 直接桥接 NPopover 自身随主题注入的变量,确保明暗主题自动适配。
520
+ */
521
+ --c-bg-card: var(--n-color, #fff);
522
+ --c-bg-surface: var(--n-color, #fff);
523
+ --c-text-1: var(--n-text-color, #262626);
524
+ --c-text-2: color-mix(
525
+ in srgb,
526
+ var(--n-text-color, #262626) 68%,
527
+ transparent
528
+ );
529
+ --c-text-3: color-mix(
530
+ in srgb,
531
+ var(--n-text-color, #262626) 50%,
532
+ transparent
533
+ );
534
+ --c-text-4: color-mix(
535
+ in srgb,
536
+ var(--n-text-color, #262626) 36%,
537
+ transparent
538
+ );
539
+ --c-border: color-mix(
540
+ in srgb,
541
+ var(--n-text-color, #262626) 14%,
542
+ transparent
543
+ );
544
+ color: var(--n-text-color);
545
+ background-color: var(--n-color);
546
+ padding: 0 !important;
547
+ border-radius: 12px !important;
548
+ overflow: hidden;
549
+ box-shadow: var(--c-shadow, 0 12px 32px rgba(0, 0, 0, 0.1)) !important;
550
+ }
551
+
552
+ /* layer: default */
553
+ .flex[data-v-a06c4b3a]{display:flex;}
554
+ .inline-flex[data-v-a06c4b3a]{display:inline-flex;}
555
+ .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));}
556
+ .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;}
557
+ .ease-in[data-v-a06c4b3a]{transition-timing-function:cubic-bezier(0.4, 0, 1, 1);}
558
+ .ease-in-out[data-v-a06c4b3a]{transition-timing-function:cubic-bezier(0.4, 0, 0.2, 1);}
559
+ .ease-out[data-v-a06c4b3a]{transition-timing-function:cubic-bezier(0, 0, 0.2, 1);}
@@ -1,6 +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 *//* C_OrgChart 组织架构图组件样式 */
3
+ /* C_OrgChart 组织架构图组件样式 */
4
4
  .c-orgchart {
5
5
  --c-orgchart-line-color: #d1d5db;
6
6
  --c-orgchart-line-width: 2px;
@@ -288,12 +288,12 @@
288
288
  min-width: 40px;
289
289
  text-align: center;
290
290
  }
291
- /* unplugin-vue-components disabled */
291
+
292
292
  /* layer: default */
293
293
  .transform[data-v-3c5e8f18]{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));}
294
294
  .rounded[data-v-3c5e8f18]{border-radius:0.25rem;}
295
295
  .px[data-v-3c5e8f18]{padding-left:1rem;padding-right:1rem;}
296
296
 
297
- /* unplugin-vue-components disabled */
297
+
298
298
  /* layer: default */
299
299
  .rounded[data-v-f16fa660]{border-radius:0.25rem;}