@ark-ui/solid 3.12.1 → 4.0.0

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 (105) hide show
  1. package/dist/cjs/index.js +101 -60
  2. package/dist/cjs/index.js.map +1 -1
  3. package/dist/esm/index.js +91 -61
  4. package/dist/esm/index.js.map +1 -1
  5. package/dist/source/components/accordion/index.js +1 -1
  6. package/dist/source/components/carousel/index.js +1 -1
  7. package/dist/source/components/checkbox/index.js +1 -1
  8. package/dist/source/components/clipboard/index.js +1 -1
  9. package/dist/source/components/collapsible/index.js +1 -1
  10. package/dist/source/components/collection.js +3 -0
  11. package/dist/source/components/color-picker/index.js +2 -1
  12. package/dist/source/components/color-picker/use-color-picker.js +1 -5
  13. package/dist/source/components/combobox/combobox-root.jsx +1 -4
  14. package/dist/source/components/combobox/index.js +2 -1
  15. package/dist/source/components/combobox/use-combobox.js +11 -13
  16. package/dist/source/components/date-picker/index.js +2 -1
  17. package/dist/source/components/date-picker/use-date-picker.js +2 -9
  18. package/dist/source/components/dialog/index.js +1 -1
  19. package/dist/source/components/editable/index.js +1 -2
  20. package/dist/source/components/field/index.js +2 -2
  21. package/dist/source/components/fieldset/index.js +1 -1
  22. package/dist/source/components/file-upload/file-upload-clear-trigger.jsx +8 -0
  23. package/dist/source/components/file-upload/file-upload.js +2 -1
  24. package/dist/source/components/file-upload/index.js +3 -2
  25. package/dist/source/components/hover-card/index.js +1 -1
  26. package/dist/source/components/menu/index.js +1 -1
  27. package/dist/source/components/number-input/index.js +1 -1
  28. package/dist/source/components/pagination/index.js +1 -1
  29. package/dist/source/components/pin-input/index.js +1 -1
  30. package/dist/source/components/popover/index.js +1 -1
  31. package/dist/source/components/progress/index.js +1 -1
  32. package/dist/source/components/qr-code/index.js +1 -1
  33. package/dist/source/components/qr-code/qr-code.js +1 -1
  34. package/dist/source/components/radio-group/index.js +1 -1
  35. package/dist/source/components/rating-group/index.js +1 -1
  36. package/dist/source/components/segment-group/index.js +1 -1
  37. package/dist/source/components/select/index.js +2 -1
  38. package/dist/source/components/select/select-root.jsx +2 -4
  39. package/dist/source/components/select/use-select.js +4 -14
  40. package/dist/source/components/signature-pad/index.js +2 -2
  41. package/dist/source/components/slider/index.js +1 -1
  42. package/dist/source/components/splitter/index.js +1 -1
  43. package/dist/source/components/switch/index.js +1 -1
  44. package/dist/source/components/tabs/index.js +1 -1
  45. package/dist/source/components/tabs/tabs-root.jsx +1 -0
  46. package/dist/source/components/tags-input/index.js +1 -1
  47. package/dist/source/components/timer/index.js +3 -2
  48. package/dist/source/components/timer/timer.anatomy.js +1 -0
  49. package/dist/source/components/toast/index.js +1 -1
  50. package/dist/source/components/toggle-group/index.js +1 -1
  51. package/dist/source/components/tooltip/index.js +1 -1
  52. package/dist/source/components/tree-view/index.js +1 -1
  53. package/dist/types/components/accordion/index.d.ts +1 -1
  54. package/dist/types/components/carousel/index.d.ts +11 -11
  55. package/dist/types/components/checkbox/index.d.ts +8 -8
  56. package/dist/types/components/clipboard/index.d.ts +8 -8
  57. package/dist/types/components/collapsible/index.d.ts +5 -5
  58. package/dist/types/components/collection.d.ts +3 -0
  59. package/dist/types/components/color-picker/color-picker.d.ts +1 -1
  60. package/dist/types/components/color-picker/index.d.ts +3 -2
  61. package/dist/types/components/color-picker/use-color-picker.d.ts +2 -6
  62. package/dist/types/components/combobox/combobox.d.ts +1 -1
  63. package/dist/types/components/combobox/index.d.ts +17 -17
  64. package/dist/types/components/combobox/use-combobox.d.ts +6 -2
  65. package/dist/types/components/date-picker/date-picker.d.ts +26 -26
  66. package/dist/types/components/date-picker/index.d.ts +28 -27
  67. package/dist/types/components/date-picker/use-date-picker.d.ts +2 -18
  68. package/dist/types/components/dialog/dialog.d.ts +9 -9
  69. package/dist/types/components/dialog/index.d.ts +10 -10
  70. package/dist/types/components/editable/index.d.ts +12 -15
  71. package/dist/types/components/field/index.d.ts +2 -2
  72. package/dist/types/components/fieldset/index.d.ts +1 -1
  73. package/dist/types/components/file-upload/file-upload-clear-trigger.d.ts +6 -0
  74. package/dist/types/components/file-upload/file-upload.d.ts +14 -13
  75. package/dist/types/components/file-upload/index.d.ts +16 -15
  76. package/dist/types/components/hover-card/index.d.ts +8 -8
  77. package/dist/types/components/menu/index.d.ts +20 -20
  78. package/dist/types/components/number-input/index.d.ts +1 -1
  79. package/dist/types/components/pagination/index.d.ts +7 -7
  80. package/dist/types/components/pin-input/index.d.ts +7 -7
  81. package/dist/types/components/popover/index.d.ts +13 -13
  82. package/dist/types/components/progress/index.d.ts +11 -11
  83. package/dist/types/components/qr-code/index.d.ts +6 -6
  84. package/dist/types/components/qr-code/qr-code.d.ts +1 -1
  85. package/dist/types/components/radio-group/index.d.ts +9 -9
  86. package/dist/types/components/rating-group/index.d.ts +7 -7
  87. package/dist/types/components/segment-group/index.d.ts +9 -9
  88. package/dist/types/components/select/index.d.ts +19 -19
  89. package/dist/types/components/select/select.d.ts +1 -1
  90. package/dist/types/components/select/use-select.d.ts +6 -2
  91. package/dist/types/components/signature-pad/index.d.ts +9 -9
  92. package/dist/types/components/slider/index.d.ts +12 -12
  93. package/dist/types/components/splitter/index.d.ts +5 -5
  94. package/dist/types/components/switch/index.d.ts +7 -7
  95. package/dist/types/components/tabs/index.d.ts +7 -7
  96. package/dist/types/components/tags-input/index.d.ts +13 -13
  97. package/dist/types/components/timer/index.d.ts +3 -2
  98. package/dist/types/components/timer/timer.anatomy.d.ts +1 -0
  99. package/dist/types/components/timer/timer.d.ts +1 -0
  100. package/dist/types/components/toast/index.d.ts +7 -7
  101. package/dist/types/components/toggle-group/index.d.ts +4 -4
  102. package/dist/types/components/tooltip/index.d.ts +8 -8
  103. package/dist/types/components/tree-view/index.d.ts +14 -14
  104. package/package.json +58 -57
  105. /package/dist/source/components/fieldset/{fieldset.jsx → fieldset.js} +0 -0
@@ -6,8 +6,8 @@ export { AccordionItemIndicator, } from './accordion-item-indicator';
6
6
  export { AccordionItemTrigger, } from './accordion-item-trigger';
7
7
  export { AccordionRoot, } from './accordion-root';
8
8
  export { AccordionRootProvider, } from './accordion-root-provider';
9
+ export { accordionAnatomy } from './accordion.anatomy';
9
10
  export { useAccordion } from './use-accordion';
10
11
  export { useAccordionContext } from './use-accordion-context';
11
12
  export { useAccordionItemContext } from './use-accordion-item-context';
12
- export { accordionAnatomy } from './accordion.anatomy';
13
13
  export * as Accordion from './accordion';
@@ -9,7 +9,7 @@ export { CarouselPrevTrigger, } from './carousel-prev-trigger';
9
9
  export { CarouselRoot, } from './carousel-root';
10
10
  export { CarouselRootProvider, } from './carousel-root-provider';
11
11
  export { CarouselViewport, } from './carousel-viewport';
12
+ export { carouselAnatomy } from './carousel.anatomy';
12
13
  export { useCarousel } from './use-carousel';
13
14
  export { useCarouselContext } from './use-carousel-context';
14
- export { carouselAnatomy } from './carousel.anatomy';
15
15
  export * as Carousel from './carousel';
@@ -6,9 +6,9 @@ export { CheckboxIndicator, } from './checkbox-indicator';
6
6
  export { CheckboxLabel, } from './checkbox-label';
7
7
  export { CheckboxRoot, } from './checkbox-root';
8
8
  export { CheckboxRootProvider, } from './checkbox-root-provider';
9
+ export { checkboxAnatomy } from './checkbox.anatomy';
9
10
  export { useCheckbox } from './use-checkbox';
10
11
  export { useCheckboxContext } from './use-checkbox-context';
11
12
  export { useCheckboxGroup, } from './use-checkbox-group';
12
13
  export { useCheckboxGroupContext } from './use-checkbox-group-context';
13
- export { checkboxAnatomy } from './checkbox.anatomy';
14
14
  export * as Checkbox from './checkbox';
@@ -6,7 +6,7 @@ export { ClipboardLabel, } from './clipboard-label';
6
6
  export { ClipboardRoot, } from './clipboard-root';
7
7
  export { ClipboardRootProvider, } from './clipboard-root-provider';
8
8
  export { ClipboardTrigger, } from './clipboard-trigger';
9
+ export { clipboardAnatomy } from './clipboard.anatomy';
9
10
  export { useClipboard } from './use-clipboard';
10
11
  export { useClipboardContext } from './use-clipboard-context';
11
- export { clipboardAnatomy } from './clipboard.anatomy';
12
12
  export * as Clipboard from './clipboard';
@@ -3,7 +3,7 @@ export { CollapsibleContext, } from './collapsible-context';
3
3
  export { CollapsibleRoot, } from './collapsible-root';
4
4
  export { CollapsibleRootProvider, } from './collapsible-root-provider';
5
5
  export { CollapsibleTrigger, } from './collapsible-trigger';
6
+ export { collapsibleAnatomy } from './collapsible.anatomy';
6
7
  export { useCollapsible, } from './use-collapsible';
7
8
  export { useCollapsibleContext } from './use-collapsible-context';
8
- export { collapsibleAnatomy } from './collapsible.anatomy';
9
9
  export * as Collapsible from './collapsible';
@@ -0,0 +1,3 @@
1
+ import { ListCollection } from '@zag-js/collection';
2
+ import { ref } from '@zag-js/core';
3
+ export const createListCollection = (options) => ref(new ListCollection(options));
@@ -1,3 +1,4 @@
1
+ export { parse as parseColor } from '@zag-js/color-picker';
1
2
  export { ColorPickerArea, } from './color-picker-area';
2
3
  export { ColorPickerAreaBackground, } from './color-picker-area-background';
3
4
  export { ColorPickerAreaThumb, } from './color-picker-area-thumb';
@@ -27,7 +28,7 @@ export { ColorPickerTrigger, } from './color-picker-trigger';
27
28
  export { ColorPickerValueSwatch, } from './color-picker-value-swatch';
28
29
  export { ColorPickerValueText, } from './color-picker-value-text';
29
30
  export { ColorPickerView, } from './color-picker-view';
31
+ export { colorPickerAnatomy } from './color-picker.anatomy';
30
32
  export { useColorPicker, } from './use-color-picker';
31
33
  export { useColorPickerContext } from './use-color-picker-context';
32
- export { colorPickerAnatomy } from './color-picker.anatomy';
33
34
  export * as ColorPicker from './color-picker';
@@ -21,12 +21,8 @@ export const useColorPicker = (props) => {
21
21
  getRootNode: environment().getRootNode,
22
22
  open: props.defaultOpen,
23
23
  'open.controlled': props.open !== undefined,
24
+ value: props.defaultValue,
24
25
  ...props,
25
- value: props.value
26
- ? colorPicker.parse(props.value)
27
- : props.defaultValue
28
- ? colorPicker.parse(props.defaultValue)
29
- : undefined,
30
26
  }));
31
27
  const [state, send] = useMachine(colorPicker.machine(context()), { context });
32
28
  return createMemo(() => colorPicker.connect(state, send, normalizeProps));
@@ -10,6 +10,7 @@ export const ComboboxRoot = (props) => {
10
10
  'allowCustomValue',
11
11
  'autoFocus',
12
12
  'closeOnSelect',
13
+ 'collection',
13
14
  'composite',
14
15
  'defaultOpen',
15
16
  'defaultValue',
@@ -23,10 +24,6 @@ export const ComboboxRoot = (props) => {
23
24
  'inputBehavior',
24
25
  'inputValue',
25
26
  'invalid',
26
- 'isItemDisabled',
27
- 'items',
28
- 'itemToString',
29
- 'itemToValue',
30
27
  'loopFocus',
31
28
  'multiple',
32
29
  'name',
@@ -1,3 +1,4 @@
1
+ export { createListCollection } from '../collection';
1
2
  export { ComboboxClearTrigger, } from './combobox-clear-trigger';
2
3
  export { ComboboxContent, } from './combobox-content';
3
4
  export { ComboboxContext, } from './combobox-context';
@@ -15,8 +16,8 @@ export { ComboboxPositioner, } from './combobox-positioner';
15
16
  export { ComboboxRoot, } from './combobox-root';
16
17
  export { ComboboxRootProvider, } from './combobox-root-provider';
17
18
  export { ComboboxTrigger, } from './combobox-trigger';
19
+ export { comboboxAnatomy } from './combobox.anatomy';
18
20
  export { useCombobox } from './use-combobox';
19
21
  export { useComboboxContext } from './use-combobox-context';
20
22
  export { useComboboxItemContext } from './use-combobox-item-context';
21
- export { comboboxAnatomy } from './combobox.anatomy';
22
23
  export * as Combobox from './combobox';
@@ -1,22 +1,14 @@
1
1
  import * as combobox from '@zag-js/combobox';
2
2
  import { normalizeProps, useMachine } from '@zag-js/solid';
3
- import { createMemo, createUniqueId } from 'solid-js';
3
+ import { createEffect, createMemo, createUniqueId, splitProps } from 'solid-js';
4
4
  import { useEnvironmentContext, useLocaleContext } from '../../providers';
5
- import { createSplitProps } from '../../utils/create-split-props';
6
5
  import { useFieldContext } from '../field';
7
6
  export const useCombobox = (props) => {
8
- const [collectionOptions, comboboxProps] = createSplitProps()(props, [
9
- 'isItemDisabled',
10
- 'itemToValue',
11
- 'itemToString',
12
- 'items',
13
- ]);
14
- const collection = () => combobox.collection({ ...collectionOptions });
15
7
  const locale = useLocaleContext();
16
8
  const environment = useEnvironmentContext();
17
9
  const id = createUniqueId();
18
10
  const field = useFieldContext();
19
- const context = createMemo(() => ({
11
+ const initialContext = createMemo(() => ({
20
12
  id,
21
13
  ids: {
22
14
  label: field?.().ids.label,
@@ -26,16 +18,22 @@ export const useCombobox = (props) => {
26
18
  readOnly: field?.().readOnly,
27
19
  required: field?.().required,
28
20
  invalid: field?.().invalid,
29
- collection: collection(),
30
21
  dir: locale().dir,
31
22
  getRootNode: environment().getRootNode,
32
23
  open: props.defaultOpen,
33
24
  value: props.defaultValue,
34
25
  'open.controlled': props.open !== undefined,
35
- ...comboboxProps,
26
+ ...props,
36
27
  }));
37
- const [state, send] = useMachine(combobox.machine(context()), {
28
+ const context = createMemo(() => {
29
+ const [, restProps] = splitProps(initialContext(), ['collection']);
30
+ return restProps;
31
+ });
32
+ const [state, send, service] = useMachine(combobox.machine(initialContext()), {
38
33
  context,
39
34
  });
35
+ createEffect(() => {
36
+ service.setContext({ collection: props.collection });
37
+ });
40
38
  return createMemo(() => combobox.connect(state, send, normalizeProps));
41
39
  };
@@ -1,3 +1,4 @@
1
+ export { parse as parseDate } from '@zag-js/date-picker';
1
2
  export { DatePickerClearTrigger, } from './date-picker-clear-trigger';
2
3
  export { DatePickerContent, } from './date-picker-content';
3
4
  export { DatePickerContext, } from './date-picker-context';
@@ -24,7 +25,7 @@ export { DatePickerView, } from './date-picker-view';
24
25
  export { DatePickerViewControl, } from './date-picker-view-control';
25
26
  export { DatePickerViewTrigger, } from './date-picker-view-trigger';
26
27
  export { DatePickerYearSelect, } from './date-picker-year-select';
28
+ export { datePickerAnatomy } from './date-picker.anatomy';
27
29
  export { useDatePicker } from './use-date-picker';
28
30
  export { useDatePickerContext } from './use-date-picker-context';
29
- export { datePickerAnatomy } from './date-picker.anatomy';
30
31
  export * as DatePicker from './date-picker';
@@ -10,17 +10,10 @@ export const useDatePicker = (props) => {
10
10
  id,
11
11
  dir: locale().dir,
12
12
  getRootNode: environment().getRootNode,
13
- 'open.controlled': props.open !== undefined,
14
13
  open: props.defaultOpen,
14
+ 'open.controlled': props.open !== undefined,
15
+ value: props.defaultValue,
15
16
  ...props,
16
- focusedValue: props.focusedValue ? datePicker.parse(props.focusedValue) : undefined,
17
- value: props.value
18
- ? datePicker.parse(props.value)
19
- : props.defaultValue
20
- ? datePicker.parse(props.defaultValue)
21
- : undefined,
22
- max: props.max ? datePicker.parse(props.max) : undefined,
23
- min: props.min ? datePicker.parse(props.min) : undefined,
24
17
  }));
25
18
  const [state, send] = useMachine(datePicker.machine(context()), { context });
26
19
  return createMemo(() => datePicker.connect(state, send, normalizeProps));
@@ -8,7 +8,7 @@ export { DialogRoot, } from './dialog-root';
8
8
  export { DialogRootProvider, } from './dialog-root-provider';
9
9
  export { DialogTitle, } from './dialog-title';
10
10
  export { DialogTrigger, } from './dialog-trigger';
11
+ export { dialogAnatomy } from './dialog.anatomy';
11
12
  export { useDialog } from './use-dialog';
12
13
  export { useDialogContext } from './use-dialog-context';
13
- export { dialogAnatomy } from './dialog.anatomy';
14
14
  export * as Dialog from './dialog';
@@ -1,4 +1,3 @@
1
- ;
2
1
  export { EditableArea, } from './editable-area';
3
2
  export { EditableCancelTrigger, } from './editable-cancel-trigger';
4
3
  export { EditableContext, } from './editable-context';
@@ -10,7 +9,7 @@ export { EditablePreview, } from './editable-preview';
10
9
  export { EditableRoot, } from './editable-root';
11
10
  export { EditableRootProvider, } from './editable-root-provider';
12
11
  export { EditableSubmitTrigger, } from './editable-submit-trigger';
12
+ export { editableAnatomy } from './editable.anatomy';
13
13
  export { useEditable } from './use-editable';
14
14
  export { useEditableContext } from './use-editable-context';
15
- export { editableAnatomy } from './editable.anatomy';
16
15
  export * as Editable from './editable';
@@ -3,10 +3,10 @@ export { FieldErrorText, } from './field-error-text';
3
3
  export { FieldHelperText, } from './field-helper-text';
4
4
  export { FieldInput } from './field-input';
5
5
  export { FieldLabel } from './field-label';
6
- export { FieldSelect } from './field-select';
7
6
  export { FieldRoot } from './field-root';
8
7
  export { FieldRootProvider, } from './field-root-provider';
8
+ export { FieldSelect } from './field-select';
9
9
  export { FieldTextarea, } from './field-textarea';
10
- export { useFieldContext } from './use-field-context';
11
10
  export { fieldAnatomy } from './field.anatomy';
11
+ export { useFieldContext } from './use-field-context';
12
12
  export * as Field from './field';
@@ -1,9 +1,9 @@
1
1
  export { FieldsetContext } from './fieldset-context';
2
2
  export { FieldsetErrorText, } from './fieldset-error-text';
3
3
  export { FieldsetHelperText, } from './fieldset-helper-text';
4
+ export { FieldsetLegend, } from './fieldset-legend';
4
5
  export { FieldsetRoot } from './fieldset-root';
5
6
  export { FieldsetRootProvider, } from './fieldset-root-provider';
6
- export { FieldsetLegend, } from './fieldset-legend';
7
7
  export { fieldsetAnatomy } from './fieldset.anatomy';
8
8
  export { useFieldsetContext } from './use-fieldset-context';
9
9
  export * as Fieldset from './fieldset';
@@ -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 FileUploadClearTrigger = (props) => {
5
+ const fileUpload = useFileUploadContext();
6
+ const mergedProps = mergeProps(() => fileUpload().getClearTriggerProps(), props);
7
+ return <ark.button {...mergedProps}/>;
8
+ };
@@ -1,5 +1,7 @@
1
+ export { FileUploadClearTrigger as ClearTrigger, } from './file-upload-clear-trigger';
1
2
  export { FileUploadContext as Context, } from './file-upload-context';
2
3
  export { FileUploadDropzone as Dropzone, } from './file-upload-dropzone';
4
+ export { FileUploadHiddenInput as HiddenInput, } from './file-upload-hidden-input';
3
5
  export { FileUploadItem as Item, } from './file-upload-item';
4
6
  export { FileUploadItemDeleteTrigger as ItemDeleteTrigger, } from './file-upload-item-delete-trigger';
5
7
  export { FileUploadItemGroup as ItemGroup, } from './file-upload-item-group';
@@ -11,4 +13,3 @@ export { FileUploadLabel as Label, } from './file-upload-label';
11
13
  export { FileUploadRoot as Root, } from './file-upload-root';
12
14
  export { FileUploadRootProvider as RootProvider, } from './file-upload-root-provider';
13
15
  export { FileUploadTrigger as Trigger, } from './file-upload-trigger';
14
- export { FileUploadHiddenInput as HiddenInput, } from './file-upload-hidden-input';
@@ -1,4 +1,5 @@
1
- export { FileUploadContext, } from './file-upload-context';
1
+ export { FileUploadClearTrigger, } from './file-upload-clear-trigger';
2
+ export { FileUploadContext } from './file-upload-context';
2
3
  export { FileUploadDropzone, } from './file-upload-dropzone';
3
4
  export { FileUploadHiddenInput, } from './file-upload-hidden-input';
4
5
  export { FileUploadItem, } from './file-upload-item';
@@ -12,7 +13,7 @@ export { FileUploadLabel, } from './file-upload-label';
12
13
  export { FileUploadRoot, } from './file-upload-root';
13
14
  export { FileUploadRootProvider, } from './file-upload-root-provider';
14
15
  export { FileUploadTrigger, } from './file-upload-trigger';
16
+ export { fileUploadAnatomy } from './file-upload.anatomy';
15
17
  export { useFileUpload } from './use-file-upload';
16
18
  export { useFileUploadContext } from './use-file-upload-context';
17
- export { fileUploadAnatomy } from './file-upload.anatomy';
18
19
  export * as FileUpload from './file-upload';
@@ -6,7 +6,7 @@ export { HoverCardPositioner, } from './hover-card-positioner';
6
6
  export { HoverCardRoot, } from './hover-card-root';
7
7
  export { HoverCardRootProvider, } from './hover-card-root-provider';
8
8
  export { HoverCardTrigger, } from './hover-card-trigger';
9
+ export { hoverCardAnatomy } from './hover-card.anatomy';
9
10
  export { useHoverCard } from './use-hover-card';
10
11
  export { useHoverCardContext } from './use-hover-card-context';
11
- export { hoverCardAnatomy } from './hover-card.anatomy';
12
12
  export * as HoverCard from './hover-card';
@@ -19,8 +19,8 @@ export { MenuRootProvider, } from './menu-root-provider';
19
19
  export { MenuSeparator, } from './menu-separator';
20
20
  export { MenuTrigger, } from './menu-trigger';
21
21
  export { MenuTriggerItem, } from './menu-trigger-item';
22
+ export { menuAnatomy } from './menu.anatomy';
22
23
  export { useMenu } from './use-menu';
23
24
  export { useMenuContext } from './use-menu-context';
24
25
  export { useMenuItemContext } from './use-menu-item-context';
25
- export { menuAnatomy } from './menu.anatomy';
26
26
  export * as Menu from './menu';
@@ -8,7 +8,7 @@ export { NumberInputRoot, } from './number-input-root';
8
8
  export { NumberInputRootProvider, } from './number-input-root-provider';
9
9
  export { NumberInputScrubber, } from './number-input-scrubber';
10
10
  export { NumberInputValueText, } from './number-input-value-text';
11
+ export { numberInputAnatomy } from './number-input.anatomy';
11
12
  export { useNumberInput, } from './use-number-input';
12
13
  export { useNumberInputContext } from './use-number-input-context';
13
- export { numberInputAnatomy } from './number-input.anatomy';
14
14
  export * as NumberInput from './number-input';
@@ -5,7 +5,7 @@ export { PaginationNextTrigger, } from './pagination-next-trigger';
5
5
  export { PaginationPrevTrigger, } from './pagination-prev-trigger';
6
6
  export { PaginationRoot, } from './pagination-root';
7
7
  export { PaginationRootProvider, } from './pagination-root-provider';
8
+ export { paginationAnatomy } from './pagination.anatomy';
8
9
  export { usePagination } from './use-pagination';
9
10
  export { usePaginationContext } from './use-pagination-context';
10
- export { paginationAnatomy } from './pagination.anatomy';
11
11
  export * as Pagination from './pagination';
@@ -5,7 +5,7 @@ export { PinInputInput, } from './pin-input-input';
5
5
  export { PinInputLabel, } from './pin-input-label';
6
6
  export { PinInputRoot, } from './pin-input-root';
7
7
  export { PinInputRootProvider, } from './pin-input-root-provider';
8
+ export { pinInputAnatomy } from './pin-input.anatomy';
8
9
  export { usePinInput } from './use-pin-input';
9
10
  export { usePinInputContext } from './use-pin-input-context';
10
- export { pinInputAnatomy } from './pin-input.anatomy';
11
11
  export * as PinInput from './pin-input';
@@ -11,7 +11,7 @@ export { PopoverRoot, } from './popover-root';
11
11
  export { PopoverRootProvider, } from './popover-root-provider';
12
12
  export { PopoverTitle, } from './popover-title';
13
13
  export { PopoverTrigger, } from './popover-trigger';
14
+ export { popoverAnatomy } from './popover.anatomy';
14
15
  export { usePopover } from './use-popover';
15
16
  export { usePopoverContext } from './use-popover-context';
16
- export { popoverAnatomy } from './popover.anatomy';
17
17
  export * as Popover from './popover';
@@ -9,7 +9,7 @@ export { ProgressRootProvider, } from './progress-root-provider';
9
9
  export { ProgressTrack, } from './progress-track';
10
10
  export { ProgressValueText, } from './progress-value-text';
11
11
  export { ProgressView, } from './progress-view';
12
+ export { progressAnatomy } from './progress.anatomy';
12
13
  export { useProgress } from './use-progress';
13
14
  export { useProgressContext } from './use-progress-context';
14
- export { progressAnatomy } from './progress.anatomy';
15
15
  export * as Progress from './progress';
@@ -4,7 +4,7 @@ export { QrCodeOverlay, } from './qr-code-overlay';
4
4
  export { QrCodePattern, } from './qr-code-pattern';
5
5
  export { QrCodeRoot, } from './qr-code-root';
6
6
  export { QrCodeRootProvider, } from './qr-code-root-provider';
7
+ export { qrCodeAnatomy } from './qr-code.anatomy';
7
8
  export { useQrCode } from './use-qr-code';
8
9
  export { useQrCodeContext } from './use-qr-code-context';
9
- export { qrCodeAnatomy } from './qr-code.anatomy';
10
10
  export * as QrCode from './qr-code';
@@ -1,4 +1,4 @@
1
- export { QrCodeContext } from './qr-code-context';
1
+ export { QrCodeContext as Context, } from './qr-code-context';
2
2
  export { QrCodeFrame as Frame, } from './qr-code-frame';
3
3
  export { QrCodeOverlay as Overlay, } from './qr-code-overlay';
4
4
  export { QrCodePattern as Pattern, } from './qr-code-pattern';
@@ -8,8 +8,8 @@ export { RadioGroupItemText, } from './radio-group-item-text';
8
8
  export { RadioGroupLabel, } from './radio-group-label';
9
9
  export { RadioGroupRoot, } from './radio-group-root';
10
10
  export { RadioGroupRootProvider, } from './radio-group-root-provider';
11
+ export { radioGroupAnatomy } from './radio-group.anatomy';
11
12
  export { useRadioGroup } from './use-radio-group';
12
13
  export { useRadioGroupContext } from './use-radio-group-context';
13
14
  export { useRadioGroupItemContext, } from './use-radio-group-item-context';
14
- export { radioGroupAnatomy } from './radio-group.anatomy';
15
15
  export * as RadioGroup from './radio-group';
@@ -6,8 +6,8 @@ export { RatingGroupItemContext, } from './rating-group-item-context';
6
6
  export { RatingGroupLabel, } from './rating-group-label';
7
7
  export { RatingGroupRoot, } from './rating-group-root';
8
8
  export { RatingGroupRootProvider, } from './rating-group-root-provider';
9
+ export { ratingGroupAnatomy } from './rating-group.anatomy';
9
10
  export { useRatingGroup, } from './use-rating-group';
10
11
  export { useRatingGroupContext } from './use-rating-group-context';
11
12
  export { useRatingGroupItemContext, } from './use-rating-group-item-context';
12
- export { ratingGroupAnatomy } from './rating-group.anatomy';
13
13
  export * as RatingGroup from './rating-group';
@@ -8,8 +8,8 @@ export { SegmentGroupItemText, } from './segment-group-item-text';
8
8
  export { SegmentGroupLabel, } from './segment-group-label';
9
9
  export { SegmentGroupRoot, } from './segment-group-root';
10
10
  export { SegmentGroupRootProvider, } from './segment-group-root-provider';
11
+ export { segmentGroupAnatomy } from './segment-group.anatomy';
11
12
  export { useSegmentGroup, } from './use-segment-group';
12
13
  export { useSegmentGroupContext } from './use-segment-group-context';
13
14
  export { useSegmentGroupItemContext, } from './use-segment-group-item-context';
14
- export { segmentGroupAnatomy } from './segment-group.anatomy';
15
15
  export * as SegmentGroup from './segment-group';
@@ -1,3 +1,4 @@
1
+ export { createListCollection } from '../collection';
1
2
  export { SelectClearTrigger, } from './select-clear-trigger';
2
3
  export { SelectContent, } from './select-content';
3
4
  export { SelectContext, } from './select-context';
@@ -17,8 +18,8 @@ export { SelectRoot, } from './select-root';
17
18
  export { SelectRootProvider, } from './select-root-provider';
18
19
  export { SelectTrigger, } from './select-trigger';
19
20
  export { SelectValueText, } from './select-value-text';
21
+ export { selectAnatomy } from './select.anatomy';
20
22
  export { useSelect } from './use-select';
21
23
  export { useSelectContext } from './use-select-context';
22
24
  export { useSelectItemContext } from './use-select-item-context';
23
- export { selectAnatomy } from './select.anatomy';
24
25
  export * as Select from './select';
@@ -9,18 +9,16 @@ export const SelectRoot = (props) => {
9
9
  const [useSelectProps, localProps] = createSplitProps()(selectProps, [
10
10
  'closeOnSelect',
11
11
  'composite',
12
+ 'collection',
12
13
  'defaultOpen',
13
14
  'defaultValue',
15
+ 'deselectable',
14
16
  'disabled',
15
17
  'form',
16
18
  'highlightedValue',
17
19
  'id',
18
20
  'ids',
19
21
  'invalid',
20
- 'isItemDisabled',
21
- 'items',
22
- 'itemToString',
23
- 'itemToValue',
24
22
  'loopFocus',
25
23
  'multiple',
26
24
  'name',
@@ -2,16 +2,8 @@ import * as select from '@zag-js/select';
2
2
  import { normalizeProps, useMachine } from '@zag-js/solid';
3
3
  import { createEffect, createMemo, createUniqueId, splitProps } from 'solid-js';
4
4
  import { useEnvironmentContext, useLocaleContext } from '../../providers';
5
- import { createSplitProps } from '../../utils/create-split-props';
6
5
  import { useFieldContext } from '../field';
7
6
  export const useSelect = (props) => {
8
- const [collectionOptions, selectProps] = createSplitProps()(props, [
9
- 'isItemDisabled',
10
- 'itemToValue',
11
- 'itemToString',
12
- 'items',
13
- ]);
14
- const collection = createMemo(() => select.collection({ ...collectionOptions }));
15
7
  const locale = useLocaleContext();
16
8
  const environment = useEnvironmentContext();
17
9
  const id = createUniqueId();
@@ -26,24 +18,22 @@ export const useSelect = (props) => {
26
18
  readOnly: field?.().readOnly,
27
19
  invalid: field?.().invalid,
28
20
  required: field?.().required,
29
- collection: collection(),
30
21
  dir: locale().dir,
31
22
  getRootNode: environment().getRootNode,
32
23
  open: props.defaultOpen,
33
24
  value: props.defaultValue,
34
25
  'open.controlled': props.open !== undefined,
35
- ...selectProps,
26
+ ...props,
36
27
  }));
37
28
  const context = createMemo(() => {
38
29
  const [, restProps] = splitProps(initialContext(), ['collection']);
39
30
  return restProps;
40
31
  });
41
- const [state, send] = useMachine(select.machine(initialContext()), {
32
+ const [state, send, service] = useMachine(select.machine(initialContext()), {
42
33
  context,
43
34
  });
44
- const api = createMemo(() => select.connect(state, send, normalizeProps));
45
35
  createEffect(() => {
46
- api().setCollection(collection());
36
+ service.setContext({ collection: props.collection });
47
37
  });
48
- return api;
38
+ return createMemo(() => select.connect(state, send, normalizeProps));
49
39
  };
@@ -2,12 +2,12 @@ export { SignaturePadClearTrigger, } from './signature-pad-clear-trigger';
2
2
  export { SignaturePadContext, } from './signature-pad-context';
3
3
  export { SignaturePadControl, } from './signature-pad-control';
4
4
  export { SignaturePadGuide, } from './signature-pad-guide';
5
- export { SignaturePadLabel, } from './signature-pad-label';
6
5
  export { SignaturePadHiddenInput, } from './signature-pad-hidden-input';
6
+ export { SignaturePadLabel, } from './signature-pad-label';
7
7
  export { SignaturePadRoot, } from './signature-pad-root';
8
8
  export { SignaturePadRootProvider, } from './signature-pad-root-provider';
9
9
  export { SignaturePadSegment, } from './signature-pad-segment';
10
+ export { signaturePadAnatomy } from './signature-pad.anatomy';
10
11
  export { useSignaturePad, } from './use-signature-pad';
11
12
  export { useSignaturePadContext } from './use-signature-pad-context';
12
- export { signaturePadAnatomy } from './signature-pad.anatomy';
13
13
  export * as SignaturePad from './signature-pad';
@@ -10,7 +10,7 @@ export { SliderRootProvider, } from './slider-root-provider';
10
10
  export { SliderThumb, } from './slider-thumb';
11
11
  export { SliderTrack, } from './slider-track';
12
12
  export { SliderValueText, } from './slider-value-text';
13
+ export { sliderAnatomy } from './slider.anatomy';
13
14
  export { useSlider } from './use-slider';
14
15
  export { useSliderContext } from './use-slider-context';
15
- export { sliderAnatomy } from './slider.anatomy';
16
16
  export * as Slider from './slider';
@@ -3,7 +3,7 @@ export { SplitterPanel, } from './splitter-panel';
3
3
  export { SplitterResizeTrigger, } from './splitter-resize-trigger';
4
4
  export { SplitterRoot, } from './splitter-root';
5
5
  export { SplitterRootProvider, } from './splitter-root-provider';
6
+ export { splitterAnatomy } from './splitter.anatomy';
6
7
  export { useSplitter } from './use-splitter';
7
8
  export { useSplitterContext } from './use-splitter-context';
8
- export { splitterAnatomy } from './splitter.anatomy';
9
9
  export * as Splitter from './splitter';
@@ -5,7 +5,7 @@ export { SwitchLabel, } from './switch-label';
5
5
  export { SwitchRoot, } from './switch-root';
6
6
  export { SwitchRootProvider, } from './switch-root-provider';
7
7
  export { SwitchThumb, } from './switch-thumb';
8
+ export { switchAnatomy } from './switch.anatomy';
8
9
  export { useSwitch } from './use-switch';
9
10
  export { useSwitchContext } from './use-switch-context';
10
- export { switchAnatomy } from './switch.anatomy';
11
11
  export * as Switch from './switch';
@@ -5,7 +5,7 @@ export { TabTrigger, } from './tab-trigger';
5
5
  export { TabsContext, } from './tabs-context';
6
6
  export { TabsRoot, } from './tabs-root';
7
7
  export { TabsRootProvider, } from './tabs-root-provider';
8
+ export { tabsAnatomy } from './tabs.anatomy';
8
9
  export { useTabs } from './use-tabs';
9
10
  export { useTabsContext } from './use-tabs-context';
10
- export { tabsAnatomy } from './tabs.anatomy';
11
11
  export * as Tabs from './tabs';
@@ -10,6 +10,7 @@ export const TabsRoot = (props) => {
10
10
  'activationMode',
11
11
  'composite',
12
12
  'defaultValue',
13
+ 'deselectable',
13
14
  'id',
14
15
  'ids',
15
16
  'loopFocus',
@@ -12,8 +12,8 @@ export { TagsInputItemText, } from './tags-input-item-text';
12
12
  export { TagsInputLabel, } from './tags-input-label';
13
13
  export { TagsInputRoot, } from './tags-input-root';
14
14
  export { TagsInputRootProvider, } from './tags-input-root-provider';
15
+ export { tagsInputAnatomy } from './tags-input.anatomy';
15
16
  export { useTagsInput } from './use-tags-input';
16
17
  export { useTagsInputContext } from './use-tags-input-context';
17
18
  export { useTagsInputItemContext, } from './use-tags-input-item-context';
18
- export { tagsInputAnatomy } from './tags-input.anatomy';
19
19
  export * as TagsInput from './tags-input';
@@ -1,11 +1,12 @@
1
1
  export { TimerActionTrigger, } from './timer-action-trigger';
2
- export { TimerArea } from './timer-area';
3
2
  export { TimerContext } from './timer-context';
4
- export { TimerControl } from './timer-control';
5
3
  export { TimerItem } from './timer-item';
4
+ export { TimerArea } from './timer-area';
5
+ export { TimerControl } from './timer-control';
6
6
  export { TimerRoot } from './timer-root';
7
7
  export { TimerRootProvider, } from './timer-root-provider';
8
8
  export { TimerSeparator, } from './timer-separator';
9
+ export { timerAnatomy } from './timer.anatomy';
9
10
  export { useTimer } from './use-timer';
10
11
  export { useTimerContext } from './use-timer-context';
11
12
  export * as Timer from './timer';
@@ -0,0 +1 @@
1
+ export { anatomy as timerAnatomy } from '@zag-js/timer';
@@ -5,7 +5,7 @@ export { ToastContext, } from './toast-context';
5
5
  export { ToastDescription, } from './toast-description';
6
6
  export { ToastRoot, } from './toast-root';
7
7
  export { ToastTitle, } from './toast-title';
8
+ export { toastAnatomy } from './toast.anatomy';
8
9
  export { Toaster, } from './toaster';
9
10
  export { useToastContext } from './use-toast-context';
10
- export { toastAnatomy } from './toast.anatomy';
11
11
  export * as Toast from './toast';