@ark-ui/react 1.0.0-beta.4 → 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/CHANGELOG.md +18 -0
- package/accordion/accordion-context.d.ts +2 -1
- package/accordion/accordion-item-content.cjs +14 -21
- package/accordion/accordion-item-content.d.ts +1 -3
- package/accordion/accordion-item-content.mjs +14 -21
- package/accordion/accordion-item-context.d.ts +2 -2
- package/accordion/accordion-item-trigger.cjs +11 -1
- package/accordion/accordion-item-trigger.mjs +11 -1
- package/accordion/accordion-item.cjs +7 -1
- package/accordion/accordion-item.d.ts +4 -5
- package/accordion/accordion-item.mjs +7 -1
- package/accordion/accordion.cjs +7 -3
- package/accordion/accordion.d.ts +2 -1
- package/accordion/accordion.mjs +7 -3
- package/carousel/carousel.d.ts +4 -5
- package/checkbox/checkbox.cjs +2 -2
- package/checkbox/checkbox.d.ts +4 -5
- package/checkbox/checkbox.mjs +2 -2
- package/color-picker/color-picker-content.cjs +8 -11
- package/color-picker/color-picker-content.d.ts +1 -3
- package/color-picker/color-picker-content.mjs +8 -11
- package/color-picker/color-picker-positioner.cjs +6 -0
- package/color-picker/color-picker-positioner.mjs +6 -0
- package/color-picker/color-picker-view.cjs +29 -0
- package/color-picker/color-picker-view.d.ts +8 -0
- package/color-picker/color-picker-view.mjs +25 -0
- package/color-picker/color-picker.cjs +31 -28
- package/color-picker/color-picker.d.ts +6 -5
- package/color-picker/color-picker.mjs +32 -29
- package/color-picker/index.cjs +3 -1
- package/color-picker/index.d.ts +3 -1
- package/color-picker/index.mjs +3 -1
- package/combobox/combobox-content.cjs +8 -11
- package/combobox/combobox-content.d.ts +1 -3
- package/combobox/combobox-content.mjs +8 -11
- package/combobox/combobox-item.d.ts +6 -4
- package/combobox/combobox-positioner.cjs +6 -0
- package/combobox/combobox-positioner.mjs +6 -0
- package/combobox/combobox.cjs +8 -2
- package/combobox/combobox.d.ts +4 -3
- package/combobox/combobox.mjs +8 -2
- package/date-picker/date-picker-content.cjs +8 -11
- package/date-picker/date-picker-content.d.ts +1 -3
- package/date-picker/date-picker-content.mjs +8 -11
- package/date-picker/date-picker-positioner.cjs +6 -0
- package/date-picker/date-picker-positioner.mjs +6 -0
- package/date-picker/date-picker-view.d.ts +3 -3
- package/date-picker/date-picker.cjs +10 -4
- package/date-picker/date-picker.d.ts +6 -5
- package/date-picker/date-picker.mjs +10 -4
- package/dialog/dialog-backdrop.cjs +8 -11
- package/dialog/dialog-backdrop.d.ts +1 -3
- package/dialog/dialog-backdrop.mjs +8 -11
- package/dialog/dialog-content.cjs +8 -11
- package/dialog/dialog-content.d.ts +1 -3
- package/dialog/dialog-content.mjs +8 -11
- package/dialog/dialog-positioner.cjs +6 -0
- package/dialog/dialog-positioner.mjs +6 -0
- package/dialog/dialog-trigger.cjs +10 -1
- package/dialog/dialog-trigger.mjs +10 -1
- package/dialog/dialog.cjs +8 -3
- package/dialog/dialog.d.ts +4 -6
- package/dialog/dialog.mjs +8 -3
- package/editable/editable.d.ts +4 -5
- package/environment/environment-context.d.ts +1 -1
- package/hover-card/hover-card-content.cjs +8 -11
- package/hover-card/hover-card-content.d.ts +1 -3
- package/hover-card/hover-card-content.mjs +8 -11
- package/hover-card/hover-card-positioner.cjs +6 -0
- package/hover-card/hover-card-positioner.mjs +6 -0
- package/hover-card/hover-card.cjs +8 -3
- package/hover-card/hover-card.d.ts +4 -6
- package/hover-card/hover-card.mjs +8 -3
- package/index.cjs +8 -0
- package/index.mjs +3 -0
- package/menu/menu-content.cjs +8 -11
- package/menu/menu-content.d.ts +1 -3
- package/menu/menu-content.mjs +8 -11
- package/menu/menu-option-item.d.ts +2 -2
- package/menu/menu.cjs +11 -12
- package/menu/menu.d.ts +4 -11
- package/menu/menu.mjs +12 -13
- package/package.json +49 -50
- package/pagination/pagination.d.ts +3 -3
- package/popover/popover-content.cjs +8 -11
- package/popover/popover-content.d.ts +1 -3
- package/popover/popover-content.mjs +8 -11
- package/popover/popover-positioner.cjs +6 -0
- package/popover/popover-positioner.mjs +6 -0
- package/popover/popover-trigger.cjs +10 -1
- package/popover/popover-trigger.mjs +10 -1
- package/popover/popover.cjs +8 -3
- package/popover/popover.d.ts +4 -6
- package/popover/popover.mjs +8 -3
- package/presence/index.cjs +8 -0
- package/presence/index.d.ts +8 -5
- package/presence/index.mjs +3 -0
- package/presence/presence-context.cjs +15 -0
- package/presence/presence-context.d.ts +6 -0
- package/presence/presence-context.mjs +10 -0
- package/presence/presence-props-context.cjs +17 -0
- package/presence/presence-props-context.d.ts +6 -0
- package/presence/presence-props-context.mjs +12 -0
- package/presence/presence.cjs +18 -19
- package/presence/presence.d.ts +6 -21
- package/presence/presence.mjs +19 -20
- package/presence/split-presence-props.d.ts +2 -2
- package/presence/use-presence.cjs +22 -4
- package/presence/use-presence.d.ts +21 -1
- package/presence/use-presence.mjs +20 -2
- package/radio-group/radio-group-item.d.ts +2 -3
- package/rating-group/rating-group-control.d.ts +5 -3
- package/rating-group/rating-group-item.d.ts +4 -5
- package/segment-group/segment-group-item.d.ts +2 -3
- package/segment-group/segment-group.anatomy.d.ts +2 -0
- package/select/select-content.cjs +8 -11
- package/select/select-content.d.ts +1 -3
- package/select/select-content.mjs +8 -11
- package/select/select-item.d.ts +2 -3
- package/select/select-positioner.cjs +6 -0
- package/select/select-positioner.mjs +6 -0
- package/select/select.cjs +8 -2
- package/select/select.d.ts +4 -3
- package/select/select.mjs +8 -2
- package/slider/slider-value-text.cjs +1 -3
- package/slider/slider-value-text.d.ts +3 -6
- package/slider/slider-value-text.mjs +1 -3
- package/slider/slider.d.ts +3 -3
- package/splitter/splitter.d.ts +3 -3
- package/switch/switch.d.ts +3 -3
- package/switch/switch.stories.d.ts +1 -0
- package/tabs/tab-content.cjs +13 -12
- package/tabs/tab-content.d.ts +2 -4
- package/tabs/tab-content.mjs +13 -12
- package/tabs/tabs.cjs +7 -3
- package/tabs/tabs.d.ts +2 -1
- package/tabs/tabs.mjs +7 -3
- package/tags-input/tags-input-item.d.ts +4 -5
- package/tags-input/tags-input.d.ts +3 -3
- package/toast/toast.stories.d.ts +3 -1
- package/tooltip/tooltip-content.cjs +8 -11
- package/tooltip/tooltip-content.d.ts +1 -3
- package/tooltip/tooltip-content.mjs +8 -11
- package/tooltip/tooltip-positioner.cjs +6 -0
- package/tooltip/tooltip-positioner.mjs +6 -0
- package/tooltip/tooltip.cjs +8 -3
- package/tooltip/tooltip.d.ts +4 -4
- package/tooltip/tooltip.mjs +8 -3
- package/types.d.ts +1 -3
- package/use-event.cjs +6 -2
- package/use-event.mjs +6 -2
- package/tabs/tab-presence.cjs +0 -17
- package/tabs/tab-presence.d.ts +0 -6
- package/tabs/tab-presence.mjs +0 -13
- package/use-latest-ref.cjs +0 -14
- package/use-latest-ref.d.ts +0 -3
- package/use-latest-ref.mjs +0 -10
|
@@ -4,13 +4,18 @@ import { mergeProps } from '@zag-js/react';
|
|
|
4
4
|
import { forwardRef } from 'react';
|
|
5
5
|
import { createSplitProps } from '../create-split-props.mjs';
|
|
6
6
|
import { ark } from '../factory.mjs';
|
|
7
|
+
import '../presence/index.mjs';
|
|
7
8
|
import { runIfFn } from '../run-if-fn.mjs';
|
|
8
9
|
import { DatePickerProvider } from './date-picker-context.mjs';
|
|
9
10
|
import { useDatePicker } from './use-date-picker.mjs';
|
|
11
|
+
import { splitPresenceProps } from '../presence/split-presence-props.mjs';
|
|
12
|
+
import { usePresence } from '../presence/use-presence.mjs';
|
|
13
|
+
import { PresenceProvider } from '../presence/presence-context.mjs';
|
|
10
14
|
|
|
11
15
|
const DatePicker = forwardRef((props, ref) => {
|
|
12
|
-
const [
|
|
13
|
-
|
|
16
|
+
const [presenceProps, datePickerProps] = splitPresenceProps(props);
|
|
17
|
+
const [useDatePickerProps, { children, ...localProps }] = createSplitProps()(
|
|
18
|
+
datePickerProps,
|
|
14
19
|
[
|
|
15
20
|
"closeOnSelect",
|
|
16
21
|
"defaultValue",
|
|
@@ -46,10 +51,11 @@ const DatePicker = forwardRef((props, ref) => {
|
|
|
46
51
|
"view"
|
|
47
52
|
]
|
|
48
53
|
);
|
|
49
|
-
const api = useDatePicker(
|
|
54
|
+
const api = useDatePicker(useDatePickerProps);
|
|
55
|
+
const presenceApi = usePresence({ ...presenceProps, present: api.isOpen });
|
|
50
56
|
const view = runIfFn(children, api);
|
|
51
57
|
const mergedProps = mergeProps(api.rootProps, localProps);
|
|
52
|
-
return /* @__PURE__ */ jsx(DatePickerProvider, { value: api, children: /* @__PURE__ */ jsx(ark.div, { ...mergedProps, ref, children: view }) });
|
|
58
|
+
return /* @__PURE__ */ jsx(DatePickerProvider, { value: api, children: /* @__PURE__ */ jsx(PresenceProvider, { value: presenceApi, children: /* @__PURE__ */ jsx(ark.div, { ...mergedProps, ref, children: view }) }) });
|
|
53
59
|
});
|
|
54
60
|
DatePicker.displayName = "DatePicker";
|
|
55
61
|
|
|
@@ -7,22 +7,19 @@ const jsxRuntime = require('react/jsx-runtime');
|
|
|
7
7
|
const react$1 = require('@zag-js/react');
|
|
8
8
|
const react = require('react');
|
|
9
9
|
const factory = require('../factory.cjs');
|
|
10
|
-
|
|
10
|
+
require('../presence/index.cjs');
|
|
11
11
|
const dialogContext = require('./dialog-context.cjs');
|
|
12
|
-
const
|
|
12
|
+
const presenceContext = require('../presence/presence-context.cjs');
|
|
13
13
|
|
|
14
14
|
const DialogBackdrop = react.forwardRef((props, ref) => {
|
|
15
|
-
const [presenceProps, localProps] = splitPresenceProps.splitPresenceProps(props);
|
|
16
15
|
const api = dialogContext.useDialogContext();
|
|
17
|
-
|
|
16
|
+
const presenceApi = presenceContext.usePresenceContext();
|
|
17
|
+
const mergedProps = react$1.mergeProps(api.backdropProps, props);
|
|
18
|
+
if (presenceApi.isUnmounted) {
|
|
19
|
+
return null;
|
|
20
|
+
}
|
|
21
|
+
return /* @__PURE__ */ jsxRuntime.jsx(factory.ark.div, { ref, ...mergedProps });
|
|
18
22
|
});
|
|
19
23
|
DialogBackdrop.displayName = "DialogBackdrop";
|
|
20
|
-
const DialogInnerBackdrop = react.forwardRef(
|
|
21
|
-
function DialogInnerBackdrop2(props, ref) {
|
|
22
|
-
const api = dialogContext.useDialogContext();
|
|
23
|
-
const mergedProps = react$1.mergeProps(api.backdropProps, props);
|
|
24
|
-
return /* @__PURE__ */ jsxRuntime.jsx(factory.ark.div, { ...mergedProps, ref });
|
|
25
|
-
}
|
|
26
|
-
);
|
|
27
24
|
|
|
28
25
|
exports.DialogBackdrop = DialogBackdrop;
|
|
@@ -1,8 +1,6 @@
|
|
|
1
1
|
import { ForwardRefExoticComponent, RefAttributes } from 'react';
|
|
2
2
|
/// <reference types="react" />
|
|
3
3
|
import { type HTMLArkProps } from '../factory';
|
|
4
|
-
|
|
5
|
-
import type { Assign } from '../types';
|
|
6
|
-
export interface DialogBackdropProps extends Assign<HTMLArkProps<'div'>, Omit<PresenceProps, 'children' | 'fallback'>> {
|
|
4
|
+
export interface DialogBackdropProps extends HTMLArkProps<'div'> {
|
|
7
5
|
}
|
|
8
6
|
export declare const DialogBackdrop: ForwardRefExoticComponent<DialogBackdropProps & RefAttributes<HTMLDivElement>>;
|
|
@@ -3,22 +3,19 @@ import { jsx } from 'react/jsx-runtime';
|
|
|
3
3
|
import { mergeProps } from '@zag-js/react';
|
|
4
4
|
import { forwardRef } from 'react';
|
|
5
5
|
import { ark } from '../factory.mjs';
|
|
6
|
-
import
|
|
6
|
+
import '../presence/index.mjs';
|
|
7
7
|
import { useDialogContext } from './dialog-context.mjs';
|
|
8
|
-
import {
|
|
8
|
+
import { usePresenceContext } from '../presence/presence-context.mjs';
|
|
9
9
|
|
|
10
10
|
const DialogBackdrop = forwardRef((props, ref) => {
|
|
11
|
-
const [presenceProps, localProps] = splitPresenceProps(props);
|
|
12
11
|
const api = useDialogContext();
|
|
13
|
-
|
|
12
|
+
const presenceApi = usePresenceContext();
|
|
13
|
+
const mergedProps = mergeProps(api.backdropProps, props);
|
|
14
|
+
if (presenceApi.isUnmounted) {
|
|
15
|
+
return null;
|
|
16
|
+
}
|
|
17
|
+
return /* @__PURE__ */ jsx(ark.div, { ref, ...mergedProps });
|
|
14
18
|
});
|
|
15
19
|
DialogBackdrop.displayName = "DialogBackdrop";
|
|
16
|
-
const DialogInnerBackdrop = forwardRef(
|
|
17
|
-
function DialogInnerBackdrop2(props, ref) {
|
|
18
|
-
const api = useDialogContext();
|
|
19
|
-
const mergedProps = mergeProps(api.backdropProps, props);
|
|
20
|
-
return /* @__PURE__ */ jsx(ark.div, { ...mergedProps, ref });
|
|
21
|
-
}
|
|
22
|
-
);
|
|
23
20
|
|
|
24
21
|
export { DialogBackdrop };
|
|
@@ -7,22 +7,19 @@ const jsxRuntime = require('react/jsx-runtime');
|
|
|
7
7
|
const react$1 = require('@zag-js/react');
|
|
8
8
|
const react = require('react');
|
|
9
9
|
const factory = require('../factory.cjs');
|
|
10
|
-
|
|
10
|
+
require('../presence/index.cjs');
|
|
11
11
|
const dialogContext = require('./dialog-context.cjs');
|
|
12
|
-
const
|
|
12
|
+
const presenceContext = require('../presence/presence-context.cjs');
|
|
13
13
|
|
|
14
14
|
const DialogContent = react.forwardRef((props, ref) => {
|
|
15
|
-
const [presenceProps, localProps] = splitPresenceProps.splitPresenceProps(props);
|
|
16
15
|
const api = dialogContext.useDialogContext();
|
|
17
|
-
|
|
16
|
+
const presenceApi = presenceContext.usePresenceContext();
|
|
17
|
+
const mergedProps = react$1.mergeProps(api.contentProps, presenceApi.getPresenceProps(ref), props);
|
|
18
|
+
if (presenceApi.isUnmounted) {
|
|
19
|
+
return null;
|
|
20
|
+
}
|
|
21
|
+
return /* @__PURE__ */ jsxRuntime.jsx(factory.ark.div, { ...mergedProps });
|
|
18
22
|
});
|
|
19
23
|
DialogContent.displayName = "DialogContent";
|
|
20
|
-
const DialogInnerContent = react.forwardRef(
|
|
21
|
-
function DialogInnerContent2(props, ref) {
|
|
22
|
-
const api = dialogContext.useDialogContext();
|
|
23
|
-
const mergedProps = react$1.mergeProps(api.contentProps, props);
|
|
24
|
-
return /* @__PURE__ */ jsxRuntime.jsx(factory.ark.div, { ...mergedProps, ref });
|
|
25
|
-
}
|
|
26
|
-
);
|
|
27
24
|
|
|
28
25
|
exports.DialogContent = DialogContent;
|
|
@@ -1,8 +1,6 @@
|
|
|
1
1
|
import { ForwardRefExoticComponent, RefAttributes } from 'react';
|
|
2
2
|
/// <reference types="react" />
|
|
3
3
|
import { type HTMLArkProps } from '../factory';
|
|
4
|
-
|
|
5
|
-
import type { Assign } from '../types';
|
|
6
|
-
export interface DialogContentProps extends Assign<HTMLArkProps<'div'>, Omit<PresenceProps, 'children' | 'fallback'>> {
|
|
4
|
+
export interface DialogContentProps extends HTMLArkProps<'div'> {
|
|
7
5
|
}
|
|
8
6
|
export declare const DialogContent: ForwardRefExoticComponent<DialogContentProps & RefAttributes<HTMLDivElement>>;
|
|
@@ -3,22 +3,19 @@ import { jsx } from 'react/jsx-runtime';
|
|
|
3
3
|
import { mergeProps } from '@zag-js/react';
|
|
4
4
|
import { forwardRef } from 'react';
|
|
5
5
|
import { ark } from '../factory.mjs';
|
|
6
|
-
import
|
|
6
|
+
import '../presence/index.mjs';
|
|
7
7
|
import { useDialogContext } from './dialog-context.mjs';
|
|
8
|
-
import {
|
|
8
|
+
import { usePresenceContext } from '../presence/presence-context.mjs';
|
|
9
9
|
|
|
10
10
|
const DialogContent = forwardRef((props, ref) => {
|
|
11
|
-
const [presenceProps, localProps] = splitPresenceProps(props);
|
|
12
11
|
const api = useDialogContext();
|
|
13
|
-
|
|
12
|
+
const presenceApi = usePresenceContext();
|
|
13
|
+
const mergedProps = mergeProps(api.contentProps, presenceApi.getPresenceProps(ref), props);
|
|
14
|
+
if (presenceApi.isUnmounted) {
|
|
15
|
+
return null;
|
|
16
|
+
}
|
|
17
|
+
return /* @__PURE__ */ jsx(ark.div, { ...mergedProps });
|
|
14
18
|
});
|
|
15
19
|
DialogContent.displayName = "DialogContent";
|
|
16
|
-
const DialogInnerContent = forwardRef(
|
|
17
|
-
function DialogInnerContent2(props, ref) {
|
|
18
|
-
const api = useDialogContext();
|
|
19
|
-
const mergedProps = mergeProps(api.contentProps, props);
|
|
20
|
-
return /* @__PURE__ */ jsx(ark.div, { ...mergedProps, ref });
|
|
21
|
-
}
|
|
22
|
-
);
|
|
23
20
|
|
|
24
21
|
export { DialogContent };
|
|
@@ -7,11 +7,17 @@ const jsxRuntime = require('react/jsx-runtime');
|
|
|
7
7
|
const react$1 = require('@zag-js/react');
|
|
8
8
|
const react = require('react');
|
|
9
9
|
const factory = require('../factory.cjs');
|
|
10
|
+
require('../presence/index.cjs');
|
|
10
11
|
const dialogContext = require('./dialog-context.cjs');
|
|
12
|
+
const presenceContext = require('../presence/presence-context.cjs');
|
|
11
13
|
|
|
12
14
|
const DialogPositioner = react.forwardRef((props, ref) => {
|
|
13
15
|
const api = dialogContext.useDialogContext();
|
|
14
16
|
const mergedProps = react$1.mergeProps(api.positionerProps, props);
|
|
17
|
+
const presenceApi = presenceContext.usePresenceContext();
|
|
18
|
+
if (presenceApi.isUnmounted) {
|
|
19
|
+
return null;
|
|
20
|
+
}
|
|
15
21
|
return /* @__PURE__ */ jsxRuntime.jsx(factory.ark.div, { ...mergedProps, ref });
|
|
16
22
|
});
|
|
17
23
|
DialogPositioner.displayName = "DialogPositioner";
|
|
@@ -3,11 +3,17 @@ import { jsx } from 'react/jsx-runtime';
|
|
|
3
3
|
import { mergeProps } from '@zag-js/react';
|
|
4
4
|
import { forwardRef } from 'react';
|
|
5
5
|
import { ark } from '../factory.mjs';
|
|
6
|
+
import '../presence/index.mjs';
|
|
6
7
|
import { useDialogContext } from './dialog-context.mjs';
|
|
8
|
+
import { usePresenceContext } from '../presence/presence-context.mjs';
|
|
7
9
|
|
|
8
10
|
const DialogPositioner = forwardRef((props, ref) => {
|
|
9
11
|
const api = useDialogContext();
|
|
10
12
|
const mergedProps = mergeProps(api.positionerProps, props);
|
|
13
|
+
const presenceApi = usePresenceContext();
|
|
14
|
+
if (presenceApi.isUnmounted) {
|
|
15
|
+
return null;
|
|
16
|
+
}
|
|
11
17
|
return /* @__PURE__ */ jsx(ark.div, { ...mergedProps, ref });
|
|
12
18
|
});
|
|
13
19
|
DialogPositioner.displayName = "DialogPositioner";
|
|
@@ -7,11 +7,20 @@ const jsxRuntime = require('react/jsx-runtime');
|
|
|
7
7
|
const react$1 = require('@zag-js/react');
|
|
8
8
|
const react = require('react');
|
|
9
9
|
const factory = require('../factory.cjs');
|
|
10
|
+
require('../presence/index.cjs');
|
|
10
11
|
const dialogContext = require('./dialog-context.cjs');
|
|
12
|
+
const presenceContext = require('../presence/presence-context.cjs');
|
|
11
13
|
|
|
12
14
|
const DialogTrigger = react.forwardRef((props, ref) => {
|
|
13
15
|
const api = dialogContext.useDialogContext();
|
|
14
|
-
const
|
|
16
|
+
const presence = presenceContext.usePresenceContext();
|
|
17
|
+
const mergedProps = react$1.mergeProps(
|
|
18
|
+
{
|
|
19
|
+
...api.triggerProps,
|
|
20
|
+
"aria-controls": presence.isUnmounted ? void 0 : api.triggerProps["aria-controls"]
|
|
21
|
+
},
|
|
22
|
+
props
|
|
23
|
+
);
|
|
15
24
|
return /* @__PURE__ */ jsxRuntime.jsx(factory.ark.button, { ...mergedProps, ref });
|
|
16
25
|
});
|
|
17
26
|
DialogTrigger.displayName = "DialogTrigger";
|
|
@@ -3,11 +3,20 @@ import { jsx } from 'react/jsx-runtime';
|
|
|
3
3
|
import { mergeProps } from '@zag-js/react';
|
|
4
4
|
import { forwardRef } from 'react';
|
|
5
5
|
import { ark } from '../factory.mjs';
|
|
6
|
+
import '../presence/index.mjs';
|
|
6
7
|
import { useDialogContext } from './dialog-context.mjs';
|
|
8
|
+
import { usePresenceContext } from '../presence/presence-context.mjs';
|
|
7
9
|
|
|
8
10
|
const DialogTrigger = forwardRef((props, ref) => {
|
|
9
11
|
const api = useDialogContext();
|
|
10
|
-
const
|
|
12
|
+
const presence = usePresenceContext();
|
|
13
|
+
const mergedProps = mergeProps(
|
|
14
|
+
{
|
|
15
|
+
...api.triggerProps,
|
|
16
|
+
"aria-controls": presence.isUnmounted ? void 0 : api.triggerProps["aria-controls"]
|
|
17
|
+
},
|
|
18
|
+
props
|
|
19
|
+
);
|
|
11
20
|
return /* @__PURE__ */ jsx(ark.button, { ...mergedProps, ref });
|
|
12
21
|
});
|
|
13
22
|
DialogTrigger.displayName = "DialogTrigger";
|
package/dialog/dialog.cjs
CHANGED
|
@@ -5,15 +5,20 @@ Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });
|
|
|
5
5
|
|
|
6
6
|
const jsxRuntime = require('react/jsx-runtime');
|
|
7
7
|
require('react');
|
|
8
|
+
require('../presence/index.cjs');
|
|
9
|
+
const splitPresenceProps = require('../presence/split-presence-props.cjs');
|
|
8
10
|
const runIfFn = require('../run-if-fn.cjs');
|
|
9
11
|
const dialogContext = require('./dialog-context.cjs');
|
|
10
12
|
const useDialog = require('./use-dialog.cjs');
|
|
13
|
+
const usePresence = require('../presence/use-presence.cjs');
|
|
14
|
+
const presenceContext = require('../presence/presence-context.cjs');
|
|
11
15
|
|
|
12
16
|
const Dialog = (props) => {
|
|
13
|
-
const { children, ...
|
|
14
|
-
const api = useDialog.useDialog(
|
|
17
|
+
const [presenceProps, { children, ...localProps }] = splitPresenceProps.splitPresenceProps(props);
|
|
18
|
+
const api = useDialog.useDialog(localProps);
|
|
19
|
+
const presenceApi = usePresence.usePresence({ ...presenceProps, present: api.isOpen });
|
|
15
20
|
const view = runIfFn.runIfFn(children, api);
|
|
16
|
-
return /* @__PURE__ */ jsxRuntime.jsx(dialogContext.DialogProvider, { value: api, children: view });
|
|
21
|
+
return /* @__PURE__ */ jsxRuntime.jsx(dialogContext.DialogProvider, { value: api, children: /* @__PURE__ */ jsxRuntime.jsx(presenceContext.PresenceProvider, { value: presenceApi, children: view }) });
|
|
17
22
|
};
|
|
18
23
|
|
|
19
24
|
exports.Dialog = Dialog;
|
package/dialog/dialog.d.ts
CHANGED
|
@@ -1,10 +1,8 @@
|
|
|
1
1
|
import { JSX } from 'react/jsx-runtime';
|
|
2
2
|
import { type ReactNode } from 'react';
|
|
3
|
-
import {
|
|
4
|
-
import { type
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
children?: ReactNode | ((props: DialogContext) => ReactNode);
|
|
8
|
-
}> {
|
|
3
|
+
import type { UsePresenceProps } from '../presence';
|
|
4
|
+
import { type UseDialogProps, type UseDialogReturn } from './use-dialog';
|
|
5
|
+
export interface DialogProps extends UseDialogProps, UsePresenceProps {
|
|
6
|
+
children?: ReactNode | ((api: UseDialogReturn) => ReactNode);
|
|
9
7
|
}
|
|
10
8
|
export declare const Dialog: (props: DialogProps) => JSX.Element;
|
package/dialog/dialog.mjs
CHANGED
|
@@ -1,15 +1,20 @@
|
|
|
1
1
|
'use client';
|
|
2
2
|
import { jsx } from 'react/jsx-runtime';
|
|
3
3
|
import 'react';
|
|
4
|
+
import '../presence/index.mjs';
|
|
5
|
+
import { splitPresenceProps } from '../presence/split-presence-props.mjs';
|
|
4
6
|
import { runIfFn } from '../run-if-fn.mjs';
|
|
5
7
|
import { DialogProvider } from './dialog-context.mjs';
|
|
6
8
|
import { useDialog } from './use-dialog.mjs';
|
|
9
|
+
import { usePresence } from '../presence/use-presence.mjs';
|
|
10
|
+
import { PresenceProvider } from '../presence/presence-context.mjs';
|
|
7
11
|
|
|
8
12
|
const Dialog = (props) => {
|
|
9
|
-
const { children, ...
|
|
10
|
-
const api = useDialog(
|
|
13
|
+
const [presenceProps, { children, ...localProps }] = splitPresenceProps(props);
|
|
14
|
+
const api = useDialog(localProps);
|
|
15
|
+
const presenceApi = usePresence({ ...presenceProps, present: api.isOpen });
|
|
11
16
|
const view = runIfFn(children, api);
|
|
12
|
-
return /* @__PURE__ */ jsx(DialogProvider, { value: api, children: view });
|
|
17
|
+
return /* @__PURE__ */ jsx(DialogProvider, { value: api, children: /* @__PURE__ */ jsx(PresenceProvider, { value: presenceApi, children: view }) });
|
|
13
18
|
};
|
|
14
19
|
|
|
15
20
|
export { Dialog };
|
package/editable/editable.d.ts
CHANGED
|
@@ -1,10 +1,9 @@
|
|
|
1
1
|
import { ForwardRefExoticComponent, RefAttributes, type ReactNode } from 'react';
|
|
2
2
|
import { type HTMLArkProps } from '../factory';
|
|
3
3
|
import { type Assign } from '../types';
|
|
4
|
-
import { type
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
}, UseEditableProps> {
|
|
4
|
+
import { type UseEditableProps, type UseEditableReturn } from './use-editable';
|
|
5
|
+
export interface EditableProps extends Assign<Assign<HTMLArkProps<'div'>, {
|
|
6
|
+
children?: ReactNode | ((api: UseEditableReturn) => ReactNode);
|
|
7
|
+
}>, UseEditableProps> {
|
|
9
8
|
}
|
|
10
9
|
export declare const Editable: ForwardRefExoticComponent<EditableProps & RefAttributes<HTMLDivElement>>;
|
|
@@ -2,4 +2,4 @@ import { Provider } from 'react';
|
|
|
2
2
|
/// <reference types="react" />
|
|
3
3
|
import { type CommonProperties } from '@zag-js/types';
|
|
4
4
|
export type EnvironmentContext = CommonProperties['getRootNode'];
|
|
5
|
-
export declare const EnvironmentProvider: Provider<(() =>
|
|
5
|
+
export declare const EnvironmentProvider: Provider<(() => Node | ShadowRoot | Document) | undefined>, useEnvironmentContext: () => (() => Node | ShadowRoot | Document) | undefined;
|
|
@@ -7,22 +7,19 @@ const jsxRuntime = require('react/jsx-runtime');
|
|
|
7
7
|
const react$1 = require('@zag-js/react');
|
|
8
8
|
const react = require('react');
|
|
9
9
|
const factory = require('../factory.cjs');
|
|
10
|
-
|
|
10
|
+
require('../presence/index.cjs');
|
|
11
11
|
const hoverCardContext = require('./hover-card-context.cjs');
|
|
12
|
-
const
|
|
12
|
+
const presenceContext = require('../presence/presence-context.cjs');
|
|
13
13
|
|
|
14
14
|
const HoverCardContent = react.forwardRef((props, ref) => {
|
|
15
|
-
const [presenceProps, localProps] = splitPresenceProps.splitPresenceProps(props);
|
|
16
15
|
const api = hoverCardContext.useHoverCardContext();
|
|
17
|
-
|
|
16
|
+
const presenceApi = presenceContext.usePresenceContext();
|
|
17
|
+
const mergedProps = react$1.mergeProps(api.contentProps, presenceApi.getPresenceProps(ref), props);
|
|
18
|
+
if (presenceApi.isUnmounted) {
|
|
19
|
+
return null;
|
|
20
|
+
}
|
|
21
|
+
return /* @__PURE__ */ jsxRuntime.jsx(factory.ark.div, { ...mergedProps });
|
|
18
22
|
});
|
|
19
23
|
HoverCardContent.displayName = "HoverCardContent";
|
|
20
|
-
const HoverCardInnerContent = react.forwardRef(
|
|
21
|
-
function HoverCardInnerContent2(props, ref) {
|
|
22
|
-
const api = hoverCardContext.useHoverCardContext();
|
|
23
|
-
const mergedProps = react$1.mergeProps(api.contentProps, props);
|
|
24
|
-
return /* @__PURE__ */ jsxRuntime.jsx(factory.ark.div, { ...mergedProps, ref });
|
|
25
|
-
}
|
|
26
|
-
);
|
|
27
24
|
|
|
28
25
|
exports.HoverCardContent = HoverCardContent;
|
|
@@ -1,8 +1,6 @@
|
|
|
1
1
|
import { ForwardRefExoticComponent, RefAttributes } from 'react';
|
|
2
2
|
/// <reference types="react" />
|
|
3
3
|
import { type HTMLArkProps } from '../factory';
|
|
4
|
-
|
|
5
|
-
import type { Assign } from '../types';
|
|
6
|
-
export interface HoverCardContentProps extends Assign<HTMLArkProps<'div'>, Omit<PresenceProps, 'children' | 'fallback'>> {
|
|
4
|
+
export interface HoverCardContentProps extends HTMLArkProps<'div'> {
|
|
7
5
|
}
|
|
8
6
|
export declare const HoverCardContent: ForwardRefExoticComponent<HoverCardContentProps & RefAttributes<HTMLDivElement>>;
|
|
@@ -3,22 +3,19 @@ import { jsx } from 'react/jsx-runtime';
|
|
|
3
3
|
import { mergeProps } from '@zag-js/react';
|
|
4
4
|
import { forwardRef } from 'react';
|
|
5
5
|
import { ark } from '../factory.mjs';
|
|
6
|
-
import
|
|
6
|
+
import '../presence/index.mjs';
|
|
7
7
|
import { useHoverCardContext } from './hover-card-context.mjs';
|
|
8
|
-
import {
|
|
8
|
+
import { usePresenceContext } from '../presence/presence-context.mjs';
|
|
9
9
|
|
|
10
10
|
const HoverCardContent = forwardRef((props, ref) => {
|
|
11
|
-
const [presenceProps, localProps] = splitPresenceProps(props);
|
|
12
11
|
const api = useHoverCardContext();
|
|
13
|
-
|
|
12
|
+
const presenceApi = usePresenceContext();
|
|
13
|
+
const mergedProps = mergeProps(api.contentProps, presenceApi.getPresenceProps(ref), props);
|
|
14
|
+
if (presenceApi.isUnmounted) {
|
|
15
|
+
return null;
|
|
16
|
+
}
|
|
17
|
+
return /* @__PURE__ */ jsx(ark.div, { ...mergedProps });
|
|
14
18
|
});
|
|
15
19
|
HoverCardContent.displayName = "HoverCardContent";
|
|
16
|
-
const HoverCardInnerContent = forwardRef(
|
|
17
|
-
function HoverCardInnerContent2(props, ref) {
|
|
18
|
-
const api = useHoverCardContext();
|
|
19
|
-
const mergedProps = mergeProps(api.contentProps, props);
|
|
20
|
-
return /* @__PURE__ */ jsx(ark.div, { ...mergedProps, ref });
|
|
21
|
-
}
|
|
22
|
-
);
|
|
23
20
|
|
|
24
21
|
export { HoverCardContent };
|
|
@@ -7,12 +7,18 @@ const jsxRuntime = require('react/jsx-runtime');
|
|
|
7
7
|
const react$1 = require('@zag-js/react');
|
|
8
8
|
const react = require('react');
|
|
9
9
|
const factory = require('../factory.cjs');
|
|
10
|
+
require('../presence/index.cjs');
|
|
10
11
|
const hoverCardContext = require('./hover-card-context.cjs');
|
|
12
|
+
const presenceContext = require('../presence/presence-context.cjs');
|
|
11
13
|
|
|
12
14
|
const HoverCardPositioner = react.forwardRef(
|
|
13
15
|
(props, ref) => {
|
|
14
16
|
const api = hoverCardContext.useHoverCardContext();
|
|
15
17
|
const mergedProps = react$1.mergeProps(api.positionerProps, props);
|
|
18
|
+
const presenceApi = presenceContext.usePresenceContext();
|
|
19
|
+
if (presenceApi.isUnmounted) {
|
|
20
|
+
return null;
|
|
21
|
+
}
|
|
16
22
|
return /* @__PURE__ */ jsxRuntime.jsx(factory.ark.div, { ...mergedProps, ref });
|
|
17
23
|
}
|
|
18
24
|
);
|
|
@@ -3,12 +3,18 @@ import { jsx } from 'react/jsx-runtime';
|
|
|
3
3
|
import { mergeProps } from '@zag-js/react';
|
|
4
4
|
import { forwardRef } from 'react';
|
|
5
5
|
import { ark } from '../factory.mjs';
|
|
6
|
+
import '../presence/index.mjs';
|
|
6
7
|
import { useHoverCardContext } from './hover-card-context.mjs';
|
|
8
|
+
import { usePresenceContext } from '../presence/presence-context.mjs';
|
|
7
9
|
|
|
8
10
|
const HoverCardPositioner = forwardRef(
|
|
9
11
|
(props, ref) => {
|
|
10
12
|
const api = useHoverCardContext();
|
|
11
13
|
const mergedProps = mergeProps(api.positionerProps, props);
|
|
14
|
+
const presenceApi = usePresenceContext();
|
|
15
|
+
if (presenceApi.isUnmounted) {
|
|
16
|
+
return null;
|
|
17
|
+
}
|
|
12
18
|
return /* @__PURE__ */ jsx(ark.div, { ...mergedProps, ref });
|
|
13
19
|
}
|
|
14
20
|
);
|
|
@@ -5,15 +5,20 @@ Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });
|
|
|
5
5
|
|
|
6
6
|
const jsxRuntime = require('react/jsx-runtime');
|
|
7
7
|
require('react');
|
|
8
|
+
require('../presence/index.cjs');
|
|
9
|
+
const splitPresenceProps = require('../presence/split-presence-props.cjs');
|
|
8
10
|
const runIfFn = require('../run-if-fn.cjs');
|
|
9
11
|
const hoverCardContext = require('./hover-card-context.cjs');
|
|
10
12
|
const useHoverCard = require('./use-hover-card.cjs');
|
|
13
|
+
const usePresence = require('../presence/use-presence.cjs');
|
|
14
|
+
const presenceContext = require('../presence/presence-context.cjs');
|
|
11
15
|
|
|
12
16
|
const HoverCard = (props) => {
|
|
13
|
-
const { children, ...
|
|
14
|
-
const api = useHoverCard.useHoverCard(
|
|
17
|
+
const [presenceProps, { children, ...localProps }] = splitPresenceProps.splitPresenceProps(props);
|
|
18
|
+
const api = useHoverCard.useHoverCard(localProps);
|
|
19
|
+
const presenceApi = usePresence.usePresence({ ...presenceProps, present: api.isOpen });
|
|
15
20
|
const view = runIfFn.runIfFn(children, api);
|
|
16
|
-
return /* @__PURE__ */ jsxRuntime.jsx(hoverCardContext.HoverCardProvider, { value: api, children: view });
|
|
21
|
+
return /* @__PURE__ */ jsxRuntime.jsx(hoverCardContext.HoverCardProvider, { value: api, children: /* @__PURE__ */ jsxRuntime.jsx(presenceContext.PresenceProvider, { value: presenceApi, children: view }) });
|
|
17
22
|
};
|
|
18
23
|
|
|
19
24
|
exports.HoverCard = HoverCard;
|
|
@@ -1,10 +1,8 @@
|
|
|
1
1
|
import { JSX } from 'react/jsx-runtime';
|
|
2
2
|
import { type ReactNode } from 'react';
|
|
3
|
-
import type {
|
|
4
|
-
import { type
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
children?: ReactNode | ((props: HoverCardContext) => ReactNode);
|
|
8
|
-
}> {
|
|
3
|
+
import type { UsePresenceProps } from '../presence';
|
|
4
|
+
import { type UseHoverCardProps, type UseHoverCardReturn } from './use-hover-card';
|
|
5
|
+
export interface HoverCardProps extends UseHoverCardProps, UsePresenceProps {
|
|
6
|
+
children?: ReactNode | ((api: UseHoverCardReturn) => ReactNode);
|
|
9
7
|
}
|
|
10
8
|
export declare const HoverCard: (props: HoverCardProps) => JSX.Element;
|
|
@@ -1,15 +1,20 @@
|
|
|
1
1
|
'use client';
|
|
2
2
|
import { jsx } from 'react/jsx-runtime';
|
|
3
3
|
import 'react';
|
|
4
|
+
import '../presence/index.mjs';
|
|
5
|
+
import { splitPresenceProps } from '../presence/split-presence-props.mjs';
|
|
4
6
|
import { runIfFn } from '../run-if-fn.mjs';
|
|
5
7
|
import { HoverCardProvider } from './hover-card-context.mjs';
|
|
6
8
|
import { useHoverCard } from './use-hover-card.mjs';
|
|
9
|
+
import { usePresence } from '../presence/use-presence.mjs';
|
|
10
|
+
import { PresenceProvider } from '../presence/presence-context.mjs';
|
|
7
11
|
|
|
8
12
|
const HoverCard = (props) => {
|
|
9
|
-
const { children, ...
|
|
10
|
-
const api = useHoverCard(
|
|
13
|
+
const [presenceProps, { children, ...localProps }] = splitPresenceProps(props);
|
|
14
|
+
const api = useHoverCard(localProps);
|
|
15
|
+
const presenceApi = usePresence({ ...presenceProps, present: api.isOpen });
|
|
11
16
|
const view = runIfFn(children, api);
|
|
12
|
-
return /* @__PURE__ */ jsx(HoverCardProvider, { value: api, children: view });
|
|
17
|
+
return /* @__PURE__ */ jsx(HoverCardProvider, { value: api, children: /* @__PURE__ */ jsx(PresenceProvider, { value: presenceApi, children: view }) });
|
|
13
18
|
};
|
|
14
19
|
|
|
15
20
|
export { HoverCard };
|
package/index.cjs
CHANGED
|
@@ -179,7 +179,10 @@ const popoverPositioner = require('./popover/popover-positioner.cjs');
|
|
|
179
179
|
const popoverTitle = require('./popover/popover-title.cjs');
|
|
180
180
|
const popoverTrigger = require('./popover/popover-trigger.cjs');
|
|
181
181
|
const popoverContext = require('./popover/popover-context.cjs');
|
|
182
|
+
const presencePropsContext = require('./presence/presence-props-context.cjs');
|
|
183
|
+
const presenceContext = require('./presence/presence-context.cjs');
|
|
182
184
|
const splitPresenceProps = require('./presence/split-presence-props.cjs');
|
|
185
|
+
const usePresence = require('./presence/use-presence.cjs');
|
|
183
186
|
const radioGroupItem = require('./radio-group/radio-group-item.cjs');
|
|
184
187
|
const radioGroupItemControl = require('./radio-group/radio-group-item-control.cjs');
|
|
185
188
|
const radioGroupItemText = require('./radio-group/radio-group-item-text.cjs');
|
|
@@ -437,7 +440,12 @@ exports.PopoverPositioner = popoverPositioner.PopoverPositioner;
|
|
|
437
440
|
exports.PopoverTitle = popoverTitle.PopoverTitle;
|
|
438
441
|
exports.PopoverTrigger = popoverTrigger.PopoverTrigger;
|
|
439
442
|
exports.usePopoverContext = popoverContext.usePopoverContext;
|
|
443
|
+
exports.PresencePropsProvider = presencePropsContext.PresencePropsProvider;
|
|
444
|
+
exports.usePresencePropsContext = presencePropsContext.usePresencePropsContext;
|
|
445
|
+
exports.PresenceProvider = presenceContext.PresenceProvider;
|
|
446
|
+
exports.usePresenceContext = presenceContext.usePresenceContext;
|
|
440
447
|
exports.splitPresenceProps = splitPresenceProps.splitPresenceProps;
|
|
448
|
+
exports.usePresence = usePresence.usePresence;
|
|
441
449
|
exports.RadioGroupItem = radioGroupItem.RadioGroupItem;
|
|
442
450
|
exports.RadioGroupItemControl = radioGroupItemControl.RadioGroupItemControl;
|
|
443
451
|
exports.RadioGroupItemText = radioGroupItemText.RadioGroupItemText;
|
package/index.mjs
CHANGED
|
@@ -175,7 +175,10 @@ export { PopoverPositioner } from './popover/popover-positioner.mjs';
|
|
|
175
175
|
export { PopoverTitle } from './popover/popover-title.mjs';
|
|
176
176
|
export { PopoverTrigger } from './popover/popover-trigger.mjs';
|
|
177
177
|
export { usePopoverContext } from './popover/popover-context.mjs';
|
|
178
|
+
export { PresencePropsProvider, usePresencePropsContext } from './presence/presence-props-context.mjs';
|
|
179
|
+
export { PresenceProvider, usePresenceContext } from './presence/presence-context.mjs';
|
|
178
180
|
export { splitPresenceProps } from './presence/split-presence-props.mjs';
|
|
181
|
+
export { usePresence } from './presence/use-presence.mjs';
|
|
179
182
|
export { RadioGroupItem } from './radio-group/radio-group-item.mjs';
|
|
180
183
|
export { RadioGroupItemControl } from './radio-group/radio-group-item-control.mjs';
|
|
181
184
|
export { RadioGroupItemText } from './radio-group/radio-group-item-text.mjs';
|
package/menu/menu-content.cjs
CHANGED
|
@@ -7,22 +7,19 @@ const jsxRuntime = require('react/jsx-runtime');
|
|
|
7
7
|
const react$1 = require('@zag-js/react');
|
|
8
8
|
const react = require('react');
|
|
9
9
|
const factory = require('../factory.cjs');
|
|
10
|
-
|
|
10
|
+
require('../presence/index.cjs');
|
|
11
11
|
const menuContext = require('./menu-context.cjs');
|
|
12
|
-
const
|
|
12
|
+
const presenceContext = require('../presence/presence-context.cjs');
|
|
13
13
|
|
|
14
14
|
const MenuContent = react.forwardRef((props, ref) => {
|
|
15
|
-
const [presenceProps, localProps] = splitPresenceProps.splitPresenceProps(props);
|
|
16
15
|
const api = menuContext.useMenuContext();
|
|
17
|
-
|
|
16
|
+
const presenceApi = presenceContext.usePresenceContext();
|
|
17
|
+
const mergedProps = react$1.mergeProps(api?.contentProps ?? {}, presenceApi.getPresenceProps(ref), props);
|
|
18
|
+
if (presenceApi.isUnmounted) {
|
|
19
|
+
return null;
|
|
20
|
+
}
|
|
21
|
+
return /* @__PURE__ */ jsxRuntime.jsx(factory.ark.div, { ...mergedProps });
|
|
18
22
|
});
|
|
19
23
|
MenuContent.displayName = "MenuContent";
|
|
20
|
-
const MenuInnerContent = react.forwardRef(
|
|
21
|
-
function MenuInnerContent2(props, ref) {
|
|
22
|
-
const api = menuContext.useMenuContext();
|
|
23
|
-
const mergedProps = react$1.mergeProps(api?.contentProps ?? {}, props);
|
|
24
|
-
return /* @__PURE__ */ jsxRuntime.jsx(factory.ark.div, { ...mergedProps, ref });
|
|
25
|
-
}
|
|
26
|
-
);
|
|
27
24
|
|
|
28
25
|
exports.MenuContent = MenuContent;
|
package/menu/menu-content.d.ts
CHANGED
|
@@ -1,8 +1,6 @@
|
|
|
1
1
|
import { ForwardRefExoticComponent, RefAttributes } from 'react';
|
|
2
2
|
/// <reference types="react" />
|
|
3
3
|
import { type HTMLArkProps } from '../factory';
|
|
4
|
-
|
|
5
|
-
import type { Assign } from '../types';
|
|
6
|
-
export interface MenuContentProps extends Assign<HTMLArkProps<'div'>, Omit<PresenceProps, 'children' | 'fallback'>> {
|
|
4
|
+
export interface MenuContentProps extends HTMLArkProps<'div'> {
|
|
7
5
|
}
|
|
8
6
|
export declare const MenuContent: ForwardRefExoticComponent<MenuContentProps & RefAttributes<HTMLDivElement>>;
|