@ark-ui/solid 3.11.0 → 3.12.1

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.
@@ -1,20 +1,13 @@
1
1
  import { mergeProps } from '@zag-js/solid';
2
- import { For } from 'solid-js';
2
+ import { Index } from 'solid-js';
3
3
  import { ark } from '../factory';
4
4
  import { useDatePickerContext } from './use-date-picker-context';
5
5
  export const DatePickerYearSelect = (props) => {
6
6
  const api = useDatePickerContext();
7
7
  const mergedProps = mergeProps(() => api().getYearSelectProps(), props);
8
8
  return (<ark.select {...mergedProps}>
9
- <For each={getYearsRange({ from: 1_000, to: 4_000 })}>
10
- {(year) => <option value={year}>{year}</option>}
11
- </For>
9
+ <Index each={api().getYears()}>
10
+ {(year) => <option value={year().value}>{year().label}</option>}
11
+ </Index>
12
12
  </ark.select>);
13
13
  };
14
- function getYearsRange(range) {
15
- const years = [];
16
- for (let year = range.from; year <= range.to; year += 1) {
17
- years.push(year);
18
- }
19
- return years;
20
- }
@@ -0,0 +1,11 @@
1
+ import { createEffect, onCleanup } from 'solid-js';
2
+ export const FrameContent = (props) => {
3
+ const { onMount, onUnmount, children } = props;
4
+ createEffect(() => {
5
+ onMount?.();
6
+ onCleanup(() => {
7
+ onUnmount?.();
8
+ });
9
+ });
10
+ return children;
11
+ };
@@ -0,0 +1,78 @@
1
+ import { Show, createEffect, createMemo, createSignal, onCleanup, splitProps, } from 'solid-js';
2
+ import { Portal } from 'solid-js/web';
3
+ import { EnvironmentProvider } from '../../providers';
4
+ import { composeRefs } from '../../utils/compose-refs';
5
+ import { FrameContent } from './frame-content';
6
+ const resetStyle = '<style>*,*::before,*::after { margin: 0; padding: 0; box-sizing: border-box; }</style>';
7
+ const initialSrcDoc = `<html><head>${resetStyle}</head><body><div class="frame-root"></div></body></html>`;
8
+ function getMountNode(frame) {
9
+ const doc = frame.contentWindow?.document;
10
+ if (!doc)
11
+ return null;
12
+ return doc.body.querySelector('.frame-root') || doc.body;
13
+ }
14
+ export const Frame = (props) => {
15
+ const [frameProps, localProps] = splitProps(props, [
16
+ 'children',
17
+ 'head',
18
+ 'onMount',
19
+ 'onUnmount',
20
+ 'srcdoc',
21
+ ]);
22
+ const srcdoc = createMemo(() => frameProps.srcdoc ?? initialSrcDoc);
23
+ const [frameRef, setFrameRef] = createSignal(null);
24
+ const [mountNode, setMountNode] = createSignal(null);
25
+ createEffect(() => {
26
+ const frame = frameRef();
27
+ if (!frame)
28
+ return;
29
+ const doc = frame.contentWindow?.document;
30
+ if (!doc)
31
+ return;
32
+ doc.open();
33
+ doc.write(srcdoc());
34
+ doc.close();
35
+ setMountNode(getMountNode(frame));
36
+ });
37
+ createEffect(() => {
38
+ const frame = frameRef();
39
+ if (!frame || !frame.contentDocument)
40
+ return;
41
+ const win = frame.contentWindow;
42
+ if (!win)
43
+ return;
44
+ const node = getMountNode(frame);
45
+ if (!node)
46
+ return;
47
+ const exec = () => {
48
+ const rootEl = frame.contentDocument?.documentElement;
49
+ if (!rootEl)
50
+ return;
51
+ frame.style.setProperty('--width', `${node.scrollWidth}px`);
52
+ frame.style.setProperty('--height', `${node.scrollHeight}px`);
53
+ };
54
+ const resizeObserver = new win.ResizeObserver(exec);
55
+ exec();
56
+ if (frame.contentDocument) {
57
+ resizeObserver.observe(node);
58
+ }
59
+ onCleanup(() => {
60
+ resizeObserver.disconnect();
61
+ });
62
+ });
63
+ return (<EnvironmentProvider value={() => frameRef()?.contentDocument ?? document}>
64
+ <iframe {...localProps} ref={composeRefs(setFrameRef, localProps.ref)}>
65
+ <Show when={mountNode()}>
66
+ {(node) => (<Portal mount={node()}>
67
+ <FrameContent onMount={frameProps.onMount} onUnmount={frameProps.onUnmount}>
68
+ {frameProps.children}
69
+ </FrameContent>
70
+ </Portal>)}
71
+ </Show>
72
+ <Show when={mountNode()}>
73
+ {/* biome-ignore lint/style/noNonNullAssertion: <explanation> */}
74
+ <Portal mount={frameRef().contentDocument.head}>{frameProps.head}</Portal>
75
+ </Show>
76
+ </iframe>
77
+ </EnvironmentProvider>);
78
+ };
@@ -0,0 +1 @@
1
+ export { Frame } from './frame';
@@ -1,42 +1,5 @@
1
+ import { highlightWord } from '@zag-js/highlight-word';
1
2
  import { createMemo } from 'solid-js';
2
- const escapeRegexp = (term) => term.replace(/[|\\{}()[\]^$+*?.-]/g, (char) => `\\${char}`);
3
- const buildRegex = (queryProp, flags) => {
4
- const query = queryProp.filter(Boolean).map((text) => escapeRegexp(text));
5
- return new RegExp(`(${query.join('|')})`, flags);
6
- };
7
- const getRegexFlags = (ignoreCase = true, matchAll = true) => `${ignoreCase ? 'i' : ''}${matchAll ? 'g' : ''}`;
8
- const normalizeSpan = (spans, len) => {
9
- const result = [];
10
- const append = (start, end, match) => {
11
- if (end - start > 0)
12
- result.push({ start, end, match });
13
- };
14
- if (spans.length === 0) {
15
- append(0, len, false);
16
- }
17
- else {
18
- let lastIndex = 0;
19
- for (const chunk of spans) {
20
- append(lastIndex, chunk.start, false);
21
- append(chunk.start, chunk.end, true);
22
- lastIndex = chunk.end;
23
- }
24
- append(lastIndex, len, false);
25
- }
26
- return result;
27
- };
28
- const highlightWords = (props) => {
29
- const flags = getRegexFlags(props.ignoreCase, props.matchAll);
30
- const regex = buildRegex(Array.isArray(props.query) ? props.query : [props.query], flags);
31
- const spans = [...props.text.matchAll(regex)].map((match) => ({
32
- start: match.index || 0,
33
- end: (match.index || 0) + match[0].length,
34
- }));
35
- return normalizeSpan(spans, props.text.length).map((chunk) => ({
36
- text: props.text.slice(chunk.start, chunk.end),
37
- match: !!chunk.match,
38
- }));
39
- };
40
3
  export const useHighlight = (props) => {
41
- return createMemo(() => highlightWords(props));
4
+ return createMemo(() => highlightWord(props));
42
5
  };
@@ -14,6 +14,7 @@ export * from './field';
14
14
  export * from './fieldset';
15
15
  export * from './file-upload';
16
16
  export * from './format';
17
+ export * from './frame';
17
18
  export * from './highlight';
18
19
  export * from './hover-card';
19
20
  export * from './menu';
@@ -31,13 +32,13 @@ export * from './select';
31
32
  export * from './signature-pad';
32
33
  export * from './slider';
33
34
  export * from './splitter';
35
+ export * from './steps';
34
36
  export * from './switch';
35
37
  export * from './tabs';
36
38
  export * from './tags-input';
37
39
  export * from './time-picker';
40
+ export * from './timer';
38
41
  export * from './toast';
39
42
  export * from './toggle-group';
40
43
  export * from './tooltip';
41
44
  export * from './tree-view';
42
- export * from './timer';
43
- export * from './steps';
@@ -1,9 +1,11 @@
1
- export { TimerContext, } from './timer-context';
2
1
  export { TimerActionTrigger, } from './timer-action-trigger';
3
- export { TimerItem, } from './timer-item';
4
- export { TimerSeparator, } from './timer-separator';
5
- export { TimerRoot, } from './timer-root';
2
+ export { TimerArea } from './timer-area';
3
+ export { TimerContext } from './timer-context';
4
+ export { TimerControl } from './timer-control';
5
+ export { TimerItem } from './timer-item';
6
+ export { TimerRoot } from './timer-root';
6
7
  export { TimerRootProvider, } from './timer-root-provider';
8
+ export { TimerSeparator, } from './timer-separator';
7
9
  export { useTimer } from './use-timer';
8
10
  export { useTimerContext } from './use-timer-context';
9
11
  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 TimerArea = (props) => {
5
+ const timer = useTimerContext();
6
+ const mergedProps = mergeProps(() => timer().getAreaProps(), props);
7
+ return <ark.div {...mergedProps}/>;
8
+ };
@@ -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 TimerControl = (props) => {
5
+ const timer = useTimerContext();
6
+ const mergedProps = mergeProps(() => timer().getControlProps(), props);
7
+ return <ark.div {...mergedProps}/>;
8
+ };
@@ -6,6 +6,7 @@ import { TimerProvider } from './use-timer-context';
6
6
  export const TimerRoot = (props) => {
7
7
  const [useTimerProps, localProps] = createSplitProps()(props, [
8
8
  'id',
9
+ 'ids',
9
10
  'autoStart',
10
11
  'interval',
11
12
  'countdown',
@@ -1,6 +1,8 @@
1
- export { TimerContext as Context, } from './timer-context';
2
1
  export { TimerActionTrigger as ActionTrigger, } from './timer-action-trigger';
2
+ export { TimerArea as Area, } from './timer-area';
3
+ export { TimerContext as Context, } from './timer-context';
4
+ export { TimerControl as Control, } from './timer-control';
3
5
  export { TimerItem as Item, } from './timer-item';
4
- export { TimerSeparator as Separator, } from './timer-separator';
5
6
  export { TimerRoot as Root, } from './timer-root';
6
7
  export { TimerRootProvider as RootProvider, } from './timer-root-provider';
8
+ export { TimerSeparator as Separator, } from './timer-separator';
@@ -0,0 +1,13 @@
1
+ const isRefFn = (ref) => typeof ref === 'function';
2
+ function setRef(ref, value) {
3
+ if (isRefFn(ref)) {
4
+ ref(value);
5
+ }
6
+ }
7
+ export function composeRefs(...refs) {
8
+ return (node) => {
9
+ for (const ref of refs) {
10
+ setRef(ref, node);
11
+ }
12
+ };
13
+ }
@@ -0,0 +1,8 @@
1
+ import { type JSX } from 'solid-js';
2
+ interface FrameContentProps {
3
+ onMount?(): void;
4
+ onUnmount?(): void;
5
+ children?: JSX.Element;
6
+ }
7
+ export declare const FrameContent: (props: FrameContentProps) => JSX.Element;
8
+ export {};
@@ -0,0 +1,13 @@
1
+ import { type JSX } from 'solid-js';
2
+ import type { Assign } from '../../types';
3
+ export interface FrameBaseProps {
4
+ /** Additional content to be inserted into the frame's <head> */
5
+ head?: JSX.Element;
6
+ /** Callback function to be executed when the frame is mounted */
7
+ onMount?: () => void;
8
+ /** Callback function to be executed when the frame is unmounted */
9
+ onUnmount?: () => void;
10
+ }
11
+ export interface FrameProps extends Assign<JSX.IframeHTMLAttributes<HTMLIFrameElement>, FrameBaseProps> {
12
+ }
13
+ export declare const Frame: (props: FrameProps) => JSX.Element;
@@ -0,0 +1,2 @@
1
+ export { Frame } from './frame';
2
+ export type { FrameProps, FrameBaseProps } from './frame';
@@ -1,31 +1,6 @@
1
+ import { type HighlightChunk, type HighlightWordProps } from '@zag-js/highlight-word';
1
2
  import type { Accessor } from 'solid-js';
2
- export interface RegexOptions {
3
- /**
4
- * Whether to ignore case while matching
5
- */
6
- ignoreCase?: boolean;
7
- /**
8
- * Whether to match multiple instances of the query
9
- */
10
- matchAll?: boolean;
11
- }
12
- export interface UseHighlightProps extends RegexOptions {
13
- /**
14
- * The text to highlight
15
- */
16
- text: string;
17
- /**
18
- * The query to highlight in the text
19
- */
20
- query: string | string[];
21
- }
22
- export interface HighlightChunk {
23
- text: string;
24
- match: boolean;
25
- }
26
- export interface HighlightSpan {
27
- start: number;
28
- end: number;
29
- match?: boolean;
3
+ export interface UseHighlightProps extends HighlightWordProps {
30
4
  }
31
5
  export declare const useHighlight: (props: UseHighlightProps) => Accessor<HighlightChunk[]>;
6
+ export type { HighlightChunk };
@@ -14,6 +14,7 @@ export * from './field';
14
14
  export * from './fieldset';
15
15
  export * from './file-upload';
16
16
  export * from './format';
17
+ export * from './frame';
17
18
  export * from './highlight';
18
19
  export * from './hover-card';
19
20
  export * from './menu';
@@ -31,13 +32,13 @@ export * from './select';
31
32
  export * from './signature-pad';
32
33
  export * from './slider';
33
34
  export * from './splitter';
35
+ export * from './steps';
34
36
  export * from './switch';
35
37
  export * from './tabs';
36
38
  export * from './tags-input';
37
39
  export * from './time-picker';
40
+ export * from './timer';
38
41
  export * from './toast';
39
42
  export * from './toggle-group';
40
43
  export * from './tooltip';
41
44
  export * from './tree-view';
42
- export * from './timer';
43
- export * from './steps';
@@ -1,9 +1,11 @@
1
- export { TimerContext, type TimerContextProps, } from './timer-context';
2
1
  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';
2
+ export { TimerArea, type TimerAreaBaseProps, type TimerAreaProps } from './timer-area';
3
+ export { TimerContext, type TimerContextProps } from './timer-context';
4
+ export { TimerControl, type TimerControlBaseProps, type TimerControlProps } from './timer-control';
5
+ export { TimerItem, type TimerItemBaseProps, type TimerItemProps } from './timer-item';
6
+ export { TimerRoot, type TimerRootBaseProps, type TimerRootProps } from './timer-root';
7
+ export { TimerRootProvider, type TimerRootProviderBaseProps, type TimerRootProviderProps, } from './timer-root-provider';
8
+ export { TimerSeparator, type TimerSeparatorBaseProps, type TimerSeparatorProps, } from './timer-separator';
7
9
  export { useTimer, type UseTimerProps, type UseTimerReturn } from './use-timer';
8
10
  export { useTimerContext, type UseTimerContext } from './use-timer-context';
9
11
  export * as Timer from './timer';
@@ -0,0 +1,6 @@
1
+ import { type HTMLProps, type PolymorphicProps } from '../factory';
2
+ export interface TimerAreaBaseProps extends PolymorphicProps<'div'> {
3
+ }
4
+ export interface TimerAreaProps extends HTMLProps<'div'>, TimerAreaBaseProps {
5
+ }
6
+ export declare const TimerArea: (props: TimerAreaProps) => import("solid-js").JSX.Element;
@@ -0,0 +1,6 @@
1
+ import { type HTMLProps, type PolymorphicProps } from '../factory';
2
+ export interface TimerControlBaseProps extends PolymorphicProps<'div'> {
3
+ }
4
+ export interface TimerControlProps extends HTMLProps<'div'>, TimerControlBaseProps {
5
+ }
6
+ export declare const TimerControl: (props: TimerControlProps) => import("solid-js").JSX.Element;
@@ -1,6 +1,8 @@
1
- export { TimerContext as Context, type TimerContextProps as ContextProps, } from './timer-context';
2
1
  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';
2
+ export { TimerArea as Area, type TimerAreaBaseProps as AreaBaseProps, type TimerAreaProps as AreaProps, } from './timer-area';
3
+ export { TimerContext as Context, type TimerContextProps as ContextProps, } from './timer-context';
4
+ export { TimerControl as Control, type TimerControlBaseProps as ControlBaseProps, type TimerControlProps as ControlProps, } from './timer-control';
5
+ export { TimerItem as Item, type TimerItemBaseProps as ItemBaseProps, type TimerItemProps as ItemProps, } from './timer-item';
6
+ export { TimerRoot as Root, type TimerRootBaseProps as RootBaseProps, type TimerRootProps as RootProps, } from './timer-root';
6
7
  export { TimerRootProvider as RootProvider, type TimerRootProviderProps as RootProviderBaseProps, type TimerRootProviderBaseProps as RootProviderProps, } from './timer-root-provider';
8
+ export { TimerSeparator as Separator, type TimerSeparatorBaseProps as SeparatorBaseProps, type TimerSeparatorProps as SeparatorProps, } from './timer-separator';
@@ -0,0 +1,3 @@
1
+ type PossibleRef<T> = T | ((el: T) => void) | undefined;
2
+ export declare function composeRefs<T>(...refs: PossibleRef<T>[]): (node: T) => void;
3
+ export {};
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@ark-ui/solid",
3
- "version": "3.11.0",
3
+ "version": "3.12.1",
4
4
  "description": "A collection of unstyled, accessible UI components for Solid, utilizing state machines for seamless interaction.",
5
5
  "keywords": [
6
6
  "accordion",
@@ -17,6 +17,7 @@
17
17
  "field",
18
18
  "fieldset",
19
19
  "file upload",
20
+ "frame",
20
21
  "hover card",
21
22
  "menu",
22
23
  "number input",
@@ -85,77 +86,78 @@
85
86
  "sideEffects": false,
86
87
  "dependencies": {
87
88
  "@internationalized/date": "3.5.5",
88
- "@zag-js/accordion": "0.66.1",
89
- "@zag-js/anatomy": "0.66.1",
90
- "@zag-js/avatar": "0.66.1",
91
- "@zag-js/carousel": "0.66.1",
92
- "@zag-js/checkbox": "0.66.1",
93
- "@zag-js/clipboard": "0.66.1",
94
- "@zag-js/collapsible": "0.66.1",
95
- "@zag-js/color-picker": "0.66.1",
96
- "@zag-js/combobox": "0.66.1",
97
- "@zag-js/date-picker": "0.66.1",
98
- "@zag-js/dialog": "0.66.1",
99
- "@zag-js/dom-query": "0.66.1",
100
- "@zag-js/editable": "0.66.1",
101
- "@zag-js/file-upload": "0.66.1",
102
- "@zag-js/hover-card": "0.66.1",
103
- "@zag-js/file-utils": "0.66.1",
104
- "@zag-js/i18n-utils": "0.66.1",
105
- "@zag-js/menu": "0.66.1",
106
- "@zag-js/number-input": "0.66.1",
107
- "@zag-js/pagination": "0.66.1",
108
- "@zag-js/pin-input": "0.66.1",
109
- "@zag-js/popover": "0.66.1",
110
- "@zag-js/presence": "0.66.1",
111
- "@zag-js/progress": "0.66.1",
112
- "@zag-js/qr-code": "0.66.1",
113
- "@zag-js/radio-group": "0.66.1",
114
- "@zag-js/rating-group": "0.66.1",
115
- "@zag-js/select": "0.66.1",
116
- "@zag-js/signature-pad": "0.66.1",
117
- "@zag-js/slider": "0.66.1",
118
- "@zag-js/solid": "0.66.1",
119
- "@zag-js/splitter": "0.66.1",
120
- "@zag-js/steps": "0.66.1",
121
- "@zag-js/switch": "0.66.1",
122
- "@zag-js/tabs": "0.66.1",
123
- "@zag-js/tags-input": "0.66.1",
124
- "@zag-js/timer": "0.66.1",
125
- "@zag-js/time-picker": "0.66.1",
126
- "@zag-js/toast": "0.66.1",
127
- "@zag-js/toggle-group": "0.66.1",
128
- "@zag-js/tooltip": "0.66.1",
129
- "@zag-js/tree-view": "0.66.1",
130
- "@zag-js/types": "0.66.1"
89
+ "@zag-js/accordion": "0.68.1",
90
+ "@zag-js/anatomy": "0.68.1",
91
+ "@zag-js/avatar": "0.68.1",
92
+ "@zag-js/carousel": "0.68.1",
93
+ "@zag-js/checkbox": "0.68.1",
94
+ "@zag-js/clipboard": "0.68.1",
95
+ "@zag-js/collapsible": "0.68.1",
96
+ "@zag-js/color-picker": "0.68.1",
97
+ "@zag-js/combobox": "0.68.1",
98
+ "@zag-js/date-picker": "0.68.1",
99
+ "@zag-js/dialog": "0.68.1",
100
+ "@zag-js/dom-query": "0.68.1",
101
+ "@zag-js/editable": "0.68.1",
102
+ "@zag-js/file-upload": "0.68.1",
103
+ "@zag-js/highlight-word": "0.68.1",
104
+ "@zag-js/hover-card": "0.68.1",
105
+ "@zag-js/file-utils": "0.68.1",
106
+ "@zag-js/i18n-utils": "0.68.1",
107
+ "@zag-js/menu": "0.68.1",
108
+ "@zag-js/number-input": "0.68.1",
109
+ "@zag-js/pagination": "0.68.1",
110
+ "@zag-js/pin-input": "0.68.1",
111
+ "@zag-js/popover": "0.68.1",
112
+ "@zag-js/presence": "0.68.1",
113
+ "@zag-js/progress": "0.68.1",
114
+ "@zag-js/qr-code": "0.68.1",
115
+ "@zag-js/radio-group": "0.68.1",
116
+ "@zag-js/rating-group": "0.68.1",
117
+ "@zag-js/select": "0.68.1",
118
+ "@zag-js/signature-pad": "0.68.1",
119
+ "@zag-js/slider": "0.68.1",
120
+ "@zag-js/solid": "0.68.1",
121
+ "@zag-js/splitter": "0.68.1",
122
+ "@zag-js/steps": "0.68.1",
123
+ "@zag-js/switch": "0.68.1",
124
+ "@zag-js/tabs": "0.68.1",
125
+ "@zag-js/tags-input": "0.68.1",
126
+ "@zag-js/timer": "0.68.1",
127
+ "@zag-js/time-picker": "0.68.1",
128
+ "@zag-js/toast": "0.68.1",
129
+ "@zag-js/toggle-group": "0.68.1",
130
+ "@zag-js/tooltip": "0.68.1",
131
+ "@zag-js/tree-view": "0.68.1",
132
+ "@zag-js/types": "0.68.1"
131
133
  },
132
134
  "devDependencies": {
133
- "@biomejs/biome": "1.8.3",
135
+ "@biomejs/biome": "1.9.1",
134
136
  "@release-it/keep-a-changelog": "5.0.0",
135
137
  "@solidjs/testing-library": "0.8.9",
136
- "@storybook/addon-a11y": "8.2.9",
137
- "@storybook/docs-tools": "8.2.9",
138
- "@storybook/addon-essentials": "8.2.9",
138
+ "@storybook/addon-a11y": "8.3.0",
139
+ "@storybook/docs-tools": "8.3.0",
140
+ "@storybook/addon-essentials": "8.3.0",
139
141
  "@testing-library/dom": "10.4.0",
140
142
  "@testing-library/jest-dom": "6.5.0",
141
143
  "@testing-library/user-event": "14.5.2",
142
144
  "@types/jsdom": "21.1.7",
143
- "@zag-js/stringify-state": "0.66.1",
145
+ "@zag-js/stringify-state": "0.68.1",
144
146
  "globby": "14.0.2",
145
147
  "jsdom": "25.0.0",
146
- "lucide-solid": "0.439.0",
148
+ "lucide-solid": "0.441.0",
147
149
  "release-it": "17.6.0",
148
150
  "resize-observer-polyfill": "1.5.1",
149
- "rollup": "4.21.2",
151
+ "rollup": "4.21.3",
150
152
  "rollup-preset-solid": "2.0.1",
151
153
  "solid-js": "1.8.22",
152
- "storybook": "8.2.9",
154
+ "storybook": "8.3.0",
153
155
  "storybook-solidjs": "1.0.0-beta.2",
154
156
  "storybook-solidjs-vite": "1.0.0-beta.2",
155
- "typescript": "5.5.4",
156
- "vite": "5.4.3",
157
+ "typescript": "5.6.2",
158
+ "vite": "5.4.6",
157
159
  "vite-plugin-solid": "2.10.2",
158
- "vitest": "2.0.5"
160
+ "vitest": "2.1.1"
159
161
  },
160
162
  "peerDependencies": {
161
163
  "solid-js": ">=1.6.0"