bits-ui 0.17.0 → 0.18.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 (192) hide show
  1. package/dist/bits/accordion/_export.types.d.ts +1 -1
  2. package/dist/bits/accordion/components/accordion-content.svelte +3 -18
  3. package/dist/bits/accordion/ctx.js +3 -3
  4. package/dist/bits/accordion/types.d.ts +1 -1
  5. package/dist/bits/alert-dialog/_export.types.d.ts +1 -1
  6. package/dist/bits/alert-dialog/_types.d.ts +1 -1
  7. package/dist/bits/alert-dialog/components/alert-dialog-overlay.svelte +2 -12
  8. package/dist/bits/alert-dialog/components/alert-dialog-title.svelte +1 -6
  9. package/dist/bits/alert-dialog/ctx.js +4 -4
  10. package/dist/bits/alert-dialog/types.d.ts +1 -1
  11. package/dist/bits/aspect-ratio/components/aspect-ratio.svelte +1 -5
  12. package/dist/bits/avatar/_export.types.d.ts +1 -1
  13. package/dist/bits/avatar/ctx.js +2 -2
  14. package/dist/bits/button/_export.types.d.ts +1 -1
  15. package/dist/bits/button/types.d.ts +1 -1
  16. package/dist/bits/calendar/_export.types.d.ts +1 -1
  17. package/dist/bits/calendar/_types.d.ts +1 -1
  18. package/dist/bits/calendar/components/calendar-next-button.svelte +1 -7
  19. package/dist/bits/calendar/components/calendar-prev-button.svelte +1 -7
  20. package/dist/bits/calendar/components/calendar.svelte +2 -12
  21. package/dist/bits/calendar/ctx.js +2 -2
  22. package/dist/bits/calendar/types.d.ts +1 -1
  23. package/dist/bits/checkbox/_export.types.d.ts +1 -1
  24. package/dist/bits/checkbox/_types.d.ts +1 -1
  25. package/dist/bits/checkbox/components/checkbox-input.svelte +1 -6
  26. package/dist/bits/checkbox/ctx.js +2 -2
  27. package/dist/bits/checkbox/types.d.ts +1 -1
  28. package/dist/bits/collapsible/_export.types.d.ts +1 -1
  29. package/dist/bits/collapsible/components/collapsible-content.svelte +3 -18
  30. package/dist/bits/collapsible/components/collapsible-trigger.svelte +1 -7
  31. package/dist/bits/collapsible/ctx.js +2 -2
  32. package/dist/bits/collapsible/types.d.ts +1 -1
  33. package/dist/bits/combobox/_export.types.d.ts +1 -0
  34. package/dist/bits/combobox/_export.types.js +1 -0
  35. package/dist/bits/combobox/_types.d.ts +62 -0
  36. package/dist/bits/combobox/_types.js +1 -0
  37. package/dist/bits/combobox/components/combobox-arrow.svelte +21 -0
  38. package/dist/bits/combobox/components/combobox-arrow.svelte.d.ts +26 -0
  39. package/dist/bits/combobox/components/combobox-content.svelte +104 -0
  40. package/dist/bits/combobox/components/combobox-content.svelte.d.ts +27 -0
  41. package/dist/bits/combobox/components/combobox-group-label.svelte +25 -0
  42. package/dist/bits/combobox/components/combobox-group-label.svelte.d.ts +23 -0
  43. package/dist/bits/combobox/components/combobox-group.svelte +19 -0
  44. package/dist/bits/combobox/components/combobox-group.svelte.d.ts +26 -0
  45. package/dist/bits/combobox/components/combobox-hidden-input.svelte +25 -0
  46. package/dist/bits/combobox/components/combobox-hidden-input.svelte.d.ts +32 -0
  47. package/dist/bits/combobox/components/combobox-input.svelte +31 -0
  48. package/dist/bits/combobox/components/combobox-input.svelte.d.ts +33 -0
  49. package/dist/bits/combobox/components/combobox-item-indicator.svelte +16 -0
  50. package/dist/bits/combobox/components/combobox-item-indicator.svelte.d.ts +20 -0
  51. package/dist/bits/combobox/components/combobox-item.svelte +47 -0
  52. package/dist/bits/combobox/components/combobox-item.svelte.d.ts +31 -0
  53. package/dist/bits/combobox/components/combobox-label.svelte +22 -0
  54. package/dist/bits/combobox/components/combobox-label.svelte.d.ts +17 -0
  55. package/dist/bits/combobox/components/combobox.svelte +113 -0
  56. package/dist/bits/combobox/components/combobox.svelte.d.ts +41 -0
  57. package/dist/bits/combobox/ctx.d.ts +187 -0
  58. package/dist/bits/combobox/ctx.js +91 -0
  59. package/dist/bits/combobox/index.d.ts +12 -0
  60. package/dist/bits/combobox/index.js +12 -0
  61. package/dist/bits/combobox/types.d.ts +36 -0
  62. package/dist/bits/combobox/types.js +1 -0
  63. package/dist/bits/context-menu/_export.types.d.ts +1 -1
  64. package/dist/bits/context-menu/components/context-menu-content.svelte +1 -6
  65. package/dist/bits/context-menu/components/context-menu.svelte +4 -7
  66. package/dist/bits/context-menu/components/context-menu.svelte.d.ts +2 -2
  67. package/dist/bits/context-menu/ctx.d.ts +1 -1
  68. package/dist/bits/context-menu/ctx.js +5 -5
  69. package/dist/bits/context-menu/types.d.ts +1 -1
  70. package/dist/bits/date-field/_export.types.d.ts +1 -1
  71. package/dist/bits/date-field/components/date-field.svelte +1 -5
  72. package/dist/bits/date-field/ctx.d.ts +1 -1
  73. package/dist/bits/date-field/ctx.js +2 -2
  74. package/dist/bits/date-field/types.d.ts +1 -1
  75. package/dist/bits/date-picker/_export.types.d.ts +1 -1
  76. package/dist/bits/date-picker/components/date-picker-calendar.svelte +1 -6
  77. package/dist/bits/date-picker/components/date-picker-content.svelte +3 -18
  78. package/dist/bits/date-picker/components/date-picker-field.svelte +1 -5
  79. package/dist/bits/date-picker/components/date-picker-next-button.svelte +1 -7
  80. package/dist/bits/date-picker/components/date-picker-prev-button.svelte +1 -7
  81. package/dist/bits/date-picker/components/date-picker.svelte +1 -5
  82. package/dist/bits/date-picker/ctx.d.ts +2 -2
  83. package/dist/bits/date-picker/ctx.js +5 -5
  84. package/dist/bits/date-picker/types.d.ts +1 -1
  85. package/dist/bits/date-range-field/_export.types.d.ts +1 -1
  86. package/dist/bits/date-range-field/components/date-range-field.svelte +2 -11
  87. package/dist/bits/date-range-field/ctx.d.ts +1 -1
  88. package/dist/bits/date-range-field/ctx.js +1 -1
  89. package/dist/bits/date-range-picker/_export.types.d.ts +1 -1
  90. package/dist/bits/date-range-picker/components/date-range-picker-content.svelte +3 -18
  91. package/dist/bits/date-range-picker/components/date-range-picker-field.svelte +1 -5
  92. package/dist/bits/date-range-picker/ctx.d.ts +2 -2
  93. package/dist/bits/date-range-picker/ctx.js +5 -5
  94. package/dist/bits/date-range-picker/types.d.ts +1 -1
  95. package/dist/bits/dialog/_export.types.d.ts +1 -1
  96. package/dist/bits/dialog/_types.d.ts +1 -1
  97. package/dist/bits/dialog/components/dialog-title.svelte +1 -6
  98. package/dist/bits/dialog/ctx.js +4 -4
  99. package/dist/bits/dialog/types.d.ts +1 -1
  100. package/dist/bits/dropdown-menu/_export.types.d.ts +1 -1
  101. package/dist/bits/dropdown-menu/types.d.ts +1 -1
  102. package/dist/bits/floating/helpers.js +3 -3
  103. package/dist/bits/index.d.ts +1 -0
  104. package/dist/bits/index.js +1 -0
  105. package/dist/bits/label/_export.types.d.ts +1 -1
  106. package/dist/bits/label/components/label.svelte +1 -6
  107. package/dist/bits/label/ctx.js +1 -1
  108. package/dist/bits/label/types.d.ts +1 -1
  109. package/dist/bits/link-preview/_export.types.d.ts +1 -1
  110. package/dist/bits/link-preview/components/link-preview.svelte +4 -7
  111. package/dist/bits/link-preview/ctx.js +6 -6
  112. package/dist/bits/link-preview/types.d.ts +1 -1
  113. package/dist/bits/menu/components/menu-content.svelte +1 -6
  114. package/dist/bits/menu/components/menu-sub.svelte +4 -7
  115. package/dist/bits/menu/components/menu.svelte +4 -7
  116. package/dist/bits/menu/components/menu.svelte.d.ts +2 -2
  117. package/dist/bits/menu/ctx.d.ts +8 -8
  118. package/dist/bits/menu/ctx.js +20 -20
  119. package/dist/bits/menu/types.d.ts +1 -1
  120. package/dist/bits/menubar/_export.types.d.ts +1 -1
  121. package/dist/bits/menubar/components/menubar-menu.svelte +4 -7
  122. package/dist/bits/menubar/components/menubar-menu.svelte.d.ts +2 -2
  123. package/dist/bits/menubar/components/menubar-sub.svelte +4 -7
  124. package/dist/bits/menubar/ctx.d.ts +3 -3
  125. package/dist/bits/menubar/ctx.js +12 -12
  126. package/dist/bits/menubar/types.d.ts +1 -1
  127. package/dist/bits/pagination/_export.types.d.ts +1 -1
  128. package/dist/bits/pagination/components/pagination-next-button.svelte +1 -7
  129. package/dist/bits/pagination/components/pagination-page.svelte +1 -7
  130. package/dist/bits/pagination/components/pagination-prev-button.svelte +1 -7
  131. package/dist/bits/pagination/ctx.js +2 -2
  132. package/dist/bits/pagination/types.d.ts +1 -1
  133. package/dist/bits/pin-input/_export.types.d.ts +1 -1
  134. package/dist/bits/pin-input/ctx.d.ts +1 -1
  135. package/dist/bits/pin-input/ctx.js +2 -2
  136. package/dist/bits/pin-input/types.d.ts +1 -1
  137. package/dist/bits/popover/_export.types.d.ts +1 -1
  138. package/dist/bits/popover/components/popover-content.svelte +3 -18
  139. package/dist/bits/popover/components/popover.svelte +4 -7
  140. package/dist/bits/popover/ctx.js +7 -7
  141. package/dist/bits/popover/types.d.ts +1 -1
  142. package/dist/bits/progress/ctx.js +2 -2
  143. package/dist/bits/radio-group/_export.types.d.ts +1 -1
  144. package/dist/bits/radio-group/ctx.js +2 -2
  145. package/dist/bits/radio-group/types.d.ts +1 -1
  146. package/dist/bits/range-calendar/_export.types.d.ts +1 -1
  147. package/dist/bits/range-calendar/_types.d.ts +1 -1
  148. package/dist/bits/range-calendar/components/range-calendar-next-button.svelte +1 -7
  149. package/dist/bits/range-calendar/components/range-calendar-prev-button.svelte +1 -7
  150. package/dist/bits/range-calendar/components/range-calendar.svelte +1 -6
  151. package/dist/bits/range-calendar/ctx.js +2 -2
  152. package/dist/bits/range-calendar/types.d.ts +1 -1
  153. package/dist/bits/select/_export.types.d.ts +1 -1
  154. package/dist/bits/select/_types.d.ts +1 -1
  155. package/dist/bits/select/components/select-content.svelte +1 -7
  156. package/dist/bits/select/components/select-value.svelte +1 -6
  157. package/dist/bits/select/components/select.svelte.d.ts +1 -1
  158. package/dist/bits/select/ctx.d.ts +4 -4
  159. package/dist/bits/select/ctx.js +11 -11
  160. package/dist/bits/select/types.d.ts +1 -1
  161. package/dist/bits/separator/ctx.js +2 -2
  162. package/dist/bits/slider/_export.types.d.ts +1 -1
  163. package/dist/bits/slider/components/slider-thumb.svelte +1 -6
  164. package/dist/bits/slider/ctx.js +2 -2
  165. package/dist/bits/slider/types.d.ts +1 -1
  166. package/dist/bits/switch/_export.types.d.ts +1 -1
  167. package/dist/bits/switch/ctx.js +2 -2
  168. package/dist/bits/switch/types.d.ts +1 -1
  169. package/dist/bits/tabs/_export.types.d.ts +1 -1
  170. package/dist/bits/tabs/ctx.js +2 -2
  171. package/dist/bits/tabs/types.d.ts +1 -1
  172. package/dist/bits/toggle/_export.types.d.ts +1 -1
  173. package/dist/bits/toggle/_types.d.ts +1 -1
  174. package/dist/bits/toggle/ctx.js +2 -2
  175. package/dist/bits/toggle/types.d.ts +1 -1
  176. package/dist/bits/toggle-group/_export.types.d.ts +1 -1
  177. package/dist/bits/toggle-group/ctx.js +2 -2
  178. package/dist/bits/toggle-group/types.d.ts +1 -1
  179. package/dist/bits/toolbar/_export.types.d.ts +1 -1
  180. package/dist/bits/toolbar/components/toolbar-button.svelte +1 -7
  181. package/dist/bits/toolbar/ctx.js +5 -5
  182. package/dist/bits/toolbar/types.d.ts +1 -1
  183. package/dist/bits/tooltip/_export.types.d.ts +1 -1
  184. package/dist/bits/tooltip/components/tooltip.svelte +4 -7
  185. package/dist/bits/tooltip/ctx.js +7 -7
  186. package/dist/bits/tooltip/types.d.ts +1 -1
  187. package/dist/helpers/builders.js +1 -1
  188. package/dist/internal/attrs.js +1 -1
  189. package/dist/internal/focus.js +1 -1
  190. package/dist/internal/kbd.js +1 -1
  191. package/dist/internal/style.js +1 -1
  192. package/package.json +21 -22
@@ -0,0 +1,104 @@
1
+ <script>import { createDispatcher } from "../../../internal/events.js";
2
+ import { melt } from "@melt-ui/svelte";
3
+ import { getCtx, updatePositioning } from "../ctx.js";
4
+ export let transition = void 0;
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;
10
+ export let asChild = false;
11
+ export let id = void 0;
12
+ export let side = "bottom";
13
+ export let align = "center";
14
+ export let sideOffset = 0;
15
+ export let alignOffset = 0;
16
+ export let collisionPadding = 8;
17
+ export let avoidCollisions = true;
18
+ export let collisionBoundary = void 0;
19
+ export let sameWidth = true;
20
+ export let fitViewport = false;
21
+ export let el = void 0;
22
+ const {
23
+ elements: { menu },
24
+ states: { open },
25
+ ids,
26
+ getAttrs
27
+ } = getCtx();
28
+ const dispatch = createDispatcher();
29
+ const attrs = getAttrs("content");
30
+ $:
31
+ if (id) {
32
+ ids.menu.set(id);
33
+ }
34
+ $:
35
+ builder = $menu;
36
+ $:
37
+ Object.assign(builder, attrs);
38
+ $:
39
+ if ($open)
40
+ updatePositioning({
41
+ side,
42
+ align,
43
+ sideOffset,
44
+ alignOffset,
45
+ collisionPadding,
46
+ avoidCollisions,
47
+ collisionBoundary,
48
+ sameWidth,
49
+ fitViewport
50
+ });
51
+ </script>
52
+
53
+ <!-- svelte-ignore a11y-no-static-element-interactions / applied by melt's builder-->
54
+ {#if asChild && $open}
55
+ <slot {builder} />
56
+ {:else if transition && $open}
57
+ <div
58
+ bind:this={el}
59
+ transition:transition={transitionConfig}
60
+ {...builder} use:builder.action
61
+ {...$$restProps}
62
+ on:m-pointerleave={dispatch}
63
+ on:keydown
64
+ >
65
+ <slot {builder} />
66
+ </div>
67
+ {:else if inTransition && outTransition && $open}
68
+ <div
69
+ bind:this={el}
70
+ in:inTransition={inTransitionConfig}
71
+ out:outTransition={outTransitionConfig}
72
+ {...builder} use:builder.action
73
+ {...$$restProps}
74
+ on:m-pointerleave={dispatch}
75
+ on:keydown
76
+ >
77
+ <slot {builder} />
78
+ </div>
79
+ {:else if inTransition && $open}
80
+ <div
81
+ in:inTransition={inTransitionConfig}
82
+ {...builder} use:builder.action
83
+ {...$$restProps}
84
+ on:m-pointerleave={dispatch}
85
+ on:keydown
86
+ >
87
+ <slot {builder} />
88
+ </div>
89
+ {:else if outTransition && $open}
90
+ <div
91
+ bind:this={el}
92
+ out:outTransition={outTransitionConfig}
93
+ {...builder} use:builder.action
94
+ {...$$restProps}
95
+ on:m-pointerleave={dispatch}
96
+ on:keydown
97
+ >
98
+ <slot {builder} />
99
+ </div>
100
+ {:else if $open}
101
+ <div bind:this={el} {...builder} use:builder.action {...$$restProps} on:m-pointerleave={dispatch} on:keydown>
102
+ <slot {builder} />
103
+ </div>
104
+ {/if}
@@ -0,0 +1,27 @@
1
+ import { SvelteComponent } from "svelte";
2
+ import type { Transition } from "../../../internal/types.js";
3
+ import type { ContentEvents, ContentProps } from "../types.js";
4
+ declare class __sveltets_Render<T extends Transition, In extends Transition, Out extends Transition> {
5
+ props(): ContentProps<T, In, Out>;
6
+ events(): ContentEvents;
7
+ slots(): {
8
+ default: {
9
+ builder: {
10
+ readonly hidden: true | undefined;
11
+ readonly id: string;
12
+ readonly role: "listbox";
13
+ readonly style: string;
14
+ } & {
15
+ [x: `data-melt-${string}`]: "";
16
+ } & {
17
+ action: (node: HTMLElement) => import("@melt-ui/svelte/internal/types").MeltActionReturn<"pointerleave">;
18
+ };
19
+ };
20
+ };
21
+ }
22
+ export type ComboboxContentProps<T extends Transition, In extends Transition, Out extends Transition> = ReturnType<__sveltets_Render<T, In, Out>['props']>;
23
+ export type ComboboxContentEvents<T extends Transition, In extends Transition, Out extends Transition> = ReturnType<__sveltets_Render<T, In, Out>['events']>;
24
+ export type ComboboxContentSlots<T extends Transition, In extends Transition, Out extends Transition> = ReturnType<__sveltets_Render<T, In, Out>['slots']>;
25
+ export default class ComboboxContent<T extends Transition, In extends Transition, Out extends Transition> extends SvelteComponent<ComboboxContentProps<T, In, Out>, ComboboxContentEvents<T, In, Out>, ComboboxContentSlots<T, In, Out>> {
26
+ }
27
+ export {};
@@ -0,0 +1,25 @@
1
+ <script>import { melt } from "@melt-ui/svelte";
2
+ import { getGroupLabel, getCtx } from "../ctx.js";
3
+ export let asChild = false;
4
+ export let id = void 0;
5
+ export let el = void 0;
6
+ const { ids, getAttrs } = getCtx();
7
+ const { groupLabel, id: groupId } = getGroupLabel();
8
+ const attrs = getAttrs("group-label");
9
+ $:
10
+ if (id) {
11
+ ids.label.set(id);
12
+ }
13
+ $:
14
+ builder = $groupLabel(groupId);
15
+ $:
16
+ Object.assign(builder, attrs);
17
+ </script>
18
+
19
+ {#if asChild}
20
+ <slot {builder} />
21
+ {:else}
22
+ <div bind:this={el} {...builder} use:builder.action {...$$restProps}>
23
+ <slot {builder} />
24
+ </div>
25
+ {/if}
@@ -0,0 +1,23 @@
1
+ import { SvelteComponent } from "svelte";
2
+ import type { GroupLabelEvents, GroupLabelProps } from "../types.js";
3
+ declare const __propDef: {
4
+ props: GroupLabelProps;
5
+ slots: {
6
+ default: {
7
+ builder: {
8
+ id: string;
9
+ } & {
10
+ [x: `data-melt-${string}`]: "";
11
+ } & {
12
+ action: import("svelte/action").Action<any, any, Record<never, any>>;
13
+ };
14
+ };
15
+ };
16
+ events: GroupLabelEvents;
17
+ };
18
+ export type ComboboxGroupLabelProps = typeof __propDef.props;
19
+ export type ComboboxGroupLabelEvents = typeof __propDef.events;
20
+ export type ComboboxGroupLabelSlots = typeof __propDef.slots;
21
+ export default class ComboboxGroupLabel extends SvelteComponent<ComboboxGroupLabelProps, ComboboxGroupLabelEvents, ComboboxGroupLabelSlots> {
22
+ }
23
+ export {};
@@ -0,0 +1,19 @@
1
+ <script>import { melt } from "@melt-ui/svelte";
2
+ import { setGroupCtx } from "../ctx.js";
3
+ export let asChild = false;
4
+ export let el = void 0;
5
+ const { group, id, getAttrs } = setGroupCtx();
6
+ const attrs = getAttrs("group");
7
+ $:
8
+ builder = $group(id);
9
+ $:
10
+ Object.assign(builder, attrs);
11
+ </script>
12
+
13
+ {#if asChild}
14
+ <slot {builder} />
15
+ {:else}
16
+ <div bind:this={el} {...builder} use:builder.action {...$$restProps}>
17
+ <slot {builder} />
18
+ </div>
19
+ {/if}
@@ -0,0 +1,26 @@
1
+ import { SvelteComponent } from "svelte";
2
+ import type { GroupProps } from "../types.js";
3
+ declare const __propDef: {
4
+ props: GroupProps;
5
+ events: {
6
+ [evt: string]: CustomEvent<any>;
7
+ };
8
+ slots: {
9
+ default: {
10
+ builder: {
11
+ role: string;
12
+ 'aria-labelledby': string;
13
+ } & {
14
+ [x: `data-melt-${string}`]: "";
15
+ } & {
16
+ action: import("svelte/action").Action<any, any, Record<never, any>>;
17
+ };
18
+ };
19
+ };
20
+ };
21
+ export type ComboboxGroupProps = typeof __propDef.props;
22
+ export type ComboboxGroupEvents = typeof __propDef.events;
23
+ export type ComboboxGroupSlots = typeof __propDef.slots;
24
+ export default class ComboboxGroup extends SvelteComponent<ComboboxGroupProps, ComboboxGroupEvents, ComboboxGroupSlots> {
25
+ }
26
+ export {};
@@ -0,0 +1,25 @@
1
+ <script>import { melt } from "@melt-ui/svelte";
2
+ import { getCtx } from "../ctx.js";
3
+ export let asChild = false;
4
+ export let el = void 0;
5
+ const {
6
+ elements: { hiddenInput },
7
+ options: { disabled },
8
+ getAttrs
9
+ } = getCtx();
10
+ $:
11
+ attrs = {
12
+ ...getAttrs("input"),
13
+ disabled: $disabled ? true : void 0
14
+ };
15
+ $:
16
+ builder = $hiddenInput;
17
+ $:
18
+ Object.assign(builder, attrs);
19
+ </script>
20
+
21
+ {#if asChild}
22
+ <slot {builder} />
23
+ {:else}
24
+ <input bind:this={el} {...builder} use:builder.action {...$$restProps} />
25
+ {/if}
@@ -0,0 +1,32 @@
1
+ import { SvelteComponent } from "svelte";
2
+ import type { InputProps } from "../types.js";
3
+ declare const __propDef: {
4
+ props: InputProps;
5
+ events: {
6
+ [evt: string]: CustomEvent<any>;
7
+ };
8
+ slots: {
9
+ default: {
10
+ builder: {
11
+ required: boolean | undefined;
12
+ value: unknown;
13
+ name: string | undefined;
14
+ type: string;
15
+ 'aria-hidden': boolean;
16
+ hidden: boolean;
17
+ tabIndex: number;
18
+ style: string;
19
+ } & {
20
+ [x: `data-melt-${string}`]: "";
21
+ } & {
22
+ action: import("svelte/action").Action<any, any, Record<never, any>>;
23
+ };
24
+ };
25
+ };
26
+ };
27
+ export type ComboboxHiddenInputProps = typeof __propDef.props;
28
+ export type ComboboxHiddenInputEvents = typeof __propDef.events;
29
+ export type ComboboxHiddenInputSlots = typeof __propDef.slots;
30
+ export default class ComboboxHiddenInput extends SvelteComponent<ComboboxHiddenInputProps, ComboboxHiddenInputEvents, ComboboxHiddenInputSlots> {
31
+ }
32
+ export {};
@@ -0,0 +1,31 @@
1
+ <script>import { melt } from "@melt-ui/svelte";
2
+ import { getCtx } from "../ctx.js";
3
+ import { createDispatcher } from "../../../internal/events.js";
4
+ export let asChild = false;
5
+ export let placeholder = void 0;
6
+ export let el = void 0;
7
+ const {
8
+ elements: { input },
9
+ getAttrs
10
+ } = getCtx();
11
+ const dispatch = createDispatcher();
12
+ const attrs = getAttrs("input");
13
+ $:
14
+ builder = $input;
15
+ $:
16
+ Object.assign(builder, attrs);
17
+ </script>
18
+
19
+ {#if asChild}
20
+ <slot {builder} {placeholder} />
21
+ {:else}
22
+ <input
23
+ bind:this={el}
24
+ {...builder} use:builder.action
25
+ {...$$restProps}
26
+ {placeholder}
27
+ on:m-click={dispatch}
28
+ on:m-keydown={dispatch}
29
+ on:m-input={dispatch}
30
+ />
31
+ {/if}
@@ -0,0 +1,33 @@
1
+ import { SvelteComponent } from "svelte";
2
+ import type { InputProps, InputEvents } from "../types.js";
3
+ declare const __propDef: {
4
+ props: InputProps;
5
+ slots: {
6
+ default: {
7
+ builder: {
8
+ readonly role: "combobox";
9
+ readonly value: string;
10
+ readonly disabled: true | undefined;
11
+ readonly type: "button" | undefined;
12
+ readonly 'aria-expanded': boolean;
13
+ readonly 'aria-controls': string;
14
+ readonly 'aria-activedescendant': string | undefined;
15
+ readonly 'aria-autocomplete': "list";
16
+ readonly 'aria-labelledby': string;
17
+ readonly id: string;
18
+ } & {
19
+ [x: `data-melt-${string}`]: "";
20
+ } & {
21
+ action: (node: HTMLElement) => import("@melt-ui/svelte/internal/types").MeltActionReturn<"input" | "keydown" | "click">;
22
+ };
23
+ placeholder: string | null | undefined;
24
+ };
25
+ };
26
+ events: InputEvents;
27
+ };
28
+ export type ComboboxInputProps = typeof __propDef.props;
29
+ export type ComboboxInputEvents = typeof __propDef.events;
30
+ export type ComboboxInputSlots = typeof __propDef.slots;
31
+ export default class ComboboxInput extends SvelteComponent<ComboboxInputProps, ComboboxInputEvents, ComboboxInputSlots> {
32
+ }
33
+ export {};
@@ -0,0 +1,16 @@
1
+ <script>import { getItemIndicator } from "../ctx.js";
2
+ export let asChild = false;
3
+ export let el = void 0;
4
+ const { isSelected, value, getAttrs } = getItemIndicator();
5
+ const attrs = getAttrs("indicator");
6
+ </script>
7
+
8
+ {#if asChild}
9
+ <slot {attrs} isSelected={$isSelected(value)} />
10
+ {:else}
11
+ <div bind:this={el} {...$$restProps} {...attrs}>
12
+ {#if $isSelected(value)}
13
+ <slot {attrs} isSelected={$isSelected(value)} />
14
+ {/if}
15
+ </div>
16
+ {/if}
@@ -0,0 +1,20 @@
1
+ import { SvelteComponent } from "svelte";
2
+ import type { IndicatorProps } from "../types.js";
3
+ declare const __propDef: {
4
+ props: IndicatorProps;
5
+ events: {
6
+ [evt: string]: CustomEvent<any>;
7
+ };
8
+ slots: {
9
+ default: {
10
+ attrs: Record<string, string>;
11
+ isSelected: boolean;
12
+ };
13
+ };
14
+ };
15
+ export type ComboboxItemIndicatorProps = typeof __propDef.props;
16
+ export type ComboboxItemIndicatorEvents = typeof __propDef.events;
17
+ export type ComboboxItemIndicatorSlots = typeof __propDef.slots;
18
+ export default class ComboboxItemIndicator extends SvelteComponent<ComboboxItemIndicatorProps, ComboboxItemIndicatorEvents, ComboboxItemIndicatorSlots> {
19
+ }
20
+ export {};
@@ -0,0 +1,47 @@
1
+ <script>import { melt } from "@melt-ui/svelte";
2
+ import { setItemCtx } from "../ctx.js";
3
+ import { createDispatcher } from "../../../internal/events.js";
4
+ export let value;
5
+ export let disabled = void 0;
6
+ export let label = void 0;
7
+ export let asChild = false;
8
+ export let el = void 0;
9
+ const {
10
+ elements: { option: item },
11
+ helpers: { isSelected: isSelectedStore },
12
+ getAttrs
13
+ } = setItemCtx(value);
14
+ const dispatch = createDispatcher();
15
+ const attrs = getAttrs("item");
16
+ $:
17
+ if (!label && typeof value === "string")
18
+ label = value;
19
+ $:
20
+ builder = $item({ value, disabled, label });
21
+ $:
22
+ Object.assign(builder, attrs);
23
+ $:
24
+ isSelected = $isSelectedStore(value);
25
+ </script>
26
+
27
+ <!-- svelte-ignore a11y-no-static-element-interactions / applied by melt's builder-->
28
+
29
+ {#if asChild}
30
+ <slot {builder} {isSelected} />
31
+ {:else}
32
+ <div
33
+ bind:this={el}
34
+ {...builder} use:builder.action
35
+ {...$$restProps}
36
+ on:m-click={dispatch}
37
+ on:m-pointermove={dispatch}
38
+ on:focusin
39
+ on:keydown
40
+ on:focusout
41
+ on:pointerleave
42
+ >
43
+ <slot {builder} {isSelected}>
44
+ {label ? label : value}
45
+ </slot>
46
+ </div>
47
+ {/if}
@@ -0,0 +1,31 @@
1
+ import { SvelteComponent } from "svelte";
2
+ import type { ItemEvents, ItemProps } from "../types.js";
3
+ declare const __propDef: {
4
+ props: ItemProps;
5
+ slots: {
6
+ default: {
7
+ builder: {
8
+ readonly 'data-value': string;
9
+ readonly 'data-label': string | undefined;
10
+ readonly 'data-disabled': true | undefined;
11
+ readonly 'aria-disabled': true | undefined;
12
+ readonly 'aria-selected': boolean;
13
+ readonly 'data-selected': "" | undefined;
14
+ readonly id: string;
15
+ readonly role: "option";
16
+ } & {
17
+ [x: `data-melt-${string}`]: "";
18
+ } & {
19
+ action: (node: HTMLElement) => import("@melt-ui/svelte/internal/types").MeltActionReturn<"click" | "pointermove">;
20
+ };
21
+ isSelected: boolean;
22
+ };
23
+ };
24
+ events: ItemEvents;
25
+ };
26
+ export type ComboboxItemProps = typeof __propDef.props;
27
+ export type ComboboxItemEvents = typeof __propDef.events;
28
+ export type ComboboxItemSlots = typeof __propDef.slots;
29
+ export default class ComboboxItem extends SvelteComponent<ComboboxItemProps, ComboboxItemEvents, ComboboxItemSlots> {
30
+ }
31
+ export {};
@@ -0,0 +1,22 @@
1
+ <script>import { melt } from "@melt-ui/svelte";
2
+ import { getCtx } from "../ctx.js";
3
+ export let asChild = false;
4
+ export let el = void 0;
5
+ const {
6
+ elements: { label },
7
+ getAttrs
8
+ } = getCtx();
9
+ const attrs = getAttrs("label");
10
+ $:
11
+ builder = $label;
12
+ $:
13
+ Object.assign(builder, attrs);
14
+ </script>
15
+
16
+ {#if asChild}
17
+ <slot {builder} />
18
+ {:else}
19
+ <label bind:this={el} {...builder} use:builder.action {...$$restProps} for={builder.id}>
20
+ <slot />
21
+ </label>
22
+ {/if}
@@ -0,0 +1,17 @@
1
+ import { SvelteComponent } from "svelte";
2
+ import type { LabelProps } from "../types.js";
3
+ declare const __propDef: {
4
+ props: LabelProps;
5
+ events: {
6
+ [evt: string]: CustomEvent<any>;
7
+ };
8
+ slots: {
9
+ default: {};
10
+ };
11
+ };
12
+ export type ComboboxLabelProps = typeof __propDef.props;
13
+ export type ComboboxLabelEvents = typeof __propDef.events;
14
+ export type ComboboxLabelSlots = typeof __propDef.slots;
15
+ export default class ComboboxLabel extends SvelteComponent<ComboboxLabelProps, ComboboxLabelEvents, ComboboxLabelSlots> {
16
+ }
17
+ export {};
@@ -0,0 +1,113 @@
1
+ <script context="module"></script>
2
+
3
+ <script generics="T, Multiple extends boolean = false">import { arraysAreEqual } from "../../../internal/arrays.js";
4
+ import { derived } from "svelte/store";
5
+ import { setCtx } from "../ctx.js";
6
+ export let required = void 0;
7
+ export let disabled = void 0;
8
+ export let preventScroll = void 0;
9
+ export let loop = void 0;
10
+ export let closeOnEscape = void 0;
11
+ export let closeOnOutsideClick = void 0;
12
+ export let portal = void 0;
13
+ export let name = void 0;
14
+ export let multiple = false;
15
+ export let selected = void 0;
16
+ export let onSelectedChange = void 0;
17
+ export let open = void 0;
18
+ export let onOpenChange = void 0;
19
+ export let items = [];
20
+ export let onOutsideClick = void 0;
21
+ export let inputValue = "";
22
+ const {
23
+ states: { open: localOpen, selected: localSelected, inputValue: localInputValue, touchedInput },
24
+ updateOption,
25
+ ids
26
+ } = setCtx({
27
+ required,
28
+ disabled,
29
+ preventScroll,
30
+ loop,
31
+ closeOnEscape,
32
+ closeOnOutsideClick,
33
+ portal,
34
+ name,
35
+ onOutsideClick,
36
+ multiple,
37
+ forceVisible: true,
38
+ defaultSelected: Array.isArray(selected) ? [...selected] : (
39
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any
40
+ selected
41
+ ),
42
+ defaultOpen: open,
43
+ onSelectedChange: ({ next }) => {
44
+ if (Array.isArray(next)) {
45
+ if (!Array.isArray(selected) || !arraysAreEqual(selected, next)) {
46
+ onSelectedChange?.(next);
47
+ selected = next;
48
+ return next;
49
+ }
50
+ return next;
51
+ }
52
+ if (selected !== next) {
53
+ onSelectedChange?.(next);
54
+ selected = next;
55
+ }
56
+ inputValue = next?.label ?? (typeof next?.value === "string" ? next?.value : "");
57
+ localInputValue.set(inputValue);
58
+ return next;
59
+ },
60
+ onOpenChange: ({ next }) => {
61
+ if (open !== next) {
62
+ onOpenChange?.(next);
63
+ open = next;
64
+ }
65
+ return next;
66
+ },
67
+ items
68
+ });
69
+ const idValues = derived(
70
+ [ids.menu, ids.trigger, ids.label],
71
+ ([$menuId, $triggerId, $labelId]) => ({
72
+ menu: $menuId,
73
+ trigger: $triggerId,
74
+ label: $labelId
75
+ })
76
+ );
77
+ $:
78
+ if ($touchedInput)
79
+ inputValue = $localInputValue;
80
+ $:
81
+ inputValue !== void 0 && localInputValue.set(inputValue);
82
+ $:
83
+ open !== void 0 && localOpen.set(open);
84
+ $:
85
+ selected !== void 0 && localSelected.set(
86
+ Array.isArray(selected) ? [...selected] : (
87
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any
88
+ selected
89
+ )
90
+ );
91
+ $:
92
+ updateOption("required", required);
93
+ $:
94
+ updateOption("disabled", disabled);
95
+ $:
96
+ updateOption("preventScroll", preventScroll);
97
+ $:
98
+ updateOption("loop", loop);
99
+ $:
100
+ updateOption("closeOnEscape", closeOnEscape);
101
+ $:
102
+ updateOption("closeOnOutsideClick", closeOnOutsideClick);
103
+ $:
104
+ updateOption("portal", portal);
105
+ $:
106
+ updateOption("name", name);
107
+ $:
108
+ updateOption("multiple", multiple);
109
+ $:
110
+ updateOption("onOutsideClick", onOutsideClick);
111
+ </script>
112
+
113
+ <slot ids={$idValues} />
@@ -0,0 +1,41 @@
1
+ import { SvelteComponent } from "svelte";
2
+ declare class __sveltets_Render<T, Multiple extends boolean = false> {
3
+ props(): {
4
+ disabled?: boolean | undefined;
5
+ preventScroll?: boolean | undefined;
6
+ closeOnEscape?: boolean | undefined;
7
+ closeOnOutsideClick?: boolean | undefined;
8
+ onOutsideClick?: ((event: PointerEvent) => void) | undefined;
9
+ portal?: string | HTMLElement | null | undefined;
10
+ required?: boolean | undefined;
11
+ name?: string | undefined;
12
+ scrollAlignment?: "center" | "nearest" | undefined;
13
+ loop?: boolean | undefined;
14
+ highlightOnHover?: boolean | undefined;
15
+ selected?: import("../_types.js").WhenTrue<Multiple, import("../../../index.js").Selected<T>[] | undefined, import("../../../index.js").Selected<T> | undefined, import("../../../index.js").Selected<T> | import("../../../index.js").Selected<T>[] | undefined> | undefined;
16
+ onSelectedChange?: import("../../../internal/types.js").OnChangeFn<import("../_types.js").WhenTrue<Multiple, import("../../../index.js").Selected<T>[] | undefined, import("../../../index.js").Selected<T> | undefined, import("../../../index.js").Selected<T> | import("../../../index.js").Selected<T>[] | undefined>> | undefined;
17
+ open?: boolean | undefined;
18
+ onOpenChange?: import("../../../internal/types.js").OnChangeFn<boolean> | undefined;
19
+ multiple?: Multiple | undefined;
20
+ inputValue?: string | undefined;
21
+ items?: import("../../../index.js").Selected<T>[] | undefined;
22
+ };
23
+ events(): {} & {
24
+ [evt: string]: CustomEvent<any>;
25
+ };
26
+ slots(): {
27
+ default: {
28
+ ids: {
29
+ menu: string;
30
+ trigger: string;
31
+ label: string;
32
+ };
33
+ };
34
+ };
35
+ }
36
+ export type ComboboxProps<T, Multiple extends boolean = false> = ReturnType<__sveltets_Render<T, Multiple>['props']>;
37
+ export type ComboboxEvents<T, Multiple extends boolean = false> = ReturnType<__sveltets_Render<T, Multiple>['events']>;
38
+ export type ComboboxSlots<T, Multiple extends boolean = false> = ReturnType<__sveltets_Render<T, Multiple>['slots']>;
39
+ export default class Combobox<T, Multiple extends boolean = false> extends SvelteComponent<ComboboxProps<T, Multiple>, ComboboxEvents<T, Multiple>, ComboboxSlots<T, Multiple>> {
40
+ }
41
+ export {};