@blockle/blocks-react 2.1.0 → 2.2.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/components/feedback/Alert/Alert.css.js +15 -0
- package/dist/components/feedback/Alert/Alert.js +66 -0
- package/dist/components/feedback/Skeleton/Skeleton.css.js +23 -0
- package/dist/components/feedback/Skeleton/Skeleton.js +24 -0
- package/dist/components/feedback/Toast/Toast.css.d.ts.map +1 -1
- package/dist/components/feedback/Toast/Toast.css.js +17 -0
- package/dist/components/feedback/Toast/Toast.d.ts +0 -4
- package/dist/components/feedback/Toast/Toast.d.ts.map +1 -1
- package/dist/components/feedback/Toast/Toast.js +36 -0
- package/dist/components/feedback/Toast/ToastContext.d.ts +0 -1
- package/dist/components/feedback/Toast/ToastContext.d.ts.map +1 -1
- package/dist/components/feedback/Toast/ToastContext.js +5 -0
- package/dist/components/feedback/Toast/ToastProvider.d.ts.map +1 -1
- package/dist/components/feedback/Toast/ToastProvider.js +85 -0
- package/dist/index.d.ts +5 -0
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +10 -0
- package/package.json +6 -6
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
import { setFileScope, endFileScope } from "@vanilla-extract/css/fileScope";
|
|
2
|
+
import { layers } from "@blockle/blocks-core";
|
|
3
|
+
import { style } from "@vanilla-extract/css";
|
|
4
|
+
setFileScope("src/components/feedback/Alert/Alert.css.ts", "@blockle/blocks-react");
|
|
5
|
+
const closeButton = style({
|
|
6
|
+
"@layer": {
|
|
7
|
+
[layers.organism]: {
|
|
8
|
+
color: "currentColor"
|
|
9
|
+
}
|
|
10
|
+
}
|
|
11
|
+
});
|
|
12
|
+
endFileScope();
|
|
13
|
+
export {
|
|
14
|
+
closeButton
|
|
15
|
+
};
|
|
@@ -0,0 +1,66 @@
|
|
|
1
|
+
"use client";
|
|
2
|
+
import { jsxs, jsx } from "react/jsx-runtime";
|
|
3
|
+
import { classnames } from "@blockle/blocks-core";
|
|
4
|
+
import { useComponentStyles } from "../../../hooks/useComponentStyles/useComponentStyles.js";
|
|
5
|
+
import { Button } from "../../form/Button/Button.js";
|
|
6
|
+
import { Box } from "../../layout/Box/Box.js";
|
|
7
|
+
import { closeButton } from "./Alert.css.js";
|
|
8
|
+
const Alert = ({
|
|
9
|
+
intent = "info",
|
|
10
|
+
children,
|
|
11
|
+
open,
|
|
12
|
+
onRequestClose
|
|
13
|
+
}) => {
|
|
14
|
+
const containerClassName = useComponentStyles("alert", {
|
|
15
|
+
base: true,
|
|
16
|
+
variants: { intent }
|
|
17
|
+
});
|
|
18
|
+
if (!open) {
|
|
19
|
+
return null;
|
|
20
|
+
}
|
|
21
|
+
return /* @__PURE__ */ jsxs(
|
|
22
|
+
Box,
|
|
23
|
+
{
|
|
24
|
+
role: "alert",
|
|
25
|
+
className: classnames(containerClassName),
|
|
26
|
+
display: "flex",
|
|
27
|
+
alignItems: "center",
|
|
28
|
+
justifyContent: "space-between",
|
|
29
|
+
children: [
|
|
30
|
+
/* @__PURE__ */ jsx("div", { children }),
|
|
31
|
+
/* @__PURE__ */ jsx(
|
|
32
|
+
Button,
|
|
33
|
+
{
|
|
34
|
+
variant: "ghost",
|
|
35
|
+
size: "small",
|
|
36
|
+
className: closeButton,
|
|
37
|
+
onClick: () => onRequestClose?.(),
|
|
38
|
+
children: /* @__PURE__ */ jsxs(
|
|
39
|
+
"svg",
|
|
40
|
+
{
|
|
41
|
+
role: "presentation",
|
|
42
|
+
xmlns: "http://www.w3.org/2000/svg",
|
|
43
|
+
width: "24",
|
|
44
|
+
height: "24",
|
|
45
|
+
viewBox: "0 0 24 24",
|
|
46
|
+
fill: "none",
|
|
47
|
+
stroke: "currentColor",
|
|
48
|
+
"stroke-width": "2",
|
|
49
|
+
"stroke-linecap": "round",
|
|
50
|
+
"stroke-linejoin": "round",
|
|
51
|
+
children: [
|
|
52
|
+
/* @__PURE__ */ jsx("path", { stroke: "none", d: "M0 0h24v24H0z", fill: "none" }),
|
|
53
|
+
/* @__PURE__ */ jsx("path", { d: "M18 6l-12 12" }),
|
|
54
|
+
/* @__PURE__ */ jsx("path", { d: "M6 6l12 12" })
|
|
55
|
+
]
|
|
56
|
+
}
|
|
57
|
+
)
|
|
58
|
+
}
|
|
59
|
+
)
|
|
60
|
+
]
|
|
61
|
+
}
|
|
62
|
+
);
|
|
63
|
+
};
|
|
64
|
+
export {
|
|
65
|
+
Alert
|
|
66
|
+
};
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
import { setFileScope, endFileScope } from "@vanilla-extract/css/fileScope";
|
|
2
|
+
import { style, keyframes } from "@vanilla-extract/css";
|
|
3
|
+
setFileScope("src/components/feedback/Skeleton/Skeleton.css.ts", "@blockle/blocks-react");
|
|
4
|
+
const pulse = keyframes({
|
|
5
|
+
"0%": { opacity: 1 },
|
|
6
|
+
"50%": { opacity: 0.4 },
|
|
7
|
+
"100%": { opacity: 1 }
|
|
8
|
+
});
|
|
9
|
+
const skeleton = style({
|
|
10
|
+
minHeight: "24px",
|
|
11
|
+
"@media": {
|
|
12
|
+
"screen and (prefers-reduced-motion: no-preference)": {
|
|
13
|
+
animationName: pulse,
|
|
14
|
+
animationDuration: "3s",
|
|
15
|
+
animationTimingFunction: "ease-in-out",
|
|
16
|
+
animationIterationCount: "infinite"
|
|
17
|
+
}
|
|
18
|
+
}
|
|
19
|
+
});
|
|
20
|
+
endFileScope();
|
|
21
|
+
export {
|
|
22
|
+
skeleton
|
|
23
|
+
};
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
import { jsx } from "react/jsx-runtime";
|
|
2
|
+
import { classnames } from "@blockle/blocks-core";
|
|
3
|
+
import { Box } from "../../layout/Box/Box.js";
|
|
4
|
+
import { skeleton } from "./Skeleton.css.js";
|
|
5
|
+
const Skeleton = ({
|
|
6
|
+
height,
|
|
7
|
+
circle = false,
|
|
8
|
+
className,
|
|
9
|
+
borderRadius = 1,
|
|
10
|
+
backgroundColor = "background-300"
|
|
11
|
+
}) => {
|
|
12
|
+
return /* @__PURE__ */ jsx(
|
|
13
|
+
Box,
|
|
14
|
+
{
|
|
15
|
+
className: classnames(skeleton, className),
|
|
16
|
+
borderRadius: circle ? "full" : borderRadius,
|
|
17
|
+
backgroundColor,
|
|
18
|
+
style: { height, aspectRatio: circle ? "1 / 1" : void 0 }
|
|
19
|
+
}
|
|
20
|
+
);
|
|
21
|
+
};
|
|
22
|
+
export {
|
|
23
|
+
Skeleton
|
|
24
|
+
};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Toast.css.d.ts","sourceRoot":"","sources":["../../../../src/components/feedback/Toast/Toast.css.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"Toast.css.d.ts","sourceRoot":"","sources":["../../../../src/components/feedback/Toast/Toast.css.ts"],"names":[],"mappings":"AAOA,eAAO,MAAM,SAAS,QAKpB,CAAC"}
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
import { setFileScope, endFileScope } from "@vanilla-extract/css/fileScope";
|
|
2
|
+
import { style, keyframes } from "@vanilla-extract/css";
|
|
3
|
+
setFileScope("src/components/feedback/Toast/Toast.css.ts", "@blockle/blocks-react");
|
|
4
|
+
const toastEnter = keyframes({
|
|
5
|
+
from: { opacity: 0, scale: 0.9, translate: "0 20%" },
|
|
6
|
+
to: { opacity: 1, scale: 1, translate: "0 0" }
|
|
7
|
+
});
|
|
8
|
+
const container = style({
|
|
9
|
+
animationName: toastEnter,
|
|
10
|
+
animationDuration: "240ms",
|
|
11
|
+
animationTimingFunction: "ease-out",
|
|
12
|
+
height: "fit-content"
|
|
13
|
+
});
|
|
14
|
+
endFileScope();
|
|
15
|
+
export {
|
|
16
|
+
container
|
|
17
|
+
};
|
|
@@ -1,12 +1,8 @@
|
|
|
1
|
-
import { ComponentThemes } from '@blockle/blocks-core';
|
|
2
|
-
type ToastTheme = ComponentThemes['toast'];
|
|
3
1
|
export type ToastProps = {
|
|
4
2
|
children?: React.ReactNode;
|
|
5
3
|
duration?: number;
|
|
6
|
-
intent?: ToastTheme['variants']['intent'];
|
|
7
4
|
onRequestClose: () => void;
|
|
8
5
|
open: boolean;
|
|
9
6
|
};
|
|
10
7
|
export declare const Toast: React.FC<ToastProps>;
|
|
11
|
-
export {};
|
|
12
8
|
//# sourceMappingURL=Toast.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Toast.d.ts","sourceRoot":"","sources":["../../../../src/components/feedback/Toast/Toast.tsx"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"Toast.d.ts","sourceRoot":"","sources":["../../../../src/components/feedback/Toast/Toast.tsx"],"names":[],"mappings":"AAMA,MAAM,MAAM,UAAU,GAAG;IACvB,QAAQ,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;IAC3B,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,cAAc,EAAE,MAAM,IAAI,CAAC;IAC3B,IAAI,EAAE,OAAO,CAAC;CACf,CAAC;AAEF,eAAO,MAAM,KAAK,EAAE,KAAK,CAAC,EAAE,CAAC,UAAU,CAiCtC,CAAC"}
|
|
@@ -0,0 +1,36 @@
|
|
|
1
|
+
"use client";
|
|
2
|
+
import { useId, useContext, useEffect } from "react";
|
|
3
|
+
import { ToastContext } from "./ToastContext.js";
|
|
4
|
+
const Toast = ({
|
|
5
|
+
children,
|
|
6
|
+
duration,
|
|
7
|
+
onRequestClose,
|
|
8
|
+
open
|
|
9
|
+
}) => {
|
|
10
|
+
const toastId = useId();
|
|
11
|
+
const context = useContext(ToastContext);
|
|
12
|
+
if (!context) {
|
|
13
|
+
throw new Error("Toast must be used within a ToastProvider");
|
|
14
|
+
}
|
|
15
|
+
useEffect(() => {
|
|
16
|
+
if (open) {
|
|
17
|
+
context.add({
|
|
18
|
+
id: toastId,
|
|
19
|
+
duration,
|
|
20
|
+
children,
|
|
21
|
+
onRequestClose
|
|
22
|
+
});
|
|
23
|
+
} else {
|
|
24
|
+
context.remove(toastId);
|
|
25
|
+
}
|
|
26
|
+
}, [duration, open, children, onRequestClose, context, toastId]);
|
|
27
|
+
useEffect(() => {
|
|
28
|
+
return () => {
|
|
29
|
+
context.remove(toastId);
|
|
30
|
+
};
|
|
31
|
+
}, [context, toastId]);
|
|
32
|
+
return null;
|
|
33
|
+
};
|
|
34
|
+
export {
|
|
35
|
+
Toast
|
|
36
|
+
};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ToastContext.d.ts","sourceRoot":"","sources":["../../../../src/components/feedback/Toast/ToastContext.ts"],"names":[],"mappings":"AAAA,MAAM,MAAM,KAAK,GAAG;IAClB,EAAE,EAAE,MAAM,CAAC;IACX,
|
|
1
|
+
{"version":3,"file":"ToastContext.d.ts","sourceRoot":"","sources":["../../../../src/components/feedback/Toast/ToastContext.ts"],"names":[],"mappings":"AAAA,MAAM,MAAM,KAAK,GAAG;IAClB,EAAE,EAAE,MAAM,CAAC;IACX,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,cAAc,EAAE,MAAM,IAAI,CAAC;IAC3B,QAAQ,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;CAC5B,CAAC;AAEF,MAAM,MAAM,gBAAgB,GAAG;IAC7B,GAAG,EAAE,CAAC,KAAK,EAAE,KAAK,KAAK,IAAI,CAAC;IAC5B,MAAM,EAAE,CAAC,EAAE,EAAE,MAAM,KAAK,IAAI,CAAC;CAC9B,CAAC;AAIF,eAAO,MAAM,YAAY,kDAA+C,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ToastProvider.d.ts","sourceRoot":"","sources":["../../../../src/components/feedback/Toast/ToastProvider.tsx"],"names":[],"mappings":"AAwBA,MAAM,MAAM,kBAAkB,GAAG;IAC/B,QAAQ,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;IAC3B,QAAQ,CAAC,EACL,aAAa,GACb,eAAe,GACf,cAAc,GACd,UAAU,GACV,YAAY,GACZ,WAAW,CAAC;CACjB,CAAC;AAEF,eAAO,MAAM,aAAa,EAAE,KAAK,CAAC,EAAE,CAAC,kBAAkB,
|
|
1
|
+
{"version":3,"file":"ToastProvider.d.ts","sourceRoot":"","sources":["../../../../src/components/feedback/Toast/ToastProvider.tsx"],"names":[],"mappings":"AAwBA,MAAM,MAAM,kBAAkB,GAAG;IAC/B,QAAQ,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;IAC3B,QAAQ,CAAC,EACL,aAAa,GACb,eAAe,GACf,cAAc,GACd,UAAU,GACV,YAAY,GACZ,WAAW,CAAC;CACjB,CAAC;AAEF,eAAO,MAAM,aAAa,EAAE,KAAK,CAAC,EAAE,CAAC,kBAAkB,CAiFtD,CAAC"}
|
|
@@ -0,0 +1,85 @@
|
|
|
1
|
+
import { jsxs, Fragment, jsx } from "react/jsx-runtime";
|
|
2
|
+
import { useState, useRef, useCallback, useMemo } from "react";
|
|
3
|
+
import { flushSync } from "react-dom";
|
|
4
|
+
import { Box } from "../../layout/Box/Box.js";
|
|
5
|
+
import { Stack } from "../../layout/Stack/Stack.js";
|
|
6
|
+
import { container } from "./Toast.css.js";
|
|
7
|
+
import { ToastContext } from "./ToastContext.js";
|
|
8
|
+
function makeTransition(transition) {
|
|
9
|
+
if (document.startViewTransition) {
|
|
10
|
+
document.startViewTransition(() => {
|
|
11
|
+
flushSync(() => {
|
|
12
|
+
transition();
|
|
13
|
+
});
|
|
14
|
+
});
|
|
15
|
+
} else {
|
|
16
|
+
transition();
|
|
17
|
+
}
|
|
18
|
+
}
|
|
19
|
+
const ToastProvider = ({ children }) => {
|
|
20
|
+
const [toasts, setToasts] = useState([]);
|
|
21
|
+
const toastsRef = useRef(toasts);
|
|
22
|
+
toastsRef.current = toasts;
|
|
23
|
+
const removeToast = useCallback((id) => {
|
|
24
|
+
makeTransition(() => {
|
|
25
|
+
setToasts((prev) => prev.filter((toast) => toast.id !== id));
|
|
26
|
+
});
|
|
27
|
+
}, []);
|
|
28
|
+
const addToast = useCallback((toast) => {
|
|
29
|
+
const toasts2 = toastsRef.current;
|
|
30
|
+
const match = toasts2.findIndex(({ id }) => id === toast.id) !== -1;
|
|
31
|
+
function updateState(prev) {
|
|
32
|
+
const match2 = prev.findIndex(({ id }) => id === toast.id) !== -1;
|
|
33
|
+
if (match2) {
|
|
34
|
+
return prev.map((item) => item.id === toast.id ? toast : item);
|
|
35
|
+
}
|
|
36
|
+
return [...prev, toast];
|
|
37
|
+
}
|
|
38
|
+
if (match) {
|
|
39
|
+
setToasts(updateState);
|
|
40
|
+
return;
|
|
41
|
+
}
|
|
42
|
+
makeTransition(() => {
|
|
43
|
+
setToasts(updateState);
|
|
44
|
+
});
|
|
45
|
+
if (toast.duration) {
|
|
46
|
+
setTimeout(() => {
|
|
47
|
+
toast.onRequestClose();
|
|
48
|
+
}, toast.duration);
|
|
49
|
+
}
|
|
50
|
+
}, []);
|
|
51
|
+
const contextValue = useMemo(
|
|
52
|
+
() => ({
|
|
53
|
+
add: addToast,
|
|
54
|
+
remove: removeToast
|
|
55
|
+
}),
|
|
56
|
+
[addToast, removeToast]
|
|
57
|
+
);
|
|
58
|
+
return /* @__PURE__ */ jsxs(Fragment, { children: [
|
|
59
|
+
/* @__PURE__ */ jsx(ToastContext.Provider, { value: contextValue, children }),
|
|
60
|
+
/* @__PURE__ */ jsx(
|
|
61
|
+
Box,
|
|
62
|
+
{
|
|
63
|
+
asChild: true,
|
|
64
|
+
position: "fixed",
|
|
65
|
+
insetBlockEnd: 0,
|
|
66
|
+
insetInline: 0,
|
|
67
|
+
padding: 2,
|
|
68
|
+
children: /* @__PURE__ */ jsx(Stack, { gap: 2, children: toasts.map(({ id, children: children2 }) => /* @__PURE__ */ jsx(
|
|
69
|
+
"div",
|
|
70
|
+
{
|
|
71
|
+
className: container,
|
|
72
|
+
style: {
|
|
73
|
+
viewTransitionName: `toast-${id}`
|
|
74
|
+
},
|
|
75
|
+
children: children2
|
|
76
|
+
},
|
|
77
|
+
id
|
|
78
|
+
)) })
|
|
79
|
+
}
|
|
80
|
+
)
|
|
81
|
+
] });
|
|
82
|
+
};
|
|
83
|
+
export {
|
|
84
|
+
ToastProvider
|
|
85
|
+
};
|
package/dist/index.d.ts
CHANGED
|
@@ -2,8 +2,12 @@ export { VisuallyHidden, type VisuallyHiddenProps, } from './components/accessib
|
|
|
2
2
|
export { Divider, type DividerProps, } from './components/display/Divider/Divider.js';
|
|
3
3
|
export { createIconMask } from './components/display/Icon/createIconMask.js';
|
|
4
4
|
export { IconMask, type IconMaskProps, } from './components/display/Icon/IconMask.js';
|
|
5
|
+
export { Alert, type AlertProps, } from './components/feedback/Alert/Alert.js';
|
|
5
6
|
export { Progress, type ProgressProps, } from './components/feedback/Progress/Progress.js';
|
|
7
|
+
export { Skeleton, type SkeletonProps, } from './components/feedback/Skeleton/Skeleton.js';
|
|
6
8
|
export { Spinner, type SpinnerProps, } from './components/feedback/Spinner/Spinner.js';
|
|
9
|
+
export { Toast, type ToastProps } from './components/feedback/Toast/Toast.js';
|
|
10
|
+
export { ToastProvider, type ToastProviderProps, } from './components/feedback/Toast/ToastProvider.js';
|
|
7
11
|
export { Button, type ButtonProps } from './components/form/Button/Button.js';
|
|
8
12
|
export { Checkbox, type CheckboxProps, } from './components/form/Checkbox/Checkbox.js';
|
|
9
13
|
export { Label, type LabelProps } from './components/form/Label/Label.js';
|
|
@@ -19,6 +23,7 @@ export { Inline, type InlineProps } from './components/layout/Inline/Inline.js';
|
|
|
19
23
|
export { Stack, type StackProps } from './components/layout/Stack/Stack.js';
|
|
20
24
|
export { Link, type LinkProps } from './components/navigation/Link/Link.js';
|
|
21
25
|
export { Dialog, type DialogProps, } from './components/overlay/Dialog/Dialog.js';
|
|
26
|
+
export { Popover, type PopoverProps, } from './components/overlay/Popover/Popover.js';
|
|
22
27
|
export { Portal, type PortalProps, } from './components/overlay/Portal/Portal.js';
|
|
23
28
|
export { Tooltip, type TooltipProps, } from './components/overlay/Tooltip/Tooltip.js';
|
|
24
29
|
export { BlocksProvider, type BlocksProviderProps, } from './components/providers/BlocksProvider/BlocksProvider.js';
|
package/dist/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAGA,OAAO,EACL,cAAc,EACd,KAAK,mBAAmB,GACzB,MAAM,6DAA6D,CAAC;AAErE,OAAO,EACL,OAAO,EACP,KAAK,YAAY,GAClB,MAAM,yCAAyC,CAAC;AACjD,OAAO,EAAE,cAAc,EAAE,MAAM,6CAA6C,CAAC;AAC7E,OAAO,EACL,QAAQ,EACR,KAAK,aAAa,GACnB,MAAM,uCAAuC,CAAC;
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
|
package/dist/index.js
CHANGED
|
@@ -2,8 +2,12 @@ import { VisuallyHidden } from "./components/accessibility/VisuallyHidden/Visual
|
|
|
2
2
|
import { Divider } from "./components/display/Divider/Divider.js";
|
|
3
3
|
import { createIconMask } from "./components/display/Icon/createIconMask.js";
|
|
4
4
|
import { IconMask } from "./components/display/Icon/IconMask.js";
|
|
5
|
+
import { Alert } from "./components/feedback/Alert/Alert.js";
|
|
5
6
|
import { Progress } from "./components/feedback/Progress/Progress.js";
|
|
7
|
+
import { Skeleton } from "./components/feedback/Skeleton/Skeleton.js";
|
|
6
8
|
import { Spinner } from "./components/feedback/Spinner/Spinner.js";
|
|
9
|
+
import { Toast } from "./components/feedback/Toast/Toast.js";
|
|
10
|
+
import { ToastProvider } from "./components/feedback/Toast/ToastProvider.js";
|
|
7
11
|
import { Button } from "./components/form/Button/Button.js";
|
|
8
12
|
import { Checkbox } from "./components/form/Checkbox/Checkbox.js";
|
|
9
13
|
import { Label } from "./components/form/Label/Label.js";
|
|
@@ -19,6 +23,7 @@ import { Inline } from "./components/layout/Inline/Inline.js";
|
|
|
19
23
|
import { Stack } from "./components/layout/Stack/Stack.js";
|
|
20
24
|
import { Link } from "./components/navigation/Link/Link.js";
|
|
21
25
|
import { Dialog } from "./components/overlay/Dialog/Dialog.js";
|
|
26
|
+
import { Popover } from "./components/overlay/Popover/Popover.js";
|
|
22
27
|
import { Portal } from "./components/overlay/Portal/Portal.js";
|
|
23
28
|
import { Tooltip } from "./components/overlay/Tooltip/Tooltip.js";
|
|
24
29
|
import { BlocksProvider } from "./components/providers/BlocksProvider/BlocksProvider.js";
|
|
@@ -31,6 +36,7 @@ import { useIsomorphicLayoutEffect } from "./hooks/useIsomorphicLayoutEffect/use
|
|
|
31
36
|
import { useKeyboard } from "./hooks/useKeyboard/useKeyboard.js";
|
|
32
37
|
import { usePreventBodyScroll } from "./hooks/usePreventBodyScroll/usePreventBodyScroll.js";
|
|
33
38
|
export {
|
|
39
|
+
Alert,
|
|
34
40
|
BlocksProvider,
|
|
35
41
|
Box,
|
|
36
42
|
Button,
|
|
@@ -43,10 +49,12 @@ export {
|
|
|
43
49
|
Label,
|
|
44
50
|
Link,
|
|
45
51
|
NumericInput,
|
|
52
|
+
Popover,
|
|
46
53
|
Portal,
|
|
47
54
|
Progress,
|
|
48
55
|
Radio,
|
|
49
56
|
Select,
|
|
57
|
+
Skeleton,
|
|
50
58
|
Slider,
|
|
51
59
|
Spinner,
|
|
52
60
|
Stack,
|
|
@@ -54,6 +62,8 @@ export {
|
|
|
54
62
|
Text,
|
|
55
63
|
TextInput,
|
|
56
64
|
Textarea,
|
|
65
|
+
Toast,
|
|
66
|
+
ToastProvider,
|
|
57
67
|
Tooltip,
|
|
58
68
|
VisuallyHidden,
|
|
59
69
|
createIconMask,
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@blockle/blocks-react",
|
|
3
|
-
"version": "2.
|
|
3
|
+
"version": "2.2.0",
|
|
4
4
|
"description": "React hooks and components for Blockle",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"exports": {
|
|
@@ -31,13 +31,13 @@
|
|
|
31
31
|
},
|
|
32
32
|
"homepage": "https://github.com/Blockle/blocks#readme",
|
|
33
33
|
"dependencies": {
|
|
34
|
-
"@vanilla-extract/css": "^1.17.
|
|
34
|
+
"@vanilla-extract/css": "^1.17.4"
|
|
35
35
|
},
|
|
36
36
|
"peerDependencies": {
|
|
37
|
+
"@blockle/blocks-core": ">=1.1.0",
|
|
38
|
+
"@blockle/blocks-react-slot": ">=1.1.1",
|
|
39
|
+
"@vanilla-extract/css": "^1.17.4",
|
|
37
40
|
"react": ">=19",
|
|
38
|
-
"react-dom": ">=19"
|
|
39
|
-
"@vanilla-extract/css": ">=1.17.1",
|
|
40
|
-
"@blockle/blocks-core": ">=1.0.x",
|
|
41
|
-
"@blockle/blocks-react-slot": ">=1.1.x"
|
|
41
|
+
"react-dom": ">=19"
|
|
42
42
|
}
|
|
43
43
|
}
|