bits-ui 0.9.1 → 0.9.3

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 (85) hide show
  1. package/dist/bits/accordion/components/Accordion.svelte +3 -4
  2. package/dist/bits/accordion/components/Accordion.svelte.d.ts +0 -3
  3. package/dist/bits/accordion/ctx.d.ts +1 -1
  4. package/dist/bits/alert-dialog/components/AlertDialog.svelte +11 -32
  5. package/dist/bits/alert-dialog/components/AlertDialog.svelte.d.ts +7 -3
  6. package/dist/bits/alert-dialog/components/AlertDialogContent.svelte +12 -17
  7. package/dist/bits/alert-dialog/components/AlertDialogContent.svelte.d.ts +1 -1
  8. package/dist/bits/alert-dialog/components/AlertDialogDescription.svelte +7 -1
  9. package/dist/bits/alert-dialog/components/AlertDialogOverlay.svelte +7 -7
  10. package/dist/bits/alert-dialog/components/AlertDialogTitle.svelte +7 -1
  11. package/dist/bits/alert-dialog/components/AlertDialogTrigger.svelte.d.ts +0 -1
  12. package/dist/bits/alert-dialog/ctx.d.ts +17 -21
  13. package/dist/bits/alert-dialog/ctx.js +1 -5
  14. package/dist/bits/context-menu/components/ContextMenu.svelte.d.ts +6 -2
  15. package/dist/bits/context-menu/components/ContextMenuContent.svelte +7 -1
  16. package/dist/bits/context-menu/components/ContextMenuSub.svelte.d.ts +6 -2
  17. package/dist/bits/context-menu/components/ContextMenuSubContent.svelte +7 -1
  18. package/dist/bits/context-menu/components/ContextMenuSubTrigger.svelte +7 -1
  19. package/dist/bits/context-menu/components/ContextMenuTrigger.svelte +7 -1
  20. package/dist/bits/context-menu/components/ContextMenuTrigger.svelte.d.ts +1 -0
  21. package/dist/bits/context-menu/ctx.d.ts +37 -36
  22. package/dist/bits/dialog/components/Dialog.svelte +11 -35
  23. package/dist/bits/dialog/components/Dialog.svelte.d.ts +8 -4
  24. package/dist/bits/dialog/components/DialogContent.svelte +12 -17
  25. package/dist/bits/dialog/components/DialogContent.svelte.d.ts +1 -1
  26. package/dist/bits/dialog/components/DialogDescription.svelte +7 -1
  27. package/dist/bits/dialog/components/DialogOverlay.svelte +7 -7
  28. package/dist/bits/dialog/components/DialogTitle.svelte +7 -1
  29. package/dist/bits/dialog/components/DialogTrigger.svelte.d.ts +0 -1
  30. package/dist/bits/dialog/ctx.d.ts +17 -21
  31. package/dist/bits/dialog/ctx.js +1 -5
  32. package/dist/bits/dropdown-menu/components/DropdownMenu.svelte +6 -1
  33. package/dist/bits/dropdown-menu/components/DropdownMenu.svelte.d.ts +4 -0
  34. package/dist/bits/dropdown-menu/components/DropdownMenuContent.svelte +7 -1
  35. package/dist/bits/dropdown-menu/components/DropdownMenuSub.svelte +7 -2
  36. package/dist/bits/dropdown-menu/components/DropdownMenuSub.svelte.d.ts +4 -0
  37. package/dist/bits/dropdown-menu/components/DropdownMenuSubContent.svelte +7 -1
  38. package/dist/bits/dropdown-menu/components/DropdownMenuSubTrigger.svelte +7 -1
  39. package/dist/bits/dropdown-menu/components/DropdownMenuTrigger.svelte +7 -1
  40. package/dist/bits/dropdown-menu/ctx.d.ts +35 -35
  41. package/dist/bits/link-preview/components/LinkPreview.svelte +7 -2
  42. package/dist/bits/link-preview/components/LinkPreview.svelte.d.ts +4 -0
  43. package/dist/bits/link-preview/components/LinkPreviewContent.svelte +7 -1
  44. package/dist/bits/link-preview/components/LinkPreviewTrigger.svelte +7 -1
  45. package/dist/bits/link-preview/ctx.d.ts +12 -12
  46. package/dist/bits/menubar/components/Menubar.svelte +11 -2
  47. package/dist/bits/menubar/components/Menubar.svelte.d.ts +3 -0
  48. package/dist/bits/menubar/components/MenubarContent.svelte +7 -1
  49. package/dist/bits/menubar/components/MenubarMenu.svelte +7 -2
  50. package/dist/bits/menubar/components/MenubarMenu.svelte.d.ts +6 -1
  51. package/dist/bits/menubar/components/MenubarSub.svelte +7 -2
  52. package/dist/bits/menubar/components/MenubarSub.svelte.d.ts +4 -0
  53. package/dist/bits/menubar/components/MenubarSubContent.svelte +7 -1
  54. package/dist/bits/menubar/components/MenubarSubTrigger.svelte +7 -1
  55. package/dist/bits/menubar/components/MenubarTrigger.svelte +7 -1
  56. package/dist/bits/menubar/ctx.d.ts +52 -42
  57. package/dist/bits/popover/components/Popover.svelte +6 -1
  58. package/dist/bits/popover/components/Popover.svelte.d.ts +5 -1
  59. package/dist/bits/popover/components/PopoverContent.svelte +7 -1
  60. package/dist/bits/popover/components/PopoverTrigger.svelte +7 -1
  61. package/dist/bits/popover/ctx.d.ts +7 -7
  62. package/dist/bits/select/components/Select.svelte +11 -2
  63. package/dist/bits/select/components/Select.svelte.d.ts +6 -1
  64. package/dist/bits/select/components/SelectContent.svelte +7 -1
  65. package/dist/bits/select/components/SelectLabel.svelte +9 -3
  66. package/dist/bits/select/components/SelectTrigger.svelte +7 -1
  67. package/dist/bits/select/components/SelectTrigger.svelte.d.ts +0 -1
  68. package/dist/bits/select/ctx.d.ts +6 -7
  69. package/dist/bits/slider/components/Slider.svelte +3 -4
  70. package/dist/bits/slider/components/Slider.svelte.d.ts +0 -3
  71. package/dist/bits/slider/components/SliderInput.svelte.d.ts +1 -1
  72. package/dist/bits/slider/components/SliderThumb.svelte +1 -1
  73. package/dist/bits/slider/components/SliderThumb.svelte.d.ts +1 -0
  74. package/dist/bits/slider/ctx.d.ts +0 -3
  75. package/dist/bits/tooltip/components/Tooltip.svelte +7 -2
  76. package/dist/bits/tooltip/components/Tooltip.svelte.d.ts +6 -2
  77. package/dist/bits/tooltip/components/TooltipContent.svelte +7 -1
  78. package/dist/bits/tooltip/components/TooltipTrigger.svelte +7 -1
  79. package/dist/bits/tooltip/ctx.d.ts +4 -4
  80. package/dist/internal/attrs.d.ts +1 -1
  81. package/dist/internal/index.d.ts +0 -1
  82. package/dist/internal/index.js +0 -1
  83. package/package.json +13 -13
  84. package/dist/internal/transition.d.ts +0 -11
  85. package/dist/internal/transition.js +0 -55
@@ -8,11 +8,17 @@ export let inTransitionConfig = void 0;
8
8
  export let outTransition = void 0;
9
9
  export let outTransitionConfig = void 0;
10
10
  export let asChild = false;
11
+ export let id = void 0;
11
12
  const {
12
13
  elements: { subMenu },
13
- states: { subOpen }
14
+ states: { subOpen },
15
+ ids
14
16
  } = getSubContent();
15
17
  const dispatch = createDispatcher();
18
+ $:
19
+ if (id) {
20
+ ids.menu.set(id);
21
+ }
16
22
  $:
17
23
  builder = $subMenu;
18
24
  const attrs = getAttrs("sub-content");
@@ -4,10 +4,16 @@ import { getSubTrigger, getAttrs } from "../ctx.js";
4
4
  import { createDispatcher } from "../../../internal/events.js";
5
5
  export let disabled = false;
6
6
  export let asChild = false;
7
+ export let id = void 0;
7
8
  const {
8
- elements: { subTrigger }
9
+ elements: { subTrigger },
10
+ ids
9
11
  } = getSubTrigger();
10
12
  const dispatch = createDispatcher();
13
+ $:
14
+ if (id) {
15
+ ids.trigger.set(id);
16
+ }
11
17
  $:
12
18
  builder = $subTrigger;
13
19
  $:
@@ -2,10 +2,16 @@
2
2
  import { getCtx, getAttrs } from "../ctx.js";
3
3
  import { createDispatcher } from "../../../internal/events.js";
4
4
  export let asChild = false;
5
+ export let id = void 0;
5
6
  const {
6
- elements: { trigger }
7
+ elements: { trigger },
8
+ ids
7
9
  } = getCtx();
8
10
  const dispatch = createDispatcher();
11
+ $:
12
+ if (id) {
13
+ ids.trigger.set(id);
14
+ }
9
15
  $:
10
16
  builder = $trigger;
11
17
  const attrs = getAttrs("trigger");
@@ -6,18 +6,18 @@ export declare function getCtx(): DropdownMenuReturn;
6
6
  export declare function setCtx(props: CreateDropdownMenuProps): {
7
7
  updateOption: <K extends string, V extends unknown>(key: K, value: V | undefined) => void;
8
8
  ids: {
9
- menu: string;
10
- trigger: string;
9
+ menu: import("svelte/store").Writable<string>;
10
+ trigger: import("svelte/store").Writable<string>;
11
11
  };
12
12
  elements: {
13
- trigger: import("@melt-ui/svelte/internal/helpers").ExplicitBuilderReturn<[import("svelte/store").Writable<boolean>], (node: HTMLElement) => import("@melt-ui/svelte/internal/types").MeltActionReturn<"keydown" | "pointerdown">, ([$rootOpen]: [boolean]) => {
13
+ trigger: import("@melt-ui/svelte/internal/helpers").ExplicitBuilderReturn<[import("svelte/store").Writable<boolean>, import("svelte/store").Writable<string>, import("svelte/store").Writable<string>], (node: HTMLElement) => import("@melt-ui/svelte/internal/types").MeltActionReturn<"keydown" | "pointerdown">, ([$rootOpen, $rootMenuId, $rootTriggerId]: [boolean, string, string]) => {
14
14
  readonly 'aria-controls': string;
15
15
  readonly 'aria-expanded': boolean;
16
16
  readonly 'data-state': "open" | "closed";
17
17
  readonly id: string;
18
18
  readonly tabindex: 0;
19
19
  }, string>;
20
- menu: import("@melt-ui/svelte/internal/helpers").ExplicitBuilderReturn<[Readable<boolean>, import("svelte/store").Writable<string | HTMLElement | null | undefined>], (node: HTMLElement) => import("@melt-ui/svelte/internal/types").MeltActionReturn<"keydown">, ([$isVisible, $portal]: [boolean, string | HTMLElement | null | undefined]) => {
20
+ menu: import("@melt-ui/svelte/internal/helpers").ExplicitBuilderReturn<[Readable<boolean>, import("svelte/store").Writable<string | HTMLElement | null | undefined>, import("svelte/store").Writable<string>, import("svelte/store").Writable<string>], (node: HTMLElement) => import("@melt-ui/svelte/internal/types").MeltActionReturn<"keydown">, ([$isVisible, $portal, $rootMenuId, $rootTriggerId]: [boolean, string | HTMLElement | null | undefined, string, string]) => {
21
21
  readonly role: "menu";
22
22
  readonly hidden: true | undefined;
23
23
  readonly style: string;
@@ -86,15 +86,15 @@ export declare function setCtx(props: CreateDropdownMenuProps): {
86
86
  };
87
87
  createSubmenu: (args?: import("@melt-ui/svelte/dist/builders/menu")._CreateSubmenuProps | undefined) => {
88
88
  ids: {
89
- menu: string;
90
- trigger: string;
89
+ menu: import("svelte/store").Writable<string>;
90
+ trigger: import("svelte/store").Writable<string>;
91
91
  };
92
92
  elements: {
93
93
  subTrigger: import("@melt-ui/svelte/internal/helpers").ExplicitBuilderReturn<[{
94
94
  update: (updater: import("svelte/store").Updater<boolean>, sideEffect?: ((newValue: boolean) => void) | undefined) => void;
95
95
  set: (this: void, value: boolean) => void;
96
96
  subscribe(this: void, run: import("svelte/store").Subscriber<boolean>, invalidate?: import("svelte/store").Invalidator<boolean> | undefined): import("svelte/store").Unsubscriber;
97
- }, import("svelte/store").Writable<boolean>], (node: HTMLElement) => import("@melt-ui/svelte/internal/types").MeltActionReturn<"keydown" | "click" | "focusin" | "focusout" | "pointerleave" | "pointermove">, ([$subOpen, $disabled]: [boolean, boolean]) => {
97
+ }, import("svelte/store").Writable<boolean>, import("svelte/store").Writable<string>, import("svelte/store").Writable<string>], (node: HTMLElement) => import("@melt-ui/svelte/internal/types").MeltActionReturn<"keydown" | "click" | "focusin" | "focusout" | "pointerleave" | "pointermove">, ([$subOpen, $disabled, $subMenuId, $subTriggerId]: [boolean, boolean, string, string]) => {
98
98
  readonly role: "menuitem";
99
99
  readonly id: string;
100
100
  readonly tabindex: -1;
@@ -104,7 +104,7 @@ export declare function setCtx(props: CreateDropdownMenuProps): {
104
104
  readonly 'data-disabled': true | undefined;
105
105
  readonly 'aria-haspopop': "menu";
106
106
  }, string>;
107
- subMenu: import("@melt-ui/svelte/internal/helpers").ExplicitBuilderReturn<[Readable<boolean>], (node: HTMLElement) => import("@melt-ui/svelte/internal/types").MeltActionReturn<"keydown" | "focusout" | "pointermove">, ([$subIsVisible]: [boolean]) => {
107
+ subMenu: import("@melt-ui/svelte/internal/helpers").ExplicitBuilderReturn<[Readable<boolean>, import("svelte/store").Writable<string>, import("svelte/store").Writable<string>], (node: HTMLElement) => import("@melt-ui/svelte/internal/types").MeltActionReturn<"keydown" | "focusout" | "pointermove">, ([$subIsVisible, $subMenuId, $subTriggerId]: [boolean, string, string]) => {
108
108
  readonly role: "menu";
109
109
  readonly hidden: true | undefined;
110
110
  readonly style: string;
@@ -127,21 +127,21 @@ export declare function setCtx(props: CreateDropdownMenuProps): {
127
127
  };
128
128
  };
129
129
  options: {
130
+ dir: import("svelte/store").Writable<"ltr">;
131
+ disabled: import("svelte/store").Writable<boolean>;
130
132
  open?: import("svelte/store").Writable<import("svelte/store").Writable<boolean> | undefined> | undefined;
133
+ defaultOpen: import("svelte/store").Writable<false>;
131
134
  onOpenChange?: import("svelte/store").Writable<import("@melt-ui/svelte/internal/helpers").ChangeFn<boolean> | undefined> | undefined;
135
+ preventScroll: import("svelte/store").Writable<true>;
136
+ portal: import("svelte/store").Writable<string>;
132
137
  positioning: import("svelte/store").Writable<import("@melt-ui/svelte/internal/actions").FloatingConfig | {
133
138
  placement: "right-start";
134
139
  gutter: number;
135
140
  }>;
136
141
  arrowSize: import("svelte/store").Writable<number>;
137
- disabled: import("svelte/store").Writable<boolean>;
138
- preventScroll: import("svelte/store").Writable<true>;
139
- closeOnEscape: import("svelte/store").Writable<true>;
140
- closeOnOutsideClick: import("svelte/store").Writable<true>;
141
- portal: import("svelte/store").Writable<string>;
142
142
  loop: import("svelte/store").Writable<false>;
143
- dir: import("svelte/store").Writable<"ltr">;
144
- defaultOpen: import("svelte/store").Writable<false>;
143
+ closeOnOutsideClick: import("svelte/store").Writable<true>;
144
+ closeOnEscape: import("svelte/store").Writable<true>;
145
145
  typeahead: import("svelte/store").Writable<true>;
146
146
  };
147
147
  };
@@ -178,20 +178,20 @@ export declare function setCtx(props: CreateDropdownMenuProps): {
178
178
  };
179
179
  };
180
180
  options: {
181
+ dir: import("svelte/store").Writable<import("@melt-ui/svelte/internal/types").TextDirection>;
182
+ open?: import("svelte/store").Writable<import("svelte/store").Writable<boolean> | undefined> | undefined;
183
+ forceVisible: import("svelte/store").Writable<boolean>;
184
+ defaultOpen: import("svelte/store").Writable<boolean>;
185
+ onOpenChange?: import("svelte/store").Writable<import("@melt-ui/svelte/internal/helpers").ChangeFn<boolean> | undefined> | undefined;
186
+ preventScroll: import("svelte/store").Writable<boolean>;
187
+ portal: import("svelte/store").Writable<string | HTMLElement | null | undefined>;
181
188
  positioning: import("svelte/store").Writable<import("@melt-ui/svelte/internal/actions").FloatingConfig | {
182
189
  placement: "bottom";
183
190
  }>;
184
191
  arrowSize: import("svelte/store").Writable<number>;
185
- dir: import("svelte/store").Writable<import("@melt-ui/svelte/internal/types").TextDirection>;
186
- preventScroll: import("svelte/store").Writable<boolean>;
187
- closeOnEscape: import("svelte/store").Writable<boolean>;
188
- portal: import("svelte/store").Writable<string | HTMLElement | null | undefined>;
189
- closeOnOutsideClick: import("svelte/store").Writable<boolean>;
190
192
  loop: import("svelte/store").Writable<boolean>;
191
- defaultOpen: import("svelte/store").Writable<boolean>;
192
- open?: import("svelte/store").Writable<import("svelte/store").Writable<boolean> | undefined> | undefined;
193
- onOpenChange?: import("svelte/store").Writable<import("@melt-ui/svelte/internal/helpers").ChangeFn<boolean> | undefined> | undefined;
194
- forceVisible: import("svelte/store").Writable<boolean>;
193
+ closeOnOutsideClick: import("svelte/store").Writable<boolean>;
194
+ closeOnEscape: import("svelte/store").Writable<boolean>;
195
195
  typeahead: import("svelte/store").Writable<boolean>;
196
196
  closeFocus: import("svelte/store").Writable<import("@melt-ui/svelte").FocusProp | undefined>;
197
197
  disableFocusFirstItem: import("svelte/store").Writable<boolean>;
@@ -200,15 +200,15 @@ export declare function setCtx(props: CreateDropdownMenuProps): {
200
200
  export declare function setSubMenuCtx(props: DropdownSubmenuProps): {
201
201
  updateOption: <K extends string, V extends unknown>(key: K, value: V | undefined) => void;
202
202
  ids: {
203
- menu: string;
204
- trigger: string;
203
+ menu: import("svelte/store").Writable<string>;
204
+ trigger: import("svelte/store").Writable<string>;
205
205
  };
206
206
  elements: {
207
207
  subTrigger: import("@melt-ui/svelte/internal/helpers").ExplicitBuilderReturn<[{
208
208
  update: (updater: import("svelte/store").Updater<boolean>, sideEffect?: ((newValue: boolean) => void) | undefined) => void;
209
209
  set: (this: void, value: boolean) => void;
210
210
  subscribe(this: void, run: import("svelte/store").Subscriber<boolean>, invalidate?: import("svelte/store").Invalidator<boolean> | undefined): import("svelte/store").Unsubscriber;
211
- }, import("svelte/store").Writable<boolean>], (node: HTMLElement) => import("@melt-ui/svelte/internal/types").MeltActionReturn<"keydown" | "click" | "focusin" | "focusout" | "pointerleave" | "pointermove">, ([$subOpen, $disabled]: [boolean, boolean]) => {
211
+ }, import("svelte/store").Writable<boolean>, import("svelte/store").Writable<string>, import("svelte/store").Writable<string>], (node: HTMLElement) => import("@melt-ui/svelte/internal/types").MeltActionReturn<"keydown" | "click" | "focusin" | "focusout" | "pointerleave" | "pointermove">, ([$subOpen, $disabled, $subMenuId, $subTriggerId]: [boolean, boolean, string, string]) => {
212
212
  readonly role: "menuitem";
213
213
  readonly id: string;
214
214
  readonly tabindex: -1;
@@ -218,7 +218,7 @@ export declare function setSubMenuCtx(props: DropdownSubmenuProps): {
218
218
  readonly 'data-disabled': true | undefined;
219
219
  readonly 'aria-haspopop': "menu";
220
220
  }, string>;
221
- subMenu: import("@melt-ui/svelte/internal/helpers").ExplicitBuilderReturn<[Readable<boolean>], (node: HTMLElement) => import("@melt-ui/svelte/internal/types").MeltActionReturn<"keydown" | "focusout" | "pointermove">, ([$subIsVisible]: [boolean]) => {
221
+ subMenu: import("@melt-ui/svelte/internal/helpers").ExplicitBuilderReturn<[Readable<boolean>, import("svelte/store").Writable<string>, import("svelte/store").Writable<string>], (node: HTMLElement) => import("@melt-ui/svelte/internal/types").MeltActionReturn<"keydown" | "focusout" | "pointermove">, ([$subIsVisible, $subMenuId, $subTriggerId]: [boolean, string, string]) => {
222
222
  readonly role: "menu";
223
223
  readonly hidden: true | undefined;
224
224
  readonly style: string;
@@ -241,21 +241,21 @@ export declare function setSubMenuCtx(props: DropdownSubmenuProps): {
241
241
  };
242
242
  };
243
243
  options: {
244
+ dir: import("svelte/store").Writable<"ltr">;
245
+ disabled: import("svelte/store").Writable<boolean>;
244
246
  open?: import("svelte/store").Writable<import("svelte/store").Writable<boolean> | undefined> | undefined;
247
+ defaultOpen: import("svelte/store").Writable<false>;
245
248
  onOpenChange?: import("svelte/store").Writable<import("@melt-ui/svelte/internal/helpers").ChangeFn<boolean> | undefined> | undefined;
249
+ preventScroll: import("svelte/store").Writable<true>;
250
+ portal: import("svelte/store").Writable<string>;
246
251
  positioning: import("svelte/store").Writable<import("@melt-ui/svelte/internal/actions").FloatingConfig | {
247
252
  placement: "right-start";
248
253
  gutter: number;
249
254
  }>;
250
255
  arrowSize: import("svelte/store").Writable<number>;
251
- disabled: import("svelte/store").Writable<boolean>;
252
- preventScroll: import("svelte/store").Writable<true>;
253
- closeOnEscape: import("svelte/store").Writable<true>;
254
- closeOnOutsideClick: import("svelte/store").Writable<true>;
255
- portal: import("svelte/store").Writable<string>;
256
256
  loop: import("svelte/store").Writable<false>;
257
- dir: import("svelte/store").Writable<"ltr">;
258
- defaultOpen: import("svelte/store").Writable<false>;
257
+ closeOnOutsideClick: import("svelte/store").Writable<true>;
258
+ closeOnEscape: import("svelte/store").Writable<true>;
259
259
  typeahead: import("svelte/store").Writable<true>;
260
260
  };
261
261
  };
@@ -1,4 +1,5 @@
1
- <script>import { setCtx } from "../ctx.js";
1
+ <script>import { derived } from "svelte/store";
2
+ import { setCtx } from "../ctx.js";
2
3
  export let positioning = void 0;
3
4
  export let open = void 0;
4
5
  export let onOpenChange = void 0;
@@ -29,6 +30,10 @@ const {
29
30
  return next;
30
31
  }
31
32
  });
33
+ const idValues = derived([ids.content, ids.trigger], ([$contentId, $triggerId]) => ({
34
+ content: $contentId,
35
+ trigger: $triggerId
36
+ }));
32
37
  $:
33
38
  open !== void 0 && localOpen.set(open);
34
39
  $:
@@ -47,4 +52,4 @@ $:
47
52
  updateOption("portal", portal);
48
53
  </script>
49
54
 
50
- <slot {ids} />
55
+ <slot ids={$idValues} />
@@ -8,6 +8,10 @@ declare const __propDef: {
8
8
  openDelay?: number | undefined;
9
9
  closeDelay?: number | undefined;
10
10
  forceVisible?: boolean | undefined;
11
+ ids?: {
12
+ content: string;
13
+ trigger: string;
14
+ } | undefined;
11
15
  portal?: string | HTMLElement | null | undefined;
12
16
  open?: boolean | undefined;
13
17
  onOpenChange?: import("../../../internal/types.js").OnChangeFn<boolean> | undefined;
@@ -8,10 +8,16 @@ export let inTransitionConfig = void 0;
8
8
  export let outTransition = void 0;
9
9
  export let outTransitionConfig = void 0;
10
10
  export let asChild = false;
11
+ export let id = void 0;
11
12
  const {
12
13
  elements: { content },
13
- states: { open }
14
+ states: { open },
15
+ ids
14
16
  } = getCtx();
17
+ $:
18
+ if (id) {
19
+ ids.content.set(id);
20
+ }
15
21
  $:
16
22
  builder = $content;
17
23
  const attrs = getAttrs("content");
@@ -2,10 +2,16 @@
2
2
  import { getCtx, getAttrs } from "../ctx.js";
3
3
  import { createDispatcher } from "../../../internal/events.js";
4
4
  export let asChild = false;
5
+ export let id = void 0;
5
6
  const {
6
- elements: { trigger }
7
+ elements: { trigger },
8
+ ids
7
9
  } = getCtx();
8
10
  const dispatch = createDispatcher();
11
+ $:
12
+ if (id) {
13
+ ids.trigger.set(id);
14
+ }
9
15
  $:
10
16
  builder = $trigger;
11
17
  const attrs = getAttrs("trigger");
@@ -5,15 +5,15 @@ export declare function getCtx(): LinkPreviewReturn;
5
5
  export declare function setCtx(props: CreateLinkPreviewProps): {
6
6
  updateOption: <K extends string, V extends unknown>(key: K, value: V | undefined) => void;
7
7
  ids: {
8
- content: string;
9
- trigger: string;
8
+ content: import("svelte/store").Writable<string>;
9
+ trigger: import("svelte/store").Writable<string>;
10
10
  };
11
11
  elements: {
12
12
  trigger: import("@melt-ui/svelte/internal/helpers").ExplicitBuilderReturn<[{
13
13
  update: (updater: import("svelte/store").Updater<boolean>, sideEffect?: ((newValue: boolean) => void) | undefined) => void;
14
14
  set: (this: void, value: boolean) => void;
15
15
  subscribe(this: void, run: import("svelte/store").Subscriber<boolean>, invalidate?: import("svelte/store").Invalidator<boolean> | undefined): import("svelte/store").Unsubscriber;
16
- }], (node: HTMLElement) => import("@melt-ui/svelte/internal/types").MeltActionReturn<"blur" | "focus" | "pointerenter" | "pointerleave">, ([$open]: [boolean]) => {
16
+ }, import("svelte/store").Writable<string>, import("svelte/store").Writable<string>], (node: HTMLElement) => import("@melt-ui/svelte/internal/types").MeltActionReturn<"blur" | "focus" | "pointerenter" | "pointerleave">, ([$open, $triggerId, $contentId]: [boolean, string, string]) => {
17
17
  role: "button";
18
18
  'aria-haspopup': "dialog";
19
19
  'aria-expanded': boolean;
@@ -21,7 +21,7 @@ export declare function setCtx(props: CreateLinkPreviewProps): {
21
21
  'aria-controls': string;
22
22
  id: string;
23
23
  }, string>;
24
- content: import("@melt-ui/svelte/internal/helpers").ExplicitBuilderReturn<[import("svelte/store").Readable<boolean>, import("svelte/store").Writable<string | HTMLElement | null>], (node: HTMLElement) => import("@melt-ui/svelte/internal/types").MeltActionReturn<"focusout" | "pointerdown" | "pointerenter" | "pointerleave">, ([$isVisible, $portal]: [boolean, string | HTMLElement | null]) => {
24
+ content: import("@melt-ui/svelte/internal/helpers").ExplicitBuilderReturn<[import("svelte/store").Readable<boolean>, import("svelte/store").Writable<string | HTMLElement | null>, import("svelte/store").Writable<string>], (node: HTMLElement) => import("@melt-ui/svelte/internal/types").MeltActionReturn<"focusout" | "pointerdown" | "pointerenter" | "pointerleave">, ([$isVisible, $portal, $contentId]: [boolean, string | HTMLElement | null, string]) => {
25
25
  hidden: boolean | undefined;
26
26
  tabindex: number;
27
27
  style: string;
@@ -42,19 +42,19 @@ export declare function setCtx(props: CreateLinkPreviewProps): {
42
42
  };
43
43
  };
44
44
  options: {
45
+ open?: import("svelte/store").Writable<import("svelte/store").Writable<boolean> | undefined> | undefined;
46
+ forceVisible: import("svelte/store").Writable<boolean>;
47
+ defaultOpen: import("svelte/store").Writable<boolean>;
48
+ onOpenChange?: import("svelte/store").Writable<import("@melt-ui/svelte/internal/helpers").ChangeFn<boolean> | undefined> | undefined;
49
+ portal: import("svelte/store").Writable<string | HTMLElement | null>;
45
50
  positioning: import("svelte/store").Writable<import("@melt-ui/svelte/internal/actions").FloatingConfig | {
46
51
  placement: "bottom";
47
52
  }>;
48
- defaultOpen: import("svelte/store").Writable<boolean>;
49
- open?: import("svelte/store").Writable<import("svelte/store").Writable<boolean> | undefined> | undefined;
50
- onOpenChange?: import("svelte/store").Writable<import("@melt-ui/svelte/internal/helpers").ChangeFn<boolean> | undefined> | undefined;
51
- openDelay: import("svelte/store").Writable<number>;
52
- closeDelay: import("svelte/store").Writable<number>;
53
+ arrowSize: import("svelte/store").Writable<number>;
53
54
  closeOnOutsideClick: import("svelte/store").Writable<boolean>;
54
55
  closeOnEscape: import("svelte/store").Writable<boolean>;
55
- arrowSize: import("svelte/store").Writable<number>;
56
- forceVisible: import("svelte/store").Writable<boolean>;
57
- portal: import("svelte/store").Writable<string | HTMLElement | null>;
56
+ openDelay: import("svelte/store").Writable<number>;
57
+ closeDelay: import("svelte/store").Writable<number>;
58
58
  };
59
59
  };
60
60
  export declare function setArrow(size?: number): LinkPreviewReturn;
@@ -1,13 +1,22 @@
1
1
  <script>import { melt } from "@melt-ui/svelte";
2
2
  import { setCtx, getAttrs } from "../ctx.js";
3
+ import { derived } from "svelte/store";
3
4
  export let loop = true;
4
5
  export let closeOnEscape = true;
5
6
  export let asChild = false;
7
+ export let id = void 0;
6
8
  const {
7
9
  elements: { menubar },
8
10
  updateOption,
9
11
  ids
10
12
  } = setCtx({ loop, closeOnEscape });
13
+ const idValues = derived([ids.menubar], ([$menubarId]) => ({
14
+ menubar: $menubarId
15
+ }));
16
+ $:
17
+ if (id) {
18
+ ids.menubar.set(id);
19
+ }
11
20
  $:
12
21
  updateOption("loop", loop);
13
22
  $:
@@ -18,9 +27,9 @@ const attrs = getAttrs("root");
18
27
  </script>
19
28
 
20
29
  {#if asChild}
21
- <slot {builder} {attrs} {ids} />
30
+ <slot {builder} {attrs} ids={$idValues} />
22
31
  {:else}
23
32
  <div {...builder} use:builder.action {...$$restProps} {...attrs}>
24
- <slot {builder} {attrs} {ids} />
33
+ <slot {builder} {attrs} ids={$idValues} />
25
34
  </div>
26
35
  {/if}
@@ -3,6 +3,9 @@ declare const __propDef: {
3
3
  props: {
4
4
  loop?: boolean | undefined;
5
5
  closeOnEscape?: boolean | undefined;
6
+ ids?: {
7
+ menubar: string;
8
+ } | undefined;
6
9
  asChild?: boolean | undefined;
7
10
  accesskey?: string | null | undefined;
8
11
  autofocus?: boolean | null | undefined;
@@ -9,11 +9,17 @@ export let inTransitionConfig = void 0;
9
9
  export let outTransition = void 0;
10
10
  export let outTransitionConfig = void 0;
11
11
  export let asChild = false;
12
+ export let id = void 0;
12
13
  const {
13
14
  elements: { menu },
14
- states: { open }
15
+ states: { open },
16
+ ids
15
17
  } = getContent(sideOffset);
16
18
  const dispatch = createDispatcher();
19
+ $:
20
+ if (id) {
21
+ ids.menu.set(id);
22
+ }
17
23
  $:
18
24
  builder = $menu;
19
25
  const attrs = getAttrs("content");
@@ -1,4 +1,5 @@
1
1
  <script>import { setMenuCtx } from "../ctx.js";
2
+ import { generateId } from "../../../internal/id.js";
2
3
  export let closeOnOutsideClick = void 0;
3
4
  export let closeOnEscape = void 0;
4
5
  export let portal = void 0;
@@ -12,12 +13,16 @@ export let dir = void 0;
12
13
  export let typeahead = void 0;
13
14
  export let closeFocus = void 0;
14
15
  export let disableFocusFirstItem = void 0;
16
+ const ids = {
17
+ menu: generateId(),
18
+ trigger: generateId()
19
+ };
15
20
  const {
16
21
  states: { open: localOpen },
17
- updateOption,
18
- ids
22
+ updateOption
19
23
  } = setMenuCtx({
20
24
  closeOnOutsideClick,
25
+ ids,
21
26
  closeOnEscape,
22
27
  portal,
23
28
  preventScroll,
@@ -8,6 +8,10 @@ declare const __propDef: {
8
8
  positioning?: import("@melt-ui/svelte/internal/actions").FloatingConfig | undefined;
9
9
  arrowSize?: number | undefined;
10
10
  forceVisible?: boolean | undefined;
11
+ ids?: {
12
+ trigger: string;
13
+ menu: string;
14
+ } | undefined;
11
15
  portal?: string | HTMLElement | null | undefined;
12
16
  closeFocus?: import("@melt-ui/svelte/index.js").FocusProp | undefined;
13
17
  dir?: import("@melt-ui/svelte/internal/types").TextDirection | undefined;
@@ -22,7 +26,8 @@ declare const __propDef: {
22
26
  slots: {
23
27
  default: {
24
28
  menuIds: {
25
- menubar: string;
29
+ menu: string;
30
+ trigger: string;
26
31
  };
27
32
  };
28
33
  };
@@ -1,4 +1,5 @@
1
- <script>import { setSubMenuCtx } from "../ctx.js";
1
+ <script>import { derived } from "svelte/store";
2
+ import { setSubMenuCtx } from "../ctx.js";
2
3
  export let positioning = void 0;
3
4
  export let disabled = void 0;
4
5
  export let arrowSize = void 0;
@@ -7,6 +8,10 @@ const { updateOption, ids } = setSubMenuCtx({
7
8
  disabled,
8
9
  arrowSize
9
10
  });
11
+ const idValues = derived([ids.menu, ids.trigger], ([$menuId, $triggerId]) => ({
12
+ menu: $menuId,
13
+ trigger: $triggerId
14
+ }));
10
15
  $:
11
16
  updateOption("positioning", positioning);
12
17
  $:
@@ -15,4 +20,4 @@ $:
15
20
  updateOption("arrowSize", arrowSize);
16
21
  </script>
17
22
 
18
- <slot subIds={ids} />
23
+ <slot subIds={$idValues} />
@@ -5,6 +5,10 @@ declare const __propDef: {
5
5
  onOpenChange?: import("@melt-ui/svelte/internal/helpers").ChangeFn<boolean> | undefined;
6
6
  positioning?: import("@melt-ui/svelte/internal/actions").FloatingConfig | undefined;
7
7
  arrowSize?: number | undefined;
8
+ ids?: {
9
+ trigger: string;
10
+ menu: string;
11
+ } | undefined;
8
12
  disabled?: boolean | undefined;
9
13
  };
10
14
  events: {
@@ -8,11 +8,17 @@ export let inTransitionConfig = void 0;
8
8
  export let outTransition = void 0;
9
9
  export let outTransitionConfig = void 0;
10
10
  export let asChild = false;
11
+ export let id = void 0;
11
12
  const {
12
13
  elements: { subMenu },
13
- states: { subOpen }
14
+ states: { subOpen },
15
+ ids
14
16
  } = getSubMenuCtx();
15
17
  const dispatch = createDispatcher();
18
+ $:
19
+ if (id) {
20
+ ids.menu.set(id);
21
+ }
16
22
  $:
17
23
  builder = $subMenu;
18
24
  const attrs = getAttrs("sub-content");
@@ -4,10 +4,16 @@ import { getSubMenuCtx, getAttrs } from "../ctx.js";
4
4
  import { createDispatcher } from "../../../internal/events.js";
5
5
  export let disabled = false;
6
6
  export let asChild = false;
7
+ export let id = void 0;
7
8
  const {
8
- elements: { subTrigger }
9
+ elements: { subTrigger },
10
+ ids
9
11
  } = getSubMenuCtx();
10
12
  const dispatch = createDispatcher();
13
+ $:
14
+ if (id) {
15
+ ids.trigger.set(id);
16
+ }
11
17
  $:
12
18
  builder = $subTrigger;
13
19
  $:
@@ -2,10 +2,16 @@
2
2
  import { getMenuCtx, getAttrs } from "../ctx.js";
3
3
  import { createDispatcher } from "../../../internal/events.js";
4
4
  export let asChild = false;
5
+ export let id = void 0;
5
6
  const {
6
- elements: { trigger }
7
+ elements: { trigger },
8
+ ids
7
9
  } = getMenuCtx();
8
10
  const dispatch = createDispatcher();
11
+ $:
12
+ if (id) {
13
+ ids.trigger.set(id);
14
+ }
9
15
  $:
10
16
  builder = $trigger;
11
17
  const attrs = getAttrs("trigger");