@robot-admin/naive-ui-components 0.6.28 → 0.6.30

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 (142) hide show
  1. package/dist/C_Chat-CJ8KESTM.css.map +1 -0
  2. package/dist/C_Chat-DzV4AFLd.css.map +1 -0
  3. package/dist/C_Chat.css +14 -8
  4. package/dist/{C_CollapsePanel-CWkFCqNQ.css.map → C_CollapsePanel-BkOivqn3.css.map} +1 -1
  5. package/dist/{C_CollapsePanel-pcVJA_4z.css.map → C_CollapsePanel-CedsEM0N.css.map} +1 -1
  6. package/dist/C_CollapsePanel.css +35 -35
  7. package/dist/C_CollapsePanel.js.map +1 -1
  8. package/dist/C_CollapsePanel2.js +1 -1
  9. package/dist/C_CollapsePanel2.js.map +1 -1
  10. package/dist/C_Editor-C49qURgb.css.map +1 -0
  11. package/dist/C_Editor-DuxBD9Qg.css.map +1 -0
  12. package/dist/C_Editor.css +60 -29
  13. package/dist/C_Editor.js.map +1 -1
  14. package/dist/C_Editor2.js +1 -1
  15. package/dist/C_Editor2.js.map +1 -1
  16. package/dist/C_Guide.d.cts +2 -2
  17. package/dist/C_Guide.d.ts +2 -2
  18. package/dist/C_Guide.js.map +1 -1
  19. package/dist/C_Guide2.js +1 -1
  20. package/dist/C_Guide2.js.map +1 -1
  21. package/dist/C_Markdown-7J0uPEuk.css.map +1 -0
  22. package/dist/C_Markdown-C7Lg0_9z.css.map +1 -0
  23. package/dist/C_Markdown.css +16 -10
  24. package/dist/C_OrgChart-ChZu346B.css.map +1 -0
  25. package/dist/C_OrgChart-DqBufOv5.css.map +1 -0
  26. package/dist/C_OrgChart.cjs +1 -0
  27. package/dist/C_OrgChart.css +282 -0
  28. package/dist/C_OrgChart.d.cts +2 -0
  29. package/dist/C_OrgChart.d.ts +2 -0
  30. package/dist/C_OrgChart.js +1 -0
  31. package/dist/C_OrgChart.js.map +1 -0
  32. package/dist/C_OrgChart2.js +2 -0
  33. package/dist/C_OrgChart2.js.map +1 -0
  34. package/dist/C_Progress.d.cts +1 -1
  35. package/dist/C_Progress.d.ts +1 -1
  36. package/dist/C_Signature.js.map +1 -1
  37. package/dist/C_Signature2.js.map +1 -1
  38. package/dist/C_Skeleton-BNPbaut7.css.map +1 -0
  39. package/dist/C_Skeleton-Djsjw8XY.css.map +1 -0
  40. package/dist/C_Skeleton.cjs +1 -0
  41. package/dist/C_Skeleton.css +253 -0
  42. package/dist/C_Skeleton.d.cts +2 -0
  43. package/dist/C_Skeleton.d.ts +2 -0
  44. package/dist/C_Skeleton.js +1 -0
  45. package/dist/C_Skeleton.js.map +1 -0
  46. package/dist/C_Skeleton2.js +2 -0
  47. package/dist/C_Skeleton2.js.map +1 -0
  48. package/dist/C_Steps.d.cts +1 -1
  49. package/dist/C_Steps.d.ts +1 -1
  50. package/dist/C_Table-B8hpzOcR.css.map +1 -0
  51. package/dist/C_Table-CGP3n_u0.css.map +1 -0
  52. package/dist/C_Table.css +94 -69
  53. package/dist/C_Table.d.cts +2 -2
  54. package/dist/C_Table.d.ts +2 -2
  55. package/dist/C_Table.js.map +1 -1
  56. package/dist/C_Table2.js +1 -1
  57. package/dist/C_Table2.js.map +1 -1
  58. package/dist/C_TagsView.d.cts +1 -1
  59. package/dist/C_TagsView.d.ts +1 -1
  60. package/dist/C_Theme.d.cts +1 -1
  61. package/dist/C_Theme.d.ts +1 -1
  62. package/dist/{C_Timeline-BKkimrZx.css.map → C_Timeline-DG70WtJP.css.map} +1 -1
  63. package/dist/{C_Timeline-DTuSCX6p.css.map → C_Timeline-Dzxmmdjg.css.map} +1 -1
  64. package/dist/C_Timeline.css +45 -45
  65. package/dist/C_Timeline.d.cts +1 -1
  66. package/dist/C_Timeline.d.ts +1 -1
  67. package/dist/C_Timeline.js.map +1 -1
  68. package/dist/C_Timeline2.js +1 -1
  69. package/dist/C_Timeline2.js.map +1 -1
  70. package/dist/C_Transfer.d.cts +1 -1
  71. package/dist/C_Transfer.d.ts +1 -1
  72. package/dist/{C_Upload-S30RmC9t.css.map → C_Upload-CFAxVGVz.css.map} +1 -1
  73. package/dist/{C_Upload-i8LB_29U.css.map → C_Upload-D8_QeSV0.css.map} +1 -1
  74. package/dist/C_Upload.css +14 -9
  75. package/dist/C_Upload.js.map +1 -1
  76. package/dist/C_Upload2.js +1 -1
  77. package/dist/C_Upload2.js.map +1 -1
  78. package/dist/C_VtableGantt.d.cts +1 -1
  79. package/dist/C_VtableGantt.d.ts +1 -1
  80. package/dist/constants.d.ts +1 -1
  81. package/dist/constants2.d.ts +2 -2
  82. package/dist/constants3.d.ts +3 -3
  83. package/dist/constants4.d.ts +5 -5
  84. package/dist/constants5.d.ts +2 -2
  85. package/dist/data.d.ts +1 -1
  86. package/dist/index.cjs +1 -1
  87. package/dist/index.cjs.map +1 -1
  88. package/dist/index.d.cts +22 -20
  89. package/dist/index.d.ts +22 -20
  90. package/dist/index.js +1 -1
  91. package/dist/index.js.map +1 -1
  92. package/dist/index.vue.d.ts +1 -1
  93. package/dist/index13.vue.d.ts +3 -3
  94. package/dist/index14.vue.d.ts +85 -7
  95. package/dist/index15.vue.d.ts +6 -6
  96. package/dist/index17.vue.d.ts +1 -1
  97. package/dist/index18.vue.d.ts +4 -4
  98. package/dist/index20.vue.d.ts +87 -40
  99. package/dist/index21.vue.d.ts +47 -27
  100. package/dist/index22.vue.d.ts +95 -79
  101. package/dist/index23.vue.d.ts +24 -7
  102. package/dist/index24.vue.d.ts +76 -100
  103. package/dist/index25.vue.d.ts +7 -70
  104. package/dist/index26.vue.d.ts +99 -649
  105. package/dist/index27.vue.d.ts +81 -0
  106. package/dist/index28.vue.d.ts +662 -0
  107. package/dist/index3.vue.d.ts +3 -3
  108. package/dist/index4.vue.d.ts +6 -6
  109. package/dist/index6.vue.d.ts +2 -2
  110. package/dist/index8.vue.d.ts +1 -1
  111. package/dist/resolver.cjs +1 -1
  112. package/dist/resolver.cjs.map +1 -1
  113. package/dist/resolver.d.cts +1 -1
  114. package/dist/resolver.d.ts +1 -1
  115. package/dist/resolver.js +1 -1
  116. package/dist/resolver.js.map +1 -1
  117. package/dist/style.css +832 -220
  118. package/dist/useCalendarEvents.d.ts +1 -1
  119. package/dist/useCollapsePanel.d.ts +8 -8
  120. package/dist/useCropperCore.d.ts +4 -4
  121. package/dist/useDraggableLayout.d.ts +8 -8
  122. package/dist/useDynamicFormState.d.ts +10 -10
  123. package/dist/useEdgeInteraction.d.ts +1 -1
  124. package/dist/useFullscreen.d.ts +2 -2
  125. package/dist/useInfiniteScroll.d.ts +2 -2
  126. package/dist/useModalEdit.d.ts +52 -6
  127. package/dist/useQRCode.d.ts +5 -5
  128. package/dist/useSearchState.d.ts +2 -2
  129. package/dist/useSignatureHistory.d.ts +3 -3
  130. package/dist/useSplitResize.d.ts +8 -8
  131. package/dist/useTimeSelection.d.ts +2 -2
  132. package/dist/useTreeOperations.d.ts +4 -4
  133. package/dist/useWorkflowValidation.d.ts +2 -2
  134. package/package.json +5 -1
  135. package/dist/C_Chat-CcdWgVE8.css.map +0 -1
  136. package/dist/C_Chat-Cx0woEEe.css.map +0 -1
  137. package/dist/C_Editor-D0_6UhIa.css.map +0 -1
  138. package/dist/C_Editor-OlxIF9-5.css.map +0 -1
  139. package/dist/C_Markdown-7iBnLDtL.css.map +0 -1
  140. package/dist/C_Markdown-BbTvdFCl.css.map +0 -1
  141. package/dist/C_Table-vZlcgH6x.css.map +0 -1
  142. package/dist/C_Table-wzAO43l0.css.map +0 -1
@@ -67,8 +67,8 @@ declare const __VLS_export: vue.DefineComponent<CalendarProps, CalendarExpose, {
67
67
  "onEvent-dropped"?: ((event: Partial<CalendarEvent>) => any) | undefined;
68
68
  }>, {
69
69
  editable: boolean;
70
- initialView: CalendarViewType;
71
70
  events: CalendarEvent[];
71
+ initialView: CalendarViewType;
72
72
  showAddDialog: boolean;
73
73
  showEditDialog: boolean;
74
74
  }, {}, {}, {}, string, vue.ComponentProvideOptions, false, {}, any>;
@@ -70,23 +70,23 @@ declare var __VLS_7: `header-${string}`, __VLS_8: {
70
70
  };
71
71
  type __VLS_Slots = {} & { [K in NonNullable<typeof __VLS_7>]?: (props: typeof __VLS_8) => any } & { [K in NonNullable<typeof __VLS_16>]?: (props: typeof __VLS_17) => any } & { [K in NonNullable<typeof __VLS_31>]?: (props: typeof __VLS_32) => any };
72
72
  declare const __VLS_base: vue.DefineComponent<Props, CollapsePanelExpose, {}, {}, {}, vue.ComponentOptionsMixin, vue.ComponentOptionsMixin, {
73
- change: (activeKeys: string[]) => any;
74
- collapse: (key: string) => any;
75
- expand: (key: string) => any;
76
73
  "update:activeKeys": (keys: string[]) => any;
74
+ expand: (key: string) => any;
75
+ collapse: (key: string) => any;
76
+ change: (activeKeys: string[]) => any;
77
77
  }, string, vue.PublicProps, Readonly<Props> & Readonly<{
78
- onChange?: ((activeKeys: string[]) => any) | undefined;
79
- onCollapse?: ((key: string) => any) | undefined;
80
- onExpand?: ((key: string) => any) | undefined;
81
78
  "onUpdate:activeKeys"?: ((keys: string[]) => any) | undefined;
79
+ onExpand?: ((key: string) => any) | undefined;
80
+ onCollapse?: ((key: string) => any) | undefined;
81
+ onChange?: ((activeKeys: string[]) => any) | undefined;
82
82
  }>, {
83
- bordered: boolean;
84
- persistKey: string;
85
83
  activeKeys: string[];
86
84
  defaultActiveKeys: string[];
87
85
  accordion: boolean;
88
86
  variant: CollapsePanelVariant;
89
87
  expandIconPosition: ExpandIconPosition;
88
+ bordered: boolean;
89
+ persistKey: string;
90
90
  }, {}, {}, {}, string, vue.ComponentProvideOptions, false, {}, any>;
91
91
  declare const __VLS_export: __VLS_WithSlots<typeof __VLS_base, __VLS_Slots>;
92
92
  declare const _default: typeof __VLS_export;
@@ -51,22 +51,22 @@ interface ImageCropperEmits {
51
51
  //#endregion
52
52
  //#region src/components/C_ImageCropper/index.vue.d.ts
53
53
  declare const __VLS_export: vue.DefineComponent<ImageCropperProps, ImageCropperExpose, {}, {}, {}, vue.ComponentOptionsMixin, vue.ComponentOptionsMixin, {
54
- error: (error: Event) => any;
55
54
  ready: () => any;
56
55
  crop: (result: any) => any;
56
+ error: (error: Event) => any;
57
57
  confirm: (result: any) => any;
58
58
  cancel: () => any;
59
59
  }, string, vue.PublicProps, Readonly<ImageCropperProps> & Readonly<{
60
- onError?: ((error: Event) => any) | undefined;
61
60
  onReady?: (() => any) | undefined;
62
61
  onCrop?: ((result: any) => any) | undefined;
62
+ onError?: ((error: Event) => any) | undefined;
63
63
  onConfirm?: ((result: any) => any) | undefined;
64
64
  onCancel?: (() => any) | undefined;
65
65
  }>, {
66
- height: string | number;
67
66
  disabled: boolean;
68
- showPreview: boolean;
67
+ height: string | number;
69
68
  showToolbar: boolean;
69
+ showPreview: boolean;
70
70
  src: string;
71
71
  aspectRatio: number;
72
72
  outputFormat: CropOutputFormat;
@@ -118,11 +118,18 @@ declare const __VLS_base: vue.DefineComponent<DraggableProps, {
118
118
  }>, {
119
119
  sort: boolean;
120
120
  disabled: boolean;
121
- direction: "vertical" | "horizontal";
122
121
  modelValue: DraggableItem[];
122
+ emptyText: string;
123
+ direction: "vertical" | "horizontal";
124
+ layout: LayoutMode;
125
+ itemClass: string;
123
126
  delay: number;
124
127
  group: string | GroupOptions;
128
+ alignItems: AlignItems;
129
+ flexWrap: boolean;
130
+ justifyContent: JustifyContent;
125
131
  animation: number;
132
+ gap: string | number;
126
133
  handle: string;
127
134
  showHandle: boolean;
128
135
  ghostClass: string;
@@ -130,18 +137,11 @@ declare const __VLS_base: vue.DefineComponent<DraggableProps, {
130
137
  dragClass: string;
131
138
  wrapperClass: string;
132
139
  listClass: string;
133
- itemClass: string;
134
140
  showEmptyState: boolean;
135
- emptyText: string;
136
141
  swapThreshold: number;
137
142
  invertSwap: boolean;
138
- layout: LayoutMode;
139
143
  gridColumns: number;
140
144
  gridRows: number;
141
- gap: string | number;
142
- flexWrap: boolean;
143
- justifyContent: JustifyContent;
144
- alignItems: AlignItems;
145
145
  customStyles: Record<string, string | number>;
146
146
  }, {}, {}, {}, string, vue.ComponentProvideOptions, false, {}, any>;
147
147
  declare const __VLS_export: __VLS_WithSlots<typeof __VLS_base, __VLS_Slots>;
@@ -1296,7 +1296,6 @@ declare const useDynamicFormState: () => {
1296
1296
  readonly rules?: readonly {
1297
1297
  readonly type?: RuleType | undefined;
1298
1298
  readonly required?: boolean | undefined;
1299
- readonly max?: number | undefined;
1300
1299
  readonly options?: {
1301
1300
  readonly suppressWarning?: boolean | undefined;
1302
1301
  readonly suppressValidatorError?: boolean | undefined;
@@ -1352,10 +1351,12 @@ declare const useDynamicFormState: () => {
1352
1351
  readonly keys?: readonly string[] | undefined;
1353
1352
  readonly error?: ((rule: InternalRuleItem, message: string) => ValidateError) | undefined;
1354
1353
  } | undefined;
1355
- readonly trigger?: string | readonly string[] | undefined;
1356
- readonly pattern?: (RegExp | string) | undefined;
1354
+ readonly key?: string | undefined;
1355
+ readonly level?: "warning" | "error" | undefined;
1357
1356
  readonly asyncValidator?: naive_ui_es_form_src_interface0.FormItemRuleAsyncValidator | undefined;
1357
+ readonly pattern?: (RegExp | string) | undefined;
1358
1358
  readonly min?: number | undefined;
1359
+ readonly max?: number | undefined;
1359
1360
  readonly len?: number | undefined;
1360
1361
  readonly enum?: readonly (string | number | boolean | null | undefined)[] | undefined;
1361
1362
  readonly whitespace?: boolean | undefined;
@@ -1929,9 +1930,8 @@ declare const useDynamicFormState: () => {
1929
1930
  }[] | undefined;
1930
1931
  readonly transform?: ((value: Value) => Value) | undefined;
1931
1932
  readonly message?: string | ((a?: string) => string) | undefined;
1932
- readonly key?: string | undefined;
1933
+ readonly trigger?: string | readonly string[] | undefined;
1933
1934
  readonly renderMessage?: (() => vue.VNodeChild) | undefined;
1934
- readonly level?: "warning" | "error" | undefined;
1935
1935
  readonly validator: NonNullable<naive_ui0.FormItemRule["validator"]>;
1936
1936
  }[] | undefined;
1937
1937
  readonly attrs?: {
@@ -3573,7 +3573,6 @@ declare const useDynamicFormState: () => {
3573
3573
  readonly rules?: readonly {
3574
3574
  readonly type?: RuleType | undefined;
3575
3575
  readonly required?: boolean | undefined;
3576
- readonly max?: number | undefined;
3577
3576
  readonly options?: {
3578
3577
  readonly suppressWarning?: boolean | undefined;
3579
3578
  readonly suppressValidatorError?: boolean | undefined;
@@ -3629,10 +3628,12 @@ declare const useDynamicFormState: () => {
3629
3628
  readonly keys?: readonly string[] | undefined;
3630
3629
  readonly error?: ((rule: InternalRuleItem, message: string) => ValidateError) | undefined;
3631
3630
  } | undefined;
3632
- readonly trigger?: string | readonly string[] | undefined;
3633
- readonly pattern?: (RegExp | string) | undefined;
3631
+ readonly key?: string | undefined;
3632
+ readonly level?: "warning" | "error" | undefined;
3634
3633
  readonly asyncValidator?: naive_ui_es_form_src_interface0.FormItemRuleAsyncValidator | undefined;
3634
+ readonly pattern?: (RegExp | string) | undefined;
3635
3635
  readonly min?: number | undefined;
3636
+ readonly max?: number | undefined;
3636
3637
  readonly len?: number | undefined;
3637
3638
  readonly enum?: readonly (string | number | boolean | null | undefined)[] | undefined;
3638
3639
  readonly whitespace?: boolean | undefined;
@@ -4206,9 +4207,8 @@ declare const useDynamicFormState: () => {
4206
4207
  }[] | undefined;
4207
4208
  readonly transform?: ((value: Value) => Value) | undefined;
4208
4209
  readonly message?: string | ((a?: string) => string) | undefined;
4209
- readonly key?: string | undefined;
4210
+ readonly trigger?: string | readonly string[] | undefined;
4210
4211
  readonly renderMessage?: (() => vue.VNodeChild) | undefined;
4211
- readonly level?: "warning" | "error" | undefined;
4212
4212
  readonly validator: NonNullable<naive_ui0.FormItemRule["validator"]>;
4213
4213
  }[] | undefined;
4214
4214
  }[];
@@ -259,9 +259,9 @@ declare const __VLS_export: vue.DefineComponent<Props, {
259
259
  onReady?: ((graph: any) => any) | undefined;
260
260
  "onData-change"?: ((data: DiagramData) => any) | undefined;
261
261
  }>, {
262
+ theme: "light" | "dark";
262
263
  width: string | number;
263
264
  height: string | number;
264
- theme: "light" | "dark";
265
265
  readonly: boolean;
266
266
  showToolbar: boolean;
267
267
  }, {}, {}, {}, string, vue.ComponentProvideOptions, false, {}, any>;
@@ -9,11 +9,11 @@ type __VLS_Props = {
9
9
  autoPreview?: boolean;
10
10
  };
11
11
  declare const __VLS_export: vue.DefineComponent<__VLS_Props, {}, {}, {}, {}, vue.ComponentOptionsMixin, vue.ComponentOptionsMixin, {
12
- download: (file: string | File) => any;
13
12
  preview: (file: string | File) => any;
13
+ download: (file: string | File) => any;
14
14
  }, string, vue.PublicProps, Readonly<__VLS_Props> & Readonly<{
15
- onDownload?: ((file: string | File) => any) | undefined;
16
15
  onPreview?: ((file: string | File) => any) | undefined;
16
+ onDownload?: ((file: string | File) => any) | undefined;
17
17
  }>, {
18
18
  fileName: string;
19
19
  autoPreview: boolean;
@@ -89,10 +89,10 @@ declare const __VLS_base: vue.DefineComponent<WaterFallProps, WaterFallExpose, {
89
89
  "onImage-loaded"?: ((item: WaterFallItem) => any) | undefined;
90
90
  "onImage-error"?: ((item: WaterFallItem) => any) | undefined;
91
91
  }>, {
92
+ columns: number;
92
93
  loading: boolean;
93
- gap: number;
94
94
  animationDuration: number;
95
- columns: number;
95
+ gap: number;
96
96
  infinite: boolean;
97
97
  lazy: boolean;
98
98
  skeleton: boolean;
@@ -437,6 +437,12 @@ interface TableConfig<T extends DataRecord = DataRecord> {
437
437
  toolbar?: ToolbarConfig;
438
438
  /** 表格显示属性 */
439
439
  display?: DisplayConfig;
440
+ /** 虚拟滚动配置(大数据量) */
441
+ virtualScroll?: VirtualScrollConfig | boolean;
442
+ /** 合计行配置(财务场景) */
443
+ summary?: SummaryConfig<T>;
444
+ /** 列拖拽排序 */
445
+ columnDrag?: ColumnDragConfig | boolean;
440
446
  }
441
447
  interface EditConfig {
442
448
  enabled?: boolean;
@@ -481,6 +487,32 @@ interface DisplayConfig {
481
487
  scrollX?: number | string;
482
488
  columnWidth?: number;
483
489
  }
490
+ /** 虚拟滚动配置 */
491
+ interface VirtualScrollConfig {
492
+ enabled?: boolean;
493
+ /** 每行高度(px) */
494
+ itemHeight?: number;
495
+ /** 最大高度(px),用于滚动容器 */
496
+ maxHeight?: number;
497
+ }
498
+ /** 合计行配置 */
499
+ interface SummaryConfig<T extends DataRecord = DataRecord> {
500
+ /** 合计行位置 */
501
+ position?: 'top' | 'bottom';
502
+ /** 自定义合计函数,每列返回 { value, colSpan? } */
503
+ render?: (data: T[]) => Record<string, {
504
+ value: string | number;
505
+ colSpan?: number;
506
+ }>;
507
+ }
508
+ /** 列拖拽排序配置 */
509
+ interface ColumnDragConfig {
510
+ enabled?: boolean;
511
+ /** 拖拽手柄类名(默认拖拽头部区域) */
512
+ handleClass?: string;
513
+ /** 拖拽动画时长(ms) */
514
+ animationDuration?: number;
515
+ }
484
516
  interface ResolvedConfig {
485
517
  editable: boolean;
486
518
  editMode: string;
@@ -511,6 +543,20 @@ interface ResolvedConfig {
511
543
  columnWidth: number;
512
544
  showToolbar: boolean;
513
545
  enableColumnSettings: boolean;
546
+ /** 虚拟滚动 */
547
+ virtualScroll: boolean;
548
+ virtualItemHeight: number;
549
+ virtualMaxHeight: number;
550
+ /** 合计行 */
551
+ summaryPosition: 'top' | 'bottom' | undefined;
552
+ summaryRender: ((data: DataRecord[]) => Record<string, {
553
+ value: string | number;
554
+ colSpan?: number;
555
+ }>) | undefined;
556
+ /** 列拖拽 */
557
+ enableColumnDrag: boolean;
558
+ columnDragHandleClass: string;
559
+ columnDragAnimationDuration: number;
514
560
  }
515
561
  /**
516
562
  * 将 config 单一对象解析为内部扁平化配置
@@ -547,7 +593,7 @@ declare const __VLS_base: vue.DefineComponent<__VLS_Props, {
547
593
  clearRowSelection: () => void;
548
594
  resetToFirstPage: () => void;
549
595
  getSelectedRows: () => DataRecord[];
550
- getEditingData: () => vue.Ref<Record<string, any>, Record<string, any>> | DataRecord | null;
596
+ getEditingData: () => DataRecord | vue.Ref<Record<string, any>, Record<string, any>> | null;
551
597
  isEditing: (rowKey: DataTableRowKey$1, columnKey?: string) => boolean;
552
598
  isExpanded: (rowKey: DataTableRowKey$1) => boolean;
553
599
  getManager: () => {
@@ -556,7 +602,7 @@ declare const __VLS_base: vue.DefineComponent<__VLS_Props, {
556
602
  cancel(): void;
557
603
  save(): Promise<void>;
558
604
  isEditing(rowKey: DataTableRowKey$1, columnKey?: string): boolean;
559
- getEditingData(): vue.Ref<Record<string, any>, Record<string, any>> | DataRecord | null;
605
+ getEditingData(): DataRecord | vue.Ref<Record<string, any>, Record<string, any>> | null;
560
606
  };
561
607
  expand: {
562
608
  row(rowKey: DataTableRowKey$1): Promise<void>;
@@ -596,8 +642,8 @@ declare const __VLS_base: vue.DefineComponent<__VLS_Props, {
596
642
  clearAllSelections(): void;
597
643
  };
598
644
  }, {}, {}, {}, vue.ComponentOptionsMixin, vue.ComponentOptionsMixin, {
599
- cancel: (rowData: DataRecord, rowIndex: number) => any;
600
645
  save: (rowData: DataRecord, rowIndex: number, columnKey?: string | undefined) => any;
646
+ cancel: (rowData: DataRecord, rowIndex: number) => any;
601
647
  "pagination-change": (...args: unknown[]) => any;
602
648
  "row-delete": (...args: unknown[]) => any;
603
649
  "expand-change": (expandedKeys: DataTableRowKey$1[], row?: DataRecord | undefined, expanded?: boolean | undefined) => any;
@@ -612,8 +658,8 @@ declare const __VLS_base: vue.DefineComponent<__VLS_Props, {
612
658
  "view-detail": (data: DataRecord) => any;
613
659
  "column-change": (columns: TableColumn[]) => any;
614
660
  }, string, vue.PublicProps, Readonly<__VLS_Props> & Readonly<{
615
- onCancel?: ((rowData: DataRecord, rowIndex: number) => any) | undefined;
616
661
  onSave?: ((rowData: DataRecord, rowIndex: number, columnKey?: string | undefined) => any) | undefined;
662
+ onCancel?: ((rowData: DataRecord, rowIndex: number) => any) | undefined;
617
663
  "onPagination-change"?: ((...args: unknown[]) => any) | undefined;
618
664
  "onRow-delete"?: ((...args: unknown[]) => any) | undefined;
619
665
  "onExpand-change"?: ((expandedKeys: DataTableRowKey$1[], row?: DataRecord | undefined, expanded?: boolean | undefined) => any) | undefined;
@@ -816,7 +862,7 @@ declare function useTableManager(params: TableManagerParams): {
816
862
  cancel(): void; /** 保存编辑 */
817
863
  save(): Promise<void>; /** 是否正在编辑 */
818
864
  isEditing(rowKey: DataTableRowKey$1, columnKey?: string): boolean; /** 获取当前编辑数据 */
819
- getEditingData(): vue.Ref<Record<string, any>, Record<string, any>> | DataRecord | null;
865
+ getEditingData(): DataRecord | vue.Ref<Record<string, any>, Record<string, any>> | null;
820
866
  };
821
867
  expand: {
822
868
  /** 展开行 */row(rowKey: DataTableRowKey$1): Promise<void>; /** 折叠行 */
@@ -985,5 +1031,5 @@ declare function useModalEdit<T = Record<string, any>>(options: ModalEditOptions
985
1031
  getEditingRowData: (rowKey: DataTableRowKey$1) => Record<string, any> | null;
986
1032
  };
987
1033
  //#endregion
988
- export { UseTableExpandOptions as A, MaybeRefLike as C, SimpleTableActions as D, SelectOption as E, TableColumn as O, EditMode as S, ParentChildLinkMode as T, PrintWatermarkOptions as _, useTableActions as a, ChildSelectionState as b, useTableColumns as c, TableConfig as d, createEditModeChecker as f, useDynamicRows as g, DynamicRowsReturn as h, usePagination as i, UseTableExpandReturn as j, TableEmits as k, _default as l, DynamicRowsOptions as m, useCellEdit as n, useTableExpand as o, resolveConfig as p, useRowEdit as r, useTableManager as s, useModalEdit as t, CrudBinding as u, printPresets as v, PaginationConfig as w, DataRecord as x, usePrintWatermark as y };
1034
+ export { SimpleTableActions as A, ChildSelectionState as C, PaginationConfig as D, MaybeRefLike as E, TableEmits as M, UseTableExpandOptions as N, ParentChildLinkMode as O, UseTableExpandReturn as P, usePrintWatermark as S, EditMode as T, DynamicRowsOptions as _, useTableActions as a, PrintWatermarkOptions as b, useTableColumns as c, CrudBinding as d, SummaryConfig as f, resolveConfig as g, createEditModeChecker as h, usePagination as i, TableColumn as j, SelectOption as k, _default as l, VirtualScrollConfig as m, useCellEdit as n, useTableExpand as o, TableConfig as p, useRowEdit as r, useTableManager as s, useModalEdit as t, ColumnDragConfig as u, DynamicRowsReturn as v, DataRecord as w, printPresets as x, useDynamicRows as y };
989
1035
  //# sourceMappingURL=useModalEdit.d.ts.map
@@ -50,15 +50,15 @@ declare const __VLS_export: vue.DefineComponent<Props, QRCodeExpose, {}, {}, {},
50
50
  }, string, vue.PublicProps, Readonly<Props> & Readonly<{
51
51
  onError?: ((error: Error) => any) | undefined;
52
52
  }>, {
53
- showBorder: boolean;
54
- label: string;
55
- showLabel: boolean;
56
53
  size: number;
57
- color: string;
54
+ label: string;
58
55
  mode: RenderMode;
56
+ color: string;
57
+ showBorder: boolean;
58
+ margin: number;
59
+ showLabel: boolean;
59
60
  bgColor: string;
60
61
  errorCorrectionLevel: ErrorCorrectionLevel;
61
- margin: number;
62
62
  logo: LogoOptions;
63
63
  }, {}, {}, {}, string, vue.ComponentProvideOptions, false, {}, any>;
64
64
  declare const _default: typeof __VLS_export;
@@ -55,12 +55,12 @@ declare const __VLS_export: vue.DefineComponent<Props, {
55
55
  cleanFn: () => void;
56
56
  changeFoldState: () => void;
57
57
  }, {}, {}, {}, vue.ComponentOptionsMixin, vue.ComponentOptionsMixin, {
58
- reset: () => any;
59
58
  search: (params: SearchFormParams) => any;
59
+ reset: () => any;
60
60
  "change-params": (params: SearchFormParams) => any;
61
61
  }, string, vue.PublicProps, Readonly<Props> & Readonly<{
62
- onReset?: (() => any) | undefined;
63
62
  onSearch?: ((params: SearchFormParams) => any) | undefined;
63
+ onReset?: (() => any) | undefined;
64
64
  "onChange-params"?: ((params: SearchFormParams) => any) | undefined;
65
65
  }>, {
66
66
  size: "small" | "medium" | "large";
@@ -91,25 +91,25 @@ interface SignatureEmits {
91
91
  //#endregion
92
92
  //#region src/components/C_Signature/index.vue.d.ts
93
93
  declare const __VLS_export: vue.DefineComponent<SignatureProps, SignatureExpose, {}, {}, {}, vue.ComponentOptionsMixin, vue.ComponentOptionsMixin, {
94
- change: (data: SignatureStroke[]) => any;
95
94
  clear: () => any;
95
+ change: (data: SignatureStroke[]) => any;
96
96
  "start-draw": () => any;
97
97
  drawing: (point: SignaturePoint) => any;
98
98
  "end-draw": (stroke: SignatureStroke) => any;
99
99
  undo: () => any;
100
100
  redo: () => any;
101
101
  }, string, vue.PublicProps, Readonly<SignatureProps> & Readonly<{
102
- onChange?: ((data: SignatureStroke[]) => any) | undefined;
103
102
  onClear?: (() => any) | undefined;
103
+ onChange?: ((data: SignatureStroke[]) => any) | undefined;
104
104
  "onStart-draw"?: (() => any) | undefined;
105
105
  onDrawing?: ((point: SignaturePoint) => any) | undefined;
106
106
  "onEnd-draw"?: ((stroke: SignatureStroke) => any) | undefined;
107
107
  onUndo?: (() => any) | undefined;
108
108
  onRedo?: (() => any) | undefined;
109
109
  }>, {
110
+ disabled: boolean;
110
111
  width: number | string;
111
112
  height: number | string;
112
- disabled: boolean;
113
113
  readonly: boolean;
114
114
  showToolbar: boolean;
115
115
  maxHistory: number;
@@ -66,25 +66,25 @@ type __VLS_Slots = {} & {
66
66
  second?: (props: typeof __VLS_13) => any;
67
67
  };
68
68
  declare const __VLS_base: vue.DefineComponent<Props, SplitPaneExpose, {}, {}, {}, vue.ComponentOptionsMixin, vue.ComponentOptionsMixin, {
69
+ expand: (target: CollapseTarget) => any;
70
+ collapse: (target: CollapseTarget) => any;
71
+ resize: (firstSize: number, secondSize: number) => any;
69
72
  "drag-start": (size: number) => any;
70
73
  "drag-end": (size: number) => any;
71
- resize: (firstSize: number, secondSize: number) => any;
72
- collapse: (target: CollapseTarget) => any;
73
- expand: (target: CollapseTarget) => any;
74
74
  }, string, vue.PublicProps, Readonly<Props> & Readonly<{
75
+ onExpand?: ((target: CollapseTarget) => any) | undefined;
76
+ onCollapse?: ((target: CollapseTarget) => any) | undefined;
77
+ onResize?: ((firstSize: number, secondSize: number) => any) | undefined;
75
78
  "onDrag-start"?: ((size: number) => any) | undefined;
76
79
  "onDrag-end"?: ((size: number) => any) | undefined;
77
- onResize?: ((firstSize: number, secondSize: number) => any) | undefined;
78
- onCollapse?: ((target: CollapseTarget) => any) | undefined;
79
- onExpand?: ((target: CollapseTarget) => any) | undefined;
80
80
  }>, {
81
81
  disabled: boolean;
82
- direction: SplitDirection;
83
82
  step: number;
83
+ direction: SplitDirection;
84
+ collapsible: boolean;
84
85
  defaultSize: number;
85
86
  minSize: number;
86
87
  maxSize: number;
87
- collapsible: boolean;
88
88
  showCollapseButton: boolean;
89
89
  gutterSize: number;
90
90
  }, {}, {}, {}, string, vue.ComponentProvideOptions, false, {}, any>;
@@ -48,12 +48,12 @@ declare const __VLS_export: vue.DefineComponent<TimeProps, TimeExpose, {}, {}, {
48
48
  "onChange-start"?: ((time: number | null) => any) | undefined;
49
49
  "onChange-end"?: ((time: number | null) => any) | undefined;
50
50
  }>, {
51
- format: string;
52
51
  placeholder: string;
53
52
  mode: TimeMode;
53
+ attrs: Record<string, any>;
54
+ format: string;
54
55
  startPlaceholder: string;
55
56
  endPlaceholder: string;
56
- attrs: Record<string, any>;
57
57
  useHours: boolean;
58
58
  useMinutes: boolean;
59
59
  useSeconds: boolean;
@@ -102,16 +102,15 @@ declare const __VLS_base: vue.DefineComponent<TreeProps, TreeExpose, {}, {}, {},
102
102
  "onNode-action"?: ((action: string, node: TreeNodeData) => any) | undefined;
103
103
  "onNode-drop"?: ((info: DropInfo) => any) | undefined;
104
104
  }>, {
105
- actions: ActionConfig[];
105
+ showToolbar: boolean;
106
+ mode: TreeMode;
106
107
  labelField: string;
107
108
  childrenField: string;
108
- mode: TreeMode;
109
- showToolbar: boolean;
110
- draggable: boolean;
111
109
  keyField: string;
112
110
  searchPattern: string;
113
111
  searchable: boolean;
114
112
  searchPlaceholder: string;
113
+ draggable: boolean;
115
114
  showLine: boolean;
116
115
  addable: boolean;
117
116
  addText: string;
@@ -119,6 +118,7 @@ declare const __VLS_base: vue.DefineComponent<TreeProps, TreeExpose, {}, {}, {},
119
118
  iconField: string;
120
119
  iconConfig: IconConfig;
121
120
  statusConfigs: StatusConfig[];
121
+ actions: ActionConfig[];
122
122
  defaultExpandAll: boolean;
123
123
  defaultExpandedKeys: (string | number)[];
124
124
  defaultSelectedKeys: (string | number)[];
@@ -239,16 +239,16 @@ declare const __VLS_export: vue.DefineComponent<WorkflowProps, {
239
239
  }, {}, {}, {}, vue.ComponentOptionsMixin, vue.ComponentOptionsMixin, {
240
240
  change: (value: WorkflowData) => any;
241
241
  "update:modelValue": (value: WorkflowData) => any;
242
- "validate-error": (errors: ValidationError[]) => any;
243
242
  save: (data: WorkflowData) => any;
244
243
  "node-click": (node: WorkflowNode) => any;
244
+ "validate-error": (errors: ValidationError[]) => any;
245
245
  "edge-click": (edge: WorkflowEdge) => any;
246
246
  }, string, vue.PublicProps, Readonly<WorkflowProps> & Readonly<{
247
247
  onChange?: ((value: WorkflowData) => any) | undefined;
248
248
  "onUpdate:modelValue"?: ((value: WorkflowData) => any) | undefined;
249
- "onValidate-error"?: ((errors: ValidationError[]) => any) | undefined;
250
249
  onSave?: ((data: WorkflowData) => any) | undefined;
251
250
  "onNode-click"?: ((node: WorkflowNode) => any) | undefined;
251
+ "onValidate-error"?: ((errors: ValidationError[]) => any) | undefined;
252
252
  "onEdge-click"?: ((edge: WorkflowEdge) => any) | undefined;
253
253
  }>, {
254
254
  theme: "light" | "dark";
package/package.json CHANGED
@@ -3,7 +3,7 @@
3
3
  "publishConfig": {
4
4
  "access": "public"
5
5
  },
6
- "version": "0.6.28",
6
+ "version": "0.6.30",
7
7
  "description": "基于 Naive UI 的 Vue 3 组件库",
8
8
  "type": "module",
9
9
  "main": "dist/index.cjs",
@@ -77,6 +77,9 @@
77
77
  "naive-ui": "^2.35.0",
78
78
  "vue-router": "^4.0.0"
79
79
  },
80
+ "optionalDependencies": {
81
+ "sortablejs": "^1.15.7"
82
+ },
80
83
  "dependencies": {
81
84
  "@antv/x6": "^2.18.0",
82
85
  "@chenfengyuan/vue-barcode": "^2.0.0",
@@ -115,6 +118,7 @@
115
118
  "@commitlint/config-conventional": "^20.4.2",
116
119
  "@robot-admin/git-standards": "1.0.3",
117
120
  "@types/node": "^24.2.1",
121
+ "@types/sortablejs": "^1.15.9",
118
122
  "@typescript-eslint/eslint-plugin": "^8.56.1",
119
123
  "@typescript-eslint/parser": "^8.56.1",
120
124
  "@vitejs/plugin-vue": "^6.0.1",
@@ -1 +0,0 @@
1
- {"version":3,"file":"C_Chat-CcdWgVE8.css","names":[],"sources":["../src/components/C_Chat/index.vue?vue&type=style&index=0&scoped=5e7f3fe9&lang.scss"],"sourcesContent":["/* unplugin-vue-components disabled *//* ─── CSS 变量(基于项目主题变量,自动适配明暗) ───────────────────────── */\n.c-chat[data-v-5e7f3fe9] {\n --chat-bg: var(--card-color);\n --chat-sidebar-bg: var(--body-color);\n --chat-sidebar-width: 280px;\n --chat-header-bg: var(--card-color);\n --chat-header-height: 56px;\n --chat-input-bg: var(--body-color);\n --chat-input-height: 56px;\n --chat-bubble-self: var(--primary-color);\n --chat-bubble-other: var(--body-color);\n --chat-bubble-system: transparent;\n --chat-text-primary: var(--app-text-primary);\n --chat-text-secondary: var(--text-color-3);\n --chat-text-self: #fff;\n --chat-border: var(--border-color);\n --chat-radius: 12px;\n --chat-avatar-size: 36px;\n --chat-scrollbar-thumb: var(--border-color);\n display: flex;\n width: 100%;\n height: 100%;\n min-height: 0;\n border-radius: var(--chat-radius);\n overflow: hidden;\n background: var(--chat-bg);\n color: var(--chat-text-primary);\n font-size: 14px;\n border: 1px solid var(--chat-border);\n box-shadow: 0 2px 12px rgba(0, 0, 0, 0.06);\n}\n\n/* ─── 联系人侧栏 ──────────────────────────────────────── */\n.c-chat__sidebar[data-v-5e7f3fe9] {\n display: flex;\n flex-direction: column;\n width: var(--chat-sidebar-width);\n min-width: var(--chat-sidebar-width);\n background: var(--chat-sidebar-bg);\n border-right: 1px solid var(--chat-border);\n box-shadow: 2px 0 8px rgba(0, 0, 0, 0.03);\n}\n.c-chat__sidebar-header[data-v-5e7f3fe9] {\n display: flex;\n align-items: center;\n gap: 8px;\n height: var(--chat-header-height);\n padding: 0 16px;\n border-bottom: 1px solid var(--chat-border);\n font-weight: 600;\n font-size: 15px;\n}\n.c-chat__search[data-v-5e7f3fe9] {\n padding: 8px 12px;\n}\n.c-chat__contact-list[data-v-5e7f3fe9] {\n flex: 1;\n overflow-y: auto;\n overscroll-behavior: contain;\n}\n.c-chat__contact-list[data-v-5e7f3fe9]::-webkit-scrollbar {\n width: 4px;\n}\n.c-chat__contact-list[data-v-5e7f3fe9]::-webkit-scrollbar-thumb {\n background: var(--chat-scrollbar-thumb);\n border-radius: 2px;\n}\n.c-chat__contact[data-v-5e7f3fe9] {\n display: flex;\n align-items: center;\n gap: 10px;\n padding: 10px 16px;\n cursor: pointer;\n transition: background 0.15s;\n}\n.c-chat__contact[data-v-5e7f3fe9]:hover {\n background: color-mix(in srgb, var(--primary-color) 6%, transparent);\n}\n.c-chat__contact.is-active[data-v-5e7f3fe9] {\n background: color-mix(in srgb, var(--primary-color) 12%, transparent);\n}\n.c-chat__contact-avatar[data-v-5e7f3fe9] {\n position: relative;\n flex-shrink: 0;\n}\n.c-chat__avatar[data-v-5e7f3fe9] {\n width: var(--chat-avatar-size);\n height: var(--chat-avatar-size);\n border-radius: 50%;\n object-fit: cover;\n background: color-mix(in srgb, var(--border-color) 50%, transparent);\n}\n.c-chat__avatar-fallback[data-v-5e7f3fe9] {\n width: var(--chat-avatar-size);\n height: var(--chat-avatar-size);\n border-radius: 50%;\n background: color-mix(in srgb, var(--primary-color) 25%, transparent);\n display: flex;\n align-items: center;\n justify-content: center;\n font-size: 14px;\n font-weight: 600;\n color: var(--app-text-primary);\n}\n.c-chat__online-dot[data-v-5e7f3fe9] {\n position: absolute;\n bottom: 0;\n right: 0;\n width: 10px;\n height: 10px;\n border-radius: 50%;\n background: #22c55e;\n border: 2px solid var(--chat-sidebar-bg);\n}\n.c-chat__contact-info[data-v-5e7f3fe9] {\n flex: 1;\n min-width: 0;\n}\n.c-chat__contact-name[data-v-5e7f3fe9] {\n display: flex;\n align-items: center;\n justify-content: space-between;\n font-size: 13px;\n font-weight: 500;\n}\n.c-chat__contact-time[data-v-5e7f3fe9] {\n font-size: 11px;\n color: var(--chat-text-secondary);\n margin-left: 8px;\n flex-shrink: 0;\n}\n.c-chat__contact-last[data-v-5e7f3fe9] {\n font-size: 12px;\n color: var(--chat-text-secondary);\n white-space: nowrap;\n overflow: hidden;\n text-overflow: ellipsis;\n margin-top: 2px;\n}\n.c-chat__unread[data-v-5e7f3fe9] {\n min-width: 18px;\n height: 18px;\n padding: 0 5px;\n border-radius: 9px;\n background: #ef4444;\n color: #fff;\n font-size: 11px;\n font-weight: 600;\n display: flex;\n align-items: center;\n justify-content: center;\n flex-shrink: 0;\n}\n\n/* ─── 主聊天区域 ──────────────────────────────────────── */\n.c-chat__main[data-v-5e7f3fe9] {\n flex: 1;\n display: flex;\n flex-direction: column;\n min-width: 0;\n}\n.c-chat__header[data-v-5e7f3fe9] {\n display: flex;\n align-items: center;\n gap: 10px;\n height: var(--chat-header-height);\n padding: 0 20px;\n background: var(--chat-header-bg);\n border-bottom: 1px solid var(--chat-border);\n box-shadow: 0 1px 4px rgba(0, 0, 0, 0.03);\n font-weight: 600;\n font-size: 15px;\n}\n.c-chat__header-status[data-v-5e7f3fe9] {\n font-size: 12px;\n font-weight: 400;\n color: var(--chat-text-secondary);\n}\n\n/* ─── 消息区域 ────────────────────────────────────────── */\n.c-chat__messages[data-v-5e7f3fe9] {\n flex: 1;\n overflow-y: auto;\n overscroll-behavior: contain;\n padding: 16px 20px;\n display: flex;\n flex-direction: column;\n gap: 12px;\n background: color-mix(in srgb, var(--body-color) 50%, var(--card-color));\n}\n.c-chat__messages[data-v-5e7f3fe9]::-webkit-scrollbar {\n width: 4px;\n}\n.c-chat__messages[data-v-5e7f3fe9]::-webkit-scrollbar-thumb {\n background: var(--chat-scrollbar-thumb);\n border-radius: 2px;\n}\n.c-chat__load-more[data-v-5e7f3fe9] {\n text-align: center;\n padding: 8px;\n}\n.c-chat__empty[data-v-5e7f3fe9] {\n flex: 1;\n display: flex;\n align-items: center;\n justify-content: center;\n color: var(--chat-text-secondary);\n font-size: 13px;\n}\n\n/* ─── 消息气泡 ────────────────────────────────────────── */\n.c-chat__msg[data-v-5e7f3fe9] {\n display: flex;\n gap: 8px;\n max-width: 75%;\n}\n.c-chat__msg.is-self[data-v-5e7f3fe9] {\n margin-left: auto;\n flex-direction: row-reverse;\n}\n.c-chat__msg.is-system[data-v-5e7f3fe9] {\n max-width: 100%;\n justify-content: center;\n align-self: center;\n}\n.c-chat__msg-avatar[data-v-5e7f3fe9] {\n flex-shrink: 0;\n margin-top: 2px;\n}\n.c-chat__msg-body[data-v-5e7f3fe9] {\n display: flex;\n flex-direction: column;\n}\n.c-chat__msg-username[data-v-5e7f3fe9] {\n font-size: 12px;\n color: var(--chat-text-secondary);\n margin-bottom: 2px;\n}\n.is-self .c-chat__msg-username[data-v-5e7f3fe9] {\n text-align: right;\n}\n.c-chat__bubble[data-v-5e7f3fe9] {\n padding: 10px 14px;\n border-radius: 16px;\n line-height: 1.5;\n word-break: break-word;\n white-space: pre-wrap;\n}\n.is-other .c-chat__bubble[data-v-5e7f3fe9] {\n background: var(--chat-bubble-other);\n border: 1px solid var(--chat-border);\n border-top-left-radius: 4px;\n}\n.is-self .c-chat__bubble[data-v-5e7f3fe9] {\n background: var(--chat-bubble-self);\n color: var(--chat-text-self);\n border-top-right-radius: 4px;\n}\n.is-system .c-chat__bubble[data-v-5e7f3fe9] {\n background: var(--chat-bubble-system);\n color: var(--chat-text-secondary);\n font-size: 12px;\n padding: 4px 12px;\n}\n.c-chat__msg-image[data-v-5e7f3fe9] {\n max-width: 240px;\n max-height: 180px;\n border-radius: 12px;\n cursor: pointer;\n object-fit: cover;\n}\n.is-self .c-chat__msg-image[data-v-5e7f3fe9] {\n border-top-right-radius: 4px;\n}\n.is-other .c-chat__msg-image[data-v-5e7f3fe9] {\n border-top-left-radius: 4px;\n}\n.c-chat__msg-file[data-v-5e7f3fe9] {\n display: flex;\n align-items: center;\n gap: 8px;\n padding: 10px 14px;\n border-radius: 12px;\n cursor: pointer;\n}\n.is-other .c-chat__msg-file[data-v-5e7f3fe9] {\n background: var(--chat-bubble-other);\n border: 1px solid var(--chat-border);\n border-top-left-radius: 4px;\n}\n.is-self .c-chat__msg-file[data-v-5e7f3fe9] {\n background: var(--chat-bubble-self);\n color: var(--chat-text-self);\n border-top-right-radius: 4px;\n}\n.c-chat__file-info[data-v-5e7f3fe9] {\n display: flex;\n flex-direction: column;\n min-width: 0;\n}\n.c-chat__file-name[data-v-5e7f3fe9] {\n font-size: 13px;\n font-weight: 500;\n white-space: nowrap;\n overflow: hidden;\n text-overflow: ellipsis;\n}\n.c-chat__file-size[data-v-5e7f3fe9] {\n font-size: 11px;\n opacity: 0.6;\n}\n.c-chat__msg-time[data-v-5e7f3fe9] {\n font-size: 11px;\n color: var(--chat-text-secondary);\n margin-top: 4px;\n}\n.is-self .c-chat__msg-time[data-v-5e7f3fe9] {\n text-align: right;\n}\n.c-chat__msg-status[data-v-5e7f3fe9] {\n font-size: 11px;\n margin-top: 2px;\n text-align: right;\n}\n.c-chat__msg-status.is-sending[data-v-5e7f3fe9] {\n color: var(--chat-text-secondary);\n}\n.c-chat__msg-status.is-failed[data-v-5e7f3fe9] {\n color: #ef4444;\n cursor: pointer;\n}\n\n/* ─── 时间分割线 ──────────────────────────────────────── */\n.c-chat__time-divider[data-v-5e7f3fe9] {\n text-align: center;\n font-size: 11px;\n color: var(--chat-text-secondary);\n padding: 4px 0;\n}\n\n/* ─── 输入区域 ────────────────────────────────────────── */\n.c-chat__input-area[data-v-5e7f3fe9] {\n display: flex;\n align-items: center;\n gap: 8px;\n min-height: var(--chat-input-height);\n padding: 10px 16px;\n background: var(--chat-input-bg);\n border-top: 1px solid var(--chat-border);\n}\n.c-chat__input-actions[data-v-5e7f3fe9] {\n display: flex;\n gap: 4px;\n flex-shrink: 0;\n}\n.c-chat__input-wrap[data-v-5e7f3fe9] {\n flex: 1;\n min-width: 0;\n}\n.c-chat__send-btn[data-v-5e7f3fe9] {\n flex-shrink: 0;\n}\n\n/* ─── 空态 ────────────────────────────────────────────── */\n.c-chat__no-chat[data-v-5e7f3fe9] {\n flex: 1;\n display: flex;\n flex-direction: column;\n align-items: center;\n justify-content: center;\n gap: 12px;\n color: var(--chat-text-secondary);\n}\n.c-chat__no-chat-icon[data-v-5e7f3fe9] {\n font-size: 48px;\n opacity: 0.3;\n}\n\n/* ─── 响应式 ──────────────────────────────────────────── */\n@media (max-width: 640px) {\n.c-chat[data-v-5e7f3fe9] {\n --chat-sidebar-width: 72px;\n}\n.c-chat__contact-info[data-v-5e7f3fe9],\n .c-chat__search[data-v-5e7f3fe9],\n .c-chat__unread[data-v-5e7f3fe9] {\n display: none;\n}\n.c-chat__contact[data-v-5e7f3fe9] {\n justify-content: center;\n padding: 10px 8px;\n}\n}"],"mappings":"AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"C_Chat-Cx0woEEe.css","names":[],"sources":["../src/components/C_Chat/index.vue?vue&type=style&index=0&scoped=5e7f3fe9&lang.scss"],"sourcesContent":["/* unplugin-vue-components disabled *//* ─── CSS 变量(基于项目主题变量,自动适配明暗) ───────────────────────── */\n.c-chat[data-v-5e7f3fe9] {\n --chat-bg: var(--card-color);\n --chat-sidebar-bg: var(--body-color);\n --chat-sidebar-width: 280px;\n --chat-header-bg: var(--card-color);\n --chat-header-height: 56px;\n --chat-input-bg: var(--body-color);\n --chat-input-height: 56px;\n --chat-bubble-self: var(--primary-color);\n --chat-bubble-other: var(--body-color);\n --chat-bubble-system: transparent;\n --chat-text-primary: var(--app-text-primary);\n --chat-text-secondary: var(--text-color-3);\n --chat-text-self: #fff;\n --chat-border: var(--border-color);\n --chat-radius: 12px;\n --chat-avatar-size: 36px;\n --chat-scrollbar-thumb: var(--border-color);\n display: flex;\n width: 100%;\n height: 100%;\n min-height: 0;\n border-radius: var(--chat-radius);\n overflow: hidden;\n background: var(--chat-bg);\n color: var(--chat-text-primary);\n font-size: 14px;\n border: 1px solid var(--chat-border);\n box-shadow: 0 2px 12px rgba(0, 0, 0, 0.06);\n}\n\n/* ─── 联系人侧栏 ──────────────────────────────────────── */\n.c-chat__sidebar[data-v-5e7f3fe9] {\n display: flex;\n flex-direction: column;\n width: var(--chat-sidebar-width);\n min-width: var(--chat-sidebar-width);\n background: var(--chat-sidebar-bg);\n border-right: 1px solid var(--chat-border);\n box-shadow: 2px 0 8px rgba(0, 0, 0, 0.03);\n}\n.c-chat__sidebar-header[data-v-5e7f3fe9] {\n display: flex;\n align-items: center;\n gap: 8px;\n height: var(--chat-header-height);\n padding: 0 16px;\n border-bottom: 1px solid var(--chat-border);\n font-weight: 600;\n font-size: 15px;\n}\n.c-chat__search[data-v-5e7f3fe9] {\n padding: 8px 12px;\n}\n.c-chat__contact-list[data-v-5e7f3fe9] {\n flex: 1;\n overflow-y: auto;\n overscroll-behavior: contain;\n}\n.c-chat__contact-list[data-v-5e7f3fe9]::-webkit-scrollbar {\n width: 4px;\n}\n.c-chat__contact-list[data-v-5e7f3fe9]::-webkit-scrollbar-thumb {\n background: var(--chat-scrollbar-thumb);\n border-radius: 2px;\n}\n.c-chat__contact[data-v-5e7f3fe9] {\n display: flex;\n align-items: center;\n gap: 10px;\n padding: 10px 16px;\n cursor: pointer;\n transition: background 0.15s;\n}\n.c-chat__contact[data-v-5e7f3fe9]:hover {\n background: color-mix(in srgb, var(--primary-color) 6%, transparent);\n}\n.c-chat__contact.is-active[data-v-5e7f3fe9] {\n background: color-mix(in srgb, var(--primary-color) 12%, transparent);\n}\n.c-chat__contact-avatar[data-v-5e7f3fe9] {\n position: relative;\n flex-shrink: 0;\n}\n.c-chat__avatar[data-v-5e7f3fe9] {\n width: var(--chat-avatar-size);\n height: var(--chat-avatar-size);\n border-radius: 50%;\n object-fit: cover;\n background: color-mix(in srgb, var(--border-color) 50%, transparent);\n}\n.c-chat__avatar-fallback[data-v-5e7f3fe9] {\n width: var(--chat-avatar-size);\n height: var(--chat-avatar-size);\n border-radius: 50%;\n background: color-mix(in srgb, var(--primary-color) 25%, transparent);\n display: flex;\n align-items: center;\n justify-content: center;\n font-size: 14px;\n font-weight: 600;\n color: var(--app-text-primary);\n}\n.c-chat__online-dot[data-v-5e7f3fe9] {\n position: absolute;\n bottom: 0;\n right: 0;\n width: 10px;\n height: 10px;\n border-radius: 50%;\n background: #22c55e;\n border: 2px solid var(--chat-sidebar-bg);\n}\n.c-chat__contact-info[data-v-5e7f3fe9] {\n flex: 1;\n min-width: 0;\n}\n.c-chat__contact-name[data-v-5e7f3fe9] {\n display: flex;\n align-items: center;\n justify-content: space-between;\n font-size: 13px;\n font-weight: 500;\n}\n.c-chat__contact-time[data-v-5e7f3fe9] {\n font-size: 11px;\n color: var(--chat-text-secondary);\n margin-left: 8px;\n flex-shrink: 0;\n}\n.c-chat__contact-last[data-v-5e7f3fe9] {\n font-size: 12px;\n color: var(--chat-text-secondary);\n white-space: nowrap;\n overflow: hidden;\n text-overflow: ellipsis;\n margin-top: 2px;\n}\n.c-chat__unread[data-v-5e7f3fe9] {\n min-width: 18px;\n height: 18px;\n padding: 0 5px;\n border-radius: 9px;\n background: #ef4444;\n color: #fff;\n font-size: 11px;\n font-weight: 600;\n display: flex;\n align-items: center;\n justify-content: center;\n flex-shrink: 0;\n}\n\n/* ─── 主聊天区域 ──────────────────────────────────────── */\n.c-chat__main[data-v-5e7f3fe9] {\n flex: 1;\n display: flex;\n flex-direction: column;\n min-width: 0;\n}\n.c-chat__header[data-v-5e7f3fe9] {\n display: flex;\n align-items: center;\n gap: 10px;\n height: var(--chat-header-height);\n padding: 0 20px;\n background: var(--chat-header-bg);\n border-bottom: 1px solid var(--chat-border);\n box-shadow: 0 1px 4px rgba(0, 0, 0, 0.03);\n font-weight: 600;\n font-size: 15px;\n}\n.c-chat__header-status[data-v-5e7f3fe9] {\n font-size: 12px;\n font-weight: 400;\n color: var(--chat-text-secondary);\n}\n\n/* ─── 消息区域 ────────────────────────────────────────── */\n.c-chat__messages[data-v-5e7f3fe9] {\n flex: 1;\n overflow-y: auto;\n overscroll-behavior: contain;\n padding: 16px 20px;\n display: flex;\n flex-direction: column;\n gap: 12px;\n background: color-mix(in srgb, var(--body-color) 50%, var(--card-color));\n}\n.c-chat__messages[data-v-5e7f3fe9]::-webkit-scrollbar {\n width: 4px;\n}\n.c-chat__messages[data-v-5e7f3fe9]::-webkit-scrollbar-thumb {\n background: var(--chat-scrollbar-thumb);\n border-radius: 2px;\n}\n.c-chat__load-more[data-v-5e7f3fe9] {\n text-align: center;\n padding: 8px;\n}\n.c-chat__empty[data-v-5e7f3fe9] {\n flex: 1;\n display: flex;\n align-items: center;\n justify-content: center;\n color: var(--chat-text-secondary);\n font-size: 13px;\n}\n\n/* ─── 消息气泡 ────────────────────────────────────────── */\n.c-chat__msg[data-v-5e7f3fe9] {\n display: flex;\n gap: 8px;\n max-width: 75%;\n}\n.c-chat__msg.is-self[data-v-5e7f3fe9] {\n margin-left: auto;\n flex-direction: row-reverse;\n}\n.c-chat__msg.is-system[data-v-5e7f3fe9] {\n max-width: 100%;\n justify-content: center;\n align-self: center;\n}\n.c-chat__msg-avatar[data-v-5e7f3fe9] {\n flex-shrink: 0;\n margin-top: 2px;\n}\n.c-chat__msg-body[data-v-5e7f3fe9] {\n display: flex;\n flex-direction: column;\n}\n.c-chat__msg-username[data-v-5e7f3fe9] {\n font-size: 12px;\n color: var(--chat-text-secondary);\n margin-bottom: 2px;\n}\n.is-self .c-chat__msg-username[data-v-5e7f3fe9] {\n text-align: right;\n}\n.c-chat__bubble[data-v-5e7f3fe9] {\n padding: 10px 14px;\n border-radius: 16px;\n line-height: 1.5;\n word-break: break-word;\n white-space: pre-wrap;\n}\n.is-other .c-chat__bubble[data-v-5e7f3fe9] {\n background: var(--chat-bubble-other);\n border: 1px solid var(--chat-border);\n border-top-left-radius: 4px;\n}\n.is-self .c-chat__bubble[data-v-5e7f3fe9] {\n background: var(--chat-bubble-self);\n color: var(--chat-text-self);\n border-top-right-radius: 4px;\n}\n.is-system .c-chat__bubble[data-v-5e7f3fe9] {\n background: var(--chat-bubble-system);\n color: var(--chat-text-secondary);\n font-size: 12px;\n padding: 4px 12px;\n}\n.c-chat__msg-image[data-v-5e7f3fe9] {\n max-width: 240px;\n max-height: 180px;\n border-radius: 12px;\n cursor: pointer;\n object-fit: cover;\n}\n.is-self .c-chat__msg-image[data-v-5e7f3fe9] {\n border-top-right-radius: 4px;\n}\n.is-other .c-chat__msg-image[data-v-5e7f3fe9] {\n border-top-left-radius: 4px;\n}\n.c-chat__msg-file[data-v-5e7f3fe9] {\n display: flex;\n align-items: center;\n gap: 8px;\n padding: 10px 14px;\n border-radius: 12px;\n cursor: pointer;\n}\n.is-other .c-chat__msg-file[data-v-5e7f3fe9] {\n background: var(--chat-bubble-other);\n border: 1px solid var(--chat-border);\n border-top-left-radius: 4px;\n}\n.is-self .c-chat__msg-file[data-v-5e7f3fe9] {\n background: var(--chat-bubble-self);\n color: var(--chat-text-self);\n border-top-right-radius: 4px;\n}\n.c-chat__file-info[data-v-5e7f3fe9] {\n display: flex;\n flex-direction: column;\n min-width: 0;\n}\n.c-chat__file-name[data-v-5e7f3fe9] {\n font-size: 13px;\n font-weight: 500;\n white-space: nowrap;\n overflow: hidden;\n text-overflow: ellipsis;\n}\n.c-chat__file-size[data-v-5e7f3fe9] {\n font-size: 11px;\n opacity: 0.6;\n}\n.c-chat__msg-time[data-v-5e7f3fe9] {\n font-size: 11px;\n color: var(--chat-text-secondary);\n margin-top: 4px;\n}\n.is-self .c-chat__msg-time[data-v-5e7f3fe9] {\n text-align: right;\n}\n.c-chat__msg-status[data-v-5e7f3fe9] {\n font-size: 11px;\n margin-top: 2px;\n text-align: right;\n}\n.c-chat__msg-status.is-sending[data-v-5e7f3fe9] {\n color: var(--chat-text-secondary);\n}\n.c-chat__msg-status.is-failed[data-v-5e7f3fe9] {\n color: #ef4444;\n cursor: pointer;\n}\n\n/* ─── 时间分割线 ──────────────────────────────────────── */\n.c-chat__time-divider[data-v-5e7f3fe9] {\n text-align: center;\n font-size: 11px;\n color: var(--chat-text-secondary);\n padding: 4px 0;\n}\n\n/* ─── 输入区域 ────────────────────────────────────────── */\n.c-chat__input-area[data-v-5e7f3fe9] {\n display: flex;\n align-items: center;\n gap: 8px;\n min-height: var(--chat-input-height);\n padding: 10px 16px;\n background: var(--chat-input-bg);\n border-top: 1px solid var(--chat-border);\n}\n.c-chat__input-actions[data-v-5e7f3fe9] {\n display: flex;\n gap: 4px;\n flex-shrink: 0;\n}\n.c-chat__input-wrap[data-v-5e7f3fe9] {\n flex: 1;\n min-width: 0;\n}\n.c-chat__send-btn[data-v-5e7f3fe9] {\n flex-shrink: 0;\n}\n\n/* ─── 空态 ────────────────────────────────────────────── */\n.c-chat__no-chat[data-v-5e7f3fe9] {\n flex: 1;\n display: flex;\n flex-direction: column;\n align-items: center;\n justify-content: center;\n gap: 12px;\n color: var(--chat-text-secondary);\n}\n.c-chat__no-chat-icon[data-v-5e7f3fe9] {\n font-size: 48px;\n opacity: 0.3;\n}\n\n/* ─── 响应式 ──────────────────────────────────────────── */\n@media (max-width: 640px) {\n.c-chat[data-v-5e7f3fe9] {\n --chat-sidebar-width: 72px;\n}\n.c-chat__contact-info[data-v-5e7f3fe9],\n .c-chat__search[data-v-5e7f3fe9],\n .c-chat__unread[data-v-5e7f3fe9] {\n display: none;\n}\n.c-chat__contact[data-v-5e7f3fe9] {\n justify-content: center;\n padding: 10px 8px;\n}\n}"],"mappings":"AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"C_Editor-D0_6UhIa.css","names":[],"sources":["../src/components/C_Editor/index.vue?vue&type=style&index=0&scoped=e2dec5c9&lang.css"],"sourcesContent":["/* unplugin-vue-components disabled */\r\n/* 暗色主题样式 */\n.editor-dark[data-v-e2dec5c9] .w-e-toolbar {\r\n background-color: #1f2937 !important;\r\n border-color: #374151 !important;\n}\n.editor-dark[data-v-e2dec5c9] .w-e-toolbar .w-e-menu .w-e-menu-item {\r\n color: #e5e7eb !important;\n}\n.editor-dark[data-v-e2dec5c9] .w-e-toolbar .w-e-menu .w-e-menu-item:hover {\r\n background-color: #374151 !important;\r\n color: #ffffff !important;\n}\n.editor-dark[data-v-e2dec5c9] .w-e-toolbar .w-e-menu .w-e-menu-item.w-e-active {\r\n background-color: #2080f0 !important;\r\n color: #ffffff !important;\n}\n.editor-dark[data-v-e2dec5c9] .w-e-text-container {\r\n background-color: #111827 !important;\r\n border-color: #374151 !important;\n}\n.editor-dark[data-v-e2dec5c9] .w-e-text-container .w-e-text {\r\n background-color: #303033 !important;\r\n color: #e5e7eb !important;\n}\n.editor-dark[data-v-e2dec5c9] .w-e-text-container .w-e-text:focus {\r\n background-color: #111827 !important;\r\n color: #e5e7eb !important;\n}\n[data-v-e2dec5c9] .w-e-toolbar,[data-v-e2dec5c9] .w-e-text-container {\r\n max-width: 100% !important;\r\n overflow-x: auto !important;\r\n box-sizing: border-box !important;\n}\n[data-v-e2dec5c9] .w-e-text {\r\n max-width: 100% !important;\r\n word-wrap: break-word !important;\r\n overflow-wrap: break-word !important;\n}\n[data-v-e2dec5c9] .w-e-toolbar,[data-v-e2dec5c9] .w-e-text-container,[data-v-e2dec5c9] .w-e-text {\r\n transition:\r\n background-color 0.3s ease,\r\n border-color 0.3s ease,\r\n color 0.3s ease !important;\n}\n.editor-focused[data-v-e2dec5c9] {\r\n overflow: hidden !important;\r\n max-width: 100% !important;\n}\r\n"],"mappings":"AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"C_Editor-OlxIF9-5.css","names":[],"sources":["../src/components/C_Editor/index.vue?vue&type=style&index=0&scoped=e2dec5c9&lang.css"],"sourcesContent":["/* unplugin-vue-components disabled */\r\n/* 暗色主题样式 */\n.editor-dark[data-v-e2dec5c9] .w-e-toolbar {\r\n background-color: #1f2937 !important;\r\n border-color: #374151 !important;\n}\n.editor-dark[data-v-e2dec5c9] .w-e-toolbar .w-e-menu .w-e-menu-item {\r\n color: #e5e7eb !important;\n}\n.editor-dark[data-v-e2dec5c9] .w-e-toolbar .w-e-menu .w-e-menu-item:hover {\r\n background-color: #374151 !important;\r\n color: #ffffff !important;\n}\n.editor-dark[data-v-e2dec5c9] .w-e-toolbar .w-e-menu .w-e-menu-item.w-e-active {\r\n background-color: #2080f0 !important;\r\n color: #ffffff !important;\n}\n.editor-dark[data-v-e2dec5c9] .w-e-text-container {\r\n background-color: #111827 !important;\r\n border-color: #374151 !important;\n}\n.editor-dark[data-v-e2dec5c9] .w-e-text-container .w-e-text {\r\n background-color: #303033 !important;\r\n color: #e5e7eb !important;\n}\n.editor-dark[data-v-e2dec5c9] .w-e-text-container .w-e-text:focus {\r\n background-color: #111827 !important;\r\n color: #e5e7eb !important;\n}\n[data-v-e2dec5c9] .w-e-toolbar,[data-v-e2dec5c9] .w-e-text-container {\r\n max-width: 100% !important;\r\n overflow-x: auto !important;\r\n box-sizing: border-box !important;\n}\n[data-v-e2dec5c9] .w-e-text {\r\n max-width: 100% !important;\r\n word-wrap: break-word !important;\r\n overflow-wrap: break-word !important;\n}\n[data-v-e2dec5c9] .w-e-toolbar,[data-v-e2dec5c9] .w-e-text-container,[data-v-e2dec5c9] .w-e-text {\r\n transition:\r\n background-color 0.3s ease,\r\n border-color 0.3s ease,\r\n color 0.3s ease !important;\n}\n.editor-focused[data-v-e2dec5c9] {\r\n overflow: hidden !important;\r\n max-width: 100% !important;\n}\r\n"],"mappings":"AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"C_Markdown-7iBnLDtL.css","names":[],"sources":["../src/components/C_Markdown/index.vue?vue&type=style&index=0&scoped=67f4346d&lang.scss"],"sourcesContent":["/* unplugin-vue-components disabled *//* C_Markdown 组件样式文件 */\n.c-markdown-wrapper[data-v-67f4346d] {\n position: relative;\n}\n.c-markdown-wrapper[data-v-67f4346d] .v-md-editor {\n border-radius: 6px;\n border: 1px solid var(--c-border);\n background-color: var(--c-bg-card);\n /* 禁用状态样式 */\n}\n.c-markdown-wrapper[data-v-67f4346d] .v-md-editor:hover {\n border-color: var(--c-primary);\n}\n.c-markdown-wrapper[data-v-67f4346d] .v-md-editor:focus-within {\n border-color: var(--c-primary);\n box-shadow: 0 0 0 2px var(--c-primary-opacity, rgba(24, 160, 88, 0.2));\n}\n.c-markdown-wrapper[data-v-67f4346d] .v-md-editor.disabled {\n background-color: var(--c-bg-disabled, #fafafc);\n cursor: not-allowed;\n}\n.c-markdown-wrapper[data-v-67f4346d] .v-md-editor.disabled .v-md-editor__editor {\n cursor: not-allowed;\n}\n.c-markdown-wrapper[data-v-67f4346d] .v-md-editor .v-md-editor__toolbar {\n background-color: var(--c-bg-card);\n border-bottom: 1px solid var(--c-border);\n}\n.c-markdown-wrapper[data-v-67f4346d] .v-md-editor .v-md-editor__editor-wrapper {\n background-color: var(--c-bg-card);\n}\n.c-markdown-wrapper[data-v-67f4346d] .v-md-editor .v-md-editor__editor {\n background-color: var(--c-bg-card);\n color: var(--c-text-1);\n}\n.c-markdown-wrapper[data-v-67f4346d] .v-md-editor .v-md-editor__editor textarea {\n color: var(--c-text-1);\n caret-color: var(--c-text-1);\n}\n.c-markdown-wrapper[data-v-67f4346d] .v-md-editor .v-md-editor__preview-wrapper {\n background-color: var(--c-bg-card);\n}\n.c-markdown-wrapper[data-v-67f4346d] .v-md-editor .v-md-editor__preview {\n background-color: var(--c-bg-card);\n color: var(--c-text-1);\n}\n.c-markdown-wrapper[data-v-67f4346d] .v-md-editor .v-md-editor__toc-nav-wrapper {\n background-color: var(--c-bg-card);\n border-left: 1px solid var(--c-border);\n}\n.c-markdown-wrapper.is-dark[data-v-67f4346d] .v-md-editor .v-md-editor__toolbar-item {\n color: #ffffff;\n}\n.c-markdown-wrapper.is-dark[data-v-67f4346d] .v-md-editor .v-md-editor__toolbar-item:hover {\n background-color: rgba(255, 255, 255, 0.08);\n}\n.c-markdown-wrapper.is-dark[data-v-67f4346d] .v-md-editor .v-md-editor__toolbar-item.is-active {\n background-color: rgba(255, 255, 255, 0.12);\n}\n.c-markdown-wrapper.is-dark[data-v-67f4346d] .v-md-editor .v-md-editor__toolbar-item svg {\n fill: #ffffff;\n opacity: 0.9;\n}\n.c-markdown-wrapper.is-dark[data-v-67f4346d] .v-md-editor .v-md-editor__toolbar-item:hover svg {\n opacity: 1;\n}\n.c-markdown-wrapper.is-dark[data-v-67f4346d] .v-md-editor .v-md-editor__toolbar-right .v-md-editor__toolbar-item {\n background-color: transparent;\n}\n.c-markdown-wrapper.is-dark[data-v-67f4346d] .v-md-editor .v-md-editor__toolbar-right .v-md-editor__toolbar-item svg {\n fill: #ffffff;\n}\n.c-markdown-wrapper.is-dark[data-v-67f4346d] .v-md-editor .v-md-editor__toolbar-right .v-md-editor__toolbar-item:hover {\n background-color: rgba(255, 255, 255, 0.08);\n}\n.c-markdown-wrapper.is-dark[data-v-67f4346d] .v-md-editor .v-md-editor__toolbar-divider {\n background-color: var(--c-border);\n}\n.c-markdown-wrapper.is-dark[data-v-67f4346d] .v-md-editor .v-md-editor__editor::-webkit-scrollbar,\n.c-markdown-wrapper.is-dark[data-v-67f4346d] .v-md-editor .v-md-editor__preview::-webkit-scrollbar {\n width: 8px;\n height: 8px;\n}\n.c-markdown-wrapper.is-dark[data-v-67f4346d] .v-md-editor .v-md-editor__editor::-webkit-scrollbar-track,\n.c-markdown-wrapper.is-dark[data-v-67f4346d] .v-md-editor .v-md-editor__preview::-webkit-scrollbar-track {\n background-color: rgba(255, 255, 255, 0.05);\n}\n.c-markdown-wrapper.is-dark[data-v-67f4346d] .v-md-editor .v-md-editor__editor::-webkit-scrollbar-thumb,\n.c-markdown-wrapper.is-dark[data-v-67f4346d] .v-md-editor .v-md-editor__preview::-webkit-scrollbar-thumb {\n background-color: rgba(255, 255, 255, 0.2);\n border-radius: 4px;\n}\n.c-markdown-wrapper.is-dark[data-v-67f4346d] .v-md-editor .v-md-editor__editor::-webkit-scrollbar-thumb:hover,\n.c-markdown-wrapper.is-dark[data-v-67f4346d] .v-md-editor .v-md-editor__preview::-webkit-scrollbar-thumb:hover {\n background-color: rgba(255, 255, 255, 0.3);\n}\n.c-markdown-wrapper .word-count[data-v-67f4346d] {\n position: absolute;\n bottom: 8px;\n right: 12px;\n font-size: 12px;\n color: var(--c-text-4);\n background: var(--c-bg-card);\n padding: 2px 6px;\n border-radius: 4px;\n z-index: 10;\n}\n.c-markdown-wrapper .word-count.exceed[data-v-67f4346d] {\n color: var(--c-error);\n}"],"mappings":"AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA"}