bits-ui 2.10.0 → 2.11.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 +9 -7
- package/dist/bits/accordion/accordion.svelte.js +36 -13
- package/dist/bits/accordion/components/accordion-content.svelte +15 -7
- package/dist/bits/accordion/components/accordion-header.svelte +4 -4
- package/dist/bits/accordion/components/accordion-item.svelte +5 -5
- package/dist/bits/accordion/components/accordion-trigger.svelte +4 -4
- package/dist/bits/accordion/components/accordion.svelte +7 -7
- package/dist/bits/accordion/components/accordion.svelte.d.ts +1 -1
- package/dist/bits/accordion/types.d.ts +17 -8
- package/dist/bits/alert-dialog/components/alert-dialog-action.svelte +3 -3
- package/dist/bits/alert-dialog/components/alert-dialog-cancel.svelte +4 -4
- package/dist/bits/alert-dialog/components/alert-dialog-content.svelte +3 -3
- package/dist/bits/alert-dialog/components/alert-dialog.svelte +4 -4
- package/dist/bits/aspect-ratio/components/aspect-ratio.svelte +4 -4
- package/dist/bits/avatar/components/avatar-fallback.svelte +3 -3
- package/dist/bits/avatar/components/avatar-image.svelte +6 -6
- package/dist/bits/avatar/components/avatar.svelte +5 -5
- package/dist/bits/calendar/calendar.svelte.js +30 -30
- package/dist/bits/calendar/components/calendar-cell.svelte +5 -5
- package/dist/bits/calendar/components/calendar-day.svelte +3 -3
- package/dist/bits/calendar/components/calendar-grid-body.svelte +3 -3
- package/dist/bits/calendar/components/calendar-grid-head.svelte +3 -3
- package/dist/bits/calendar/components/calendar-grid-row.svelte +3 -3
- package/dist/bits/calendar/components/calendar-grid.svelte +3 -3
- package/dist/bits/calendar/components/calendar-head-cell.svelte +3 -3
- package/dist/bits/calendar/components/calendar-header.svelte +3 -3
- package/dist/bits/calendar/components/calendar-heading.svelte +3 -3
- package/dist/bits/calendar/components/calendar-month-select.svelte +6 -6
- package/dist/bits/calendar/components/calendar-next-button.svelte +3 -3
- package/dist/bits/calendar/components/calendar-prev-button.svelte +3 -3
- package/dist/bits/calendar/components/calendar-year-select.svelte +6 -6
- package/dist/bits/calendar/components/calendar.svelte +24 -24
- package/dist/bits/calendar/components/calendar.svelte.d.ts +1 -1
- package/dist/bits/checkbox/checkbox.svelte.d.ts +1 -1
- package/dist/bits/checkbox/checkbox.svelte.js +7 -7
- package/dist/bits/checkbox/components/checkbox-group-label.svelte +3 -3
- package/dist/bits/checkbox/components/checkbox-group.svelte +9 -9
- package/dist/bits/checkbox/components/checkbox-group.svelte.d.ts +1 -1
- package/dist/bits/checkbox/components/checkbox.svelte +11 -11
- package/dist/bits/checkbox/components/checkbox.svelte.d.ts +1 -1
- package/dist/bits/collapsible/collapsible.svelte.d.ts +2 -0
- package/dist/bits/collapsible/collapsible.svelte.js +31 -8
- package/dist/bits/collapsible/components/collapsible-content.svelte +15 -7
- package/dist/bits/collapsible/components/collapsible-trigger.svelte +4 -4
- package/dist/bits/collapsible/components/collapsible.svelte +6 -6
- package/dist/bits/collapsible/types.d.ts +12 -3
- package/dist/bits/combobox/components/combobox-input.svelte +4 -4
- package/dist/bits/combobox/components/combobox-trigger.svelte +3 -3
- package/dist/bits/combobox/components/combobox.svelte +12 -12
- package/dist/bits/command/command.svelte.js +6 -6
- package/dist/bits/command/components/_command-label.svelte +3 -3
- package/dist/bits/command/components/command-empty.svelte +4 -4
- package/dist/bits/command/components/command-group-heading.svelte +3 -3
- package/dist/bits/command/components/command-group-items.svelte +3 -3
- package/dist/bits/command/components/command-group.svelte +5 -5
- package/dist/bits/command/components/command-input.svelte +5 -5
- package/dist/bits/command/components/command-input.svelte.d.ts +1 -1
- package/dist/bits/command/components/command-item.svelte +8 -8
- package/dist/bits/command/components/command-link-item.svelte +8 -8
- package/dist/bits/command/components/command-list.svelte +4 -4
- package/dist/bits/command/components/command-loading.svelte +4 -4
- package/dist/bits/command/components/command-separator.svelte +4 -4
- package/dist/bits/command/components/command-viewport.svelte +3 -3
- package/dist/bits/command/components/command.svelte +12 -12
- package/dist/bits/command/components/command.svelte.d.ts +1 -1
- package/dist/bits/context-menu/components/context-menu-content-static.svelte +5 -5
- package/dist/bits/context-menu/components/context-menu-content.svelte +5 -5
- package/dist/bits/context-menu/components/context-menu-trigger.svelte +4 -4
- package/dist/bits/context-menu/components/context-menu.svelte +5 -5
- package/dist/bits/date-field/components/date-field-input.svelte +4 -4
- package/dist/bits/date-field/components/date-field-label.svelte +3 -3
- package/dist/bits/date-field/components/date-field-segment.svelte +3 -3
- package/dist/bits/date-field/components/date-field.svelte +16 -16
- package/dist/bits/date-field/date-field.svelte.js +17 -17
- package/dist/bits/date-picker/components/date-picker-calendar.svelte +5 -5
- package/dist/bits/date-picker/components/date-picker.svelte +32 -32
- package/dist/bits/date-range-field/components/date-range-field-input.svelte +4 -4
- package/dist/bits/date-range-field/components/date-range-field-label.svelte +3 -3
- package/dist/bits/date-range-field/components/date-range-field.svelte +19 -19
- package/dist/bits/date-range-field/components/date-range-field.svelte.d.ts +1 -1
- package/dist/bits/date-range-field/date-range-field.svelte.js +9 -9
- package/dist/bits/date-range-picker/components/date-range-picker-calendar.svelte +3 -3
- package/dist/bits/date-range-picker/components/date-range-picker.svelte +37 -37
- package/dist/bits/date-range-picker/components/date-range-picker.svelte.d.ts +1 -1
- package/dist/bits/dialog/components/dialog-close.svelte +5 -5
- package/dist/bits/dialog/components/dialog-content.svelte +3 -3
- package/dist/bits/dialog/components/dialog-description.svelte +3 -3
- package/dist/bits/dialog/components/dialog-overlay.svelte +3 -3
- package/dist/bits/dialog/components/dialog-title.svelte +4 -4
- package/dist/bits/dialog/components/dialog-trigger.svelte +4 -4
- package/dist/bits/dialog/components/dialog.svelte +4 -4
- package/dist/bits/dialog/dialog.svelte.d.ts +1 -1
- package/dist/bits/dialog/dialog.svelte.js +4 -4
- package/dist/bits/dropdown-menu/components/dropdown-menu-content-static.svelte +5 -5
- package/dist/bits/dropdown-menu/components/dropdown-menu-content.svelte +5 -5
- package/dist/bits/label/components/label.svelte +3 -3
- package/dist/bits/link-preview/components/link-preview-content-static.svelte +5 -5
- package/dist/bits/link-preview/components/link-preview-content.svelte +5 -5
- package/dist/bits/link-preview/components/link-preview-trigger.svelte +3 -3
- package/dist/bits/link-preview/components/link-preview.svelte +6 -6
- package/dist/bits/link-preview/link-preview.svelte.js +4 -4
- package/dist/bits/menu/components/menu-checkbox-group.svelte +5 -5
- package/dist/bits/menu/components/menu-checkbox-group.svelte.d.ts +1 -1
- package/dist/bits/menu/components/menu-checkbox-item.svelte +9 -9
- package/dist/bits/menu/components/menu-checkbox-item.svelte.d.ts +1 -1
- package/dist/bits/menu/components/menu-content-static.svelte +5 -5
- package/dist/bits/menu/components/menu-content.svelte +5 -5
- package/dist/bits/menu/components/menu-group-heading.svelte +3 -3
- package/dist/bits/menu/components/menu-group.svelte +3 -3
- package/dist/bits/menu/components/menu-item.svelte +6 -6
- package/dist/bits/menu/components/menu-radio-group.svelte +4 -4
- package/dist/bits/menu/components/menu-radio-group.svelte.d.ts +1 -1
- package/dist/bits/menu/components/menu-radio-item.svelte +7 -7
- package/dist/bits/menu/components/menu-separator.svelte +3 -3
- package/dist/bits/menu/components/menu-sub-content-static.svelte +5 -5
- package/dist/bits/menu/components/menu-sub-content.svelte +5 -5
- package/dist/bits/menu/components/menu-sub-trigger.svelte +5 -5
- package/dist/bits/menu/components/menu-sub.svelte +3 -3
- package/dist/bits/menu/components/menu-trigger.svelte +4 -4
- package/dist/bits/menu/components/menu.svelte +5 -5
- package/dist/bits/menu/menu.svelte.d.ts +1 -1
- package/dist/bits/menu/menu.svelte.js +14 -14
- package/dist/bits/menubar/components/menubar-content-static.svelte +8 -8
- package/dist/bits/menubar/components/menubar-content.svelte +8 -8
- package/dist/bits/menubar/components/menubar-menu.svelte +3 -3
- package/dist/bits/menubar/components/menubar-trigger.svelte +4 -4
- package/dist/bits/menubar/components/menubar.svelte +6 -6
- package/dist/bits/menubar/menubar.svelte.js +5 -5
- package/dist/bits/meter/components/meter.svelte +6 -6
- package/dist/bits/navigation-menu/components/navigation-menu-content-impl.svelte +3 -3
- package/dist/bits/navigation-menu/components/navigation-menu-content.svelte +3 -3
- package/dist/bits/navigation-menu/components/navigation-menu-indicator-impl.svelte +3 -3
- package/dist/bits/navigation-menu/components/navigation-menu-indicator.svelte +2 -2
- package/dist/bits/navigation-menu/components/navigation-menu-item.svelte +5 -5
- package/dist/bits/navigation-menu/components/navigation-menu-link.svelte +5 -5
- package/dist/bits/navigation-menu/components/navigation-menu-list.svelte +3 -3
- package/dist/bits/navigation-menu/components/navigation-menu-sub.svelte +5 -5
- package/dist/bits/navigation-menu/components/navigation-menu-sub.svelte.d.ts +1 -1
- package/dist/bits/navigation-menu/components/navigation-menu-trigger.svelte +4 -4
- package/dist/bits/navigation-menu/components/navigation-menu-viewport.svelte +3 -3
- package/dist/bits/navigation-menu/components/navigation-menu.svelte +8 -8
- package/dist/bits/navigation-menu/components/navigation-menu.svelte.d.ts +1 -1
- package/dist/bits/navigation-menu/navigation-menu.svelte.d.ts +6 -6
- package/dist/bits/navigation-menu/navigation-menu.svelte.js +23 -23
- package/dist/bits/pagination/components/pagination-next-button.svelte +4 -4
- package/dist/bits/pagination/components/pagination-page.svelte +5 -5
- package/dist/bits/pagination/components/pagination-prev-button.svelte +4 -4
- package/dist/bits/pagination/components/pagination.svelte +9 -9
- package/dist/bits/pagination/pagination.svelte.d.ts +1 -1
- package/dist/bits/pagination/pagination.svelte.js +2 -2
- package/dist/bits/pin-input/components/pin-input-cell.svelte +4 -4
- package/dist/bits/pin-input/components/pin-input.svelte +14 -14
- package/dist/bits/pin-input/components/pin-input.svelte.d.ts +1 -1
- package/dist/bits/pin-input/pin-input.svelte.d.ts +2 -2
- package/dist/bits/pin-input/pin-input.svelte.js +5 -5
- package/dist/bits/popover/components/popover-close.svelte +3 -3
- package/dist/bits/popover/components/popover-content-static.svelte +6 -6
- package/dist/bits/popover/components/popover-content.svelte +6 -6
- package/dist/bits/popover/components/popover-trigger.svelte +4 -4
- package/dist/bits/popover/components/popover.svelte +3 -3
- package/dist/bits/popover/popover.svelte.js +4 -4
- package/dist/bits/progress/components/progress.svelte +6 -6
- package/dist/bits/radio-group/components/radio-group-item.svelte +5 -5
- package/dist/bits/radio-group/components/radio-group.svelte +10 -10
- package/dist/bits/radio-group/components/radio-group.svelte.d.ts +1 -1
- package/dist/bits/radio-group/radio-group.svelte.js +7 -7
- package/dist/bits/range-calendar/components/range-calendar-cell.svelte +5 -5
- package/dist/bits/range-calendar/components/range-calendar-day.svelte +3 -3
- package/dist/bits/range-calendar/components/range-calendar.svelte +26 -26
- package/dist/bits/range-calendar/components/range-calendar.svelte.d.ts +1 -1
- package/dist/bits/range-calendar/range-calendar.svelte.js +7 -7
- package/dist/bits/rating-group/components/rating-group-item.svelte +5 -5
- package/dist/bits/rating-group/components/rating-group.svelte +14 -14
- package/dist/bits/rating-group/components/rating-group.svelte.d.ts +1 -1
- package/dist/bits/rating-group/rating-group.svelte.js +4 -4
- package/dist/bits/scroll-area/components/scroll-area-corner-impl.svelte +3 -3
- package/dist/bits/scroll-area/components/scroll-area-scrollbar-x.svelte +2 -2
- package/dist/bits/scroll-area/components/scroll-area-scrollbar-y.svelte +2 -2
- package/dist/bits/scroll-area/components/scroll-area-scrollbar.svelte +4 -4
- package/dist/bits/scroll-area/components/scroll-area-thumb-impl.svelte +4 -4
- package/dist/bits/scroll-area/components/scroll-area-viewport.svelte +3 -3
- package/dist/bits/scroll-area/components/scroll-area.svelte +6 -6
- package/dist/bits/scroll-area/scroll-area.svelte.d.ts +2 -2
- package/dist/bits/scroll-area/scroll-area.svelte.js +6 -7
- package/dist/bits/select/components/select-content-static.svelte +5 -5
- package/dist/bits/select/components/select-content.svelte +5 -5
- package/dist/bits/select/components/select-group-heading.svelte +3 -3
- package/dist/bits/select/components/select-group.svelte +3 -3
- package/dist/bits/select/components/select-hidden-input.svelte +2 -2
- package/dist/bits/select/components/select-item.svelte +8 -8
- package/dist/bits/select/components/select-scroll-down-button.svelte +4 -4
- package/dist/bits/select/components/select-scroll-up-button.svelte +4 -4
- package/dist/bits/select/components/select-trigger.svelte +3 -3
- package/dist/bits/select/components/select-viewport.svelte +3 -3
- package/dist/bits/select/components/select.svelte +12 -12
- package/dist/bits/select/select.svelte.js +12 -12
- package/dist/bits/separator/components/separator.svelte +5 -5
- package/dist/bits/separator/separator.svelte.d.ts +2 -2
- package/dist/bits/separator/separator.svelte.js +4 -4
- package/dist/bits/slider/components/slider-range.svelte +3 -3
- package/dist/bits/slider/components/slider-thumb-label.svelte +5 -5
- package/dist/bits/slider/components/slider-thumb.svelte +5 -5
- package/dist/bits/slider/components/slider-tick-label.svelte +5 -5
- package/dist/bits/slider/components/slider-tick.svelte +4 -4
- package/dist/bits/slider/components/slider.svelte +14 -14
- package/dist/bits/slider/components/slider.svelte.d.ts +1 -1
- package/dist/bits/slider/slider.svelte.d.ts +16 -16
- package/dist/bits/slider/slider.svelte.js +20 -20
- package/dist/bits/switch/components/switch-thumb.svelte +3 -3
- package/dist/bits/switch/components/switch.svelte +8 -8
- package/dist/bits/switch/components/switch.svelte.d.ts +1 -1
- package/dist/bits/switch/switch.svelte.js +5 -5
- package/dist/bits/tabs/components/tabs-content.svelte +4 -4
- package/dist/bits/tabs/components/tabs-list.svelte +3 -3
- package/dist/bits/tabs/components/tabs-trigger.svelte +5 -5
- package/dist/bits/tabs/components/tabs.svelte +8 -8
- package/dist/bits/tabs/components/tabs.svelte.d.ts +1 -1
- package/dist/bits/tabs/tabs.svelte.d.ts +5 -5
- package/dist/bits/tabs/tabs.svelte.js +11 -11
- package/dist/bits/time-field/components/time-field-input.svelte +4 -4
- package/dist/bits/time-field/components/time-field-label.svelte +3 -3
- package/dist/bits/time-field/components/time-field-segment.svelte +3 -3
- package/dist/bits/time-field/components/time-field.svelte +16 -16
- package/dist/bits/time-field/time-field.svelte.js +15 -15
- package/dist/bits/time-range-field/components/time-range-field-input.svelte +4 -4
- package/dist/bits/time-range-field/components/time-range-field-label.svelte +3 -3
- package/dist/bits/time-range-field/components/time-range-field.svelte +19 -19
- package/dist/bits/time-range-field/components/time-range-field.svelte.d.ts +1 -1
- package/dist/bits/time-range-field/time-range-field.svelte.js +7 -7
- package/dist/bits/toggle/components/toggle.svelte +5 -5
- package/dist/bits/toggle/toggle.svelte.d.ts +0 -1
- package/dist/bits/toggle/toggle.svelte.js +5 -10
- package/dist/bits/toggle-group/components/toggle-group-item.svelte +5 -5
- package/dist/bits/toggle-group/components/toggle-group.svelte +8 -8
- package/dist/bits/toggle-group/components/toggle-group.svelte.d.ts +1 -1
- package/dist/bits/toggle-group/toggle-group.svelte.d.ts +2 -2
- package/dist/bits/toggle-group/toggle-group.svelte.js +7 -7
- package/dist/bits/toolbar/components/toolbar-button.svelte +4 -4
- package/dist/bits/toolbar/components/toolbar-group-item.svelte +5 -5
- package/dist/bits/toolbar/components/toolbar-group.svelte +5 -5
- package/dist/bits/toolbar/components/toolbar-group.svelte.d.ts +1 -1
- package/dist/bits/toolbar/components/toolbar-link.svelte +3 -3
- package/dist/bits/toolbar/components/toolbar.svelte +5 -5
- package/dist/bits/toolbar/toolbar.svelte.d.ts +4 -4
- package/dist/bits/toolbar/toolbar.svelte.js +11 -11
- package/dist/bits/tooltip/components/tooltip-content-static.svelte +5 -5
- package/dist/bits/tooltip/components/tooltip-content.svelte +7 -5
- package/dist/bits/tooltip/components/tooltip-provider.svelte +7 -7
- package/dist/bits/tooltip/components/tooltip-trigger.svelte +4 -4
- package/dist/bits/tooltip/components/tooltip.svelte +8 -8
- package/dist/bits/tooltip/tooltip.svelte.js +7 -7
- package/dist/bits/tooltip/types.d.ts +1 -1
- package/dist/bits/utilities/config/bits-config.js +2 -2
- package/dist/bits/utilities/config/components/bits-config.svelte +3 -3
- package/dist/bits/utilities/config/prop-resolvers.js +2 -2
- package/dist/bits/utilities/dismissible-layer/dismissible-layer.svelte +7 -7
- package/dist/bits/utilities/dismissible-layer/use-dismissable-layer.svelte.js +4 -3
- package/dist/bits/utilities/escape-layer/escape-layer.svelte +4 -4
- package/dist/bits/utilities/floating-layer/components/floating-layer-anchor.svelte +3 -3
- package/dist/bits/utilities/floating-layer/components/floating-layer-arrow.svelte +3 -3
- package/dist/bits/utilities/floating-layer/components/floating-layer-content.svelte +20 -20
- package/dist/bits/utilities/floating-layer/use-floating-layer.svelte.d.ts +3 -3
- package/dist/bits/utilities/floating-layer/use-floating-layer.svelte.js +9 -9
- package/dist/bits/utilities/focus-scope/focus-scope-manager.js +2 -2
- package/dist/bits/utilities/focus-scope/focus-scope.svelte +5 -5
- package/dist/bits/utilities/presence-layer/presence-layer.svelte +2 -2
- package/dist/bits/utilities/text-selection-layer/text-selection-layer.svelte +5 -5
- package/dist/internal/attrs.d.ts +4 -19
- package/dist/internal/attrs.js +11 -56
- package/dist/internal/body-scroll-lock.svelte.js +5 -5
- package/dist/internal/box-auto-reset.svelte.js +2 -2
- package/dist/internal/date-time/calendar-helpers.svelte.js +4 -4
- package/dist/internal/events.d.ts +0 -6
- package/dist/internal/events.js +0 -17
- package/dist/internal/floating-svelte/use-floating.svelte.js +2 -2
- package/dist/internal/state-machine.js +2 -2
- package/package.json +2 -2
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
<script lang="ts">
|
|
2
|
-
import {
|
|
2
|
+
import { boxWith } from "svelte-toolbelt";
|
|
3
3
|
import type { LinkPreviewRootProps } from "../types.js";
|
|
4
4
|
import { LinkPreviewRootState } from "../link-preview.svelte.js";
|
|
5
5
|
import { noop } from "../../../internal/noop.js";
|
|
@@ -16,17 +16,17 @@
|
|
|
16
16
|
}: LinkPreviewRootProps = $props();
|
|
17
17
|
|
|
18
18
|
LinkPreviewRootState.create({
|
|
19
|
-
disabled:
|
|
20
|
-
open:
|
|
19
|
+
disabled: boxWith(() => disabled),
|
|
20
|
+
open: boxWith(
|
|
21
21
|
() => open,
|
|
22
22
|
(v) => {
|
|
23
23
|
open = v;
|
|
24
24
|
onOpenChange(v);
|
|
25
25
|
}
|
|
26
26
|
),
|
|
27
|
-
openDelay:
|
|
28
|
-
closeDelay:
|
|
29
|
-
onOpenChangeComplete:
|
|
27
|
+
openDelay: boxWith(() => openDelay),
|
|
28
|
+
closeDelay: boxWith(() => closeDelay),
|
|
29
|
+
onOpenChangeComplete: boxWith(() => onOpenChangeComplete),
|
|
30
30
|
});
|
|
31
31
|
</script>
|
|
32
32
|
|
|
@@ -1,7 +1,7 @@
|
|
|
1
|
-
import { afterSleep, onDestroyEffect, attachRef, DOMContext,
|
|
1
|
+
import { afterSleep, onDestroyEffect, attachRef, DOMContext, boxWith, } from "svelte-toolbelt";
|
|
2
2
|
import { Context, watch } from "runed";
|
|
3
3
|
import { on } from "svelte/events";
|
|
4
|
-
import { createBitsAttrs,
|
|
4
|
+
import { createBitsAttrs, boolToStr, getDataOpenClosed } from "../../internal/attrs.js";
|
|
5
5
|
import { isElement, isFocusVisible, isTouch } from "../../internal/is.js";
|
|
6
6
|
import { getTabbableCandidates } from "../../internal/focus.js";
|
|
7
7
|
import { GraceArea } from "../../internal/grace-area.svelte.js";
|
|
@@ -28,7 +28,7 @@ export class LinkPreviewRootState {
|
|
|
28
28
|
constructor(opts) {
|
|
29
29
|
this.opts = opts;
|
|
30
30
|
new OpenChangeComplete({
|
|
31
|
-
ref:
|
|
31
|
+
ref: boxWith(() => this.contentNode),
|
|
32
32
|
open: this.opts.open,
|
|
33
33
|
onComplete: () => {
|
|
34
34
|
this.opts.onOpenChangeComplete.current(this.opts.open.current);
|
|
@@ -141,7 +141,7 @@ export class LinkPreviewTriggerState {
|
|
|
141
141
|
props = $derived.by(() => ({
|
|
142
142
|
id: this.opts.id.current,
|
|
143
143
|
"aria-haspopup": "dialog",
|
|
144
|
-
"aria-expanded":
|
|
144
|
+
"aria-expanded": boolToStr(this.root.opts.open.current),
|
|
145
145
|
"data-state": getDataOpenClosed(this.root.opts.open.current),
|
|
146
146
|
"aria-controls": this.root.contentNode?.id,
|
|
147
147
|
role: "button",
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
<script lang="ts">
|
|
2
|
-
import {
|
|
2
|
+
import { boxWith, mergeProps } from "svelte-toolbelt";
|
|
3
3
|
import type { MenuCheckboxGroupProps } from "../types.js";
|
|
4
4
|
import { MenuCheckboxGroupState } from "../menu.svelte.js";
|
|
5
5
|
import { noop } from "../../../internal/noop.js";
|
|
@@ -18,19 +18,19 @@
|
|
|
18
18
|
}: MenuCheckboxGroupProps = $props();
|
|
19
19
|
|
|
20
20
|
const checkboxGroupState = MenuCheckboxGroupState.create({
|
|
21
|
-
value:
|
|
21
|
+
value: boxWith(
|
|
22
22
|
() => $state.snapshot(value),
|
|
23
23
|
(v) => {
|
|
24
24
|
value = $state.snapshot(v);
|
|
25
25
|
onValueChange(v);
|
|
26
26
|
}
|
|
27
27
|
),
|
|
28
|
-
onValueChange:
|
|
29
|
-
ref:
|
|
28
|
+
onValueChange: boxWith(() => onValueChange),
|
|
29
|
+
ref: boxWith(
|
|
30
30
|
() => ref,
|
|
31
31
|
(v) => (ref = v)
|
|
32
32
|
),
|
|
33
|
-
id:
|
|
33
|
+
id: boxWith(() => id),
|
|
34
34
|
});
|
|
35
35
|
|
|
36
36
|
const mergedProps = $derived(mergeProps(restProps, checkboxGroupState.props));
|
|
@@ -1,4 +1,4 @@
|
|
|
1
1
|
import type { MenuCheckboxGroupProps } from "../types.js";
|
|
2
|
-
declare const MenuCheckboxGroup: import("svelte").Component<MenuCheckboxGroupProps, {}, "
|
|
2
|
+
declare const MenuCheckboxGroup: import("svelte").Component<MenuCheckboxGroupProps, {}, "ref" | "value">;
|
|
3
3
|
type MenuCheckboxGroup = ReturnType<typeof MenuCheckboxGroup>;
|
|
4
4
|
export default MenuCheckboxGroup;
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
<script lang="ts">
|
|
2
|
-
import {
|
|
2
|
+
import { boxWith, mergeProps } from "svelte-toolbelt";
|
|
3
3
|
import type { MenuCheckboxItemProps } from "../types.js";
|
|
4
4
|
import { MenuCheckboxGroupContext, MenuCheckboxItemState } from "../menu.svelte.js";
|
|
5
5
|
import { createId } from "../../../internal/create-id.js";
|
|
@@ -49,7 +49,7 @@
|
|
|
49
49
|
|
|
50
50
|
const checkboxItemState = MenuCheckboxItemState.create(
|
|
51
51
|
{
|
|
52
|
-
checked:
|
|
52
|
+
checked: boxWith(
|
|
53
53
|
() => checked,
|
|
54
54
|
(v) => {
|
|
55
55
|
if (v !== checked) {
|
|
@@ -58,15 +58,15 @@
|
|
|
58
58
|
}
|
|
59
59
|
}
|
|
60
60
|
),
|
|
61
|
-
id:
|
|
62
|
-
disabled:
|
|
63
|
-
onSelect:
|
|
64
|
-
ref:
|
|
61
|
+
id: boxWith(() => id),
|
|
62
|
+
disabled: boxWith(() => disabled),
|
|
63
|
+
onSelect: boxWith(() => handleSelect),
|
|
64
|
+
ref: boxWith(
|
|
65
65
|
() => ref,
|
|
66
66
|
(v) => (ref = v)
|
|
67
67
|
),
|
|
68
|
-
closeOnSelect:
|
|
69
|
-
indeterminate:
|
|
68
|
+
closeOnSelect: boxWith(() => closeOnSelect),
|
|
69
|
+
indeterminate: boxWith(
|
|
70
70
|
() => indeterminate,
|
|
71
71
|
(v) => {
|
|
72
72
|
if (v !== indeterminate) {
|
|
@@ -75,7 +75,7 @@
|
|
|
75
75
|
}
|
|
76
76
|
}
|
|
77
77
|
),
|
|
78
|
-
value:
|
|
78
|
+
value: boxWith(() => value),
|
|
79
79
|
},
|
|
80
80
|
group
|
|
81
81
|
);
|
|
@@ -1,4 +1,4 @@
|
|
|
1
1
|
import type { MenuCheckboxItemProps } from "../types.js";
|
|
2
|
-
declare const MenuCheckboxItem: import("svelte").Component<MenuCheckboxItemProps, {}, "
|
|
2
|
+
declare const MenuCheckboxItem: import("svelte").Component<MenuCheckboxItemProps, {}, "ref" | "checked" | "indeterminate">;
|
|
3
3
|
type MenuCheckboxItem = ReturnType<typeof MenuCheckboxItem>;
|
|
4
4
|
export default MenuCheckboxItem;
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
<script lang="ts">
|
|
2
|
-
import {
|
|
2
|
+
import { boxWith, mergeProps } from "svelte-toolbelt";
|
|
3
3
|
import type { MenuContentStaticProps } from "../types.js";
|
|
4
4
|
import { MenuContentState } from "../menu.svelte.js";
|
|
5
5
|
import { createId } from "../../../internal/create-id.js";
|
|
@@ -24,13 +24,13 @@
|
|
|
24
24
|
}: MenuContentStaticProps = $props();
|
|
25
25
|
|
|
26
26
|
const contentState = MenuContentState.create({
|
|
27
|
-
id:
|
|
28
|
-
loop:
|
|
29
|
-
ref:
|
|
27
|
+
id: boxWith(() => id),
|
|
28
|
+
loop: boxWith(() => loop),
|
|
29
|
+
ref: boxWith(
|
|
30
30
|
() => ref,
|
|
31
31
|
(v) => (ref = v)
|
|
32
32
|
),
|
|
33
|
-
onCloseAutoFocus:
|
|
33
|
+
onCloseAutoFocus: boxWith(() => onCloseAutoFocusProp),
|
|
34
34
|
});
|
|
35
35
|
|
|
36
36
|
const mergedProps = $derived(
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
<script lang="ts">
|
|
2
|
-
import {
|
|
2
|
+
import { boxWith, mergeProps } from "svelte-toolbelt";
|
|
3
3
|
import type { MenuContentProps } from "../types.js";
|
|
4
4
|
import { MenuContentState } from "../menu.svelte.js";
|
|
5
5
|
import { createId } from "../../../internal/create-id.js";
|
|
@@ -24,13 +24,13 @@
|
|
|
24
24
|
}: MenuContentProps = $props();
|
|
25
25
|
|
|
26
26
|
const contentState = MenuContentState.create({
|
|
27
|
-
id:
|
|
28
|
-
loop:
|
|
29
|
-
ref:
|
|
27
|
+
id: boxWith(() => id),
|
|
28
|
+
loop: boxWith(() => loop),
|
|
29
|
+
ref: boxWith(
|
|
30
30
|
() => ref,
|
|
31
31
|
(v) => (ref = v)
|
|
32
32
|
),
|
|
33
|
-
onCloseAutoFocus:
|
|
33
|
+
onCloseAutoFocus: boxWith(() => onCloseAutoFocusProp),
|
|
34
34
|
});
|
|
35
35
|
|
|
36
36
|
const mergedProps = $derived(
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
<script lang="ts">
|
|
2
|
-
import {
|
|
2
|
+
import { boxWith, mergeProps } from "svelte-toolbelt";
|
|
3
3
|
import type { MenuGroupHeadingProps } from "../types.js";
|
|
4
4
|
import { MenuGroupHeadingState } from "../menu.svelte.js";
|
|
5
5
|
import { createId } from "../../../internal/create-id.js";
|
|
@@ -15,8 +15,8 @@
|
|
|
15
15
|
}: MenuGroupHeadingProps = $props();
|
|
16
16
|
|
|
17
17
|
const groupHeadingState = MenuGroupHeadingState.create({
|
|
18
|
-
id:
|
|
19
|
-
ref:
|
|
18
|
+
id: boxWith(() => id),
|
|
19
|
+
ref: boxWith(
|
|
20
20
|
() => ref,
|
|
21
21
|
(v) => (ref = v)
|
|
22
22
|
),
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
<script lang="ts">
|
|
2
|
-
import {
|
|
2
|
+
import { boxWith, mergeProps } from "svelte-toolbelt";
|
|
3
3
|
import type { MenuGroupProps } from "../types.js";
|
|
4
4
|
import { MenuGroupState } from "../menu.svelte.js";
|
|
5
5
|
import { createId } from "../../../internal/create-id.js";
|
|
@@ -15,8 +15,8 @@
|
|
|
15
15
|
}: MenuGroupProps = $props();
|
|
16
16
|
|
|
17
17
|
const groupState = MenuGroupState.create({
|
|
18
|
-
id:
|
|
19
|
-
ref:
|
|
18
|
+
id: boxWith(() => id),
|
|
19
|
+
ref: boxWith(
|
|
20
20
|
() => ref,
|
|
21
21
|
(v) => (ref = v)
|
|
22
22
|
),
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
<script lang="ts">
|
|
2
|
-
import {
|
|
2
|
+
import { boxWith, mergeProps } from "svelte-toolbelt";
|
|
3
3
|
import type { MenuItemProps } from "../types.js";
|
|
4
4
|
import { MenuItemState } from "../menu.svelte.js";
|
|
5
5
|
import { createId } from "../../../internal/create-id.js";
|
|
@@ -19,14 +19,14 @@
|
|
|
19
19
|
}: MenuItemProps = $props();
|
|
20
20
|
|
|
21
21
|
const itemState = MenuItemState.create({
|
|
22
|
-
id:
|
|
23
|
-
disabled:
|
|
24
|
-
onSelect:
|
|
25
|
-
ref:
|
|
22
|
+
id: boxWith(() => id),
|
|
23
|
+
disabled: boxWith(() => disabled),
|
|
24
|
+
onSelect: boxWith(() => onSelect),
|
|
25
|
+
ref: boxWith(
|
|
26
26
|
() => ref,
|
|
27
27
|
(v) => (ref = v)
|
|
28
28
|
),
|
|
29
|
-
closeOnSelect:
|
|
29
|
+
closeOnSelect: boxWith(() => closeOnSelect),
|
|
30
30
|
});
|
|
31
31
|
|
|
32
32
|
const mergedProps = $derived(mergeProps(restProps, itemState.props));
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
<script lang="ts">
|
|
2
|
-
import {
|
|
2
|
+
import { boxWith, mergeProps } from "svelte-toolbelt";
|
|
3
3
|
import type { MenuRadioGroupProps } from "../types.js";
|
|
4
4
|
import { MenuRadioGroupState } from "../menu.svelte.js";
|
|
5
5
|
import { noop } from "../../../internal/noop.js";
|
|
@@ -18,18 +18,18 @@
|
|
|
18
18
|
}: MenuRadioGroupProps = $props();
|
|
19
19
|
|
|
20
20
|
const radioGroupState = MenuRadioGroupState.create({
|
|
21
|
-
value:
|
|
21
|
+
value: boxWith(
|
|
22
22
|
() => value,
|
|
23
23
|
(v) => {
|
|
24
24
|
value = v;
|
|
25
25
|
onValueChange(v);
|
|
26
26
|
}
|
|
27
27
|
),
|
|
28
|
-
ref:
|
|
28
|
+
ref: boxWith(
|
|
29
29
|
() => ref,
|
|
30
30
|
(v) => (ref = v)
|
|
31
31
|
),
|
|
32
|
-
id:
|
|
32
|
+
id: boxWith(() => id),
|
|
33
33
|
});
|
|
34
34
|
|
|
35
35
|
const mergedProps = $derived(mergeProps(restProps, radioGroupState.props));
|
|
@@ -1,4 +1,4 @@
|
|
|
1
1
|
import type { MenuRadioGroupProps } from "../types.js";
|
|
2
|
-
declare const MenuRadioGroup: import("svelte").Component<MenuRadioGroupProps, {}, "
|
|
2
|
+
declare const MenuRadioGroup: import("svelte").Component<MenuRadioGroupProps, {}, "ref" | "value">;
|
|
3
3
|
type MenuRadioGroup = ReturnType<typeof MenuRadioGroup>;
|
|
4
4
|
export default MenuRadioGroup;
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
<script lang="ts">
|
|
2
|
-
import {
|
|
2
|
+
import { boxWith, mergeProps } from "svelte-toolbelt";
|
|
3
3
|
import type { MenuRadioItemProps } from "../types.js";
|
|
4
4
|
import { MenuRadioItemState } from "../menu.svelte.js";
|
|
5
5
|
import { createId } from "../../../internal/create-id.js";
|
|
@@ -20,15 +20,15 @@
|
|
|
20
20
|
}: MenuRadioItemProps = $props();
|
|
21
21
|
|
|
22
22
|
const radioItemState = MenuRadioItemState.create({
|
|
23
|
-
value:
|
|
24
|
-
id:
|
|
25
|
-
disabled:
|
|
26
|
-
onSelect:
|
|
27
|
-
ref:
|
|
23
|
+
value: boxWith(() => value),
|
|
24
|
+
id: boxWith(() => id),
|
|
25
|
+
disabled: boxWith(() => disabled),
|
|
26
|
+
onSelect: boxWith(() => handleSelect),
|
|
27
|
+
ref: boxWith(
|
|
28
28
|
() => ref,
|
|
29
29
|
(v) => (ref = v)
|
|
30
30
|
),
|
|
31
|
-
closeOnSelect:
|
|
31
|
+
closeOnSelect: boxWith(() => closeOnSelect),
|
|
32
32
|
});
|
|
33
33
|
|
|
34
34
|
function handleSelect(e: Event) {
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
<script lang="ts">
|
|
2
|
-
import {
|
|
2
|
+
import { boxWith, mergeProps } from "svelte-toolbelt";
|
|
3
3
|
import type { MenuSeparatorProps } from "../types.js";
|
|
4
4
|
import { MenuSeparatorState } from "../menu.svelte.js";
|
|
5
5
|
import { createId } from "../../../internal/create-id.js";
|
|
@@ -15,8 +15,8 @@
|
|
|
15
15
|
}: MenuSeparatorProps = $props();
|
|
16
16
|
|
|
17
17
|
const separatorState = MenuSeparatorState.create({
|
|
18
|
-
id:
|
|
19
|
-
ref:
|
|
18
|
+
id: boxWith(() => id),
|
|
19
|
+
ref: boxWith(
|
|
20
20
|
() => ref,
|
|
21
21
|
(v) => (ref = v)
|
|
22
22
|
),
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
<script lang="ts">
|
|
2
|
-
import { afterTick,
|
|
2
|
+
import { afterTick, boxWith, mergeProps } from "svelte-toolbelt";
|
|
3
3
|
import type { MenuSubContentStaticProps } from "../types.js";
|
|
4
4
|
import { MenuContentState } from "../menu.svelte.js";
|
|
5
5
|
import { SUB_CLOSE_KEYS } from "../utils.js";
|
|
@@ -31,13 +31,13 @@
|
|
|
31
31
|
}: MenuSubContentStaticProps = $props();
|
|
32
32
|
|
|
33
33
|
const subContentState = MenuContentState.create({
|
|
34
|
-
id:
|
|
35
|
-
loop:
|
|
36
|
-
ref:
|
|
34
|
+
id: boxWith(() => id),
|
|
35
|
+
loop: boxWith(() => loop),
|
|
36
|
+
ref: boxWith(
|
|
37
37
|
() => ref,
|
|
38
38
|
(v) => (ref = v)
|
|
39
39
|
),
|
|
40
|
-
onCloseAutoFocus:
|
|
40
|
+
onCloseAutoFocus: boxWith(() => handleCloseAutoFocus),
|
|
41
41
|
isSub: true,
|
|
42
42
|
});
|
|
43
43
|
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
<script lang="ts">
|
|
2
|
-
import {
|
|
2
|
+
import { boxWith, mergeProps } from "svelte-toolbelt";
|
|
3
3
|
import type { MenuSubContentProps } from "../types.js";
|
|
4
4
|
import { MenuOpenEvent, MenuContentState } from "../menu.svelte.js";
|
|
5
5
|
import { SUB_CLOSE_KEYS } from "../utils.js";
|
|
@@ -32,14 +32,14 @@
|
|
|
32
32
|
}: MenuSubContentProps = $props();
|
|
33
33
|
|
|
34
34
|
const subContentState = MenuContentState.create({
|
|
35
|
-
id:
|
|
36
|
-
loop:
|
|
37
|
-
ref:
|
|
35
|
+
id: boxWith(() => id),
|
|
36
|
+
loop: boxWith(() => loop),
|
|
37
|
+
ref: boxWith(
|
|
38
38
|
() => ref,
|
|
39
39
|
(v) => (ref = v)
|
|
40
40
|
),
|
|
41
41
|
isSub: true,
|
|
42
|
-
onCloseAutoFocus:
|
|
42
|
+
onCloseAutoFocus: boxWith(() => handleCloseAutoFocus),
|
|
43
43
|
});
|
|
44
44
|
|
|
45
45
|
function onkeydown(e: KeyboardEvent) {
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
<script lang="ts">
|
|
2
|
-
import {
|
|
2
|
+
import { boxWith, mergeProps } from "svelte-toolbelt";
|
|
3
3
|
import type { MenuSubTriggerProps } from "../types.js";
|
|
4
4
|
import { MenuSubTriggerState } from "../menu.svelte.js";
|
|
5
5
|
import FloatingLayerAnchor from "../../utilities/floating-layer/components/floating-layer-anchor.svelte";
|
|
@@ -19,10 +19,10 @@
|
|
|
19
19
|
}: MenuSubTriggerProps = $props();
|
|
20
20
|
|
|
21
21
|
const subTriggerState = MenuSubTriggerState.create({
|
|
22
|
-
disabled:
|
|
23
|
-
onSelect:
|
|
24
|
-
id:
|
|
25
|
-
ref:
|
|
22
|
+
disabled: boxWith(() => disabled),
|
|
23
|
+
onSelect: boxWith(() => onSelect),
|
|
24
|
+
id: boxWith(() => id),
|
|
25
|
+
ref: boxWith(
|
|
26
26
|
() => ref,
|
|
27
27
|
(v) => (ref = v)
|
|
28
28
|
),
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
<script lang="ts">
|
|
2
|
-
import {
|
|
2
|
+
import { boxWith } from "svelte-toolbelt";
|
|
3
3
|
import type { MenuSubProps } from "../types.js";
|
|
4
4
|
import { MenuSubmenuState } from "../menu.svelte.js";
|
|
5
5
|
import FloatingLayer from "../../utilities/floating-layer/components/floating-layer.svelte";
|
|
@@ -13,14 +13,14 @@
|
|
|
13
13
|
}: MenuSubProps = $props();
|
|
14
14
|
|
|
15
15
|
MenuSubmenuState.create({
|
|
16
|
-
open:
|
|
16
|
+
open: boxWith(
|
|
17
17
|
() => open,
|
|
18
18
|
(v) => {
|
|
19
19
|
open = v;
|
|
20
20
|
onOpenChange?.(v);
|
|
21
21
|
}
|
|
22
22
|
),
|
|
23
|
-
onOpenChangeComplete:
|
|
23
|
+
onOpenChangeComplete: boxWith(() => onOpenChangeComplete),
|
|
24
24
|
});
|
|
25
25
|
</script>
|
|
26
26
|
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
<script lang="ts">
|
|
2
|
-
import {
|
|
2
|
+
import { boxWith, mergeProps } from "svelte-toolbelt";
|
|
3
3
|
import type { MenuTriggerProps } from "../types.js";
|
|
4
4
|
import { DropdownMenuTriggerState } from "../menu.svelte.js";
|
|
5
5
|
import { createId } from "../../../internal/create-id.js";
|
|
@@ -18,9 +18,9 @@
|
|
|
18
18
|
}: MenuTriggerProps = $props();
|
|
19
19
|
|
|
20
20
|
const triggerState = DropdownMenuTriggerState.create({
|
|
21
|
-
id:
|
|
22
|
-
disabled:
|
|
23
|
-
ref:
|
|
21
|
+
id: boxWith(() => id),
|
|
22
|
+
disabled: boxWith(() => disabled ?? false),
|
|
23
|
+
ref: boxWith(
|
|
24
24
|
() => ref,
|
|
25
25
|
(v) => (ref = v)
|
|
26
26
|
),
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
<script lang="ts">
|
|
2
|
-
import {
|
|
2
|
+
import { boxWith } from "svelte-toolbelt";
|
|
3
3
|
import type { MenuRootProps } from "../types.js";
|
|
4
4
|
import { MenuMenuState, MenuRootState } from "../menu.svelte.js";
|
|
5
5
|
import { noop } from "../../../internal/noop.js";
|
|
@@ -17,8 +17,8 @@
|
|
|
17
17
|
} = $props();
|
|
18
18
|
|
|
19
19
|
const root = MenuRootState.create({
|
|
20
|
-
variant:
|
|
21
|
-
dir:
|
|
20
|
+
variant: boxWith(() => variant),
|
|
21
|
+
dir: boxWith(() => dir),
|
|
22
22
|
onClose: () => {
|
|
23
23
|
open = false;
|
|
24
24
|
onOpenChange(false);
|
|
@@ -27,14 +27,14 @@
|
|
|
27
27
|
|
|
28
28
|
MenuMenuState.create(
|
|
29
29
|
{
|
|
30
|
-
open:
|
|
30
|
+
open: boxWith(
|
|
31
31
|
() => open,
|
|
32
32
|
(v) => {
|
|
33
33
|
open = v;
|
|
34
34
|
onOpenChange(v);
|
|
35
35
|
}
|
|
36
36
|
),
|
|
37
|
-
onOpenChangeComplete:
|
|
37
|
+
onOpenChangeComplete: boxWith(() => onOpenChangeComplete),
|
|
38
38
|
},
|
|
39
39
|
root
|
|
40
40
|
);
|
|
@@ -78,7 +78,7 @@ export declare class MenuContentState {
|
|
|
78
78
|
readonly props: {
|
|
79
79
|
readonly id: string;
|
|
80
80
|
readonly role: "menu";
|
|
81
|
-
readonly "aria-orientation": "
|
|
81
|
+
readonly "aria-orientation": "vertical";
|
|
82
82
|
readonly "data-state": "open" | "closed";
|
|
83
83
|
readonly onkeydown: (e: BitsKeyboardEvent) => void;
|
|
84
84
|
readonly onblur: (e: BitsFocusEvent) => void;
|
|
@@ -1,11 +1,11 @@
|
|
|
1
|
-
import { afterTick,
|
|
1
|
+
import { afterTick, mergeProps, onDestroyEffect, attachRef, DOMContext, getWindow, simpleBox, boxWith, } from "svelte-toolbelt";
|
|
2
2
|
import { Context, watch } from "runed";
|
|
3
3
|
import { FIRST_LAST_KEYS, LAST_KEYS, SELECTION_KEYS, SUB_OPEN_KEYS, getCheckedState, isMouseEvent, } from "./utils.js";
|
|
4
4
|
import { focusFirst } from "../../internal/focus.js";
|
|
5
5
|
import { CustomEventDispatcher } from "../../internal/events.js";
|
|
6
6
|
import { isElement, isElementOrSVGElement, isHTMLElement } from "../../internal/is.js";
|
|
7
7
|
import { kbd } from "../../internal/kbd.js";
|
|
8
|
-
import { createBitsAttrs, getAriaChecked,
|
|
8
|
+
import { createBitsAttrs, getAriaChecked, boolToStr, getDataOpenClosed, boolToEmptyStrOrUndef, } from "../../internal/attrs.js";
|
|
9
9
|
import { IsUsingKeyboard } from "../../index.js";
|
|
10
10
|
import { getTabbableFrom } from "../../internal/tabbable.js";
|
|
11
11
|
import { isTabbable } from "tabbable";
|
|
@@ -65,7 +65,7 @@ export class MenuMenuState {
|
|
|
65
65
|
opts;
|
|
66
66
|
root;
|
|
67
67
|
parentMenu;
|
|
68
|
-
contentId =
|
|
68
|
+
contentId = boxWith(() => "");
|
|
69
69
|
contentNode = $state(null);
|
|
70
70
|
triggerNode = $state(null);
|
|
71
71
|
constructor(opts, root, parentMenu) {
|
|
@@ -73,7 +73,7 @@ export class MenuMenuState {
|
|
|
73
73
|
this.root = root;
|
|
74
74
|
this.parentMenu = parentMenu;
|
|
75
75
|
new OpenChangeComplete({
|
|
76
|
-
ref:
|
|
76
|
+
ref: boxWith(() => this.contentNode),
|
|
77
77
|
open: this.opts.open,
|
|
78
78
|
onComplete: () => {
|
|
79
79
|
this.opts.onOpenChangeComplete.current(this.opts.open.current);
|
|
@@ -143,10 +143,10 @@ export class MenuContentState {
|
|
|
143
143
|
getWindow: () => this.domContext.getWindow(),
|
|
144
144
|
}).handleTypeaheadSearch;
|
|
145
145
|
this.rovingFocusGroup = new RovingFocusGroup({
|
|
146
|
-
rootNode:
|
|
146
|
+
rootNode: boxWith(() => this.parentMenu.contentNode),
|
|
147
147
|
candidateAttr: this.parentMenu.root.getBitsAttr("item"),
|
|
148
148
|
loop: this.opts.loop,
|
|
149
|
-
orientation:
|
|
149
|
+
orientation: boxWith(() => "vertical"),
|
|
150
150
|
});
|
|
151
151
|
watch(() => this.parentMenu.contentNode, (contentNode) => {
|
|
152
152
|
if (!contentNode)
|
|
@@ -315,7 +315,7 @@ export class MenuContentState {
|
|
|
315
315
|
props = $derived.by(() => ({
|
|
316
316
|
id: this.opts.id.current,
|
|
317
317
|
role: "menu",
|
|
318
|
-
"aria-orientation":
|
|
318
|
+
"aria-orientation": "vertical",
|
|
319
319
|
[this.parentMenu.root.getBitsAttr("content")]: "",
|
|
320
320
|
"data-state": getDataOpenClosed(this.parentMenu.opts.open.current),
|
|
321
321
|
onkeydown: this.onkeydown,
|
|
@@ -388,8 +388,8 @@ class MenuItemSharedState {
|
|
|
388
388
|
id: this.opts.id.current,
|
|
389
389
|
tabindex: -1,
|
|
390
390
|
role: "menuitem",
|
|
391
|
-
"aria-disabled":
|
|
392
|
-
"data-disabled":
|
|
391
|
+
"aria-disabled": boolToStr(this.opts.disabled.current),
|
|
392
|
+
"data-disabled": boolToEmptyStrOrUndef(this.opts.disabled.current),
|
|
393
393
|
"data-highlighted": this.#isFocused ? "" : undefined,
|
|
394
394
|
[this.content.parentMenu.root.getBitsAttr("item")]: "",
|
|
395
395
|
//
|
|
@@ -560,7 +560,7 @@ export class MenuSubTriggerState {
|
|
|
560
560
|
}
|
|
561
561
|
props = $derived.by(() => mergeProps({
|
|
562
562
|
"aria-haspopup": "menu",
|
|
563
|
-
"aria-expanded":
|
|
563
|
+
"aria-expanded": boolToStr(this.submenu.opts.open.current),
|
|
564
564
|
"data-state": getDataOpenClosed(this.submenu.opts.open.current),
|
|
565
565
|
"aria-controls": this.submenu.opts.open.current
|
|
566
566
|
? this.submenu.contentId.current
|
|
@@ -822,9 +822,9 @@ export class DropdownMenuTriggerState {
|
|
|
822
822
|
id: this.opts.id.current,
|
|
823
823
|
disabled: this.opts.disabled.current,
|
|
824
824
|
"aria-haspopup": "menu",
|
|
825
|
-
"aria-expanded":
|
|
825
|
+
"aria-expanded": boolToStr(this.parentMenu.opts.open.current),
|
|
826
826
|
"aria-controls": this.#ariaControls,
|
|
827
|
-
"data-disabled":
|
|
827
|
+
"data-disabled": boolToEmptyStrOrUndef(this.opts.disabled.current),
|
|
828
828
|
"data-state": getDataOpenClosed(this.parentMenu.opts.open.current),
|
|
829
829
|
[this.parentMenu.root.getBitsAttr("trigger")]: "",
|
|
830
830
|
//
|
|
@@ -843,7 +843,7 @@ export class ContextMenuTriggerState {
|
|
|
843
843
|
parentMenu;
|
|
844
844
|
attachment;
|
|
845
845
|
#point = $state({ x: 0, y: 0 });
|
|
846
|
-
virtualElement =
|
|
846
|
+
virtualElement = simpleBox({
|
|
847
847
|
getBoundingClientRect: () => DOMRect.fromRect({ width: 0, height: 0, ...this.#point }),
|
|
848
848
|
});
|
|
849
849
|
#longPressTimer = null;
|
|
@@ -909,7 +909,7 @@ export class ContextMenuTriggerState {
|
|
|
909
909
|
props = $derived.by(() => ({
|
|
910
910
|
id: this.opts.id.current,
|
|
911
911
|
disabled: this.opts.disabled.current,
|
|
912
|
-
"data-disabled":
|
|
912
|
+
"data-disabled": boolToEmptyStrOrUndef(this.opts.disabled.current),
|
|
913
913
|
"data-state": getDataOpenClosed(this.parentMenu.opts.open.current),
|
|
914
914
|
[CONTEXT_MENU_TRIGGER_ATTR]: "",
|
|
915
915
|
tabindex: -1,
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
<script lang="ts">
|
|
2
|
-
import {
|
|
2
|
+
import { boxWith, mergeProps } from "svelte-toolbelt";
|
|
3
3
|
import type { MenubarContentStaticProps } from "../types.js";
|
|
4
4
|
import { MenubarContentState } from "../menubar.svelte.js";
|
|
5
5
|
import { createId } from "../../../internal/create-id.js";
|
|
@@ -20,16 +20,16 @@
|
|
|
20
20
|
}: MenubarContentStaticProps = $props();
|
|
21
21
|
|
|
22
22
|
const contentState = MenubarContentState.create({
|
|
23
|
-
id:
|
|
24
|
-
interactOutsideBehavior:
|
|
25
|
-
ref:
|
|
23
|
+
id: boxWith(() => id),
|
|
24
|
+
interactOutsideBehavior: boxWith(() => interactOutsideBehavior),
|
|
25
|
+
ref: boxWith(
|
|
26
26
|
() => ref,
|
|
27
27
|
(v) => (ref = v)
|
|
28
28
|
),
|
|
29
|
-
onInteractOutside:
|
|
30
|
-
onFocusOutside:
|
|
31
|
-
onCloseAutoFocus:
|
|
32
|
-
onOpenAutoFocus:
|
|
29
|
+
onInteractOutside: boxWith(() => onInteractOutside),
|
|
30
|
+
onFocusOutside: boxWith(() => onFocusOutside),
|
|
31
|
+
onCloseAutoFocus: boxWith(() => onCloseAutoFocus),
|
|
32
|
+
onOpenAutoFocus: boxWith(() => onOpenAutoFocus),
|
|
33
33
|
});
|
|
34
34
|
|
|
35
35
|
const mergedProps = $derived(mergeProps(restProps, contentState.props));
|