bits-ui 1.8.0 → 2.1.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/accordion.svelte.d.ts +56 -53
- package/dist/bits/accordion/accordion.svelte.js +78 -89
- package/dist/bits/accordion/components/accordion-content.svelte +5 -3
- package/dist/bits/accordion/components/accordion-header.svelte +4 -2
- package/dist/bits/accordion/components/accordion-item.svelte +6 -3
- package/dist/bits/accordion/components/accordion-trigger.svelte +4 -2
- package/dist/bits/accordion/components/accordion.svelte +4 -2
- package/dist/bits/alert-dialog/components/alert-dialog-action.svelte +4 -2
- package/dist/bits/alert-dialog/components/alert-dialog-cancel.svelte +4 -2
- package/dist/bits/alert-dialog/components/alert-dialog-content.svelte +8 -3
- package/dist/bits/aspect-ratio/aspect-ratio.svelte.js +2 -2
- package/dist/bits/aspect-ratio/components/aspect-ratio.svelte +4 -2
- package/dist/bits/avatar/avatar.svelte.js +4 -4
- package/dist/bits/avatar/components/avatar-fallback.svelte +4 -2
- package/dist/bits/avatar/components/avatar-image.svelte +4 -2
- package/dist/bits/avatar/components/avatar.svelte +4 -2
- package/dist/bits/button/components/button.svelte +1 -1
- package/dist/bits/calendar/calendar.svelte.d.ts +1 -9
- package/dist/bits/calendar/calendar.svelte.js +47 -38
- package/dist/bits/calendar/components/calendar-cell.svelte +4 -2
- package/dist/bits/calendar/components/calendar-day.svelte +4 -2
- package/dist/bits/calendar/components/calendar-grid-body.svelte +4 -2
- package/dist/bits/calendar/components/calendar-grid-head.svelte +4 -2
- package/dist/bits/calendar/components/calendar-grid-row.svelte +4 -2
- package/dist/bits/calendar/components/calendar-grid.svelte +4 -2
- package/dist/bits/calendar/components/calendar-head-cell.svelte +4 -2
- package/dist/bits/calendar/components/calendar-header.svelte +4 -2
- package/dist/bits/calendar/components/calendar-heading.svelte +4 -2
- package/dist/bits/calendar/components/calendar-next-button.svelte +4 -2
- package/dist/bits/calendar/components/calendar-prev-button.svelte +4 -2
- package/dist/bits/checkbox/checkbox.svelte.js +4 -14
- package/dist/bits/checkbox/components/checkbox-group-label.svelte +4 -2
- package/dist/bits/checkbox/components/checkbox-group.svelte +4 -2
- package/dist/bits/checkbox/components/checkbox.svelte +4 -2
- package/dist/bits/collapsible/collapsible.svelte.js +4 -10
- package/dist/bits/collapsible/components/collapsible-content.svelte +5 -3
- package/dist/bits/collapsible/components/collapsible-trigger.svelte +4 -2
- package/dist/bits/collapsible/components/collapsible.svelte +4 -2
- package/dist/bits/combobox/components/combobox-input.svelte +1 -1
- package/dist/bits/combobox/components/combobox.svelte +1 -1
- package/dist/bits/command/command.svelte.js +13 -45
- package/dist/bits/command/components/_command-label.svelte +6 -7
- package/dist/bits/command/components/_command-label.svelte.d.ts +1 -1
- package/dist/bits/command/components/command-empty.svelte +4 -2
- package/dist/bits/command/components/command-group-heading.svelte +4 -2
- package/dist/bits/command/components/command-group-items.svelte +4 -2
- package/dist/bits/command/components/command-group.svelte +4 -2
- package/dist/bits/command/components/command-input.svelte +4 -2
- package/dist/bits/command/components/command-item.svelte +4 -2
- package/dist/bits/command/components/command-link-item.svelte +4 -2
- package/dist/bits/command/components/command-list.svelte +4 -2
- package/dist/bits/command/components/command-loading.svelte +4 -2
- package/dist/bits/command/components/command-separator.svelte +4 -2
- package/dist/bits/command/components/command-viewport.svelte +4 -2
- package/dist/bits/command/components/command.svelte +4 -2
- package/dist/bits/context-menu/components/context-menu-content-static.svelte +2 -3
- package/dist/bits/context-menu/components/context-menu-content.svelte +2 -3
- package/dist/bits/context-menu/components/context-menu-trigger.svelte +1 -1
- package/dist/bits/date-field/components/date-field-input.svelte +4 -2
- package/dist/bits/date-field/components/date-field-label.svelte +4 -2
- package/dist/bits/date-field/components/date-field-segment.svelte +4 -2
- package/dist/bits/date-field/date-field.svelte.d.ts +4 -4
- package/dist/bits/date-field/date-field.svelte.js +15 -33
- package/dist/bits/date-picker/components/date-picker-calendar.svelte +4 -2
- package/dist/bits/date-range-field/components/date-range-field-input.svelte +4 -2
- package/dist/bits/date-range-field/components/date-range-field-label.svelte +4 -2
- package/dist/bits/date-range-field/components/date-range-field.svelte +4 -2
- package/dist/bits/date-range-field/date-range-field.svelte.js +3 -13
- package/dist/bits/date-range-picker/components/date-range-picker-calendar.svelte +4 -2
- package/dist/bits/dialog/components/dialog-close.svelte +4 -2
- package/dist/bits/dialog/components/dialog-content.svelte +8 -2
- package/dist/bits/dialog/components/dialog-description.svelte +4 -2
- package/dist/bits/dialog/components/dialog-overlay.svelte +8 -3
- package/dist/bits/dialog/components/dialog-title.svelte +4 -2
- package/dist/bits/dialog/components/dialog-trigger.svelte +4 -2
- package/dist/bits/dialog/dialog.svelte.d.ts +1 -1
- package/dist/bits/dialog/dialog.svelte.js +19 -47
- package/dist/bits/dropdown-menu/components/dropdown-menu-content-static.svelte +6 -5
- package/dist/bits/dropdown-menu/components/dropdown-menu-content.svelte +6 -5
- package/dist/bits/index.d.ts +2 -0
- package/dist/bits/index.js +2 -0
- package/dist/bits/label/components/label.svelte +4 -2
- package/dist/bits/label/label.svelte.js +2 -2
- package/dist/bits/link-preview/components/link-preview-content-static.svelte +6 -2
- package/dist/bits/link-preview/components/link-preview-content.svelte +6 -2
- package/dist/bits/link-preview/components/link-preview-trigger.svelte +5 -3
- package/dist/bits/link-preview/link-preview.svelte.js +3 -14
- package/dist/bits/menu/components/menu-checkbox-group.svelte +4 -2
- package/dist/bits/menu/components/menu-checkbox-item.svelte +6 -4
- package/dist/bits/menu/components/menu-content-static.svelte +6 -5
- package/dist/bits/menu/components/menu-content.svelte +6 -5
- package/dist/bits/menu/components/menu-group-heading.svelte +4 -2
- package/dist/bits/menu/components/menu-group.svelte +4 -2
- package/dist/bits/menu/components/menu-item.svelte +4 -2
- package/dist/bits/menu/components/menu-radio-group.svelte +4 -2
- package/dist/bits/menu/components/menu-radio-item.svelte +4 -2
- package/dist/bits/menu/components/menu-separator.svelte +4 -2
- package/dist/bits/menu/components/menu-sub-content-static.svelte +6 -5
- package/dist/bits/menu/components/menu-sub-content.svelte +6 -5
- package/dist/bits/menu/components/menu-sub-trigger.svelte +6 -3
- package/dist/bits/menu/components/menu-trigger.svelte +5 -3
- package/dist/bits/menu/menu.svelte.d.ts +7 -20
- package/dist/bits/menu/menu.svelte.js +26 -54
- package/dist/bits/menubar/components/menubar-content-static.svelte +4 -2
- package/dist/bits/menubar/components/menubar-content.svelte +4 -2
- package/dist/bits/menubar/components/menubar-menu.svelte +4 -2
- package/dist/bits/menubar/components/menubar-trigger.svelte +14 -6
- package/dist/bits/menubar/components/menubar.svelte +4 -2
- package/dist/bits/menubar/menubar.svelte.d.ts +24 -20
- package/dist/bits/menubar/menubar.svelte.js +40 -56
- package/dist/bits/meter/components/meter.svelte +4 -2
- package/dist/bits/meter/meter.svelte.js +2 -2
- package/dist/bits/navigation-menu/components/navigation-menu-content-impl.svelte +5 -2
- package/dist/bits/navigation-menu/components/navigation-menu-content.svelte +8 -3
- package/dist/bits/navigation-menu/components/navigation-menu-indicator-impl.svelte +4 -2
- package/dist/bits/navigation-menu/components/navigation-menu-indicator.svelte +6 -4
- package/dist/bits/navigation-menu/components/navigation-menu-item.svelte +6 -3
- package/dist/bits/navigation-menu/components/navigation-menu-link.svelte +4 -2
- package/dist/bits/navigation-menu/components/navigation-menu-list.svelte +4 -2
- package/dist/bits/navigation-menu/components/navigation-menu-sub.svelte +4 -2
- package/dist/bits/navigation-menu/components/navigation-menu-trigger.svelte +4 -2
- package/dist/bits/navigation-menu/components/navigation-menu-viewport.svelte +5 -3
- package/dist/bits/navigation-menu/components/navigation-menu.svelte +4 -2
- package/dist/bits/navigation-menu/navigation-menu.svelte.js +13 -50
- package/dist/bits/pagination/components/pagination-next-button.svelte +4 -2
- package/dist/bits/pagination/components/pagination-page.svelte +4 -2
- package/dist/bits/pagination/components/pagination-prev-button.svelte +4 -2
- package/dist/bits/pagination/components/pagination.svelte +4 -2
- package/dist/bits/pagination/pagination.svelte.js +4 -4
- package/dist/bits/pin-input/components/pin-input-cell.svelte +4 -2
- package/dist/bits/pin-input/components/pin-input.svelte +5 -3
- package/dist/bits/pin-input/pin-input.svelte.js +4 -10
- package/dist/bits/popover/components/popover-close.svelte +4 -2
- package/dist/bits/popover/components/popover-content-static.svelte +6 -2
- package/dist/bits/popover/components/popover-content.svelte +6 -2
- package/dist/bits/popover/components/popover-trigger.svelte +5 -3
- package/dist/bits/popover/popover.svelte.js +4 -18
- package/dist/bits/progress/components/progress.svelte +4 -2
- package/dist/bits/progress/progress.svelte.js +2 -2
- package/dist/bits/radio-group/components/radio-group-item.svelte +4 -2
- package/dist/bits/radio-group/components/radio-group.svelte +4 -2
- package/dist/bits/radio-group/radio-group.svelte.js +4 -7
- package/dist/bits/range-calendar/components/range-calendar-cell.svelte +4 -2
- package/dist/bits/range-calendar/components/range-calendar-day.svelte +4 -2
- package/dist/bits/range-calendar/components/range-calendar.svelte +4 -2
- package/dist/bits/range-calendar/range-calendar.svelte.js +4 -4
- package/dist/bits/scroll-area/components/scroll-area-corner.svelte +8 -2
- package/dist/bits/scroll-area/components/scroll-area-scrollbar-auto.svelte +4 -1
- package/dist/bits/scroll-area/components/scroll-area-scrollbar-hover.svelte +1 -1
- package/dist/bits/scroll-area/components/scroll-area-scrollbar-scroll.svelte +5 -1
- package/dist/bits/scroll-area/components/scroll-area-scrollbar.svelte +4 -2
- package/dist/bits/scroll-area/components/scroll-area-thumb.svelte +8 -3
- package/dist/bits/scroll-area/components/scroll-area-viewport.svelte +4 -2
- package/dist/bits/scroll-area/components/scroll-area.svelte +4 -2
- package/dist/bits/scroll-area/scroll-area.svelte.js +13 -47
- package/dist/bits/select/components/select-content-static.svelte +6 -2
- package/dist/bits/select/components/select-content.svelte +6 -2
- package/dist/bits/select/components/select-group-heading.svelte +3 -2
- package/dist/bits/select/components/select-group.svelte +4 -2
- package/dist/bits/select/components/select-item.svelte +4 -2
- package/dist/bits/select/components/select-scroll-down-button.svelte +4 -2
- package/dist/bits/select/components/select-scroll-up-button.svelte +4 -2
- package/dist/bits/select/components/select-trigger.svelte +5 -3
- package/dist/bits/select/components/select-viewport.svelte +4 -2
- package/dist/bits/select/components/select.svelte +1 -1
- package/dist/bits/select/select.svelte.d.ts +0 -18
- package/dist/bits/select/select.svelte.js +10 -43
- package/dist/bits/separator/components/separator.svelte +4 -2
- package/dist/bits/separator/separator.svelte.js +2 -2
- package/dist/bits/slider/components/slider-range.svelte +4 -2
- package/dist/bits/slider/components/slider-thumb-label.svelte +50 -0
- package/dist/bits/slider/components/slider-thumb-label.svelte.d.ts +4 -0
- package/dist/bits/slider/components/slider-thumb.svelte +4 -2
- package/dist/bits/slider/components/slider-tick-label.svelte +50 -0
- package/dist/bits/slider/components/slider-tick-label.svelte.d.ts +4 -0
- package/dist/bits/slider/components/slider-tick.svelte +4 -2
- package/dist/bits/slider/components/slider.svelte +24 -5
- package/dist/bits/slider/exports.d.ts +3 -1
- package/dist/bits/slider/exports.js +2 -0
- package/dist/bits/slider/helpers.d.ts +14 -0
- package/dist/bits/slider/helpers.js +122 -0
- package/dist/bits/slider/slider.svelte.d.ts +91 -5
- package/dist/bits/slider/slider.svelte.js +194 -101
- package/dist/bits/slider/types.d.ts +105 -11
- package/dist/bits/switch/components/switch-thumb.svelte +4 -2
- package/dist/bits/switch/components/switch.svelte +4 -2
- package/dist/bits/switch/switch.svelte.js +3 -3
- package/dist/bits/tabs/components/tabs-content.svelte +4 -2
- package/dist/bits/tabs/components/tabs-list.svelte +4 -2
- package/dist/bits/tabs/components/tabs-trigger.svelte +4 -2
- package/dist/bits/tabs/components/tabs.svelte +4 -2
- package/dist/bits/tabs/tabs.svelte.js +6 -6
- package/dist/bits/time-field/components/time-field-hidden-input.svelte +10 -0
- package/dist/bits/{date-field/components/date-field-error.svelte.d.ts → time-field/components/time-field-hidden-input.svelte.d.ts} +6 -14
- package/dist/bits/time-field/components/time-field-input.svelte +39 -0
- package/dist/bits/time-field/components/time-field-input.svelte.d.ts +4 -0
- package/dist/bits/time-field/components/time-field-label.svelte +34 -0
- package/dist/bits/time-field/components/time-field-label.svelte.d.ts +4 -0
- package/dist/bits/time-field/components/time-field-segment.svelte +37 -0
- package/dist/bits/time-field/components/time-field-segment.svelte.d.ts +4 -0
- package/dist/bits/time-field/components/time-field.svelte +94 -0
- package/dist/bits/time-field/components/time-field.svelte.d.ts +20 -0
- package/dist/bits/time-field/exports.d.ts +5 -0
- package/dist/bits/time-field/exports.js +4 -0
- package/dist/bits/time-field/index.d.ts +1 -0
- package/dist/bits/time-field/index.js +1 -0
- package/dist/bits/time-field/time-field.svelte.d.ts +415 -0
- package/dist/bits/time-field/time-field.svelte.js +971 -0
- package/dist/bits/time-field/types.d.ts +137 -0
- package/dist/bits/time-field/types.js +1 -0
- package/dist/bits/time-range-field/components/time-range-field-input.svelte +43 -0
- package/dist/bits/time-range-field/components/time-range-field-input.svelte.d.ts +4 -0
- package/dist/bits/time-range-field/components/time-range-field-label.svelte +34 -0
- package/dist/bits/time-range-field/components/time-range-field-label.svelte.d.ts +4 -0
- package/dist/bits/time-range-field/components/time-range-field.svelte +144 -0
- package/dist/bits/time-range-field/components/time-range-field.svelte.d.ts +20 -0
- package/dist/bits/time-range-field/exports.d.ts +5 -0
- package/dist/bits/time-range-field/exports.js +4 -0
- package/dist/bits/time-range-field/index.d.ts +1 -0
- package/dist/bits/time-range-field/index.js +1 -0
- package/dist/bits/time-range-field/time-range-field.svelte.d.ts +90 -0
- package/dist/bits/time-range-field/time-range-field.svelte.js +210 -0
- package/dist/bits/time-range-field/types.d.ts +150 -0
- package/dist/bits/time-range-field/types.js +1 -0
- package/dist/bits/toggle/components/toggle.svelte +4 -2
- package/dist/bits/toggle/toggle.svelte.js +2 -2
- package/dist/bits/toggle-group/components/toggle-group-item.svelte +4 -2
- package/dist/bits/toggle-group/components/toggle-group.svelte +4 -2
- package/dist/bits/toggle-group/toggle-group.svelte.js +4 -4
- package/dist/bits/toolbar/components/toolbar-button.svelte +4 -2
- package/dist/bits/toolbar/components/toolbar-group-item.svelte +4 -2
- package/dist/bits/toolbar/components/toolbar-group.svelte +4 -2
- package/dist/bits/toolbar/components/toolbar-link.svelte +4 -2
- package/dist/bits/toolbar/components/toolbar.svelte +4 -2
- package/dist/bits/toolbar/toolbar.svelte.js +7 -7
- package/dist/bits/tooltip/components/tooltip-content-static.svelte +6 -2
- package/dist/bits/tooltip/components/tooltip-content.svelte +6 -2
- package/dist/bits/tooltip/components/tooltip-trigger.svelte +5 -3
- package/dist/bits/tooltip/tooltip.svelte.js +3 -14
- package/dist/bits/utilities/dismissible-layer/dismissible-layer.svelte +2 -0
- package/dist/bits/utilities/dismissible-layer/types.d.ts +2 -0
- package/dist/bits/utilities/dismissible-layer/use-dismissable-layer.svelte.d.ts +3 -3
- package/dist/bits/utilities/dismissible-layer/use-dismissable-layer.svelte.js +16 -25
- package/dist/bits/utilities/floating-layer/components/floating-layer-anchor.svelte +2 -1
- package/dist/bits/utilities/floating-layer/types.d.ts +1 -0
- package/dist/bits/utilities/floating-layer/use-floating-layer.svelte.d.ts +3 -2
- package/dist/bits/utilities/floating-layer/use-floating-layer.svelte.js +5 -26
- package/dist/bits/utilities/focus-scope/focus-scope.svelte +2 -0
- package/dist/bits/utilities/focus-scope/types.d.ts +2 -0
- package/dist/bits/utilities/focus-scope/use-focus-scope.svelte.d.ts +2 -1
- package/dist/bits/utilities/focus-scope/use-focus-scope.svelte.js +2 -8
- package/dist/bits/utilities/popper-layer/popper-layer-inner.svelte +4 -0
- package/dist/bits/utilities/popper-layer/popper-layer.svelte +3 -1
- package/dist/bits/utilities/presence-layer/presence-layer.svelte +2 -2
- package/dist/bits/utilities/presence-layer/types.d.ts +2 -1
- package/dist/bits/utilities/presence-layer/use-presence.svelte.d.ts +1 -1
- package/dist/bits/utilities/presence-layer/use-presence.svelte.js +19 -36
- package/dist/bits/utilities/text-selection-layer/text-selection-layer.svelte +2 -0
- package/dist/bits/utilities/text-selection-layer/types.d.ts +2 -0
- package/dist/bits/utilities/text-selection-layer/use-text-selection-layer.svelte.d.ts +3 -1
- package/dist/bits/utilities/text-selection-layer/use-text-selection-layer.svelte.js +2 -8
- package/dist/index.d.ts +1 -1
- package/dist/index.js +1 -1
- package/dist/internal/create-id.d.ts +8 -0
- package/dist/internal/create-id.js +5 -0
- package/dist/internal/date-time/field/helpers.d.ts +1 -0
- package/dist/internal/date-time/field/helpers.js +8 -2
- package/dist/internal/date-time/field/parts.d.ts +3 -1
- package/dist/internal/date-time/field/parts.js +10 -2
- package/dist/internal/date-time/field/segments.d.ts +9 -0
- package/dist/internal/date-time/field/segments.js +65 -0
- package/dist/internal/date-time/field/time-helpers.d.ts +77 -0
- package/dist/internal/date-time/field/time-helpers.js +301 -0
- package/dist/internal/date-time/field/types.d.ts +2 -2
- package/dist/internal/date-time/formatter.d.ts +11 -1
- package/dist/internal/date-time/formatter.js +56 -0
- package/dist/internal/date-time/utils.d.ts +7 -2
- package/dist/internal/date-time/utils.js +15 -1
- package/dist/internal/dom-context.svelte.d.ts +9 -0
- package/dist/internal/dom-context.svelte.js +26 -0
- package/dist/internal/use-roving-focus.svelte.d.ts +3 -3
- package/dist/internal/use-roving-focus.svelte.js +10 -11
- package/dist/shared/date/types.d.ts +27 -4
- package/dist/shared/index.d.ts +2 -2
- package/dist/types.d.ts +2 -0
- package/package.json +18 -16
- package/dist/bits/date-field/components/date-field-error.svelte +0 -0
|
@@ -2,11 +2,13 @@
|
|
|
2
2
|
import { box, mergeProps } from "svelte-toolbelt";
|
|
3
3
|
import { useSelectTrigger } from "../select.svelte.js";
|
|
4
4
|
import type { SelectTriggerProps } from "../types.js";
|
|
5
|
-
import {
|
|
5
|
+
import { createId } from "../../../internal/create-id.js";
|
|
6
6
|
import { FloatingLayer } from "../../utilities/floating-layer/index.js";
|
|
7
7
|
|
|
8
|
+
const uid = $props.id();
|
|
9
|
+
|
|
8
10
|
let {
|
|
9
|
-
id =
|
|
11
|
+
id = createId(uid),
|
|
10
12
|
ref = $bindable(null),
|
|
11
13
|
child,
|
|
12
14
|
children,
|
|
@@ -25,7 +27,7 @@
|
|
|
25
27
|
const mergedProps = $derived(mergeProps(restProps, triggerState.props, { type }));
|
|
26
28
|
</script>
|
|
27
29
|
|
|
28
|
-
<FloatingLayer.Anchor {id}>
|
|
30
|
+
<FloatingLayer.Anchor {id} ref={triggerState.opts.ref}>
|
|
29
31
|
{#if child}
|
|
30
32
|
{@render child({ props: mergedProps })}
|
|
31
33
|
{:else}
|
|
@@ -2,10 +2,12 @@
|
|
|
2
2
|
import { box, mergeProps } from "svelte-toolbelt";
|
|
3
3
|
import type { SelectViewportProps } from "../types.js";
|
|
4
4
|
import { useSelectViewport } from "../select.svelte.js";
|
|
5
|
-
import {
|
|
5
|
+
import { createId } from "../../../internal/create-id.js";
|
|
6
|
+
|
|
7
|
+
const uid = $props.id();
|
|
6
8
|
|
|
7
9
|
let {
|
|
8
|
-
id =
|
|
10
|
+
id = createId(uid),
|
|
9
11
|
ref = $bindable(null),
|
|
10
12
|
children,
|
|
11
13
|
child,
|
|
@@ -72,7 +72,7 @@
|
|
|
72
72
|
|
|
73
73
|
{#if Array.isArray(rootState.opts.value.current)}
|
|
74
74
|
{#if rootState.opts.value.current.length}
|
|
75
|
-
{#each rootState.opts.value.current as item}
|
|
75
|
+
{#each rootState.opts.value.current as item (item)}
|
|
76
76
|
<SelectHiddenInput value={item} />
|
|
77
77
|
{/each}
|
|
78
78
|
{/if}
|
|
@@ -88,7 +88,6 @@ declare class SelectInputState {
|
|
|
88
88
|
onkeydown(e: BitsKeyboardEvent): void;
|
|
89
89
|
oninput(e: BitsEvent<Event, HTMLInputElement>): void;
|
|
90
90
|
props: {
|
|
91
|
-
readonly [x: string]: string | true | ((e: BitsKeyboardEvent) => void) | ((e: BitsEvent<Event, HTMLInputElement>) => void) | undefined;
|
|
92
91
|
readonly id: string;
|
|
93
92
|
readonly role: "combobox";
|
|
94
93
|
readonly disabled: true | undefined;
|
|
@@ -113,7 +112,6 @@ declare class SelectComboTriggerState {
|
|
|
113
112
|
*/
|
|
114
113
|
onpointerdown(e: BitsPointerEvent): void;
|
|
115
114
|
props: {
|
|
116
|
-
readonly [x: string]: string | true | ((e: BitsKeyboardEvent) => void) | ((e: BitsPointerEvent) => void) | undefined;
|
|
117
115
|
readonly id: string;
|
|
118
116
|
readonly disabled: true | undefined;
|
|
119
117
|
readonly "aria-haspopup": "listbox";
|
|
@@ -134,7 +132,6 @@ declare class SelectTriggerState {
|
|
|
134
132
|
onpointerdown(e: BitsPointerEvent): void;
|
|
135
133
|
onpointerup(e: BitsPointerEvent): void;
|
|
136
134
|
props: {
|
|
137
|
-
readonly [x: string]: string | true | ((e: BitsKeyboardEvent) => void) | ((e: BitsPointerEvent) => void) | undefined;
|
|
138
135
|
readonly id: string;
|
|
139
136
|
readonly disabled: true | undefined;
|
|
140
137
|
readonly "aria-haspopup": "listbox";
|
|
@@ -169,13 +166,6 @@ declare class SelectContentState {
|
|
|
169
166
|
open: boolean;
|
|
170
167
|
};
|
|
171
168
|
props: {
|
|
172
|
-
readonly [x: string]: string | ((_: BitsPointerEvent) => void) | {
|
|
173
|
-
readonly display: "flex";
|
|
174
|
-
readonly flexDirection: "column";
|
|
175
|
-
readonly outline: "none";
|
|
176
|
-
readonly boxSizing: "border-box";
|
|
177
|
-
readonly pointerEvents: "auto";
|
|
178
|
-
} | undefined;
|
|
179
169
|
readonly id: string;
|
|
180
170
|
readonly role: "listbox";
|
|
181
171
|
readonly "aria-multiselectable": "true" | undefined;
|
|
@@ -228,7 +218,6 @@ declare class SelectItemState {
|
|
|
228
218
|
onpointerup(e: BitsPointerEvent): void;
|
|
229
219
|
onpointermove(e: BitsPointerEvent): void;
|
|
230
220
|
props: {
|
|
231
|
-
readonly [x: string]: string | ((e: BitsPointerEvent) => void) | undefined;
|
|
232
221
|
readonly id: string;
|
|
233
222
|
readonly role: "option";
|
|
234
223
|
readonly "aria-selected": "true" | undefined;
|
|
@@ -249,7 +238,6 @@ declare class SelectGroupState {
|
|
|
249
238
|
labelNode: HTMLElement | null;
|
|
250
239
|
constructor(opts: SelectGroupStateProps, root: SelectBaseRootState);
|
|
251
240
|
props: {
|
|
252
|
-
readonly [x: string]: string | undefined;
|
|
253
241
|
readonly id: string;
|
|
254
242
|
readonly role: "group";
|
|
255
243
|
readonly "aria-labelledby": string | undefined;
|
|
@@ -261,7 +249,6 @@ declare class SelectGroupHeadingState {
|
|
|
261
249
|
readonly group: SelectGroupState;
|
|
262
250
|
constructor(opts: SelectGroupHeadingStateProps, group: SelectGroupState);
|
|
263
251
|
props: {
|
|
264
|
-
readonly [x: string]: string;
|
|
265
252
|
readonly id: string;
|
|
266
253
|
};
|
|
267
254
|
}
|
|
@@ -290,11 +277,6 @@ declare class SelectViewportState {
|
|
|
290
277
|
prevScrollTop: number;
|
|
291
278
|
constructor(opts: SelectViewportStateProps, content: SelectContentState);
|
|
292
279
|
props: {
|
|
293
|
-
readonly [x: string]: string | {
|
|
294
|
-
readonly position: "relative";
|
|
295
|
-
readonly flex: 1;
|
|
296
|
-
readonly overflow: "auto";
|
|
297
|
-
};
|
|
298
280
|
readonly id: string;
|
|
299
281
|
readonly role: "presentation";
|
|
300
282
|
readonly style: {
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { Context, Previous, watch } from "runed";
|
|
2
|
-
import { afterSleep, afterTick, onDestroyEffect,
|
|
2
|
+
import { afterSleep, afterTick, onDestroyEffect, attachRef } from "svelte-toolbelt";
|
|
3
3
|
import { on } from "svelte/events";
|
|
4
4
|
import { backward, forward, next, prev } from "../../internal/arrays.js";
|
|
5
5
|
import { getAriaExpanded, getAriaHidden, getDataDisabled, getDataOpenClosed, getDisabled, getRequired, } from "../../internal/attrs.js";
|
|
@@ -210,12 +210,6 @@ class SelectInputState {
|
|
|
210
210
|
constructor(opts, root) {
|
|
211
211
|
this.opts = opts;
|
|
212
212
|
this.root = root;
|
|
213
|
-
useRefById({
|
|
214
|
-
...opts,
|
|
215
|
-
onRefChange: (node) => {
|
|
216
|
-
this.root.inputNode = node;
|
|
217
|
-
},
|
|
218
|
-
});
|
|
219
213
|
this.onkeydown = this.onkeydown.bind(this);
|
|
220
214
|
this.oninput = this.oninput.bind(this);
|
|
221
215
|
watch([() => this.root.opts.value.current, () => this.opts.clearOnDeselect.current], ([value, clearOnDeselect], [prevValue]) => {
|
|
@@ -340,6 +334,7 @@ class SelectInputState {
|
|
|
340
334
|
onkeydown: this.onkeydown,
|
|
341
335
|
oninput: this.oninput,
|
|
342
336
|
[this.root.bitsAttrs.input]: "",
|
|
337
|
+
...attachRef(this.opts.ref, (v) => (this.root.inputNode = v)),
|
|
343
338
|
}));
|
|
344
339
|
}
|
|
345
340
|
class SelectComboTriggerState {
|
|
@@ -348,7 +343,6 @@ class SelectComboTriggerState {
|
|
|
348
343
|
constructor(opts, root) {
|
|
349
344
|
this.opts = opts;
|
|
350
345
|
this.root = root;
|
|
351
|
-
useRefById(opts);
|
|
352
346
|
this.onkeydown = this.onkeydown.bind(this);
|
|
353
347
|
this.onpointerdown = this.onpointerdown.bind(this);
|
|
354
348
|
}
|
|
@@ -383,6 +377,7 @@ class SelectComboTriggerState {
|
|
|
383
377
|
[this.root.bitsAttrs.trigger]: "",
|
|
384
378
|
onpointerdown: this.onpointerdown,
|
|
385
379
|
onkeydown: this.onkeydown,
|
|
380
|
+
...attachRef(this.opts.ref),
|
|
386
381
|
}));
|
|
387
382
|
}
|
|
388
383
|
class SelectTriggerState {
|
|
@@ -393,12 +388,6 @@ class SelectTriggerState {
|
|
|
393
388
|
constructor(opts, root) {
|
|
394
389
|
this.opts = opts;
|
|
395
390
|
this.root = root;
|
|
396
|
-
useRefById({
|
|
397
|
-
...opts,
|
|
398
|
-
onRefChange: (node) => {
|
|
399
|
-
this.root.triggerNode = node;
|
|
400
|
-
},
|
|
401
|
-
});
|
|
402
391
|
this.#domTypeahead = useDOMTypeahead({
|
|
403
392
|
getCurrentItem: () => this.root.highlightedNode,
|
|
404
393
|
onMatch: (node) => {
|
|
@@ -617,6 +606,7 @@ class SelectTriggerState {
|
|
|
617
606
|
onkeydown: this.onkeydown,
|
|
618
607
|
onclick: this.onclick,
|
|
619
608
|
onpointerup: this.onpointerup,
|
|
609
|
+
...attachRef(this.opts.ref, (v) => (this.root.triggerNode = v)),
|
|
620
610
|
}));
|
|
621
611
|
}
|
|
622
612
|
class SelectContentState {
|
|
@@ -627,13 +617,6 @@ class SelectContentState {
|
|
|
627
617
|
constructor(opts, root) {
|
|
628
618
|
this.opts = opts;
|
|
629
619
|
this.root = root;
|
|
630
|
-
useRefById({
|
|
631
|
-
...opts,
|
|
632
|
-
onRefChange: (node) => {
|
|
633
|
-
this.root.contentNode = node;
|
|
634
|
-
},
|
|
635
|
-
deps: () => this.root.opts.open.current,
|
|
636
|
-
});
|
|
637
620
|
onDestroyEffect(() => {
|
|
638
621
|
this.root.contentNode = null;
|
|
639
622
|
this.isPositioned = false;
|
|
@@ -696,6 +679,7 @@ class SelectContentState {
|
|
|
696
679
|
...this.#styles,
|
|
697
680
|
},
|
|
698
681
|
onpointermove: this.onpointermove,
|
|
682
|
+
...attachRef(this.opts.ref, (v) => (this.root.contentNode = v)),
|
|
699
683
|
}));
|
|
700
684
|
popperProps = {
|
|
701
685
|
onInteractOutside: this.onInteractOutside,
|
|
@@ -723,10 +707,6 @@ class SelectItemState {
|
|
|
723
707
|
constructor(opts, root) {
|
|
724
708
|
this.opts = opts;
|
|
725
709
|
this.root = root;
|
|
726
|
-
useRefById({
|
|
727
|
-
...opts,
|
|
728
|
-
deps: () => this.mounted,
|
|
729
|
-
});
|
|
730
710
|
watch([() => this.isHighlighted, () => this.prevHighlighted.current], () => {
|
|
731
711
|
if (this.isHighlighted) {
|
|
732
712
|
this.opts.onHighlight.current();
|
|
@@ -830,6 +810,7 @@ class SelectItemState {
|
|
|
830
810
|
onpointermove: this.onpointermove,
|
|
831
811
|
onpointerdown: this.onpointerdown,
|
|
832
812
|
onpointerup: this.onpointerup,
|
|
813
|
+
...attachRef(this.opts.ref),
|
|
833
814
|
}));
|
|
834
815
|
}
|
|
835
816
|
class SelectGroupState {
|
|
@@ -839,13 +820,13 @@ class SelectGroupState {
|
|
|
839
820
|
constructor(opts, root) {
|
|
840
821
|
this.opts = opts;
|
|
841
822
|
this.root = root;
|
|
842
|
-
useRefById(opts);
|
|
843
823
|
}
|
|
844
824
|
props = $derived.by(() => ({
|
|
845
825
|
id: this.opts.id.current,
|
|
846
826
|
role: "group",
|
|
847
827
|
[this.root.bitsAttrs.group]: "",
|
|
848
828
|
"aria-labelledby": this.labelNode?.id ?? undefined,
|
|
829
|
+
...attachRef(this.opts.ref),
|
|
849
830
|
}));
|
|
850
831
|
}
|
|
851
832
|
class SelectGroupHeadingState {
|
|
@@ -854,16 +835,11 @@ class SelectGroupHeadingState {
|
|
|
854
835
|
constructor(opts, group) {
|
|
855
836
|
this.opts = opts;
|
|
856
837
|
this.group = group;
|
|
857
|
-
useRefById({
|
|
858
|
-
...opts,
|
|
859
|
-
onRefChange: (node) => {
|
|
860
|
-
group.labelNode = node;
|
|
861
|
-
},
|
|
862
|
-
});
|
|
863
838
|
}
|
|
864
839
|
props = $derived.by(() => ({
|
|
865
840
|
id: this.opts.id.current,
|
|
866
841
|
[this.group.root.bitsAttrs["group-label"]]: "",
|
|
842
|
+
...attachRef(this.opts.ref, (v) => (this.group.labelNode = v)),
|
|
867
843
|
}));
|
|
868
844
|
}
|
|
869
845
|
class SelectHiddenInputState {
|
|
@@ -901,13 +877,6 @@ class SelectViewportState {
|
|
|
901
877
|
this.opts = opts;
|
|
902
878
|
this.content = content;
|
|
903
879
|
this.root = content.root;
|
|
904
|
-
useRefById({
|
|
905
|
-
...opts,
|
|
906
|
-
onRefChange: (node) => {
|
|
907
|
-
this.content.viewportNode = node;
|
|
908
|
-
},
|
|
909
|
-
deps: () => this.root.opts.open.current,
|
|
910
|
-
});
|
|
911
880
|
}
|
|
912
881
|
props = $derived.by(() => ({
|
|
913
882
|
id: this.opts.id.current,
|
|
@@ -921,6 +890,7 @@ class SelectViewportState {
|
|
|
921
890
|
flex: 1,
|
|
922
891
|
overflow: "auto",
|
|
923
892
|
},
|
|
893
|
+
...attachRef(this.opts.ref, (v) => (this.content.viewportNode = v)),
|
|
924
894
|
}));
|
|
925
895
|
}
|
|
926
896
|
class SelectScrollButtonImplState {
|
|
@@ -936,10 +906,6 @@ class SelectScrollButtonImplState {
|
|
|
936
906
|
this.opts = opts;
|
|
937
907
|
this.content = content;
|
|
938
908
|
this.root = content.root;
|
|
939
|
-
useRefById({
|
|
940
|
-
...opts,
|
|
941
|
-
deps: () => this.mounted,
|
|
942
|
-
});
|
|
943
909
|
watch([() => this.mounted], () => {
|
|
944
910
|
if (!this.mounted) {
|
|
945
911
|
this.isUserScrolling = false;
|
|
@@ -994,6 +960,7 @@ class SelectScrollButtonImplState {
|
|
|
994
960
|
onpointerdown: this.onpointerdown,
|
|
995
961
|
onpointermove: this.onpointermove,
|
|
996
962
|
onpointerleave: this.onpointerleave,
|
|
963
|
+
...attachRef(this.opts.ref),
|
|
997
964
|
}));
|
|
998
965
|
}
|
|
999
966
|
class SelectScrollDownButtonState {
|
|
@@ -2,10 +2,12 @@
|
|
|
2
2
|
import { box, mergeProps } from "svelte-toolbelt";
|
|
3
3
|
import { useSeparatorRoot } from "../separator.svelte.js";
|
|
4
4
|
import type { SeparatorRootProps } from "../types.js";
|
|
5
|
-
import {
|
|
5
|
+
import { createId } from "../../../internal/create-id.js";
|
|
6
|
+
|
|
7
|
+
const uid = $props.id();
|
|
6
8
|
|
|
7
9
|
let {
|
|
8
|
-
id =
|
|
10
|
+
id = createId(uid),
|
|
9
11
|
ref = $bindable(null),
|
|
10
12
|
child,
|
|
11
13
|
children,
|
|
@@ -1,11 +1,10 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { attachRef } from "svelte-toolbelt";
|
|
2
2
|
import { getAriaHidden, getAriaOrientation, getDataOrientation } from "../../internal/attrs.js";
|
|
3
3
|
const SEPARATOR_ROOT_ATTR = "data-separator-root";
|
|
4
4
|
class SeparatorRootState {
|
|
5
5
|
opts;
|
|
6
6
|
constructor(opts) {
|
|
7
7
|
this.opts = opts;
|
|
8
|
-
useRefById(opts);
|
|
9
8
|
}
|
|
10
9
|
props = $derived.by(() => ({
|
|
11
10
|
id: this.opts.id.current,
|
|
@@ -14,6 +13,7 @@ class SeparatorRootState {
|
|
|
14
13
|
"aria-hidden": getAriaHidden(this.opts.decorative.current),
|
|
15
14
|
"data-orientation": getDataOrientation(this.opts.orientation.current),
|
|
16
15
|
[SEPARATOR_ROOT_ATTR]: "",
|
|
16
|
+
...attachRef(this.opts.ref),
|
|
17
17
|
}));
|
|
18
18
|
}
|
|
19
19
|
export function useSeparatorRoot(props) {
|
|
@@ -2,13 +2,15 @@
|
|
|
2
2
|
import { box, mergeProps } from "svelte-toolbelt";
|
|
3
3
|
import type { SliderRangeProps } from "../types.js";
|
|
4
4
|
import { useSliderRange } from "../slider.svelte.js";
|
|
5
|
-
import {
|
|
5
|
+
import { createId } from "../../../internal/create-id.js";
|
|
6
|
+
|
|
7
|
+
const uid = $props.id();
|
|
6
8
|
|
|
7
9
|
let {
|
|
8
10
|
children,
|
|
9
11
|
child,
|
|
10
12
|
ref = $bindable(null),
|
|
11
|
-
id =
|
|
13
|
+
id = createId(uid),
|
|
12
14
|
...restProps
|
|
13
15
|
}: SliderRangeProps = $props();
|
|
14
16
|
|
|
@@ -0,0 +1,50 @@
|
|
|
1
|
+
<script lang="ts">
|
|
2
|
+
import { box, mergeProps } from "svelte-toolbelt";
|
|
3
|
+
import type { SliderThumbLabelProps } from "../types.js";
|
|
4
|
+
import { SliderRootContext, useSliderThumbLabel } from "../slider.svelte.js";
|
|
5
|
+
import { createId } from "../../../internal/create-id.js";
|
|
6
|
+
|
|
7
|
+
const uid = $props.id();
|
|
8
|
+
|
|
9
|
+
let {
|
|
10
|
+
children,
|
|
11
|
+
child,
|
|
12
|
+
ref = $bindable(null),
|
|
13
|
+
id = createId(uid),
|
|
14
|
+
index,
|
|
15
|
+
position: positionProp,
|
|
16
|
+
...restProps
|
|
17
|
+
}: SliderThumbLabelProps = $props();
|
|
18
|
+
|
|
19
|
+
const root = SliderRootContext.get();
|
|
20
|
+
|
|
21
|
+
const position = $derived.by(() => {
|
|
22
|
+
if (positionProp !== undefined) return positionProp;
|
|
23
|
+
switch (root.direction) {
|
|
24
|
+
case "lr":
|
|
25
|
+
case "rl":
|
|
26
|
+
return "top";
|
|
27
|
+
case "tb":
|
|
28
|
+
case "bt":
|
|
29
|
+
return "left";
|
|
30
|
+
}
|
|
31
|
+
});
|
|
32
|
+
|
|
33
|
+
const tickLabelState = useSliderThumbLabel({
|
|
34
|
+
id: box.with(() => id),
|
|
35
|
+
ref: box.with(
|
|
36
|
+
() => ref,
|
|
37
|
+
(v) => (ref = v)
|
|
38
|
+
),
|
|
39
|
+
index: box.with(() => index),
|
|
40
|
+
position: box.with(() => position),
|
|
41
|
+
});
|
|
42
|
+
|
|
43
|
+
const mergedProps = $derived(mergeProps(restProps, tickLabelState.props));
|
|
44
|
+
</script>
|
|
45
|
+
|
|
46
|
+
{#if child}
|
|
47
|
+
{@render child({ props: mergedProps })}
|
|
48
|
+
{:else}
|
|
49
|
+
<span {...mergedProps}>{@render children?.()}</span>
|
|
50
|
+
{/if}
|
|
@@ -2,13 +2,15 @@
|
|
|
2
2
|
import { box, mergeProps } from "svelte-toolbelt";
|
|
3
3
|
import type { SliderThumbProps } from "../types.js";
|
|
4
4
|
import { useSliderThumb } from "../slider.svelte.js";
|
|
5
|
-
import {
|
|
5
|
+
import { createId } from "../../../internal/create-id.js";
|
|
6
|
+
|
|
7
|
+
const uid = $props.id();
|
|
6
8
|
|
|
7
9
|
let {
|
|
8
10
|
children,
|
|
9
11
|
child,
|
|
10
12
|
ref = $bindable(null),
|
|
11
|
-
id =
|
|
13
|
+
id = createId(uid),
|
|
12
14
|
index,
|
|
13
15
|
disabled = false,
|
|
14
16
|
...restProps
|
|
@@ -0,0 +1,50 @@
|
|
|
1
|
+
<script lang="ts">
|
|
2
|
+
import { box, mergeProps } from "svelte-toolbelt";
|
|
3
|
+
import type { SliderTickLabelProps } from "../types.js";
|
|
4
|
+
import { SliderRootContext, useSliderTickLabel } from "../slider.svelte.js";
|
|
5
|
+
import { createId } from "../../../internal/create-id.js";
|
|
6
|
+
|
|
7
|
+
const uid = $props.id();
|
|
8
|
+
|
|
9
|
+
let {
|
|
10
|
+
children,
|
|
11
|
+
child,
|
|
12
|
+
ref = $bindable(null),
|
|
13
|
+
id = createId(uid),
|
|
14
|
+
index,
|
|
15
|
+
position: positionProp,
|
|
16
|
+
...restProps
|
|
17
|
+
}: SliderTickLabelProps = $props();
|
|
18
|
+
|
|
19
|
+
const root = SliderRootContext.get();
|
|
20
|
+
|
|
21
|
+
const position = $derived.by(() => {
|
|
22
|
+
if (positionProp !== undefined) return positionProp;
|
|
23
|
+
switch (root.direction) {
|
|
24
|
+
case "lr":
|
|
25
|
+
case "rl":
|
|
26
|
+
return "top";
|
|
27
|
+
case "tb":
|
|
28
|
+
case "bt":
|
|
29
|
+
return "left";
|
|
30
|
+
}
|
|
31
|
+
});
|
|
32
|
+
|
|
33
|
+
const tickLabelState = useSliderTickLabel({
|
|
34
|
+
id: box.with(() => id),
|
|
35
|
+
ref: box.with(
|
|
36
|
+
() => ref,
|
|
37
|
+
(v) => (ref = v)
|
|
38
|
+
),
|
|
39
|
+
index: box.with(() => index),
|
|
40
|
+
position: box.with(() => position),
|
|
41
|
+
});
|
|
42
|
+
|
|
43
|
+
const mergedProps = $derived(mergeProps(restProps, tickLabelState.props));
|
|
44
|
+
</script>
|
|
45
|
+
|
|
46
|
+
{#if child}
|
|
47
|
+
{@render child({ props: mergedProps })}
|
|
48
|
+
{:else}
|
|
49
|
+
<span {...mergedProps}>{@render children?.()}</span>
|
|
50
|
+
{/if}
|
|
@@ -2,13 +2,15 @@
|
|
|
2
2
|
import { box, mergeProps } from "svelte-toolbelt";
|
|
3
3
|
import type { SliderTickProps } from "../types.js";
|
|
4
4
|
import { useSliderTick } from "../slider.svelte.js";
|
|
5
|
-
import {
|
|
5
|
+
import { createId } from "../../../internal/create-id.js";
|
|
6
|
+
|
|
7
|
+
const uid = $props.id();
|
|
6
8
|
|
|
7
9
|
let {
|
|
8
10
|
children,
|
|
9
11
|
child,
|
|
10
12
|
ref = $bindable(null),
|
|
11
|
-
id =
|
|
13
|
+
id = createId(uid),
|
|
12
14
|
index,
|
|
13
15
|
...restProps
|
|
14
16
|
}: SliderTickProps = $props();
|
|
@@ -2,33 +2,51 @@
|
|
|
2
2
|
import { box, mergeProps, type WritableBox } from "svelte-toolbelt";
|
|
3
3
|
import type { SliderRootProps } from "../types.js";
|
|
4
4
|
import { useSliderRoot } from "../slider.svelte.js";
|
|
5
|
-
import {
|
|
5
|
+
import { createId } from "../../../internal/create-id.js";
|
|
6
6
|
import { noop } from "../../../internal/noop.js";
|
|
7
7
|
import { watch } from "runed";
|
|
8
8
|
|
|
9
|
+
const uid = $props.id();
|
|
10
|
+
|
|
9
11
|
let {
|
|
10
12
|
children,
|
|
11
13
|
child,
|
|
12
|
-
id =
|
|
14
|
+
id = createId(uid),
|
|
13
15
|
ref = $bindable(null),
|
|
14
16
|
value = $bindable(),
|
|
15
17
|
type,
|
|
16
18
|
onValueChange = noop,
|
|
17
19
|
onValueCommit = noop,
|
|
18
20
|
disabled = false,
|
|
19
|
-
min
|
|
20
|
-
max
|
|
21
|
+
min: minProp,
|
|
22
|
+
max: maxProp,
|
|
21
23
|
step = 1,
|
|
22
24
|
dir = "ltr",
|
|
23
25
|
autoSort = true,
|
|
24
26
|
orientation = "horizontal",
|
|
25
27
|
thumbPositioning = "contain",
|
|
28
|
+
trackPadding,
|
|
26
29
|
...restProps
|
|
27
30
|
}: SliderRootProps = $props();
|
|
28
31
|
|
|
32
|
+
const min = $derived.by(() => {
|
|
33
|
+
if (minProp !== undefined) return minProp;
|
|
34
|
+
if (Array.isArray(step)) return Math.min(...step);
|
|
35
|
+
return 0;
|
|
36
|
+
});
|
|
37
|
+
|
|
38
|
+
const max = $derived.by(() => {
|
|
39
|
+
if (maxProp !== undefined) return maxProp;
|
|
40
|
+
if (Array.isArray(step)) return Math.max(...step);
|
|
41
|
+
return 100;
|
|
42
|
+
});
|
|
43
|
+
|
|
29
44
|
function handleDefaultValue() {
|
|
30
45
|
if (value !== undefined) return;
|
|
31
|
-
|
|
46
|
+
if (type === "single") {
|
|
47
|
+
return min;
|
|
48
|
+
}
|
|
49
|
+
return [];
|
|
32
50
|
}
|
|
33
51
|
|
|
34
52
|
// SSR
|
|
@@ -66,6 +84,7 @@
|
|
|
66
84
|
orientation: box.with(() => orientation),
|
|
67
85
|
thumbPositioning: box.with(() => thumbPositioning),
|
|
68
86
|
type,
|
|
87
|
+
trackPadding: box.with(() => trackPadding),
|
|
69
88
|
});
|
|
70
89
|
|
|
71
90
|
const mergedProps = $derived(mergeProps(restProps, rootState.props));
|
|
@@ -2,4 +2,6 @@ export { default as Root } from "./components/slider.svelte";
|
|
|
2
2
|
export { default as Range } from "./components/slider-range.svelte";
|
|
3
3
|
export { default as Thumb } from "./components/slider-thumb.svelte";
|
|
4
4
|
export { default as Tick } from "./components/slider-tick.svelte";
|
|
5
|
-
export
|
|
5
|
+
export { default as TickLabel } from "./components/slider-tick-label.svelte";
|
|
6
|
+
export { default as ThumbLabel } from "./components/slider-thumb-label.svelte";
|
|
7
|
+
export type { SliderRootProps as RootProps, SliderRangeProps as RangeProps, SliderThumbProps as ThumbProps, SliderTickProps as TickProps, SliderTickLabelProps as TickLabelProps, SliderThumbLabelProps as ThumbLabelProps, } from "./types.js";
|
|
@@ -2,3 +2,5 @@ export { default as Root } from "./components/slider.svelte";
|
|
|
2
2
|
export { default as Range } from "./components/slider-range.svelte";
|
|
3
3
|
export { default as Thumb } from "./components/slider-thumb.svelte";
|
|
4
4
|
export { default as Tick } from "./components/slider-tick.svelte";
|
|
5
|
+
export { default as TickLabel } from "./components/slider-tick-label.svelte";
|
|
6
|
+
export { default as ThumbLabel } from "./components/slider-thumb-label.svelte";
|
|
@@ -2,3 +2,17 @@ import type { StyleProperties } from "../../shared/index.js";
|
|
|
2
2
|
export declare function getRangeStyles(direction: "lr" | "rl" | "tb" | "bt", min: number, max: number): StyleProperties;
|
|
3
3
|
export declare function getThumbStyles(direction: "lr" | "rl" | "tb" | "bt", thumbPos: number): StyleProperties;
|
|
4
4
|
export declare function getTickStyles(direction: "lr" | "rl" | "tb" | "bt", tickPosition: number, offsetPercentage: number): StyleProperties;
|
|
5
|
+
export declare function getTickLabelStyles(direction: "lr" | "rl" | "tb" | "bt", tickPosition: number, labelPosition?: "top" | "bottom" | "left" | "right"): StyleProperties;
|
|
6
|
+
export declare function getThumbLabelStyles(direction: "lr" | "rl" | "tb" | "bt", thumbPosition: number, labelPosition?: "top" | "bottom" | "left" | "right"): StyleProperties;
|
|
7
|
+
/**
|
|
8
|
+
* Normalizes step to always be a sorted array of valid values within min/max range
|
|
9
|
+
*/
|
|
10
|
+
export declare function normalizeSteps(step: number | number[], min: number, max: number): number[];
|
|
11
|
+
/**
|
|
12
|
+
* Snaps a value to the nearest step in a custom steps array
|
|
13
|
+
*/
|
|
14
|
+
export declare function snapValueToCustomSteps(value: number, steps: number[]): number;
|
|
15
|
+
/**
|
|
16
|
+
* Gets the next/previous step value for keyboard navigation
|
|
17
|
+
*/
|
|
18
|
+
export declare function getAdjacentStepValue(currentValue: number, steps: number[], direction: "next" | "prev"): number;
|