@ark-ui/react 1.0.0-beta.4 → 1.0.0-beta.5

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.
Files changed (156) hide show
  1. package/CHANGELOG.md +4 -0
  2. package/accordion/accordion-context.d.ts +2 -1
  3. package/accordion/accordion-item-content.cjs +14 -21
  4. package/accordion/accordion-item-content.d.ts +1 -3
  5. package/accordion/accordion-item-content.mjs +14 -21
  6. package/accordion/accordion-item-context.d.ts +2 -2
  7. package/accordion/accordion-item-trigger.cjs +11 -1
  8. package/accordion/accordion-item-trigger.mjs +11 -1
  9. package/accordion/accordion-item.cjs +7 -1
  10. package/accordion/accordion-item.d.ts +4 -5
  11. package/accordion/accordion-item.mjs +7 -1
  12. package/accordion/accordion.cjs +7 -3
  13. package/accordion/accordion.d.ts +2 -1
  14. package/accordion/accordion.mjs +7 -3
  15. package/carousel/carousel.d.ts +4 -5
  16. package/checkbox/checkbox.cjs +2 -2
  17. package/checkbox/checkbox.d.ts +4 -5
  18. package/checkbox/checkbox.mjs +2 -2
  19. package/color-picker/color-picker-content.cjs +8 -11
  20. package/color-picker/color-picker-content.d.ts +1 -3
  21. package/color-picker/color-picker-content.mjs +8 -11
  22. package/color-picker/color-picker-positioner.cjs +6 -0
  23. package/color-picker/color-picker-positioner.mjs +6 -0
  24. package/color-picker/color-picker-view.cjs +15 -0
  25. package/color-picker/color-picker-view.d.ts +7 -0
  26. package/color-picker/color-picker-view.mjs +11 -0
  27. package/color-picker/color-picker.cjs +31 -28
  28. package/color-picker/color-picker.d.ts +6 -5
  29. package/color-picker/color-picker.mjs +32 -29
  30. package/color-picker/index.cjs +3 -1
  31. package/color-picker/index.d.ts +4 -1
  32. package/color-picker/index.mjs +3 -1
  33. package/combobox/combobox-content.cjs +8 -11
  34. package/combobox/combobox-content.d.ts +1 -3
  35. package/combobox/combobox-content.mjs +8 -11
  36. package/combobox/combobox-item.d.ts +6 -4
  37. package/combobox/combobox-positioner.cjs +6 -0
  38. package/combobox/combobox-positioner.mjs +6 -0
  39. package/combobox/combobox.cjs +8 -2
  40. package/combobox/combobox.d.ts +4 -3
  41. package/combobox/combobox.mjs +8 -2
  42. package/date-picker/date-picker-content.cjs +8 -11
  43. package/date-picker/date-picker-content.d.ts +1 -3
  44. package/date-picker/date-picker-content.mjs +8 -11
  45. package/date-picker/date-picker-positioner.cjs +6 -0
  46. package/date-picker/date-picker-positioner.mjs +6 -0
  47. package/date-picker/date-picker-view.d.ts +3 -3
  48. package/date-picker/date-picker.cjs +10 -4
  49. package/date-picker/date-picker.d.ts +6 -5
  50. package/date-picker/date-picker.mjs +10 -4
  51. package/dialog/dialog-backdrop.cjs +8 -11
  52. package/dialog/dialog-backdrop.d.ts +1 -3
  53. package/dialog/dialog-backdrop.mjs +8 -11
  54. package/dialog/dialog-content.cjs +8 -11
  55. package/dialog/dialog-content.d.ts +1 -3
  56. package/dialog/dialog-content.mjs +8 -11
  57. package/dialog/dialog-positioner.cjs +6 -0
  58. package/dialog/dialog-positioner.mjs +6 -0
  59. package/dialog/dialog-trigger.cjs +10 -1
  60. package/dialog/dialog-trigger.mjs +10 -1
  61. package/dialog/dialog.cjs +8 -3
  62. package/dialog/dialog.d.ts +4 -6
  63. package/dialog/dialog.mjs +8 -3
  64. package/editable/editable.d.ts +4 -5
  65. package/environment/environment-context.d.ts +1 -1
  66. package/hover-card/hover-card-content.cjs +8 -11
  67. package/hover-card/hover-card-content.d.ts +1 -3
  68. package/hover-card/hover-card-content.mjs +8 -11
  69. package/hover-card/hover-card-positioner.cjs +6 -0
  70. package/hover-card/hover-card-positioner.mjs +6 -0
  71. package/hover-card/hover-card.cjs +8 -3
  72. package/hover-card/hover-card.d.ts +4 -6
  73. package/hover-card/hover-card.mjs +8 -3
  74. package/index.cjs +8 -0
  75. package/index.mjs +3 -0
  76. package/menu/menu-content.cjs +8 -11
  77. package/menu/menu-content.d.ts +1 -3
  78. package/menu/menu-content.mjs +8 -11
  79. package/menu/menu-option-item.d.ts +2 -2
  80. package/menu/menu.cjs +11 -12
  81. package/menu/menu.d.ts +4 -11
  82. package/menu/menu.mjs +12 -13
  83. package/package.json +49 -49
  84. package/pagination/pagination.d.ts +3 -3
  85. package/popover/popover-content.cjs +8 -11
  86. package/popover/popover-content.d.ts +1 -3
  87. package/popover/popover-content.mjs +8 -11
  88. package/popover/popover-positioner.cjs +6 -0
  89. package/popover/popover-positioner.mjs +6 -0
  90. package/popover/popover-trigger.cjs +10 -1
  91. package/popover/popover-trigger.mjs +10 -1
  92. package/popover/popover.cjs +8 -3
  93. package/popover/popover.d.ts +4 -6
  94. package/popover/popover.mjs +8 -3
  95. package/presence/index.cjs +8 -0
  96. package/presence/index.d.ts +8 -5
  97. package/presence/index.mjs +3 -0
  98. package/presence/presence-context.cjs +15 -0
  99. package/presence/presence-context.d.ts +6 -0
  100. package/presence/presence-context.mjs +10 -0
  101. package/presence/presence-props-context.cjs +17 -0
  102. package/presence/presence-props-context.d.ts +6 -0
  103. package/presence/presence-props-context.mjs +12 -0
  104. package/presence/presence.cjs +18 -19
  105. package/presence/presence.d.ts +6 -21
  106. package/presence/presence.mjs +19 -20
  107. package/presence/split-presence-props.d.ts +2 -2
  108. package/presence/use-presence.cjs +22 -4
  109. package/presence/use-presence.d.ts +21 -1
  110. package/presence/use-presence.mjs +20 -2
  111. package/radio-group/radio-group-item.d.ts +2 -3
  112. package/rating-group/rating-group-control.d.ts +5 -3
  113. package/rating-group/rating-group-item.d.ts +4 -5
  114. package/segment-group/segment-group-item.d.ts +2 -3
  115. package/select/select-content.cjs +8 -11
  116. package/select/select-content.d.ts +1 -3
  117. package/select/select-content.mjs +8 -11
  118. package/select/select-item.d.ts +2 -3
  119. package/select/select-positioner.cjs +6 -0
  120. package/select/select-positioner.mjs +6 -0
  121. package/select/select.cjs +8 -2
  122. package/select/select.d.ts +4 -3
  123. package/select/select.mjs +8 -2
  124. package/slider/slider-value-text.cjs +1 -3
  125. package/slider/slider-value-text.d.ts +3 -6
  126. package/slider/slider-value-text.mjs +1 -3
  127. package/slider/slider.d.ts +3 -3
  128. package/splitter/splitter.d.ts +3 -3
  129. package/switch/switch.d.ts +3 -3
  130. package/switch/switch.stories.d.ts +1 -0
  131. package/tabs/tab-content.cjs +13 -12
  132. package/tabs/tab-content.d.ts +2 -4
  133. package/tabs/tab-content.mjs +13 -12
  134. package/tabs/tabs.cjs +7 -3
  135. package/tabs/tabs.d.ts +2 -1
  136. package/tabs/tabs.mjs +7 -3
  137. package/tags-input/tags-input-item.d.ts +4 -5
  138. package/tags-input/tags-input.d.ts +3 -3
  139. package/toast/toast.stories.d.ts +3 -1
  140. package/tooltip/tooltip-content.cjs +8 -11
  141. package/tooltip/tooltip-content.d.ts +1 -3
  142. package/tooltip/tooltip-content.mjs +8 -11
  143. package/tooltip/tooltip-positioner.cjs +6 -0
  144. package/tooltip/tooltip-positioner.mjs +6 -0
  145. package/tooltip/tooltip.cjs +8 -3
  146. package/tooltip/tooltip.d.ts +4 -4
  147. package/tooltip/tooltip.mjs +8 -3
  148. package/types.d.ts +1 -3
  149. package/use-event.cjs +6 -2
  150. package/use-event.mjs +6 -2
  151. package/tabs/tab-presence.cjs +0 -17
  152. package/tabs/tab-presence.d.ts +0 -6
  153. package/tabs/tab-presence.mjs +0 -13
  154. package/use-latest-ref.cjs +0 -14
  155. package/use-latest-ref.d.ts +0 -3
  156. package/use-latest-ref.mjs +0 -10
package/CHANGELOG.md CHANGED
@@ -6,6 +6,10 @@ description: All notable changes to this project will be documented in this file
6
6
 
7
7
  ## [Unreleased]
8
8
 
9
+ ## [1.0.0-beta.5] - 2023-11-09
10
+
11
+ - Integrate latest `@zag-js` packages
12
+
9
13
  ## [1.0.0-beta.4] - 2023-10-31
10
14
 
11
15
  ### Fixed
@@ -1,6 +1,7 @@
1
1
  import { Provider } from 'react';
2
2
  /// <reference types="react" />
3
+ import type { UsePresenceProps } from '../presence';
3
4
  import { type UseAccordionReturn } from './use-accordion';
4
- export interface AccordionContext extends UseAccordionReturn {
5
+ export interface AccordionContext extends UseAccordionReturn, UsePresenceProps {
5
6
  }
6
7
  export declare const AccordionProvider: Provider<AccordionContext>, useAccordionContext: () => AccordionContext;
@@ -7,34 +7,27 @@ 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
- const index = require('../presence/index.cjs');
10
+ require('../presence/index.cjs');
11
11
  const accordionContext = require('./accordion-context.cjs');
12
12
  const accordionItemContext = require('./accordion-item-context.cjs');
13
- const splitPresenceProps = require('../presence/split-presence-props.cjs');
13
+ const presenceContext = require('../presence/presence-context.cjs');
14
14
 
15
15
  const AccordionItemContent = react.forwardRef(
16
- function AccordionItemContent2(props, ref) {
17
- const [presenceProps, localProps] = splitPresenceProps.splitPresenceProps(props);
18
- const api = accordionContext.useAccordionContext();
19
- const item = accordionItemContext.useAccordionItemContext();
20
- return /* @__PURE__ */ jsxRuntime.jsx(
21
- index.Presence,
22
- {
23
- present: item.isOpen,
24
- ...presenceProps,
25
- fallback: /* @__PURE__ */ jsxRuntime.jsx("div", { ...api.getItemContentProps(item) }),
26
- children: /* @__PURE__ */ jsxRuntime.jsx(AccordionInnerContent, { ref, ...localProps })
27
- }
28
- );
29
- }
30
- );
31
- const AccordionInnerContent = react.forwardRef(
32
- function AccordionInnerContent2(props, ref) {
16
+ (props, ref) => {
33
17
  const api = accordionContext.useAccordionContext();
34
18
  const accordionItem = accordionItemContext.useAccordionItemContext();
35
- const mergedProps = react$1.mergeProps(api.getItemContentProps(accordionItem), props);
36
- return /* @__PURE__ */ jsxRuntime.jsx(factory.ark.div, { ...mergedProps, ref });
19
+ const presenceApi = presenceContext.usePresenceContext();
20
+ const mergedProps = react$1.mergeProps(
21
+ api.getItemContentProps(accordionItem),
22
+ presenceApi.getPresenceProps(ref),
23
+ props
24
+ );
25
+ if (presenceApi.isUnmounted) {
26
+ return null;
27
+ }
28
+ return /* @__PURE__ */ jsxRuntime.jsx(factory.ark.div, { ...mergedProps });
37
29
  }
38
30
  );
31
+ AccordionItemContent.displayName = "AccordionItemContent";
39
32
 
40
33
  exports.AccordionItemContent = AccordionItemContent;
@@ -1,8 +1,6 @@
1
1
  import { ForwardRefExoticComponent, RefAttributes } from 'react';
2
2
  /// <reference types="react" />
3
3
  import { type HTMLArkProps } from '../factory';
4
- import { type PresenceProps } from '../presence';
5
- import type { Assign } from '../types';
6
- export interface AccordionItemContentProps extends Assign<HTMLArkProps<'div'>, Omit<PresenceProps, 'children' | 'fallback'>> {
4
+ export interface AccordionItemContentProps extends HTMLArkProps<'div'> {
7
5
  }
8
6
  export declare const AccordionItemContent: ForwardRefExoticComponent<AccordionItemContentProps & RefAttributes<HTMLDivElement>>;
@@ -3,34 +3,27 @@ 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 } from '../presence/index.mjs';
6
+ import '../presence/index.mjs';
7
7
  import { useAccordionContext } from './accordion-context.mjs';
8
8
  import { useAccordionItemContext } from './accordion-item-context.mjs';
9
- import { splitPresenceProps } from '../presence/split-presence-props.mjs';
9
+ import { usePresenceContext } from '../presence/presence-context.mjs';
10
10
 
11
11
  const AccordionItemContent = forwardRef(
12
- function AccordionItemContent2(props, ref) {
13
- const [presenceProps, localProps] = splitPresenceProps(props);
14
- const api = useAccordionContext();
15
- const item = useAccordionItemContext();
16
- return /* @__PURE__ */ jsx(
17
- Presence,
18
- {
19
- present: item.isOpen,
20
- ...presenceProps,
21
- fallback: /* @__PURE__ */ jsx("div", { ...api.getItemContentProps(item) }),
22
- children: /* @__PURE__ */ jsx(AccordionInnerContent, { ref, ...localProps })
23
- }
24
- );
25
- }
26
- );
27
- const AccordionInnerContent = forwardRef(
28
- function AccordionInnerContent2(props, ref) {
12
+ (props, ref) => {
29
13
  const api = useAccordionContext();
30
14
  const accordionItem = useAccordionItemContext();
31
- const mergedProps = mergeProps(api.getItemContentProps(accordionItem), props);
32
- return /* @__PURE__ */ jsx(ark.div, { ...mergedProps, ref });
15
+ const presenceApi = usePresenceContext();
16
+ const mergedProps = mergeProps(
17
+ api.getItemContentProps(accordionItem),
18
+ presenceApi.getPresenceProps(ref),
19
+ props
20
+ );
21
+ if (presenceApi.isUnmounted) {
22
+ return null;
23
+ }
24
+ return /* @__PURE__ */ jsx(ark.div, { ...mergedProps });
33
25
  }
34
26
  );
27
+ AccordionItemContent.displayName = "AccordionItemContent";
35
28
 
36
29
  export { AccordionItemContent };
@@ -1,6 +1,6 @@
1
1
  import { Provider } from 'react';
2
2
  /// <reference types="react" />
3
- import type { ItemProps, ItemState } from '@zag-js/accordion';
4
- export interface AccordionItemContext extends ItemProps, ItemState {
3
+ import type { ItemProps } from '@zag-js/accordion';
4
+ export interface AccordionItemContext extends ItemProps {
5
5
  }
6
6
  export declare const AccordionItemProvider: Provider<AccordionItemContext>, useAccordionItemContext: () => AccordionItemContext;
@@ -7,14 +7,24 @@ 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 accordionContext = require('./accordion-context.cjs');
11
12
  const accordionItemContext = require('./accordion-item-context.cjs');
13
+ const presenceContext = require('../presence/presence-context.cjs');
12
14
 
13
15
  const AccordionItemTrigger = react.forwardRef(
14
16
  (props, ref) => {
15
17
  const api = accordionContext.useAccordionContext();
16
18
  const accordionItem = accordionItemContext.useAccordionItemContext();
17
- const mergedProps = react$1.mergeProps(api.getItemTriggerProps(accordionItem), props);
19
+ const presenceApi = presenceContext.usePresenceContext();
20
+ const triggerProps = api.getItemTriggerProps(accordionItem);
21
+ const mergedProps = react$1.mergeProps(
22
+ {
23
+ ...triggerProps,
24
+ "aria-controls": presenceApi.isUnmounted ? void 0 : triggerProps["aria-controls"]
25
+ },
26
+ props
27
+ );
18
28
  return /* @__PURE__ */ jsxRuntime.jsx(factory.ark.button, { ...mergedProps, ref });
19
29
  }
20
30
  );
@@ -3,14 +3,24 @@ 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 { useAccordionContext } from './accordion-context.mjs';
7
8
  import { useAccordionItemContext } from './accordion-item-context.mjs';
9
+ import { usePresenceContext } from '../presence/presence-context.mjs';
8
10
 
9
11
  const AccordionItemTrigger = forwardRef(
10
12
  (props, ref) => {
11
13
  const api = useAccordionContext();
12
14
  const accordionItem = useAccordionItemContext();
13
- const mergedProps = mergeProps(api.getItemTriggerProps(accordionItem), props);
15
+ const presenceApi = usePresenceContext();
16
+ const triggerProps = api.getItemTriggerProps(accordionItem);
17
+ const mergedProps = mergeProps(
18
+ {
19
+ ...triggerProps,
20
+ "aria-controls": presenceApi.isUnmounted ? void 0 : triggerProps["aria-controls"]
21
+ },
22
+ props
23
+ );
14
24
  return /* @__PURE__ */ jsx(ark.button, { ...mergedProps, ref });
15
25
  }
16
26
  );
@@ -8,9 +8,13 @@ const react$1 = require('@zag-js/react');
8
8
  const react = require('react');
9
9
  const createSplitProps = require('../create-split-props.cjs');
10
10
  const factory = require('../factory.cjs');
11
+ require('../presence/index.cjs');
11
12
  const runIfFn = require('../run-if-fn.cjs');
12
13
  const accordionContext = require('./accordion-context.cjs');
13
14
  const accordionItemContext = require('./accordion-item-context.cjs');
15
+ const presencePropsContext = require('../presence/presence-props-context.cjs');
16
+ const usePresence = require('../presence/use-presence.cjs');
17
+ const presenceContext = require('../presence/presence-context.cjs');
14
18
 
15
19
  const AccordionItem = react.forwardRef((props, ref) => {
16
20
  const [itemProps, { children, ...localProps }] = createSplitProps.createSplitProps()(props, [
@@ -21,7 +25,9 @@ const AccordionItem = react.forwardRef((props, ref) => {
21
25
  const itemState = api.getItemState(itemProps);
22
26
  const mergedProps = react$1.mergeProps(api.getItemProps(itemProps), localProps);
23
27
  const view = runIfFn.runIfFn(children, itemState);
24
- return /* @__PURE__ */ jsxRuntime.jsx(accordionItemContext.AccordionItemProvider, { value: { ...itemProps, ...itemState }, children: /* @__PURE__ */ jsxRuntime.jsx(factory.ark.div, { ...mergedProps, ref, children: view }) });
28
+ const presenceProps = presencePropsContext.usePresencePropsContext();
29
+ const presenceApi = usePresence.usePresence({ ...presenceProps, present: itemState.isOpen });
30
+ return /* @__PURE__ */ jsxRuntime.jsx(accordionItemContext.AccordionItemProvider, { value: itemProps, children: /* @__PURE__ */ jsxRuntime.jsx(presenceContext.PresenceProvider, { value: presenceApi, children: /* @__PURE__ */ jsxRuntime.jsx(factory.ark.div, { ...mergedProps, ref, children: view }) }) });
25
31
  });
26
32
  AccordionItem.displayName = "AccordionItem";
27
33
 
@@ -1,10 +1,9 @@
1
- import { ForwardRefExoticComponent, RefAttributes } from 'react';
2
- /// <reference types="react" />
3
1
  import type { ItemProps, ItemState } from '@zag-js/accordion';
2
+ import { ForwardRefExoticComponent, RefAttributes, type ReactNode } from 'react';
4
3
  import { type HTMLArkProps } from '../factory';
5
4
  import type { Assign } from '../types';
6
- export interface AccordionItemProps extends ItemProps, Assign<HTMLArkProps<'div'>, {
7
- children?: React.ReactNode | ((props: ItemState) => React.ReactNode);
8
- }> {
5
+ export interface AccordionItemProps extends Assign<HTMLArkProps<'div'>, {
6
+ children?: ReactNode | ((state: ItemState) => ReactNode);
7
+ }>, ItemProps {
9
8
  }
10
9
  export declare const AccordionItem: ForwardRefExoticComponent<AccordionItemProps & RefAttributes<HTMLDivElement>>;
@@ -4,9 +4,13 @@ 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 { useAccordionContext } from './accordion-context.mjs';
9
10
  import { AccordionItemProvider } from './accordion-item-context.mjs';
11
+ import { usePresencePropsContext } from '../presence/presence-props-context.mjs';
12
+ import { usePresence } from '../presence/use-presence.mjs';
13
+ import { PresenceProvider } from '../presence/presence-context.mjs';
10
14
 
11
15
  const AccordionItem = forwardRef((props, ref) => {
12
16
  const [itemProps, { children, ...localProps }] = createSplitProps()(props, [
@@ -17,7 +21,9 @@ const AccordionItem = forwardRef((props, ref) => {
17
21
  const itemState = api.getItemState(itemProps);
18
22
  const mergedProps = mergeProps(api.getItemProps(itemProps), localProps);
19
23
  const view = runIfFn(children, itemState);
20
- return /* @__PURE__ */ jsx(AccordionItemProvider, { value: { ...itemProps, ...itemState }, children: /* @__PURE__ */ jsx(ark.div, { ...mergedProps, ref, children: view }) });
24
+ const presenceProps = usePresencePropsContext();
25
+ const presenceApi = usePresence({ ...presenceProps, present: itemState.isOpen });
26
+ return /* @__PURE__ */ jsx(AccordionItemProvider, { value: itemProps, children: /* @__PURE__ */ jsx(PresenceProvider, { value: presenceApi, children: /* @__PURE__ */ jsx(ark.div, { ...mergedProps, ref, children: view }) }) });
21
27
  });
22
28
  AccordionItem.displayName = "AccordionItem";
23
29
 
@@ -8,11 +8,15 @@ const react$1 = require('@zag-js/react');
8
8
  const react = require('react');
9
9
  const createSplitProps = require('../create-split-props.cjs');
10
10
  const factory = require('../factory.cjs');
11
+ require('../presence/index.cjs');
11
12
  const accordionContext = require('./accordion-context.cjs');
12
13
  const useAccordion = require('./use-accordion.cjs');
14
+ const splitPresenceProps = require('../presence/split-presence-props.cjs');
15
+ const presencePropsContext = require('../presence/presence-props-context.cjs');
13
16
 
14
17
  const Accordion = react.forwardRef((props, ref) => {
15
- const [useAccordionProps, divProps] = createSplitProps.createSplitProps()(props, [
18
+ const [presenceProps, accordionProps] = splitPresenceProps.splitPresenceProps(props);
19
+ const [useAccordionProps, localProps] = createSplitProps.createSplitProps()(accordionProps, [
16
20
  "collapsible",
17
21
  "defaultValue",
18
22
  "dir",
@@ -27,8 +31,8 @@ const Accordion = react.forwardRef((props, ref) => {
27
31
  "value"
28
32
  ]);
29
33
  const api = useAccordion.useAccordion(useAccordionProps);
30
- const mergedProps = react$1.mergeProps(api.rootProps, divProps);
31
- return /* @__PURE__ */ jsxRuntime.jsx(accordionContext.AccordionProvider, { value: api, children: /* @__PURE__ */ jsxRuntime.jsx(factory.ark.div, { ...mergedProps, ref }) });
34
+ const mergedProps = react$1.mergeProps(api.rootProps, localProps);
35
+ return /* @__PURE__ */ jsxRuntime.jsx(accordionContext.AccordionProvider, { value: api, children: /* @__PURE__ */ jsxRuntime.jsx(presencePropsContext.PresencePropsProvider, { value: presenceProps, children: /* @__PURE__ */ jsxRuntime.jsx(factory.ark.div, { ...mergedProps, ref }) }) });
32
36
  });
33
37
  Accordion.displayName = "Accordion";
34
38
 
@@ -1,8 +1,9 @@
1
1
  import { ForwardRefExoticComponent, RefAttributes } from 'react';
2
2
  /// <reference types="react" />
3
3
  import { type HTMLArkProps } from '../factory';
4
+ import { type UsePresenceProps } from '../presence';
4
5
  import type { Assign } from '../types';
5
6
  import { type UseAccordionProps } from './use-accordion';
6
- export interface AccordionProps extends Assign<HTMLArkProps<'div'>, UseAccordionProps> {
7
+ export interface AccordionProps extends Assign<HTMLArkProps<'div'>, UseAccordionProps>, UsePresenceProps {
7
8
  }
8
9
  export declare const Accordion: ForwardRefExoticComponent<AccordionProps & RefAttributes<HTMLDivElement>>;
@@ -4,11 +4,15 @@ 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 { AccordionProvider } from './accordion-context.mjs';
8
9
  import { useAccordion } from './use-accordion.mjs';
10
+ import { splitPresenceProps } from '../presence/split-presence-props.mjs';
11
+ import { PresencePropsProvider } from '../presence/presence-props-context.mjs';
9
12
 
10
13
  const Accordion = forwardRef((props, ref) => {
11
- const [useAccordionProps, divProps] = createSplitProps()(props, [
14
+ const [presenceProps, accordionProps] = splitPresenceProps(props);
15
+ const [useAccordionProps, localProps] = createSplitProps()(accordionProps, [
12
16
  "collapsible",
13
17
  "defaultValue",
14
18
  "dir",
@@ -23,8 +27,8 @@ const Accordion = forwardRef((props, ref) => {
23
27
  "value"
24
28
  ]);
25
29
  const api = useAccordion(useAccordionProps);
26
- const mergedProps = mergeProps(api.rootProps, divProps);
27
- return /* @__PURE__ */ jsx(AccordionProvider, { value: api, children: /* @__PURE__ */ jsx(ark.div, { ...mergedProps, ref }) });
30
+ const mergedProps = mergeProps(api.rootProps, localProps);
31
+ return /* @__PURE__ */ jsx(AccordionProvider, { value: api, children: /* @__PURE__ */ jsx(PresencePropsProvider, { value: presenceProps, children: /* @__PURE__ */ jsx(ark.div, { ...mergedProps, ref }) }) });
28
32
  });
29
33
  Accordion.displayName = "Accordion";
30
34
 
@@ -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 CarouselContext } from './carousel-context';
5
- import { type UseCarouselProps } from './use-carousel';
6
- export interface CarouselProps extends Assign<HTMLArkProps<'div'> & {
7
- children?: ReactNode | ((pages: CarouselContext) => ReactNode);
8
- }, UseCarouselProps> {
4
+ import { type UseCarouselProps, type UseCarouselReturn } from './use-carousel';
5
+ export interface CarouselProps extends Assign<Assign<HTMLArkProps<'div'>, {
6
+ children?: ReactNode | ((api: UseCarouselReturn) => ReactNode);
7
+ }>, UseCarouselProps> {
9
8
  }
10
9
  export declare const Carousel: ForwardRefExoticComponent<CarouselProps & RefAttributes<HTMLDivElement>>;
@@ -13,7 +13,7 @@ const checkboxContext = require('./checkbox-context.cjs');
13
13
  const useCheckbox = require('./use-checkbox.cjs');
14
14
 
15
15
  const Checkbox = react.forwardRef((props, ref) => {
16
- const [useCheckboxProps, { children, ...labelProps }] = createSplitProps.createSplitProps()(
16
+ const [useCheckboxProps, { children, ...localProps }] = createSplitProps.createSplitProps()(
17
17
  props,
18
18
  [
19
19
  "checked",
@@ -32,7 +32,7 @@ const Checkbox = react.forwardRef((props, ref) => {
32
32
  ]
33
33
  );
34
34
  const api = useCheckbox.useCheckbox(useCheckboxProps);
35
- const mergedProps = react$1.mergeProps(api.rootProps, labelProps);
35
+ const mergedProps = react$1.mergeProps(api.rootProps, localProps);
36
36
  const view = runIfFn.runIfFn(children, api);
37
37
  return /* @__PURE__ */ jsxRuntime.jsx(checkboxContext.CheckboxProvider, { value: api, children: /* @__PURE__ */ jsxRuntime.jsx(factory.ark.label, { ...mergedProps, ref, children: view }) });
38
38
  });
@@ -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 CheckboxContext } from './checkbox-context';
5
- import { type UseCheckboxProps } from './use-checkbox';
6
- export interface CheckboxProps extends Assign<HTMLArkProps<'label'>, Assign<UseCheckboxProps, {
7
- children?: ReactNode | ((pages: CheckboxContext) => ReactNode);
8
- }>> {
4
+ import { type UseCheckboxProps, type UseCheckboxReturn } from './use-checkbox';
5
+ export interface CheckboxProps extends Assign<Assign<HTMLArkProps<'label'>, {
6
+ children?: ReactNode | ((api: UseCheckboxReturn) => ReactNode);
7
+ }>, UseCheckboxProps> {
9
8
  }
10
9
  export declare const Checkbox: ForwardRefExoticComponent<CheckboxProps & RefAttributes<HTMLLabelElement>>;
@@ -9,7 +9,7 @@ import { CheckboxProvider } from './checkbox-context.mjs';
9
9
  import { useCheckbox } from './use-checkbox.mjs';
10
10
 
11
11
  const Checkbox = forwardRef((props, ref) => {
12
- const [useCheckboxProps, { children, ...labelProps }] = createSplitProps()(
12
+ const [useCheckboxProps, { children, ...localProps }] = createSplitProps()(
13
13
  props,
14
14
  [
15
15
  "checked",
@@ -28,7 +28,7 @@ const Checkbox = forwardRef((props, ref) => {
28
28
  ]
29
29
  );
30
30
  const api = useCheckbox(useCheckboxProps);
31
- const mergedProps = mergeProps(api.rootProps, labelProps);
31
+ const mergedProps = mergeProps(api.rootProps, localProps);
32
32
  const view = runIfFn(children, api);
33
33
  return /* @__PURE__ */ jsx(CheckboxProvider, { value: api, children: /* @__PURE__ */ jsx(ark.label, { ...mergedProps, ref, children: view }) });
34
34
  });
@@ -7,24 +7,21 @@ 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
- const index = require('../presence/index.cjs');
10
+ require('../presence/index.cjs');
11
11
  const colorPickerContext = require('./color-picker-context.cjs');
12
- const splitPresenceProps = require('../presence/split-presence-props.cjs');
12
+ const presenceContext = require('../presence/presence-context.cjs');
13
13
 
14
14
  const ColorPickerContent = react.forwardRef(
15
15
  (props, ref) => {
16
- const [presenceProps, localProps] = splitPresenceProps.splitPresenceProps(props);
17
16
  const api = colorPickerContext.useColorPickerContext();
18
- return /* @__PURE__ */ jsxRuntime.jsx(index.Presence, { present: api.isOpen, ...presenceProps, fallback: /* @__PURE__ */ jsxRuntime.jsx("div", { ...api.contentProps }), children: /* @__PURE__ */ jsxRuntime.jsx(ColorPickerInnerContent, { ref, ...localProps }) });
17
+ const presenceApi = presenceContext.usePresenceContext();
18
+ const mergedProps = react$1.mergeProps(api.contentProps, presenceApi.getPresenceProps(ref), props);
19
+ if (presenceApi.isUnmounted) {
20
+ return null;
21
+ }
22
+ return /* @__PURE__ */ jsxRuntime.jsx(factory.ark.div, { ...mergedProps });
19
23
  }
20
24
  );
21
25
  ColorPickerContent.displayName = "ColorPickerContent";
22
- const ColorPickerInnerContent = react.forwardRef(
23
- function ColorPickerInnerContent2(props, ref) {
24
- const api = colorPickerContext.useColorPickerContext();
25
- const mergedProps = react$1.mergeProps(api.contentProps, props);
26
- return /* @__PURE__ */ jsxRuntime.jsx(factory.ark.div, { ...mergedProps, ref });
27
- }
28
- );
29
26
 
30
27
  exports.ColorPickerContent = ColorPickerContent;
@@ -1,8 +1,6 @@
1
1
  import { ForwardRefExoticComponent, RefAttributes } from 'react';
2
2
  /// <reference types="react" />
3
3
  import { type HTMLArkProps } from '../factory';
4
- import { type PresenceProps } from '../presence';
5
- import type { Assign } from '../types';
6
- export interface ColorPickerContentProps extends Assign<HTMLArkProps<'div'>, Omit<PresenceProps, 'children' | 'fallback'>> {
4
+ export interface ColorPickerContentProps extends HTMLArkProps<'div'> {
7
5
  }
8
6
  export declare const ColorPickerContent: ForwardRefExoticComponent<ColorPickerContentProps & RefAttributes<HTMLDivElement>>;
@@ -3,24 +3,21 @@ 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 } from '../presence/index.mjs';
6
+ import '../presence/index.mjs';
7
7
  import { useColorPickerContext } from './color-picker-context.mjs';
8
- import { splitPresenceProps } from '../presence/split-presence-props.mjs';
8
+ import { usePresenceContext } from '../presence/presence-context.mjs';
9
9
 
10
10
  const ColorPickerContent = forwardRef(
11
11
  (props, ref) => {
12
- const [presenceProps, localProps] = splitPresenceProps(props);
13
12
  const api = useColorPickerContext();
14
- return /* @__PURE__ */ jsx(Presence, { present: api.isOpen, ...presenceProps, fallback: /* @__PURE__ */ jsx("div", { ...api.contentProps }), children: /* @__PURE__ */ jsx(ColorPickerInnerContent, { ref, ...localProps }) });
13
+ const presenceApi = usePresenceContext();
14
+ const mergedProps = mergeProps(api.contentProps, presenceApi.getPresenceProps(ref), props);
15
+ if (presenceApi.isUnmounted) {
16
+ return null;
17
+ }
18
+ return /* @__PURE__ */ jsx(ark.div, { ...mergedProps });
15
19
  }
16
20
  );
17
21
  ColorPickerContent.displayName = "ColorPickerContent";
18
- const ColorPickerInnerContent = forwardRef(
19
- function ColorPickerInnerContent2(props, ref) {
20
- const api = useColorPickerContext();
21
- const mergedProps = mergeProps(api.contentProps, props);
22
- return /* @__PURE__ */ jsx(ark.div, { ...mergedProps, ref });
23
- }
24
- );
25
22
 
26
23
  export { ColorPickerContent };
@@ -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 colorPickerContext = require('./color-picker-context.cjs');
12
+ const presenceContext = require('../presence/presence-context.cjs');
11
13
 
12
14
  const ColorPickerPositioner = react.forwardRef(
13
15
  (props, ref) => {
14
16
  const api = colorPickerContext.useColorPickerContext();
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 { useColorPickerContext } from './color-picker-context.mjs';
8
+ import { usePresenceContext } from '../presence/presence-context.mjs';
7
9
 
8
10
  const ColorPickerPositioner = forwardRef(
9
11
  (props, ref) => {
10
12
  const api = useColorPickerContext();
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
  );
@@ -0,0 +1,15 @@
1
+ 'use client';
2
+ 'use strict';
3
+
4
+ Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });
5
+
6
+ const jsxRuntime = require('react/jsx-runtime');
7
+ require('react');
8
+ const colorPickerContext = require('./color-picker-context.cjs');
9
+
10
+ const ColorPickerView = (props) => {
11
+ const api = colorPickerContext.useColorPickerContext();
12
+ return api.format === props.format ? /* @__PURE__ */ jsxRuntime.jsx(jsxRuntime.Fragment, { children: props.children }) : null;
13
+ };
14
+
15
+ exports.ColorPickerView = ColorPickerView;
@@ -0,0 +1,7 @@
1
+ import { JSX } from 'react/jsx-runtime';
2
+ import type { ColorFormat } from '@zag-js/color-picker';
3
+ import { type PropsWithChildren } from 'react';
4
+ export interface ColorPickerViewProps extends PropsWithChildren {
5
+ format: ColorFormat;
6
+ }
7
+ export declare const ColorPickerView: (props: ColorPickerViewProps) => JSX.Element | null;
@@ -0,0 +1,11 @@
1
+ 'use client';
2
+ import { jsx, Fragment } from 'react/jsx-runtime';
3
+ import 'react';
4
+ import { useColorPickerContext } from './color-picker-context.mjs';
5
+
6
+ const ColorPickerView = (props) => {
7
+ const api = useColorPickerContext();
8
+ return api.format === props.format ? /* @__PURE__ */ jsx(Fragment, { children: props.children }) : null;
9
+ };
10
+
11
+ export { ColorPickerView };