@undefine-ui/design-system 2.5.0 → 2.6.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/README.md +1 -1
- package/dist/index.cjs +62 -41
- package/dist/index.cjs.map +1 -1
- package/dist/index.d.cts +46 -2
- package/dist/index.d.ts +46 -2
- package/dist/index.js +41 -21
- package/dist/index.js.map +1 -1
- package/package.json +1 -1
package/README.md
CHANGED
|
@@ -173,7 +173,7 @@ Everything is re-exported from `src/index.ts`. Key groups:
|
|
|
173
173
|
| Group | Exports |
|
|
174
174
|
| ---------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
|
|
175
175
|
| Components | `CopyButton`, `HookForm` helpers (`Form`, `Field`, `RHFSwitch`, etc.), `Icon`, `Logo`, `LoadingScreen`, `Table`, `Upload` |
|
|
176
|
-
| Hooks | `useBoolean`, `useCopyToClipboard`, `useEventListener`, `useLocalStorage`, `useResponsive`, `useSettings`, `useSetState`, `useScrollOffsetTop`
|
|
176
|
+
| Hooks | `useBoolean`, `useCopyToClipboard`, `useEventListener`, `useLocalStorage`, `useResponsive`, `useSettings`, `useSetState`, `useScrollOffsetTop`, `usePopover` |
|
|
177
177
|
| Contexts | `SettingsProvider`, `SettingsContext`, `defaultSettings`, `SettingsValueProps` |
|
|
178
178
|
| Theme | `ThemeProvider`, `createTheme`, `colorSchemes`, `components`, `palette`, `radius`, `shadows`, `customSpacing`, utilities such as `varAlpha`, `bgGradient`, `hideScrollX/Y` |
|
|
179
179
|
| Utilities | `changeCase` helpers, `formatNumber`, generic `helpers` |
|
package/dist/index.cjs
CHANGED
|
@@ -154,6 +154,7 @@ __export(index_exports, {
|
|
|
154
154
|
useCopyToClipboard: () => useCopyToClipboard,
|
|
155
155
|
useEventListener: () => useEventListener,
|
|
156
156
|
useLocalStorage: () => useLocalStorage,
|
|
157
|
+
usePopover: () => usePopover,
|
|
157
158
|
useResponsive: () => useResponsive,
|
|
158
159
|
useScrollOffSetTop: () => useScrollOffSetTop,
|
|
159
160
|
useSetState: () => useSetState,
|
|
@@ -319,8 +320,27 @@ var useBoolean = (defaultValue) => {
|
|
|
319
320
|
return memoizedValue;
|
|
320
321
|
};
|
|
321
322
|
|
|
323
|
+
// src/hooks/usePopover.ts
|
|
324
|
+
var import_react2 = require("react");
|
|
325
|
+
var usePopover = () => {
|
|
326
|
+
const [anchorEl, setAnchorEl] = (0, import_react2.useState)(null);
|
|
327
|
+
const onOpen = (0, import_react2.useCallback)((event) => {
|
|
328
|
+
setAnchorEl(event.currentTarget);
|
|
329
|
+
}, []);
|
|
330
|
+
const onClose = (0, import_react2.useCallback)(() => {
|
|
331
|
+
setAnchorEl(null);
|
|
332
|
+
}, []);
|
|
333
|
+
return {
|
|
334
|
+
open: !!anchorEl,
|
|
335
|
+
anchorEl,
|
|
336
|
+
onOpen,
|
|
337
|
+
onClose,
|
|
338
|
+
setAnchorEl
|
|
339
|
+
};
|
|
340
|
+
};
|
|
341
|
+
|
|
322
342
|
// src/hooks/useSettings.ts
|
|
323
|
-
var
|
|
343
|
+
var import_react5 = require("react");
|
|
324
344
|
|
|
325
345
|
// src/theme/styles/utils.ts
|
|
326
346
|
var stylesMode = {
|
|
@@ -566,15 +586,15 @@ var defaultSettings = {
|
|
|
566
586
|
};
|
|
567
587
|
|
|
568
588
|
// src/contexts/settings/context.tsx
|
|
569
|
-
var
|
|
589
|
+
var import_react4 = require("react");
|
|
570
590
|
|
|
571
591
|
// src/hooks/useLocalStorage.ts
|
|
572
|
-
var
|
|
592
|
+
var import_react3 = require("react");
|
|
573
593
|
var useLocalStorage = (key, initialState) => {
|
|
574
|
-
const [state, set] = (0,
|
|
594
|
+
const [state, set] = (0, import_react3.useState)(initialState);
|
|
575
595
|
const multiValue = initialState && typeof initialState === "object";
|
|
576
596
|
const canReset = !isEqual(state, initialState);
|
|
577
|
-
(0,
|
|
597
|
+
(0, import_react3.useEffect)(() => {
|
|
578
598
|
const restoredValue = getStorage(key);
|
|
579
599
|
if (restoredValue) {
|
|
580
600
|
if (multiValue) {
|
|
@@ -584,7 +604,7 @@ var useLocalStorage = (key, initialState) => {
|
|
|
584
604
|
}
|
|
585
605
|
}
|
|
586
606
|
}, [key, multiValue]);
|
|
587
|
-
const setState = (0,
|
|
607
|
+
const setState = (0, import_react3.useCallback)(
|
|
588
608
|
(updateState) => {
|
|
589
609
|
if (multiValue) {
|
|
590
610
|
set((prevValue) => {
|
|
@@ -598,7 +618,7 @@ var useLocalStorage = (key, initialState) => {
|
|
|
598
618
|
},
|
|
599
619
|
[key, multiValue]
|
|
600
620
|
);
|
|
601
|
-
const setField = (0,
|
|
621
|
+
const setField = (0, import_react3.useCallback)(
|
|
602
622
|
(name, updateValue) => {
|
|
603
623
|
if (multiValue) {
|
|
604
624
|
setState({ [name]: updateValue });
|
|
@@ -606,11 +626,11 @@ var useLocalStorage = (key, initialState) => {
|
|
|
606
626
|
},
|
|
607
627
|
[multiValue, setState]
|
|
608
628
|
);
|
|
609
|
-
const resetState = (0,
|
|
629
|
+
const resetState = (0, import_react3.useCallback)(() => {
|
|
610
630
|
set(initialState);
|
|
611
631
|
removeStorage(key);
|
|
612
632
|
}, [initialState, key]);
|
|
613
|
-
const memoizedValue = (0,
|
|
633
|
+
const memoizedValue = (0, import_react3.useMemo)(
|
|
614
634
|
() => ({
|
|
615
635
|
state,
|
|
616
636
|
setState,
|
|
@@ -670,19 +690,19 @@ var LocalStorageGetItem = (key, defaultValue = "") => {
|
|
|
670
690
|
|
|
671
691
|
// src/contexts/settings/context.tsx
|
|
672
692
|
var import_jsx_runtime = require("react/jsx-runtime");
|
|
673
|
-
var SettingsContext = (0,
|
|
693
|
+
var SettingsContext = (0, import_react4.createContext)({});
|
|
674
694
|
var SettingsConsumer = SettingsContext.Consumer;
|
|
675
695
|
var SettingsProvider = ({ children, settings }) => {
|
|
676
696
|
const localStorage2 = useLocalStorage(STORAGE_KEY, settings);
|
|
677
697
|
const values = localStorage2;
|
|
678
|
-
const [openDrawer, setOpenDrawer] = (0,
|
|
679
|
-
const onToggleDrawer = (0,
|
|
698
|
+
const [openDrawer, setOpenDrawer] = (0, import_react4.useState)(false);
|
|
699
|
+
const onToggleDrawer = (0, import_react4.useCallback)(() => {
|
|
680
700
|
setOpenDrawer((prev) => !prev);
|
|
681
701
|
}, []);
|
|
682
|
-
const onCloseDrawer = (0,
|
|
702
|
+
const onCloseDrawer = (0, import_react4.useCallback)(() => {
|
|
683
703
|
setOpenDrawer(false);
|
|
684
704
|
}, []);
|
|
685
|
-
const memoizedValue = (0,
|
|
705
|
+
const memoizedValue = (0, import_react4.useMemo)(
|
|
686
706
|
() => ({
|
|
687
707
|
...values.state,
|
|
688
708
|
canReset: values.canReset,
|
|
@@ -709,29 +729,29 @@ var SettingsProvider = ({ children, settings }) => {
|
|
|
709
729
|
|
|
710
730
|
// src/hooks/useSettings.ts
|
|
711
731
|
var useSettings = () => {
|
|
712
|
-
const context = (0,
|
|
732
|
+
const context = (0, import_react5.useContext)(SettingsContext);
|
|
713
733
|
if (!context) throw new Error("useSettings must be use inside SettingsProvider");
|
|
714
734
|
return context;
|
|
715
735
|
};
|
|
716
736
|
|
|
717
737
|
// src/hooks/useSetState.ts
|
|
718
|
-
var
|
|
738
|
+
var import_react6 = require("react");
|
|
719
739
|
var useSetState = (initialState) => {
|
|
720
|
-
const [state, set] = (0,
|
|
740
|
+
const [state, set] = (0, import_react6.useState)(initialState);
|
|
721
741
|
const canReset = !isEqual(state, initialState);
|
|
722
|
-
const setState = (0,
|
|
742
|
+
const setState = (0, import_react6.useCallback)((updateState) => {
|
|
723
743
|
set((prevValue) => ({ ...prevValue, ...updateState }));
|
|
724
744
|
}, []);
|
|
725
|
-
const setField = (0,
|
|
745
|
+
const setField = (0, import_react6.useCallback)(
|
|
726
746
|
(name, updateValue) => {
|
|
727
747
|
setState({ [name]: updateValue });
|
|
728
748
|
},
|
|
729
749
|
[setState]
|
|
730
750
|
);
|
|
731
|
-
const onResetState = (0,
|
|
751
|
+
const onResetState = (0, import_react6.useCallback)(() => {
|
|
732
752
|
set(initialState);
|
|
733
753
|
}, [initialState]);
|
|
734
|
-
const memoizedValue = (0,
|
|
754
|
+
const memoizedValue = (0, import_react6.useMemo)(
|
|
735
755
|
() => ({
|
|
736
756
|
state,
|
|
737
757
|
setState,
|
|
@@ -745,12 +765,12 @@ var useSetState = (initialState) => {
|
|
|
745
765
|
};
|
|
746
766
|
|
|
747
767
|
// src/hooks/useResponsive.ts
|
|
748
|
-
var
|
|
768
|
+
var import_react7 = require("react");
|
|
749
769
|
var import_useMediaQuery = __toESM(require("@mui/material/useMediaQuery"), 1);
|
|
750
770
|
var import_styles = require("@mui/material/styles");
|
|
751
771
|
var useResponsive = (query, start, end) => {
|
|
752
772
|
const theme = (0, import_styles.useTheme)();
|
|
753
|
-
const getQuery = (0,
|
|
773
|
+
const getQuery = (0, import_react7.useMemo)(() => {
|
|
754
774
|
switch (query) {
|
|
755
775
|
case "up":
|
|
756
776
|
return theme.breakpoints.up(start);
|
|
@@ -769,7 +789,7 @@ var useResponsive = (query, start, end) => {
|
|
|
769
789
|
};
|
|
770
790
|
var useWidth = () => {
|
|
771
791
|
const theme = (0, import_styles.useTheme)();
|
|
772
|
-
const keys = (0,
|
|
792
|
+
const keys = (0, import_react7.useMemo)(() => [...theme.breakpoints.keys].reverse(), [theme]);
|
|
773
793
|
const width = keys.reduce((output, key) => {
|
|
774
794
|
const matches = (0, import_useMediaQuery.default)(theme.breakpoints.up(key));
|
|
775
795
|
return !output && matches ? key : output;
|
|
@@ -778,19 +798,19 @@ var useWidth = () => {
|
|
|
778
798
|
};
|
|
779
799
|
|
|
780
800
|
// src/hooks/useEventListener.ts
|
|
781
|
-
var
|
|
782
|
-
var useIsomorphicLayoutEffect = typeof window !== "undefined" ?
|
|
801
|
+
var import_react8 = require("react");
|
|
802
|
+
var useIsomorphicLayoutEffect = typeof window !== "undefined" ? import_react8.useLayoutEffect : import_react8.useEffect;
|
|
783
803
|
var useEventListener = ({
|
|
784
804
|
eventName,
|
|
785
805
|
handler,
|
|
786
806
|
element,
|
|
787
807
|
options
|
|
788
808
|
}) => {
|
|
789
|
-
const savedHandler = (0,
|
|
809
|
+
const savedHandler = (0, import_react8.useRef)(handler);
|
|
790
810
|
useIsomorphicLayoutEffect(() => {
|
|
791
811
|
savedHandler.current = handler;
|
|
792
812
|
}, [handler]);
|
|
793
|
-
(0,
|
|
813
|
+
(0, import_react8.useEffect)(() => {
|
|
794
814
|
const targetElement = element?.current || window;
|
|
795
815
|
if (!(targetElement && targetElement.addEventListener)) {
|
|
796
816
|
return;
|
|
@@ -804,11 +824,11 @@ var useEventListener = ({
|
|
|
804
824
|
};
|
|
805
825
|
|
|
806
826
|
// src/hooks/useCopyToClipboard.ts
|
|
807
|
-
var
|
|
827
|
+
var import_react9 = require("react");
|
|
808
828
|
var useCopyToClipboard = () => {
|
|
809
|
-
const [copiedText, setCopiedText] = (0,
|
|
810
|
-
const [isCopied, setIsCopied] = (0,
|
|
811
|
-
const copy = (0,
|
|
829
|
+
const [copiedText, setCopiedText] = (0, import_react9.useState)("");
|
|
830
|
+
const [isCopied, setIsCopied] = (0, import_react9.useState)(false);
|
|
831
|
+
const copy = (0, import_react9.useCallback)(
|
|
812
832
|
async (text2) => {
|
|
813
833
|
if (!navigator?.clipboard) {
|
|
814
834
|
console.warn("Clipboard not supported");
|
|
@@ -828,7 +848,7 @@ var useCopyToClipboard = () => {
|
|
|
828
848
|
},
|
|
829
849
|
[setCopiedText]
|
|
830
850
|
);
|
|
831
|
-
const memoizedValue = (0,
|
|
851
|
+
const memoizedValue = (0, import_react9.useMemo)(
|
|
832
852
|
() => ({ copy, copiedText, isCopied }),
|
|
833
853
|
[copy, copiedText, isCopied]
|
|
834
854
|
);
|
|
@@ -836,11 +856,11 @@ var useCopyToClipboard = () => {
|
|
|
836
856
|
};
|
|
837
857
|
|
|
838
858
|
// src/hooks/useScrollOffsetTop.ts
|
|
839
|
-
var
|
|
859
|
+
var import_react10 = require("react");
|
|
840
860
|
var useScrollOffSetTop = (top = 0) => {
|
|
841
|
-
const elementRef = (0,
|
|
842
|
-
const [offsetTop, setOffsetTop] = (0,
|
|
843
|
-
const handleScrollChange = (0,
|
|
861
|
+
const elementRef = (0, import_react10.useRef)(null);
|
|
862
|
+
const [offsetTop, setOffsetTop] = (0, import_react10.useState)(false);
|
|
863
|
+
const handleScrollChange = (0, import_react10.useCallback)(() => {
|
|
844
864
|
const scrollHeight = Math.round(window.scrollY);
|
|
845
865
|
if (elementRef?.current) {
|
|
846
866
|
const rect = elementRef.current.getBoundingClientRect();
|
|
@@ -850,14 +870,14 @@ var useScrollOffSetTop = (top = 0) => {
|
|
|
850
870
|
setOffsetTop(scrollHeight > top);
|
|
851
871
|
}
|
|
852
872
|
}, [top]);
|
|
853
|
-
(0,
|
|
873
|
+
(0, import_react10.useEffect)(() => {
|
|
854
874
|
handleScrollChange();
|
|
855
875
|
window.addEventListener("scroll", handleScrollChange, { passive: true });
|
|
856
876
|
return () => {
|
|
857
877
|
window.removeEventListener("scroll", handleScrollChange);
|
|
858
878
|
};
|
|
859
879
|
}, [handleScrollChange]);
|
|
860
|
-
const memoizedValue = (0,
|
|
880
|
+
const memoizedValue = (0, import_react10.useMemo)(() => ({ elementRef, offsetTop }), [offsetTop]);
|
|
861
881
|
return memoizedValue;
|
|
862
882
|
};
|
|
863
883
|
|
|
@@ -6285,7 +6305,7 @@ var UploadProgress = ({ progress: progress2 = 20 }) => {
|
|
|
6285
6305
|
};
|
|
6286
6306
|
|
|
6287
6307
|
// src/components/Upload/components/MultiFilePreview.tsx
|
|
6288
|
-
var
|
|
6308
|
+
var import_react11 = require("react");
|
|
6289
6309
|
var import_Box9 = __toESM(require("@mui/material/Box"), 1);
|
|
6290
6310
|
var import_IconButton3 = __toESM(require("@mui/material/IconButton"), 1);
|
|
6291
6311
|
|
|
@@ -6353,7 +6373,7 @@ var DeleteButton = ({ sx, ...rest }) => {
|
|
|
6353
6373
|
// src/components/Upload/components/MultiFilePreview.tsx
|
|
6354
6374
|
var import_jsx_runtime48 = require("react/jsx-runtime");
|
|
6355
6375
|
var MultiFilePreview = ({ files, onRemove }) => {
|
|
6356
|
-
const scrollRef = (0,
|
|
6376
|
+
const scrollRef = (0, import_react11.useRef)(null);
|
|
6357
6377
|
const handleScroll = (direction) => {
|
|
6358
6378
|
if (scrollRef.current) {
|
|
6359
6379
|
const scrollAmount = 300;
|
|
@@ -7326,6 +7346,7 @@ var SplashScreen = ({ portal, sx, ...rest }) => {
|
|
|
7326
7346
|
useCopyToClipboard,
|
|
7327
7347
|
useEventListener,
|
|
7328
7348
|
useLocalStorage,
|
|
7349
|
+
usePopover,
|
|
7329
7350
|
useResponsive,
|
|
7330
7351
|
useScrollOffSetTop,
|
|
7331
7352
|
useSetState,
|