ui-ingredients 0.31.2 → 1.0.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/accordion/accordion-item.svelte +3 -0
- package/dist/accordion/accordion-root.svelte +13 -7
- package/dist/accordion/accordion-root.svelte.d.ts +2 -2
- package/dist/accordion/create-accordion.svelte.d.ts +1 -2
- package/dist/accordion/create-accordion.svelte.js +7 -13
- package/dist/alert/alert-root.svelte +11 -5
- package/dist/alert/alert-root.svelte.d.ts +2 -2
- package/dist/alert/create-alert.svelte.d.ts +1 -1
- package/dist/alert/create-alert.svelte.js +3 -5
- package/dist/alert-dialog/alert-dialog-anatomy.js +1 -1
- package/dist/alert-dialog/alert-dialog-root.svelte +9 -3
- package/dist/alert-dialog/alert-dialog-root.svelte.d.ts +2 -1
- package/dist/alert-dialog/create-alert-dialog.svelte.d.ts +1 -3
- package/dist/alert-dialog/create-alert-dialog.svelte.js +11 -16
- package/dist/angle-slider/angle-slider-root.svelte +10 -5
- package/dist/angle-slider/angle-slider-root.svelte.d.ts +2 -2
- package/dist/angle-slider/create-angle-slider.svelte.d.ts +1 -2
- package/dist/angle-slider/create-angle-slider.svelte.js +3 -7
- package/dist/avatar/avatar-root.svelte +12 -4
- package/dist/avatar/avatar-root.svelte.d.ts +2 -2
- package/dist/avatar/create-avatar.svelte.d.ts +1 -2
- package/dist/avatar/create-avatar.svelte.js +3 -7
- package/dist/breadcrumbs/breadcrumbs-anatomy.d.ts +3 -0
- package/dist/breadcrumbs/breadcrumbs-anatomy.js +3 -0
- package/dist/breadcrumbs/breadcrumbs-context.svelte.d.ts +3 -0
- package/dist/breadcrumbs/breadcrumbs-context.svelte.js +3 -0
- package/dist/breadcrumbs/breadcrumbs-item.svelte +5 -0
- package/dist/breadcrumbs/breadcrumbs-item.svelte.d.ts +1 -0
- package/dist/breadcrumbs/breadcrumbs-link.svelte +5 -0
- package/dist/breadcrumbs/breadcrumbs-link.svelte.d.ts +1 -0
- package/dist/breadcrumbs/breadcrumbs-list.svelte +5 -0
- package/dist/breadcrumbs/breadcrumbs-list.svelte.d.ts +1 -0
- package/dist/breadcrumbs/breadcrumbs-root.svelte +5 -0
- package/dist/breadcrumbs/breadcrumbs-root.svelte.d.ts +1 -0
- package/dist/breadcrumbs/breadcrumbs-separator.svelte +5 -0
- package/dist/breadcrumbs/breadcrumbs-separator.svelte.d.ts +1 -0
- package/dist/breadcrumbs/create-breadcrumbs.d.ts +6 -0
- package/dist/breadcrumbs/create-breadcrumbs.js +3 -0
- package/dist/carousel/carousel-root.svelte +11 -5
- package/dist/carousel/carousel-root.svelte.d.ts +2 -2
- package/dist/carousel/create-carousel.svelte.d.ts +1 -2
- package/dist/carousel/create-carousel.svelte.js +3 -7
- package/dist/checkbox/checkbox-root.svelte +10 -5
- package/dist/checkbox/checkbox-root.svelte.d.ts +2 -2
- package/dist/checkbox/create-checkbox.svelte.d.ts +1 -2
- package/dist/checkbox/create-checkbox.svelte.js +5 -9
- package/dist/clipboard/clipboard-root.svelte +11 -5
- package/dist/clipboard/clipboard-root.svelte.d.ts +2 -2
- package/dist/clipboard/create-clipboard.svelte.d.ts +1 -2
- package/dist/clipboard/create-clipboard.svelte.js +2 -6
- package/dist/collapsible/collapsible-root.svelte +13 -8
- package/dist/collapsible/collapsible-root.svelte.d.ts +2 -2
- package/dist/collapsible/create-collapsible.svelte.d.ts +1 -3
- package/dist/collapsible/create-collapsible.svelte.js +3 -8
- package/dist/color-picker/color-picker-channel-slider-value-text.svelte +1 -1
- package/dist/color-picker/color-picker-root.svelte +15 -8
- package/dist/color-picker/color-picker-root.svelte.d.ts +2 -2
- package/dist/color-picker/create-color-picker.svelte.d.ts +5 -5
- package/dist/color-picker/create-color-picker.svelte.js +9 -13
- package/dist/combobox/combobox-item-group.svelte +2 -2
- package/dist/combobox/combobox-root.svelte +16 -8
- package/dist/combobox/combobox-root.svelte.d.ts +2 -2
- package/dist/combobox/create-combobox.svelte.d.ts +1 -5
- package/dist/combobox/create-combobox.svelte.js +6 -14
- package/dist/date-picker/create-date-picker.svelte.d.ts +1 -7
- package/dist/date-picker/create-date-picker.svelte.js +4 -24
- package/dist/date-picker/date-picker-anatomy.d.ts +1 -2
- package/dist/date-picker/date-picker-anatomy.js +1 -3
- package/dist/date-picker/date-picker-root.svelte +20 -11
- package/dist/date-picker/date-picker-root.svelte.d.ts +2 -2
- package/dist/dialog/create-dialog.svelte.d.ts +1 -3
- package/dist/dialog/create-dialog.svelte.js +3 -8
- package/dist/dialog/dialog-root.svelte +9 -3
- package/dist/dialog/dialog-root.svelte.d.ts +2 -1
- package/dist/drawer/create-drawer.svelte.d.ts +8 -3
- package/dist/drawer/create-drawer.svelte.js +38 -20
- package/dist/drawer/drawer-root.svelte +9 -3
- package/dist/drawer/drawer-root.svelte.d.ts +2 -1
- package/dist/editable/create-editable.svelte.d.ts +1 -3
- package/dist/editable/create-editable.svelte.js +5 -10
- package/dist/editable/editable-root.svelte +12 -6
- package/dist/editable/editable-root.svelte.d.ts +2 -2
- package/dist/field/create-field.svelte.d.ts +2 -1
- package/dist/field/create-field.svelte.js +11 -3
- package/dist/field/field-root.svelte +12 -7
- package/dist/field/field-root.svelte.d.ts +2 -2
- package/dist/file-upload/create-file-upload.svelte.d.ts +1 -2
- package/dist/file-upload/create-file-upload.svelte.js +5 -9
- package/dist/file-upload/file-upload-root.svelte +9 -6
- package/dist/file-upload/file-upload-root.svelte.d.ts +2 -2
- package/dist/floating-panel/create-floating-panel.svelte.d.ts +1 -2
- package/dist/floating-panel/create-floating-panel.svelte.js +3 -7
- package/dist/floating-panel/floating-panel-anatomy.d.ts +1 -1
- package/dist/floating-panel/floating-panel-anatomy.js +1 -1
- package/dist/floating-panel/floating-panel-root.svelte +6 -3
- package/dist/floating-panel/floating-panel-root.svelte.d.ts +2 -1
- package/dist/focus-trap/focus-trap.svelte +104 -0
- package/dist/focus-trap/focus-trap.svelte.d.ts +11 -0
- package/dist/focus-trap/index.d.ts +1 -0
- package/dist/focus-trap/index.js +1 -0
- package/dist/highlight/highlight.svelte +8 -2
- package/dist/hover-card/create-hover-card.svelte.d.ts +1 -3
- package/dist/hover-card/create-hover-card.svelte.js +3 -8
- package/dist/hover-card/hover-card-root.svelte +14 -6
- package/dist/hover-card/hover-card-root.svelte.d.ts +2 -1
- package/dist/index.d.ts +1 -1
- package/dist/index.js +1 -1
- package/dist/locale-provider/index.d.ts +2 -2
- package/dist/locale-provider/index.js +2 -2
- package/dist/locale-provider/{local-provider.svelte → locale-provider.svelte} +1 -1
- package/dist/locale-provider/locale-provider.svelte.d.ts +8 -0
- package/dist/menu/create-menu.svelte.d.ts +2 -4
- package/dist/menu/create-menu.svelte.js +4 -9
- package/dist/menu/menu-arrow-tip.svelte +1 -1
- package/dist/menu/menu-arrow.svelte +1 -1
- package/dist/menu/menu-content.svelte +5 -1
- package/dist/menu/menu-context-trigger.svelte +3 -1
- package/dist/menu/menu-indicator.svelte +3 -1
- package/dist/menu/menu-item-group-label.svelte +1 -1
- package/dist/menu/menu-item-group.svelte +3 -3
- package/dist/menu/menu-item.svelte +9 -2
- package/dist/menu/menu-option-item-indicator.svelte +1 -1
- package/dist/menu/menu-option-item-text.svelte +1 -1
- package/dist/menu/menu-option-item.svelte +10 -2
- package/dist/menu/menu-positioner.svelte +5 -1
- package/dist/menu/menu-root.svelte +13 -8
- package/dist/menu/menu-root.svelte.d.ts +2 -1
- package/dist/menu/menu-separator.svelte +3 -1
- package/dist/menu/menu-trigger.svelte +1 -1
- package/dist/number-input/create-number-input.svelte.d.ts +1 -2
- package/dist/number-input/create-number-input.svelte.js +5 -9
- package/dist/number-input/number-input-root.svelte +10 -5
- package/dist/number-input/number-input-root.svelte.d.ts +2 -2
- package/dist/pagination/create-pagination.svelte.d.ts +1 -2
- package/dist/pagination/create-pagination.svelte.js +3 -7
- package/dist/pagination/pagination-root.svelte +11 -5
- package/dist/pagination/pagination-root.svelte.d.ts +2 -2
- package/dist/pin-input/create-pin-input.svelte.d.ts +1 -4
- package/dist/pin-input/create-pin-input.svelte.js +5 -19
- package/dist/pin-input/index.d.ts +0 -1
- package/dist/pin-input/pin-input-anatomy.d.ts +1 -2
- package/dist/pin-input/pin-input-anatomy.js +1 -3
- package/dist/pin-input/pin-input-root.svelte +11 -5
- package/dist/pin-input/pin-input-root.svelte.d.ts +2 -2
- package/dist/pin-input/pin-input.d.ts +0 -1
- package/dist/pin-input/pin-input.js +0 -1
- package/dist/popover/create-popover.svelte.d.ts +1 -3
- package/dist/popover/create-popover.svelte.js +3 -8
- package/dist/popover/popover-root.svelte +11 -6
- package/dist/popover/popover-root.svelte.d.ts +2 -1
- package/dist/presence/create-presence.svelte.d.ts +2 -2
- package/dist/presence/create-presence.svelte.js +5 -13
- package/dist/presence/presence.svelte +10 -1
- package/dist/progress/create-progress.svelte.d.ts +1 -2
- package/dist/progress/create-progress.svelte.js +4 -7
- package/dist/progress/progress-root.svelte +12 -5
- package/dist/progress/progress-root.svelte.d.ts +2 -2
- package/dist/qr-code/create-qr-code.svelte.d.ts +1 -2
- package/dist/qr-code/create-qr-code.svelte.js +3 -7
- package/dist/qr-code/qr-code-root.svelte +11 -5
- package/dist/qr-code/qr-code-root.svelte.d.ts +2 -2
- package/dist/radio-group/create-radio-group.svelte.d.ts +1 -2
- package/dist/radio-group/create-radio-group.svelte.js +3 -7
- package/dist/radio-group/radio-group-root.svelte +11 -5
- package/dist/radio-group/radio-group-root.svelte.d.ts +2 -2
- package/dist/rating-group/create-rating-group.svelte.d.ts +1 -2
- package/dist/rating-group/create-rating-group.svelte.js +5 -9
- package/dist/rating-group/rating-group-root.svelte +11 -5
- package/dist/rating-group/rating-group-root.svelte.d.ts +2 -2
- package/dist/segment-group/create-segment-group.svelte.d.ts +1 -2
- package/dist/segment-group/create-segment-group.svelte.js +28 -15
- package/dist/segment-group/segment-group-root.svelte +11 -5
- package/dist/segment-group/segment-group-root.svelte.d.ts +2 -2
- package/dist/select/create-select.svelte.d.ts +1 -5
- package/dist/select/create-select.svelte.js +6 -11
- package/dist/select/select-item-group.svelte +2 -2
- package/dist/select/select-root.svelte +17 -8
- package/dist/select/select-root.svelte.d.ts +2 -2
- package/dist/signature-pad/create-signature-pad.svelte.d.ts +1 -2
- package/dist/signature-pad/create-signature-pad.svelte.js +3 -7
- package/dist/signature-pad/signature-pad-root.svelte +9 -5
- package/dist/signature-pad/signature-pad-root.svelte.d.ts +2 -2
- package/dist/slider/create-slider.svelte.d.ts +1 -2
- package/dist/slider/create-slider.svelte.js +3 -7
- package/dist/slider/slider-root.svelte +11 -5
- package/dist/slider/slider-root.svelte.d.ts +2 -2
- package/dist/splitter/create-splitter.svelte.d.ts +1 -2
- package/dist/splitter/create-splitter.svelte.js +3 -7
- package/dist/splitter/splitter-root.svelte +11 -5
- package/dist/splitter/splitter-root.svelte.d.ts +2 -2
- package/dist/steps/create-steps.svelte.d.ts +1 -2
- package/dist/steps/create-steps.svelte.js +3 -7
- package/dist/steps/steps-root.svelte +13 -7
- package/dist/steps/steps-root.svelte.d.ts +2 -2
- package/dist/switch/create-switch.svelte.d.ts +1 -2
- package/dist/switch/create-switch.svelte.js +5 -9
- package/dist/switch/switch-root.svelte +11 -5
- package/dist/switch/switch-root.svelte.d.ts +2 -2
- package/dist/tabs/create-tabs.svelte.d.ts +1 -2
- package/dist/tabs/create-tabs.svelte.js +3 -7
- package/dist/tabs/tabs-root.svelte +9 -5
- package/dist/tabs/tabs-root.svelte.d.ts +2 -2
- package/dist/tabs/tabs-trigger.svelte +10 -3
- package/dist/tabs/tabs-trigger.svelte.d.ts +6 -1
- package/dist/tags-input/create-tags-input.svelte.d.ts +1 -2
- package/dist/tags-input/create-tags-input.svelte.js +5 -9
- package/dist/tags-input/tags-input-root.svelte +11 -5
- package/dist/tags-input/tags-input-root.svelte.d.ts +2 -2
- package/dist/time-picker/create-time-picker.svelte.d.ts +1 -3
- package/dist/time-picker/create-time-picker.svelte.js +3 -8
- package/dist/time-picker/time-picker-root.svelte +16 -8
- package/dist/time-picker/time-picker-root.svelte.d.ts +2 -2
- package/dist/timer/create-timer.svelte.d.ts +1 -2
- package/dist/timer/create-timer.svelte.js +2 -6
- package/dist/timer/timer-root.svelte +10 -5
- package/dist/timer/timer-root.svelte.d.ts +2 -2
- package/dist/toast/create-toaster.svelte.d.ts +4 -7
- package/dist/toast/create-toaster.svelte.js +3 -9
- package/dist/toast/index.d.ts +1 -3
- package/dist/toast/index.js +1 -3
- package/dist/toast/toast-anatomy.d.ts +1 -1
- package/dist/toast/toast-anatomy.js +1 -1
- package/dist/toast/toast-context.svelte.js +1 -0
- package/dist/toast/toast-provider.svelte +27 -0
- package/dist/toast/toast-provider.svelte.d.ts +11 -0
- package/dist/toast/toast-root.svelte +2 -2
- package/dist/toast/toast-root.svelte.d.ts +2 -2
- package/dist/toast/toaster.svelte +23 -37
- package/dist/toast/toaster.svelte.d.ts +7 -6
- package/dist/toggle/create-toggle.svelte.d.ts +3 -13
- package/dist/toggle/create-toggle.svelte.js +4 -31
- package/dist/toggle/index.d.ts +1 -0
- package/dist/toggle/toggle-anatomy.d.ts +1 -2
- package/dist/toggle/toggle-anatomy.js +1 -3
- package/dist/toggle/toggle-indicator.svelte +29 -0
- package/dist/toggle/toggle-indicator.svelte.d.ts +6 -0
- package/dist/toggle/toggle-root.svelte +1 -0
- package/dist/toggle/toggle.d.ts +1 -0
- package/dist/toggle/toggle.js +1 -0
- package/dist/toggle-group/create-toggle-group.svelte.d.ts +1 -2
- package/dist/toggle-group/create-toggle-group.svelte.js +3 -7
- package/dist/toggle-group/toggle-group-root.svelte +11 -5
- package/dist/toggle-group/toggle-group-root.svelte.d.ts +2 -2
- package/dist/tooltip/create-tooltip.svelte.d.ts +1 -3
- package/dist/tooltip/create-tooltip.svelte.js +3 -8
- package/dist/tooltip/tooltip-root.svelte +9 -3
- package/dist/tooltip/tooltip-root.svelte.d.ts +2 -1
- package/dist/tour/create-tour.svelte.d.ts +7 -3
- package/dist/tour/create-tour.svelte.js +9 -12
- package/dist/tour/tour-root.svelte +9 -3
- package/dist/tour/tour-root.svelte.d.ts +2 -1
- package/dist/tree-view/create-tree-view.svelte.d.ts +1 -2
- package/dist/tree-view/create-tree-view.svelte.js +3 -7
- package/dist/tree-view/tree-view-branch.svelte +3 -0
- package/dist/tree-view/tree-view-root.svelte +14 -7
- package/dist/tree-view/tree-view-root.svelte.d.ts +2 -2
- package/dist/types.d.ts +1 -0
- package/package.json +403 -403
- package/dist/create-unique-id.d.ts +0 -1
- package/dist/create-unique-id.js +0 -15
- package/dist/locale-provider/local-provider.svelte.d.ts +0 -8
- package/dist/pin-input/pin-input-clear-trigger.svelte +0 -31
- package/dist/pin-input/pin-input-clear-trigger.svelte.d.ts +0 -6
- package/dist/toast/create-toast.svelte.d.ts +0 -6
- package/dist/toast/create-toast.svelte.js +0 -6
- package/dist/toast/toast-actor.svelte +0 -19
- package/dist/toast/toast-actor.svelte.d.ts +0 -10
- package/dist/toast/toast-context.svelte.d.ts +0 -2
- /package/dist/locale-provider/{local-provider-context.svelte.d.ts → locale-provider-context.svelte.d.ts} +0 -0
- /package/dist/locale-provider/{local-provider-context.svelte.js → locale-provider-context.svelte.js} +0 -0
@@ -1,5 +1,5 @@
|
|
1
1
|
<script lang="ts" module>
|
2
|
-
import type {Assign, HtmlIngredientProps} from '../types.js';
|
2
|
+
import type {Assign, HtmlIngredientProps, Optional} from '../types.js';
|
3
3
|
import type {
|
4
4
|
CreateEditableProps,
|
5
5
|
CreateEditableReturn,
|
@@ -8,7 +8,7 @@
|
|
8
8
|
export interface EditableProps
|
9
9
|
extends Assign<
|
10
10
|
HtmlIngredientProps<'div', HTMLDivElement, CreateEditableReturn>,
|
11
|
-
CreateEditableProps
|
11
|
+
Optional<CreateEditableProps, 'id'>
|
12
12
|
> {}
|
13
13
|
</script>
|
14
14
|
|
@@ -20,22 +20,25 @@
|
|
20
20
|
import {setEditableContext} from './editable-context.svelte.js';
|
21
21
|
|
22
22
|
let {
|
23
|
+
id,
|
23
24
|
ref = $bindable(null),
|
24
25
|
asChild,
|
25
26
|
children,
|
26
27
|
...props
|
27
28
|
}: EditableProps = $props();
|
28
29
|
|
30
|
+
let uid = $props.id();
|
31
|
+
|
29
32
|
let [createEditableProps, localProps] = $derived(
|
30
|
-
createSplitProps<CreateEditableProps
|
33
|
+
createSplitProps<Omit<CreateEditableProps, 'id'>>([
|
31
34
|
'activationMode',
|
32
35
|
'autoResize',
|
36
|
+
'defaultEdit',
|
37
|
+
'defaultValue',
|
33
38
|
'disabled',
|
34
39
|
'edit',
|
35
|
-
'editControlled',
|
36
40
|
'finalFocusEl',
|
37
41
|
'form',
|
38
|
-
'id',
|
39
42
|
'ids',
|
40
43
|
'invalid',
|
41
44
|
'maxLength',
|
@@ -57,7 +60,10 @@
|
|
57
60
|
])(props),
|
58
61
|
);
|
59
62
|
|
60
|
-
let editable = createEditable(
|
63
|
+
let editable = createEditable(
|
64
|
+
reflect(() => ({...createEditableProps, id: id ?? uid})),
|
65
|
+
);
|
66
|
+
|
61
67
|
let mergedProps = $derived(mergeProps(editable.getRootProps(), localProps));
|
62
68
|
|
63
69
|
setEditableContext(editable);
|
@@ -1,6 +1,6 @@
|
|
1
|
-
import type { Assign, HtmlIngredientProps } from '../types.js';
|
1
|
+
import type { Assign, HtmlIngredientProps, Optional } from '../types.js';
|
2
2
|
import type { CreateEditableProps, CreateEditableReturn } from './create-editable.svelte.js';
|
3
|
-
export interface EditableProps extends Assign<HtmlIngredientProps<'div', HTMLDivElement, CreateEditableReturn>, CreateEditableProps
|
3
|
+
export interface EditableProps extends Assign<HtmlIngredientProps<'div', HTMLDivElement, CreateEditableReturn>, Optional<CreateEditableProps, 'id'>> {
|
4
4
|
}
|
5
5
|
declare const EditableRoot: import("svelte").Component<EditableProps, {}, "ref">;
|
6
6
|
type EditableRoot = ReturnType<typeof EditableRoot>;
|
@@ -1,21 +1,22 @@
|
|
1
|
+
import { getLocaleContext } from '../locale-provider/locale-provider-context.svelte.js';
|
1
2
|
import { ariaAttr, dataAttr, getDocument, getWindow } from '@zag-js/dom-query';
|
2
3
|
import { reflect } from '@zag-js/svelte';
|
3
|
-
import { createUniqueId } from '../create-unique-id.js';
|
4
4
|
import { getEnvironmentContext } from '../environment-provider/enviroment-provider-context.svelte.js';
|
5
5
|
import { parts } from './field-anatomy.js';
|
6
6
|
export function createField(props) {
|
7
|
+
const locale = getLocaleContext();
|
7
8
|
const environment = getEnvironmentContext();
|
8
|
-
const id_ = createUniqueId();
|
9
9
|
const {
|
10
10
|
/**/
|
11
11
|
ids, invalid, disabled, required, readOnly, } = $derived.by(() => {
|
12
|
-
const id = props.id
|
12
|
+
const id = props.id;
|
13
13
|
const ids = {
|
14
14
|
root: props.ids?.root ?? `field:${id}`,
|
15
15
|
label: props.ids?.label ?? `field:${id}:label`,
|
16
16
|
control: props.ids?.control ?? `field:${id}:control`,
|
17
17
|
errorText: props.ids?.errorText ?? `field:${id}:error-text`,
|
18
18
|
helperText: props.ids?.helperText ?? `field:${id}:helper-text`,
|
19
|
+
requiredIndicator: props.ids?.requiredIndicator ?? `field:${id}:required-indicator`,
|
19
20
|
};
|
20
21
|
return {
|
21
22
|
ids,
|
@@ -41,6 +42,7 @@ export function createField(props) {
|
|
41
42
|
return {
|
42
43
|
...parts.root.attrs,
|
43
44
|
id: ids.root,
|
45
|
+
dir: locale?.dir,
|
44
46
|
role: 'group',
|
45
47
|
'data-invalid': dataAttr(invalid),
|
46
48
|
'data-disabled': dataAttr(disabled),
|
@@ -52,6 +54,7 @@ export function createField(props) {
|
|
52
54
|
return {
|
53
55
|
...parts.label.attrs,
|
54
56
|
id: ids.label,
|
57
|
+
dir: locale?.dir,
|
55
58
|
for: ids.control,
|
56
59
|
'data-invalid': dataAttr(invalid),
|
57
60
|
'data-disabled': dataAttr(disabled),
|
@@ -62,6 +65,8 @@ export function createField(props) {
|
|
62
65
|
function getRequiredIndicatorProps() {
|
63
66
|
return {
|
64
67
|
...parts.requiredIndicator.attrs,
|
68
|
+
id: ids.requiredIndicator,
|
69
|
+
dir: locale?.dir,
|
65
70
|
hidden: !required,
|
66
71
|
'aria-hidden': true,
|
67
72
|
'data-invalid': dataAttr(invalid),
|
@@ -73,6 +78,7 @@ export function createField(props) {
|
|
73
78
|
return {
|
74
79
|
...parts.errorText.attrs,
|
75
80
|
id: ids.errorText,
|
81
|
+
dir: locale?.dir,
|
76
82
|
hidden: !hasErrorText,
|
77
83
|
'aria-live': 'polite',
|
78
84
|
'data-invalid': dataAttr(invalid),
|
@@ -85,6 +91,7 @@ export function createField(props) {
|
|
85
91
|
return {
|
86
92
|
...parts.helperText.attrs,
|
87
93
|
id: ids.helperText,
|
94
|
+
dir: locale?.dir,
|
88
95
|
'data-invalid': dataAttr(invalid),
|
89
96
|
'data-disabled': dataAttr(disabled),
|
90
97
|
'data-required': dataAttr(required),
|
@@ -94,6 +101,7 @@ export function createField(props) {
|
|
94
101
|
function getControlProps() {
|
95
102
|
return {
|
96
103
|
id: ids.control,
|
104
|
+
dir: locale?.dir,
|
97
105
|
disabled,
|
98
106
|
required,
|
99
107
|
'aria-describedby': ariaDescribedby,
|
@@ -1,5 +1,5 @@
|
|
1
1
|
<script lang="ts" module>
|
2
|
-
import type {Assign, HtmlIngredientProps} from '../types.js';
|
2
|
+
import type {Assign, HtmlIngredientProps, Optional} from '../types.js';
|
3
3
|
import type {
|
4
4
|
CreateFieldProps,
|
5
5
|
CreateFieldReturn,
|
@@ -8,7 +8,7 @@
|
|
8
8
|
export interface FieldProps
|
9
9
|
extends Assign<
|
10
10
|
HtmlIngredientProps<'div', HTMLDivElement, CreateFieldReturn>,
|
11
|
-
CreateFieldProps
|
11
|
+
Optional<CreateFieldProps, 'id'>
|
12
12
|
>,
|
13
13
|
PresenceStrategyProps {}
|
14
14
|
</script>
|
@@ -23,30 +23,35 @@
|
|
23
23
|
import {setFieldContext} from './field-context.svelte.js';
|
24
24
|
|
25
25
|
let {
|
26
|
+
id,
|
26
27
|
ref = $bindable(null),
|
27
28
|
asChild,
|
28
29
|
children,
|
29
30
|
...props
|
30
31
|
}: FieldProps = $props();
|
31
32
|
|
32
|
-
let
|
33
|
+
let uid = $props.id();
|
34
|
+
|
35
|
+
let [presenceStrategyProps, fieldProps] = $derived(
|
33
36
|
createSplitProps<PresenceStrategyProps>(['keepMounted', 'lazyMount'])(
|
34
37
|
props,
|
35
38
|
),
|
36
39
|
);
|
37
40
|
|
38
41
|
let [createFieldProps, localProps] = $derived(
|
39
|
-
createSplitProps<CreateFieldProps
|
40
|
-
'id',
|
42
|
+
createSplitProps<Omit<CreateFieldProps, 'id'>>([
|
41
43
|
'ids',
|
42
44
|
'invalid',
|
43
45
|
'disabled',
|
44
46
|
'readOnly',
|
45
47
|
'required',
|
46
|
-
])(
|
48
|
+
])(fieldProps),
|
49
|
+
);
|
50
|
+
|
51
|
+
let field = createField(
|
52
|
+
reflect(() => ({...createFieldProps, id: id ?? uid})),
|
47
53
|
);
|
48
54
|
|
49
|
-
let field = createField(reflect(() => createFieldProps));
|
50
55
|
let mergedProps = $derived(mergeProps(field.getRootProps(), localProps));
|
51
56
|
|
52
57
|
setFieldContext(field);
|
@@ -1,6 +1,6 @@
|
|
1
|
-
import type { Assign, HtmlIngredientProps } from '../types.js';
|
1
|
+
import type { Assign, HtmlIngredientProps, Optional } from '../types.js';
|
2
2
|
import type { CreateFieldProps, CreateFieldReturn } from './create-field.svelte.js';
|
3
|
-
export interface FieldProps extends Assign<HtmlIngredientProps<'div', HTMLDivElement, CreateFieldReturn>, CreateFieldProps
|
3
|
+
export interface FieldProps extends Assign<HtmlIngredientProps<'div', HTMLDivElement, CreateFieldReturn>, Optional<CreateFieldProps, 'id'>>, PresenceStrategyProps {
|
4
4
|
}
|
5
5
|
import type { PresenceStrategyProps } from '../presence/create-presence.svelte.js';
|
6
6
|
declare const FieldRoot: import("svelte").Component<FieldProps, {}, "ref">;
|
@@ -1,6 +1,5 @@
|
|
1
1
|
import * as fileUpload from '@zag-js/file-upload';
|
2
|
-
export interface CreateFileUploadProps extends Omit<fileUpload.
|
3
|
-
id?: string;
|
2
|
+
export interface CreateFileUploadProps extends Omit<fileUpload.Props, 'dir' | 'getRootNode'> {
|
4
3
|
}
|
5
4
|
export interface CreateFileUploadReturn extends fileUpload.Api<any> {
|
6
5
|
}
|
@@ -1,16 +1,13 @@
|
|
1
1
|
import * as fileUpload from '@zag-js/file-upload';
|
2
2
|
import { normalizeProps, reflect, useMachine } from '@zag-js/svelte';
|
3
|
-
import { createUniqueId } from '../create-unique-id.js';
|
4
3
|
import { getEnvironmentContext } from '../environment-provider/enviroment-provider-context.svelte.js';
|
5
4
|
import { getFieldContext } from '../field/field-context.svelte.js';
|
6
|
-
import { getLocaleContext } from '../locale-provider/
|
5
|
+
import { getLocaleContext } from '../locale-provider/locale-provider-context.svelte.js';
|
7
6
|
export function createFileUpload(props) {
|
8
7
|
const field = getFieldContext();
|
9
8
|
const locale = getLocaleContext();
|
10
9
|
const environment = getEnvironmentContext();
|
11
|
-
const
|
12
|
-
const context = reflect(() => ({
|
13
|
-
id,
|
10
|
+
const service = useMachine(fileUpload.machine, () => ({
|
14
11
|
dir: locale?.dir,
|
15
12
|
ids: {
|
16
13
|
label: field?.ids.label,
|
@@ -23,15 +20,14 @@ export function createFileUpload(props) {
|
|
23
20
|
getRootNode: environment?.getRootNode,
|
24
21
|
...props,
|
25
22
|
}));
|
26
|
-
const [state, send] = useMachine(fileUpload.machine(context), { context });
|
27
23
|
return reflect(() => {
|
28
|
-
const
|
24
|
+
const api = fileUpload.connect(service, normalizeProps);
|
29
25
|
return {
|
30
|
-
...
|
26
|
+
...api,
|
31
27
|
getHiddenInputProps() {
|
32
28
|
return {
|
33
29
|
'aria-describedby': field?.['aria-describedby'],
|
34
|
-
...
|
30
|
+
...api.getHiddenInputProps(),
|
35
31
|
};
|
36
32
|
},
|
37
33
|
};
|
@@ -1,5 +1,5 @@
|
|
1
1
|
<script lang="ts" module>
|
2
|
-
import type {Assign, HtmlIngredientProps} from '../types.js';
|
2
|
+
import type {Assign, HtmlIngredientProps, Optional} from '../types.js';
|
3
3
|
import type {
|
4
4
|
CreateFileUploadProps,
|
5
5
|
CreateFileUploadReturn,
|
@@ -8,7 +8,7 @@
|
|
8
8
|
export interface FileUploadProps
|
9
9
|
extends Assign<
|
10
10
|
HtmlIngredientProps<'div', HTMLDivElement, CreateFileUploadReturn>,
|
11
|
-
CreateFileUploadProps
|
11
|
+
Optional<CreateFileUploadProps, 'id'>
|
12
12
|
> {}
|
13
13
|
</script>
|
14
14
|
|
@@ -20,27 +20,28 @@
|
|
20
20
|
import {setFileUploadContext} from './file-upload-context.svelte.js';
|
21
21
|
|
22
22
|
let {
|
23
|
+
id,
|
23
24
|
ref = $bindable(null),
|
24
25
|
asChild,
|
25
26
|
children,
|
26
27
|
...props
|
27
28
|
}: FileUploadProps = $props();
|
28
29
|
|
30
|
+
let uid = $props.id();
|
31
|
+
|
29
32
|
let [createFileUploadProps, localProps] = $derived(
|
30
|
-
createSplitProps<CreateFileUploadProps
|
33
|
+
createSplitProps<Omit<CreateFileUploadProps, 'id'>>([
|
31
34
|
'accept',
|
32
35
|
'allowDrop',
|
33
36
|
'capture',
|
34
37
|
'directory',
|
35
38
|
'disabled',
|
36
|
-
'id',
|
37
39
|
'ids',
|
38
40
|
'invalid',
|
39
41
|
'locale',
|
40
42
|
'maxFileSize',
|
41
43
|
'maxFiles',
|
42
44
|
'minFileSize',
|
43
|
-
'minFileSize',
|
44
45
|
'name',
|
45
46
|
'onFileAccept',
|
46
47
|
'onFileChange',
|
@@ -52,7 +53,9 @@
|
|
52
53
|
])(props),
|
53
54
|
);
|
54
55
|
|
55
|
-
let fileUpload = createFileUpload(
|
56
|
+
let fileUpload = createFileUpload(
|
57
|
+
reflect(() => ({...createFileUploadProps, id: id ?? uid})),
|
58
|
+
);
|
56
59
|
|
57
60
|
let mergedProps = $derived(mergeProps(fileUpload.getRootProps(), localProps));
|
58
61
|
|
@@ -1,6 +1,6 @@
|
|
1
|
-
import type { Assign, HtmlIngredientProps } from '../types.js';
|
1
|
+
import type { Assign, HtmlIngredientProps, Optional } from '../types.js';
|
2
2
|
import type { CreateFileUploadProps, CreateFileUploadReturn } from './create-file-upload.svelte.js';
|
3
|
-
export interface FileUploadProps extends Assign<HtmlIngredientProps<'div', HTMLDivElement, CreateFileUploadReturn>, CreateFileUploadProps
|
3
|
+
export interface FileUploadProps extends Assign<HtmlIngredientProps<'div', HTMLDivElement, CreateFileUploadReturn>, Optional<CreateFileUploadProps, 'id'>> {
|
4
4
|
}
|
5
5
|
declare const FileUploadRoot: import("svelte").Component<FileUploadProps, {}, "ref">;
|
6
6
|
type FileUploadRoot = ReturnType<typeof FileUploadRoot>;
|
@@ -1,6 +1,5 @@
|
|
1
1
|
import * as floatingPanel from '@zag-js/floating-panel';
|
2
|
-
export interface CreateFloatingPanelProps extends Omit<floatingPanel.
|
3
|
-
id?: string;
|
2
|
+
export interface CreateFloatingPanelProps extends Omit<floatingPanel.Props, 'dir' | 'getRootNode'> {
|
4
3
|
}
|
5
4
|
export interface CreateFloatingPanelReturn extends floatingPanel.Api {
|
6
5
|
}
|
@@ -1,18 +1,14 @@
|
|
1
1
|
import * as floatingPanel from '@zag-js/floating-panel';
|
2
2
|
import { normalizeProps, reflect, useMachine } from '@zag-js/svelte';
|
3
|
-
import { createUniqueId } from '../create-unique-id.js';
|
4
3
|
import { getEnvironmentContext } from '../environment-provider/enviroment-provider-context.svelte.js';
|
5
|
-
import { getLocaleContext } from '../locale-provider/
|
4
|
+
import { getLocaleContext } from '../locale-provider/locale-provider-context.svelte.js';
|
6
5
|
export function createFloatingPanel(props) {
|
7
6
|
const locale = getLocaleContext();
|
8
7
|
const environment = getEnvironmentContext();
|
9
|
-
const
|
10
|
-
const context = reflect(() => ({
|
11
|
-
id,
|
8
|
+
const service = useMachine(floatingPanel.machine, () => ({
|
12
9
|
dir: locale?.dir,
|
13
10
|
getRootNode: environment?.getRootNode,
|
14
11
|
...props,
|
15
12
|
}));
|
16
|
-
|
17
|
-
return reflect(() => floatingPanel.connect(state, send, normalizeProps));
|
13
|
+
return reflect(() => floatingPanel.connect(service, normalizeProps));
|
18
14
|
}
|
@@ -1 +1 @@
|
|
1
|
-
export { anatomy } from '@zag-js/floating-panel';
|
1
|
+
export { floating as anatomy } from '@zag-js/floating-panel';
|
@@ -1 +1 @@
|
|
1
|
-
export { anatomy } from '@zag-js/floating-panel';
|
1
|
+
export { floating as anatomy } from '@zag-js/floating-panel';
|
@@ -1,13 +1,14 @@
|
|
1
1
|
<script lang="ts" module>
|
2
2
|
import type {Snippet} from 'svelte';
|
3
3
|
import type {PresenceStrategyProps} from '../presence/create-presence.svelte.js';
|
4
|
+
import type {Optional} from '../types.js';
|
4
5
|
import type {
|
5
6
|
CreateFloatingPanelProps,
|
6
7
|
CreateFloatingPanelReturn,
|
7
8
|
} from './create-floating-panel.svelte.js';
|
8
9
|
|
9
10
|
export interface FloatingPanelProps
|
10
|
-
extends CreateFloatingPanelProps,
|
11
|
+
extends Optional<CreateFloatingPanelProps, 'id'>,
|
11
12
|
PresenceStrategyProps {
|
12
13
|
children?: Snippet<[CreateFloatingPanelReturn]>;
|
13
14
|
}
|
@@ -21,7 +22,9 @@
|
|
21
22
|
import {createFloatingPanel} from './create-floating-panel.svelte.js';
|
22
23
|
import {setFloatingPanelContext} from './floating-panel-context.svelte.js';
|
23
24
|
|
24
|
-
let {children, ...props}: FloatingPanelProps = $props();
|
25
|
+
let {id, children, ...props}: FloatingPanelProps = $props();
|
26
|
+
|
27
|
+
let uid = $props.id();
|
25
28
|
|
26
29
|
let [presenceStrategyProps, createFloatingPanelProps] = $derived(
|
27
30
|
createSplitProps<PresenceStrategyProps>(['lazyMount', 'keepMounted'])(
|
@@ -30,7 +33,7 @@
|
|
30
33
|
);
|
31
34
|
|
32
35
|
let floatingPanel = createFloatingPanel(
|
33
|
-
reflect(() => createFloatingPanelProps),
|
36
|
+
reflect(() => ({...createFloatingPanelProps, id: id ?? uid})),
|
34
37
|
);
|
35
38
|
|
36
39
|
let presence = createPresence(
|
@@ -1,7 +1,8 @@
|
|
1
1
|
import type { Snippet } from 'svelte';
|
2
2
|
import type { PresenceStrategyProps } from '../presence/create-presence.svelte.js';
|
3
|
+
import type { Optional } from '../types.js';
|
3
4
|
import type { CreateFloatingPanelProps, CreateFloatingPanelReturn } from './create-floating-panel.svelte.js';
|
4
|
-
export interface FloatingPanelProps extends CreateFloatingPanelProps, PresenceStrategyProps {
|
5
|
+
export interface FloatingPanelProps extends Optional<CreateFloatingPanelProps, 'id'>, PresenceStrategyProps {
|
5
6
|
children?: Snippet<[CreateFloatingPanelReturn]>;
|
6
7
|
}
|
7
8
|
declare const FloatingPanelRoot: import("svelte").Component<FloatingPanelProps, {}, "">;
|
@@ -0,0 +1,104 @@
|
|
1
|
+
<script module>
|
2
|
+
import * as focusTrap from '@zag-js/focus-trap';
|
3
|
+
|
4
|
+
interface FocusTrapOptions
|
5
|
+
extends Omit<focusTrap.FocusTrapOptions, 'document'> {
|
6
|
+
disabled?: boolean;
|
7
|
+
}
|
8
|
+
|
9
|
+
export interface FocusTrapProps
|
10
|
+
extends Assign<
|
11
|
+
HtmlIngredientProps<'div', HTMLDivElement, never, Action>,
|
12
|
+
FocusTrapOptions
|
13
|
+
> {}
|
14
|
+
|
15
|
+
function noop() {}
|
16
|
+
|
17
|
+
const trapFocus: Action<HTMLElement, FocusTrapOptions> = (node, options) => {
|
18
|
+
let destroy: () => void = noop;
|
19
|
+
|
20
|
+
function update(newOptions: FocusTrapOptions) {
|
21
|
+
if (newOptions.disabled) {
|
22
|
+
destroy();
|
23
|
+
destroy = noop;
|
24
|
+
} else {
|
25
|
+
destroy = focusTrap.trapFocus(node, newOptions);
|
26
|
+
}
|
27
|
+
}
|
28
|
+
|
29
|
+
update(options);
|
30
|
+
|
31
|
+
return {
|
32
|
+
update,
|
33
|
+
destroy,
|
34
|
+
};
|
35
|
+
};
|
36
|
+
</script>
|
37
|
+
|
38
|
+
<script lang="ts">
|
39
|
+
import {browser} from '$app/environment';
|
40
|
+
import {getEnvironmentContext} from '../environment-provider/enviroment-provider-context.svelte.js';
|
41
|
+
import type {Action, ActionReturn} from 'svelte/action';
|
42
|
+
import {createSplitProps} from '../create-split-props.js';
|
43
|
+
import type {Assign, HtmlIngredientProps} from '../types.js';
|
44
|
+
|
45
|
+
let {
|
46
|
+
ref = $bindable(null),
|
47
|
+
asChild,
|
48
|
+
children,
|
49
|
+
...props
|
50
|
+
}: FocusTrapProps = $props();
|
51
|
+
|
52
|
+
let [focusTrapProps, localProps] = $derived(
|
53
|
+
createSplitProps<FocusTrapOptions>([
|
54
|
+
'allowOutsideClick',
|
55
|
+
'checkCanFocusTrap',
|
56
|
+
'checkCanReturnFocus',
|
57
|
+
'clickOutsideDeactivates',
|
58
|
+
'delayInitialFocus',
|
59
|
+
'disabled',
|
60
|
+
'escapeDeactivates',
|
61
|
+
'fallbackFocus',
|
62
|
+
'initialFocus',
|
63
|
+
'isKeyBackward',
|
64
|
+
'isKeyForward',
|
65
|
+
'onActivate',
|
66
|
+
'onDeactivate',
|
67
|
+
'onPause',
|
68
|
+
'onPostActivate',
|
69
|
+
'onPostDeactivate',
|
70
|
+
'onPostPause',
|
71
|
+
'onPostUnpause',
|
72
|
+
'onUnpause',
|
73
|
+
'preventScroll',
|
74
|
+
'returnFocusOnDeactivate',
|
75
|
+
'setReturnFocus',
|
76
|
+
'trapStack',
|
77
|
+
])(props),
|
78
|
+
);
|
79
|
+
|
80
|
+
let environment = getEnvironmentContext();
|
81
|
+
|
82
|
+
let focusTrapOptions: focusTrap.FocusTrapOptions = $derived({
|
83
|
+
...focusTrapProps,
|
84
|
+
document: browser ? environment?.getDocument() : undefined,
|
85
|
+
});
|
86
|
+
|
87
|
+
let mergedProps = $derived({
|
88
|
+
...localProps,
|
89
|
+
'data-scope': 'focus-trap',
|
90
|
+
'data-part': 'root',
|
91
|
+
});
|
92
|
+
</script>
|
93
|
+
|
94
|
+
{#if asChild}
|
95
|
+
{@render asChild(
|
96
|
+
(node: HTMLElement) =>
|
97
|
+
trapFocus(node, focusTrapOptions) as unknown as ActionReturn,
|
98
|
+
mergedProps,
|
99
|
+
)}
|
100
|
+
{:else}
|
101
|
+
<div bind:this={ref} use:trapFocus={focusTrapOptions} {...mergedProps}>
|
102
|
+
{@render children?.()}
|
103
|
+
</div>
|
104
|
+
{/if}
|
@@ -0,0 +1,11 @@
|
|
1
|
+
import * as focusTrap from '@zag-js/focus-trap';
|
2
|
+
interface FocusTrapOptions extends Omit<focusTrap.FocusTrapOptions, 'document'> {
|
3
|
+
disabled?: boolean;
|
4
|
+
}
|
5
|
+
export interface FocusTrapProps extends Assign<HtmlIngredientProps<'div', HTMLDivElement, never, Action>, FocusTrapOptions> {
|
6
|
+
}
|
7
|
+
import type { Action } from 'svelte/action';
|
8
|
+
import type { Assign, HtmlIngredientProps } from '../types.js';
|
9
|
+
declare const FocusTrap: import("svelte").Component<FocusTrapProps, {}, "ref">;
|
10
|
+
type FocusTrap = ReturnType<typeof FocusTrap>;
|
11
|
+
export default FocusTrap;
|
@@ -0,0 +1 @@
|
|
1
|
+
export { default as FocusTrap, type FocusTrapProps } from './focus-trap.svelte';
|
@@ -0,0 +1 @@
|
|
1
|
+
export { default as FocusTrap } from './focus-trap.svelte';
|
@@ -25,12 +25,18 @@
|
|
25
25
|
);
|
26
26
|
|
27
27
|
let chunks = $derived(highlightWord(highlightWordProps));
|
28
|
+
|
29
|
+
let mergedProps = $derived({
|
30
|
+
...localProps,
|
31
|
+
'data-scope': 'highlight',
|
32
|
+
'data-part': 'root',
|
33
|
+
});
|
28
34
|
</script>
|
29
35
|
|
30
36
|
{#if asChild}
|
31
|
-
{@render asChild(
|
37
|
+
{@render asChild(mergedProps)}
|
32
38
|
{:else}
|
33
|
-
<div bind:this={ref}
|
39
|
+
<div bind:this={ref} {...mergedProps}>
|
34
40
|
{#each chunks as chunk}
|
35
41
|
{#if chunk.match}
|
36
42
|
<mark>{chunk.text}</mark>
|
@@ -1,7 +1,5 @@
|
|
1
1
|
import * as hoverCard from '@zag-js/hover-card';
|
2
|
-
export interface CreateHoverCardProps extends Omit<hoverCard.
|
3
|
-
id?: string;
|
4
|
-
openControlled?: boolean;
|
2
|
+
export interface CreateHoverCardProps extends Omit<hoverCard.Props, 'dir' | 'getRootNode'> {
|
5
3
|
}
|
6
4
|
export interface CreateHoverCardReturn extends hoverCard.Api {
|
7
5
|
}
|
@@ -1,19 +1,14 @@
|
|
1
1
|
import * as hoverCard from '@zag-js/hover-card';
|
2
2
|
import { normalizeProps, reflect, useMachine } from '@zag-js/svelte';
|
3
|
-
import { createUniqueId } from '../create-unique-id.js';
|
4
3
|
import { getEnvironmentContext } from '../environment-provider/enviroment-provider-context.svelte.js';
|
5
|
-
import { getLocaleContext } from '../locale-provider/
|
4
|
+
import { getLocaleContext } from '../locale-provider/locale-provider-context.svelte.js';
|
6
5
|
export function createHoverCard(props) {
|
7
6
|
const locale = getLocaleContext();
|
8
7
|
const environment = getEnvironmentContext();
|
9
|
-
const
|
10
|
-
const context = reflect(() => ({
|
11
|
-
id,
|
8
|
+
const service = useMachine(hoverCard.machine, () => ({
|
12
9
|
dir: locale?.dir,
|
13
10
|
getRootNode: environment?.getRootNode,
|
14
|
-
'open.controlled': props.openControlled,
|
15
11
|
...props,
|
16
12
|
}));
|
17
|
-
|
18
|
-
return reflect(() => hoverCard.connect(state, send, normalizeProps));
|
13
|
+
return reflect(() => hoverCard.connect(service, normalizeProps));
|
19
14
|
}
|
@@ -1,13 +1,14 @@
|
|
1
1
|
<script lang="ts" module>
|
2
2
|
import type {Snippet} from 'svelte';
|
3
3
|
import type {PresenceStrategyProps} from '../presence/create-presence.svelte.js';
|
4
|
+
import type {Optional} from '../types.js';
|
4
5
|
import type {
|
5
6
|
CreateHoverCardProps,
|
6
7
|
CreateHoverCardReturn,
|
7
8
|
} from './create-hover-card.svelte.js';
|
8
9
|
|
9
10
|
export interface HoverCardProps
|
10
|
-
extends CreateHoverCardProps,
|
11
|
+
extends Optional<CreateHoverCardProps, 'id'>,
|
11
12
|
PresenceStrategyProps {
|
12
13
|
children?: Snippet<[CreateHoverCardReturn]>;
|
13
14
|
}
|
@@ -21,22 +22,29 @@
|
|
21
22
|
import {createHoverCard} from './create-hover-card.svelte.js';
|
22
23
|
import {setHoverCardContext} from './hover-card-context.svelte.js';
|
23
24
|
|
24
|
-
let {children, ...props}: HoverCardProps = $props();
|
25
|
+
let {id, children, ...props}: HoverCardProps = $props();
|
26
|
+
|
27
|
+
let uid = $props.id();
|
25
28
|
|
26
29
|
let [createHoverCardProps, presenceStrategyProps] = $derived(
|
27
|
-
createSplitProps<CreateHoverCardProps
|
30
|
+
createSplitProps<Omit<CreateHoverCardProps, 'id'>>([
|
28
31
|
'closeDelay',
|
29
|
-
'
|
32
|
+
'defaultOpen',
|
30
33
|
'ids',
|
34
|
+
'onFocusOutside',
|
35
|
+
'onInteractOutside',
|
31
36
|
'onOpenChange',
|
37
|
+
'onPointerDownOutside',
|
32
38
|
'open',
|
33
|
-
'openControlled',
|
34
39
|
'openDelay',
|
35
40
|
'positioning',
|
36
41
|
])(props),
|
37
42
|
);
|
38
43
|
|
39
|
-
let hoverCard = createHoverCard(
|
44
|
+
let hoverCard = createHoverCard(
|
45
|
+
reflect(() => ({...createHoverCardProps, id: id ?? uid})),
|
46
|
+
);
|
47
|
+
|
40
48
|
let presence = createPresence(
|
41
49
|
reflect(() => ({
|
42
50
|
...presenceStrategyProps,
|
@@ -1,7 +1,8 @@
|
|
1
1
|
import type { Snippet } from 'svelte';
|
2
2
|
import type { PresenceStrategyProps } from '../presence/create-presence.svelte.js';
|
3
|
+
import type { Optional } from '../types.js';
|
3
4
|
import type { CreateHoverCardProps, CreateHoverCardReturn } from './create-hover-card.svelte.js';
|
4
|
-
export interface HoverCardProps extends CreateHoverCardProps, PresenceStrategyProps {
|
5
|
+
export interface HoverCardProps extends Optional<CreateHoverCardProps, 'id'>, PresenceStrategyProps {
|
5
6
|
children?: Snippet<[CreateHoverCardReturn]>;
|
6
7
|
}
|
7
8
|
declare const HoverCardRoot: import("svelte").Component<HoverCardProps, {}, "">;
|