@himanshu-sorathiya/react-kit 1.0.32 → 1.0.34

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/ui.d.ts CHANGED
@@ -9,68 +9,5 @@ export interface FuzzyHighlighterProps {
9
9
  caseSensitive?: boolean;
10
10
  }
11
11
  export declare function FuzzyHighlighter({ text, query, className, caseSensitive, }: FuzzyHighlighterProps): React$1.JSX.Element;
12
- export type ExpansionId = string | number;
13
- export interface UseExpansionReturn<T> {
14
- expandedIds: ExpansionId[];
15
- expandedItems: T[];
16
- isExpanded: (itemOrId: ExpansionId | T) => boolean;
17
- expand: (itemOrId: ExpansionId | T) => void;
18
- collapse: (itemOrId: ExpansionId | T) => void;
19
- toggle: (itemOrId: ExpansionId | T) => void;
20
- expandAll: () => void;
21
- collapseAll: () => void;
22
- resetExpansion: () => void;
23
- replaceExpansion: (newExpandedItems: ExpansionId[] | T[]) => void;
24
- }
25
- export declare function useExpansion<T = unknown>(options?: {
26
- items?: T[];
27
- field?: string;
28
- initialExpandedIds?: ExpansionId[];
29
- multiple?: boolean;
30
- }): UseExpansionReturn<T>;
31
- export type PinId = string | number;
32
- export interface UsePinReturn<T> {
33
- pinnedIds: PinId[];
34
- pinnedItems: T[];
35
- unpinnedItems: T[];
36
- pinnedCount: number;
37
- hasPins: boolean;
38
- isAtMaxLimit: boolean;
39
- pin: (itemOrId: PinId | T) => void;
40
- unpin: (itemOrId: PinId | T) => void;
41
- togglePin: (itemOrId: PinId | T) => void;
42
- isPinned: (itemOrId: PinId | T) => boolean;
43
- clearPins: () => void;
44
- resetPins: () => void;
45
- replacePins: (newPinnedItems: PinId[] | T[]) => void;
46
- pinMultiple: (newItems: PinId[] | T[]) => void;
47
- unpinMultiple: (itemsToRemove: PinId[] | T[]) => void;
48
- }
49
- export declare function usePin<T = unknown>(options?: {
50
- items?: T[];
51
- field?: string;
52
- initialPinnedIds?: PinId[];
53
- maxPins?: number;
54
- }): UsePinReturn<T>;
55
- export type VisibilityId = number | string;
56
- export interface UseVisibilityReturn<T> {
57
- visibleIds: VisibilityId[];
58
- visibleItems: T[];
59
- hiddenItems: T[];
60
- visibleCount: number;
61
- isVisible: (itemOrId: VisibilityId | T) => boolean;
62
- show: (itemOrId: VisibilityId | T) => void;
63
- hide: (itemOrId: VisibilityId | T) => void;
64
- toggleVisibility: (itemOrId: VisibilityId | T) => void;
65
- showAll: (itemsArray?: VisibilityId[] | T[]) => void;
66
- hideAll: (itemsArray?: VisibilityId[] | T[]) => void;
67
- resetVisibility: () => void;
68
- replaceVisibility: (newVisibleItems: VisibilityId[] | T[]) => void;
69
- }
70
- export declare function useVisibility<T = unknown>(options?: {
71
- items?: T[];
72
- field?: string;
73
- initialVisibleIds?: VisibilityId[];
74
- }): UseVisibilityReturn<T>;
75
12
 
76
13
  export {};
package/dist/ui.js CHANGED
@@ -1,2 +1,2 @@
1
- import { i as e, n as t, r as n, t as r } from "./ui2.js";
2
- export { e as FuzzyHighlighter, n as useExpansion, t as usePin, r as useVisibility };
1
+ import { t as e } from "./ui2.js";
2
+ export { e as FuzzyHighlighter };
package/dist/ui2.js CHANGED
@@ -1,231 +1,25 @@
1
- import { t as e } from "./utils.js";
2
- import { useCallback as t, useMemo as n, useRef as r, useState as i } from "react";
3
- import { Fragment as a, jsx as o } from "react/jsx-runtime";
1
+ import "react";
2
+ import { Fragment as e, jsx as t } from "react/jsx-runtime";
4
3
  //#region src/ui/FuzzyHighlighter/FuzzyHighlighter.tsx
5
- function s({ text: e, query: t, className: n = "", caseSensitive: r = !1 }) {
6
- let i = String(t || "").trim(), s = String(e || "");
7
- if (!i || !s) return /* @__PURE__ */ o(a, { children: s });
8
- let c = i.split(/\s+/).filter((e) => e.length > 0);
9
- if (c.length === 0) return /* @__PURE__ */ o(a, { children: s });
10
- let l = `fuzzy-highlight ${n}`.trim(), u = [...c].sort((e, t) => t.length - e.length).map((e) => e.replace(/[.*+?^${}()|[\]\\]/g, "\\$&")), d = [...u];
4
+ function n({ text: n, query: r, className: i = "", caseSensitive: a = !1 }) {
5
+ let o = String(r || "").trim(), s = String(n || "");
6
+ if (!o || !s) return /* @__PURE__ */ t(e, { children: s });
7
+ let c = o.split(/\s+/).filter((e) => e.length > 0);
8
+ if (c.length === 0) return /* @__PURE__ */ t(e, { children: s });
9
+ let l = `fuzzy-highlight ${i}`.trim(), u = [...c].sort((e, t) => t.length - e.length).map((e) => e.replace(/[.*+?^${}()|[\]\\]/g, "\\$&")), d = [...u];
11
10
  if (u.length > 1) {
12
11
  let e = c.map((e) => e.replace(/[.*+?^${}()|[\]\\]/g, "\\$&")).join("\\s+");
13
12
  d.unshift(e);
14
13
  }
15
- if (i.length > 1 && i === i.toUpperCase() && /^[A-Z]+$/.test(i)) {
16
- let e = i.split("").map((e) => `\\b${e}`).join("[^a-z0-9]*");
14
+ if (o.length > 1 && o === o.toUpperCase() && /^[A-Z]+$/.test(o)) {
15
+ let e = o.split("").map((e) => `\\b${e}`).join("[^a-z0-9]*");
17
16
  d.unshift(e);
18
17
  }
19
- let f = `(${d.join("|")})`, p = new RegExp(f, r ? "g" : "gi");
20
- return /* @__PURE__ */ o(a, { children: s.split(p).map((e, t) => p.test(e) ? /* @__PURE__ */ o("strong", {
18
+ let f = `(${d.join("|")})`, p = new RegExp(f, a ? "g" : "gi");
19
+ return /* @__PURE__ */ t(e, { children: s.split(p).map((e, n) => p.test(e) ? /* @__PURE__ */ t("strong", {
21
20
  className: l,
22
21
  children: e
23
- }, t) : e) });
22
+ }, n) : e) });
24
23
  }
25
24
  //#endregion
26
- //#region src/ui/useExpansion/useExpansion.ts
27
- function c(a = {}) {
28
- let o = a || {}, s = n(() => Array.isArray(o.items) ? o.items : [], [o.items]), c = Array.isArray(o.initialExpandedIds) ? o.initialExpandedIds : [], l = o.field, u = !!o.multiple, d = r(c), [f, p] = i(() => new Set(c)), m = t((t) => {
29
- let n = e(t, l);
30
- return f.has(n);
31
- }, [f, l]), h = t((t) => {
32
- p((n) => {
33
- let r = e(t, l);
34
- if (n.has(r)) return n;
35
- let i = u ? new Set(n) : /* @__PURE__ */ new Set();
36
- return i.add(r), i;
37
- });
38
- }, [l, u]), g = t((t) => {
39
- p((n) => {
40
- let r = e(t, l);
41
- if (!n.has(r)) return n;
42
- let i = new Set(n);
43
- return i.delete(r), i;
44
- });
45
- }, [l]), _ = t((t) => {
46
- p((n) => {
47
- let r = e(t, l), i = u ? new Set(n) : /* @__PURE__ */ new Set();
48
- return n.has(r) ? u && i.delete(r) : i.add(r), i;
49
- });
50
- }, [l, u]), v = t(() => {
51
- if (!u) return;
52
- let t = (Array.isArray(s) ? s : []).map((t) => e(t, l));
53
- p(new Set(t));
54
- }, [
55
- s,
56
- l,
57
- u
58
- ]), y = t(() => {
59
- p(/* @__PURE__ */ new Set());
60
- }, []), b = t(() => {
61
- p(new Set(d.current));
62
- }, []), x = t((t) => {
63
- let n = (Array.isArray(t) ? t : []).map((t) => e(t, l));
64
- p(new Set(n));
65
- }, [l]), S = n(() => (Array.isArray(s) ? s : []).filter((t) => f.has(e(t, l))), [
66
- s,
67
- l,
68
- f
69
- ]);
70
- return {
71
- expandedIds: [...f],
72
- expandedItems: S,
73
- isExpanded: m,
74
- expand: h,
75
- collapse: g,
76
- toggle: _,
77
- expandAll: v,
78
- collapseAll: y,
79
- resetExpansion: b,
80
- replaceExpansion: x
81
- };
82
- }
83
- //#endregion
84
- //#region src/ui/usePin/usePin.ts
85
- function l(a = {}) {
86
- let o = a || {}, s = n(() => Array.isArray(o.items) ? o.items : [], [o.items]), c = Array.isArray(o.initialPinnedIds) ? o.initialPinnedIds : [], l = o.field, u = typeof o.maxPins == "number" && !isNaN(o.maxPins) ? Math.max(1, o.maxPins) : 2 ** 53 - 1, d = r(c), [f, p] = i(() => new Set(c)), m = t((t) => {
87
- p((n) => {
88
- if (n.size >= u) return n;
89
- let r = new Set(n), i = e(t, l);
90
- return r.add(i), r;
91
- });
92
- }, [l, u]), h = t((t) => {
93
- p((n) => {
94
- let r = new Set(n), i = e(t, l);
95
- return r.delete(i), r;
96
- });
97
- }, [l]), g = t((t) => {
98
- p((n) => {
99
- let r = new Set(n), i = e(t, l);
100
- if (r.has(i)) r.delete(i);
101
- else {
102
- if (r.size >= u) return n;
103
- r.add(i);
104
- }
105
- return r;
106
- });
107
- }, [l, u]), _ = t((t) => {
108
- let n = e(t, l);
109
- return f.has(n);
110
- }, [f, l]), v = t(() => p(/* @__PURE__ */ new Set()), []), y = t(() => p(new Set(d.current)), [d]), b = t((t) => {
111
- let n = (Array.isArray(t) ? t : []).map((t) => e(t, l));
112
- p(new Set(n.slice(0, u)));
113
- }, [l, u]), x = t((t) => {
114
- p((n) => {
115
- let r = new Set(n), i = (Array.isArray(t) ? t : []).map((t) => e(t, l));
116
- for (let e of i) {
117
- if (r.size >= u && !r.has(e)) break;
118
- r.add(e);
119
- }
120
- return r;
121
- });
122
- }, [l, u]), S = t((t) => {
123
- p((n) => {
124
- let r = new Set(n);
125
- return (Array.isArray(t) ? t : []).map((t) => e(t, l)).forEach((e) => r.delete(e)), r;
126
- });
127
- }, [l]), C = n(() => (Array.isArray(s) ? s : []).filter((t) => {
128
- let n = e(t, l);
129
- return f.has(n);
130
- }), [
131
- s,
132
- l,
133
- f
134
- ]), w = n(() => (Array.isArray(s) ? s : []).filter((t) => {
135
- let n = e(t, l);
136
- return !f.has(n);
137
- }), [
138
- s,
139
- l,
140
- f
141
- ]);
142
- return {
143
- pinnedIds: [...f],
144
- pinnedItems: C,
145
- unpinnedItems: w,
146
- pinnedCount: f.size,
147
- hasPins: f.size > 0,
148
- isAtMaxLimit: f.size >= u,
149
- pin: m,
150
- unpin: h,
151
- togglePin: g,
152
- isPinned: _,
153
- clearPins: v,
154
- resetPins: y,
155
- replacePins: b,
156
- pinMultiple: x,
157
- unpinMultiple: S
158
- };
159
- }
160
- //#endregion
161
- //#region src/ui/useVisibility/useVisibility.ts
162
- function u(a = {}) {
163
- let o = a || {}, s = n(() => Array.isArray(o.items) ? o.items : [], [o.items]), c = Array.isArray(o.initialVisibleIds) ? o.initialVisibleIds : [], l = o.field, u = r(c), [d, f] = i(() => new Set(c)), p = t((t) => {
164
- let n = e(t, l);
165
- return d.has(n);
166
- }, [d, l]), m = t((t) => {
167
- f((n) => {
168
- let r = new Set(n), i = e(t, l);
169
- return r.add(i), r;
170
- });
171
- }, [l]), h = t((t) => {
172
- f((n) => {
173
- let r = new Set(n), i = e(t, l);
174
- return r.delete(i), r;
175
- });
176
- }, [l]), g = t((t) => {
177
- f((n) => {
178
- let r = new Set(n), i = e(t, l);
179
- return r.has(i) ? r.delete(i) : r.add(i), r;
180
- });
181
- }, [l]), _ = t((t) => {
182
- f((n) => {
183
- let r = new Set(n);
184
- return (Array.isArray(t) ? t : Array.isArray(s) ? s : []).forEach((t) => {
185
- r.add(e(t, l));
186
- }), r;
187
- });
188
- }, [s, l]), v = t((t) => {
189
- f((n) => {
190
- let r = new Set(n);
191
- return (Array.isArray(t) ? t : Array.isArray(s) ? s : []).forEach((t) => {
192
- r.delete(e(t, l));
193
- }), r;
194
- });
195
- }, [s, l]), y = t(() => {
196
- f(() => new Set(u.current));
197
- }, []), b = t((t) => {
198
- let n = (Array.isArray(t) ? t : []).map((t) => e(t, l));
199
- f(() => new Set(n));
200
- }, [l]), x = n(() => (Array.isArray(s) ? s : []).filter((t) => {
201
- let n = e(t, l);
202
- return d.has(n);
203
- }), [
204
- s,
205
- l,
206
- d
207
- ]), S = n(() => (Array.isArray(s) ? s : []).filter((t) => {
208
- let n = e(t, l);
209
- return !d.has(n);
210
- }), [
211
- s,
212
- l,
213
- d
214
- ]);
215
- return {
216
- visibleIds: [...d],
217
- visibleItems: x,
218
- hiddenItems: S,
219
- visibleCount: d.size,
220
- isVisible: p,
221
- show: m,
222
- hide: h,
223
- toggleVisibility: g,
224
- showAll: _,
225
- hideAll: v,
226
- replaceVisibility: b,
227
- resetVisibility: y
228
- };
229
- }
230
- //#endregion
231
- export { s as i, l as n, c as r, u as t };
25
+ export { n as t };
package/dist/utils.js CHANGED
@@ -1,8 +1,12 @@
1
- //#region src/shared/utils.ts
1
+ //#region src/shared/stateShared/utils.ts
2
2
  function e(e, t, n) {
3
- if (typeof e != "object" || !e) return e;
4
- let r = t ?? n ?? "";
5
- return Array.isArray(r) ? r.reduce((e, t) => e?.[t], e) : r.includes(".") ? r.split(".").reduce((e, t) => e?.[t], e) : e?.[r];
3
+ if (!((typeof e == "object" || typeof e == "function") && e !== null)) return e;
4
+ let r = typeof t == "string" ? t.split(".") : Array.isArray(t) ? t : [];
5
+ if (r.length === 0) return n ?? void 0;
6
+ let i = r.reduce((e, t) => {
7
+ if ((typeof e == "object" || typeof e == "function") && e !== null) return e[t];
8
+ }, e);
9
+ return i === void 0 ? n ?? void 0 : i;
6
10
  }
7
11
  //#endregion
8
12
  export { e as t };
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@himanshu-sorathiya/react-kit",
3
- "version": "1.0.32",
3
+ "version": "1.0.34",
4
4
  "description": "An opinionated collection of react hooks, and reusable UI components.",
5
5
  "type": "module",
6
6
  "module": "./dist/index.js",