@ark-ui/solid 3.0.0-3 → 3.0.0-5

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (98) hide show
  1. package/dist/cjs/index.js +289 -210
  2. package/dist/cjs/index.js.map +1 -1
  3. package/dist/esm/index.js +291 -212
  4. package/dist/esm/index.js.map +1 -1
  5. package/dist/source/components/accordion/accordion-item-content.jsx +7 -2
  6. package/dist/source/components/accordion/accordion-root.jsx +1 -0
  7. package/dist/source/components/accordion/use-accordion.js +12 -3
  8. package/dist/source/components/avatar/use-avatar.js +9 -3
  9. package/dist/source/components/carousel/carousel-root.jsx +1 -0
  10. package/dist/source/components/carousel/use-carousel.js +10 -3
  11. package/dist/source/components/checkbox/checkbox-root.jsx +1 -0
  12. package/dist/source/components/checkbox/use-checkbox.js +10 -3
  13. package/dist/source/components/clipboard/use-clipboard.js +8 -3
  14. package/dist/source/components/collapsible/collapsible-root.jsx +1 -0
  15. package/dist/source/components/collapsible/use-collapsible.js +8 -5
  16. package/dist/source/components/color-picker/color-picker-root.jsx +2 -0
  17. package/dist/source/components/color-picker/use-color-picker.js +14 -8
  18. package/dist/source/components/combobox/combobox-root.jsx +4 -2
  19. package/dist/source/components/combobox/combobox-trigger.jsx +3 -1
  20. package/dist/source/components/combobox/use-combobox.js +11 -7
  21. package/dist/source/components/date-picker/date-picker-root.jsx +2 -0
  22. package/dist/source/components/date-picker/use-date-picker.js +17 -11
  23. package/dist/source/components/dialog/dialog-root.jsx +2 -0
  24. package/dist/source/components/dialog/use-dialog.js +8 -5
  25. package/dist/source/components/editable/editable-root.jsx +1 -0
  26. package/dist/source/components/editable/use-editable.js +10 -3
  27. package/dist/source/components/file-upload/use-file-upload.js +9 -3
  28. package/dist/source/components/hover-card/hover-card-root.jsx +1 -0
  29. package/dist/source/components/hover-card/use-hover-card.js +8 -5
  30. package/dist/source/components/menu/menu-root.jsx +2 -0
  31. package/dist/source/components/menu/use-menu.js +8 -5
  32. package/dist/source/components/number-input/number-input-root.jsx +1 -0
  33. package/dist/source/components/number-input/use-number-input.js +10 -3
  34. package/dist/source/components/pagination/pagination-root.jsx +1 -0
  35. package/dist/source/components/pagination/use-pagination.js +10 -3
  36. package/dist/source/components/pin-input/pin-input-root.jsx +1 -0
  37. package/dist/source/components/pin-input/use-pin-input.js +10 -3
  38. package/dist/source/components/popover/popover-root.jsx +3 -1
  39. package/dist/source/components/popover/use-popover.js +8 -5
  40. package/dist/source/components/progress/use-progress.js +9 -3
  41. package/dist/source/components/radio-group/radio-group-root.jsx +1 -0
  42. package/dist/source/components/radio-group/use-radio-group.js +10 -3
  43. package/dist/source/components/rating-group/rating-group-root.jsx +1 -0
  44. package/dist/source/components/rating-group/use-rating-group.js +10 -3
  45. package/dist/source/components/segment-group/segment-group-root.jsx +1 -0
  46. package/dist/source/components/segment-group/use-segment-group.js +12 -5
  47. package/dist/source/components/select/select-item.jsx +1 -1
  48. package/dist/source/components/select/select-root.jsx +3 -0
  49. package/dist/source/components/select/use-select.js +11 -7
  50. package/dist/source/components/slider/slider-root.jsx +1 -0
  51. package/dist/source/components/slider/use-slider.js +10 -3
  52. package/dist/source/components/splitter/splitter-root.jsx +1 -0
  53. package/dist/source/components/splitter/use-splitter.js +10 -3
  54. package/dist/source/components/switch/switch-root.jsx +1 -0
  55. package/dist/source/components/switch/use-switch.js +10 -3
  56. package/dist/source/components/tabs/tabs-root.jsx +2 -0
  57. package/dist/source/components/tabs/use-tabs.js +10 -3
  58. package/dist/source/components/tags-input/tags-input-root.jsx +1 -0
  59. package/dist/source/components/tags-input/use-tags-input.js +10 -3
  60. package/dist/source/components/toggle-group/toggle-group-root.jsx +1 -0
  61. package/dist/source/components/toggle-group/use-toggle-group.js +10 -3
  62. package/dist/source/components/tooltip/tooltip-root.jsx +2 -1
  63. package/dist/source/components/tooltip/use-tooltip.js +8 -5
  64. package/dist/source/components/tree-view/tree-view-root.jsx +3 -1
  65. package/dist/source/components/tree-view/use-tree-view.js +11 -3
  66. package/dist/source/providers/locale/locale-provider.jsx +5 -19
  67. package/dist/types/components/accordion/accordion-item.d.ts +1 -2
  68. package/dist/types/components/accordion/use-accordion.d.ts +5 -0
  69. package/dist/types/components/carousel/use-carousel.d.ts +5 -0
  70. package/dist/types/components/checkbox/use-checkbox.d.ts +5 -0
  71. package/dist/types/components/collapsible/use-collapsible.d.ts +5 -0
  72. package/dist/types/components/color-picker/use-color-picker.d.ts +10 -0
  73. package/dist/types/components/combobox/combobox-trigger.d.ts +3 -1
  74. package/dist/types/components/combobox/use-combobox.d.ts +10 -0
  75. package/dist/types/components/date-picker/use-date-picker.d.ts +14 -4
  76. package/dist/types/components/dialog/use-dialog.d.ts +5 -0
  77. package/dist/types/components/editable/use-editable.d.ts +5 -0
  78. package/dist/types/components/hover-card/use-hover-card.d.ts +5 -0
  79. package/dist/types/components/menu/use-menu.d.ts +5 -0
  80. package/dist/types/components/number-input/use-number-input.d.ts +5 -0
  81. package/dist/types/components/pagination/use-pagination.d.ts +5 -0
  82. package/dist/types/components/pin-input/use-pin-input.d.ts +5 -0
  83. package/dist/types/components/popover/use-popover.d.ts +5 -0
  84. package/dist/types/components/radio-group/use-radio-group.d.ts +5 -0
  85. package/dist/types/components/rating-group/use-rating-group.d.ts +5 -0
  86. package/dist/types/components/segment-group/use-segment-group.d.ts +8 -3
  87. package/dist/types/components/select/use-select.d.ts +10 -0
  88. package/dist/types/components/slider/use-slider.d.ts +5 -0
  89. package/dist/types/components/splitter/use-splitter.d.ts +5 -0
  90. package/dist/types/components/switch/use-switch.d.ts +5 -0
  91. package/dist/types/components/tabs/use-tabs.d.ts +5 -0
  92. package/dist/types/components/tags-input/use-tags-input.d.ts +5 -0
  93. package/dist/types/components/toggle-group/use-toggle-group.d.ts +5 -0
  94. package/dist/types/components/tooltip/use-tooltip.d.ts +5 -0
  95. package/dist/types/components/tree-view/use-tree-view.d.ts +10 -0
  96. package/dist/types/providers/locale/locale-provider.d.ts +3 -5
  97. package/package.json +46 -46
  98. /package/dist/source/providers/locale/{use-locale-context.jsx → use-locale-context.js} +0 -0
@@ -1,14 +1,19 @@
1
1
  import { mergeProps } from '@zag-js/solid';
2
2
  import { createMemo } from 'solid-js';
3
+ import { createSplitProps } from '../../utils/create-split-props';
3
4
  import { Collapsible } from '../collapsible';
4
5
  import { useAccordionContext } from './use-accordion-context';
5
6
  import { useAccordionItemPropsContext } from './use-accordion-item-props-context';
7
+ const splitVisibilityProps = createSplitProps();
6
8
  export const AccordionItemContent = (props) => {
7
9
  const accordion = useAccordionContext();
8
10
  const itemProps = useAccordionItemPropsContext();
9
11
  const itemContentProps = createMemo(() => {
10
- const ownProps = accordion().getItemContentProps(itemProps);
11
- ownProps.hidden = undefined;
12
+ const contentProps = accordion().getItemContentProps(itemProps);
13
+ const [, ownProps] = splitVisibilityProps(contentProps, [
14
+ 'hidden',
15
+ 'data-state',
16
+ ]);
12
17
  return ownProps;
13
18
  });
14
19
  const mergedProps = mergeProps(itemContentProps, props);
@@ -8,6 +8,7 @@ export const AccordionRoot = (props) => {
8
8
  const [renderStrategyProps, accordionProps] = splitRenderStrategyProps(props);
9
9
  const [useAccordionProps, localProps] = createSplitProps()(accordionProps, [
10
10
  'collapsible',
11
+ 'defaultValue',
11
12
  'disabled',
12
13
  'id',
13
14
  'ids',
@@ -1,11 +1,20 @@
1
1
  import * as accordion from '@zag-js/accordion';
2
2
  import { normalizeProps, useMachine } from '@zag-js/solid';
3
- import { createMemo, createUniqueId, mergeProps } from 'solid-js';
3
+ import { createMemo, createUniqueId } from 'solid-js';
4
4
  import { useEnvironmentContext, useLocaleContext } from '../../providers';
5
5
  export const useAccordion = (props) => {
6
+ const id = createUniqueId();
6
7
  const locale = useLocaleContext();
7
8
  const environment = useEnvironmentContext();
8
- const context = mergeProps({ id: createUniqueId(), dir: locale().dir, getRootNode: environment().getRootNode }, props);
9
- const [state, send] = useMachine(accordion.machine(context), { context });
9
+ const context = createMemo(() => ({
10
+ id,
11
+ dir: locale().dir,
12
+ value: props.defaultValue,
13
+ getRootNode: environment().getRootNode,
14
+ ...props,
15
+ }));
16
+ const [state, send] = useMachine(accordion.machine(context()), {
17
+ context,
18
+ });
10
19
  return createMemo(() => accordion.connect(state, send, normalizeProps));
11
20
  };
@@ -1,11 +1,17 @@
1
1
  import * as avatar from '@zag-js/avatar';
2
- import { mergeProps, normalizeProps, useMachine } from '@zag-js/solid';
2
+ import { normalizeProps, useMachine } from '@zag-js/solid';
3
3
  import { createMemo, createUniqueId } from 'solid-js';
4
4
  import { useEnvironmentContext, useLocaleContext } from '../../providers';
5
5
  export const useAvatar = (props) => {
6
6
  const locale = useLocaleContext();
7
7
  const environment = useEnvironmentContext();
8
- const context = mergeProps({ id: createUniqueId(), dir: locale().dir, getRootNode: environment().getRootNode }, props);
9
- const [state, send] = useMachine(avatar.machine(context), { context });
8
+ const id = createUniqueId();
9
+ const context = createMemo(() => ({
10
+ id,
11
+ dir: locale().dir,
12
+ getRootNode: environment().getRootNode,
13
+ ...props,
14
+ }));
15
+ const [state, send] = useMachine(avatar.machine(context()), { context });
10
16
  return createMemo(() => avatar.connect(state, send, normalizeProps));
11
17
  };
@@ -6,6 +6,7 @@ import { CarouselProvider } from './use-carousel-context';
6
6
  export const CarouselRoot = (props) => {
7
7
  const [useCarouselProps, localProps] = createSplitProps()(props, [
8
8
  'align',
9
+ 'defaultIndex',
9
10
  'id',
10
11
  'ids',
11
12
  'index',
@@ -1,11 +1,18 @@
1
1
  import * as carousel from '@zag-js/carousel';
2
- import { mergeProps, normalizeProps, useMachine } from '@zag-js/solid';
2
+ import { normalizeProps, useMachine } from '@zag-js/solid';
3
3
  import { createMemo, createUniqueId } from 'solid-js';
4
4
  import { useEnvironmentContext, useLocaleContext } from '../../providers';
5
5
  export const useCarousel = (props) => {
6
6
  const locale = useLocaleContext();
7
7
  const environment = useEnvironmentContext();
8
- const context = mergeProps({ id: createUniqueId(), dir: locale().dir, getRootNode: environment().getRootNode }, props);
9
- const [state, send] = useMachine(carousel.machine(context), { context });
8
+ const id = createUniqueId();
9
+ const context = createMemo(() => ({
10
+ id,
11
+ dir: locale().dir,
12
+ getRootNode: environment().getRootNode,
13
+ index: props.defaultIndex,
14
+ ...props,
15
+ }));
16
+ const [state, send] = useMachine(carousel.machine(context()), { context });
10
17
  return createMemo(() => carousel.connect(state, send, normalizeProps));
11
18
  };
@@ -6,6 +6,7 @@ import { CheckboxProvider } from './use-checkbox-context';
6
6
  export const CheckboxRoot = (props) => {
7
7
  const [useCheckboxProps, labelprops] = createSplitProps()(props, [
8
8
  'checked',
9
+ 'defaultChecked',
9
10
  'disabled',
10
11
  'form',
11
12
  'id',
@@ -1,11 +1,18 @@
1
1
  import * as checkbox from '@zag-js/checkbox';
2
- import { mergeProps, normalizeProps, useMachine } from '@zag-js/solid';
2
+ import { normalizeProps, useMachine } from '@zag-js/solid';
3
3
  import { createMemo, createUniqueId } from 'solid-js';
4
4
  import { useEnvironmentContext, useLocaleContext } from '../../providers';
5
5
  export const useCheckbox = (props) => {
6
6
  const locale = useLocaleContext();
7
7
  const environment = useEnvironmentContext();
8
- const context = mergeProps({ id: createUniqueId(), dir: locale().dir, getRootNode: environment().getRootNode }, props);
9
- const [state, send] = useMachine(checkbox.machine(context), { context });
8
+ const id = createUniqueId();
9
+ const context = createMemo(() => ({
10
+ id,
11
+ dir: locale().dir,
12
+ getRootNode: environment().getRootNode,
13
+ checked: props.defaultChecked,
14
+ ...props,
15
+ }));
16
+ const [state, send] = useMachine(checkbox.machine(context()), { context });
10
17
  return createMemo(() => checkbox.connect(state, send, normalizeProps));
11
18
  };
@@ -1,10 +1,15 @@
1
1
  import * as clipboard from '@zag-js/clipboard';
2
- import { mergeProps, normalizeProps, useMachine } from '@zag-js/solid';
2
+ import { normalizeProps, useMachine } from '@zag-js/solid';
3
3
  import { createMemo, createUniqueId } from 'solid-js';
4
4
  import { useEnvironmentContext } from '../../providers';
5
5
  export const useClipboard = (props) => {
6
6
  const environment = useEnvironmentContext();
7
- const context = mergeProps({ id: createUniqueId(), getRootNode: environment().getRootNode }, props);
8
- const [state, send] = useMachine(clipboard.machine(context), { context });
7
+ const id = createUniqueId();
8
+ const context = createMemo(() => ({
9
+ id,
10
+ getRootNode: environment().getRootNode,
11
+ ...props,
12
+ }));
13
+ const [state, send] = useMachine(clipboard.machine(context()), { context });
9
14
  return createMemo(() => clipboard.connect(state, send, normalizeProps));
10
15
  };
@@ -5,6 +5,7 @@ import { useCollapsible } from './use-collapsible';
5
5
  import { CollapsibleProvider } from './use-collapsible-context';
6
6
  export const CollapsibleRoot = (props) => {
7
7
  const [useCollapsibleProps, localProps] = createSplitProps()(props, [
8
+ 'defaultOpen',
8
9
  'disabled',
9
10
  'id',
10
11
  'ids',
@@ -1,5 +1,5 @@
1
1
  import * as collapsible from '@zag-js/collapsible';
2
- import { mergeProps, normalizeProps, useMachine } from '@zag-js/solid';
2
+ import { normalizeProps, useMachine } from '@zag-js/solid';
3
3
  import { createEffect, createMemo, createSignal, createUniqueId } from 'solid-js';
4
4
  import { useEnvironmentContext, useLocaleContext } from '../../providers';
5
5
  import { splitRenderStrategyProps } from '../../utils/render-strategy';
@@ -7,13 +7,16 @@ export const useCollapsible = (props) => {
7
7
  const locale = useLocaleContext();
8
8
  const environment = useEnvironmentContext();
9
9
  const [renderStrategyProps, collapsibleProps] = splitRenderStrategyProps(props);
10
- const context = mergeProps({
11
- id: createUniqueId(),
10
+ const id = createUniqueId();
11
+ const context = createMemo(() => ({
12
+ id,
12
13
  dir: locale().dir,
13
14
  getRootNode: environment().getRootNode,
15
+ open: props.defaultOpen,
14
16
  'open.controlled': props.open !== undefined,
15
- }, collapsibleProps);
16
- const [state, send] = useMachine(collapsible.machine(context), { context });
17
+ ...collapsibleProps,
18
+ }));
19
+ const [state, send] = useMachine(collapsible.machine(context()), { context });
17
20
  const [wasVisible, setWasVisible] = createSignal(false);
18
21
  createEffect(() => {
19
22
  const isPresent = api().visible;
@@ -8,6 +8,8 @@ export const ColorPickerRoot = (props) => {
8
8
  const [presenceProps, colorPickerProps] = splitPresenceProps(props);
9
9
  const [useColorPickerProps, localProps] = createSplitProps()(colorPickerProps, [
10
10
  'closeOnSelect',
11
+ 'defaultOpen',
12
+ 'defaultValue',
11
13
  'disabled',
12
14
  'format',
13
15
  'id',
@@ -1,18 +1,24 @@
1
1
  import * as colorPicker from '@zag-js/color-picker';
2
- import { mergeProps, normalizeProps, useMachine } from '@zag-js/solid';
3
- import { createMemo, createUniqueId, splitProps } from 'solid-js';
2
+ import { normalizeProps, useMachine } from '@zag-js/solid';
3
+ import { createMemo, createUniqueId } from 'solid-js';
4
4
  import { useEnvironmentContext, useLocaleContext } from '../../providers';
5
5
  export const useColorPicker = (props) => {
6
- const [local, rest] = splitProps(props, ['value']);
7
6
  const locale = useLocaleContext();
8
7
  const environment = useEnvironmentContext();
9
- const context = mergeProps(() => ({
10
- id: createUniqueId(),
8
+ const id = createUniqueId();
9
+ const context = createMemo(() => ({
10
+ id,
11
11
  dir: locale().dir,
12
12
  getRootNode: environment().getRootNode,
13
+ open: props.defaultOpen,
13
14
  'open.controlled': props.open !== undefined,
14
- value: local.value ? colorPicker.parse(local.value) : undefined,
15
- }), rest);
16
- const [state, send] = useMachine(colorPicker.machine(context), { context });
15
+ ...props,
16
+ value: props.value
17
+ ? colorPicker.parse(props.value)
18
+ : props.defaultValue
19
+ ? colorPicker.parse(props.defaultValue)
20
+ : undefined,
21
+ }));
22
+ const [state, send] = useMachine(colorPicker.machine(context()), { context });
17
23
  return createMemo(() => colorPicker.connect(state, send, normalizeProps));
18
24
  };
@@ -10,8 +10,11 @@ export const ComboboxRoot = (props) => {
10
10
  'allowCustomValue',
11
11
  'autoFocus',
12
12
  'closeOnSelect',
13
+ 'composite',
14
+ 'defaultOpen',
15
+ 'defaultValue',
13
16
  'disabled',
14
- 'dismissable',
17
+ 'disableLayer',
15
18
  'form',
16
19
  'getSelectionValue',
17
20
  'highlightedValue',
@@ -40,7 +43,6 @@ export const ComboboxRoot = (props) => {
40
43
  'openOnClick',
41
44
  'openOnKeyPress',
42
45
  'placeholder',
43
- 'popup',
44
46
  'positioning',
45
47
  'readOnly',
46
48
  'scrollToIndexFn',
@@ -1,8 +1,10 @@
1
1
  import { mergeProps } from '@zag-js/solid';
2
+ import { createSplitProps } from '../../utils/create-split-props';
2
3
  import { ark } from '../factory';
3
4
  import { useComboboxContext } from './use-combobox-context';
4
5
  export const ComboboxTrigger = (props) => {
6
+ const [triggerProps, localProps] = createSplitProps()(props, ['focusable']);
5
7
  const combobox = useComboboxContext();
6
- const mergedProps = mergeProps(() => combobox().triggerProps, props);
8
+ const mergedProps = mergeProps(() => combobox().getTriggerProps(triggerProps), localProps);
7
9
  return <ark.button {...mergedProps}/>;
8
10
  };
@@ -1,10 +1,10 @@
1
1
  import * as combobox from '@zag-js/combobox';
2
- import { mergeProps, normalizeProps, useMachine } from '@zag-js/solid';
2
+ import { normalizeProps, useMachine } from '@zag-js/solid';
3
3
  import { createMemo, createUniqueId } from 'solid-js';
4
4
  import { useEnvironmentContext, useLocaleContext } from '../../providers';
5
5
  import { createSplitProps } from '../../utils/create-split-props';
6
6
  export const useCombobox = (props) => {
7
- const [collectionOptions, rest] = createSplitProps()(props, [
7
+ const [collectionOptions, comboboxProps] = createSplitProps()(props, [
8
8
  'isItemDisabled',
9
9
  'itemToValue',
10
10
  'itemToString',
@@ -13,14 +13,18 @@ export const useCombobox = (props) => {
13
13
  const collection = () => combobox.collection(collectionOptions);
14
14
  const locale = useLocaleContext();
15
15
  const environment = useEnvironmentContext();
16
- const context = mergeProps({
17
- id: createUniqueId(),
16
+ const id = createUniqueId();
17
+ const context = createMemo(() => ({
18
+ id,
19
+ collection: collection(),
18
20
  dir: locale().dir,
19
21
  getRootNode: environment().getRootNode,
22
+ open: props.defaultOpen,
23
+ value: props.defaultValue,
20
24
  'open.controlled': props.open !== undefined,
21
- collection: collection(),
22
- }, rest);
23
- const [state, send] = useMachine(combobox.machine(context), {
25
+ ...comboboxProps,
26
+ }));
27
+ const [state, send] = useMachine(combobox.machine(context()), {
24
28
  context,
25
29
  });
26
30
  return createMemo(() => combobox.connect(state, send, normalizeProps));
@@ -8,6 +8,8 @@ export const DatePickerRoot = (props) => {
8
8
  const [presenceProps, datePickerProps] = splitPresenceProps(props);
9
9
  const [useDatePickerProps, localProps] = createSplitProps()(datePickerProps, [
10
10
  'closeOnSelect',
11
+ 'defaultOpen',
12
+ 'defaultValue',
11
13
  'disabled',
12
14
  'fixedWeeks',
13
15
  'focusedValue',
@@ -1,21 +1,27 @@
1
1
  import * as datePicker from '@zag-js/date-picker';
2
- import { mergeProps, normalizeProps, useMachine } from '@zag-js/solid';
3
- import { createMemo, createUniqueId, splitProps } from 'solid-js';
2
+ import { normalizeProps, useMachine } from '@zag-js/solid';
3
+ import { createMemo, createUniqueId } from 'solid-js';
4
4
  import { useEnvironmentContext, useLocaleContext } from '../../providers';
5
5
  export const useDatePicker = (props) => {
6
6
  const locale = useLocaleContext();
7
7
  const environment = useEnvironmentContext();
8
- const [localProps, restProps] = splitProps(props, ['value', 'focusedValue', 'min', 'max']);
9
- const context = mergeProps(() => ({
10
- id: createUniqueId(),
8
+ const id = createUniqueId();
9
+ const context = createMemo(() => ({
10
+ id,
11
11
  dir: locale().dir,
12
12
  getRootNode: environment().getRootNode,
13
13
  'open.controlled': props.open !== undefined,
14
- focusedValue: localProps.focusedValue ? datePicker.parse(localProps.focusedValue) : undefined,
15
- value: localProps.value ? datePicker.parse(localProps.value) : undefined,
16
- max: localProps.max ? datePicker.parse(localProps.max) : undefined,
17
- min: localProps.min ? datePicker.parse(localProps.min) : undefined,
18
- }), restProps);
19
- const [state, send] = useMachine(datePicker.machine(context), { context });
14
+ open: props.defaultOpen,
15
+ ...props,
16
+ focusedValue: props.focusedValue ? datePicker.parse(props.focusedValue) : undefined,
17
+ value: props.value
18
+ ? datePicker.parse(props.value)
19
+ : props.defaultValue
20
+ ? datePicker.parse(props.defaultValue)
21
+ : undefined,
22
+ max: props.max ? datePicker.parse(props.max) : undefined,
23
+ min: props.min ? datePicker.parse(props.min) : undefined,
24
+ }));
25
+ const [state, send] = useMachine(datePicker.machine(context()), { context });
20
26
  return createMemo(() => datePicker.connect(state, send, normalizeProps));
21
27
  };
@@ -11,6 +11,7 @@ export const DialogRoot = (props) => {
11
11
  'aria-label',
12
12
  'closeOnEscape',
13
13
  'closeOnInteractOutside',
14
+ 'defaultOpen',
14
15
  'finalFocusEl',
15
16
  'id',
16
17
  'ids',
@@ -22,6 +23,7 @@ export const DialogRoot = (props) => {
22
23
  'onOpenChange',
23
24
  'onPointerDownOutside',
24
25
  'open',
26
+ 'persistentElements',
25
27
  'preventScroll',
26
28
  'restoreFocus',
27
29
  'role',
@@ -1,16 +1,19 @@
1
1
  import * as dialog from '@zag-js/dialog';
2
- import { mergeProps, normalizeProps, useMachine } from '@zag-js/solid';
2
+ import { normalizeProps, useMachine } from '@zag-js/solid';
3
3
  import { createMemo, createUniqueId } from 'solid-js';
4
4
  import { useEnvironmentContext, useLocaleContext } from '../../providers';
5
5
  export const useDialog = (props) => {
6
6
  const locale = useLocaleContext();
7
7
  const environment = useEnvironmentContext();
8
- const context = mergeProps({
9
- id: createUniqueId(),
8
+ const id = createUniqueId();
9
+ const context = createMemo(() => ({
10
+ id,
10
11
  dir: locale().dir,
11
12
  getRootNode: environment().getRootNode,
13
+ open: props.defaultOpen,
12
14
  'open.controlled': props.open !== undefined,
13
- }, props);
14
- const [state, send] = useMachine(dialog.machine(context), { context });
15
+ ...props,
16
+ }));
17
+ const [state, send] = useMachine(dialog.machine(context()), { context });
15
18
  return createMemo(() => dialog.connect(state, send, normalizeProps));
16
19
  };
@@ -7,6 +7,7 @@ export const EditableRoot = (props) => {
7
7
  const [useEditableProps, localProps] = createSplitProps()(props, [
8
8
  'activationMode',
9
9
  'autoResize',
10
+ 'defaultValue',
10
11
  'disabled',
11
12
  'finalFocusEl',
12
13
  'form',
@@ -1,11 +1,18 @@
1
1
  import * as editable from '@zag-js/editable';
2
- import { mergeProps, normalizeProps, useMachine } from '@zag-js/solid';
2
+ import { normalizeProps, useMachine } from '@zag-js/solid';
3
3
  import { createMemo, createUniqueId } from 'solid-js';
4
4
  import { useEnvironmentContext, useLocaleContext } from '../../providers';
5
5
  export const useEditable = (props) => {
6
6
  const locale = useLocaleContext();
7
7
  const environment = useEnvironmentContext();
8
- const context = mergeProps({ id: createUniqueId(), dir: locale().dir, getRootNode: environment().getRootNode }, props);
9
- const [state, send] = useMachine(editable.machine(context), { context });
8
+ const id = createUniqueId();
9
+ const context = createMemo(() => ({
10
+ id,
11
+ dir: locale().dir,
12
+ getRootNode: environment().getRootNode,
13
+ value: props.defaultValue,
14
+ ...props,
15
+ }));
16
+ const [state, send] = useMachine(editable.machine(context()), { context });
10
17
  return createMemo(() => editable.connect(state, send, normalizeProps));
11
18
  };
@@ -1,11 +1,17 @@
1
1
  import * as fileUpload from '@zag-js/file-upload';
2
- import { mergeProps, normalizeProps, useMachine } from '@zag-js/solid';
2
+ import { normalizeProps, useMachine } from '@zag-js/solid';
3
3
  import { createMemo, createUniqueId } from 'solid-js';
4
4
  import { useEnvironmentContext, useLocaleContext } from '../../providers';
5
5
  export const useFileUpload = (props) => {
6
6
  const locale = useLocaleContext();
7
7
  const environment = useEnvironmentContext();
8
- const context = mergeProps({ id: createUniqueId(), dir: locale().dir, getRootNode: environment().getRootNode }, props);
9
- const [state, send] = useMachine(fileUpload.machine(context), { context });
8
+ const id = createUniqueId();
9
+ const context = createMemo(() => ({
10
+ id,
11
+ dir: locale().dir,
12
+ getRootNode: environment().getRootNode,
13
+ ...props,
14
+ }));
15
+ const [state, send] = useMachine(fileUpload.machine(context()), { context });
10
16
  return createMemo(() => fileUpload.connect(state, send, normalizeProps));
11
17
  };
@@ -7,6 +7,7 @@ export const HoverCardRoot = (props) => {
7
7
  const [presenceProps, hoverCardProps] = splitPresenceProps(props);
8
8
  const [useHoverCardProps, localProps] = createSplitProps()(hoverCardProps, [
9
9
  'closeDelay',
10
+ 'defaultOpen',
10
11
  'id',
11
12
  'ids',
12
13
  'onOpenChange',
@@ -1,16 +1,19 @@
1
1
  import * as hoverCard from '@zag-js/hover-card';
2
- import { mergeProps, normalizeProps, useMachine } from '@zag-js/solid';
2
+ import { normalizeProps, useMachine } from '@zag-js/solid';
3
3
  import { createMemo, createUniqueId } from 'solid-js';
4
4
  import { useEnvironmentContext, useLocaleContext } from '../../providers';
5
5
  export const useHoverCard = (props) => {
6
6
  const locale = useLocaleContext();
7
7
  const environment = useEnvironmentContext();
8
- const context = mergeProps({
9
- id: createUniqueId(),
8
+ const id = createUniqueId();
9
+ const context = createMemo(() => ({
10
+ id,
10
11
  dir: locale().dir,
11
12
  getRootNode: environment().getRootNode,
13
+ open: props.defaultOpen,
12
14
  'open.controlled': props.open !== undefined,
13
- }, props);
14
- const [state, send] = useMachine(hoverCard.machine(context), { context });
15
+ ...props,
16
+ }));
17
+ const [state, send] = useMachine(hoverCard.machine(context()), { context });
15
18
  return createMemo(() => hoverCard.connect(state, send, normalizeProps));
16
19
  };
@@ -12,6 +12,8 @@ export const MenuRoot = (props) => {
12
12
  'anchorPoint',
13
13
  'aria-label',
14
14
  'closeOnSelect',
15
+ 'composite',
16
+ 'defaultOpen',
15
17
  'highlightedValue',
16
18
  'id',
17
19
  'ids',
@@ -1,17 +1,20 @@
1
1
  import * as menu from '@zag-js/menu';
2
- import { mergeProps, normalizeProps, useMachine } from '@zag-js/solid';
2
+ import { normalizeProps, useMachine } from '@zag-js/solid';
3
3
  import { createMemo, createUniqueId } from 'solid-js';
4
4
  import { useEnvironmentContext, useLocaleContext } from '../../providers';
5
5
  export const useMenu = (props) => {
6
6
  const locale = useLocaleContext();
7
7
  const environment = useEnvironmentContext();
8
- const context = mergeProps({
9
- id: createUniqueId(),
8
+ const id = createUniqueId();
9
+ const context = createMemo(() => ({
10
+ id,
10
11
  dir: locale().dir,
11
12
  getRootNode: environment().getRootNode,
13
+ open: props.defaultOpen,
12
14
  'open.controlled': props.open !== undefined,
13
- }, props);
14
- const [state, send, machine] = useMachine(menu.machine(context), { context });
15
+ ...props,
16
+ }));
17
+ const [state, send, machine] = useMachine(menu.machine(context()), { context });
15
18
  const api = createMemo(() => menu.connect(state, send, normalizeProps));
16
19
  return {
17
20
  api,
@@ -8,6 +8,7 @@ export const NumberInputRoot = (props) => {
8
8
  'allowMouseWheel',
9
9
  'allowOverflow',
10
10
  'clampValueOnBlur',
11
+ 'defaultValue',
11
12
  'disabled',
12
13
  'focusInputOnChange',
13
14
  'form',
@@ -1,11 +1,18 @@
1
1
  import * as numberInput from '@zag-js/number-input';
2
- import { mergeProps, normalizeProps, useMachine } from '@zag-js/solid';
2
+ import { normalizeProps, useMachine } from '@zag-js/solid';
3
3
  import { createMemo, createUniqueId } from 'solid-js';
4
4
  import { useEnvironmentContext, useLocaleContext } from '../../providers';
5
5
  export const useNumberInput = (props) => {
6
6
  const locale = useLocaleContext();
7
7
  const environment = useEnvironmentContext();
8
- const context = mergeProps({ id: createUniqueId(), dir: locale().dir, getRootNode: environment().getRootNode }, props);
9
- const [state, send] = useMachine(numberInput.machine(context), { context });
8
+ const id = createUniqueId();
9
+ const context = createMemo(() => ({
10
+ id,
11
+ dir: locale().dir,
12
+ getRootNode: environment().getRootNode,
13
+ value: props.defaultValue,
14
+ ...props,
15
+ }));
16
+ const [state, send] = useMachine(numberInput.machine(context()), { context });
10
17
  return createMemo(() => numberInput.connect(state, send, normalizeProps));
11
18
  };
@@ -6,6 +6,7 @@ import { PaginationProvider } from './use-pagination-context';
6
6
  export const PaginationRoot = (props) => {
7
7
  const [usePaginationProps, localProps] = createSplitProps()(props, [
8
8
  'count',
9
+ 'defaultPage',
9
10
  'id',
10
11
  'ids',
11
12
  'onPageChange',
@@ -1,11 +1,18 @@
1
1
  import * as pagination from '@zag-js/pagination';
2
- import { mergeProps, normalizeProps, useMachine } from '@zag-js/solid';
2
+ import { normalizeProps, useMachine } from '@zag-js/solid';
3
3
  import { createMemo, createUniqueId } from 'solid-js';
4
4
  import { useEnvironmentContext, useLocaleContext } from '../../providers';
5
5
  export const usePagination = (props) => {
6
6
  const locale = useLocaleContext();
7
7
  const environment = useEnvironmentContext();
8
- const context = mergeProps({ id: createUniqueId(), dir: locale().dir, getRootNode: environment().getRootNode }, props);
9
- const [state, send] = useMachine(pagination.machine(context), { context });
8
+ const id = createUniqueId();
9
+ const context = createMemo(() => ({
10
+ id,
11
+ dir: locale().dir,
12
+ getRootNode: environment().getRootNode,
13
+ page: props.defaultPage,
14
+ ...props,
15
+ }));
16
+ const [state, send] = useMachine(pagination.machine(context()), { context });
10
17
  return createMemo(() => pagination.connect(state, send, normalizeProps));
11
18
  };
@@ -7,6 +7,7 @@ export const PinInputRoot = (props) => {
7
7
  const [usePinInputProps, localProps] = createSplitProps()(props, [
8
8
  'autoFocus',
9
9
  'blurOnComplete',
10
+ 'defaultValue',
10
11
  'disabled',
11
12
  'form',
12
13
  'id',
@@ -1,11 +1,18 @@
1
1
  import * as pinInput from '@zag-js/pin-input';
2
- import { mergeProps, normalizeProps, useMachine } from '@zag-js/solid';
2
+ import { normalizeProps, useMachine } from '@zag-js/solid';
3
3
  import { createMemo, createUniqueId } from 'solid-js';
4
4
  import { useEnvironmentContext, useLocaleContext } from '../../providers';
5
5
  export const usePinInput = (props) => {
6
6
  const locale = useLocaleContext();
7
7
  const environment = useEnvironmentContext();
8
- const context = mergeProps({ id: createUniqueId(), dir: locale().dir, getRootNode: environment().getRootNode }, props);
9
- const [state, send] = useMachine(pinInput.machine(context), { context });
8
+ const id = createUniqueId();
9
+ const context = createMemo(() => ({
10
+ id,
11
+ dir: locale().dir,
12
+ getRootNode: environment().getRootNode,
13
+ value: props.defaultValue,
14
+ ...props,
15
+ }));
16
+ const [state, send] = useMachine(pinInput.machine(context()), { context });
10
17
  return createMemo(() => pinInput.connect(state, send, normalizeProps));
11
18
  };