bits-ui 0.0.32 → 0.5.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 (155) hide show
  1. package/dist/bits/accordion/components/Accordion.svelte +5 -3
  2. package/dist/bits/accordion/components/AccordionContent.svelte +32 -11
  3. package/dist/bits/accordion/components/AccordionContent.svelte.d.ts +9 -5
  4. package/dist/bits/accordion/components/AccordionTrigger.svelte +3 -1
  5. package/dist/bits/accordion/types.d.ts +5 -8
  6. package/dist/bits/alert-dialog/components/AlertDialog.svelte +36 -4
  7. package/dist/bits/alert-dialog/components/AlertDialogAction.svelte +6 -2
  8. package/dist/bits/alert-dialog/components/AlertDialogAction.svelte.d.ts +2 -1
  9. package/dist/bits/alert-dialog/components/AlertDialogCancel.svelte +6 -2
  10. package/dist/bits/alert-dialog/components/AlertDialogCancel.svelte.d.ts +2 -1
  11. package/dist/bits/alert-dialog/components/AlertDialogContent.svelte +47 -12
  12. package/dist/bits/alert-dialog/components/AlertDialogContent.svelte.d.ts +10 -6
  13. package/dist/bits/alert-dialog/components/AlertDialogOverlay.svelte +29 -7
  14. package/dist/bits/alert-dialog/components/AlertDialogPortal.svelte +2 -1
  15. package/dist/bits/alert-dialog/components/AlertDialogTrigger.svelte +6 -2
  16. package/dist/bits/alert-dialog/ctx.d.ts +9 -6
  17. package/dist/bits/alert-dialog/ctx.js +5 -1
  18. package/dist/bits/alert-dialog/types.d.ts +7 -10
  19. package/dist/bits/button/types.d.ts +4 -0
  20. package/dist/bits/checkbox/components/Checkbox.svelte +7 -3
  21. package/dist/bits/checkbox/components/CheckboxIndicator.svelte +3 -1
  22. package/dist/bits/checkbox/ctx.d.ts +0 -35
  23. package/dist/bits/checkbox/ctx.js +2 -17
  24. package/dist/bits/checkbox/index.d.ts +2 -1
  25. package/dist/bits/checkbox/index.js +4 -1
  26. package/dist/bits/checkbox/types.d.ts +3 -3
  27. package/dist/bits/collapsible/components/Collapsible.svelte +4 -2
  28. package/dist/bits/collapsible/components/CollapsibleContent.svelte +36 -12
  29. package/dist/bits/collapsible/components/CollapsibleContent.svelte.d.ts +9 -5
  30. package/dist/bits/collapsible/components/CollapsibleTrigger.svelte +6 -2
  31. package/dist/bits/collapsible/types.d.ts +4 -7
  32. package/dist/bits/context-menu/components/ContextMenu.svelte +5 -3
  33. package/dist/bits/context-menu/components/ContextMenuCheckboxItem.svelte +9 -7
  34. package/dist/bits/context-menu/components/ContextMenuContent.svelte +55 -12
  35. package/dist/bits/context-menu/components/ContextMenuContent.svelte.d.ts +11 -8
  36. package/dist/bits/context-menu/components/ContextMenuItem.svelte +12 -8
  37. package/dist/bits/context-menu/components/ContextMenuRadioItem.svelte +9 -7
  38. package/dist/bits/context-menu/components/ContextMenuSubContent.svelte +68 -19
  39. package/dist/bits/context-menu/components/ContextMenuSubContent.svelte.d.ts +13 -12
  40. package/dist/bits/context-menu/components/ContextMenuSubTrigger.svelte +9 -6
  41. package/dist/bits/context-menu/components/ContextMenuTrigger.svelte +11 -6
  42. package/dist/bits/context-menu/ctx.d.ts +1 -1
  43. package/dist/bits/context-menu/ctx.js +3 -3
  44. package/dist/bits/context-menu/types.d.ts +26 -29
  45. package/dist/bits/dialog/components/Dialog.svelte +35 -3
  46. package/dist/bits/dialog/components/Dialog.svelte.d.ts +1 -1
  47. package/dist/bits/dialog/components/DialogClose.svelte +6 -2
  48. package/dist/bits/dialog/components/DialogClose.svelte.d.ts +2 -1
  49. package/dist/bits/dialog/components/DialogContent.svelte +49 -15
  50. package/dist/bits/dialog/components/DialogContent.svelte.d.ts +10 -6
  51. package/dist/bits/dialog/components/DialogOverlay.svelte +29 -7
  52. package/dist/bits/dialog/components/DialogPortal.svelte +12 -4
  53. package/dist/bits/dialog/components/DialogPortal.svelte.d.ts +3 -1
  54. package/dist/bits/dialog/components/DialogTrigger.svelte +6 -2
  55. package/dist/bits/dialog/ctx.d.ts +9 -6
  56. package/dist/bits/dialog/ctx.js +5 -1
  57. package/dist/bits/dialog/types.d.ts +8 -11
  58. package/dist/bits/dropdown-menu/components/DropdownMenu.svelte +4 -2
  59. package/dist/bits/dropdown-menu/components/DropdownMenuCheckboxItem.svelte +9 -7
  60. package/dist/bits/dropdown-menu/components/DropdownMenuCheckboxItem.svelte.d.ts +2 -1
  61. package/dist/bits/dropdown-menu/components/DropdownMenuContent.svelte +55 -11
  62. package/dist/bits/dropdown-menu/components/DropdownMenuContent.svelte.d.ts +11 -8
  63. package/dist/bits/dropdown-menu/components/DropdownMenuItem.svelte +13 -9
  64. package/dist/bits/dropdown-menu/components/DropdownMenuRadioItem.svelte +9 -7
  65. package/dist/bits/dropdown-menu/components/DropdownMenuRadioItem.svelte.d.ts +2 -1
  66. package/dist/bits/dropdown-menu/components/DropdownMenuSubContent.svelte +68 -20
  67. package/dist/bits/dropdown-menu/components/DropdownMenuSubContent.svelte.d.ts +12 -11
  68. package/dist/bits/dropdown-menu/components/DropdownMenuSubTrigger.svelte +12 -8
  69. package/dist/bits/dropdown-menu/components/DropdownMenuSubTrigger.svelte.d.ts +2 -1
  70. package/dist/bits/dropdown-menu/components/DropdownMenuTrigger.svelte +5 -3
  71. package/dist/bits/dropdown-menu/types.d.ts +27 -20
  72. package/dist/bits/label/components/Label.svelte +6 -2
  73. package/dist/bits/label/components/Label.svelte.d.ts +2 -3
  74. package/dist/bits/label/types.d.ts +4 -2
  75. package/dist/bits/link-preview/components/LinkPreview.svelte +4 -2
  76. package/dist/bits/link-preview/components/LinkPreviewContent.svelte +72 -26
  77. package/dist/bits/link-preview/components/LinkPreviewContent.svelte.d.ts +12 -12
  78. package/dist/bits/link-preview/components/LinkPreviewTrigger.svelte +9 -5
  79. package/dist/bits/link-preview/components/LinkPreviewTrigger.svelte.d.ts +2 -6
  80. package/dist/bits/link-preview/types.d.ts +17 -8
  81. package/dist/bits/menubar/components/Menubar.svelte +1 -1
  82. package/dist/bits/menubar/components/MenubarCheckboxItem.svelte +9 -7
  83. package/dist/bits/menubar/components/MenubarCheckboxItem.svelte.d.ts +2 -1
  84. package/dist/bits/menubar/components/MenubarContent.svelte +58 -10
  85. package/dist/bits/menubar/components/MenubarItem.svelte +13 -9
  86. package/dist/bits/menubar/components/MenubarMenu.svelte +4 -2
  87. package/dist/bits/menubar/components/MenubarRadioItem.svelte +12 -8
  88. package/dist/bits/menubar/components/MenubarRadioItem.svelte.d.ts +2 -1
  89. package/dist/bits/menubar/components/MenubarSubContent.svelte +74 -7
  90. package/dist/bits/menubar/components/MenubarSubTrigger.svelte +12 -8
  91. package/dist/bits/menubar/components/MenubarSubTrigger.svelte.d.ts +8 -1
  92. package/dist/bits/menubar/components/MenubarTrigger.svelte +12 -2
  93. package/dist/bits/menubar/ctx.d.ts +2 -2
  94. package/dist/bits/menubar/ctx.js +5 -5
  95. package/dist/bits/menubar/types.d.ts +30 -15
  96. package/dist/bits/popover/components/Popover.svelte +4 -2
  97. package/dist/bits/popover/components/PopoverClose.svelte +6 -2
  98. package/dist/bits/popover/components/PopoverContent.svelte +35 -11
  99. package/dist/bits/popover/components/PopoverContent.svelte.d.ts +9 -5
  100. package/dist/bits/popover/components/PopoverTrigger.svelte +6 -2
  101. package/dist/bits/popover/types.d.ts +6 -9
  102. package/dist/bits/radio-group/components/RadioGroup.svelte +4 -2
  103. package/dist/bits/radio-group/components/RadioGroupInput.svelte +3 -3
  104. package/dist/bits/radio-group/components/RadioGroupInput.svelte.d.ts +6 -8
  105. package/dist/bits/radio-group/components/RadioGroupItem.svelte +12 -2
  106. package/dist/bits/radio-group/ctx.d.ts +5 -5
  107. package/dist/bits/radio-group/types.d.ts +5 -4
  108. package/dist/bits/select/components/Select.svelte +18 -12
  109. package/dist/bits/select/components/Select.svelte.d.ts +3 -3
  110. package/dist/bits/select/components/SelectContent.svelte +55 -11
  111. package/dist/bits/select/components/SelectContent.svelte.d.ts +11 -8
  112. package/dist/bits/select/components/SelectInput.svelte.d.ts +1 -1
  113. package/dist/bits/select/components/SelectItem.svelte +11 -7
  114. package/dist/bits/select/components/SelectLabel.svelte.d.ts +2 -3
  115. package/dist/bits/select/components/SelectTrigger.svelte +3 -1
  116. package/dist/bits/select/components/SelectValue.svelte +5 -3
  117. package/dist/bits/select/components/SelectValue.svelte.d.ts +1 -1
  118. package/dist/bits/select/ctx.d.ts +15 -15
  119. package/dist/bits/select/ctx.js +1 -3
  120. package/dist/bits/select/types.d.ts +23 -19
  121. package/dist/bits/slider/components/Slider.svelte +4 -2
  122. package/dist/bits/slider/components/SliderThumb.svelte +3 -1
  123. package/dist/bits/slider/components/SliderThumb.svelte.d.ts +2 -4
  124. package/dist/bits/slider/ctx.d.ts +0 -1
  125. package/dist/bits/slider/types.d.ts +5 -2
  126. package/dist/bits/switch/components/Switch.svelte +7 -3
  127. package/dist/bits/switch/types.d.ts +4 -4
  128. package/dist/bits/tabs/components/Tabs.svelte +4 -2
  129. package/dist/bits/tabs/components/TabsTrigger.svelte +9 -1
  130. package/dist/bits/tabs/types.d.ts +5 -4
  131. package/dist/bits/toggle/components/Toggle.svelte +7 -3
  132. package/dist/bits/toggle/types.d.ts +4 -4
  133. package/dist/bits/tooltip/components/Tooltip.svelte +8 -2
  134. package/dist/bits/tooltip/components/Tooltip.svelte.d.ts +1 -0
  135. package/dist/bits/tooltip/components/TooltipContent.svelte +58 -18
  136. package/dist/bits/tooltip/components/TooltipContent.svelte.d.ts +13 -11
  137. package/dist/bits/tooltip/components/TooltipTrigger.svelte +8 -6
  138. package/dist/bits/tooltip/components/TooltipTrigger.svelte.d.ts +2 -8
  139. package/dist/bits/tooltip/ctx.js +1 -2
  140. package/dist/bits/tooltip/types.d.ts +18 -9
  141. package/dist/helpers/event-handlers.d.ts +3 -8
  142. package/dist/internal/events.d.ts +12 -0
  143. package/dist/internal/events.js +13 -0
  144. package/dist/internal/helpers.d.ts +10 -1
  145. package/dist/internal/helpers.js +55 -0
  146. package/dist/internal/index.d.ts +2 -0
  147. package/dist/internal/index.js +2 -0
  148. package/dist/internal/is.d.ts +1 -0
  149. package/dist/internal/is.js +1 -0
  150. package/dist/internal/types.d.ts +30 -0
  151. package/package.json +16 -10
  152. package/dist/bits/alert-dialog/components/AlertDialogOverlay.svelte.d.ts +0 -228
  153. package/dist/bits/dialog/components/DialogOverlay.svelte.d.ts +0 -228
  154. package/dist/bits/menubar/components/MenubarContent.svelte.d.ts +0 -229
  155. package/dist/bits/menubar/components/MenubarSubContent.svelte.d.ts +0 -230
@@ -1,9 +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
+ import type { ContentEvents } from "../types.js";
4
+ declare class __sveltets_Render<T extends Transition, In extends Transition, Out extends Transition> {
4
5
  props(): {
5
6
  transition?: T | undefined;
6
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;
7
12
  asChild?: boolean | undefined;
8
13
  accesskey?: string | null | undefined;
9
14
  autofocus?: boolean | null | undefined;
@@ -214,18 +219,16 @@ declare class __sveltets_Render<T extends Transition> {
214
219
  'on:fullscreenchange'?: import("svelte/elements.js").EventHandler<Event, HTMLDivElement> | null | undefined;
215
220
  'on:fullscreenerror'?: import("svelte/elements.js").EventHandler<Event, HTMLDivElement> | null | undefined;
216
221
  };
217
- events(): {
218
- "m-keydown"?: import("@melt-ui/svelte/internal/types").MeltEventHandler<KeyboardEvent> | undefined;
219
- };
222
+ events(): ContentEvents;
220
223
  slots(): {
221
224
  default: {
222
225
  builder: any;
223
226
  };
224
227
  };
225
228
  }
226
- export type SelectContentProps<T extends Transition> = ReturnType<__sveltets_Render<T>['props']>;
227
- export type SelectContentEvents<T extends Transition> = ReturnType<__sveltets_Render<T>['events']>;
228
- export type SelectContentSlots<T extends Transition> = ReturnType<__sveltets_Render<T>['slots']>;
229
- export default class SelectContent<T extends Transition> extends SvelteComponent<SelectContentProps<T>, SelectContentEvents<T>, SelectContentSlots<T>> {
229
+ export type SelectContentProps<T extends Transition, In extends Transition, Out extends Transition> = ReturnType<__sveltets_Render<T, In, Out>['props']>;
230
+ export type SelectContentEvents<T extends Transition, In extends Transition, Out extends Transition> = ReturnType<__sveltets_Render<T, In, Out>['events']>;
231
+ export type SelectContentSlots<T extends Transition, In extends Transition, Out extends Transition> = ReturnType<__sveltets_Render<T, In, Out>['slots']>;
232
+ export default class SelectContent<T extends Transition, In extends Transition, Out extends Transition> extends SvelteComponent<SelectContentProps<T, In, Out>, SelectContentEvents<T, In, Out>, SelectContentSlots<T, In, Out>> {
230
233
  }
231
234
  export {};
@@ -254,7 +254,7 @@ declare const __propDef: {
254
254
  builder: {
255
255
  type: string;
256
256
  name: string | undefined;
257
- value: unknown;
257
+ value: import("@melt-ui/svelte/index.js").SelectOption<unknown> | import("@melt-ui/svelte/index.js").SelectOption<unknown>[] | undefined;
258
258
  'aria-hidden': boolean;
259
259
  hidden: boolean;
260
260
  tabIndex: number;
@@ -1,10 +1,14 @@
1
1
  <script>import { melt } from "@melt-ui/svelte";
2
2
  import { ctx } from "../ctx.js";
3
+ import { createDispatcher } from "../../../internal/events.js";
3
4
  export let value;
4
5
  export let disabled = void 0;
5
6
  export let label = void 0;
6
7
  export let asChild = false;
7
- const option = ctx.setItem(value).elements.option;
8
+ const {
9
+ elements: { option }
10
+ } = ctx.setItem(value);
11
+ const dispatch = createDispatcher();
8
12
  </script>
9
13
 
10
14
  <!-- svelte-ignore a11y-no-static-element-interactions / applied by melt's builder-->
@@ -16,12 +20,12 @@ const option = ctx.setItem(value).elements.option;
16
20
  <div
17
21
  {...builder} use:builder.action
18
22
  {...$$restProps}
19
- on:m-click
20
- on:m-focusin
21
- on:m-focusout
22
- on:m-keydown
23
- on:m-pointerleave
24
- on:m-pointermove
23
+ on:m-click={dispatch}
24
+ on:m-focusin={dispatch}
25
+ on:m-focusout={dispatch}
26
+ on:m-keydown={dispatch}
27
+ on:m-pointerleave={dispatch}
28
+ on:m-pointermove={dispatch}
25
29
  >
26
30
  <slot {builder}>
27
31
  {label ? label : value}
@@ -1,4 +1,5 @@
1
1
  import { SvelteComponent } from "svelte";
2
+ import type { LabelEvents } from "../types.js";
2
3
  declare const __propDef: {
3
4
  props: {
4
5
  asChild?: boolean | undefined;
@@ -216,9 +217,7 @@ declare const __propDef: {
216
217
  builder: any;
217
218
  };
218
219
  };
219
- events: {
220
- "m-click"?: import("@melt-ui/svelte/internal/types").MeltEventHandler<MouseEvent> | undefined;
221
- };
220
+ events: LabelEvents;
222
221
  };
223
222
  export type SelectLabelProps = typeof __propDef.props;
224
223
  export type SelectLabelEvents = typeof __propDef.events;
@@ -1,16 +1,18 @@
1
1
  <script>import { melt } from "@melt-ui/svelte";
2
2
  import { ctx } from "../ctx.js";
3
+ import { createDispatcher } from "../../../internal/events.js";
3
4
  export let asChild = false;
4
5
  const {
5
6
  elements: { trigger }
6
7
  } = ctx.get();
8
+ const dispatch = createDispatcher();
7
9
  </script>
8
10
 
9
11
  {#if asChild}
10
12
  <slot builder={$trigger} />
11
13
  {:else}
12
14
  {@const builder = $trigger}
13
- <button {...builder} use:builder.action {...$$restProps} on:m-click on:m-keydown>
15
+ <button {...builder} use:builder.action {...$$restProps} on:m-click={dispatch} on:m-keydown={dispatch}>
14
16
  <slot {builder} />
15
17
  </button>
16
18
  {/if}
@@ -1,13 +1,15 @@
1
1
  <script>import { ctx } from "../ctx.js";
2
2
  export let placeholder = "";
3
3
  export let asChild = false;
4
- const valueLabel = ctx.get().states.valueLabel;
4
+ const {
5
+ states: { selectedLabel }
6
+ } = ctx.get();
5
7
  </script>
6
8
 
7
9
  {#if asChild}
8
- <slot valueLabel={$valueLabel} />
10
+ <slot label={$selectedLabel} />
9
11
  {:else}
10
12
  <span {...$$restProps}>
11
- {$valueLabel ? $valueLabel : placeholder}
13
+ {$selectedLabel ? $selectedLabel : placeholder}
12
14
  </span>
13
15
  {/if}
@@ -216,7 +216,7 @@ declare const __propDef: {
216
216
  };
217
217
  slots: {
218
218
  default: {
219
- valueLabel: string | null;
219
+ label: string;
220
220
  };
221
221
  };
222
222
  };
@@ -27,6 +27,7 @@ declare function set(props: CreateSelectProps): {
27
27
  subscribe(this: void, run: import("svelte/store").Subscriber<boolean>, invalidate?: import("svelte/store").Invalidator<boolean> | undefined): import("svelte/store").Unsubscriber;
28
28
  }, import("svelte/store").Writable<boolean>, import("svelte/store").Writable<boolean>], (node: HTMLElement) => import("@melt-ui/svelte/internal/types").MeltActionReturn<"keydown" | "click">, ([$open, $disabled, $required]: [boolean, boolean, boolean]) => {
29
29
  readonly role: "combobox";
30
+ readonly type: "button";
30
31
  readonly 'aria-autocomplete': "none";
31
32
  readonly 'aria-haspopup': "listbox";
32
33
  readonly 'aria-controls': string;
@@ -40,10 +41,10 @@ declare function set(props: CreateSelectProps): {
40
41
  readonly tabindex: 0;
41
42
  }, string>;
42
43
  option: import("@melt-ui/svelte/internal/helpers").ExplicitBuilderReturn<{
43
- update: (updater: import("svelte/store").Updater<any>, sideEffect?: ((newValue: any) => void) | undefined) => void;
44
- set: (this: void, value: any) => void;
45
- subscribe(this: void, run: import("svelte/store").Subscriber<any>, invalidate?: import("svelte/store").Invalidator<any> | undefined): import("svelte/store").Unsubscriber;
46
- }, (node: HTMLElement) => import("@melt-ui/svelte/internal/types").MeltActionReturn<"keydown" | "click" | "focusin" | "focusout" | "pointerleave" | "pointermove">, ($value: any) => (props: import("@melt-ui/svelte").SelectOptionProps<any>) => {
44
+ update: (updater: import("svelte/store").Updater<import("@melt-ui/svelte").SelectOption<unknown> | undefined>, sideEffect?: ((newValue: import("@melt-ui/svelte").SelectOption<unknown> | undefined) => void) | undefined) => void;
45
+ set: (this: void, value: import("@melt-ui/svelte").SelectOption<unknown> | undefined) => void;
46
+ subscribe(this: void, run: import("svelte/store").Subscriber<import("@melt-ui/svelte").SelectOption<unknown> | undefined>, invalidate?: import("svelte/store").Invalidator<import("@melt-ui/svelte").SelectOption<unknown> | undefined> | undefined): import("svelte/store").Unsubscriber;
47
+ }, (node: HTMLElement) => import("@melt-ui/svelte/internal/types").MeltActionReturn<"keydown" | "click" | "focusin" | "focusout" | "pointerleave" | "pointermove">, ($selected: import("@melt-ui/svelte").SelectOption<unknown> | undefined) => (props: import("@melt-ui/svelte").SelectOptionProps<unknown>) => {
47
48
  readonly role: "option";
48
49
  readonly 'aria-selected': boolean;
49
50
  readonly 'data-selected': "" | undefined;
@@ -53,13 +54,13 @@ declare function set(props: CreateSelectProps): {
53
54
  readonly tabindex: -1;
54
55
  }, string>;
55
56
  input: import("@melt-ui/svelte/internal/helpers").ExplicitBuilderReturn<[{
56
- update: (updater: import("svelte/store").Updater<any>, sideEffect?: ((newValue: any) => void) | undefined) => void;
57
- set: (this: void, value: any) => void;
58
- subscribe(this: void, run: import("svelte/store").Subscriber<any>, invalidate?: import("svelte/store").Invalidator<any> | undefined): import("svelte/store").Unsubscriber;
59
- }, import("svelte/store").Writable<boolean>, import("svelte/store").Writable<boolean>, import("svelte/store").Writable<string | undefined>], import("svelte/action").Action<any, any, Record<never, any>>, ([$value, $required, $disabled, $nameStore]: [any, boolean, boolean, string | undefined]) => {
57
+ update: (updater: import("svelte/store").Updater<import("@melt-ui/svelte").SelectOption<unknown> | undefined>, sideEffect?: ((newValue: import("@melt-ui/svelte").SelectOption<unknown> | undefined) => void) | undefined) => void;
58
+ set: (this: void, value: import("@melt-ui/svelte").SelectOption<unknown> | undefined) => void;
59
+ subscribe(this: void, run: import("svelte/store").Subscriber<import("@melt-ui/svelte").SelectOption<unknown> | undefined>, invalidate?: import("svelte/store").Invalidator<import("@melt-ui/svelte").SelectOption<unknown> | undefined> | undefined): import("svelte/store").Unsubscriber;
60
+ }, import("svelte/store").Writable<boolean>, import("svelte/store").Writable<boolean>, import("svelte/store").Writable<string | undefined>], import("svelte/action").Action<any, any, Record<never, any>>, ([$value, $required, $disabled, $nameStore]: [import("@melt-ui/svelte").SelectOption<unknown> | undefined, boolean, boolean, string | undefined]) => {
60
61
  type: string;
61
62
  name: string | undefined;
62
- value: any;
63
+ value: import("@melt-ui/svelte").SelectOption<unknown> | undefined;
63
64
  'aria-hidden': boolean;
64
65
  hidden: boolean;
65
66
  tabIndex: number;
@@ -95,12 +96,12 @@ declare function set(props: CreateSelectProps): {
95
96
  set: (this: void, value: boolean) => void;
96
97
  subscribe(this: void, run: import("svelte/store").Subscriber<boolean>, invalidate?: import("svelte/store").Invalidator<boolean> | undefined): import("svelte/store").Unsubscriber;
97
98
  };
98
- value: {
99
- update: (updater: import("svelte/store").Updater<any>, sideEffect?: ((newValue: any) => void) | undefined) => void;
100
- set: (this: void, value: any) => void;
101
- subscribe(this: void, run: import("svelte/store").Subscriber<any>, invalidate?: import("svelte/store").Invalidator<any> | undefined): import("svelte/store").Unsubscriber;
99
+ selected: {
100
+ update: (updater: import("svelte/store").Updater<import("@melt-ui/svelte").SelectOption<unknown> | undefined>, sideEffect?: ((newValue: import("@melt-ui/svelte").SelectOption<unknown> | undefined) => void) | undefined) => void;
101
+ set: (this: void, value: import("@melt-ui/svelte").SelectOption<unknown> | undefined) => void;
102
+ subscribe(this: void, run: import("svelte/store").Subscriber<import("@melt-ui/svelte").SelectOption<unknown> | undefined>, invalidate?: import("svelte/store").Invalidator<import("@melt-ui/svelte").SelectOption<unknown> | undefined> | undefined): import("svelte/store").Unsubscriber;
102
103
  };
103
- valueLabel: import("svelte/store").Readable<string | null>;
104
+ selectedLabel: import("svelte/store").Readable<string>;
104
105
  };
105
106
  helpers: {
106
107
  isSelected: import("svelte/store").Readable<(value: unknown) => boolean>;
@@ -110,7 +111,6 @@ declare function set(props: CreateSelectProps): {
110
111
  disabled: import("svelte/store").Writable<boolean>;
111
112
  forceVisible: import("svelte/store").Writable<boolean>;
112
113
  name: import("svelte/store").Writable<string | undefined>;
113
- defaultValue?: import("svelte/store").Writable<any> | undefined;
114
114
  required: import("svelte/store").Writable<boolean>;
115
115
  preventScroll: import("svelte/store").Writable<boolean>;
116
116
  portal: import("svelte/store").Writable<string | HTMLElement | null | undefined>;
@@ -17,9 +17,7 @@ function get() {
17
17
  return getContext(NAME);
18
18
  }
19
19
  function set(props) {
20
- const select = createSelect({
21
- ...removeUndefined(props)
22
- });
20
+ const select = createSelect(removeUndefined(props));
23
21
  setContext(NAME, select);
24
22
  return {
25
23
  ...select,
@@ -1,18 +1,14 @@
1
- import type { CreateSelectProps, SelectComponentEvents, SelectOptionProps } from "@melt-ui/svelte";
2
- import type { AsChild, Expand, HTMLDivAttributes, OmitOpen, OmitValue, OnChangeFn, Transition, TransitionParams } from "../../internal/index.js";
1
+ import type { CreateSelectProps, SelectOptionProps } from "@melt-ui/svelte";
2
+ import type { AsChild, Expand, HTMLDivAttributes, OmitOpen, OnChangeFn, Transition, TransitionProps } from "../../internal/index.js";
3
3
  import type { HTMLAttributes, HTMLButtonAttributes, HTMLInputAttributes } from "svelte/elements";
4
- import type { ButtonEventHandler, DivEventHandler } from "../../index.js";
5
- type Props = Expand<OmitOpen<OmitValue<Omit<CreateSelectProps, "defaultValueLabel" | "forceVisible">>> & {
6
- value?: CreateSelectProps["defaultValue"] & {};
7
- onValueChange?: OnChangeFn<CreateSelectProps["defaultValue"]>;
4
+ import type { CustomEventHandler } from "../../index.js";
5
+ type Props = Expand<OmitOpen<Omit<CreateSelectProps, "selected" | "defaultSelected" | "onSelectedChange">> & {
6
+ selected?: CreateSelectProps["defaultSelected"] & {};
7
+ onSelectedChange?: OnChangeFn<CreateSelectProps["defaultSelected"]>;
8
8
  open?: CreateSelectProps["defaultOpen"] & {};
9
9
  onOpenChange?: OnChangeFn<CreateSelectProps["defaultOpen"]>;
10
- label?: CreateSelectProps["defaultValueLabel"] & {};
11
10
  }>;
12
- type ContentProps<T extends Transition = Transition> = Expand<{
13
- transition?: T;
14
- transitionConfig?: TransitionParams<T>;
15
- } & AsChild> & HTMLDivAttributes;
11
+ type ContentProps<T extends Transition = Transition, In extends Transition = Transition, Out extends Transition = Transition> = Expand<TransitionProps<T, In, Out> & AsChild> & HTMLDivAttributes;
16
12
  type GroupProps = AsChild & HTMLDivAttributes;
17
13
  type InputProps = AsChild & HTMLInputAttributes;
18
14
  type LabelProps = AsChild & HTMLDivAttributes;
@@ -25,14 +21,22 @@ type ValueProps = Expand<{
25
21
  type ArrowProps = Expand<{
26
22
  size?: number;
27
23
  } & AsChild> & HTMLDivAttributes;
28
- type ItemEvents = {
29
- "m-click": DivEventHandler<MouseEvent>;
30
- "m-keydown": DivEventHandler<KeyboardEvent>;
24
+ type ItemEvents<T extends Element = HTMLDivElement> = {
25
+ click: CustomEventHandler<MouseEvent, T>;
26
+ keydown: CustomEventHandler<KeyboardEvent, T>;
27
+ focusin: CustomEventHandler<FocusEvent, T>;
28
+ focusout: CustomEventHandler<FocusEvent, T>;
29
+ pointerleave: CustomEventHandler<MouseEvent, T>;
30
+ pointermove: CustomEventHandler<MouseEvent, T>;
31
+ };
32
+ type TriggerEvents<T extends Element = HTMLButtonElement> = {
33
+ click: CustomEventHandler<MouseEvent, T>;
34
+ keydown: CustomEventHandler<KeyboardEvent, T>;
35
+ };
36
+ type LabelEvents<T extends Element = HTMLSpanElement> = {
37
+ click: CustomEventHandler<MouseEvent, T>;
31
38
  };
32
- type TriggerEvents = {
33
- "m-click": ButtonEventHandler<MouseEvent>;
34
- "m-keydown": ButtonEventHandler<KeyboardEvent>;
39
+ type ContentEvents<T extends Element = HTMLDivElement> = {
40
+ keydown: CustomEventHandler<KeyboardEvent, T>;
35
41
  };
36
- type LabelEvents = SelectComponentEvents["label"];
37
- type ContentEvents = SelectComponentEvents["menu"];
38
42
  export type { Props, ArrowProps, ContentProps, GroupProps, InputProps, LabelProps, ItemProps, SeparatorProps, TriggerProps, ValueProps, Props as SelectProps, ArrowProps as SelectArrowProps, ContentProps as SelectContentProps, GroupProps as SelectGroupProps, InputProps as SelectInputProps, LabelProps as SelectLabelProps, ItemProps as SelectItemProps, SeparatorProps as SelectSeparatorProps, TriggerProps as SelectTriggerProps, ValueProps as SelectValueProps, ItemEvents, ContentEvents, TriggerEvents, LabelEvents, ItemEvents as SelectItemEvents, ContentEvents as SelectContentEvents, TriggerEvents as SelectTriggerEvents, LabelEvents as SelectLabelEvents };
@@ -20,8 +20,10 @@ const {
20
20
  orientation,
21
21
  defaultValue: value,
22
22
  onValueChange: ({ next }) => {
23
- value = next;
24
- onValueChange?.(next);
23
+ if (value !== next) {
24
+ onValueChange?.(next);
25
+ value = next;
26
+ }
25
27
  return next;
26
28
  }
27
29
  });
@@ -1,7 +1,9 @@
1
1
  <script>import { melt } from "@melt-ui/svelte";
2
2
  import { ctx } from "../ctx.js";
3
+ import { createDispatcher } from "../../../internal/events.js";
3
4
  export let asChild = false;
4
5
  const thumb = ctx.get().elements.thumb;
6
+ const dispatch = createDispatcher();
5
7
  $:
6
8
  __MELTUI_BUILDER_0__ = $thumb();
7
9
  </script>
@@ -10,5 +12,5 @@ $:
10
12
  {#if asChild}
11
13
  <slot builder={$thumb()} />
12
14
  {:else}
13
- <span {...__MELTUI_BUILDER_0__} use:__MELTUI_BUILDER_0__.action {...$$restProps} on:m-keydown />
15
+ <span {...__MELTUI_BUILDER_0__} use:__MELTUI_BUILDER_0__.action {...$$restProps} on:m-keydown={dispatch} />
14
16
  {/if}
@@ -1,4 +1,5 @@
1
1
  import { SvelteComponent } from "svelte";
2
+ import type { ThumbEvents } from "../types.js";
2
3
  declare const __propDef: {
3
4
  props: {
4
5
  asChild?: boolean | undefined;
@@ -215,7 +216,6 @@ declare const __propDef: {
215
216
  default: {
216
217
  builder: (() => {
217
218
  readonly role: "slider";
218
- readonly 'aria-label': "Volume";
219
219
  readonly 'aria-valuemin': number;
220
220
  readonly 'aria-valuemax': number;
221
221
  readonly 'aria-valuenow': number;
@@ -229,9 +229,7 @@ declare const __propDef: {
229
229
  };
230
230
  };
231
231
  };
232
- events: {
233
- "m-keydown"?: import("@melt-ui/svelte/internal/types").MeltEventHandler<KeyboardEvent> | undefined;
234
- };
232
+ events: ThumbEvents;
235
233
  };
236
234
  export type SliderThumbProps = typeof __propDef.props;
237
235
  export type SliderThumbEvents = typeof __propDef.events;
@@ -19,7 +19,6 @@ declare function set(props: CreateSliderProps): {
19
19
  subscribe(this: void, run: import("svelte/store").Subscriber<number[]>, invalidate?: import("svelte/store").Invalidator<number[]> | undefined): import("svelte/store").Unsubscriber;
20
20
  }, import("svelte/store").Readable<(val: number) => number>, import("svelte/store").Writable<number>, import("svelte/store").Writable<number>, import("svelte/store").Writable<boolean>, import("svelte/store").Writable<"horizontal" | "vertical">], (node: HTMLElement) => import("@melt-ui/svelte/internal/types").MeltActionReturn<"keydown">, ([$value, $position, $min, $max, $disabled, $orientation]: [number[], (val: number) => number, number, number, boolean, "horizontal" | "vertical"]) => () => {
21
21
  readonly role: "slider";
22
- readonly 'aria-label': "Volume";
23
22
  readonly 'aria-valuemin': number;
24
23
  readonly 'aria-valuemax': number;
25
24
  readonly 'aria-valuenow': number;
@@ -1,5 +1,6 @@
1
- import type { CreateSliderProps, SliderComponentEvents } from "@melt-ui/svelte";
1
+ import type { CreateSliderProps } from "@melt-ui/svelte";
2
2
  import type { Expand, OmitValue, HTMLSpanAttributes, OnChangeFn, AsChild } from "../../internal/index.js";
3
+ import type { CustomEventHandler } from "../../index.js";
3
4
  import type { HTMLInputAttributes } from "svelte/elements";
4
5
  type Props = Expand<OmitValue<CreateSliderProps> & {
5
6
  value?: CreateSliderProps["defaultValue"] & {};
@@ -7,6 +8,8 @@ type Props = Expand<OmitValue<CreateSliderProps> & {
7
8
  } & AsChild> & HTMLSpanAttributes;
8
9
  type RangeProps = AsChild & HTMLSpanAttributes;
9
10
  type ThumbProps = AsChild & HTMLSpanAttributes;
10
- type ThumbEvents = SliderComponentEvents["thumb"];
11
+ type ThumbEvents<T extends Element = HTMLSpanElement> = {
12
+ keydown: CustomEventHandler<KeyboardEvent, T>;
13
+ };
11
14
  type InputProps = Omit<HTMLInputAttributes, "value">;
12
15
  export type { Props, RangeProps, ThumbProps, InputProps, Props as SliderProps, RangeProps as SliderRangeProps, ThumbProps as SliderThumbProps, InputProps as SliderInputProps, ThumbEvents, ThumbEvents as SliderThumbEvents };
@@ -1,5 +1,6 @@
1
1
  <script>import { melt } from "@melt-ui/svelte";
2
2
  import { ctx } from "../ctx.js";
3
+ import { createDispatcher } from "../../../internal/events.js";
3
4
  export let checked = void 0;
4
5
  export let onCheckedChange = void 0;
5
6
  export let disabled = void 0;
@@ -16,11 +17,14 @@ const {
16
17
  value,
17
18
  defaultChecked: checked,
18
19
  onCheckedChange: ({ next }) => {
19
- onCheckedChange?.(next);
20
- checked = next;
20
+ if (checked !== next) {
21
+ onCheckedChange?.(next);
22
+ checked = next;
23
+ }
21
24
  return next;
22
25
  }
23
26
  });
27
+ const dispatch = createDispatcher();
24
28
  $:
25
29
  checked !== void 0 && localChecked.set(checked);
26
30
  $:
@@ -35,7 +39,7 @@ $:
35
39
  <slot builder={$root} />
36
40
  {:else}
37
41
  {@const builder = $root}
38
- <button {...builder} use:builder.action {...$$restProps} on:m-click on:m-keydown>
42
+ <button {...builder} use:builder.action {...$$restProps} on:m-click={dispatch} on:m-keydown={dispatch}>
39
43
  <slot {builder} />
40
44
  </button>
41
45
  {/if}
@@ -1,15 +1,15 @@
1
1
  import type { CreateSwitchProps } from "@melt-ui/svelte";
2
2
  import type { AsChild, Expand, HTMLSpanAttributes, OmitChecked, OnChangeFn } from "../../internal/index.js";
3
3
  import type { HTMLButtonAttributes, HTMLInputAttributes } from "svelte/elements";
4
- import type { ButtonEventHandler } from "../../index.js";
4
+ import type { CustomEventHandler } from "../../index.js";
5
5
  type Props = Expand<OmitChecked<CreateSwitchProps> & {
6
6
  checked?: CreateSwitchProps["defaultChecked"] & {};
7
7
  onCheckedChange?: OnChangeFn<CreateSwitchProps["defaultChecked"]>;
8
8
  } & AsChild> & HTMLButtonAttributes;
9
9
  type ThumbProps = AsChild & HTMLSpanAttributes;
10
10
  type InputProps = HTMLInputAttributes;
11
- type Events = {
12
- "m-click": ButtonEventHandler<MouseEvent>;
13
- "m-keydown": ButtonEventHandler<KeyboardEvent>;
11
+ type Events<T extends Element = HTMLButtonElement> = {
12
+ click: CustomEventHandler<MouseEvent, T>;
13
+ keydown: CustomEventHandler<KeyboardEvent, T>;
14
14
  };
15
15
  export type { Props, ThumbProps, InputProps, Props as SwitchProps, ThumbProps as SwitchThumbProps, InputProps as SwitchInputProps, Events, Events as SwitchEvents };
@@ -18,8 +18,10 @@ const {
18
18
  autoSet,
19
19
  defaultValue: value,
20
20
  onValueChange: ({ next }) => {
21
- onValueChange?.(next);
22
- value = next;
21
+ if (value !== next) {
22
+ onValueChange?.(next);
23
+ value = next;
24
+ }
23
25
  return next;
24
26
  }
25
27
  });
@@ -1,16 +1,24 @@
1
1
  <script>import { melt } from "@melt-ui/svelte";
2
2
  import { ctx } from "../ctx.js";
3
+ import { createDispatcher } from "../../../internal/events.js";
3
4
  export let value;
4
5
  export let disabled = void 0;
5
6
  export let asChild = false;
6
7
  const trigger = ctx.get().elements.trigger;
8
+ const dispatch = createDispatcher();
7
9
  </script>
8
10
 
9
11
  {#if asChild}
10
12
  <slot builder={$trigger({ value, disabled })} />
11
13
  {:else}
12
14
  {@const builder = $trigger({ value, disabled })}
13
- <button {...builder} use:builder.action {...$$restProps} on:m-click on:m-focus on:m-keydown>
15
+ <button
16
+ {...builder} use:builder.action
17
+ {...$$restProps}
18
+ on:m-click={dispatch}
19
+ on:m-focus={dispatch}
20
+ on:m-keydown={dispatch}
21
+ >
14
22
  <slot {builder} />
15
23
  </button>
16
24
  {/if}
@@ -1,6 +1,6 @@
1
1
  import type { CreateTabsProps, TabsTriggerProps } from "@melt-ui/svelte";
2
2
  import type { AsChild, Expand, HTMLDivAttributes, ObjectVariation, OmitValue, OnChangeFn } from "../../internal/index.js";
3
- import type { ButtonEventHandler } from "../../index.js";
3
+ import type { CustomEventHandler } from "../../index.js";
4
4
  type Props = Expand<OmitValue<CreateTabsProps> & {
5
5
  orientation?: CreateTabsProps["orientation"] & {};
6
6
  value?: CreateTabsProps["defaultValue"] & {};
@@ -11,8 +11,9 @@ type ContentProps = Expand<{
11
11
  } & AsChild> & HTMLDivAttributes;
12
12
  type TriggerProps = Expand<ObjectVariation<TabsTriggerProps> & AsChild> & HTMLDivAttributes;
13
13
  type ListProps = AsChild & HTMLDivAttributes;
14
- type TriggerEvents = {
15
- "m-click": ButtonEventHandler<MouseEvent>;
16
- "m-keydown": ButtonEventHandler<KeyboardEvent>;
14
+ type TriggerEvents<T extends Element = HTMLButtonElement> = {
15
+ click: CustomEventHandler<MouseEvent, T>;
16
+ keydown: CustomEventHandler<KeyboardEvent, T>;
17
+ focus: CustomEventHandler<FocusEvent, T>;
17
18
  };
18
19
  export type { Props, ContentProps, TriggerProps, ListProps, Props as TabsProps, ContentProps as TabsContentProps, TriggerProps as TabsTriggerProps, ListProps as TabsListProps, TriggerEvents, TriggerEvents as TabsTriggerEvents };
@@ -1,5 +1,6 @@
1
1
  <script>import { melt } from "@melt-ui/svelte";
2
2
  import { ctx } from "../ctx.js";
3
+ import { createDispatcher } from "../../../internal/events.js";
3
4
  export let disabled = void 0;
4
5
  export let pressed = void 0;
5
6
  export let onPressedChange = void 0;
@@ -12,11 +13,14 @@ const {
12
13
  disabled,
13
14
  defaultPressed: pressed,
14
15
  onPressedChange: ({ next }) => {
15
- onPressedChange?.(next);
16
- pressed = next;
16
+ if (pressed !== next) {
17
+ onPressedChange?.(next);
18
+ pressed = next;
19
+ }
17
20
  return next;
18
21
  }
19
22
  });
23
+ const dispatch = createDispatcher();
20
24
  $:
21
25
  pressed !== void 0 && localPressed.set(pressed);
22
26
  $:
@@ -27,7 +31,7 @@ $:
27
31
  <slot builder={$root} />
28
32
  {:else}
29
33
  {@const builder = $root}
30
- <button {...builder} use:builder.action {...$$restProps} on:m-click on:m-keydown>
34
+ <button {...builder} use:builder.action {...$$restProps} on:m-click={dispatch} on:m-keydown={dispatch}>
31
35
  <slot {builder} />
32
36
  </button>
33
37
  {/if}
@@ -1,14 +1,14 @@
1
1
  import type { CreateToggleProps } from "@melt-ui/svelte";
2
2
  import type { AsChild, Expand, OmitPressed, OnChangeFn } from "../../internal/index.js";
3
3
  import type { HTMLButtonAttributes, HTMLInputAttributes } from "svelte/elements";
4
- import type { ButtonEventHandler } from "../../index.js";
4
+ import type { CustomEventHandler } from "../../index.js";
5
5
  type Props = Expand<OmitPressed<CreateToggleProps> & {
6
6
  pressed?: CreateToggleProps["defaultPressed"];
7
7
  onPressedChange?: OnChangeFn<CreateToggleProps["defaultPressed"]>;
8
8
  } & AsChild> & HTMLButtonAttributes;
9
- type Events = {
10
- "m-click": ButtonEventHandler<MouseEvent>;
11
- "m-keydown": ButtonEventHandler<KeyboardEvent>;
9
+ type Events<T extends Element = HTMLButtonElement> = {
10
+ click: CustomEventHandler<MouseEvent, T>;
11
+ keydown: CustomEventHandler<KeyboardEvent, T>;
12
12
  };
13
13
  type InputProps = Omit<HTMLInputAttributes, "value">;
14
14
  export type { Props, InputProps, Props as ToggleProps, InputProps as ToggleInputProps, Events, Events as ToggleEvents };
@@ -8,6 +8,7 @@ export let openDelay = void 0;
8
8
  export let closeDelay = void 0;
9
9
  export let open = void 0;
10
10
  export let onOpenChange = void 0;
11
+ export let forceVisible = true;
11
12
  const {
12
13
  states: { open: localOpen },
13
14
  updateOption
@@ -19,10 +20,13 @@ const {
19
20
  closeOnPointerDown,
20
21
  openDelay,
21
22
  closeDelay,
23
+ forceVisible,
22
24
  defaultOpen: open,
23
25
  onOpenChange: ({ next }) => {
24
- onOpenChange?.(next);
25
- open = next;
26
+ if (open !== next) {
27
+ onOpenChange?.(next);
28
+ open = next;
29
+ }
26
30
  return next;
27
31
  }
28
32
  });
@@ -42,6 +46,8 @@ $:
42
46
  updateOption("openDelay", openDelay);
43
47
  $:
44
48
  updateOption("closeDelay", closeDelay);
49
+ $:
50
+ updateOption("forceVisible", forceVisible);
45
51
  </script>
46
52
 
47
53
  <slot />
@@ -1,6 +1,7 @@
1
1
  import { SvelteComponent } from "svelte";
2
2
  declare const __propDef: {
3
3
  props: {
4
+ forceVisible?: boolean | undefined;
4
5
  closeOnEscape?: boolean | undefined;
5
6
  portal?: string | HTMLElement | null | undefined;
6
7
  positioning?: import("@melt-ui/svelte/internal/actions").FloatingConfig | undefined;