@ark-ui/react 3.7.0 → 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 (62) hide show
  1. package/README.md +1 -0
  2. package/dist/components/index.cjs +18 -0
  3. package/dist/components/index.d.cts +1 -0
  4. package/dist/components/index.d.ts +1 -0
  5. package/dist/components/index.js +10 -0
  6. package/dist/components/steps/index.cjs +6 -2
  7. package/dist/components/steps/index.d.cts +3 -1
  8. package/dist/components/steps/index.d.ts +3 -1
  9. package/dist/components/steps/index.js +3 -1
  10. package/dist/components/steps/steps-item-context.cjs +13 -0
  11. package/dist/components/steps/steps-item-context.d.cts +10 -0
  12. package/dist/components/steps/steps-item-context.d.ts +10 -0
  13. package/dist/components/steps/steps-item-context.js +9 -0
  14. package/dist/components/steps/steps-item.cjs +3 -1
  15. package/dist/components/steps/steps-item.js +3 -1
  16. package/dist/components/steps/use-steps-item-context.cjs +15 -0
  17. package/dist/components/steps/use-steps-item-context.d.cts +3 -4
  18. package/dist/components/steps/use-steps-item-context.d.ts +3 -4
  19. package/dist/components/steps/use-steps-item-context.js +10 -0
  20. package/dist/components/timer/index.cjs +25 -0
  21. package/dist/components/timer/index.d.cts +9 -0
  22. package/dist/components/timer/index.d.ts +9 -0
  23. package/dist/components/timer/index.js +10 -0
  24. package/dist/components/timer/timer-action-trigger.cjs +21 -0
  25. package/dist/components/timer/timer-action-trigger.d.cts +9 -0
  26. package/dist/components/timer/timer-action-trigger.d.ts +9 -0
  27. package/dist/components/timer/timer-action-trigger.js +17 -0
  28. package/dist/components/timer/timer-context.cjs +10 -0
  29. package/dist/components/timer/timer-context.d.cts +7 -0
  30. package/dist/components/timer/timer-context.d.ts +7 -0
  31. package/dist/components/timer/timer-context.js +6 -0
  32. package/dist/components/timer/timer-item.cjs +21 -0
  33. package/dist/components/timer/timer-item.d.cts +9 -0
  34. package/dist/components/timer/timer-item.d.ts +9 -0
  35. package/dist/components/timer/timer-item.js +17 -0
  36. package/dist/components/timer/timer-root-provider.cjs +22 -0
  37. package/dist/components/timer/timer-root-provider.d.cts +13 -0
  38. package/dist/components/timer/timer-root-provider.d.ts +13 -0
  39. package/dist/components/timer/timer-root-provider.js +18 -0
  40. package/dist/components/timer/timer-root.cjs +31 -0
  41. package/dist/components/timer/timer-root.d.cts +9 -0
  42. package/dist/components/timer/timer-root.d.ts +9 -0
  43. package/dist/components/timer/timer-root.js +27 -0
  44. package/dist/components/timer/timer-separator.cjs +19 -0
  45. package/dist/components/timer/timer-separator.d.cts +8 -0
  46. package/dist/components/timer/timer-separator.d.ts +8 -0
  47. package/dist/components/timer/timer-separator.js +15 -0
  48. package/dist/components/timer/timer.cjs +19 -0
  49. package/dist/components/timer/timer.d.cts +6 -0
  50. package/dist/components/timer/timer.d.ts +6 -0
  51. package/dist/components/timer/timer.js +6 -0
  52. package/dist/components/timer/use-timer-context.cjs +15 -0
  53. package/dist/components/timer/use-timer-context.d.cts +6 -0
  54. package/dist/components/timer/use-timer-context.d.ts +6 -0
  55. package/dist/components/timer/use-timer-context.js +10 -0
  56. package/dist/components/timer/use-timer.cjs +47 -0
  57. package/dist/components/timer/use-timer.d.cts +9 -0
  58. package/dist/components/timer/use-timer.d.ts +9 -0
  59. package/dist/components/timer/use-timer.js +24 -0
  60. package/dist/index.cjs +18 -0
  61. package/dist/index.js +10 -0
  62. package/package.json +21 -8
package/README.md CHANGED
@@ -54,6 +54,7 @@ Ark UI is available for the following JavaScript frameworks:
54
54
  - [Tabs](https://ark-ui.com/react/docs/components/tabs)
55
55
  - [Tags Input](https://ark-ui.com/react/docs/components/tags-input)
56
56
  - [Time Picker](https://ark-ui.com/react/docs/components/time-picker)
57
+ - [Timer](https://ark-ui.com/react/docs/components/timer)
57
58
  - [Toast](https://ark-ui.com/react/docs/components/toast)
58
59
  - [Toggle Group](https://ark-ui.com/react/docs/components/toggle-group)
59
60
  - [Tooltip](https://ark-ui.com/react/docs/components/tooltip)
@@ -491,6 +491,15 @@ const timePickerTrigger = require('./time-picker/time-picker-trigger.cjs');
491
491
  const useTimePicker = require('./time-picker/use-time-picker.cjs');
492
492
  const useTimePickerContext = require('./time-picker/use-time-picker-context.cjs');
493
493
  const timePicker = require('./time-picker/time-picker.cjs');
494
+ const timerContext = require('./timer/timer-context.cjs');
495
+ const timerActionTrigger = require('./timer/timer-action-trigger.cjs');
496
+ const timerItem = require('./timer/timer-item.cjs');
497
+ const timerSeparator = require('./timer/timer-separator.cjs');
498
+ const timerRoot = require('./timer/timer-root.cjs');
499
+ const timerRootProvider = require('./timer/timer-root-provider.cjs');
500
+ const useTimer = require('./timer/use-timer.cjs');
501
+ const useTimerContext = require('./timer/use-timer-context.cjs');
502
+ const timer = require('./timer/timer.cjs');
494
503
  const createToaster = require('./toast/create-toaster.cjs');
495
504
  const toastActionTrigger = require('./toast/toast-action-trigger.cjs');
496
505
  const toastCloseTrigger = require('./toast/toast-close-trigger.cjs');
@@ -1061,6 +1070,15 @@ exports.TimePickerTrigger = timePickerTrigger.TimePickerTrigger;
1061
1070
  exports.useTimePicker = useTimePicker.useTimePicker;
1062
1071
  exports.useTimePickerContext = useTimePickerContext.useTimePickerContext;
1063
1072
  exports.TimePicker = timePicker;
1073
+ exports.TimerContext = timerContext.TimerContext;
1074
+ exports.TimerActionTrigger = timerActionTrigger.TimerActionTrigger;
1075
+ exports.TimerItem = timerItem.TimerItem;
1076
+ exports.TimerSeparator = timerSeparator.TimerSeparator;
1077
+ exports.TimerRoot = timerRoot.TimerRoot;
1078
+ exports.TimerRootProvider = timerRootProvider.TimerRootProvider;
1079
+ exports.useTimer = useTimer.useTimer;
1080
+ exports.useTimerContext = useTimerContext.useTimerContext;
1081
+ exports.Timer = timer;
1064
1082
  exports.createToaster = createToaster.createToaster;
1065
1083
  exports.ToastActionTrigger = toastActionTrigger.ToastActionTrigger;
1066
1084
  exports.ToastCloseTrigger = toastCloseTrigger.ToastCloseTrigger;
@@ -36,6 +36,7 @@ export * from './switch';
36
36
  export * from './tabs';
37
37
  export * from './tags-input';
38
38
  export * from './time-picker';
39
+ export * from './timer';
39
40
  export * from './toast';
40
41
  export * from './toggle-group';
41
42
  export * from './tooltip';
@@ -36,6 +36,7 @@ export * from './switch';
36
36
  export * from './tabs';
37
37
  export * from './tags-input';
38
38
  export * from './time-picker';
39
+ export * from './timer';
39
40
  export * from './toast';
40
41
  export * from './toggle-group';
41
42
  export * from './tooltip';
@@ -521,6 +521,16 @@ export { useTimePicker } from './time-picker/use-time-picker.js';
521
521
  export { useTimePickerContext } from './time-picker/use-time-picker-context.js';
522
522
  import * as timePicker from './time-picker/time-picker.js';
523
523
  export { timePicker as TimePicker };
524
+ export { TimerContext } from './timer/timer-context.js';
525
+ export { TimerActionTrigger } from './timer/timer-action-trigger.js';
526
+ export { TimerItem } from './timer/timer-item.js';
527
+ export { TimerSeparator } from './timer/timer-separator.js';
528
+ export { TimerRoot } from './timer/timer-root.js';
529
+ export { TimerRootProvider } from './timer/timer-root-provider.js';
530
+ export { useTimer } from './timer/use-timer.js';
531
+ export { useTimerContext } from './timer/use-timer-context.js';
532
+ import * as timer from './timer/timer.js';
533
+ export { timer as Timer };
524
534
  export { createToaster } from './toast/create-toaster.js';
525
535
  export { ToastActionTrigger } from './toast/toast-action-trigger.js';
526
536
  export { ToastCloseTrigger } from './toast/toast-close-trigger.js';
@@ -2,10 +2,11 @@
2
2
 
3
3
  Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });
4
4
 
5
- const stepsContent = require('./steps-content.cjs');
6
5
  const stepsCompletedContent = require('./steps-completed-content.cjs');
6
+ const stepsContent = require('./steps-content.cjs');
7
7
  const stepsIndicator = require('./steps-indicator.cjs');
8
8
  const stepsItem = require('./steps-item.cjs');
9
+ const stepsItemContext = require('./steps-item-context.cjs');
9
10
  const stepsList = require('./steps-list.cjs');
10
11
  const stepsNextTrigger = require('./steps-next-trigger.cjs');
11
12
  const stepsPrevTrigger = require('./steps-prev-trigger.cjs');
@@ -16,14 +17,16 @@ const stepsSeparator = require('./steps-separator.cjs');
16
17
  const stepsTrigger = require('./steps-trigger.cjs');
17
18
  const useSteps = require('./use-steps.cjs');
18
19
  const useStepsContext = require('./use-steps-context.cjs');
20
+ const useStepsItemContext = require('./use-steps-item-context.cjs');
19
21
  const steps = require('./steps.cjs');
20
22
 
21
23
 
22
24
 
23
- exports.StepsContent = stepsContent.StepsContent;
24
25
  exports.StepsCompletedContent = stepsCompletedContent.StepsCompletedContent;
26
+ exports.StepsContent = stepsContent.StepsContent;
25
27
  exports.StepsIndicator = stepsIndicator.StepsIndicator;
26
28
  exports.StepsItem = stepsItem.StepsItem;
29
+ exports.StepsItemContext = stepsItemContext.StepsItemContext;
27
30
  exports.StepsList = stepsList.StepsList;
28
31
  exports.StepsNextTrigger = stepsNextTrigger.StepsNextTrigger;
29
32
  exports.StepsPrevTrigger = stepsPrevTrigger.StepsPrevTrigger;
@@ -34,4 +37,5 @@ exports.StepsSeparator = stepsSeparator.StepsSeparator;
34
37
  exports.StepsTrigger = stepsTrigger.StepsTrigger;
35
38
  exports.useSteps = useSteps.useSteps;
36
39
  exports.useStepsContext = useStepsContext.useStepsContext;
40
+ exports.useStepsItemContext = useStepsItemContext.useStepsItemContext;
37
41
  exports.Steps = steps;
@@ -1,8 +1,9 @@
1
1
  export type { StepChangeDetails } from '@zag-js/steps';
2
- export { StepsContent, type StepsContentBaseProps, type StepsContentProps } from './steps-content';
3
2
  export { StepsCompletedContent, type StepsCompletedContentBaseProps, type StepsCompletedContentProps, } from './steps-completed-content';
3
+ export { StepsContent, type StepsContentBaseProps, type StepsContentProps } from './steps-content';
4
4
  export { StepsIndicator, type StepsIndicatorBaseProps, type StepsIndicatorProps, } from './steps-indicator';
5
5
  export { StepsItem, type StepsItemBaseProps, type StepsItemProps } from './steps-item';
6
+ export { StepsItemContext, type StepsItemContextProps } from './steps-item-context';
6
7
  export { StepsList, type StepsListBaseProps, type StepsListProps } from './steps-list';
7
8
  export { StepsNextTrigger, type StepsNextTriggerBaseProps, type StepsNextTriggerProps, } from './steps-next-trigger';
8
9
  export { StepsPrevTrigger, type StepsPrevTriggerBaseProps, type StepsPrevTriggerProps, } from './steps-prev-trigger';
@@ -13,4 +14,5 @@ export { StepsSeparator, type StepsSeparatorBaseProps, type StepsSeparatorProps,
13
14
  export { StepsTrigger, type StepsTriggerBaseProps, type StepsTriggerProps } from './steps-trigger';
14
15
  export { useSteps, type UseStepsProps, type UseStepsReturn } from './use-steps';
15
16
  export { useStepsContext, type UseStepsContext } from './use-steps-context';
17
+ export { useStepsItemContext, type UseStepsItemContext } from './use-steps-item-context';
16
18
  export * as Steps from './steps';
@@ -1,8 +1,9 @@
1
1
  export type { StepChangeDetails } from '@zag-js/steps';
2
- export { StepsContent, type StepsContentBaseProps, type StepsContentProps } from './steps-content';
3
2
  export { StepsCompletedContent, type StepsCompletedContentBaseProps, type StepsCompletedContentProps, } from './steps-completed-content';
3
+ export { StepsContent, type StepsContentBaseProps, type StepsContentProps } from './steps-content';
4
4
  export { StepsIndicator, type StepsIndicatorBaseProps, type StepsIndicatorProps, } from './steps-indicator';
5
5
  export { StepsItem, type StepsItemBaseProps, type StepsItemProps } from './steps-item';
6
+ export { StepsItemContext, type StepsItemContextProps } from './steps-item-context';
6
7
  export { StepsList, type StepsListBaseProps, type StepsListProps } from './steps-list';
7
8
  export { StepsNextTrigger, type StepsNextTriggerBaseProps, type StepsNextTriggerProps, } from './steps-next-trigger';
8
9
  export { StepsPrevTrigger, type StepsPrevTriggerBaseProps, type StepsPrevTriggerProps, } from './steps-prev-trigger';
@@ -13,4 +14,5 @@ export { StepsSeparator, type StepsSeparatorBaseProps, type StepsSeparatorProps,
13
14
  export { StepsTrigger, type StepsTriggerBaseProps, type StepsTriggerProps } from './steps-trigger';
14
15
  export { useSteps, type UseStepsProps, type UseStepsReturn } from './use-steps';
15
16
  export { useStepsContext, type UseStepsContext } from './use-steps-context';
17
+ export { useStepsItemContext, type UseStepsItemContext } from './use-steps-item-context';
16
18
  export * as Steps from './steps';
@@ -1,7 +1,8 @@
1
- export { StepsContent } from './steps-content.js';
2
1
  export { StepsCompletedContent } from './steps-completed-content.js';
2
+ export { StepsContent } from './steps-content.js';
3
3
  export { StepsIndicator } from './steps-indicator.js';
4
4
  export { StepsItem } from './steps-item.js';
5
+ export { StepsItemContext } from './steps-item-context.js';
5
6
  export { StepsList } from './steps-list.js';
6
7
  export { StepsNextTrigger } from './steps-next-trigger.js';
7
8
  export { StepsPrevTrigger } from './steps-prev-trigger.js';
@@ -12,5 +13,6 @@ export { StepsSeparator } from './steps-separator.js';
12
13
  export { StepsTrigger } from './steps-trigger.js';
13
14
  export { useSteps } from './use-steps.js';
14
15
  export { useStepsContext } from './use-steps-context.js';
16
+ export { useStepsItemContext } from './use-steps-item-context.js';
15
17
  import * as steps from './steps.js';
16
18
  export { steps as Steps };
@@ -0,0 +1,13 @@
1
+ 'use client';
2
+ 'use strict';
3
+
4
+ Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });
5
+
6
+ const useStepsItemContext = require('./use-steps-item-context.cjs');
7
+
8
+ const StepsItemContext = (props) => {
9
+ return props.children(useStepsItemContext.useStepsItemContext());
10
+ };
11
+ StepsItemContext.displayName = "StepsItemContext";
12
+
13
+ exports.StepsItemContext = StepsItemContext;
@@ -0,0 +1,10 @@
1
+ import { ReactNode } from 'react';
2
+ import { UseStepsItemContext } from './use-steps-item-context';
3
+
4
+ export interface StepsItemContextProps {
5
+ children: (context: UseStepsItemContext) => ReactNode;
6
+ }
7
+ export declare const StepsItemContext: {
8
+ (props: StepsItemContextProps): ReactNode;
9
+ displayName: string;
10
+ };
@@ -0,0 +1,10 @@
1
+ import { ReactNode } from 'react';
2
+ import { UseStepsItemContext } from './use-steps-item-context';
3
+
4
+ export interface StepsItemContextProps {
5
+ children: (context: UseStepsItemContext) => ReactNode;
6
+ }
7
+ export declare const StepsItemContext: {
8
+ (props: StepsItemContextProps): ReactNode;
9
+ displayName: string;
10
+ };
@@ -0,0 +1,9 @@
1
+ 'use client';
2
+ import { useStepsItemContext } from './use-steps-item-context.js';
3
+
4
+ const StepsItemContext = (props) => {
5
+ return props.children(useStepsItemContext());
6
+ };
7
+ StepsItemContext.displayName = "StepsItemContext";
8
+
9
+ export { StepsItemContext };
@@ -9,13 +9,15 @@ const react = require('react');
9
9
  const createSplitProps = require('../../utils/create-split-props.cjs');
10
10
  const factory = require('../factory.cjs');
11
11
  const useStepsContext = require('./use-steps-context.cjs');
12
+ const useStepsItemContext = require('./use-steps-item-context.cjs');
12
13
  const useStepsItemPropsContext = require('./use-steps-item-props-context.cjs');
13
14
 
14
15
  const StepsItem = react.forwardRef((props, ref) => {
15
16
  const [itemProps, localProps] = createSplitProps.createSplitProps()(props, ["index"]);
16
17
  const steps = useStepsContext.useStepsContext();
17
18
  const mergedProps = react$1.mergeProps(steps.getItemProps(itemProps), localProps);
18
- return /* @__PURE__ */ jsxRuntime.jsx(useStepsItemPropsContext.StepsItemPropsProvider, { value: itemProps, children: /* @__PURE__ */ jsxRuntime.jsx(factory.ark.li, { ...mergedProps, ref }) });
19
+ const itemState = steps.getItemState(itemProps);
20
+ return /* @__PURE__ */ jsxRuntime.jsx(useStepsItemPropsContext.StepsItemPropsProvider, { value: itemProps, children: /* @__PURE__ */ jsxRuntime.jsx(useStepsItemContext.StepsItemProvider, { value: itemState, children: /* @__PURE__ */ jsxRuntime.jsx(factory.ark.li, { ...mergedProps, ref }) }) });
19
21
  });
20
22
  StepsItem.displayName = "StepsItem";
21
23
 
@@ -5,13 +5,15 @@ import { forwardRef } from 'react';
5
5
  import { createSplitProps } from '../../utils/create-split-props.js';
6
6
  import { ark } from '../factory.js';
7
7
  import { useStepsContext } from './use-steps-context.js';
8
+ import { StepsItemProvider } from './use-steps-item-context.js';
8
9
  import { StepsItemPropsProvider } from './use-steps-item-props-context.js';
9
10
 
10
11
  const StepsItem = forwardRef((props, ref) => {
11
12
  const [itemProps, localProps] = createSplitProps()(props, ["index"]);
12
13
  const steps = useStepsContext();
13
14
  const mergedProps = mergeProps(steps.getItemProps(itemProps), localProps);
14
- return /* @__PURE__ */ jsx(StepsItemPropsProvider, { value: itemProps, children: /* @__PURE__ */ jsx(ark.li, { ...mergedProps, ref }) });
15
+ const itemState = steps.getItemState(itemProps);
16
+ return /* @__PURE__ */ jsx(StepsItemPropsProvider, { value: itemProps, children: /* @__PURE__ */ jsx(StepsItemProvider, { value: itemState, children: /* @__PURE__ */ jsx(ark.li, { ...mergedProps, ref }) }) });
15
17
  });
16
18
  StepsItem.displayName = "StepsItem";
17
19
 
@@ -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 [StepsItemProvider, useStepsItemContext] = createContext.createContext({
9
+ name: "StepsItemContext",
10
+ hookName: "useStepsItemContext",
11
+ providerName: "<StepsItem />"
12
+ });
13
+
14
+ exports.StepsItemProvider = StepsItemProvider;
15
+ exports.useStepsItemContext = useStepsItemContext;
@@ -1,7 +1,6 @@
1
- import { ItemProps } from '@zag-js/steps';
1
+ import { ItemState } from '@zag-js/steps';
2
2
  import { Provider } from 'react';
3
3
 
4
- interface StepsItemContext extends ItemProps {
4
+ export interface UseStepsItemContext extends ItemState {
5
5
  }
6
- export declare const StepsItemProvider: Provider<StepsItemContext>, useStepsItemContext: () => StepsItemContext;
7
- export {};
6
+ export declare const StepsItemProvider: Provider<UseStepsItemContext>, useStepsItemContext: () => UseStepsItemContext;
@@ -1,7 +1,6 @@
1
- import { ItemProps } from '@zag-js/steps';
1
+ import { ItemState } from '@zag-js/steps';
2
2
  import { Provider } from 'react';
3
3
 
4
- interface StepsItemContext extends ItemProps {
4
+ export interface UseStepsItemContext extends ItemState {
5
5
  }
6
- export declare const StepsItemProvider: Provider<StepsItemContext>, useStepsItemContext: () => StepsItemContext;
7
- export {};
6
+ export declare const StepsItemProvider: Provider<UseStepsItemContext>, useStepsItemContext: () => UseStepsItemContext;
@@ -0,0 +1,10 @@
1
+ 'use client';
2
+ import { createContext } from '../../utils/create-context.js';
3
+
4
+ const [StepsItemProvider, useStepsItemContext] = createContext({
5
+ name: "StepsItemContext",
6
+ hookName: "useStepsItemContext",
7
+ providerName: "<StepsItem />"
8
+ });
9
+
10
+ export { StepsItemProvider, useStepsItemContext };
@@ -0,0 +1,25 @@
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
+ const useTimer = require('./use-timer.cjs');
12
+ const useTimerContext = require('./use-timer-context.cjs');
13
+ const timer = require('./timer.cjs');
14
+
15
+
16
+
17
+ exports.TimerContext = timerContext.TimerContext;
18
+ exports.TimerActionTrigger = timerActionTrigger.TimerActionTrigger;
19
+ exports.TimerItem = timerItem.TimerItem;
20
+ exports.TimerSeparator = timerSeparator.TimerSeparator;
21
+ exports.TimerRoot = timerRoot.TimerRoot;
22
+ exports.TimerRootProvider = timerRootProvider.TimerRootProvider;
23
+ exports.useTimer = useTimer.useTimer;
24
+ exports.useTimerContext = useTimerContext.useTimerContext;
25
+ exports.Timer = timer;
@@ -0,0 +1,9 @@
1
+ export { TimerContext, type TimerContextProps, } from './timer-context';
2
+ export { TimerActionTrigger, type TimerActionTriggerBaseProps, type TimerActionTriggerProps, } from './timer-action-trigger';
3
+ export { TimerItem, type TimerItemProps, type TimerItemBaseProps, } from './timer-item';
4
+ export { TimerSeparator, type TimerSeparatorProps, type TimerSeparatorBaseProps, } from './timer-separator';
5
+ export { TimerRoot, type TimerRootProps, type TimerRootBaseProps, } from './timer-root';
6
+ export { TimerRootProvider, type TimerRootProviderProps, type TimerRootProviderBaseProps, } from './timer-root-provider';
7
+ export { useTimer, type UseTimerProps, type UseTimerReturn } from './use-timer';
8
+ export { useTimerContext, type UseTimerContext } from './use-timer-context';
9
+ export * as Timer from './timer';
@@ -0,0 +1,9 @@
1
+ export { TimerContext, type TimerContextProps, } from './timer-context';
2
+ export { TimerActionTrigger, type TimerActionTriggerBaseProps, type TimerActionTriggerProps, } from './timer-action-trigger';
3
+ export { TimerItem, type TimerItemProps, type TimerItemBaseProps, } from './timer-item';
4
+ export { TimerSeparator, type TimerSeparatorProps, type TimerSeparatorBaseProps, } from './timer-separator';
5
+ export { TimerRoot, type TimerRootProps, type TimerRootBaseProps, } from './timer-root';
6
+ export { TimerRootProvider, type TimerRootProviderProps, type TimerRootProviderBaseProps, } from './timer-root-provider';
7
+ export { useTimer, type UseTimerProps, type UseTimerReturn } from './use-timer';
8
+ export { useTimerContext, type UseTimerContext } from './use-timer-context';
9
+ export * as Timer from './timer';
@@ -0,0 +1,10 @@
1
+ export { TimerContext } from './timer-context.js';
2
+ export { TimerActionTrigger } from './timer-action-trigger.js';
3
+ export { TimerItem } from './timer-item.js';
4
+ export { TimerSeparator } from './timer-separator.js';
5
+ export { TimerRoot } from './timer-root.js';
6
+ export { TimerRootProvider } from './timer-root-provider.js';
7
+ export { useTimer } from './use-timer.js';
8
+ export { useTimerContext } from './use-timer-context.js';
9
+ import * as timer from './timer.js';
10
+ export { timer as Timer };
@@ -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 factory = require('../factory.cjs');
10
+ const useTimerContext = require('./use-timer-context.cjs');
11
+
12
+ const TimerActionTrigger = react.forwardRef(
13
+ (props, ref) => {
14
+ const timer = useTimerContext.useTimerContext();
15
+ const mergedProps = react$1.mergeProps(timer.getActionTriggerProps(props), props);
16
+ return /* @__PURE__ */ jsxRuntime.jsx(factory.ark.button, { ...mergedProps, ref });
17
+ }
18
+ );
19
+ TimerActionTrigger.displayName = "TimerActionTrigger";
20
+
21
+ exports.TimerActionTrigger = TimerActionTrigger;
@@ -0,0 +1,9 @@
1
+ import { ActionTriggerProps } from '@zag-js/timer';
2
+ import { HTMLProps, PolymorphicProps } from '../factory';
3
+ import { ForwardRefExoticComponent, RefAttributes } from 'react';
4
+
5
+ export interface TimerActionTriggerBaseProps extends ActionTriggerProps, PolymorphicProps {
6
+ }
7
+ export interface TimerActionTriggerProps extends HTMLProps<'button'>, TimerActionTriggerBaseProps {
8
+ }
9
+ export declare const TimerActionTrigger: ForwardRefExoticComponent<TimerActionTriggerProps & RefAttributes<HTMLButtonElement>>;
@@ -0,0 +1,9 @@
1
+ import { ActionTriggerProps } from '@zag-js/timer';
2
+ import { HTMLProps, PolymorphicProps } from '../factory';
3
+ import { ForwardRefExoticComponent, RefAttributes } from 'react';
4
+
5
+ export interface TimerActionTriggerBaseProps extends ActionTriggerProps, PolymorphicProps {
6
+ }
7
+ export interface TimerActionTriggerProps extends HTMLProps<'button'>, TimerActionTriggerBaseProps {
8
+ }
9
+ export declare const TimerActionTrigger: ForwardRefExoticComponent<TimerActionTriggerProps & RefAttributes<HTMLButtonElement>>;
@@ -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 { ark } from '../factory.js';
6
+ import { useTimerContext } from './use-timer-context.js';
7
+
8
+ const TimerActionTrigger = forwardRef(
9
+ (props, ref) => {
10
+ const timer = useTimerContext();
11
+ const mergedProps = mergeProps(timer.getActionTriggerProps(props), props);
12
+ return /* @__PURE__ */ jsx(ark.button, { ...mergedProps, ref });
13
+ }
14
+ );
15
+ TimerActionTrigger.displayName = "TimerActionTrigger";
16
+
17
+ export { TimerActionTrigger };
@@ -0,0 +1,10 @@
1
+ 'use client';
2
+ 'use strict';
3
+
4
+ Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });
5
+
6
+ const useTimerContext = require('./use-timer-context.cjs');
7
+
8
+ const TimerContext = (props) => props.children(useTimerContext.useTimerContext());
9
+
10
+ exports.TimerContext = TimerContext;
@@ -0,0 +1,7 @@
1
+ import { ReactNode } from 'react';
2
+ import { UseTimerContext } from './use-timer-context';
3
+
4
+ export interface TimerContextProps {
5
+ children: (context: UseTimerContext) => ReactNode;
6
+ }
7
+ export declare const TimerContext: (props: TimerContextProps) => ReactNode;
@@ -0,0 +1,7 @@
1
+ import { ReactNode } from 'react';
2
+ import { UseTimerContext } from './use-timer-context';
3
+
4
+ export interface TimerContextProps {
5
+ children: (context: UseTimerContext) => ReactNode;
6
+ }
7
+ export declare const TimerContext: (props: TimerContextProps) => ReactNode;
@@ -0,0 +1,6 @@
1
+ 'use client';
2
+ import { useTimerContext } from './use-timer-context.js';
3
+
4
+ const TimerContext = (props) => props.children(useTimerContext());
5
+
6
+ export { TimerContext };
@@ -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';
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@ark-ui/react",
3
- "version": "3.7.0",
3
+ "version": "3.8.0",
4
4
  "description": "A collection of unstyled, accessible UI components for React, utilizing state machines for seamless interaction.",
5
5
  "keywords": [
6
6
  "accordion",
@@ -36,6 +36,7 @@
36
36
  "tabs",
37
37
  "tags input",
38
38
  "time picker",
39
+ "timer",
39
40
  "toast",
40
41
  "toggle group",
41
42
  "tooltip",
@@ -488,6 +489,17 @@
488
489
  "default": "./dist/components/tags-input/index.cjs"
489
490
  }
490
491
  },
492
+ "./timer": {
493
+ "source": "./src/components/timer/index.ts",
494
+ "import": {
495
+ "types": "./dist/components/timer/index.d.ts",
496
+ "default": "./dist/components/timer/index.js"
497
+ },
498
+ "require": {
499
+ "types": "./dist/components/timer/index.d.cts",
500
+ "default": "./dist/components/timer/index.cjs"
501
+ }
502
+ },
491
503
  "./time-picker": {
492
504
  "source": "./src/components/time-picker/index.ts",
493
505
  "import": {
@@ -621,6 +633,7 @@
621
633
  "@zag-js/tabs": "0.64.0",
622
634
  "@zag-js/tags-input": "0.64.0",
623
635
  "@zag-js/time-picker": "0.64.0",
636
+ "@zag-js/timer": "0.64.0",
624
637
  "@zag-js/toast": "0.64.0",
625
638
  "@zag-js/toggle-group": "0.64.0",
626
639
  "@zag-js/tooltip": "0.64.0",
@@ -630,10 +643,10 @@
630
643
  "devDependencies": {
631
644
  "@biomejs/biome": "1.8.3",
632
645
  "@release-it/keep-a-changelog": "5.0.0",
633
- "@storybook/addon-a11y": "8.2.8",
634
- "@storybook/addon-essentials": "8.2.8",
635
- "@storybook/react-vite": "8.2.8",
636
- "@storybook/react": "8.2.8",
646
+ "@storybook/addon-a11y": "8.2.9",
647
+ "@storybook/addon-essentials": "8.2.9",
648
+ "@storybook/react-vite": "8.2.9",
649
+ "@storybook/react": "8.2.9",
637
650
  "@testing-library/dom": "10.4.0",
638
651
  "@testing-library/jest-dom": "6.4.8",
639
652
  "@testing-library/react": "16.0.0",
@@ -644,18 +657,18 @@
644
657
  "@vitejs/plugin-react": "4.3.1",
645
658
  "globby": "14.0.2",
646
659
  "jsdom": "24.1.1",
647
- "lucide-react": "0.427.0",
660
+ "lucide-react": "0.428.0",
648
661
  "react": "18.3.1",
649
662
  "react-dom": "18.3.1",
650
663
  "react-frame-component": "5.2.7",
651
664
  "react-hook-form": "7.52.2",
652
665
  "release-it": "17.6.0",
653
666
  "resize-observer-polyfill": "1.5.1",
654
- "storybook": "8.2.8",
667
+ "storybook": "8.2.9",
655
668
  "typescript": "5.5.4",
656
669
  "vite": "5.4.0",
657
670
  "vite-plugin-dts": "3.9.1",
658
- "vitest": "2.0.4",
671
+ "vitest": "2.0.5",
659
672
  "vitest-axe": "1.0.0-pre.3"
660
673
  },
661
674
  "peerDependencies": {