bits-ui 0.6.3 → 0.8.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 (48) hide show
  1. package/dist/bits/alert-dialog/components/AlertDialog.svelte.d.ts +3 -1
  2. package/dist/bits/alert-dialog/ctx.d.ts +2 -0
  3. package/dist/bits/alert-dialog/types.d.ts +2 -2
  4. package/dist/bits/checkbox/components/Checkbox.svelte.d.ts +1 -1
  5. package/dist/bits/checkbox/types.d.ts +2 -2
  6. package/dist/bits/collapsible/components/Collapsible.svelte.d.ts +1 -1
  7. package/dist/bits/collapsible/types.d.ts +2 -2
  8. package/dist/bits/context-menu/components/ContextMenu.svelte +12 -0
  9. package/dist/bits/context-menu/components/ContextMenu.svelte.d.ts +3 -1
  10. package/dist/bits/context-menu/components/ContextMenuCheckboxItem.svelte.d.ts +1 -1
  11. package/dist/bits/context-menu/ctx.d.ts +2 -0
  12. package/dist/bits/context-menu/types.d.ts +4 -4
  13. package/dist/bits/dialog/components/Dialog.svelte +8 -0
  14. package/dist/bits/dialog/components/Dialog.svelte.d.ts +3 -1
  15. package/dist/bits/dialog/ctx.d.ts +2 -0
  16. package/dist/bits/dialog/types.d.ts +1 -1
  17. package/dist/bits/dropdown-menu/components/DropdownMenu.svelte +12 -0
  18. package/dist/bits/dropdown-menu/components/DropdownMenu.svelte.d.ts +3 -1
  19. package/dist/bits/dropdown-menu/components/DropdownMenuCheckboxItem.svelte.d.ts +1 -1
  20. package/dist/bits/dropdown-menu/components/DropdownMenuItem.svelte +7 -4
  21. package/dist/bits/dropdown-menu/components/DropdownMenuItem.svelte.d.ts +1 -0
  22. package/dist/bits/dropdown-menu/ctx.d.ts +2 -0
  23. package/dist/bits/dropdown-menu/types.d.ts +7 -6
  24. package/dist/bits/link-preview/components/LinkPreview.svelte.d.ts +1 -1
  25. package/dist/bits/link-preview/types.d.ts +2 -2
  26. package/dist/bits/menubar/components/MenubarCheckboxItem.svelte.d.ts +1 -1
  27. package/dist/bits/menubar/components/MenubarMenu.svelte +12 -0
  28. package/dist/bits/menubar/components/MenubarMenu.svelte.d.ts +3 -1
  29. package/dist/bits/menubar/ctx.d.ts +4 -0
  30. package/dist/bits/menubar/types.d.ts +4 -4
  31. package/dist/bits/popover/components/Popover.svelte +8 -0
  32. package/dist/bits/popover/components/Popover.svelte.d.ts +3 -1
  33. package/dist/bits/popover/ctx.d.ts +2 -0
  34. package/dist/bits/popover/types.d.ts +2 -2
  35. package/dist/bits/select/components/Select.svelte.d.ts +1 -1
  36. package/dist/bits/select/ctx.d.ts +0 -1
  37. package/dist/bits/select/types.d.ts +2 -2
  38. package/dist/bits/slider/components/Slider.svelte.d.ts +1 -1
  39. package/dist/bits/slider/types.d.ts +2 -2
  40. package/dist/bits/switch/components/Switch.svelte.d.ts +1 -1
  41. package/dist/bits/switch/ctx.d.ts +2 -2
  42. package/dist/bits/switch/types.d.ts +2 -2
  43. package/dist/bits/toggle/components/Toggle.svelte.d.ts +1 -1
  44. package/dist/bits/toggle/types.d.ts +2 -2
  45. package/dist/bits/tooltip/components/Tooltip.svelte +8 -0
  46. package/dist/bits/tooltip/components/Tooltip.svelte.d.ts +1 -1
  47. package/dist/bits/tooltip/types.d.ts +2 -2
  48. package/package.json +4 -3
@@ -6,8 +6,10 @@ declare const __propDef: {
6
6
  closeOnEscape?: boolean | undefined;
7
7
  closeOnOutsideClick?: boolean | undefined;
8
8
  portal?: string | HTMLElement | null | undefined;
9
+ openFocus?: import("@melt-ui/svelte/index.js").FocusProp | undefined;
10
+ closeFocus?: import("@melt-ui/svelte/index.js").FocusProp | undefined;
9
11
  open?: boolean | undefined;
10
- onOpenChange?: import("../../../internal/types.js").OnChangeFn<boolean | undefined> | undefined;
12
+ onOpenChange?: import("../../../internal/types.js").OnChangeFn<boolean> | undefined;
11
13
  };
12
14
  events: {
13
15
  [evt: string]: CustomEvent<any>;
@@ -76,6 +76,8 @@ declare function set(props: SetProps): {
76
76
  onOpenChange?: import("svelte/store").Writable<import("@melt-ui/svelte/internal/helpers").ChangeFn<boolean> | undefined> | undefined;
77
77
  portal: import("svelte/store").Writable<string | HTMLElement | null>;
78
78
  forceVisible: import("svelte/store").Writable<boolean>;
79
+ openFocus: import("svelte/store").Writable<import("@melt-ui/svelte").FocusProp | undefined>;
80
+ closeFocus: import("svelte/store").Writable<import("@melt-ui/svelte").FocusProp | undefined>;
79
81
  };
80
82
  };
81
83
  declare function get(): GetReturn;
@@ -3,8 +3,8 @@ import type { HTMLButtonAttributes } from "svelte/elements";
3
3
  import type { CreateDialogProps } from "@melt-ui/svelte";
4
4
  import type { CustomEventHandler } from "../../index.js";
5
5
  type Props = Expand<OmitOpen<Omit<CreateDialogProps, "role">> & {
6
- open?: CreateDialogProps["defaultOpen"] & {};
7
- onOpenChange?: OnChangeFn<CreateDialogProps["defaultOpen"]>;
6
+ open?: boolean;
7
+ onOpenChange?: OnChangeFn<boolean>;
8
8
  }>;
9
9
  type TriggerProps = AsChild & HTMLButtonAttributes;
10
10
  type ActionProps = TriggerProps;
@@ -7,7 +7,7 @@ declare const __propDef: {
7
7
  name?: string | undefined;
8
8
  required?: boolean | undefined;
9
9
  checked?: boolean | "indeterminate" | undefined;
10
- onCheckedChange?: import("../../../internal/types.js").OnChangeFn<boolean | "indeterminate" | undefined> | undefined;
10
+ onCheckedChange?: import("../../../internal/types.js").OnChangeFn<boolean | "indeterminate"> | undefined;
11
11
  asChild?: boolean | undefined;
12
12
  form?: string | null | undefined;
13
13
  formaction?: string | null | undefined;
@@ -3,8 +3,8 @@ import type { CustomEventHandler } from "../../index.js";
3
3
  import type { CreateCheckboxProps } from "@melt-ui/svelte";
4
4
  import type { HTMLButtonAttributes, HTMLInputAttributes } from "svelte/elements";
5
5
  type Props = Expand<OmitChecked<CreateCheckboxProps> & {
6
- checked?: CreateCheckboxProps["defaultChecked"] & {};
7
- onCheckedChange?: OnChangeFn<CreateCheckboxProps["defaultChecked"]>;
6
+ checked?: boolean | "indeterminate";
7
+ onCheckedChange?: OnChangeFn<boolean | "indeterminate">;
8
8
  } & AsChild> & HTMLButtonAttributes;
9
9
  type IndicatorProps = HTMLDivAttributes;
10
10
  type InputProps = Omit<HTMLInputAttributes, "value">;
@@ -4,7 +4,7 @@ declare const __propDef: {
4
4
  forceVisible?: boolean | undefined;
5
5
  disabled?: boolean | undefined;
6
6
  open?: boolean | undefined;
7
- onOpenChange?: import("../../../internal/types.js").OnChangeFn<boolean | undefined> | undefined;
7
+ onOpenChange?: import("../../../internal/types.js").OnChangeFn<boolean> | undefined;
8
8
  asChild?: boolean | undefined;
9
9
  accesskey?: string | null | undefined;
10
10
  autofocus?: boolean | null | undefined;
@@ -3,8 +3,8 @@ import type { CustomEventHandler } from "../../index.js";
3
3
  import type { CreateCollapsibleProps } from "@melt-ui/svelte";
4
4
  import type { HTMLButtonAttributes } from "svelte/elements";
5
5
  type Props = Expand<OmitOpen<CreateCollapsibleProps> & {
6
- open?: CreateCollapsibleProps["defaultOpen"] & {};
7
- onOpenChange?: OnChangeFn<CreateCollapsibleProps["defaultOpen"]> & {};
6
+ open?: boolean;
7
+ onOpenChange?: OnChangeFn<boolean>;
8
8
  }> & AsChild & HTMLDivAttributes;
9
9
  type ContentProps<T extends Transition = Transition, In extends Transition = Transition, Out extends Transition = Transition> = Expand<TransitionProps<T, In, Out> & AsChild> & HTMLDivAttributes;
10
10
  type TriggerProps = AsChild & HTMLButtonAttributes;
@@ -10,6 +10,9 @@ export let arrowSize = void 0;
10
10
  export let positioning = void 0;
11
11
  export let loop = void 0;
12
12
  export let dir = void 0;
13
+ export let typeahead = void 0;
14
+ export let closeFocus = void 0;
15
+ export let disableFocusFirstItem = void 0;
13
16
  const {
14
17
  states: { open: localOpen },
15
18
  updateOption
@@ -24,6 +27,9 @@ const {
24
27
  positioning,
25
28
  loop,
26
29
  dir,
30
+ typeahead,
31
+ disableFocusFirstItem,
32
+ closeFocus,
27
33
  onOpenChange: ({ next }) => {
28
34
  if (open !== next) {
29
35
  onOpenChange?.(next);
@@ -52,6 +58,12 @@ $:
52
58
  updateOption("loop", loop);
53
59
  $:
54
60
  updateOption("dir", dir);
61
+ $:
62
+ updateOption("closeFocus", closeFocus);
63
+ $:
64
+ updateOption("disableFocusFirstItem", disableFocusFirstItem);
65
+ $:
66
+ updateOption("typeahead", typeahead);
55
67
  </script>
56
68
 
57
69
  <slot />
@@ -6,13 +6,15 @@ declare const __propDef: {
6
6
  closeOnEscape?: boolean | undefined;
7
7
  closeOnOutsideClick?: boolean | undefined;
8
8
  portal?: string | HTMLElement | null | undefined;
9
+ closeFocus?: import("@melt-ui/svelte/index.js").FocusProp | undefined;
9
10
  dir?: import("@melt-ui/svelte/internal/types").TextDirection | undefined;
10
11
  positioning?: import("@melt-ui/svelte/internal/actions").FloatingConfig | undefined;
11
12
  arrowSize?: number | undefined;
12
13
  loop?: boolean | undefined;
13
14
  typeahead?: boolean | undefined;
15
+ disableFocusFirstItem?: boolean | undefined;
14
16
  open?: boolean | undefined;
15
- onOpenChange?: import("../../../internal/types.js").OnChangeFn<boolean | undefined> | undefined;
17
+ onOpenChange?: import("../../../internal/types.js").OnChangeFn<boolean> | undefined;
16
18
  };
17
19
  events: {
18
20
  [evt: string]: CustomEvent<any>;
@@ -4,7 +4,7 @@ declare const __propDef: {
4
4
  props: {
5
5
  disabled?: boolean | undefined;
6
6
  checked?: boolean | "indeterminate" | undefined;
7
- onCheckedChange?: import("../../../internal/types.js").OnChangeFn<boolean | "indeterminate" | undefined> | undefined;
7
+ onCheckedChange?: import("../../../internal/types.js").OnChangeFn<boolean | "indeterminate"> | undefined;
8
8
  asChild?: boolean | undefined;
9
9
  accesskey?: string | null | undefined;
10
10
  autofocus?: boolean | null | undefined;
@@ -197,6 +197,8 @@ declare function set(props: CreateContextMenuProps): {
197
197
  onOpenChange?: import("svelte/store").Writable<import("@melt-ui/svelte/internal/helpers").ChangeFn<boolean> | undefined> | undefined;
198
198
  forceVisible: import("svelte/store").Writable<boolean>;
199
199
  typeahead: import("svelte/store").Writable<boolean>;
200
+ closeFocus: import("svelte/store").Writable<import("@melt-ui/svelte").FocusProp | undefined>;
201
+ disableFocusFirstItem: import("svelte/store").Writable<boolean>;
200
202
  };
201
203
  };
202
204
  declare function get(): ContextMenuReturn;
@@ -2,12 +2,12 @@ import type { AsChild, Expand, HTMLDivAttributes, OmitChecked, OmitOpen, OmitVal
2
2
  import type { CustomEventHandler } from "../..";
3
3
  import type { CreateContextMenuProps, CreateContextMenuCheckboxItemProps, CreateContextMenuRadioGroupProps, ContextMenuRadioItemProps, CreateContextSubmenuProps } from "@melt-ui/svelte";
4
4
  type Props = Expand<OmitOpen<CreateContextMenuProps> & {
5
- open?: CreateContextMenuProps["defaultOpen"] & {};
6
- onOpenChange?: OnChangeFn<CreateContextMenuProps["defaultOpen"]>;
5
+ open?: boolean;
6
+ onOpenChange?: OnChangeFn<boolean>;
7
7
  }>;
8
8
  type CheckboxItemProps = Expand<OmitChecked<CreateContextMenuCheckboxItemProps> & {
9
- checked?: CreateContextMenuCheckboxItemProps["defaultChecked"] & {};
10
- onCheckedChange?: OnChangeFn<CreateContextMenuCheckboxItemProps["defaultChecked"]>;
9
+ checked?: boolean | "indeterminate";
10
+ onCheckedChange?: OnChangeFn<boolean | "indeterminate">;
11
11
  } & AsChild> & HTMLDivAttributes;
12
12
  type RadioGroupProps = Expand<OmitValue<CreateContextMenuRadioGroupProps> & {
13
13
  value?: CreateContextMenuRadioGroupProps["defaultValue"] & {};
@@ -9,6 +9,8 @@ export let portal = void 0;
9
9
  export let forceVisible = true;
10
10
  export let open = void 0;
11
11
  export let onOpenChange = void 0;
12
+ export let openFocus = void 0;
13
+ export let closeFocus = void 0;
12
14
  const transitionTimes = writable({});
13
15
  const tOpen = writable(open);
14
16
  let timeout = 0;
@@ -24,6 +26,8 @@ const {
24
26
  defaultOpen: open,
25
27
  transitionTimes,
26
28
  tOpen,
29
+ openFocus,
30
+ closeFocus,
27
31
  onOpenChange: ({ next }) => {
28
32
  if (!isBrowser) {
29
33
  return next;
@@ -69,6 +73,10 @@ $:
69
73
  updateOption("portal", portal);
70
74
  $:
71
75
  updateOption("forceVisible", forceVisible);
76
+ $:
77
+ updateOption("openFocus", openFocus);
78
+ $:
79
+ updateOption("closeFocus", closeFocus);
72
80
  </script>
73
81
 
74
82
  <slot />
@@ -6,8 +6,10 @@ declare const __propDef: {
6
6
  closeOnEscape?: boolean | undefined;
7
7
  closeOnOutsideClick?: boolean | undefined;
8
8
  portal?: string | HTMLElement | null | undefined;
9
+ openFocus?: import("@melt-ui/svelte/index.js").FocusProp | undefined;
10
+ closeFocus?: import("@melt-ui/svelte/index.js").FocusProp | undefined;
9
11
  open?: boolean | undefined;
10
- onOpenChange?: import("../../../internal/index.js").OnChangeFn<boolean | undefined> | undefined;
12
+ onOpenChange?: import("../../../internal/index.js").OnChangeFn<boolean> | undefined;
11
13
  };
12
14
  events: {
13
15
  [evt: string]: CustomEvent<any>;
@@ -80,6 +80,8 @@ declare function set(props: SetProps): {
80
80
  onOpenChange?: import("svelte/store").Writable<import("@melt-ui/svelte/internal/helpers").ChangeFn<boolean> | undefined> | undefined;
81
81
  portal: import("svelte/store").Writable<string | HTMLElement | null>;
82
82
  forceVisible: import("svelte/store").Writable<boolean>;
83
+ openFocus: import("svelte/store").Writable<import("@melt-ui/svelte").FocusProp | undefined>;
84
+ closeFocus: import("svelte/store").Writable<import("@melt-ui/svelte").FocusProp | undefined>;
83
85
  };
84
86
  };
85
87
  declare function get(): GetReturn;
@@ -4,7 +4,7 @@ import type { CreateDialogProps } from "@melt-ui/svelte";
4
4
  import type { CustomEventHandler } from "../../index.js";
5
5
  type Props = Expand<OmitOpen<Omit<CreateDialogProps, "role">> & {
6
6
  open?: CreateDialogProps["defaultOpen"] & {};
7
- onOpenChange?: OnChangeFn<boolean | undefined>;
7
+ onOpenChange?: OnChangeFn<boolean>;
8
8
  }>;
9
9
  type TriggerProps = AsChild & HTMLButtonAttributes;
10
10
  type CloseProps = TriggerProps;
@@ -10,6 +10,9 @@ export let arrowSize = void 0;
10
10
  export let positioning = void 0;
11
11
  export let loop = void 0;
12
12
  export let dir = void 0;
13
+ export let typeahead = void 0;
14
+ export let closeFocus = void 0;
15
+ export let disableFocusFirstItem = void 0;
13
16
  const {
14
17
  states: { open: localOpen },
15
18
  updateOption
@@ -24,6 +27,9 @@ const {
24
27
  positioning,
25
28
  loop,
26
29
  dir,
30
+ typeahead,
31
+ closeFocus,
32
+ disableFocusFirstItem,
27
33
  onOpenChange: ({ next }) => {
28
34
  if (open !== next) {
29
35
  onOpenChange?.(next);
@@ -52,6 +58,12 @@ $:
52
58
  updateOption("loop", loop);
53
59
  $:
54
60
  updateOption("dir", dir);
61
+ $:
62
+ updateOption("closeFocus", closeFocus);
63
+ $:
64
+ updateOption("disableFocusFirstItem", disableFocusFirstItem);
65
+ $:
66
+ updateOption("typeahead", typeahead);
55
67
  </script>
56
68
 
57
69
  <slot />
@@ -6,13 +6,15 @@ declare const __propDef: {
6
6
  closeOnEscape?: boolean | undefined;
7
7
  closeOnOutsideClick?: boolean | undefined;
8
8
  portal?: string | HTMLElement | null | undefined;
9
+ closeFocus?: import("@melt-ui/svelte/index.js").FocusProp | undefined;
9
10
  dir?: import("@melt-ui/svelte/internal/types").TextDirection | undefined;
10
11
  positioning?: import("@melt-ui/svelte/internal/actions").FloatingConfig | undefined;
11
12
  arrowSize?: number | undefined;
12
13
  loop?: boolean | undefined;
13
14
  typeahead?: boolean | undefined;
15
+ disableFocusFirstItem?: boolean | undefined;
14
16
  open?: boolean | undefined;
15
- onOpenChange?: import("../../../internal/types.js").OnChangeFn<boolean | undefined> | undefined;
17
+ onOpenChange?: import("../../../internal/types.js").OnChangeFn<boolean> | undefined;
16
18
  };
17
19
  events: {
18
20
  [evt: string]: CustomEvent<any>;
@@ -4,7 +4,7 @@ declare const __propDef: {
4
4
  props: {
5
5
  disabled?: boolean | undefined;
6
6
  checked?: boolean | "indeterminate" | undefined;
7
- onCheckedChange?: import("../../../internal/types.js").OnChangeFn<boolean | "indeterminate" | undefined> | undefined;
7
+ onCheckedChange?: import("../../../internal/types.js").OnChangeFn<boolean | "indeterminate"> | undefined;
8
8
  asChild?: boolean | undefined;
9
9
  accesskey?: string | null | undefined;
10
10
  autofocus?: boolean | null | undefined;
@@ -1,7 +1,8 @@
1
- <script>import { melt } from "@melt-ui/svelte";
1
+ <script>import { createDispatcher } from "../../../internal/events.js";
2
2
  import { disabledAttrs } from "../../../internal/helpers.js";
3
+ import { melt } from "@melt-ui/svelte";
3
4
  import { ctx } from "../ctx.js";
4
- import { createDispatcher } from "../../../internal/events.js";
5
+ export let href = void 0;
5
6
  export let asChild = false;
6
7
  export let disabled = false;
7
8
  const {
@@ -15,7 +16,9 @@ const dispatch = createDispatcher();
15
16
  <slot builder={$item} />
16
17
  {:else}
17
18
  {@const builder = $item}
18
- <div
19
+ <svelte:element
20
+ this={href ? "a" : "div"}
21
+ {href}
19
22
  {...builder} use:builder.action
20
23
  {...$$restProps}
21
24
  on:m-click={dispatch}
@@ -28,5 +31,5 @@ const dispatch = createDispatcher();
28
31
  {...disabledAttrs(disabled)}
29
32
  >
30
33
  <slot {builder} />
31
- </div>
34
+ </svelte:element>
32
35
  {/if}
@@ -3,6 +3,7 @@ import type { ItemEvents } from "../types.js";
3
3
  declare const __propDef: {
4
4
  props: {
5
5
  disabled?: boolean | undefined;
6
+ href?: string | null | undefined;
6
7
  asChild?: boolean | undefined;
7
8
  accesskey?: string | null | undefined;
8
9
  autofocus?: boolean | null | undefined;
@@ -193,6 +193,8 @@ declare function set(props: CreateDropdownMenuProps): {
193
193
  onOpenChange?: import("svelte/store").Writable<import("@melt-ui/svelte/internal/helpers").ChangeFn<boolean> | undefined> | undefined;
194
194
  forceVisible: import("svelte/store").Writable<boolean>;
195
195
  typeahead: import("svelte/store").Writable<boolean>;
196
+ closeFocus: import("svelte/store").Writable<import("@melt-ui/svelte").FocusProp | undefined>;
197
+ disableFocusFirstItem: import("svelte/store").Writable<boolean>;
196
198
  };
197
199
  };
198
200
  declare function setSub(props: DropdownSubmenuProps): {
@@ -1,14 +1,14 @@
1
1
  import type { TransitionProps, AsChild, Expand, HTMLDivAttributes, OmitChecked, OmitOpen, OmitValue, OnChangeFn, Transition } from "../../internal/index.js";
2
2
  import type { CustomEventHandler } from "../../index.js";
3
3
  import type { CreateDropdownMenuProps, CreateDropdownMenuCheckboxItemProps, CreateDropdownMenuRadioGroupProps, DropdownMenuRadioItemProps, CreateDropdownSubmenuProps } from "@melt-ui/svelte";
4
- import type { HTMLButtonAttributes } from "svelte/elements";
4
+ import type { HTMLAnchorAttributes, HTMLButtonAttributes } from "svelte/elements";
5
5
  type Props = Expand<OmitOpen<CreateDropdownMenuProps> & {
6
- open?: CreateDropdownMenuProps["defaultOpen"] & {};
7
- onOpenChange?: OnChangeFn<CreateDropdownMenuProps["defaultOpen"]>;
6
+ open?: boolean;
7
+ onOpenChange?: OnChangeFn<boolean>;
8
8
  }>;
9
9
  type CheckboxItemProps = Expand<OmitChecked<CreateDropdownMenuCheckboxItemProps> & {
10
- checked?: CreateDropdownMenuCheckboxItemProps["defaultChecked"] & {};
11
- onCheckedChange?: OnChangeFn<CreateDropdownMenuCheckboxItemProps["defaultChecked"]>;
10
+ checked?: boolean | "indeterminate";
11
+ onCheckedChange?: OnChangeFn<boolean | "indeterminate">;
12
12
  } & AsChild> & HTMLDivAttributes;
13
13
  type RadioGroupProps = Expand<OmitValue<CreateDropdownMenuRadioGroupProps> & {
14
14
  value?: CreateDropdownMenuRadioGroupProps["defaultValue"] & {};
@@ -21,6 +21,7 @@ type ContentProps<T extends Transition = Transition, In extends Transition = Tra
21
21
  type GroupProps = AsChild & HTMLDivAttributes;
22
22
  type ItemProps = Expand<{
23
23
  disabled?: boolean;
24
+ href?: HTMLAnchorAttributes["href"];
24
25
  } & AsChild> & HTMLDivAttributes;
25
26
  type CheckboxItemIndicatorProps = HTMLDivAttributes;
26
27
  type LabelProps = AsChild & HTMLDivAttributes;
@@ -60,4 +61,4 @@ type SubContentEvents<T extends Element = HTMLDivElement> = {
60
61
  focusout: CustomEventHandler<FocusEvent, T>;
61
62
  pointermove: CustomEventHandler<PointerEvent, T>;
62
63
  };
63
- export type { Props, ArrowProps, CheckboxItemProps, ContentProps, GroupProps, ItemProps, CheckboxItemIndicatorProps, LabelProps, RadioGroupProps, RadioItemProps, SeparatorProps, SubProps, SubContentProps, SubTriggerProps, TriggerProps, Props as DropdownMenuProps, ArrowProps as DropdownMenuArrowProps, CheckboxItemProps as DropdownMenuCheckboxItemProps, ContentProps as DropdownMenuContentProps, GroupProps as DropdownMenuGroupProps, ItemProps as DropdownMenuItemProps, CheckboxItemIndicatorProps as DropdownMenuCheckboxItemIndicatorProps, LabelProps as DropdownMenuLabelProps, RadioGroupProps as DropdownMenuRadioGroupProps, RadioItemProps as DropdownMenuRadioItemProps, SeparatorProps as DropdownMenuSeparatorProps, SubProps as DropdownMenuSubProps, SubContentProps as DropdownMenuSubContentProps, SubTriggerProps as DropdownMenuSubTriggerProps, TriggerProps as DropdownMenuTriggerProps, TriggerEvents, CheckboxItemEvents, ContentEvents, RadioItemEvents, SubContentEvents, SubTriggerEvents, ItemEvents, TriggerEvents as DropdownMenuTriggerEvents, CheckboxItemEvents as DropdownMenuCheckboxItemEvents, ContentEvents as DropdownMenuContentEvents, RadioItemEvents as DropdownMenuRadioItemEvents, SubContentEvents as DropdownMenuSubContentEvents, SubTriggerEvents as DropdownMenuSubTriggerEvents, ItemEvents as DropdownMenuItemEvents };
64
+ export type { ArrowProps, CheckboxItemEvents, CheckboxItemIndicatorProps, CheckboxItemProps, ContentEvents, ContentProps, ArrowProps as DropdownMenuArrowProps, CheckboxItemEvents as DropdownMenuCheckboxItemEvents, CheckboxItemIndicatorProps as DropdownMenuCheckboxItemIndicatorProps, CheckboxItemProps as DropdownMenuCheckboxItemProps, ContentEvents as DropdownMenuContentEvents, ContentProps as DropdownMenuContentProps, GroupProps as DropdownMenuGroupProps, ItemEvents as DropdownMenuItemEvents, ItemProps as DropdownMenuItemProps, LabelProps as DropdownMenuLabelProps, Props as DropdownMenuProps, RadioGroupProps as DropdownMenuRadioGroupProps, RadioItemEvents as DropdownMenuRadioItemEvents, RadioItemProps as DropdownMenuRadioItemProps, SeparatorProps as DropdownMenuSeparatorProps, SubContentEvents as DropdownMenuSubContentEvents, SubContentProps as DropdownMenuSubContentProps, SubProps as DropdownMenuSubProps, SubTriggerEvents as DropdownMenuSubTriggerEvents, SubTriggerProps as DropdownMenuSubTriggerProps, TriggerEvents as DropdownMenuTriggerEvents, TriggerProps as DropdownMenuTriggerProps, GroupProps, ItemEvents, ItemProps, LabelProps, Props, RadioGroupProps, RadioItemEvents, RadioItemProps, SeparatorProps, SubContentEvents, SubContentProps, SubProps, SubTriggerEvents, SubTriggerProps, TriggerEvents, TriggerProps };
@@ -10,7 +10,7 @@ declare const __propDef: {
10
10
  openDelay?: number | undefined;
11
11
  closeDelay?: number | undefined;
12
12
  open?: boolean | undefined;
13
- onOpenChange?: import("../../../internal/types.js").OnChangeFn<boolean | undefined> | undefined;
13
+ onOpenChange?: import("../../../internal/types.js").OnChangeFn<boolean> | undefined;
14
14
  };
15
15
  events: {
16
16
  [evt: string]: CustomEvent<any>;
@@ -3,8 +3,8 @@ import type { OmitOpen, Expand, HTMLDivAttributes, OnChangeFn, Transition, AsChi
3
3
  import type { CreateLinkPreviewProps } from "@melt-ui/svelte";
4
4
  import type { HTMLAnchorAttributes } from "svelte/elements";
5
5
  type Props = Expand<OmitOpen<CreateLinkPreviewProps> & {
6
- open?: CreateLinkPreviewProps["defaultOpen"];
7
- onOpenChange?: OnChangeFn<CreateLinkPreviewProps["defaultOpen"]>;
6
+ open?: boolean;
7
+ onOpenChange?: OnChangeFn<boolean>;
8
8
  }>;
9
9
  type TriggerProps = AsChild & HTMLAnchorAttributes;
10
10
  type ContentProps<T extends Transition = Transition, In extends Transition = Transition, Out extends Transition = Transition> = Expand<TransitionProps<T, In, Out> & AsChild> & HTMLDivAttributes;
@@ -4,7 +4,7 @@ declare const __propDef: {
4
4
  props: {
5
5
  disabled?: boolean | undefined;
6
6
  checked?: boolean | "indeterminate" | undefined;
7
- onCheckedChange?: import("../../../internal/types.js").OnChangeFn<boolean | "indeterminate" | undefined> | undefined;
7
+ onCheckedChange?: import("../../../internal/types.js").OnChangeFn<boolean | "indeterminate"> | undefined;
8
8
  asChild?: boolean | undefined;
9
9
  accesskey?: string | null | undefined;
10
10
  autofocus?: boolean | null | undefined;
@@ -9,6 +9,9 @@ export let arrowSize = void 0;
9
9
  export let positioning = void 0;
10
10
  export let loop = void 0;
11
11
  export let dir = void 0;
12
+ export let typeahead = void 0;
13
+ export let closeFocus = void 0;
14
+ export let disableFocusFirstItem = void 0;
12
15
  const {
13
16
  states: { open: localOpen },
14
17
  updateOption
@@ -21,6 +24,9 @@ const {
21
24
  positioning,
22
25
  loop,
23
26
  dir,
27
+ typeahead,
28
+ closeFocus,
29
+ disableFocusFirstItem,
24
30
  onOpenChange: ({ next }) => {
25
31
  if (open !== next) {
26
32
  onOpenChange?.(next);
@@ -47,6 +53,12 @@ $:
47
53
  updateOption("loop", loop);
48
54
  $:
49
55
  updateOption("dir", dir);
56
+ $:
57
+ updateOption("closeFocus", closeFocus);
58
+ $:
59
+ updateOption("disableFocusFirstItem", disableFocusFirstItem);
60
+ $:
61
+ updateOption("typeahead", typeahead);
50
62
  </script>
51
63
 
52
64
  <slot />
@@ -6,13 +6,15 @@ declare const __propDef: {
6
6
  closeOnEscape?: boolean | undefined;
7
7
  closeOnOutsideClick?: boolean | undefined;
8
8
  portal?: string | HTMLElement | null | undefined;
9
+ closeFocus?: import("@melt-ui/svelte/index.js").FocusProp | undefined;
9
10
  dir?: import("@melt-ui/svelte/internal/types").TextDirection | undefined;
10
11
  positioning?: import("@melt-ui/svelte/internal/actions").FloatingConfig | undefined;
11
12
  arrowSize?: number | undefined;
12
13
  loop?: boolean | undefined;
13
14
  typeahead?: boolean | undefined;
15
+ disableFocusFirstItem?: boolean | undefined;
14
16
  open?: boolean | undefined;
15
- onOpenChange?: import("../../../internal/types.js").OnChangeFn<boolean | undefined> | undefined;
17
+ onOpenChange?: import("../../../internal/types.js").OnChangeFn<boolean> | undefined;
16
18
  };
17
19
  events: {
18
20
  [evt: string]: CustomEvent<any>;
@@ -213,6 +213,8 @@ declare function set(props: MenubarProps): {
213
213
  onOpenChange?: import("svelte/store").Writable<import("@melt-ui/svelte/internal/helpers").ChangeFn<boolean> | undefined> | undefined;
214
214
  forceVisible: import("svelte/store").Writable<boolean>;
215
215
  typeahead: import("svelte/store").Writable<boolean>;
216
+ closeFocus?: import("svelte/store").Writable<import("@melt-ui/svelte").FocusProp | undefined> | undefined;
217
+ disableFocusFirstItem?: import("svelte/store").Writable<boolean | undefined> | undefined;
216
218
  };
217
219
  };
218
220
  };
@@ -399,6 +401,8 @@ declare function setMenu(props: CreateMenubarMenuProps): {
399
401
  onOpenChange?: import("svelte/store").Writable<import("@melt-ui/svelte/internal/helpers").ChangeFn<boolean> | undefined> | undefined;
400
402
  forceVisible: import("svelte/store").Writable<boolean>;
401
403
  typeahead: import("svelte/store").Writable<boolean>;
404
+ closeFocus?: import("svelte/store").Writable<import("@melt-ui/svelte").FocusProp | undefined> | undefined;
405
+ disableFocusFirstItem?: import("svelte/store").Writable<boolean | undefined> | undefined;
402
406
  };
403
407
  };
404
408
  declare function getMenu(): MenubarMenuReturn;
@@ -4,12 +4,12 @@ import type { CreateMenubarProps, CreateMenubarMenuProps, CreateMenuCheckboxItem
4
4
  import type { HTMLButtonAttributes } from "svelte/elements";
5
5
  type Props = Expand<CreateMenubarProps & AsChild> & HTMLDivAttributes;
6
6
  type MenuProps = Expand<OmitOpen<CreateMenubarMenuProps> & {
7
- open?: CreateMenubarMenuProps["defaultOpen"] & {};
8
- onOpenChange?: OnChangeFn<CreateMenubarMenuProps["defaultOpen"]>;
7
+ open?: boolean;
8
+ onOpenChange?: OnChangeFn<boolean>;
9
9
  }>;
10
10
  type CheckboxItemProps = Expand<OmitChecked<CreateMenuCheckboxItemProps> & {
11
- checked?: CreateMenuCheckboxItemProps["defaultChecked"] & {};
12
- onCheckedChange?: OnChangeFn<CreateMenuCheckboxItemProps["defaultChecked"]>;
11
+ checked?: boolean | "indeterminate";
12
+ onCheckedChange?: OnChangeFn<boolean | "indeterminate">;
13
13
  disabled?: boolean;
14
14
  } & AsChild> & HTMLDivAttributes;
15
15
  type RadioGroupProps = Expand<OmitValue<CreateMenuRadioGroupProps> & {
@@ -8,6 +8,8 @@ export let preventScroll = void 0;
8
8
  export let portal = void 0;
9
9
  export let open = void 0;
10
10
  export let onOpenChange = void 0;
11
+ export let openFocus = void 0;
12
+ export let closeFocus = void 0;
11
13
  const {
12
14
  updateOption,
13
15
  states: { open: localOpen }
@@ -20,6 +22,8 @@ const {
20
22
  preventScroll,
21
23
  portal,
22
24
  defaultOpen: open,
25
+ openFocus,
26
+ closeFocus,
23
27
  onOpenChange: ({ next }) => {
24
28
  if (open !== next) {
25
29
  onOpenChange?.(next);
@@ -44,6 +48,10 @@ $:
44
48
  updateOption("preventScroll", preventScroll);
45
49
  $:
46
50
  updateOption("portal", portal);
51
+ $:
52
+ updateOption("openFocus", openFocus);
53
+ $:
54
+ updateOption("closeFocus", closeFocus);
47
55
  </script>
48
56
 
49
57
  <slot />
@@ -6,11 +6,13 @@ declare const __propDef: {
6
6
  closeOnEscape?: boolean | undefined;
7
7
  closeOnOutsideClick?: boolean | undefined;
8
8
  portal?: string | HTMLElement | null | undefined;
9
+ openFocus?: import("@melt-ui/svelte/index.js").FocusProp | undefined;
10
+ closeFocus?: import("@melt-ui/svelte/index.js").FocusProp | undefined;
9
11
  positioning?: import("@melt-ui/svelte/internal/actions").FloatingConfig | undefined;
10
12
  arrowSize?: number | undefined;
11
13
  disableFocusTrap?: boolean | undefined;
12
14
  open?: boolean | undefined;
13
- onOpenChange?: import("../../../internal/types.js").OnChangeFn<boolean | undefined> | undefined;
15
+ onOpenChange?: import("../../../internal/types.js").OnChangeFn<boolean> | undefined;
14
16
  };
15
17
  events: {
16
18
  [evt: string]: CustomEvent<any>;
@@ -61,6 +61,8 @@ declare function set(props: CreatePopoverProps): {
61
61
  arrowSize: import("svelte/store").Writable<number>;
62
62
  closeOnOutsideClick: import("svelte/store").Writable<boolean>;
63
63
  closeOnEscape: import("svelte/store").Writable<boolean>;
64
+ closeFocus: import("svelte/store").Writable<import("@melt-ui/svelte").FocusProp | undefined>;
65
+ openFocus: import("svelte/store").Writable<import("@melt-ui/svelte").FocusProp | undefined>;
64
66
  disableFocusTrap: import("svelte/store").Writable<boolean>;
65
67
  };
66
68
  };
@@ -3,8 +3,8 @@ import type { CustomEventHandler } from "../../index.js";
3
3
  import type { CreatePopoverProps } from "@melt-ui/svelte";
4
4
  import type { HTMLButtonAttributes } from "svelte/elements";
5
5
  type Props = Expand<OmitOpen<CreatePopoverProps> & {
6
- open?: CreatePopoverProps["defaultOpen"];
7
- onOpenChange?: OnChangeFn<CreatePopoverProps["defaultOpen"]>;
6
+ open?: boolean;
7
+ onOpenChange?: OnChangeFn<boolean>;
8
8
  }>;
9
9
  type ContentProps<T extends Transition = Transition, In extends Transition = Transition, Out extends Transition = Transition> = Expand<TransitionProps<T, In, Out> & AsChild> & HTMLDivAttributes;
10
10
  type TriggerProps = AsChild & HTMLButtonAttributes;
@@ -19,7 +19,7 @@ declare const __propDef: {
19
19
  selected?: import("@melt-ui/svelte/index.js").ComboboxOption<unknown> | undefined;
20
20
  onSelectedChange?: import("../../../internal/types.js").OnChangeFn<import("@melt-ui/svelte/index.js").ComboboxOption<unknown> | undefined> | undefined;
21
21
  open?: boolean | undefined;
22
- onOpenChange?: import("../../../internal/types.js").OnChangeFn<boolean | undefined> | undefined;
22
+ onOpenChange?: import("../../../internal/types.js").OnChangeFn<boolean> | undefined;
23
23
  };
24
24
  events: {
25
25
  [evt: string]: CustomEvent<any>;
@@ -49,7 +49,6 @@ declare function set(props: CreateSelectProps): {
49
49
  readonly 'data-selected': "" | undefined;
50
50
  readonly id: string;
51
51
  readonly role: "option";
52
- readonly style: string;
53
52
  }, string>;
54
53
  menu: import("@melt-ui/svelte/internal/helpers").ExplicitBuilderReturn<[import("svelte/store").Readable<boolean>], (node: HTMLElement) => import("@melt-ui/svelte/internal/types").MeltActionReturn<"pointerleave">, ([$isVisible]: [boolean]) => {
55
54
  readonly hidden: true | undefined;
@@ -5,8 +5,8 @@ import type { CustomEventHandler } from "../../index.js";
5
5
  type Props = Expand<OmitOpen<Omit<CreateSelectProps, "selected" | "defaultSelected" | "onSelectedChange">> & {
6
6
  selected?: CreateSelectProps["defaultSelected"] & {};
7
7
  onSelectedChange?: OnChangeFn<CreateSelectProps["defaultSelected"]>;
8
- open?: CreateSelectProps["defaultOpen"] & {};
9
- onOpenChange?: OnChangeFn<CreateSelectProps["defaultOpen"]>;
8
+ open?: boolean & {};
9
+ onOpenChange?: OnChangeFn<boolean>;
10
10
  }>;
11
11
  type ContentProps<T extends Transition = Transition, In extends Transition = Transition, Out extends Transition = Transition> = Expand<TransitionProps<T, In, Out> & AsChild> & HTMLDivAttributes;
12
12
  type GroupProps = AsChild & HTMLDivAttributes;
@@ -7,7 +7,7 @@ declare const __propDef: {
7
7
  min?: number | undefined;
8
8
  orientation?: "horizontal" | "vertical" | undefined;
9
9
  value?: number[] | undefined;
10
- onValueChange?: import("../../../internal/types.js").OnChangeFn<number[] | undefined> | undefined;
10
+ onValueChange?: import("../../../internal/types.js").OnChangeFn<number[]> | undefined;
11
11
  asChild?: boolean | undefined;
12
12
  accesskey?: string | null | undefined;
13
13
  autofocus?: boolean | null | undefined;
@@ -3,8 +3,8 @@ import type { Expand, OmitValue, HTMLSpanAttributes, OnChangeFn, AsChild } from
3
3
  import type { CustomEventHandler } from "../../index.js";
4
4
  import type { HTMLInputAttributes } from "svelte/elements";
5
5
  type Props = Expand<OmitValue<CreateSliderProps> & {
6
- value?: CreateSliderProps["defaultValue"] & {};
7
- onValueChange?: OnChangeFn<CreateSliderProps["defaultValue"]>;
6
+ value?: number[];
7
+ onValueChange?: OnChangeFn<number[]>;
8
8
  } & AsChild> & HTMLSpanAttributes;
9
9
  type RangeProps = AsChild & HTMLSpanAttributes;
10
10
  type ThumbProps = AsChild & HTMLSpanAttributes;
@@ -7,7 +7,7 @@ declare const __propDef: {
7
7
  name?: string | undefined;
8
8
  required?: boolean | undefined;
9
9
  checked?: boolean | undefined;
10
- onCheckedChange?: import("../../../internal/types.js").OnChangeFn<boolean | undefined> | undefined;
10
+ onCheckedChange?: import("../../../internal/types.js").OnChangeFn<boolean> | undefined;
11
11
  asChild?: boolean | undefined;
12
12
  form?: string | null | undefined;
13
13
  formaction?: string | null | undefined;
@@ -17,8 +17,8 @@ declare function set(props: CreateSwitchProps): {
17
17
  readonly 'data-state': "checked" | "unchecked";
18
18
  readonly type: "button";
19
19
  readonly role: "switch";
20
- readonly 'aria-checked': boolean;
21
- readonly 'aria-required': boolean;
20
+ readonly 'aria-checked': "true" | "false";
21
+ readonly 'aria-required': "true" | undefined;
22
22
  }, string>;
23
23
  input: import("@melt-ui/svelte/internal/helpers").ExplicitBuilderReturn<[{
24
24
  update: (updater: import("svelte/store").Updater<boolean>, sideEffect?: ((newValue: boolean) => void) | undefined) => void;
@@ -3,8 +3,8 @@ import type { AsChild, Expand, HTMLSpanAttributes, OmitChecked, OnChangeFn } fro
3
3
  import type { HTMLButtonAttributes, HTMLInputAttributes } from "svelte/elements";
4
4
  import type { CustomEventHandler } from "../../index.js";
5
5
  type Props = Expand<OmitChecked<CreateSwitchProps> & {
6
- checked?: CreateSwitchProps["defaultChecked"] & {};
7
- onCheckedChange?: OnChangeFn<CreateSwitchProps["defaultChecked"]>;
6
+ checked?: boolean;
7
+ onCheckedChange?: OnChangeFn<boolean>;
8
8
  } & AsChild> & HTMLButtonAttributes;
9
9
  type ThumbProps = AsChild & HTMLSpanAttributes;
10
10
  type InputProps = HTMLInputAttributes;
@@ -4,7 +4,7 @@ declare const __propDef: {
4
4
  props: {
5
5
  disabled?: boolean | undefined;
6
6
  pressed?: boolean | undefined;
7
- onPressedChange?: import("../../../internal/types.js").OnChangeFn<boolean | undefined> | undefined;
7
+ onPressedChange?: import("../../../internal/types.js").OnChangeFn<boolean> | undefined;
8
8
  asChild?: boolean | undefined;
9
9
  form?: string | null | undefined;
10
10
  formaction?: string | null | undefined;
@@ -3,8 +3,8 @@ import type { AsChild, Expand, OmitPressed, OnChangeFn } from "../../internal/in
3
3
  import type { HTMLButtonAttributes, HTMLInputAttributes } from "svelte/elements";
4
4
  import type { CustomEventHandler } from "../../index.js";
5
5
  type Props = Expand<OmitPressed<CreateToggleProps> & {
6
- pressed?: CreateToggleProps["defaultPressed"];
7
- onPressedChange?: OnChangeFn<CreateToggleProps["defaultPressed"]>;
6
+ pressed?: boolean;
7
+ onPressedChange?: OnChangeFn<boolean>;
8
8
  } & AsChild> & HTMLButtonAttributes;
9
9
  type Events<T extends Element = HTMLButtonElement> = {
10
10
  click: CustomEventHandler<MouseEvent, T>;
@@ -9,6 +9,8 @@ export let closeDelay = void 0;
9
9
  export let open = void 0;
10
10
  export let onOpenChange = void 0;
11
11
  export let forceVisible = true;
12
+ export let disableHoverableContent = void 0;
13
+ export let group = void 0;
12
14
  const {
13
15
  states: { open: localOpen },
14
16
  updateOption
@@ -22,6 +24,8 @@ const {
22
24
  closeDelay,
23
25
  forceVisible,
24
26
  defaultOpen: open,
27
+ disableHoverableContent,
28
+ group,
25
29
  onOpenChange: ({ next }) => {
26
30
  if (open !== next) {
27
31
  onOpenChange?.(next);
@@ -48,6 +52,10 @@ $:
48
52
  updateOption("closeDelay", closeDelay);
49
53
  $:
50
54
  updateOption("forceVisible", forceVisible);
55
+ $:
56
+ updateOption("group", group);
57
+ $:
58
+ updateOption("disableHoverableContent", disableHoverableContent);
51
59
  </script>
52
60
 
53
61
  <slot />
@@ -12,7 +12,7 @@ declare const __propDef: {
12
12
  closeOnPointerDown?: boolean | undefined;
13
13
  disableHoverableContent?: boolean | undefined;
14
14
  open?: boolean | undefined;
15
- onOpenChange?: import("../../../internal/types.js").OnChangeFn<boolean | undefined> | undefined;
15
+ onOpenChange?: import("../../../internal/types.js").OnChangeFn<boolean> | undefined;
16
16
  };
17
17
  events: {
18
18
  [evt: string]: CustomEvent<any>;
@@ -3,8 +3,8 @@ import type { Expand, HTMLDivAttributes, OmitOpen, Transition, OnChangeFn, AsChi
3
3
  import type { HTMLButtonAttributes } from "svelte/elements";
4
4
  import type { CustomEventHandler } from "../..";
5
5
  type Props = Expand<OmitOpen<CreateTooltipProps> & {
6
- open?: CreateTooltipProps["defaultOpen"] & {};
7
- onOpenChange?: OnChangeFn<CreateTooltipProps["defaultOpen"]>;
6
+ open?: boolean & {};
7
+ onOpenChange?: OnChangeFn<boolean>;
8
8
  }>;
9
9
  type ContentProps<T extends Transition = Transition, In extends Transition = Transition, Out extends Transition = Transition> = Expand<{
10
10
  sideOffset?: number;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "bits-ui",
3
- "version": "0.6.3",
3
+ "version": "0.8.0",
4
4
  "license": "MIT",
5
5
  "scripts": {
6
6
  "dev": "concurrently \"pnpm:dev:content\" \"pnpm:dev:svelte\"",
@@ -42,6 +42,7 @@
42
42
  "@sveltejs/adapter-vercel": "^3.0.3",
43
43
  "@sveltejs/kit": "^1.26.0",
44
44
  "@sveltejs/package": "^2.2.2",
45
+ "@svitejs/changesets-changelog-github-compact": "^1.1.0",
45
46
  "@tailwindcss/typography": "^0.5.10",
46
47
  "@typescript-eslint/eslint-plugin": "^6.8.0",
47
48
  "@typescript-eslint/parser": "^6.8.0",
@@ -84,8 +85,8 @@
84
85
  "types": "./dist/index.d.ts",
85
86
  "type": "module",
86
87
  "dependencies": {
87
- "@melt-ui/svelte": "0.55.3",
88
- "nanoid": "^4.0.2"
88
+ "@melt-ui/svelte": "0.56.0",
89
+ "nanoid": "^5.0.2"
89
90
  },
90
91
  "peerDependencies": {
91
92
  "svelte": "^4.0.0"