@purpurds/autocomplete 7.6.1 → 7.7.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.
- package/dist/LICENSE.txt +3 -3
- package/dist/autocomplete.cjs.js +15 -15
- package/dist/autocomplete.cjs.js.map +1 -1
- package/dist/autocomplete.d.ts.map +1 -1
- package/dist/autocomplete.es.js +676 -755
- package/dist/autocomplete.es.js.map +1 -1
- package/dist/useAutocomplete.d.ts +4 -4
- package/dist/useAutocomplete.d.ts.map +1 -1
- package/dist/utils.d.ts +2 -2
- package/dist/utils.d.ts.map +1 -1
- package/package.json +13 -12
- package/src/useAutocomplete.ts +5 -5
- package/src/utils.ts +3 -3
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"useAutocomplete.d.ts","sourceRoot":"","sources":["../src/useAutocomplete.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,
|
|
1
|
+
{"version":3,"file":"useAutocomplete.d.ts","sourceRoot":"","sources":["../src/useAutocomplete.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAiB,SAAS,EAAE,MAAM,OAAO,CAAC;AAEtD,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,wBAAwB,CAAC;AACxD,OAAO,KAAK,EAAE,gBAAgB,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAC;AAIxE,MAAM,MAAM,kBAAkB,GAAG;IAC/B,KAAK,EAAE,MAAM,CAAC;IACd,EAAE,EAAE,MAAM,CAAC;IACX,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,QAAQ,CAAC,EAAE,OAAO,CAAC;CACpB,CAAC;AAEF,MAAM,MAAM,UAAU,GAAG,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,EAAE,SAAS,GAAG,aAAa,CAAC,GAAG;IAC7E,OAAO,EAAE,CAAC,KAAK,EAAE,KAAK,CAAC,UAAU,CAAC,gBAAgB,CAAC,GAAG,SAAS,KAAK,IAAI,CAAC;IACzE,WAAW,EAAE,CAAC,KAAK,EAAE,KAAK,CAAC,UAAU,CAAC,gBAAgB,CAAC,GAAG,SAAS,KAAK,IAAI,CAAC;CAC9E,CAAC;AAEF,MAAM,MAAM,qBAAqB,CAAC,CAAC,SAAS,kBAAkB,IAAI;IAIhE,QAAQ,CAAC,EAAE,OAAO,CAAC;IAInB,oBAAoB,CAAC,EAAE,OAAO,CAAC;IAI/B,iBAAiB,CAAC,EAAE,MAAM,CAAC;IAI3B,UAAU,CAAC,EAAE,MAAM,CAAC;IAIpB,YAAY,CAAC,EAAE,CAAC,UAAU,EAAE,MAAM,GAAG,SAAS,EAAE,MAAM,EAAE,CAAC,KAAK,OAAO,CAAC;IAItE,EAAE,EAAE,MAAM,CAAC;IAIX,YAAY,EAAE,MAAM,CAAC;IAIrB,gBAAgB,CAAC,EAAE,MAAM,GAAG,MAAM,CAAC;IAInC,aAAa,CAAC,EAAE,SAAS,CAAC;IAI1B,WAAW,CAAC,EAAE,KAAK,CAAC,iBAAiB,CAAC,gBAAgB,CAAC,CAAC;IAIxD,aAAa,CAAC,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,IAAI,CAAC;IAIxC,YAAY,CAAC,EAAE,CAAC,KAAK,EAAE,KAAK,CAAC,UAAU,CAAC,gBAAgB,CAAC,GAAG,SAAS,KAAK,SAAS,CAAC;IAIpF,cAAc,CAAC,EAAE,KAAK,CAAC,oBAAoB,CAAC,gBAAgB,CAAC,CAAC;IAI9D,gBAAgB,CAAC,EAAE,CAAC,KAAK,EAAE,KAAK,CAAC,UAAU,CAAC,gBAAgB,CAAC,GAAG,SAAS,KAAK,SAAS,CAAC;IAIxF,WAAW,CAAC,EAAE,OAAO,CAAC;IAItB,QAAQ,CAAC,EAAE,CAAC,MAAM,EAAE,CAAC,GAAG,SAAS,KAAK,IAAI,CAAC;IAI3C,OAAO,EAAE,CAAC,EAAE,CAAC;IAIb,cAAc,CAAC,EAAE,CAAC,CAAC;IACnB,CAAC,aAAa,CAAC,CAAC,EAAE,MAAM,CAAC;CAC1B,CAAC;AAEF,eAAO,MAAM,eAAe,GAAI,CAAC,SAAS,kBAAkB,gSAoBzD,qBAAqB,CAAC,CAAC,CAAC;;;;;;;;kCA2LY,CAAC,SAAS,MAAM,KAAG,gBAAgB;;CAyDzE,CAAC"}
|
package/dist/utils.d.ts
CHANGED
|
@@ -1,8 +1,8 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { RefObject } from 'react';
|
|
2
2
|
|
|
3
3
|
export type Prettify<T> = {
|
|
4
4
|
[K in keyof T]: T[K];
|
|
5
5
|
} & {};
|
|
6
|
-
export declare const
|
|
6
|
+
export declare const useRefObject: <T>(value: T) => RefObject<T>;
|
|
7
7
|
export declare const useOnClickOutside: (element: HTMLElement | null, callback: () => void) => void;
|
|
8
8
|
//# sourceMappingURL=utils.d.ts.map
|
package/dist/utils.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"utils.d.ts","sourceRoot":"","sources":["../src/utils.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,
|
|
1
|
+
{"version":3,"file":"utils.d.ts","sourceRoot":"","sources":["../src/utils.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,SAAS,EAAkC,MAAM,OAAO,CAAC;AAGvE,MAAM,MAAM,QAAQ,CAAC,CAAC,IAAI;KACvB,CAAC,IAAI,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;CACrB,GAAG,EAAE,CAAC;AAEP,eAAO,MAAM,YAAY,GAAI,CAAC,SAAS,CAAC,KAAG,SAAS,CAAC,CAAC,CAErD,CAAC;AAEF,eAAO,MAAM,iBAAiB,YAAa,WAAW,GAAG,IAAI,YAAY,MAAM,IAAI,SAgBlF,CAAC"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@purpurds/autocomplete",
|
|
3
|
-
"version": "7.
|
|
3
|
+
"version": "7.7.0",
|
|
4
4
|
"license": "AGPL-3.0-only",
|
|
5
5
|
"main": "./dist/autocomplete.cjs.js",
|
|
6
6
|
"types": "./dist/autocomplete.d.ts",
|
|
@@ -17,13 +17,14 @@
|
|
|
17
17
|
"dependencies": {
|
|
18
18
|
"classnames": "~2.5.0",
|
|
19
19
|
"eslint": "9.24.0",
|
|
20
|
-
"@purpurds/
|
|
21
|
-
"@purpurds/
|
|
22
|
-
"@purpurds/
|
|
23
|
-
"@purpurds/
|
|
24
|
-
"@purpurds/
|
|
25
|
-
"@purpurds/
|
|
26
|
-
"@purpurds/
|
|
20
|
+
"@purpurds/common-types": "7.7.0",
|
|
21
|
+
"@purpurds/heading": "7.7.0",
|
|
22
|
+
"@purpurds/icon": "7.7.0",
|
|
23
|
+
"@purpurds/listbox": "7.7.0",
|
|
24
|
+
"@purpurds/notification": "7.7.0",
|
|
25
|
+
"@purpurds/paragraph": "7.7.0",
|
|
26
|
+
"@purpurds/text-field": "7.7.0",
|
|
27
|
+
"@purpurds/tokens": "7.7.0"
|
|
27
28
|
},
|
|
28
29
|
"devDependencies": {
|
|
29
30
|
"@storybook/blocks": "^8.6.4",
|
|
@@ -45,11 +46,11 @@
|
|
|
45
46
|
"typescript": "^5.6.3",
|
|
46
47
|
"vite": "^6.2.1",
|
|
47
48
|
"vitest": "^3.1.2",
|
|
48
|
-
"@purpurds/button": "7.
|
|
49
|
+
"@purpurds/button": "7.7.0",
|
|
49
50
|
"@purpurds/component-rig": "1.0.0",
|
|
50
|
-
"@purpurds/
|
|
51
|
-
"@purpurds/label": "7.
|
|
52
|
-
"@purpurds/
|
|
51
|
+
"@purpurds/icon": "7.7.0",
|
|
52
|
+
"@purpurds/label": "7.7.0",
|
|
53
|
+
"@purpurds/search-field": "7.7.0"
|
|
53
54
|
},
|
|
54
55
|
"peerDependencies": {
|
|
55
56
|
"@types/react": "^18 || ^19",
|
package/src/useAutocomplete.ts
CHANGED
|
@@ -1,8 +1,9 @@
|
|
|
1
|
-
import type {
|
|
1
|
+
import type { CSSProperties, ReactNode } from "react";
|
|
2
2
|
import { useRef, useState } from "react";
|
|
3
|
+
import type { BaseProps } from "@purpurds/common-types";
|
|
3
4
|
import type { ListboxItemProps, ListboxProps } from "@purpurds/listbox";
|
|
4
5
|
|
|
5
|
-
import {
|
|
6
|
+
import { useOnClickOutside, useRefObject } from "./utils";
|
|
6
7
|
|
|
7
8
|
export type AutocompleteOption = {
|
|
8
9
|
label: string;
|
|
@@ -11,8 +12,7 @@ export type AutocompleteOption = {
|
|
|
11
12
|
disabled?: boolean;
|
|
12
13
|
};
|
|
13
14
|
|
|
14
|
-
export type InputProps = Omit<
|
|
15
|
-
"data-testid"?: string;
|
|
15
|
+
export type InputProps = Omit<BaseProps<"input">, "onFocus" | "onMouseDown"> & {
|
|
16
16
|
onFocus: (event: React.FocusEvent<HTMLInputElement> | undefined) => void;
|
|
17
17
|
onMouseDown: (event: React.MouseEvent<HTMLInputElement> | undefined) => void;
|
|
18
18
|
};
|
|
@@ -123,7 +123,7 @@ export const useAutocomplete = <T extends AutocompleteOption>({
|
|
|
123
123
|
(T & { isSetByClickEvent?: false }) | undefined
|
|
124
124
|
>(highlightFirstOption ? options[0] : undefined);
|
|
125
125
|
const inputRef = useRef<HTMLInputElement>(null);
|
|
126
|
-
const internalRef =
|
|
126
|
+
const internalRef = useRefObject<HTMLDivElement | null>(null);
|
|
127
127
|
const listboxRef = useRef<HTMLUListElement>(null);
|
|
128
128
|
const optionRefs = useRef<Record<string, HTMLLIElement>>({});
|
|
129
129
|
const [listboxIsOpen, setListboxIsOpen] = useState(false);
|
package/src/utils.ts
CHANGED
|
@@ -1,12 +1,12 @@
|
|
|
1
|
-
import { type
|
|
1
|
+
import { type RefObject, useCallback, useEffect, useRef } from "react";
|
|
2
2
|
|
|
3
3
|
// Used to "merge" "intersection types". Used to get comments on the props to the docs.
|
|
4
4
|
export type Prettify<T> = {
|
|
5
5
|
[K in keyof T]: T[K];
|
|
6
6
|
} & {};
|
|
7
7
|
|
|
8
|
-
export const
|
|
9
|
-
return useRef<T>(value) as
|
|
8
|
+
export const useRefObject = <T>(value: T): RefObject<T> => {
|
|
9
|
+
return useRef<T>(value) as RefObject<T>;
|
|
10
10
|
};
|
|
11
11
|
|
|
12
12
|
export const useOnClickOutside = (element: HTMLElement | null, callback: () => void) => {
|