@oneflowui/ui 0.1.0 → 0.2.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 (61) hide show
  1. package/README.en.md +215 -0
  2. package/README.md +142 -85
  3. package/dist/{FieldCheckbox-B1eVag_x.js → FieldCheckbox-6JDYTsHs.js} +1 -1
  4. package/dist/{FieldDate-BCitHPQn.js → FieldDate-cdYgLrho.js} +1 -1
  5. package/dist/{FieldDatetime-BGeyZJl-.js → FieldDatetime-pAXjbyWM.js} +1 -1
  6. package/dist/{FieldEmail-Ds8lTvNh.js → FieldEmail-JHD3hxeh.js} +1 -1
  7. package/dist/{FieldMultiSelect-_cY4aZuE.js → FieldMultiSelect-T2Y_QR8E.js} +2 -2
  8. package/dist/{FieldNumber-DayaF31C.js → FieldNumber-CLDK-7Qo.js} +1 -1
  9. package/dist/{FieldRating-Dw9rvhUe.js → FieldRating-FqV5Q8Gx.js} +6 -6
  10. package/dist/{FieldSelect-DEVkjnNY.js → FieldSelect-DpdguTLS.js} +2 -2
  11. package/dist/{FieldText-LzCqM7jk.js → FieldText-DlH9Yu2e.js} +1 -1
  12. package/dist/{FieldUrl-zqYEJCPK.js → FieldUrl-BZNZRB4_.js} +1 -1
  13. package/dist/components/base/Accordion.vue.d.ts +51 -0
  14. package/dist/components/base/Avatar.vue.d.ts +11 -0
  15. package/dist/components/base/Badge.vue.d.ts +28 -0
  16. package/dist/components/base/ChainItem.vue.d.ts +14 -0
  17. package/dist/components/base/DescBlock.vue.d.ts +17 -0
  18. package/dist/components/base/InfoCard.vue.d.ts +49 -0
  19. package/dist/components/base/MonitorItem.vue.d.ts +19 -0
  20. package/dist/components/base/PersonaCard.vue.d.ts +44 -0
  21. package/dist/components/base/ProgressBar.vue.d.ts +33 -0
  22. package/dist/components/base/RefTag.vue.d.ts +29 -0
  23. package/dist/components/base/SectionBlock.vue.d.ts +45 -0
  24. package/dist/components/base/SelectBadge.vue.d.ts +36 -0
  25. package/dist/components/base/StatusIndicator.vue.d.ts +29 -0
  26. package/dist/components/base/StatusSummary.vue.d.ts +35 -0
  27. package/dist/components/base/Stepper.vue.d.ts +39 -0
  28. package/dist/components/base/Switch.vue.d.ts +18 -0
  29. package/dist/components/base/ViewModeGroup.vue.d.ts +17 -0
  30. package/dist/components/base/ViewSwitcher.vue.d.ts +57 -0
  31. package/dist/components/base/index.d.ts +35 -0
  32. package/dist/components/kanban/KanbanColumn.vue.d.ts +3 -1
  33. package/dist/components/layout/Navbar.vue.d.ts +1 -1
  34. package/dist/components/overlay/Dialog.vue.d.ts +1 -1
  35. package/dist/components/overlay/Drawer.vue.d.ts +27 -0
  36. package/dist/components/overlay/SidePanel.vue.d.ts +37 -0
  37. package/dist/components/overlay/index.d.ts +2 -0
  38. package/dist/components/table/DataTable.vue.d.ts +7 -1
  39. package/dist/components/table/TableGroupRow.vue.d.ts +17 -0
  40. package/dist/components/table/index.d.ts +1 -0
  41. package/dist/components/timeline/ActivityTimeline.vue.d.ts +40 -0
  42. package/dist/components/timeline/index.d.ts +2 -0
  43. package/dist/composables/index.d.ts +3 -1
  44. package/dist/composables/useStream.d.ts +13 -0
  45. package/dist/composables/useTable.d.ts +1 -1
  46. package/dist/composables/useTypewriter.d.ts +1 -0
  47. package/dist/composables/useVirtualList.d.ts +18 -0
  48. package/dist/index-D0oD-xsj.js +12472 -0
  49. package/dist/index.d.ts +11 -8
  50. package/dist/oneflow-ui.js +107 -82
  51. package/dist/oneflow-ui.umd.cjs +7 -7
  52. package/dist/style.css +1 -1
  53. package/dist/tests/drawer.integration.spec.d.ts +1 -0
  54. package/dist/tests/fielddef.integration.spec.d.ts +1 -0
  55. package/dist/tests/shallowRef.integration.spec.d.ts +1 -0
  56. package/dist/tests/useStream.integration.spec.d.ts +1 -0
  57. package/dist/tests/useTypewriter.integration.spec.d.ts +1 -0
  58. package/dist/tests/useVirtualList.integration.spec.d.ts +1 -0
  59. package/dist/types/index.d.ts +43 -4
  60. package/package.json +1 -1
  61. package/dist/index-B9LF7Kv4.js +0 -10661
@@ -0,0 +1,37 @@
1
+ import { VNode } from 'vue';
2
+ export interface SidePanelProps {
3
+ modelValue: boolean;
4
+ width?: number;
5
+ title?: string;
6
+ showClose?: boolean;
7
+ mode?: "lazy" | "persistent";
8
+ }
9
+ declare function __VLS_template(): {
10
+ attrs: Partial<{}>;
11
+ slots: Readonly<{
12
+ default?: () => VNode[];
13
+ header?: () => VNode[];
14
+ }> & {
15
+ default?: () => VNode[];
16
+ header?: () => VNode[];
17
+ };
18
+ refs: {};
19
+ rootEl: any;
20
+ };
21
+ type __VLS_TemplateResult = ReturnType<typeof __VLS_template>;
22
+ declare const __VLS_component: import('vue').DefineComponent<SidePanelProps, {}, {}, {}, {}, import('vue').ComponentOptionsMixin, import('vue').ComponentOptionsMixin, {
23
+ "update:modelValue": (value: boolean) => any;
24
+ }, string, import('vue').PublicProps, Readonly<SidePanelProps> & Readonly<{
25
+ "onUpdate:modelValue"?: ((value: boolean) => any) | undefined;
26
+ }>, {
27
+ width: number;
28
+ mode: "lazy" | "persistent";
29
+ showClose: boolean;
30
+ }, {}, {}, {}, string, import('vue').ComponentProvideOptions, false, {}, any>;
31
+ declare const _default: __VLS_WithTemplateSlots<typeof __VLS_component, __VLS_TemplateResult["slots"]>;
32
+ export default _default;
33
+ type __VLS_WithTemplateSlots<T, S> = T & {
34
+ new (): {
35
+ $slots: S;
36
+ };
37
+ };
@@ -1,2 +1,4 @@
1
1
  export { default as Modal } from './Modal.vue';
2
2
  export { default as Dialog } from './Dialog.vue';
3
+ export { default as SidePanel } from './SidePanel.vue';
4
+ export { default as Drawer } from './Drawer.vue';
@@ -14,6 +14,10 @@ type __VLS_Props = {
14
14
  priorityColorMap?: ColorMap;
15
15
  /** 状态颜色映射,透传给每一行 */
16
16
  statusColorMap?: ColorMap;
17
+ /** 分组字段名,如 "status" */
18
+ groupBy?: string;
19
+ /** 分组标题的 Badge 颜色映射 */
20
+ groupColorMap?: ColorMap;
17
21
  };
18
22
  declare const _default: import('vue').DefineComponent<__VLS_Props, {}, {}, {}, {}, import('vue').ComponentOptionsMixin, import('vue').ComponentOptionsMixin, {
19
23
  "row-click": (row: Task | DataRecord) => any;
@@ -39,5 +43,7 @@ declare const _default: import('vue').DefineComponent<__VLS_Props, {}, {}, {}, {
39
43
  selectable: boolean;
40
44
  rowKey: string;
41
45
  addable: boolean;
42
- }, {}, {}, {}, string, import('vue').ComponentProvideOptions, false, {}, HTMLDivElement>;
46
+ }, {}, {}, {}, string, import('vue').ComponentProvideOptions, false, {
47
+ scrollContainerRef: HTMLDivElement;
48
+ }, HTMLDivElement>;
43
49
  export default _default;
@@ -0,0 +1,17 @@
1
+ import { ColorMap } from '../../types';
2
+ type __VLS_Props = {
3
+ groupKey: string;
4
+ count: number;
5
+ collapsed?: boolean;
6
+ colorMap?: ColorMap;
7
+ selectable?: boolean;
8
+ };
9
+ declare const _default: import('vue').DefineComponent<__VLS_Props, {}, {}, {}, {}, import('vue').ComponentOptionsMixin, import('vue').ComponentOptionsMixin, {
10
+ toggle: () => any;
11
+ }, string, import('vue').PublicProps, Readonly<__VLS_Props> & Readonly<{
12
+ onToggle?: (() => any) | undefined;
13
+ }>, {
14
+ collapsed: boolean;
15
+ selectable: boolean;
16
+ }, {}, {}, {}, string, import('vue').ComponentProvideOptions, false, {}, HTMLDivElement>;
17
+ export default _default;
@@ -6,3 +6,4 @@ export { default as TableFilterPanel } from './TableFilterPanel.vue';
6
6
  export { default as TableColumnManager } from './TableColumnManager.vue';
7
7
  export { default as FieldCell } from './FieldCell.vue';
8
8
  export type { FieldDef, FieldType, FieldOption, CellValue } from './FieldCell.vue';
9
+ export { default as TableGroupRow } from './TableGroupRow.vue';
@@ -0,0 +1,40 @@
1
+ export type ActivityTimelineStatus = "done" | "start" | "default";
2
+ export interface TimelineItem {
3
+ action: string;
4
+ actor?: string;
5
+ detail?: string;
6
+ progress?: number;
7
+ time?: string;
8
+ status?: ActivityTimelineStatus;
9
+ }
10
+ export interface ActivityTimelineProps {
11
+ items: TimelineItem[];
12
+ loading?: boolean;
13
+ }
14
+ declare function __VLS_template(): {
15
+ attrs: Partial<{}>;
16
+ slots: Readonly<{
17
+ item?: (props: {
18
+ item: TimelineItem;
19
+ index: number;
20
+ }) => unknown;
21
+ }> & {
22
+ item?: (props: {
23
+ item: TimelineItem;
24
+ index: number;
25
+ }) => unknown;
26
+ };
27
+ refs: {};
28
+ rootEl: HTMLDivElement;
29
+ };
30
+ type __VLS_TemplateResult = ReturnType<typeof __VLS_template>;
31
+ declare const __VLS_component: import('vue').DefineComponent<ActivityTimelineProps, {}, {}, {}, {}, import('vue').ComponentOptionsMixin, import('vue').ComponentOptionsMixin, {}, string, import('vue').PublicProps, Readonly<ActivityTimelineProps> & Readonly<{}>, {
32
+ loading: boolean;
33
+ }, {}, {}, {}, string, import('vue').ComponentProvideOptions, false, {}, HTMLDivElement>;
34
+ declare const _default: __VLS_WithTemplateSlots<typeof __VLS_component, __VLS_TemplateResult["slots"]>;
35
+ export default _default;
36
+ type __VLS_WithTemplateSlots<T, S> = T & {
37
+ new (): {
38
+ $slots: S;
39
+ };
40
+ };
@@ -1,2 +1,4 @@
1
+ export { default as ActivityTimeline } from './ActivityTimeline.vue';
1
2
  export { default as GanttRow } from './GanttRow.vue';
2
3
  export { default as GanttTimeline } from './GanttTimeline.vue';
4
+ export type { ActivityTimelineProps, ActivityTimelineStatus, TimelineItem, } from './ActivityTimeline.vue';
@@ -1,7 +1,7 @@
1
1
  export { useBadge, resolveBadge, mergeColorMap, DEFAULT_PRIORITY_MAP, DEFAULT_STATUS_MAP, } from './useBadge';
2
2
  export type { ResolvedBadge } from './useBadge';
3
3
  export { useStream } from './useStream';
4
- export type { UseStreamOptions, StreamMode } from './useStream';
4
+ export type { UseStreamOptions, StreamMode, RetryOptions } from './useStream';
5
5
  export { useTypewriter } from './useTypewriter';
6
6
  export type { UseTypewriterOptions } from './useTypewriter';
7
7
  export { useAiChat } from './useAiChat';
@@ -14,3 +14,5 @@ export { useMarkdown } from './useMarkdown';
14
14
  export type { UseMarkdownOptions } from './useMarkdown';
15
15
  export { useInlineEdit } from './useInlineEdit';
16
16
  export type { EditingCell } from './useInlineEdit';
17
+ export { useVirtualList } from './useVirtualList';
18
+ export type { UseVirtualListOptions, VirtualItem } from './useVirtualList';
@@ -1,15 +1,28 @@
1
1
  export type StreamMode = "raw" | "sse";
2
+ export interface RetryOptions {
3
+ maxRetries?: number;
4
+ baseDelay?: number;
5
+ backoff?: "exponential" | "linear";
6
+ }
2
7
  export interface UseStreamOptions {
3
8
  mode?: StreamMode;
9
+ /** chunk 缓冲间隔,>0 时启用 rAF 批量刷新。默认 0(不缓冲) */
10
+ bufferInterval?: number;
11
+ /** 断线重试配置 */
12
+ retry?: RetryOptions;
13
+ /** 流超时时间(ms),0 = 无超时。默认 0 */
14
+ timeout?: number;
4
15
  onChunk?: (text: string) => void;
5
16
  onData?: (parsed: unknown) => void;
6
17
  onDone?: () => void;
7
18
  onError?: (error: Error) => void;
19
+ onRetry?: (attempt: number) => void;
8
20
  }
9
21
  export declare function useStream(options?: UseStreamOptions): {
10
22
  isStreaming: Readonly<import('vue').Ref<boolean, boolean>>;
11
23
  isLoading: Readonly<import('vue').Ref<boolean, boolean>>;
12
24
  error: Readonly<import('vue').Ref<Error | null, Error | null>>;
25
+ retryCount: Readonly<import('vue').Ref<number, number>>;
13
26
  start: (readableStream: ReadableStream<Uint8Array>) => Promise<void>;
14
27
  cancel: () => void;
15
28
  };
@@ -25,7 +25,7 @@ export interface UseTableOptions<T> {
25
25
  }
26
26
  export declare function useTable<T extends Record<string, unknown>>(options?: UseTableOptions<T>): {
27
27
  data: import('vue').ComputedRef<T[]>;
28
- rawData: Readonly<import('vue').Ref<readonly import('vue').DeepReadonly<import('@vue/reactivity').UnwrapRefSimple<T>>[], readonly import('vue').DeepReadonly<import('@vue/reactivity').UnwrapRefSimple<T>>[]>>;
28
+ rawData: Readonly<import('vue').Ref<readonly import('vue').DeepReadonly<T>[], readonly import('vue').DeepReadonly<T>[]>>;
29
29
  loading: Readonly<import('vue').Ref<boolean, boolean>>;
30
30
  error: Readonly<import('vue').Ref<Error | null, Error | null>>;
31
31
  sort: Readonly<import('vue').Ref<{
@@ -1,5 +1,6 @@
1
1
  export interface UseTypewriterOptions {
2
2
  speed?: number;
3
+ onUpdate?: (text: string) => void;
3
4
  onComplete?: () => void;
4
5
  }
5
6
  export declare function useTypewriter(options?: UseTypewriterOptions): {
@@ -0,0 +1,18 @@
1
+ import { ComputedRef, Ref } from 'vue';
2
+ export interface UseVirtualListOptions<T> {
3
+ items: Ref<T[]>;
4
+ itemHeight: number | ((index: number) => number);
5
+ overscan?: number;
6
+ containerRef: Ref<HTMLElement | null>;
7
+ }
8
+ export type VirtualItem<T> = {
9
+ data: T;
10
+ index: number;
11
+ };
12
+ export declare function useVirtualList<T>({ items, itemHeight, overscan, containerRef, }: UseVirtualListOptions<T>): {
13
+ visibleItems: ComputedRef<VirtualItem<T>[]>;
14
+ totalHeight: ComputedRef<number>;
15
+ offsetY: ComputedRef<number>;
16
+ scrollToIndex: (index: number) => void;
17
+ scrollToBottom: () => void;
18
+ };