bits-ui 0.0.27 → 0.0.28

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 (62) hide show
  1. package/dist/bits/accordion/components/AccordionContent.svelte +30 -12
  2. package/dist/bits/accordion/components/AccordionContent.svelte.d.ts +9 -5
  3. package/dist/bits/accordion/types.d.ts +2 -5
  4. package/dist/bits/alert-dialog/components/AlertDialog.svelte +34 -4
  5. package/dist/bits/alert-dialog/components/AlertDialogContent.svelte +35 -3
  6. package/dist/bits/alert-dialog/components/AlertDialogContent.svelte.d.ts +10 -6
  7. package/dist/bits/alert-dialog/components/AlertDialogOverlay.svelte +21 -2
  8. package/dist/bits/alert-dialog/ctx.d.ts +5 -2
  9. package/dist/bits/alert-dialog/ctx.js +1 -1
  10. package/dist/bits/alert-dialog/types.d.ts +3 -6
  11. package/dist/bits/collapsible/components/CollapsibleContent.svelte +22 -1
  12. package/dist/bits/collapsible/components/CollapsibleContent.svelte.d.ts +9 -5
  13. package/dist/bits/collapsible/types.d.ts +2 -5
  14. package/dist/bits/context-menu/components/ContextMenu.svelte +4 -1
  15. package/dist/bits/context-menu/components/ContextMenuContent.svelte +38 -4
  16. package/dist/bits/context-menu/components/ContextMenuContent.svelte.d.ts +9 -5
  17. package/dist/bits/context-menu/components/ContextMenuSubContent.svelte +39 -1
  18. package/dist/bits/context-menu/components/ContextMenuSubContent.svelte.d.ts +9 -5
  19. package/dist/bits/context-menu/components/ContextMenuTrigger.svelte +11 -1
  20. package/dist/bits/context-menu/ctx.d.ts +1 -1
  21. package/dist/bits/context-menu/ctx.js +3 -3
  22. package/dist/bits/context-menu/types.d.ts +4 -9
  23. package/dist/bits/dialog/components/Dialog.svelte +32 -2
  24. package/dist/bits/dialog/components/DialogContent.svelte +37 -6
  25. package/dist/bits/dialog/components/DialogContent.svelte.d.ts +10 -6
  26. package/dist/bits/dialog/components/DialogOverlay.svelte +21 -2
  27. package/dist/bits/dialog/ctx.d.ts +5 -2
  28. package/dist/bits/dialog/ctx.js +1 -1
  29. package/dist/bits/dialog/types.d.ts +3 -6
  30. package/dist/bits/dropdown-menu/components/DropdownMenuContent.svelte +38 -1
  31. package/dist/bits/dropdown-menu/components/DropdownMenuContent.svelte.d.ts +9 -5
  32. package/dist/bits/dropdown-menu/components/DropdownMenuSubContent.svelte +40 -3
  33. package/dist/bits/dropdown-menu/components/DropdownMenuSubContent.svelte.d.ts +9 -5
  34. package/dist/bits/dropdown-menu/types.d.ts +5 -9
  35. package/dist/bits/link-preview/components/LinkPreviewContent.svelte +42 -1
  36. package/dist/bits/link-preview/components/LinkPreviewContent.svelte.d.ts +9 -5
  37. package/dist/bits/link-preview/types.d.ts +2 -5
  38. package/dist/bits/menubar/components/Menubar.svelte +3 -2
  39. package/dist/bits/menubar/components/MenubarContent.svelte +45 -2
  40. package/dist/bits/menubar/components/MenubarSubContent.svelte +63 -7
  41. package/dist/bits/menubar/ctx.d.ts +83 -83
  42. package/dist/bits/menubar/ctx.js +3 -3
  43. package/dist/bits/menubar/types.d.ts +6 -4
  44. package/dist/bits/popover/components/PopoverContent.svelte +23 -2
  45. package/dist/bits/popover/components/PopoverContent.svelte.d.ts +9 -5
  46. package/dist/bits/popover/types.d.ts +2 -5
  47. package/dist/bits/select/components/Select.svelte +3 -0
  48. package/dist/bits/select/components/Select.svelte.d.ts +1 -0
  49. package/dist/bits/select/components/SelectContent.svelte +38 -1
  50. package/dist/bits/select/components/SelectContent.svelte.d.ts +9 -5
  51. package/dist/bits/select/types.d.ts +3 -6
  52. package/dist/bits/tooltip/components/TooltipContent.svelte +37 -2
  53. package/dist/bits/tooltip/components/TooltipContent.svelte.d.ts +10 -6
  54. package/dist/bits/tooltip/types.d.ts +3 -5
  55. package/dist/internal/helpers.d.ts +10 -1
  56. package/dist/internal/helpers.js +55 -0
  57. package/dist/internal/types.d.ts +20 -0
  58. package/package.json +1 -1
  59. package/dist/bits/alert-dialog/components/AlertDialogOverlay.svelte.d.ts +0 -228
  60. package/dist/bits/dialog/components/DialogOverlay.svelte.d.ts +0 -228
  61. package/dist/bits/menubar/components/MenubarContent.svelte.d.ts +0 -229
  62. package/dist/bits/menubar/components/MenubarSubContent.svelte.d.ts +0 -230
@@ -18,7 +18,6 @@ export declare const ctx: {
18
18
  getGroupLabel: typeof getGroupLabel;
19
19
  setArrow: typeof setArrow;
20
20
  };
21
- declare function get(): ContextMenuReturn;
22
21
  declare function set(props: CreateContextMenuProps): {
23
22
  updateOption: <K extends string, V extends unknown>(key: K, value: V | undefined) => void;
24
23
  elements: {
@@ -194,6 +193,7 @@ declare function set(props: CreateContextMenuProps): {
194
193
  forceVisible: import("svelte/store").Writable<boolean>;
195
194
  };
196
195
  };
196
+ declare function get(): ContextMenuReturn;
197
197
  declare function setSub(props: CreateContextSubmenuProps): {
198
198
  updateOption: <K extends string, V extends unknown>(key: K, value: V | undefined) => void;
199
199
  elements: {
@@ -24,9 +24,6 @@ export const ctx = {
24
24
  getGroupLabel,
25
25
  setArrow
26
26
  };
27
- function get() {
28
- return getContext(NAME);
29
- }
30
27
  function set(props) {
31
28
  const contextMenu = createContextMenu(removeUndefined(props));
32
29
  setContext(NAME, contextMenu);
@@ -35,6 +32,9 @@ function set(props) {
35
32
  updateOption: getOptionUpdater(contextMenu.options)
36
33
  };
37
34
  }
35
+ function get() {
36
+ return getContext(NAME);
37
+ }
38
38
  function setSub(props) {
39
39
  const { builders: { createSubmenu } } = get();
40
40
  const sub = createSubmenu(removeUndefined(props));
@@ -1,4 +1,4 @@
1
- import type { AsChild, Expand, HTMLDivAttributes, OmitChecked, OmitOpen, OmitValue, OnChangeFn, Transition, TransitionParams } from "../../internal/index.js";
1
+ import type { AsChild, Expand, HTMLDivAttributes, OmitChecked, OmitOpen, OmitValue, OnChangeFn, Transition, TransitionProps } from "../../internal/index.js";
2
2
  import type { DivEventHandler } from "../..";
3
3
  import type { CreateContextMenuProps, CreateContextMenuCheckboxItemProps, CreateContextMenuRadioGroupProps, ContextMenuRadioItemProps, CreateContextSubmenuProps, ContextMenuComponentEvents } from "@melt-ui/svelte";
4
4
  type Props = Expand<OmitOpen<CreateContextMenuProps> & {
@@ -14,11 +14,9 @@ type RadioGroupProps = Expand<OmitValue<CreateContextMenuRadioGroupProps> & {
14
14
  onValueChange?: OnChangeFn<CreateContextMenuRadioGroupProps["defaultValue"]>;
15
15
  } & AsChild> & HTMLDivAttributes;
16
16
  type RadioItemProps = Expand<ContextMenuRadioItemProps & AsChild> & HTMLDivAttributes;
17
- type ContentProps<T extends Transition = Transition> = Expand<{
17
+ type ContentProps<T extends Transition = Transition, In extends Transition = Transition, Out extends Transition = Transition> = Expand<{
18
18
  sideOffset?: number;
19
- transition?: T;
20
- transitionConfig?: TransitionParams<T>;
21
- } & AsChild> & HTMLDivAttributes;
19
+ } & TransitionProps<T, In, Out> & AsChild> & HTMLDivAttributes;
22
20
  type GroupProps = AsChild & HTMLDivAttributes;
23
21
  type ItemProps = Expand<{
24
22
  disabled?: boolean;
@@ -27,10 +25,7 @@ type CheckboxItemIndicatorProps = HTMLDivAttributes;
27
25
  type LabelProps = AsChild & HTMLDivAttributes;
28
26
  type SeparatorProps = AsChild & HTMLDivAttributes;
29
27
  type SubProps = Expand<CreateContextSubmenuProps>;
30
- type SubContentProps<T extends Transition = Transition> = Expand<{
31
- transition?: T;
32
- transitionConfig?: TransitionParams<T>;
33
- } & AsChild> & HTMLDivAttributes;
28
+ type SubContentProps<T extends Transition = Transition, In extends Transition = Transition, Out extends Transition = Transition> = Expand<TransitionProps<T, In, Out> & AsChild> & HTMLDivAttributes;
34
29
  type SubTriggerProps = Expand<{
35
30
  disabled?: boolean;
36
31
  } & AsChild> & HTMLDivAttributes;
@@ -1,4 +1,7 @@
1
- <script>import { ctx } from "../ctx.js";
1
+ <script>import { writable } from "svelte/store";
2
+ import { ctx } from "../ctx.js";
3
+ import { isBrowser } from "@/utils/is.js";
4
+ import { onDestroy } from "svelte";
2
5
  export let preventScroll = void 0;
3
6
  export let closeOnEscape = void 0;
4
7
  export let closeOnOutsideClick = void 0;
@@ -6,22 +9,49 @@ export let portal = void 0;
6
9
  export let forceVisible = true;
7
10
  export let open = void 0;
8
11
  export let onOpenChange = void 0;
12
+ const transitionTimes = writable({});
13
+ const tOpen = writable(open);
14
+ let timeout = 0;
9
15
  const {
10
16
  states: { open: localOpen },
11
17
  updateOption
12
18
  } = ctx.set({
13
- preventScroll,
14
19
  closeOnEscape,
20
+ preventScroll,
15
21
  closeOnOutsideClick,
16
22
  portal,
17
23
  forceVisible,
18
24
  defaultOpen: open,
25
+ transitionTimes,
26
+ tOpen,
19
27
  onOpenChange: ({ next }) => {
20
28
  onOpenChange?.(next);
29
+ if (next !== $tOpen) {
30
+ tOpen.set(next);
31
+ if (!next) {
32
+ window.clearTimeout(timeout);
33
+ timeout = window.setTimeout(
34
+ () => {
35
+ localOpen.set(next);
36
+ },
37
+ $transitionTimes.out ? $transitionTimes.out * 0.5 : 0
38
+ );
39
+ open = !next;
40
+ return !next;
41
+ } else {
42
+ open = next;
43
+ return next;
44
+ }
45
+ }
21
46
  open = next;
22
47
  return next;
23
48
  }
24
49
  });
50
+ onDestroy(() => {
51
+ if (isBrowser) {
52
+ window.clearTimeout(timeout);
53
+ }
54
+ });
25
55
  $:
26
56
  open !== void 0 && localOpen.set(open);
27
57
  $:
@@ -1,24 +1,55 @@
1
1
  <script>import { melt } from "@melt-ui/svelte";
2
+ import { setTransitionTimes } from "../../../internal/index.js";
2
3
  import { ctx } from "../ctx.js";
3
4
  export let transition = void 0;
4
5
  export let transitionConfig = void 0;
6
+ export let inTransition = void 0;
7
+ export let inTransitionConfig = void 0;
8
+ export let outTransition = void 0;
9
+ export let outTransitionConfig = void 0;
5
10
  export let asChild = false;
6
11
  const {
7
12
  elements: { content },
8
- states: { open }
13
+ transitionTimes,
14
+ tOpen
9
15
  } = ctx.get();
16
+ $:
17
+ setTransitionTimes(transitionTimes, {
18
+ transition,
19
+ transitionConfig,
20
+ inTransition,
21
+ inTransitionConfig,
22
+ outTransition,
23
+ outTransitionConfig
24
+ });
10
25
  </script>
11
26
 
12
- {#if $open}
27
+ {#if $tOpen}
28
+ {@const builder = $content}
13
29
  {#if asChild}
14
- <slot builder={$content} />
30
+ <slot {builder} />
15
31
  {:else if transition}
16
- {@const builder = $content}
17
- <div {...builder} use:builder.action {...$$restProps} transition:transition={transitionConfig}>
32
+ <div transition:transition|global={transitionConfig} {...builder} use:builder.action {...$$restProps}>
33
+ <slot {builder} />
34
+ </div>
35
+ {:else if inTransition && outTransition}
36
+ <div
37
+ in:inTransition|global={inTransitionConfig}
38
+ out:outTransition|global={outTransitionConfig}
39
+ {...builder} use:builder.action
40
+ {...$$restProps}
41
+ >
42
+ <slot {builder} />
43
+ </div>
44
+ {:else if inTransition}
45
+ <div in:inTransition|global={inTransitionConfig} {...builder} use:builder.action {...$$restProps}>
46
+ <slot {builder} />
47
+ </div>
48
+ {:else if outTransition}
49
+ <div out:outTransition|global={outTransitionConfig} {...builder} use:builder.action {...$$restProps}>
18
50
  <slot {builder} />
19
51
  </div>
20
52
  {:else}
21
- {@const builder = $content}
22
53
  <div {...builder} use:builder.action {...$$restProps}>
23
54
  <slot {builder} />
24
55
  </div>
@@ -1,9 +1,13 @@
1
1
  import { SvelteComponent } from "svelte";
2
- import type { Transition } from "../../../internal/index.js";
3
- declare class __sveltets_Render<T extends Transition> {
2
+ import { type Transition } from "../../../internal/index.js";
3
+ declare class __sveltets_Render<T extends Transition, In extends Transition, Out extends Transition> {
4
4
  props(): {
5
5
  transition?: T | undefined;
6
6
  transitionConfig?: import("../../../internal/index.js").TransitionParams<T> | undefined;
7
+ inTransition?: In | undefined;
8
+ inTransitionConfig?: import("../../../internal/index.js").TransitionParams<In> | undefined;
9
+ outTransition?: Out | undefined;
10
+ outTransitionConfig?: import("../../../internal/index.js").TransitionParams<Out> | undefined;
7
11
  asChild?: boolean | undefined;
8
12
  accesskey?: string | null | undefined;
9
13
  autofocus?: boolean | null | undefined;
@@ -223,9 +227,9 @@ declare class __sveltets_Render<T extends Transition> {
223
227
  };
224
228
  };
225
229
  }
226
- export type DialogContentProps<T extends Transition> = ReturnType<__sveltets_Render<T>['props']>;
227
- export type DialogContentEvents<T extends Transition> = ReturnType<__sveltets_Render<T>['events']>;
228
- export type DialogContentSlots<T extends Transition> = ReturnType<__sveltets_Render<T>['slots']>;
229
- export default class DialogContent<T extends Transition> extends SvelteComponent<DialogContentProps<T>, DialogContentEvents<T>, DialogContentSlots<T>> {
230
+ export type DialogContentProps<T extends Transition, In extends Transition, Out extends Transition> = ReturnType<__sveltets_Render<T, In, Out>['props']>;
231
+ export type DialogContentEvents<T extends Transition, In extends Transition, Out extends Transition> = ReturnType<__sveltets_Render<T, In, Out>['events']>;
232
+ export type DialogContentSlots<T extends Transition, In extends Transition, Out extends Transition> = ReturnType<__sveltets_Render<T, In, Out>['slots']>;
233
+ export default class DialogContent<T extends Transition, In extends Transition, Out extends Transition> extends SvelteComponent<DialogContentProps<T, In, Out>, DialogContentEvents<T, In, Out>, DialogContentSlots<T, In, Out>> {
230
234
  }
231
235
  export {};
@@ -1,16 +1,35 @@
1
1
  <script>import { melt } from "@melt-ui/svelte";
2
2
  import { ctx } from "../ctx.js";
3
+ export let transition = void 0;
4
+ export let transitionConfig = void 0;
5
+ export let inTransition = void 0;
6
+ export let inTransitionConfig = void 0;
7
+ export let outTransition = void 0;
8
+ export let outTransitionConfig = void 0;
3
9
  export let asChild = false;
4
10
  const {
5
11
  elements: { overlay },
6
- states: { open }
12
+ tOpen
7
13
  } = ctx.get();
8
14
  </script>
9
15
 
10
- {#if $open}
16
+ {#if $tOpen}
11
17
  {@const builder = $overlay}
12
18
  {#if asChild}
13
19
  <slot {builder} />
20
+ {:else if transition}
21
+ <div transition:transition|global={transitionConfig} {...builder} use:builder.action {...$$restProps} />
22
+ {:else if inTransition && outTransition}
23
+ <div
24
+ in:inTransition|global={inTransitionConfig}
25
+ out:outTransition|global={outTransitionConfig}
26
+ {...builder} use:builder.action
27
+ {...$$restProps}
28
+ />
29
+ {:else if inTransition}
30
+ <div in:inTransition|global={inTransitionConfig} {...builder} use:builder.action {...$$restProps} />
31
+ {:else if outTransition}
32
+ <div out:outTransition|global={outTransitionConfig} {...builder} use:builder.action {...$$restProps} />
14
33
  {:else}
15
34
  <div {...builder} use:builder.action {...$$restProps} />
16
35
  {/if}
@@ -1,10 +1,13 @@
1
1
  /// <reference types="svelte" />
2
2
  import { type CreateDialogProps, type Dialog as DialogReturn } from "@melt-ui/svelte";
3
+ import { type TOpen, type TransitionTimesProp } from "../../internal/index.js";
4
+ type SetProps = CreateDialogProps & TransitionTimesProp & TOpen;
5
+ type CtxReturn = DialogReturn & TransitionTimesProp & TOpen;
3
6
  export declare const ctx: {
4
7
  set: typeof set;
5
8
  get: typeof get;
6
9
  };
7
- declare function set(props: CreateDialogProps): {
10
+ declare function set(props: SetProps): {
8
11
  updateOption: <K extends string, V extends unknown>(key: K, value: V | undefined) => void;
9
12
  elements: {
10
13
  content: import("@melt-ui/svelte/internal/helpers").ExplicitBuilderReturn<[import("svelte/store").Readable<boolean>], <Node_1 extends unknown>(node: HTMLElement) => {
@@ -73,5 +76,5 @@ declare function set(props: CreateDialogProps): {
73
76
  forceVisible: import("svelte/store").Writable<boolean>;
74
77
  };
75
78
  };
76
- declare function get(): DialogReturn;
79
+ declare function get(): CtxReturn;
77
80
  export {};
@@ -8,7 +8,7 @@ export const ctx = {
8
8
  };
9
9
  function set(props) {
10
10
  const dialog = createDialog({ ...removeUndefined(props), role: "dialog" });
11
- setContext(NAME, dialog);
11
+ setContext(NAME, { ...dialog, transitionTimes: props.transitionTimes, tOpen: props.tOpen });
12
12
  return {
13
13
  ...dialog,
14
14
  updateOption: getOptionUpdater(dialog.options)
@@ -1,4 +1,4 @@
1
- import type { AsChild, Expand, HTMLDivAttributes, HTMLHeadingAttributes, OmitOpen, OnChangeFn, Transition, TransitionParams } from "../../internal/index.js";
1
+ import type { AsChild, Expand, HTMLDivAttributes, HTMLHeadingAttributes, OmitOpen, OnChangeFn, Transition, TransitionProps } from "../../internal/index.js";
2
2
  import type { HTMLButtonAttributes } from "svelte/elements";
3
3
  import type { CreateDialogProps } from "@melt-ui/svelte";
4
4
  import type { ButtonEventHandler } from "../../index.js";
@@ -8,12 +8,9 @@ type Props = Expand<OmitOpen<Omit<CreateDialogProps, "role">> & {
8
8
  }>;
9
9
  type TriggerProps = AsChild & HTMLButtonAttributes;
10
10
  type CloseProps = TriggerProps;
11
- type ContentProps<T extends Transition = Transition> = Expand<{
12
- transition?: T;
13
- transitionConfig?: TransitionParams<T>;
14
- } & AsChild> & HTMLDivAttributes;
11
+ type ContentProps<T extends Transition = Transition, In extends Transition = Transition, Out extends Transition = Transition> = Expand<TransitionProps<T, In, Out> & AsChild> & HTMLDivAttributes;
15
12
  type DescriptionProps = AsChild & HTMLDivAttributes;
16
- type OverlayProps = AsChild & HTMLDivAttributes;
13
+ type OverlayProps<T extends Transition = Transition, In extends Transition = Transition, Out extends Transition = Transition> = Expand<TransitionProps<T, In, Out> & AsChild> & HTMLDivAttributes;
17
14
  type PortalProps = AsChild & HTMLDivAttributes;
18
15
  type TitleProps = Expand<{
19
16
  level?: "h1" | "h2" | "h3" | "h4" | "h5" | "h6";
@@ -4,6 +4,10 @@ import { ctx } from "../ctx.js";
4
4
  export let sideOffset = 5;
5
5
  export let transition = void 0;
6
6
  export let transitionConfig = void 0;
7
+ export let inTransition = void 0;
8
+ export let inTransitionConfig = void 0;
9
+ export let outTransition = void 0;
10
+ export let outTransitionConfig = void 0;
7
11
  export let asChild = false;
8
12
  const {
9
13
  elements: { menu },
@@ -18,7 +22,40 @@ const {
18
22
  {#if asChild}
19
23
  <slot {builder} />
20
24
  {:else if transition}
21
- <div {...builder} use:builder.action {...$$restProps} on:m-keydown transition:transition={transitionConfig}>
25
+ <div
26
+ transition:transition|global={transitionConfig}
27
+ {...builder} use:builder.action
28
+ {...$$restProps}
29
+ on:m-keydown
30
+ >
31
+ <slot {builder} />
32
+ </div>
33
+ {:else if inTransition && outTransition}
34
+ <div
35
+ in:inTransition|global={inTransitionConfig}
36
+ out:outTransition|global={outTransitionConfig}
37
+ {...builder} use:builder.action
38
+ {...$$restProps}
39
+ on:m-keydown
40
+ >
41
+ <slot {builder} />
42
+ </div>
43
+ {:else if inTransition}
44
+ <div
45
+ in:inTransition|global={inTransitionConfig}
46
+ {...builder} use:builder.action
47
+ {...$$restProps}
48
+ on:m-keydown
49
+ >
50
+ <slot {builder} />
51
+ </div>
52
+ {:else if outTransition}
53
+ <div
54
+ out:outTransition|global={outTransitionConfig}
55
+ {...builder} use:builder.action
56
+ {...$$restProps}
57
+ on:m-keydown
58
+ >
22
59
  <slot {builder} />
23
60
  </div>
24
61
  {:else}
@@ -1,10 +1,14 @@
1
1
  import { SvelteComponent } from "svelte";
2
2
  import type { Transition } from "../../../internal/types.js";
3
- declare class __sveltets_Render<T extends Transition> {
3
+ declare class __sveltets_Render<T extends Transition, In extends Transition, Out extends Transition> {
4
4
  props(): {
5
5
  sideOffset?: number | undefined;
6
6
  transition?: T | undefined;
7
7
  transitionConfig?: import("../../../internal/types.js").TransitionParams<T> | undefined;
8
+ inTransition?: In | undefined;
9
+ inTransitionConfig?: import("../../../internal/types.js").TransitionParams<In> | undefined;
10
+ outTransition?: Out | undefined;
11
+ outTransitionConfig?: import("../../../internal/types.js").TransitionParams<Out> | undefined;
8
12
  asChild?: boolean | undefined;
9
13
  accesskey?: string | null | undefined;
10
14
  autofocus?: boolean | null | undefined;
@@ -224,9 +228,9 @@ declare class __sveltets_Render<T extends Transition> {
224
228
  };
225
229
  };
226
230
  }
227
- export type DropdownMenuContentProps<T extends Transition> = ReturnType<__sveltets_Render<T>['props']>;
228
- export type DropdownMenuContentEvents<T extends Transition> = ReturnType<__sveltets_Render<T>['events']>;
229
- export type DropdownMenuContentSlots<T extends Transition> = ReturnType<__sveltets_Render<T>['slots']>;
230
- export default class DropdownMenuContent<T extends Transition> extends SvelteComponent<DropdownMenuContentProps<T>, DropdownMenuContentEvents<T>, DropdownMenuContentSlots<T>> {
231
+ export type DropdownMenuContentProps<T extends Transition, In extends Transition, Out extends Transition> = ReturnType<__sveltets_Render<T, In, Out>['props']>;
232
+ export type DropdownMenuContentEvents<T extends Transition, In extends Transition, Out extends Transition> = ReturnType<__sveltets_Render<T, In, Out>['events']>;
233
+ export type DropdownMenuContentSlots<T extends Transition, In extends Transition, Out extends Transition> = ReturnType<__sveltets_Render<T, In, Out>['slots']>;
234
+ export default class DropdownMenuContent<T extends Transition, In extends Transition, Out extends Transition> extends SvelteComponent<DropdownMenuContentProps<T, In, Out>, DropdownMenuContentEvents<T, In, Out>, DropdownMenuContentSlots<T, In, Out>> {
231
235
  }
232
236
  export {};
@@ -2,6 +2,10 @@
2
2
  import { ctx } from "../ctx.js";
3
3
  export let transition = void 0;
4
4
  export let transitionConfig = void 0;
5
+ export let inTransition = void 0;
6
+ export let inTransitionConfig = void 0;
7
+ export let outTransition = void 0;
8
+ export let outTransitionConfig = void 0;
5
9
  export let asChild = false;
6
10
  const {
7
11
  elements: { subMenu },
@@ -9,20 +13,53 @@ const {
9
13
  } = ctx.getSubContent();
10
14
  </script>
11
15
 
12
- <!-- svelte-ignore a11y-no-static-element-interactions applied by melt's action/store -->
13
-
16
+ <!-- svelte-ignore a11y-no-static-element-interactions / applied by melt store -->
14
17
  {#if $subOpen}
15
18
  {@const builder = $subMenu}
16
19
  {#if asChild}
17
20
  <slot {builder} />
18
21
  {:else if transition}
19
22
  <div
23
+ transition:transition|global={transitionConfig}
24
+ {...builder} use:builder.action
25
+ {...$$restProps}
26
+ on:m-focusout
27
+ on:m-keydown
28
+ on:m-pointermove
29
+ >
30
+ <slot {builder} />
31
+ </div>
32
+ {:else if inTransition && outTransition}
33
+ <div
34
+ in:inTransition|global={inTransitionConfig}
35
+ out:outTransition|global={outTransitionConfig}
36
+ {...builder} use:builder.action
37
+ {...$$restProps}
38
+ on:m-focusout
39
+ on:m-keydown
40
+ on:m-pointermove
41
+ >
42
+ <slot {builder} />
43
+ </div>
44
+ {:else if inTransition}
45
+ <div
46
+ in:inTransition|global={inTransitionConfig}
47
+ {...builder} use:builder.action
48
+ {...$$restProps}
49
+ on:m-focusout
50
+ on:m-keydown
51
+ on:m-pointermove
52
+ >
53
+ <slot {builder} />
54
+ </div>
55
+ {:else if outTransition}
56
+ <div
57
+ out:outTransition|global={outTransitionConfig}
20
58
  {...builder} use:builder.action
21
59
  {...$$restProps}
22
60
  on:m-focusout
23
61
  on:m-keydown
24
62
  on:m-pointermove
25
- transition:transition={transitionConfig}
26
63
  >
27
64
  <slot {builder} />
28
65
  </div>
@@ -1,10 +1,14 @@
1
1
  import { SvelteComponent } from "svelte";
2
2
  import type { Transition } from "../../../internal/index.js";
3
- declare class __sveltets_Render<T extends Transition> {
3
+ declare class __sveltets_Render<T extends Transition, In extends Transition, Out extends Transition> {
4
4
  props(): {
5
5
  sideOffset?: number | undefined;
6
6
  transition?: T | undefined;
7
7
  transitionConfig?: import("../../../internal/index.js").TransitionParams<T> | undefined;
8
+ inTransition?: In | undefined;
9
+ inTransitionConfig?: import("../../../internal/index.js").TransitionParams<In> | undefined;
10
+ outTransition?: Out | undefined;
11
+ outTransitionConfig?: import("../../../internal/index.js").TransitionParams<Out> | undefined;
8
12
  asChild?: boolean | undefined;
9
13
  accesskey?: string | null | undefined;
10
14
  autofocus?: boolean | null | undefined;
@@ -226,9 +230,9 @@ declare class __sveltets_Render<T extends Transition> {
226
230
  };
227
231
  };
228
232
  }
229
- export type DropdownMenuSubContentProps<T extends Transition> = ReturnType<__sveltets_Render<T>['props']>;
230
- export type DropdownMenuSubContentEvents<T extends Transition> = ReturnType<__sveltets_Render<T>['events']>;
231
- export type DropdownMenuSubContentSlots<T extends Transition> = ReturnType<__sveltets_Render<T>['slots']>;
232
- export default class DropdownMenuSubContent<T extends Transition> extends SvelteComponent<DropdownMenuSubContentProps<T>, DropdownMenuSubContentEvents<T>, DropdownMenuSubContentSlots<T>> {
233
+ export type DropdownMenuSubContentProps<T extends Transition, In extends Transition, Out extends Transition> = ReturnType<__sveltets_Render<T, In, Out>['props']>;
234
+ export type DropdownMenuSubContentEvents<T extends Transition, In extends Transition, Out extends Transition> = ReturnType<__sveltets_Render<T, In, Out>['events']>;
235
+ export type DropdownMenuSubContentSlots<T extends Transition, In extends Transition, Out extends Transition> = ReturnType<__sveltets_Render<T, In, Out>['slots']>;
236
+ export default class DropdownMenuSubContent<T extends Transition, In extends Transition, Out extends Transition> extends SvelteComponent<DropdownMenuSubContentProps<T, In, Out>, DropdownMenuSubContentEvents<T, In, Out>, DropdownMenuSubContentSlots<T, In, Out>> {
233
237
  }
234
238
  export {};
@@ -1,4 +1,4 @@
1
- import type { AsChild, Expand, HTMLDivAttributes, OmitChecked, OmitOpen, OmitValue, OnChangeFn, Transition, TransitionParams } from "../../internal/index.js";
1
+ import type { TransitionProps, AsChild, Expand, HTMLDivAttributes, OmitChecked, OmitOpen, OmitValue, OnChangeFn, Transition } from "../../internal/index.js";
2
2
  import type { ButtonEventHandler, DivEventHandler } from "../../index.js";
3
3
  import type { CreateDropdownMenuProps, CreateDropdownMenuCheckboxItemProps, CreateDropdownMenuRadioGroupProps, DropdownMenuRadioItemProps, CreateDropdownSubmenuProps, DropdownMenuComponentEvents } from "@melt-ui/svelte";
4
4
  import type { HTMLButtonAttributes } from "svelte/elements";
@@ -15,11 +15,9 @@ type RadioGroupProps = Expand<OmitValue<CreateDropdownMenuRadioGroupProps> & {
15
15
  onValueChange?: OnChangeFn<CreateDropdownMenuRadioGroupProps["defaultValue"]>;
16
16
  } & AsChild> & HTMLDivAttributes;
17
17
  type RadioItemProps = Expand<DropdownMenuRadioItemProps & AsChild> & HTMLDivAttributes;
18
- type ContentProps<T extends Transition = Transition> = Expand<{
18
+ type ContentProps<T extends Transition = Transition, In extends Transition = Transition, Out extends Transition = Transition> = Expand<{
19
19
  sideOffset?: number;
20
- transition?: T;
21
- transitionConfig?: TransitionParams<T>;
22
- } & AsChild> & HTMLDivAttributes;
20
+ } & TransitionProps<T, In, Out> & AsChild> & HTMLDivAttributes;
23
21
  type GroupProps = AsChild & HTMLDivAttributes;
24
22
  type ItemProps = Expand<{
25
23
  disabled?: boolean;
@@ -28,11 +26,9 @@ type CheckboxItemIndicatorProps = HTMLDivAttributes;
28
26
  type LabelProps = AsChild & HTMLDivAttributes;
29
27
  type SeparatorProps = AsChild & HTMLDivAttributes;
30
28
  type SubProps = Expand<CreateDropdownSubmenuProps>;
31
- type SubContentProps<T extends Transition = Transition> = Expand<{
29
+ type SubContentProps<T extends Transition = Transition, In extends Transition = Transition, Out extends Transition = Transition> = Expand<{
32
30
  sideOffset?: number;
33
- transition?: T;
34
- transitionConfig?: TransitionParams<T>;
35
- } & AsChild> & HTMLDivAttributes;
31
+ } & TransitionProps<T, In, Out> & AsChild> & HTMLDivAttributes;
36
32
  type SubTriggerProps = Expand<{
37
33
  disabled?: boolean;
38
34
  } & AsChild> & HTMLDivAttributes;
@@ -2,6 +2,10 @@
2
2
  import { ctx } from "../ctx.js";
3
3
  export let transition = void 0;
4
4
  export let transitionConfig = void 0;
5
+ export let inTransition = void 0;
6
+ export let inTransitionConfig = void 0;
7
+ export let outTransition = void 0;
8
+ export let outTransitionConfig = void 0;
5
9
  export let asChild = false;
6
10
  const {
7
11
  elements: { content },
@@ -17,13 +21,50 @@ const {
17
21
  <slot {builder} />
18
22
  {:else if transition}
19
23
  <div
24
+ transition:transition|global={transitionConfig}
25
+ {...builder} use:builder.action
26
+ {...$$restProps}
27
+ on:m-focusout
28
+ on:m-pointerdown
29
+ on:m-pointerenter
30
+ on:m-pointerleave
31
+ >
32
+ <slot {builder} />
33
+ </div>
34
+ {:else if inTransition && outTransition}
35
+ <div
36
+ in:inTransition|global={inTransitionConfig}
37
+ out:outTransition|global={outTransitionConfig}
38
+ {...builder} use:builder.action
39
+ {...$$restProps}
40
+ on:m-focusout
41
+ on:m-pointerdown
42
+ on:m-pointerenter
43
+ on:m-pointerleave
44
+ >
45
+ <slot {builder} />
46
+ </div>
47
+ {:else if inTransition}
48
+ <div
49
+ in:inTransition|global={inTransitionConfig}
50
+ {...builder} use:builder.action
51
+ {...$$restProps}
52
+ on:m-focusout
53
+ on:m-pointerdown
54
+ on:m-pointerenter
55
+ on:m-pointerleave
56
+ >
57
+ <slot {builder} />
58
+ </div>
59
+ {:else if outTransition}
60
+ <div
61
+ out:outTransition|global={outTransitionConfig}
20
62
  {...builder} use:builder.action
21
63
  {...$$restProps}
22
64
  on:m-focusout
23
65
  on:m-pointerdown
24
66
  on:m-pointerenter
25
67
  on:m-pointerleave
26
- transition:transition={transitionConfig}
27
68
  >
28
69
  <slot {builder} />
29
70
  </div>
@@ -1,9 +1,13 @@
1
1
  import { SvelteComponent } from "svelte";
2
2
  import type { Transition } from "../../../internal/index.js";
3
- declare class __sveltets_Render<T extends Transition> {
3
+ declare class __sveltets_Render<T extends Transition, In extends Transition, Out extends Transition> {
4
4
  props(): {
5
5
  transition?: T | undefined;
6
6
  transitionConfig?: import("../../../internal/index.js").TransitionParams<T> | undefined;
7
+ inTransition?: In | undefined;
8
+ inTransitionConfig?: import("../../../internal/index.js").TransitionParams<In> | undefined;
9
+ outTransition?: Out | undefined;
10
+ outTransitionConfig?: import("../../../internal/index.js").TransitionParams<Out> | undefined;
7
11
  asChild?: boolean | undefined;
8
12
  accesskey?: string | null | undefined;
9
13
  autofocus?: boolean | null | undefined;
@@ -226,9 +230,9 @@ declare class __sveltets_Render<T extends Transition> {
226
230
  };
227
231
  };
228
232
  }
229
- export type LinkPreviewContentProps<T extends Transition> = ReturnType<__sveltets_Render<T>['props']>;
230
- export type LinkPreviewContentEvents<T extends Transition> = ReturnType<__sveltets_Render<T>['events']>;
231
- export type LinkPreviewContentSlots<T extends Transition> = ReturnType<__sveltets_Render<T>['slots']>;
232
- export default class LinkPreviewContent<T extends Transition> extends SvelteComponent<LinkPreviewContentProps<T>, LinkPreviewContentEvents<T>, LinkPreviewContentSlots<T>> {
233
+ export type LinkPreviewContentProps<T extends Transition, In extends Transition, Out extends Transition> = ReturnType<__sveltets_Render<T, In, Out>['props']>;
234
+ export type LinkPreviewContentEvents<T extends Transition, In extends Transition, Out extends Transition> = ReturnType<__sveltets_Render<T, In, Out>['events']>;
235
+ export type LinkPreviewContentSlots<T extends Transition, In extends Transition, Out extends Transition> = ReturnType<__sveltets_Render<T, In, Out>['slots']>;
236
+ export default class LinkPreviewContent<T extends Transition, In extends Transition, Out extends Transition> extends SvelteComponent<LinkPreviewContentProps<T, In, Out>, LinkPreviewContentEvents<T, In, Out>, LinkPreviewContentSlots<T, In, Out>> {
233
237
  }
234
238
  export {};
@@ -1,4 +1,4 @@
1
- import type { OmitOpen, Expand, HTMLDivAttributes, OnChangeFn, Transition, TransitionParams, AsChild } from "../../internal/index.js";
1
+ import type { OmitOpen, Expand, HTMLDivAttributes, OnChangeFn, Transition, AsChild, TransitionProps } from "../../internal/index.js";
2
2
  import type { CreateLinkPreviewProps, LinkPreviewComponentEvents } from "@melt-ui/svelte";
3
3
  import type { HTMLAnchorAttributes } from "svelte/elements";
4
4
  type Props = Expand<OmitOpen<CreateLinkPreviewProps> & {
@@ -6,10 +6,7 @@ type Props = Expand<OmitOpen<CreateLinkPreviewProps> & {
6
6
  onOpenChange?: OnChangeFn<CreateLinkPreviewProps["defaultOpen"]>;
7
7
  }>;
8
8
  type TriggerProps = AsChild & HTMLAnchorAttributes;
9
- type ContentProps<T extends Transition = Transition> = Expand<{
10
- transition?: T;
11
- transitionConfig?: TransitionParams<T>;
12
- } & AsChild> & HTMLDivAttributes;
9
+ type ContentProps<T extends Transition = Transition, In extends Transition = Transition, Out extends Transition = Transition> = Expand<TransitionProps<T, In, Out> & AsChild> & HTMLDivAttributes;
13
10
  type ArrowProps = Expand<{
14
11
  size?: number;
15
12
  } & AsChild> & HTMLDivAttributes;