@ark-ui/solid 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.
@@ -39,3 +39,4 @@ export * from './toast';
39
39
  export * from './toggle-group';
40
40
  export * from './tooltip';
41
41
  export * from './tree-view';
42
+ export * from './timer';
@@ -0,0 +1,9 @@
1
+ export { TimerContext, } from './timer-context';
2
+ export { TimerActionTrigger, } from './timer-action-trigger';
3
+ export { TimerItem, } from './timer-item';
4
+ export { TimerSeparator, } from './timer-separator';
5
+ export { TimerRoot, } from './timer-root';
6
+ export { TimerRootProvider, } from './timer-root-provider';
7
+ export { useTimer } from './use-timer';
8
+ export { useTimerContext } from './use-timer-context';
9
+ export * as Timer from './timer';
@@ -0,0 +1,8 @@
1
+ import { mergeProps } from '@zag-js/solid';
2
+ import { ark } from '../factory';
3
+ import { useTimerContext } from './use-timer-context';
4
+ export const TimerActionTrigger = (props) => {
5
+ const timer = useTimerContext();
6
+ const mergedProps = mergeProps(() => timer().getActionTriggerProps(props), props);
7
+ return <ark.button {...mergedProps}/>;
8
+ };
@@ -0,0 +1,2 @@
1
+ import { useTimerContext } from './use-timer-context';
2
+ export const TimerContext = (props) => props.children(useTimerContext());
@@ -0,0 +1,10 @@
1
+ import { mergeProps } from '@zag-js/solid';
2
+ import { createSplitProps } from '../../utils/create-split-props';
3
+ import { ark } from '../factory';
4
+ import { useTimerContext } from './use-timer-context';
5
+ export const TimerItem = (props) => {
6
+ const [itemProps, localProps] = createSplitProps()(props, ['type']);
7
+ const timer = useTimerContext();
8
+ const mergedProps = mergeProps(() => timer().getItemProps(itemProps), localProps);
9
+ return <ark.div {...mergedProps}>{timer().formattedTime[itemProps.type]}</ark.div>;
10
+ };
@@ -0,0 +1,11 @@
1
+ import { mergeProps } from '@zag-js/solid';
2
+ import { createSplitProps } from '../../utils/create-split-props';
3
+ import { ark } from '../factory';
4
+ import { TimerProvider } from './use-timer-context';
5
+ export const TimerRootProvider = (props) => {
6
+ const [{ value: timer }, localProps] = createSplitProps()(props, ['value']);
7
+ const mergedProps = mergeProps(() => timer().getRootProps(), localProps);
8
+ return (<TimerProvider value={timer}>
9
+ <ark.div {...mergedProps}/>
10
+ </TimerProvider>);
11
+ };
@@ -0,0 +1,22 @@
1
+ import { mergeProps } from '@zag-js/solid';
2
+ import { createSplitProps } from '../../utils/create-split-props';
3
+ import { ark } from '../factory';
4
+ import { useTimer } from './use-timer';
5
+ import { TimerProvider } from './use-timer-context';
6
+ export const TimerRoot = (props) => {
7
+ const [useTimerProps, localProps] = createSplitProps()(props, [
8
+ 'id',
9
+ 'autoStart',
10
+ 'interval',
11
+ 'countdown',
12
+ 'startMs',
13
+ 'targetMs',
14
+ 'onComplete',
15
+ 'onTick',
16
+ ]);
17
+ const timer = useTimer(useTimerProps);
18
+ const mergedProps = mergeProps(() => timer().getRootProps(), localProps);
19
+ return (<TimerProvider value={timer}>
20
+ <ark.div {...mergedProps}/>
21
+ </TimerProvider>);
22
+ };
@@ -0,0 +1,8 @@
1
+ import { mergeProps } from '@zag-js/solid';
2
+ import { ark } from '../factory';
3
+ import { useTimerContext } from './use-timer-context';
4
+ export const TimerSeparator = (props) => {
5
+ const timer = useTimerContext();
6
+ const mergedProps = mergeProps(() => timer().getSeparatorProps(), props);
7
+ return <ark.div {...mergedProps}/>;
8
+ };
@@ -0,0 +1,6 @@
1
+ export { TimerContext as Context, } from './timer-context';
2
+ export { TimerActionTrigger as ActionTrigger, } from './timer-action-trigger';
3
+ export { TimerItem as Item, } from './timer-item';
4
+ export { TimerSeparator as Separator, } from './timer-separator';
5
+ export { TimerRoot as Root, } from './timer-root';
6
+ export { TimerRootProvider as RootProvider, } from './timer-root-provider';
@@ -0,0 +1,5 @@
1
+ import { createContext } from '../../utils/create-context';
2
+ export const [TimerProvider, useTimerContext] = createContext({
3
+ hookName: 'useTimerContext',
4
+ providerName: '<TimerProvider />',
5
+ });
@@ -0,0 +1,15 @@
1
+ import { normalizeProps, useMachine } from '@zag-js/solid';
2
+ import * as timer from '@zag-js/timer';
3
+ import { createMemo, createUniqueId } from 'solid-js';
4
+ import { useEnvironmentContext } from '../../providers';
5
+ export const useTimer = (props) => {
6
+ const env = useEnvironmentContext();
7
+ const id = createUniqueId();
8
+ const context = createMemo(() => ({
9
+ id,
10
+ getRootNode: env().getRootNode,
11
+ ...props,
12
+ }));
13
+ const [state, send] = useMachine(timer.machine(context()), { context });
14
+ return createMemo(() => timer.connect(state, send, normalizeProps));
15
+ };
@@ -39,3 +39,4 @@ export * from './toast';
39
39
  export * from './toggle-group';
40
40
  export * from './tooltip';
41
41
  export * from './tree-view';
42
+ export * 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,7 @@
1
+ import type { ActionTriggerProps } from '@zag-js/timer';
2
+ import { type HTMLProps, type PolymorphicProps } from '../factory';
3
+ export interface TimerActionTriggerBaseProps extends ActionTriggerProps, PolymorphicProps<'button'> {
4
+ }
5
+ export interface TimerActionTriggerProps extends HTMLProps<'button'>, TimerActionTriggerBaseProps {
6
+ }
7
+ export declare const TimerActionTrigger: (props: TimerActionTriggerProps) => import("solid-js").JSX.Element;
@@ -0,0 +1,6 @@
1
+ import type { ReactNode } from 'react';
2
+ import { type UseTimerContext } from './use-timer-context';
3
+ export interface TimerContextProps {
4
+ children: (context: UseTimerContext) => ReactNode;
5
+ }
6
+ export declare const TimerContext: (props: TimerContextProps) => ReactNode;
@@ -0,0 +1,7 @@
1
+ import type { ItemProps } from '@zag-js/timer';
2
+ import { type HTMLProps, type PolymorphicProps } from '../factory';
3
+ export interface TimerItemBaseProps extends ItemProps, PolymorphicProps<'div'> {
4
+ }
5
+ export interface TimerItemProps extends HTMLProps<'div'>, TimerItemBaseProps {
6
+ }
7
+ export declare const TimerItem: (props: TimerItemProps) => import("solid-js").JSX.Element;
@@ -0,0 +1,11 @@
1
+ import { type HTMLProps, type PolymorphicProps } from '../factory';
2
+ import type { UseTimerReturn } from './use-timer';
3
+ interface RootProviderProps {
4
+ value: UseTimerReturn;
5
+ }
6
+ export interface TimerRootProviderBaseProps extends RootProviderProps, PolymorphicProps<'div'> {
7
+ }
8
+ export interface TimerRootProviderProps extends HTMLProps<'div'>, TimerRootProviderBaseProps {
9
+ }
10
+ export declare const TimerRootProvider: (props: TimerRootProviderProps) => import("solid-js").JSX.Element;
11
+ export {};
@@ -0,0 +1,7 @@
1
+ import { type HTMLProps, type PolymorphicProps } from '../factory';
2
+ import { type UseTimerProps } from './use-timer';
3
+ export interface TimerRootBaseProps extends UseTimerProps, PolymorphicProps<'div'> {
4
+ }
5
+ export interface TimerRootProps extends HTMLProps<'div'>, TimerRootBaseProps {
6
+ }
7
+ export declare const TimerRoot: (props: TimerRootProps) => import("solid-js").JSX.Element;
@@ -0,0 +1,6 @@
1
+ import { type HTMLProps, type PolymorphicProps } from '../factory';
2
+ export interface TimerSeparatorBaseProps extends PolymorphicProps<'div'> {
3
+ }
4
+ export interface TimerSeparatorProps extends HTMLProps<'div'>, TimerSeparatorBaseProps {
5
+ }
6
+ export declare const TimerSeparator: (props: TimerSeparatorProps) => import("solid-js").JSX.Element;
@@ -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,4 @@
1
+ import type { UseTimerReturn } from './use-timer';
2
+ export interface UseTimerContext extends UseTimerReturn {
3
+ }
4
+ export declare const TimerProvider: import("solid-js").ContextProviderComponent<UseTimerContext>, useTimerContext: () => UseTimerContext;
@@ -0,0 +1,9 @@
1
+ import { type PropTypes } from '@zag-js/solid';
2
+ import * as timer from '@zag-js/timer';
3
+ import { type Accessor } from 'solid-js';
4
+ import type { Optional } from '../../types';
5
+ export interface UseTimerProps extends Optional<Omit<timer.Context, 'dir' | 'getRootNode'>, 'id'> {
6
+ }
7
+ export interface UseTimerReturn extends Accessor<timer.Api<PropTypes>> {
8
+ }
9
+ export declare const useTimer: (props: UseTimerProps) => UseTimerReturn;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@ark-ui/solid",
3
- "version": "3.7.0",
3
+ "version": "3.8.0",
4
4
  "description": "A collection of unstyled, accessible UI components for Solid, utilizing state machines for seamless interaction.",
5
5
  "keywords": [
6
6
  "accordion",
@@ -121,6 +121,7 @@
121
121
  "@zag-js/switch": "0.64.0",
122
122
  "@zag-js/tabs": "0.64.0",
123
123
  "@zag-js/tags-input": "0.64.0",
124
+ "@zag-js/timer": "0.64.0",
124
125
  "@zag-js/time-picker": "0.64.0",
125
126
  "@zag-js/toast": "0.64.0",
126
127
  "@zag-js/toggle-group": "0.64.0",
@@ -132,28 +133,28 @@
132
133
  "@biomejs/biome": "1.8.3",
133
134
  "@release-it/keep-a-changelog": "5.0.0",
134
135
  "@solidjs/testing-library": "0.8.9",
135
- "@storybook/addon-a11y": "8.2.8",
136
- "@storybook/docs-tools": "8.2.8",
137
- "@storybook/addon-essentials": "8.2.8",
136
+ "@storybook/addon-a11y": "8.2.9",
137
+ "@storybook/docs-tools": "8.2.9",
138
+ "@storybook/addon-essentials": "8.2.9",
138
139
  "@testing-library/dom": "10.4.0",
139
140
  "@testing-library/jest-dom": "6.4.8",
140
141
  "@testing-library/user-event": "14.5.2",
141
142
  "@types/jsdom": "21.1.7",
142
143
  "globby": "14.0.2",
143
144
  "jsdom": "24.1.1",
144
- "lucide-solid": "0.427.0",
145
+ "lucide-solid": "0.428.0",
145
146
  "release-it": "17.6.0",
146
147
  "resize-observer-polyfill": "1.5.1",
147
- "rollup": "4.20.0",
148
+ "rollup": "4.21.0",
148
149
  "rollup-preset-solid": "2.0.1",
149
- "solid-js": "1.8.20",
150
- "storybook": "8.2.8",
150
+ "solid-js": "1.8.21",
151
+ "storybook": "8.2.9",
151
152
  "storybook-solidjs": "1.0.0-beta.2",
152
153
  "storybook-solidjs-vite": "1.0.0-beta.2",
153
154
  "typescript": "5.5.4",
154
155
  "vite": "5.4.0",
155
156
  "vite-plugin-solid": "2.10.2",
156
- "vitest": "2.0.4"
157
+ "vitest": "2.0.5"
157
158
  },
158
159
  "peerDependencies": {
159
160
  "solid-js": ">=1.6.0"