@blockle/blocks 0.20.0-alpha1 → 1.0.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 -70
- package/dist/index.cjs +21 -71
- package/dist/index.d.ts +3 -1
- package/dist/index.js +3 -0
- package/dist/index.spec.d.ts +0 -0
- package/dist/reset.cjs +1 -2
- package/dist/reset.d.ts +0 -2
- package/dist/reset.js +1 -0
- package/package.json +24 -81
- package/LICENSE +0 -21
- package/dist/components/accessibility/VisuallyHidden/VisuallyHidden.cjs +0 -19
- package/dist/components/accessibility/VisuallyHidden/VisuallyHidden.mjs +0 -20
- package/dist/components/accessibility/VisuallyHidden/index.cjs +0 -1
- package/dist/components/accessibility/VisuallyHidden/index.mjs +0 -1
- package/dist/components/accessibility/VisuallyHidden/visually-hidden.css.cjs +0 -15
- package/dist/components/accessibility/VisuallyHidden/visually-hidden.css.mjs +0 -16
- package/dist/components/display/Divider/Divider.cjs +0 -25
- package/dist/components/display/Divider/Divider.mjs +0 -26
- package/dist/components/display/Divider/divider.css.cjs +0 -15
- package/dist/components/display/Divider/divider.css.mjs +0 -16
- package/dist/components/display/Divider/index.cjs +0 -1
- package/dist/components/display/Divider/index.mjs +0 -1
- package/dist/components/feedback/Progress/Progress.cjs +0 -53
- package/dist/components/feedback/Progress/Progress.mjs +0 -54
- package/dist/components/feedback/Progress/index.cjs +0 -1
- package/dist/components/feedback/Progress/index.mjs +0 -1
- package/dist/components/feedback/Spinner/Spinner.cjs +0 -25
- package/dist/components/feedback/Spinner/Spinner.mjs +0 -26
- package/dist/components/feedback/Spinner/index.cjs +0 -1
- package/dist/components/feedback/Spinner/index.mjs +0 -1
- package/dist/components/form/Button/Button.cjs +0 -58
- package/dist/components/form/Button/Button.css.cjs +0 -15
- package/dist/components/form/Button/Button.css.mjs +0 -16
- package/dist/components/form/Button/Button.mjs +0 -59
- package/dist/components/form/Button/index.cjs +0 -1
- package/dist/components/form/Button/index.mjs +0 -1
- package/dist/components/form/Checkbox/Checkbox.cjs +0 -78
- package/dist/components/form/Checkbox/Checkbox.mjs +0 -79
- package/dist/components/form/Checkbox/checkbox.css.cjs +0 -31
- package/dist/components/form/Checkbox/checkbox.css.mjs +0 -32
- package/dist/components/form/Checkbox/index.cjs +0 -1
- package/dist/components/form/Checkbox/index.mjs +0 -1
- package/dist/components/form/Input/Input.cjs +0 -50
- package/dist/components/form/Input/Input.mjs +0 -51
- package/dist/components/form/Input/index.cjs +0 -1
- package/dist/components/form/Input/index.mjs +0 -1
- package/dist/components/form/Input/input.css.cjs +0 -20
- package/dist/components/form/Input/input.css.mjs +0 -21
- package/dist/components/form/Label/Label.cjs +0 -29
- package/dist/components/form/Label/Label.mjs +0 -30
- package/dist/components/form/Label/index.cjs +0 -1
- package/dist/components/form/Label/index.mjs +0 -1
- package/dist/components/form/Radio/Radio.cjs +0 -47
- package/dist/components/form/Radio/Radio.mjs +0 -48
- package/dist/components/form/Radio/RadioGroup.cjs +0 -1
- package/dist/components/form/Radio/RadioGroup.mjs +0 -1
- package/dist/components/form/Radio/index.cjs +0 -1
- package/dist/components/form/Radio/index.mjs +0 -1
- package/dist/components/form/Radio/radio.css.cjs +0 -31
- package/dist/components/form/Radio/radio.css.mjs +0 -32
- package/dist/components/form/Select/Select.cjs +0 -64
- package/dist/components/form/Select/Select.mjs +0 -65
- package/dist/components/form/Select/index.cjs +0 -1
- package/dist/components/form/Select/index.mjs +0 -1
- package/dist/components/form/Select/select.css.cjs +0 -37
- package/dist/components/form/Select/select.css.mjs +0 -38
- package/dist/components/form/Slider/Slider.cjs +0 -139
- package/dist/components/form/Slider/Slider.mjs +0 -142
- package/dist/components/form/Slider/index.cjs +0 -1
- package/dist/components/form/Slider/index.mjs +0 -1
- package/dist/components/form/Slider/slider.css.cjs +0 -74
- package/dist/components/form/Slider/slider.css.mjs +0 -75
- package/dist/components/form/Slider/usePointerProgress.cjs +0 -44
- package/dist/components/form/Slider/usePointerProgress.mjs +0 -45
- package/dist/components/form/Switch/Switch.cjs +0 -71
- package/dist/components/form/Switch/Switch.mjs +0 -74
- package/dist/components/form/Switch/index.cjs +0 -1
- package/dist/components/form/Switch/index.mjs +0 -1
- package/dist/components/form/Switch/switch.css.cjs +0 -26
- package/dist/components/form/Switch/switch.css.mjs +0 -27
- package/dist/components/layout/Box/Box.cjs +0 -27
- package/dist/components/layout/Box/Box.mjs +0 -28
- package/dist/components/layout/Box/index.cjs +0 -1
- package/dist/components/layout/Box/index.mjs +0 -1
- package/dist/components/layout/Inline/Inline.cjs +0 -29
- package/dist/components/layout/Inline/Inline.mjs +0 -30
- package/dist/components/layout/Inline/index.cjs +0 -1
- package/dist/components/layout/Inline/index.mjs +0 -1
- package/dist/components/layout/Stack/Stack.cjs +0 -29
- package/dist/components/layout/Stack/Stack.mjs +0 -30
- package/dist/components/layout/Stack/index.cjs +0 -1
- package/dist/components/layout/Stack/index.mjs +0 -1
- package/dist/components/navigation/Link/Link.cjs +0 -31
- package/dist/components/navigation/Link/Link.mjs +0 -32
- package/dist/components/navigation/Link/index.cjs +0 -1
- package/dist/components/navigation/Link/index.mjs +0 -1
- package/dist/components/other/BlocksProvider/BlocksProvider.cjs +0 -36
- package/dist/components/other/BlocksProvider/BlocksProvider.mjs +0 -39
- package/dist/components/other/BlocksProvider/context.cjs +0 -4
- package/dist/components/other/BlocksProvider/context.mjs +0 -7
- package/dist/components/other/BlocksProvider/index.cjs +0 -1
- package/dist/components/other/BlocksProvider/index.mjs +0 -1
- package/dist/components/other/Portal/Portal.cjs +0 -7
- package/dist/components/other/Portal/Portal.mjs +0 -8
- package/dist/components/other/Portal/index.cjs +0 -1
- package/dist/components/other/Portal/index.mjs +0 -1
- package/dist/components/overlay/Dialog/Dialog.cjs +0 -77
- package/dist/components/overlay/Dialog/Dialog.mjs +0 -80
- package/dist/components/overlay/Dialog/dialog.css.cjs +0 -21
- package/dist/components/overlay/Dialog/dialog.css.mjs +0 -22
- package/dist/components/overlay/Dialog/dialogHelper.cjs +0 -20
- package/dist/components/overlay/Dialog/dialogHelper.mjs +0 -21
- package/dist/components/overlay/Dialog/index.cjs +0 -1
- package/dist/components/overlay/Dialog/index.mjs +0 -1
- package/dist/components/overlay/Popover/Popover.cjs +0 -111
- package/dist/components/overlay/Popover/Popover.mjs +0 -112
- package/dist/components/overlay/Popover/popover-utils.cjs +0 -61
- package/dist/components/overlay/Popover/popover-utils.mjs +0 -62
- package/dist/components/overlay/Tooltip/Tooltip.cjs +0 -71
- package/dist/components/overlay/Tooltip/Tooltip.mjs +0 -74
- package/dist/components/overlay/Tooltip/index.cjs +0 -1
- package/dist/components/overlay/Tooltip/index.mjs +0 -1
- package/dist/components/typography/Heading/Heading.cjs +0 -23
- package/dist/components/typography/Heading/Heading.mjs +0 -24
- package/dist/components/typography/Heading/heading.css.cjs +0 -15
- package/dist/components/typography/Heading/heading.css.mjs +0 -16
- package/dist/components/typography/Heading/index.cjs +0 -1
- package/dist/components/typography/Heading/index.mjs +0 -1
- package/dist/components/typography/Text/Text.cjs +0 -20
- package/dist/components/typography/Text/Text.mjs +0 -21
- package/dist/components/typography/Text/index.cjs +0 -1
- package/dist/components/typography/Text/index.mjs +0 -1
- package/dist/components/typography/Text/text.css.cjs +0 -15
- package/dist/components/typography/Text/text.css.mjs +0 -16
- package/dist/hooks/useClickOutside/useClickOutside.cjs +0 -22
- package/dist/hooks/useClickOutside/useClickOutside.mjs +0 -23
- package/dist/hooks/useControlledValue/useControlledValue.cjs +0 -31
- package/dist/hooks/useControlledValue/useControlledValue.mjs +0 -32
- package/dist/hooks/useIsomorphicLayoutEffect/index.cjs +0 -1
- package/dist/hooks/useIsomorphicLayoutEffect/index.mjs +0 -1
- package/dist/hooks/useIsomorphicLayoutEffect/useIsomorphicLayoutEffect.cjs +0 -4
- package/dist/hooks/useIsomorphicLayoutEffect/useIsomorphicLayoutEffect.mjs +0 -7
- package/dist/hooks/useKeyboard/index.cjs +0 -1
- package/dist/hooks/useKeyboard/index.mjs +0 -1
- package/dist/hooks/useKeyboard/useKeyboard.cjs +0 -19
- package/dist/hooks/useKeyboard/useKeyboard.mjs +0 -22
- package/dist/hooks/useLayer/index.cjs +0 -1
- package/dist/hooks/useLayer/index.mjs +0 -1
- package/dist/hooks/useLayer/useLayer.cjs +0 -25
- package/dist/hooks/useLayer/useLayer.mjs +0 -26
- package/dist/hooks/usePreventBodyScroll/index.cjs +0 -1
- package/dist/hooks/usePreventBodyScroll/index.mjs +0 -1
- package/dist/hooks/usePreventBodyScroll/usePreventBodyScroll.cjs +0 -29
- package/dist/hooks/usePreventBodyScroll/usePreventBodyScroll.mjs +0 -30
- package/dist/hooks/useRestoreFocus/index.cjs +0 -1
- package/dist/hooks/useRestoreFocus/index.mjs +0 -1
- package/dist/hooks/useRestoreFocus/useRestoreFocus.cjs +0 -17
- package/dist/hooks/useRestoreFocus/useRestoreFocus.mjs +0 -18
- package/dist/hooks/useRootAriaHidden/index.cjs +0 -1
- package/dist/hooks/useRootAriaHidden/index.mjs +0 -1
- package/dist/hooks/useRootAriaHidden/useRootAriaHidden.cjs +0 -11
- package/dist/hooks/useRootAriaHidden/useRootAriaHidden.mjs +0 -12
- package/dist/hooks/useVisibilityState/index.cjs +0 -1
- package/dist/hooks/useVisibilityState/index.mjs +0 -1
- package/dist/hooks/useVisibilityState/useVisibilityState.cjs +0 -15
- package/dist/hooks/useVisibilityState/useVisibilityState.mjs +0 -16
- package/dist/index.d.mts +0 -1
- package/dist/index.mjs +0 -73
- package/dist/lib/asChildRenderer/createAsChildTemplate.cjs +0 -72
- package/dist/lib/asChildRenderer/createAsChildTemplate.mjs +0 -73
- package/dist/lib/css/atoms/atomicProperties.cjs +0 -89
- package/dist/lib/css/atoms/atomicProperties.mjs +0 -90
- package/dist/lib/css/atoms/atoms.cjs +0 -2
- package/dist/lib/css/atoms/atoms.mjs +0 -1
- package/dist/lib/css/atoms/breakpoints.cjs +0 -13
- package/dist/lib/css/atoms/breakpoints.mjs +0 -14
- package/dist/lib/css/atoms/index.cjs +0 -2
- package/dist/lib/css/atoms/index.mjs +0 -1
- package/dist/lib/css/atoms/sprinkles.css.cjs +0 -38
- package/dist/lib/css/atoms/sprinkles.css.mjs +0 -39
- package/dist/lib/css/flexbox/flexbox.cjs +0 -16
- package/dist/lib/css/flexbox/flexbox.mjs +0 -17
- package/dist/lib/css/layers/layers.css.cjs +0 -7
- package/dist/lib/css/layers/layers.css.mjs +0 -8
- package/dist/lib/css/reset/reset.css.cjs +0 -38
- package/dist/lib/css/reset/reset.css.mjs +0 -37
- package/dist/lib/css/style/style.cjs +0 -28
- package/dist/lib/css/style/style.mjs +0 -29
- package/dist/lib/css/utils/cssUtils.cjs +0 -5
- package/dist/lib/css/utils/cssUtils.mjs +0 -6
- package/dist/lib/react/mergeProps.cjs +0 -42
- package/dist/lib/react/mergeProps.mjs +0 -43
- package/dist/lib/react/refs.cjs +0 -16
- package/dist/lib/react/refs.mjs +0 -17
- package/dist/lib/theme/makeComponentTheme.cjs +0 -5
- package/dist/lib/theme/makeComponentTheme.mjs +0 -6
- package/dist/lib/theme/makeTheme.cjs +0 -12
- package/dist/lib/theme/makeTheme.mjs +0 -13
- package/dist/lib/theme/makeVanillaTheme.cjs +0 -19
- package/dist/lib/theme/makeVanillaTheme.mjs +0 -20
- package/dist/lib/theme/store/theme.cjs +0 -92
- package/dist/lib/theme/store/theme.mjs +0 -93
- package/dist/lib/theme/tokens.cjs +0 -81
- package/dist/lib/theme/tokens.mjs +0 -82
- package/dist/lib/theme/vars.css.cjs +0 -9
- package/dist/lib/theme/vars.css.mjs +0 -10
- package/dist/lib/utils/atom-props.cjs +0 -15
- package/dist/lib/utils/atom-props.mjs +0 -16
- package/dist/lib/utils/classnames.cjs +0 -6
- package/dist/lib/utils/classnames.mjs +0 -7
- package/dist/lib/utils/dom.cjs +0 -12
- package/dist/lib/utils/dom.mjs +0 -13
- package/dist/lib/utils/math.cjs +0 -12
- package/dist/lib/utils/math.mjs +0 -13
- package/dist/momotaro.chunk.d.ts +0 -906
- package/dist/reset.d.mts +0 -2
- package/dist/reset.mjs +0 -2
- package/dist/themes/momotaro/components/button.css.cjs +0 -103
- package/dist/themes/momotaro/components/button.css.mjs +0 -104
- package/dist/themes/momotaro/components/checkbox.css.cjs +0 -59
- package/dist/themes/momotaro/components/checkbox.css.mjs +0 -60
- package/dist/themes/momotaro/components/dialog.css.cjs +0 -78
- package/dist/themes/momotaro/components/dialog.css.mjs +0 -79
- package/dist/themes/momotaro/components/divider.css.cjs +0 -15
- package/dist/themes/momotaro/components/divider.css.mjs +0 -16
- package/dist/themes/momotaro/components/helpers.css.cjs +0 -43
- package/dist/themes/momotaro/components/helpers.css.mjs +0 -44
- package/dist/themes/momotaro/components/index.cjs +0 -34
- package/dist/themes/momotaro/components/index.mjs +0 -35
- package/dist/themes/momotaro/components/input.css.cjs +0 -41
- package/dist/themes/momotaro/components/input.css.mjs +0 -42
- package/dist/themes/momotaro/components/label.css.cjs +0 -33
- package/dist/themes/momotaro/components/label.css.mjs +0 -34
- package/dist/themes/momotaro/components/link.css.cjs +0 -53
- package/dist/themes/momotaro/components/link.css.mjs +0 -54
- package/dist/themes/momotaro/components/popover.css.cjs +0 -32
- package/dist/themes/momotaro/components/popover.css.mjs +0 -33
- package/dist/themes/momotaro/components/progress.css.cjs +0 -55
- package/dist/themes/momotaro/components/progress.css.mjs +0 -56
- package/dist/themes/momotaro/components/radio.css.cjs +0 -60
- package/dist/themes/momotaro/components/radio.css.mjs +0 -61
- package/dist/themes/momotaro/components/select.css.cjs +0 -44
- package/dist/themes/momotaro/components/select.css.mjs +0 -45
- package/dist/themes/momotaro/components/slider.css.cjs +0 -89
- package/dist/themes/momotaro/components/slider.css.mjs +0 -90
- package/dist/themes/momotaro/components/spinner.css.cjs +0 -43
- package/dist/themes/momotaro/components/spinner.css.mjs +0 -44
- package/dist/themes/momotaro/components/switch.css.cjs +0 -58
- package/dist/themes/momotaro/components/switch.css.mjs +0 -59
- package/dist/themes/momotaro/components/tooltip.css.cjs +0 -30
- package/dist/themes/momotaro/components/tooltip.css.mjs +0 -31
- package/dist/themes/momotaro/components/transitions.cjs +0 -3
- package/dist/themes/momotaro/components/transitions.mjs +0 -4
- package/dist/themes/momotaro/index.cjs +0 -2
- package/dist/themes/momotaro/index.mjs +0 -1
- package/dist/themes/momotaro/momotaro.css.cjs +0 -13
- package/dist/themes/momotaro/momotaro.css.mjs +0 -14
- package/dist/themes/momotaro/tokens.css.cjs +0 -85
- package/dist/themes/momotaro/tokens.css.mjs +0 -86
- package/dist/themes/momotaro.cjs +0 -4
- package/dist/themes/momotaro.d.mts +0 -1
- package/dist/themes/momotaro.d.ts +0 -1
- package/dist/themes/momotaro.mjs +0 -4
- package/reset/index.d.ts +0 -1
- package/reset/package.json +0 -5
- package/themes/momotaro/index.d.ts +0 -1
- package/themes/momotaro/package.json +0 -5
|
@@ -1,32 +0,0 @@
|
|
|
1
|
-
import { jsx } from "react/jsx-runtime";
|
|
2
|
-
import { createAsChildTemplate } from "../../../lib/asChildRenderer/createAsChildTemplate.mjs";
|
|
3
|
-
import { getComponentStyles } from "../../../lib/theme/store/theme.mjs";
|
|
4
|
-
import { classnames } from "../../../lib/utils/classnames.mjs";
|
|
5
|
-
const { Template, Slot } = createAsChildTemplate("a");
|
|
6
|
-
const Link = ({
|
|
7
|
-
asChild,
|
|
8
|
-
children,
|
|
9
|
-
className,
|
|
10
|
-
ref,
|
|
11
|
-
underline,
|
|
12
|
-
variant,
|
|
13
|
-
...restProps
|
|
14
|
-
}) => {
|
|
15
|
-
const linkClassName = getComponentStyles("link", {
|
|
16
|
-
base: true,
|
|
17
|
-
variants: { variant, underline }
|
|
18
|
-
});
|
|
19
|
-
return /* @__PURE__ */ jsx(
|
|
20
|
-
Template,
|
|
21
|
-
{
|
|
22
|
-
asChild,
|
|
23
|
-
ref,
|
|
24
|
-
className: classnames(className, linkClassName),
|
|
25
|
-
...restProps,
|
|
26
|
-
children: /* @__PURE__ */ jsx(Slot, { children })
|
|
27
|
-
}
|
|
28
|
-
);
|
|
29
|
-
};
|
|
30
|
-
export {
|
|
31
|
-
Link
|
|
32
|
-
};
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
|
|
@@ -1,36 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
const jsxRuntime = require("react/jsx-runtime");
|
|
3
|
-
const react = require("react");
|
|
4
|
-
const lib_css_atoms_sprinkles_css_cjs = require("../../../lib/css/atoms/sprinkles.css.cjs");
|
|
5
|
-
const lib_theme_store_theme_cjs = require("../../../lib/theme/store/theme.cjs");
|
|
6
|
-
const lib_utils_classnames_cjs = require("../../../lib/utils/classnames.cjs");
|
|
7
|
-
const components_other_BlocksProvider_context_cjs = require("./context.cjs");
|
|
8
|
-
const BlocksProvider = ({
|
|
9
|
-
children,
|
|
10
|
-
theme,
|
|
11
|
-
className,
|
|
12
|
-
...restProps
|
|
13
|
-
}) => {
|
|
14
|
-
const [ariaHidden, setAriaHidden] = react.useState(false);
|
|
15
|
-
const contextValue = react.useMemo(
|
|
16
|
-
() => ({
|
|
17
|
-
setAriaHidden
|
|
18
|
-
}),
|
|
19
|
-
[]
|
|
20
|
-
);
|
|
21
|
-
lib_theme_store_theme_cjs.setTheme(theme);
|
|
22
|
-
return /* @__PURE__ */ jsxRuntime.jsx(components_other_BlocksProvider_context_cjs.BlocksProviderContext, { value: contextValue, children: /* @__PURE__ */ jsxRuntime.jsx(
|
|
23
|
-
"div",
|
|
24
|
-
{
|
|
25
|
-
className: lib_utils_classnames_cjs.classnames(
|
|
26
|
-
theme.vars,
|
|
27
|
-
lib_css_atoms_sprinkles_css_cjs.atoms({ fontFamily: "primary" }),
|
|
28
|
-
className
|
|
29
|
-
),
|
|
30
|
-
inert: ariaHidden ? true : void 0,
|
|
31
|
-
...restProps,
|
|
32
|
-
children
|
|
33
|
-
}
|
|
34
|
-
) });
|
|
35
|
-
};
|
|
36
|
-
exports.BlocksProvider = BlocksProvider;
|
|
@@ -1,39 +0,0 @@
|
|
|
1
|
-
'use client';
|
|
2
|
-
|
|
3
|
-
import { jsx } from "react/jsx-runtime";
|
|
4
|
-
import { useState, useMemo } from "react";
|
|
5
|
-
import { atoms } from "../../../lib/css/atoms/sprinkles.css.mjs";
|
|
6
|
-
import { setTheme } from "../../../lib/theme/store/theme.mjs";
|
|
7
|
-
import { classnames } from "../../../lib/utils/classnames.mjs";
|
|
8
|
-
import { BlocksProviderContext } from "./context.mjs";
|
|
9
|
-
const BlocksProvider = ({
|
|
10
|
-
children,
|
|
11
|
-
theme,
|
|
12
|
-
className,
|
|
13
|
-
...restProps
|
|
14
|
-
}) => {
|
|
15
|
-
const [ariaHidden, setAriaHidden] = useState(false);
|
|
16
|
-
const contextValue = useMemo(
|
|
17
|
-
() => ({
|
|
18
|
-
setAriaHidden
|
|
19
|
-
}),
|
|
20
|
-
[]
|
|
21
|
-
);
|
|
22
|
-
setTheme(theme);
|
|
23
|
-
return /* @__PURE__ */ jsx(BlocksProviderContext, { value: contextValue, children: /* @__PURE__ */ jsx(
|
|
24
|
-
"div",
|
|
25
|
-
{
|
|
26
|
-
className: classnames(
|
|
27
|
-
theme.vars,
|
|
28
|
-
atoms({ fontFamily: "primary" }),
|
|
29
|
-
className
|
|
30
|
-
),
|
|
31
|
-
inert: ariaHidden ? true : void 0,
|
|
32
|
-
...restProps,
|
|
33
|
-
children
|
|
34
|
-
}
|
|
35
|
-
) });
|
|
36
|
-
};
|
|
37
|
-
export {
|
|
38
|
-
BlocksProvider
|
|
39
|
-
};
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
|
|
@@ -1,7 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
const jsxRuntime = require("react/jsx-runtime");
|
|
3
|
-
const reactDom = require("react-dom");
|
|
4
|
-
const Portal = ({ children, container }) => {
|
|
5
|
-
return reactDom.createPortal(/* @__PURE__ */ jsxRuntime.jsx("div", { children }), container || document.body);
|
|
6
|
-
};
|
|
7
|
-
exports.Portal = Portal;
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
|
|
@@ -1,77 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
const jsxRuntime = require("react/jsx-runtime");
|
|
3
|
-
const react = require("react");
|
|
4
|
-
const hooks_useClickOutside_useClickOutside_cjs = require("../../../hooks/useClickOutside/useClickOutside.cjs");
|
|
5
|
-
const lib_theme_store_theme_cjs = require("../../../lib/theme/store/theme.cjs");
|
|
6
|
-
const lib_utils_classnames_cjs = require("../../../lib/utils/classnames.cjs");
|
|
7
|
-
const lib_utils_dom_cjs = require("../../../lib/utils/dom.cjs");
|
|
8
|
-
const components_overlay_Dialog_dialog_css_cjs = require("./dialog.css.cjs");
|
|
9
|
-
const components_overlay_Dialog_dialogHelper_cjs = require("./dialogHelper.cjs");
|
|
10
|
-
const hooks_useRestoreFocus_useRestoreFocus_cjs = require("../../../hooks/useRestoreFocus/useRestoreFocus.cjs");
|
|
11
|
-
const hooks_usePreventBodyScroll_usePreventBodyScroll_cjs = require("../../../hooks/usePreventBodyScroll/usePreventBodyScroll.cjs");
|
|
12
|
-
const hooks_useKeyboard_useKeyboard_cjs = require("../../../hooks/useKeyboard/useKeyboard.cjs");
|
|
13
|
-
const hooks_useIsomorphicLayoutEffect_useIsomorphicLayoutEffect_cjs = require("../../../hooks/useIsomorphicLayoutEffect/useIsomorphicLayoutEffect.cjs");
|
|
14
|
-
const Dialog = ({
|
|
15
|
-
children,
|
|
16
|
-
open,
|
|
17
|
-
className,
|
|
18
|
-
onRequestClose,
|
|
19
|
-
size,
|
|
20
|
-
...restProps
|
|
21
|
-
}) => {
|
|
22
|
-
const dialogClassName = lib_theme_store_theme_cjs.getComponentStyles("dialog", {
|
|
23
|
-
dialog: true,
|
|
24
|
-
variants: { size }
|
|
25
|
-
});
|
|
26
|
-
const dialogRef = react.useRef(null);
|
|
27
|
-
const [enabled, setEnabled] = react.useState(true);
|
|
28
|
-
const [visible, setVisible] = react.useState(open);
|
|
29
|
-
hooks_useRestoreFocus_useRestoreFocus_cjs.useRestoreFocus(open);
|
|
30
|
-
const isNested = components_overlay_Dialog_dialogHelper_cjs.useNestedDialog(open);
|
|
31
|
-
hooks_usePreventBodyScroll_usePreventBodyScroll_cjs.usePreventBodyScroll(open && !isNested);
|
|
32
|
-
const onEscape = react.useCallback(
|
|
33
|
-
(event) => {
|
|
34
|
-
event.preventDefault();
|
|
35
|
-
onRequestClose();
|
|
36
|
-
},
|
|
37
|
-
[onRequestClose]
|
|
38
|
-
);
|
|
39
|
-
hooks_useKeyboard_useKeyboard_cjs.useKeyboard("Escape", onEscape, { enabled: open && enabled });
|
|
40
|
-
hooks_useClickOutside_useClickOutside_cjs.useClickOutside(dialogRef, onRequestClose, { enabled: open && enabled });
|
|
41
|
-
hooks_useIsomorphicLayoutEffect_useIsomorphicLayoutEffect_cjs.useIsomorphicLayoutEffect(() => {
|
|
42
|
-
var _a, _b;
|
|
43
|
-
if (open && visible) {
|
|
44
|
-
(_a = dialogRef.current) == null ? void 0 : _a.showModal();
|
|
45
|
-
} else if (open) {
|
|
46
|
-
setVisible(true);
|
|
47
|
-
} else {
|
|
48
|
-
if (!lib_utils_dom_cjs.hasAnimationDuration(dialogRef.current)) {
|
|
49
|
-
setVisible(false);
|
|
50
|
-
}
|
|
51
|
-
(_b = dialogRef.current) == null ? void 0 : _b.close();
|
|
52
|
-
}
|
|
53
|
-
}, [open, visible]);
|
|
54
|
-
const onAnimationEnd = react.useCallback(() => {
|
|
55
|
-
if (!open) {
|
|
56
|
-
setVisible(false);
|
|
57
|
-
}
|
|
58
|
-
}, [open]);
|
|
59
|
-
if (!visible) {
|
|
60
|
-
return null;
|
|
61
|
-
}
|
|
62
|
-
const dataOpen = typeof window === "undefined" && open ? true : void 0;
|
|
63
|
-
return /* @__PURE__ */ jsxRuntime.jsx(jsxRuntime.Fragment, { children: /* @__PURE__ */ jsxRuntime.jsx(components_overlay_Dialog_dialogHelper_cjs.DialogContext.Provider, { value: { setEnabled }, children: /* @__PURE__ */ jsxRuntime.jsx(
|
|
64
|
-
"dialog",
|
|
65
|
-
{
|
|
66
|
-
ref: dialogRef,
|
|
67
|
-
"aria-modal": "true",
|
|
68
|
-
open: dataOpen,
|
|
69
|
-
className: lib_utils_classnames_cjs.classnames(components_overlay_Dialog_dialog_css_cjs.dialog, dialogClassName, className),
|
|
70
|
-
onAnimationEnd,
|
|
71
|
-
onTransitionEnd: onAnimationEnd,
|
|
72
|
-
...restProps,
|
|
73
|
-
children
|
|
74
|
-
}
|
|
75
|
-
) }) });
|
|
76
|
-
};
|
|
77
|
-
exports.Dialog = Dialog;
|
|
@@ -1,80 +0,0 @@
|
|
|
1
|
-
'use client';
|
|
2
|
-
|
|
3
|
-
import { jsx, Fragment } from "react/jsx-runtime";
|
|
4
|
-
import { useRef, useState, useCallback } from "react";
|
|
5
|
-
import { useClickOutside } from "../../../hooks/useClickOutside/useClickOutside.mjs";
|
|
6
|
-
import { getComponentStyles } from "../../../lib/theme/store/theme.mjs";
|
|
7
|
-
import { classnames } from "../../../lib/utils/classnames.mjs";
|
|
8
|
-
import { hasAnimationDuration } from "../../../lib/utils/dom.mjs";
|
|
9
|
-
import { dialog } from "./dialog.css.mjs";
|
|
10
|
-
import { useNestedDialog, DialogContext } from "./dialogHelper.mjs";
|
|
11
|
-
import { useRestoreFocus } from "../../../hooks/useRestoreFocus/useRestoreFocus.mjs";
|
|
12
|
-
import { usePreventBodyScroll } from "../../../hooks/usePreventBodyScroll/usePreventBodyScroll.mjs";
|
|
13
|
-
import { useKeyboard } from "../../../hooks/useKeyboard/useKeyboard.mjs";
|
|
14
|
-
import { useIsomorphicLayoutEffect } from "../../../hooks/useIsomorphicLayoutEffect/useIsomorphicLayoutEffect.mjs";
|
|
15
|
-
const Dialog = ({
|
|
16
|
-
children,
|
|
17
|
-
open,
|
|
18
|
-
className,
|
|
19
|
-
onRequestClose,
|
|
20
|
-
size,
|
|
21
|
-
...restProps
|
|
22
|
-
}) => {
|
|
23
|
-
const dialogClassName = getComponentStyles("dialog", {
|
|
24
|
-
dialog: true,
|
|
25
|
-
variants: { size }
|
|
26
|
-
});
|
|
27
|
-
const dialogRef = useRef(null);
|
|
28
|
-
const [enabled, setEnabled] = useState(true);
|
|
29
|
-
const [visible, setVisible] = useState(open);
|
|
30
|
-
useRestoreFocus(open);
|
|
31
|
-
const isNested = useNestedDialog(open);
|
|
32
|
-
usePreventBodyScroll(open && !isNested);
|
|
33
|
-
const onEscape = useCallback(
|
|
34
|
-
(event) => {
|
|
35
|
-
event.preventDefault();
|
|
36
|
-
onRequestClose();
|
|
37
|
-
},
|
|
38
|
-
[onRequestClose]
|
|
39
|
-
);
|
|
40
|
-
useKeyboard("Escape", onEscape, { enabled: open && enabled });
|
|
41
|
-
useClickOutside(dialogRef, onRequestClose, { enabled: open && enabled });
|
|
42
|
-
useIsomorphicLayoutEffect(() => {
|
|
43
|
-
var _a, _b;
|
|
44
|
-
if (open && visible) {
|
|
45
|
-
(_a = dialogRef.current) == null ? void 0 : _a.showModal();
|
|
46
|
-
} else if (open) {
|
|
47
|
-
setVisible(true);
|
|
48
|
-
} else {
|
|
49
|
-
if (!hasAnimationDuration(dialogRef.current)) {
|
|
50
|
-
setVisible(false);
|
|
51
|
-
}
|
|
52
|
-
(_b = dialogRef.current) == null ? void 0 : _b.close();
|
|
53
|
-
}
|
|
54
|
-
}, [open, visible]);
|
|
55
|
-
const onAnimationEnd = useCallback(() => {
|
|
56
|
-
if (!open) {
|
|
57
|
-
setVisible(false);
|
|
58
|
-
}
|
|
59
|
-
}, [open]);
|
|
60
|
-
if (!visible) {
|
|
61
|
-
return null;
|
|
62
|
-
}
|
|
63
|
-
const dataOpen = typeof window === "undefined" && open ? true : void 0;
|
|
64
|
-
return /* @__PURE__ */ jsx(Fragment, { children: /* @__PURE__ */ jsx(DialogContext.Provider, { value: { setEnabled }, children: /* @__PURE__ */ jsx(
|
|
65
|
-
"dialog",
|
|
66
|
-
{
|
|
67
|
-
ref: dialogRef,
|
|
68
|
-
"aria-modal": "true",
|
|
69
|
-
open: dataOpen,
|
|
70
|
-
className: classnames(dialog, dialogClassName, className),
|
|
71
|
-
onAnimationEnd,
|
|
72
|
-
onTransitionEnd: onAnimationEnd,
|
|
73
|
-
...restProps,
|
|
74
|
-
children
|
|
75
|
-
}
|
|
76
|
-
) }) });
|
|
77
|
-
};
|
|
78
|
-
export {
|
|
79
|
-
Dialog
|
|
80
|
-
};
|
|
@@ -1,21 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
const fileScope = require("@vanilla-extract/css/fileScope");
|
|
3
|
-
const css = require("@vanilla-extract/css");
|
|
4
|
-
const lib_css_layers_layers_css_cjs = require("../../../lib/css/layers/layers.css.cjs");
|
|
5
|
-
fileScope.setFileScope("src/components/overlay/Dialog/dialog.css.ts", "@blockle/blocks");
|
|
6
|
-
const dialog = css.style({
|
|
7
|
-
"@layer": {
|
|
8
|
-
[lib_css_layers_layers_css_cjs.blocksLayer]: {
|
|
9
|
-
position: "fixed",
|
|
10
|
-
inset: 0,
|
|
11
|
-
border: "none",
|
|
12
|
-
"::backdrop": {
|
|
13
|
-
// Remove pointer event to prevent clicks on the backdrop
|
|
14
|
-
// and make it easier to check if the click was outside the dialog
|
|
15
|
-
pointerEvents: "none"
|
|
16
|
-
}
|
|
17
|
-
}
|
|
18
|
-
}
|
|
19
|
-
}, "dialog");
|
|
20
|
-
fileScope.endFileScope();
|
|
21
|
-
exports.dialog = dialog;
|
|
@@ -1,22 +0,0 @@
|
|
|
1
|
-
import { setFileScope, endFileScope } from "@vanilla-extract/css/fileScope";
|
|
2
|
-
import { style } from "@vanilla-extract/css";
|
|
3
|
-
import { blocksLayer } from "../../../lib/css/layers/layers.css.mjs";
|
|
4
|
-
setFileScope("src/components/overlay/Dialog/dialog.css.ts", "@blockle/blocks");
|
|
5
|
-
const dialog = style({
|
|
6
|
-
"@layer": {
|
|
7
|
-
[blocksLayer]: {
|
|
8
|
-
position: "fixed",
|
|
9
|
-
inset: 0,
|
|
10
|
-
border: "none",
|
|
11
|
-
"::backdrop": {
|
|
12
|
-
// Remove pointer event to prevent clicks on the backdrop
|
|
13
|
-
// and make it easier to check if the click was outside the dialog
|
|
14
|
-
pointerEvents: "none"
|
|
15
|
-
}
|
|
16
|
-
}
|
|
17
|
-
}
|
|
18
|
-
}, "dialog");
|
|
19
|
-
endFileScope();
|
|
20
|
-
export {
|
|
21
|
-
dialog
|
|
22
|
-
};
|
|
@@ -1,20 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
const react = require("react");
|
|
3
|
-
const DialogContext = react.createContext(
|
|
4
|
-
void 0
|
|
5
|
-
);
|
|
6
|
-
const useNestedDialog = (open) => {
|
|
7
|
-
const parentDialog = react.useContext(DialogContext);
|
|
8
|
-
react.useEffect(() => {
|
|
9
|
-
if (!parentDialog || !open) {
|
|
10
|
-
return;
|
|
11
|
-
}
|
|
12
|
-
parentDialog.setEnabled(false);
|
|
13
|
-
return () => {
|
|
14
|
-
parentDialog.setEnabled(true);
|
|
15
|
-
};
|
|
16
|
-
}, [parentDialog, open]);
|
|
17
|
-
return !!parentDialog;
|
|
18
|
-
};
|
|
19
|
-
exports.DialogContext = DialogContext;
|
|
20
|
-
exports.useNestedDialog = useNestedDialog;
|
|
@@ -1,21 +0,0 @@
|
|
|
1
|
-
import { createContext, useContext, useEffect } from "react";
|
|
2
|
-
const DialogContext = createContext(
|
|
3
|
-
void 0
|
|
4
|
-
);
|
|
5
|
-
const useNestedDialog = (open) => {
|
|
6
|
-
const parentDialog = useContext(DialogContext);
|
|
7
|
-
useEffect(() => {
|
|
8
|
-
if (!parentDialog || !open) {
|
|
9
|
-
return;
|
|
10
|
-
}
|
|
11
|
-
parentDialog.setEnabled(false);
|
|
12
|
-
return () => {
|
|
13
|
-
parentDialog.setEnabled(true);
|
|
14
|
-
};
|
|
15
|
-
}, [parentDialog, open]);
|
|
16
|
-
return !!parentDialog;
|
|
17
|
-
};
|
|
18
|
-
export {
|
|
19
|
-
DialogContext,
|
|
20
|
-
useNestedDialog
|
|
21
|
-
};
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
|
|
@@ -1,111 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
const jsxRuntime = require("react/jsx-runtime");
|
|
3
|
-
const react = require("react");
|
|
4
|
-
const hooks_useClickOutside_useClickOutside_cjs = require("../../../hooks/useClickOutside/useClickOutside.cjs");
|
|
5
|
-
const lib_theme_store_theme_cjs = require("../../../lib/theme/store/theme.cjs");
|
|
6
|
-
const lib_utils_classnames_cjs = require("../../../lib/utils/classnames.cjs");
|
|
7
|
-
const lib_utils_dom_cjs = require("../../../lib/utils/dom.cjs");
|
|
8
|
-
const components_overlay_Popover_popoverUtils_cjs = require("./popover-utils.cjs");
|
|
9
|
-
const hooks_useLayer_useLayer_cjs = require("../../../hooks/useLayer/useLayer.cjs");
|
|
10
|
-
const hooks_useVisibilityState_useVisibilityState_cjs = require("../../../hooks/useVisibilityState/useVisibilityState.cjs");
|
|
11
|
-
const hooks_useIsomorphicLayoutEffect_useIsomorphicLayoutEffect_cjs = require("../../../hooks/useIsomorphicLayoutEffect/useIsomorphicLayoutEffect.cjs");
|
|
12
|
-
const hooks_useKeyboard_useKeyboard_cjs = require("../../../hooks/useKeyboard/useKeyboard.cjs");
|
|
13
|
-
const components_other_Portal_Portal_cjs = require("../../other/Portal/Portal.cjs");
|
|
14
|
-
const components_layout_Box_Box_cjs = require("../../layout/Box/Box.cjs");
|
|
15
|
-
const Popover = ({
|
|
16
|
-
align = "bottom",
|
|
17
|
-
anchorElement,
|
|
18
|
-
children,
|
|
19
|
-
className,
|
|
20
|
-
onRequestClose,
|
|
21
|
-
open,
|
|
22
|
-
repositionOnScroll,
|
|
23
|
-
style,
|
|
24
|
-
...restProps
|
|
25
|
-
}) => {
|
|
26
|
-
const layer = hooks_useLayer_useLayer_cjs.useLayer();
|
|
27
|
-
const [visible, hide] = hooks_useVisibilityState_useVisibilityState_cjs.useVisibilityState(open);
|
|
28
|
-
const [position, setPosition] = react.useState({ x: 0, y: 0 });
|
|
29
|
-
const popoverRef = react.useRef(null);
|
|
30
|
-
const containerClassName = lib_theme_store_theme_cjs.getComponentStyles(
|
|
31
|
-
"popover",
|
|
32
|
-
{ base: true },
|
|
33
|
-
false
|
|
34
|
-
);
|
|
35
|
-
react.useLayoutEffect(() => {
|
|
36
|
-
if (!visible) {
|
|
37
|
-
return;
|
|
38
|
-
}
|
|
39
|
-
const position2 = components_overlay_Popover_popoverUtils_cjs.getPopoverPosition(align, anchorElement, popoverRef);
|
|
40
|
-
setPosition({ x: position2[0], y: position2[1] });
|
|
41
|
-
}, [align, anchorElement, visible]);
|
|
42
|
-
react.useEffect(() => {
|
|
43
|
-
if (!open || !repositionOnScroll) {
|
|
44
|
-
return;
|
|
45
|
-
}
|
|
46
|
-
function handleResize() {
|
|
47
|
-
const position2 = components_overlay_Popover_popoverUtils_cjs.getPopoverPosition(align, anchorElement, popoverRef);
|
|
48
|
-
setPosition({ x: position2[0], y: position2[1] });
|
|
49
|
-
}
|
|
50
|
-
window.addEventListener("resize", handleResize);
|
|
51
|
-
window.addEventListener("scroll", handleResize);
|
|
52
|
-
return () => {
|
|
53
|
-
window.removeEventListener("resize", handleResize);
|
|
54
|
-
window.removeEventListener("scroll", handleResize);
|
|
55
|
-
};
|
|
56
|
-
}, [align, anchorElement, open, repositionOnScroll]);
|
|
57
|
-
hooks_useIsomorphicLayoutEffect_useIsomorphicLayoutEffect_cjs.useIsomorphicLayoutEffect(() => {
|
|
58
|
-
var _a;
|
|
59
|
-
if (!open) {
|
|
60
|
-
(_a = popoverRef.current) == null ? void 0 : _a.removeAttribute("data-open");
|
|
61
|
-
return;
|
|
62
|
-
}
|
|
63
|
-
let timer = requestAnimationFrame(() => {
|
|
64
|
-
timer = requestAnimationFrame(() => {
|
|
65
|
-
var _a2;
|
|
66
|
-
(_a2 = popoverRef.current) == null ? void 0 : _a2.setAttribute("data-open", "");
|
|
67
|
-
});
|
|
68
|
-
});
|
|
69
|
-
return () => {
|
|
70
|
-
cancelAnimationFrame(timer);
|
|
71
|
-
};
|
|
72
|
-
}, [open, visible]);
|
|
73
|
-
const onAnimationEnd = react.useCallback(() => {
|
|
74
|
-
if (!open) {
|
|
75
|
-
hide();
|
|
76
|
-
}
|
|
77
|
-
}, [hide, open]);
|
|
78
|
-
react.useEffect(() => {
|
|
79
|
-
if (open) {
|
|
80
|
-
return;
|
|
81
|
-
}
|
|
82
|
-
if (!lib_utils_dom_cjs.hasAnimationDuration(popoverRef.current)) {
|
|
83
|
-
hide();
|
|
84
|
-
}
|
|
85
|
-
}, [hide, open]);
|
|
86
|
-
hooks_useKeyboard_useKeyboard_cjs.useKeyboard("Escape", onRequestClose, { enabled: visible });
|
|
87
|
-
hooks_useClickOutside_useClickOutside_cjs.useClickOutside(popoverRef, onRequestClose, { enabled: visible });
|
|
88
|
-
if (!visible) {
|
|
89
|
-
return null;
|
|
90
|
-
}
|
|
91
|
-
const dataOpen = typeof window === "undefined" && open ? "" : void 0;
|
|
92
|
-
return /* @__PURE__ */ jsxRuntime.jsx(components_other_Portal_Portal_cjs.Portal, { container: layer(), children: /* @__PURE__ */ jsxRuntime.jsx(
|
|
93
|
-
components_layout_Box_Box_cjs.Box,
|
|
94
|
-
{
|
|
95
|
-
ref: popoverRef,
|
|
96
|
-
"data-open": dataOpen,
|
|
97
|
-
onAnimationEnd,
|
|
98
|
-
onTransitionEnd: onAnimationEnd,
|
|
99
|
-
className: lib_utils_classnames_cjs.classnames(containerClassName, className),
|
|
100
|
-
position: "absolute",
|
|
101
|
-
style: {
|
|
102
|
-
...style,
|
|
103
|
-
left: position.x,
|
|
104
|
-
top: position.y
|
|
105
|
-
},
|
|
106
|
-
...restProps,
|
|
107
|
-
children
|
|
108
|
-
}
|
|
109
|
-
) });
|
|
110
|
-
};
|
|
111
|
-
exports.Popover = Popover;
|
|
@@ -1,112 +0,0 @@
|
|
|
1
|
-
import { jsx } from "react/jsx-runtime";
|
|
2
|
-
import { useState, useRef, useLayoutEffect, useEffect, useCallback } from "react";
|
|
3
|
-
import { useClickOutside } from "../../../hooks/useClickOutside/useClickOutside.mjs";
|
|
4
|
-
import { getComponentStyles } from "../../../lib/theme/store/theme.mjs";
|
|
5
|
-
import { classnames } from "../../../lib/utils/classnames.mjs";
|
|
6
|
-
import { hasAnimationDuration } from "../../../lib/utils/dom.mjs";
|
|
7
|
-
import { getPopoverPosition } from "./popover-utils.mjs";
|
|
8
|
-
import { useLayer } from "../../../hooks/useLayer/useLayer.mjs";
|
|
9
|
-
import { useVisibilityState } from "../../../hooks/useVisibilityState/useVisibilityState.mjs";
|
|
10
|
-
import { useIsomorphicLayoutEffect } from "../../../hooks/useIsomorphicLayoutEffect/useIsomorphicLayoutEffect.mjs";
|
|
11
|
-
import { useKeyboard } from "../../../hooks/useKeyboard/useKeyboard.mjs";
|
|
12
|
-
import { Portal } from "../../other/Portal/Portal.mjs";
|
|
13
|
-
import { Box } from "../../layout/Box/Box.mjs";
|
|
14
|
-
const Popover = ({
|
|
15
|
-
align = "bottom",
|
|
16
|
-
anchorElement,
|
|
17
|
-
children,
|
|
18
|
-
className,
|
|
19
|
-
onRequestClose,
|
|
20
|
-
open,
|
|
21
|
-
repositionOnScroll,
|
|
22
|
-
style,
|
|
23
|
-
...restProps
|
|
24
|
-
}) => {
|
|
25
|
-
const layer = useLayer();
|
|
26
|
-
const [visible, hide] = useVisibilityState(open);
|
|
27
|
-
const [position, setPosition] = useState({ x: 0, y: 0 });
|
|
28
|
-
const popoverRef = useRef(null);
|
|
29
|
-
const containerClassName = getComponentStyles(
|
|
30
|
-
"popover",
|
|
31
|
-
{ base: true },
|
|
32
|
-
false
|
|
33
|
-
);
|
|
34
|
-
useLayoutEffect(() => {
|
|
35
|
-
if (!visible) {
|
|
36
|
-
return;
|
|
37
|
-
}
|
|
38
|
-
const position2 = getPopoverPosition(align, anchorElement, popoverRef);
|
|
39
|
-
setPosition({ x: position2[0], y: position2[1] });
|
|
40
|
-
}, [align, anchorElement, visible]);
|
|
41
|
-
useEffect(() => {
|
|
42
|
-
if (!open || !repositionOnScroll) {
|
|
43
|
-
return;
|
|
44
|
-
}
|
|
45
|
-
function handleResize() {
|
|
46
|
-
const position2 = getPopoverPosition(align, anchorElement, popoverRef);
|
|
47
|
-
setPosition({ x: position2[0], y: position2[1] });
|
|
48
|
-
}
|
|
49
|
-
window.addEventListener("resize", handleResize);
|
|
50
|
-
window.addEventListener("scroll", handleResize);
|
|
51
|
-
return () => {
|
|
52
|
-
window.removeEventListener("resize", handleResize);
|
|
53
|
-
window.removeEventListener("scroll", handleResize);
|
|
54
|
-
};
|
|
55
|
-
}, [align, anchorElement, open, repositionOnScroll]);
|
|
56
|
-
useIsomorphicLayoutEffect(() => {
|
|
57
|
-
var _a;
|
|
58
|
-
if (!open) {
|
|
59
|
-
(_a = popoverRef.current) == null ? void 0 : _a.removeAttribute("data-open");
|
|
60
|
-
return;
|
|
61
|
-
}
|
|
62
|
-
let timer = requestAnimationFrame(() => {
|
|
63
|
-
timer = requestAnimationFrame(() => {
|
|
64
|
-
var _a2;
|
|
65
|
-
(_a2 = popoverRef.current) == null ? void 0 : _a2.setAttribute("data-open", "");
|
|
66
|
-
});
|
|
67
|
-
});
|
|
68
|
-
return () => {
|
|
69
|
-
cancelAnimationFrame(timer);
|
|
70
|
-
};
|
|
71
|
-
}, [open, visible]);
|
|
72
|
-
const onAnimationEnd = useCallback(() => {
|
|
73
|
-
if (!open) {
|
|
74
|
-
hide();
|
|
75
|
-
}
|
|
76
|
-
}, [hide, open]);
|
|
77
|
-
useEffect(() => {
|
|
78
|
-
if (open) {
|
|
79
|
-
return;
|
|
80
|
-
}
|
|
81
|
-
if (!hasAnimationDuration(popoverRef.current)) {
|
|
82
|
-
hide();
|
|
83
|
-
}
|
|
84
|
-
}, [hide, open]);
|
|
85
|
-
useKeyboard("Escape", onRequestClose, { enabled: visible });
|
|
86
|
-
useClickOutside(popoverRef, onRequestClose, { enabled: visible });
|
|
87
|
-
if (!visible) {
|
|
88
|
-
return null;
|
|
89
|
-
}
|
|
90
|
-
const dataOpen = typeof window === "undefined" && open ? "" : void 0;
|
|
91
|
-
return /* @__PURE__ */ jsx(Portal, { container: layer(), children: /* @__PURE__ */ jsx(
|
|
92
|
-
Box,
|
|
93
|
-
{
|
|
94
|
-
ref: popoverRef,
|
|
95
|
-
"data-open": dataOpen,
|
|
96
|
-
onAnimationEnd,
|
|
97
|
-
onTransitionEnd: onAnimationEnd,
|
|
98
|
-
className: classnames(containerClassName, className),
|
|
99
|
-
position: "absolute",
|
|
100
|
-
style: {
|
|
101
|
-
...style,
|
|
102
|
-
left: position.x,
|
|
103
|
-
top: position.y
|
|
104
|
-
},
|
|
105
|
-
...restProps,
|
|
106
|
-
children
|
|
107
|
-
}
|
|
108
|
-
) });
|
|
109
|
-
};
|
|
110
|
-
export {
|
|
111
|
-
Popover
|
|
112
|
-
};
|