v-float 0.9.1 → 0.10.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.
@@ -1,41 +1,78 @@
1
- import { MaybeRefOrGetter } from 'vue';
1
+ import { ComputedRef, MaybeRefOrGetter } from 'vue';
2
2
  import { FloatingContext } from '../positioning/use-floating';
3
3
  import { TreeNode } from '../positioning/use-floating-tree';
4
4
  export interface UseFocusTrapOptions {
5
- /** Enables the focus trap when true. @default true */
5
+ /**
6
+ * Determines if the focus trap should be enabled.
7
+ * When `true`, the focus trap is active.
8
+ * @default true
9
+ */
6
10
  enabled?: MaybeRefOrGetter<boolean>;
7
- /** When true, hides/inerts content outside the trap. @default false */
11
+ /**
12
+ * When `true`, content outside the trap will be hidden from accessibility
13
+ * trees (via `aria-hidden`) and potentially made inert (via `inert` attribute
14
+ * if `outsideElementsInert` is `true` and supported).
15
+ * This mimics modal behavior.
16
+ * @default false
17
+ */
8
18
  modal?: MaybeRefOrGetter<boolean>;
9
- /** When true, inserts hidden focus guards to aid wrap-around. @default true */
10
- guards?: MaybeRefOrGetter<boolean>;
11
- /** Wrap order preference when cycling with Tab. @default ['content'] */
12
- order?: MaybeRefOrGetter<Array<"content" | "reference" | "floating">>;
13
- /** Initial focus target policy on activation. @default 'first' */
14
- initialFocus?: MaybeRefOrGetter<number | HTMLElement | (() => HTMLElement | null) | "first" | "last">;
15
- /** Returns focus to previously focused element on deactivate. @default true */
19
+ /**
20
+ * Specifies the element that should receive initial focus when the trap is activated.
21
+ * - `undefined` or omitted: Focuses the first tabbable element within the trap.
22
+ * - CSS selector string: Queries and focuses the first matching element.
23
+ * - `HTMLElement`: Focuses the specific provided HTML element.
24
+ * - `Function`: A function that returns an `HTMLElement` or `false`. The returned
25
+ * element will receive focus.
26
+ * - `false`: Prevents any initial focus from being set by the trap.
27
+ */
28
+ initialFocus?: HTMLElement | (() => HTMLElement | false) | string | false;
29
+ /**
30
+ * When `true`, focus will be returned to the element that was focused
31
+ * immediately before the trap was activated, upon deactivation.
32
+ * @default true
33
+ */
16
34
  returnFocus?: MaybeRefOrGetter<boolean>;
17
- /** Restores focus to nearest tabbable if active node disappears. @default false */
18
- restoreFocus?: MaybeRefOrGetter<boolean>;
19
- /** On non-modal, close when focus escapes the trap. @default false */
35
+ /**
36
+ * When `true` and the trap is not `modal`, the trap will deactivate (and potentially close
37
+ * the associated component) if focus moves outside the defined trap elements.
38
+ * @default false
39
+ */
20
40
  closeOnFocusOut?: MaybeRefOrGetter<boolean>;
21
- /** Pass preventScroll to focus operations. @default true */
41
+ /**
42
+ * Controls whether the browser should scroll to the focused element.
43
+ * Passed directly to the `focus()` method's `preventScroll` option.
44
+ * @default true
45
+ */
22
46
  preventScroll?: MaybeRefOrGetter<boolean>;
23
- /** Apply `inert` (when supported) to outside elements while modal. @default false */
47
+ /**
48
+ * When `true` and `modal` is `true`, applies the `inert` attribute (if supported
49
+ * by the browser) to elements outside the focus trap to prevent user interaction
50
+ * and assistive technology access.
51
+ * @default false
52
+ */
24
53
  outsideElementsInert?: MaybeRefOrGetter<boolean>;
54
+ /**
55
+ * An optional error handler function that will be called if there's an
56
+ * issue during the focus trap activation process.
57
+ * @param error - The error object.
58
+ */
59
+ onError?: (error: unknown) => void;
25
60
  }
26
61
  export interface UseFocusTrapReturn {
27
- cleanup: () => void;
62
+ /** Check if the focus trap is currently active */
63
+ isActive: ComputedRef<boolean>;
64
+ /** Manually activate the focus trap (if enabled and open) */
65
+ activate: () => void;
66
+ /** Manually deactivate the focus trap */
67
+ deactivate: () => void;
28
68
  }
29
69
  /**
30
- * Traps keyboard focus within the floating element, optionally in a modal manner.
70
+ * Creates a focus trap for a floating element using focus-trap library.
71
+ * Manages focus containment, modal behavior, and accessibility features.
31
72
  *
32
- * Supports nested traps; only the deepest open node activates trapping when used with a tree.
33
- * Provides optional focus guards, initial focus, focus return, and close-on-escape behavior.
34
- *
35
- * @param context - FloatingContext or TreeNode<FloatingContext> to trap within
36
- * @param options - Configuration options controlling trap behavior
37
- * @returns Cleanup API
73
+ * @param context - FloatingContext or TreeNode containing floating element refs
74
+ * @param options - Configuration options for the focus trap
75
+ * @returns Object with isActive state, and manual control methods
38
76
  */
39
77
  export declare function useFocusTrap(context: FloatingContext | TreeNode<FloatingContext>, options?: UseFocusTrapOptions): UseFocusTrapReturn;
40
- export type { FloatingContext };
41
78
  //# sourceMappingURL=use-focus-trap.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"use-focus-trap.d.ts","sourceRoot":"","sources":["../../../src/composables/interactions/use-focus-trap.ts"],"names":[],"mappings":"AAEA,OAAO,EAEL,KAAK,gBAAgB,EAOtB,MAAM,KAAK,CAAA;AACZ,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,wCAAwC,CAAA;AAC7E,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,6CAA6C,CAAA;AAY3E,MAAM,WAAW,mBAAmB;IAClC,sDAAsD;IACtD,OAAO,CAAC,EAAE,gBAAgB,CAAC,OAAO,CAAC,CAAA;IACnC,uEAAuE;IACvE,KAAK,CAAC,EAAE,gBAAgB,CAAC,OAAO,CAAC,CAAA;IACjC,+EAA+E;IAC/E,MAAM,CAAC,EAAE,gBAAgB,CAAC,OAAO,CAAC,CAAA;IAClC,wEAAwE;IACxE,KAAK,CAAC,EAAE,gBAAgB,CAAC,KAAK,CAAC,SAAS,GAAG,WAAW,GAAG,UAAU,CAAC,CAAC,CAAA;IACrE,kEAAkE;IAClE,YAAY,CAAC,EAAE,gBAAgB,CAC7B,MAAM,GAAG,WAAW,GAAG,CAAC,MAAM,WAAW,GAAG,IAAI,CAAC,GAAG,OAAO,GAAG,MAAM,CACrE,CAAA;IACD,+EAA+E;IAC/E,WAAW,CAAC,EAAE,gBAAgB,CAAC,OAAO,CAAC,CAAA;IACvC,mFAAmF;IACnF,YAAY,CAAC,EAAE,gBAAgB,CAAC,OAAO,CAAC,CAAA;IACxC,sEAAsE;IACtE,eAAe,CAAC,EAAE,gBAAgB,CAAC,OAAO,CAAC,CAAA;IAC3C,4DAA4D;IAC5D,aAAa,CAAC,EAAE,gBAAgB,CAAC,OAAO,CAAC,CAAA;IACzC,qFAAqF;IACrF,oBAAoB,CAAC,EAAE,gBAAgB,CAAC,OAAO,CAAC,CAAA;CACjD;AAED,MAAM,WAAW,kBAAkB;IACjC,OAAO,EAAE,MAAM,IAAI,CAAA;CACpB;AAMD;;;;;;;;;GASG;AACH,wBAAgB,YAAY,CAC1B,OAAO,EAAE,eAAe,GAAG,QAAQ,CAAC,eAAe,CAAC,EACpD,OAAO,GAAE,mBAAwB,GAChC,kBAAkB,CA+cpB;AAMD,YAAY,EAAE,eAAe,EAAE,CAAA"}
1
+ {"version":3,"file":"use-focus-trap.d.ts","sourceRoot":"","sources":["../../../src/composables/interactions/use-focus-trap.ts"],"names":[],"mappings":"AACA,OAAO,EACL,KAAK,WAAW,EAEhB,KAAK,gBAAgB,EAKtB,MAAM,KAAK,CAAA;AACZ,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,wCAAwC,CAAA;AAC7E,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,6CAA6C,CAAA;AAO3E,MAAM,WAAW,mBAAmB;IAClC;;;;OAIG;IACH,OAAO,CAAC,EAAE,gBAAgB,CAAC,OAAO,CAAC,CAAA;IACnC;;;;;;OAMG;IACH,KAAK,CAAC,EAAE,gBAAgB,CAAC,OAAO,CAAC,CAAA;IACjC;;;;;;;;OAQG;IACH,YAAY,CAAC,EAAE,WAAW,GAAG,CAAC,MAAM,WAAW,GAAG,KAAK,CAAC,GAAG,MAAM,GAAG,KAAK,CAAA;IACzE;;;;OAIG;IACH,WAAW,CAAC,EAAE,gBAAgB,CAAC,OAAO,CAAC,CAAA;IACvC;;;;OAIG;IACH,eAAe,CAAC,EAAE,gBAAgB,CAAC,OAAO,CAAC,CAAA;IAC3C;;;;OAIG;IACH,aAAa,CAAC,EAAE,gBAAgB,CAAC,OAAO,CAAC,CAAA;IACzC;;;;;OAKG;IACH,oBAAoB,CAAC,EAAE,gBAAgB,CAAC,OAAO,CAAC,CAAA;IAChD;;;;OAIG;IACH,OAAO,CAAC,EAAE,CAAC,KAAK,EAAE,OAAO,KAAK,IAAI,CAAA;CACnC;AAED,MAAM,WAAW,kBAAkB;IACjC,kDAAkD;IAClD,QAAQ,EAAE,WAAW,CAAC,OAAO,CAAC,CAAA;IAC9B,6DAA6D;IAC7D,QAAQ,EAAE,MAAM,IAAI,CAAA;IACpB,yCAAyC;IACzC,UAAU,EAAE,MAAM,IAAI,CAAA;CACvB;AAiBD;;;;;;;GAOG;AACH,wBAAgB,YAAY,CAC1B,OAAO,EAAE,eAAe,GAAG,QAAQ,CAAC,eAAe,CAAC,EACpD,OAAO,GAAE,mBAAwB,GAChC,kBAAkB,CA2LpB"}
@@ -1 +1 @@
1
- {"version":3,"file":"use-focus.d.ts","sourceRoot":"","sources":["../../../src/composables/interactions/use-focus.ts"],"names":[],"mappings":"AACA,OAAO,EAEL,KAAK,gBAAgB,EAOtB,MAAM,KAAK,CAAA;AACZ,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,wCAAwC,CAAA;AAC7E,OAAO,KAAK,EAAE,IAAI,EAAY,MAAM,6CAA6C,CAAA;AAmBjF;;;;;;;;;;;;;;;;;;;;;;;;;;;GA2BG;AAEH,wBAAgB,QAAQ,CACtB,OAAO,EAAE,eAAe,EACxB,OAAO,GAAE,eAAoB,GAC5B,cAAc,CAsMhB;AAMD,MAAM,WAAW,eAAe;IAC9B;;;OAGG;IACH,OAAO,CAAC,EAAE,gBAAgB,CAAC,OAAO,CAAC,CAAA;IAEnC;;;;OAIG;IACH,mBAAmB,CAAC,EAAE,gBAAgB,CAAC,OAAO,CAAC,CAAA;IAE/C;;OAEG;IACH,IAAI,CAAC,EAAE,IAAI,CAAC,eAAe,CAAC,CAAA;CAC7B;AAED;;GAEG;AACH,MAAM,WAAW,cAAc;IAC7B;;;OAGG;IACH,OAAO,EAAE,MAAM,IAAI,CAAA;CACpB"}
1
+ {"version":3,"file":"use-focus.d.ts","sourceRoot":"","sources":["../../../src/composables/interactions/use-focus.ts"],"names":[],"mappings":"AACA,OAAO,EAEL,KAAK,gBAAgB,EAMtB,MAAM,KAAK,CAAA;AACZ,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,wCAAwC,CAAA;AAC7E,OAAO,KAAK,EAAE,IAAI,EAAY,MAAM,6CAA6C,CAAA;AAyBjF;;;;;;;;;;;;;;;;;;;;;;;;;;;GA2BG;AAEH,wBAAgB,QAAQ,CAAC,OAAO,EAAE,eAAe,EAAE,OAAO,GAAE,eAAoB,GAAG,cAAc,CAsMhG;AAMD,MAAM,WAAW,eAAe;IAC9B;;;OAGG;IACH,OAAO,CAAC,EAAE,gBAAgB,CAAC,OAAO,CAAC,CAAA;IAEnC;;;;OAIG;IACH,mBAAmB,CAAC,EAAE,gBAAgB,CAAC,OAAO,CAAC,CAAA;IAE/C;;OAEG;IACH,IAAI,CAAC,EAAE,IAAI,CAAC,eAAe,CAAC,CAAA;CAC7B;AAED;;GAEG;AACH,MAAM,WAAW,cAAc;IAC7B;;;OAGG;IACH,OAAO,EAAE,MAAM,IAAI,CAAA;CACpB"}
@@ -1,6 +1,41 @@
1
1
  import { MaybeRefOrGetter, Ref } from 'vue';
2
2
  import { FloatingContext } from '../positioning/use-floating';
3
3
  import { TreeNode } from '../positioning/use-floating-tree';
4
+ export type NavigationAction = {
5
+ type: "navigate";
6
+ index: number | null;
7
+ } | {
8
+ type: "close";
9
+ };
10
+ export interface StrategyContext {
11
+ current: number | null;
12
+ items: Array<HTMLElement | null>;
13
+ isRtl: boolean;
14
+ loop: boolean;
15
+ allowEscape: boolean;
16
+ isVirtual: boolean;
17
+ cols: number;
18
+ nested: boolean;
19
+ isDisabled: (index: number) => boolean;
20
+ findNextEnabled: (start: number, dir: 1 | -1, wrap: boolean) => number | null;
21
+ getFirstEnabledIndex: () => number | null;
22
+ getLastEnabledIndex: () => number | null;
23
+ }
24
+ export interface NavigationStrategy {
25
+ handleKey(key: string, context: StrategyContext): NavigationAction | null;
26
+ }
27
+ export declare class VerticalNavigationStrategy implements NavigationStrategy {
28
+ handleKey(key: string, context: StrategyContext): NavigationAction | null;
29
+ }
30
+ export declare class HorizontalNavigationStrategy implements NavigationStrategy {
31
+ handleKey(key: string, context: StrategyContext): NavigationAction | null;
32
+ }
33
+ export declare class GridNavigationStrategy implements NavigationStrategy {
34
+ private fallbackToLinear;
35
+ private loopDirection;
36
+ constructor(fallbackToLinear?: boolean, loopDirection?: "row" | "next");
37
+ handleKey(key: string, context: StrategyContext): NavigationAction | null;
38
+ }
4
39
  /**
5
40
  * Options for configuring list-style keyboard/mouse navigation behavior.
6
41
  *
@@ -1 +1 @@
1
- {"version":3,"file":"use-list-navigation.d.ts","sourceRoot":"","sources":["../../../src/composables/interactions/use-list-navigation.ts"],"names":[],"mappings":"AACA,OAAO,EAEL,KAAK,gBAAgB,EAErB,KAAK,GAAG,EAKT,MAAM,KAAK,CAAA;AACZ,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,wCAAwC,CAAA;AAC7E,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,6CAA6C,CAAA;AAY3E;;;;;GAKG;AACH,MAAM,WAAW,wBAAwB;IACvC;;;OAGG;IACH,OAAO,EAAE,GAAG,CAAC,KAAK,CAAC,WAAW,GAAG,IAAI,CAAC,CAAC,CAAA;IAEvC;;OAEG;IACH,WAAW,CAAC,EAAE,gBAAgB,CAAC,MAAM,GAAG,IAAI,CAAC,CAAA;IAE7C;;OAEG;IACH,UAAU,CAAC,EAAE,CAAC,KAAK,EAAE,MAAM,GAAG,IAAI,KAAK,IAAI,CAAA;IAE3C;;OAEG;IACH,OAAO,CAAC,EAAE,gBAAgB,CAAC,OAAO,CAAC,CAAA;IAEnC;;OAEG;IACH,IAAI,CAAC,EAAE,gBAAgB,CAAC,OAAO,CAAC,CAAA;IAEhC;;;;;OAKG;IACH,WAAW,CAAC,EAAE,gBAAgB,CAAC,UAAU,GAAG,YAAY,GAAG,MAAM,CAAC,CAAA;IAElE;;;OAGG;IACH,eAAe,CAAC,EAAE,KAAK,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,MAAM,KAAK,OAAO,CAAC,CAAA;IAE9D;;OAEG;IACH,gBAAgB,CAAC,EAAE,gBAAgB,CAAC,OAAO,CAAC,CAAA;IAE5C;;OAEG;IACH,kBAAkB,CAAC,EAAE,gBAAgB,CAAC,OAAO,CAAC,CAAA;IAE9C;;;OAGG;IACH,kBAAkB,CAAC,EAAE,OAAO,GAAG,qBAAqB,CAAA;IAEpD;;OAEG;IACH,aAAa,CAAC,EAAE,gBAAgB,CAAC,MAAM,GAAG,IAAI,CAAC,CAAA;IAE/C;;;;;OAKG;IACH,eAAe,CAAC,EAAE,gBAAgB,CAAC,OAAO,GAAG,MAAM,CAAC,CAAA;IAEpD;;;OAGG;IACH,MAAM,CAAC,EAAE,gBAAgB,CAAC,OAAO,CAAC,CAAA;IAElC;;OAEG;IACH,iBAAiB,CAAC,EAAE,gBAAgB,CAAC,UAAU,GAAG,YAAY,GAAG,MAAM,CAAC,CAAA;IAExE;;OAEG;IACH,GAAG,CAAC,EAAE,gBAAgB,CAAC,OAAO,CAAC,CAAA;IAE/B;;OAEG;IACH,OAAO,CAAC,EAAE,gBAAgB,CAAC,OAAO,CAAC,CAAA;IAEnC;;;OAGG;IACH,cAAc,CAAC,EAAE,GAAG,CAAC,WAAW,GAAG,IAAI,CAAC,CAAA;IAExC;;OAEG;IACH,IAAI,CAAC,EAAE,gBAAgB,CAAC,MAAM,CAAC,CAAA;IAE/B;;OAEG;IACH,WAAW,CAAC,EAAE,gBAAgB,CAAC,OAAO,CAAC,CAAA;IAEvC;;;;OAIG;IACH,iBAAiB,CAAC,EAAE,gBAAgB,CAAC,KAAK,GAAG,MAAM,CAAC,CAAA;CACrD;AAED,MAAM,WAAW,uBAAuB;IACtC,OAAO,EAAE,MAAM,IAAI,CAAA;CACpB;AAED,wBAAgB,iBAAiB,CAC/B,OAAO,EAAE,eAAe,GAAG,QAAQ,CAAC,eAAe,CAAC,EACpD,OAAO,EAAE,wBAAwB,GAChC,uBAAuB,CA+VzB"}
1
+ {"version":3,"file":"use-list-navigation.d.ts","sourceRoot":"","sources":["../../../src/composables/interactions/use-list-navigation.ts"],"names":[],"mappings":"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"}