@g4rcez/components 0.2.6 → 0.3.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/index.css +1 -1
- package/dist/index.js +51 -46
- package/dist/index.js.map +1 -1
- package/dist/index.mjs +7717 -7528
- package/dist/index.mjs.map +1 -1
- package/dist/index.umd.js +51 -46
- package/dist/index.umd.js.map +1 -1
- package/dist/preset/preset.tailwind.d.ts +1 -1
- package/dist/preset/preset.tailwind.d.ts.map +1 -1
- package/dist/preset/preset.tailwind.js +1 -1
- package/dist/preset/src/styles/dark.js +1 -1
- package/dist/preset/src/styles/light.js +1 -1
- package/dist/preset.tailwind.d.ts +1 -1
- package/dist/preset.tailwind.d.ts.map +1 -1
- package/dist/preset.tailwind.js +1 -1
- package/dist/src/components/core/polymorph.d.ts +1 -1
- package/dist/src/components/core/polymorph.d.ts.map +1 -1
- package/dist/src/components/core/tag.d.ts +16 -16
- package/dist/src/components/core/tag.d.ts.map +1 -1
- package/dist/src/components/display/shortcut.d.ts +4 -0
- package/dist/src/components/display/shortcut.d.ts.map +1 -0
- package/dist/src/components/display/shortcut.js +17 -0
- package/dist/src/components/floating/command-palette.d.ts +36 -0
- package/dist/src/components/floating/command-palette.d.ts.map +1 -0
- package/dist/src/components/floating/command-palette.js +139 -0
- package/dist/src/components/floating/modal.d.ts +60 -3
- package/dist/src/components/floating/modal.d.ts.map +1 -1
- package/dist/src/components/floating/modal.js +18 -10
- package/dist/src/components/form/autocomplete.d.ts.map +1 -1
- package/dist/src/components/form/autocomplete.js +9 -5
- package/dist/src/components/form/multi-select.d.ts.map +1 -1
- package/dist/src/components/form/multi-select.js +7 -2
- package/dist/src/components/index.d.ts +1 -0
- package/dist/src/components/index.d.ts.map +1 -1
- package/dist/src/components/index.js +1 -0
- package/dist/src/components/table/index.d.ts.map +1 -1
- package/dist/src/components/table/index.js +1 -1
- package/dist/src/config/context.d.ts.map +1 -1
- package/dist/src/config/default-translations.d.ts +1 -0
- package/dist/src/config/default-translations.d.ts.map +1 -1
- package/dist/src/config/default-translations.js +1 -0
- package/dist/src/hooks/use-remove-scroll.js +5 -4
- package/dist/src/hooks/use-translations.d.ts +1 -0
- package/dist/src/hooks/use-translations.d.ts.map +1 -1
- package/dist/src/lib/combi-keys.d.ts +12 -0
- package/dist/src/lib/combi-keys.d.ts.map +1 -0
- package/dist/src/lib/combi-keys.js +48 -0
- package/dist/src/lib/fns.d.ts.map +1 -1
- package/dist/src/lib/fzf.d.ts +16 -0
- package/dist/src/lib/fzf.d.ts.map +1 -0
- package/dist/src/lib/fzf.js +120 -0
- package/dist/src/styles/dark.js +1 -1
- package/dist/src/styles/light.js +1 -1
- package/dist/src/types.d.ts +5 -0
- package/dist/src/types.d.ts.map +1 -1
- package/package.json +118 -120
|
@@ -10,6 +10,7 @@ export * from "./display/notifications";
|
|
|
10
10
|
export * from "./display/stats";
|
|
11
11
|
export * from "./display/tabs";
|
|
12
12
|
export * from "./display/timeline";
|
|
13
|
+
export * from "./floating/command-palette";
|
|
13
14
|
export * from "./floating/dropdown";
|
|
14
15
|
export * from "./floating/expand";
|
|
15
16
|
export * from "./floating/menu";
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/components/table/index.tsx"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,EAA2B,cAAc,EAAoD,MAAM,OAAO,CAAC;AAMzH,OAAO,EAAE,GAAG,EAAE,MAAM,aAAa,CAAC;AAGlC,OAAO,EAAE,WAAW,EAAE,MAAM,gBAAgB,CAAC;AAC7C,OAAO,EAAE,YAAY,EAAE,MAAM,UAAU,CAAC;AACxC,OAAO,EAAE,SAAS,EAAE,MAAM,SAAS,CAAC;AAIpC,OAAO,EAAa,MAAM,EAAE,MAAM,QAAQ,CAAC;AAC3C,OAAO,EAAE,gBAAgB,EAAE,GAAG,EAAoB,mBAAmB,EAAE,MAAM,aAAa,CAAC;AAS3F,KAAK,eAAe,CAAC,CAAC,SAAS,GAAG,IAAI,cAAc,CAAC,gBAAgB,CAAC,GAClE,mBAAmB,CAAC,CAAC,CAAC,GAAG;IACrB,KAAK,CAAC,EAAE,KAAK,CAAC,EAAE,CAAC,gBAAgB,CAAC,CAAC,CAAC,CAAC,CAAC;IACtC,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,KAAK,CAAC,EAAE,SAAS,CAAC,CAAC,CAAC,CAAC;IACrB,MAAM,CAAC,EAAE,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC;IACxB,UAAU,EAAE,WAAW,EAAE,CAAC;IAC1B,KAAK,EAAE,MAAM,CAAC;IACd,IAAI,EAAE,CAAC,EAAE,CAAC;IACV,IAAI,EAAE,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC;IACf,OAAO,CAAC,EAAE,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC;IACtB,YAAY,CAAC,EAAE,OAAO,CAAC;IACvB,OAAO,CAAC,EAAE,YAAY,CAAC,CAAC,CAAC,EAAE,CAAC;IAC5B,SAAS,EAAE,KAAK,CAAC,QAAQ,CAAC,KAAK,CAAC,cAAc,CAAC,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;IAChE,WAAW,CAAC,EAAE,MAAM,IAAI,CAAC;IACzB,WAAW,CAAC,EAAE,OAAO,CAAC;CACzB,CAAC;
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/components/table/index.tsx"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,EAA2B,cAAc,EAAoD,MAAM,OAAO,CAAC;AAMzH,OAAO,EAAE,GAAG,EAAE,MAAM,aAAa,CAAC;AAGlC,OAAO,EAAE,WAAW,EAAE,MAAM,gBAAgB,CAAC;AAC7C,OAAO,EAAE,YAAY,EAAE,MAAM,UAAU,CAAC;AACxC,OAAO,EAAE,SAAS,EAAE,MAAM,SAAS,CAAC;AAIpC,OAAO,EAAa,MAAM,EAAE,MAAM,QAAQ,CAAC;AAC3C,OAAO,EAAE,gBAAgB,EAAE,GAAG,EAAoB,mBAAmB,EAAE,MAAM,aAAa,CAAC;AAS3F,KAAK,eAAe,CAAC,CAAC,SAAS,GAAG,IAAI,cAAc,CAAC,gBAAgB,CAAC,GAClE,mBAAmB,CAAC,CAAC,CAAC,GAAG;IACrB,KAAK,CAAC,EAAE,KAAK,CAAC,EAAE,CAAC,gBAAgB,CAAC,CAAC,CAAC,CAAC,CAAC;IACtC,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,KAAK,CAAC,EAAE,SAAS,CAAC,CAAC,CAAC,CAAC;IACrB,MAAM,CAAC,EAAE,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC;IACxB,UAAU,EAAE,WAAW,EAAE,CAAC;IAC1B,KAAK,EAAE,MAAM,CAAC;IACd,IAAI,EAAE,CAAC,EAAE,CAAC;IACV,IAAI,EAAE,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC;IACf,OAAO,CAAC,EAAE,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC;IACtB,YAAY,CAAC,EAAE,OAAO,CAAC;IACvB,OAAO,CAAC,EAAE,YAAY,CAAC,CAAC,CAAC,EAAE,CAAC;IAC5B,SAAS,EAAE,KAAK,CAAC,QAAQ,CAAC,KAAK,CAAC,cAAc,CAAC,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;IAChE,WAAW,CAAC,EAAE,MAAM,IAAI,CAAC;IACzB,WAAW,CAAC,EAAE,OAAO,CAAC;CACzB,CAAC;AAkKN,MAAM,MAAM,UAAU,CAAC,CAAC,SAAS,GAAG,IAAI,IAAI,CAAC,eAAe,CAAC,CAAC,CAAC,EAAE,MAAM,GAAG,MAAM,GAAG,aAAa,GAAG,QAAQ,GAAG,OAAO,CAAC,GAAG;IACrH,IAAI,EAAE,MAAM,CAAC;CAChB,GAAG,OAAO,CACH,mBAAmB,CAAC,CAAC,CAAC,GAAG;IACrB,MAAM,EAAE,MAAM,CAAC;IACf,OAAO,EAAE,OAAO,CAAC;IACjB,SAAS,EAAE,MAAM,CAAC,CAAC;IACnB,UAAU,EAAE,OAAO,CAAC;IACpB,UAAU,EAAE,OAAO,CAAC;IACpB,YAAY,EAAE,OAAO,CAAC;IACtB,YAAY,EAAE,OAAO,CAAC;IACtB,WAAW,EAAE,MAAM,IAAI,CAAC;CAC3B,CACJ,CAAC;AASN,eAAO,MAAM,KAAK,GAAI,CAAC,SAAS,GAAG,EAAE,OAAO,UAAU,CAAC,CAAC,CAAC,4CA8GxD,CAAC"}
|
|
@@ -87,7 +87,7 @@ const InnerTable = ({ cols, filters, setCols, sorters, setFilters, setSorters, o
|
|
|
87
87
|
}, [loadingMoreRef, onScrollEndRef]);
|
|
88
88
|
const empty = rows.length === 0;
|
|
89
89
|
const context = { loading: props.loading, loadingMore: props.loadingMore, cols: cols, Aside: props.Aside };
|
|
90
|
-
return (_jsxs("div", { className: "min-w-full", children: [_jsxs("div", { className: `group rounded-lg ${border ? "border border-table-border" : ""}`, children: [_jsx(TableVirtuoso, { useWindowScroll: true,
|
|
90
|
+
return (_jsxs("div", { className: "min-w-full", children: [_jsxs("div", { className: `group rounded-lg ${border ? "border border-table-border" : ""}`, children: [_jsx(TableVirtuoso, { useWindowScroll: true, context: context, components: components, totalCount: rows.length, itemContent: empty ? EmptyCell : Row, data: empty ? emptyRows : rows, fixedFooterContent: showLoadingFooter ? Frag : null, fixedHeaderContent: () => (_jsx(TableHeader, { headers: cols, filters: filters, setCols: setCols, sorters: sorters, setFilters: setFilters, setSorters: setSorters, loading: !!props.loading, inlineFilter: props.inlineFilter, inlineSorter: props.inlineSorter })) }), empty ? _jsx(EmptyContent, { loading: props.loading }) : null, _jsx("div", { "aria-hidden": "true", ref: ref, className: "h-0.5 w-full" })] }), pagination !== null ? _jsx(Pagination, { ...pagination }) : null] }));
|
|
91
91
|
};
|
|
92
92
|
const dispatcherFun = (prev, setter) => typeof setter === "function" ? setter(prev) : setter;
|
|
93
93
|
const compareAndExec = (prev, state, exec) => (prev === state ? undefined : exec?.(state));
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"context.d.ts","sourceRoot":"","sources":["../../../src/config/context.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,gBAAgB,CAAC;AAE9C,OAAO,EAAE,OAAO,EAAE,MAAM,yBAAyB,CAAC;AAClD,OAAO,EAAuB,KAAK,YAAY,EAAE,MAAM,wBAAwB,CAAC;AAChF,OAAO,EAAiB,KAAK,MAAM,EAAE,MAAM,kBAAkB,CAAC;AAE9D,MAAM,MAAM,YAAY,GAAG,OAAO,CAAC;IAC/B,MAAM,EAAE,OAAO,CAAC,MAAM,CAAC,CAAC;IACxB,GAAG,EAAE,OAAO,CAAC,YAAY,CAAC,CAAC;IAC3B,MAAM,EAAE,OAAO,GAAG,SAAS,CAAC;IAC5B,MAAM,EAAE,OAAO,OAAO,CAAC,IAAI,CAAC;CAC/B,CAAC,CAAC;AAEH,eAAO,MAAM,OAAO
|
|
1
|
+
{"version":3,"file":"context.d.ts","sourceRoot":"","sources":["../../../src/config/context.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,gBAAgB,CAAC;AAE9C,OAAO,EAAE,OAAO,EAAE,MAAM,yBAAyB,CAAC;AAClD,OAAO,EAAuB,KAAK,YAAY,EAAE,MAAM,wBAAwB,CAAC;AAChF,OAAO,EAAiB,KAAK,MAAM,EAAE,MAAM,kBAAkB,CAAC;AAE9D,MAAM,MAAM,YAAY,GAAG,OAAO,CAAC;IAC/B,MAAM,EAAE,OAAO,CAAC,MAAM,CAAC,CAAC;IACxB,GAAG,EAAE,OAAO,CAAC,YAAY,CAAC,CAAC;IAC3B,MAAM,EAAE,OAAO,GAAG,SAAS,CAAC;IAC5B,MAAM,EAAE,OAAO,OAAO,CAAC,IAAI,CAAC;CAC/B,CAAC,CAAC;AAEH,eAAO,MAAM,OAAO;;;;;GAKlB,CAAC"}
|
|
@@ -54,6 +54,7 @@ export declare const defaultTranslations: {
|
|
|
54
54
|
calendarMonthLabel: string;
|
|
55
55
|
multiSelectSelectedLabel: string;
|
|
56
56
|
multiSelectInnerPlaceholder: string;
|
|
57
|
+
commandPaletteEmpty: string;
|
|
57
58
|
};
|
|
58
59
|
export type Translations = typeof defaultTranslations;
|
|
59
60
|
//# sourceMappingURL=default-translations.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"default-translations.d.ts","sourceRoot":"","sources":["../../../src/config/default-translations.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAmB,MAAM,OAAO,CAAC;AAExC,eAAO,MAAM,mBAAmB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;wCAgDQ;QAChC,KAAK,EAAE,MAAM,CAAC;QACd,UAAU,EAAE,MAAM,CAAC;QACnB,KAAK,CAAC,EAAE,MAAM,EAAE,CAAC;QACjB,OAAO,EAAE,MAAM,CAAC;QAChB,MAAM,EAAE,KAAK,CAAC,SAAS,CAAA;KAC1B
|
|
1
|
+
{"version":3,"file":"default-translations.d.ts","sourceRoot":"","sources":["../../../src/config/default-translations.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAmB,MAAM,OAAO,CAAC;AAExC,eAAO,MAAM,mBAAmB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;wCAgDQ;QAChC,KAAK,EAAE,MAAM,CAAC;QACd,UAAU,EAAE,MAAM,CAAC;QACnB,KAAK,CAAC,EAAE,MAAM,EAAE,CAAC;QACjB,OAAO,EAAE,MAAM,CAAC;QAChB,MAAM,EAAE,KAAK,CAAC,SAAS,CAAA;KAC1B;;;;;;;;;;CAiBJ,CAAC;AAEF,MAAM,MAAM,YAAY,GAAG,OAAO,mBAAmB,CAAC"}
|
|
@@ -8,17 +8,18 @@ export const useRemoveScroll = (remove, removeStyle = "overflow-hidden") => {
|
|
|
8
8
|
const isCoarseDevice = useIsCoarseDevice();
|
|
9
9
|
const prev = useRef(isSsr() ? "" : document.documentElement.style.overflowY);
|
|
10
10
|
useEffect(() => {
|
|
11
|
-
|
|
11
|
+
if (ref.current === null && !remove)
|
|
12
|
+
return;
|
|
12
13
|
if (removeStyle === "overflow-hidden") {
|
|
13
14
|
if (remove) {
|
|
14
15
|
prev.current = document.documentElement.style.overflowY;
|
|
15
|
-
|
|
16
|
+
document.documentElement.style.overflowY = "hidden";
|
|
16
17
|
if (isCoarseDevice || isMobile())
|
|
17
18
|
return;
|
|
18
|
-
|
|
19
|
+
document.documentElement.style.padding = hasVerticalScroll(document.documentElement) ? "0 15px 0 0" : "";
|
|
19
20
|
}
|
|
20
21
|
else {
|
|
21
|
-
|
|
22
|
+
document.documentElement.style.padding = "";
|
|
22
23
|
document.documentElement.style.overflowY = prev.current;
|
|
23
24
|
}
|
|
24
25
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"use-translations.d.ts","sourceRoot":"","sources":["../../../src/hooks/use-translations.ts"],"names":[],"mappings":"AAIA,eAAO,MAAM,eAAe;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;aAKs+C,CAAC
|
|
1
|
+
{"version":3,"file":"use-translations.d.ts","sourceRoot":"","sources":["../../../src/hooks/use-translations.ts"],"names":[],"mappings":"AAIA,eAAO,MAAM,eAAe;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;aAKs+C,CAAC;;;;;;;;;;;;;CADlgD,CAAC"}
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
export declare const isMac: () => boolean;
|
|
2
|
+
type Handler = (e: KeyboardEvent) => void;
|
|
3
|
+
export declare class CombiKeys {
|
|
4
|
+
combinations: Array<{
|
|
5
|
+
key: string;
|
|
6
|
+
fn: Handler;
|
|
7
|
+
}>;
|
|
8
|
+
add<S extends string>(combi: S, fn: Handler): void;
|
|
9
|
+
register(): () => void;
|
|
10
|
+
}
|
|
11
|
+
export {};
|
|
12
|
+
//# sourceMappingURL=combi-keys.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"combi-keys.d.ts","sourceRoot":"","sources":["../../../src/lib/combi-keys.ts"],"names":[],"mappings":"AAEA,eAAO,MAAM,KAAK,eAAsC,CAAC;AAUzD,KAAK,OAAO,GAAG,CAAC,CAAC,EAAE,aAAa,KAAK,IAAI,CAAC;AAI1C,qBAAa,SAAS;IACX,YAAY,EAAE,KAAK,CAAC;QAAE,GAAG,EAAE,MAAM,CAAC;QAAC,EAAE,EAAE,OAAO,CAAA;KAAE,CAAC,CAAM;IAEvD,GAAG,CAAC,CAAC,SAAS,MAAM,EAAE,KAAK,EAAE,CAAC,EAAE,EAAE,EAAE,OAAO;IAM3C,QAAQ;CAwBlB"}
|
|
@@ -0,0 +1,48 @@
|
|
|
1
|
+
const osx = /Mac|iPod|iPhone|iPad/;
|
|
2
|
+
export const isMac = () => osx.test(navigator.userAgent);
|
|
3
|
+
const parseCombination = (combination) => combination.split("+").map((k) => {
|
|
4
|
+
const key = k.trim();
|
|
5
|
+
if (key === "Mod")
|
|
6
|
+
return isMac() ? "Meta" : "Control";
|
|
7
|
+
if (key === "Hyper")
|
|
8
|
+
return isMac() ? "Meta+Shift+Alt" : "Control+Shift+Alt";
|
|
9
|
+
return key;
|
|
10
|
+
});
|
|
11
|
+
const combine = (keys) => keys.map((x) => x.trim()).join("+");
|
|
12
|
+
export class CombiKeys {
|
|
13
|
+
combinations = [];
|
|
14
|
+
add(combi, fn) {
|
|
15
|
+
const key = combine(parseCombination(combi));
|
|
16
|
+
if (this.combinations.find((x) => x.key === key))
|
|
17
|
+
return;
|
|
18
|
+
this.combinations.push({ fn, key });
|
|
19
|
+
}
|
|
20
|
+
register() {
|
|
21
|
+
const controller = new AbortController();
|
|
22
|
+
const handler = (event) => {
|
|
23
|
+
const element = event.target;
|
|
24
|
+
if (element.tagName === "INPUT" || element.tagName === "TEXTAREA") {
|
|
25
|
+
const bypass = element.getAttribute("data-combikeysbypass");
|
|
26
|
+
if (bypass !== "true")
|
|
27
|
+
return;
|
|
28
|
+
}
|
|
29
|
+
const activeKeys = new Set();
|
|
30
|
+
if (event.metaKey)
|
|
31
|
+
activeKeys.add("Meta");
|
|
32
|
+
if (event.ctrlKey)
|
|
33
|
+
activeKeys.add("Control");
|
|
34
|
+
if (event.altKey)
|
|
35
|
+
activeKeys.add("Alt");
|
|
36
|
+
activeKeys.add(event.shiftKey ? event.key.toUpperCase() : event.key);
|
|
37
|
+
const action = combine(Array.from(activeKeys));
|
|
38
|
+
this.combinations.forEach((bind) => {
|
|
39
|
+
if (bind.key === action) {
|
|
40
|
+
event.preventDefault();
|
|
41
|
+
return void bind.fn(event);
|
|
42
|
+
}
|
|
43
|
+
});
|
|
44
|
+
};
|
|
45
|
+
window.addEventListener("keydown", handler, { signal: controller.signal });
|
|
46
|
+
return () => controller.abort();
|
|
47
|
+
}
|
|
48
|
+
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"fns.d.ts","sourceRoot":"","sources":["../../../src/lib/fns.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAC;AAC3C,OAAO,EAAE,GAAG,EAAE,MAAM,UAAU,CAAC;AAI/B,eAAO,MAAM,IAAI,QAAO,MAUvB,CAAC;AAUF,eAAO,MAAM,IAAI,GAAI,CAAC,SAAS,GAAG,EAAE,CAAC,SAAS,QAAQ,CAAC,CAAC,CAAC,EAAE,KAAK,CAAC,EAAE,MAAM,CAAC,oBAGzE,CAAC;AAEF,eAAO,MAAM,KAAK,eAAsC,CAAC;AAEzD,eAAO,MAAM,SAAS,GAAI,QAAQ,MAAM,WAAkD,CAAC;AAE3F,eAAO,MAAM,SAAS,GAAI,CAAC,EAAE,OAAO,CAAC,EAAE,EAAE,MAAM,MAAM,UAQpD,CAAC;AAEF,eAAO,MAAM,MAAM,GAAI,GAAG,OAAO,YAAO,CAAC;AAEzC,eAAO,MAAM,IAAI,
|
|
1
|
+
{"version":3,"file":"fns.d.ts","sourceRoot":"","sources":["../../../src/lib/fns.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAC;AAC3C,OAAO,EAAE,GAAG,EAAE,MAAM,UAAU,CAAC;AAI/B,eAAO,MAAM,IAAI,QAAO,MAUvB,CAAC;AAUF,eAAO,MAAM,IAAI,GAAI,CAAC,SAAS,GAAG,EAAE,CAAC,SAAS,QAAQ,CAAC,CAAC,CAAC,EAAE,KAAK,CAAC,EAAE,MAAM,CAAC,oBAGzE,CAAC;AAEF,eAAO,MAAM,KAAK,eAAsC,CAAC;AAEzD,eAAO,MAAM,SAAS,GAAI,QAAQ,MAAM,WAAkD,CAAC;AAE3F,eAAO,MAAM,SAAS,GAAI,CAAC,EAAE,OAAO,CAAC,EAAE,EAAE,MAAM,MAAM,UAQpD,CAAC;AAEF,eAAO,MAAM,MAAM,GAAI,GAAG,OAAO,YAAO,CAAC;AAEzC,eAAO,MAAM,IAAI,YAAY,CAAC;AAE9B,eAAO,MAAM,QAAQ,eAGpB,CAAA"}
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
import { Any, Walk } from "../types";
|
|
2
|
+
export declare const fuzzyMatch: (text: string, search: string) => number | null;
|
|
3
|
+
export type Match = "EQUAL" | "CONTAINS" | "CONTAINS_NUMBERS" | "STARTS_WITH" | "ENDS_WITH" | "FUZZY";
|
|
4
|
+
export type MatchValue<T> = {
|
|
5
|
+
match?: Match;
|
|
6
|
+
score?: number;
|
|
7
|
+
key: Walk<T>;
|
|
8
|
+
value: string | string[];
|
|
9
|
+
ifNotMatch?: (value: string, source: string) => boolean;
|
|
10
|
+
};
|
|
11
|
+
export type Matcher<T> = {
|
|
12
|
+
match?: Match;
|
|
13
|
+
key: Walk<T>;
|
|
14
|
+
};
|
|
15
|
+
export declare const fzf: <T extends Any, ID extends Walk<T>>(items: T[], id: ID, keys: MatchValue<T>[]) => T[];
|
|
16
|
+
//# sourceMappingURL=fzf.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"fzf.d.ts","sourceRoot":"","sources":["../../../src/lib/fzf.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,GAAG,EAAE,IAAI,EAAE,MAAM,UAAU,CAAC;AAErC,eAAO,MAAM,UAAU,GAAI,MAAM,MAAM,EAAE,QAAQ,MAAM,KAAG,MAAM,GAAG,IA+ClE,CAAC;AAEF,MAAM,MAAM,KAAK,GAAG,OAAO,GAAG,UAAU,GAAG,kBAAkB,GAAG,aAAa,GAAG,WAAW,GAAG,OAAO,CAAC;AAEtG,MAAM,MAAM,UAAU,CAAC,CAAC,IAAI;IACxB,KAAK,CAAC,EAAE,KAAK,CAAC;IACd,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,GAAG,EAAE,IAAI,CAAC,CAAC,CAAC,CAAC;IACb,KAAK,EAAE,MAAM,GAAG,MAAM,EAAE,CAAC;IACzB,UAAU,CAAC,EAAE,CAAC,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,KAAK,OAAO,CAAC;CAC3D,CAAC;AAEF,MAAM,MAAM,OAAO,CAAC,CAAC,IAAI;IAAE,KAAK,CAAC,EAAE,KAAK,CAAC;IAAC,GAAG,EAAE,IAAI,CAAC,CAAC,CAAC,CAAA;CAAE,CAAC;AAwDzD,eAAO,MAAM,GAAG,GAAI,CAAC,SAAS,GAAG,EAAE,EAAE,SAAS,IAAI,CAAC,CAAC,CAAC,EAAE,OAAO,CAAC,EAAE,EAAE,IAAI,EAAE,EAAE,MAAM,UAAU,CAAC,CAAC,CAAC,EAAE,QAwB/F,CAAC"}
|
|
@@ -0,0 +1,120 @@
|
|
|
1
|
+
export const fuzzyMatch = (text, search) => {
|
|
2
|
+
text = String(text).toLocaleLowerCase();
|
|
3
|
+
search = String(search).toLocaleLowerCase();
|
|
4
|
+
const firstChar = search[0];
|
|
5
|
+
const firstCharIndexes = text
|
|
6
|
+
.split("")
|
|
7
|
+
.map((char, index) => (char === firstChar ? index : false))
|
|
8
|
+
.filter((index) => index !== false);
|
|
9
|
+
if (firstCharIndexes.length === 0) {
|
|
10
|
+
return null;
|
|
11
|
+
}
|
|
12
|
+
const matchedIndexes = [];
|
|
13
|
+
firstCharIndexes.forEach((startingIndex) => {
|
|
14
|
+
let index = startingIndex + 1;
|
|
15
|
+
const indexes = [startingIndex];
|
|
16
|
+
for (let i = 1; i < search.length; i++) {
|
|
17
|
+
const letter = search[i];
|
|
18
|
+
index = text.indexOf(letter, index);
|
|
19
|
+
if (index === -1) {
|
|
20
|
+
return;
|
|
21
|
+
}
|
|
22
|
+
indexes.push(index);
|
|
23
|
+
index++;
|
|
24
|
+
}
|
|
25
|
+
matchedIndexes.push(indexes);
|
|
26
|
+
});
|
|
27
|
+
if (matchedIndexes.length === 0) {
|
|
28
|
+
return null;
|
|
29
|
+
}
|
|
30
|
+
const bestMatch = matchedIndexes.sort((a, b) => {
|
|
31
|
+
if (a.length === 1) {
|
|
32
|
+
return a[0] - b[0];
|
|
33
|
+
}
|
|
34
|
+
const aSpread = a[a.length - 1] - a[0];
|
|
35
|
+
const bSpread = b[b.length - 1] - b[0];
|
|
36
|
+
return aSpread - bSpread;
|
|
37
|
+
})[0];
|
|
38
|
+
if (text === search) {
|
|
39
|
+
return 1;
|
|
40
|
+
}
|
|
41
|
+
else if (bestMatch.length > 1) {
|
|
42
|
+
return 2 + (bestMatch[bestMatch.length - 1] - bestMatch[0]);
|
|
43
|
+
}
|
|
44
|
+
return 2 + bestMatch[0];
|
|
45
|
+
};
|
|
46
|
+
const travel = (path, regexp, obj) => {
|
|
47
|
+
const keys = path.split(regexp).filter(Boolean);
|
|
48
|
+
let res = obj;
|
|
49
|
+
for (const key of keys) {
|
|
50
|
+
if (res === null || res === undefined) {
|
|
51
|
+
return res;
|
|
52
|
+
}
|
|
53
|
+
res = res[key];
|
|
54
|
+
}
|
|
55
|
+
return res;
|
|
56
|
+
};
|
|
57
|
+
const regexPaths = { basic: /[,[\]]+?/, extend: /[,[\].]+?/ };
|
|
58
|
+
const path = (obj, path) => {
|
|
59
|
+
const result = travel(path, regexPaths.basic, obj);
|
|
60
|
+
if (result !== undefined && result !== obj)
|
|
61
|
+
return result;
|
|
62
|
+
return travel(path, regexPaths.extend, obj);
|
|
63
|
+
};
|
|
64
|
+
const onlyNumbers = (str) => str.replace(/[^0-9]/g, "");
|
|
65
|
+
const diacritics = (input) => input.normalize("NFD").replace(/[\u0300-\u036f]/g, "");
|
|
66
|
+
const strCompare = (text, value, _, match = "FUZZY") => {
|
|
67
|
+
if (match === "CONTAINS") {
|
|
68
|
+
return text.includes(value);
|
|
69
|
+
}
|
|
70
|
+
if (match === "EQUAL") {
|
|
71
|
+
return text === value;
|
|
72
|
+
}
|
|
73
|
+
if (match === "CONTAINS_NUMBERS") {
|
|
74
|
+
return onlyNumbers(text).includes(onlyNumbers(value));
|
|
75
|
+
}
|
|
76
|
+
if (match === "STARTS_WITH") {
|
|
77
|
+
return text.startsWith(value);
|
|
78
|
+
}
|
|
79
|
+
if (match === "ENDS_WITH") {
|
|
80
|
+
return text.endsWith(value);
|
|
81
|
+
}
|
|
82
|
+
if (match === "FUZZY") {
|
|
83
|
+
const r = fuzzyMatch(text, value);
|
|
84
|
+
return r !== null;
|
|
85
|
+
}
|
|
86
|
+
return false;
|
|
87
|
+
};
|
|
88
|
+
const compare = (search, value, defaultScore, match = "FUZZY") => {
|
|
89
|
+
if (Array.isArray(value)) {
|
|
90
|
+
return value.some((x) => strCompare(search, x, defaultScore, match));
|
|
91
|
+
}
|
|
92
|
+
return strCompare(search, value, defaultScore, match);
|
|
93
|
+
};
|
|
94
|
+
export const fzf = (items, id, keys) => {
|
|
95
|
+
if (keys.length === 0) {
|
|
96
|
+
return items;
|
|
97
|
+
}
|
|
98
|
+
const map = new Map();
|
|
99
|
+
const remap = keys.map((x) => ({
|
|
100
|
+
...x,
|
|
101
|
+
value: Array.isArray(x.value) ? x.value.map(diacritics) : diacritics(`${x.value}`),
|
|
102
|
+
}));
|
|
103
|
+
items.forEach((item) => {
|
|
104
|
+
const idVal = path(item, id);
|
|
105
|
+
remap.forEach((filter) => {
|
|
106
|
+
const searchValue = path(item, filter.key);
|
|
107
|
+
if (!searchValue)
|
|
108
|
+
return;
|
|
109
|
+
const search = diacritics(`${searchValue}`.toLocaleLowerCase()).trim();
|
|
110
|
+
const target = diacritics(`${filter.value}`.toLocaleLowerCase()).trim();
|
|
111
|
+
if (compare(search, target, filter.score, filter.match)) {
|
|
112
|
+
map.set(idVal, item);
|
|
113
|
+
}
|
|
114
|
+
else if (filter.ifNotMatch && filter.ifNotMatch(search, target)) {
|
|
115
|
+
map.set(idVal, item);
|
|
116
|
+
}
|
|
117
|
+
});
|
|
118
|
+
});
|
|
119
|
+
return Array.from(map.values());
|
|
120
|
+
};
|
package/dist/src/styles/dark.js
CHANGED
|
@@ -10,7 +10,7 @@ export const DARK_THEME = {
|
|
|
10
10
|
colors: {
|
|
11
11
|
foreground: "hsla(210, 50%, 98%)",
|
|
12
12
|
background: "hsla(0, 0%, 9%)",
|
|
13
|
-
muted: "hsla(
|
|
13
|
+
muted: "hsla(210, 10%, 40%)",
|
|
14
14
|
disabled: "hsla(240, 4%, 33%)",
|
|
15
15
|
emphasis: {
|
|
16
16
|
foreground: "hsla(251, 91%, 95%)",
|
package/dist/src/styles/light.js
CHANGED
|
@@ -26,7 +26,7 @@ export const LIGHT_THEME = {
|
|
|
26
26
|
},
|
|
27
27
|
secondary: {
|
|
28
28
|
background: "hsla(210, 25%, 35%)",
|
|
29
|
-
DEFAULT: "hsla(210, 25%,
|
|
29
|
+
DEFAULT: "hsla(210, 25%, 45%)",
|
|
30
30
|
subtle: "hsla(207, 29%, 39%)",
|
|
31
31
|
hover: "hsla(210, 21%, 67%)",
|
|
32
32
|
foreground: "hsla(210, 40%, 98%)",
|
package/dist/src/types.d.ts
CHANGED
|
@@ -18,4 +18,9 @@ export interface ReactComponent<P = Any> {
|
|
|
18
18
|
export type CvaVariants<T extends object> = {
|
|
19
19
|
[K in keyof T]?: keyof T[K];
|
|
20
20
|
};
|
|
21
|
+
type Irreducible = string | number | null | undefined | Date | symbol;
|
|
22
|
+
export type Walk<T> = T extends object ? {
|
|
23
|
+
[K in keyof T]: T[K] extends any[] ? K : K extends Irreducible ? T[K] extends object ? K | T[K] extends Date ? K : `${K & string}.${Walk<T[K]> & string}` : K : never;
|
|
24
|
+
}[keyof T] : never;
|
|
25
|
+
export {};
|
|
21
26
|
//# sourceMappingURL=types.d.ts.map
|
package/dist/src/types.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,EAAE,QAAQ,EAAE,GAAG,EAAE,SAAS,EAAE,cAAc,EAAE,MAAM,OAAO,CAAC;AAExE,MAAM,MAAM,KAAK,GAAG,KAAK,CAAC,SAAS,GAAG,KAAK,CAAC,YAAY,GAAG,GAAG,CAAC,OAAO,CAAC;AAEvE,MAAM,MAAM,KAAK,CAAC,CAAC,IAAI;KAAG,CAAC,IAAI,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;CAAE,GAAG,EAAE,CAAC;AAErD,MAAM,MAAM,QAAQ,CAAC,MAAM,EAAE,GAAG,IAAI,IAAI,CAAC,MAAM,EAAE,MAAM,GAAG,CAAC,GAAG,GAAG,CAAC;AAElE,MAAM,MAAM,QAAQ,CAAC,CAAC,IAAI,QAAQ,CAAC,cAAc,CAAC,CAAC,CAAC,CAAC,CAAC;AAEtD,MAAM,MAAM,IAAI,GAAG,MAAM,CAAC;AAE1B,MAAM,MAAM,aAAa,GAAG,KAAK,CAAC,WAAW,CAAC;AAE9C,MAAM,MAAM,GAAG,GAAG,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;AAEtC,MAAM,MAAM,KAAK,GAAG,MAAM,CAAC,MAAM,EAAE,KAAK,CAAC,CAAC;AAE1C,MAAM,MAAM,GAAG,CAAC,CAAC,IAAI,CAAC,GAAG,IAAI,GAAG,SAAS,CAAC;AAE1C,MAAM,WAAW,cAAc,CAAC,CAAC,GAAG,GAAG;IACnC,SAAS,CAAC,EAAE,GAAG,CAAC;IAChB,WAAW,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IAEjC,CAAC,KAAK,EAAE,CAAC,GAAG,SAAS,GAAG,OAAO,CAAC,SAAS,CAAC,CAAC;CAC9C;AAED,MAAM,MAAM,WAAW,CAAC,CAAC,SAAS,MAAM,IAAI;KACvC,CAAC,IAAI,MAAM,CAAC,CAAC,CAAC,EAAE,MAAM,CAAC,CAAC,CAAC,CAAC;CAC9B,CAAC"}
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,EAAE,QAAQ,EAAE,GAAG,EAAE,SAAS,EAAE,cAAc,EAAE,MAAM,OAAO,CAAC;AAExE,MAAM,MAAM,KAAK,GAAG,KAAK,CAAC,SAAS,GAAG,KAAK,CAAC,YAAY,GAAG,GAAG,CAAC,OAAO,CAAC;AAEvE,MAAM,MAAM,KAAK,CAAC,CAAC,IAAI;KAAG,CAAC,IAAI,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;CAAE,GAAG,EAAE,CAAC;AAErD,MAAM,MAAM,QAAQ,CAAC,MAAM,EAAE,GAAG,IAAI,IAAI,CAAC,MAAM,EAAE,MAAM,GAAG,CAAC,GAAG,GAAG,CAAC;AAElE,MAAM,MAAM,QAAQ,CAAC,CAAC,IAAI,QAAQ,CAAC,cAAc,CAAC,CAAC,CAAC,CAAC,CAAC;AAEtD,MAAM,MAAM,IAAI,GAAG,MAAM,CAAC;AAE1B,MAAM,MAAM,aAAa,GAAG,KAAK,CAAC,WAAW,CAAC;AAE9C,MAAM,MAAM,GAAG,GAAG,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;AAEtC,MAAM,MAAM,KAAK,GAAG,MAAM,CAAC,MAAM,EAAE,KAAK,CAAC,CAAC;AAE1C,MAAM,MAAM,GAAG,CAAC,CAAC,IAAI,CAAC,GAAG,IAAI,GAAG,SAAS,CAAC;AAE1C,MAAM,WAAW,cAAc,CAAC,CAAC,GAAG,GAAG;IACnC,SAAS,CAAC,EAAE,GAAG,CAAC;IAChB,WAAW,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IAEjC,CAAC,KAAK,EAAE,CAAC,GAAG,SAAS,GAAG,OAAO,CAAC,SAAS,CAAC,CAAC;CAC9C;AAED,MAAM,MAAM,WAAW,CAAC,CAAC,SAAS,MAAM,IAAI;KACvC,CAAC,IAAI,MAAM,CAAC,CAAC,CAAC,EAAE,MAAM,CAAC,CAAC,CAAC,CAAC;CAC9B,CAAC;AAEF,KAAK,WAAW,GAAG,MAAM,GAAG,MAAM,GAAG,IAAI,GAAG,SAAS,GAAG,IAAI,GAAG,MAAM,CAAC;AAEtE,MAAM,MAAM,IAAI,CAAC,CAAC,IAAI,CAAC,SAAS,MAAM,GAChC;KACK,CAAC,IAAI,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,SAAS,GAAG,EAAE,GAC5B,CAAC,GACD,CAAC,SAAS,WAAW,GACnB,CAAC,CAAC,CAAC,CAAC,SAAS,MAAM,GACf,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,SAAS,IAAI,GACjB,CAAC,GACD,GAAG,CAAC,GAAG,MAAM,IAAI,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,MAAM,EAAE,GAC1C,CAAC,GACL,KAAK;CAChB,CAAC,MAAM,CAAC,CAAC,GACV,KAAK,CAAC"}
|