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

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 (104) hide show
  1. package/dist/cjs/index.js +215 -169
  2. package/dist/cjs/index.js.map +1 -1
  3. package/dist/esm/index.js +210 -172
  4. package/dist/esm/index.js.map +1 -1
  5. package/dist/source/components/accordion/use-accordion.js +2 -2
  6. package/dist/source/components/avatar/use-avatar.js +2 -2
  7. package/dist/source/components/carousel/use-carousel.js +2 -2
  8. package/dist/source/components/checkbox/checkbox-control.jsx +3 -6
  9. package/dist/source/components/checkbox/checkbox-hidden-input.jsx +8 -0
  10. package/dist/source/components/checkbox/checkbox-indicator.jsx +5 -3
  11. package/dist/source/components/checkbox/checkbox-root.jsx +3 -3
  12. package/dist/source/components/checkbox/checkbox.js +1 -0
  13. package/dist/source/components/checkbox/index.js +1 -0
  14. package/dist/source/components/checkbox/use-checkbox.js +2 -2
  15. package/dist/source/components/clipboard/use-clipboard.js +2 -2
  16. package/dist/source/components/collapsible/use-collapsible.js +2 -2
  17. package/dist/source/components/color-picker/color-picker-hidden-input.jsx +8 -0
  18. package/dist/source/components/color-picker/color-picker-root.jsx +0 -1
  19. package/dist/source/components/color-picker/color-picker.js +1 -0
  20. package/dist/source/components/color-picker/index.js +1 -0
  21. package/dist/source/components/color-picker/use-color-picker.js +2 -2
  22. package/dist/source/components/combobox/use-combobox.js +2 -2
  23. package/dist/source/components/date-picker/use-date-picker.js +2 -2
  24. package/dist/source/components/dialog/use-dialog.js +2 -2
  25. package/dist/source/components/editable/use-editable.js +2 -2
  26. package/dist/source/components/file-upload/file-upload-dropzone.jsx +1 -4
  27. package/dist/source/components/file-upload/file-upload-hidden-input.jsx +8 -0
  28. package/dist/source/components/file-upload/file-upload.js +1 -0
  29. package/dist/source/components/file-upload/index.js +1 -0
  30. package/dist/source/components/file-upload/use-file-upload.js +2 -2
  31. package/dist/source/components/hover-card/use-hover-card.js +2 -2
  32. package/dist/source/components/menu/use-menu.js +2 -2
  33. package/dist/source/components/number-input/use-number-input.js +2 -2
  34. package/dist/source/components/pagination/use-pagination.js +2 -2
  35. package/dist/source/components/pin-input/index.js +1 -0
  36. package/dist/source/components/pin-input/pin-input-hidden-input.jsx +8 -0
  37. package/dist/source/components/pin-input/pin-input-root.jsx +3 -4
  38. package/dist/source/components/pin-input/pin-input.js +1 -0
  39. package/dist/source/components/pin-input/use-pin-input.js +2 -2
  40. package/dist/source/components/popover/use-popover.js +2 -2
  41. package/dist/source/components/progress/use-progress.js +2 -2
  42. package/dist/source/components/radio-group/use-radio-group.js +2 -2
  43. package/dist/source/components/rating-group/index.js +1 -0
  44. package/dist/source/components/rating-group/rating-group-control.jsx +3 -6
  45. package/dist/source/components/rating-group/rating-group-hidden-input.jsx +8 -0
  46. package/dist/source/components/rating-group/rating-group.js +1 -0
  47. package/dist/source/components/rating-group/use-rating-group.js +2 -2
  48. package/dist/source/components/segment-group/use-segment-group.js +2 -2
  49. package/dist/source/components/select/index.js +1 -0
  50. package/dist/source/components/select/select-control.jsx +1 -13
  51. package/dist/source/components/select/select-hidden-select.jsx +17 -0
  52. package/dist/source/components/select/select.js +1 -0
  53. package/dist/source/components/select/use-select.js +2 -2
  54. package/dist/source/components/slider/use-slider.js +2 -2
  55. package/dist/source/components/splitter/use-splitter.js +2 -2
  56. package/dist/source/components/switch/index.js +1 -0
  57. package/dist/source/components/switch/switch-control.jsx +1 -4
  58. package/dist/source/components/switch/switch-hidden-input.jsx +8 -0
  59. package/dist/source/components/switch/switch.js +1 -0
  60. package/dist/source/components/switch/use-switch.js +2 -2
  61. package/dist/source/components/tabs/use-tabs.js +2 -2
  62. package/dist/source/components/tags-input/index.js +1 -0
  63. package/dist/source/components/tags-input/tags-input-hidden-input.jsx +8 -0
  64. package/dist/source/components/tags-input/tags-input-root.jsx +0 -1
  65. package/dist/source/components/tags-input/tags-input.js +1 -0
  66. package/dist/source/components/tags-input/use-tags-input.js +2 -2
  67. package/dist/source/components/toggle-group/use-toggle-group.js +2 -2
  68. package/dist/source/components/tooltip/use-tooltip.js +2 -2
  69. package/dist/source/components/tree-view/use-tree-view.js +2 -2
  70. package/dist/source/providers/environment/environment.jsx +14 -6
  71. package/dist/source/providers/environment/index.js +2 -3
  72. package/dist/source/providers/environment/use-environment-context.js +5 -0
  73. package/dist/source/providers/locale/locale-provider.jsx +2 -2
  74. package/dist/source/utils/run-if-fn.js +4 -0
  75. package/dist/types/components/checkbox/checkbox-hidden-input.d.ts +4 -0
  76. package/dist/types/components/checkbox/checkbox-indicator.d.ts +6 -1
  77. package/dist/types/components/checkbox/checkbox.d.ts +1 -0
  78. package/dist/types/components/checkbox/index.d.ts +2 -1
  79. package/dist/types/components/color-picker/color-picker-hidden-input.d.ts +4 -0
  80. package/dist/types/components/color-picker/color-picker.d.ts +1 -0
  81. package/dist/types/components/color-picker/index.d.ts +2 -1
  82. package/dist/types/components/file-upload/file-upload-hidden-input.d.ts +4 -0
  83. package/dist/types/components/file-upload/file-upload.d.ts +1 -0
  84. package/dist/types/components/file-upload/index.d.ts +1 -0
  85. package/dist/types/components/pin-input/index.d.ts +1 -0
  86. package/dist/types/components/pin-input/pin-input-hidden-input.d.ts +4 -0
  87. package/dist/types/components/pin-input/pin-input.d.ts +1 -0
  88. package/dist/types/components/rating-group/index.d.ts +1 -0
  89. package/dist/types/components/rating-group/rating-group-hidden-input.d.ts +4 -0
  90. package/dist/types/components/rating-group/rating-group.d.ts +1 -0
  91. package/dist/types/components/select/index.d.ts +1 -0
  92. package/dist/types/components/select/select-hidden-select.d.ts +4 -0
  93. package/dist/types/components/select/select.d.ts +1 -0
  94. package/dist/types/components/switch/index.d.ts +2 -1
  95. package/dist/types/components/switch/switch-hidden-input.d.ts +4 -0
  96. package/dist/types/components/switch/switch.d.ts +1 -0
  97. package/dist/types/components/tags-input/index.d.ts +1 -0
  98. package/dist/types/components/tags-input/tags-input-hidden-input.d.ts +4 -0
  99. package/dist/types/components/tags-input/tags-input.d.ts +1 -0
  100. package/dist/types/providers/environment/environment.d.ts +2 -1
  101. package/dist/types/providers/environment/index.d.ts +2 -4
  102. package/dist/types/providers/environment/use-environment-context.d.ts +18 -3
  103. package/dist/types/utils/run-if-fn.d.ts +2 -0
  104. package/package.json +6 -5
@@ -4,8 +4,8 @@ import { createMemo, createUniqueId, mergeProps } from 'solid-js';
4
4
  import { useEnvironmentContext, useLocaleContext } from '../../providers';
5
5
  export const useAccordion = (props) => {
6
6
  const locale = useLocaleContext();
7
- const getRootNode = useEnvironmentContext();
8
- const context = mergeProps({ id: createUniqueId(), dir: locale().dir, getRootNode }, props);
7
+ const environment = useEnvironmentContext();
8
+ const context = mergeProps({ id: createUniqueId(), dir: locale().dir, getRootNode: environment().getRootNode }, props);
9
9
  const [state, send] = useMachine(accordion.machine(context), { context });
10
10
  return createMemo(() => accordion.connect(state, send, normalizeProps));
11
11
  };
@@ -4,8 +4,8 @@ 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
- const getRootNode = useEnvironmentContext();
8
- const context = mergeProps({ id: createUniqueId(), dir: locale().dir, getRootNode }, props);
7
+ const environment = useEnvironmentContext();
8
+ const context = mergeProps({ id: createUniqueId(), dir: locale().dir, getRootNode: environment().getRootNode }, props);
9
9
  const [state, send] = useMachine(avatar.machine(context), { context });
10
10
  return createMemo(() => avatar.connect(state, send, normalizeProps));
11
11
  };
@@ -4,8 +4,8 @@ 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
- const getRootNode = useEnvironmentContext();
8
- const context = mergeProps({ id: createUniqueId(), dir: locale().dir, getRootNode }, props);
7
+ const environment = useEnvironmentContext();
8
+ const context = mergeProps({ id: createUniqueId(), dir: locale().dir, getRootNode: environment().getRootNode }, props);
9
9
  const [state, send] = useMachine(carousel.machine(context), { context });
10
10
  return createMemo(() => carousel.connect(state, send, normalizeProps));
11
11
  };
@@ -2,10 +2,7 @@ import { mergeProps } from '@zag-js/solid';
2
2
  import { ark } from '../factory';
3
3
  import { useCheckboxContext } from './use-checkbox-context';
4
4
  export const CheckboxControl = (props) => {
5
- const api = useCheckboxContext();
6
- const mergedProps = mergeProps(() => api().controlProps, props);
7
- return (<>
8
- <ark.div {...mergedProps}/>
9
- <input {...api().hiddenInputProps}/>
10
- </>);
5
+ const checkbox = useCheckboxContext();
6
+ const mergedProps = mergeProps(() => checkbox().controlProps, props);
7
+ return <ark.div {...mergedProps}/>;
11
8
  };
@@ -0,0 +1,8 @@
1
+ import { mergeProps } from '@zag-js/solid';
2
+ import { ark } from '../factory';
3
+ import { useCheckboxContext } from './use-checkbox-context';
4
+ export const CheckboxHiddenInput = (props) => {
5
+ const checkbox = useCheckboxContext();
6
+ const mergedProps = mergeProps(() => checkbox().hiddenInputProps, props);
7
+ return <ark.input {...mergedProps}/>;
8
+ };
@@ -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 { useCheckboxContext } from './use-checkbox-context';
4
5
  export const CheckboxIndicator = (props) => {
5
- const api = useCheckboxContext();
6
- const mergedProps = mergeProps(() => api().indicatorProps, props);
7
- return <ark.div {...mergedProps}/>;
6
+ const [indicatorProps, localProps] = createSplitProps()(props, ['indeterminate']);
7
+ const checkbox = useCheckboxContext();
8
+ const mergedProps = mergeProps(() => checkbox().indicatorProps, localProps);
9
+ return (<ark.div {...mergedProps} hidden={!(indicatorProps.indeterminate ? checkbox().indeterminate : checkbox().checked)}/>);
8
10
  };
@@ -17,9 +17,9 @@ export const CheckboxRoot = (props) => {
17
17
  'required',
18
18
  'value',
19
19
  ]);
20
- const api = useCheckbox(useCheckboxProps);
21
- const mergedProps = mergeProps(() => api().rootProps, labelprops);
22
- return (<CheckboxProvider value={api}>
20
+ const checkbox = useCheckbox(useCheckboxProps);
21
+ const mergedProps = mergeProps(() => checkbox().rootProps, labelprops);
22
+ return (<CheckboxProvider value={checkbox}>
23
23
  <ark.label {...mergedProps}/>
24
24
  </CheckboxProvider>);
25
25
  };
@@ -1,5 +1,6 @@
1
1
  export { CheckboxContext as Context, } from './checkbox-context';
2
2
  export { CheckboxControl as Control, } from './checkbox-control';
3
+ export { CheckboxHiddenInput as HiddenInput, } from './checkbox-hidden-input';
3
4
  export { CheckboxIndicator as Indicator, } from './checkbox-indicator';
4
5
  export { CheckboxLabel as Label } from './checkbox-label';
5
6
  export { CheckboxRoot as Root } from './checkbox-root';
@@ -1,5 +1,6 @@
1
1
  export { CheckboxContext } from './checkbox-context';
2
2
  export { CheckboxControl } from './checkbox-control';
3
+ export { CheckboxHiddenInput } from './checkbox-hidden-input';
3
4
  export { CheckboxIndicator } from './checkbox-indicator';
4
5
  export { CheckboxLabel } from './checkbox-label';
5
6
  export { CheckboxRoot } from './checkbox-root';
@@ -4,8 +4,8 @@ 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
- const getRootNode = useEnvironmentContext();
8
- const context = mergeProps({ id: createUniqueId(), dir: locale().dir, getRootNode }, props);
7
+ const environment = useEnvironmentContext();
8
+ const context = mergeProps({ id: createUniqueId(), dir: locale().dir, getRootNode: environment().getRootNode }, props);
9
9
  const [state, send] = useMachine(checkbox.machine(context), { context });
10
10
  return createMemo(() => checkbox.connect(state, send, normalizeProps));
11
11
  };
@@ -3,8 +3,8 @@ import { mergeProps, 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
- const getRootNode = useEnvironmentContext();
7
- const context = mergeProps({ id: createUniqueId(), getRootNode }, props);
6
+ const environment = useEnvironmentContext();
7
+ const context = mergeProps({ id: createUniqueId(), getRootNode: environment().getRootNode }, props);
8
8
  const [state, send] = useMachine(clipboard.machine(context), { context });
9
9
  return createMemo(() => clipboard.connect(state, send, normalizeProps));
10
10
  };
@@ -5,12 +5,12 @@ import { useEnvironmentContext, useLocaleContext } from '../../providers';
5
5
  import { splitRenderStrategyProps } from '../../utils/render-strategy';
6
6
  export const useCollapsible = (props) => {
7
7
  const locale = useLocaleContext();
8
- const getRootNode = useEnvironmentContext();
8
+ const environment = useEnvironmentContext();
9
9
  const [renderStrategyProps, collapsibleProps] = splitRenderStrategyProps(props);
10
10
  const context = mergeProps({
11
11
  id: createUniqueId(),
12
12
  dir: locale().dir,
13
- getRootNode,
13
+ getRootNode: environment().getRootNode,
14
14
  'open.controlled': props.open !== undefined,
15
15
  }, collapsibleProps);
16
16
  const [state, send] = useMachine(collapsible.machine(context), { context });
@@ -0,0 +1,8 @@
1
+ import { mergeProps } from '@zag-js/solid';
2
+ import { ark } from '../factory';
3
+ import { useColorPickerContext } from './use-color-picker-context';
4
+ export const ColorPickerHiddenInput = (props) => {
5
+ const colorPicker = useColorPickerContext();
6
+ const mergedProps = mergeProps(() => colorPicker().hiddenInputProps, props);
7
+ return <ark.input {...mergedProps}/>;
8
+ };
@@ -34,6 +34,5 @@ export const ColorPickerRoot = (props) => {
34
34
  <PresenceProvider value={apiPresence}>
35
35
  <ark.div {...mergedProps}/>
36
36
  </PresenceProvider>
37
- <input {...api().hiddenInputProps}/>
38
37
  </ColorPickerProvider>);
39
38
  };
@@ -22,3 +22,4 @@ export { ColorPickerTransparencyGrid as TransparencyGrid, } from './color-picker
22
22
  export { ColorPickerTrigger as Trigger, } from './color-picker-trigger';
23
23
  export { ColorPickerValueText as ValueText, } from './color-picker-value-text';
24
24
  export { ColorPickerView as View, } from './color-picker-view';
25
+ export { ColorPickerHiddenInput as HiddenInput, } from './color-picker-hidden-input';
@@ -11,6 +11,7 @@ export { ColorPickerControl } from './color-picker-control';
11
11
  export { ColorPickerEyeDropperTrigger, } from './color-picker-eye-dropper-trigger';
12
12
  export { ColorPickerFormatSelect, } from './color-picker-format-select';
13
13
  export { ColorPickerFormatTrigger, } from './color-picker-format-trigger';
14
+ export { ColorPickerHiddenInput, } from './color-picker-hidden-input';
14
15
  export { ColorPickerLabel } from './color-picker-label';
15
16
  export { ColorPickerPositioner } from './color-picker-positioner';
16
17
  export { ColorPickerRoot } from './color-picker-root';
@@ -5,11 +5,11 @@ import { useEnvironmentContext, useLocaleContext } from '../../providers';
5
5
  export const useColorPicker = (props) => {
6
6
  const [local, rest] = splitProps(props, ['value']);
7
7
  const locale = useLocaleContext();
8
- const getRootNode = useEnvironmentContext();
8
+ const environment = useEnvironmentContext();
9
9
  const context = mergeProps(() => ({
10
10
  id: createUniqueId(),
11
11
  dir: locale().dir,
12
- getRootNode,
12
+ getRootNode: environment().getRootNode,
13
13
  'open.controlled': props.open !== undefined,
14
14
  value: local.value ? colorPicker.parse(local.value) : undefined,
15
15
  }), rest);
@@ -12,11 +12,11 @@ export const useCombobox = (props) => {
12
12
  ]);
13
13
  const collection = () => combobox.collection(collectionOptions);
14
14
  const locale = useLocaleContext();
15
- const getRootNode = useEnvironmentContext();
15
+ const environment = useEnvironmentContext();
16
16
  const context = mergeProps({
17
17
  id: createUniqueId(),
18
18
  dir: locale().dir,
19
- getRootNode,
19
+ getRootNode: environment().getRootNode,
20
20
  'open.controlled': props.open !== undefined,
21
21
  collection: collection(),
22
22
  }, rest);
@@ -4,12 +4,12 @@ import { createMemo, createUniqueId, splitProps } from 'solid-js';
4
4
  import { useEnvironmentContext, useLocaleContext } from '../../providers';
5
5
  export const useDatePicker = (props) => {
6
6
  const locale = useLocaleContext();
7
- const getRootNode = useEnvironmentContext();
7
+ const environment = useEnvironmentContext();
8
8
  const [localProps, restProps] = splitProps(props, ['value', 'focusedValue', 'min', 'max']);
9
9
  const context = mergeProps(() => ({
10
10
  id: createUniqueId(),
11
11
  dir: locale().dir,
12
- getRootNode,
12
+ getRootNode: environment().getRootNode,
13
13
  'open.controlled': props.open !== undefined,
14
14
  focusedValue: localProps.focusedValue ? datePicker.parse(localProps.focusedValue) : undefined,
15
15
  value: localProps.value ? datePicker.parse(localProps.value) : undefined,
@@ -4,11 +4,11 @@ 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
- const getRootNode = useEnvironmentContext();
7
+ const environment = useEnvironmentContext();
8
8
  const context = mergeProps({
9
9
  id: createUniqueId(),
10
10
  dir: locale().dir,
11
- getRootNode,
11
+ getRootNode: environment().getRootNode,
12
12
  'open.controlled': props.open !== undefined,
13
13
  }, props);
14
14
  const [state, send] = useMachine(dialog.machine(context), { context });
@@ -4,8 +4,8 @@ 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
- const getRootNode = useEnvironmentContext();
8
- const context = mergeProps({ id: createUniqueId(), dir: locale().dir, getRootNode }, props);
7
+ const environment = useEnvironmentContext();
8
+ const context = mergeProps({ id: createUniqueId(), dir: locale().dir, getRootNode: environment().getRootNode }, props);
9
9
  const [state, send] = useMachine(editable.machine(context), { context });
10
10
  return createMemo(() => editable.connect(state, send, normalizeProps));
11
11
  };
@@ -4,8 +4,5 @@ import { useFileUploadContext } from './use-file-upload-context';
4
4
  export const FileUploadDropzone = (props) => {
5
5
  const fileUpload = useFileUploadContext();
6
6
  const mergedProps = mergeProps(() => fileUpload().dropzoneProps, props);
7
- return (<>
8
- <ark.div {...mergedProps}/>
9
- <input {...fileUpload().hiddenInputProps}/>
10
- </>);
7
+ return <ark.div {...mergedProps}/>;
11
8
  };
@@ -0,0 +1,8 @@
1
+ import { mergeProps } from '@zag-js/solid';
2
+ import { ark } from '../factory';
3
+ import { useFileUploadContext } from './use-file-upload-context';
4
+ export const FileUploadHiddenInput = (props) => {
5
+ const fileUpload = useFileUploadContext();
6
+ const mergedProps = mergeProps(() => fileUpload().hiddenInputProps, props);
7
+ return <ark.input {...mergedProps}/>;
8
+ };
@@ -10,3 +10,4 @@ export { FileUploadItemSizeText as ItemSizeText, } from './file-upload-item-size
10
10
  export { FileUploadLabel as Label, } from './file-upload-label';
11
11
  export { FileUploadRoot as Root } from './file-upload-root';
12
12
  export { FileUploadTrigger as Trigger, } from './file-upload-trigger';
13
+ export { FileUploadHiddenInput as HiddenInput, } from './file-upload-hidden-input';
@@ -10,5 +10,6 @@ export { FileUploadItemSizeText, } from './file-upload-item-size-text';
10
10
  export { FileUploadLabel } from './file-upload-label';
11
11
  export { FileUploadRoot } from './file-upload-root';
12
12
  export { FileUploadTrigger } from './file-upload-trigger';
13
+ export { FileUploadHiddenInput } from './file-upload-hidden-input';
13
14
  export { useFileUploadContext } from './use-file-upload-context';
14
15
  export * as FileUpload from './file-upload';
@@ -4,8 +4,8 @@ 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
- const getRootNode = useEnvironmentContext();
8
- const context = mergeProps({ id: createUniqueId(), dir: locale().dir, getRootNode }, props);
7
+ const environment = useEnvironmentContext();
8
+ const context = mergeProps({ id: createUniqueId(), dir: locale().dir, getRootNode: environment().getRootNode }, props);
9
9
  const [state, send] = useMachine(fileUpload.machine(context), { context });
10
10
  return createMemo(() => fileUpload.connect(state, send, normalizeProps));
11
11
  };
@@ -4,11 +4,11 @@ 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
- const getRootNode = useEnvironmentContext();
7
+ const environment = useEnvironmentContext();
8
8
  const context = mergeProps({
9
9
  id: createUniqueId(),
10
10
  dir: locale().dir,
11
- getRootNode,
11
+ getRootNode: environment().getRootNode,
12
12
  'open.controlled': props.open !== undefined,
13
13
  }, props);
14
14
  const [state, send] = useMachine(hoverCard.machine(context), { context });
@@ -4,11 +4,11 @@ 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
- const getRootNode = useEnvironmentContext();
7
+ const environment = useEnvironmentContext();
8
8
  const context = mergeProps({
9
9
  id: createUniqueId(),
10
10
  dir: locale().dir,
11
- getRootNode,
11
+ getRootNode: environment().getRootNode,
12
12
  'open.controlled': props.open !== undefined,
13
13
  }, props);
14
14
  const [state, send, machine] = useMachine(menu.machine(context), { context });
@@ -4,8 +4,8 @@ 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
- const getRootNode = useEnvironmentContext();
8
- const context = mergeProps({ id: createUniqueId(), dir: locale().dir, getRootNode }, props);
7
+ const environment = useEnvironmentContext();
8
+ const context = mergeProps({ id: createUniqueId(), dir: locale().dir, getRootNode: environment().getRootNode }, props);
9
9
  const [state, send] = useMachine(numberInput.machine(context), { context });
10
10
  return createMemo(() => numberInput.connect(state, send, normalizeProps));
11
11
  };
@@ -4,8 +4,8 @@ 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
- const getRootNode = useEnvironmentContext();
8
- const context = mergeProps({ id: createUniqueId(), dir: locale().dir, getRootNode }, props);
7
+ const environment = useEnvironmentContext();
8
+ const context = mergeProps({ id: createUniqueId(), dir: locale().dir, getRootNode: environment().getRootNode }, props);
9
9
  const [state, send] = useMachine(pagination.machine(context), { context });
10
10
  return createMemo(() => pagination.connect(state, send, normalizeProps));
11
11
  };
@@ -3,5 +3,6 @@ export { PinInputControl } from './pin-input-control';
3
3
  export { PinInputInput } from './pin-input-input';
4
4
  export { PinInputLabel } from './pin-input-label';
5
5
  export { PinInputRoot } from './pin-input-root';
6
+ export { PinInputHiddenInput } from './pin-input-hidden-input';
6
7
  export { usePinInputContext } from './use-pin-input-context';
7
8
  export * as PinInput from './pin-input';
@@ -0,0 +1,8 @@
1
+ import { mergeProps } from '@zag-js/solid';
2
+ import { ark } from '../factory';
3
+ import { usePinInputContext } from './use-pin-input-context';
4
+ export const PinInputHiddenInput = (props) => {
5
+ const pinInput = usePinInputContext();
6
+ const mergedProps = mergeProps(() => pinInput().hiddenInputProps, props);
7
+ return <ark.input {...mergedProps}/>;
8
+ };
@@ -25,10 +25,9 @@ export const PinInputRoot = (props) => {
25
25
  'type',
26
26
  'value',
27
27
  ]);
28
- const api = usePinInput(usePinInputProps);
29
- const mergedProps = mergeProps(() => api().rootProps, localProps);
30
- return (<PinInputProvider value={api}>
28
+ const pinInput = usePinInput(usePinInputProps);
29
+ const mergedProps = mergeProps(() => pinInput().rootProps, localProps);
30
+ return (<PinInputProvider value={pinInput}>
31
31
  <ark.div {...mergedProps}/>
32
- <input {...api().hiddenInputProps}/>
33
32
  </PinInputProvider>);
34
33
  };
@@ -1,5 +1,6 @@
1
1
  export { PinInputContext as Context, } from './pin-input-context';
2
2
  export { PinInputControl as Control, } from './pin-input-control';
3
+ export { PinInputHiddenInput as HiddenInput, } from './pin-input-hidden-input';
3
4
  export { PinInputInput as Input } from './pin-input-input';
4
5
  export { PinInputLabel as Label } from './pin-input-label';
5
6
  export { PinInputRoot as Root } from './pin-input-root';
@@ -4,8 +4,8 @@ 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
- const getRootNode = useEnvironmentContext();
8
- const context = mergeProps({ id: createUniqueId(), dir: locale().dir, getRootNode }, props);
7
+ const environment = useEnvironmentContext();
8
+ const context = mergeProps({ id: createUniqueId(), dir: locale().dir, getRootNode: environment().getRootNode }, props);
9
9
  const [state, send] = useMachine(pinInput.machine(context), { context });
10
10
  return createMemo(() => pinInput.connect(state, send, normalizeProps));
11
11
  };
@@ -4,11 +4,11 @@ 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
- const getRootNode = useEnvironmentContext();
7
+ const environment = useEnvironmentContext();
8
8
  const context = mergeProps({
9
9
  id: createUniqueId(),
10
10
  dir: locale().dir,
11
- getRootNode,
11
+ getRootNode: environment().getRootNode,
12
12
  'open.controlled': props.open !== undefined,
13
13
  }, props);
14
14
  const [state, send] = useMachine(popover.machine(context), { context });
@@ -4,8 +4,8 @@ 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
- const getRootNode = useEnvironmentContext();
8
- const context = mergeProps({ id: createUniqueId(), dir: locale().dir, getRootNode }, props);
7
+ const environment = useEnvironmentContext();
8
+ const context = mergeProps({ id: createUniqueId(), dir: locale().dir, getRootNode: environment().getRootNode }, props);
9
9
  const [state, send] = useMachine(progress.machine(context), { context });
10
10
  return createMemo(() => progress.connect(state, send, normalizeProps));
11
11
  };
@@ -4,8 +4,8 @@ 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
- const getRootNode = useEnvironmentContext();
8
- const context = mergeProps({ id: createUniqueId(), dir: locale().dir, getRootNode }, props);
7
+ const environment = useEnvironmentContext();
8
+ const context = mergeProps({ id: createUniqueId(), dir: locale().dir, getRootNode: environment().getRootNode }, props);
9
9
  const [state, send] = useMachine(radio.machine(context), {
10
10
  context,
11
11
  });
@@ -5,5 +5,6 @@ export { RatingGroupItemContext, } from './rating-group-item-context';
5
5
  export { RatingGroupLabel } from './rating-group-label';
6
6
  export { RatingGroupRoot } from './rating-group-root';
7
7
  export { useRatingGroupContext } from './use-rating-group-context';
8
+ export { RatingGroupHiddenInput, } from './rating-group-hidden-input';
8
9
  export { useRatingGroupItemContext, } from './use-rating-group-item-context';
9
10
  export * as RatingGroup from './rating-group';
@@ -2,10 +2,7 @@ import { mergeProps } from '@zag-js/solid';
2
2
  import { ark } from '../factory';
3
3
  import { useRatingGroupContext } from './use-rating-group-context';
4
4
  export const RatingGroupControl = (props) => {
5
- const api = useRatingGroupContext();
6
- const mergedProps = mergeProps(() => api().controlProps, props);
7
- return (<>
8
- <ark.div {...mergedProps}/>
9
- <input {...api().hiddenInputProps}/>
10
- </>);
5
+ const ratingGroup = useRatingGroupContext();
6
+ const mergedProps = mergeProps(() => ratingGroup().controlProps, props);
7
+ return <ark.div {...mergedProps}/>;
11
8
  };
@@ -0,0 +1,8 @@
1
+ import { mergeProps } from '@zag-js/solid';
2
+ import { ark } from '../factory';
3
+ import { useRatingGroupContext } from './use-rating-group-context';
4
+ export const RatingGroupHiddenInput = (props) => {
5
+ const ratingGroup = useRatingGroupContext();
6
+ const mergedProps = mergeProps(() => ratingGroup().hiddenInputProps, props);
7
+ return <ark.input {...mergedProps}/>;
8
+ };
@@ -4,3 +4,4 @@ export { RatingGroupItem as Item, } from './rating-group-item';
4
4
  export { RatingGroupItemContext as ItemContext, } from './rating-group-item-context';
5
5
  export { RatingGroupLabel as Label, } from './rating-group-label';
6
6
  export { RatingGroupRoot as Root, } from './rating-group-root';
7
+ export { RatingGroupHiddenInput as HiddenInput, } from './rating-group-hidden-input';
@@ -4,8 +4,8 @@ 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
- const getRootNode = useEnvironmentContext();
8
- const context = mergeProps({ id: createUniqueId(), dir: locale().dir, getRootNode }, props);
7
+ const environment = useEnvironmentContext();
8
+ const context = mergeProps({ id: createUniqueId(), dir: locale().dir, getRootNode: environment().getRootNode }, props);
9
9
  const [state, send] = useMachine(rating.machine(context), { context });
10
10
  return createMemo(() => rating.connect(state, send, normalizeProps));
11
11
  };
@@ -4,8 +4,8 @@ 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
- const getRootNode = useEnvironmentContext();
8
- const context = mergeProps({ id: createUniqueId(), dir: locale().dir, getRootNode }, props);
7
+ const environment = useEnvironmentContext();
8
+ const context = mergeProps({ id: createUniqueId(), dir: locale().dir, getRootNode: environment().getRootNode }, props);
9
9
  const [state, send] = useMachine(segment.machine(context), { context });
10
10
  return createMemo(() => segment.connect(state, send, normalizeProps));
11
11
  };
@@ -2,6 +2,7 @@ export { SelectClearTrigger } from './select-clear-trigger';
2
2
  export { SelectContent } from './select-content';
3
3
  export { SelectContext } from './select-context';
4
4
  export { SelectControl } from './select-control';
5
+ export { SelectHiddenSelect } from './select-hidden-select';
5
6
  export { SelectIndicator } from './select-indicator';
6
7
  export { SelectItem } from './select-item';
7
8
  export { SelectItemContext } from './select-item-context';
@@ -1,20 +1,8 @@
1
1
  import { mergeProps } from '@zag-js/solid';
2
- import { Index, Show, createMemo } from 'solid-js';
3
2
  import { ark } from '../factory';
4
3
  import { useSelectContext } from './use-select-context';
5
4
  export const SelectControl = (props) => {
6
5
  const select = useSelectContext();
7
6
  const mergedProps = mergeProps(() => select().controlProps, props);
8
- const isValueEmpty = createMemo(() => select().value.length === 0);
9
- return (<>
10
- <ark.div {...mergedProps}/>
11
- <select {...select().hiddenSelectProps}>
12
- <Show when={isValueEmpty()}>
13
- <option value=""/>
14
- </Show>
15
- <Index each={select().collection.toArray()}>
16
- {(option) => <option value={option().value}>{option().label}</option>}
17
- </Index>
18
- </select>
19
- </>);
7
+ return <ark.div {...mergedProps}/>;
20
8
  };
@@ -0,0 +1,17 @@
1
+ import { mergeProps } from '@zag-js/solid';
2
+ import { Index, Show, createMemo } from 'solid-js';
3
+ import { ark } from '../factory';
4
+ import { useSelectContext } from './use-select-context';
5
+ export const SelectHiddenSelect = (props) => {
6
+ const select = useSelectContext();
7
+ const mergedProps = mergeProps(() => select().controlProps, props);
8
+ const isValueEmpty = createMemo(() => select().value.length === 0);
9
+ return (<ark.select {...mergedProps}>
10
+ <Show when={isValueEmpty()}>
11
+ <option value=""/>
12
+ </Show>
13
+ <Index each={select().collection.toArray()}>
14
+ {(option) => <option value={option().value}>{option().label}</option>}
15
+ </Index>
16
+ </ark.select>);
17
+ };
@@ -2,6 +2,7 @@ export { SelectClearTrigger as ClearTrigger, } from './select-clear-trigger';
2
2
  export { SelectContent as Content } from './select-content';
3
3
  export { SelectContext as Context } from './select-context';
4
4
  export { SelectControl as Control } from './select-control';
5
+ export { SelectHiddenSelect as HiddenSelect, } from './select-hidden-select';
5
6
  export { SelectIndicator as Indicator, } from './select-indicator';
6
7
  export { SelectItem as Item } from './select-item';
7
8
  export { SelectItemContext as ItemContext, } from './select-item-context';
@@ -12,11 +12,11 @@ export const useSelect = (props) => {
12
12
  ]);
13
13
  const collection = () => select.collection(collectionOptions);
14
14
  const locale = useLocaleContext();
15
- const getRootNode = useEnvironmentContext();
15
+ const environment = useEnvironmentContext();
16
16
  const context = mergeProps({
17
17
  id: createUniqueId(),
18
18
  dir: locale().dir,
19
- getRootNode,
19
+ getRootNode: environment().getRootNode,
20
20
  collection: collection(),
21
21
  'open.controlled': props.open !== undefined,
22
22
  }, rest);
@@ -4,8 +4,8 @@ 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
- const getRootNode = useEnvironmentContext();
8
- const context = mergeProps({ id: createUniqueId(), dir: locale().dir, getRootNode }, props);
7
+ const environment = useEnvironmentContext();
8
+ const context = mergeProps({ id: createUniqueId(), dir: locale().dir, getRootNode: environment().getRootNode }, props);
9
9
  const [state, send] = useMachine(slider.machine(context), { context });
10
10
  return createMemo(() => slider.connect(state, send, normalizeProps));
11
11
  };