ui-ingredients 1.2.0 → 1.4.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 (82) hide show
  1. package/dist/accordion/accordion-context.svelte.js +1 -1
  2. package/dist/accordion/accordion-root.svelte +5 -3
  3. package/dist/alert-dialog/alert-dialog-root.svelte +5 -3
  4. package/dist/anatomy.d.ts +1 -0
  5. package/dist/anatomy.js +1 -0
  6. package/dist/collapsible/collapsible-root.svelte +5 -3
  7. package/dist/collection.d.ts +1 -0
  8. package/dist/collection.js +1 -0
  9. package/dist/color-picker/color-picker-context.svelte.js +4 -4
  10. package/dist/color-picker/color-picker-root.svelte +5 -3
  11. package/dist/combobox/combobox-context.svelte.js +2 -2
  12. package/dist/combobox/combobox-root.svelte +5 -3
  13. package/dist/date-picker/date-picker-context.svelte.js +4 -4
  14. package/dist/date-picker/date-picker-root.svelte +5 -1
  15. package/dist/dialog/dialog-root.svelte +5 -3
  16. package/dist/drawer/drawer-root.svelte +5 -3
  17. package/dist/field/field-root.svelte +5 -3
  18. package/dist/file-upload/file-upload-context.svelte.js +1 -1
  19. package/dist/floating-panel/floating-panel-anatomy.d.ts +1 -1
  20. package/dist/floating-panel/floating-panel-anatomy.js +1 -1
  21. package/dist/floating-panel/{floating-panel-restore-trigger.svelte → floating-panel-control.svelte} +6 -6
  22. package/dist/floating-panel/floating-panel-control.svelte.d.ts +6 -0
  23. package/dist/floating-panel/floating-panel-root.svelte +5 -3
  24. package/dist/floating-panel/floating-panel-stage-trigger.svelte +44 -0
  25. package/dist/floating-panel/floating-panel-stage-trigger.svelte.d.ts +7 -0
  26. package/dist/floating-panel/floating-panel.d.ts +3 -4
  27. package/dist/floating-panel/floating-panel.js +3 -4
  28. package/dist/floating-panel/index.d.ts +2 -3
  29. package/dist/index.d.ts +1 -0
  30. package/dist/index.js +1 -0
  31. package/dist/listbox/create-listbox.svelte.d.ts +6 -0
  32. package/dist/listbox/create-listbox.svelte.js +14 -0
  33. package/dist/listbox/index.d.ts +14 -0
  34. package/dist/listbox/index.js +4 -0
  35. package/dist/listbox/listbox-anatomy.d.ts +1 -0
  36. package/dist/listbox/listbox-anatomy.js +1 -0
  37. package/dist/listbox/listbox-content.svelte +29 -0
  38. package/dist/listbox/listbox-content.svelte.d.ts +6 -0
  39. package/dist/listbox/listbox-context.svelte.d.ts +5 -0
  40. package/dist/listbox/listbox-context.svelte.js +4 -0
  41. package/dist/listbox/listbox-input.svelte +39 -0
  42. package/dist/listbox/listbox-input.svelte.d.ts +7 -0
  43. package/dist/listbox/listbox-item-group-label.svelte +40 -0
  44. package/dist/listbox/listbox-item-group-label.svelte.d.ts +6 -0
  45. package/dist/listbox/listbox-item-group.svelte +39 -0
  46. package/dist/listbox/listbox-item-group.svelte.d.ts +6 -0
  47. package/dist/listbox/listbox-item-indicator.svelte +35 -0
  48. package/dist/listbox/listbox-item-indicator.svelte.d.ts +6 -0
  49. package/dist/listbox/listbox-item-text.svelte +35 -0
  50. package/dist/listbox/listbox-item-text.svelte.d.ts +6 -0
  51. package/dist/listbox/listbox-item.svelte +47 -0
  52. package/dist/listbox/listbox-item.svelte.d.ts +7 -0
  53. package/dist/listbox/listbox-label.svelte +29 -0
  54. package/dist/listbox/listbox-label.svelte.d.ts +6 -0
  55. package/dist/listbox/listbox-root.svelte +70 -0
  56. package/dist/listbox/listbox-root.svelte.d.ts +7 -0
  57. package/dist/listbox/listbox-value-text.svelte +33 -0
  58. package/dist/listbox/listbox-value-text.svelte.d.ts +6 -0
  59. package/dist/listbox/listbox.d.ts +11 -0
  60. package/dist/listbox/listbox.js +11 -0
  61. package/dist/menu/menu-context.svelte.js +2 -2
  62. package/dist/portal/portal-context.svelte.js +1 -1
  63. package/dist/presence/create-presence.svelte.d.ts +2 -0
  64. package/dist/presence/create-presence.svelte.js +8 -3
  65. package/dist/segment-group/segment-group-context.svelte.js +1 -1
  66. package/dist/select/select-context.svelte.js +2 -2
  67. package/dist/select/select-root.svelte +5 -3
  68. package/dist/slider/slider-context.svelte.js +1 -1
  69. package/dist/steps/steps-context.svelte.js +1 -1
  70. package/dist/steps/steps-root.svelte +5 -3
  71. package/dist/tags-input/tags-input-context.svelte.js +1 -1
  72. package/dist/time-picker/time-picker-root.svelte +5 -3
  73. package/dist/timer/timer-context.svelte.js +1 -1
  74. package/dist/tooltip/tooltip-root.svelte +5 -3
  75. package/dist/tour/tour-root.svelte +5 -3
  76. package/dist/tree-view/tree-view-root.svelte +5 -3
  77. package/package.json +71 -57
  78. package/dist/floating-panel/floating-panel-maximize-trigger.svelte +0 -31
  79. package/dist/floating-panel/floating-panel-maximize-trigger.svelte.d.ts +0 -6
  80. package/dist/floating-panel/floating-panel-minimize-trigger.svelte +0 -31
  81. package/dist/floating-panel/floating-panel-minimize-trigger.svelte.d.ts +0 -6
  82. package/dist/floating-panel/floating-panel-restore-trigger.svelte.d.ts +0 -6
@@ -1,3 +1,3 @@
1
1
  import { createContext } from '../create-context.svelte.js';
2
2
  export const [getAccordionContext, setAccordionContext] = createContext('Accordion');
3
- export const [getAccordionItemPropsContext, setAccordionItemPropsContext] = createContext('AccordionItem [PROPS]');
3
+ export const [getAccordionItemPropsContext, setAccordionItemPropsContext] = createContext('AccordionItem.props');
@@ -33,9 +33,11 @@
33
33
  let uid = $props.id();
34
34
 
35
35
  let [presenceStrategyProps, accordionProps] = $derived(
36
- createSplitProps<PresenceStrategyProps>(['lazyMount', 'keepMounted'])(
37
- props,
38
- ),
36
+ createSplitProps<PresenceStrategyProps>([
37
+ 'lazyMount',
38
+ 'keepMounted',
39
+ 'animateOnMount',
40
+ ])(props),
39
41
  );
40
42
 
41
43
  let [createAccordionProps, localProps] = $derived(
@@ -30,9 +30,11 @@
30
30
  let uid = $props.id();
31
31
 
32
32
  let [presenceStrategyProps, createDialogProps] = $derived(
33
- createSplitProps<PresenceStrategyProps>(['lazyMount', 'keepMounted'])(
34
- props,
35
- ),
33
+ createSplitProps<PresenceStrategyProps>([
34
+ 'lazyMount',
35
+ 'keepMounted',
36
+ 'animateOnMount',
37
+ ])(props),
36
38
  );
37
39
 
38
40
  let alertDialog = createAlertDialog(
package/dist/anatomy.d.ts CHANGED
@@ -18,6 +18,7 @@ export { anatomy as fieldAnatomy } from './field/field-anatomy.js';
18
18
  export { anatomy as fileUploadAnatomy } from './file-upload/file-upload-anatomy.js';
19
19
  export { anatomy as floatingPanelAnatomy } from './floating-panel/floating-panel-anatomy.js';
20
20
  export { anatomy as hoverCardAnatomy } from './hover-card/hover-card-anatomy.js';
21
+ export { anatomy as listboxAnatomy } from './listbox/listbox-anatomy.js';
21
22
  export { anatomy as menuAnatomy } from './menu/menu-anatomy.js';
22
23
  export { anatomy as numberInputAnatomy } from './number-input/number-input-anatomy.js';
23
24
  export { anatomy as paginationAnatomy } from './pagination/pagination-anatomy.js';
package/dist/anatomy.js CHANGED
@@ -18,6 +18,7 @@ export { anatomy as fieldAnatomy } from './field/field-anatomy.js';
18
18
  export { anatomy as fileUploadAnatomy } from './file-upload/file-upload-anatomy.js';
19
19
  export { anatomy as floatingPanelAnatomy } from './floating-panel/floating-panel-anatomy.js';
20
20
  export { anatomy as hoverCardAnatomy } from './hover-card/hover-card-anatomy.js';
21
+ export { anatomy as listboxAnatomy } from './listbox/listbox-anatomy.js';
21
22
  export { anatomy as menuAnatomy } from './menu/menu-anatomy.js';
22
23
  export { anatomy as numberInputAnatomy } from './number-input/number-input-anatomy.js';
23
24
  export { anatomy as paginationAnatomy } from './pagination/pagination-anatomy.js';
@@ -34,9 +34,11 @@
34
34
  let uid = $props.id();
35
35
 
36
36
  let [presenceStrategyProps, collapsibleProps] = $derived(
37
- createSplitProps<PresenceStrategyProps>(['lazyMount', 'keepMounted'])(
38
- props,
39
- ),
37
+ createSplitProps<PresenceStrategyProps>([
38
+ 'lazyMount',
39
+ 'keepMounted',
40
+ 'animateOnMount',
41
+ ])(props),
40
42
  );
41
43
 
42
44
  let [createCollapsibleProps, localProps] = $derived(
@@ -0,0 +1 @@
1
+ export * from '@zag-js/collection';
@@ -0,0 +1 @@
1
+ export * from '@zag-js/collection';
@@ -1,6 +1,6 @@
1
1
  import { createContext } from '../create-context.svelte.js';
2
2
  export const [getColorPickerContext, setColorPickerContext] = createContext('ColorPicker');
3
- export const [getColorPickerAreaPropsContext, setColorPickerAreaPropsContext] = createContext('ColorPickerArea [PROPS]');
4
- export const [getColorPickerSwatchPropsContext, setColorPickerSwatchPropsContext,] = createContext('ColorPickerSwatch [PROPS]');
5
- export const [getColorPickerFormatPropsContext, setColorPickerFormatPropsContext,] = createContext('ColorPickerFormat [PROPS]', false);
6
- export const [getColorPickerChannelPropsContext, setColorPickerChannelPropsContext,] = createContext('ColorPickerChannel [PROPS]');
3
+ export const [getColorPickerAreaPropsContext, setColorPickerAreaPropsContext] = createContext('ColorPickerArea.props');
4
+ export const [getColorPickerSwatchPropsContext, setColorPickerSwatchPropsContext,] = createContext('ColorPickerSwatch.props');
5
+ export const [getColorPickerFormatPropsContext, setColorPickerFormatPropsContext,] = createContext('ColorPickerFormat.props', false);
6
+ export const [getColorPickerChannelPropsContext, setColorPickerChannelPropsContext,] = createContext('ColorPickerChannel.props');
@@ -34,9 +34,11 @@
34
34
  let uid = $props.id();
35
35
 
36
36
  let [presenceProps, colorPickerProps] = $derived(
37
- createSplitProps<PresenceStrategyProps>(['lazyMount', 'keepMounted'])(
38
- props,
39
- ),
37
+ createSplitProps<PresenceStrategyProps>([
38
+ 'lazyMount',
39
+ 'keepMounted',
40
+ 'animateOnMount',
41
+ ])(props),
40
42
  );
41
43
 
42
44
  let [createColorPickerProps, localProps] = $derived(
@@ -1,4 +1,4 @@
1
1
  import { createContext } from '../create-context.svelte.js';
2
2
  export const [getComboboxContext, setComboboxContext] = createContext('Combobox');
3
- export const [getComboboxItemPropsContext, setComboboxItemPropsContext] = createContext('ComboboxItem [PROPS]');
4
- export const [getComboboxItemGroupPropsContext, setComboboxItemGroupPropsContext,] = createContext('ComboboxItemGroup [PROPS]');
3
+ export const [getComboboxItemPropsContext, setComboboxItemPropsContext] = createContext('ComboboxItem.props');
4
+ export const [getComboboxItemGroupPropsContext, setComboboxItemGroupPropsContext,] = createContext('ComboboxItemGroup.props');
@@ -34,9 +34,11 @@
34
34
  let uid = $props.id();
35
35
 
36
36
  let [presenceStrategyProps, comboboxProps] = $derived(
37
- createSplitProps<PresenceStrategyProps>(['lazyMount', 'keepMounted'])(
38
- props,
39
- ),
37
+ createSplitProps<PresenceStrategyProps>([
38
+ 'lazyMount',
39
+ 'keepMounted',
40
+ 'animateOnMount',
41
+ ])(props),
40
42
  );
41
43
 
42
44
  let [createComboboxProps, localProps] = $derived(
@@ -1,6 +1,6 @@
1
1
  import { createContext } from '../create-context.svelte.js';
2
2
  export const [getDatePickerContext, setDatePickerContext] = createContext('DatePicker');
3
- export const [getDatePickerViewPropsContext, setDatePickerViewPropsContext] = createContext('DatePickerView [PROPS]');
4
- export const [getDatePickerTablePropsContext, setDatePickerTablePropsContext] = createContext('DatePickerTable [PROPS]');
5
- export const [getDatePickerTableCellPropsContext, setDatePickerTableCellPropsContext,] = createContext('DatePickerTableCell [PROPS]');
6
- export const [getDatePickerDayTableCellPropsContext, setDatePickerDayTableCellPropsContext,] = createContext('DatePickerDayTableCell [PROPS]');
3
+ export const [getDatePickerViewPropsContext, setDatePickerViewPropsContext] = createContext('DatePickerView.props');
4
+ export const [getDatePickerTablePropsContext, setDatePickerTablePropsContext] = createContext('DatePickerTable.props');
5
+ export const [getDatePickerTableCellPropsContext, setDatePickerTableCellPropsContext,] = createContext('DatePickerTableCell.props');
6
+ export const [getDatePickerDayTableCellPropsContext, setDatePickerDayTableCellPropsContext,] = createContext('DatePickerDayTableCell.props');
@@ -34,7 +34,11 @@
34
34
  let uid = $props.id();
35
35
 
36
36
  let [presenceStrategyProps, datePickerProps] = $derived(
37
- createSplitProps<PresenceStrategyProps>([])(props),
37
+ createSplitProps<PresenceStrategyProps>([
38
+ 'lazyMount',
39
+ 'keepMounted',
40
+ 'animateOnMount',
41
+ ])(props),
38
42
  );
39
43
 
40
44
  let [createDatePickerProps, localProps] = $derived(
@@ -30,9 +30,11 @@
30
30
  let uid = $props.id();
31
31
 
32
32
  let [presenceStrategyProps, createDialogProps] = $derived(
33
- createSplitProps<PresenceStrategyProps>(['lazyMount', 'keepMounted'])(
34
- props,
35
- ),
33
+ createSplitProps<PresenceStrategyProps>([
34
+ 'lazyMount',
35
+ 'keepMounted',
36
+ 'animateOnMount',
37
+ ])(props),
36
38
  );
37
39
 
38
40
  let dialog = createDialog(
@@ -30,9 +30,11 @@
30
30
  let uid = $props.id();
31
31
 
32
32
  let [presenceStrategyProps, createDialogProps] = $derived(
33
- createSplitProps<PresenceStrategyProps>(['lazyMount', 'keepMounted'])(
34
- props,
35
- ),
33
+ createSplitProps<PresenceStrategyProps>([
34
+ 'lazyMount',
35
+ 'keepMounted',
36
+ 'animateOnMount',
37
+ ])(props),
36
38
  );
37
39
 
38
40
  let drawer = createDrawer(
@@ -33,9 +33,11 @@
33
33
  let uid = $props.id();
34
34
 
35
35
  let [presenceStrategyProps, fieldProps] = $derived(
36
- createSplitProps<PresenceStrategyProps>(['keepMounted', 'lazyMount'])(
37
- props,
38
- ),
36
+ createSplitProps<PresenceStrategyProps>([
37
+ 'keepMounted',
38
+ 'lazyMount',
39
+ 'animateOnMount',
40
+ ])(props),
39
41
  );
40
42
 
41
43
  let [createFieldProps, localProps] = $derived(
@@ -1,3 +1,3 @@
1
1
  import { createContext } from '../create-context.svelte.js';
2
2
  export const [getFileUploadContext, setFileUploadContext] = createContext('FileUpload');
3
- export const [getFileUploadItemPropsContext, setFileUploadItemPropsContext] = createContext('FileUploadItem [PROPS]');
3
+ export const [getFileUploadItemPropsContext, setFileUploadItemPropsContext] = createContext('FileUploadItem.props');
@@ -1 +1 @@
1
- export { floating as anatomy } from '@zag-js/floating-panel';
1
+ export { anatomy } from '@zag-js/floating-panel';
@@ -1 +1 @@
1
- export { floating as anatomy } from '@zag-js/floating-panel';
1
+ export { anatomy } from '@zag-js/floating-panel';
@@ -1,8 +1,8 @@
1
1
  <script lang="ts" module>
2
2
  import type {HtmlIngredientProps} from '../types.js';
3
3
 
4
- export interface FloatingPanelRestoreTriggerProps
5
- extends HtmlIngredientProps<'button', HTMLButtonElement> {}
4
+ export interface FloatingPanelControlProps
5
+ extends HtmlIngredientProps<'div', HTMLDivElement> {}
6
6
  </script>
7
7
 
8
8
  <script lang="ts">
@@ -14,18 +14,18 @@
14
14
  asChild,
15
15
  children,
16
16
  ...props
17
- }: FloatingPanelRestoreTriggerProps = $props();
17
+ }: FloatingPanelControlProps = $props();
18
18
 
19
19
  let floatingPanel = getFloatingPanelContext();
20
20
  let mergedProps = $derived(
21
- mergeProps(floatingPanel.getRestoreTriggerProps(), props),
21
+ mergeProps(floatingPanel.getControlProps(), props),
22
22
  );
23
23
  </script>
24
24
 
25
25
  {#if asChild}
26
26
  {@render asChild(mergedProps)}
27
27
  {:else}
28
- <button bind:this={ref} {...mergedProps}>
28
+ <div bind:this={ref} {...mergedProps}>
29
29
  {@render children?.()}
30
- </button>
30
+ </div>
31
31
  {/if}
@@ -0,0 +1,6 @@
1
+ import type { HtmlIngredientProps } from '../types.js';
2
+ export interface FloatingPanelControlProps extends HtmlIngredientProps<'div', HTMLDivElement> {
3
+ }
4
+ declare const FloatingPanelControl: import("svelte").Component<FloatingPanelControlProps, {}, "ref">;
5
+ type FloatingPanelControl = ReturnType<typeof FloatingPanelControl>;
6
+ export default FloatingPanelControl;
@@ -27,9 +27,11 @@
27
27
  let uid = $props.id();
28
28
 
29
29
  let [presenceStrategyProps, createFloatingPanelProps] = $derived(
30
- createSplitProps<PresenceStrategyProps>(['lazyMount', 'keepMounted'])(
31
- props,
32
- ),
30
+ createSplitProps<PresenceStrategyProps>([
31
+ 'lazyMount',
32
+ 'keepMounted',
33
+ 'animateOnMount',
34
+ ])(props),
33
35
  );
34
36
 
35
37
  let floatingPanel = createFloatingPanel(
@@ -0,0 +1,44 @@
1
+ <script lang="ts" module>
2
+ import type {StageTriggerProps} from '@zag-js/floating-panel';
3
+ import type {Assign, HtmlIngredientProps} from '../types.js';
4
+
5
+ export interface FloatingPanelStageTriggerProps
6
+ extends Assign<
7
+ HtmlIngredientProps<'button', HTMLButtonElement>,
8
+ StageTriggerProps
9
+ > {}
10
+ </script>
11
+
12
+ <script lang="ts">
13
+ import {createSplitProps} from '../create-split-props.js';
14
+ import {mergeProps} from '../merge-props.js';
15
+ import {getFloatingPanelContext} from './floating-panel-context.svelte.js';
16
+
17
+ let {
18
+ ref = $bindable(null),
19
+ asChild,
20
+ children,
21
+ ...props
22
+ }: FloatingPanelStageTriggerProps = $props();
23
+
24
+ let floatingPanel = getFloatingPanelContext();
25
+
26
+ let [stageTriggerProps, localProps] = $derived(
27
+ createSplitProps<StageTriggerProps>(['stage'])(props),
28
+ );
29
+
30
+ let mergedProps = $derived(
31
+ mergeProps(
32
+ floatingPanel.getStageTriggerProps(stageTriggerProps),
33
+ localProps,
34
+ ),
35
+ );
36
+ </script>
37
+
38
+ {#if asChild}
39
+ {@render asChild(mergedProps)}
40
+ {:else}
41
+ <button bind:this={ref} {...mergedProps}>
42
+ {@render children?.()}
43
+ </button>
44
+ {/if}
@@ -0,0 +1,7 @@
1
+ import type { StageTriggerProps } from '@zag-js/floating-panel';
2
+ import type { Assign, HtmlIngredientProps } from '../types.js';
3
+ export interface FloatingPanelStageTriggerProps extends Assign<HtmlIngredientProps<'button', HTMLButtonElement>, StageTriggerProps> {
4
+ }
5
+ declare const FloatingPanelStageTrigger: import("svelte").Component<FloatingPanelStageTriggerProps, {}, "ref">;
6
+ type FloatingPanelStageTrigger = ReturnType<typeof FloatingPanelStageTrigger>;
7
+ export default FloatingPanelStageTrigger;
@@ -1,13 +1,12 @@
1
1
  export { default as Body } from './floating-panel-body.svelte';
2
2
  export { default as CloseTrigger } from './floating-panel-close-trigger.svelte';
3
3
  export { default as Content } from './floating-panel-content.svelte';
4
+ export { default as Control } from './floating-panel-control.svelte';
4
5
  export { default as DragTrigger } from './floating-panel-drag-trigger.svelte';
5
6
  export { default as Header } from './floating-panel-header.svelte';
6
- export { default as MaximizeTrigger } from './floating-panel-maximize-trigger.svelte';
7
- export { default as MinimizeTrigger } from './floating-panel-minimize-trigger.svelte';
8
7
  export { default as Positioner } from './floating-panel-positioner.svelte';
9
8
  export { default as ResizeTrigger } from './floating-panel-resize-trigger.svelte';
10
- export { default as RestoreTrigger } from './floating-panel-restore-trigger.svelte';
11
9
  export { default as Root } from './floating-panel-root.svelte';
10
+ export { default as StageTrigger } from './floating-panel-stage-trigger.svelte';
12
11
  export { default as Title } from './floating-panel-title.svelte';
13
- export { default as FloatingPanelTrigger } from './floating-panel-trigger.svelte';
12
+ export { default as Trigger } from './floating-panel-trigger.svelte';
@@ -1,13 +1,12 @@
1
1
  export { default as Body } from './floating-panel-body.svelte';
2
2
  export { default as CloseTrigger } from './floating-panel-close-trigger.svelte';
3
3
  export { default as Content } from './floating-panel-content.svelte';
4
+ export { default as Control } from './floating-panel-control.svelte';
4
5
  export { default as DragTrigger } from './floating-panel-drag-trigger.svelte';
5
6
  export { default as Header } from './floating-panel-header.svelte';
6
- export { default as MaximizeTrigger } from './floating-panel-maximize-trigger.svelte';
7
- export { default as MinimizeTrigger } from './floating-panel-minimize-trigger.svelte';
8
7
  export { default as Positioner } from './floating-panel-positioner.svelte';
9
8
  export { default as ResizeTrigger } from './floating-panel-resize-trigger.svelte';
10
- export { default as RestoreTrigger } from './floating-panel-restore-trigger.svelte';
11
9
  export { default as Root } from './floating-panel-root.svelte';
10
+ export { default as StageTrigger } from './floating-panel-stage-trigger.svelte';
12
11
  export { default as Title } from './floating-panel-title.svelte';
13
- export { default as FloatingPanelTrigger } from './floating-panel-trigger.svelte';
12
+ export { default as Trigger } from './floating-panel-trigger.svelte';
@@ -2,14 +2,13 @@ export * as FloatingPanel from './floating-panel.js';
2
2
  export type { FloatingPanelBodyProps } from './floating-panel-body.svelte';
3
3
  export type { FloatingPanelCloseTriggerProps } from './floating-panel-close-trigger.svelte';
4
4
  export type { FloatingPanelContentProps } from './floating-panel-content.svelte';
5
+ export type { FloatingPanelControlProps } from './floating-panel-control.svelte';
5
6
  export type { FloatingPanelDragTriggerProps } from './floating-panel-drag-trigger.svelte';
6
7
  export type { FloatingPanelHeaderProps } from './floating-panel-header.svelte';
7
- export type { FloatingPanelMaximizeTriggerProps } from './floating-panel-maximize-trigger.svelte';
8
- export type { FloatingPanelMinimizeTriggerProps } from './floating-panel-minimize-trigger.svelte';
9
8
  export type { FloatingPanelPositionerProps } from './floating-panel-positioner.svelte';
10
9
  export type { FloatingPanelResizeTriggerProps } from './floating-panel-resize-trigger.svelte';
11
- export type { FloatingPanelRestoreTriggerProps } from './floating-panel-restore-trigger.svelte';
12
10
  export type { FloatingPanelProps } from './floating-panel-root.svelte';
11
+ export type { FloatingPanelStageTriggerProps } from './floating-panel-stage-trigger.svelte';
13
12
  export type { FloatingPanelTitleProps } from './floating-panel-title.svelte';
14
13
  export type { FloatingPanelTriggerProps } from './floating-panel-trigger.svelte';
15
14
  export { createFloatingPanel, type CreateFloatingPanelProps, type CreateFloatingPanelReturn, } from './create-floating-panel.svelte.js';
package/dist/index.d.ts CHANGED
@@ -21,6 +21,7 @@ export * from './floating-panel/index.js';
21
21
  export * from './focus-trap/index.js';
22
22
  export * from './highlight/index.js';
23
23
  export * from './hover-card/index.js';
24
+ export * from './listbox/index.js';
24
25
  export * from './locale-provider/index.js';
25
26
  export * from './menu/index.js';
26
27
  export * from './number-input/index.js';
package/dist/index.js CHANGED
@@ -21,6 +21,7 @@ export * from './floating-panel/index.js';
21
21
  export * from './focus-trap/index.js';
22
22
  export * from './highlight/index.js';
23
23
  export * from './hover-card/index.js';
24
+ export * from './listbox/index.js';
24
25
  export * from './locale-provider/index.js';
25
26
  export * from './menu/index.js';
26
27
  export * from './number-input/index.js';
@@ -0,0 +1,6 @@
1
+ import * as listbox from '@zag-js/listbox';
2
+ export interface CreateListboxProps extends Omit<listbox.Props, 'dir' | 'getRootNode'> {
3
+ }
4
+ export interface CreateListboxReturn extends listbox.Api {
5
+ }
6
+ export declare function createListbox(props: CreateListboxProps): CreateListboxReturn;
@@ -0,0 +1,14 @@
1
+ import * as listbox from '@zag-js/listbox';
2
+ import { normalizeProps, reflect, useMachine } from '@zag-js/svelte';
3
+ import { getEnvironmentContext } from '../environment-provider/enviroment-provider-context.svelte.js';
4
+ import { getLocaleContext } from '../locale-provider/locale-provider-context.svelte.js';
5
+ export function createListbox(props) {
6
+ const locale = getLocaleContext();
7
+ const environment = getEnvironmentContext();
8
+ const service = useMachine(listbox.machine, () => ({
9
+ dir: locale?.dir,
10
+ getRootNode: environment?.getRootNode,
11
+ ...props,
12
+ }));
13
+ return reflect(() => listbox.connect(service, normalizeProps));
14
+ }
@@ -0,0 +1,14 @@
1
+ export * as Listbox from './listbox.js';
2
+ export type { ListboxContentProps } from './listbox-content.svelte';
3
+ export type { ListboxInputProps } from './listbox-input.svelte';
4
+ export type { ListboxItemGroupLabelProps } from './listbox-item-group-label.svelte';
5
+ export type { ListboxItemGroupProps } from './listbox-item-group.svelte';
6
+ export type { ListboxItemIndicatorProps } from './listbox-item-indicator.svelte';
7
+ export type { ListboxItemTextProps } from './listbox-item-text.svelte';
8
+ export type { ListboxItemProps } from './listbox-item.svelte';
9
+ export type { ListboxLabelProps } from './listbox-label.svelte';
10
+ export type { ListboxProps } from './listbox-root.svelte';
11
+ export type { ListboxValueTextProps } from './listbox-value-text.svelte';
12
+ export { createListbox, type CreateListboxProps, type CreateListboxReturn, } from './create-listbox.svelte.js';
13
+ export { anatomy as listboxAnatomy } from './listbox-anatomy.js';
14
+ export { getListboxContext, setListboxContext, } from './listbox-context.svelte.js';
@@ -0,0 +1,4 @@
1
+ export * as Listbox from './listbox.js';
2
+ export { createListbox, } from './create-listbox.svelte.js';
3
+ export { anatomy as listboxAnatomy } from './listbox-anatomy.js';
4
+ export { getListboxContext, setListboxContext, } from './listbox-context.svelte.js';
@@ -0,0 +1 @@
1
+ export { anatomy } from '@zag-js/listbox';
@@ -0,0 +1 @@
1
+ export { anatomy } from '@zag-js/listbox';
@@ -0,0 +1,29 @@
1
+ <script lang="ts" module>
2
+ import type {HtmlIngredientProps} from '../types.js';
3
+
4
+ export interface ListboxContentProps
5
+ extends HtmlIngredientProps<'div', HTMLDivElement> {}
6
+ </script>
7
+
8
+ <script lang="ts">
9
+ import {mergeProps} from '../merge-props.js';
10
+ import {getListboxContext} from './listbox-context.svelte.js';
11
+
12
+ let {
13
+ ref = $bindable(null),
14
+ asChild,
15
+ children,
16
+ ...props
17
+ }: ListboxContentProps = $props();
18
+
19
+ let listbox = getListboxContext();
20
+ let mergedProps = $derived(mergeProps(listbox.getContentProps(), props));
21
+ </script>
22
+
23
+ {#if asChild}
24
+ {@render asChild(mergedProps)}
25
+ {:else}
26
+ <div bind:this={ref} {...mergedProps}>
27
+ {@render children?.()}
28
+ </div>
29
+ {/if}
@@ -0,0 +1,6 @@
1
+ import type { HtmlIngredientProps } from '../types.js';
2
+ export interface ListboxContentProps extends HtmlIngredientProps<'div', HTMLDivElement> {
3
+ }
4
+ declare const ListboxContent: import("svelte").Component<ListboxContentProps, {}, "ref">;
5
+ type ListboxContent = ReturnType<typeof ListboxContent>;
6
+ export default ListboxContent;
@@ -0,0 +1,5 @@
1
+ import type { ItemGroupProps, ItemProps } from '@zag-js/listbox';
2
+ import type { CreateListboxReturn } from './create-listbox.svelte.js';
3
+ export declare const getListboxContext: () => CreateListboxReturn, setListboxContext: (context: CreateListboxReturn | (() => CreateListboxReturn)) => void;
4
+ export declare const getListboxItemPropsContext: () => ItemProps<any>, setListboxItemPropsContext: (context: ItemProps<any> | (() => ItemProps<any>)) => void;
5
+ export declare const getListboxItemGroupPropsContext: () => ItemGroupProps, setListboxItemGroupPropsContext: (context: ItemGroupProps | (() => ItemGroupProps)) => void;
@@ -0,0 +1,4 @@
1
+ import { createContext } from '../create-context.svelte.js';
2
+ export const [getListboxContext, setListboxContext] = createContext('Listbox');
3
+ export const [getListboxItemPropsContext, setListboxItemPropsContext] = createContext('ListboxItem.props');
4
+ export const [getListboxItemGroupPropsContext, setListboxItemGroupPropsContext,] = createContext('ListboxItemGroup.props');
@@ -0,0 +1,39 @@
1
+ <script lang="ts" module>
2
+ import type {InputProps} from '@zag-js/listbox';
3
+ import type {Assign, HtmlIngredientProps} from '../types.js';
4
+
5
+ export interface ListboxInputProps
6
+ extends Assign<
7
+ HtmlIngredientProps<'input', HTMLInputElement>,
8
+ InputProps
9
+ > {}
10
+ </script>
11
+
12
+ <script lang="ts">
13
+ import {createSplitProps} from '../create-split-props.js';
14
+ import {mergeProps} from '../merge-props.js';
15
+ import {getListboxContext} from './listbox-context.svelte.js';
16
+
17
+ let {
18
+ ref = $bindable(null),
19
+ asChild,
20
+ children,
21
+ ...props
22
+ }: ListboxInputProps = $props();
23
+
24
+ let [inputProps, localProps] = $derived(
25
+ createSplitProps<InputProps>(['autoHighlight'])(props),
26
+ );
27
+
28
+ let listbox = getListboxContext();
29
+
30
+ let mergedProps = $derived(
31
+ mergeProps(listbox.getInputProps(inputProps), localProps),
32
+ );
33
+ </script>
34
+
35
+ {#if asChild}
36
+ {@render asChild(mergedProps)}
37
+ {:else}
38
+ <input bind:this={ref} {...mergedProps} />
39
+ {/if}
@@ -0,0 +1,7 @@
1
+ import type { InputProps } from '@zag-js/listbox';
2
+ import type { Assign, HtmlIngredientProps } from '../types.js';
3
+ export interface ListboxInputProps extends Assign<HtmlIngredientProps<'input', HTMLInputElement>, InputProps> {
4
+ }
5
+ declare const ListboxInput: import("svelte").Component<ListboxInputProps, {}, "ref">;
6
+ type ListboxInput = ReturnType<typeof ListboxInput>;
7
+ export default ListboxInput;
@@ -0,0 +1,40 @@
1
+ <script lang="ts" module>
2
+ import type {HtmlIngredientProps} from '../types.js';
3
+
4
+ export interface ListboxItemGroupLabelProps
5
+ extends HtmlIngredientProps<'span', HTMLSpanElement> {}
6
+ </script>
7
+
8
+ <script lang="ts">
9
+ import {mergeProps} from '../merge-props.js';
10
+ import {
11
+ getListboxContext,
12
+ getListboxItemGroupPropsContext,
13
+ } from './listbox-context.svelte.js';
14
+
15
+ let {
16
+ ref = $bindable(null),
17
+ asChild,
18
+ children,
19
+ ...props
20
+ }: ListboxItemGroupLabelProps = $props();
21
+
22
+ let listbox = getListboxContext();
23
+ let itemGroupProps = getListboxItemGroupPropsContext();
24
+ let mergedProps = $derived(
25
+ mergeProps(
26
+ listbox.getItemGroupLabelProps({
27
+ htmlFor: itemGroupProps.id,
28
+ }),
29
+ props,
30
+ ),
31
+ );
32
+ </script>
33
+
34
+ {#if asChild}
35
+ {@render asChild(mergedProps)}
36
+ {:else}
37
+ <div bind:this={ref} {...mergedProps}>
38
+ {@render children?.()}
39
+ </div>
40
+ {/if}
@@ -0,0 +1,6 @@
1
+ import type { HtmlIngredientProps } from '../types.js';
2
+ export interface ListboxItemGroupLabelProps extends HtmlIngredientProps<'span', HTMLSpanElement> {
3
+ }
4
+ declare const ListboxItemGroupLabel: import("svelte").Component<ListboxItemGroupLabelProps, {}, "ref">;
5
+ type ListboxItemGroupLabel = ReturnType<typeof ListboxItemGroupLabel>;
6
+ export default ListboxItemGroupLabel;