@rebasepro/ui 0.4.0 → 0.5.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/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "@rebasepro/ui",
3
3
  "type": "module",
4
- "version": "0.4.0",
4
+ "version": "0.5.0",
5
5
  "description": "Awesome Firebase/Firestore-based headless open-source CMS",
6
6
  "funding": {
7
7
  "url": "https://github.com/sponsors/rebaseco"
@@ -67,11 +67,10 @@
67
67
  "fast-equals": "6.0.0",
68
68
  "lucide-react": "1.14.0",
69
69
  "markdown-it": "^14.1.1",
70
- "react-compiler-runtime": "1.0.0",
70
+ "tailwind-merge": "^2.6.1",
71
71
  "react-dropzone": "^14.4.1",
72
72
  "react-use-measure": "^2.1.7",
73
- "react-window": "^1.8.11",
74
- "tailwind-merge": "^2.6.1"
73
+ "react-window": "^1.8.11"
75
74
  },
76
75
  "peerDependencies": {
77
76
  "react": ">=19.0.0",
@@ -86,9 +86,10 @@ export const BooleanSwitchWithLabel = function BooleanSwitchWithLabel({
86
86
  )}
87
87
  onClick={disabled ? undefined : (e) => {
88
88
  if (props.allowIndeterminate) {
89
- if (value === null || value === undefined) onValueChange?.(true)
90
- else if (value) onValueChange?.(false)
91
- else onValueChange?.(null as unknown as boolean); // SAFETY: null represents indeterminate state when allowIndeterminate is true
89
+ const onChange = onValueChange as ((newValue: boolean | null) => void) | undefined;
90
+ if (value === null || value === undefined) onChange?.(true)
91
+ else if (value) onChange?.(false)
92
+ else onChange?.(null);
92
93
  } else {
93
94
  onValueChange?.(!value);
94
95
  }
@@ -1,7 +1,9 @@
1
1
  "use client";
2
- import React, { ChangeEvent, useCallback, useEffect, useRef, useState } from "react";
2
+ import React, { useCallback, useEffect, useRef, useState } from "react";
3
3
  import { TextField, TextFieldProps } from "./index";
4
4
 
5
+ type TextFieldChangeEvent = React.ChangeEvent<HTMLInputElement | HTMLTextAreaElement>;
6
+
5
7
  export function DebouncedTextField<T extends string | number>(props: TextFieldProps<T>) {
6
8
 
7
9
  const [internalValue, setInternalValue] = useState<T | string>(props.value ?? "");
@@ -24,7 +26,7 @@ export function DebouncedTextField<T extends string | number>(props: TextFieldPr
24
26
  };
25
27
  }, []);
26
28
 
27
- const flushChange = useCallback((value: T | string, event?: ChangeEvent<any>) => {
29
+ const flushChange = useCallback((value: T | string, event?: TextFieldChangeEvent) => {
28
30
  if (timerRef.current) {
29
31
  clearTimeout(timerRef.current);
30
32
  timerRef.current = undefined;
@@ -38,12 +40,12 @@ export function DebouncedTextField<T extends string | number>(props: TextFieldPr
38
40
  value: value,
39
41
  name: props.name
40
42
  }
41
- };
42
- props.onChange(e as any);
43
+ } as TextFieldChangeEvent;
44
+ props.onChange(e);
43
45
  }
44
46
  }, [props.value, props.onChange, props.name]);
45
47
 
46
- const internalOnChange = useCallback((event: ChangeEvent<any>) => {
48
+ const internalOnChange = useCallback((event: TextFieldChangeEvent) => {
47
49
  const newValue = event.target.value;
48
50
  setInternalValue(newValue);
49
51
 
@@ -58,17 +60,17 @@ export function DebouncedTextField<T extends string | number>(props: TextFieldPr
58
60
  };
59
61
 
60
62
  timerRef.current = setTimeout(() => {
61
- flushChange(newValue, eventCopy as any);
63
+ flushChange(newValue, eventCopy as TextFieldChangeEvent);
62
64
  }, 150);
63
65
  }, [flushChange]);
64
66
 
65
- const internalOnBlur = useCallback((event: React.FocusEvent<any>) => {
66
- flushChange(internalValue, event as any);
67
+ const internalOnBlur = useCallback((event: React.FocusEvent<HTMLInputElement>) => {
68
+ flushChange(internalValue, event as TextFieldChangeEvent);
67
69
  props.onBlur?.(event);
68
70
  }, [internalValue, flushChange, props.onBlur]);
69
71
 
70
72
  return <TextField {...props}
71
73
  onChange={internalOnChange}
72
74
  onBlur={internalOnBlur}
73
- value={internalValue as T}/>
75
+ value={internalValue as T}/>;
74
76
  }