@ark-ui/react 4.0.0 → 4.1.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/color-picker/color-picker-content.cjs +3 -2
- package/dist/components/color-picker/color-picker-content.js +3 -2
- package/dist/components/combobox/combobox-content.cjs +3 -2
- package/dist/components/combobox/combobox-content.js +3 -2
- package/dist/components/date-picker/date-picker-content.cjs +3 -6
- package/dist/components/date-picker/date-picker-content.js +3 -6
- package/dist/components/dialog/dialog-backdrop.cjs +3 -2
- package/dist/components/dialog/dialog-backdrop.js +3 -2
- package/dist/components/dialog/dialog-content.cjs +3 -2
- package/dist/components/dialog/dialog-content.js +3 -2
- package/dist/components/factory.cjs +12 -4
- package/dist/components/factory.js +12 -4
- package/dist/components/field/field-textarea.cjs +2 -2
- package/dist/components/field/field-textarea.js +1 -1
- package/dist/components/file-upload/file-upload-item-preview-image.cjs +1 -1
- package/dist/components/file-upload/file-upload-item-preview-image.js +1 -1
- package/dist/components/hover-card/hover-card-content.cjs +3 -2
- package/dist/components/hover-card/hover-card-content.js +3 -2
- package/dist/components/index.cjs +14 -0
- package/dist/components/index.d.cts +1 -0
- package/dist/components/index.d.ts +1 -0
- package/dist/components/index.js +8 -0
- package/dist/components/menu/menu-content.cjs +3 -2
- package/dist/components/menu/menu-content.js +3 -2
- package/dist/components/popover/popover-content.cjs +3 -2
- package/dist/components/popover/popover-content.js +3 -2
- package/dist/components/presence/presence.cjs +4 -2
- package/dist/components/presence/presence.js +4 -2
- package/dist/components/presence/use-presence.cjs +2 -3
- package/dist/components/presence/use-presence.d.cts +2 -3
- package/dist/components/presence/use-presence.d.ts +2 -3
- package/dist/components/presence/use-presence.js +2 -3
- package/dist/components/select/select-content.cjs +3 -2
- package/dist/components/select/select-content.js +3 -2
- package/dist/components/tabs/tab-content.cjs +3 -2
- package/dist/components/tabs/tab-content.js +3 -2
- package/dist/components/time-picker/time-picker-content.cjs +3 -6
- package/dist/components/time-picker/time-picker-content.js +3 -6
- package/dist/components/toggle/index.cjs +21 -0
- package/dist/components/toggle/index.d.cts +7 -0
- package/dist/components/toggle/index.d.ts +7 -0
- package/dist/components/toggle/index.js +8 -0
- package/dist/components/toggle/toggle-context.cjs +10 -0
- package/dist/components/toggle/toggle-context.d.cts +6 -0
- package/dist/components/toggle/toggle-context.d.ts +6 -0
- package/dist/components/toggle/toggle-context.js +6 -0
- package/dist/components/toggle/toggle-indicator.cjs +20 -0
- package/dist/components/toggle/toggle-indicator.d.cts +11 -0
- package/dist/components/toggle/toggle-indicator.d.ts +11 -0
- package/dist/components/toggle/toggle-indicator.js +16 -0
- package/dist/components/toggle/toggle-root.cjs +27 -0
- package/dist/components/toggle/toggle-root.d.cts +8 -0
- package/dist/components/toggle/toggle-root.d.ts +8 -0
- package/dist/components/toggle/toggle-root.js +23 -0
- package/dist/components/toggle/toggle.anatomy.cjs +12 -0
- package/dist/components/toggle/toggle.anatomy.d.cts +3 -0
- package/dist/components/toggle/toggle.anatomy.d.ts +3 -0
- package/dist/components/toggle/toggle.anatomy.js +7 -0
- package/dist/components/toggle/toggle.cjs +15 -0
- package/dist/components/toggle/toggle.d.cts +4 -0
- package/dist/components/toggle/toggle.d.ts +4 -0
- package/dist/components/toggle/toggle.js +4 -0
- package/dist/components/toggle/use-toggle-context.cjs +15 -0
- package/dist/components/toggle/use-toggle-context.d.cts +5 -0
- package/dist/components/toggle/use-toggle-context.d.ts +5 -0
- package/dist/components/toggle/use-toggle-context.js +10 -0
- package/dist/components/toggle/use-toggle.cjs +48 -0
- package/dist/components/toggle/use-toggle.d.cts +35 -0
- package/dist/components/toggle/use-toggle.d.ts +35 -0
- package/dist/components/toggle/use-toggle.js +44 -0
- package/dist/components/tooltip/tooltip-content.cjs +3 -2
- package/dist/components/tooltip/tooltip-content.js +3 -2
- package/dist/index.cjs +14 -0
- package/dist/index.js +8 -0
- package/dist/utils/compose-refs.d.cts +2 -2
- package/dist/utils/compose-refs.d.ts +2 -2
- package/package.json +58 -58
|
@@ -2,7 +2,6 @@
|
|
|
2
2
|
import * as presence from '@zag-js/presence';
|
|
3
3
|
import { useMachine, normalizeProps } from '@zag-js/react';
|
|
4
4
|
import { useRef } from 'react';
|
|
5
|
-
import { composeRefs } from '../../utils/compose-refs.js';
|
|
6
5
|
import { useEvent } from '../../utils/use-event.js';
|
|
7
6
|
|
|
8
7
|
const usePresence = (props) => {
|
|
@@ -18,12 +17,12 @@ const usePresence = (props) => {
|
|
|
18
17
|
wasEverPresent.current = true;
|
|
19
18
|
}
|
|
20
19
|
const unmounted = !api.present && !wasEverPresent.current && lazyMount || unmountOnExit && !api.present && wasEverPresent.current;
|
|
21
|
-
const getPresenceProps = (
|
|
22
|
-
ref: composeRefs(api.setNode, ref),
|
|
20
|
+
const getPresenceProps = () => ({
|
|
23
21
|
"data-state": props.present ? "open" : "closed",
|
|
24
22
|
hidden: !api.present
|
|
25
23
|
});
|
|
26
24
|
return {
|
|
25
|
+
ref: api.setNode,
|
|
27
26
|
getPresenceProps,
|
|
28
27
|
present: api.present,
|
|
29
28
|
unmounted
|
|
@@ -6,6 +6,7 @@ Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });
|
|
|
6
6
|
const jsxRuntime = require('react/jsx-runtime');
|
|
7
7
|
const react$1 = require('@zag-js/react');
|
|
8
8
|
const react = require('react');
|
|
9
|
+
const composeRefs = require('../../utils/compose-refs.cjs');
|
|
9
10
|
const factory = require('../factory.cjs');
|
|
10
11
|
const usePresenceContext = require('../presence/use-presence-context.cjs');
|
|
11
12
|
const useSelectContext = require('./use-select-context.cjs');
|
|
@@ -13,11 +14,11 @@ const useSelectContext = require('./use-select-context.cjs');
|
|
|
13
14
|
const SelectContent = react.forwardRef((props, ref) => {
|
|
14
15
|
const select = useSelectContext.useSelectContext();
|
|
15
16
|
const presence = usePresenceContext.usePresenceContext();
|
|
16
|
-
const mergedProps = react$1.mergeProps(select.getContentProps(), presence.getPresenceProps(
|
|
17
|
+
const mergedProps = react$1.mergeProps(select.getContentProps(), presence.getPresenceProps(), props);
|
|
17
18
|
if (presence.unmounted) {
|
|
18
19
|
return null;
|
|
19
20
|
}
|
|
20
|
-
return /* @__PURE__ */ jsxRuntime.jsx(factory.ark.div, { ...mergedProps });
|
|
21
|
+
return /* @__PURE__ */ jsxRuntime.jsx(factory.ark.div, { ...mergedProps, ref: composeRefs.composeRefs(presence.ref, ref) });
|
|
21
22
|
});
|
|
22
23
|
SelectContent.displayName = "SelectContent";
|
|
23
24
|
|
|
@@ -2,6 +2,7 @@
|
|
|
2
2
|
import { jsx } from 'react/jsx-runtime';
|
|
3
3
|
import { mergeProps } from '@zag-js/react';
|
|
4
4
|
import { forwardRef } from 'react';
|
|
5
|
+
import { composeRefs } from '../../utils/compose-refs.js';
|
|
5
6
|
import { ark } from '../factory.js';
|
|
6
7
|
import { usePresenceContext } from '../presence/use-presence-context.js';
|
|
7
8
|
import { useSelectContext } from './use-select-context.js';
|
|
@@ -9,11 +10,11 @@ import { useSelectContext } from './use-select-context.js';
|
|
|
9
10
|
const SelectContent = forwardRef((props, ref) => {
|
|
10
11
|
const select = useSelectContext();
|
|
11
12
|
const presence = usePresenceContext();
|
|
12
|
-
const mergedProps = mergeProps(select.getContentProps(), presence.getPresenceProps(
|
|
13
|
+
const mergedProps = mergeProps(select.getContentProps(), presence.getPresenceProps(), props);
|
|
13
14
|
if (presence.unmounted) {
|
|
14
15
|
return null;
|
|
15
16
|
}
|
|
16
|
-
return /* @__PURE__ */ jsx(ark.div, { ...mergedProps });
|
|
17
|
+
return /* @__PURE__ */ jsx(ark.div, { ...mergedProps, ref: composeRefs(presence.ref, ref) });
|
|
17
18
|
});
|
|
18
19
|
SelectContent.displayName = "SelectContent";
|
|
19
20
|
|
|
@@ -6,6 +6,7 @@ Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });
|
|
|
6
6
|
const jsxRuntime = require('react/jsx-runtime');
|
|
7
7
|
const react$1 = require('@zag-js/react');
|
|
8
8
|
const react = require('react');
|
|
9
|
+
const composeRefs = require('../../utils/compose-refs.cjs');
|
|
9
10
|
const createSplitProps = require('../../utils/create-split-props.cjs');
|
|
10
11
|
const renderStrategy = require('../../utils/render-strategy.cjs');
|
|
11
12
|
const factory = require('../factory.cjs');
|
|
@@ -24,10 +25,10 @@ const TabContent = react.forwardRef((props, ref) => {
|
|
|
24
25
|
});
|
|
25
26
|
const mergedProps = react$1.mergeProps(
|
|
26
27
|
tabs.getContentProps(contentProps),
|
|
27
|
-
presence.getPresenceProps(
|
|
28
|
+
presence.getPresenceProps(),
|
|
28
29
|
localProps
|
|
29
30
|
);
|
|
30
|
-
return /* @__PURE__ */ jsxRuntime.jsx(usePresenceContext.PresenceProvider, { value: presence, children: presence.unmounted ? null : /* @__PURE__ */ jsxRuntime.jsx(factory.ark.div, { ...mergedProps }) });
|
|
31
|
+
return /* @__PURE__ */ jsxRuntime.jsx(usePresenceContext.PresenceProvider, { value: presence, children: presence.unmounted ? null : /* @__PURE__ */ jsxRuntime.jsx(factory.ark.div, { ...mergedProps, ref: composeRefs.composeRefs(presence.ref, ref) }) });
|
|
31
32
|
});
|
|
32
33
|
TabContent.displayName = "TabContent";
|
|
33
34
|
|
|
@@ -2,6 +2,7 @@
|
|
|
2
2
|
import { jsx } from 'react/jsx-runtime';
|
|
3
3
|
import { mergeProps } from '@zag-js/react';
|
|
4
4
|
import { forwardRef } from 'react';
|
|
5
|
+
import { composeRefs } from '../../utils/compose-refs.js';
|
|
5
6
|
import { createSplitProps } from '../../utils/create-split-props.js';
|
|
6
7
|
import { useRenderStrategyPropsContext } from '../../utils/render-strategy.js';
|
|
7
8
|
import { ark } from '../factory.js';
|
|
@@ -20,10 +21,10 @@ const TabContent = forwardRef((props, ref) => {
|
|
|
20
21
|
});
|
|
21
22
|
const mergedProps = mergeProps(
|
|
22
23
|
tabs.getContentProps(contentProps),
|
|
23
|
-
presence.getPresenceProps(
|
|
24
|
+
presence.getPresenceProps(),
|
|
24
25
|
localProps
|
|
25
26
|
);
|
|
26
|
-
return /* @__PURE__ */ jsx(PresenceProvider, { value: presence, children: presence.unmounted ? null : /* @__PURE__ */ jsx(ark.div, { ...mergedProps }) });
|
|
27
|
+
return /* @__PURE__ */ jsx(PresenceProvider, { value: presence, children: presence.unmounted ? null : /* @__PURE__ */ jsx(ark.div, { ...mergedProps, ref: composeRefs(presence.ref, ref) }) });
|
|
27
28
|
});
|
|
28
29
|
TabContent.displayName = "TabContent";
|
|
29
30
|
|
|
@@ -6,6 +6,7 @@ Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });
|
|
|
6
6
|
const jsxRuntime = require('react/jsx-runtime');
|
|
7
7
|
const react$1 = require('@zag-js/react');
|
|
8
8
|
const react = require('react');
|
|
9
|
+
const composeRefs = require('../../utils/compose-refs.cjs');
|
|
9
10
|
const factory = require('../factory.cjs');
|
|
10
11
|
const usePresenceContext = require('../presence/use-presence-context.cjs');
|
|
11
12
|
const useTimePickerContext = require('./use-time-picker-context.cjs');
|
|
@@ -14,15 +15,11 @@ const TimePickerContent = react.forwardRef(
|
|
|
14
15
|
(props, ref) => {
|
|
15
16
|
const timePicker = useTimePickerContext.useTimePickerContext();
|
|
16
17
|
const presence = usePresenceContext.usePresenceContext();
|
|
17
|
-
const mergedProps = react$1.mergeProps(
|
|
18
|
-
timePicker.getContentProps(),
|
|
19
|
-
presence.getPresenceProps(ref),
|
|
20
|
-
props
|
|
21
|
-
);
|
|
18
|
+
const mergedProps = react$1.mergeProps(timePicker.getContentProps(), presence.getPresenceProps(), props);
|
|
22
19
|
if (presence.unmounted) {
|
|
23
20
|
return null;
|
|
24
21
|
}
|
|
25
|
-
return /* @__PURE__ */ jsxRuntime.jsx(factory.ark.div, { ...mergedProps, ref });
|
|
22
|
+
return /* @__PURE__ */ jsxRuntime.jsx(factory.ark.div, { ...mergedProps, ref: composeRefs.composeRefs(presence.ref, ref) });
|
|
26
23
|
}
|
|
27
24
|
);
|
|
28
25
|
TimePickerContent.displayName = "TimePickerContent";
|
|
@@ -2,6 +2,7 @@
|
|
|
2
2
|
import { jsx } from 'react/jsx-runtime';
|
|
3
3
|
import { mergeProps } from '@zag-js/react';
|
|
4
4
|
import { forwardRef } from 'react';
|
|
5
|
+
import { composeRefs } from '../../utils/compose-refs.js';
|
|
5
6
|
import { ark } from '../factory.js';
|
|
6
7
|
import { usePresenceContext } from '../presence/use-presence-context.js';
|
|
7
8
|
import { useTimePickerContext } from './use-time-picker-context.js';
|
|
@@ -10,15 +11,11 @@ const TimePickerContent = forwardRef(
|
|
|
10
11
|
(props, ref) => {
|
|
11
12
|
const timePicker = useTimePickerContext();
|
|
12
13
|
const presence = usePresenceContext();
|
|
13
|
-
const mergedProps = mergeProps(
|
|
14
|
-
timePicker.getContentProps(),
|
|
15
|
-
presence.getPresenceProps(ref),
|
|
16
|
-
props
|
|
17
|
-
);
|
|
14
|
+
const mergedProps = mergeProps(timePicker.getContentProps(), presence.getPresenceProps(), props);
|
|
18
15
|
if (presence.unmounted) {
|
|
19
16
|
return null;
|
|
20
17
|
}
|
|
21
|
-
return /* @__PURE__ */ jsx(ark.div, { ...mergedProps, ref });
|
|
18
|
+
return /* @__PURE__ */ jsx(ark.div, { ...mergedProps, ref: composeRefs(presence.ref, ref) });
|
|
22
19
|
}
|
|
23
20
|
);
|
|
24
21
|
TimePickerContent.displayName = "TimePickerContent";
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
'use strict';
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });
|
|
4
|
+
|
|
5
|
+
const toggleContext = require('./toggle-context.cjs');
|
|
6
|
+
const toggleIndicator = require('./toggle-indicator.cjs');
|
|
7
|
+
const toggleRoot = require('./toggle-root.cjs');
|
|
8
|
+
const toggle_anatomy = require('./toggle.anatomy.cjs');
|
|
9
|
+
const useToggle = require('./use-toggle.cjs');
|
|
10
|
+
const useToggleContext = require('./use-toggle-context.cjs');
|
|
11
|
+
const toggle = require('./toggle.cjs');
|
|
12
|
+
|
|
13
|
+
|
|
14
|
+
|
|
15
|
+
exports.ToggleContext = toggleContext.ToggleContext;
|
|
16
|
+
exports.ToggleIndicator = toggleIndicator.ToggleIndicator;
|
|
17
|
+
exports.ToggleRoot = toggleRoot.ToggleRoot;
|
|
18
|
+
exports.toggleAnatomy = toggle_anatomy.toggleAnatomy;
|
|
19
|
+
exports.useToggle = useToggle.useToggle;
|
|
20
|
+
exports.useToggleContext = useToggleContext.useToggleContext;
|
|
21
|
+
exports.Toggle = toggle;
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
export { ToggleContext, type ToggleContextProps } from './toggle-context';
|
|
2
|
+
export { ToggleIndicator, type ToggleIndicatorProps, type ToggleIndicatorBaseProps, } from './toggle-indicator';
|
|
3
|
+
export { ToggleRoot, type ToggleRootBaseProps, type ToggleRootProps } from './toggle-root';
|
|
4
|
+
export { toggleAnatomy } from './toggle.anatomy';
|
|
5
|
+
export { useToggle, type UseToggleProps, type UseToggleReturn } from './use-toggle';
|
|
6
|
+
export { useToggleContext, type UseToggleContext } from './use-toggle-context';
|
|
7
|
+
export * as Toggle from './toggle';
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
export { ToggleContext, type ToggleContextProps } from './toggle-context';
|
|
2
|
+
export { ToggleIndicator, type ToggleIndicatorProps, type ToggleIndicatorBaseProps, } from './toggle-indicator';
|
|
3
|
+
export { ToggleRoot, type ToggleRootBaseProps, type ToggleRootProps } from './toggle-root';
|
|
4
|
+
export { toggleAnatomy } from './toggle.anatomy';
|
|
5
|
+
export { useToggle, type UseToggleProps, type UseToggleReturn } from './use-toggle';
|
|
6
|
+
export { useToggleContext, type UseToggleContext } from './use-toggle-context';
|
|
7
|
+
export * as Toggle from './toggle';
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
export { ToggleContext } from './toggle-context.js';
|
|
2
|
+
export { ToggleIndicator } from './toggle-indicator.js';
|
|
3
|
+
export { ToggleRoot } from './toggle-root.js';
|
|
4
|
+
export { toggleAnatomy } from './toggle.anatomy.js';
|
|
5
|
+
export { useToggle } from './use-toggle.js';
|
|
6
|
+
export { useToggleContext } from './use-toggle-context.js';
|
|
7
|
+
import * as toggle from './toggle.js';
|
|
8
|
+
export { toggle as Toggle };
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
'use client';
|
|
2
|
+
'use strict';
|
|
3
|
+
|
|
4
|
+
Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });
|
|
5
|
+
|
|
6
|
+
const useToggleContext = require('./use-toggle-context.cjs');
|
|
7
|
+
|
|
8
|
+
const ToggleContext = (props) => props.children(useToggleContext.useToggleContext());
|
|
9
|
+
|
|
10
|
+
exports.ToggleContext = ToggleContext;
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
import { ReactNode } from 'react';
|
|
2
|
+
import { UseToggleContext } from './use-toggle-context';
|
|
3
|
+
export interface ToggleContextProps {
|
|
4
|
+
children: (context: UseToggleContext) => ReactNode;
|
|
5
|
+
}
|
|
6
|
+
export declare const ToggleContext: (props: ToggleContextProps) => ReactNode;
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
import { ReactNode } from 'react';
|
|
2
|
+
import { UseToggleContext } from './use-toggle-context';
|
|
3
|
+
export interface ToggleContextProps {
|
|
4
|
+
children: (context: UseToggleContext) => ReactNode;
|
|
5
|
+
}
|
|
6
|
+
export declare const ToggleContext: (props: ToggleContextProps) => ReactNode;
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
'use client';
|
|
2
|
+
'use strict';
|
|
3
|
+
|
|
4
|
+
Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });
|
|
5
|
+
|
|
6
|
+
const jsxRuntime = require('react/jsx-runtime');
|
|
7
|
+
const react$1 = require('@zag-js/react');
|
|
8
|
+
const react = require('react');
|
|
9
|
+
const factory = require('../factory.cjs');
|
|
10
|
+
const useToggleContext = require('./use-toggle-context.cjs');
|
|
11
|
+
|
|
12
|
+
const ToggleIndicator = react.forwardRef((props, ref) => {
|
|
13
|
+
const { children, fallback, ...restProps } = props;
|
|
14
|
+
const toggle = useToggleContext.useToggleContext();
|
|
15
|
+
const mergedProps = react$1.mergeProps(toggle.getIndicatorProps(), restProps);
|
|
16
|
+
return /* @__PURE__ */ jsxRuntime.jsx(factory.ark.div, { ...mergedProps, ref, children: toggle.pressed ? children : fallback });
|
|
17
|
+
});
|
|
18
|
+
ToggleIndicator.displayName = "ToggleIndicator";
|
|
19
|
+
|
|
20
|
+
exports.ToggleIndicator = ToggleIndicator;
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
import { HTMLArkProps } from '../factory';
|
|
2
|
+
import { ForwardRefExoticComponent, RefAttributes } from 'react';
|
|
3
|
+
export interface ToggleIndicatorBaseProps {
|
|
4
|
+
/**
|
|
5
|
+
* The fallback content to render when the toggle is not pressed.
|
|
6
|
+
*/
|
|
7
|
+
fallback?: React.ReactNode;
|
|
8
|
+
}
|
|
9
|
+
export interface ToggleIndicatorProps extends HTMLArkProps<'div'>, ToggleIndicatorBaseProps {
|
|
10
|
+
}
|
|
11
|
+
export declare const ToggleIndicator: ForwardRefExoticComponent<ToggleIndicatorProps & RefAttributes<HTMLDivElement>>;
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
import { HTMLArkProps } from '../factory';
|
|
2
|
+
import { ForwardRefExoticComponent, RefAttributes } from 'react';
|
|
3
|
+
export interface ToggleIndicatorBaseProps {
|
|
4
|
+
/**
|
|
5
|
+
* The fallback content to render when the toggle is not pressed.
|
|
6
|
+
*/
|
|
7
|
+
fallback?: React.ReactNode;
|
|
8
|
+
}
|
|
9
|
+
export interface ToggleIndicatorProps extends HTMLArkProps<'div'>, ToggleIndicatorBaseProps {
|
|
10
|
+
}
|
|
11
|
+
export declare const ToggleIndicator: ForwardRefExoticComponent<ToggleIndicatorProps & RefAttributes<HTMLDivElement>>;
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
'use client';
|
|
2
|
+
import { jsx } from 'react/jsx-runtime';
|
|
3
|
+
import { mergeProps } from '@zag-js/react';
|
|
4
|
+
import { forwardRef } from 'react';
|
|
5
|
+
import { ark } from '../factory.js';
|
|
6
|
+
import { useToggleContext } from './use-toggle-context.js';
|
|
7
|
+
|
|
8
|
+
const ToggleIndicator = forwardRef((props, ref) => {
|
|
9
|
+
const { children, fallback, ...restProps } = props;
|
|
10
|
+
const toggle = useToggleContext();
|
|
11
|
+
const mergedProps = mergeProps(toggle.getIndicatorProps(), restProps);
|
|
12
|
+
return /* @__PURE__ */ jsx(ark.div, { ...mergedProps, ref, children: toggle.pressed ? children : fallback });
|
|
13
|
+
});
|
|
14
|
+
ToggleIndicator.displayName = "ToggleIndicator";
|
|
15
|
+
|
|
16
|
+
export { ToggleIndicator };
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
'use client';
|
|
2
|
+
'use strict';
|
|
3
|
+
|
|
4
|
+
Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });
|
|
5
|
+
|
|
6
|
+
const jsxRuntime = require('react/jsx-runtime');
|
|
7
|
+
const react$1 = require('@zag-js/react');
|
|
8
|
+
const react = require('react');
|
|
9
|
+
const createSplitProps = require('../../utils/create-split-props.cjs');
|
|
10
|
+
const factory = require('../factory.cjs');
|
|
11
|
+
const useToggle = require('./use-toggle.cjs');
|
|
12
|
+
const useToggleContext = require('./use-toggle-context.cjs');
|
|
13
|
+
|
|
14
|
+
const ToggleRoot = react.forwardRef((props, ref) => {
|
|
15
|
+
const [useToggleProps, localProps] = createSplitProps.createSplitProps()(props, [
|
|
16
|
+
"pressed",
|
|
17
|
+
"defaultPressed",
|
|
18
|
+
"disabled",
|
|
19
|
+
"onPressedChange"
|
|
20
|
+
]);
|
|
21
|
+
const toggle = useToggle.useToggle(useToggleProps);
|
|
22
|
+
const mergedProps = react$1.mergeProps(toggle.getRootProps(), localProps);
|
|
23
|
+
return /* @__PURE__ */ jsxRuntime.jsx(useToggleContext.ToggleProvider, { value: toggle, children: /* @__PURE__ */ jsxRuntime.jsx(factory.ark.button, { ...mergedProps, ref }) });
|
|
24
|
+
});
|
|
25
|
+
ToggleRoot.displayName = "ToggleRoot";
|
|
26
|
+
|
|
27
|
+
exports.ToggleRoot = ToggleRoot;
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
import { HTMLProps, PolymorphicProps } from '../factory';
|
|
2
|
+
import { UseToggleProps } from './use-toggle';
|
|
3
|
+
import { ForwardRefExoticComponent, RefAttributes } from 'react';
|
|
4
|
+
export interface ToggleRootBaseProps extends UseToggleProps, PolymorphicProps {
|
|
5
|
+
}
|
|
6
|
+
export interface ToggleRootProps extends HTMLProps<'button'>, ToggleRootBaseProps {
|
|
7
|
+
}
|
|
8
|
+
export declare const ToggleRoot: ForwardRefExoticComponent<ToggleRootProps & RefAttributes<HTMLButtonElement>>;
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
import { HTMLProps, PolymorphicProps } from '../factory';
|
|
2
|
+
import { UseToggleProps } from './use-toggle';
|
|
3
|
+
import { ForwardRefExoticComponent, RefAttributes } from 'react';
|
|
4
|
+
export interface ToggleRootBaseProps extends UseToggleProps, PolymorphicProps {
|
|
5
|
+
}
|
|
6
|
+
export interface ToggleRootProps extends HTMLProps<'button'>, ToggleRootBaseProps {
|
|
7
|
+
}
|
|
8
|
+
export declare const ToggleRoot: ForwardRefExoticComponent<ToggleRootProps & RefAttributes<HTMLButtonElement>>;
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
'use client';
|
|
2
|
+
import { jsx } from 'react/jsx-runtime';
|
|
3
|
+
import { mergeProps } from '@zag-js/react';
|
|
4
|
+
import { forwardRef } from 'react';
|
|
5
|
+
import { createSplitProps } from '../../utils/create-split-props.js';
|
|
6
|
+
import { ark } from '../factory.js';
|
|
7
|
+
import { useToggle } from './use-toggle.js';
|
|
8
|
+
import { ToggleProvider } from './use-toggle-context.js';
|
|
9
|
+
|
|
10
|
+
const ToggleRoot = forwardRef((props, ref) => {
|
|
11
|
+
const [useToggleProps, localProps] = createSplitProps()(props, [
|
|
12
|
+
"pressed",
|
|
13
|
+
"defaultPressed",
|
|
14
|
+
"disabled",
|
|
15
|
+
"onPressedChange"
|
|
16
|
+
]);
|
|
17
|
+
const toggle = useToggle(useToggleProps);
|
|
18
|
+
const mergedProps = mergeProps(toggle.getRootProps(), localProps);
|
|
19
|
+
return /* @__PURE__ */ jsx(ToggleProvider, { value: toggle, children: /* @__PURE__ */ jsx(ark.button, { ...mergedProps, ref }) });
|
|
20
|
+
});
|
|
21
|
+
ToggleRoot.displayName = "ToggleRoot";
|
|
22
|
+
|
|
23
|
+
export { ToggleRoot };
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
'use client';
|
|
2
|
+
'use strict';
|
|
3
|
+
|
|
4
|
+
Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });
|
|
5
|
+
|
|
6
|
+
const anatomy = require('@zag-js/anatomy');
|
|
7
|
+
|
|
8
|
+
const toggleAnatomy = anatomy.createAnatomy("toggle", ["root", "indicator"]);
|
|
9
|
+
const parts = toggleAnatomy.build();
|
|
10
|
+
|
|
11
|
+
exports.parts = parts;
|
|
12
|
+
exports.toggleAnatomy = toggleAnatomy;
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
'use strict';
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });
|
|
4
|
+
|
|
5
|
+
const toggleContext = require('./toggle-context.cjs');
|
|
6
|
+
const toggleIndicator = require('./toggle-indicator.cjs');
|
|
7
|
+
const toggleRoot = require('./toggle-root.cjs');
|
|
8
|
+
const toggle_anatomy = require('./toggle.anatomy.cjs');
|
|
9
|
+
|
|
10
|
+
|
|
11
|
+
|
|
12
|
+
exports.Context = toggleContext.ToggleContext;
|
|
13
|
+
exports.Indicator = toggleIndicator.ToggleIndicator;
|
|
14
|
+
exports.Root = toggleRoot.ToggleRoot;
|
|
15
|
+
exports.toggleAnatomy = toggle_anatomy.toggleAnatomy;
|
|
@@ -0,0 +1,4 @@
|
|
|
1
|
+
export { ToggleContext as Context, type ToggleContextProps as ContextProps } from './toggle-context';
|
|
2
|
+
export { ToggleIndicator as Indicator, type ToggleIndicatorProps as IndicatorProps, type ToggleIndicatorBaseProps as IndicatorBaseProps, } from './toggle-indicator';
|
|
3
|
+
export { ToggleRoot as Root, type ToggleRootBaseProps as RootBaseProps, type ToggleRootProps as RootProps, } from './toggle-root';
|
|
4
|
+
export { toggleAnatomy } from './toggle.anatomy';
|
|
@@ -0,0 +1,4 @@
|
|
|
1
|
+
export { ToggleContext as Context, type ToggleContextProps as ContextProps } from './toggle-context';
|
|
2
|
+
export { ToggleIndicator as Indicator, type ToggleIndicatorProps as IndicatorProps, type ToggleIndicatorBaseProps as IndicatorBaseProps, } from './toggle-indicator';
|
|
3
|
+
export { ToggleRoot as Root, type ToggleRootBaseProps as RootBaseProps, type ToggleRootProps as RootProps, } from './toggle-root';
|
|
4
|
+
export { toggleAnatomy } from './toggle.anatomy';
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
'use client';
|
|
2
|
+
'use strict';
|
|
3
|
+
|
|
4
|
+
Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });
|
|
5
|
+
|
|
6
|
+
const createContext = require('../../utils/create-context.cjs');
|
|
7
|
+
|
|
8
|
+
const [ToggleProvider, useToggleContext] = createContext.createContext({
|
|
9
|
+
name: "ToggleContext",
|
|
10
|
+
hookName: "useToggleContext",
|
|
11
|
+
providerName: "<ToggleProvider />"
|
|
12
|
+
});
|
|
13
|
+
|
|
14
|
+
exports.ToggleProvider = ToggleProvider;
|
|
15
|
+
exports.useToggleContext = useToggleContext;
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
'use client';
|
|
2
|
+
import { createContext } from '../../utils/create-context.js';
|
|
3
|
+
|
|
4
|
+
const [ToggleProvider, useToggleContext] = createContext({
|
|
5
|
+
name: "ToggleContext",
|
|
6
|
+
hookName: "useToggleContext",
|
|
7
|
+
providerName: "<ToggleProvider />"
|
|
8
|
+
});
|
|
9
|
+
|
|
10
|
+
export { ToggleProvider, useToggleContext };
|
|
@@ -0,0 +1,48 @@
|
|
|
1
|
+
'use client';
|
|
2
|
+
'use strict';
|
|
3
|
+
|
|
4
|
+
Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });
|
|
5
|
+
|
|
6
|
+
const domQuery = require('@zag-js/dom-query');
|
|
7
|
+
const useControllableState = require('../../utils/use-controllable-state.cjs');
|
|
8
|
+
const toggle_anatomy = require('./toggle.anatomy.cjs');
|
|
9
|
+
|
|
10
|
+
function useToggle(props) {
|
|
11
|
+
const { defaultPressed, pressed, onPressedChange, disabled } = props;
|
|
12
|
+
const [pressedState, setPressedState] = useControllableState.useControllableState({
|
|
13
|
+
defaultValue: !!defaultPressed,
|
|
14
|
+
value: pressed,
|
|
15
|
+
onChange: onPressedChange
|
|
16
|
+
});
|
|
17
|
+
return {
|
|
18
|
+
pressed: pressedState,
|
|
19
|
+
disabled: !!disabled,
|
|
20
|
+
setPressed: setPressedState,
|
|
21
|
+
getRootProps() {
|
|
22
|
+
return {
|
|
23
|
+
...toggle_anatomy.parts.root.attrs,
|
|
24
|
+
type: "button",
|
|
25
|
+
disabled,
|
|
26
|
+
"aria-pressed": pressedState,
|
|
27
|
+
"data-state": pressedState ? "on" : "off",
|
|
28
|
+
"data-pressed": domQuery.dataAttr(pressedState),
|
|
29
|
+
"data-disabled": domQuery.dataAttr(disabled),
|
|
30
|
+
onClick(event) {
|
|
31
|
+
if (event.defaultPrevented) return;
|
|
32
|
+
if (disabled) return;
|
|
33
|
+
setPressedState(!pressedState);
|
|
34
|
+
}
|
|
35
|
+
};
|
|
36
|
+
},
|
|
37
|
+
getIndicatorProps() {
|
|
38
|
+
return {
|
|
39
|
+
...toggle_anatomy.parts.indicator.attrs,
|
|
40
|
+
"data-disabled": domQuery.dataAttr(disabled),
|
|
41
|
+
"data-pressed": domQuery.dataAttr(pressedState),
|
|
42
|
+
"data-state": pressedState ? "on" : "off"
|
|
43
|
+
};
|
|
44
|
+
}
|
|
45
|
+
};
|
|
46
|
+
}
|
|
47
|
+
|
|
48
|
+
exports.useToggle = useToggle;
|
|
@@ -0,0 +1,35 @@
|
|
|
1
|
+
export interface UseToggleProps {
|
|
2
|
+
/**
|
|
3
|
+
* Whether the toggle is disabled.
|
|
4
|
+
*/
|
|
5
|
+
disabled?: boolean;
|
|
6
|
+
/**
|
|
7
|
+
* The default pressed state of the toggle.
|
|
8
|
+
*/
|
|
9
|
+
defaultPressed?: boolean;
|
|
10
|
+
/**
|
|
11
|
+
* The pressed state of the toggle.
|
|
12
|
+
*/
|
|
13
|
+
pressed?: boolean;
|
|
14
|
+
/**
|
|
15
|
+
* Event handler called when the pressed state of the toggle changes.
|
|
16
|
+
*/
|
|
17
|
+
onPressedChange?: (pressed: boolean) => void;
|
|
18
|
+
}
|
|
19
|
+
export interface UseToggleReturn {
|
|
20
|
+
/**
|
|
21
|
+
* Whether the toggle is pressed.
|
|
22
|
+
*/
|
|
23
|
+
pressed: boolean;
|
|
24
|
+
/**
|
|
25
|
+
* Whether the toggle is disabled.
|
|
26
|
+
*/
|
|
27
|
+
disabled: boolean;
|
|
28
|
+
/**
|
|
29
|
+
* Sets the pressed state of the toggle.
|
|
30
|
+
*/
|
|
31
|
+
setPressed(pressed: boolean): void;
|
|
32
|
+
getRootProps(): React.ComponentProps<'button'>;
|
|
33
|
+
getIndicatorProps(): React.ComponentProps<'div'>;
|
|
34
|
+
}
|
|
35
|
+
export declare function useToggle(props: UseToggleProps): UseToggleReturn;
|
|
@@ -0,0 +1,35 @@
|
|
|
1
|
+
export interface UseToggleProps {
|
|
2
|
+
/**
|
|
3
|
+
* Whether the toggle is disabled.
|
|
4
|
+
*/
|
|
5
|
+
disabled?: boolean;
|
|
6
|
+
/**
|
|
7
|
+
* The default pressed state of the toggle.
|
|
8
|
+
*/
|
|
9
|
+
defaultPressed?: boolean;
|
|
10
|
+
/**
|
|
11
|
+
* The pressed state of the toggle.
|
|
12
|
+
*/
|
|
13
|
+
pressed?: boolean;
|
|
14
|
+
/**
|
|
15
|
+
* Event handler called when the pressed state of the toggle changes.
|
|
16
|
+
*/
|
|
17
|
+
onPressedChange?: (pressed: boolean) => void;
|
|
18
|
+
}
|
|
19
|
+
export interface UseToggleReturn {
|
|
20
|
+
/**
|
|
21
|
+
* Whether the toggle is pressed.
|
|
22
|
+
*/
|
|
23
|
+
pressed: boolean;
|
|
24
|
+
/**
|
|
25
|
+
* Whether the toggle is disabled.
|
|
26
|
+
*/
|
|
27
|
+
disabled: boolean;
|
|
28
|
+
/**
|
|
29
|
+
* Sets the pressed state of the toggle.
|
|
30
|
+
*/
|
|
31
|
+
setPressed(pressed: boolean): void;
|
|
32
|
+
getRootProps(): React.ComponentProps<'button'>;
|
|
33
|
+
getIndicatorProps(): React.ComponentProps<'div'>;
|
|
34
|
+
}
|
|
35
|
+
export declare function useToggle(props: UseToggleProps): UseToggleReturn;
|