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

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (181) hide show
  1. package/CHANGELOG.md +11 -1
  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/carousel/carousel.stories.d.ts +2 -0
  17. package/checkbox/checkbox.cjs +2 -2
  18. package/checkbox/checkbox.d.ts +4 -5
  19. package/checkbox/checkbox.mjs +2 -2
  20. package/color-picker/color-picker-content.cjs +8 -11
  21. package/color-picker/color-picker-content.d.ts +1 -3
  22. package/color-picker/color-picker-content.mjs +8 -11
  23. package/color-picker/color-picker-positioner.cjs +6 -0
  24. package/color-picker/color-picker-positioner.mjs +6 -0
  25. package/color-picker/color-picker-view.cjs +15 -0
  26. package/color-picker/color-picker-view.d.ts +7 -0
  27. package/color-picker/color-picker-view.mjs +11 -0
  28. package/color-picker/color-picker.cjs +31 -28
  29. package/color-picker/color-picker.d.ts +6 -5
  30. package/color-picker/color-picker.mjs +32 -29
  31. package/color-picker/color-picker.stories.d.ts +1 -0
  32. package/color-picker/index.cjs +3 -1
  33. package/color-picker/index.d.ts +4 -1
  34. package/color-picker/index.mjs +3 -1
  35. package/combobox/combobox-content.cjs +8 -11
  36. package/combobox/combobox-content.d.ts +1 -3
  37. package/combobox/combobox-content.mjs +8 -11
  38. package/combobox/combobox-item.d.ts +6 -4
  39. package/combobox/combobox-positioner.cjs +6 -0
  40. package/combobox/combobox-positioner.mjs +6 -0
  41. package/combobox/combobox.cjs +8 -2
  42. package/combobox/combobox.d.ts +4 -3
  43. package/combobox/combobox.mjs +8 -2
  44. package/date-picker/date-picker-content.cjs +8 -11
  45. package/date-picker/date-picker-content.d.ts +1 -3
  46. package/date-picker/date-picker-content.mjs +8 -11
  47. package/date-picker/date-picker-positioner.cjs +6 -0
  48. package/date-picker/date-picker-positioner.mjs +6 -0
  49. package/date-picker/date-picker-view.d.ts +3 -3
  50. package/date-picker/date-picker.cjs +11 -5
  51. package/date-picker/date-picker.d.ts +6 -5
  52. package/date-picker/date-picker.mjs +11 -5
  53. package/date-picker/date-picker.stories.d.ts +1 -0
  54. package/dialog/dialog-backdrop.cjs +8 -11
  55. package/dialog/dialog-backdrop.d.ts +1 -3
  56. package/dialog/dialog-backdrop.mjs +8 -11
  57. package/dialog/dialog-content.cjs +8 -11
  58. package/dialog/dialog-content.d.ts +1 -3
  59. package/dialog/dialog-content.mjs +8 -11
  60. package/dialog/dialog-positioner.cjs +6 -0
  61. package/dialog/dialog-positioner.mjs +6 -0
  62. package/dialog/dialog-trigger.cjs +10 -1
  63. package/dialog/dialog-trigger.mjs +10 -1
  64. package/dialog/dialog.cjs +8 -3
  65. package/dialog/dialog.d.ts +4 -6
  66. package/dialog/dialog.mjs +8 -3
  67. package/editable/editable.d.ts +4 -5
  68. package/environment/environment-context.d.ts +1 -1
  69. package/hover-card/hover-card-content.cjs +8 -11
  70. package/hover-card/hover-card-content.d.ts +1 -3
  71. package/hover-card/hover-card-content.mjs +8 -11
  72. package/hover-card/hover-card-positioner.cjs +6 -0
  73. package/hover-card/hover-card-positioner.mjs +6 -0
  74. package/hover-card/hover-card.cjs +8 -3
  75. package/hover-card/hover-card.d.ts +4 -6
  76. package/hover-card/hover-card.mjs +8 -3
  77. package/index.cjs +10 -2
  78. package/index.mjs +4 -1
  79. package/menu/index.d.ts +1 -1
  80. package/menu/menu-content.cjs +8 -11
  81. package/menu/menu-content.d.ts +1 -3
  82. package/menu/menu-content.mjs +8 -11
  83. package/menu/menu-item-group-label.cjs +1 -1
  84. package/menu/menu-item-group-label.d.ts +3 -3
  85. package/menu/menu-item-group-label.mjs +1 -1
  86. package/menu/menu-option-item.d.ts +2 -2
  87. package/menu/menu.cjs +11 -12
  88. package/menu/menu.d.ts +4 -11
  89. package/menu/menu.mjs +12 -13
  90. package/menu/menu.stories.d.ts +4 -1
  91. package/number-input/number-input.stories.d.ts +6 -1
  92. package/package.json +50 -50
  93. package/pagination/pagination.d.ts +3 -3
  94. package/pin-input/pin-input.stories.d.ts +5 -0
  95. package/popover/popover-content.cjs +8 -11
  96. package/popover/popover-content.d.ts +1 -3
  97. package/popover/popover-content.mjs +8 -11
  98. package/popover/popover-positioner.cjs +6 -0
  99. package/popover/popover-positioner.mjs +6 -0
  100. package/popover/popover-trigger.cjs +10 -1
  101. package/popover/popover-trigger.mjs +10 -1
  102. package/popover/popover.cjs +8 -3
  103. package/popover/popover.d.ts +4 -6
  104. package/popover/popover.mjs +8 -3
  105. package/popover/popover.stories.d.ts +4 -1
  106. package/presence/index.cjs +8 -0
  107. package/presence/index.d.ts +8 -5
  108. package/presence/index.mjs +3 -0
  109. package/presence/presence-context.cjs +15 -0
  110. package/presence/presence-context.d.ts +6 -0
  111. package/presence/presence-context.mjs +10 -0
  112. package/presence/presence-props-context.cjs +17 -0
  113. package/presence/presence-props-context.d.ts +6 -0
  114. package/presence/presence-props-context.mjs +12 -0
  115. package/presence/presence.cjs +18 -19
  116. package/presence/presence.d.ts +6 -21
  117. package/presence/presence.mjs +19 -20
  118. package/presence/split-presence-props.d.ts +2 -2
  119. package/presence/use-presence.cjs +22 -4
  120. package/presence/use-presence.d.ts +21 -1
  121. package/presence/use-presence.mjs +20 -2
  122. package/radio-group/radio-group-item.d.ts +2 -3
  123. package/radio-group/radio-group.stories.d.ts +3 -0
  124. package/rating-group/rating-group-control.d.ts +5 -3
  125. package/rating-group/rating-group-item.d.ts +4 -5
  126. package/rating-group/rating-group.stories.d.ts +6 -0
  127. package/segment-group/segment-group-item.d.ts +2 -3
  128. package/segment-group/segment-group.stories.d.ts +3 -0
  129. package/select/select-content.cjs +8 -11
  130. package/select/select-content.d.ts +1 -3
  131. package/select/select-content.mjs +8 -11
  132. package/select/select-control.cjs +4 -1
  133. package/select/select-control.mjs +5 -2
  134. package/select/select-item.d.ts +2 -3
  135. package/select/select-positioner.cjs +6 -0
  136. package/select/select-positioner.mjs +6 -0
  137. package/select/select.cjs +8 -2
  138. package/select/select.d.ts +4 -3
  139. package/select/select.mjs +8 -2
  140. package/select/select.stories.d.ts +1 -1
  141. package/slider/index.cjs +4 -4
  142. package/slider/index.d.ts +4 -4
  143. package/slider/index.mjs +4 -4
  144. package/slider/{slider-output.cjs → slider-value-text.cjs} +5 -7
  145. package/slider/slider-value-text.d.ts +6 -0
  146. package/slider/slider-value-text.mjs +16 -0
  147. package/slider/slider.d.ts +3 -3
  148. package/slider/slider.stories.d.ts +9 -2
  149. package/splitter/splitter.d.ts +3 -3
  150. package/switch/switch.d.ts +3 -3
  151. package/switch/switch.stories.d.ts +1 -0
  152. package/tabs/tab-content.cjs +13 -12
  153. package/tabs/tab-content.d.ts +2 -4
  154. package/tabs/tab-content.mjs +13 -12
  155. package/tabs/tabs.cjs +7 -3
  156. package/tabs/tabs.d.ts +2 -1
  157. package/tabs/tabs.mjs +7 -3
  158. package/tags-input/tags-input-item.d.ts +4 -5
  159. package/tags-input/tags-input.d.ts +3 -3
  160. package/tags-input/tags-input.stories.d.ts +6 -0
  161. package/toast/toast.stories.d.ts +5 -1
  162. package/toggle-group/toggle-group.stories.d.ts +1 -1
  163. package/tooltip/tooltip-content.cjs +8 -11
  164. package/tooltip/tooltip-content.d.ts +1 -3
  165. package/tooltip/tooltip-content.mjs +8 -11
  166. package/tooltip/tooltip-positioner.cjs +6 -0
  167. package/tooltip/tooltip-positioner.mjs +6 -0
  168. package/tooltip/tooltip.cjs +8 -3
  169. package/tooltip/tooltip.d.ts +4 -4
  170. package/tooltip/tooltip.mjs +8 -3
  171. package/types.d.ts +1 -3
  172. package/use-event.cjs +6 -2
  173. package/use-event.mjs +6 -2
  174. package/slider/slider-output.d.ts +0 -9
  175. package/slider/slider-output.mjs +0 -18
  176. package/tabs/tab-presence.cjs +0 -17
  177. package/tabs/tab-presence.d.ts +0 -6
  178. package/tabs/tab-presence.mjs +0 -13
  179. package/use-latest-ref.cjs +0 -14
  180. package/use-latest-ref.d.ts +0 -3
  181. package/use-latest-ref.mjs +0 -10
@@ -12,7 +12,10 @@ const selectContext = require('./select-context.cjs');
12
12
  const SelectControl = react.forwardRef((props, ref) => {
13
13
  const api = selectContext.useSelectContext();
14
14
  const mergedProps = react$1.mergeProps(api.controlProps, props);
15
- return /* @__PURE__ */ jsxRuntime.jsx(factory.ark.div, { ...mergedProps, ref });
15
+ return /* @__PURE__ */ jsxRuntime.jsxs(jsxRuntime.Fragment, { children: [
16
+ /* @__PURE__ */ jsxRuntime.jsx(factory.ark.div, { ...mergedProps, ref }),
17
+ /* @__PURE__ */ jsxRuntime.jsx("select", { ...api.hiddenSelectProps, children: api.collection.toArray().map((option) => /* @__PURE__ */ jsxRuntime.jsx("option", { value: option.value, children: option.label }, option.value)) })
18
+ ] });
16
19
  });
17
20
  SelectControl.displayName = "SelectControl";
18
21
 
@@ -1,5 +1,5 @@
1
1
  'use client';
2
- import { jsx } from 'react/jsx-runtime';
2
+ import { jsxs, Fragment, 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';
@@ -8,7 +8,10 @@ import { useSelectContext } from './select-context.mjs';
8
8
  const SelectControl = forwardRef((props, ref) => {
9
9
  const api = useSelectContext();
10
10
  const mergedProps = mergeProps(api.controlProps, props);
11
- return /* @__PURE__ */ jsx(ark.div, { ...mergedProps, ref });
11
+ return /* @__PURE__ */ jsxs(Fragment, { children: [
12
+ /* @__PURE__ */ jsx(ark.div, { ...mergedProps, ref }),
13
+ /* @__PURE__ */ jsx("select", { ...api.hiddenSelectProps, children: api.collection.toArray().map((option) => /* @__PURE__ */ jsx("option", { value: option.value, children: option.label }, option.value)) })
14
+ ] });
12
15
  });
13
16
  SelectControl.displayName = "SelectControl";
14
17
 
@@ -1,10 +1,9 @@
1
- import { ForwardRefExoticComponent, RefAttributes } from 'react';
2
- /// <reference types="react" />
3
1
  import type { ItemProps, ItemState } from '@zag-js/select';
2
+ import { ForwardRefExoticComponent, RefAttributes, type ReactNode } from 'react';
4
3
  import { type HTMLArkProps } from '../factory';
5
4
  import type { Assign } from '../types';
6
5
  export interface SelectItemProps extends Assign<HTMLArkProps<'div'>, {
7
- children?: React.ReactNode | ((props: ItemState) => React.ReactNode);
6
+ children?: ReactNode | ((state: ItemState) => ReactNode);
8
7
  }>, ItemProps {
9
8
  }
10
9
  export declare const SelectItem: ForwardRefExoticComponent<SelectItemProps & RefAttributes<HTMLDivElement>>;
@@ -7,11 +7,17 @@ const jsxRuntime = require('react/jsx-runtime');
7
7
  const react$1 = require('@zag-js/react');
8
8
  const react = require('react');
9
9
  const factory = require('../factory.cjs');
10
+ require('../presence/index.cjs');
10
11
  const selectContext = require('./select-context.cjs');
12
+ const presenceContext = require('../presence/presence-context.cjs');
11
13
 
12
14
  const SelectPositioner = react.forwardRef((props, ref) => {
13
15
  const api = selectContext.useSelectContext();
14
16
  const mergedProps = react$1.mergeProps(api.positionerProps, props);
17
+ const presenceApi = presenceContext.usePresenceContext();
18
+ if (presenceApi.isUnmounted) {
19
+ return null;
20
+ }
15
21
  return /* @__PURE__ */ jsxRuntime.jsx(factory.ark.div, { ...mergedProps, ref });
16
22
  });
17
23
  SelectPositioner.displayName = "SelectPositioner";
@@ -3,11 +3,17 @@ import { jsx } from 'react/jsx-runtime';
3
3
  import { mergeProps } from '@zag-js/react';
4
4
  import { forwardRef } from 'react';
5
5
  import { ark } from '../factory.mjs';
6
+ import '../presence/index.mjs';
6
7
  import { useSelectContext } from './select-context.mjs';
8
+ import { usePresenceContext } from '../presence/presence-context.mjs';
7
9
 
8
10
  const SelectPositioner = forwardRef((props, ref) => {
9
11
  const api = useSelectContext();
10
12
  const mergedProps = mergeProps(api.positionerProps, props);
13
+ const presenceApi = usePresenceContext();
14
+ if (presenceApi.isUnmounted) {
15
+ return null;
16
+ }
11
17
  return /* @__PURE__ */ jsx(ark.div, { ...mergedProps, ref });
12
18
  });
13
19
  SelectPositioner.displayName = "SelectPositioner";
package/select/select.cjs CHANGED
@@ -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 selectContext = require('./select-context.cjs');
13
14
  const useSelect = require('./use-select.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 SelectImpl = (props, ref) => {
20
+ const [presenceProps, selectProps] = splitPresenceProps.splitPresenceProps(props);
16
21
  const [useSelectProps, { children, ...localProps }] = createSplitProps.createSplitProps()(
17
- props,
22
+ selectProps,
18
23
  [
19
24
  "closeOnSelect",
20
25
  "defaultValue",
@@ -47,9 +52,10 @@ const SelectImpl = (props, ref) => {
47
52
  ]
48
53
  );
49
54
  const api = useSelect.useSelect(useSelectProps);
55
+ const presenceApi = usePresence.usePresence({ ...presenceProps, present: api.isOpen });
50
56
  const view = runIfFn.runIfFn(children, api);
51
57
  const mergedProps = react$1.mergeProps(api.rootProps, localProps);
52
- return /* @__PURE__ */ jsxRuntime.jsx(selectContext.SelectProvider, { value: api, children: /* @__PURE__ */ jsxRuntime.jsx(factory.ark.div, { ...mergedProps, ref, children: view }) });
58
+ return /* @__PURE__ */ jsxRuntime.jsx(selectContext.SelectProvider, { value: api, children: /* @__PURE__ */ jsxRuntime.jsx(presenceContext.PresenceProvider, { value: presenceApi, children: /* @__PURE__ */ jsxRuntime.jsx(factory.ark.div, { ...mergedProps, ref, children: view }) }) });
53
59
  };
54
60
  const Select = react.forwardRef(SelectImpl);
55
61
 
@@ -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 UseSelectProps, type UseSelectReturn } from './use-select';
5
- export interface SelectProps<T extends CollectionItem> extends Assign<HTMLArkProps<'div'>, UseSelectProps<T> & {
6
- children?: ReactNode | ((state: UseSelectReturn<T>) => ReactNode);
7
- }> {
6
+ export interface SelectProps<T extends CollectionItem> extends Assign<Assign<HTMLArkProps<'div'>, {
7
+ children?: ReactNode | ((api: UseSelectReturn<T>) => ReactNode);
8
+ }>, UseSelectProps<T>>, UsePresenceProps {
8
9
  }
9
10
  export interface SelectComponent {
10
11
  <T extends CollectionItem>(props: SelectProps<T> & React.RefAttributes<HTMLDivElement>): JSX.Element;
package/select/select.mjs CHANGED
@@ -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 { SelectProvider } from './select-context.mjs';
9
10
  import { useSelect } from './use-select.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 SelectImpl = (props, ref) => {
16
+ const [presenceProps, selectProps] = splitPresenceProps(props);
12
17
  const [useSelectProps, { children, ...localProps }] = createSplitProps()(
13
- props,
18
+ selectProps,
14
19
  [
15
20
  "closeOnSelect",
16
21
  "defaultValue",
@@ -43,9 +48,10 @@ const SelectImpl = (props, ref) => {
43
48
  ]
44
49
  );
45
50
  const api = useSelect(useSelectProps);
51
+ const presenceApi = usePresence({ ...presenceProps, present: api.isOpen });
46
52
  const view = runIfFn(children, api);
47
53
  const mergedProps = mergeProps(api.rootProps, localProps);
48
- return /* @__PURE__ */ jsx(SelectProvider, { value: api, children: /* @__PURE__ */ jsx(ark.div, { ...mergedProps, ref, children: view }) });
54
+ return /* @__PURE__ */ jsx(SelectProvider, { value: api, children: /* @__PURE__ */ jsx(PresenceProvider, { value: presenceApi, children: /* @__PURE__ */ jsx(ark.div, { ...mergedProps, ref, children: view }) }) });
49
55
  };
50
56
  const Select = forwardRef(SelectImpl);
51
57
 
@@ -6,5 +6,5 @@ declare const meta: Meta<SelectType>;
6
6
  export default meta;
7
7
  export declare const Basic: () => JSX.Element;
8
8
  export declare const Advanced: () => JSX.Element;
9
- export declare const Controlled: () => JSX.Element;
10
9
  export declare const Multiple: () => JSX.Element;
10
+ export declare const Controlled: () => JSX.Element;
package/slider/index.cjs CHANGED
@@ -9,10 +9,10 @@ const sliderControl = require('./slider-control.cjs');
9
9
  const sliderLabel = require('./slider-label.cjs');
10
10
  const sliderMarker = require('./slider-marker.cjs');
11
11
  const sliderMarkerGroup = require('./slider-marker-group.cjs');
12
- const sliderOutput = require('./slider-output.cjs');
13
12
  const sliderRange = require('./slider-range.cjs');
14
13
  const sliderThumb = require('./slider-thumb.cjs');
15
14
  const sliderTrack = require('./slider-track.cjs');
15
+ const sliderValueText = require('./slider-value-text.cjs');
16
16
 
17
17
  const Slider = Object.assign(slider.Slider, {
18
18
  Root: slider.Slider,
@@ -20,10 +20,10 @@ const Slider = Object.assign(slider.Slider, {
20
20
  Label: sliderLabel.SliderLabel,
21
21
  Marker: sliderMarker.SliderMarker,
22
22
  MarkerGroup: sliderMarkerGroup.SliderMarkerGroup,
23
- Output: sliderOutput.SliderOutput,
24
23
  Range: sliderRange.SliderRange,
25
24
  Thumb: sliderThumb.SliderThumb,
26
- Track: sliderTrack.SliderTrack
25
+ Track: sliderTrack.SliderTrack,
26
+ ValueText: sliderValueText.SliderValueText
27
27
  });
28
28
 
29
29
  exports.useSliderContext = sliderContext.useSliderContext;
@@ -31,8 +31,8 @@ exports.SliderControl = sliderControl.SliderControl;
31
31
  exports.SliderLabel = sliderLabel.SliderLabel;
32
32
  exports.SliderMarker = sliderMarker.SliderMarker;
33
33
  exports.SliderMarkerGroup = sliderMarkerGroup.SliderMarkerGroup;
34
- exports.SliderOutput = sliderOutput.SliderOutput;
35
34
  exports.SliderRange = sliderRange.SliderRange;
36
35
  exports.SliderThumb = sliderThumb.SliderThumb;
37
36
  exports.SliderTrack = sliderTrack.SliderTrack;
37
+ exports.SliderValueText = sliderValueText.SliderValueText;
38
38
  exports.Slider = Slider;
package/slider/index.d.ts CHANGED
@@ -6,20 +6,20 @@ import { SliderControl, type SliderControlProps } from './slider-control';
6
6
  import { SliderLabel, type SliderLabelProps } from './slider-label';
7
7
  import { SliderMarker, type SliderMarkerProps } from './slider-marker';
8
8
  import { SliderMarkerGroup, type SliderMarkerGroupProps } from './slider-marker-group';
9
- import { SliderOutput, type SliderOutputProps } from './slider-output';
10
9
  import { SliderRange, type SliderRangeProps } from './slider-range';
11
10
  import { SliderThumb, type SliderThumbProps } from './slider-thumb';
12
11
  import { SliderTrack, type SliderTrackProps } from './slider-track';
12
+ import { SliderValueText, type SliderValueTextProps } from './slider-value-text';
13
13
  declare const Slider: ForwardRefExoticComponent<SliderProps & RefAttributes<HTMLDivElement>> & {
14
14
  Root: ForwardRefExoticComponent<SliderProps & RefAttributes<HTMLDivElement>>;
15
15
  Control: ForwardRefExoticComponent<SliderControlProps & RefAttributes<HTMLDivElement>>;
16
16
  Label: ForwardRefExoticComponent<SliderLabelProps & RefAttributes<HTMLLabelElement>>;
17
17
  Marker: ForwardRefExoticComponent<SliderMarkerProps & RefAttributes<HTMLSpanElement>>;
18
18
  MarkerGroup: ForwardRefExoticComponent<SliderMarkerGroupProps & RefAttributes<HTMLDivElement>>;
19
- Output: ForwardRefExoticComponent<SliderOutputProps & RefAttributes<HTMLOutputElement>>;
20
19
  Range: ForwardRefExoticComponent<SliderRangeProps & RefAttributes<HTMLDivElement>>;
21
20
  Thumb: ForwardRefExoticComponent<SliderThumbProps & RefAttributes<HTMLDivElement>>;
22
21
  Track: ForwardRefExoticComponent<SliderTrackProps & RefAttributes<HTMLDivElement>>;
22
+ ValueText: ForwardRefExoticComponent<SliderValueTextProps & RefAttributes<HTMLDivElement>>;
23
23
  };
24
- export { Slider, SliderControl, SliderLabel, SliderMarker, SliderMarkerGroup, SliderOutput, SliderRange, SliderThumb, SliderTrack, useSliderContext, };
25
- export type { SliderContext, SliderControlProps, SliderLabelProps, SliderMarkerGroupProps, SliderMarkerProps, SliderOutputProps, SliderProps, SliderRangeProps, SliderThumbProps, SliderTrackProps, };
24
+ export { Slider, SliderControl, SliderLabel, SliderMarker, SliderMarkerGroup, SliderRange, SliderThumb, SliderTrack, SliderValueText, useSliderContext, };
25
+ export type { SliderContext, SliderControlProps, SliderLabelProps, SliderMarkerGroupProps, SliderMarkerProps, SliderProps, SliderRangeProps, SliderThumbProps, SliderTrackProps, SliderValueTextProps, };
package/slider/index.mjs CHANGED
@@ -5,10 +5,10 @@ import { SliderControl } from './slider-control.mjs';
5
5
  import { SliderLabel } from './slider-label.mjs';
6
6
  import { SliderMarker } from './slider-marker.mjs';
7
7
  import { SliderMarkerGroup } from './slider-marker-group.mjs';
8
- import { SliderOutput } from './slider-output.mjs';
9
8
  import { SliderRange } from './slider-range.mjs';
10
9
  import { SliderThumb } from './slider-thumb.mjs';
11
10
  import { SliderTrack } from './slider-track.mjs';
11
+ import { SliderValueText } from './slider-value-text.mjs';
12
12
 
13
13
  const Slider = Object.assign(Slider$1, {
14
14
  Root: Slider$1,
@@ -16,10 +16,10 @@ const Slider = Object.assign(Slider$1, {
16
16
  Label: SliderLabel,
17
17
  Marker: SliderMarker,
18
18
  MarkerGroup: SliderMarkerGroup,
19
- Output: SliderOutput,
20
19
  Range: SliderRange,
21
20
  Thumb: SliderThumb,
22
- Track: SliderTrack
21
+ Track: SliderTrack,
22
+ ValueText: SliderValueText
23
23
  });
24
24
 
25
- export { Slider, SliderControl, SliderLabel, SliderMarker, SliderMarkerGroup, SliderOutput, SliderRange, SliderThumb, SliderTrack };
25
+ export { Slider, SliderControl, SliderLabel, SliderMarker, SliderMarkerGroup, SliderRange, SliderThumb, SliderTrack, SliderValueText };
@@ -7,16 +7,14 @@ 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 runIfFn = require('../run-if-fn.cjs');
11
10
  const sliderContext = require('./slider-context.cjs');
12
11
 
13
- const SliderOutput = react.forwardRef((props, ref) => {
12
+ const SliderValueText = react.forwardRef((props, ref) => {
14
13
  const { children, ...rest } = props;
15
14
  const api = sliderContext.useSliderContext();
16
- const mergedProps = react$1.mergeProps(api.outputProps, rest);
17
- const view = runIfFn.runIfFn(children, api);
18
- return /* @__PURE__ */ jsxRuntime.jsx(factory.ark.output, { ...mergedProps, ref, children: view });
15
+ const mergedProps = react$1.mergeProps(api.valueTextProps, rest);
16
+ return /* @__PURE__ */ jsxRuntime.jsx(factory.ark.span, { ...mergedProps, ref, children: children || api.value.join(", ") });
19
17
  });
20
- SliderOutput.displayName = "SliderOutput";
18
+ SliderValueText.displayName = "SliderValueText";
21
19
 
22
- exports.SliderOutput = SliderOutput;
20
+ exports.SliderValueText = SliderValueText;
@@ -0,0 +1,6 @@
1
+ import { ForwardRefExoticComponent, RefAttributes } from 'react';
2
+ /// <reference types="react" />
3
+ import { type HTMLArkProps } from '../factory';
4
+ export interface SliderValueTextProps extends HTMLArkProps<'span'> {
5
+ }
6
+ export declare const SliderValueText: ForwardRefExoticComponent<SliderValueTextProps & RefAttributes<HTMLDivElement>>;
@@ -0,0 +1,16 @@
1
+ 'use client';
2
+ import { jsx } from 'react/jsx-runtime';
3
+ import { mergeProps } from '@zag-js/react';
4
+ import { forwardRef } from 'react';
5
+ import { ark } from '../factory.mjs';
6
+ import { useSliderContext } from './slider-context.mjs';
7
+
8
+ const SliderValueText = forwardRef((props, ref) => {
9
+ const { children, ...rest } = props;
10
+ const api = useSliderContext();
11
+ const mergedProps = mergeProps(api.valueTextProps, rest);
12
+ return /* @__PURE__ */ jsx(ark.span, { ...mergedProps, ref, children: children || api.value.join(", ") });
13
+ });
14
+ SliderValueText.displayName = "SliderValueText";
15
+
16
+ export { SliderValueText };
@@ -2,8 +2,8 @@ import { ForwardRefExoticComponent, RefAttributes, type ReactNode } from 'react'
2
2
  import { type HTMLArkProps } from '../factory';
3
3
  import { type Assign } from '../types';
4
4
  import { type UseSliderProps, type UseSliderReturn } from './use-slider';
5
- export interface SliderProps extends Assign<HTMLArkProps<'div'>, UseSliderProps & {
6
- children?: ((api: UseSliderReturn) => ReactNode) | ReactNode;
7
- }> {
5
+ export interface SliderProps extends Assign<Assign<HTMLArkProps<'div'>, {
6
+ children?: ReactNode | ((api: UseSliderReturn) => ReactNode);
7
+ }>, UseSliderProps> {
8
8
  }
9
9
  export declare const Slider: ForwardRefExoticComponent<SliderProps & RefAttributes<HTMLDivElement>>;
@@ -1,8 +1,15 @@
1
1
  import { JSX } from 'react/jsx-runtime';
2
2
  import type { Meta } from '@storybook/react';
3
- import { Slider } from '.';
3
+ import { Slider } from './';
4
4
  type SliderType = typeof Slider;
5
5
  declare const meta: Meta<SliderType>;
6
6
  export default meta;
7
7
  export declare const Basic: () => JSX.Element;
8
- export declare const WithDefaultValue: () => JSX.Element;
8
+ export declare const WithMarks: () => JSX.Element;
9
+ export declare const InitialValue: () => JSX.Element;
10
+ export declare const MinMax: () => JSX.Element;
11
+ export declare const Step: () => JSX.Element;
12
+ export declare const OnEvent: () => JSX.Element;
13
+ export declare const Vertical: () => JSX.Element;
14
+ export declare const CenterOrigin: () => JSX.Element;
15
+ export declare const Advanced: () => JSX.Element;
@@ -2,8 +2,8 @@ import { ForwardRefExoticComponent, RefAttributes, ReactNode } from 'react';
2
2
  import { type HTMLArkProps } from '../factory';
3
3
  import type { Assign } from '../types';
4
4
  import { type UseSplitterProps, type UseSplitterReturn } from './use-splitter';
5
- export interface SplitterProps extends Assign<HTMLArkProps<'div'>, UseSplitterProps & {
6
- children?: ReactNode | ((state: UseSplitterReturn) => ReactNode);
7
- }> {
5
+ export interface SplitterProps extends Assign<Assign<HTMLArkProps<'div'>, {
6
+ children?: ReactNode | ((api: UseSplitterReturn) => ReactNode);
7
+ }>, UseSplitterProps> {
8
8
  }
9
9
  export declare const Splitter: ForwardRefExoticComponent<SplitterProps & RefAttributes<HTMLDivElement>>;
@@ -2,8 +2,8 @@ import { ForwardRefExoticComponent, RefAttributes, ReactNode } from 'react';
2
2
  import { type HTMLArkProps } from '../factory';
3
3
  import type { Assign } from '../types';
4
4
  import { type UseSwitchProps, type UseSwitchReturn } from './use-switch';
5
- export interface SwitchProps extends Assign<Assign<HTMLArkProps<'label'>, UseSwitchProps>, {
6
- children?: ReactNode | ((pages: UseSwitchReturn) => ReactNode);
7
- }> {
5
+ export interface SwitchProps extends Assign<Assign<HTMLArkProps<'label'>, {
6
+ children?: ReactNode | ((api: UseSwitchReturn) => ReactNode);
7
+ }>, UseSwitchProps> {
8
8
  }
9
9
  export declare const Switch: ForwardRefExoticComponent<SwitchProps & RefAttributes<HTMLLabelElement>>;
@@ -5,6 +5,7 @@ type SwitchType = typeof Switch;
5
5
  declare const meta: Meta<SwitchType>;
6
6
  export default meta;
7
7
  export declare const Basic: () => JSX.Element;
8
+ export declare const InitialValue: () => JSX.Element;
8
9
  export declare const Controlled: () => JSX.Element;
9
10
  export declare const Disabled: () => JSX.Element;
10
11
  export declare const RenderProp: () => JSX.Element;
@@ -10,22 +10,23 @@ const react = require('react');
10
10
  const createSplitProps = require('../create-split-props.cjs');
11
11
  const factory = require('../factory.cjs');
12
12
  require('../presence/index.cjs');
13
- const tabPresence = require('./tab-presence.cjs');
14
13
  const tabsContext = require('./tabs-context.cjs');
15
- const splitPresenceProps = require('../presence/split-presence-props.cjs');
14
+ const presencePropsContext = require('../presence/presence-props-context.cjs');
15
+ const usePresence = require('../presence/use-presence.cjs');
16
+ const presenceContext = require('../presence/presence-context.cjs');
16
17
 
17
18
  const TabContent = react.forwardRef((props, ref) => {
18
- const [presenceProps, tabContentProps] = splitPresenceProps.splitPresenceProps(props);
19
- const [contentProps, localProps] = createSplitProps.createSplitProps()(tabContentProps, ["value"]);
20
- return /* @__PURE__ */ jsxRuntime.jsx(tabPresence.TabPresence, { ...presenceProps, ...contentProps, children: /* @__PURE__ */ jsxRuntime.jsx(InnerTabContent, { ref, ...contentProps, ...localProps }) });
21
- });
22
- TabContent.displayName = "TabContent";
23
- const InnerTabContent = react.forwardRef((props, ref) => {
24
- const [tabContentProps, divProps] = createSplitProps.createSplitProps()(props, ["value"]);
19
+ const [contentProps, localProps] = createSplitProps.createSplitProps()(props, ["value"]);
25
20
  const api = tabsContext.useTabsContext();
26
- const mergedProps = react$1.mergeProps(api.getContentProps(tabContentProps), divProps);
27
- return /* @__PURE__ */ jsxRuntime.jsx(factory.ark.div, { ...mergedProps, ref });
21
+ const presenceProps = presencePropsContext.usePresencePropsContext();
22
+ const presenceApi = usePresence.usePresence({ ...presenceProps, present: api.value === props.value });
23
+ const mergedProps = react$1.mergeProps(
24
+ api.getContentProps(contentProps),
25
+ presenceApi.getPresenceProps(ref),
26
+ localProps
27
+ );
28
+ return /* @__PURE__ */ jsxRuntime.jsx(presenceContext.PresenceProvider, { value: presenceApi, children: presenceApi.isUnmounted ? null : /* @__PURE__ */ jsxRuntime.jsx(factory.ark.div, { ...mergedProps }) });
28
29
  });
29
- InnerTabContent.displayName = "InnerTabContent";
30
+ TabContent.displayName = "TabContent";
30
31
 
31
32
  exports.TabContent = TabContent;
@@ -2,9 +2,7 @@ import { ForwardRefExoticComponent, RefAttributes } from 'react';
2
2
  /// <reference types="react" />
3
3
  import { type ContentProps } from '@zag-js/tabs';
4
4
  import { type HTMLArkProps } from '../factory';
5
- import { type TabPresenceProps } from './tab-presence';
6
- export interface TabContentProps extends InnerTabContentProps, Omit<TabPresenceProps, 'children' | 'fallback'> {
5
+ import type { Assign } from '../types';
6
+ export interface TabContentProps extends Assign<HTMLArkProps<'div'>, ContentProps> {
7
7
  }
8
8
  export declare const TabContent: ForwardRefExoticComponent<TabContentProps & RefAttributes<HTMLDivElement>>;
9
- type InnerTabContentProps = HTMLArkProps<'div'> & ContentProps;
10
- export {};
@@ -6,22 +6,23 @@ import { forwardRef } from 'react';
6
6
  import { createSplitProps } from '../create-split-props.mjs';
7
7
  import { ark } from '../factory.mjs';
8
8
  import '../presence/index.mjs';
9
- import { TabPresence } from './tab-presence.mjs';
10
9
  import { useTabsContext } from './tabs-context.mjs';
11
- import { splitPresenceProps } from '../presence/split-presence-props.mjs';
10
+ import { usePresencePropsContext } from '../presence/presence-props-context.mjs';
11
+ import { usePresence } from '../presence/use-presence.mjs';
12
+ import { PresenceProvider } from '../presence/presence-context.mjs';
12
13
 
13
14
  const TabContent = forwardRef((props, ref) => {
14
- const [presenceProps, tabContentProps] = splitPresenceProps(props);
15
- const [contentProps, localProps] = createSplitProps()(tabContentProps, ["value"]);
16
- return /* @__PURE__ */ jsx(TabPresence, { ...presenceProps, ...contentProps, children: /* @__PURE__ */ jsx(InnerTabContent, { ref, ...contentProps, ...localProps }) });
17
- });
18
- TabContent.displayName = "TabContent";
19
- const InnerTabContent = forwardRef((props, ref) => {
20
- const [tabContentProps, divProps] = createSplitProps()(props, ["value"]);
15
+ const [contentProps, localProps] = createSplitProps()(props, ["value"]);
21
16
  const api = useTabsContext();
22
- const mergedProps = mergeProps(api.getContentProps(tabContentProps), divProps);
23
- return /* @__PURE__ */ jsx(ark.div, { ...mergedProps, ref });
17
+ const presenceProps = usePresencePropsContext();
18
+ const presenceApi = usePresence({ ...presenceProps, present: api.value === props.value });
19
+ const mergedProps = mergeProps(
20
+ api.getContentProps(contentProps),
21
+ presenceApi.getPresenceProps(ref),
22
+ localProps
23
+ );
24
+ return /* @__PURE__ */ jsx(PresenceProvider, { value: presenceApi, children: presenceApi.isUnmounted ? null : /* @__PURE__ */ jsx(ark.div, { ...mergedProps }) });
24
25
  });
25
- InnerTabContent.displayName = "InnerTabContent";
26
+ TabContent.displayName = "TabContent";
26
27
 
27
28
  export { TabContent };
package/tabs/tabs.cjs CHANGED
@@ -8,11 +8,15 @@ const react$1 = require('@zag-js/react');
8
8
  const react = require('react');
9
9
  const createSplitProps = require('../create-split-props.cjs');
10
10
  const factory = require('../factory.cjs');
11
+ require('../presence/index.cjs');
11
12
  const tabsContext = require('./tabs-context.cjs');
12
13
  const useTabs = require('./use-tabs.cjs');
14
+ const splitPresenceProps = require('../presence/split-presence-props.cjs');
15
+ const presencePropsContext = require('../presence/presence-props-context.cjs');
13
16
 
14
17
  const Tabs = react.forwardRef((props, ref) => {
15
- const [useTabsProps, divProps] = createSplitProps.createSplitProps()(props, [
18
+ const [presenceProps, tabsProps] = splitPresenceProps.splitPresenceProps(props);
19
+ const [useTabsProps, localprops] = createSplitProps.createSplitProps()(tabsProps, [
16
20
  "activationMode",
17
21
  "defaultValue",
18
22
  "dir",
@@ -27,8 +31,8 @@ const Tabs = react.forwardRef((props, ref) => {
27
31
  "value"
28
32
  ]);
29
33
  const api = useTabs.useTabs(useTabsProps);
30
- const mergedProps = react$1.mergeProps(api.rootProps, divProps);
31
- return /* @__PURE__ */ jsxRuntime.jsx(tabsContext.TabsProvider, { value: api, children: /* @__PURE__ */ jsxRuntime.jsx(factory.ark.div, { ...mergedProps, ref }) });
34
+ const mergedProps = react$1.mergeProps(api.rootProps, localprops);
35
+ return /* @__PURE__ */ jsxRuntime.jsx(tabsContext.TabsProvider, { value: api, children: /* @__PURE__ */ jsxRuntime.jsx(presencePropsContext.PresencePropsProvider, { value: presenceProps, children: /* @__PURE__ */ jsxRuntime.jsx(factory.ark.div, { ...mergedProps, ref }) }) });
32
36
  });
33
37
  Tabs.displayName = "Tabs";
34
38
 
package/tabs/tabs.d.ts CHANGED
@@ -1,8 +1,9 @@
1
1
  import { ForwardRefExoticComponent, RefAttributes } from 'react';
2
2
  /// <reference types="react" />
3
3
  import { type HTMLArkProps } from '../factory';
4
+ import { type UsePresenceProps } from '../presence';
4
5
  import { type Assign } from '../types';
5
6
  import { type UseTabsProps } from './use-tabs';
6
- export interface TabsProps extends Assign<HTMLArkProps<'div'>, UseTabsProps> {
7
+ export interface TabsProps extends Assign<HTMLArkProps<'div'>, UseTabsProps>, UsePresenceProps {
7
8
  }
8
9
  export declare const Tabs: ForwardRefExoticComponent<TabsProps & RefAttributes<HTMLDivElement>>;
package/tabs/tabs.mjs CHANGED
@@ -4,11 +4,15 @@ import { mergeProps } from '@zag-js/react';
4
4
  import { forwardRef } from 'react';
5
5
  import { createSplitProps } from '../create-split-props.mjs';
6
6
  import { ark } from '../factory.mjs';
7
+ import '../presence/index.mjs';
7
8
  import { TabsProvider } from './tabs-context.mjs';
8
9
  import { useTabs } from './use-tabs.mjs';
10
+ import { splitPresenceProps } from '../presence/split-presence-props.mjs';
11
+ import { PresencePropsProvider } from '../presence/presence-props-context.mjs';
9
12
 
10
13
  const Tabs = forwardRef((props, ref) => {
11
- const [useTabsProps, divProps] = createSplitProps()(props, [
14
+ const [presenceProps, tabsProps] = splitPresenceProps(props);
15
+ const [useTabsProps, localprops] = createSplitProps()(tabsProps, [
12
16
  "activationMode",
13
17
  "defaultValue",
14
18
  "dir",
@@ -23,8 +27,8 @@ const Tabs = forwardRef((props, ref) => {
23
27
  "value"
24
28
  ]);
25
29
  const api = useTabs(useTabsProps);
26
- const mergedProps = mergeProps(api.rootProps, divProps);
27
- return /* @__PURE__ */ jsx(TabsProvider, { value: api, children: /* @__PURE__ */ jsx(ark.div, { ...mergedProps, ref }) });
30
+ const mergedProps = mergeProps(api.rootProps, localprops);
31
+ return /* @__PURE__ */ jsx(TabsProvider, { value: api, children: /* @__PURE__ */ jsx(PresencePropsProvider, { value: presenceProps, children: /* @__PURE__ */ jsx(ark.div, { ...mergedProps, ref }) }) });
28
32
  });
29
33
  Tabs.displayName = "Tabs";
30
34
 
@@ -1,10 +1,9 @@
1
- import { ForwardRefExoticComponent, RefAttributes } from 'react';
2
- /// <reference types="react" />
3
1
  import type { ItemProps, ItemState } from '@zag-js/tags-input';
2
+ import { ForwardRefExoticComponent, RefAttributes, type ReactNode } from 'react';
4
3
  import { type HTMLArkProps } from '../factory';
5
4
  import { type Assign } from '../types';
6
- export interface TagsInputItemProps extends ItemProps, Assign<HTMLArkProps<'div'>, {
7
- children?: React.ReactNode | ((props: ItemState) => React.ReactNode);
8
- }> {
5
+ export interface TagsInputItemProps extends Assign<HTMLArkProps<'div'>, {
6
+ children?: ReactNode | ((state: ItemState) => ReactNode);
7
+ }>, ItemProps {
9
8
  }
10
9
  export declare const TagsInputItem: ForwardRefExoticComponent<TagsInputItemProps & RefAttributes<HTMLDivElement>>;
@@ -2,8 +2,8 @@ import { ForwardRefExoticComponent, RefAttributes, type ReactNode } from 'react'
2
2
  import { type HTMLArkProps } from '../factory';
3
3
  import { type Assign } from '../types';
4
4
  import { type UseTagsInputProps, type UseTagsInputReturn } from './use-tags-input';
5
- export interface TagsInputProps extends Assign<Assign<HTMLArkProps<'input'>, UseTagsInputProps>, {
6
- children?: ReactNode | ((pages: UseTagsInputReturn) => ReactNode);
7
- }> {
5
+ export interface TagsInputProps extends Assign<Assign<HTMLArkProps<'div'>, {
6
+ children?: ReactNode | ((api: UseTagsInputReturn) => ReactNode);
7
+ }>, UseTagsInputProps> {
8
8
  }
9
9
  export declare const TagsInput: ForwardRefExoticComponent<TagsInputProps & RefAttributes<HTMLInputElement>>;
@@ -6,3 +6,9 @@ declare const meta: Meta<TagsInputType>;
6
6
  export default meta;
7
7
  export declare const Basic: () => JSX.Element;
8
8
  export declare const InitialValue: () => JSX.Element;
9
+ export declare const MaxWithOverflow: () => JSX.Element;
10
+ export declare const Validated: () => JSX.Element;
11
+ export declare const BlurBehavior: () => JSX.Element;
12
+ export declare const PasteBehavior: () => JSX.Element;
13
+ export declare const DisabledEditing: () => JSX.Element;
14
+ export declare const OnEvent: () => JSX.Element;
@@ -1,5 +1,9 @@
1
1
  import { JSX } from 'react/jsx-runtime';
2
2
  import type { Meta } from '@storybook/react';
3
- declare const meta: Meta;
3
+ import { Toast } from './';
4
+ type ToastType = typeof Toast;
5
+ declare const meta: Meta<ToastType>;
4
6
  export default meta;
5
7
  export declare const Basic: () => JSX.Element;
8
+ export declare const Customized: () => JSX.Element;
9
+ export declare const CustomRender: () => JSX.Element;
@@ -5,5 +5,5 @@ type ToggleGroupType = typeof ToggleGroup;
5
5
  declare const meta: Meta<ToggleGroupType>;
6
6
  export default meta;
7
7
  export declare const Basic: () => JSX.Element;
8
- export declare const Initialvalue: () => JSX.Element;
8
+ export declare const InitialValue: () => JSX.Element;
9
9
  export declare const Multiple: () => JSX.Element;