v-float 0.7.1 → 0.8.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 (52) hide show
  1. package/LICENSE +20 -20
  2. package/README.md +223 -204
  3. package/dist/composables/index.d.ts +1 -3
  4. package/dist/composables/index.d.ts.map +1 -1
  5. package/dist/composables/interactions/index.d.ts +0 -2
  6. package/dist/composables/interactions/index.d.ts.map +1 -1
  7. package/dist/composables/interactions/polygon.d.ts +2 -2
  8. package/dist/composables/interactions/polygon.d.ts.map +1 -1
  9. package/dist/composables/interactions/use-click.d.ts +2 -2
  10. package/dist/composables/interactions/use-click.d.ts.map +1 -1
  11. package/dist/composables/interactions/use-escape-key.d.ts +2 -2
  12. package/dist/composables/interactions/use-escape-key.d.ts.map +1 -1
  13. package/dist/composables/interactions/use-focus.d.ts +30 -25
  14. package/dist/composables/interactions/use-focus.d.ts.map +1 -1
  15. package/dist/composables/interactions/use-hover.d.ts +2 -2
  16. package/dist/composables/interactions/use-hover.d.ts.map +1 -1
  17. package/dist/composables/middlewares/arrow.d.ts +1 -2
  18. package/dist/composables/middlewares/arrow.d.ts.map +1 -1
  19. package/dist/composables/middlewares/index.d.ts +3 -1
  20. package/dist/composables/middlewares/index.d.ts.map +1 -1
  21. package/dist/composables/positioning/index.d.ts +5 -0
  22. package/dist/composables/positioning/index.d.ts.map +1 -0
  23. package/dist/composables/positioning/use-arrow.d.ts.map +1 -0
  24. package/dist/composables/{interactions → positioning}/use-client-point.d.ts +2 -2
  25. package/dist/composables/positioning/use-client-point.d.ts.map +1 -0
  26. package/dist/composables/positioning/use-floating-tree.d.ts +240 -0
  27. package/dist/composables/positioning/use-floating-tree.d.ts.map +1 -0
  28. package/dist/composables/{use-floating.d.ts → positioning/use-floating.d.ts} +19 -10
  29. package/dist/composables/positioning/use-floating.d.ts.map +1 -0
  30. package/dist/types.d.ts +15 -0
  31. package/dist/types.d.ts.map +1 -1
  32. package/dist/utils.d.ts +84 -7
  33. package/dist/utils.d.ts.map +1 -1
  34. package/dist/v-float.es.js +1732 -1620
  35. package/dist/v-float.umd.js +1 -1
  36. package/package.json +73 -76
  37. package/dist/composables/interactions/use-client-point.d.ts.map +0 -1
  38. package/dist/composables/interactions/utils/browser-detection.d.ts +0 -23
  39. package/dist/composables/interactions/utils/browser-detection.d.ts.map +0 -1
  40. package/dist/composables/interactions/utils/element-detection.d.ts +0 -53
  41. package/dist/composables/interactions/utils/element-detection.d.ts.map +0 -1
  42. package/dist/composables/interactions/utils/event-utils.d.ts +0 -30
  43. package/dist/composables/interactions/utils/event-utils.d.ts.map +0 -1
  44. package/dist/composables/interactions/utils/index.d.ts +0 -11
  45. package/dist/composables/interactions/utils/index.d.ts.map +0 -1
  46. package/dist/composables/interactions/utils/tree-context.d.ts +0 -32
  47. package/dist/composables/interactions/utils/tree-context.d.ts.map +0 -1
  48. package/dist/composables/use-arrow.d.ts.map +0 -1
  49. package/dist/composables/use-floating-tree.d.ts +0 -110
  50. package/dist/composables/use-floating-tree.d.ts.map +0 -1
  51. package/dist/composables/use-floating.d.ts.map +0 -1
  52. /package/dist/composables/{use-arrow.d.ts → positioning/use-arrow.d.ts} +0 -0
@@ -1,110 +0,0 @@
1
- import { Ref } from 'vue';
2
- import { AnchorElement, FloatingContext, FloatingElement, UseFloatingOptions } from './use-floating';
3
- /**
4
- * Options for creating a TreeNode
5
- */
6
- export interface CreateTreeNodeOptions {
7
- /** Optional ID for the node. If not provided, one will be generated. */
8
- id?: string;
9
- }
10
- /**
11
- * Options for configuring tree behavior
12
- */
13
- export interface CreateTreeOptions {
14
- /** Strategy for deleting child nodes when a parent is deleted.
15
- * - 'orphan': Children are detached from the tree (parent becomes null).
16
- * - 'recursive': Children are also deleted recursively.
17
- * @default 'recursive'
18
- */
19
- deleteStrategy?: "orphan" | "recursive";
20
- }
21
- export interface TreeNode<T> {
22
- readonly id: string;
23
- readonly data: T;
24
- readonly parent: Ref<TreeNode<T> | null>;
25
- readonly children: Ref<TreeNode<T>[]>;
26
- readonly isRoot: boolean;
27
- readonly isLeaf: Readonly<Ref<boolean>>;
28
- addChild: (childNode: TreeNode<T>) => void;
29
- _removeChildInstance: (childNode: TreeNode<T>) => boolean;
30
- findChild: (predicate: (node: TreeNode<T>) => boolean) => TreeNode<T> | null;
31
- findDescendant: (predicate: (node: TreeNode<T>) => boolean) => TreeNode<T> | null;
32
- isDescendantOf: (potentialAncestor: TreeNode<T>) => boolean;
33
- getPath: () => TreeNode<T>[];
34
- }
35
- export interface Tree<T> {
36
- readonly root: TreeNode<T>;
37
- readonly nodeMap: Readonly<Map<string, TreeNode<T>>>;
38
- findNodeById: (id: string) => TreeNode<T> | null;
39
- addNode: (data: T, parentId?: string | null, nodeOptions?: CreateTreeNodeOptions) => TreeNode<T> | null;
40
- removeNode: (nodeId: string, deleteStrategy?: "orphan" | "recursive") => boolean;
41
- moveNode: (nodeId: string, newParentId: string | null) => boolean;
42
- traverse: (strategy?: "dfs" | "bfs", startNode?: TreeNode<T> | null) => TreeNode<T>[];
43
- dispose: () => void;
44
- }
45
- /**
46
- * Configuration options for the floating tree
47
- */
48
- export interface FloatingTreeOptions extends CreateTreeOptions {
49
- }
50
- export interface UseFloatingTreeReturn extends Omit<Tree<FloatingContext>, "addNode"> {
51
- addNode: (anchorEl: Ref<AnchorElement>, floatingEl: Ref<FloatingElement>, options?: UseFloatingOptions) => TreeNode<FloatingContext> | null;
52
- getAllOpenNodes: () => TreeNode<FloatingContext>[];
53
- getTopmostOpenNode: () => TreeNode<FloatingContext> | null;
54
- /**
55
- * Executes a provided function once for each tree node that matches the specified relationship.
56
- * This is a flexible iteration method that can target nodes based on their relationship to a target node.
57
- *
58
- * @param nodeId - The ID of the target node used as a reference point for the relationship
59
- * @param callback - A function to execute for each matching node
60
- * @param options - Configuration options for the iteration behavior
61
- */
62
- applyToNodes: (nodeId: string, callback: (node: TreeNode<FloatingContext>) => void, options?: {
63
- relationship?: NodeRelationship;
64
- applyToMatching?: boolean;
65
- }) => void;
66
- }
67
- /**
68
- * Predefined node relationship strategies used for filtering nodes.
69
- */
70
- type NodeRelationship = "ancestors-only" | "siblings-only" | "descendants-only" | "children-only" | "self-and-ancestors" | "self-and-children" | "self-and-descendants" | "self-and-siblings" | "self-ancestors-and-children" | "full-branch" | "all-except-branch";
71
- /**
72
- * Creates and manages a hierarchical tree of floating elements.
73
- *
74
- * @param anchorEl - The anchor element for the root floating context
75
- * @param floatingEl - The floating element for the root floating context
76
- * @param options - Options for the root floating context
77
- * @param treeOptions - Options for tree behavior
78
- * @returns UseFloatingTreeReturn with tree management methods and root context
79
- */
80
- export declare function useFloatingTree(anchorEl: Ref<AnchorElement>, floatingEl: Ref<FloatingElement>, options?: UseFloatingOptions, treeOptions?: FloatingTreeOptions): UseFloatingTreeReturn;
81
- /**
82
- * Creates a reactive tree node with data, parent reference, and children references.
83
- * @param data The data to store in the node
84
- * @param parent The parent node, or null for root nodes
85
- * @param options Configuration options for the node
86
- * @param isRoot Whether this node is the true root of a tree
87
- * @returns A reactive tree node object with methods and reactive properties
88
- */
89
- export declare function createTreeNode<T>(data: T, parent?: TreeNode<T> | null, options?: CreateTreeNodeOptions, isRoot?: boolean): TreeNode<T>;
90
- /**
91
- * Creates and manages a reactive tree structure.
92
- *
93
- * This factory function provides a complete tree data structure with reactive nodes,
94
- * supporting operations like adding, removing, and moving nodes, as well as
95
- * traversal and search functionality.
96
- *
97
- * @template T The type of data stored in the tree nodes.
98
- * @param initialRootData Data for the root node.
99
- * @param options Configuration options for the tree behavior.
100
- * @returns A tree management object with methods and reactive properties
101
- *
102
- * @example
103
- * ```ts
104
- * const myTree = createTree({ name: 'Root' });
105
- * const childNode = myTree.addNode({ name: 'Child' }, myTree.root.id);
106
- * ```
107
- */
108
- export declare function createTree<T>(initialRootData: T, options?: CreateTreeOptions): Tree<T>;
109
- export {};
110
- //# sourceMappingURL=use-floating-tree.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"use-floating-tree.d.ts","sourceRoot":"","sources":["../../src/composables/use-floating-tree.ts"],"names":[],"mappings":"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"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"use-floating.d.ts","sourceRoot":"","sources":["../../src/composables/use-floating.ts"],"names":[],"mappings":"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"}