@robot-admin/naive-ui-components 0.6.21 → 0.6.23

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 (60) hide show
  1. package/dist/{C_CollapsePanel-B18ryXwh.css.map → C_CollapsePanel-CWkFCqNQ.css.map} +1 -1
  2. package/dist/{C_CollapsePanel-BiGoiHgh.css.map → C_CollapsePanel-pcVJA_4z.css.map} +1 -1
  3. package/dist/C_CollapsePanel.css +35 -35
  4. package/dist/C_CollapsePanel.js.map +1 -1
  5. package/dist/C_CollapsePanel2.js +1 -1
  6. package/dist/C_CollapsePanel2.js.map +1 -1
  7. package/dist/C_Signature-BJMvVPWT.css.map +1 -0
  8. package/dist/C_Signature-BJUHx2BF.css.map +1 -0
  9. package/dist/C_Signature.css +7 -1
  10. package/dist/C_Signature.js.map +1 -1
  11. package/dist/C_Signature2.js +1 -1
  12. package/dist/C_Signature2.js.map +1 -1
  13. package/dist/C_Timeline-BTaPYU85.css.map +1 -0
  14. package/dist/C_Timeline-VYsPZq4N.css.map +1 -0
  15. package/dist/C_Timeline.css +184 -150
  16. package/dist/C_Timeline.js.map +1 -1
  17. package/dist/C_Timeline2.js +1 -1
  18. package/dist/C_Timeline2.js.map +1 -1
  19. package/dist/constants.d.ts +1 -1
  20. package/dist/constants4.d.ts +5 -5
  21. package/dist/constants5.d.ts +2 -2
  22. package/dist/data.d.ts +2 -2
  23. package/dist/index.vue.d.ts +1 -1
  24. package/dist/index10.vue.d.ts +1 -1
  25. package/dist/index11.vue.d.ts +6 -6
  26. package/dist/index13.vue.d.ts +2 -2
  27. package/dist/index15.vue.d.ts +6 -6
  28. package/dist/index17.vue.d.ts +2 -2
  29. package/dist/index2.vue.d.ts +1 -1
  30. package/dist/index20.vue.d.ts +2 -2
  31. package/dist/index21.vue.d.ts +1 -1
  32. package/dist/index22.vue.d.ts +1 -1
  33. package/dist/index24.vue.d.ts +13 -3
  34. package/dist/index25.vue.d.ts +4 -4
  35. package/dist/index26.vue.d.ts +4 -4
  36. package/dist/index3.vue.d.ts +2 -2
  37. package/dist/index4.vue.d.ts +3 -3
  38. package/dist/index6.vue.d.ts +2 -2
  39. package/dist/index8.vue.d.ts +2 -2
  40. package/dist/style.css +228 -188
  41. package/dist/useCalendarEvents.d.ts +1 -1
  42. package/dist/useCollapsePanel.d.ts +8 -8
  43. package/dist/useCropperCore.d.ts +6 -6
  44. package/dist/useDraggableLayout.d.ts +8 -8
  45. package/dist/useDynamicFormState.d.ts +10 -10
  46. package/dist/useEdgeInteraction.d.ts +2 -2
  47. package/dist/useFullscreen.d.ts +2 -2
  48. package/dist/useInfiniteScroll.d.ts +4 -4
  49. package/dist/useModalEdit.d.ts +5 -5
  50. package/dist/useQRCode.d.ts +5 -5
  51. package/dist/useSearchState.d.ts +2 -2
  52. package/dist/useSignatureHistory.d.ts +5 -2
  53. package/dist/useSplitResize.d.ts +5 -5
  54. package/dist/useTreeOperations.d.ts +4 -4
  55. package/dist/useWorkflowValidation.d.ts +1 -1
  56. package/package.json +1 -1
  57. package/dist/C_Signature-B5fFz6RD.css.map +0 -1
  58. package/dist/C_Signature-es-ZNPzr.css.map +0 -1
  59. package/dist/C_Timeline-CGTFTMX0.css.map +0 -1
  60. package/dist/C_Timeline-DxKyvKer.css.map +0 -1
@@ -66,8 +66,8 @@ declare const __VLS_export: vue.DefineComponent<CalendarProps, CalendarExpose, {
66
66
  }) => any) | undefined;
67
67
  "onEvent-dropped"?: ((event: Partial<CalendarEvent>) => any) | undefined;
68
68
  }>, {
69
- editable: boolean;
70
69
  initialView: CalendarViewType;
70
+ editable: boolean;
71
71
  events: CalendarEvent[];
72
72
  showAddDialog: boolean;
73
73
  showEditDialog: boolean;
@@ -2,8 +2,8 @@ import * as vue from "vue";
2
2
  import { Component, Ref } from "vue";
3
3
 
4
4
  //#region src/components/C_CollapsePanel/types.d.ts
5
- type CollapsePanelVariant = "default" | "card" | "ghost";
6
- type ExpandIconPosition = "left" | "right";
5
+ type CollapsePanelVariant = 'default' | 'card' | 'ghost';
6
+ type ExpandIconPosition = 'left' | 'right';
7
7
  interface CollapsePanelItem {
8
8
  key: string;
9
9
  title: string;
@@ -33,7 +33,7 @@ interface CollapsePanelExpose {
33
33
  scrollToPanel: (key: string) => void;
34
34
  }
35
35
  interface CollapsePanelEmits {
36
- "update:activeKeys": [keys: string[]];
36
+ 'update:activeKeys': [keys: string[]];
37
37
  expand: [key: string];
38
38
  collapse: [key: string];
39
39
  change: [activeKeys: string[]];
@@ -71,22 +71,22 @@ declare var __VLS_7: `header-${string}`, __VLS_8: {
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
73
  change: (activeKeys: string[]) => any;
74
- collapse: (key: string) => any;
75
- expand: (key: string) => any;
76
74
  "update:activeKeys": (keys: string[]) => any;
75
+ expand: (key: string) => any;
76
+ collapse: (key: string) => any;
77
77
  }, string, vue.PublicProps, Readonly<Props> & Readonly<{
78
78
  onChange?: ((activeKeys: string[]) => any) | undefined;
79
- onCollapse?: ((key: string) => any) | undefined;
80
- onExpand?: ((key: string) => any) | undefined;
81
79
  "onUpdate:activeKeys"?: ((keys: string[]) => any) | undefined;
80
+ onExpand?: ((key: string) => any) | undefined;
81
+ onCollapse?: ((key: string) => any) | undefined;
82
82
  }>, {
83
83
  bordered: boolean;
84
- persistKey: string;
85
84
  activeKeys: string[];
86
85
  defaultActiveKeys: string[];
87
86
  accordion: boolean;
88
87
  variant: CollapsePanelVariant;
89
88
  expandIconPosition: ExpandIconPosition;
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,28 +51,28 @@ 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;
55
+ error: (error: Event) => any;
56
+ cancel: () => any;
56
57
  crop: (result: any) => any;
57
58
  confirm: (result: any) => any;
58
- cancel: () => any;
59
59
  }, string, vue.PublicProps, Readonly<ImageCropperProps> & Readonly<{
60
- onError?: ((error: Event) => any) | undefined;
61
60
  onReady?: (() => any) | undefined;
61
+ onError?: ((error: Event) => any) | undefined;
62
+ onCancel?: (() => any) | undefined;
62
63
  onCrop?: ((result: any) => any) | undefined;
63
64
  onConfirm?: ((result: any) => any) | undefined;
64
- onCancel?: (() => any) | undefined;
65
65
  }>, {
66
66
  disabled: boolean;
67
67
  height: string | number;
68
+ showPreview: boolean;
68
69
  showToolbar: boolean;
69
- src: string;
70
70
  aspectRatio: number;
71
+ src: string;
71
72
  outputFormat: CropOutputFormat;
72
73
  outputQuality: number;
73
74
  maxOutputWidth: number;
74
75
  maxOutputHeight: number;
75
- showPreview: boolean;
76
76
  circular: boolean;
77
77
  modal: boolean;
78
78
  modalTitle: string;
@@ -119,17 +119,10 @@ declare const __VLS_base: vue.DefineComponent<DraggableProps, {
119
119
  modelValue: DraggableItem[];
120
120
  sort: boolean;
121
121
  disabled: boolean;
122
- delay: number;
123
122
  direction: "vertical" | "horizontal";
124
- layout: LayoutMode;
125
123
  group: string | GroupOptions;
126
- alignItems: AlignItems;
127
- flexWrap: boolean;
128
- justifyContent: JustifyContent;
129
124
  animation: number;
130
- gap: string | number;
131
- itemClass: string;
132
- emptyText: string;
125
+ delay: number;
133
126
  handle: string;
134
127
  showHandle: boolean;
135
128
  ghostClass: string;
@@ -137,11 +130,18 @@ declare const __VLS_base: vue.DefineComponent<DraggableProps, {
137
130
  dragClass: string;
138
131
  wrapperClass: string;
139
132
  listClass: string;
133
+ itemClass: string;
140
134
  showEmptyState: boolean;
135
+ emptyText: string;
141
136
  swapThreshold: number;
142
137
  invertSwap: boolean;
138
+ layout: LayoutMode;
143
139
  gridColumns: number;
144
140
  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>;
@@ -1295,6 +1295,7 @@ declare const useDynamicFormState: () => {
1295
1295
  readonly placeholder?: string | undefined;
1296
1296
  readonly rules?: readonly {
1297
1297
  readonly type?: RuleType | undefined;
1298
+ readonly required?: boolean | undefined;
1298
1299
  readonly options?: {
1299
1300
  readonly suppressWarning?: boolean | undefined;
1300
1301
  readonly suppressValidatorError?: boolean | undefined;
@@ -1350,14 +1351,11 @@ declare const useDynamicFormState: () => {
1350
1351
  readonly keys?: readonly string[] | undefined;
1351
1352
  readonly error?: ((rule: InternalRuleItem, message: string) => ValidateError) | undefined;
1352
1353
  } | undefined;
1353
- readonly trigger?: string | readonly string[] | undefined;
1354
- readonly pattern?: (RegExp | string) | undefined;
1355
- readonly required?: boolean | undefined;
1356
- readonly max?: number | undefined;
1357
1354
  readonly key?: string | undefined;
1358
- readonly level?: "warning" | "error" | undefined;
1359
1355
  readonly asyncValidator?: naive_ui_es_form_src_interface0.FormItemRuleAsyncValidator | undefined;
1356
+ readonly pattern?: (RegExp | string) | undefined;
1360
1357
  readonly min?: number | undefined;
1358
+ readonly max?: number | undefined;
1361
1359
  readonly len?: number | undefined;
1362
1360
  readonly enum?: readonly (string | number | boolean | null | undefined)[] | undefined;
1363
1361
  readonly whitespace?: boolean | undefined;
@@ -1931,7 +1929,9 @@ declare const useDynamicFormState: () => {
1931
1929
  }[] | undefined;
1932
1930
  readonly transform?: ((value: Value) => Value) | undefined;
1933
1931
  readonly message?: string | ((a?: string) => string) | undefined;
1932
+ readonly trigger?: string | readonly string[] | undefined;
1934
1933
  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?: {
@@ -3572,6 +3572,7 @@ declare const useDynamicFormState: () => {
3572
3572
  } | undefined;
3573
3573
  readonly rules?: readonly {
3574
3574
  readonly type?: RuleType | undefined;
3575
+ readonly required?: boolean | undefined;
3575
3576
  readonly options?: {
3576
3577
  readonly suppressWarning?: boolean | undefined;
3577
3578
  readonly suppressValidatorError?: boolean | undefined;
@@ -3627,14 +3628,11 @@ declare const useDynamicFormState: () => {
3627
3628
  readonly keys?: readonly string[] | undefined;
3628
3629
  readonly error?: ((rule: InternalRuleItem, message: string) => ValidateError) | undefined;
3629
3630
  } | undefined;
3630
- readonly trigger?: string | readonly string[] | undefined;
3631
- readonly pattern?: (RegExp | string) | undefined;
3632
- readonly required?: boolean | undefined;
3633
- readonly max?: number | undefined;
3634
3631
  readonly key?: string | undefined;
3635
- readonly level?: "warning" | "error" | undefined;
3636
3632
  readonly asyncValidator?: naive_ui_es_form_src_interface0.FormItemRuleAsyncValidator | undefined;
3633
+ readonly pattern?: (RegExp | string) | undefined;
3637
3634
  readonly min?: number | undefined;
3635
+ readonly max?: number | undefined;
3638
3636
  readonly len?: number | undefined;
3639
3637
  readonly enum?: readonly (string | number | boolean | null | undefined)[] | undefined;
3640
3638
  readonly whitespace?: boolean | undefined;
@@ -4208,7 +4206,9 @@ declare const useDynamicFormState: () => {
4208
4206
  }[] | undefined;
4209
4207
  readonly transform?: ((value: Value) => Value) | undefined;
4210
4208
  readonly message?: string | ((a?: string) => string) | undefined;
4209
+ readonly trigger?: string | readonly string[] | undefined;
4211
4210
  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,10 +259,10 @@ 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
+ readonly: boolean;
263
+ height: string | number;
262
264
  theme: "light" | "dark";
263
265
  width: string | number;
264
- height: string | number;
265
- readonly: boolean;
266
266
  showToolbar: boolean;
267
267
  }, {}, {}, {}, string, vue.ComponentProvideOptions, false, {}, any>;
268
268
  declare const _default: typeof __VLS_export;
@@ -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
- preview: (file: string | File) => any;
13
12
  download: (file: string | File) => any;
13
+ preview: (file: string | File) => any;
14
14
  }, string, vue.PublicProps, Readonly<__VLS_Props> & Readonly<{
15
- onPreview?: ((file: string | File) => any) | undefined;
16
15
  onDownload?: ((file: string | File) => any) | undefined;
16
+ onPreview?: ((file: string | File) => any) | undefined;
17
17
  }>, {
18
18
  fileName: string;
19
19
  autoPreview: boolean;
@@ -79,20 +79,20 @@ type __VLS_Slots = {} & {
79
79
  footer?: (props: typeof __VLS_5) => any;
80
80
  };
81
81
  declare const __VLS_base: vue.DefineComponent<WaterFallProps, WaterFallExpose, {}, {}, {}, vue.ComponentOptionsMixin, vue.ComponentOptionsMixin, {
82
- "load-more": () => any;
83
82
  "item-click": (item: WaterFallItem, index: number) => any;
83
+ "load-more": () => any;
84
84
  "image-loaded": (item: WaterFallItem) => any;
85
85
  "image-error": (item: WaterFallItem) => any;
86
86
  }, string, vue.PublicProps, Readonly<WaterFallProps> & Readonly<{
87
- "onLoad-more"?: (() => any) | undefined;
88
87
  "onItem-click"?: ((item: WaterFallItem, index: number) => any) | undefined;
88
+ "onLoad-more"?: (() => any) | undefined;
89
89
  "onImage-loaded"?: ((item: WaterFallItem) => any) | undefined;
90
90
  "onImage-error"?: ((item: WaterFallItem) => any) | undefined;
91
91
  }>, {
92
92
  loading: boolean;
93
- columns: number;
94
- animationDuration: number;
95
93
  gap: number;
94
+ animationDuration: number;
95
+ columns: number;
96
96
  infinite: boolean;
97
97
  lazy: boolean;
98
98
  skeleton: boolean;
@@ -547,7 +547,7 @@ declare const __VLS_base: vue.DefineComponent<__VLS_Props, {
547
547
  clearRowSelection: () => void;
548
548
  resetToFirstPage: () => void;
549
549
  getSelectedRows: () => DataRecord[];
550
- getEditingData: () => DataRecord | vue.Ref<Record<string, any>, Record<string, any>> | null;
550
+ getEditingData: () => vue.Ref<Record<string, any>, Record<string, any>> | DataRecord | null;
551
551
  isEditing: (rowKey: DataTableRowKey$1, columnKey?: string) => boolean;
552
552
  isExpanded: (rowKey: DataTableRowKey$1) => boolean;
553
553
  getManager: () => {
@@ -556,7 +556,7 @@ declare const __VLS_base: vue.DefineComponent<__VLS_Props, {
556
556
  cancel(): void;
557
557
  save(): Promise<void>;
558
558
  isEditing(rowKey: DataTableRowKey$1, columnKey?: string): boolean;
559
- getEditingData(): DataRecord | vue.Ref<Record<string, any>, Record<string, any>> | null;
559
+ getEditingData(): vue.Ref<Record<string, any>, Record<string, any>> | DataRecord | null;
560
560
  };
561
561
  expand: {
562
562
  row(rowKey: DataTableRowKey$1): Promise<void>;
@@ -596,8 +596,8 @@ declare const __VLS_base: vue.DefineComponent<__VLS_Props, {
596
596
  clearAllSelections(): void;
597
597
  };
598
598
  }, {}, {}, {}, vue.ComponentOptionsMixin, vue.ComponentOptionsMixin, {
599
- cancel: (rowData: DataRecord, rowIndex: number) => any;
600
599
  save: (rowData: DataRecord, rowIndex: number, columnKey?: string | undefined) => any;
600
+ cancel: (rowData: DataRecord, rowIndex: number) => any;
601
601
  "pagination-change": (...args: unknown[]) => any;
602
602
  "row-delete": (...args: unknown[]) => any;
603
603
  "expand-change": (expandedKeys: DataTableRowKey$1[], row?: DataRecord | undefined, expanded?: boolean | undefined) => any;
@@ -612,8 +612,8 @@ declare const __VLS_base: vue.DefineComponent<__VLS_Props, {
612
612
  "view-detail": (data: DataRecord) => any;
613
613
  "column-change": (columns: TableColumn[]) => any;
614
614
  }, string, vue.PublicProps, Readonly<__VLS_Props> & Readonly<{
615
- onCancel?: ((rowData: DataRecord, rowIndex: number) => any) | undefined;
616
615
  onSave?: ((rowData: DataRecord, rowIndex: number, columnKey?: string | undefined) => any) | undefined;
616
+ onCancel?: ((rowData: DataRecord, rowIndex: number) => any) | undefined;
617
617
  "onPagination-change"?: ((...args: unknown[]) => any) | undefined;
618
618
  "onRow-delete"?: ((...args: unknown[]) => any) | undefined;
619
619
  "onExpand-change"?: ((expandedKeys: DataTableRowKey$1[], row?: DataRecord | undefined, expanded?: boolean | undefined) => any) | undefined;
@@ -816,7 +816,7 @@ declare function useTableManager(params: TableManagerParams): {
816
816
  cancel(): void; /** 保存编辑 */
817
817
  save(): Promise<void>; /** 是否正在编辑 */
818
818
  isEditing(rowKey: DataTableRowKey$1, columnKey?: string): boolean; /** 获取当前编辑数据 */
819
- getEditingData(): DataRecord | vue.Ref<Record<string, any>, Record<string, any>> | null;
819
+ getEditingData(): vue.Ref<Record<string, any>, Record<string, any>> | DataRecord | null;
820
820
  };
821
821
  expand: {
822
822
  /** 展开行 */row(rowKey: DataTableRowKey$1): Promise<void>; /** 折叠行 */
@@ -50,16 +50,16 @@ 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
- label: string;
54
53
  size: number;
55
- color: string;
56
54
  mode: RenderMode;
57
- margin: number;
58
- showBorder: boolean;
59
- showLabel: boolean;
55
+ label: string;
56
+ color: string;
60
57
  bgColor: string;
61
58
  errorCorrectionLevel: ErrorCorrectionLevel;
59
+ margin: number;
62
60
  logo: LogoOptions;
61
+ showBorder: boolean;
62
+ showLabel: boolean;
63
63
  }, {}, {}, {}, string, vue.ComponentProvideOptions, false, {}, any>;
64
64
  declare const _default: typeof __VLS_export;
65
65
  //#endregion
@@ -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
- search: (params: SearchFormParams) => any;
59
58
  reset: () => any;
59
+ search: (params: SearchFormParams) => any;
60
60
  "change-params": (params: SearchFormParams) => any;
61
61
  }, string, vue.PublicProps, Readonly<Props> & Readonly<{
62
- onSearch?: ((params: SearchFormParams) => any) | undefined;
63
62
  onReset?: (() => any) | undefined;
63
+ onSearch?: ((params: SearchFormParams) => any) | undefined;
64
64
  "onChange-params"?: ((params: SearchFormParams) => any) | undefined;
65
65
  }>, {
66
66
  size: "small" | "medium" | "large";
@@ -108,9 +108,9 @@ declare const __VLS_export: vue.DefineComponent<SignatureProps, SignatureExpose,
108
108
  onRedo?: (() => any) | undefined;
109
109
  }>, {
110
110
  disabled: boolean;
111
- width: number | string;
112
- height: number | string;
113
111
  readonly: boolean;
112
+ height: number | string;
113
+ width: number | string;
114
114
  showToolbar: boolean;
115
115
  maxHistory: number;
116
116
  }, {}, {}, {}, string, vue.ComponentProvideOptions, false, {}, any>;
@@ -140,6 +140,9 @@ interface UseSignatureExportOptions {
140
140
  canvasRef: Ref<HTMLCanvasElement | null>;
141
141
  watermark?: Ref<Partial<WatermarkConfig>>;
142
142
  }
143
+ /**
144
+ *
145
+ */
143
146
  declare function useSignatureExport(options: UseSignatureExportOptions): {
144
147
  exportSignature: (options?: ExportOptions) => Promise<string | Blob>;
145
148
  download: (filename?: string, options?: ExportOptions) => Promise<void>;
@@ -66,21 +66,21 @@ 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
- resize: (firstSize: number, secondSize: number) => any;
70
- collapse: (target: CollapseTarget) => any;
71
69
  expand: (target: CollapseTarget) => any;
70
+ collapse: (target: CollapseTarget) => any;
72
71
  "drag-start": (size: number) => any;
73
72
  "drag-end": (size: number) => any;
73
+ resize: (firstSize: number, secondSize: number) => any;
74
74
  }, string, vue.PublicProps, Readonly<Props> & Readonly<{
75
- onResize?: ((firstSize: number, secondSize: number) => any) | undefined;
76
- onCollapse?: ((target: CollapseTarget) => any) | undefined;
77
75
  onExpand?: ((target: CollapseTarget) => any) | undefined;
76
+ onCollapse?: ((target: CollapseTarget) => any) | undefined;
78
77
  "onDrag-start"?: ((size: number) => any) | undefined;
79
78
  "onDrag-end"?: ((size: number) => any) | undefined;
79
+ onResize?: ((firstSize: number, secondSize: number) => any) | undefined;
80
80
  }>, {
81
81
  disabled: boolean;
82
- direction: SplitDirection;
83
82
  step: number;
83
+ direction: SplitDirection;
84
84
  defaultSize: number;
85
85
  minSize: number;
86
86
  maxSize: number;
@@ -102,13 +102,13 @@ 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
- labelField: string;
106
- childrenField: string;
107
105
  mode: TreeMode;
108
- showToolbar: boolean;
109
106
  actions: ActionConfig[];
110
- keyField: string;
107
+ showToolbar: boolean;
111
108
  draggable: boolean;
109
+ keyField: string;
110
+ labelField: string;
111
+ childrenField: string;
112
112
  searchPattern: string;
113
113
  searchable: boolean;
114
114
  searchPlaceholder: string;
@@ -251,8 +251,8 @@ declare const __VLS_export: vue.DefineComponent<WorkflowProps, {
251
251
  "onNode-click"?: ((node: WorkflowNode) => any) | undefined;
252
252
  "onEdge-click"?: ((edge: WorkflowEdge) => any) | undefined;
253
253
  }>, {
254
- theme: "light" | "dark";
255
254
  readonly: boolean;
255
+ theme: "light" | "dark";
256
256
  users: User[];
257
257
  roles: Role[];
258
258
  departments: Department[];
package/package.json CHANGED
@@ -3,7 +3,7 @@
3
3
  "publishConfig": {
4
4
  "access": "public"
5
5
  },
6
- "version": "0.6.21",
6
+ "version": "0.6.23",
7
7
  "description": "基于 Naive UI 的 Vue 3 组件库",
8
8
  "type": "module",
9
9
  "main": "dist/index.cjs",
@@ -1 +0,0 @@
1
- {"version":3,"file":"C_Signature-B5fFz6RD.css","names":[],"sources":["../src/components/C_Signature/index.vue?vue&type=style&index=0&scoped=1c733bfe&lang.scss"],"sourcesContent":["/* unplugin-vue-components disabled *//* 电子签名组件样式 */\n.c-signature[data-v-1c733bfe] {\n display: flex;\n flex-direction: column;\n gap: 12px;\n width: 100%;\n}\n.c-signature .signature-toolbar[data-v-1c733bfe] {\n display: flex;\n align-items: center;\n gap: 12px;\n padding: 12px;\n background: var(--c-bg-card, #fff);\n border: 1px solid var(--c-border, #e1e4e8);\n border-radius: var(--c-radius, 6px);\n flex-wrap: wrap;\n}\n.c-signature .signature-toolbar .toolbar-section[data-v-1c733bfe] {\n display: flex;\n align-items: center;\n gap: 8px;\n}\n.c-signature .signature-toolbar .toolbar-section.divider[data-v-1c733bfe] {\n width: 1px;\n height: 24px;\n background: var(--c-border, #e1e4e8);\n margin: 0 4px;\n}\n.c-signature .signature-toolbar .toolbar-section .section-label[data-v-1c733bfe] {\n font-size: 13px;\n color: var(--c-text-3, #999);\n font-weight: 500;\n}\n.c-signature .signature-canvas-wrapper[data-v-1c733bfe] {\n position: relative;\n border: 1px solid var(--c-border, #e1e4e8);\n border-radius: var(--c-radius, 6px);\n overflow: hidden;\n background: var(--c-bg, #fff);\n transition: border-color 0.3s;\n}\n.c-signature .signature-canvas-wrapper[data-v-1c733bfe]:hover {\n border-color: var(--c-primary, #409eff);\n}\n.c-signature .signature-canvas-wrapper.disabled[data-v-1c733bfe] {\n opacity: 0.6;\n cursor: not-allowed;\n border-color: var(--c-border, #e1e4e8);\n}\n.c-signature .signature-canvas-wrapper.readonly[data-v-1c733bfe] {\n cursor: default;\n}\n.c-signature .signature-canvas-wrapper .signature-canvas[data-v-1c733bfe] {\n display: block;\n width: 100%;\n height: 100%;\n cursor: crosshair;\n touch-action: none;\n}\n.c-signature .signature-canvas-wrapper .signature-canvas.disabled[data-v-1c733bfe], .c-signature .signature-canvas-wrapper .signature-canvas.readonly[data-v-1c733bfe] {\n cursor: not-allowed;\n}\n.c-signature .signature-canvas-wrapper .canvas-placeholder[data-v-1c733bfe] {\n position: absolute;\n top: 50%;\n left: 50%;\n transform: translate(-50%, -50%);\n color: var(--c-text-4, #ccc);\n font-size: 14px;\n pointer-events: none;\n user-select: none;\n}\n.c-signature .signature-actions[data-v-1c733bfe] {\n display: flex;\n justify-content: flex-end;\n gap: 8px;\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"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"C_Signature-es-ZNPzr.css","names":[],"sources":["../src/components/C_Signature/index.vue?vue&type=style&index=0&scoped=1c733bfe&lang.scss"],"sourcesContent":["/* unplugin-vue-components disabled *//* 电子签名组件样式 */\n.c-signature[data-v-1c733bfe] {\n display: flex;\n flex-direction: column;\n gap: 12px;\n width: 100%;\n}\n.c-signature .signature-toolbar[data-v-1c733bfe] {\n display: flex;\n align-items: center;\n gap: 12px;\n padding: 12px;\n background: var(--c-bg-card, #fff);\n border: 1px solid var(--c-border, #e1e4e8);\n border-radius: var(--c-radius, 6px);\n flex-wrap: wrap;\n}\n.c-signature .signature-toolbar .toolbar-section[data-v-1c733bfe] {\n display: flex;\n align-items: center;\n gap: 8px;\n}\n.c-signature .signature-toolbar .toolbar-section.divider[data-v-1c733bfe] {\n width: 1px;\n height: 24px;\n background: var(--c-border, #e1e4e8);\n margin: 0 4px;\n}\n.c-signature .signature-toolbar .toolbar-section .section-label[data-v-1c733bfe] {\n font-size: 13px;\n color: var(--c-text-3, #999);\n font-weight: 500;\n}\n.c-signature .signature-canvas-wrapper[data-v-1c733bfe] {\n position: relative;\n border: 1px solid var(--c-border, #e1e4e8);\n border-radius: var(--c-radius, 6px);\n overflow: hidden;\n background: var(--c-bg, #fff);\n transition: border-color 0.3s;\n}\n.c-signature .signature-canvas-wrapper[data-v-1c733bfe]:hover {\n border-color: var(--c-primary, #409eff);\n}\n.c-signature .signature-canvas-wrapper.disabled[data-v-1c733bfe] {\n opacity: 0.6;\n cursor: not-allowed;\n border-color: var(--c-border, #e1e4e8);\n}\n.c-signature .signature-canvas-wrapper.readonly[data-v-1c733bfe] {\n cursor: default;\n}\n.c-signature .signature-canvas-wrapper .signature-canvas[data-v-1c733bfe] {\n display: block;\n width: 100%;\n height: 100%;\n cursor: crosshair;\n touch-action: none;\n}\n.c-signature .signature-canvas-wrapper .signature-canvas.disabled[data-v-1c733bfe], .c-signature .signature-canvas-wrapper .signature-canvas.readonly[data-v-1c733bfe] {\n cursor: not-allowed;\n}\n.c-signature .signature-canvas-wrapper .canvas-placeholder[data-v-1c733bfe] {\n position: absolute;\n top: 50%;\n left: 50%;\n transform: translate(-50%, -50%);\n color: var(--c-text-4, #ccc);\n font-size: 14px;\n pointer-events: none;\n user-select: none;\n}\n.c-signature .signature-actions[data-v-1c733bfe] {\n display: flex;\n justify-content: flex-end;\n gap: 8px;\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"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"C_Timeline-CGTFTMX0.css","names":[],"sources":["../src/components/C_Timeline/index.vue?vue&type=style&index=0&scoped=3f951666&lang.scss"],"sourcesContent":["/* unplugin-vue-components disabled */.c-timeline[data-v-3f951666] {\n --tl-bg: transparent;\n --tl-text-primary: var(--app-text-primary);\n --tl-text-secondary: var(--text-color-2);\n --tl-text-time: var(--text-color-3);\n --tl-line-color: color-mix(in srgb, var(--primary-color) 20%, var(--border-color));\n --tl-line-width: 3px;\n --tl-dot-size-sm: 10px;\n --tl-dot-size-md: 14px;\n --tl-dot-size-lg: 18px;\n --tl-dot-default: var(--text-color-3);\n --tl-dot-success: #18a058;\n --tl-dot-warning: #f0a020;\n --tl-dot-error: #d03050;\n --tl-dot-info: #2080f0;\n --tl-icon-size: 32px;\n --tl-icon-bg: var(--card-color);\n --tl-content-bg: var(--card-color);\n --tl-content-radius: 10px;\n --tl-content-padding: 14px 18px;\n --tl-tag-radius: 6px;\n --tl-gap: 32px;\n --tl-rail-left: 38px;\n --tl-horizontal-item-width: 220px;\n position: relative;\n background: var(--tl-bg);\n}\n.c-timeline.is-vertical[data-v-3f951666] {\n display: flex;\n flex-direction: column;\n gap: var(--tl-gap);\n padding-left: var(--tl-rail-left);\n}\n.c-timeline__item[data-v-3f951666] {\n position: relative;\n display: flex;\n flex-direction: column;\n gap: 8px;\n}\n.c-timeline.is-vertical .c-timeline__item[data-v-3f951666]::before {\n content: \"\";\n position: absolute;\n left: calc(-1 * var(--tl-rail-left) + 15px);\n top: 28px;\n bottom: calc(-1 * var(--tl-gap));\n width: var(--tl-line-width);\n border-radius: 2px;\n background: var(--tl-line-color);\n}\n.c-timeline.is-vertical .c-timeline__item[data-v-3f951666]:last-child::before {\n display: none;\n}\n.c-timeline.is-vertical.is-line-dashed .c-timeline__item[data-v-3f951666]::before {\n width: 0;\n background: none;\n border-left: var(--tl-line-width) dashed var(--tl-line-color);\n}\n.c-timeline.is-vertical.is-line-dotted .c-timeline__item[data-v-3f951666]::before {\n width: 0;\n background: none;\n border-left: var(--tl-line-width) dotted var(--tl-line-color);\n}\n.c-timeline__dot[data-v-3f951666] {\n position: absolute;\n left: calc(-1 * var(--tl-rail-left));\n top: 0;\n display: flex;\n align-items: center;\n justify-content: center;\n border-radius: 50%;\n z-index: 1;\n}\n.c-timeline__dot.is-dot[data-v-3f951666] {\n width: var(--tl-dot-size-md);\n height: var(--tl-dot-size-md);\n background: var(--tl-dot-default);\n border: 3px solid var(--card-color);\n box-shadow: 0 0 0 2px var(--tl-dot-default);\n transform: translateX(calc(16px - 50%));\n}\n.c-timeline__dot.is-icon[data-v-3f951666] {\n width: var(--tl-icon-size);\n height: var(--tl-icon-size);\n background: var(--tl-icon-bg);\n border: 2px solid var(--tl-line-color);\n box-shadow: 0 0 0 3px var(--card-color), 0 2px 8px rgba(0, 0, 0, 0.1);\n transform: translateX(calc(16px - 50%));\n font-size: 16px;\n}\n.c-timeline.is-small .c-timeline__dot.is-dot[data-v-3f951666] {\n width: var(--tl-dot-size-sm);\n height: var(--tl-dot-size-sm);\n border-width: 2px;\n}\n.c-timeline.is-large .c-timeline__dot.is-dot[data-v-3f951666] {\n width: var(--tl-dot-size-lg);\n height: var(--tl-dot-size-lg);\n border-width: 3px;\n}\n.c-timeline.is-small .c-timeline__dot.is-icon[data-v-3f951666] {\n width: 24px;\n height: 24px;\n font-size: 12px;\n}\n.c-timeline.is-large .c-timeline__dot.is-icon[data-v-3f951666] {\n width: 40px;\n height: 40px;\n font-size: 20px;\n}\n.c-timeline__header[data-v-3f951666] {\n display: flex;\n align-items: center;\n gap: 12px;\n}\n.c-timeline__title[data-v-3f951666] {\n font-size: 15px;\n font-weight: 600;\n color: var(--tl-text-primary);\n line-height: 1.5;\n}\n.c-timeline__time[data-v-3f951666] {\n display: inline-flex;\n align-items: center;\n padding: 1px 8px;\n font-size: 12px;\n color: var(--tl-text-time);\n white-space: nowrap;\n background: color-mix(in srgb, var(--border-color) 40%, transparent);\n border-radius: 4px;\n line-height: 1.6;\n}\n.c-timeline__tags[data-v-3f951666] {\n display: flex;\n gap: 6px;\n flex-wrap: wrap;\n}\n.c-timeline__tag[data-v-3f951666] {\n display: inline-flex;\n align-items: center;\n padding: 2px 10px;\n font-size: 11px;\n font-weight: 500;\n border-radius: var(--tl-tag-radius);\n background: color-mix(in srgb, var(--primary-color) 10%, var(--card-color));\n color: var(--primary-color);\n border: 1px solid color-mix(in srgb, var(--primary-color) 20%, transparent);\n}\n.c-timeline__content[data-v-3f951666] {\n padding: var(--tl-content-padding);\n background: var(--tl-content-bg);\n border-radius: var(--tl-content-radius);\n border: 1px solid var(--border-color);\n font-size: 13px;\n color: var(--tl-text-secondary);\n line-height: 1.7;\n}\n.c-timeline__collapse-trigger[data-v-3f951666] {\n display: inline-flex;\n align-items: center;\n gap: 4px;\n margin-top: 4px;\n font-size: 12px;\n color: var(--primary-color);\n cursor: pointer;\n user-select: none;\n transition: opacity 0.2s;\n}\n.c-timeline__collapse-trigger[data-v-3f951666]:hover {\n opacity: 0.75;\n}\n.c-timeline__collapse-trigger .collapse-arrow[data-v-3f951666] {\n transition: transform 0.25s;\n}\n.c-timeline__collapse-trigger.is-expanded .collapse-arrow[data-v-3f951666] {\n transform: rotate(180deg);\n}\n.c-timeline__detail[data-v-3f951666] {\n overflow: hidden;\n transition: max-height 0.3s ease, opacity 0.3s ease;\n}\n.c-timeline__detail.is-collapsed[data-v-3f951666] {\n max-height: 0;\n opacity: 0;\n}\n.c-timeline__detail.is-expanded[data-v-3f951666] {\n max-height: 600px;\n opacity: 1;\n}\n.c-timeline__pending[data-v-3f951666] {\n position: relative;\n display: flex;\n align-items: center;\n gap: 10px;\n font-size: 13px;\n color: var(--tl-text-time);\n padding-top: 4px;\n padding-left: 4px;\n}\n.c-timeline__pending .pending-dot[data-v-3f951666] {\n width: 10px;\n height: 10px;\n border-radius: 50%;\n background: var(--tl-dot-info);\n box-shadow: 0 0 0 3px color-mix(in srgb, var(--tl-dot-info) 20%, transparent);\n animation: tl-pulse-3f951666 1.4s infinite;\n}\n.c-timeline.is-horizontal[data-v-3f951666] {\n display: flex;\n overflow-x: auto;\n padding-bottom: 16px;\n padding-top: 40px;\n gap: 0;\n}\n.c-timeline.is-horizontal[data-v-3f951666]::-webkit-scrollbar {\n height: 4px;\n}\n.c-timeline.is-horizontal[data-v-3f951666]::-webkit-scrollbar-thumb {\n background: var(--border-color);\n border-radius: 2px;\n}\n.c-timeline.is-horizontal .c-timeline__item[data-v-3f951666] {\n flex: 0 0 var(--tl-horizontal-item-width);\n position: relative;\n padding-top: 36px;\n display: flex;\n flex-direction: column;\n gap: 8px;\n}\n.c-timeline.is-horizontal .c-timeline__item[data-v-3f951666]::before {\n content: \"\";\n position: absolute;\n top: 14px;\n left: 24px;\n right: 0;\n height: var(--tl-line-width);\n border-radius: 2px;\n background: var(--tl-line-color);\n}\n.c-timeline.is-horizontal .c-timeline__item[data-v-3f951666]:last-child::before {\n display: none;\n}\n.c-timeline.is-horizontal.is-line-dashed .c-timeline__item[data-v-3f951666]::before {\n height: 0;\n background: none;\n border-top: var(--tl-line-width) dashed var(--tl-line-color);\n}\n.c-timeline.is-horizontal.is-line-dotted .c-timeline__item[data-v-3f951666]::before {\n height: 0;\n background: none;\n border-top: var(--tl-line-width) dotted var(--tl-line-color);\n}\n.c-timeline.is-horizontal .c-timeline__dot[data-v-3f951666] {\n left: 6px;\n top: 0;\n transform: none;\n}\n.c-timeline.is-horizontal .c-timeline__time[data-v-3f951666] {\n margin-top: 2px;\n}\n@keyframes tl-pulse-3f951666 {\n0%, 100% {\n opacity: 0.4;\n transform: scale(1);\n}\n50% {\n opacity: 1;\n transform: scale(1.15);\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;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;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_Timeline-DxKyvKer.css","names":[],"sources":["../src/components/C_Timeline/index.vue?vue&type=style&index=0&scoped=3f951666&lang.scss"],"sourcesContent":["/* unplugin-vue-components disabled */.c-timeline[data-v-3f951666] {\n --tl-bg: transparent;\n --tl-text-primary: var(--app-text-primary);\n --tl-text-secondary: var(--text-color-2);\n --tl-text-time: var(--text-color-3);\n --tl-line-color: color-mix(in srgb, var(--primary-color) 20%, var(--border-color));\n --tl-line-width: 3px;\n --tl-dot-size-sm: 10px;\n --tl-dot-size-md: 14px;\n --tl-dot-size-lg: 18px;\n --tl-dot-default: var(--text-color-3);\n --tl-dot-success: #18a058;\n --tl-dot-warning: #f0a020;\n --tl-dot-error: #d03050;\n --tl-dot-info: #2080f0;\n --tl-icon-size: 32px;\n --tl-icon-bg: var(--card-color);\n --tl-content-bg: var(--card-color);\n --tl-content-radius: 10px;\n --tl-content-padding: 14px 18px;\n --tl-tag-radius: 6px;\n --tl-gap: 32px;\n --tl-rail-left: 38px;\n --tl-horizontal-item-width: 220px;\n position: relative;\n background: var(--tl-bg);\n}\n.c-timeline.is-vertical[data-v-3f951666] {\n display: flex;\n flex-direction: column;\n gap: var(--tl-gap);\n padding-left: var(--tl-rail-left);\n}\n.c-timeline__item[data-v-3f951666] {\n position: relative;\n display: flex;\n flex-direction: column;\n gap: 8px;\n}\n.c-timeline.is-vertical .c-timeline__item[data-v-3f951666]::before {\n content: \"\";\n position: absolute;\n left: calc(-1 * var(--tl-rail-left) + 15px);\n top: 28px;\n bottom: calc(-1 * var(--tl-gap));\n width: var(--tl-line-width);\n border-radius: 2px;\n background: var(--tl-line-color);\n}\n.c-timeline.is-vertical .c-timeline__item[data-v-3f951666]:last-child::before {\n display: none;\n}\n.c-timeline.is-vertical.is-line-dashed .c-timeline__item[data-v-3f951666]::before {\n width: 0;\n background: none;\n border-left: var(--tl-line-width) dashed var(--tl-line-color);\n}\n.c-timeline.is-vertical.is-line-dotted .c-timeline__item[data-v-3f951666]::before {\n width: 0;\n background: none;\n border-left: var(--tl-line-width) dotted var(--tl-line-color);\n}\n.c-timeline__dot[data-v-3f951666] {\n position: absolute;\n left: calc(-1 * var(--tl-rail-left));\n top: 0;\n display: flex;\n align-items: center;\n justify-content: center;\n border-radius: 50%;\n z-index: 1;\n}\n.c-timeline__dot.is-dot[data-v-3f951666] {\n width: var(--tl-dot-size-md);\n height: var(--tl-dot-size-md);\n background: var(--tl-dot-default);\n border: 3px solid var(--card-color);\n box-shadow: 0 0 0 2px var(--tl-dot-default);\n transform: translateX(calc(16px - 50%));\n}\n.c-timeline__dot.is-icon[data-v-3f951666] {\n width: var(--tl-icon-size);\n height: var(--tl-icon-size);\n background: var(--tl-icon-bg);\n border: 2px solid var(--tl-line-color);\n box-shadow: 0 0 0 3px var(--card-color), 0 2px 8px rgba(0, 0, 0, 0.1);\n transform: translateX(calc(16px - 50%));\n font-size: 16px;\n}\n.c-timeline.is-small .c-timeline__dot.is-dot[data-v-3f951666] {\n width: var(--tl-dot-size-sm);\n height: var(--tl-dot-size-sm);\n border-width: 2px;\n}\n.c-timeline.is-large .c-timeline__dot.is-dot[data-v-3f951666] {\n width: var(--tl-dot-size-lg);\n height: var(--tl-dot-size-lg);\n border-width: 3px;\n}\n.c-timeline.is-small .c-timeline__dot.is-icon[data-v-3f951666] {\n width: 24px;\n height: 24px;\n font-size: 12px;\n}\n.c-timeline.is-large .c-timeline__dot.is-icon[data-v-3f951666] {\n width: 40px;\n height: 40px;\n font-size: 20px;\n}\n.c-timeline__header[data-v-3f951666] {\n display: flex;\n align-items: center;\n gap: 12px;\n}\n.c-timeline__title[data-v-3f951666] {\n font-size: 15px;\n font-weight: 600;\n color: var(--tl-text-primary);\n line-height: 1.5;\n}\n.c-timeline__time[data-v-3f951666] {\n display: inline-flex;\n align-items: center;\n padding: 1px 8px;\n font-size: 12px;\n color: var(--tl-text-time);\n white-space: nowrap;\n background: color-mix(in srgb, var(--border-color) 40%, transparent);\n border-radius: 4px;\n line-height: 1.6;\n}\n.c-timeline__tags[data-v-3f951666] {\n display: flex;\n gap: 6px;\n flex-wrap: wrap;\n}\n.c-timeline__tag[data-v-3f951666] {\n display: inline-flex;\n align-items: center;\n padding: 2px 10px;\n font-size: 11px;\n font-weight: 500;\n border-radius: var(--tl-tag-radius);\n background: color-mix(in srgb, var(--primary-color) 10%, var(--card-color));\n color: var(--primary-color);\n border: 1px solid color-mix(in srgb, var(--primary-color) 20%, transparent);\n}\n.c-timeline__content[data-v-3f951666] {\n padding: var(--tl-content-padding);\n background: var(--tl-content-bg);\n border-radius: var(--tl-content-radius);\n border: 1px solid var(--border-color);\n font-size: 13px;\n color: var(--tl-text-secondary);\n line-height: 1.7;\n}\n.c-timeline__collapse-trigger[data-v-3f951666] {\n display: inline-flex;\n align-items: center;\n gap: 4px;\n margin-top: 4px;\n font-size: 12px;\n color: var(--primary-color);\n cursor: pointer;\n user-select: none;\n transition: opacity 0.2s;\n}\n.c-timeline__collapse-trigger[data-v-3f951666]:hover {\n opacity: 0.75;\n}\n.c-timeline__collapse-trigger .collapse-arrow[data-v-3f951666] {\n transition: transform 0.25s;\n}\n.c-timeline__collapse-trigger.is-expanded .collapse-arrow[data-v-3f951666] {\n transform: rotate(180deg);\n}\n.c-timeline__detail[data-v-3f951666] {\n overflow: hidden;\n transition: max-height 0.3s ease, opacity 0.3s ease;\n}\n.c-timeline__detail.is-collapsed[data-v-3f951666] {\n max-height: 0;\n opacity: 0;\n}\n.c-timeline__detail.is-expanded[data-v-3f951666] {\n max-height: 600px;\n opacity: 1;\n}\n.c-timeline__pending[data-v-3f951666] {\n position: relative;\n display: flex;\n align-items: center;\n gap: 10px;\n font-size: 13px;\n color: var(--tl-text-time);\n padding-top: 4px;\n padding-left: 4px;\n}\n.c-timeline__pending .pending-dot[data-v-3f951666] {\n width: 10px;\n height: 10px;\n border-radius: 50%;\n background: var(--tl-dot-info);\n box-shadow: 0 0 0 3px color-mix(in srgb, var(--tl-dot-info) 20%, transparent);\n animation: tl-pulse-3f951666 1.4s infinite;\n}\n.c-timeline.is-horizontal[data-v-3f951666] {\n display: flex;\n overflow-x: auto;\n padding-bottom: 16px;\n padding-top: 40px;\n gap: 0;\n}\n.c-timeline.is-horizontal[data-v-3f951666]::-webkit-scrollbar {\n height: 4px;\n}\n.c-timeline.is-horizontal[data-v-3f951666]::-webkit-scrollbar-thumb {\n background: var(--border-color);\n border-radius: 2px;\n}\n.c-timeline.is-horizontal .c-timeline__item[data-v-3f951666] {\n flex: 0 0 var(--tl-horizontal-item-width);\n position: relative;\n padding-top: 36px;\n display: flex;\n flex-direction: column;\n gap: 8px;\n}\n.c-timeline.is-horizontal .c-timeline__item[data-v-3f951666]::before {\n content: \"\";\n position: absolute;\n top: 14px;\n left: 24px;\n right: 0;\n height: var(--tl-line-width);\n border-radius: 2px;\n background: var(--tl-line-color);\n}\n.c-timeline.is-horizontal .c-timeline__item[data-v-3f951666]:last-child::before {\n display: none;\n}\n.c-timeline.is-horizontal.is-line-dashed .c-timeline__item[data-v-3f951666]::before {\n height: 0;\n background: none;\n border-top: var(--tl-line-width) dashed var(--tl-line-color);\n}\n.c-timeline.is-horizontal.is-line-dotted .c-timeline__item[data-v-3f951666]::before {\n height: 0;\n background: none;\n border-top: var(--tl-line-width) dotted var(--tl-line-color);\n}\n.c-timeline.is-horizontal .c-timeline__dot[data-v-3f951666] {\n left: 6px;\n top: 0;\n transform: none;\n}\n.c-timeline.is-horizontal .c-timeline__time[data-v-3f951666] {\n margin-top: 2px;\n}\n@keyframes tl-pulse-3f951666 {\n0%, 100% {\n opacity: 0.4;\n transform: scale(1);\n}\n50% {\n opacity: 1;\n transform: scale(1.15);\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;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA"}