zs_library 0.5.3 → 0.6.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 (39) hide show
  1. package/dist/components/desktop/config.d.ts +74 -5
  2. package/dist/components/desktop/context/config/context.d.ts +11 -3
  3. package/dist/components/desktop/context/state/context.d.ts +8 -5
  4. package/dist/components/desktop/context-menu/index.d.ts +2 -0
  5. package/dist/components/desktop/context-menu/portal.d.ts +3 -0
  6. package/dist/components/desktop/dock/dock.d.ts +50 -0
  7. package/dist/components/desktop/dock/index.d.ts +6 -0
  8. package/dist/components/desktop/dock/launchpad-button.d.ts +17 -0
  9. package/dist/components/desktop/dock/launchpad-modal.d.ts +17 -0
  10. package/dist/components/desktop/dock/search-box.d.ts +9 -0
  11. package/dist/components/desktop/dock/stacked-icon.d.ts +13 -0
  12. package/dist/components/desktop/drag-styles.d.ts +74 -0
  13. package/dist/components/desktop/drag-trigger-pagination.d.ts +44 -0
  14. package/dist/components/desktop/index.d.ts +10 -0
  15. package/dist/components/desktop/items/item-name.d.ts +10 -0
  16. package/dist/components/desktop/items/modal/editable-title.d.ts +9 -0
  17. package/dist/components/desktop/items/modal/index.d.ts +3 -0
  18. package/dist/components/desktop/items/sortable-item.d.ts +4 -0
  19. package/dist/components/desktop/modal/base-modal.d.ts +17 -0
  20. package/dist/components/desktop/modal/index.d.ts +1 -0
  21. package/dist/components/desktop/pagination/index.d.ts +33 -0
  22. package/dist/components/desktop/pagination/utils.d.ts +3 -0
  23. package/dist/components/desktop/sortable.d.ts +34 -0
  24. package/dist/components/desktop/themes/dark.d.ts +2 -0
  25. package/dist/components/desktop/{theme.d.ts → themes/index.d.ts} +18 -2
  26. package/dist/components/desktop/themes/light.d.ts +2 -0
  27. package/dist/components/desktop/types.d.ts +69 -23
  28. package/dist/components/desktop/{utils.d.ts → utils/index.d.ts} +3 -2
  29. package/dist/components/desktop/utils/render-icon.d.ts +10 -0
  30. package/dist/components/dock/dock-desktop.d.ts +1 -1
  31. package/dist/components/dock/dock-mobile.d.ts +1 -1
  32. package/dist/components/dock/index.d.ts +1 -1
  33. package/dist/components/editor/type.d.ts +6 -6
  34. package/dist/components/editor/ui/button.d.ts +1 -1
  35. package/dist/components/index.d.ts +9 -7
  36. package/dist/index.css +1 -1
  37. package/dist/index.d.ts +2 -2
  38. package/dist/index.js +3912 -2668
  39. package/package.json +6 -3
@@ -1,36 +1,82 @@
1
- export interface SortItemBaseConfig {
2
- /** 最大行数 default 2 */
3
- maxRow?: number;
4
- /** 最大列数 default 2 */
5
- maxCol?: number;
6
- /** 行数 */
7
- row?: number;
1
+ /** 尺寸配置项 */
2
+ export interface SizeConfig {
3
+ /** 配置ID(可选,通常使用对象key作为ID) */
4
+ id?: string;
5
+ /** 显示名称 */
6
+ name: string;
8
7
  /** 列数 */
9
- col?: number;
10
- /** 允许设置大小 default true */
11
- allowResize?: boolean;
12
- /** 允许打开右键菜单 default true */
13
- allowContextMenu?: boolean;
14
- /** 允许显示分享按钮 default true */
15
- allowShare?: boolean;
16
- /** 允许显示删除按钮 default true */
17
- allowDelete?: boolean;
18
- /** 允许显示信息按钮 default true */
19
- allowInfo?: boolean;
8
+ col: number;
9
+ /** 行数 */
10
+ row: number;
11
+ }
12
+ /** 用户可配置的设置(会存储到用户数据中) */
13
+ export interface SortItemUserConfig {
14
+ /** 尺寸配置ID */
15
+ sizeId?: string;
16
+ }
17
+ /** 菜单项配置 */
18
+ export interface MenuItemConfig {
19
+ /** 菜单项文本 */
20
+ text: string;
21
+ /** 菜单项图标 */
22
+ icon?: React.ReactNode;
23
+ /** 菜单项颜色 */
24
+ color?: string;
25
+ /** 文本颜色 */
26
+ textColor?: string;
27
+ /** 点击回调 */
28
+ onClick?: (item: SortItem, contextActions: any) => void;
20
29
  }
30
+ /** dataType菜单配置映射表 */
31
+ export type DataTypeMenuConfigMap = Record<string, MenuItemConfig[]>;
32
+ /** 系统默认配置(不会存储到用户数据中,防止篡改) */
33
+ export interface SortItemDefaultConfig {
34
+ /** 可用的尺寸配置列表 */
35
+ sizeConfigs: SizeConfig[];
36
+ /** 默认尺寸配置ID */
37
+ defaultSizeId: string;
38
+ /** 允许设置大小 */
39
+ allowResize: boolean;
40
+ /** 允许打开右键菜单 */
41
+ allowContextMenu: boolean;
42
+ /** 允许显示分享按钮 */
43
+ allowShare: boolean;
44
+ /** 允许显示删除按钮 */
45
+ allowDelete: boolean;
46
+ /** 允许显示信息按钮 */
47
+ allowInfo: boolean;
48
+ }
49
+ /** 完整的配置接口(用户配置 + 系统默认配置) */
50
+ export interface SortItemBaseConfig extends SortItemUserConfig, SortItemDefaultConfig {
51
+ }
52
+ /** 类型配置映射表 */
53
+ export type TypeConfigMap = Record<string, SortItemDefaultConfig>;
21
54
  export interface SortItemBaseData {
22
55
  name: string;
23
56
  icon?: string;
24
57
  }
25
- export interface SortItem<D = any & SortItemBaseData, C = any & SortItemBaseConfig> {
58
+ export interface SortItem<D = any & SortItemBaseData, C = any & SortItemUserConfig> {
26
59
  id: string | number;
27
- type: "app" | "group";
28
- data?: D;
29
- config?: C;
30
- children?: SortItem<D, C>[];
60
+ /** 项目类型,支持内置类型(app、group)和自定义类型 */
61
+ type: "app" | "group" | string;
62
+ data?: D & SortItemBaseData;
63
+ config?: C & SortItemUserConfig;
64
+ children?: SortItem<D & SortItemBaseData, C & SortItemUserConfig>[];
65
+ /** 区分数据类型:page表示分页数据,dock表示dock数据,string任意类型,关联自定义右键菜单项 */
66
+ dataType?: "page" | "dock" | string;
31
67
  /** 下面的参数为组件内部处理时自动添加,不影响数据 */
32
68
  parentIds?: (string | number)[];
33
69
  /** groupItem 点击时的坐标,用于打开弹窗时从坐标处打开 */
34
70
  pageX?: number;
35
71
  pageY?: number;
36
72
  }
73
+ /** List项目类型,只包含id、type、children三个属性 */
74
+ export interface ListItem<D = any & SortItemBaseData, C = any & SortItemUserConfig> {
75
+ id: string | number;
76
+ /** 区分数据类型:page表示分页数据,dock表示dock数据,string任意类型 */
77
+ type: "page" | "dock" | string;
78
+ children: SortItem<D & SortItemBaseData, C & SortItemUserConfig>[];
79
+ }
80
+ export type SortableItemData = SortItem;
81
+ export type DesktopSizeConfig = SizeConfig;
82
+ export type DesktopTypeConfigMap = TypeConfigMap;
@@ -1,7 +1,8 @@
1
- import { SortItem } from './types';
2
1
  declare class SortableUtils {
3
2
  /** 清理重复id */
4
- static uniqueArray: (array: SortItem[]) => SortItem<any, any>[];
3
+ static uniqueArray: <T extends {
4
+ id: string | number;
5
+ }>(array: T[]) => T[];
5
6
  static quickJSONCheck: (str: any) => boolean;
6
7
  }
7
8
  export default SortableUtils;
@@ -0,0 +1,10 @@
1
+ import { default as React } from 'react';
2
+ import { SortItem } from '../types';
3
+ /**
4
+ * 渲染图标的通用函数
5
+ * @param item 排序项数据
6
+ * @param icon 外部传入的图标(优先级最高)
7
+ * @param configItemIconBuilder 配置中的图标构建器
8
+ * @returns 渲染的图标元素
9
+ */
10
+ export declare const renderIcon: <D, C>(item: SortItem<D, C>, icon?: React.ReactNode, configItemIconBuilder?: ((item: SortItem<D, C>) => React.ReactNode) | React.ReactNode) => React.ReactNode;
@@ -1,4 +1,4 @@
1
- import { HTMLMotionProps, MotionValue } from 'framer-motion';
1
+ import { HTMLMotionProps, MotionValue } from 'motion/react';
2
2
  import { ElementType, FC, ReactNode } from 'react';
3
3
  import { DockItem } from '.';
4
4
  export interface DesktopIconContainerProps extends DockItem, Partial<Omit<HTMLMotionProps<"div">, "title" | "children">> {
@@ -1,5 +1,5 @@
1
1
  import { FC, ReactNode } from 'react';
2
- import { HTMLMotionProps } from 'framer-motion';
2
+ import { HTMLMotionProps } from 'motion/react';
3
3
  import { DockItem } from '.';
4
4
  export interface MobileIconContainerProps extends DockItem, Partial<Omit<HTMLMotionProps<"div">, "title" | "children">> {
5
5
  index: number;
@@ -1,7 +1,7 @@
1
1
  import { FC, ReactNode } from 'react';
2
2
  import { default as DockDesktop, DesktopIconContainer } from './dock-desktop';
3
3
  import { default as DockMobile, DockMobileProps, MobileIconContainer } from './dock-mobile';
4
- import { MotionValue } from 'framer-motion';
4
+ import { MotionValue } from 'motion/react';
5
5
  export interface DockItem {
6
6
  icon?: ReactNode;
7
7
  title?: string;
@@ -20,11 +20,6 @@ export interface EditorUploadImageProps {
20
20
  * @default file
21
21
  */
22
22
  name?: string;
23
- /**
24
- * 上传请求时是否携带 cookie
25
- * @default false
26
- */
27
- withCredentials?: boolean;
28
23
  /**
29
24
  * 上传文件之前的钩子,参数为上传的文件,若返回 false 停止上传
30
25
  * @param file
@@ -46,7 +41,12 @@ export interface EditorUploadImageProps {
46
41
  /**
47
42
  * 上传图片失败后的回调
48
43
  */
49
- onError?: (e: Error) => void;
44
+ onError?: (e: Error) => void; /**
45
+ * 完全自定义的上传函数,相当于 fetch 的 Promise
46
+ * @param file 要上传的文件
47
+ * @returns Promise,resolve时返回响应数据(可以是Response对象、URL字符串或包含url字段的对象)
48
+ */
49
+ customUploadFn?: (file: File) => Promise<any>;
50
50
  }
51
51
  export interface EditorProps {
52
52
  className?: string;
@@ -2,7 +2,7 @@ import { VariantProps } from 'class-variance-authority';
2
2
  import * as React from "react";
3
3
  declare const buttonVariants: (props?: ({
4
4
  variant?: "link" | "outline" | "default" | "destructive" | "secondary" | "ghost" | null | undefined;
5
- size?: "default" | "icon" | "sm" | "lg" | null | undefined;
5
+ size?: "icon" | "default" | "sm" | "lg" | null | undefined;
6
6
  } & import('class-variance-authority/types').ClassProp) | undefined) => string;
7
7
  export interface ButtonProps extends React.ButtonHTMLAttributes<HTMLButtonElement>, VariantProps<typeof buttonVariants> {
8
8
  asChild?: boolean;
@@ -10,17 +10,19 @@ export { SortableConfigProvider as DesktopSortableConfigProvider } from './deskt
10
10
  export type { SortableConfigProviderProps as DesktopSortableConfigProviderProps } from './desktop/context/config/context';
11
11
  export { SortableStateProvider as DesktopSortableStateProvider } from './desktop/context/state/context';
12
12
  export type { SortableStateProviderProps as DesktopSortableStateProviderProps } from './desktop/context/state/context';
13
- export { appConfig as desktopAppConfig, groupConfig as desktopGroupConfig, configMap as desktopConfigMap, } from './desktop/config';
14
- export type { SortItemBaseConfig as DesktopSortItemBaseConfig, SortItem as DesktopSortItem, SortItemBaseData as DesktopSortItemBaseData, } from './desktop/types';
15
- export { themeLight as desktopThemeLight, themeDark as desktopThemeDark, } from './desktop/theme';
16
- export type { Theme as DesktopTheme } from './desktop/theme';
13
+ export { appDefaultConfig as desktopAppDefaultConfig, groupDefaultConfig as desktopGroupDefaultConfig, builtinConfigMap as desktopBuiltinConfigMap, getDefaultConfig as getDesktopDefaultConfig, } from './desktop/config';
14
+ export type { SortItemBaseConfig as DesktopSortItemBaseConfig, SortItemUserConfig as DesktopSortItemUserConfig, SortItemDefaultConfig as DesktopSortItemDefaultConfig, SortItem as DesktopSortItem, SortItemBaseData as DesktopSortItemBaseData, TypeConfigMap as DesktopTypeConfigMap, } from './desktop/types';
15
+ export { themeLight as desktopThemeLight, themeDark as desktopThemeDark, defaultTheme as desktopDefaultTheme, themes as desktopThemes, } from './desktop/themes';
16
+ export type { Theme as DesktopTheme, ThemeType as DesktopThemeType } from './desktop/themes';
17
17
  export { default as SortableUtils } from './desktop/utils';
18
+ export { Dock as DesktopDock, LaunchpadModal as DesktopLaunchpadModal, LaunchpadButton as DesktopLaunchpadButton, } from './desktop/dock';
19
+ export type { DockProps as DesktopDockProps, LaunchpadModalProps as DesktopLaunchpadModalProps, LaunchpadButtonProps as DesktopLaunchpadButtonProps, } from './desktop/dock';
18
20
  export { default as MdEditor } from './md-editor';
19
21
  export { default as Markdown } from './md-editor/preview';
20
22
  export { default as Dock } from './dock';
21
- export { default as DockDesktop, DesktopIconContainer as DockDesktopItem, } from './dock/dock-desktop';
22
- export { default as DockMobile, MobileIconContainer as DockMobileItem, } from './dock/dock-mobile';
23
- export { useMotionValue as useDockDesktopMouseX } from 'framer-motion';
23
+ export { default as DockDesktop, DesktopIconContainer as DockDesktopItem } from './dock/dock-desktop';
24
+ export { default as DockMobile, MobileIconContainer as DockMobileItem } from './dock/dock-mobile';
25
+ export { useMotionValue as useDockDesktopMouseX } from 'motion/react';
24
26
  export type { DesktopIconContainerProps as DockDesktopItemProps } from './dock/dock-desktop';
25
27
  export type { MobileIconContainerProps as DockMobileItemProps } from './dock/dock-mobile';
26
28
  export { default as Editor } from './editor';