@ark-ui/solid 3.0.0-4 → 3.0.0-6

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 (110) hide show
  1. package/dist/cjs/index.js +304 -235
  2. package/dist/cjs/index.js.map +1 -1
  3. package/dist/esm/index.js +306 -237
  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/clipboard-indicator.jsx +0 -1
  14. package/dist/source/components/clipboard/use-clipboard.js +8 -3
  15. package/dist/source/components/collapsible/collapsible-root.jsx +1 -0
  16. package/dist/source/components/collapsible/use-collapsible.js +8 -5
  17. package/dist/source/components/color-picker/color-picker-root.jsx +2 -0
  18. package/dist/source/components/color-picker/use-color-picker.js +14 -8
  19. package/dist/source/components/combobox/combobox-root.jsx +4 -2
  20. package/dist/source/components/combobox/combobox-trigger.jsx +3 -1
  21. package/dist/source/components/combobox/use-combobox.js +12 -10
  22. package/dist/source/components/date-picker/date-picker-root.jsx +2 -0
  23. package/dist/source/components/date-picker/use-date-picker.js +17 -11
  24. package/dist/source/components/dialog/dialog-root.jsx +2 -0
  25. package/dist/source/components/dialog/use-dialog.js +8 -5
  26. package/dist/source/components/editable/editable-root.jsx +1 -0
  27. package/dist/source/components/editable/use-editable.js +10 -3
  28. package/dist/source/components/factory.jsx +8 -11
  29. package/dist/source/components/file-upload/use-file-upload.js +9 -3
  30. package/dist/source/components/hover-card/hover-card-root.jsx +1 -0
  31. package/dist/source/components/hover-card/use-hover-card.js +8 -5
  32. package/dist/source/components/menu/menu-root.jsx +2 -0
  33. package/dist/source/components/menu/use-menu.js +8 -5
  34. package/dist/source/components/number-input/number-input-root.jsx +1 -0
  35. package/dist/source/components/number-input/use-number-input.js +10 -3
  36. package/dist/source/components/pagination/pagination-root.jsx +1 -0
  37. package/dist/source/components/pagination/use-pagination.js +10 -3
  38. package/dist/source/components/pin-input/pin-input-root.jsx +1 -0
  39. package/dist/source/components/pin-input/use-pin-input.js +10 -3
  40. package/dist/source/components/popover/popover-root.jsx +3 -1
  41. package/dist/source/components/popover/use-popover.js +8 -5
  42. package/dist/source/components/presence/index.js +4 -5
  43. package/dist/source/components/progress/use-progress.js +9 -3
  44. package/dist/source/components/radio-group/radio-group-root.jsx +1 -0
  45. package/dist/source/components/radio-group/use-radio-group.js +10 -3
  46. package/dist/source/components/rating-group/rating-group-root.jsx +1 -0
  47. package/dist/source/components/rating-group/use-rating-group.js +10 -3
  48. package/dist/source/components/segment-group/segment-group-root.jsx +1 -0
  49. package/dist/source/components/segment-group/use-segment-group.js +12 -5
  50. package/dist/source/components/select/select-item.jsx +1 -1
  51. package/dist/source/components/select/select-root.jsx +3 -0
  52. package/dist/source/components/select/use-select.js +12 -10
  53. package/dist/source/components/slider/slider-root.jsx +1 -0
  54. package/dist/source/components/slider/use-slider.js +10 -3
  55. package/dist/source/components/splitter/splitter-root.jsx +1 -0
  56. package/dist/source/components/splitter/use-splitter.js +10 -3
  57. package/dist/source/components/switch/switch-root.jsx +1 -0
  58. package/dist/source/components/switch/use-switch.js +10 -3
  59. package/dist/source/components/tabs/tabs-root.jsx +2 -0
  60. package/dist/source/components/tabs/use-tabs.js +10 -3
  61. package/dist/source/components/tags-input/tags-input-root.jsx +1 -0
  62. package/dist/source/components/tags-input/use-tags-input.js +10 -3
  63. package/dist/source/components/toggle-group/toggle-group-root.jsx +1 -0
  64. package/dist/source/components/toggle-group/use-toggle-group.js +10 -3
  65. package/dist/source/components/tooltip/tooltip-root.jsx +2 -1
  66. package/dist/source/components/tooltip/use-tooltip.js +8 -5
  67. package/dist/source/components/tree-view/tree-view-root.jsx +3 -1
  68. package/dist/source/components/tree-view/use-tree-view.js +11 -3
  69. package/dist/source/providers/environment/{environment.jsx → environment-provider.jsx} +4 -4
  70. package/dist/source/providers/environment/index.js +1 -1
  71. package/dist/source/providers/environment/use-environment-context.js +1 -1
  72. package/dist/source/providers/locale/locale-provider.jsx +5 -19
  73. package/dist/types/components/accordion/accordion-item.d.ts +1 -2
  74. package/dist/types/components/accordion/use-accordion.d.ts +5 -0
  75. package/dist/types/components/carousel/use-carousel.d.ts +5 -0
  76. package/dist/types/components/checkbox/checkbox-hidden-input.d.ts +1 -1
  77. package/dist/types/components/checkbox/use-checkbox.d.ts +5 -0
  78. package/dist/types/components/collapsible/use-collapsible.d.ts +5 -0
  79. package/dist/types/components/color-picker/use-color-picker.d.ts +10 -0
  80. package/dist/types/components/combobox/combobox-trigger.d.ts +3 -1
  81. package/dist/types/components/combobox/use-combobox.d.ts +10 -0
  82. package/dist/types/components/date-picker/use-date-picker.d.ts +14 -4
  83. package/dist/types/components/dialog/use-dialog.d.ts +5 -0
  84. package/dist/types/components/editable/use-editable.d.ts +5 -0
  85. package/dist/types/components/factory.d.ts +2 -3
  86. package/dist/types/components/hover-card/use-hover-card.d.ts +5 -0
  87. package/dist/types/components/menu/use-menu.d.ts +5 -0
  88. package/dist/types/components/number-input/use-number-input.d.ts +5 -0
  89. package/dist/types/components/pagination/use-pagination.d.ts +5 -0
  90. package/dist/types/components/pin-input/use-pin-input.d.ts +5 -0
  91. package/dist/types/components/popover/use-popover.d.ts +5 -0
  92. package/dist/types/components/presence/index.d.ts +4 -6
  93. package/dist/types/components/radio-group/use-radio-group.d.ts +5 -0
  94. package/dist/types/components/rating-group/use-rating-group.d.ts +5 -0
  95. package/dist/types/components/segment-group/use-segment-group.d.ts +8 -3
  96. package/dist/types/components/select/use-select.d.ts +10 -0
  97. package/dist/types/components/slider/use-slider.d.ts +5 -0
  98. package/dist/types/components/splitter/use-splitter.d.ts +5 -0
  99. package/dist/types/components/switch/use-switch.d.ts +5 -0
  100. package/dist/types/components/tabs/use-tabs.d.ts +5 -0
  101. package/dist/types/components/tags-input/use-tags-input.d.ts +5 -0
  102. package/dist/types/components/toggle-group/use-toggle-group.d.ts +5 -0
  103. package/dist/types/components/tooltip/use-tooltip.d.ts +5 -0
  104. package/dist/types/components/tree-view/use-tree-view.d.ts +10 -0
  105. package/dist/types/providers/environment/{environment.d.ts → environment-provider.d.ts} +2 -2
  106. package/dist/types/providers/environment/index.d.ts +1 -1
  107. package/dist/types/providers/environment/use-environment-context.d.ts +4 -1
  108. package/dist/types/providers/locale/locale-provider.d.ts +3 -4
  109. package/package.json +48 -48
  110. /package/dist/source/providers/locale/{use-locale-context.jsx → use-locale-context.js} +0 -0
@@ -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
  };
@@ -7,8 +7,9 @@ export const PopoverRoot = (props) => {
7
7
  const [presenceProps, popoverProps] = splitPresenceProps(props);
8
8
  const [usePopoverProps, localProps] = createSplitProps()(popoverProps, [
9
9
  'autoFocus',
10
- 'closeOnEsc',
10
+ 'closeOnEscape',
11
11
  'closeOnInteractOutside',
12
+ 'defaultOpen',
12
13
  'id',
13
14
  'ids',
14
15
  'initialFocusEl',
@@ -19,6 +20,7 @@ export const PopoverRoot = (props) => {
19
20
  'onOpenChange',
20
21
  'onPointerDownOutside',
21
22
  'open',
23
+ 'persistentElements',
22
24
  'portalled',
23
25
  'positioning',
24
26
  ]);
@@ -1,16 +1,19 @@
1
1
  import * as popover from '@zag-js/popover';
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 usePopover = (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(popover.machine(context), { context });
15
+ ...props,
16
+ }));
17
+ const [state, send] = useMachine(popover.machine(context()), { context });
15
18
  return createMemo(() => popover.connect(state, send, normalizeProps));
16
19
  };
@@ -1,5 +1,4 @@
1
- import { Presence } from './presence';
2
- import { splitPresenceProps } from './split-presence-props';
3
- import { usePresence } from './use-presence';
4
- import { PresenceProvider, usePresenceContext, } from './use-presence-context';
5
- export { Presence, PresenceProvider, splitPresenceProps, usePresence, usePresenceContext };
1
+ export { Presence } from './presence';
2
+ export { splitPresenceProps } from './split-presence-props';
3
+ export { usePresence } from './use-presence';
4
+ export { PresenceProvider, usePresenceContext, } from './use-presence-context';
@@ -1,11 +1,17 @@
1
1
  import * as progress from '@zag-js/progress';
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 useProgress = (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(progress.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(progress.machine(context()), { context });
10
16
  return createMemo(() => progress.connect(state, send, normalizeProps));
11
17
  };
@@ -5,6 +5,7 @@ import { useRadioGroup } from './use-radio-group';
5
5
  import { RadioGroupProvider } from './use-radio-group-context';
6
6
  export const RadioGroupRoot = (props) => {
7
7
  const [useRadioGroupProps, localProps] = createSplitProps()(props, [
8
+ 'defaultValue',
8
9
  'disabled',
9
10
  'form',
10
11
  'id',
@@ -1,12 +1,19 @@
1
1
  import * as radio from '@zag-js/radio-group';
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 useRadioGroup = (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(radio.machine(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(radio.machine(context()), {
10
17
  context,
11
18
  });
12
19
  return createMemo(() => radio.connect(state, send, normalizeProps));
@@ -8,6 +8,7 @@ export const RatingGroupRoot = (props) => {
8
8
  'allowHalf',
9
9
  'autoFocus',
10
10
  'count',
11
+ 'defaultValue',
11
12
  'disabled',
12
13
  'form',
13
14
  'id',
@@ -1,11 +1,18 @@
1
1
  import * as rating from '@zag-js/rating-group';
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 useRatingGroup = (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(rating.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(rating.machine(context()), { context });
10
17
  return createMemo(() => rating.connect(state, send, normalizeProps));
11
18
  };
@@ -6,6 +6,7 @@ import { useSegmentGroup } from './use-segment-group';
6
6
  import { SegmentGroupProvider } from './use-segment-group-context';
7
7
  export const SegmentGroupRoot = (props) => {
8
8
  const [useSegmentGroupProps, localProps] = createSplitProps()(props, [
9
+ 'defaultValue',
9
10
  'disabled',
10
11
  'form',
11
12
  'id',
@@ -1,11 +1,18 @@
1
- import * as segment from '@zag-js/radio-group';
2
- import { mergeProps, normalizeProps, useMachine } from '@zag-js/solid';
1
+ import * as segmentGroup from '@zag-js/radio-group';
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 useSegmentGroup = (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(segment.machine(context), { context });
10
- return createMemo(() => segment.connect(state, send, normalizeProps));
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(segmentGroup.machine(context()), { context });
17
+ return createMemo(() => segmentGroup.connect(state, send, normalizeProps));
11
18
  };
@@ -6,7 +6,7 @@ import { useSelectContext } from './use-select-context';
6
6
  import { SelectItemProvider } from './use-select-item-context';
7
7
  import { SelectItemPropsProvider } from './use-select-item-props-context';
8
8
  export const SelectItem = (props) => {
9
- const [itemProps, localProps] = createSplitProps()(props, ['item']);
9
+ const [itemProps, localProps] = createSplitProps()(props, ['item', 'persistFocus']);
10
10
  const select = useSelectContext();
11
11
  const mergedProps = mergeProps(() => select().getItemProps(itemProps), localProps);
12
12
  const itemState = createMemo(() => select().getItemState(itemProps));
@@ -8,6 +8,9 @@ export const SelectRoot = (props) => {
8
8
  const [presenceProps, selectProps] = splitPresenceProps(props);
9
9
  const [useSelectProps, localProps] = createSplitProps()(selectProps, [
10
10
  'closeOnSelect',
11
+ 'composite',
12
+ 'defaultOpen',
13
+ 'defaultValue',
11
14
  'disabled',
12
15
  'form',
13
16
  'highlightedValue',
@@ -1,28 +1,30 @@
1
1
  import * as select from '@zag-js/select';
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 useSelect = (props) => {
7
- const [collectionOptions, localProps] = createSplitProps()(props, [
7
+ const [collectionOptions, selectProps] = createSplitProps()(props, [
8
8
  'isItemDisabled',
9
9
  'itemToValue',
10
10
  'itemToString',
11
11
  'items',
12
12
  ]);
13
- const collection = createMemo(() => select.collection(collectionOptions));
13
+ const collection = () => select.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
- get collection() {
22
- return collection();
23
- },
24
- }, localProps);
25
- const [state, send] = useMachine(select.machine(context), {
25
+ ...selectProps,
26
+ }));
27
+ const [state, send] = useMachine(select.machine(context()), {
26
28
  context,
27
29
  });
28
30
  return createMemo(() => select.connect(state, send, normalizeProps));
@@ -7,6 +7,7 @@ export const SliderRoot = (props) => {
7
7
  const [useSliderProps, localProps] = createSplitProps()(props, [
8
8
  'aria-label',
9
9
  'aria-labelledby',
10
+ 'defaultValue',
10
11
  'disabled',
11
12
  'form',
12
13
  'getAriaValueText',
@@ -1,11 +1,18 @@
1
1
  import * as slider from '@zag-js/slider';
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 useSlider = (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(slider.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(slider.machine(context()), { context });
10
17
  return createMemo(() => slider.connect(state, send, normalizeProps));
11
18
  };
@@ -5,6 +5,7 @@ import { useSplitter } from './use-splitter';
5
5
  import { SplitterProvider } from './use-splitter-context';
6
6
  export const SplitterRoot = (props) => {
7
7
  const [useSplitterProps, localProps] = createSplitProps()(props, [
8
+ 'defaultSize',
8
9
  'id',
9
10
  'ids',
10
11
  'onSizeChange',
@@ -1,11 +1,18 @@
1
- import { mergeProps, normalizeProps, useMachine } from '@zag-js/solid';
1
+ import { normalizeProps, useMachine } from '@zag-js/solid';
2
2
  import * as splitter from '@zag-js/splitter';
3
3
  import { createMemo, createUniqueId } from 'solid-js';
4
4
  import { useEnvironmentContext, useLocaleContext } from '../../providers';
5
5
  export const useSplitter = (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(splitter.machine(context), { context });
8
+ const id = createUniqueId();
9
+ const context = createMemo(() => ({
10
+ id,
11
+ dir: locale().dir,
12
+ getRootNode: environment().getRootNode,
13
+ size: props.defaultSize,
14
+ ...props,
15
+ }));
16
+ const [state, send] = useMachine(splitter.machine(context()), { context });
10
17
  return createMemo(() => splitter.connect(state, send, normalizeProps));
11
18
  };
@@ -6,6 +6,7 @@ import { SwitchProvider } from './use-switch-context';
6
6
  export const SwitchRoot = (props) => {
7
7
  const [switchProps, localProps] = createSplitProps()(props, [
8
8
  'checked',
9
+ 'defaultChecked',
9
10
  'disabled',
10
11
  'form',
11
12
  'id',
@@ -1,11 +1,18 @@
1
- import { mergeProps, normalizeProps, useMachine } from '@zag-js/solid';
1
+ import { normalizeProps, useMachine } from '@zag-js/solid';
2
2
  import * as zagSwitch from '@zag-js/switch';
3
3
  import { createMemo, createUniqueId } from 'solid-js';
4
4
  import { useEnvironmentContext, useLocaleContext } from '../../providers';
5
5
  export const useSwitch = (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(zagSwitch.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(zagSwitch.machine(context()), { context });
10
17
  return createMemo(() => zagSwitch.connect(state, send, normalizeProps));
11
18
  };
@@ -8,6 +8,8 @@ export const TabsRoot = (props) => {
8
8
  const [renderStrategyProps, tabsProps] = splitRenderStrategyProps(props);
9
9
  const [useTabsProps, restProps] = createSplitProps()(tabsProps, [
10
10
  'activationMode',
11
+ 'composite',
12
+ 'defaultValue',
11
13
  'id',
12
14
  'ids',
13
15
  'loopFocus',
@@ -1,11 +1,18 @@
1
- import { mergeProps, normalizeProps, useMachine } from '@zag-js/solid';
1
+ import { normalizeProps, useMachine } from '@zag-js/solid';
2
2
  import * as tabs from '@zag-js/tabs';
3
3
  import { createMemo, createUniqueId } from 'solid-js';
4
4
  import { useEnvironmentContext, useLocaleContext } from '../../providers';
5
5
  export const useTabs = (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(tabs.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(tabs.machine(context()), { context });
10
17
  return createMemo(() => tabs.connect(state, send, normalizeProps));
11
18
  };
@@ -10,6 +10,7 @@ export const TagsInputRoot = (props) => {
10
10
  'autoFocus',
11
11
  'blurBehavior',
12
12
  'delimiter',
13
+ 'defaultValue',
13
14
  'disabled',
14
15
  'editable',
15
16
  'form',
@@ -1,11 +1,18 @@
1
- import { mergeProps, normalizeProps, useMachine } from '@zag-js/solid';
1
+ import { normalizeProps, useMachine } from '@zag-js/solid';
2
2
  import * as tagsInput from '@zag-js/tags-input';
3
3
  import { createMemo, createUniqueId } from 'solid-js';
4
4
  import { useEnvironmentContext, useLocaleContext } from '../../providers';
5
5
  export const useTagsInput = (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(tagsInput.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(tagsInput.machine(context()), { context });
10
17
  return createMemo(() => tagsInput.connect(state, send, normalizeProps));
11
18
  };
@@ -5,6 +5,7 @@ import { useToggleGroup } from './use-toggle-group';
5
5
  import { ToggleGroupProvider } from './use-toggle-group-context';
6
6
  export const ToggleGroupRoot = (props) => {
7
7
  const [useToggleGroupProps, restProps] = createSplitProps()(props, [
8
+ 'defaultValue',
8
9
  'disabled',
9
10
  'id',
10
11
  'ids',
@@ -1,12 +1,19 @@
1
- import { mergeProps, normalizeProps, useMachine } from '@zag-js/solid';
1
+ import { normalizeProps, useMachine } from '@zag-js/solid';
2
2
  import * as toggleGroup from '@zag-js/toggle-group';
3
3
  import { createMemo, createUniqueId } from 'solid-js';
4
4
  import { useEnvironmentContext, useLocaleContext } from '../../providers';
5
5
  export const useToggleGroup = (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(toggleGroup.machine(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(toggleGroup.machine(context()), {
10
17
  context,
11
18
  });
12
19
  return createMemo(() => toggleGroup.connect(state, send, normalizeProps));
@@ -8,8 +8,9 @@ export const TooltipRoot = (props) => {
8
8
  const [useTooltipProps, localProps] = createSplitProps()(tooltipProps, [
9
9
  'aria-label',
10
10
  'closeDelay',
11
- 'closeOnEsc',
11
+ 'closeOnEscape',
12
12
  'closeOnPointerDown',
13
+ 'defaultOpen',
13
14
  'disabled',
14
15
  'id',
15
16
  'ids',
@@ -1,16 +1,19 @@
1
- import { mergeProps, normalizeProps, useMachine } from '@zag-js/solid';
1
+ import { normalizeProps, useMachine } from '@zag-js/solid';
2
2
  import * as tooltip from '@zag-js/tooltip';
3
3
  import { createMemo, createUniqueId } from 'solid-js';
4
4
  import { useEnvironmentContext, useLocaleContext } from '../../providers';
5
5
  export const useTooltip = (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(tooltip.machine(context), { context });
15
+ ...props,
16
+ }));
17
+ const [state, send] = useMachine(tooltip.machine(context()), { context });
15
18
  return createMemo(() => tooltip.connect(state, send, normalizeProps));
16
19
  };
@@ -5,14 +5,16 @@ import { useTreeView } from './use-tree-view';
5
5
  import { TreeViewProvider } from './use-tree-view-context';
6
6
  export const TreeViewRoot = (props) => {
7
7
  const [useTreeViewProps, localProps] = createSplitProps()(props, [
8
+ 'defaultExpandedValue',
9
+ 'defaultSelectedValue',
8
10
  'expandedValue',
11
+ 'expandOnClick',
9
12
  'focusedValue',
10
13
  'id',
11
14
  'ids',
12
15
  'onExpandedChange',
13
16
  'onFocusChange',
14
17
  'onSelectionChange',
15
- 'openOnClick',
16
18
  'selectedValue',
17
19
  'selectionMode',
18
20
  'typeahead',
@@ -1,11 +1,19 @@
1
- import { mergeProps, normalizeProps, useMachine } from '@zag-js/solid';
1
+ import { normalizeProps, useMachine } from '@zag-js/solid';
2
2
  import * as treeView from '@zag-js/tree-view';
3
3
  import { createMemo, createUniqueId } from 'solid-js';
4
4
  import { useEnvironmentContext, useLocaleContext } from '../../providers';
5
5
  export const useTreeView = (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(treeView.machine(context), { context });
8
+ const id = createUniqueId();
9
+ const context = createMemo(() => ({
10
+ id,
11
+ dir: locale().dir,
12
+ getRootNode: environment().getRootNode,
13
+ selectedValue: props.defaultSelectedValue,
14
+ expandedValue: props.defaultExpandedValue,
15
+ ...props,
16
+ }));
17
+ const [state, send] = useMachine(treeView.machine(context()), { context });
10
18
  return createMemo(() => treeView.connect(state, send, normalizeProps));
11
19
  };
@@ -1,8 +1,8 @@
1
1
  import { getDocument, getWindow } from '@zag-js/dom-query';
2
2
  import { Show, createMemo, createSignal } from 'solid-js';
3
3
  import { runIfFn } from '../../utils/run-if-fn';
4
- import { EnvironmentProvider } from './use-environment-context';
5
- export const Environment = (props) => {
4
+ import { EnvironmentContextProvider } from './use-environment-context';
5
+ export const EnvironmentProvider = (props) => {
6
6
  const [spanRef, setSpanRef] = createSignal();
7
7
  const getRootNode = () => runIfFn(props.value) ?? spanRef()?.ownerDocument ?? document;
8
8
  const environment = createMemo(() => ({
@@ -10,10 +10,10 @@ export const Environment = (props) => {
10
10
  getDocument: () => getDocument(getRootNode()),
11
11
  getWindow: () => getWindow(getRootNode()),
12
12
  }));
13
- return (<EnvironmentProvider value={environment}>
13
+ return (<EnvironmentContextProvider value={environment}>
14
14
  {props.children}
15
15
  <Show when={!props.value}>
16
16
  <span hidden ref={setSpanRef}/>
17
17
  </Show>
18
- </EnvironmentProvider>);
18
+ </EnvironmentContextProvider>);
19
19
  };
@@ -1,2 +1,2 @@
1
- export { Environment } from './environment';
1
+ export { EnvironmentProvider } from './environment-provider';
2
2
  export { useEnvironmentContext, } from './use-environment-context';
@@ -1,5 +1,5 @@
1
1
  import { createContext } from '../../utils/create-context';
2
- export const [EnvironmentProvider, useEnvironmentContext] = createContext({
2
+ export const [EnvironmentContextProvider, useEnvironmentContext] = createContext({
3
3
  hookName: 'useEnvironmentContext',
4
4
  providerName: '<EnvironmentProvider />',
5
5
  strict: false,