@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.
Files changed (157) hide show
  1. package/CHANGELOG.md +18 -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 +29 -0
  25. package/color-picker/color-picker-view.d.ts +8 -0
  26. package/color-picker/color-picker-view.mjs +25 -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 +3 -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 -50
  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/segment-group/segment-group.anatomy.d.ts +2 -0
  116. package/select/select-content.cjs +8 -11
  117. package/select/select-content.d.ts +1 -3
  118. package/select/select-content.mjs +8 -11
  119. package/select/select-item.d.ts +2 -3
  120. package/select/select-positioner.cjs +6 -0
  121. package/select/select-positioner.mjs +6 -0
  122. package/select/select.cjs +8 -2
  123. package/select/select.d.ts +4 -3
  124. package/select/select.mjs +8 -2
  125. package/slider/slider-value-text.cjs +1 -3
  126. package/slider/slider-value-text.d.ts +3 -6
  127. package/slider/slider-value-text.mjs +1 -3
  128. package/slider/slider.d.ts +3 -3
  129. package/splitter/splitter.d.ts +3 -3
  130. package/switch/switch.d.ts +3 -3
  131. package/switch/switch.stories.d.ts +1 -0
  132. package/tabs/tab-content.cjs +13 -12
  133. package/tabs/tab-content.d.ts +2 -4
  134. package/tabs/tab-content.mjs +13 -12
  135. package/tabs/tabs.cjs +7 -3
  136. package/tabs/tabs.d.ts +2 -1
  137. package/tabs/tabs.mjs +7 -3
  138. package/tags-input/tags-input-item.d.ts +4 -5
  139. package/tags-input/tags-input.d.ts +3 -3
  140. package/toast/toast.stories.d.ts +3 -1
  141. package/tooltip/tooltip-content.cjs +8 -11
  142. package/tooltip/tooltip-content.d.ts +1 -3
  143. package/tooltip/tooltip-content.mjs +8 -11
  144. package/tooltip/tooltip-positioner.cjs +6 -0
  145. package/tooltip/tooltip-positioner.mjs +6 -0
  146. package/tooltip/tooltip.cjs +8 -3
  147. package/tooltip/tooltip.d.ts +4 -4
  148. package/tooltip/tooltip.mjs +8 -3
  149. package/types.d.ts +1 -3
  150. package/use-event.cjs +6 -2
  151. package/use-event.mjs +6 -2
  152. package/tabs/tab-presence.cjs +0 -17
  153. package/tabs/tab-presence.d.ts +0 -6
  154. package/tabs/tab-presence.mjs +0 -13
  155. package/use-latest-ref.cjs +0 -14
  156. package/use-latest-ref.d.ts +0 -3
  157. package/use-latest-ref.mjs +0 -10
@@ -8,43 +8,46 @@ 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 colorPickerContext = require('./color-picker-context.cjs');
13
14
  const useColorPicker = require('./use-color-picker.cjs');
15
+ const splitPresenceProps = require('../presence/split-presence-props.cjs');
16
+ const usePresence = require('../presence/use-presence.cjs');
17
+ const presenceContext = require('../presence/presence-context.cjs');
14
18
 
15
19
  const ColorPicker = react.forwardRef((props, ref) => {
16
- const [colorPickerProps, { children, ...localProps }] = createSplitProps.createSplitProps()(
17
- props,
18
- [
19
- "autoFocus",
20
- "defaultValue",
21
- "dir",
22
- "disabled",
23
- "getRootNode",
24
- "id",
25
- "ids",
26
- "initialFocusEl",
27
- "name",
28
- "name",
29
- "onFocusOutside",
30
- "onInteractOutside",
31
- "onOpenChange",
32
- "onPointerDownOutside",
33
- "onValueChange",
34
- "onValueChangeEnd",
35
- "open",
36
- "positioning",
37
- "readOnly",
38
- "value"
39
- ]
40
- );
41
- const api = useColorPicker.useColorPicker(colorPickerProps);
20
+ const [presenceProps, colorPickerProps] = splitPresenceProps.splitPresenceProps(props);
21
+ const [useColorPickerProps, { children, ...localProps }] = createSplitProps.createSplitProps()(colorPickerProps, [
22
+ "autoFocus",
23
+ "defaultValue",
24
+ "dir",
25
+ "disabled",
26
+ "getRootNode",
27
+ "id",
28
+ "ids",
29
+ "initialFocusEl",
30
+ "name",
31
+ "name",
32
+ "onFocusOutside",
33
+ "onInteractOutside",
34
+ "onOpenChange",
35
+ "onPointerDownOutside",
36
+ "onValueChange",
37
+ "onValueChangeEnd",
38
+ "open",
39
+ "positioning",
40
+ "readOnly",
41
+ "value"
42
+ ]);
43
+ const api = useColorPicker.useColorPicker(useColorPickerProps);
44
+ const presenceApi = usePresence.usePresence({ ...presenceProps, present: api.isOpen });
42
45
  const view = runIfFn.runIfFn(children, api);
43
46
  const mergedProps = react$1.mergeProps(api.rootProps, localProps);
44
- return /* @__PURE__ */ jsxRuntime.jsxs(colorPickerContext.ColorPickerProvider, { value: api, children: [
47
+ return /* @__PURE__ */ jsxRuntime.jsx(colorPickerContext.ColorPickerProvider, { value: api, children: /* @__PURE__ */ jsxRuntime.jsxs(presenceContext.PresenceProvider, { value: presenceApi, children: [
45
48
  /* @__PURE__ */ jsxRuntime.jsx(factory.ark.div, { ...mergedProps, ref, children: view }),
46
49
  /* @__PURE__ */ jsxRuntime.jsx("input", { ...api.hiddenInputProps })
47
- ] });
50
+ ] }) });
48
51
  });
49
52
  ColorPicker.displayName = "ColorPicker";
50
53
 
@@ -1,9 +1,10 @@
1
1
  import { ForwardRefExoticComponent, RefAttributes, type ReactNode } from 'react';
2
+ import { type HTMLArkProps } from '../factory';
3
+ import { type UsePresenceProps } from '../presence';
2
4
  import { type Assign } from '../types';
3
- import { type ColorPickerContext } from './color-picker-context';
4
- import { type UseColorPickerProps } from './use-color-picker';
5
- export interface ColorPickerProps extends Assign<UseColorPickerProps, {
6
- children?: ReactNode | ((props: ColorPickerContext) => ReactNode);
7
- }> {
5
+ import { type UseColorPickerProps, type UseColorPickerReturn } from './use-color-picker';
6
+ export interface ColorPickerProps extends Assign<Assign<HTMLArkProps<'div'>, {
7
+ children?: ReactNode | ((api: UseColorPickerReturn) => ReactNode);
8
+ }>, UseColorPickerProps>, UsePresenceProps {
8
9
  }
9
10
  export declare const ColorPicker: ForwardRefExoticComponent<ColorPickerProps & RefAttributes<HTMLDivElement>>;
@@ -1,46 +1,49 @@
1
1
  'use client';
2
- import { jsxs, jsx } from 'react/jsx-runtime';
2
+ import { jsx, jsxs } from 'react/jsx-runtime';
3
3
  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 { ColorPickerProvider } from './color-picker-context.mjs';
9
10
  import { useColorPicker } from './use-color-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 ColorPicker = forwardRef((props, ref) => {
12
- const [colorPickerProps, { children, ...localProps }] = createSplitProps()(
13
- props,
14
- [
15
- "autoFocus",
16
- "defaultValue",
17
- "dir",
18
- "disabled",
19
- "getRootNode",
20
- "id",
21
- "ids",
22
- "initialFocusEl",
23
- "name",
24
- "name",
25
- "onFocusOutside",
26
- "onInteractOutside",
27
- "onOpenChange",
28
- "onPointerDownOutside",
29
- "onValueChange",
30
- "onValueChangeEnd",
31
- "open",
32
- "positioning",
33
- "readOnly",
34
- "value"
35
- ]
36
- );
37
- const api = useColorPicker(colorPickerProps);
16
+ const [presenceProps, colorPickerProps] = splitPresenceProps(props);
17
+ const [useColorPickerProps, { children, ...localProps }] = createSplitProps()(colorPickerProps, [
18
+ "autoFocus",
19
+ "defaultValue",
20
+ "dir",
21
+ "disabled",
22
+ "getRootNode",
23
+ "id",
24
+ "ids",
25
+ "initialFocusEl",
26
+ "name",
27
+ "name",
28
+ "onFocusOutside",
29
+ "onInteractOutside",
30
+ "onOpenChange",
31
+ "onPointerDownOutside",
32
+ "onValueChange",
33
+ "onValueChangeEnd",
34
+ "open",
35
+ "positioning",
36
+ "readOnly",
37
+ "value"
38
+ ]);
39
+ const api = useColorPicker(useColorPickerProps);
40
+ const presenceApi = usePresence({ ...presenceProps, present: api.isOpen });
38
41
  const view = runIfFn(children, api);
39
42
  const mergedProps = mergeProps(api.rootProps, localProps);
40
- return /* @__PURE__ */ jsxs(ColorPickerProvider, { value: api, children: [
43
+ return /* @__PURE__ */ jsx(ColorPickerProvider, { value: api, children: /* @__PURE__ */ jsxs(PresenceProvider, { value: presenceApi, children: [
41
44
  /* @__PURE__ */ jsx(ark.div, { ...mergedProps, ref, children: view }),
42
45
  /* @__PURE__ */ jsx("input", { ...api.hiddenInputProps })
43
- ] });
46
+ ] }) });
44
47
  });
45
48
  ColorPicker.displayName = "ColorPicker";
46
49
 
@@ -25,6 +25,7 @@ const colorPickerSwatchTrigger = require('./color-picker-swatch-trigger.cjs');
25
25
  const colorPickerTransparencyGrid = require('./color-picker-transparency-grid.cjs');
26
26
  const colorPickerTrigger = require('./color-picker-trigger.cjs');
27
27
  const colorPickerValueText = require('./color-picker-value-text.cjs');
28
+ const colorPickerView = require('./color-picker-view.cjs');
28
29
 
29
30
  const ColorPicker = Object.assign(colorPicker.ColorPicker, {
30
31
  Root: colorPicker.ColorPicker,
@@ -45,7 +46,8 @@ const ColorPicker = Object.assign(colorPicker.ColorPicker, {
45
46
  SwatchTrigger: colorPickerSwatchTrigger.ColorPickerSwatchTrigger,
46
47
  TransparencyGrid: colorPickerTransparencyGrid.ColorPickerTransparencyGrid,
47
48
  Trigger: colorPickerTrigger.ColorPickerTrigger,
48
- ValueText: colorPickerValueText.ColorPickerValueText
49
+ ValueText: colorPickerValueText.ColorPickerValueText,
50
+ View: colorPickerView.ColorPickerView
49
51
  });
50
52
 
51
53
  exports.ColorPickerArea = colorPickerArea.ColorPickerArea;
@@ -22,6 +22,7 @@ import { ColorPickerSwatchTrigger, type ColorPickerSwatchTriggerProps } from './
22
22
  import { ColorPickerTransparencyGrid, type ColorPickerTransparencyGridProps } from './color-picker-transparency-grid';
23
23
  import { ColorPickerTrigger, type ColorPickerTriggerProps } from './color-picker-trigger';
24
24
  import { ColorPickerValueText, type ColorPickerValueTextProps } from './color-picker-value-text';
25
+ import { type ColorPickerViewProps } from './color-picker-view';
25
26
  declare const ColorPicker: ForwardRefExoticComponent<ColorPickerProps & RefAttributes<HTMLDivElement>> & {
26
27
  Root: ForwardRefExoticComponent<ColorPickerProps & RefAttributes<HTMLDivElement>>;
27
28
  Area: ForwardRefExoticComponent<ColorPickerAreaProps & RefAttributes<HTMLDivElement>>;
@@ -42,6 +43,7 @@ declare const ColorPicker: ForwardRefExoticComponent<ColorPickerProps & RefAttri
42
43
  TransparencyGrid: ForwardRefExoticComponent<ColorPickerTransparencyGridProps & RefAttributes<HTMLDivElement>>;
43
44
  Trigger: ForwardRefExoticComponent<ColorPickerTriggerProps & RefAttributes<HTMLButtonElement>>;
44
45
  ValueText: ForwardRefExoticComponent<ColorPickerValueTextProps & RefAttributes<HTMLDivElement>>;
46
+ View: ForwardRefExoticComponent<ColorPickerViewProps & RefAttributes<HTMLDivElement>>;
45
47
  };
46
48
  export { ColorPicker, ColorPickerArea, ColorPickerAreaBackground, ColorPickerAreaThumb, ColorPickerChannelInput, ColorPickerChannelSlider, ColorPickerChannelSliderThumb, ColorPickerChannelSliderTrack, ColorPickerContent, ColorPickerControl, ColorPickerEyeDropperTrigger, ColorPickerLabel, ColorPickerPositioner, ColorPickerSwatch, ColorPickerSwatchGroup, ColorPickerSwatchTrigger, ColorPickerTransparencyGrid, ColorPickerTrigger, ColorPickerValueText, useColorPickerAreaContext, useColorPickerChannelSliderContext, useColorPickerContext, };
47
- export type { ColorPickerAreaBackgroundProps, ColorPickerAreaContext, ColorPickerAreaProps, ColorPickerAreaThumbProps, ColorPickerChannelInputProps, ColorPickerChannelSliderContext, ColorPickerChannelSliderProps, ColorPickerChannelSliderThumbProps, ColorPickerChannelSliderTrackProps, ColorPickerContentProps, ColorPickerContext, ColorPickerControlProps, ColorPickerEyeDropperTriggerProps, ColorPickerLabelProps, ColorPickerPositionerProps, ColorPickerProps, ColorPickerSwatchGroupProps, ColorPickerSwatchProps, ColorPickerSwatchTriggerProps, ColorPickerTransparencyGridProps, ColorPickerTriggerProps, ColorPickerValueTextProps, };
49
+ export type { ColorPickerAreaBackgroundProps, ColorPickerAreaContext, ColorPickerAreaProps, ColorPickerAreaThumbProps, ColorPickerChannelInputProps, ColorPickerChannelSliderContext, ColorPickerChannelSliderProps, ColorPickerChannelSliderThumbProps, ColorPickerChannelSliderTrackProps, ColorPickerContentProps, ColorPickerContext, ColorPickerControlProps, ColorPickerEyeDropperTriggerProps, ColorPickerLabelProps, ColorPickerPositionerProps, ColorPickerProps, ColorPickerSwatchGroupProps, ColorPickerSwatchProps, ColorPickerSwatchTriggerProps, ColorPickerTransparencyGridProps, ColorPickerTriggerProps, ColorPickerValueTextProps, ColorPickerViewProps, };
@@ -21,6 +21,7 @@ import { ColorPickerSwatchTrigger } from './color-picker-swatch-trigger.mjs';
21
21
  import { ColorPickerTransparencyGrid } from './color-picker-transparency-grid.mjs';
22
22
  import { ColorPickerTrigger } from './color-picker-trigger.mjs';
23
23
  import { ColorPickerValueText } from './color-picker-value-text.mjs';
24
+ import { ColorPickerView } from './color-picker-view.mjs';
24
25
 
25
26
  const ColorPicker = Object.assign(ColorPicker$1, {
26
27
  Root: ColorPicker$1,
@@ -41,7 +42,8 @@ const ColorPicker = Object.assign(ColorPicker$1, {
41
42
  SwatchTrigger: ColorPickerSwatchTrigger,
42
43
  TransparencyGrid: ColorPickerTransparencyGrid,
43
44
  Trigger: ColorPickerTrigger,
44
- ValueText: ColorPickerValueText
45
+ ValueText: ColorPickerValueText,
46
+ View: ColorPickerView
45
47
  });
46
48
 
47
49
  export { ColorPicker, ColorPickerArea, ColorPickerAreaBackground, ColorPickerAreaThumb, ColorPickerChannelInput, ColorPickerChannelSlider, ColorPickerChannelSliderThumb, ColorPickerChannelSliderTrack, ColorPickerContent, ColorPickerControl, ColorPickerEyeDropperTrigger, ColorPickerLabel, ColorPickerPositioner, ColorPickerSwatch, ColorPickerSwatchGroup, ColorPickerSwatchTrigger, ColorPickerTransparencyGrid, ColorPickerTrigger, ColorPickerValueText };
@@ -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
- const index = require('../presence/index.cjs');
10
+ require('../presence/index.cjs');
11
11
  const comboboxContext = require('./combobox-context.cjs');
12
- const splitPresenceProps = require('../presence/split-presence-props.cjs');
12
+ const presenceContext = require('../presence/presence-context.cjs');
13
13
 
14
14
  const ComboboxContent = react.forwardRef((props, ref) => {
15
- const [presenceProps, localProps] = splitPresenceProps.splitPresenceProps(props);
16
15
  const api = comboboxContext.useComboboxContext();
17
- return /* @__PURE__ */ jsxRuntime.jsx(index.Presence, { present: api.isOpen, ...presenceProps, fallback: /* @__PURE__ */ jsxRuntime.jsx("div", { ...api.contentProps }), children: /* @__PURE__ */ jsxRuntime.jsx(ComboboxInnerContent, { ref, ...localProps }) });
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
  ComboboxContent.displayName = "ComboboxContent";
20
- const ComboboxInnerContent = react.forwardRef(
21
- function ComboboxInnerContent2(props, ref) {
22
- const api = comboboxContext.useComboboxContext();
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.ComboboxContent = ComboboxContent;
@@ -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 ComboboxContentProps extends Assign<HTMLArkProps<'div'>, Omit<PresenceProps, 'children' | 'fallback'>> {
4
+ export interface ComboboxContentProps extends HTMLArkProps<'div'> {
7
5
  }
8
6
  export declare const ComboboxContent: ForwardRefExoticComponent<ComboboxContentProps & 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 { Presence } from '../presence/index.mjs';
6
+ import '../presence/index.mjs';
7
7
  import { useComboboxContext } from './combobox-context.mjs';
8
- import { splitPresenceProps } from '../presence/split-presence-props.mjs';
8
+ import { usePresenceContext } from '../presence/presence-context.mjs';
9
9
 
10
10
  const ComboboxContent = forwardRef((props, ref) => {
11
- const [presenceProps, localProps] = splitPresenceProps(props);
12
11
  const api = useComboboxContext();
13
- return /* @__PURE__ */ jsx(Presence, { present: api.isOpen, ...presenceProps, fallback: /* @__PURE__ */ jsx("div", { ...api.contentProps }), children: /* @__PURE__ */ jsx(ComboboxInnerContent, { ref, ...localProps }) });
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
  ComboboxContent.displayName = "ComboboxContent";
16
- const ComboboxInnerContent = forwardRef(
17
- function ComboboxInnerContent2(props, ref) {
18
- const api = useComboboxContext();
19
- const mergedProps = mergeProps(api.contentProps, props);
20
- return /* @__PURE__ */ jsx(ark.div, { ...mergedProps, ref });
21
- }
22
- );
23
20
 
24
21
  export { ComboboxContent };
@@ -1,7 +1,9 @@
1
- import type { ItemProps } from '@zag-js/combobox';
2
- import { ForwardRefExoticComponent, RefAttributes, type ComponentPropsWithoutRef } from 'react';
3
- import { ark } from '../factory';
1
+ import type { ItemProps, ItemState } from '@zag-js/combobox';
2
+ import { ForwardRefExoticComponent, RefAttributes, type ReactNode } from 'react';
3
+ import { type HTMLArkProps } from '../factory';
4
4
  import { type Assign } from '../types';
5
- export interface ComboboxItemProps extends Assign<ComponentPropsWithoutRef<typeof ark.div>, ItemProps> {
5
+ export interface ComboboxItemProps extends Assign<HTMLArkProps<'div'>, {
6
+ children?: ReactNode | ((state: ItemState) => ReactNode);
7
+ }>, ItemProps {
6
8
  }
7
9
  export declare const ComboboxItem: ForwardRefExoticComponent<ComboboxItemProps & RefAttributes<HTMLDivElement>>;
@@ -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 comboboxContext = require('./combobox-context.cjs');
12
+ const presenceContext = require('../presence/presence-context.cjs');
11
13
 
12
14
  const ComboboxPositioner = react.forwardRef(
13
15
  (props, ref) => {
14
16
  const api = comboboxContext.useComboboxContext();
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 { useComboboxContext } from './combobox-context.mjs';
8
+ import { usePresenceContext } from '../presence/presence-context.mjs';
7
9
 
8
10
  const ComboboxPositioner = forwardRef(
9
11
  (props, ref) => {
10
12
  const api = useComboboxContext();
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
  );
@@ -8,13 +8,18 @@ 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 comboboxContext = require('./combobox-context.cjs');
13
14
  const useCombobox = require('./use-combobox.cjs');
15
+ const splitPresenceProps = require('../presence/split-presence-props.cjs');
16
+ const usePresence = require('../presence/use-presence.cjs');
17
+ const presenceContext = require('../presence/presence-context.cjs');
14
18
 
15
19
  const ComboboxImpl = (props, ref) => {
20
+ const [presenceProps, comboboxProps] = splitPresenceProps.splitPresenceProps(props);
16
21
  const [useComboboxProps, { children, ...localProps }] = createSplitProps.createSplitProps()(
17
- props,
22
+ comboboxProps,
18
23
  [
19
24
  "allowCustomValue",
20
25
  "autoFocus",
@@ -56,9 +61,10 @@ const ComboboxImpl = (props, ref) => {
56
61
  ]
57
62
  );
58
63
  const api = useCombobox.useCombobox(useComboboxProps);
64
+ const presenceApi = usePresence.usePresence({ ...presenceProps, present: api.isOpen });
59
65
  const view = runIfFn.runIfFn(children, api);
60
66
  const mergedProps = react$1.mergeProps(api.rootProps, localProps);
61
- return /* @__PURE__ */ jsxRuntime.jsx(comboboxContext.ComboboxProvider, { value: api, children: /* @__PURE__ */ jsxRuntime.jsx(factory.ark.div, { ...mergedProps, ref, children: view }) });
67
+ return /* @__PURE__ */ jsxRuntime.jsx(comboboxContext.ComboboxProvider, { value: api, children: /* @__PURE__ */ jsxRuntime.jsx(presenceContext.PresenceProvider, { value: presenceApi, children: /* @__PURE__ */ jsxRuntime.jsx(factory.ark.div, { ...mergedProps, ref, children: view }) }) });
62
68
  };
63
69
  const Combobox = react.forwardRef(ComboboxImpl);
64
70
 
@@ -1,10 +1,11 @@
1
1
  import { type ReactNode } from 'react';
2
2
  import { type HTMLArkProps } from '../factory';
3
+ import { type UsePresenceProps } from '../presence';
3
4
  import { type Assign, type CollectionItem } from '../types';
4
5
  import { type UseComboboxProps, type UseComboboxReturn } from './use-combobox';
5
- export interface ComboboxProps<T extends CollectionItem> extends Assign<HTMLArkProps<'div'>, UseComboboxProps<T> & {
6
- children?: ReactNode | ((state: UseComboboxReturn<T>) => ReactNode);
7
- }> {
6
+ export interface ComboboxProps<T extends CollectionItem> extends Assign<Assign<HTMLArkProps<'div'>, {
7
+ children?: ReactNode | ((api: UseComboboxReturn<T>) => ReactNode);
8
+ }>, UseComboboxProps<T>>, UsePresenceProps {
8
9
  }
9
10
  export interface ComboboxComponent {
10
11
  <T extends CollectionItem>(props: ComboboxProps<T> & React.RefAttributes<HTMLDivElement>): JSX.Element;
@@ -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 { ComboboxProvider } from './combobox-context.mjs';
9
10
  import { useCombobox } from './use-combobox.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 ComboboxImpl = (props, ref) => {
16
+ const [presenceProps, comboboxProps] = splitPresenceProps(props);
12
17
  const [useComboboxProps, { children, ...localProps }] = createSplitProps()(
13
- props,
18
+ comboboxProps,
14
19
  [
15
20
  "allowCustomValue",
16
21
  "autoFocus",
@@ -52,9 +57,10 @@ const ComboboxImpl = (props, ref) => {
52
57
  ]
53
58
  );
54
59
  const api = useCombobox(useComboboxProps);
60
+ const presenceApi = usePresence({ ...presenceProps, present: api.isOpen });
55
61
  const view = runIfFn(children, api);
56
62
  const mergedProps = mergeProps(api.rootProps, localProps);
57
- return /* @__PURE__ */ jsx(ComboboxProvider, { value: api, children: /* @__PURE__ */ jsx(ark.div, { ...mergedProps, ref, children: view }) });
63
+ return /* @__PURE__ */ jsx(ComboboxProvider, { value: api, children: /* @__PURE__ */ jsx(PresenceProvider, { value: presenceApi, children: /* @__PURE__ */ jsx(ark.div, { ...mergedProps, ref, children: view }) }) });
58
64
  };
59
65
  const Combobox = forwardRef(ComboboxImpl);
60
66
 
@@ -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 datePickerContext = require('./date-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 DatePickerContent = react.forwardRef(
15
15
  (props, ref) => {
16
- const [presenceProps, localProps] = splitPresenceProps.splitPresenceProps(props);
17
16
  const api = datePickerContext.useDatePickerContext();
18
- return /* @__PURE__ */ jsxRuntime.jsx(index.Presence, { present: api.isOpen, ...presenceProps, fallback: /* @__PURE__ */ jsxRuntime.jsx("div", { ...api.contentProps }), children: /* @__PURE__ */ jsxRuntime.jsx(DatePickerInnerContent, { 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
  DatePickerContent.displayName = "DatePickerContent";
22
- const DatePickerInnerContent = react.forwardRef(
23
- function DatePickerInnerContent2(props, ref) {
24
- const api = datePickerContext.useDatePickerContext();
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.DatePickerContent = DatePickerContent;
@@ -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 DatePickerContentProps extends Assign<HTMLArkProps<'div'>, Omit<PresenceProps, 'children' | 'fallback'>> {
4
+ export interface DatePickerContentProps extends HTMLArkProps<'div'> {
7
5
  }
8
6
  export declare const DatePickerContent: ForwardRefExoticComponent<DatePickerContentProps & 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 { useDatePickerContext } from './date-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 DatePickerContent = forwardRef(
11
11
  (props, ref) => {
12
- const [presenceProps, localProps] = splitPresenceProps(props);
13
12
  const api = useDatePickerContext();
14
- return /* @__PURE__ */ jsx(Presence, { present: api.isOpen, ...presenceProps, fallback: /* @__PURE__ */ jsx("div", { ...api.contentProps }), children: /* @__PURE__ */ jsx(DatePickerInnerContent, { 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
  DatePickerContent.displayName = "DatePickerContent";
18
- const DatePickerInnerContent = forwardRef(
19
- function DatePickerInnerContent2(props, ref) {
20
- const api = useDatePickerContext();
21
- const mergedProps = mergeProps(api.contentProps, props);
22
- return /* @__PURE__ */ jsx(ark.div, { ...mergedProps, ref });
23
- }
24
- );
25
22
 
26
23
  export { DatePickerContent };
@@ -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 datePickerContext = require('./date-picker-context.cjs');
12
+ const presenceContext = require('../presence/presence-context.cjs');
11
13
 
12
14
  const DatePickerPositioner = react.forwardRef(
13
15
  (props, ref) => {
14
16
  const api = datePickerContext.useDatePickerContext();
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 { useDatePickerContext } from './date-picker-context.mjs';
8
+ import { usePresenceContext } from '../presence/presence-context.mjs';
7
9
 
8
10
  const DatePickerPositioner = forwardRef(
9
11
  (props, ref) => {
10
12
  const api = useDatePickerContext();
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
  );
@@ -3,8 +3,8 @@ import { ForwardRefExoticComponent, RefAttributes, type ReactNode } from 'react'
3
3
  import { type HTMLArkProps } from '../factory';
4
4
  import type { Assign } from '../types';
5
5
  import type { UseDatePickerReturn } from './use-date-picker';
6
- export interface DatePickerViewProps extends Required<ViewProps>, Assign<HTMLArkProps<'div'>, {
7
- children?: ReactNode | ((props: UseDatePickerReturn) => ReactNode);
8
- }> {
6
+ export interface DatePickerViewProps extends Assign<HTMLArkProps<'div'>, {
7
+ children?: ReactNode | ((api: UseDatePickerReturn) => ReactNode);
8
+ }>, Required<ViewProps> {
9
9
  }
10
10
  export declare const DatePickerView: ForwardRefExoticComponent<DatePickerViewProps & RefAttributes<HTMLDivElement>>;
@@ -8,13 +8,18 @@ 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 datePickerContext = require('./date-picker-context.cjs');
13
14
  const useDatePicker = require('./use-date-picker.cjs');
15
+ const splitPresenceProps = require('../presence/split-presence-props.cjs');
16
+ const usePresence = require('../presence/use-presence.cjs');
17
+ const presenceContext = require('../presence/presence-context.cjs');
14
18
 
15
19
  const DatePicker = react.forwardRef((props, ref) => {
16
- const [datePickerProps, { children, ...localProps }] = createSplitProps.createSplitProps()(
17
- props,
20
+ const [presenceProps, datePickerProps] = splitPresenceProps.splitPresenceProps(props);
21
+ const [useDatePickerProps, { children, ...localProps }] = createSplitProps.createSplitProps()(
22
+ datePickerProps,
18
23
  [
19
24
  "closeOnSelect",
20
25
  "defaultValue",
@@ -50,10 +55,11 @@ const DatePicker = react.forwardRef((props, ref) => {
50
55
  "view"
51
56
  ]
52
57
  );
53
- const api = useDatePicker.useDatePicker(datePickerProps);
58
+ const api = useDatePicker.useDatePicker(useDatePickerProps);
59
+ const presenceApi = usePresence.usePresence({ ...presenceProps, present: api.isOpen });
54
60
  const view = runIfFn.runIfFn(children, api);
55
61
  const mergedProps = react$1.mergeProps(api.rootProps, localProps);
56
- return /* @__PURE__ */ jsxRuntime.jsx(datePickerContext.DatePickerProvider, { value: api, children: /* @__PURE__ */ jsxRuntime.jsx(factory.ark.div, { ...mergedProps, ref, children: view }) });
62
+ return /* @__PURE__ */ jsxRuntime.jsx(datePickerContext.DatePickerProvider, { value: api, children: /* @__PURE__ */ jsxRuntime.jsx(presenceContext.PresenceProvider, { value: presenceApi, children: /* @__PURE__ */ jsxRuntime.jsx(factory.ark.div, { ...mergedProps, ref, children: view }) }) });
57
63
  });
58
64
  DatePicker.displayName = "DatePicker";
59
65
 
@@ -1,9 +1,10 @@
1
1
  import { ForwardRefExoticComponent, RefAttributes, type ReactNode } from 'react';
2
+ import { type HTMLArkProps } from '../factory';
3
+ import { type UsePresenceProps } from '../presence';
2
4
  import { type Assign } from '../types';
3
- import { type DatePickerContext } from './date-picker-context';
4
- import { type UseDatePickerProps } from './use-date-picker';
5
- export interface DatePickerProps extends Assign<UseDatePickerProps, {
6
- children?: ReactNode | ((props: DatePickerContext) => ReactNode);
7
- }> {
5
+ import { type UseDatePickerProps, type UseDatePickerReturn } from './use-date-picker';
6
+ export interface DatePickerProps extends Assign<Assign<HTMLArkProps<'div'>, {
7
+ children?: ReactNode | ((api: UseDatePickerReturn) => ReactNode);
8
+ }>, UseDatePickerProps>, UsePresenceProps {
8
9
  }
9
10
  export declare const DatePicker: ForwardRefExoticComponent<DatePickerProps & RefAttributes<HTMLDivElement>>;