@oneflowui/ui 0.1.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (127) hide show
  1. package/README.md +161 -0
  2. package/dist/FieldCheckbox-B1eVag_x.js +30 -0
  3. package/dist/FieldDate-BCitHPQn.js +34 -0
  4. package/dist/FieldDatetime-BGeyZJl-.js +34 -0
  5. package/dist/FieldEmail-Ds8lTvNh.js +34 -0
  6. package/dist/FieldMultiSelect-_cY4aZuE.js +145 -0
  7. package/dist/FieldNumber-DayaF31C.js +43 -0
  8. package/dist/FieldRating-Dw9rvhUe.js +32 -0
  9. package/dist/FieldSelect-DEVkjnNY.js +122 -0
  10. package/dist/FieldText-LzCqM7jk.js +34 -0
  11. package/dist/FieldUrl-zqYEJCPK.js +34 -0
  12. package/dist/components/ContextMenu/index.d.ts +2 -0
  13. package/dist/components/ContextMenu/index.vue.d.ts +27 -0
  14. package/dist/components/Dashboard/charts/BarChart.vue.d.ts +17 -0
  15. package/dist/components/Dashboard/charts/DoughnutChart.vue.d.ts +12 -0
  16. package/dist/components/Dashboard/charts/NumberCard.vue.d.ts +17 -0
  17. package/dist/components/Dashboard/charts/PieChart.vue.d.ts +21 -0
  18. package/dist/components/Dashboard/charts/TableChart.vue.d.ts +20 -0
  19. package/dist/components/Dashboard/index.d.ts +6 -0
  20. package/dist/components/Dashboard/index.vue.d.ts +23 -0
  21. package/dist/components/ai/AiMessageBubble.vue.d.ts +11 -0
  22. package/dist/components/ai/AiMessageList.vue.d.ts +19 -0
  23. package/dist/components/ai/AiSender.vue.d.ts +33 -0
  24. package/dist/components/ai/AiStreamingCursor.vue.d.ts +5 -0
  25. package/dist/components/ai/AiThinking.vue.d.ts +5 -0
  26. package/dist/components/ai/UserMessageBubble.vue.d.ts +7 -0
  27. package/dist/components/ai/index.d.ts +7 -0
  28. package/dist/components/auxiliary/ColorPanel.vue.d.ts +19 -0
  29. package/dist/components/auxiliary/FileUpload.vue.d.ts +24 -0
  30. package/dist/components/auxiliary/PersonPanel.vue.d.ts +24 -0
  31. package/dist/components/auxiliary/index.d.ts +3 -0
  32. package/dist/components/base/AddViewBtn.vue.d.ts +6 -0
  33. package/dist/components/base/ButtonGroup.vue.d.ts +30 -0
  34. package/dist/components/base/DropdownMenu.vue.d.ts +25 -0
  35. package/dist/components/base/EmptyState.vue.d.ts +26 -0
  36. package/dist/components/base/RangeSlider.vue.d.ts +29 -0
  37. package/dist/components/base/StatisticCard.vue.d.ts +22 -0
  38. package/dist/components/base/ToolbarBtn.vue.d.ts +11 -0
  39. package/dist/components/base/ViewTab.vue.d.ts +11 -0
  40. package/dist/components/base/index.d.ts +11 -0
  41. package/dist/components/breadcrumb/Breadcrumb.vue.d.ts +48 -0
  42. package/dist/components/breadcrumb/BreadcrumbItem.vue.d.ts +42 -0
  43. package/dist/components/breadcrumb/index.d.ts +3 -0
  44. package/dist/components/detail/CommentItem.vue.d.ts +6 -0
  45. package/dist/components/detail/DetailLayout.vue.d.ts +37 -0
  46. package/dist/components/detail/PropPanel.vue.d.ts +26 -0
  47. package/dist/components/detail/PropRow.vue.d.ts +44 -0
  48. package/dist/components/detail/index.d.ts +4 -0
  49. package/dist/components/editor/BlockQuote.vue.d.ts +13 -0
  50. package/dist/components/editor/CodeBlock.vue.d.ts +10 -0
  51. package/dist/components/editor/ContentBlock.vue.d.ts +27 -0
  52. package/dist/components/editor/RefLink.vue.d.ts +11 -0
  53. package/dist/components/editor/RichTextEditor.vue.d.ts +186 -0
  54. package/dist/components/editor/index.d.ts +5 -0
  55. package/dist/components/field/FieldCheckbox.vue.d.ts +14 -0
  56. package/dist/components/field/FieldDate.vue.d.ts +17 -0
  57. package/dist/components/field/FieldDatetime.vue.d.ts +17 -0
  58. package/dist/components/field/FieldEmail.vue.d.ts +17 -0
  59. package/dist/components/field/FieldMultiSelect.vue.d.ts +18 -0
  60. package/dist/components/field/FieldNumber.vue.d.ts +17 -0
  61. package/dist/components/field/FieldRating.vue.d.ts +15 -0
  62. package/dist/components/field/FieldSelect.vue.d.ts +18 -0
  63. package/dist/components/field/FieldText.vue.d.ts +17 -0
  64. package/dist/components/field/FieldUrl.vue.d.ts +17 -0
  65. package/dist/components/form/FormDesigner.vue.d.ts +17 -0
  66. package/dist/components/form/index.d.ts +1 -0
  67. package/dist/components/gallery/GalleryCard.vue.d.ts +10 -0
  68. package/dist/components/gallery/GalleryView.vue.d.ts +24 -0
  69. package/dist/components/gallery/index.d.ts +2 -0
  70. package/dist/components/kanban/KanbanBoard.vue.d.ts +26 -0
  71. package/dist/components/kanban/KanbanCard.vue.d.ts +23 -0
  72. package/dist/components/kanban/KanbanColumn.vue.d.ts +25 -0
  73. package/dist/components/kanban/QuickAddRow.vue.d.ts +13 -0
  74. package/dist/components/kanban/index.d.ts +4 -0
  75. package/dist/components/layout/AppLayout.vue.d.ts +20 -0
  76. package/dist/components/layout/Navbar.vue.d.ts +34 -0
  77. package/dist/components/layout/Sidebar.vue.d.ts +26 -0
  78. package/dist/components/layout/StatusBar.vue.d.ts +11 -0
  79. package/dist/components/layout/index.d.ts +4 -0
  80. package/dist/components/mermaid/MermaidChart.vue.d.ts +46 -0
  81. package/dist/components/mermaid/index.d.ts +1 -0
  82. package/dist/components/overlay/Dialog.vue.d.ts +69 -0
  83. package/dist/components/overlay/Modal.vue.d.ts +59 -0
  84. package/dist/components/overlay/index.d.ts +2 -0
  85. package/dist/components/split/SplitPane.vue.d.ts +41 -0
  86. package/dist/components/split/index.d.ts +1 -0
  87. package/dist/components/table/DataTable.vue.d.ts +43 -0
  88. package/dist/components/table/FieldCell.vue.d.ts +33 -0
  89. package/dist/components/table/NewRowBtn.vue.d.ts +6 -0
  90. package/dist/components/table/TableColumnManager.vue.d.ts +13 -0
  91. package/dist/components/table/TableDataRow.vue.d.ts +47 -0
  92. package/dist/components/table/TableFilterPanel.vue.d.ts +24 -0
  93. package/dist/components/table/TableHeaderRow.vue.d.ts +23 -0
  94. package/dist/components/table/index.d.ts +8 -0
  95. package/dist/components/tabs/TabPanel.vue.d.ts +38 -0
  96. package/dist/components/tabs/Tabs.vue.d.ts +60 -0
  97. package/dist/components/tabs/index.d.ts +3 -0
  98. package/dist/components/timeline/GanttRow.vue.d.ts +42 -0
  99. package/dist/components/timeline/GanttTimeline.vue.d.ts +46 -0
  100. package/dist/components/timeline/index.d.ts +2 -0
  101. package/dist/components/toast/ToastContainer.vue.d.ts +2 -0
  102. package/dist/components/toast/ToastItem.vue.d.ts +16 -0
  103. package/dist/components/toast/index.d.ts +2 -0
  104. package/dist/composables/index.d.ts +16 -0
  105. package/dist/composables/useAiChat.d.ts +45 -0
  106. package/dist/composables/useBadge.d.ts +27 -0
  107. package/dist/composables/useInlineEdit.d.ts +17 -0
  108. package/dist/composables/useMarkdown.d.ts +16 -0
  109. package/dist/composables/useStream.d.ts +15 -0
  110. package/dist/composables/useTable.d.ts +62 -0
  111. package/dist/composables/useTableFilter.d.ts +36 -0
  112. package/dist/composables/useToast.d.ts +63 -0
  113. package/dist/composables/useTypewriter.d.ts +11 -0
  114. package/dist/dev/App.vue.d.ts +2 -0
  115. package/dist/dev/main.d.ts +0 -0
  116. package/dist/index-B9LF7Kv4.js +10661 -0
  117. package/dist/index.d.ts +45 -0
  118. package/dist/oneflow-ui.js +84 -0
  119. package/dist/oneflow-ui.umd.cjs +13 -0
  120. package/dist/style.css +1 -0
  121. package/dist/tests/gantt.integration.spec.d.ts +1 -0
  122. package/dist/tests/table-detail.integration.spec.d.ts +1 -0
  123. package/dist/tests/three-layer-model.integration.spec.d.ts +1 -0
  124. package/dist/types/index.d.ts +161 -0
  125. package/dist/utils/icon.d.ts +7 -0
  126. package/dist/utils/index.d.ts +1 -0
  127. package/package.json +62 -0
@@ -0,0 +1,34 @@
1
+ import { defineComponent as f, ref as a, onMounted as m, nextTick as s, withDirectives as v, openBlock as d, createElementBlock as y, vModelText as _ } from "vue";
2
+ import { _ as k } from "./index-B9LF7Kv4.js";
3
+ const x = /* @__PURE__ */ f({
4
+ __name: "FieldUrl",
5
+ props: {
6
+ value: { type: [String, Number, Boolean, Array, null] },
7
+ field: {}
8
+ },
9
+ emits: ["commit", "cancel", "tabNext"],
10
+ setup(i, { emit: u }) {
11
+ const c = i, t = u, o = a(null), n = a(String(c.value ?? ""));
12
+ m(() => s(() => {
13
+ var e;
14
+ return (e = o.value) == null ? void 0 : e.focus();
15
+ }));
16
+ function p(e) {
17
+ e.key === "Enter" && (e.preventDefault(), t("commit", n.value)), e.key === "Escape" && (e.preventDefault(), t("cancel")), e.key === "Tab" && (e.preventDefault(), t("commit", n.value), t("tabNext"));
18
+ }
19
+ return (e, l) => v((d(), y("input", {
20
+ ref_key: "inputRef",
21
+ ref: o,
22
+ class: "of-field-input",
23
+ type: "url",
24
+ "onUpdate:modelValue": l[0] || (l[0] = (r) => n.value = r),
25
+ onKeydown: p,
26
+ onBlur: l[1] || (l[1] = (r) => t("commit", n.value))
27
+ }, null, 544)), [
28
+ [_, n.value]
29
+ ]);
30
+ }
31
+ }), D = /* @__PURE__ */ k(x, [["__scopeId", "data-v-7c8b4ad8"]]);
32
+ export {
33
+ D as default
34
+ };
@@ -0,0 +1,2 @@
1
+ export { default } from './index.vue';
2
+ export type { ContextMenuItem } from './index.vue';
@@ -0,0 +1,27 @@
1
+ export interface ContextMenuItem {
2
+ key: string;
3
+ label: string;
4
+ icon?: string;
5
+ disabled?: boolean;
6
+ danger?: boolean;
7
+ separator?: boolean;
8
+ children?: ContextMenuItem[];
9
+ }
10
+ type __VLS_Props = {
11
+ x: number;
12
+ y: number;
13
+ items: ContextMenuItem[];
14
+ visible?: boolean;
15
+ };
16
+ declare const _default: import('vue').DefineComponent<__VLS_Props, {}, {}, {}, {}, import('vue').ComponentOptionsMixin, import('vue').ComponentOptionsMixin, {
17
+ select: (key: string) => any;
18
+ close: () => any;
19
+ }, string, import('vue').PublicProps, Readonly<__VLS_Props> & Readonly<{
20
+ onSelect?: ((key: string) => any) | undefined;
21
+ onClose?: (() => any) | undefined;
22
+ }>, {
23
+ visible: boolean;
24
+ }, {}, {}, {}, string, import('vue').ComponentProvideOptions, false, {
25
+ menuRef: HTMLDivElement;
26
+ }, any>;
27
+ export default _default;
@@ -0,0 +1,17 @@
1
+ interface Props {
2
+ title?: string;
3
+ xAxisData?: string[];
4
+ seriesName?: string;
5
+ data?: number[];
6
+ colors?: string[];
7
+ }
8
+ declare const _default: import('vue').DefineComponent<Props, {}, {}, {}, {}, import('vue').ComponentOptionsMixin, import('vue').ComponentOptionsMixin, {}, string, import('vue').PublicProps, Readonly<Props> & Readonly<{}>, {
9
+ title: string;
10
+ data: number[];
11
+ xAxisData: string[];
12
+ seriesName: string;
13
+ colors: string[];
14
+ }, {}, {}, {}, string, import('vue').ComponentProvideOptions, false, {
15
+ chartRef: HTMLDivElement;
16
+ }, HTMLDivElement>;
17
+ export default _default;
@@ -0,0 +1,12 @@
1
+ interface PieDatum {
2
+ name: string;
3
+ value: number;
4
+ }
5
+ type __VLS_Props = {
6
+ title?: string;
7
+ data?: PieDatum[];
8
+ colors?: string[];
9
+ showLegend?: boolean;
10
+ };
11
+ declare const _default: import('vue').DefineComponent<__VLS_Props, {}, {}, {}, {}, import('vue').ComponentOptionsMixin, import('vue').ComponentOptionsMixin, {}, string, import('vue').PublicProps, Readonly<__VLS_Props> & Readonly<{}>, {}, {}, {}, {}, string, import('vue').ComponentProvideOptions, false, {}, HTMLDivElement>;
12
+ export default _default;
@@ -0,0 +1,17 @@
1
+ interface Props {
2
+ title?: string;
3
+ value?: number;
4
+ unit?: string;
5
+ compare?: string;
6
+ trend?: "up" | "down";
7
+ color?: string;
8
+ }
9
+ declare const _default: import('vue').DefineComponent<Props, {}, {}, {}, {}, import('vue').ComponentOptionsMixin, import('vue').ComponentOptionsMixin, {}, string, import('vue').PublicProps, Readonly<Props> & Readonly<{}>, {
10
+ title: string;
11
+ color: string;
12
+ value: number;
13
+ unit: string;
14
+ compare: string;
15
+ trend: "up" | "down";
16
+ }, {}, {}, {}, string, import('vue').ComponentProvideOptions, false, {}, HTMLDivElement>;
17
+ export default _default;
@@ -0,0 +1,21 @@
1
+ interface PieDatum {
2
+ name: string;
3
+ value: number;
4
+ }
5
+ interface Props {
6
+ title?: string;
7
+ data?: PieDatum[];
8
+ colors?: string[];
9
+ doughnut?: boolean;
10
+ showLegend?: boolean;
11
+ }
12
+ declare const _default: import('vue').DefineComponent<Props, {}, {}, {}, {}, import('vue').ComponentOptionsMixin, import('vue').ComponentOptionsMixin, {}, string, import('vue').PublicProps, Readonly<Props> & Readonly<{}>, {
13
+ title: string;
14
+ data: PieDatum[];
15
+ colors: string[];
16
+ doughnut: boolean;
17
+ showLegend: boolean;
18
+ }, {}, {}, {}, string, import('vue').ComponentProvideOptions, false, {
19
+ chartRef: HTMLDivElement;
20
+ }, HTMLDivElement>;
21
+ export default _default;
@@ -0,0 +1,20 @@
1
+ interface Column {
2
+ key: string;
3
+ label: string;
4
+ align?: "left" | "center" | "right";
5
+ }
6
+ interface RowData {
7
+ id?: string | number;
8
+ [key: string]: string | number | undefined;
9
+ }
10
+ interface Props {
11
+ title?: string;
12
+ columns?: Column[];
13
+ rows?: RowData[];
14
+ }
15
+ declare const _default: import('vue').DefineComponent<Props, {}, {}, {}, {}, import('vue').ComponentOptionsMixin, import('vue').ComponentOptionsMixin, {}, string, import('vue').PublicProps, Readonly<Props> & Readonly<{}>, {
16
+ title: string;
17
+ columns: Column[];
18
+ rows: RowData[];
19
+ }, {}, {}, {}, string, import('vue').ComponentProvideOptions, false, {}, HTMLDivElement>;
20
+ export default _default;
@@ -0,0 +1,6 @@
1
+ export { default as Dashboard } from './index.vue';
2
+ export { default as BarChart } from './charts/BarChart.vue';
3
+ export { default as PieChart } from './charts/PieChart.vue';
4
+ export { default as DoughnutChart } from './charts/DoughnutChart.vue';
5
+ export { default as NumberCard } from './charts/NumberCard.vue';
6
+ export { default as TableChart } from './charts/TableChart.vue';
@@ -0,0 +1,23 @@
1
+ type ChartType = "bar" | "pie" | "doughnut" | "number-card" | "table";
2
+ interface DashboardWidget {
3
+ id: string;
4
+ type: ChartType;
5
+ title?: string;
6
+ data?: unknown;
7
+ config?: Record<string, unknown>;
8
+ colSpan?: 1 | 2 | 3 | 4;
9
+ rowSpan?: 1 | 2;
10
+ }
11
+ type __VLS_Props = {
12
+ title?: string;
13
+ widgets?: DashboardWidget[];
14
+ columns?: number;
15
+ gap?: number;
16
+ };
17
+ declare const _default: import('vue').DefineComponent<__VLS_Props, {}, {}, {}, {}, import('vue').ComponentOptionsMixin, import('vue').ComponentOptionsMixin, {}, string, import('vue').PublicProps, Readonly<__VLS_Props> & Readonly<{}>, {
18
+ title: string;
19
+ columns: number;
20
+ widgets: DashboardWidget[];
21
+ gap: number;
22
+ }, {}, {}, {}, string, import('vue').ComponentProvideOptions, false, {}, HTMLElement>;
23
+ export default _default;
@@ -0,0 +1,11 @@
1
+ type __VLS_Props = {
2
+ content: string;
3
+ isStreaming?: boolean;
4
+ /** 是否为错误状态,气泡显示为红色 */
5
+ isError?: boolean;
6
+ avatar?: string;
7
+ name?: string;
8
+ timestamp?: string;
9
+ };
10
+ declare const _default: import('vue').DefineComponent<__VLS_Props, {}, {}, {}, {}, import('vue').ComponentOptionsMixin, import('vue').ComponentOptionsMixin, {}, string, import('vue').PublicProps, Readonly<__VLS_Props> & Readonly<{}>, {}, {}, {}, {}, string, import('vue').ComponentProvideOptions, false, {}, HTMLDivElement>;
11
+ export default _default;
@@ -0,0 +1,19 @@
1
+ export interface AiMessage {
2
+ id: string;
3
+ role: "ai" | "user";
4
+ content: string;
5
+ isStreaming?: boolean;
6
+ /** 是否为错误消息,展示红色错误气泡 */
7
+ isError?: boolean;
8
+ timestamp?: string;
9
+ avatar?: string;
10
+ name?: string;
11
+ }
12
+ type __VLS_Props = {
13
+ messages: AiMessage[];
14
+ isThinking?: boolean;
15
+ };
16
+ declare const _default: import('vue').DefineComponent<__VLS_Props, {}, {}, {}, {}, import('vue').ComponentOptionsMixin, import('vue').ComponentOptionsMixin, {}, string, import('vue').PublicProps, Readonly<__VLS_Props> & Readonly<{}>, {}, {}, {}, {}, string, import('vue').ComponentProvideOptions, false, {
17
+ listRef: HTMLDivElement;
18
+ }, HTMLDivElement>;
19
+ export default _default;
@@ -0,0 +1,33 @@
1
+ type __VLS_Props = {
2
+ placeholder?: string;
3
+ disabled?: boolean;
4
+ maxRows?: number;
5
+ };
6
+ declare function __VLS_template(): {
7
+ attrs: Partial<{}>;
8
+ slots: {
9
+ tools?(_: {}): any;
10
+ prefix?(_: {}): any;
11
+ };
12
+ refs: {
13
+ textareaRef: HTMLTextAreaElement;
14
+ };
15
+ rootEl: HTMLDivElement;
16
+ };
17
+ type __VLS_TemplateResult = ReturnType<typeof __VLS_template>;
18
+ declare const __VLS_component: import('vue').DefineComponent<__VLS_Props, {}, {}, {}, {}, import('vue').ComponentOptionsMixin, import('vue').ComponentOptionsMixin, {
19
+ cancel: () => any;
20
+ send: (content: string) => any;
21
+ }, string, import('vue').PublicProps, Readonly<__VLS_Props> & Readonly<{
22
+ onCancel?: (() => any) | undefined;
23
+ onSend?: ((content: string) => any) | undefined;
24
+ }>, {}, {}, {}, {}, string, import('vue').ComponentProvideOptions, false, {
25
+ textareaRef: HTMLTextAreaElement;
26
+ }, HTMLDivElement>;
27
+ declare const _default: __VLS_WithTemplateSlots<typeof __VLS_component, __VLS_TemplateResult["slots"]>;
28
+ export default _default;
29
+ type __VLS_WithTemplateSlots<T, S> = T & {
30
+ new (): {
31
+ $slots: S;
32
+ };
33
+ };
@@ -0,0 +1,5 @@
1
+ type __VLS_Props = {
2
+ visible?: boolean;
3
+ };
4
+ declare const _default: import('vue').DefineComponent<__VLS_Props, {}, {}, {}, {}, import('vue').ComponentOptionsMixin, import('vue').ComponentOptionsMixin, {}, string, import('vue').PublicProps, Readonly<__VLS_Props> & Readonly<{}>, {}, {}, {}, {}, string, import('vue').ComponentProvideOptions, false, {}, any>;
5
+ export default _default;
@@ -0,0 +1,5 @@
1
+ type __VLS_Props = {
2
+ size?: "sm" | "md";
3
+ };
4
+ declare const _default: import('vue').DefineComponent<__VLS_Props, {}, {}, {}, {}, import('vue').ComponentOptionsMixin, import('vue').ComponentOptionsMixin, {}, string, import('vue').PublicProps, Readonly<__VLS_Props> & Readonly<{}>, {}, {}, {}, {}, string, import('vue').ComponentProvideOptions, false, {}, HTMLDivElement>;
5
+ export default _default;
@@ -0,0 +1,7 @@
1
+ type __VLS_Props = {
2
+ content: string;
3
+ timestamp?: string;
4
+ avatar?: string;
5
+ };
6
+ declare const _default: import('vue').DefineComponent<__VLS_Props, {}, {}, {}, {}, import('vue').ComponentOptionsMixin, import('vue').ComponentOptionsMixin, {}, string, import('vue').PublicProps, Readonly<__VLS_Props> & Readonly<{}>, {}, {}, {}, {}, string, import('vue').ComponentProvideOptions, false, {}, HTMLDivElement>;
7
+ export default _default;
@@ -0,0 +1,7 @@
1
+ export { default as AiThinking } from './AiThinking.vue';
2
+ export { default as AiStreamingCursor } from './AiStreamingCursor.vue';
3
+ export { default as AiMessageBubble } from './AiMessageBubble.vue';
4
+ export { default as UserMessageBubble } from './UserMessageBubble.vue';
5
+ export { default as AiMessageList } from './AiMessageList.vue';
6
+ export { default as AiSender } from './AiSender.vue';
7
+ export type { AiMessage } from './AiMessageList.vue';
@@ -0,0 +1,19 @@
1
+ type __VLS_Props = {
2
+ modelValue: string;
3
+ presets?: string[];
4
+ showInput?: boolean;
5
+ disabled?: boolean;
6
+ label?: string;
7
+ };
8
+ declare const _default: import('vue').DefineComponent<__VLS_Props, {}, {}, {}, {}, import('vue').ComponentOptionsMixin, import('vue').ComponentOptionsMixin, {
9
+ "update:modelValue": (value: string) => any;
10
+ change: (value: string) => any;
11
+ }, string, import('vue').PublicProps, Readonly<__VLS_Props> & Readonly<{
12
+ "onUpdate:modelValue"?: ((value: string) => any) | undefined;
13
+ onChange?: ((value: string) => any) | undefined;
14
+ }>, {
15
+ label: string;
16
+ presets: string[];
17
+ showInput: boolean;
18
+ }, {}, {}, {}, string, import('vue').ComponentProvideOptions, false, {}, HTMLDivElement>;
19
+ export default _default;
@@ -0,0 +1,24 @@
1
+ type __VLS_Props = {
2
+ modelValue?: File[];
3
+ multiple?: boolean;
4
+ accept?: string;
5
+ maxCount?: number;
6
+ disabled?: boolean;
7
+ hint?: string;
8
+ };
9
+ declare const _default: import('vue').DefineComponent<__VLS_Props, {}, {}, {}, {}, import('vue').ComponentOptionsMixin, import('vue').ComponentOptionsMixin, {
10
+ "update:modelValue": (value: File[]) => any;
11
+ change: (value: File[]) => any;
12
+ }, string, import('vue').PublicProps, Readonly<__VLS_Props> & Readonly<{
13
+ "onUpdate:modelValue"?: ((value: File[]) => any) | undefined;
14
+ onChange?: ((value: File[]) => any) | undefined;
15
+ }>, {
16
+ modelValue: File[];
17
+ multiple: boolean;
18
+ accept: string;
19
+ maxCount: number;
20
+ hint: string;
21
+ }, {}, {}, {}, string, import('vue').ComponentProvideOptions, false, {
22
+ fileInput: HTMLInputElement;
23
+ }, HTMLDivElement>;
24
+ export default _default;
@@ -0,0 +1,24 @@
1
+ interface PersonOption {
2
+ id: string;
3
+ name: string;
4
+ title?: string;
5
+ avatar?: string;
6
+ color?: string;
7
+ }
8
+ type __VLS_Props = {
9
+ modelValue?: string | null;
10
+ people: PersonOption[];
11
+ placeholder?: string;
12
+ disabled?: boolean;
13
+ };
14
+ declare const _default: import('vue').DefineComponent<__VLS_Props, {}, {}, {}, {}, import('vue').ComponentOptionsMixin, import('vue').ComponentOptionsMixin, {
15
+ "update:modelValue": (value: string | null) => any;
16
+ change: (value: string | null) => any;
17
+ }, string, import('vue').PublicProps, Readonly<__VLS_Props> & Readonly<{
18
+ "onUpdate:modelValue"?: ((value: string | null) => any) | undefined;
19
+ onChange?: ((value: string | null) => any) | undefined;
20
+ }>, {
21
+ modelValue: string | null;
22
+ placeholder: string;
23
+ }, {}, {}, {}, string, import('vue').ComponentProvideOptions, false, {}, HTMLDivElement>;
24
+ export default _default;
@@ -0,0 +1,3 @@
1
+ export { default as ColorPanel } from './ColorPanel.vue';
2
+ export { default as PersonPanel } from './PersonPanel.vue';
3
+ export { default as FileUpload } from './FileUpload.vue';
@@ -0,0 +1,6 @@
1
+ declare const _default: import('vue').DefineComponent<{}, {}, {}, {}, {}, import('vue').ComponentOptionsMixin, import('vue').ComponentOptionsMixin, {} & {
2
+ click: (event: MouseEvent) => any;
3
+ }, string, import('vue').PublicProps, Readonly<{}> & Readonly<{
4
+ onClick?: ((event: MouseEvent) => any) | undefined;
5
+ }>, {}, {}, {}, {}, string, import('vue').ComponentProvideOptions, true, {}, HTMLButtonElement>;
6
+ export default _default;
@@ -0,0 +1,30 @@
1
+ import { Component } from 'vue';
2
+ /**
3
+ * ButtonGroup 组件 - 选项按钮组
4
+ *
5
+ * 用于快速创建按钮网格选择器,支持图标
6
+ *
7
+ * @example
8
+ * <ButtonGroup
9
+ * :options="[
10
+ * { label: '向量搜索', value: 'vector' },
11
+ * { label: '关键词搜索', value: 'keyword' }
12
+ * ]"
13
+ * v-model="selectedMode"
14
+ * />
15
+ */
16
+ export interface ButtonOption {
17
+ label: string;
18
+ value: string | number;
19
+ icon?: string | Component;
20
+ }
21
+ type __VLS_Props = {
22
+ options: ButtonOption[];
23
+ modelValue: string | number;
24
+ };
25
+ declare const _default: import('vue').DefineComponent<__VLS_Props, {}, {}, {}, {}, import('vue').ComponentOptionsMixin, import('vue').ComponentOptionsMixin, {
26
+ "update:modelValue": (value: string | number) => any;
27
+ }, string, import('vue').PublicProps, Readonly<__VLS_Props> & Readonly<{
28
+ "onUpdate:modelValue"?: ((value: string | number) => any) | undefined;
29
+ }>, {}, {}, {}, {}, string, import('vue').ComponentProvideOptions, false, {}, HTMLDivElement>;
30
+ export default _default;
@@ -0,0 +1,25 @@
1
+ import { Component } from 'vue';
2
+ /**
3
+ * DropdownMenu 组件 - 行操作下拉菜单
4
+ *
5
+ * 用于展示行级操作菜单,自动管理打开/关闭状态
6
+ *
7
+ * @example
8
+ * <DropdownMenu
9
+ * :items="[
10
+ * { label: '编辑', icon: 'edit', onClick: handleEdit },
11
+ * { label: '删除', icon: 'trash-2', variant: 'destructive', onClick: handleDelete }
12
+ * ]"
13
+ * />
14
+ */
15
+ export interface MenuItem {
16
+ label: string;
17
+ icon?: string | Component;
18
+ onClick: () => void;
19
+ variant?: "default" | "destructive";
20
+ }
21
+ type __VLS_Props = {
22
+ items: MenuItem[];
23
+ };
24
+ declare const _default: import('vue').DefineComponent<__VLS_Props, {}, {}, {}, {}, import('vue').ComponentOptionsMixin, import('vue').ComponentOptionsMixin, {}, string, import('vue').PublicProps, Readonly<__VLS_Props> & Readonly<{}>, {}, {}, {}, {}, string, import('vue').ComponentProvideOptions, false, {}, HTMLDivElement>;
25
+ export default _default;
@@ -0,0 +1,26 @@
1
+ import { Component } from 'vue';
2
+ /**
3
+ * EmptyState 组件 - 空状态提示
4
+ *
5
+ * 统一的空列表、空结果等空态提示组件
6
+ *
7
+ * @example
8
+ * <EmptyState
9
+ * icon="inbox"
10
+ * title="暂无数据"
11
+ * description="开始创建第一条记录"
12
+ * :action="{ label: '新建', onClick: handleCreate }"
13
+ * />
14
+ */
15
+ export interface EmptyStateAction {
16
+ label: string;
17
+ onClick: () => void;
18
+ }
19
+ type __VLS_Props = {
20
+ icon?: string | Component;
21
+ title: string;
22
+ description?: string;
23
+ action?: EmptyStateAction;
24
+ };
25
+ declare const _default: import('vue').DefineComponent<__VLS_Props, {}, {}, {}, {}, import('vue').ComponentOptionsMixin, import('vue').ComponentOptionsMixin, {}, string, import('vue').PublicProps, Readonly<__VLS_Props> & Readonly<{}>, {}, {}, {}, {}, string, import('vue').ComponentProvideOptions, false, {}, HTMLDivElement>;
26
+ export default _default;
@@ -0,0 +1,29 @@
1
+ /**
2
+ * RangeSlider 组件 - 范围滑块输入
3
+ *
4
+ * 用于快速创建 label + range input + description 三件套
5
+ *
6
+ * @example
7
+ * <RangeSlider
8
+ * label="最大长度"
9
+ * v-model="maxLength"
10
+ * :min="100"
11
+ * :max="2000"
12
+ * :step="100"
13
+ * description="调整文本长度限制"
14
+ * />
15
+ */
16
+ type __VLS_Props = {
17
+ label: string;
18
+ modelValue: number;
19
+ min: number;
20
+ max: number;
21
+ step?: number;
22
+ description?: string;
23
+ };
24
+ declare const _default: import('vue').DefineComponent<__VLS_Props, {}, {}, {}, {}, import('vue').ComponentOptionsMixin, import('vue').ComponentOptionsMixin, {
25
+ "update:modelValue": (value: number) => any;
26
+ }, string, import('vue').PublicProps, Readonly<__VLS_Props> & Readonly<{
27
+ "onUpdate:modelValue"?: ((value: number) => any) | undefined;
28
+ }>, {}, {}, {}, {}, string, import('vue').ComponentProvideOptions, false, {}, HTMLDivElement>;
29
+ export default _default;
@@ -0,0 +1,22 @@
1
+ import { Component } from 'vue';
2
+ /**
3
+ * StatisticCard 组件 - 统计卡片
4
+ *
5
+ * 用于在仪表板中展示统计数据
6
+ *
7
+ * @example
8
+ * <StatisticCard
9
+ * icon="database"
10
+ * icon-color="blue"
11
+ * value="1,234"
12
+ * label="知识库数量"
13
+ * />
14
+ */
15
+ type __VLS_Props = {
16
+ icon: string | Component;
17
+ iconColor?: "blue" | "green" | "orange" | "red" | "purple";
18
+ value: string | number;
19
+ label: string;
20
+ };
21
+ declare const _default: import('vue').DefineComponent<__VLS_Props, {}, {}, {}, {}, import('vue').ComponentOptionsMixin, import('vue').ComponentOptionsMixin, {}, string, import('vue').PublicProps, Readonly<__VLS_Props> & Readonly<{}>, {}, {}, {}, {}, string, import('vue').ComponentProvideOptions, false, {}, HTMLDivElement>;
22
+ export default _default;
@@ -0,0 +1,11 @@
1
+ type __VLS_Props = {
2
+ icon: string;
3
+ label: string;
4
+ active?: boolean;
5
+ };
6
+ declare const _default: import('vue').DefineComponent<__VLS_Props, {}, {}, {}, {}, import('vue').ComponentOptionsMixin, import('vue').ComponentOptionsMixin, {} & {
7
+ click: (event: MouseEvent) => any;
8
+ }, string, import('vue').PublicProps, Readonly<__VLS_Props> & Readonly<{
9
+ onClick?: ((event: MouseEvent) => any) | undefined;
10
+ }>, {}, {}, {}, {}, string, import('vue').ComponentProvideOptions, false, {}, HTMLButtonElement>;
11
+ export default _default;
@@ -0,0 +1,11 @@
1
+ import { ViewTabItem } from '../../types';
2
+ type __VLS_Props = {
3
+ modelValue: string;
4
+ items: ViewTabItem[];
5
+ };
6
+ declare const _default: import('vue').DefineComponent<__VLS_Props, {}, {}, {}, {}, import('vue').ComponentOptionsMixin, import('vue').ComponentOptionsMixin, {} & {
7
+ "update:modelValue": (value: string) => any;
8
+ }, string, import('vue').PublicProps, Readonly<__VLS_Props> & Readonly<{
9
+ "onUpdate:modelValue"?: ((value: string) => any) | undefined;
10
+ }>, {}, {}, {}, {}, string, import('vue').ComponentProvideOptions, false, {}, HTMLDivElement>;
11
+ export default _default;
@@ -0,0 +1,11 @@
1
+ export { default as ViewTab } from './ViewTab.vue';
2
+ export { default as ToolbarBtn } from './ToolbarBtn.vue';
3
+ export { default as AddViewBtn } from './AddViewBtn.vue';
4
+ export { default as RangeSlider } from './RangeSlider.vue';
5
+ export { default as ButtonGroup } from './ButtonGroup.vue';
6
+ export { default as EmptyState } from './EmptyState.vue';
7
+ export { default as StatisticCard } from './StatisticCard.vue';
8
+ export { default as DropdownMenu } from './DropdownMenu.vue';
9
+ export type { ButtonOption } from './ButtonGroup.vue';
10
+ export type { EmptyStateAction } from './EmptyState.vue';
11
+ export type { MenuItem } from './DropdownMenu.vue';
@@ -0,0 +1,48 @@
1
+ import { Component } from 'vue';
2
+ export interface BreadcrumbItemData {
3
+ label: string;
4
+ path?: string;
5
+ icon?: string | Component;
6
+ onClick?: () => void;
7
+ }
8
+ /**
9
+ * Breadcrumb 组件 - 面包屑导航
10
+ *
11
+ * @example
12
+ * <!-- 数据模式 -->
13
+ * <Breadcrumb :items="[
14
+ * { label: '首页', path: '/' },
15
+ * { label: '设置', path: '/settings' },
16
+ * { label: '个人信息' }
17
+ * ]" />
18
+ *
19
+ * <!-- Slot 模式 -->
20
+ * <Breadcrumb>
21
+ * <BreadcrumbItem path="/">首页</BreadcrumbItem>
22
+ * <BreadcrumbItem>当前页</BreadcrumbItem>
23
+ * </Breadcrumb>
24
+ */
25
+ type __VLS_Props = {
26
+ /** 数据模式:面包屑项数组 */
27
+ items?: BreadcrumbItemData[];
28
+ /** 分隔符,默认 '/' */
29
+ separator?: string;
30
+ };
31
+ declare function __VLS_template(): {
32
+ attrs: Partial<{}>;
33
+ slots: {
34
+ separator?(_: {}): any;
35
+ default?(_: {}): any;
36
+ };
37
+ refs: {};
38
+ rootEl: HTMLElement;
39
+ };
40
+ type __VLS_TemplateResult = ReturnType<typeof __VLS_template>;
41
+ declare const __VLS_component: import('vue').DefineComponent<__VLS_Props, {}, {}, {}, {}, import('vue').ComponentOptionsMixin, import('vue').ComponentOptionsMixin, {}, string, import('vue').PublicProps, Readonly<__VLS_Props> & Readonly<{}>, {}, {}, {}, {}, string, import('vue').ComponentProvideOptions, false, {}, HTMLElement>;
42
+ declare const _default: __VLS_WithTemplateSlots<typeof __VLS_component, __VLS_TemplateResult["slots"]>;
43
+ export default _default;
44
+ type __VLS_WithTemplateSlots<T, S> = T & {
45
+ new (): {
46
+ $slots: S;
47
+ };
48
+ };
@@ -0,0 +1,42 @@
1
+ import { Component } from 'vue';
2
+ /**
3
+ * BreadcrumbItem 组件 - 面包屑项
4
+ *
5
+ * 用于 Breadcrumb 的 Slot 模式,表示面包屑导航中的单个项。
6
+ *
7
+ * @example
8
+ * <Breadcrumb>
9
+ * <BreadcrumbItem path="/">首页</BreadcrumbItem>
10
+ * <BreadcrumbItem path="/settings" icon="settings">设置</BreadcrumbItem>
11
+ * <BreadcrumbItem active>当前页</BreadcrumbItem>
12
+ * </Breadcrumb>
13
+ */
14
+ type __VLS_Props = {
15
+ /** 链接路径,有路径则可点击 */
16
+ path?: string;
17
+ /** 图标,字符串(lucide 图标名)或 Component */
18
+ icon?: string | Component;
19
+ /** 是否为当前活跃页(最后一项) */
20
+ active?: boolean;
21
+ };
22
+ declare function __VLS_template(): {
23
+ attrs: Partial<{}>;
24
+ slots: {
25
+ default?(_: {}): any;
26
+ };
27
+ refs: {};
28
+ rootEl: HTMLLIElement;
29
+ };
30
+ type __VLS_TemplateResult = ReturnType<typeof __VLS_template>;
31
+ declare const __VLS_component: import('vue').DefineComponent<__VLS_Props, {}, {}, {}, {}, import('vue').ComponentOptionsMixin, import('vue').ComponentOptionsMixin, {
32
+ click: (e: MouseEvent) => any;
33
+ }, string, import('vue').PublicProps, Readonly<__VLS_Props> & Readonly<{
34
+ onClick?: ((e: MouseEvent) => any) | undefined;
35
+ }>, {}, {}, {}, {}, string, import('vue').ComponentProvideOptions, false, {}, HTMLLIElement>;
36
+ declare const _default: __VLS_WithTemplateSlots<typeof __VLS_component, __VLS_TemplateResult["slots"]>;
37
+ export default _default;
38
+ type __VLS_WithTemplateSlots<T, S> = T & {
39
+ new (): {
40
+ $slots: S;
41
+ };
42
+ };
@@ -0,0 +1,3 @@
1
+ export { default as Breadcrumb } from './Breadcrumb.vue';
2
+ export { default as BreadcrumbItem } from './BreadcrumbItem.vue';
3
+ export type { BreadcrumbItemData } from './Breadcrumb.vue';