zs_library 0.8.1 → 0.9.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 (53) hide show
  1. package/dist/components/desktop/context/config/context.d.ts +2 -3
  2. package/dist/components/desktop/context/state/context-menu-context.d.ts +21 -0
  3. package/dist/components/desktop/context/state/context.d.ts +2 -32
  4. package/dist/components/desktop/context/state/drag-context.d.ts +20 -0
  5. package/dist/components/desktop/context/state/hooks.d.ts +36 -1
  6. package/dist/components/desktop/context/state/modal-context.d.ts +10 -0
  7. package/dist/components/desktop/drawer/base-drawer.d.ts +1 -0
  8. package/dist/components/desktop/index.d.ts +10 -0
  9. package/dist/components/desktop/items/group-item.d.ts +1 -0
  10. package/dist/components/desktop/items/sortable-item.d.ts +1 -0
  11. package/dist/components/desktop/modal/base-modal.d.ts +1 -0
  12. package/dist/components/desktop/sortable.d.ts +2 -0
  13. package/dist/components/desktop-next/component-registry/remote-loader.d.ts +19 -0
  14. package/dist/components/desktop-next/config.d.ts +44 -0
  15. package/dist/components/desktop-next/context-menu/capsule-background.d.ts +8 -0
  16. package/dist/components/desktop-next/context-menu/content.d.ts +5 -0
  17. package/dist/components/desktop-next/context-menu/hover-context.d.ts +5 -0
  18. package/dist/components/desktop-next/context-menu/index.d.ts +14 -0
  19. package/dist/components/desktop-next/context-menu/menu-item.d.ts +10 -0
  20. package/dist/components/desktop-next/context-menu/portal.d.ts +2 -0
  21. package/dist/components/desktop-next/context-menu/size-sub-menu-content.d.ts +7 -0
  22. package/dist/components/desktop-next/context-menu/sub-menu-item.d.ts +9 -0
  23. package/dist/components/desktop-next/context.d.ts +84 -0
  24. package/dist/components/desktop-next/dock/dock.d.ts +20 -0
  25. package/dist/components/desktop-next/dock/index.d.ts +9 -0
  26. package/dist/components/desktop-next/dock/launchpad-button.d.ts +12 -0
  27. package/dist/components/desktop-next/dock/launchpad-modal.d.ts +10 -0
  28. package/dist/components/desktop-next/dock/search-box.d.ts +11 -0
  29. package/dist/components/desktop-next/dock/stacked-icon.d.ts +11 -0
  30. package/dist/components/desktop-next/drawer/base-drawer.d.ts +12 -0
  31. package/dist/components/desktop-next/drawer/index.d.ts +2 -0
  32. package/dist/components/desktop-next/grid.d.ts +9 -0
  33. package/dist/components/desktop-next/hooks/use-drag-engine.d.ts +11 -0
  34. package/dist/components/desktop-next/hooks/use-folder-sort-engine.d.ts +13 -0
  35. package/dist/components/desktop-next/hooks/use-grid-layout.d.ts +11 -0
  36. package/dist/components/desktop-next/index.d.ts +38 -0
  37. package/dist/components/desktop-next/items/folder-item.d.ts +14 -0
  38. package/dist/components/desktop-next/items/grid-item.d.ts +17 -0
  39. package/dist/components/desktop-next/modal/base-modal.d.ts +23 -0
  40. package/dist/components/desktop-next/modal/folder-modal.d.ts +7 -0
  41. package/dist/components/desktop-next/modal/index.d.ts +2 -0
  42. package/dist/components/desktop-next/themes/dark.d.ts +2 -0
  43. package/dist/components/desktop-next/themes/index.d.ts +125 -0
  44. package/dist/components/desktop-next/themes/light.d.ts +2 -0
  45. package/dist/components/desktop-next/themes/utils.d.ts +2 -0
  46. package/dist/components/desktop-next/types.d.ts +150 -0
  47. package/dist/components/desktop-next/utils/pinyin.d.ts +1 -0
  48. package/dist/components/desktop-next/utils/shatter-effect.d.ts +1 -0
  49. package/dist/components/index.d.ts +9 -0
  50. package/dist/index.css +1 -1
  51. package/dist/index.d.ts +2 -2
  52. package/dist/index.js +9287 -5318
  53. package/package.json +1 -1
@@ -2,9 +2,7 @@ import { default as React } from 'react';
2
2
  import { Theme } from '../../themes';
3
3
  import { ContextMenuProps } from '../../context-menu';
4
4
  import { SortItem, ListItem, TypeConfigMap, DataTypeMenuConfigMap } from '../../types';
5
- /**
6
- * 需要跨多个组件传递的配置,使用 context 传递
7
- */
5
+ /** @deprecated 请使用 DesktopNext 代替 */
8
6
  export interface SortableConfig<D, C> {
9
7
  theme: Theme;
10
8
  /**
@@ -57,6 +55,7 @@ export interface SortableConfig<D, C> {
57
55
  contextMenuBuilder?: (data: SortItem<D, C>) => ContextMenuProps<D, C>;
58
56
  }
59
57
  export declare const SortableConfigContext: React.Context<SortableConfig<any, any>>;
58
+ /** @deprecated 请使用 DesktopNext 代替 */
60
59
  export interface SortableConfigProviderProps<D, C> extends Omit<SortableConfig<D, C>, "theme"> {
61
60
  readonly theme?: "light" | "dark" | Theme;
62
61
  children: React.ReactNode;
@@ -0,0 +1,21 @@
1
+ import { default as React } from 'react';
2
+ import { SortItem } from '../../types';
3
+ export interface ContextMenu {
4
+ rect: DOMRect;
5
+ data: any;
6
+ pageX?: number;
7
+ pageY?: number;
8
+ element?: Element | null;
9
+ }
10
+ export interface ContextMenuState {
11
+ contextMenu: ContextMenu | null;
12
+ setContextMenu: (e: ContextMenu | null) => void;
13
+ contextMenuFuns: (data: any, enable: boolean) => any;
14
+ hideContextMenu: () => void;
15
+ showInfoItemData: SortItem | null;
16
+ setShowInfoItemData: (e: SortItem | null) => void;
17
+ }
18
+ export declare const ContextMenuStateContext: React.Context<ContextMenuState>;
19
+ export declare const ContextMenuStateProvider: React.FC<{
20
+ children: React.ReactNode;
21
+ }>;
@@ -1,30 +1,9 @@
1
1
  import { default as React } from 'react';
2
2
  import { SortItem, ListItem } from '../../types';
3
- interface ContextMenu {
4
- rect: DOMRect;
5
- data: any;
6
- pageX?: number;
7
- pageY?: number;
8
- element?: Element | null;
9
- }
10
- type ListStatus = "onMove";
3
+ /** @deprecated 请使用 DesktopNext 代替 */
11
4
  export interface SortableState {
12
5
  list: ListItem[];
13
6
  setList: any;
14
- contextMenu: ContextMenu | null;
15
- setContextMenu: (e: ContextMenu | null) => void;
16
- listStatus: ListStatus | null;
17
- setListStatus: (e: ListStatus | null) => void;
18
- contextMenuFuns: (data: any, enable: boolean) => any;
19
- hideContextMenu: () => void;
20
- /** 点击右键菜单信息数据 */
21
- showInfoItemData: SortItem | null;
22
- setShowInfoItemData: (e: SortItem | null) => void;
23
- /** group item 点击打开弹窗数据 */
24
- openGroupItemData: SortItem | null;
25
- setOpenGroupItemData: (e: SortItem | null) => void;
26
- /** 长按事件状态 */
27
- longPressTriggered: boolean;
28
7
  updateItem: (id: string | number, data: any) => void;
29
8
  updateItemConfig: (id: string | number, config: any) => void;
30
9
  removeItem: (id: string) => void;
@@ -32,15 +11,6 @@ export interface SortableState {
32
11
  addRootItem: (data: ListItem) => void;
33
12
  updateRootItem: (id: string | number, data: any) => void;
34
13
  removeRootItem: (id: string | number) => void;
35
- /** 当前移动的元素id */
36
- moveItemId: string | null;
37
- setMoveItemId: (e: string | null) => void;
38
- /** 当前元素将要移动到的元素id */
39
- moveTargetId: string | number | null;
40
- setMoveTargetId: (e: string | number | null) => void;
41
- /** 当前拖拽的元素 */
42
- dragItem: SortItem | null;
43
- setDragItem: (e: SortItem | null) => void;
44
14
  /** 当前滑块索引 */
45
15
  currentSliderIndex: number;
46
16
  setCurrentSliderIndex: (e: number) => void;
@@ -48,6 +18,7 @@ export interface SortableState {
48
18
  currentSliderPage: ListItem | null;
49
19
  }
50
20
  export declare const SortableStateContext: React.Context<SortableState>;
21
+ /** @deprecated 请使用 DesktopNext 代替 */
51
22
  export interface SortableStateProviderProps<D, C> {
52
23
  /**
53
24
  * 列表数据
@@ -68,4 +39,3 @@ export interface SortableStateProviderProps<D, C> {
68
39
  children: React.ReactNode;
69
40
  }
70
41
  export declare const SortableStateProvider: <D, C>(props: SortableStateProviderProps<D, C>) => import("react/jsx-runtime").JSX.Element;
71
- export {};
@@ -0,0 +1,20 @@
1
+ import { default as React } from 'react';
2
+ import { SortItem } from '../../types';
3
+ type ListStatus = "onMove";
4
+ export interface DragState {
5
+ listStatus: ListStatus | null;
6
+ setListStatus: (e: ListStatus | null) => void;
7
+ longPressTriggered: boolean;
8
+ setLongPressTriggered: (e: boolean) => void;
9
+ moveItemId: string | null;
10
+ setMoveItemId: (e: string | null) => void;
11
+ moveTargetId: string | number | null;
12
+ setMoveTargetId: (e: string | number | null) => void;
13
+ dragItem: SortItem | null;
14
+ setDragItem: (e: SortItem | null) => void;
15
+ }
16
+ export declare const DragStateContext: React.Context<DragState>;
17
+ export declare const DragStateProvider: React.FC<{
18
+ children: React.ReactNode;
19
+ }>;
20
+ export {};
@@ -1 +1,36 @@
1
- export declare const useSortableState: () => import('./context').SortableState;
1
+ export declare const useDragState: () => import('./drag-context').DragState;
2
+ export declare const useContextMenuState: () => import('./context-menu-context').ContextMenuState;
3
+ export declare const useModalState: () => import('./modal-context').ModalState;
4
+ export declare const useListData: () => import('./context').SortableState;
5
+ export declare const useSortableState: () => {
6
+ openGroupItemData: import('../..').SortItem | null;
7
+ setOpenGroupItemData: (e: import('../..').SortItem | null) => void;
8
+ contextMenu: import('./context-menu-context').ContextMenu | null;
9
+ setContextMenu: (e: import('./context-menu-context').ContextMenu | null) => void;
10
+ contextMenuFuns: (data: any, enable: boolean) => any;
11
+ hideContextMenu: () => void;
12
+ showInfoItemData: import('../..').SortItem | null;
13
+ setShowInfoItemData: (e: import('../..').SortItem | null) => void;
14
+ listStatus: "onMove" | null;
15
+ setListStatus: (e: "onMove" | null) => void;
16
+ longPressTriggered: boolean;
17
+ setLongPressTriggered: (e: boolean) => void;
18
+ moveItemId: string | null;
19
+ setMoveItemId: (e: string | null) => void;
20
+ moveTargetId: string | number | null;
21
+ setMoveTargetId: (e: string | number | null) => void;
22
+ dragItem: import('../..').SortItem | null;
23
+ setDragItem: (e: import('../..').SortItem | null) => void;
24
+ list: import('../..').ListItem[];
25
+ setList: any;
26
+ updateItem: (id: string | number, data: any) => void;
27
+ updateItemConfig: (id: string | number, config: any) => void;
28
+ removeItem: (id: string) => void;
29
+ addItem: (data: import('../..').SortItem, parentIds: (string | number)[]) => void;
30
+ addRootItem: (data: import('../..').ListItem) => void;
31
+ updateRootItem: (id: string | number, data: any) => void;
32
+ removeRootItem: (id: string | number) => void;
33
+ currentSliderIndex: number;
34
+ setCurrentSliderIndex: (e: number) => void;
35
+ currentSliderPage: import('../..').ListItem | null;
36
+ };
@@ -0,0 +1,10 @@
1
+ import { default as React } from 'react';
2
+ import { SortItem } from '../../types';
3
+ export interface ModalState {
4
+ openGroupItemData: SortItem | null;
5
+ setOpenGroupItemData: (e: SortItem | null) => void;
6
+ }
7
+ export declare const ModalStateContext: React.Context<ModalState>;
8
+ export declare const ModalStateProvider: React.FC<{
9
+ children: React.ReactNode;
10
+ }>;
@@ -1,5 +1,6 @@
1
1
  import { DrawerProps } from 'rc-drawer';
2
2
  import { FC, ReactNode } from 'react';
3
+ /** @deprecated 请使用 DesktopNext 代替 */
3
4
  export type BaseDrawerProps = DrawerProps & {
4
5
  title?: ReactNode;
5
6
  contentClassName?: string;
@@ -2,16 +2,26 @@ import { default as React, JSX } from 'react';
2
2
  import { SortableProps } from './sortable';
3
3
  import { SortableConfigProviderProps, SortableConfig } from './context/config/context';
4
4
  import { SortableStateProviderProps, SortableState } from './context/state/context';
5
+ /**
6
+ * @deprecated 请使用 {@link DesktopNext} 代替。该组件基于 react-sortablejs 实现,已停止维护。
7
+ */
5
8
  export interface DesktopProps<D = any, C = any> extends SortableProps<D, C>, Omit<SortableStateProviderProps<D, C>, "children">, Omit<SortableConfigProviderProps<D, C>, "children"> {
6
9
  /** 类型配置映射表,用于定义不同类型的默认配置 */
7
10
  typeConfigMap?: import('./types').TypeConfigMap;
8
11
  /** dataType菜单配置映射表,用于定义不同dataType的菜单项 */
9
12
  dataTypeMenuConfigMap?: import('./types').DataTypeMenuConfigMap;
10
13
  }
14
+ /**
15
+ * @deprecated 请使用 {@link DesktopNext} 代替。该组件基于 react-sortablejs 实现,已停止维护。
16
+ */
11
17
  export interface DesktopHandle<D = any, C = any> {
12
18
  state: SortableState;
13
19
  config: SortableConfig<D, C>;
14
20
  }
21
+ /**
22
+ * 桌面组件(已废弃)
23
+ * @deprecated 请使用 {@link DesktopNext} 代替。该组件基于 react-sortablejs 实现,已停止维护。
24
+ */
15
25
  declare const Desktop: <D = any, C = any>(props: DesktopProps<D, C> & {
16
26
  ref?: React.ForwardedRef<DesktopHandle<D, C>>;
17
27
  }) => JSX.Element;
@@ -1,5 +1,6 @@
1
1
  import { SortItem } from '../types';
2
2
  import { SortableItemProps } from './sortable-item';
3
+ /** @deprecated 请使用 DesktopNext 代替 */
3
4
  export interface SortableGroupItemProps<D, C> extends SortableItemProps<D, C> {
4
5
  data: SortItem<D, C>;
5
6
  }
@@ -1,6 +1,7 @@
1
1
  import { default as React } from 'react';
2
2
  import { ContextMenuProps } from '../context-menu';
3
3
  import { SortItem } from '../types';
4
+ /** @deprecated 请使用 DesktopNext 代替 */
4
5
  export interface SortableItemProps<D, C> {
5
6
  data: SortItem<D, C>;
6
7
  className?: string;
@@ -1,4 +1,5 @@
1
1
  import { ReactNode } from 'react';
2
+ /** @deprecated 请使用 DesktopNext 代替 */
2
3
  export interface BaseModalProps {
3
4
  visible: boolean;
4
5
  onClose: () => void;
@@ -2,9 +2,11 @@ import { default as React } from 'react';
2
2
  import { default as Slider, Settings } from 'react-slick';
3
3
  import { SortItem } from './types';
4
4
  import { DockProps } from './dock/dock';
5
+ /** @deprecated 请使用 DesktopNext 代替 */
5
6
  export interface Pagination {
6
7
  position?: "top" | "bottom" | "left" | "right";
7
8
  }
9
+ /** @deprecated 请使用 DesktopNext 代替 */
8
10
  export interface SortableProps<D, C> {
9
11
  /**
10
12
  * className
@@ -0,0 +1,19 @@
1
+ import { default as React, Component } from 'react';
2
+ import { DndSortItem } from '../types';
3
+ export declare function loadRemoteComponent(url: string): React.LazyExoticComponent<React.ComponentType<{
4
+ item: DndSortItem;
5
+ }>>;
6
+ interface RemoteComponentErrorBoundaryProps {
7
+ children: React.ReactNode;
8
+ onError?: (error: Error) => void;
9
+ }
10
+ interface RemoteComponentErrorBoundaryState {
11
+ error: Error | null;
12
+ }
13
+ export declare class RemoteComponentErrorBoundary extends Component<RemoteComponentErrorBoundaryProps, RemoteComponentErrorBoundaryState> {
14
+ constructor(props: RemoteComponentErrorBoundaryProps);
15
+ static getDerivedStateFromError(error: Error): RemoteComponentErrorBoundaryState;
16
+ componentDidCatch(error: Error): void;
17
+ render(): React.ReactNode;
18
+ }
19
+ export {};
@@ -0,0 +1,44 @@
1
+ import { SortItemDefaultConfig, TypeConfigMap, SizeConfig, DataTypeMenuConfigMap } from './types';
2
+ export declare const commonSizeConfigs: {
3
+ readonly "1x1": {
4
+ readonly name: "1x1";
5
+ readonly col: 1;
6
+ readonly row: 1;
7
+ };
8
+ readonly "2x1": {
9
+ readonly name: "2x1";
10
+ readonly col: 2;
11
+ readonly row: 1;
12
+ };
13
+ readonly "1x2": {
14
+ readonly name: "1x2";
15
+ readonly col: 1;
16
+ readonly row: 2;
17
+ };
18
+ readonly "2x2": {
19
+ readonly name: "2x2";
20
+ readonly col: 2;
21
+ readonly row: 2;
22
+ };
23
+ readonly "3x2": {
24
+ readonly name: "3x2";
25
+ readonly col: 3;
26
+ readonly row: 2;
27
+ };
28
+ readonly "4x3": {
29
+ readonly name: "4x3";
30
+ readonly col: 4;
31
+ readonly row: 3;
32
+ };
33
+ };
34
+ export declare const commonSizeConfigsArray: SizeConfig[];
35
+ export declare const appDefaultConfig: SortItemDefaultConfig;
36
+ export declare const groupDefaultConfig: SortItemDefaultConfig;
37
+ export declare const builtinConfigMap: TypeConfigMap;
38
+ export declare function getDefaultConfig(type: string, customConfigMap?: TypeConfigMap): SortItemDefaultConfig;
39
+ export declare function getSizeConfig(sizeId: string | undefined, sizeConfigs?: SizeConfig[], defaultSizeId?: string): SizeConfig;
40
+ export declare function getItemSize(type: string, sizeId?: string, customConfigMap?: TypeConfigMap): {
41
+ col: number;
42
+ row: number;
43
+ };
44
+ export declare function getDataTypeMenuConfig(dataType: string, customConfigMap?: DataTypeMenuConfigMap): import('./types').MenuItemConfig[];
@@ -0,0 +1,8 @@
1
+ import { FC } from 'react';
2
+ export interface CapsuleBackgroundProps {
3
+ show: boolean;
4
+ layoutId?: string;
5
+ className?: string;
6
+ }
7
+ declare const CapsuleBackground: FC<CapsuleBackgroundProps>;
8
+ export default CapsuleBackground;
@@ -0,0 +1,5 @@
1
+ import { motion } from 'motion/react';
2
+ import { FC } from 'react';
3
+ export type ContentMenuContextProps = React.ComponentProps<typeof motion.div>;
4
+ declare const ContextMenuContent: FC<ContentMenuContextProps>;
5
+ export default ContextMenuContent;
@@ -0,0 +1,5 @@
1
+ export interface HoverContextType {
2
+ hoveredIndex: number | null;
3
+ setHoveredIndex: (index: number | null) => void;
4
+ }
5
+ export declare const HoverContext: import('react').Context<HoverContextType>;
@@ -0,0 +1,14 @@
1
+ export interface ContextMenuProps {
2
+ animationOrigin?: string;
3
+ isOpen?: boolean;
4
+ }
5
+ declare const ContextMenu: ({ animationOrigin, isOpen, }: ContextMenuProps) => import("react/jsx-runtime").JSX.Element | null;
6
+ export default ContextMenu;
7
+ export { MenuItem } from './menu-item';
8
+ export { SubMenuItem } from './sub-menu-item';
9
+ export { SizeSubMenuContent } from './size-sub-menu-content';
10
+ export { HoverContext } from './hover-context';
11
+ export type { MenuItemProps } from './menu-item';
12
+ export type { SubMenuItemProps } from './sub-menu-item';
13
+ export type { SizeMenuItemProps } from './size-sub-menu-content';
14
+ export type { HoverContextType } from './hover-context';
@@ -0,0 +1,10 @@
1
+ export interface MenuItemProps {
2
+ icon?: React.ReactNode;
3
+ text: string;
4
+ color?: string;
5
+ textColor?: string;
6
+ onClick?: () => void;
7
+ index: number;
8
+ children?: React.ReactNode;
9
+ }
10
+ export declare const MenuItem: ({ icon, text, color, textColor, onClick, index, children, ...props }: MenuItemProps) => import("react/jsx-runtime").JSX.Element;
@@ -0,0 +1,2 @@
1
+ declare const GlobalContextMenu: () => import("react/jsx-runtime").JSX.Element | null;
2
+ export default GlobalContextMenu;
@@ -0,0 +1,7 @@
1
+ import { SizeConfig } from '../types';
2
+ export interface SizeMenuItemProps {
3
+ sizes: SizeConfig[];
4
+ currentSizeId?: string;
5
+ onSizeChange: (size: SizeConfig) => void;
6
+ }
7
+ export declare const SizeSubMenuContent: ({ sizes, currentSizeId, onSizeChange, }: SizeMenuItemProps) => import("react/jsx-runtime").JSX.Element;
@@ -0,0 +1,9 @@
1
+ export interface SubMenuItemProps {
2
+ text: string;
3
+ icon: React.ReactNode;
4
+ index: number;
5
+ children: React.ReactNode;
6
+ color?: string;
7
+ textColor?: string;
8
+ }
9
+ export declare const SubMenuItem: ({ text, index, children, color, textColor, ...props }: SubMenuItemProps) => import("react/jsx-runtime").JSX.Element;
@@ -0,0 +1,84 @@
1
+ import { default as React } from 'react';
2
+ import { ComponentRegistry, ContextMenuActionPayload, ContextMenuData, DesktopDndContextMenuProps, DndSortItem, DndPageItem, DragState, FolderModalState, SortItemUserConfig, TypeConfigMap, DataTypeMenuConfigMap } from './types';
3
+ import { Theme } from './themes';
4
+ interface DesktopDndContextValue {
5
+ pages: DndPageItem[];
6
+ setPages: (pages: DndPageItem[]) => void;
7
+ currentPage: number;
8
+ setCurrentPage: (page: number) => void;
9
+ dragState: DragState;
10
+ setDragState: React.Dispatch<React.SetStateAction<DragState>>;
11
+ pointerPositionRef: React.MutableRefObject<{
12
+ x: number;
13
+ y: number;
14
+ } | null>;
15
+ containerRef: React.RefObject<HTMLDivElement | null>;
16
+ folderModal: FolderModalState;
17
+ setFolderModal: React.Dispatch<React.SetStateAction<FolderModalState>>;
18
+ contextMenu: ContextMenuData | null;
19
+ setContextMenu: React.Dispatch<React.SetStateAction<ContextMenuData | null>>;
20
+ hideContextMenu: () => void;
21
+ iconSize: number;
22
+ maxPages: number;
23
+ mergeDwellTime: number;
24
+ typeConfigMap?: TypeConfigMap;
25
+ dataTypeMenuConfigMap?: DataTypeMenuConfigMap;
26
+ onRemoveClick?: (item: DndSortItem) => void;
27
+ onContextMenuItemClick?: (item: DndSortItem, payload: ContextMenuActionPayload) => void;
28
+ contextMenuProps?: DesktopDndContextMenuProps;
29
+ theme: Theme;
30
+ noLetters?: boolean;
31
+ itemBuilder?: (item: DndSortItem, index: number) => React.ReactNode | null;
32
+ itemBuilderAllowNull?: boolean;
33
+ itemIconBuilder?: (item: DndSortItem) => React.ReactNode;
34
+ itemIconBuilderAllowNull?: boolean;
35
+ pagingDotBuilder?: (index: number, isActive: boolean) => React.ReactNode;
36
+ pagingDotsBuilder?: (dots: React.ReactNode[]) => React.ReactNode;
37
+ extraItems?: DndSortItem[];
38
+ componentRegistry?: ComponentRegistry;
39
+ removeItem: (itemId: string | number) => void;
40
+ updateItemConfig: (itemId: string | number, config: SortItemUserConfig) => void;
41
+ updateItemData: (itemId: string | number, data: Partial<DndSortItem["data"]>) => void;
42
+ insertItemAt: (pageIndex: number, index: number, item: DndSortItem) => void;
43
+ mergeItems: (targetId: string | number, draggedItem: DndSortItem) => void;
44
+ removeItemFromFolder: (folderId: string | number, itemId: string | number, toPageIndex: number) => void;
45
+ addItemToFolder: (folderId: string | number, item: DndSortItem) => void;
46
+ reorderFolderChildren: (folderId: string | number, fromIndex: number, toIndex: number) => void;
47
+ findItemById: (id: string | number) => {
48
+ item: DndSortItem;
49
+ pageIndex: number;
50
+ itemIndex: number;
51
+ } | null;
52
+ findFolderContaining: (itemId: string | number) => {
53
+ folder: DndSortItem;
54
+ pageIndex: number;
55
+ } | null;
56
+ }
57
+ export declare const useDesktopDnd: () => DesktopDndContextValue;
58
+ interface DesktopDndProviderProps {
59
+ pages: DndPageItem[];
60
+ onChange: (pages: DndPageItem[]) => void;
61
+ iconSize: number;
62
+ maxPages: number;
63
+ mergeDwellTime: number;
64
+ containerRef: React.RefObject<HTMLDivElement | null>;
65
+ typeConfigMap?: TypeConfigMap;
66
+ dataTypeMenuConfigMap?: DataTypeMenuConfigMap;
67
+ onRemoveClick?: (item: DndSortItem) => void;
68
+ onContextMenuItemClick?: (item: DndSortItem, payload: ContextMenuActionPayload) => void;
69
+ contextMenuProps?: DesktopDndContextMenuProps;
70
+ theme?: Theme | "light" | "dark";
71
+ noLetters?: boolean;
72
+ itemBuilder?: (item: DndSortItem, index: number) => React.ReactNode | null;
73
+ itemBuilderAllowNull?: boolean;
74
+ itemIconBuilder?: (item: DndSortItem) => React.ReactNode;
75
+ itemIconBuilderAllowNull?: boolean;
76
+ pagingDotBuilder?: (index: number, isActive: boolean) => React.ReactNode;
77
+ pagingDotsBuilder?: (dots: React.ReactNode[]) => React.ReactNode;
78
+ extraItems?: DndSortItem[];
79
+ storageKey?: string;
80
+ componentRegistry?: ComponentRegistry;
81
+ children: React.ReactNode;
82
+ }
83
+ export declare const DesktopDndProvider: ({ pages: externalPages, onChange, iconSize, maxPages, mergeDwellTime, containerRef, typeConfigMap, dataTypeMenuConfigMap, onRemoveClick, onContextMenuItemClick, contextMenuProps, theme: themeProp, noLetters, itemBuilder, itemBuilderAllowNull, itemIconBuilder, itemIconBuilderAllowNull, pagingDotBuilder, pagingDotsBuilder, extraItems, storageKey, componentRegistry, children, }: DesktopDndProviderProps) => import("react/jsx-runtime").JSX.Element;
84
+ export {};
@@ -0,0 +1,20 @@
1
+ import { default as React } from 'react';
2
+ import { DndSortItem } from '../types';
3
+ import { Theme } from '../themes';
4
+ export interface DockProps {
5
+ items?: DndSortItem[];
6
+ fixedItems?: DndSortItem[];
7
+ position?: "top" | "bottom" | "left" | "right";
8
+ className?: string;
9
+ onItemClick?: (item: DndSortItem) => void;
10
+ itemBuilder?: (item: DndSortItem, index: number) => React.ReactNode;
11
+ fixedItemBuilder?: (item: DndSortItem, index: number) => React.ReactNode;
12
+ showLaunchpad?: boolean;
13
+ onLaunchpadClick?: () => void;
14
+ onLaunchpadItemClick?: (item: DndSortItem) => void;
15
+ maxItems?: number;
16
+ itemSize?: number;
17
+ theme?: Theme;
18
+ }
19
+ declare const Dock: React.FC<DockProps>;
20
+ export default Dock;
@@ -0,0 +1,9 @@
1
+ export { default as Dock } from './dock';
2
+ export { default as LaunchpadModal } from './launchpad-modal';
3
+ export { default as LaunchpadButton } from './launchpad-button';
4
+ export { default as StackedIcon } from './stacked-icon';
5
+ export { default as SearchBox } from './search-box';
6
+ export type { DockProps } from './dock';
7
+ export type { LaunchpadModalProps } from './launchpad-modal';
8
+ export type { LaunchpadButtonProps } from './launchpad-button';
9
+ export type { StackedIconProps } from './stacked-icon';
@@ -0,0 +1,12 @@
1
+ import { default as React } from 'react';
2
+ import { Theme } from '../themes';
3
+ import { DndSortItem } from '../types';
4
+ export interface LaunchpadButtonProps {
5
+ onClick?: () => void;
6
+ className?: string;
7
+ position?: "top" | "bottom" | "left" | "right";
8
+ theme?: Theme;
9
+ apps?: DndSortItem[];
10
+ }
11
+ declare const LaunchpadButton: React.FC<LaunchpadButtonProps>;
12
+ export default LaunchpadButton;
@@ -0,0 +1,10 @@
1
+ import { DndSortItem } from '../types';
2
+ import { Theme } from '../themes';
3
+ export interface LaunchpadModalProps {
4
+ visible: boolean;
5
+ onClose: () => void;
6
+ onItemClick?: (item: DndSortItem) => void;
7
+ theme?: Theme;
8
+ }
9
+ declare const LaunchpadModal: ({ visible, onClose, onItemClick, theme, }: LaunchpadModalProps) => import("react/jsx-runtime").JSX.Element;
10
+ export default LaunchpadModal;
@@ -0,0 +1,11 @@
1
+ import { default as React } from 'react';
2
+ import { Theme } from '../themes';
3
+ interface SearchBoxProps {
4
+ value: string;
5
+ onChange: (value: string) => void;
6
+ placeholder?: string;
7
+ className?: string;
8
+ theme?: Theme;
9
+ }
10
+ declare const SearchBox: React.FC<SearchBoxProps>;
11
+ export default SearchBox;
@@ -0,0 +1,11 @@
1
+ import { default as React } from 'react';
2
+ import { Theme } from '../themes';
3
+ import { DndSortItem } from '../types';
4
+ export interface StackedIconProps {
5
+ onClick?: () => void;
6
+ className?: string;
7
+ theme?: Theme;
8
+ apps?: DndSortItem[];
9
+ }
10
+ declare const StackedIcon: React.FC<StackedIconProps>;
11
+ export default StackedIcon;
@@ -0,0 +1,12 @@
1
+ import { DrawerProps } from 'rc-drawer';
2
+ import { FC, ReactNode } from 'react';
3
+ import { Theme } from '../themes';
4
+ export type BaseDrawerProps = DrawerProps & {
5
+ title?: ReactNode;
6
+ contentClassName?: string;
7
+ destroyOnClose?: boolean;
8
+ className?: string;
9
+ theme?: Theme;
10
+ };
11
+ declare const BaseDrawer: FC<BaseDrawerProps>;
12
+ export default BaseDrawer;
@@ -0,0 +1,2 @@
1
+ export { default as BaseDrawer } from './base-drawer';
2
+ export type { BaseDrawerProps } from './base-drawer';
@@ -0,0 +1,9 @@
1
+ import { default as React } from 'react';
2
+ import { DndSortItem } from './types';
3
+ interface PageGridProps {
4
+ pageIndex: number;
5
+ onItemClick?: (item: DndSortItem) => void;
6
+ iconBuilder?: (item: DndSortItem) => React.ReactNode;
7
+ }
8
+ declare const PageGrid: ({ pageIndex, onItemClick, iconBuilder }: PageGridProps) => import("react/jsx-runtime").JSX.Element | null;
9
+ export default PageGrid;
@@ -0,0 +1,11 @@
1
+ import { DndSortItem } from '../types';
2
+ interface DragEngineOptions {
3
+ gridContainerRef: React.RefObject<HTMLDivElement | null>;
4
+ cols: number;
5
+ cellSize: number;
6
+ pageIndex: number;
7
+ }
8
+ export declare const useDragEngine: ({ gridContainerRef, cols, cellSize, pageIndex, }: DragEngineOptions) => {
9
+ handleDragStart: (item: DndSortItem, clientX: number, clientY: number, pointerId: number, el: HTMLElement) => void;
10
+ };
11
+ export {};
@@ -0,0 +1,13 @@
1
+ import { DndSortItem } from '../types';
2
+ interface FolderSortEngineOptions {
3
+ gridRef: React.RefObject<HTMLDivElement | null>;
4
+ dialogRef: React.RefObject<HTMLDivElement | null>;
5
+ folderId: string | number | null;
6
+ cols: number;
7
+ cellSize: number;
8
+ onDragOut: (item: DndSortItem, clientX: number, clientY: number) => void;
9
+ }
10
+ export declare const useFolderSortEngine: ({ gridRef, dialogRef, folderId, cols, cellSize, onDragOut, }: FolderSortEngineOptions) => {
11
+ handleDragStart: (item: DndSortItem, clientX: number, clientY: number, pointerId: number, el: HTMLElement) => void;
12
+ };
13
+ export {};
@@ -0,0 +1,11 @@
1
+ export declare const useGridLayout: (iconSize: number, measureRef: React.RefObject<HTMLDivElement | null>) => {
2
+ getGridPosition: (index: number) => {
3
+ col: number;
4
+ row: number;
5
+ };
6
+ getIndexFromPosition: (x: number, y: number, containerRect: DOMRect) => number;
7
+ cols: number;
8
+ cellSize: number;
9
+ containerWidth: number;
10
+ gap: number;
11
+ };