@ark-ui/react 1.0.0-beta.1 → 1.0.0-beta.3

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 (52) hide show
  1. package/CHANGELOG.md +21 -1
  2. package/accordion/accordion-item-content.cjs +11 -2
  3. package/accordion/accordion-item-content.d.ts +1 -1
  4. package/accordion/accordion-item-content.mjs +11 -2
  5. package/color-picker/color-picker-content.cjs +10 -1
  6. package/color-picker/color-picker-content.d.ts +3 -1
  7. package/color-picker/color-picker-content.mjs +10 -1
  8. package/color-picker/color-picker-transparency-grid.d.ts +2 -2
  9. package/color-picker/color-picker-value-text.cjs +20 -0
  10. package/color-picker/color-picker-value-text.d.ts +6 -0
  11. package/color-picker/color-picker-value-text.mjs +16 -0
  12. package/color-picker/index.cjs +4 -1
  13. package/color-picker/index.d.ts +6 -4
  14. package/color-picker/index.mjs +4 -2
  15. package/combobox/combobox-content.cjs +1 -1
  16. package/combobox/combobox-content.d.ts +1 -1
  17. package/combobox/combobox-content.mjs +1 -1
  18. package/date-picker/date-picker-content.cjs +10 -1
  19. package/date-picker/date-picker-content.d.ts +3 -1
  20. package/date-picker/date-picker-content.mjs +10 -1
  21. package/date-picker/date-picker-view.cjs +11 -1
  22. package/date-picker/date-picker-view.mjs +11 -1
  23. package/dialog/dialog-backdrop.cjs +1 -1
  24. package/dialog/dialog-backdrop.d.ts +1 -1
  25. package/dialog/dialog-backdrop.mjs +1 -1
  26. package/dialog/dialog-content.cjs +1 -1
  27. package/dialog/dialog-content.d.ts +1 -1
  28. package/dialog/dialog-content.mjs +1 -1
  29. package/hover-card/hover-card-content.cjs +1 -1
  30. package/hover-card/hover-card-content.d.ts +1 -1
  31. package/hover-card/hover-card-content.mjs +1 -1
  32. package/index.cjs +2 -0
  33. package/index.mjs +1 -0
  34. package/menu/menu-content.cjs +1 -1
  35. package/menu/menu-content.d.ts +1 -1
  36. package/menu/menu-content.mjs +1 -1
  37. package/package.json +17 -17
  38. package/popover/popover-content.cjs +1 -1
  39. package/popover/popover-content.d.ts +1 -1
  40. package/popover/popover-content.mjs +1 -1
  41. package/presence/index.d.ts +2 -2
  42. package/presence/presence.cjs +2 -2
  43. package/presence/presence.d.ts +5 -1
  44. package/presence/presence.mjs +2 -2
  45. package/presence/split-presence-props.d.ts +1 -1
  46. package/select/select-content.cjs +1 -1
  47. package/select/select-content.d.ts +1 -1
  48. package/select/select-content.mjs +1 -1
  49. package/tabs/tab-content.d.ts +1 -1
  50. package/tooltip/tooltip-content.cjs +1 -1
  51. package/tooltip/tooltip-content.d.ts +1 -1
  52. package/tooltip/tooltip-content.mjs +1 -1
package/CHANGELOG.md CHANGED
@@ -1,11 +1,31 @@
1
1
  ---
2
2
  id: changelog
3
3
  name: Changelog
4
- description: All notable changes to this project will be documented in this file. The format is based on Keep a Changelog and this project adheres to and this project adheres to Semantic Versioning.
4
+ description: All notable changes to this project will be documented in this file.
5
5
  ---
6
6
 
7
7
  ## [Unreleased]
8
8
 
9
+ ## [1.0.0-beta.3] - 2023-10-26
10
+
11
+ ### Added
12
+
13
+ - Added support to lazy mount the `DatePicker` and `ColorPicker` components using the `Presence` component
14
+
15
+ ### Changed
16
+
17
+ - Improved accessibility of all disclosure components when lazy mounting is enabled.
18
+
19
+ ## [1.0.0-beta.2] - 2023-10-25
20
+
21
+ ### Added
22
+
23
+ - Added `ValueText` to the `ColorPicker` component
24
+
25
+ ### Fixed
26
+
27
+ - Added missing data attributes to `DatePickerView` component
28
+
9
29
  ## [1.0.0-beta.1] - 2023-10-20
10
30
 
11
31
  ### Added
@@ -15,8 +15,17 @@ const splitPresenceProps = require('../presence/split-presence-props.cjs');
15
15
  const AccordionItemContent = react.forwardRef(
16
16
  function AccordionItemContent2(props, ref) {
17
17
  const [presenceProps, localProps] = splitPresenceProps.splitPresenceProps(props);
18
- const api = accordionItemContext.useAccordionItemContext();
19
- return /* @__PURE__ */ jsxRuntime.jsx(index.Presence, { present: api.isOpen, ...presenceProps, children: /* @__PURE__ */ jsxRuntime.jsx(AccordionInnerContent, { ref, ...localProps }) });
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
+ );
20
29
  }
21
30
  );
22
31
  const AccordionInnerContent = react.forwardRef(
@@ -3,6 +3,6 @@ import { ForwardRefExoticComponent, RefAttributes } from 'react';
3
3
  import { type HTMLArkProps } from '../factory';
4
4
  import { type PresenceProps } from '../presence';
5
5
  import type { Assign } from '../types';
6
- export interface AccordionItemContentProps extends Assign<HTMLArkProps<'div'>, Omit<PresenceProps, 'children'>> {
6
+ export interface AccordionItemContentProps extends Assign<HTMLArkProps<'div'>, Omit<PresenceProps, 'children' | 'fallback'>> {
7
7
  }
8
8
  export declare const AccordionItemContent: ForwardRefExoticComponent<AccordionItemContentProps & RefAttributes<HTMLDivElement>>;
@@ -11,8 +11,17 @@ import { splitPresenceProps } from '../presence/split-presence-props.mjs';
11
11
  const AccordionItemContent = forwardRef(
12
12
  function AccordionItemContent2(props, ref) {
13
13
  const [presenceProps, localProps] = splitPresenceProps(props);
14
- const api = useAccordionItemContext();
15
- return /* @__PURE__ */ jsx(Presence, { present: api.isOpen, ...presenceProps, children: /* @__PURE__ */ jsx(AccordionInnerContent, { ref, ...localProps }) });
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
+ );
16
25
  }
17
26
  );
18
27
  const AccordionInnerContent = forwardRef(
@@ -7,15 +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
+ const index = require('../presence/index.cjs');
10
11
  const colorPickerContext = require('./color-picker-context.cjs');
12
+ const splitPresenceProps = require('../presence/split-presence-props.cjs');
11
13
 
12
14
  const ColorPickerContent = react.forwardRef(
13
15
  (props, ref) => {
16
+ const [presenceProps, localProps] = splitPresenceProps.splitPresenceProps(props);
17
+ 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 }) });
19
+ }
20
+ );
21
+ ColorPickerContent.displayName = "ColorPickerContent";
22
+ const ColorPickerInnerContent = react.forwardRef(
23
+ function ColorPickerInnerContent2(props, ref) {
14
24
  const api = colorPickerContext.useColorPickerContext();
15
25
  const mergedProps = react$1.mergeProps(api.contentProps, props);
16
26
  return /* @__PURE__ */ jsxRuntime.jsx(factory.ark.div, { ...mergedProps, ref });
17
27
  }
18
28
  );
19
- ColorPickerContent.displayName = "ColorPickerContent";
20
29
 
21
30
  exports.ColorPickerContent = ColorPickerContent;
@@ -1,6 +1,8 @@
1
1
  import { ForwardRefExoticComponent, RefAttributes } from 'react';
2
2
  /// <reference types="react" />
3
3
  import { type HTMLArkProps } from '../factory';
4
- export interface ColorPickerContentProps extends HTMLArkProps<'div'> {
4
+ import { type PresenceProps } from '../presence';
5
+ import type { Assign } from '../types';
6
+ export interface ColorPickerContentProps extends Assign<HTMLArkProps<'div'>, Omit<PresenceProps, 'children' | 'fallback'>> {
5
7
  }
6
8
  export declare const ColorPickerContent: ForwardRefExoticComponent<ColorPickerContentProps & RefAttributes<HTMLDivElement>>;
@@ -3,15 +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 } from '../presence/index.mjs';
6
7
  import { useColorPickerContext } from './color-picker-context.mjs';
8
+ import { splitPresenceProps } from '../presence/split-presence-props.mjs';
7
9
 
8
10
  const ColorPickerContent = forwardRef(
9
11
  (props, ref) => {
12
+ const [presenceProps, localProps] = splitPresenceProps(props);
13
+ const api = useColorPickerContext();
14
+ return /* @__PURE__ */ jsx(Presence, { present: api.isOpen, ...presenceProps, fallback: /* @__PURE__ */ jsx("div", { ...api.contentProps }), children: /* @__PURE__ */ jsx(ColorPickerInnerContent, { ref, ...localProps }) });
15
+ }
16
+ );
17
+ ColorPickerContent.displayName = "ColorPickerContent";
18
+ const ColorPickerInnerContent = forwardRef(
19
+ function ColorPickerInnerContent2(props, ref) {
10
20
  const api = useColorPickerContext();
11
21
  const mergedProps = mergeProps(api.contentProps, props);
12
22
  return /* @__PURE__ */ jsx(ark.div, { ...mergedProps, ref });
13
23
  }
14
24
  );
15
- ColorPickerContent.displayName = "ColorPickerContent";
16
25
 
17
26
  export { ColorPickerContent };
@@ -5,7 +5,7 @@ import type { Assign } from '../types';
5
5
  interface TransparancyGridProps {
6
6
  size: string;
7
7
  }
8
- export interface ColorPickerTransparencyGridPrps extends Assign<HTMLArkProps<'div'>, TransparancyGridProps> {
8
+ export interface ColorPickerTransparencyGridProps extends Assign<HTMLArkProps<'div'>, TransparancyGridProps> {
9
9
  }
10
- export declare const ColorPickerTransparencyGrid: ForwardRefExoticComponent<ColorPickerTransparencyGridPrps & RefAttributes<HTMLDivElement>>;
10
+ export declare const ColorPickerTransparencyGrid: ForwardRefExoticComponent<ColorPickerTransparencyGridProps & RefAttributes<HTMLDivElement>>;
11
11
  export {};
@@ -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 anatomy = require('@ark-ui/anatomy');
8
+ const react = require('react');
9
+ const factory = require('../factory.cjs');
10
+ const colorPickerContext = require('./color-picker-context.cjs');
11
+
12
+ const ColorPickerValueText = react.forwardRef(
13
+ (props, ref) => {
14
+ const api = colorPickerContext.useColorPickerContext();
15
+ return /* @__PURE__ */ jsxRuntime.jsx(factory.ark.span, { ...anatomy.colorPickerAnatomy.build().valueText.attrs, ...props, ref, children: props.children || api.valueAsString });
16
+ }
17
+ );
18
+ ColorPickerValueText.displayName = "ColorPickerValueText";
19
+
20
+ exports.ColorPickerValueText = ColorPickerValueText;
@@ -0,0 +1,6 @@
1
+ import { ForwardRefExoticComponent, RefAttributes } from 'react';
2
+ /// <reference types="react" />
3
+ import { type HTMLArkProps } from '../factory';
4
+ export interface ColorPickerValueTextProps extends HTMLArkProps<'span'> {
5
+ }
6
+ export declare const ColorPickerValueText: ForwardRefExoticComponent<ColorPickerValueTextProps & RefAttributes<HTMLDivElement>>;
@@ -0,0 +1,16 @@
1
+ 'use client';
2
+ import { jsx } from 'react/jsx-runtime';
3
+ import { colorPickerAnatomy } from '@ark-ui/anatomy';
4
+ import { forwardRef } from 'react';
5
+ import { ark } from '../factory.mjs';
6
+ import { useColorPickerContext } from './color-picker-context.mjs';
7
+
8
+ const ColorPickerValueText = forwardRef(
9
+ (props, ref) => {
10
+ const api = useColorPickerContext();
11
+ return /* @__PURE__ */ jsx(ark.span, { ...colorPickerAnatomy.build().valueText.attrs, ...props, ref, children: props.children || api.valueAsString });
12
+ }
13
+ );
14
+ ColorPickerValueText.displayName = "ColorPickerValueText";
15
+
16
+ export { ColorPickerValueText };
@@ -24,6 +24,7 @@ const colorPickerSwatchGroup = require('./color-picker-swatch-group.cjs');
24
24
  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
+ const colorPickerValueText = require('./color-picker-value-text.cjs');
27
28
 
28
29
  const ColorPicker = Object.assign(colorPicker.ColorPicker, {
29
30
  Root: colorPicker.ColorPicker,
@@ -43,7 +44,8 @@ const ColorPicker = Object.assign(colorPicker.ColorPicker, {
43
44
  SwatchGroup: colorPickerSwatchGroup.ColorPickerSwatchGroup,
44
45
  SwatchTrigger: colorPickerSwatchTrigger.ColorPickerSwatchTrigger,
45
46
  TransparencyGrid: colorPickerTransparencyGrid.ColorPickerTransparencyGrid,
46
- Trigger: colorPickerTrigger.ColorPickerTrigger
47
+ Trigger: colorPickerTrigger.ColorPickerTrigger,
48
+ ValueText: colorPickerValueText.ColorPickerValueText
47
49
  });
48
50
 
49
51
  exports.ColorPickerArea = colorPickerArea.ColorPickerArea;
@@ -66,4 +68,5 @@ exports.ColorPickerSwatchGroup = colorPickerSwatchGroup.ColorPickerSwatchGroup;
66
68
  exports.ColorPickerSwatchTrigger = colorPickerSwatchTrigger.ColorPickerSwatchTrigger;
67
69
  exports.ColorPickerTransparencyGrid = colorPickerTransparencyGrid.ColorPickerTransparencyGrid;
68
70
  exports.ColorPickerTrigger = colorPickerTrigger.ColorPickerTrigger;
71
+ exports.ColorPickerValueText = colorPickerValueText.ColorPickerValueText;
69
72
  exports.ColorPicker = ColorPicker;
@@ -19,8 +19,9 @@ import { ColorPickerPositioner, type ColorPickerPositionerProps } from './color-
19
19
  import { ColorPickerSwatch, type ColorPickerSwatchProps } from './color-picker-swatch';
20
20
  import { ColorPickerSwatchGroup, type ColorPickerSwatchGroupProps } from './color-picker-swatch-group';
21
21
  import { ColorPickerSwatchTrigger, type ColorPickerSwatchTriggerProps } from './color-picker-swatch-trigger';
22
- import { ColorPickerTransparencyGrid, type ColorPickerTransparencyGridPrps } from './color-picker-transparency-grid';
22
+ import { ColorPickerTransparencyGrid, type ColorPickerTransparencyGridProps } from './color-picker-transparency-grid';
23
23
  import { ColorPickerTrigger, type ColorPickerTriggerProps } from './color-picker-trigger';
24
+ import { ColorPickerValueText, type ColorPickerValueTextProps } from './color-picker-value-text';
24
25
  declare const ColorPicker: ForwardRefExoticComponent<ColorPickerProps & RefAttributes<HTMLDivElement>> & {
25
26
  Root: ForwardRefExoticComponent<ColorPickerProps & RefAttributes<HTMLDivElement>>;
26
27
  Area: ForwardRefExoticComponent<ColorPickerAreaProps & RefAttributes<HTMLDivElement>>;
@@ -38,8 +39,9 @@ declare const ColorPicker: ForwardRefExoticComponent<ColorPickerProps & RefAttri
38
39
  Swatch: ForwardRefExoticComponent<ColorPickerSwatchProps & RefAttributes<HTMLDivElement>>;
39
40
  SwatchGroup: ForwardRefExoticComponent<ColorPickerSwatchGroupProps & RefAttributes<HTMLDivElement>>;
40
41
  SwatchTrigger: ForwardRefExoticComponent<ColorPickerSwatchTriggerProps & RefAttributes<HTMLButtonElement>>;
41
- TransparencyGrid: ForwardRefExoticComponent<ColorPickerTransparencyGridPrps & RefAttributes<HTMLDivElement>>;
42
+ TransparencyGrid: ForwardRefExoticComponent<ColorPickerTransparencyGridProps & RefAttributes<HTMLDivElement>>;
42
43
  Trigger: ForwardRefExoticComponent<ColorPickerTriggerProps & RefAttributes<HTMLButtonElement>>;
44
+ ValueText: ForwardRefExoticComponent<ColorPickerValueTextProps & RefAttributes<HTMLDivElement>>;
43
45
  };
44
- export { ColorPicker, ColorPickerArea, ColorPickerAreaBackground, ColorPickerAreaThumb, ColorPickerChannelInput, ColorPickerChannelSlider, ColorPickerChannelSliderThumb, ColorPickerChannelSliderTrack, ColorPickerContent, ColorPickerControl, ColorPickerEyeDropperTrigger, ColorPickerLabel, ColorPickerPositioner, ColorPickerSwatch, ColorPickerSwatchGroup, ColorPickerSwatchTrigger, ColorPickerTransparencyGrid, ColorPickerTrigger, useColorPickerAreaContext, useColorPickerChannelSliderContext, useColorPickerContext, };
45
- export type { ColorPickerAreaBackgroundProps, ColorPickerAreaContext, ColorPickerAreaProps, ColorPickerAreaThumbProps, ColorPickerChannelInputProps, ColorPickerChannelSliderContext, ColorPickerChannelSliderProps, ColorPickerChannelSliderThumbProps, ColorPickerChannelSliderTrackProps, ColorPickerContentProps, ColorPickerContext, ColorPickerControlProps, ColorPickerEyeDropperTriggerProps, ColorPickerLabelProps, ColorPickerPositionerProps, ColorPickerProps, ColorPickerSwatchGroupProps, ColorPickerSwatchProps, ColorPickerSwatchTriggerProps, ColorPickerTransparencyGridPrps, ColorPickerTriggerProps, };
46
+ 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, };
@@ -20,6 +20,7 @@ import { ColorPickerSwatchGroup } from './color-picker-swatch-group.mjs';
20
20
  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
+ import { ColorPickerValueText } from './color-picker-value-text.mjs';
23
24
 
24
25
  const ColorPicker = Object.assign(ColorPicker$1, {
25
26
  Root: ColorPicker$1,
@@ -39,7 +40,8 @@ const ColorPicker = Object.assign(ColorPicker$1, {
39
40
  SwatchGroup: ColorPickerSwatchGroup,
40
41
  SwatchTrigger: ColorPickerSwatchTrigger,
41
42
  TransparencyGrid: ColorPickerTransparencyGrid,
42
- Trigger: ColorPickerTrigger
43
+ Trigger: ColorPickerTrigger,
44
+ ValueText: ColorPickerValueText
43
45
  });
44
46
 
45
- export { ColorPicker, ColorPickerArea, ColorPickerAreaBackground, ColorPickerAreaThumb, ColorPickerChannelInput, ColorPickerChannelSlider, ColorPickerChannelSliderThumb, ColorPickerChannelSliderTrack, ColorPickerContent, ColorPickerControl, ColorPickerEyeDropperTrigger, ColorPickerLabel, ColorPickerPositioner, ColorPickerSwatch, ColorPickerSwatchGroup, ColorPickerSwatchTrigger, ColorPickerTransparencyGrid, ColorPickerTrigger };
47
+ export { ColorPicker, ColorPickerArea, ColorPickerAreaBackground, ColorPickerAreaThumb, ColorPickerChannelInput, ColorPickerChannelSlider, ColorPickerChannelSliderThumb, ColorPickerChannelSliderTrack, ColorPickerContent, ColorPickerControl, ColorPickerEyeDropperTrigger, ColorPickerLabel, ColorPickerPositioner, ColorPickerSwatch, ColorPickerSwatchGroup, ColorPickerSwatchTrigger, ColorPickerTransparencyGrid, ColorPickerTrigger, ColorPickerValueText };
@@ -14,7 +14,7 @@ const splitPresenceProps = require('../presence/split-presence-props.cjs');
14
14
  const ComboboxContent = react.forwardRef((props, ref) => {
15
15
  const [presenceProps, localProps] = splitPresenceProps.splitPresenceProps(props);
16
16
  const api = comboboxContext.useComboboxContext();
17
- return /* @__PURE__ */ jsxRuntime.jsx(index.Presence, { present: api.isOpen, ...presenceProps, children: /* @__PURE__ */ jsxRuntime.jsx(ComboboxInnerContent, { ref, ...localProps }) });
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 }) });
18
18
  });
19
19
  ComboboxContent.displayName = "ComboboxContent";
20
20
  const ComboboxInnerContent = react.forwardRef(
@@ -3,6 +3,6 @@ import { ForwardRefExoticComponent, RefAttributes } from 'react';
3
3
  import { type HTMLArkProps } from '../factory';
4
4
  import { type PresenceProps } from '../presence';
5
5
  import type { Assign } from '../types';
6
- export interface ComboboxContentProps extends Assign<HTMLArkProps<'div'>, Omit<PresenceProps, 'children'>> {
6
+ export interface ComboboxContentProps extends Assign<HTMLArkProps<'div'>, Omit<PresenceProps, 'children' | 'fallback'>> {
7
7
  }
8
8
  export declare const ComboboxContent: ForwardRefExoticComponent<ComboboxContentProps & RefAttributes<HTMLDivElement>>;
@@ -10,7 +10,7 @@ import { splitPresenceProps } from '../presence/split-presence-props.mjs';
10
10
  const ComboboxContent = forwardRef((props, ref) => {
11
11
  const [presenceProps, localProps] = splitPresenceProps(props);
12
12
  const api = useComboboxContext();
13
- return /* @__PURE__ */ jsx(Presence, { present: api.isOpen, ...presenceProps, children: /* @__PURE__ */ jsx(ComboboxInnerContent, { ref, ...localProps }) });
13
+ return /* @__PURE__ */ jsx(Presence, { present: api.isOpen, ...presenceProps, fallback: /* @__PURE__ */ jsx("div", { ...api.contentProps }), children: /* @__PURE__ */ jsx(ComboboxInnerContent, { ref, ...localProps }) });
14
14
  });
15
15
  ComboboxContent.displayName = "ComboboxContent";
16
16
  const ComboboxInnerContent = forwardRef(
@@ -7,15 +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
+ const index = require('../presence/index.cjs');
10
11
  const datePickerContext = require('./date-picker-context.cjs');
12
+ const splitPresenceProps = require('../presence/split-presence-props.cjs');
11
13
 
12
14
  const DatePickerContent = react.forwardRef(
13
15
  (props, ref) => {
16
+ const [presenceProps, localProps] = splitPresenceProps.splitPresenceProps(props);
17
+ 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 }) });
19
+ }
20
+ );
21
+ DatePickerContent.displayName = "DatePickerContent";
22
+ const DatePickerInnerContent = react.forwardRef(
23
+ function DatePickerInnerContent2(props, ref) {
14
24
  const api = datePickerContext.useDatePickerContext();
15
25
  const mergedProps = react$1.mergeProps(api.contentProps, props);
16
26
  return /* @__PURE__ */ jsxRuntime.jsx(factory.ark.div, { ...mergedProps, ref });
17
27
  }
18
28
  );
19
- DatePickerContent.displayName = "DatePickerContent";
20
29
 
21
30
  exports.DatePickerContent = DatePickerContent;
@@ -1,6 +1,8 @@
1
1
  import { ForwardRefExoticComponent, RefAttributes } from 'react';
2
2
  /// <reference types="react" />
3
3
  import { type HTMLArkProps } from '../factory';
4
- export interface DatePickerContentProps extends HTMLArkProps<'div'> {
4
+ import { type PresenceProps } from '../presence';
5
+ import type { Assign } from '../types';
6
+ export interface DatePickerContentProps extends Assign<HTMLArkProps<'div'>, Omit<PresenceProps, 'children' | 'fallback'>> {
5
7
  }
6
8
  export declare const DatePickerContent: ForwardRefExoticComponent<DatePickerContentProps & RefAttributes<HTMLDivElement>>;
@@ -3,15 +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 } from '../presence/index.mjs';
6
7
  import { useDatePickerContext } from './date-picker-context.mjs';
8
+ import { splitPresenceProps } from '../presence/split-presence-props.mjs';
7
9
 
8
10
  const DatePickerContent = forwardRef(
9
11
  (props, ref) => {
12
+ const [presenceProps, localProps] = splitPresenceProps(props);
13
+ const api = useDatePickerContext();
14
+ return /* @__PURE__ */ jsx(Presence, { present: api.isOpen, ...presenceProps, fallback: /* @__PURE__ */ jsx("div", { ...api.contentProps }), children: /* @__PURE__ */ jsx(DatePickerInnerContent, { ref, ...localProps }) });
15
+ }
16
+ );
17
+ DatePickerContent.displayName = "DatePickerContent";
18
+ const DatePickerInnerContent = forwardRef(
19
+ function DatePickerInnerContent2(props, ref) {
10
20
  const api = useDatePickerContext();
11
21
  const mergedProps = mergeProps(api.contentProps, props);
12
22
  return /* @__PURE__ */ jsx(ark.div, { ...mergedProps, ref });
13
23
  }
14
24
  );
15
- DatePickerContent.displayName = "DatePickerContent";
16
25
 
17
26
  export { DatePickerContent };
@@ -4,6 +4,7 @@
4
4
  Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });
5
5
 
6
6
  const jsxRuntime = require('react/jsx-runtime');
7
+ const anatomy = require('@ark-ui/anatomy');
7
8
  const react = require('react');
8
9
  const createSplitProps = require('../create-split-props.cjs');
9
10
  const factory = require('../factory.cjs');
@@ -17,7 +18,16 @@ const DatePickerView = react.forwardRef((props, ref) => {
17
18
  ]);
18
19
  const api = datePickerContext.useDatePickerContext();
19
20
  const view = runIfFn.runIfFn(children, api);
20
- return /* @__PURE__ */ jsxRuntime.jsx(datePickerViewContext.DatePickerViewProvider, { value: viewProps, children: /* @__PURE__ */ jsxRuntime.jsx(factory.ark.div, { ...localProps, ref, hidden: api.view !== viewProps.view, children: view }) });
21
+ return /* @__PURE__ */ jsxRuntime.jsx(datePickerViewContext.DatePickerViewProvider, { value: viewProps, children: /* @__PURE__ */ jsxRuntime.jsx(
22
+ factory.ark.div,
23
+ {
24
+ hidden: api.view !== viewProps.view,
25
+ ...anatomy.datePickerAnatomy.build().view.attrs,
26
+ ...localProps,
27
+ ref,
28
+ children: view
29
+ }
30
+ ) });
21
31
  });
22
32
  DatePickerView.displayName = "DatePickerView";
23
33
 
@@ -1,5 +1,6 @@
1
1
  'use client';
2
2
  import { jsx } from 'react/jsx-runtime';
3
+ import { datePickerAnatomy } from '@ark-ui/anatomy';
3
4
  import { forwardRef } from 'react';
4
5
  import { createSplitProps } from '../create-split-props.mjs';
5
6
  import { ark } from '../factory.mjs';
@@ -13,7 +14,16 @@ const DatePickerView = forwardRef((props, ref) => {
13
14
  ]);
14
15
  const api = useDatePickerContext();
15
16
  const view = runIfFn(children, api);
16
- return /* @__PURE__ */ jsx(DatePickerViewProvider, { value: viewProps, children: /* @__PURE__ */ jsx(ark.div, { ...localProps, ref, hidden: api.view !== viewProps.view, children: view }) });
17
+ return /* @__PURE__ */ jsx(DatePickerViewProvider, { value: viewProps, children: /* @__PURE__ */ jsx(
18
+ ark.div,
19
+ {
20
+ hidden: api.view !== viewProps.view,
21
+ ...datePickerAnatomy.build().view.attrs,
22
+ ...localProps,
23
+ ref,
24
+ children: view
25
+ }
26
+ ) });
17
27
  });
18
28
  DatePickerView.displayName = "DatePickerView";
19
29
 
@@ -14,7 +14,7 @@ const splitPresenceProps = require('../presence/split-presence-props.cjs');
14
14
  const DialogBackdrop = react.forwardRef((props, ref) => {
15
15
  const [presenceProps, localProps] = splitPresenceProps.splitPresenceProps(props);
16
16
  const api = dialogContext.useDialogContext();
17
- return /* @__PURE__ */ jsxRuntime.jsx(index.Presence, { present: api.isOpen, ...presenceProps, children: /* @__PURE__ */ jsxRuntime.jsx(DialogInnerBackdrop, { ref, ...localProps }) });
17
+ return /* @__PURE__ */ jsxRuntime.jsx(index.Presence, { present: api.isOpen, ...presenceProps, fallback: /* @__PURE__ */ jsxRuntime.jsx("div", { ...api.backdropProps }), children: /* @__PURE__ */ jsxRuntime.jsx(DialogInnerBackdrop, { ref, ...localProps }) });
18
18
  });
19
19
  DialogBackdrop.displayName = "DialogBackdrop";
20
20
  const DialogInnerBackdrop = react.forwardRef(
@@ -3,6 +3,6 @@ import { ForwardRefExoticComponent, RefAttributes } from 'react';
3
3
  import { type HTMLArkProps } from '../factory';
4
4
  import { type PresenceProps } from '../presence';
5
5
  import type { Assign } from '../types';
6
- export interface DialogBackdropProps extends Assign<HTMLArkProps<'div'>, Omit<PresenceProps, 'children'>> {
6
+ export interface DialogBackdropProps extends Assign<HTMLArkProps<'div'>, Omit<PresenceProps, 'children' | 'fallback'>> {
7
7
  }
8
8
  export declare const DialogBackdrop: ForwardRefExoticComponent<DialogBackdropProps & RefAttributes<HTMLDivElement>>;
@@ -10,7 +10,7 @@ import { splitPresenceProps } from '../presence/split-presence-props.mjs';
10
10
  const DialogBackdrop = forwardRef((props, ref) => {
11
11
  const [presenceProps, localProps] = splitPresenceProps(props);
12
12
  const api = useDialogContext();
13
- return /* @__PURE__ */ jsx(Presence, { present: api.isOpen, ...presenceProps, children: /* @__PURE__ */ jsx(DialogInnerBackdrop, { ref, ...localProps }) });
13
+ return /* @__PURE__ */ jsx(Presence, { present: api.isOpen, ...presenceProps, fallback: /* @__PURE__ */ jsx("div", { ...api.backdropProps }), children: /* @__PURE__ */ jsx(DialogInnerBackdrop, { ref, ...localProps }) });
14
14
  });
15
15
  DialogBackdrop.displayName = "DialogBackdrop";
16
16
  const DialogInnerBackdrop = forwardRef(
@@ -14,7 +14,7 @@ const splitPresenceProps = require('../presence/split-presence-props.cjs');
14
14
  const DialogContent = react.forwardRef((props, ref) => {
15
15
  const [presenceProps, localProps] = splitPresenceProps.splitPresenceProps(props);
16
16
  const api = dialogContext.useDialogContext();
17
- return /* @__PURE__ */ jsxRuntime.jsx(index.Presence, { present: api.isOpen, ...presenceProps, children: /* @__PURE__ */ jsxRuntime.jsx(DialogInnerContent, { ref, ...localProps }) });
17
+ return /* @__PURE__ */ jsxRuntime.jsx(index.Presence, { present: api.isOpen, ...presenceProps, fallback: /* @__PURE__ */ jsxRuntime.jsx("div", { ...api.contentProps }), children: /* @__PURE__ */ jsxRuntime.jsx(DialogInnerContent, { ref, ...localProps }) });
18
18
  });
19
19
  DialogContent.displayName = "DialogContent";
20
20
  const DialogInnerContent = react.forwardRef(
@@ -3,6 +3,6 @@ import { ForwardRefExoticComponent, RefAttributes } from 'react';
3
3
  import { type HTMLArkProps } from '../factory';
4
4
  import { type PresenceProps } from '../presence';
5
5
  import type { Assign } from '../types';
6
- export interface DialogContentProps extends Assign<HTMLArkProps<'div'>, Omit<PresenceProps, 'children'>> {
6
+ export interface DialogContentProps extends Assign<HTMLArkProps<'div'>, Omit<PresenceProps, 'children' | 'fallback'>> {
7
7
  }
8
8
  export declare const DialogContent: ForwardRefExoticComponent<DialogContentProps & RefAttributes<HTMLDivElement>>;
@@ -10,7 +10,7 @@ import { splitPresenceProps } from '../presence/split-presence-props.mjs';
10
10
  const DialogContent = forwardRef((props, ref) => {
11
11
  const [presenceProps, localProps] = splitPresenceProps(props);
12
12
  const api = useDialogContext();
13
- return /* @__PURE__ */ jsx(Presence, { present: api.isOpen, ...presenceProps, children: /* @__PURE__ */ jsx(DialogInnerContent, { ref, ...localProps }) });
13
+ return /* @__PURE__ */ jsx(Presence, { present: api.isOpen, ...presenceProps, fallback: /* @__PURE__ */ jsx("div", { ...api.contentProps }), children: /* @__PURE__ */ jsx(DialogInnerContent, { ref, ...localProps }) });
14
14
  });
15
15
  DialogContent.displayName = "DialogContent";
16
16
  const DialogInnerContent = forwardRef(
@@ -14,7 +14,7 @@ const splitPresenceProps = require('../presence/split-presence-props.cjs');
14
14
  const HoverCardContent = react.forwardRef((props, ref) => {
15
15
  const [presenceProps, localProps] = splitPresenceProps.splitPresenceProps(props);
16
16
  const api = hoverCardContext.useHoverCardContext();
17
- return /* @__PURE__ */ jsxRuntime.jsx(index.Presence, { present: api.isOpen, ...presenceProps, children: /* @__PURE__ */ jsxRuntime.jsx(HoverCardInnerContent, { ref, ...localProps }) });
17
+ return /* @__PURE__ */ jsxRuntime.jsx(index.Presence, { present: api.isOpen, ...presenceProps, fallback: /* @__PURE__ */ jsxRuntime.jsx("div", { ...api.contentProps }), children: /* @__PURE__ */ jsxRuntime.jsx(HoverCardInnerContent, { ref, ...localProps }) });
18
18
  });
19
19
  HoverCardContent.displayName = "HoverCardContent";
20
20
  const HoverCardInnerContent = react.forwardRef(
@@ -3,6 +3,6 @@ import { ForwardRefExoticComponent, RefAttributes } from 'react';
3
3
  import { type HTMLArkProps } from '../factory';
4
4
  import { type PresenceProps } from '../presence';
5
5
  import type { Assign } from '../types';
6
- export interface HoverCardContentProps extends Assign<HTMLArkProps<'div'>, Omit<PresenceProps, 'children'>> {
6
+ export interface HoverCardContentProps extends Assign<HTMLArkProps<'div'>, Omit<PresenceProps, 'children' | 'fallback'>> {
7
7
  }
8
8
  export declare const HoverCardContent: ForwardRefExoticComponent<HoverCardContentProps & RefAttributes<HTMLDivElement>>;
@@ -10,7 +10,7 @@ import { splitPresenceProps } from '../presence/split-presence-props.mjs';
10
10
  const HoverCardContent = forwardRef((props, ref) => {
11
11
  const [presenceProps, localProps] = splitPresenceProps(props);
12
12
  const api = useHoverCardContext();
13
- return /* @__PURE__ */ jsx(Presence, { present: api.isOpen, ...presenceProps, children: /* @__PURE__ */ jsx(HoverCardInnerContent, { ref, ...localProps }) });
13
+ return /* @__PURE__ */ jsx(Presence, { present: api.isOpen, ...presenceProps, fallback: /* @__PURE__ */ jsx("div", { ...api.contentProps }), children: /* @__PURE__ */ jsx(HoverCardInnerContent, { ref, ...localProps }) });
14
14
  });
15
15
  HoverCardContent.displayName = "HoverCardContent";
16
16
  const HoverCardInnerContent = forwardRef(
package/index.cjs CHANGED
@@ -72,6 +72,7 @@ const colorPickerSwatchGroup = require('./color-picker/color-picker-swatch-group
72
72
  const colorPickerSwatchTrigger = require('./color-picker/color-picker-swatch-trigger.cjs');
73
73
  const colorPickerTransparencyGrid = require('./color-picker/color-picker-transparency-grid.cjs');
74
74
  const colorPickerTrigger = require('./color-picker/color-picker-trigger.cjs');
75
+ const colorPickerValueText = require('./color-picker/color-picker-value-text.cjs');
75
76
  const colorPickerAreaContext = require('./color-picker/color-picker-area-context.cjs');
76
77
  const colorPickerChannelSliderContext = require('./color-picker/color-picker-channel-slider-context.cjs');
77
78
  const colorPickerContext = require('./color-picker/color-picker-context.cjs');
@@ -329,6 +330,7 @@ exports.ColorPickerSwatchGroup = colorPickerSwatchGroup.ColorPickerSwatchGroup;
329
330
  exports.ColorPickerSwatchTrigger = colorPickerSwatchTrigger.ColorPickerSwatchTrigger;
330
331
  exports.ColorPickerTransparencyGrid = colorPickerTransparencyGrid.ColorPickerTransparencyGrid;
331
332
  exports.ColorPickerTrigger = colorPickerTrigger.ColorPickerTrigger;
333
+ exports.ColorPickerValueText = colorPickerValueText.ColorPickerValueText;
332
334
  exports.useColorPickerAreaContext = colorPickerAreaContext.useColorPickerAreaContext;
333
335
  exports.useColorPickerChannelSliderContext = colorPickerChannelSliderContext.useColorPickerChannelSliderContext;
334
336
  exports.useColorPickerContext = colorPickerContext.useColorPickerContext;
package/index.mjs CHANGED
@@ -68,6 +68,7 @@ export { ColorPickerSwatchGroup } from './color-picker/color-picker-swatch-group
68
68
  export { ColorPickerSwatchTrigger } from './color-picker/color-picker-swatch-trigger.mjs';
69
69
  export { ColorPickerTransparencyGrid } from './color-picker/color-picker-transparency-grid.mjs';
70
70
  export { ColorPickerTrigger } from './color-picker/color-picker-trigger.mjs';
71
+ export { ColorPickerValueText } from './color-picker/color-picker-value-text.mjs';
71
72
  export { useColorPickerAreaContext } from './color-picker/color-picker-area-context.mjs';
72
73
  export { useColorPickerChannelSliderContext } from './color-picker/color-picker-channel-slider-context.mjs';
73
74
  export { useColorPickerContext } from './color-picker/color-picker-context.mjs';
@@ -14,7 +14,7 @@ const splitPresenceProps = require('../presence/split-presence-props.cjs');
14
14
  const MenuContent = react.forwardRef((props, ref) => {
15
15
  const [presenceProps, localProps] = splitPresenceProps.splitPresenceProps(props);
16
16
  const api = menuContext.useMenuContext();
17
- return /* @__PURE__ */ jsxRuntime.jsx(index.Presence, { present: api?.isOpen, ...presenceProps, children: /* @__PURE__ */ jsxRuntime.jsx(MenuInnerContent, { ref, ...localProps }) });
17
+ return /* @__PURE__ */ jsxRuntime.jsx(index.Presence, { present: api?.isOpen, ...presenceProps, fallback: /* @__PURE__ */ jsxRuntime.jsx("div", { ...api.contentProps }), children: /* @__PURE__ */ jsxRuntime.jsx(MenuInnerContent, { ref, ...localProps }) });
18
18
  });
19
19
  MenuContent.displayName = "MenuContent";
20
20
  const MenuInnerContent = react.forwardRef(
@@ -3,6 +3,6 @@ import { ForwardRefExoticComponent, RefAttributes } from 'react';
3
3
  import { type HTMLArkProps } from '../factory';
4
4
  import { type PresenceProps } from '../presence';
5
5
  import type { Assign } from '../types';
6
- export interface MenuContentProps extends Assign<HTMLArkProps<'div'>, Omit<PresenceProps, 'children'>> {
6
+ export interface MenuContentProps extends Assign<HTMLArkProps<'div'>, Omit<PresenceProps, 'children' | 'fallback'>> {
7
7
  }
8
8
  export declare const MenuContent: ForwardRefExoticComponent<MenuContentProps & RefAttributes<HTMLDivElement>>;
@@ -10,7 +10,7 @@ import { splitPresenceProps } from '../presence/split-presence-props.mjs';
10
10
  const MenuContent = forwardRef((props, ref) => {
11
11
  const [presenceProps, localProps] = splitPresenceProps(props);
12
12
  const api = useMenuContext();
13
- return /* @__PURE__ */ jsx(Presence, { present: api?.isOpen, ...presenceProps, children: /* @__PURE__ */ jsx(MenuInnerContent, { ref, ...localProps }) });
13
+ return /* @__PURE__ */ jsx(Presence, { present: api?.isOpen, ...presenceProps, fallback: /* @__PURE__ */ jsx("div", { ...api.contentProps }), children: /* @__PURE__ */ jsx(MenuInnerContent, { ref, ...localProps }) });
14
14
  });
15
15
  MenuContent.displayName = "MenuContent";
16
16
  const MenuInnerContent = forwardRef(
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@ark-ui/react",
3
- "version": "1.0.0-beta.1",
3
+ "version": "1.0.0-beta.3",
4
4
  "description": "A collection of unstyled, accessible UI components for React, utilizing state machines for seamless interaction.",
5
5
  "keywords": [
6
6
  "accordion",
@@ -59,7 +59,7 @@
59
59
  "release-it": "release-it --config ../../../release-it.json"
60
60
  },
61
61
  "dependencies": {
62
- "@ark-ui/anatomy": "1.0.0-beta.0",
62
+ "@ark-ui/anatomy": "1.0.0-beta.1",
63
63
  "@zag-js/accordion": "0.26.0",
64
64
  "@zag-js/anatomy": "0.26.0",
65
65
  "@zag-js/avatar": "0.26.0",
@@ -96,38 +96,38 @@
96
96
  },
97
97
  "devDependencies": {
98
98
  "@release-it/keep-a-changelog": "4.0.0",
99
- "@storybook/addon-a11y": "7.4.6",
100
- "@storybook/addon-essentials": "7.4.6",
101
- "@storybook/addons": "7.4.6",
102
- "@storybook/react": "7.4.6",
103
- "@storybook/react-vite": "7.4.6",
99
+ "@storybook/addon-a11y": "7.5.1",
100
+ "@storybook/addon-essentials": "7.5.1",
101
+ "@storybook/addons": "7.5.1",
102
+ "@storybook/react": "7.5.1",
103
+ "@storybook/react-vite": "7.5.1",
104
104
  "@testing-library/dom": "9.3.3",
105
105
  "@testing-library/jest-dom": "6.1.4",
106
106
  "@testing-library/react": "14.0.0",
107
107
  "@testing-library/user-event": "14.5.1",
108
- "@types/jsdom": "21.1.3",
109
- "@types/react": "18.2.28",
110
- "@types/react-dom": "18.2.13",
108
+ "@types/jsdom": "21.1.4",
109
+ "@types/react": "18.2.33",
110
+ "@types/react-dom": "18.2.14",
111
111
  "@types/testing-library__jest-dom": "5.14.9",
112
- "@typescript-eslint/eslint-plugin": "6.7.5",
113
- "@typescript-eslint/parser": "6.7.5",
112
+ "@typescript-eslint/eslint-plugin": "6.9.0",
113
+ "@typescript-eslint/parser": "6.9.0",
114
114
  "@vitejs/plugin-react": "4.1.0",
115
115
  "@vitest/coverage-v8": "0.34.6",
116
- "eslint": "8.51.0",
116
+ "eslint": "8.52.0",
117
117
  "eslint-plugin-react": "7.33.2",
118
118
  "eslint-plugin-react-hooks": "4.6.0",
119
119
  "globby": "13.2.2",
120
120
  "jsdom": "22.1.0",
121
- "lucide-react": "0.287.0",
121
+ "lucide-react": "0.289.0",
122
122
  "react": "18.2.0",
123
123
  "react-dom": "18.2.0",
124
124
  "react-frame-component": "5.2.6",
125
125
  "release-it": "16.2.1",
126
126
  "resize-observer-polyfill": "1.5.1",
127
- "storybook": "7.4.6",
127
+ "storybook": "7.5.1",
128
128
  "typescript": "5.2.2",
129
- "vite": "4.4.11",
130
- "vite-plugin-dts": "3.6.0",
129
+ "vite": "4.5.0",
130
+ "vite-plugin-dts": "3.6.1",
131
131
  "vitest": "0.34.6"
132
132
  },
133
133
  "peerDependencies": {
@@ -14,7 +14,7 @@ const splitPresenceProps = require('../presence/split-presence-props.cjs');
14
14
  const PopoverContent = react.forwardRef((props, ref) => {
15
15
  const [presenceProps, localProps] = splitPresenceProps.splitPresenceProps(props);
16
16
  const api = popoverContext.usePopoverContext();
17
- return /* @__PURE__ */ jsxRuntime.jsx(index.Presence, { present: api.isOpen, ...presenceProps, children: /* @__PURE__ */ jsxRuntime.jsx(PopoverInnerContent, { ref, ...localProps }) });
17
+ return /* @__PURE__ */ jsxRuntime.jsx(index.Presence, { present: api.isOpen, ...presenceProps, fallback: /* @__PURE__ */ jsxRuntime.jsx("div", { ...api.contentProps }), children: /* @__PURE__ */ jsxRuntime.jsx(PopoverInnerContent, { ref, ...localProps }) });
18
18
  });
19
19
  PopoverContent.displayName = "PopoverContent";
20
20
  const PopoverInnerContent = react.forwardRef(
@@ -3,6 +3,6 @@ import { ForwardRefExoticComponent, RefAttributes } from 'react';
3
3
  import { type HTMLArkProps } from '../factory';
4
4
  import { type PresenceProps } from '../presence';
5
5
  import type { Assign } from '../types';
6
- export interface PopoverContentProps extends Assign<HTMLArkProps<'div'>, Omit<PresenceProps, 'children'>> {
6
+ export interface PopoverContentProps extends Assign<HTMLArkProps<'div'>, Omit<PresenceProps, 'children' | 'fallback'>> {
7
7
  }
8
8
  export declare const PopoverContent: ForwardRefExoticComponent<PopoverContentProps & RefAttributes<HTMLDivElement>>;
@@ -10,7 +10,7 @@ import { splitPresenceProps } from '../presence/split-presence-props.mjs';
10
10
  const PopoverContent = forwardRef((props, ref) => {
11
11
  const [presenceProps, localProps] = splitPresenceProps(props);
12
12
  const api = usePopoverContext();
13
- return /* @__PURE__ */ jsx(Presence, { present: api.isOpen, ...presenceProps, children: /* @__PURE__ */ jsx(PopoverInnerContent, { ref, ...localProps }) });
13
+ return /* @__PURE__ */ jsx(Presence, { present: api.isOpen, ...presenceProps, fallback: /* @__PURE__ */ jsx("div", { ...api.contentProps }), children: /* @__PURE__ */ jsx(PopoverInnerContent, { ref, ...localProps }) });
14
14
  });
15
15
  PopoverContent.displayName = "PopoverContent";
16
16
  const PopoverInnerContent = forwardRef(
@@ -2,8 +2,8 @@ import { ReactElement, JSXElementConstructor } from 'react';
2
2
  /// <reference types="react" />
3
3
  import { type PresenceProps } from './presence';
4
4
  import { splitPresenceProps } from './split-presence-props';
5
- declare const Presence: ((props: PresenceProps) => ReactElement<any, string | JSXElementConstructor<any>> | null) & {
6
- Root: (props: PresenceProps) => ReactElement<any, string | JSXElementConstructor<any>> | null;
5
+ declare const Presence: ((props: PresenceProps) => ReactElement<any, string | JSXElementConstructor<any>> | undefined) & {
6
+ Root: (props: PresenceProps) => ReactElement<any, string | JSXElementConstructor<any>> | undefined;
7
7
  };
8
8
  export { Presence, splitPresenceProps };
9
9
  export type { PresenceProps };
@@ -9,14 +9,14 @@ const createSplitProps = require('../create-split-props.cjs');
9
9
  const usePresence = require('./use-presence.cjs');
10
10
 
11
11
  const Presence = (props) => {
12
- const [presenceProps, { children, lazyMount, unmountOnExit }] = createSplitProps.createSplitProps()(props, ["present", "onExitComplete"]);
12
+ const [presenceProps, { children, lazyMount, fallback, unmountOnExit }] = createSplitProps.createSplitProps()(props, ["present", "onExitComplete"]);
13
13
  const api = usePresence.usePresence(presenceProps);
14
14
  const wasEverPresent = react.useRef(false);
15
15
  if (api.isPresent) {
16
16
  wasEverPresent.current = true;
17
17
  }
18
18
  if (!api.isPresent && !wasEverPresent.current && lazyMount || unmountOnExit && !api.isPresent && wasEverPresent.current) {
19
- return null;
19
+ return fallback;
20
20
  }
21
21
  const onlyChild = react.Children.only(children);
22
22
  return react.cloneElement(onlyChild, {
@@ -15,5 +15,9 @@ export interface PresenceProps extends UsePresenceProps {
15
15
  * @default false
16
16
  */
17
17
  unmountOnExit?: boolean;
18
+ /**
19
+ * A fallback to render the component is not present.
20
+ */
21
+ fallback?: ReactElement;
18
22
  }
19
- export declare const Presence: (props: PresenceProps) => ReactElement<any, string | JSXElementConstructor<any>> | null;
23
+ export declare const Presence: (props: PresenceProps) => ReactElement<any, string | JSXElementConstructor<any>> | undefined;
@@ -5,14 +5,14 @@ import { createSplitProps } from '../create-split-props.mjs';
5
5
  import { usePresence } from './use-presence.mjs';
6
6
 
7
7
  const Presence = (props) => {
8
- const [presenceProps, { children, lazyMount, unmountOnExit }] = createSplitProps()(props, ["present", "onExitComplete"]);
8
+ const [presenceProps, { children, lazyMount, fallback, unmountOnExit }] = createSplitProps()(props, ["present", "onExitComplete"]);
9
9
  const api = usePresence(presenceProps);
10
10
  const wasEverPresent = useRef(false);
11
11
  if (api.isPresent) {
12
12
  wasEverPresent.current = true;
13
13
  }
14
14
  if (!api.isPresent && !wasEverPresent.current && lazyMount || unmountOnExit && !api.isPresent && wasEverPresent.current) {
15
- return null;
15
+ return fallback;
16
16
  }
17
17
  const onlyChild = Children.only(children);
18
18
  return cloneElement(onlyChild, {
@@ -1,2 +1,2 @@
1
1
  import type { PresenceProps } from './presence';
2
- export declare function splitPresenceProps<T>(props: T & Omit<PresenceProps, 'children'>): [Omit<PresenceProps, "children">, Omit<T & Omit<PresenceProps, "children">, "present" | "onExitComplete" | "lazyMount" | "unmountOnExit">];
2
+ export declare function splitPresenceProps<T>(props: T & Omit<PresenceProps, 'children'>): [Omit<PresenceProps, "children" | "fallback">, Omit<T & Omit<PresenceProps, "children">, "present" | "onExitComplete" | "lazyMount" | "unmountOnExit">];
@@ -14,7 +14,7 @@ const splitPresenceProps = require('../presence/split-presence-props.cjs');
14
14
  const SelectContent = react.forwardRef((props, ref) => {
15
15
  const [presenceProps, localProps] = splitPresenceProps.splitPresenceProps(props);
16
16
  const api = selectContext.useSelectContext();
17
- return /* @__PURE__ */ jsxRuntime.jsx(index.Presence, { present: api.isOpen, ...presenceProps, children: /* @__PURE__ */ jsxRuntime.jsx(SelectInnerContent, { ref, ...localProps }) });
17
+ return /* @__PURE__ */ jsxRuntime.jsx(index.Presence, { present: api.isOpen, ...presenceProps, fallback: /* @__PURE__ */ jsxRuntime.jsx("div", { ...api.contentProps }), children: /* @__PURE__ */ jsxRuntime.jsx(SelectInnerContent, { ref, ...localProps }) });
18
18
  });
19
19
  SelectContent.displayName = "SelectContent";
20
20
  const SelectInnerContent = react.forwardRef(
@@ -3,6 +3,6 @@ import { ForwardRefExoticComponent, RefAttributes } from 'react';
3
3
  import { type HTMLArkProps } from '../factory';
4
4
  import { type PresenceProps } from '../presence';
5
5
  import type { Assign } from '../types';
6
- export interface SelectContentProps extends Assign<HTMLArkProps<'div'>, Omit<PresenceProps, 'children'>> {
6
+ export interface SelectContentProps extends Assign<HTMLArkProps<'div'>, Omit<PresenceProps, 'children' | 'fallback'>> {
7
7
  }
8
8
  export declare const SelectContent: ForwardRefExoticComponent<SelectContentProps & RefAttributes<HTMLDivElement>>;
@@ -10,7 +10,7 @@ import { splitPresenceProps } from '../presence/split-presence-props.mjs';
10
10
  const SelectContent = forwardRef((props, ref) => {
11
11
  const [presenceProps, localProps] = splitPresenceProps(props);
12
12
  const api = useSelectContext();
13
- return /* @__PURE__ */ jsx(Presence, { present: api.isOpen, ...presenceProps, children: /* @__PURE__ */ jsx(SelectInnerContent, { ref, ...localProps }) });
13
+ return /* @__PURE__ */ jsx(Presence, { present: api.isOpen, ...presenceProps, fallback: /* @__PURE__ */ jsx("div", { ...api.contentProps }), children: /* @__PURE__ */ jsx(SelectInnerContent, { ref, ...localProps }) });
14
14
  });
15
15
  SelectContent.displayName = "SelectContent";
16
16
  const SelectInnerContent = forwardRef(
@@ -3,7 +3,7 @@ import { ForwardRefExoticComponent, RefAttributes } from 'react';
3
3
  import { type ContentProps } from '@zag-js/tabs';
4
4
  import { type HTMLArkProps } from '../factory';
5
5
  import { type TabPresenceProps } from './tab-presence';
6
- export interface TabContentProps extends InnerTabContentProps, Omit<TabPresenceProps, 'children'> {
6
+ export interface TabContentProps extends InnerTabContentProps, Omit<TabPresenceProps, 'children' | 'fallback'> {
7
7
  }
8
8
  export declare const TabContent: ForwardRefExoticComponent<TabContentProps & RefAttributes<HTMLDivElement>>;
9
9
  type InnerTabContentProps = HTMLArkProps<'div'> & ContentProps;
@@ -14,7 +14,7 @@ const splitPresenceProps = require('../presence/split-presence-props.cjs');
14
14
  const TooltipContent = react.forwardRef((props, ref) => {
15
15
  const [presenceProps, tooltipContentProps] = splitPresenceProps.splitPresenceProps(props);
16
16
  const api = tooltipContext.useTooltipContext();
17
- return /* @__PURE__ */ jsxRuntime.jsx(index.Presence, { present: api.isOpen, ...presenceProps, children: /* @__PURE__ */ jsxRuntime.jsx(TooltipInnerContent, { ref, ...tooltipContentProps }) });
17
+ return /* @__PURE__ */ jsxRuntime.jsx(index.Presence, { present: api.isOpen, ...presenceProps, fallback: /* @__PURE__ */ jsxRuntime.jsx("div", { ...api.contentProps }), children: /* @__PURE__ */ jsxRuntime.jsx(TooltipInnerContent, { ref, ...tooltipContentProps }) });
18
18
  });
19
19
  TooltipContent.displayName = "TooltipContent";
20
20
  const TooltipInnerContent = react.forwardRef(
@@ -3,6 +3,6 @@ import { ForwardRefExoticComponent, RefAttributes } from 'react';
3
3
  import { type HTMLArkProps } from '../factory';
4
4
  import { type PresenceProps } from '../presence';
5
5
  import type { Assign } from '../types';
6
- export interface TooltipContentProps extends Assign<HTMLArkProps<'div'>, Omit<PresenceProps, 'children'>> {
6
+ export interface TooltipContentProps extends Assign<HTMLArkProps<'div'>, Omit<PresenceProps, 'children' | 'fallback'>> {
7
7
  }
8
8
  export declare const TooltipContent: ForwardRefExoticComponent<TooltipContentProps & RefAttributes<HTMLDivElement>>;
@@ -10,7 +10,7 @@ import { splitPresenceProps } from '../presence/split-presence-props.mjs';
10
10
  const TooltipContent = forwardRef((props, ref) => {
11
11
  const [presenceProps, tooltipContentProps] = splitPresenceProps(props);
12
12
  const api = useTooltipContext();
13
- return /* @__PURE__ */ jsx(Presence, { present: api.isOpen, ...presenceProps, children: /* @__PURE__ */ jsx(TooltipInnerContent, { ref, ...tooltipContentProps }) });
13
+ return /* @__PURE__ */ jsx(Presence, { present: api.isOpen, ...presenceProps, fallback: /* @__PURE__ */ jsx("div", { ...api.contentProps }), children: /* @__PURE__ */ jsx(TooltipInnerContent, { ref, ...tooltipContentProps }) });
14
14
  });
15
15
  TooltipContent.displayName = "TooltipContent";
16
16
  const TooltipInnerContent = forwardRef(