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.
- package/dist/bits/accordion/_export.types.d.ts +1 -1
- package/dist/bits/accordion/components/accordion-content.svelte +3 -18
- package/dist/bits/accordion/ctx.js +3 -3
- package/dist/bits/accordion/types.d.ts +1 -1
- package/dist/bits/alert-dialog/_export.types.d.ts +1 -1
- package/dist/bits/alert-dialog/_types.d.ts +1 -1
- package/dist/bits/alert-dialog/components/alert-dialog-overlay.svelte +2 -12
- package/dist/bits/alert-dialog/components/alert-dialog-title.svelte +1 -6
- package/dist/bits/alert-dialog/ctx.js +4 -4
- package/dist/bits/alert-dialog/types.d.ts +1 -1
- package/dist/bits/aspect-ratio/components/aspect-ratio.svelte +1 -5
- package/dist/bits/avatar/_export.types.d.ts +1 -1
- package/dist/bits/avatar/ctx.js +2 -2
- package/dist/bits/button/_export.types.d.ts +1 -1
- package/dist/bits/button/types.d.ts +1 -1
- package/dist/bits/calendar/_export.types.d.ts +1 -1
- package/dist/bits/calendar/_types.d.ts +1 -1
- package/dist/bits/calendar/components/calendar-next-button.svelte +1 -7
- package/dist/bits/calendar/components/calendar-prev-button.svelte +1 -7
- package/dist/bits/calendar/components/calendar.svelte +2 -12
- package/dist/bits/calendar/ctx.js +2 -2
- package/dist/bits/calendar/types.d.ts +1 -1
- package/dist/bits/checkbox/_export.types.d.ts +1 -1
- package/dist/bits/checkbox/_types.d.ts +1 -1
- package/dist/bits/checkbox/components/checkbox-input.svelte +1 -6
- package/dist/bits/checkbox/ctx.js +2 -2
- package/dist/bits/checkbox/types.d.ts +1 -1
- package/dist/bits/collapsible/_export.types.d.ts +1 -1
- package/dist/bits/collapsible/components/collapsible-content.svelte +3 -18
- package/dist/bits/collapsible/components/collapsible-trigger.svelte +1 -7
- package/dist/bits/collapsible/ctx.js +2 -2
- package/dist/bits/collapsible/types.d.ts +1 -1
- package/dist/bits/combobox/_export.types.d.ts +1 -0
- package/dist/bits/combobox/_export.types.js +1 -0
- package/dist/bits/combobox/_types.d.ts +62 -0
- package/dist/bits/combobox/_types.js +1 -0
- package/dist/bits/combobox/components/combobox-arrow.svelte +21 -0
- package/dist/bits/combobox/components/combobox-arrow.svelte.d.ts +26 -0
- package/dist/bits/combobox/components/combobox-content.svelte +104 -0
- package/dist/bits/combobox/components/combobox-content.svelte.d.ts +27 -0
- package/dist/bits/combobox/components/combobox-group-label.svelte +25 -0
- package/dist/bits/combobox/components/combobox-group-label.svelte.d.ts +23 -0
- package/dist/bits/combobox/components/combobox-group.svelte +19 -0
- package/dist/bits/combobox/components/combobox-group.svelte.d.ts +26 -0
- package/dist/bits/combobox/components/combobox-hidden-input.svelte +25 -0
- package/dist/bits/combobox/components/combobox-hidden-input.svelte.d.ts +32 -0
- package/dist/bits/combobox/components/combobox-input.svelte +31 -0
- package/dist/bits/combobox/components/combobox-input.svelte.d.ts +33 -0
- package/dist/bits/combobox/components/combobox-item-indicator.svelte +16 -0
- package/dist/bits/combobox/components/combobox-item-indicator.svelte.d.ts +20 -0
- package/dist/bits/combobox/components/combobox-item.svelte +47 -0
- package/dist/bits/combobox/components/combobox-item.svelte.d.ts +31 -0
- package/dist/bits/combobox/components/combobox-label.svelte +22 -0
- package/dist/bits/combobox/components/combobox-label.svelte.d.ts +17 -0
- package/dist/bits/combobox/components/combobox.svelte +113 -0
- package/dist/bits/combobox/components/combobox.svelte.d.ts +41 -0
- package/dist/bits/combobox/ctx.d.ts +187 -0
- package/dist/bits/combobox/ctx.js +91 -0
- package/dist/bits/combobox/index.d.ts +12 -0
- package/dist/bits/combobox/index.js +12 -0
- package/dist/bits/combobox/types.d.ts +36 -0
- package/dist/bits/combobox/types.js +1 -0
- package/dist/bits/context-menu/_export.types.d.ts +1 -1
- package/dist/bits/context-menu/components/context-menu-content.svelte +1 -6
- package/dist/bits/context-menu/components/context-menu.svelte +4 -7
- package/dist/bits/context-menu/components/context-menu.svelte.d.ts +2 -2
- package/dist/bits/context-menu/ctx.d.ts +1 -1
- package/dist/bits/context-menu/ctx.js +5 -5
- package/dist/bits/context-menu/types.d.ts +1 -1
- package/dist/bits/date-field/_export.types.d.ts +1 -1
- package/dist/bits/date-field/components/date-field.svelte +1 -5
- package/dist/bits/date-field/ctx.d.ts +1 -1
- package/dist/bits/date-field/ctx.js +2 -2
- package/dist/bits/date-field/types.d.ts +1 -1
- package/dist/bits/date-picker/_export.types.d.ts +1 -1
- package/dist/bits/date-picker/components/date-picker-calendar.svelte +1 -6
- package/dist/bits/date-picker/components/date-picker-content.svelte +3 -18
- package/dist/bits/date-picker/components/date-picker-field.svelte +1 -5
- package/dist/bits/date-picker/components/date-picker-next-button.svelte +1 -7
- package/dist/bits/date-picker/components/date-picker-prev-button.svelte +1 -7
- package/dist/bits/date-picker/components/date-picker.svelte +1 -5
- package/dist/bits/date-picker/ctx.d.ts +2 -2
- package/dist/bits/date-picker/ctx.js +5 -5
- package/dist/bits/date-picker/types.d.ts +1 -1
- package/dist/bits/date-range-field/_export.types.d.ts +1 -1
- package/dist/bits/date-range-field/components/date-range-field.svelte +2 -11
- package/dist/bits/date-range-field/ctx.d.ts +1 -1
- package/dist/bits/date-range-field/ctx.js +1 -1
- package/dist/bits/date-range-picker/_export.types.d.ts +1 -1
- package/dist/bits/date-range-picker/components/date-range-picker-content.svelte +3 -18
- package/dist/bits/date-range-picker/components/date-range-picker-field.svelte +1 -5
- package/dist/bits/date-range-picker/ctx.d.ts +2 -2
- package/dist/bits/date-range-picker/ctx.js +5 -5
- package/dist/bits/date-range-picker/types.d.ts +1 -1
- package/dist/bits/dialog/_export.types.d.ts +1 -1
- package/dist/bits/dialog/_types.d.ts +1 -1
- package/dist/bits/dialog/components/dialog-title.svelte +1 -6
- package/dist/bits/dialog/ctx.js +4 -4
- package/dist/bits/dialog/types.d.ts +1 -1
- package/dist/bits/dropdown-menu/_export.types.d.ts +1 -1
- package/dist/bits/dropdown-menu/types.d.ts +1 -1
- package/dist/bits/floating/helpers.js +3 -3
- package/dist/bits/index.d.ts +1 -0
- package/dist/bits/index.js +1 -0
- package/dist/bits/label/_export.types.d.ts +1 -1
- package/dist/bits/label/components/label.svelte +1 -6
- package/dist/bits/label/ctx.js +1 -1
- package/dist/bits/label/types.d.ts +1 -1
- package/dist/bits/link-preview/_export.types.d.ts +1 -1
- package/dist/bits/link-preview/components/link-preview.svelte +4 -7
- package/dist/bits/link-preview/ctx.js +6 -6
- package/dist/bits/link-preview/types.d.ts +1 -1
- package/dist/bits/menu/components/menu-content.svelte +1 -6
- package/dist/bits/menu/components/menu-sub.svelte +4 -7
- package/dist/bits/menu/components/menu.svelte +4 -7
- package/dist/bits/menu/components/menu.svelte.d.ts +2 -2
- package/dist/bits/menu/ctx.d.ts +8 -8
- package/dist/bits/menu/ctx.js +20 -20
- package/dist/bits/menu/types.d.ts +1 -1
- package/dist/bits/menubar/_export.types.d.ts +1 -1
- package/dist/bits/menubar/components/menubar-menu.svelte +4 -7
- package/dist/bits/menubar/components/menubar-menu.svelte.d.ts +2 -2
- package/dist/bits/menubar/components/menubar-sub.svelte +4 -7
- package/dist/bits/menubar/ctx.d.ts +3 -3
- package/dist/bits/menubar/ctx.js +12 -12
- package/dist/bits/menubar/types.d.ts +1 -1
- package/dist/bits/pagination/_export.types.d.ts +1 -1
- package/dist/bits/pagination/components/pagination-next-button.svelte +1 -7
- package/dist/bits/pagination/components/pagination-page.svelte +1 -7
- package/dist/bits/pagination/components/pagination-prev-button.svelte +1 -7
- package/dist/bits/pagination/ctx.js +2 -2
- package/dist/bits/pagination/types.d.ts +1 -1
- package/dist/bits/pin-input/_export.types.d.ts +1 -1
- package/dist/bits/pin-input/ctx.d.ts +1 -1
- package/dist/bits/pin-input/ctx.js +2 -2
- package/dist/bits/pin-input/types.d.ts +1 -1
- package/dist/bits/popover/_export.types.d.ts +1 -1
- package/dist/bits/popover/components/popover-content.svelte +3 -18
- package/dist/bits/popover/components/popover.svelte +4 -7
- package/dist/bits/popover/ctx.js +7 -7
- package/dist/bits/popover/types.d.ts +1 -1
- package/dist/bits/progress/ctx.js +2 -2
- package/dist/bits/radio-group/_export.types.d.ts +1 -1
- package/dist/bits/radio-group/ctx.js +2 -2
- package/dist/bits/radio-group/types.d.ts +1 -1
- package/dist/bits/range-calendar/_export.types.d.ts +1 -1
- package/dist/bits/range-calendar/_types.d.ts +1 -1
- package/dist/bits/range-calendar/components/range-calendar-next-button.svelte +1 -7
- package/dist/bits/range-calendar/components/range-calendar-prev-button.svelte +1 -7
- package/dist/bits/range-calendar/components/range-calendar.svelte +1 -6
- package/dist/bits/range-calendar/ctx.js +2 -2
- package/dist/bits/range-calendar/types.d.ts +1 -1
- package/dist/bits/select/_export.types.d.ts +1 -1
- package/dist/bits/select/_types.d.ts +1 -1
- package/dist/bits/select/components/select-content.svelte +1 -7
- package/dist/bits/select/components/select-value.svelte +1 -6
- package/dist/bits/select/components/select.svelte.d.ts +1 -1
- package/dist/bits/select/ctx.d.ts +4 -4
- package/dist/bits/select/ctx.js +11 -11
- package/dist/bits/select/types.d.ts +1 -1
- package/dist/bits/separator/ctx.js +2 -2
- package/dist/bits/slider/_export.types.d.ts +1 -1
- package/dist/bits/slider/components/slider-thumb.svelte +1 -6
- package/dist/bits/slider/ctx.js +2 -2
- package/dist/bits/slider/types.d.ts +1 -1
- package/dist/bits/switch/_export.types.d.ts +1 -1
- package/dist/bits/switch/ctx.js +2 -2
- package/dist/bits/switch/types.d.ts +1 -1
- package/dist/bits/tabs/_export.types.d.ts +1 -1
- package/dist/bits/tabs/ctx.js +2 -2
- package/dist/bits/tabs/types.d.ts +1 -1
- package/dist/bits/toggle/_export.types.d.ts +1 -1
- package/dist/bits/toggle/_types.d.ts +1 -1
- package/dist/bits/toggle/ctx.js +2 -2
- package/dist/bits/toggle/types.d.ts +1 -1
- package/dist/bits/toggle-group/_export.types.d.ts +1 -1
- package/dist/bits/toggle-group/ctx.js +2 -2
- package/dist/bits/toggle-group/types.d.ts +1 -1
- package/dist/bits/toolbar/_export.types.d.ts +1 -1
- package/dist/bits/toolbar/components/toolbar-button.svelte +1 -7
- package/dist/bits/toolbar/ctx.js +5 -5
- package/dist/bits/toolbar/types.d.ts +1 -1
- package/dist/bits/tooltip/_export.types.d.ts +1 -1
- package/dist/bits/tooltip/components/tooltip.svelte +4 -7
- package/dist/bits/tooltip/ctx.js +7 -7
- package/dist/bits/tooltip/types.d.ts +1 -1
- package/dist/helpers/builders.js +1 -1
- package/dist/internal/attrs.js +1 -1
- package/dist/internal/focus.js +1 -1
- package/dist/internal/kbd.js +1 -1
- package/dist/internal/style.js +1 -1
- 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 {};
|