@ark-ui/solid 2.0.0 → 2.1.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 (177) hide show
  1. package/CHANGELOG.md +41 -0
  2. package/cjs/index.js +379 -267
  3. package/cjs/index.js.map +1 -1
  4. package/esm/index.js +376 -268
  5. package/esm/index.js.map +1 -1
  6. package/package.json +52 -47
  7. package/source/accordion/accordion.jsx +6 -0
  8. package/source/accordion/index.js +1 -7
  9. package/source/avatar/avatar.jsx +4 -0
  10. package/source/avatar/index.js +1 -5
  11. package/source/carousel/carousel.jsx +10 -0
  12. package/source/carousel/index.js +1 -11
  13. package/source/checkbox/checkbox.jsx +5 -0
  14. package/source/checkbox/index.js +1 -6
  15. package/source/color-picker/color-picker.jsx +24 -0
  16. package/source/color-picker/index.js +1 -25
  17. package/source/color-picker/use-color-picker.js +1 -0
  18. package/source/combobox/combobox.jsx +14 -0
  19. package/source/combobox/index.js +1 -15
  20. package/source/date-picker/date-picker-input.jsx +3 -1
  21. package/source/date-picker/date-picker-preset-trigger.jsx +10 -0
  22. package/source/date-picker/date-picker.jsx +25 -0
  23. package/source/date-picker/index.js +3 -26
  24. package/source/date-picker/use-date-picker.js +1 -0
  25. package/source/dialog/dialog-description.jsx +1 -1
  26. package/source/dialog/dialog.jsx +9 -0
  27. package/source/dialog/index.js +1 -10
  28. package/source/dialog/use-dialog.js +1 -1
  29. package/source/editable/editable.jsx +10 -0
  30. package/source/editable/index.js +1 -11
  31. package/source/file-upload/file-upload.jsx +12 -0
  32. package/source/file-upload/index.js +2 -14
  33. package/source/hover-card/hover-card.jsx +7 -0
  34. package/source/hover-card/index.js +1 -8
  35. package/source/hover-card/use-hover-card.js +1 -1
  36. package/source/menu/index.js +1 -15
  37. package/source/menu/menu.jsx +14 -0
  38. package/source/menu/use-menu.js +1 -1
  39. package/source/number-input/index.js +1 -9
  40. package/source/number-input/number-input.jsx +8 -0
  41. package/source/pagination/index.js +1 -7
  42. package/source/pagination/pagination.jsx +6 -0
  43. package/source/pin-input/index.js +1 -6
  44. package/source/pin-input/pin-input.jsx +5 -0
  45. package/source/popover/index.js +1 -13
  46. package/source/popover/popover-description.jsx +1 -1
  47. package/source/popover/popover.jsx +12 -0
  48. package/source/popover/use-popover.js +1 -1
  49. package/source/progress/index.js +1 -11
  50. package/source/progress/progress.jsx +10 -0
  51. package/source/radio-group/index.js +2 -9
  52. package/source/radio-group/radio-group.jsx +7 -0
  53. package/source/rating-group/index.js +1 -6
  54. package/source/rating-group/rating-group.jsx +5 -0
  55. package/source/segment-group/index.js +1 -8
  56. package/source/segment-group/segment-group.jsx +7 -0
  57. package/source/select/index.js +1 -16
  58. package/source/select/select-control.jsx +5 -1
  59. package/source/select/select.jsx +15 -0
  60. package/source/select/use-select.js +6 -1
  61. package/source/slider/index.js +1 -11
  62. package/source/slider/slider.jsx +10 -0
  63. package/source/splitter/index.js +1 -5
  64. package/source/splitter/splitter.jsx +4 -0
  65. package/source/switch/index.js +1 -6
  66. package/source/switch/switch.jsx +5 -0
  67. package/source/tabs/index.js +1 -7
  68. package/source/tabs/tabs.jsx +6 -0
  69. package/source/tags-input/index.js +1 -12
  70. package/source/tags-input/tags-input.jsx +11 -0
  71. package/source/toast/index.js +1 -7
  72. package/source/toast/toast.jsx +6 -0
  73. package/source/toggle-group/index.js +1 -4
  74. package/source/toggle-group/toggle-group.jsx +3 -0
  75. package/source/tooltip/index.js +1 -8
  76. package/source/tooltip/tooltip.jsx +7 -0
  77. package/source/tooltip/use-tooltip.js +1 -1
  78. package/source/tree-view/index.js +3 -14
  79. package/source/tree-view/tree-view-branch-content.jsx +3 -8
  80. package/source/tree-view/tree-view-branch-context.js +5 -0
  81. package/source/tree-view/tree-view-branch-control.jsx +3 -8
  82. package/source/tree-view/tree-view-branch-indicator.jsx +5 -8
  83. package/source/tree-view/tree-view-branch-text.jsx +3 -8
  84. package/source/tree-view/tree-view-branch-trigger.jsx +4 -9
  85. package/source/tree-view/tree-view-branch.jsx +10 -7
  86. package/source/tree-view/tree-view-depth-context.js +5 -0
  87. package/source/tree-view/tree-view-item-context.js +5 -0
  88. package/source/tree-view/tree-view-item-indicator.jsx +10 -0
  89. package/source/tree-view/tree-view-item-text.jsx +3 -5
  90. package/source/tree-view/tree-view-item.jsx +8 -3
  91. package/source/tree-view/tree-view-tree.jsx +4 -1
  92. package/source/tree-view/tree-view.jsx +13 -0
  93. package/types/accordion/accordion.d.ts +6 -0
  94. package/types/accordion/index.d.ts +11 -0
  95. package/types/avatar/avatar.d.ts +4 -0
  96. package/types/avatar/index.d.ts +1 -5
  97. package/types/carousel/carousel.d.ts +10 -0
  98. package/types/carousel/index.d.ts +14 -0
  99. package/types/checkbox/checkbox.d.ts +5 -0
  100. package/types/checkbox/index.d.ts +9 -0
  101. package/types/color-picker/color-picker.d.ts +24 -0
  102. package/types/color-picker/index.d.ts +30 -0
  103. package/types/color-picker/use-color-picker.d.ts +1 -1
  104. package/types/combobox/combobox.d.ts +14 -0
  105. package/types/combobox/index.d.ts +19 -0
  106. package/types/date-picker/date-picker-input.d.ts +4 -2
  107. package/types/date-picker/date-picker-preset-trigger.d.ts +6 -0
  108. package/types/date-picker/date-picker.d.ts +25 -0
  109. package/types/date-picker/index.d.ts +32 -0
  110. package/types/date-picker/use-date-picker.d.ts +1 -1
  111. package/types/dialog/dialog-description.d.ts +2 -2
  112. package/types/dialog/dialog.d.ts +9 -0
  113. package/types/dialog/index.d.ts +1 -10
  114. package/types/dialog/use-dialog.d.ts +1 -1
  115. package/types/editable/editable.d.ts +10 -0
  116. package/types/editable/index.d.ts +1 -11
  117. package/types/file-upload/file-upload.d.ts +12 -0
  118. package/types/file-upload/index.d.ts +16 -0
  119. package/types/hover-card/hover-card.d.ts +7 -0
  120. package/types/hover-card/index.d.ts +1 -8
  121. package/types/hover-card/use-hover-card.d.ts +1 -1
  122. package/types/menu/index.d.ts +18 -0
  123. package/types/menu/menu.d.ts +14 -0
  124. package/types/menu/use-menu.d.ts +1 -1
  125. package/types/number-input/index.d.ts +12 -0
  126. package/types/number-input/number-input.d.ts +8 -0
  127. package/types/pagination/index.d.ts +1 -7
  128. package/types/pagination/pagination.d.ts +6 -0
  129. package/types/pin-input/index.d.ts +1 -8
  130. package/types/pin-input/pin-input.d.ts +5 -0
  131. package/types/popover/index.d.ts +1 -13
  132. package/types/popover/popover-description.d.ts +2 -2
  133. package/types/popover/popover.d.ts +12 -0
  134. package/types/popover/use-popover.d.ts +1 -1
  135. package/types/progress/index.d.ts +1 -11
  136. package/types/progress/progress.d.ts +10 -0
  137. package/types/radio-group/index.d.ts +3 -10
  138. package/types/radio-group/radio-group.d.ts +7 -0
  139. package/types/rating-group/index.d.ts +10 -0
  140. package/types/rating-group/rating-group.d.ts +5 -0
  141. package/types/segment-group/index.d.ts +12 -0
  142. package/types/segment-group/segment-group.d.ts +7 -0
  143. package/types/select/index.d.ts +21 -0
  144. package/types/select/select.d.ts +15 -0
  145. package/types/select/use-select.d.ts +1 -1
  146. package/types/slider/index.d.ts +1 -11
  147. package/types/slider/slider.d.ts +10 -0
  148. package/types/splitter/index.d.ts +1 -5
  149. package/types/splitter/splitter.d.ts +4 -0
  150. package/types/switch/index.d.ts +1 -6
  151. package/types/switch/switch.d.ts +5 -0
  152. package/types/tabs/index.d.ts +1 -7
  153. package/types/tabs/tabs.d.ts +6 -0
  154. package/types/tags-input/index.d.ts +16 -0
  155. package/types/tags-input/tags-input.d.ts +11 -0
  156. package/types/toast/index.d.ts +1 -7
  157. package/types/toast/toast.d.ts +6 -0
  158. package/types/toggle-group/index.d.ts +1 -4
  159. package/types/toggle-group/toggle-group.d.ts +3 -0
  160. package/types/tooltip/index.d.ts +1 -8
  161. package/types/tooltip/tooltip.d.ts +7 -0
  162. package/types/tooltip/use-tooltip.d.ts +1 -1
  163. package/types/tree-view/index.d.ts +17 -0
  164. package/types/tree-view/tree-view-branch-content.d.ts +2 -4
  165. package/types/tree-view/tree-view-branch-context.d.ts +6 -0
  166. package/types/tree-view/tree-view-branch-control.d.ts +2 -4
  167. package/types/tree-view/tree-view-branch-indicator.d.ts +2 -4
  168. package/types/tree-view/tree-view-branch-text.d.ts +2 -4
  169. package/types/tree-view/tree-view-branch-trigger.d.ts +2 -4
  170. package/types/tree-view/tree-view-branch.d.ts +4 -3
  171. package/types/tree-view/tree-view-context.d.ts +0 -16
  172. package/types/tree-view/tree-view-depth-context.d.ts +2 -0
  173. package/types/tree-view/tree-view-item-context.d.ts +6 -0
  174. package/types/tree-view/tree-view-item-indicator.d.ts +4 -0
  175. package/types/tree-view/tree-view-item-text.d.ts +2 -4
  176. package/types/tree-view/tree-view-item.d.ts +2 -1
  177. package/types/tree-view/tree-view.d.ts +13 -0
@@ -0,0 +1,14 @@
1
+ import { MenuArrow as Arrow } from './menu-arrow';
2
+ import { MenuArrowTip as ArrowTip } from './menu-arrow-tip';
3
+ import { MenuContent as Content } from './menu-content';
4
+ import { MenuContextTrigger as ContextTrigger } from './menu-context-trigger';
5
+ import { MenuItem as Item } from './menu-item';
6
+ import { MenuItemGroup as ItemGroup } from './menu-item-group';
7
+ import { MenuItemGroupLabel as ItemGroupLabel } from './menu-item-group-label';
8
+ import { MenuOptionItem as OptionItem } from './menu-option-item';
9
+ import { MenuPositioner as Positioner } from './menu-positioner';
10
+ import { MenuRoot as Root } from './menu-root';
11
+ import { MenuSeparator as Separator } from './menu-separator';
12
+ import { MenuTrigger as Trigger } from './menu-trigger';
13
+ import { MenuTriggerItem as TriggerItem } from './menu-trigger-item';
14
+ export { Arrow, ArrowTip, Content, ContextTrigger, Item, ItemGroup, ItemGroupLabel, OptionItem, Positioner, Root, Separator, Trigger, TriggerItem, };
@@ -4,7 +4,7 @@ import { createMemo, createUniqueId } from 'solid-js';
4
4
  import { useEnvironmentContext } from '../environment';
5
5
  export const useMenu = (props) => {
6
6
  const getRootNode = useEnvironmentContext();
7
- const context = mergeProps({ id: createUniqueId(), getRootNode }, props);
7
+ const context = mergeProps({ id: createUniqueId(), getRootNode, 'open.controlled': props.open !== undefined }, props);
8
8
  const [state, send, machine] = useMachine(menu.machine(context), { context });
9
9
  return createMemo(() => ({
10
10
  api: () => menu.connect(state, send, normalizeProps),
@@ -6,13 +6,5 @@ import { NumberInputInput } from './number-input-input';
6
6
  import { NumberInputLabel } from './number-input-label';
7
7
  import { NumberInputRoot } from './number-input-root';
8
8
  import { NumberInputScrubber } from './number-input-scrubber';
9
- export const NumberInput = {
10
- Root: NumberInputRoot,
11
- Control: NumberInputControl,
12
- DecrementTrigger: NumberInputDecrementTrigger,
13
- Input: NumberInputInput,
14
- IncrementTrigger: NumberInputIncrementTrigger,
15
- Label: NumberInputLabel,
16
- Scrubber: NumberInputScrubber,
17
- };
9
+ export * as NumberInput from './number-input';
18
10
  export { NumberInputControl, NumberInputDecrementTrigger, NumberInputIncrementTrigger, NumberInputInput, NumberInputLabel, NumberInputRoot, NumberInputScrubber, useNumberInputContext, };
@@ -0,0 +1,8 @@
1
+ import { NumberInputControl as Control } from './number-input-control';
2
+ import { NumberInputDecrementTrigger as DecrementTrigger } from './number-input-decrement-trigger';
3
+ import { NumberInputIncrementTrigger as IncrementTrigger } from './number-input-increment-trigger';
4
+ import { NumberInputInput as Input } from './number-input-input';
5
+ import { NumberInputLabel as Label } from './number-input-label';
6
+ import { NumberInputRoot as Root } from './number-input-root';
7
+ import { NumberInputScrubber as Scrubber } from './number-input-scrubber';
8
+ export { Control, DecrementTrigger, IncrementTrigger, Input, Label, Root, Scrubber };
@@ -4,11 +4,5 @@ import { PaginationItem } from './pagination-item';
4
4
  import { PaginationNextTrigger } from './pagination-next-trigger';
5
5
  import { PaginationPrevTrigger } from './pagination-prev-trigger';
6
6
  import { PaginationRoot } from './pagination-root';
7
- export const Pagination = {
8
- Root: PaginationRoot,
9
- Ellipsis: PaginationEllipsis,
10
- Item: PaginationItem,
11
- NextTrigger: PaginationNextTrigger,
12
- PrevTrigger: PaginationPrevTrigger,
13
- };
7
+ export * as Pagination from './pagination';
14
8
  export { PaginationEllipsis, PaginationItem, PaginationNextTrigger, PaginationPrevTrigger, PaginationRoot, usePaginationContext, };
@@ -0,0 +1,6 @@
1
+ import { PaginationEllipsis as Ellipsis } from './pagination-ellipsis';
2
+ import { PaginationItem as Item } from './pagination-item';
3
+ import { PaginationNextTrigger as NextTrigger } from './pagination-next-trigger';
4
+ import { PaginationPrevTrigger as PrevTrigger } from './pagination-prev-trigger';
5
+ import { PaginationRoot as Root } from './pagination-root';
6
+ export { Ellipsis, Item, NextTrigger, PrevTrigger, Root };
@@ -3,10 +3,5 @@ import { PinInputControl } from './pin-input-control';
3
3
  import { PinInputInput } from './pin-input-input';
4
4
  import { PinInputLabel } from './pin-input-label';
5
5
  import { PinInputRoot } from './pin-input-root';
6
- export const PinInput = {
7
- Root: PinInputRoot,
8
- Control: PinInputControl,
9
- Input: PinInputInput,
10
- Label: PinInputLabel,
11
- };
6
+ export * as PinInput from './pin-input';
12
7
  export { PinInputControl, PinInputInput, PinInputLabel, PinInputRoot, usePinInputContext };
@@ -0,0 +1,5 @@
1
+ import { PinInputControl as Control } from './pin-input-control';
2
+ import { PinInputInput as Input } from './pin-input-input';
3
+ import { PinInputLabel as Label } from './pin-input-label';
4
+ import { PinInputRoot as Root } from './pin-input-root';
5
+ export { Control, Input, Label, Root };
@@ -10,17 +10,5 @@ import { PopoverPositioner } from './popover-positioner';
10
10
  import { PopoverRoot } from './popover-root';
11
11
  import { PopoverTitle } from './popover-title';
12
12
  import { PopoverTrigger } from './popover-trigger';
13
- export const Popover = {
14
- Root: PopoverRoot,
15
- Anchor: PopoverAnchor,
16
- Arrow: PopoverArrow,
17
- ArrowTip: PopoverArrowTip,
18
- CloseTrigger: PopoverCloseTrigger,
19
- Content: PopoverContent,
20
- Description: PopoverDescription,
21
- Indicator: PopoverIndicator,
22
- Positioner: PopoverPositioner,
23
- Title: PopoverTitle,
24
- Trigger: PopoverTrigger,
25
- };
13
+ export * as Popover from './popover';
26
14
  export { PopoverAnchor, PopoverArrow, PopoverArrowTip, PopoverCloseTrigger, PopoverContent, PopoverDescription, PopoverIndicator, PopoverPositioner, PopoverRoot, PopoverTitle, PopoverTrigger, usePopoverContext, };
@@ -4,5 +4,5 @@ import { usePopoverContext } from './popover-context';
4
4
  export const PopoverDescription = (props) => {
5
5
  const api = usePopoverContext();
6
6
  const mergedProps = mergeProps(() => api().descriptionProps, props);
7
- return <ark.p {...mergedProps}/>;
7
+ return <ark.div {...mergedProps}/>;
8
8
  };
@@ -0,0 +1,12 @@
1
+ import { PopoverAnchor as Anchor } from './popover-anchor';
2
+ import { PopoverArrow as Arrow } from './popover-arrow';
3
+ import { PopoverArrowTip as ArrowTip } from './popover-arrow-tip';
4
+ import { PopoverCloseTrigger as CloseTrigger } from './popover-close-trigger';
5
+ import { PopoverContent as Content } from './popover-content';
6
+ import { PopoverDescription as Description } from './popover-description';
7
+ import { PopoverIndicator as Indicator } from './popover-indicator';
8
+ import { PopoverPositioner as Positioner } from './popover-positioner';
9
+ import { PopoverRoot as Root } from './popover-root';
10
+ import { PopoverTitle as Title } from './popover-title';
11
+ import { PopoverTrigger as Trigger } from './popover-trigger';
12
+ export { Anchor, Arrow, ArrowTip, CloseTrigger, Content, Description, Indicator, Positioner, Root, Title, Trigger, };
@@ -4,7 +4,7 @@ import { createMemo, createUniqueId } from 'solid-js';
4
4
  import { useEnvironmentContext } from '../environment';
5
5
  export const usePopover = (props) => {
6
6
  const getRootNode = useEnvironmentContext();
7
- const context = mergeProps({ id: createUniqueId(), getRootNode }, props);
7
+ const context = mergeProps({ id: createUniqueId(), getRootNode, 'open.controlled': props.open !== undefined }, props);
8
8
  const [state, send] = useMachine(popover.machine(context), { context });
9
9
  return createMemo(() => popover.connect(state, send, normalizeProps));
10
10
  };
@@ -8,15 +8,5 @@ import { ProgressRoot } from './progress-root';
8
8
  import { ProgressTrack } from './progress-track';
9
9
  import { ProgressValueText } from './progress-value-text';
10
10
  import { ProgressView } from './progress-view';
11
- export const Progress = {
12
- Root: ProgressRoot,
13
- Label: ProgressLabel,
14
- Track: ProgressTrack,
15
- Range: ProgressRange,
16
- ValueText: ProgressValueText,
17
- View: ProgressView,
18
- Circle: ProgressCircle,
19
- CircleTrack: ProgressCircleTrack,
20
- CircleRange: ProgressCircleRange,
21
- };
11
+ export * as Progress from './progress';
22
12
  export { ProgressCircle, ProgressCircleRange, ProgressCircleTrack, ProgressLabel, ProgressRange, ProgressRoot, ProgressTrack, ProgressValueText, ProgressView, useProgressContext, };
@@ -0,0 +1,10 @@
1
+ import { ProgressCircle as Circle } from './progress-circle';
2
+ import { ProgressCircleRange as CircleRange } from './progress-circle-range';
3
+ import { ProgressCircleTrack as CircleTrack } from './progress-circle-track';
4
+ import { ProgressLabel as Label } from './progress-label';
5
+ import { ProgressRange as Range } from './progress-range';
6
+ import { ProgressRoot as Root } from './progress-root';
7
+ import { ProgressTrack as Track } from './progress-track';
8
+ import { ProgressValueText as ValueText } from './progress-value-text';
9
+ import { ProgressView as View } from './progress-view';
10
+ export { Circle, CircleRange, CircleTrack, Label, Range, Root, Track, ValueText, View };
@@ -6,12 +6,5 @@ import { RadioGroupItemControl } from './radio-group-item-control';
6
6
  import { RadioGroupItemText } from './radio-group-item-text';
7
7
  import { RadioGroupLabel } from './radio-group-label';
8
8
  import { RadioGroupRoot } from './radio-group-root';
9
- export const RadioGroup = {
10
- Root: RadioGroupRoot,
11
- Indicator: RadioGroupIndicator,
12
- Item: RadioGroupItem,
13
- ItemControl: RadioGroupItemControl,
14
- ItemText: RadioGroupItemText,
15
- Label: RadioGroupLabel,
16
- };
17
- export { RadioGroupItem, RadioGroupItemControl, RadioGroupItemText, RadioGroupLabel, RadioGroupRoot, useRadioGroupContext, useRadioGroupItemContext, };
9
+ export * as RadioGroup from './radio-group';
10
+ export { RadioGroupIndicator, RadioGroupItem, RadioGroupItemControl, RadioGroupItemText, RadioGroupLabel, RadioGroupRoot, useRadioGroupContext, useRadioGroupItemContext, };
@@ -0,0 +1,7 @@
1
+ import { RadioGroupIndicator as Indicator } from './radio-group-indicator';
2
+ import { RadioGroupItem as Item } from './radio-group-item';
3
+ import { RadioGroupItemControl as ItemControl } from './radio-group-item-control';
4
+ import { RadioGroupItemText as ItemText } from './radio-group-item-text';
5
+ import { RadioGroupLabel as Label } from './radio-group-label';
6
+ import { RadioGroupRoot as Root } from './radio-group-root';
7
+ export { Indicator, Item, ItemControl, ItemText, Label, Root };
@@ -4,10 +4,5 @@ import { RatingGroupItem } from './rating-group-item';
4
4
  import { useRatingGroupItemContext } from './rating-group-item-context';
5
5
  import { RatingGroupLabel } from './rating-group-label';
6
6
  import { RatingGroupRoot } from './rating-group-root';
7
- export const RatingGroup = {
8
- Root: RatingGroupRoot,
9
- Control: RatingGroupControl,
10
- Label: RatingGroupLabel,
11
- Item: RatingGroupItem,
12
- };
7
+ export * as RatingGroup from './rating-group';
13
8
  export { RatingGroupControl, RatingGroupItem, RatingGroupLabel, RatingGroupRoot, useRatingGroupContext, useRatingGroupItemContext, };
@@ -0,0 +1,5 @@
1
+ import { RatingGroupControl as Control } from './rating-group-control';
2
+ import { RatingGroupItem as Item } from './rating-group-item';
3
+ import { RatingGroupLabel as Label } from './rating-group-label';
4
+ import { RatingGroupRoot as Root } from './rating-group-root';
5
+ export { Control, Item, Label, Root };
@@ -6,12 +6,5 @@ import { SegmentGroupItemControl, } from './segment-group-item-control';
6
6
  import { SegmentGroupItemText } from './segment-group-item-text';
7
7
  import { SegmentGroupLabel } from './segment-group-label';
8
8
  import { SegmentGroupRoot } from './segment-group-root';
9
- export const SegmentGroup = {
10
- Root: SegmentGroupRoot,
11
- Indicator: SegmentGroupIndicator,
12
- Item: SegmentGroupItem,
13
- ItemControl: SegmentGroupItemControl,
14
- ItemText: SegmentGroupItemText,
15
- Label: SegmentGroupLabel,
16
- };
9
+ export * as SegmentGroup from './segment-group';
17
10
  export { SegmentGroupIndicator, SegmentGroupItem, SegmentGroupItemControl, SegmentGroupItemText, SegmentGroupLabel, SegmentGroupRoot, useSegmentGroupContext, useSegmentGroupItemContext, };
@@ -0,0 +1,7 @@
1
+ import { SegmentGroupIndicator as Indicator } from './segment-group-indicator';
2
+ import { SegmentGroupItem as Item } from './segment-group-item';
3
+ import { SegmentGroupItemControl as ItemControl } from './segment-group-item-control';
4
+ import { SegmentGroupItemText as ItemText } from './segment-group-item-text';
5
+ import { SegmentGroupLabel as Label } from './segment-group-label';
6
+ import { SegmentGroupRoot as Root } from './segment-group-root';
7
+ export { Indicator, Item, ItemControl, ItemText, Label, Root };
@@ -14,20 +14,5 @@ import { SelectPositioner } from './select-positioner';
14
14
  import { SelectRoot } from './select-root';
15
15
  import { SelectTrigger } from './select-trigger';
16
16
  import { SelectValueText } from './select-value-text';
17
- export const Select = {
18
- Root: SelectRoot,
19
- ClearTrigger: SelectClearTrigger,
20
- Content: SelectContent,
21
- Control: SelectControl,
22
- Indicator: SelectIndicator,
23
- Item: SelectItem,
24
- ItemGroup: SelectItemGroup,
25
- ItemGroupLabel: SelectItemGroupLabel,
26
- ItemIndicator: SelectItemIndicator,
27
- ItemText: SelectItemText,
28
- Label: SelectLabel,
29
- Positioner: SelectPositioner,
30
- Trigger: SelectTrigger,
31
- ValueText: SelectValueText,
32
- };
17
+ export * as Select from './select';
33
18
  export { SelectClearTrigger, SelectContent, SelectControl, SelectIndicator, SelectItem, SelectItemGroup, SelectItemGroupLabel, SelectItemIndicator, SelectItemText, SelectLabel, SelectPositioner, SelectRoot, SelectTrigger, SelectValueText, useSelectContext, useSelectItemContext, };
@@ -1,13 +1,17 @@
1
1
  import { mergeProps } from '@zag-js/solid';
2
- import { Index } from 'solid-js';
2
+ import { createMemo, Index, Show } from 'solid-js';
3
3
  import { ark } from '../factory';
4
4
  import { useSelectContext } from './select-context';
5
5
  export const SelectControl = (props) => {
6
6
  const api = useSelectContext();
7
7
  const mergedProps = mergeProps(() => api().controlProps, props);
8
+ const isValueEmpty = createMemo(() => api().value.length === 0);
8
9
  return (<>
9
10
  <ark.div {...mergedProps}/>
10
11
  <select {...api().hiddenSelectProps}>
12
+ <Show when={isValueEmpty()}>
13
+ <option value=""/>
14
+ </Show>
11
15
  <Index each={api().collection.toArray()}>
12
16
  {(option) => <option value={option().value}>{option().label}</option>}
13
17
  </Index>
@@ -0,0 +1,15 @@
1
+ import { SelectClearTrigger as ClearTrigger } from './select-clear-trigger';
2
+ import { SelectContent as Content } from './select-content';
3
+ import { SelectControl as Control } from './select-control';
4
+ import { SelectIndicator as Indicator } from './select-indicator';
5
+ import { SelectItem as Item } from './select-item';
6
+ import { SelectItemGroup as ItemGroup } from './select-item-group';
7
+ import { SelectItemGroupLabel as ItemGroupLabel } from './select-item-group-label';
8
+ import { SelectItemIndicator as ItemIndicator } from './select-item-indicator';
9
+ import { SelectItemText as ItemText } from './select-item-text';
10
+ import { SelectLabel as Label } from './select-label';
11
+ import { SelectPositioner as Positioner } from './select-positioner';
12
+ import { SelectRoot as Root } from './select-root';
13
+ import { SelectTrigger as Trigger } from './select-trigger';
14
+ import { SelectValueText as ValueText } from './select-value-text';
15
+ export { ClearTrigger, Content, Control, Indicator, Item, ItemGroup, ItemGroupLabel, ItemIndicator, ItemText, Label, Positioner, Root, Trigger, ValueText, };
@@ -12,7 +12,12 @@ export const useSelect = (props) => {
12
12
  ]);
13
13
  const collection = () => select.collection(collectionOptions);
14
14
  const getRootNode = useEnvironmentContext();
15
- const context = () => mergeProps({ id: createUniqueId(), getRootNode, collection: collection() }, rest);
15
+ const context = () => mergeProps({
16
+ id: createUniqueId(),
17
+ getRootNode,
18
+ collection: collection(),
19
+ 'open.controlled': props.open !== undefined,
20
+ }, rest);
16
21
  const [state, send] = useMachine(select.machine(context()), {
17
22
  context,
18
23
  });
@@ -8,15 +8,5 @@ import { SliderRoot } from './slider-root';
8
8
  import { SliderThumb } from './slider-thumb';
9
9
  import { SliderTrack } from './slider-track';
10
10
  import { SliderValueText } from './slider-value-text';
11
- export const Slider = {
12
- Root: SliderRoot,
13
- Control: SliderControl,
14
- Label: SliderLabel,
15
- Marker: SliderMarker,
16
- MarkerGroup: SliderMarkerGroup,
17
- Range: SliderRange,
18
- Thumb: SliderThumb,
19
- Track: SliderTrack,
20
- ValueText: SliderValueText,
21
- };
11
+ export * as Slider from './slider';
22
12
  export { SliderControl, SliderLabel, SliderMarker, SliderMarkerGroup, SliderRange, SliderRoot, SliderThumb, SliderTrack, SliderValueText, useSliderContext, };
@@ -0,0 +1,10 @@
1
+ import { SliderControl as Control } from './slider-control';
2
+ import { SliderLabel as Label } from './slider-label';
3
+ import { SliderMarker as Marker } from './slider-marker';
4
+ import { SliderMarkerGroup as MarkerGroup } from './slider-marker-group';
5
+ import { SliderRange as Range } from './slider-range';
6
+ import { SliderRoot as Root } from './slider-root';
7
+ import { SliderThumb as Thumb } from './slider-thumb';
8
+ import { SliderTrack as Track } from './slider-track';
9
+ import { SliderValueText as ValueText } from './slider-value-text';
10
+ export { Control, Label, Marker, MarkerGroup, Range, Root, Thumb, Track, ValueText };
@@ -2,9 +2,5 @@ import { useSplitterContext } from './splitter-context';
2
2
  import { SplitterPanel } from './splitter-panel';
3
3
  import { SplitterResizeTrigger } from './splitter-resize-trigger';
4
4
  import { SplitterRoot } from './splitter-root';
5
- export const Splitter = {
6
- Root: SplitterRoot,
7
- Panel: SplitterPanel,
8
- ResizeTrigger: SplitterResizeTrigger,
9
- };
5
+ export * as Splitter from './splitter';
10
6
  export { SplitterPanel, SplitterResizeTrigger, SplitterRoot, useSplitterContext };
@@ -0,0 +1,4 @@
1
+ import { SplitterPanel as Panel } from './splitter-panel';
2
+ import { SplitterResizeTrigger as ResizeTrigger } from './splitter-resize-trigger';
3
+ import { SplitterRoot as Root } from './splitter-root';
4
+ export { Panel, ResizeTrigger, Root };
@@ -3,10 +3,5 @@ import { SwitchControl } from './switch-control';
3
3
  import { SwitchLabel } from './switch-label';
4
4
  import { SwitchRoot } from './switch-root';
5
5
  import { SwitchThumb } from './switch-thumb';
6
- export const Switch = {
7
- Root: SwitchRoot,
8
- Control: SwitchControl,
9
- Label: SwitchLabel,
10
- Thumb: SwitchThumb,
11
- };
6
+ export * as Switch from './switch';
12
7
  export { SwitchControl, SwitchLabel, SwitchRoot, SwitchThumb, useSwitchContext };
@@ -0,0 +1,5 @@
1
+ import { SwitchControl as Control } from './switch-control';
2
+ import { SwitchLabel as Label } from './switch-label';
3
+ import { SwitchRoot as Root } from './switch-root';
4
+ import { SwitchThumb as Thumb } from './switch-thumb';
5
+ export { Control, Label, Root, Thumb };
@@ -4,11 +4,5 @@ import { TabList } from './tab-list';
4
4
  import { TabTrigger } from './tab-trigger';
5
5
  import { useTabsContext } from './tabs-context';
6
6
  import { TabsRoot } from './tabs-root';
7
- export const Tabs = {
8
- Root: TabsRoot,
9
- Content: TabContent,
10
- Indicator: TabIndicator,
11
- List: TabList,
12
- Trigger: TabTrigger,
13
- };
7
+ export * as Tabs from './tabs';
14
8
  export { TabContent, TabIndicator, TabList, TabTrigger, TabsRoot, useTabsContext };
@@ -0,0 +1,6 @@
1
+ import { TabContent as Content } from './tab-content';
2
+ import { TabIndicator as Indicator } from './tab-indicator';
3
+ import { TabList as List } from './tab-list';
4
+ import { TabTrigger as Trigger } from './tab-trigger';
5
+ import { TabsRoot as Root } from './tabs-root';
6
+ export { Content, Indicator, List, Root, Trigger };
@@ -10,16 +10,5 @@ import { TagsInputItemPreview } from './tags-input-item-preview';
10
10
  import { TagsInputItemText } from './tags-input-item-text';
11
11
  import { TagsInputLabel } from './tags-input-label';
12
12
  import { TagsInputRoot } from './tags-input-root';
13
- export const TagsInput = {
14
- Root: TagsInputRoot,
15
- ClearTrigger: TagsInputClearTrigger,
16
- Control: TagsInputControl,
17
- Input: TagsInputInput,
18
- Item: TagsInputItem,
19
- ItemPreview: TagsInputItemPreview,
20
- ItemDeleteTrigger: TagsInputItemDeleteTrigger,
21
- ItemInput: TagsInputItemInput,
22
- ItemText: TagsInputItemText,
23
- Label: TagsInputLabel,
24
- };
13
+ export * as TagsInput from './tags-input';
25
14
  export { TagsInputClearTrigger, TagsInputControl, TagsInputInput, TagsInputItem, TagsInputItemDeleteTrigger, TagsInputItemInput, TagsInputItemPreview, TagsInputItemText, TagsInputLabel, TagsInputRoot, useTagsInputContext, useTagsInputItemContext, };
@@ -0,0 +1,11 @@
1
+ import { TagsInputClearTrigger as ClearTrigger } from './tags-input-clear-trigger';
2
+ import { TagsInputControl as Control } from './tags-input-control';
3
+ import { TagsInputInput as Input } from './tags-input-input';
4
+ import { TagsInputItem as Item } from './tags-input-item';
5
+ import { TagsInputItemDeleteTrigger as ItemDeleteTrigger } from './tags-input-item-delete-trigger';
6
+ import { TagsInputItemInput as ItemInput } from './tags-input-item-input';
7
+ import { TagsInputItemPreview as ItemPreview } from './tags-input-item-preview';
8
+ import { TagsInputItemText as ItemText } from './tags-input-item-text';
9
+ import { TagsInputLabel as Label } from './tags-input-label';
10
+ import { TagsInputRoot as Root } from './tags-input-root';
11
+ export { ClearTrigger, Control, Input, Item, ItemDeleteTrigger, ItemInput, ItemPreview, ItemText, Label, Root, };
@@ -4,11 +4,5 @@ import { ToastDescription } from './toast-description';
4
4
  import { ToastGroup } from './toast-group';
5
5
  import { ToastRoot } from './toast-root';
6
6
  import { ToastTitle } from './toast-title';
7
- export const Toast = {
8
- Root: ToastRoot,
9
- CloseTrigger: ToastCloseTrigger,
10
- Description: ToastDescription,
11
- Group: ToastGroup,
12
- Title: ToastTitle,
13
- };
7
+ export * as Toast from './toast';
14
8
  export { createToaster, ToastCloseTrigger, ToastDescription, ToastGroup, ToastRoot, ToastTitle };
@@ -0,0 +1,6 @@
1
+ import { ToastCloseTrigger as CloseTrigger } from './toast-close-trigger';
2
+ import { ToastDescription as Description } from './toast-description';
3
+ import { ToastGroup as Group } from './toast-group';
4
+ import { ToastRoot as Root } from './toast-root';
5
+ import { ToastTitle as Title } from './toast-title';
6
+ export { CloseTrigger, Description, Group, Root, Title };
@@ -1,8 +1,5 @@
1
1
  import { useToggleGroupContext } from './toggle-group-context';
2
2
  import { ToggleGroupItem } from './toggle-group-item';
3
3
  import { ToggleGroupRoot } from './toggle-group-root';
4
- export const ToggleGroup = {
5
- Root: ToggleGroupRoot,
6
- Item: ToggleGroupItem,
7
- };
4
+ export * as ToggleGroup from './toggle-group';
8
5
  export { ToggleGroupItem, ToggleGroupRoot, useToggleGroupContext };
@@ -0,0 +1,3 @@
1
+ import { ToggleGroupItem as Item } from './toggle-group-item';
2
+ import { ToggleGroupRoot as Root } from './toggle-group-root';
3
+ export { Item, Root };
@@ -5,12 +5,5 @@ import { useTooltipContext } from './tooltip-context';
5
5
  import { TooltipPositioner } from './tooltip-positioner';
6
6
  import { TooltipRoot } from './tooltip-root';
7
7
  import { TooltipTrigger } from './tooltip-trigger';
8
- export const Tooltip = {
9
- Root: TooltipRoot,
10
- Arrow: TooltipArrow,
11
- ArrowTip: TooltipArrowTip,
12
- Content: TooltipContent,
13
- Positioner: TooltipPositioner,
14
- Trigger: TooltipTrigger,
15
- };
8
+ export * as Tooltip from './tooltip';
16
9
  export { TooltipArrow, TooltipArrowTip, TooltipContent, TooltipPositioner, TooltipRoot, TooltipTrigger, useTooltipContext, };
@@ -0,0 +1,7 @@
1
+ import { TooltipArrow as Arrow } from './tooltip-arrow';
2
+ import { TooltipArrowTip as ArrowTip } from './tooltip-arrow-tip';
3
+ import { TooltipContent as Content } from './tooltip-content';
4
+ import { TooltipPositioner as Positioner } from './tooltip-positioner';
5
+ import { TooltipRoot as Root } from './tooltip-root';
6
+ import { TooltipTrigger as Trigger } from './tooltip-trigger';
7
+ export { Arrow, ArrowTip, Content, Positioner, Root, Trigger };
@@ -4,7 +4,7 @@ import { createMemo, createUniqueId } from 'solid-js';
4
4
  import { useEnvironmentContext } from '../environment';
5
5
  export const useTooltip = (props) => {
6
6
  const getRootNode = useEnvironmentContext();
7
- const context = mergeProps({ id: createUniqueId(), getRootNode }, props);
7
+ const context = mergeProps({ id: createUniqueId(), getRootNode, 'open.controlled': props.open !== undefined }, props);
8
8
  const [state, send] = useMachine(tooltip.machine(context), { context });
9
9
  return createMemo(() => tooltip.connect(state, send, normalizeProps));
10
10
  };
@@ -6,21 +6,10 @@ import { TreeViewBranchText } from './tree-view-branch-text';
6
6
  import { TreeViewBranchTrigger } from './tree-view-branch-trigger';
7
7
  import { useTreeViewContext } from './tree-view-context';
8
8
  import { TreeViewItem } from './tree-view-item';
9
+ import { TreeViewItemIndicator } from './tree-view-item-indicator';
9
10
  import { TreeViewItemText } from './tree-view-item-text';
10
11
  import { TreeViewLabel } from './tree-view-label';
11
12
  import { TreeViewRoot } from './tree-view-root';
12
13
  import { TreeViewTree } from './tree-view-tree';
13
- export const TreeView = {
14
- Root: TreeViewRoot,
15
- Label: TreeViewLabel,
16
- Tree: TreeViewTree,
17
- Branch: TreeViewBranch,
18
- Item: TreeViewItem,
19
- ItemText: TreeViewItemText,
20
- BranchContent: TreeViewBranchContent,
21
- BranchControl: TreeViewBranchControl,
22
- BranchTrigger: TreeViewBranchTrigger,
23
- BranchIndicator: TreeViewBranchIndicator,
24
- BranchText: TreeViewBranchText,
25
- };
26
- export { TreeViewBranch, TreeViewBranchContent, TreeViewBranchControl, TreeViewBranchIndicator, TreeViewBranchText, TreeViewBranchTrigger, TreeViewItem, TreeViewItemText, TreeViewLabel, TreeViewRoot, TreeViewTree, useTreeViewContext, };
14
+ export * as TreeView from './tree-view';
15
+ export { TreeViewBranch, TreeViewBranchContent, TreeViewBranchControl, TreeViewBranchIndicator, TreeViewBranchText, TreeViewBranchTrigger, TreeViewItem, TreeViewItemIndicator, TreeViewItemText, TreeViewLabel, TreeViewRoot, TreeViewTree, useTreeViewContext, };
@@ -1,15 +1,10 @@
1
- // import type { BranchProps } from '@zag-js/tree-view'
2
1
  import { mergeProps } from '@zag-js/solid';
3
- import { createSplitProps } from '../create-split-props';
4
2
  import { ark } from '../factory';
3
+ import { useTreeViewBranchContext } from './tree-view-branch-context';
5
4
  import { useTreeViewContext } from './tree-view-context';
6
5
  export const TreeViewBranchContent = (props) => {
7
- const [branchProps, localProps] = createSplitProps()(props, [
8
- 'depth',
9
- 'id',
10
- 'disabled',
11
- ]);
12
6
  const api = useTreeViewContext();
13
- const mergedProps = mergeProps(() => api().getBranchContentProps(branchProps), localProps);
7
+ const branchProps = useTreeViewBranchContext();
8
+ const mergedProps = mergeProps(() => api().getBranchContentProps(branchProps), props);
14
9
  return <ark.ul {...mergedProps}/>;
15
10
  };
@@ -0,0 +1,5 @@
1
+ import { createContext } from '../create-context';
2
+ export const [TreeViewBranchProvider, useTreeViewBranchContext] = createContext({
3
+ hookName: 'useTreeViewBranchContext',
4
+ providerName: '<TreeViewBranchProvider />',
5
+ });
@@ -1,15 +1,10 @@
1
- // import type { BranchProps } from '@zag-js/tree-view'
2
1
  import { mergeProps } from '@zag-js/solid';
3
- import { createSplitProps } from '../create-split-props';
4
2
  import { ark } from '../factory';
3
+ import { useTreeViewBranchContext } from './tree-view-branch-context';
5
4
  import { useTreeViewContext } from './tree-view-context';
6
5
  export const TreeViewBranchControl = (props) => {
7
- const [branchProps, localProps] = createSplitProps()(props, [
8
- 'depth',
9
- 'id',
10
- 'disabled',
11
- ]);
12
6
  const api = useTreeViewContext();
13
- const mergedProps = mergeProps(() => api().getBranchControlProps(branchProps), localProps);
7
+ const branchProps = useTreeViewBranchContext();
8
+ const mergedProps = mergeProps(() => api().getBranchControlProps(branchProps), props);
14
9
  return <ark.div {...mergedProps}/>;
15
10
  };
@@ -1,16 +1,13 @@
1
- // import type { BranchProps } from '@zag-js/tree-view'
2
1
  import { treeViewAnatomy } from '@ark-ui/anatomy';
3
2
  import { mergeProps } from '@zag-js/solid';
4
- import { createSplitProps } from '../create-split-props';
5
3
  import { ark } from '../factory';
4
+ import { useTreeViewBranchContext } from './tree-view-branch-context';
6
5
  import { useTreeViewContext } from './tree-view-context';
7
6
  export const TreeViewBranchIndicator = (props) => {
8
- const [branchProps, localProps] = createSplitProps()(props, [
9
- 'depth',
10
- 'id',
11
- 'disabled',
12
- ]);
13
7
  const api = useTreeViewContext();
14
- const mergedProps = mergeProps(() => api().getBranchProps(branchProps), treeViewAnatomy.build().branchIndicator.attrs, localProps);
8
+ const branchProps = useTreeViewBranchContext();
9
+ const mergedProps = mergeProps(() => api().getBranchProps(branchProps),
10
+ // TODO use api.getBranchIndicatorProps() when available
11
+ treeViewAnatomy.build().branchIndicator.attrs, props);
15
12
  return <ark.div {...mergedProps}/>;
16
13
  };