@ark-ui/react 3.6.2 → 3.8.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (140) hide show
  1. package/README.md +1 -0
  2. package/dist/components/field/field-root.cjs +1 -0
  3. package/dist/components/field/field-root.js +1 -0
  4. package/dist/components/field/use-field.cjs +24 -20
  5. package/dist/components/field/use-field.d.cts +15 -0
  6. package/dist/components/field/use-field.d.ts +15 -0
  7. package/dist/components/field/use-field.js +19 -15
  8. package/dist/components/index.cjs +18 -0
  9. package/dist/components/index.d.cts +1 -0
  10. package/dist/components/index.d.ts +1 -0
  11. package/dist/components/index.js +10 -0
  12. package/dist/components/progress/progress-value-text.cjs +1 -1
  13. package/dist/components/progress/progress-value-text.js +1 -1
  14. package/dist/components/select/use-select.cjs +19 -13
  15. package/dist/components/select/use-select.js +20 -14
  16. package/dist/components/steps/index.cjs +41 -0
  17. package/dist/components/steps/index.d.cts +18 -0
  18. package/dist/components/steps/index.d.ts +18 -0
  19. package/dist/components/steps/index.js +18 -0
  20. package/dist/components/steps/steps-completed-content.cjs +21 -0
  21. package/dist/components/steps/steps-completed-content.d.cts +8 -0
  22. package/dist/components/steps/steps-completed-content.d.ts +8 -0
  23. package/dist/components/steps/steps-completed-content.js +17 -0
  24. package/dist/components/steps/steps-content.cjs +21 -0
  25. package/dist/components/steps/steps-content.d.cts +9 -0
  26. package/dist/components/steps/steps-content.d.ts +9 -0
  27. package/dist/components/steps/steps-content.js +17 -0
  28. package/dist/components/steps/steps-context.d.cts +10 -0
  29. package/dist/components/steps/steps-context.d.ts +10 -0
  30. package/dist/components/steps/steps-indicator.cjs +21 -0
  31. package/dist/components/steps/steps-indicator.d.cts +8 -0
  32. package/dist/components/steps/steps-indicator.d.ts +8 -0
  33. package/dist/components/steps/steps-indicator.js +17 -0
  34. package/dist/components/steps/steps-item-context.cjs +13 -0
  35. package/dist/components/steps/steps-item-context.d.cts +10 -0
  36. package/dist/components/steps/steps-item-context.d.ts +10 -0
  37. package/dist/components/steps/steps-item-context.js +9 -0
  38. package/dist/components/steps/steps-item.cjs +24 -0
  39. package/dist/components/steps/steps-item.d.cts +9 -0
  40. package/dist/components/steps/steps-item.d.ts +9 -0
  41. package/dist/components/steps/steps-item.js +20 -0
  42. package/dist/components/steps/steps-list.cjs +19 -0
  43. package/dist/components/steps/steps-list.d.cts +8 -0
  44. package/dist/components/steps/steps-list.d.ts +8 -0
  45. package/dist/components/steps/steps-list.js +15 -0
  46. package/dist/components/steps/steps-next-trigger.cjs +21 -0
  47. package/dist/components/steps/steps-next-trigger.d.cts +8 -0
  48. package/dist/components/steps/steps-next-trigger.d.ts +8 -0
  49. package/dist/components/steps/steps-next-trigger.js +17 -0
  50. package/dist/components/steps/steps-prev-trigger.cjs +21 -0
  51. package/dist/components/steps/steps-prev-trigger.d.cts +8 -0
  52. package/dist/components/steps/steps-prev-trigger.d.ts +8 -0
  53. package/dist/components/steps/steps-prev-trigger.js +17 -0
  54. package/dist/components/steps/steps-progress.cjs +19 -0
  55. package/dist/components/steps/steps-progress.d.cts +8 -0
  56. package/dist/components/steps/steps-progress.d.ts +8 -0
  57. package/dist/components/steps/steps-progress.js +15 -0
  58. package/dist/components/steps/steps-root-provider.cjs +22 -0
  59. package/dist/components/steps/steps-root-provider.d.cts +13 -0
  60. package/dist/components/steps/steps-root-provider.d.ts +13 -0
  61. package/dist/components/steps/steps-root-provider.js +18 -0
  62. package/dist/components/steps/steps-root.cjs +32 -0
  63. package/dist/components/steps/steps-root.d.cts +9 -0
  64. package/dist/components/steps/steps-root.d.ts +9 -0
  65. package/dist/components/steps/steps-root.js +28 -0
  66. package/dist/components/steps/steps-separator.cjs +21 -0
  67. package/dist/components/steps/steps-separator.d.cts +8 -0
  68. package/dist/components/steps/steps-separator.d.ts +8 -0
  69. package/dist/components/steps/steps-separator.js +17 -0
  70. package/dist/components/steps/steps-trigger.cjs +21 -0
  71. package/dist/components/steps/steps-trigger.d.cts +8 -0
  72. package/dist/components/steps/steps-trigger.d.ts +8 -0
  73. package/dist/components/steps/steps-trigger.js +17 -0
  74. package/dist/components/steps/steps.cjs +31 -0
  75. package/dist/components/steps/steps.d.cts +13 -0
  76. package/dist/components/steps/steps.d.ts +13 -0
  77. package/dist/components/steps/steps.js +12 -0
  78. package/dist/components/steps/use-steps-context.cjs +15 -0
  79. package/dist/components/steps/use-steps-context.d.cts +6 -0
  80. package/dist/components/steps/use-steps-context.d.ts +6 -0
  81. package/dist/components/steps/use-steps-context.js +10 -0
  82. package/dist/components/steps/use-steps-item-context.cjs +15 -0
  83. package/dist/components/steps/use-steps-item-context.d.cts +6 -0
  84. package/dist/components/steps/use-steps-item-context.d.ts +6 -0
  85. package/dist/components/steps/use-steps-item-context.js +10 -0
  86. package/dist/components/steps/use-steps-item-props-context.cjs +15 -0
  87. package/dist/components/steps/use-steps-item-props-context.d.cts +6 -0
  88. package/dist/components/steps/use-steps-item-props-context.d.ts +6 -0
  89. package/dist/components/steps/use-steps-item-props-context.js +10 -0
  90. package/dist/components/steps/use-steps.cjs +54 -0
  91. package/dist/components/steps/use-steps.d.cts +13 -0
  92. package/dist/components/steps/use-steps.d.ts +13 -0
  93. package/dist/components/steps/use-steps.js +31 -0
  94. package/dist/components/timer/index.cjs +25 -0
  95. package/dist/components/timer/index.d.cts +9 -0
  96. package/dist/components/timer/index.d.ts +9 -0
  97. package/dist/components/timer/index.js +10 -0
  98. package/dist/components/timer/timer-action-trigger.cjs +21 -0
  99. package/dist/components/timer/timer-action-trigger.d.cts +9 -0
  100. package/dist/components/timer/timer-action-trigger.d.ts +9 -0
  101. package/dist/components/timer/timer-action-trigger.js +17 -0
  102. package/dist/components/timer/timer-context.cjs +10 -0
  103. package/dist/components/timer/timer-context.d.cts +7 -0
  104. package/dist/components/timer/timer-context.d.ts +7 -0
  105. package/dist/components/timer/timer-context.js +6 -0
  106. package/dist/components/timer/timer-item.cjs +21 -0
  107. package/dist/components/timer/timer-item.d.cts +9 -0
  108. package/dist/components/timer/timer-item.d.ts +9 -0
  109. package/dist/components/timer/timer-item.js +17 -0
  110. package/dist/components/timer/timer-root-provider.cjs +22 -0
  111. package/dist/components/timer/timer-root-provider.d.cts +13 -0
  112. package/dist/components/timer/timer-root-provider.d.ts +13 -0
  113. package/dist/components/timer/timer-root-provider.js +18 -0
  114. package/dist/components/timer/timer-root.cjs +31 -0
  115. package/dist/components/timer/timer-root.d.cts +9 -0
  116. package/dist/components/timer/timer-root.d.ts +9 -0
  117. package/dist/components/timer/timer-root.js +27 -0
  118. package/dist/components/timer/timer-separator.cjs +19 -0
  119. package/dist/components/timer/timer-separator.d.cts +8 -0
  120. package/dist/components/timer/timer-separator.d.ts +8 -0
  121. package/dist/components/timer/timer-separator.js +15 -0
  122. package/dist/components/timer/timer.cjs +19 -0
  123. package/dist/components/timer/timer.d.cts +6 -0
  124. package/dist/components/timer/timer.d.ts +6 -0
  125. package/dist/components/timer/timer.js +6 -0
  126. package/dist/components/timer/use-timer-context.cjs +15 -0
  127. package/dist/components/timer/use-timer-context.d.cts +6 -0
  128. package/dist/components/timer/use-timer-context.d.ts +6 -0
  129. package/dist/components/timer/use-timer-context.js +10 -0
  130. package/dist/components/timer/use-timer.cjs +47 -0
  131. package/dist/components/timer/use-timer.d.cts +9 -0
  132. package/dist/components/timer/use-timer.d.ts +9 -0
  133. package/dist/components/timer/use-timer.js +24 -0
  134. package/dist/index.cjs +18 -0
  135. package/dist/index.js +10 -0
  136. package/dist/utils/use-safe-layout-effect.cjs +10 -0
  137. package/dist/utils/use-safe-layout-effect.d.cts +3 -0
  138. package/dist/utils/use-safe-layout-effect.d.ts +3 -0
  139. package/dist/utils/use-safe-layout-effect.js +6 -0
  140. package/package.json +79 -54
@@ -0,0 +1,21 @@
1
+ 'use client';
2
+ 'use strict';
3
+
4
+ Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });
5
+
6
+ const jsxRuntime = require('react/jsx-runtime');
7
+ const react$1 = require('@zag-js/react');
8
+ const react = require('react');
9
+ const createSplitProps = require('../../utils/create-split-props.cjs');
10
+ const factory = require('../factory.cjs');
11
+ const useTimerContext = require('./use-timer-context.cjs');
12
+
13
+ const TimerItem = react.forwardRef((props, ref) => {
14
+ const [itemProps, localProps] = createSplitProps.createSplitProps()(props, ["type"]);
15
+ const timer = useTimerContext.useTimerContext();
16
+ const mergedProps = react$1.mergeProps(timer.getItemProps(itemProps), localProps);
17
+ return /* @__PURE__ */ jsxRuntime.jsx(factory.ark.div, { ...mergedProps, ref, children: timer.formattedTime[itemProps.type] });
18
+ });
19
+ TimerItem.displayName = "TimerItem";
20
+
21
+ exports.TimerItem = TimerItem;
@@ -0,0 +1,9 @@
1
+ import { ItemProps } from '@zag-js/timer';
2
+ import { HTMLProps, PolymorphicProps } from '../factory';
3
+ import { ForwardRefExoticComponent, RefAttributes } from 'react';
4
+
5
+ export interface TimerItemBaseProps extends ItemProps, PolymorphicProps {
6
+ }
7
+ export interface TimerItemProps extends HTMLProps<'div'>, TimerItemBaseProps {
8
+ }
9
+ export declare const TimerItem: ForwardRefExoticComponent<TimerItemProps & RefAttributes<HTMLDivElement>>;
@@ -0,0 +1,9 @@
1
+ import { ItemProps } from '@zag-js/timer';
2
+ import { HTMLProps, PolymorphicProps } from '../factory';
3
+ import { ForwardRefExoticComponent, RefAttributes } from 'react';
4
+
5
+ export interface TimerItemBaseProps extends ItemProps, PolymorphicProps {
6
+ }
7
+ export interface TimerItemProps extends HTMLProps<'div'>, TimerItemBaseProps {
8
+ }
9
+ export declare const TimerItem: ForwardRefExoticComponent<TimerItemProps & RefAttributes<HTMLDivElement>>;
@@ -0,0 +1,17 @@
1
+ 'use client';
2
+ import { jsx } from 'react/jsx-runtime';
3
+ import { mergeProps } from '@zag-js/react';
4
+ import { forwardRef } from 'react';
5
+ import { createSplitProps } from '../../utils/create-split-props.js';
6
+ import { ark } from '../factory.js';
7
+ import { useTimerContext } from './use-timer-context.js';
8
+
9
+ const TimerItem = forwardRef((props, ref) => {
10
+ const [itemProps, localProps] = createSplitProps()(props, ["type"]);
11
+ const timer = useTimerContext();
12
+ const mergedProps = mergeProps(timer.getItemProps(itemProps), localProps);
13
+ return /* @__PURE__ */ jsx(ark.div, { ...mergedProps, ref, children: timer.formattedTime[itemProps.type] });
14
+ });
15
+ TimerItem.displayName = "TimerItem";
16
+
17
+ export { TimerItem };
@@ -0,0 +1,22 @@
1
+ 'use client';
2
+ 'use strict';
3
+
4
+ Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });
5
+
6
+ const jsxRuntime = require('react/jsx-runtime');
7
+ const react$1 = require('@zag-js/react');
8
+ const react = require('react');
9
+ const createSplitProps = require('../../utils/create-split-props.cjs');
10
+ const factory = require('../factory.cjs');
11
+ const useTimerContext = require('./use-timer-context.cjs');
12
+
13
+ const TimerRootProvider = react.forwardRef(
14
+ (props, ref) => {
15
+ const [{ value: timer }, localProps] = createSplitProps.createSplitProps()(props, ["value"]);
16
+ const mergedProps = react$1.mergeProps(timer.getRootProps(), localProps);
17
+ return /* @__PURE__ */ jsxRuntime.jsx(useTimerContext.TimerProvider, { value: timer, children: /* @__PURE__ */ jsxRuntime.jsx(factory.ark.div, { ...mergedProps, ref }) });
18
+ }
19
+ );
20
+ TimerRootProvider.displayName = "TimerRootProvider";
21
+
22
+ exports.TimerRootProvider = TimerRootProvider;
@@ -0,0 +1,13 @@
1
+ import { HTMLProps, PolymorphicProps } from '../factory';
2
+ import { UseTimerReturn } from './use-timer';
3
+ import { ForwardRefExoticComponent, RefAttributes } from 'react';
4
+
5
+ interface RootProviderProps {
6
+ value: UseTimerReturn;
7
+ }
8
+ export interface TimerRootProviderBaseProps extends RootProviderProps, PolymorphicProps {
9
+ }
10
+ export interface TimerRootProviderProps extends HTMLProps<'div'>, TimerRootProviderBaseProps {
11
+ }
12
+ export declare const TimerRootProvider: ForwardRefExoticComponent<TimerRootProviderProps & RefAttributes<HTMLDivElement>>;
13
+ export {};
@@ -0,0 +1,13 @@
1
+ import { HTMLProps, PolymorphicProps } from '../factory';
2
+ import { UseTimerReturn } from './use-timer';
3
+ import { ForwardRefExoticComponent, RefAttributes } from 'react';
4
+
5
+ interface RootProviderProps {
6
+ value: UseTimerReturn;
7
+ }
8
+ export interface TimerRootProviderBaseProps extends RootProviderProps, PolymorphicProps {
9
+ }
10
+ export interface TimerRootProviderProps extends HTMLProps<'div'>, TimerRootProviderBaseProps {
11
+ }
12
+ export declare const TimerRootProvider: ForwardRefExoticComponent<TimerRootProviderProps & RefAttributes<HTMLDivElement>>;
13
+ export {};
@@ -0,0 +1,18 @@
1
+ 'use client';
2
+ import { jsx } from 'react/jsx-runtime';
3
+ import { mergeProps } from '@zag-js/react';
4
+ import { forwardRef } from 'react';
5
+ import { createSplitProps } from '../../utils/create-split-props.js';
6
+ import { ark } from '../factory.js';
7
+ import { TimerProvider } from './use-timer-context.js';
8
+
9
+ const TimerRootProvider = forwardRef(
10
+ (props, ref) => {
11
+ const [{ value: timer }, localProps] = createSplitProps()(props, ["value"]);
12
+ const mergedProps = mergeProps(timer.getRootProps(), localProps);
13
+ return /* @__PURE__ */ jsx(TimerProvider, { value: timer, children: /* @__PURE__ */ jsx(ark.div, { ...mergedProps, ref }) });
14
+ }
15
+ );
16
+ TimerRootProvider.displayName = "TimerRootProvider";
17
+
18
+ export { TimerRootProvider };
@@ -0,0 +1,31 @@
1
+ 'use client';
2
+ 'use strict';
3
+
4
+ Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });
5
+
6
+ const jsxRuntime = require('react/jsx-runtime');
7
+ const react$1 = require('@zag-js/react');
8
+ const react = require('react');
9
+ const createSplitProps = require('../../utils/create-split-props.cjs');
10
+ const factory = require('../factory.cjs');
11
+ const useTimer = require('./use-timer.cjs');
12
+ const useTimerContext = require('./use-timer-context.cjs');
13
+
14
+ const TimerRoot = react.forwardRef((props, ref) => {
15
+ const [useTimerProps, localProps] = createSplitProps.createSplitProps()(props, [
16
+ "id",
17
+ "autoStart",
18
+ "interval",
19
+ "countdown",
20
+ "startMs",
21
+ "targetMs",
22
+ "onComplete",
23
+ "onTick"
24
+ ]);
25
+ const timer = useTimer.useTimer(useTimerProps);
26
+ const mergedProps = react$1.mergeProps(timer.getRootProps(), localProps);
27
+ return /* @__PURE__ */ jsxRuntime.jsx(useTimerContext.TimerProvider, { value: timer, children: /* @__PURE__ */ jsxRuntime.jsx(factory.ark.div, { ...mergedProps, ref }) });
28
+ });
29
+ TimerRoot.displayName = "TimerRoot";
30
+
31
+ exports.TimerRoot = TimerRoot;
@@ -0,0 +1,9 @@
1
+ import { HTMLProps, PolymorphicProps } from '../factory';
2
+ import { UseTimerProps } from './use-timer';
3
+ import { ForwardRefExoticComponent, RefAttributes } from 'react';
4
+
5
+ export interface TimerRootBaseProps extends UseTimerProps, PolymorphicProps {
6
+ }
7
+ export interface TimerRootProps extends HTMLProps<'div'>, TimerRootBaseProps {
8
+ }
9
+ export declare const TimerRoot: ForwardRefExoticComponent<TimerRootProps & RefAttributes<HTMLDivElement>>;
@@ -0,0 +1,9 @@
1
+ import { HTMLProps, PolymorphicProps } from '../factory';
2
+ import { UseTimerProps } from './use-timer';
3
+ import { ForwardRefExoticComponent, RefAttributes } from 'react';
4
+
5
+ export interface TimerRootBaseProps extends UseTimerProps, PolymorphicProps {
6
+ }
7
+ export interface TimerRootProps extends HTMLProps<'div'>, TimerRootBaseProps {
8
+ }
9
+ export declare const TimerRoot: ForwardRefExoticComponent<TimerRootProps & RefAttributes<HTMLDivElement>>;
@@ -0,0 +1,27 @@
1
+ 'use client';
2
+ import { jsx } from 'react/jsx-runtime';
3
+ import { mergeProps } from '@zag-js/react';
4
+ import { forwardRef } from 'react';
5
+ import { createSplitProps } from '../../utils/create-split-props.js';
6
+ import { ark } from '../factory.js';
7
+ import { useTimer } from './use-timer.js';
8
+ import { TimerProvider } from './use-timer-context.js';
9
+
10
+ const TimerRoot = forwardRef((props, ref) => {
11
+ const [useTimerProps, localProps] = createSplitProps()(props, [
12
+ "id",
13
+ "autoStart",
14
+ "interval",
15
+ "countdown",
16
+ "startMs",
17
+ "targetMs",
18
+ "onComplete",
19
+ "onTick"
20
+ ]);
21
+ const timer = useTimer(useTimerProps);
22
+ const mergedProps = mergeProps(timer.getRootProps(), localProps);
23
+ return /* @__PURE__ */ jsx(TimerProvider, { value: timer, children: /* @__PURE__ */ jsx(ark.div, { ...mergedProps, ref }) });
24
+ });
25
+ TimerRoot.displayName = "TimerRoot";
26
+
27
+ export { TimerRoot };
@@ -0,0 +1,19 @@
1
+ 'use client';
2
+ 'use strict';
3
+
4
+ Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });
5
+
6
+ const jsxRuntime = require('react/jsx-runtime');
7
+ const react$1 = require('@zag-js/react');
8
+ const react = require('react');
9
+ const factory = require('../factory.cjs');
10
+ const useTimerContext = require('./use-timer-context.cjs');
11
+
12
+ const TimerSeparator = react.forwardRef((props, ref) => {
13
+ const timer = useTimerContext.useTimerContext();
14
+ const mergedProps = react$1.mergeProps(timer.getSeparatorProps(), props);
15
+ return /* @__PURE__ */ jsxRuntime.jsx(factory.ark.div, { ...mergedProps, ref });
16
+ });
17
+ TimerSeparator.displayName = "TimerSeparator";
18
+
19
+ exports.TimerSeparator = TimerSeparator;
@@ -0,0 +1,8 @@
1
+ import { HTMLProps, PolymorphicProps } from '../factory';
2
+ import { ForwardRefExoticComponent, RefAttributes } from 'react';
3
+
4
+ export interface TimerSeparatorBaseProps extends PolymorphicProps {
5
+ }
6
+ export interface TimerSeparatorProps extends HTMLProps<'div'>, TimerSeparatorBaseProps {
7
+ }
8
+ export declare const TimerSeparator: ForwardRefExoticComponent<TimerSeparatorProps & RefAttributes<HTMLDivElement>>;
@@ -0,0 +1,8 @@
1
+ import { HTMLProps, PolymorphicProps } from '../factory';
2
+ import { ForwardRefExoticComponent, RefAttributes } from 'react';
3
+
4
+ export interface TimerSeparatorBaseProps extends PolymorphicProps {
5
+ }
6
+ export interface TimerSeparatorProps extends HTMLProps<'div'>, TimerSeparatorBaseProps {
7
+ }
8
+ export declare const TimerSeparator: ForwardRefExoticComponent<TimerSeparatorProps & RefAttributes<HTMLDivElement>>;
@@ -0,0 +1,15 @@
1
+ 'use client';
2
+ import { jsx } from 'react/jsx-runtime';
3
+ import { mergeProps } from '@zag-js/react';
4
+ import { forwardRef } from 'react';
5
+ import { ark } from '../factory.js';
6
+ import { useTimerContext } from './use-timer-context.js';
7
+
8
+ const TimerSeparator = forwardRef((props, ref) => {
9
+ const timer = useTimerContext();
10
+ const mergedProps = mergeProps(timer.getSeparatorProps(), props);
11
+ return /* @__PURE__ */ jsx(ark.div, { ...mergedProps, ref });
12
+ });
13
+ TimerSeparator.displayName = "TimerSeparator";
14
+
15
+ export { TimerSeparator };
@@ -0,0 +1,19 @@
1
+ 'use strict';
2
+
3
+ Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });
4
+
5
+ const timerContext = require('./timer-context.cjs');
6
+ const timerActionTrigger = require('./timer-action-trigger.cjs');
7
+ const timerItem = require('./timer-item.cjs');
8
+ const timerSeparator = require('./timer-separator.cjs');
9
+ const timerRoot = require('./timer-root.cjs');
10
+ const timerRootProvider = require('./timer-root-provider.cjs');
11
+
12
+
13
+
14
+ exports.Context = timerContext.TimerContext;
15
+ exports.ActionTrigger = timerActionTrigger.TimerActionTrigger;
16
+ exports.Item = timerItem.TimerItem;
17
+ exports.Separator = timerSeparator.TimerSeparator;
18
+ exports.Root = timerRoot.TimerRoot;
19
+ exports.RootProvider = timerRootProvider.TimerRootProvider;
@@ -0,0 +1,6 @@
1
+ export { TimerContext as Context, type TimerContextProps as ContextProps, } from './timer-context';
2
+ export { TimerActionTrigger as ActionTrigger, type TimerActionTriggerBaseProps as ActionTriggerBaseProps, type TimerActionTriggerProps as ActionTriggerProps, } from './timer-action-trigger';
3
+ export { TimerItem as Item, type TimerItemProps as ItemProps, type TimerItemBaseProps as ItemBaseProps, } from './timer-item';
4
+ export { TimerSeparator as Separator, type TimerSeparatorProps as SeparatorProps, type TimerSeparatorBaseProps as SeparatorBaseProps, } from './timer-separator';
5
+ export { TimerRoot as Root, type TimerRootProps as RootProps, type TimerRootBaseProps as RootBaseProps, } from './timer-root';
6
+ export { TimerRootProvider as RootProvider, type TimerRootProviderProps as RootProviderBaseProps, type TimerRootProviderBaseProps as RootProviderProps, } from './timer-root-provider';
@@ -0,0 +1,6 @@
1
+ export { TimerContext as Context, type TimerContextProps as ContextProps, } from './timer-context';
2
+ export { TimerActionTrigger as ActionTrigger, type TimerActionTriggerBaseProps as ActionTriggerBaseProps, type TimerActionTriggerProps as ActionTriggerProps, } from './timer-action-trigger';
3
+ export { TimerItem as Item, type TimerItemProps as ItemProps, type TimerItemBaseProps as ItemBaseProps, } from './timer-item';
4
+ export { TimerSeparator as Separator, type TimerSeparatorProps as SeparatorProps, type TimerSeparatorBaseProps as SeparatorBaseProps, } from './timer-separator';
5
+ export { TimerRoot as Root, type TimerRootProps as RootProps, type TimerRootBaseProps as RootBaseProps, } from './timer-root';
6
+ export { TimerRootProvider as RootProvider, type TimerRootProviderProps as RootProviderBaseProps, type TimerRootProviderBaseProps as RootProviderProps, } from './timer-root-provider';
@@ -0,0 +1,6 @@
1
+ export { TimerContext as Context } from './timer-context.js';
2
+ export { TimerActionTrigger as ActionTrigger } from './timer-action-trigger.js';
3
+ export { TimerItem as Item } from './timer-item.js';
4
+ export { TimerSeparator as Separator } from './timer-separator.js';
5
+ export { TimerRoot as Root } from './timer-root.js';
6
+ export { TimerRootProvider as RootProvider } from './timer-root-provider.js';
@@ -0,0 +1,15 @@
1
+ 'use client';
2
+ 'use strict';
3
+
4
+ Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });
5
+
6
+ const createContext = require('../../utils/create-context.cjs');
7
+
8
+ const [TimerProvider, useTimerContext] = createContext.createContext({
9
+ name: "TimerContext",
10
+ hookName: "useTimerContext",
11
+ providerName: "<TimerProvider />"
12
+ });
13
+
14
+ exports.TimerProvider = TimerProvider;
15
+ exports.useTimerContext = useTimerContext;
@@ -0,0 +1,6 @@
1
+ import { UseTimerReturn } from './use-timer';
2
+ import { Provider } from 'react';
3
+
4
+ export interface UseTimerContext extends UseTimerReturn {
5
+ }
6
+ export declare const TimerProvider: Provider<UseTimerContext>, useTimerContext: () => UseTimerContext;
@@ -0,0 +1,6 @@
1
+ import { UseTimerReturn } from './use-timer';
2
+ import { Provider } from 'react';
3
+
4
+ export interface UseTimerContext extends UseTimerReturn {
5
+ }
6
+ export declare const TimerProvider: Provider<UseTimerContext>, useTimerContext: () => UseTimerContext;
@@ -0,0 +1,10 @@
1
+ 'use client';
2
+ import { createContext } from '../../utils/create-context.js';
3
+
4
+ const [TimerProvider, useTimerContext] = createContext({
5
+ name: "TimerContext",
6
+ hookName: "useTimerContext",
7
+ providerName: "<TimerProvider />"
8
+ });
9
+
10
+ export { TimerProvider, useTimerContext };
@@ -0,0 +1,47 @@
1
+ 'use client';
2
+ 'use strict';
3
+
4
+ Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });
5
+
6
+ const react$1 = require('@zag-js/react');
7
+ const timer = require('@zag-js/timer');
8
+ const react = require('react');
9
+ const useEnvironmentContext = require('../../providers/environment/use-environment-context.cjs');
10
+ const useEvent = require('../../utils/use-event.cjs');
11
+
12
+ function _interopNamespaceDefault(e) {
13
+ const n = Object.create(null, { [Symbol.toStringTag]: { value: 'Module' } });
14
+ if (e) {
15
+ for (const k in e) {
16
+ if (k !== 'default') {
17
+ const d = Object.getOwnPropertyDescriptor(e, k);
18
+ Object.defineProperty(n, k, d.get ? d : {
19
+ enumerable: true,
20
+ get: () => e[k]
21
+ });
22
+ }
23
+ }
24
+ }
25
+ n.default = e;
26
+ return Object.freeze(n);
27
+ }
28
+
29
+ const timer__namespace = /*#__PURE__*/_interopNamespaceDefault(timer);
30
+
31
+ const useTimer = (props) => {
32
+ const env = useEnvironmentContext.useEnvironmentContext();
33
+ const initialContext = {
34
+ id: react.useId(),
35
+ getRootNode: env.getRootNode,
36
+ ...props
37
+ };
38
+ const context = {
39
+ ...initialContext,
40
+ onComplete: useEvent.useEvent(props.onComplete),
41
+ onTick: useEvent.useEvent(props.onTick)
42
+ };
43
+ const [state, send] = react$1.useMachine(timer__namespace.machine(initialContext), { context });
44
+ return timer__namespace.connect(state, send, react$1.normalizeProps);
45
+ };
46
+
47
+ exports.useTimer = useTimer;
@@ -0,0 +1,9 @@
1
+ import { PropTypes } from '@zag-js/react';
2
+ import { Optional } from '../../types';
3
+
4
+ import * as timer from '@zag-js/timer';
5
+ export interface UseTimerProps extends Optional<Omit<timer.Context, 'dir' | 'getRootNode'>, 'id'> {
6
+ }
7
+ export interface UseTimerReturn extends timer.Api<PropTypes> {
8
+ }
9
+ export declare const useTimer: (props: UseTimerProps) => UseTimerReturn;
@@ -0,0 +1,9 @@
1
+ import { PropTypes } from '@zag-js/react';
2
+ import { Optional } from '../../types';
3
+
4
+ import * as timer from '@zag-js/timer';
5
+ export interface UseTimerProps extends Optional<Omit<timer.Context, 'dir' | 'getRootNode'>, 'id'> {
6
+ }
7
+ export interface UseTimerReturn extends timer.Api<PropTypes> {
8
+ }
9
+ export declare const useTimer: (props: UseTimerProps) => UseTimerReturn;
@@ -0,0 +1,24 @@
1
+ 'use client';
2
+ import { useMachine, normalizeProps } from '@zag-js/react';
3
+ import * as timer from '@zag-js/timer';
4
+ import { useId } from 'react';
5
+ import { useEnvironmentContext } from '../../providers/environment/use-environment-context.js';
6
+ import { useEvent } from '../../utils/use-event.js';
7
+
8
+ const useTimer = (props) => {
9
+ const env = useEnvironmentContext();
10
+ const initialContext = {
11
+ id: useId(),
12
+ getRootNode: env.getRootNode,
13
+ ...props
14
+ };
15
+ const context = {
16
+ ...initialContext,
17
+ onComplete: useEvent(props.onComplete),
18
+ onTick: useEvent(props.onTick)
19
+ };
20
+ const [state, send] = useMachine(timer.machine(initialContext), { context });
21
+ return timer.connect(state, send, normalizeProps);
22
+ };
23
+
24
+ export { useTimer };
package/dist/index.cjs CHANGED
@@ -491,6 +491,15 @@ const timePickerTrigger = require('./components/time-picker/time-picker-trigger.
491
491
  const useTimePicker = require('./components/time-picker/use-time-picker.cjs');
492
492
  const useTimePickerContext = require('./components/time-picker/use-time-picker-context.cjs');
493
493
  const timePicker = require('./components/time-picker/time-picker.cjs');
494
+ const timerContext = require('./components/timer/timer-context.cjs');
495
+ const timerActionTrigger = require('./components/timer/timer-action-trigger.cjs');
496
+ const timerItem = require('./components/timer/timer-item.cjs');
497
+ const timerSeparator = require('./components/timer/timer-separator.cjs');
498
+ const timerRoot = require('./components/timer/timer-root.cjs');
499
+ const timerRootProvider = require('./components/timer/timer-root-provider.cjs');
500
+ const useTimer = require('./components/timer/use-timer.cjs');
501
+ const useTimerContext = require('./components/timer/use-timer-context.cjs');
502
+ const timer = require('./components/timer/timer.cjs');
494
503
  const createToaster = require('./components/toast/create-toaster.cjs');
495
504
  const toastActionTrigger = require('./components/toast/toast-action-trigger.cjs');
496
505
  const toastCloseTrigger = require('./components/toast/toast-close-trigger.cjs');
@@ -1065,6 +1074,15 @@ exports.TimePickerTrigger = timePickerTrigger.TimePickerTrigger;
1065
1074
  exports.useTimePicker = useTimePicker.useTimePicker;
1066
1075
  exports.useTimePickerContext = useTimePickerContext.useTimePickerContext;
1067
1076
  exports.TimePicker = timePicker;
1077
+ exports.TimerContext = timerContext.TimerContext;
1078
+ exports.TimerActionTrigger = timerActionTrigger.TimerActionTrigger;
1079
+ exports.TimerItem = timerItem.TimerItem;
1080
+ exports.TimerSeparator = timerSeparator.TimerSeparator;
1081
+ exports.TimerRoot = timerRoot.TimerRoot;
1082
+ exports.TimerRootProvider = timerRootProvider.TimerRootProvider;
1083
+ exports.useTimer = useTimer.useTimer;
1084
+ exports.useTimerContext = useTimerContext.useTimerContext;
1085
+ exports.Timer = timer;
1068
1086
  exports.createToaster = createToaster.createToaster;
1069
1087
  exports.ToastActionTrigger = toastActionTrigger.ToastActionTrigger;
1070
1088
  exports.ToastCloseTrigger = toastCloseTrigger.ToastCloseTrigger;
package/dist/index.js CHANGED
@@ -521,6 +521,16 @@ export { useTimePicker } from './components/time-picker/use-time-picker.js';
521
521
  export { useTimePickerContext } from './components/time-picker/use-time-picker-context.js';
522
522
  import * as timePicker from './components/time-picker/time-picker.js';
523
523
  export { timePicker as TimePicker };
524
+ export { TimerContext } from './components/timer/timer-context.js';
525
+ export { TimerActionTrigger } from './components/timer/timer-action-trigger.js';
526
+ export { TimerItem } from './components/timer/timer-item.js';
527
+ export { TimerSeparator } from './components/timer/timer-separator.js';
528
+ export { TimerRoot } from './components/timer/timer-root.js';
529
+ export { TimerRootProvider } from './components/timer/timer-root-provider.js';
530
+ export { useTimer } from './components/timer/use-timer.js';
531
+ export { useTimerContext } from './components/timer/use-timer-context.js';
532
+ import * as timer from './components/timer/timer.js';
533
+ export { timer as Timer };
524
534
  export { createToaster } from './components/toast/create-toaster.js';
525
535
  export { ToastActionTrigger } from './components/toast/toast-action-trigger.js';
526
536
  export { ToastCloseTrigger } from './components/toast/toast-close-trigger.js';
@@ -0,0 +1,10 @@
1
+ 'use client';
2
+ 'use strict';
3
+
4
+ Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });
5
+
6
+ const react = require('react');
7
+
8
+ const useSafeLayoutEffect = typeof window !== "undefined" ? react.useLayoutEffect : react.useEffect;
9
+
10
+ exports.useSafeLayoutEffect = useSafeLayoutEffect;
@@ -0,0 +1,3 @@
1
+ import { useLayoutEffect } from 'react';
2
+
3
+ export declare const useSafeLayoutEffect: typeof useLayoutEffect;
@@ -0,0 +1,3 @@
1
+ import { useLayoutEffect } from 'react';
2
+
3
+ export declare const useSafeLayoutEffect: typeof useLayoutEffect;
@@ -0,0 +1,6 @@
1
+ 'use client';
2
+ import { useLayoutEffect, useEffect } from 'react';
3
+
4
+ const useSafeLayoutEffect = typeof window !== "undefined" ? useLayoutEffect : useEffect;
5
+
6
+ export { useSafeLayoutEffect };