bits-ui 1.0.0-next.17 → 1.0.0-next.19
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/combobox/components/combobox-input.svelte +2 -2
- package/dist/bits/combobox/components/combobox-trigger.svelte +2 -2
- package/dist/bits/combobox/components/combobox.svelte +9 -7
- package/dist/bits/combobox/exports.d.ts +8 -8
- package/dist/bits/combobox/exports.js +8 -8
- package/dist/bits/combobox/types.d.ts +1 -1
- package/dist/bits/dialog/components/dialog-content.svelte +1 -1
- package/dist/bits/index.d.ts +0 -1
- package/dist/bits/index.js +0 -1
- package/dist/bits/menu/menu.svelte.js +2 -2
- package/dist/bits/menubar/menubar.svelte.js +1 -1
- package/dist/bits/{listbox/components/listbox-content-static.svelte → select/components/select-content-static.svelte} +6 -6
- package/dist/bits/{listbox/components/listbox-group-heading.svelte.d.ts → select/components/select-content-static.svelte.d.ts} +4 -4
- package/dist/bits/select/components/select-content.svelte +56 -35
- package/dist/bits/select/components/select-group-heading.svelte +3 -3
- package/dist/bits/select/components/select-group.svelte +4 -3
- package/dist/bits/{listbox/components/listbox-hidden-input.svelte → select/components/select-hidden-input.svelte} +4 -4
- package/dist/bits/{listbox/components/listbox-hidden-input.svelte.d.ts → select/components/select-hidden-input.svelte.d.ts} +4 -4
- package/dist/bits/select/components/select-item.svelte +14 -9
- package/dist/bits/select/components/select-scroll-down-button.svelte +20 -9
- package/dist/bits/select/components/select-scroll-down-button.svelte.d.ts +2 -2
- package/dist/bits/select/components/select-scroll-up-button.svelte +21 -10
- package/dist/bits/select/components/select-trigger.svelte +5 -7
- package/dist/bits/select/components/select-viewport.svelte +10 -0
- package/dist/bits/select/components/select.svelte +54 -56
- package/dist/bits/select/exports.d.ts +4 -7
- package/dist/bits/select/exports.js +3 -6
- package/dist/bits/select/select.svelte.d.ts +272 -258
- package/dist/bits/select/select.svelte.js +764 -831
- package/dist/bits/select/types.d.ts +128 -79
- package/dist/bits/slider/components/slider.svelte +2 -2
- package/dist/bits/slider/slider.svelte.d.ts +2 -2
- package/dist/bits/slider/slider.svelte.js +4 -4
- package/dist/bits/slider/types.d.ts +3 -2
- package/dist/bits/utilities/popper-layer/popper-layer.svelte +1 -3
- package/dist/internal/arrays.d.ts +23 -0
- package/dist/internal/arrays.js +35 -0
- package/dist/internal/date-time/calendar-helpers.svelte.js +6 -1
- package/dist/internal/use-body-scroll-lock.svelte.js +53 -42
- package/dist/internal/use-data-typeahead.svelte.d.ts +12 -0
- package/dist/internal/use-data-typeahead.svelte.js +30 -0
- package/dist/internal/use-dom-typeahead.svelte.d.ts +11 -0
- package/dist/internal/use-dom-typeahead.svelte.js +30 -0
- package/dist/types.d.ts +1 -1
- package/package.json +2 -2
- package/dist/bits/listbox/components/listbox-content-static.svelte.d.ts +0 -19
- package/dist/bits/listbox/components/listbox-content.svelte +0 -76
- package/dist/bits/listbox/components/listbox-content.svelte.d.ts +0 -19
- package/dist/bits/listbox/components/listbox-group-heading.svelte +0 -32
- package/dist/bits/listbox/components/listbox-group.svelte +0 -32
- package/dist/bits/listbox/components/listbox-group.svelte.d.ts +0 -19
- package/dist/bits/listbox/components/listbox-item.svelte +0 -43
- package/dist/bits/listbox/components/listbox-item.svelte.d.ts +0 -19
- package/dist/bits/listbox/components/listbox-scroll-down-button.svelte +0 -39
- package/dist/bits/listbox/components/listbox-scroll-down-button.svelte.d.ts +0 -19
- package/dist/bits/listbox/components/listbox-scroll-up-button.svelte +0 -39
- package/dist/bits/listbox/components/listbox-scroll-up-button.svelte.d.ts +0 -19
- package/dist/bits/listbox/components/listbox-trigger.svelte +0 -35
- package/dist/bits/listbox/components/listbox-trigger.svelte.d.ts +0 -19
- package/dist/bits/listbox/components/listbox-viewport.svelte +0 -54
- package/dist/bits/listbox/components/listbox-viewport.svelte.d.ts +0 -19
- package/dist/bits/listbox/components/listbox.svelte +0 -81
- package/dist/bits/listbox/components/listbox.svelte.d.ts +0 -18
- package/dist/bits/listbox/exports.d.ts +0 -12
- package/dist/bits/listbox/exports.js +0 -11
- package/dist/bits/listbox/index.d.ts +0 -1
- package/dist/bits/listbox/index.js +0 -1
- package/dist/bits/listbox/listbox.svelte.d.ts +0 -399
- package/dist/bits/listbox/listbox.svelte.js +0 -973
- package/dist/bits/listbox/types.d.ts +0 -177
- package/dist/bits/listbox/types.js +0 -1
- package/dist/bits/select/components/select-arrow.svelte +0 -21
- package/dist/bits/select/components/select-arrow.svelte.d.ts +0 -18
- package/dist/bits/select/components/select-content-floating.svelte +0 -73
- package/dist/bits/select/components/select-content-floating.svelte.d.ts +0 -33
- package/dist/bits/select/components/select-content-impl.svelte +0 -90
- package/dist/bits/select/components/select-content-impl.svelte.d.ts +0 -90
- package/dist/bits/select/components/select-content-item-aligned.svelte +0 -37
- package/dist/bits/select/components/select-content-item-aligned.svelte.d.ts +0 -29
- package/dist/bits/select/components/select-icon.svelte +0 -36
- package/dist/bits/select/components/select-icon.svelte.d.ts +0 -19
- package/dist/bits/select/components/select-item-text.svelte +0 -39
- package/dist/bits/select/components/select-item-text.svelte.d.ts +0 -19
- package/dist/bits/select/components/select-native.svelte +0 -36
- package/dist/bits/select/components/select-native.svelte.d.ts +0 -30
- package/dist/bits/select/components/select-provider.svelte +0 -10
- package/dist/bits/select/components/select-provider.svelte.d.ts +0 -23
- package/dist/bits/select/components/select-scroll-down-button-mounted.svelte +0 -33
- package/dist/bits/select/components/select-scroll-down-button-mounted.svelte.d.ts +0 -29
- package/dist/bits/select/components/select-scroll-up-button-mounted.svelte +0 -33
- package/dist/bits/select/components/select-scroll-up-button-mounted.svelte.d.ts +0 -29
- package/dist/bits/select/components/select-separator.svelte +0 -32
- package/dist/bits/select/components/select-separator.svelte.d.ts +0 -19
- package/dist/bits/select/components/select-value.svelte +0 -35
- package/dist/bits/select/components/select-value.svelte.d.ts +0 -19
- package/dist/internal/use-typeahead.svelte.d.ts +0 -34
- package/dist/internal/use-typeahead.svelte.js +0 -64
|
@@ -1,22 +1,20 @@
|
|
|
1
1
|
<script lang="ts">
|
|
2
2
|
import { box, mergeProps } from "svelte-toolbelt";
|
|
3
|
-
import type { SelectTriggerProps } from "../types.js";
|
|
4
3
|
import { useSelectTrigger } from "../select.svelte.js";
|
|
4
|
+
import type { SelectTriggerProps } from "../types.js";
|
|
5
5
|
import { useId } from "../../../internal/use-id.js";
|
|
6
|
-
import
|
|
6
|
+
import { FloatingLayer } from "../../utilities/floating-layer/index.js";
|
|
7
7
|
|
|
8
8
|
let {
|
|
9
9
|
id = useId(),
|
|
10
|
-
disabled = false,
|
|
11
10
|
ref = $bindable(null),
|
|
12
|
-
children,
|
|
13
11
|
child,
|
|
12
|
+
children,
|
|
14
13
|
...restProps
|
|
15
14
|
}: SelectTriggerProps = $props();
|
|
16
15
|
|
|
17
16
|
const triggerState = useSelectTrigger({
|
|
18
17
|
id: box.with(() => id),
|
|
19
|
-
disabled: box.with(() => disabled ?? false),
|
|
20
18
|
ref: box.with(
|
|
21
19
|
() => ref,
|
|
22
20
|
(v) => (ref = v)
|
|
@@ -26,7 +24,7 @@
|
|
|
26
24
|
const mergedProps = $derived(mergeProps(restProps, triggerState.props));
|
|
27
25
|
</script>
|
|
28
26
|
|
|
29
|
-
<
|
|
27
|
+
<FloatingLayer.Anchor {id}>
|
|
30
28
|
{#if child}
|
|
31
29
|
{@render child({ props: mergedProps })}
|
|
32
30
|
{:else}
|
|
@@ -34,4 +32,4 @@
|
|
|
34
32
|
{@render children?.()}
|
|
35
33
|
</button>
|
|
36
34
|
{/if}
|
|
37
|
-
</
|
|
35
|
+
</FloatingLayer.Anchor>
|
|
@@ -38,6 +38,16 @@
|
|
|
38
38
|
-ms-overflow-style: none !important;
|
|
39
39
|
-webkit-overflow-scrolling: touch !important;
|
|
40
40
|
}
|
|
41
|
+
|
|
42
|
+
:global([data-combobox-viewport]) {
|
|
43
|
+
scrollbar-width: none !important;
|
|
44
|
+
-ms-overflow-style: none !important;
|
|
45
|
+
-webkit-overflow-scrolling: touch !important;
|
|
46
|
+
}
|
|
47
|
+
|
|
48
|
+
:global([data-combobox-viewport])::-webkit-scrollbar {
|
|
49
|
+
display: none !important;
|
|
50
|
+
}
|
|
41
51
|
:global([data-select-viewport])::-webkit-scrollbar {
|
|
42
52
|
display: none !important;
|
|
43
53
|
}
|
|
@@ -1,28 +1,52 @@
|
|
|
1
1
|
<script lang="ts">
|
|
2
|
-
import { box } from "svelte-toolbelt";
|
|
3
|
-
import type { SelectRootProps } from "../types.js";
|
|
2
|
+
import { type WritableBox, box } from "svelte-toolbelt";
|
|
4
3
|
import { useSelectRoot } from "../select.svelte.js";
|
|
5
|
-
import
|
|
6
|
-
import
|
|
4
|
+
import type { SelectRootProps } from "../types.js";
|
|
5
|
+
import SelectHiddenInput from "./select-hidden-input.svelte";
|
|
7
6
|
import { noop } from "../../../internal/noop.js";
|
|
7
|
+
import FloatingLayer from "../../utilities/floating-layer/components/floating-layer.svelte";
|
|
8
8
|
|
|
9
9
|
let {
|
|
10
|
+
value = $bindable(),
|
|
11
|
+
onValueChange = noop,
|
|
12
|
+
name = "",
|
|
13
|
+
disabled = false,
|
|
14
|
+
type,
|
|
10
15
|
open = $bindable(false),
|
|
11
|
-
value = $bindable(""),
|
|
12
|
-
children,
|
|
13
16
|
onOpenChange = noop,
|
|
14
|
-
|
|
15
|
-
|
|
17
|
+
loop = false,
|
|
18
|
+
scrollAlignment = "nearest",
|
|
16
19
|
required = false,
|
|
17
|
-
disabled = false,
|
|
18
|
-
autocomplete = undefined,
|
|
19
|
-
dir = "ltr",
|
|
20
20
|
controlledOpen = false,
|
|
21
21
|
controlledValue = false,
|
|
22
|
-
|
|
22
|
+
items = [],
|
|
23
|
+
children,
|
|
23
24
|
}: SelectRootProps = $props();
|
|
24
25
|
|
|
26
|
+
if (value === undefined) {
|
|
27
|
+
const defaultValue = type === "single" ? "" : [];
|
|
28
|
+
if (controlledValue) {
|
|
29
|
+
onValueChange(defaultValue as any);
|
|
30
|
+
} else {
|
|
31
|
+
value = defaultValue;
|
|
32
|
+
}
|
|
33
|
+
}
|
|
34
|
+
|
|
25
35
|
const rootState = useSelectRoot({
|
|
36
|
+
type,
|
|
37
|
+
value: box.with(
|
|
38
|
+
() => value!,
|
|
39
|
+
(v) => {
|
|
40
|
+
if (controlledValue) {
|
|
41
|
+
onValueChange(v as any);
|
|
42
|
+
} else {
|
|
43
|
+
value = v;
|
|
44
|
+
onValueChange(v as any);
|
|
45
|
+
}
|
|
46
|
+
}
|
|
47
|
+
) as WritableBox<string> | WritableBox<string[]>,
|
|
48
|
+
disabled: box.with(() => disabled),
|
|
49
|
+
required: box.with(() => required),
|
|
26
50
|
open: box.with(
|
|
27
51
|
() => open,
|
|
28
52
|
(v) => {
|
|
@@ -30,56 +54,30 @@
|
|
|
30
54
|
onOpenChange(v);
|
|
31
55
|
} else {
|
|
32
56
|
open = v;
|
|
33
|
-
onOpenChange
|
|
34
|
-
}
|
|
35
|
-
}
|
|
36
|
-
),
|
|
37
|
-
value: box.with(
|
|
38
|
-
() => value,
|
|
39
|
-
(v) => {
|
|
40
|
-
if (controlledValue) {
|
|
41
|
-
onValueChange(v);
|
|
42
|
-
} else {
|
|
43
|
-
value = v;
|
|
44
|
-
onValueChange?.(v);
|
|
57
|
+
onOpenChange(v);
|
|
45
58
|
}
|
|
46
59
|
}
|
|
47
60
|
),
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
61
|
+
loop: box.with(() => loop),
|
|
62
|
+
scrollAlignment: box.with(() => scrollAlignment),
|
|
63
|
+
name: box.with(() => name),
|
|
64
|
+
isCombobox: false,
|
|
65
|
+
items: box.with(() => items),
|
|
51
66
|
});
|
|
52
67
|
</script>
|
|
53
68
|
|
|
54
69
|
<FloatingLayer>
|
|
55
70
|
{@render children?.()}
|
|
56
|
-
{#if rootState.isFormControl.current}
|
|
57
|
-
{#key rootState.nativeSelectKey}
|
|
58
|
-
<SelectNative
|
|
59
|
-
bind:value
|
|
60
|
-
aria-hidden="true"
|
|
61
|
-
tabindex={-1}
|
|
62
|
-
{required}
|
|
63
|
-
{name}
|
|
64
|
-
{autocomplete}
|
|
65
|
-
{disabled}
|
|
66
|
-
{form}
|
|
67
|
-
onchange={(e) => (value = e.currentTarget.value)}
|
|
68
|
-
>
|
|
69
|
-
{#if value === ""}
|
|
70
|
-
<option value=""></option>
|
|
71
|
-
{/if}
|
|
72
|
-
{#each rootState.nativeOptionsArr as opt, idx (opt.current.key + idx)}
|
|
73
|
-
<option
|
|
74
|
-
value={opt.current.value}
|
|
75
|
-
disabled={opt.current.disabled}
|
|
76
|
-
selected={opt.current.value === rootState.value.current}
|
|
77
|
-
>
|
|
78
|
-
<!-- eslint-disable-next-line svelte/no-at-html-tags -->
|
|
79
|
-
{@html opt.current.innerHTML}
|
|
80
|
-
</option>
|
|
81
|
-
{/each}
|
|
82
|
-
</SelectNative>
|
|
83
|
-
{/key}
|
|
84
|
-
{/if}
|
|
85
71
|
</FloatingLayer>
|
|
72
|
+
|
|
73
|
+
{#if Array.isArray(rootState.value.current)}
|
|
74
|
+
{#if rootState.value.current.length === 0}
|
|
75
|
+
<SelectHiddenInput value="" />
|
|
76
|
+
{:else}
|
|
77
|
+
{#each rootState.value.current as item}
|
|
78
|
+
<SelectHiddenInput value={item} />
|
|
79
|
+
{/each}
|
|
80
|
+
{/if}
|
|
81
|
+
{:else}
|
|
82
|
+
<SelectHiddenInput bind:value={rootState.value.current as string} />
|
|
83
|
+
{/if}
|
|
@@ -1,15 +1,12 @@
|
|
|
1
1
|
export { default as Root } from "./components/select.svelte";
|
|
2
|
-
export { default as Arrow } from "./components/select-arrow.svelte";
|
|
3
2
|
export { default as Content } from "./components/select-content.svelte";
|
|
3
|
+
export { default as ContentStatic } from "./components/select-content-static.svelte";
|
|
4
|
+
export { default as Item } from "./components/select-item.svelte";
|
|
4
5
|
export { default as Group } from "./components/select-group.svelte";
|
|
5
6
|
export { default as GroupHeading } from "./components/select-group-heading.svelte";
|
|
6
|
-
export { default as Item } from "./components/select-item.svelte";
|
|
7
|
-
export { default as ItemText } from "./components/select-item-text.svelte";
|
|
8
|
-
export { default as Separator } from "./components/select-separator.svelte";
|
|
9
7
|
export { default as Trigger } from "./components/select-trigger.svelte";
|
|
10
|
-
export { default as
|
|
8
|
+
export { default as Portal } from "../utilities/portal/portal.svelte";
|
|
11
9
|
export { default as Viewport } from "./components/select-viewport.svelte";
|
|
12
10
|
export { default as ScrollUpButton } from "./components/select-scroll-up-button.svelte";
|
|
13
11
|
export { default as ScrollDownButton } from "./components/select-scroll-down-button.svelte";
|
|
14
|
-
export {
|
|
15
|
-
export type { SelectRootProps as RootProps, SelectContentProps as ContentProps, SelectItemProps as ItemProps, SelectTriggerProps as TriggerProps, SelectValueProps as ValueProps, SelectItemTextProps as ItemTextProps, SelectContentImplProps as ContentImplProps, SelectViewportProps as ViewportProps, SelectPortalProps as PortalProps, SelectScrollUpButtonProps as ScrollDownButtonProps, SelectScrollUpButtonProps as ScrollUpButtonProps, SelectIconProps as IconProps, SelectGroupProps as GroupProps, SelectGroupHeadingProps as GroupHeadingProps, SelectSeparatorProps as SeparatorProps, SelectArrowProps as ArrowProps, } from "./types.js";
|
|
12
|
+
export type { SelectRootProps as RootProps, SelectContentProps as ContentProps, SelectContentStaticProps as ContentStaticProps, SelectItemProps as ItemProps, SelectGroupProps as GroupProps, SelectGroupHeadingProps as GroupHeadingProps, SelectTriggerProps as TriggerProps, SelectViewportProps as ViewportProps, SelectScrollUpButtonProps as ScrollUpButtonProps, SelectScrollDownButtonProps as ScrollDownButtonProps, SelectPortalProps as PortalProps, } from "./types.js";
|
|
@@ -1,14 +1,11 @@
|
|
|
1
1
|
export { default as Root } from "./components/select.svelte";
|
|
2
|
-
export { default as Arrow } from "./components/select-arrow.svelte";
|
|
3
2
|
export { default as Content } from "./components/select-content.svelte";
|
|
3
|
+
export { default as ContentStatic } from "./components/select-content-static.svelte";
|
|
4
|
+
export { default as Item } from "./components/select-item.svelte";
|
|
4
5
|
export { default as Group } from "./components/select-group.svelte";
|
|
5
6
|
export { default as GroupHeading } from "./components/select-group-heading.svelte";
|
|
6
|
-
export { default as Item } from "./components/select-item.svelte";
|
|
7
|
-
export { default as ItemText } from "./components/select-item-text.svelte";
|
|
8
|
-
export { default as Separator } from "./components/select-separator.svelte";
|
|
9
7
|
export { default as Trigger } from "./components/select-trigger.svelte";
|
|
10
|
-
export { default as
|
|
8
|
+
export { default as Portal } from "../utilities/portal/portal.svelte";
|
|
11
9
|
export { default as Viewport } from "./components/select-viewport.svelte";
|
|
12
10
|
export { default as ScrollUpButton } from "./components/select-scroll-up-button.svelte";
|
|
13
11
|
export { default as ScrollDownButton } from "./components/select-scroll-down-button.svelte";
|
|
14
|
-
export { default as Portal } from "../utilities/portal/portal.svelte";
|