@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 } from 'solid-js';
4
4
  import { useEnvironmentContext, useLocaleContext } from '../../providers';
5
5
  export const useSplitter = (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(splitter.machine(context), { context });
10
10
  return createMemo(() => splitter.connect(state, send, normalizeProps));
11
11
  };
@@ -1,5 +1,6 @@
1
1
  export { SwitchContext } from './switch-context';
2
2
  export { SwitchControl } from './switch-control';
3
+ export { SwitchHiddenInput } from './switch-hidden-input';
3
4
  export { SwitchLabel } from './switch-label';
4
5
  export { SwitchRoot } from './switch-root';
5
6
  export { SwitchThumb } from './switch-thumb';
@@ -4,8 +4,5 @@ import { useSwitchContext } from './use-switch-context';
4
4
  export const SwitchControl = (props) => {
5
5
  const api = useSwitchContext();
6
6
  const mergedProps = mergeProps(() => api().controlProps, props);
7
- return (<>
8
- <ark.span {...mergedProps}/>
9
- <input {...api().hiddenInputProps}/>
10
- </>);
7
+ return <ark.span {...mergedProps}/>;
11
8
  };
@@ -0,0 +1,8 @@
1
+ import { mergeProps } from '@zag-js/solid';
2
+ import { ark } from '../factory';
3
+ import { useSwitchContext } from './use-switch-context';
4
+ export const SwitchHiddenInput = (props) => {
5
+ const api = useSwitchContext();
6
+ const mergedProps = mergeProps(() => api().hiddenInputProps, props);
7
+ return <ark.input {...mergedProps}/>;
8
+ };
@@ -1,5 +1,6 @@
1
1
  export { SwitchContext as Context } from './switch-context';
2
2
  export { SwitchControl as Control } from './switch-control';
3
+ export { SwitchHiddenInput as HiddenInput, } from './switch-hidden-input';
3
4
  export { SwitchLabel as Label } from './switch-label';
4
5
  export { SwitchRoot as Root } from './switch-root';
5
6
  export { SwitchThumb as Thumb } from './switch-thumb';
@@ -4,8 +4,8 @@ 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
- 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(zagSwitch.machine(context), { context });
10
10
  return createMemo(() => zagSwitch.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 useTabs = (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(tabs.machine(context), { context });
10
10
  return createMemo(() => tabs.connect(state, send, normalizeProps));
11
11
  };
@@ -6,6 +6,7 @@ export { TagsInputItem } from './tags-input-item';
6
6
  export { TagsInputItemContext } from './tags-input-item-context';
7
7
  export { TagsInputItemDeleteTrigger, } from './tags-input-item-delete-trigger';
8
8
  export { TagsInputItemInput } from './tags-input-item-input';
9
+ export { TagsInputHiddenInput } from './tags-input-hidden-input';
9
10
  export { TagsInputItemPreview } from './tags-input-item-preview';
10
11
  export { TagsInputItemText } from './tags-input-item-text';
11
12
  export { TagsInputLabel } from './tags-input-label';
@@ -0,0 +1,8 @@
1
+ import { mergeProps } from '@zag-js/solid';
2
+ import { ark } from '../factory';
3
+ import { useTagsInputContext } from './use-tags-input-context';
4
+ export const TagsInputHiddenInput = (props) => {
5
+ const tagsInput = useTagsInputContext();
6
+ const mergedProps = mergeProps(() => tagsInput().hiddenInputProps, props);
7
+ return <ark.input {...mergedProps}/>;
8
+ };
@@ -36,6 +36,5 @@ export const TagsInputRoot = (props) => {
36
36
  const mergedProps = mergeProps(() => api().rootProps, localProps);
37
37
  return (<TagsInputProvider value={api}>
38
38
  <ark.div {...mergedProps}/>
39
- <input {...api().hiddenInputProps}/>
40
39
  </TagsInputProvider>);
41
40
  };
@@ -1,6 +1,7 @@
1
1
  export { TagsInputClearTrigger as ClearTrigger, } from './tags-input-clear-trigger';
2
2
  export { TagsInputContext as Context, } from './tags-input-context';
3
3
  export { TagsInputControl as Control, } from './tags-input-control';
4
+ export { TagsInputHiddenInput as HiddenInput, } from './tags-input-hidden-input';
4
5
  export { TagsInputInput as Input } from './tags-input-input';
5
6
  export { TagsInputItem as Item } from './tags-input-item';
6
7
  export { TagsInputItemContext as ItemContext, } from './tags-input-item-context';
@@ -4,8 +4,8 @@ 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
- 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(tagsInput.machine(context), { context });
10
10
  return createMemo(() => tagsInput.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 useToggleGroup = (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(toggleGroup.machine(context), {
10
10
  context,
11
11
  });
@@ -4,11 +4,11 @@ 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
- 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(tooltip.machine(context), { context });
@@ -4,8 +4,8 @@ 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
- 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(treeView.machine(context), { context });
10
10
  return createMemo(() => treeView.connect(state, send, normalizeProps));
11
11
  };
@@ -1,11 +1,19 @@
1
- import { createMemo } from 'solid-js';
1
+ import { getDocument, getWindow } from '@zag-js/dom-query';
2
+ import { Show, createMemo, createSignal } from 'solid-js';
3
+ import { runIfFn } from '../../utils/run-if-fn';
2
4
  import { EnvironmentProvider } from './use-environment-context';
3
5
  export const Environment = (props) => {
4
- const spanRef = undefined;
5
- // @ts-expect-error TODO fix
6
- const currentEnv = createMemo(() => () => props.value ?? spanRef?.ownerDocument ?? document);
7
- return (<EnvironmentProvider value={currentEnv()}>
6
+ const [spanRef, setSpanRef] = createSignal();
7
+ const getRootNode = () => runIfFn(props.value) ?? spanRef()?.ownerDocument ?? document;
8
+ const environment = createMemo(() => ({
9
+ getRootNode,
10
+ getDocument: () => getDocument(getRootNode()),
11
+ getWindow: () => getWindow(getRootNode()),
12
+ }));
13
+ return (<EnvironmentProvider value={environment}>
8
14
  {props.children}
9
- {!props.value && <span hidden ref={spanRef}/>}
15
+ <Show when={!props.value}>
16
+ <span hidden ref={setSpanRef}/>
17
+ </Show>
10
18
  </EnvironmentProvider>);
11
19
  };
@@ -1,3 +1,2 @@
1
- import { Environment } from './environment';
2
- import { useEnvironmentContext } from './use-environment-context';
3
- export { Environment, useEnvironmentContext };
1
+ export { Environment } from './environment';
2
+ export { useEnvironmentContext, } from './use-environment-context';
@@ -3,4 +3,9 @@ export const [EnvironmentProvider, useEnvironmentContext] = createContext({
3
3
  hookName: 'useEnvironmentContext',
4
4
  providerName: '<EnvironmentProvider />',
5
5
  strict: false,
6
+ defaultValue: () => ({
7
+ getRootNode: () => document,
8
+ getDocument: () => document,
9
+ getWindow: () => window,
10
+ }),
6
11
  });
@@ -5,11 +5,11 @@ import { LocaleContextProvider } from './use-locale-context';
5
5
  export const LocaleProvider = (props) => {
6
6
  const [localeProps, restProps] = splitProps(props, ['locale', 'defaultLocale']);
7
7
  const [locale, setLocale] = createSignal(localeProps.defaultLocale || localeProps.locale || 'en-US');
8
- const getRootNode = useEnvironmentContext();
8
+ const environment = useEnvironmentContext();
9
9
  createEffect(() => {
10
10
  const cleanup = trackLocale({
11
11
  locale: localeProps.locale,
12
- getRootNode,
12
+ getRootNode: environment().getRootNode,
13
13
  onLocaleChange(locale) {
14
14
  setLocale(locale.locale);
15
15
  },
@@ -0,0 +1,4 @@
1
+ const isFunction = (value) => typeof value === 'function';
2
+ export const runIfFn = (valueOrFn, ...args) => isFunction(valueOrFn)
3
+ ? valueOrFn(...args)
4
+ : valueOrFn;
@@ -0,0 +1,4 @@
1
+ import { type HTMLArkProps } from '../factory';
2
+ export interface CheckboxHiddenInputProps extends HTMLArkProps<'div'> {
3
+ }
4
+ export declare const CheckboxHiddenInput: (props: CheckboxHiddenInputProps) => import("solid-js").JSX.Element;
@@ -1,4 +1,9 @@
1
+ import type { Assign } from '../../types';
1
2
  import { type HTMLArkProps } from '../factory';
2
- export interface CheckboxIndicatorProps extends HTMLArkProps<'div'> {
3
+ interface IndicatorProps {
4
+ indeterminate?: boolean;
5
+ }
6
+ export interface CheckboxIndicatorProps extends Assign<HTMLArkProps<'div'>, IndicatorProps> {
3
7
  }
4
8
  export declare const CheckboxIndicator: (props: CheckboxIndicatorProps) => import("solid-js").JSX.Element;
9
+ export {};
@@ -1,6 +1,7 @@
1
1
  export type { CheckedChangeDetails, CheckedState } from '@zag-js/checkbox';
2
2
  export { CheckboxContext as Context, type CheckboxContextProps as ContextProps, } from './checkbox-context';
3
3
  export { CheckboxControl as Control, type CheckboxControlProps as ControlProps, } from './checkbox-control';
4
+ export { CheckboxHiddenInput as HiddenInput, type CheckboxHiddenInputProps as HiddenInputProps, } from './checkbox-hidden-input';
4
5
  export { CheckboxIndicator as Indicator, type CheckboxIndicatorProps as IndicatorProps, } from './checkbox-indicator';
5
6
  export { CheckboxLabel as Label, type CheckboxLabelProps as LabelProps } from './checkbox-label';
6
7
  export { CheckboxRoot as Root, type CheckboxRootProps as RootProps } from './checkbox-root';
@@ -1,8 +1,9 @@
1
1
  export type { CheckedChangeDetails as CheckboxCheckedChangeDetails, CheckedState as CheckboxCheckedState, } from '@zag-js/checkbox';
2
2
  export { CheckboxContext, type CheckboxContextProps } from './checkbox-context';
3
3
  export { CheckboxControl, type CheckboxControlProps } from './checkbox-control';
4
+ export { CheckboxHiddenInput, type CheckboxHiddenInputProps } from './checkbox-hidden-input';
4
5
  export { CheckboxIndicator, type CheckboxIndicatorProps } from './checkbox-indicator';
5
6
  export { CheckboxLabel, type CheckboxLabelProps } from './checkbox-label';
6
7
  export { CheckboxRoot, type CheckboxRootProps } from './checkbox-root';
7
- export { type UseCheckboxContext, useCheckboxContext } from './use-checkbox-context';
8
+ export { useCheckboxContext, type UseCheckboxContext } from './use-checkbox-context';
8
9
  export * as Checkbox from './checkbox';
@@ -0,0 +1,4 @@
1
+ import { type HTMLArkProps } from '../factory';
2
+ export interface ColorPickerHiddenInputProps extends HTMLArkProps<'input'> {
3
+ }
4
+ export declare const ColorPickerHiddenInput: (props: ColorPickerHiddenInputProps) => import("solid-js").JSX.Element;
@@ -23,3 +23,4 @@ export { ColorPickerTransparencyGrid as TransparencyGrid, type ColorPickerTransp
23
23
  export { ColorPickerTrigger as Trigger, type ColorPickerTriggerProps as TriggerProps, } from './color-picker-trigger';
24
24
  export { ColorPickerValueText as ValueText, type ColorPickerValueTextProps as ValueTextProps, } from './color-picker-value-text';
25
25
  export { ColorPickerView as View, type ColorPickerViewProps as ViewProps, } from './color-picker-view';
26
+ export { ColorPickerHiddenInput as HiddenInput, type ColorPickerHiddenInputProps as HiddenInputProps, } from './color-picker-hidden-input';
@@ -12,6 +12,7 @@ export { ColorPickerControl, type ColorPickerControlProps } from './color-picker
12
12
  export { ColorPickerEyeDropperTrigger, type ColorPickerEyeDropperTriggerProps, } from './color-picker-eye-dropper-trigger';
13
13
  export { ColorPickerFormatSelect, type ColorPickerFormatSelectProps, } from './color-picker-format-select';
14
14
  export { ColorPickerFormatTrigger, type ColorPickerFormatTriggerProps, } from './color-picker-format-trigger';
15
+ export { ColorPickerHiddenInput, type ColorPickerHiddenInputProps, } from './color-picker-hidden-input';
15
16
  export { ColorPickerLabel, type ColorPickerLabelProps } from './color-picker-label';
16
17
  export { ColorPickerPositioner, type ColorPickerPositionerProps } from './color-picker-positioner';
17
18
  export { ColorPickerRoot, type ColorPickerRootProps } from './color-picker-root';
@@ -23,5 +24,5 @@ export { ColorPickerTransparencyGrid, type ColorPickerTransparencyGridProps, } f
23
24
  export { ColorPickerTrigger, type ColorPickerTriggerProps } from './color-picker-trigger';
24
25
  export { ColorPickerValueText, type ColorPickerValueTextProps } from './color-picker-value-text';
25
26
  export { ColorPickerView, type ColorPickerViewProps } from './color-picker-view';
26
- export { type UseColorPickerContext, useColorPickerContext } from './use-color-picker-context';
27
+ export { useColorPickerContext, type UseColorPickerContext } from './use-color-picker-context';
27
28
  export * as ColorPicker from './color-picker';
@@ -0,0 +1,4 @@
1
+ import { type HTMLArkProps } from '../factory';
2
+ export interface FileUploadHiddenInputProps extends HTMLArkProps<'input'> {
3
+ }
4
+ export declare const FileUploadHiddenInput: (props: FileUploadHiddenInputProps) => import("solid-js").JSX.Element;
@@ -11,3 +11,4 @@ export { FileUploadItemSizeText as ItemSizeText, type FileUploadItemSizeTextProp
11
11
  export { FileUploadLabel as Label, type FileUploadLabelProps as LabelProps, } from './file-upload-label';
12
12
  export { FileUploadRoot as Root, type FileUploadRootProps as RootProps } from './file-upload-root';
13
13
  export { FileUploadTrigger as Trigger, type FileUploadTriggerProps as TriggerProps, } from './file-upload-trigger';
14
+ export { FileUploadHiddenInput as HiddenInput, type FileUploadHiddenInputProps as HiddenInputProps, } from './file-upload-hidden-input';
@@ -11,5 +11,6 @@ export { FileUploadItemSizeText, type FileUploadItemSizeTextProps, } from './fil
11
11
  export { FileUploadLabel, type FileUploadLabelProps } from './file-upload-label';
12
12
  export { FileUploadRoot, type FileUploadRootProps } from './file-upload-root';
13
13
  export { FileUploadTrigger, type FileUploadTriggerProps } from './file-upload-trigger';
14
+ export { FileUploadHiddenInput, type FileUploadHiddenInputProps } from './file-upload-hidden-input';
14
15
  export { type UseFileUploadContext, useFileUploadContext } from './use-file-upload-context';
15
16
  export * as FileUpload from './file-upload';
@@ -4,5 +4,6 @@ export { PinInputControl, type PinInputControlProps } from './pin-input-control'
4
4
  export { PinInputInput, type PinInputInputProps } from './pin-input-input';
5
5
  export { PinInputLabel, type PinInputLabelProps } from './pin-input-label';
6
6
  export { PinInputRoot, type PinInputRootProps } from './pin-input-root';
7
+ export { PinInputHiddenInput, type PinInputHiddenInputProps } from './pin-input-hidden-input';
7
8
  export { type UsePinInputContext, usePinInputContext } from './use-pin-input-context';
8
9
  export * as PinInput from './pin-input';
@@ -0,0 +1,4 @@
1
+ import { type HTMLArkProps } from '../factory';
2
+ export interface PinInputHiddenInputProps extends HTMLArkProps<'input'> {
3
+ }
4
+ export declare const PinInputHiddenInput: (props: PinInputHiddenInputProps) => import("solid-js").JSX.Element;
@@ -1,6 +1,7 @@
1
1
  export type { ValueChangeDetails, ValueInvalidDetails } from '@zag-js/pin-input';
2
2
  export { PinInputContext as Context, type PinInputContextProps as ContextProps, } from './pin-input-context';
3
3
  export { PinInputControl as Control, type PinInputControlProps as ControlProps, } from './pin-input-control';
4
+ export { PinInputHiddenInput as HiddenInput, type PinInputHiddenInputProps as HiddenInputProps, } from './pin-input-hidden-input';
4
5
  export { PinInputInput as Input, type PinInputInputProps as InputProps } from './pin-input-input';
5
6
  export { PinInputLabel as Label, type PinInputLabelProps as LabelProps } from './pin-input-label';
6
7
  export { PinInputRoot as Root, type PinInputRootProps as RootProps } from './pin-input-root';
@@ -6,5 +6,6 @@ export { RatingGroupItemContext, type RatingGroupItemContextProps, } from './rat
6
6
  export { RatingGroupLabel, type RatingGroupLabelProps } from './rating-group-label';
7
7
  export { RatingGroupRoot, type RatingGroupRootProps } from './rating-group-root';
8
8
  export { type UseRatingGroupContext, useRatingGroupContext } from './use-rating-group-context';
9
+ export { RatingGroupHiddenInput, type RatingGroupHiddenInputProps, } from './rating-group-hidden-input';
9
10
  export { type UseRatingGroupItemContext, useRatingGroupItemContext, } from './use-rating-group-item-context';
10
11
  export * as RatingGroup from './rating-group';
@@ -0,0 +1,4 @@
1
+ import { type HTMLArkProps } from '../factory';
2
+ export interface RatingGroupHiddenInputProps extends HTMLArkProps<'input'> {
3
+ }
4
+ export declare const RatingGroupHiddenInput: (props: RatingGroupHiddenInputProps) => import("solid-js").JSX.Element;
@@ -5,3 +5,4 @@ export { RatingGroupItem as Item, type RatingGroupItemProps as ItemProps, } from
5
5
  export { RatingGroupItemContext as ItemContext, type RatingGroupItemContextProps as ItemContextProps, } from './rating-group-item-context';
6
6
  export { RatingGroupLabel as Label, type RatingGroupLabelProps as LabelProps, } from './rating-group-label';
7
7
  export { RatingGroupRoot as Root, type RatingGroupRootProps as RootProps, } from './rating-group-root';
8
+ export { RatingGroupHiddenInput as HiddenInput, type RatingGroupHiddenInputProps as HiddenInputProps, } from './rating-group-hidden-input';
@@ -4,6 +4,7 @@ export { SelectClearTrigger, type SelectClearTriggerProps } from './select-clear
4
4
  export { SelectContent, type SelectContentProps } from './select-content';
5
5
  export { SelectContext, type SelectContextProps } from './select-context';
6
6
  export { SelectControl, type SelectControlProps } from './select-control';
7
+ export { SelectHiddenSelect, type SelectHiddenSelectProps } from './select-hidden-select';
7
8
  export { SelectIndicator, type SelectIndicatorProps } from './select-indicator';
8
9
  export { SelectItem, type SelectItemProps } from './select-item';
9
10
  export { SelectItemContext, type SelectItemContextProps } from './select-item-context';
@@ -0,0 +1,4 @@
1
+ import { type HTMLArkProps } from '../factory';
2
+ export interface SelectHiddenSelectProps extends HTMLArkProps<'select'> {
3
+ }
4
+ export declare const SelectHiddenSelect: (props: SelectHiddenSelectProps) => import("solid-js").JSX.Element;
@@ -4,6 +4,7 @@ export { SelectClearTrigger as ClearTrigger, type SelectClearTriggerProps as Cle
4
4
  export { SelectContent as Content, type SelectContentProps as ContentProps } from './select-content';
5
5
  export { SelectContext as Context, type SelectContextProps as ContextProps } from './select-context';
6
6
  export { SelectControl as Control, type SelectControlProps as ControlProps } from './select-control';
7
+ export { SelectHiddenSelect as HiddenSelect, type SelectHiddenSelectProps as HiddenSelectProps, } from './select-hidden-select';
7
8
  export { SelectIndicator as Indicator, type SelectIndicatorProps as IndicatorProps, } from './select-indicator';
8
9
  export { SelectItem as Item, type SelectItemProps as ItemProps } from './select-item';
9
10
  export { SelectItemContext as ItemContext, type SelectItemContextProps as ItemContextProps, } from './select-item-context';
@@ -1,8 +1,9 @@
1
1
  export type { CheckedChangeDetails as SwitchCheckedChangeDetails } from '@zag-js/switch';
2
2
  export { SwitchContext, type SwitchContextProps } from './switch-context';
3
3
  export { SwitchControl, type SwitchControlProps } from './switch-control';
4
+ export { SwitchHiddenInput, type SwitchHiddenInputProps } from './switch-hidden-input';
4
5
  export { SwitchLabel, type SwitchLabelProps } from './switch-label';
5
6
  export { SwitchRoot, type SwitchRootProps } from './switch-root';
6
7
  export { SwitchThumb, type SwitchThumbProps } from './switch-thumb';
7
- export { type UseSwitchContext, useSwitchContext } from './use-switch-context';
8
+ export { useSwitchContext, type UseSwitchContext } from './use-switch-context';
8
9
  export * as Switch from './switch';
@@ -0,0 +1,4 @@
1
+ import { type HTMLArkProps } from '../factory';
2
+ export interface SwitchHiddenInputProps extends HTMLArkProps<'input'> {
3
+ }
4
+ export declare const SwitchHiddenInput: (props: SwitchHiddenInputProps) => import("solid-js").JSX.Element;
@@ -1,6 +1,7 @@
1
1
  export type { CheckedChangeDetails } from '@zag-js/switch';
2
2
  export { SwitchContext as Context, type SwitchContextProps as ContextProps } from './switch-context';
3
3
  export { SwitchControl as Control, type SwitchControlProps as ControlProps } from './switch-control';
4
+ export { SwitchHiddenInput as HiddenInput, type SwitchHiddenInputProps as HiddenInputProps, } from './switch-hidden-input';
4
5
  export { SwitchLabel as Label, type SwitchLabelProps as LabelProps } from './switch-label';
5
6
  export { SwitchRoot as Root, type SwitchRootProps as RootProps } from './switch-root';
6
7
  export { SwitchThumb as Thumb, type SwitchThumbProps as ThumbProps } from './switch-thumb';
@@ -7,6 +7,7 @@ export { TagsInputItem, type TagsInputItemProps } from './tags-input-item';
7
7
  export { TagsInputItemContext, type TagsInputItemContextProps } from './tags-input-item-context';
8
8
  export { TagsInputItemDeleteTrigger, type TagsInputItemDeleteTriggerProps, } from './tags-input-item-delete-trigger';
9
9
  export { TagsInputItemInput, type TagsInputItemInputProps } from './tags-input-item-input';
10
+ export { TagsInputHiddenInput, type TagsInputHiddenInputProps } from './tags-input-hidden-input';
10
11
  export { TagsInputItemPreview, type TagsInputItemPreviewProps } from './tags-input-item-preview';
11
12
  export { TagsInputItemText, type TagsInputItemTextProps } from './tags-input-item-text';
12
13
  export { TagsInputLabel, type TagsInputLabelProps } from './tags-input-label';
@@ -0,0 +1,4 @@
1
+ import { type HTMLArkProps } from '../factory';
2
+ export interface TagsInputHiddenInputProps extends HTMLArkProps<'input'> {
3
+ }
4
+ export declare const TagsInputHiddenInput: (props: TagsInputHiddenInputProps) => import("solid-js").JSX.Element;
@@ -2,6 +2,7 @@ export type { HighlightChangeDetails, ValidityChangeDetails, ValueChangeDetails,
2
2
  export { TagsInputClearTrigger as ClearTrigger, type TagsInputClearTriggerProps as ClearTriggerProps, } from './tags-input-clear-trigger';
3
3
  export { TagsInputContext as Context, type TagsInputContextProps as ContextProps, } from './tags-input-context';
4
4
  export { TagsInputControl as Control, type TagsInputControlProps as ControlProps, } from './tags-input-control';
5
+ export { TagsInputHiddenInput as HiddenInput, type TagsInputHiddenInputProps as HiddenInputProps, } from './tags-input-hidden-input';
5
6
  export { TagsInputInput as Input, type TagsInputInputProps as InputProps } from './tags-input-input';
6
7
  export { TagsInputItem as Item, type TagsInputItemProps as ItemProps } from './tags-input-item';
7
8
  export { TagsInputItemContext as ItemContext, type TagsInputItemContextProps as ItemContextProps, } from './tags-input-item-context';
@@ -1,6 +1,7 @@
1
1
  import { type JSX } from 'solid-js';
2
+ import { type RootNode } from './use-environment-context';
2
3
  export interface EnvironmentProps {
3
4
  children?: JSX.Element;
4
- value?: ShadowRoot | Document | Node;
5
+ value?: RootNode | (() => RootNode);
5
6
  }
6
7
  export declare const Environment: (props: EnvironmentProps) => JSX.Element;
@@ -1,4 +1,2 @@
1
- import { Environment, type EnvironmentProps } from './environment';
2
- import { type EnvironmentContext, useEnvironmentContext } from './use-environment-context';
3
- export { Environment, useEnvironmentContext };
4
- export type { EnvironmentContext, EnvironmentProps };
1
+ export { Environment, type EnvironmentProps } from './environment';
2
+ export { useEnvironmentContext, type EnvironmentContext, type RootNode, } from './use-environment-context';
@@ -1,3 +1,18 @@
1
- import type { CommonProperties } from '@zag-js/types';
2
- export type EnvironmentContext = CommonProperties['getRootNode'];
3
- export declare const EnvironmentProvider: import("solid-js").ContextProviderComponent<() => Node | Document | ShadowRoot>, useEnvironmentContext: () => () => Node | Document | ShadowRoot;
1
+ import type { Accessor } from 'solid-js';
2
+ export type RootNode = ShadowRoot | Document | Node;
3
+ export interface EnvironmentContext {
4
+ /**
5
+ * The root node of the application.
6
+ * This is used to determine the window and document objects.
7
+ */
8
+ getRootNode(): RootNode;
9
+ /**
10
+ * The document context for the root node.
11
+ */
12
+ getDocument(): Document;
13
+ /**
14
+ * The window context for the root node.
15
+ */
16
+ getWindow(): Window & typeof globalThis;
17
+ }
18
+ export declare const EnvironmentProvider: import("solid-js").ContextProviderComponent<Accessor<EnvironmentContext>>, useEnvironmentContext: () => Accessor<EnvironmentContext>;
@@ -0,0 +1,2 @@
1
+ export type AnyFunction<Arg = unknown, ReturnValue = unknown> = (...args: Arg[]) => ReturnValue;
2
+ export declare const runIfFn: <MaybeReturnValue, FunctionArgs>(valueOrFn: MaybeReturnValue | ((...fnArgs: FunctionArgs[]) => MaybeReturnValue), ...args: FunctionArgs[]) => MaybeReturnValue;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@ark-ui/solid",
3
- "version": "3.0.0-2",
3
+ "version": "3.0.0-3",
4
4
  "description": "A collection of unstyled, accessible UI components for Solid, utilizing state machines for seamless interaction.",
5
5
  "keywords": [
6
6
  "accordion",
@@ -91,6 +91,7 @@
91
91
  "@zag-js/combobox": "0.49.0",
92
92
  "@zag-js/date-picker": "0.49.0",
93
93
  "@zag-js/dialog": "0.49.0",
94
+ "@zag-js/dom-query": "0.49.0",
94
95
  "@zag-js/editable": "0.49.0",
95
96
  "@zag-js/file-upload": "0.49.0",
96
97
  "@zag-js/hover-card": "0.49.0",
@@ -119,7 +120,7 @@
119
120
  "@zag-js/types": "0.49.0"
120
121
  },
121
122
  "devDependencies": {
122
- "@biomejs/biome": "1.7.1",
123
+ "@biomejs/biome": "1.7.2",
123
124
  "@release-it/keep-a-changelog": "5.0.0",
124
125
  "@solidjs/testing-library": "0.8.7",
125
126
  "@storybook/addon-a11y": "8.0.9",
@@ -131,7 +132,7 @@
131
132
  "@types/testing-library__jest-dom": "5.14.9",
132
133
  "globby": "14.0.1",
133
134
  "jsdom": "24.0.0",
134
- "lucide-solid": "0.376.0",
135
+ "lucide-solid": "0.377.0",
135
136
  "release-it": "17.2.1",
136
137
  "resize-observer-polyfill": "1.5.1",
137
138
  "rollup": "4.17.2",
@@ -141,9 +142,9 @@
141
142
  "storybook-solidjs": "1.0.0-beta.2",
142
143
  "storybook-solidjs-vite": "1.0.0-beta.2",
143
144
  "typescript": "5.4.5",
144
- "vite": "5.2.10",
145
+ "vite": "5.2.11",
145
146
  "vite-plugin-solid": "2.10.2",
146
- "vitest": "1.5.2"
147
+ "vitest": "1.5.3"
147
148
  },
148
149
  "peerDependencies": {
149
150
  "solid-js": ">=1.6.0"