@sectile/vue 0.19.0 → 0.20.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/README.md +74 -0
- package/dist/input/native-field.d.ts +8 -0
- package/dist/input/native-field.js +1 -1
- package/dist/input/native-field.js.map +1 -1
- package/dist/input/native-range-field.js +1 -1
- package/dist/input/native-range-field.js.map +1 -1
- package/dist/media-gesture.d.ts +1 -1
- package/dist/media-gesture.js +1 -1
- package/dist/media-gesture.js.map +1 -1
- package/dist/number-field.d.ts +18 -1
- package/dist/number-field.js +1 -1
- package/dist/number-field.js.map +1 -1
- package/dist/overlay/popup.d.ts +4 -0
- package/dist/overlay/popup.js +1 -1
- package/dist/overlay/popup.js.map +1 -1
- package/dist/overlay/tooltip.d.ts +3 -2
- package/dist/overlay/tooltip.js +1 -1
- package/dist/overlay/tooltip.js.map +1 -1
- package/dist/quantity-field.js +1 -1
- package/dist/quantity-field.js.map +1 -1
- package/dist/reorder.d.ts +14 -1
- package/dist/reorder.js +1 -1
- package/dist/reorder.js.map +1 -1
- package/dist/spin-button.js +1 -1
- package/dist/spin-button.js.map +1 -1
- package/dist/text.js +1 -1
- package/dist/text.js.map +1 -1
- package/dist/tree-select.js +1 -1
- package/dist/tree-select.js.map +1 -1
- package/package.json +15 -14
package/README.md
CHANGED
|
@@ -57,3 +57,77 @@ Observation follows the `active` ref, inherited host activity and KeepAlive.
|
|
|
57
57
|
Target/activity retirement reports an active gesture's disconnect; terminal
|
|
58
58
|
scope disposal is silent. Media state, zoom policy and presentation remain with
|
|
59
59
|
their owners.
|
|
60
|
+
|
|
61
|
+
`admitPointer` can explicitly admit an authored media button using the event
|
|
62
|
+
origin and `protectedOrigin`. Its default 4-client-pixel `dragThreshold` preserves
|
|
63
|
+
native focus and click activation until a drag is claimed. `onStart` runs at
|
|
64
|
+
that claim boundary; ordinary protected controls still decline unless the
|
|
65
|
+
predicate admits them. Pending observation follows the same participation and
|
|
66
|
+
component lifetime as active contacts.
|
|
67
|
+
|
|
68
|
+
Retained `DrawerRoot` content can move between `presentation="inline"` and
|
|
69
|
+
`"overlay"` with `:unmount-on-exit="false"`. When an action inside the inline
|
|
70
|
+
content opens the overlay, accepting a close together with a return to inline
|
|
71
|
+
restores that action after exit and rendering finish. A valid internal
|
|
72
|
+
`restoreFocusTarget` or compound `DrawerTrigger` takes precedence over the
|
|
73
|
+
original focused action. Unavailable targets are skipped, and a newer focus
|
|
74
|
+
owner outside the content is preserved. Closing without requesting inline does
|
|
75
|
+
not schedule a later focus transfer for an unrelated presentation change.
|
|
76
|
+
|
|
77
|
+
`SequenceReorderRoot` and `TreeReorderRoot` expose `interaction`,
|
|
78
|
+
`getPreviewState()`, `cancelInteraction()` and `refreshDropTarget()` in their
|
|
79
|
+
default slot. Accepted `items` or `nodes` stay unchanged during preview, so a
|
|
80
|
+
composition can render a lifted item or an insertion marker independently.
|
|
81
|
+
`getPreviewState()` returns a Result containing the full proposed Core state;
|
|
82
|
+
request it only when that complete order is needed. `interaction.clientPoint`
|
|
83
|
+
and `refreshDropTarget()` support application-owned auto-scroll without a second
|
|
84
|
+
pointer sensor. The `interaction-change` event reports start, preview,
|
|
85
|
+
commit/cancel and end; commit's `accepted` flag distinguishes an immediate canonical update
|
|
86
|
+
from a controlled proposal awaiting new props.
|
|
87
|
+
|
|
88
|
+
Set `keyboardMode="preview"` to lift with Space, preview with direction/Home/End
|
|
89
|
+
keys, commit with Enter or Space, and cancel with Escape. Alt+direction keys keep
|
|
90
|
+
their immediate behavior. Host suspension and unmount retire the native owner
|
|
91
|
+
and its preview; they leave no scrolling task running.
|
|
92
|
+
|
|
93
|
+
Changing `TextField.multiline` transfers the current text and native selection
|
|
94
|
+
to the replacement input/textarea. It restores focus only when the old editor
|
|
95
|
+
owned it. An active composition finishes on the original element before the
|
|
96
|
+
representation changes. A single-line request waits while the current text has
|
|
97
|
+
line breaks, then proceeds when editing removes them. Native undo history belongs
|
|
98
|
+
to each browser element and cannot be transferred to a different element.
|
|
99
|
+
|
|
100
|
+
A `NumberField` component ref exposes `getText()`, `commitValue(string | null)`,
|
|
101
|
+
`clear()` and `stepBy(decimalString)`. Edit methods return a Promise of
|
|
102
|
+
`NumberFieldEditResult`: accepted with the final value, or rejected with a reason.
|
|
103
|
+
They are deliberate edits, separate from model synchronization that preserves a
|
|
104
|
+
live draft. `stepBy('0.1')` evaluates the current valid draft and adds an exact
|
|
105
|
+
decimal amount; it does not require finite bounds or use JavaScript floating
|
|
106
|
+
point. Stepping an empty nullable field starts from zero. Invalid drafts, bounds,
|
|
107
|
+
required values, disabled/readonly state and active composition can reject an
|
|
108
|
+
edit. A controlled owner may refuse or transform it; settlement then restores
|
|
109
|
+
the owner's accepted value. Concurrent edits return `busy`; saved methods become
|
|
110
|
+
unavailable after unmount. Core NumberField exposes the corresponding `set-value`
|
|
111
|
+
and `step` events through the existing DOM `handleEvent` connection.
|
|
112
|
+
|
|
113
|
+
`TooltipRoot` accepts `openDelay` and `closeDelay` in milliseconds, both defaulting
|
|
114
|
+
to zero. Keyboard focus opens immediately. Share a `createTooltipGroup({ skipDelay:
|
|
115
|
+
300 })` token through the `group` prop to skip the hover opening delay while a
|
|
116
|
+
peer is open or shortly after an accepted close. Groups are explicit scopes and
|
|
117
|
+
retain only timing/count facts. Pending hover work retires on leave, suspension,
|
|
118
|
+
reconfiguration and unmount; controlled refusal does not warm the group.
|
|
119
|
+
|
|
120
|
+
Link branches use the existing `NavigationMenuRoot`, `NavigationMenuTrigger` and
|
|
121
|
+
`NavigationMenuContent`. Render leaf `NavigationMenuLink` as an anchor (or borrow
|
|
122
|
+
an anchor with `asChild`) so href, modified clicks and browser link semantics stay
|
|
123
|
+
native. Branch buttons enter child groups; Escape/logical back closes a submenu
|
|
124
|
+
and restores its trigger. For a pointer Back action, the DOM
|
|
125
|
+
`createNavigationMenu` connection already accepts `handleEvent('close-submenu')`.
|
|
126
|
+
It is unnecessary to substitute a selection listbox or maintain another branch
|
|
127
|
+
state machine.
|
|
128
|
+
|
|
129
|
+
Sectile's modal popup remains the focus/isolation owner. Calling native
|
|
130
|
+
`HTMLDialogElement.showModal()` on that same popup is not a supported promotion:
|
|
131
|
+
the browser would acquire a second modal/focus owner. Retained inline/overlay
|
|
132
|
+
content uses the documented Drawer composition instead. Layer-host placement
|
|
133
|
+
and native browser top-layer promotion are separate capabilities.
|
|
@@ -19,6 +19,13 @@ export interface NativeFieldValueControl<Value> {
|
|
|
19
19
|
commit(value: Value | null): boolean;
|
|
20
20
|
}
|
|
21
21
|
type NativeFieldValueBinding<Value> = (control: NativeFieldValueControl<Value>) => () => void;
|
|
22
|
+
export interface NativeFieldCommandHost<Value> {
|
|
23
|
+
readonly connection: NativeFieldConnection<Value> | undefined;
|
|
24
|
+
readonly mounted: boolean;
|
|
25
|
+
readonly composing: boolean;
|
|
26
|
+
readonly disabled: boolean;
|
|
27
|
+
readonly readOnly: boolean;
|
|
28
|
+
}
|
|
22
29
|
/** Scope a composition command to its single native input, not the outer field. */
|
|
23
30
|
export declare function provideNativeFieldValueControl<Value>(attach: NativeFieldValueBinding<Value>): void;
|
|
24
31
|
export interface NativeFieldFactoryOptions<Value, Policies = Readonly<Record<string, unknown>>> {
|
|
@@ -51,6 +58,7 @@ export interface NativeFieldComponentConfig<Value, Policies = Readonly<Record<st
|
|
|
51
58
|
readonly presentationProps?: ComponentObjectPropsOptions<ExtraProps>;
|
|
52
59
|
/** Explicit user selection differs from controlled-value synchronization. */
|
|
53
60
|
commitValue?(connection: NativeFieldConnection<Value>, value: Value | null): boolean;
|
|
61
|
+
exposeValueCommands?(host: NativeFieldCommandHost<Value>, expose: (value: object) => void): void;
|
|
54
62
|
usePresentation?(props: Readonly<NativeFieldPublicProps<Value, Policies> & ExtraProps>): ComputedRef<NativeFieldPresentation<Value, Policies, Format> | undefined>;
|
|
55
63
|
}
|
|
56
64
|
export interface NativeFieldPublicProps<Value, Policies = Readonly<Record<string, unknown>>> {
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import{defineComponent,h,inject,mergeProps,onBeforeUnmount,onMounted,provide,shallowRef,watch}from"vue";import{hiddenInputSubmissionCapabilities,useFormControlFlags,useFormSubmissionProps,useNativeInputFormControl}from"../form/control.js";import{useControlledStateInvariant}from"../internal/controlled-state.js";import{captureNativeTextState}from"./native-text-state.js";import{useNextTickTask}from"../internal/scheduled-task.js";const nativeFieldValueBinding=Symbol("SectileNativeFieldValueBinding");function provideNativeFieldValueControl(attach){provide(nativeFieldValueBinding,attach)}function createNativeFieldComponent(config){return defineComponent({name:config.name,inheritAttrs:false,props:{...config.presentationProps,modelValue:{type:config.valueType,default:void 0},defaultValue:{type:config.valueType,default:null},policies:{type:Object,default:void 0},disabled:{type:Boolean,default:false},readonly:{type:Boolean,default:false},required:{type:Boolean,default:false},label:{type:String,default:void 0},native:{type:Boolean,default:false}},emits:{"update:modelValue":_value=>true},setup(props,{attrs,emit}){const flags=useFormControlFlags(props);const valueBinding=config.commitValue===void 0?void 0:inject(nativeFieldValueBinding,void 0);const composingState=valueBinding===void 0?void 0:shallowRef(false);let detachValueControl;const requestedPresentation=config.usePresentation?.(props);const presentation=shallowRef(requestedPresentation?.value??config);const input=shallowRef();let connection;let mounted=false;const controlled=useControlledStateInvariant(config.name,"modelValue",()=>props.modelValue);let acceptedValue=controlled?props.modelValue:void 0;const initialProjectedValue=controlled?props.modelValue:props.defaultValue;let resetValue=initialProjectedValue??null;const projectedText=shallowRef(initialProjectedValue===null||initialProjectedValue===void 0?"":presentation.value.formatValue(initialProjectedValue));const projectOptions=()=>({native:props.native,...flags.value});const projected=shallowRef(projectOptions());let inputComposing=false;let reconnectPending=false;let reconnectTimer=null;const capture=()=>{const target=connection;const element=input.value;if(target===void 0||element===void 0)return void 0;return{value:target.getValue(),inputState:captureNativeTextState(element,target.getText())}};const connect=(preserved,reset=false)=>{const element=input.value;if(element===void 0)return;const wanted=requestedPresentation?.value??config;const previous=presentation.value;const dirty=preserved!==void 0&&(preserved.inputState.composition!==null||preserved.inputState.snapshot.text!==(preserved.value===null?"":previous.formatValue(preserved.value)));const deferred=wanted!==previous&&dirty;const next=deferred?previous:wanted;if(preserved!==void 0&&next!==previous){preserved={value:preserved.value,inputState:next.rebase?.(preserved.value,preserved.inputState,previous.format)??preserved.inputState}}connection?.disconnect();const nextOptions=projectOptions();projected.value=deferred?{...nextOptions,native:projected.value.native}:nextOptions;presentation.value=next;const fieldOptions={input:element,disabled:flags.value.disabled,readOnly:flags.value.readonly,required:flags.value.required,native:projected.value.native,onValueChange:value=>{emit("update:modelValue",value)},onUpdate:()=>{const target=connection;if(target===void 0)return;projectedText.value=target.getText();if((requestedPresentation?.value??config)!==presentation.value)presentationTask?.schedule()}};if(props.policies!==void 0)fieldOptions.policies=props.policies;if(controlled)fieldOptions.value=acceptedValue;else fieldOptions.defaultValue=reset?resetValue:preserved===void 0?props.defaultValue:preserved.value;if(preserved!==void 0)fieldOptions.defaultInputState=preserved.inputState;if(props.label!==void 0)fieldOptions.label=props.label;connection=next.create(fieldOptions);projectedText.value=connection.getText()};const resetTask=useNextTickTask(()=>{if(mounted)connect(void 0,true)});const settlePresentation=()=>{if(!mounted||inputComposing||(requestedPresentation?.value??config)===presentation.value)return;const preserved=capture();if(preserved!==void 0&&preserved.inputState.composition===null&&preserved.inputState.snapshot.text===(preserved.value===null?"":presentation.value.formatValue(preserved.value)))connect(preserved)};const presentationTask=requestedPresentation===void 0?void 0:useNextTickTask(settlePresentation);const participation=useNativeInputFormControl(input,{reset:()=>{if(!mounted)return;if(reconnectTimer!==null)clearTimeout(reconnectTimer);reconnectTimer=null;reconnectPending=false;inputComposing=false;if(composingState!==void 0)composingState.value=false;resetTask.schedule()}});const submission=participation.participating?useFormSubmissionProps({element:input,capabilities:hiddenInputSubmissionCapabilities}):void 0;const requestConnect=()=>{if(inputComposing){reconnectPending=true;return}connect(capture())};const setInputComposing=composing=>{inputComposing=composing;if(composingState!==void 0)composingState.value=composing;if(!composing&&(requestedPresentation?.value??config)!==presentation.value)presentationTask?.schedule();if(composing||!reconnectPending||reconnectTimer!==null)return;reconnectTimer=setTimeout(()=>{reconnectTimer=null;if(inputComposing)return;reconnectPending=false;connect(capture())},0)};onMounted(()=>{mounted=true;connect();resetValue=connection?.getValue()??null;if(valueBinding!==void 0&&composingState!==void 0)detachValueControl=valueBinding({get element(){return input.value??null},composing:composingState,commit(value){if(!mounted||connection===void 0||props.disabled||props.readonly||inputComposing)return false;if((requestedPresentation?.value??config)!==presentation.value)connect();return config.commitValue?.(connection,value)??false}})});onBeforeUnmount(()=>{mounted=false;resetTask.cancel();presentationTask?.cancel();detachValueControl?.();detachValueControl=void 0;if(composingState!==void 0)composingState.value=false;if(reconnectTimer!==null)clearTimeout(reconnectTimer);reconnectTimer=null;reconnectPending=false;connection?.disconnect();connection=void 0;input.value=void 0});watch(()=>props.modelValue,value=>{if(!controlled||value===void 0||connection===void 0)return;const result=connection.syncControlledValues({value});if(!result.ok)throw new TypeError("Controlled native field synchronization failed.");acceptedValue=value;projectedText.value=connection.getText()});watch([()=>props.policies,()=>flags.value.disabled,()=>flags.value.readonly,()=>flags.value.required,()=>props.label,()=>props.native],requestConnect);if(requestedPresentation!==void 0)watch(requestedPresentation,settlePresentation);const setInput=element=>{input.value=element instanceof HTMLInputElement?element:void 0};return()=>h("input",mergeProps(submission?.value??{},attrs,{ref:setInput,"data-scope":config.scope,"data-part":"input",type:projected.value.native&&config.nativeInputType!==void 0?config.nativeInputType:"text",inputmode:projected.value.native?void 0:presentation.value.inputMode??config.inputMode,placeholder:projected.value.native?void 0:presentation.value.placeholder,disabled:projected.value.disabled,readonly:projected.value.readonly,required:projected.value.required,"aria-disabled":String(projected.value.disabled),"aria-readonly":String(projected.value.readonly),"aria-label":props.label,onCompositionstart:()=>setInputComposing(true),onCompositionend:()=>setInputComposing(false)
|
|
1
|
+
import{defineComponent,getCurrentInstance,h,inject,mergeProps,onBeforeUnmount,onMounted,provide,shallowRef,ssrContextKey,watch}from"vue";import{hiddenInputSubmissionCapabilities,useFormControlFlags,useFormSubmissionProps,useNativeInputFormControl}from"../form/control.js";import{useControlledStateInvariant}from"../internal/controlled-state.js";import{captureNativeTextState}from"./native-text-state.js";import{useNextTickTask}from"../internal/scheduled-task.js";const nativeFieldValueBinding=Symbol("SectileNativeFieldValueBinding");function provideNativeFieldValueControl(attach){provide(nativeFieldValueBinding,attach)}function createNativeFieldComponent(config){return defineComponent({name:config.name,inheritAttrs:false,props:{...config.presentationProps,modelValue:{type:config.valueType,default:void 0},defaultValue:{type:config.valueType,default:null},policies:{type:Object,default:void 0},disabled:{type:Boolean,default:false},readonly:{type:Boolean,default:false},required:{type:Boolean,default:false},label:{type:String,default:void 0},native:{type:Boolean,default:false}},emits:{"update:modelValue":_value=>true},setup(props,{attrs,emit}){const flags=useFormControlFlags(props);const valueBinding=config.commitValue===void 0?void 0:inject(nativeFieldValueBinding,void 0);const composingState=valueBinding===void 0?void 0:shallowRef(false);let detachValueControl;const requestedPresentation=config.usePresentation?.(props);const presentation=shallowRef(requestedPresentation?.value??config);const input=shallowRef();let connection;let mounted=false;const controlled=useControlledStateInvariant(config.name,"modelValue",()=>props.modelValue);let acceptedValue=controlled?props.modelValue:void 0;const initialProjectedValue=controlled?props.modelValue:props.defaultValue;let resetValue=initialProjectedValue??null;const projectedText=shallowRef(initialProjectedValue===null||initialProjectedValue===void 0?"":presentation.value.formatValue(initialProjectedValue));const renderServerValue=inject(ssrContextKey,void 0)!==void 0,defaultText=projectedText.value;const projectOptions=()=>({native:props.native,...flags.value});const projected=shallowRef(projectOptions());let inputComposing=false;let reconnectPending=false;let reconnectTimer=null;const capture=()=>{const target=connection;const element=input.value;if(target===void 0||element===void 0)return void 0;return{value:target.getValue(),inputState:captureNativeTextState(element,target.getText())}};const connect=(preserved,reset=false)=>{const element=input.value;if(element===void 0)return;const wanted=requestedPresentation?.value??config;const previous=presentation.value;const dirty=preserved!==void 0&&(preserved.inputState.composition!==null||preserved.inputState.snapshot.text!==(preserved.value===null?"":previous.formatValue(preserved.value)));const deferred=wanted!==previous&&dirty;const next=deferred?previous:wanted;if(preserved!==void 0&&next!==previous){preserved={value:preserved.value,inputState:next.rebase?.(preserved.value,preserved.inputState,previous.format)??preserved.inputState}}connection?.disconnect();const nextOptions=projectOptions();projected.value=deferred?{...nextOptions,native:projected.value.native}:nextOptions;presentation.value=next;const fieldOptions={input:element,disabled:flags.value.disabled,readOnly:flags.value.readonly,required:flags.value.required,native:projected.value.native,onValueChange:value=>{emit("update:modelValue",value)},onUpdate:()=>{const target=connection;if(target===void 0)return;projectedText.value=target.getText();if((requestedPresentation?.value??config)!==presentation.value)presentationTask?.schedule()}};if(props.policies!==void 0)fieldOptions.policies=props.policies;if(controlled)fieldOptions.value=acceptedValue;else fieldOptions.defaultValue=reset?resetValue:preserved===void 0?props.defaultValue:preserved.value;if(preserved!==void 0)fieldOptions.defaultInputState=preserved.inputState;if(props.label!==void 0)fieldOptions.label=props.label;connection=next.create(fieldOptions);projectedText.value=connection.getText()};const resetTask=useNextTickTask(()=>{if(mounted)connect(void 0,true)});const settlePresentation=()=>{if(!mounted||inputComposing||(requestedPresentation?.value??config)===presentation.value)return;const preserved=capture();if(preserved!==void 0&&preserved.inputState.composition===null&&preserved.inputState.snapshot.text===(preserved.value===null?"":presentation.value.formatValue(preserved.value)))connect(preserved)};const presentationTask=requestedPresentation===void 0?void 0:useNextTickTask(settlePresentation);const participation=useNativeInputFormControl(input,{reset:()=>{if(!mounted)return;if(reconnectTimer!==null)clearTimeout(reconnectTimer);reconnectTimer=null;reconnectPending=false;inputComposing=false;if(composingState!==void 0)composingState.value=false;resetTask.schedule()}});const submission=participation.participating?useFormSubmissionProps({element:input,capabilities:hiddenInputSubmissionCapabilities}):void 0;const requestConnect=()=>{if(!mounted)return;if(inputComposing){reconnectPending=true;return}connect(capture())};const setInputComposing=composing=>{inputComposing=composing;if(composingState!==void 0)composingState.value=composing;if(!composing&&(requestedPresentation?.value??config)!==presentation.value)presentationTask?.schedule();if(composing||!reconnectPending||reconnectTimer!==null)return;reconnectTimer=setTimeout(()=>{reconnectTimer=null;if(inputComposing)return;reconnectPending=false;connect(capture())},0)};config.exposeValueCommands?.({get connection(){return connection},get mounted(){return mounted},get composing(){return inputComposing},get disabled(){return flags.value.disabled},get readOnly(){return flags.value.readonly}},commands=>{const instance=getCurrentInstance();for(const[name,method]of Object.entries(commands))Object.defineProperty(instance.proxy,name,{configurable:true,value:method})});onMounted(()=>{if(controlled)acceptedValue=props.modelValue;mounted=true;connect();resetValue=connection?.getValue()??null;if(valueBinding!==void 0&&composingState!==void 0)detachValueControl=valueBinding({get element(){return input.value??null},composing:composingState,commit(value){if(!mounted||connection===void 0||props.disabled||props.readonly||inputComposing)return false;if((requestedPresentation?.value??config)!==presentation.value)connect();return config.commitValue?.(connection,value)??false}})});onBeforeUnmount(()=>{mounted=false;resetTask.cancel();presentationTask?.cancel();detachValueControl?.();detachValueControl=void 0;if(composingState!==void 0)composingState.value=false;if(reconnectTimer!==null)clearTimeout(reconnectTimer);reconnectTimer=null;reconnectPending=false;connection?.disconnect();connection=void 0;input.value=void 0});watch(()=>props.modelValue,value=>{if(!controlled||value===void 0||connection===void 0)return;const result=connection.syncControlledValues({value});if(!result.ok)throw new TypeError("Controlled native field synchronization failed.");acceptedValue=value;projectedText.value=connection.getText()});watch([()=>props.policies,()=>flags.value.disabled,()=>flags.value.readonly,()=>flags.value.required,()=>props.label,()=>props.native],requestConnect);if(requestedPresentation!==void 0)watch(requestedPresentation,settlePresentation);const setInput=element=>{input.value=element instanceof HTMLInputElement?element:void 0};return()=>h("input",mergeProps(submission?.value??{},attrs,{ref:setInput,"data-scope":config.scope,"data-part":"input",type:projected.value.native&&config.nativeInputType!==void 0?config.nativeInputType:"text",inputmode:projected.value.native?void 0:presentation.value.inputMode??config.inputMode,placeholder:attrs["placeholder"]??(projected.value.native?void 0:presentation.value.placeholder),disabled:projected.value.disabled,readonly:projected.value.readonly,required:projected.value.required,"aria-disabled":String(projected.value.disabled),"aria-readonly":String(projected.value.readonly),"aria-label":props.label,onCompositionstart:()=>setInputComposing(true),onCompositionend:()=>setInputComposing(false),...renderServerValue?{value:projectedText.value}:{defaultValue:defaultText}},participation.controlProps.value))}})}export{createNativeFieldComponent,provideNativeFieldValueControl};
|
|
2
2
|
//# sourceMappingURL=native-field.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../src/input/native-field.ts"],"mappings":"AAAA,OACE,gBACA,EACA,OACA,WACA,gBACA,UACA,QACA,WACA,UAOK,MAEP,OAAS,kCAAmC,oBAAqB,uBAAwB,8BAAiC,qBAC1H,OAAS,gCAAmC,kCAC5C,OAAS,2BAA8B,yBACvC,OAAS,oBAAuB,
|
|
1
|
+
{"version":3,"sources":["../../src/input/native-field.ts"],"mappings":"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","names":[],"file":"native-field.js"}
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import{computed,defineComponent,h,inject,mergeProps,onBeforeUnmount,onMounted,provide,shallowRef,watch}from"vue";import{hiddenInputSubmissionCapabilities,useCompositeFormControl,useFormControlFlags,useFormMetadataPresence,useFormSubmissionProps}from"../form/control.js";import{Primitive}from"../primitive.js";import{useControlledStateInvariant}from"../internal/controlled-state.js";import{useNextTickTask}from"../internal/scheduled-task.js";import{captureNativeTextState}from"./native-text-state.js";function setupNativeRangeField(config,props,{attrs,emit,slots}){const controlled=useControlledStateInvariant(config.name,"modelValue",()=>props.modelValue);const requested=config.usePresentation?.();const presentation=shallowRef(requested?.value??config);const initial=presentation.value.initial({value:controlled?props.modelValue:props.defaultValue});if(!initial.ok)throw new TypeError(initial.error.message);const snapshot=shallowRef(initial.value);const startInput=shallowRef(null);const endInput=shallowRef(null);const root=shallowRef(null);let mounted=false;let connection=null;const submissions=[{element:startInput,relativeName:"start",capabilities:hiddenInputSubmissionCapabilities},{element:endInput,relativeName:"end",capabilities:hiddenInputSubmissionCapabilities}];const explicit=useFormMetadataPresence();const flags=useFormControlFlags(props);const endpointSubmissionProps=(endpoint,index)=>{const inherited=useFormSubmissionProps(submissions[index]);return computed(()=>{const attributes={...inherited.value};if(explicit.value.includes("name")){const name=props.name;attributes["name"]=name===void 0||name===""?name:`${name}.${endpoint}`}if(explicit.value.includes("form"))attributes["form"]=props.form;Object.assign(attributes,flags.value);return attributes})};const submissionProps={start:endpointSubmissionProps("start",0),end:endpointSubmissionProps("end",1)};const participation=useCompositeFormControl({root,focusTarget:startInput,submissions,...config.reset?{reset:()=>resetTask?.schedule()}:{}});const refresh=()=>{if(connection!==null)snapshot.value=connection.getSnapshot().state;if((requested?.value??config)!==presentation.value)presentationTask?.schedule()};const mount=(preserveNative=false,convertedState)=>{if(!mounted||startInput.value===null||endInput.value===null)return;let startState=preserveNative&&connection!==null?captureNativeTextState(startInput.value,snapshot.value.start.inputState.snapshot.text):void 0;let endState=preserveNative&&connection!==null?captureNativeTextState(endInput.value,snapshot.value.end.inputState.snapshot.text):void 0;const wanted=requested?.value??config;let next=presentation.value;let restored=snapshot.value;if(wanted!==next&&startState!==void 0&&endState!==void 0){const converted=convertedState===void 0?wanted.rebase?.(snapshot.value,startState,endState):{ok:true,value:convertedState};if(converted?.ok){next=wanted;restored=converted.value;startState=restored.start.inputState;endState=restored.end.inputState}}else if(!preserveNative){next=wanted;const converted=next.initial({value:controlled?props.modelValue:snapshot.value.value});if(!converted.ok)throw new TypeError(converted.error.message);restored=converted.value}connection?.disconnect();presentation.value=next;const fieldOptions={startInput:startInput.value,endInput:endInput.value,disabled:flags.value.disabled,readOnly:flags.value.readonly,required:flags.value.required,onValueChange:value=>emit("update:modelValue",value),onUpdate:refresh};if(controlled)fieldOptions.value=props.modelValue;else fieldOptions.defaultValue=snapshot.value.value;fieldOptions.defaultState=restored;if(startState!==void 0)fieldOptions.defaultStartInputState=startState;if(endState!==void 0)fieldOptions.defaultEndInputState=endState;const{policies,startLabel,endLabel}=props;if(policies!==void 0)fieldOptions.policies=policies;if(startLabel!==void 0)fieldOptions.startLabel=startLabel;if(endLabel!==void 0)fieldOptions.endLabel=endLabel;connection=next.create(fieldOptions);refresh()};const mountTask=useNextTickTask(()=>mount(true));const resetTask=config.reset?useNextTickTask(()=>{if(!controlled)snapshot.value=initial.value;mount()}):void 0;let composingInputs=0;let reconnectPending=false;let reconnectTimer=null;const settlePresentation=()=>{if(!mounted||composingInputs!==0||(requested?.value??config)===presentation.value||startInput.value===null||endInput.value===null)return;const wanted=requested?.value??config;const converted=wanted.rebase?.(snapshot.value,captureNativeTextState(startInput.value,snapshot.value.start.inputState.snapshot.text),captureNativeTextState(endInput.value,snapshot.value.end.inputState.snapshot.text));if(converted?.ok)mount(true,converted.value)};const presentationTask=requested===void 0?void 0:useNextTickTask(settlePresentation);const requestMount=()=>{if(composingInputs!==0){reconnectPending=true;return}mountTask.schedule()};const setInputComposing=(endpoint,composing)=>{const bit=endpoint==="start"?1:2;if(composing)composingInputs|=bit;else composingInputs&=~bit;if(composingInputs===0&&(requested?.value??config)!==presentation.value)presentationTask?.schedule();if(composingInputs!==0||!reconnectPending||reconnectTimer!==null)return;reconnectTimer=setTimeout(()=>{reconnectTimer=null;if(!mounted||composingInputs!==0)return;reconnectPending=false;mountTask.schedule()},0)};onMounted(()=>{mounted=true;mount()});onBeforeUnmount(()=>{mounted=false;if(reconnectTimer!==null)clearTimeout(reconnectTimer);reconnectTimer=null;reconnectPending=false;composingInputs=0;mountTask.cancel();resetTask?.cancel();presentationTask?.cancel();connection?.disconnect();connection=null});watch(()=>props.modelValue,value=>{if(!controlled||value===void 0||connection===null)return;const result=connection.syncControlledValues({value});if(!result.ok)throw new TypeError(result.error.message);snapshot.value=result.value.state;if((requested?.value??config)!==presentation.value)presentationTask?.schedule()});watch([()=>props.policies,()=>flags.value.disabled,()=>flags.value.readonly,()=>flags.value.required,()=>props.startLabel,()=>props.endLabel],requestMount);if(requested!==void 0)watch(requested,settlePresentation);const slotProps=computed(()=>Object.freeze({value:snapshot.value.value,startText:snapshot.value.start.inputState.snapshot.text,endText:snapshot.value.end.inputState.snapshot.text,active:snapshot.value.active,disabled:flags.value.disabled,readonly:flags.value.readonly}));provide(config.contextKey,{slotProps,startInput,endInput,setInputComposing,get required(){return flags.value.required},isInputComposing:endpoint=>(composingInputs&(endpoint==="start"?1:2))!==0,placeholder:computed(()=>presentation.value.placeholder),inputMode:computed(()=>presentation.value.inputMode??"numeric"),submissionProps});return()=>h(Primitive,mergeProps(participation.controlProps.value,attrs,{as:props.as,asChild:props.asChild,elementRef:element=>{root.value=element},role:"group","data-scope":config.scope,"data-part":"root","data-disabled":flags.value.disabled?"":void 0,"data-readonly":flags.value.readonly?"":void 0}),{default:()=>slots["default"]?.(slotProps.value)})}function createNativeRangeFieldInput(contextKey,scope,placeholder,endpoint,name,rootName){return defineComponent({name,inheritAttrs:false,setup(_props,{attrs}){const context=inject(contextKey);if(context===void 0)throw new TypeError(`${name} must be used inside ${rootName}.`);return()=>h("input",mergeProps(context.submissionProps[endpoint].value,attrs,{ref:element=>{context[endpoint==="start"?"startInput":"endInput"].value=element},type:"text",inputmode:context.inputMode.value,placeholder:context.placeholder.value??placeholder
|
|
1
|
+
import{computed,defineComponent,h,inject,mergeProps,onBeforeUnmount,onMounted,provide,shallowRef,ssrContextKey,watch}from"vue";import{hiddenInputSubmissionCapabilities,useCompositeFormControl,useFormControlFlags,useFormMetadataPresence,useFormSubmissionProps}from"../form/control.js";import{Primitive}from"../primitive.js";import{useControlledStateInvariant}from"../internal/controlled-state.js";import{useNextTickTask}from"../internal/scheduled-task.js";import{captureNativeTextState}from"./native-text-state.js";function setupNativeRangeField(config,props,{attrs,emit,slots}){const controlled=useControlledStateInvariant(config.name,"modelValue",()=>props.modelValue);const requested=config.usePresentation?.();const presentation=shallowRef(requested?.value??config);const initial=presentation.value.initial({value:controlled?props.modelValue:props.defaultValue});if(!initial.ok)throw new TypeError(initial.error.message);const snapshot=shallowRef(initial.value);const startInput=shallowRef(null);const endInput=shallowRef(null);const root=shallowRef(null);let mounted=false;let connection=null;const submissions=[{element:startInput,relativeName:"start",capabilities:hiddenInputSubmissionCapabilities},{element:endInput,relativeName:"end",capabilities:hiddenInputSubmissionCapabilities}];const explicit=useFormMetadataPresence();const flags=useFormControlFlags(props);const endpointSubmissionProps=(endpoint,index)=>{const inherited=useFormSubmissionProps(submissions[index]);return computed(()=>{const attributes={...inherited.value};if(explicit.value.includes("name")){const name=props.name;attributes["name"]=name===void 0||name===""?name:`${name}.${endpoint}`}if(explicit.value.includes("form"))attributes["form"]=props.form;Object.assign(attributes,flags.value);return attributes})};const submissionProps={start:endpointSubmissionProps("start",0),end:endpointSubmissionProps("end",1)};const participation=useCompositeFormControl({root,focusTarget:startInput,submissions,...config.reset?{reset:()=>resetTask?.schedule()}:{}});const refresh=()=>{if(connection!==null)snapshot.value=connection.getSnapshot().state;if((requested?.value??config)!==presentation.value)presentationTask?.schedule()};const mount=(preserveNative=false,convertedState)=>{if(!mounted||startInput.value===null||endInput.value===null)return;let startState=preserveNative&&connection!==null?captureNativeTextState(startInput.value,snapshot.value.start.inputState.snapshot.text):void 0;let endState=preserveNative&&connection!==null?captureNativeTextState(endInput.value,snapshot.value.end.inputState.snapshot.text):void 0;const wanted=requested?.value??config;let next=presentation.value;let restored=snapshot.value;if(wanted!==next&&startState!==void 0&&endState!==void 0){const converted=convertedState===void 0?wanted.rebase?.(snapshot.value,startState,endState):{ok:true,value:convertedState};if(converted?.ok){next=wanted;restored=converted.value;startState=restored.start.inputState;endState=restored.end.inputState}}else if(!preserveNative){next=wanted;const converted=next.initial({value:controlled?props.modelValue:snapshot.value.value});if(!converted.ok)throw new TypeError(converted.error.message);restored=converted.value}connection?.disconnect();presentation.value=next;const fieldOptions={startInput:startInput.value,endInput:endInput.value,disabled:flags.value.disabled,readOnly:flags.value.readonly,required:flags.value.required,onValueChange:value=>emit("update:modelValue",value),onUpdate:refresh};if(controlled)fieldOptions.value=props.modelValue;else fieldOptions.defaultValue=snapshot.value.value;fieldOptions.defaultState=restored;if(startState!==void 0)fieldOptions.defaultStartInputState=startState;if(endState!==void 0)fieldOptions.defaultEndInputState=endState;const{policies,startLabel,endLabel}=props;if(policies!==void 0)fieldOptions.policies=policies;if(startLabel!==void 0)fieldOptions.startLabel=startLabel;if(endLabel!==void 0)fieldOptions.endLabel=endLabel;connection=next.create(fieldOptions);refresh()};const mountTask=useNextTickTask(()=>mount(true));const resetTask=config.reset?useNextTickTask(()=>{if(!controlled)snapshot.value=initial.value;mount()}):void 0;let composingInputs=0;let reconnectPending=false;let reconnectTimer=null;const settlePresentation=()=>{if(!mounted||composingInputs!==0||(requested?.value??config)===presentation.value||startInput.value===null||endInput.value===null)return;const wanted=requested?.value??config;const converted=wanted.rebase?.(snapshot.value,captureNativeTextState(startInput.value,snapshot.value.start.inputState.snapshot.text),captureNativeTextState(endInput.value,snapshot.value.end.inputState.snapshot.text));if(converted?.ok)mount(true,converted.value)};const presentationTask=requested===void 0?void 0:useNextTickTask(settlePresentation);const requestMount=()=>{if(composingInputs!==0){reconnectPending=true;return}mountTask.schedule()};const setInputComposing=(endpoint,composing)=>{const bit=endpoint==="start"?1:2;if(composing)composingInputs|=bit;else composingInputs&=~bit;if(composingInputs===0&&(requested?.value??config)!==presentation.value)presentationTask?.schedule();if(composingInputs!==0||!reconnectPending||reconnectTimer!==null)return;reconnectTimer=setTimeout(()=>{reconnectTimer=null;if(!mounted||composingInputs!==0)return;reconnectPending=false;mountTask.schedule()},0)};onMounted(()=>{mounted=true;mount()});onBeforeUnmount(()=>{mounted=false;if(reconnectTimer!==null)clearTimeout(reconnectTimer);reconnectTimer=null;reconnectPending=false;composingInputs=0;mountTask.cancel();resetTask?.cancel();presentationTask?.cancel();connection?.disconnect();connection=null});watch(()=>props.modelValue,value=>{if(!controlled||value===void 0||connection===null)return;const result=connection.syncControlledValues({value});if(!result.ok)throw new TypeError(result.error.message);snapshot.value=result.value.state;if((requested?.value??config)!==presentation.value)presentationTask?.schedule()});watch([()=>props.policies,()=>flags.value.disabled,()=>flags.value.readonly,()=>flags.value.required,()=>props.startLabel,()=>props.endLabel],requestMount);if(requested!==void 0)watch(requested,settlePresentation);const slotProps=computed(()=>Object.freeze({value:snapshot.value.value,startText:snapshot.value.start.inputState.snapshot.text,endText:snapshot.value.end.inputState.snapshot.text,active:snapshot.value.active,disabled:flags.value.disabled,readonly:flags.value.readonly}));provide(config.contextKey,{slotProps,startInput,endInput,setInputComposing,get required(){return flags.value.required},isInputComposing:endpoint=>(composingInputs&(endpoint==="start"?1:2))!==0,placeholder:computed(()=>presentation.value.placeholder),inputMode:computed(()=>presentation.value.inputMode??"numeric"),submissionProps});return()=>h(Primitive,mergeProps(participation.controlProps.value,attrs,{as:props.as,asChild:props.asChild,elementRef:element=>{root.value=element},role:"group","data-scope":config.scope,"data-part":"root","data-disabled":flags.value.disabled?"":void 0,"data-readonly":flags.value.readonly?"":void 0}),{default:()=>slots["default"]?.(slotProps.value)})}function createNativeRangeFieldInput(contextKey,scope,placeholder,endpoint,name,rootName){return defineComponent({name,inheritAttrs:false,setup(_props,{attrs}){const context=inject(contextKey);if(context===void 0)throw new TypeError(`${name} must be used inside ${rootName}.`);const renderServerValue=inject(ssrContextKey,void 0)!==void 0;return()=>h("input",mergeProps(context.submissionProps[endpoint].value,attrs,{ref:element=>{context[endpoint==="start"?"startInput":"endInput"].value=element},type:"text",inputmode:context.inputMode.value,placeholder:context.placeholder.value??placeholder,...renderServerValue?{value:endpoint==="start"?context.slotProps.value.startText:context.slotProps.value.endText}:{},onCompositionstart:()=>context.setInputComposing(endpoint,true),onCompositionend:()=>context.setInputComposing(endpoint,false),"aria-disabled":String(context.slotProps.value.disabled),"aria-readonly":String(context.slotProps.value.readonly),"data-scope":scope,"data-part":`${endpoint}-input`,"data-active":context.slotProps.value.active===endpoint?"":void 0}))}})}export{createNativeRangeFieldInput,setupNativeRangeField};
|
|
2
2
|
//# sourceMappingURL=native-range-field.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../src/input/native-range-field.ts"],"mappings":"AAAA,OACE,SAAU,gBAAiB,EAAG,OAAQ,WAAY,gBAAiB,UACnE,QAAS,WAAY,
|
|
1
|
+
{"version":3,"sources":["../../src/input/native-range-field.ts"],"mappings":"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","names":[],"file":"native-range-field.js"}
|
package/dist/media-gesture.d.ts
CHANGED
|
@@ -2,7 +2,7 @@ import { type Ref, type ShallowRef } from 'vue';
|
|
|
2
2
|
import { type Result } from '@sectile/core/result';
|
|
3
3
|
import type { Point } from '@sectile/core/geometry';
|
|
4
4
|
import { type MediaGestureErrorCode, type MediaGestureOptions, type MediaViewportMeasurement } from '@sectile/dom/media-gesture';
|
|
5
|
-
export type { MediaGestureInput, MediaGestureEnd, MediaGestureErrorCode, MediaWheelInput, MediaViewportMeasurement } from '@sectile/dom/media-gesture';
|
|
5
|
+
export type { MediaGestureInput, MediaGestureEnd, MediaGestureErrorCode, MediaWheelInput, MediaViewportMeasurement, MediaPointerAdmission } from '@sectile/dom/media-gesture';
|
|
6
6
|
export interface UseMediaGestureOptions extends Omit<MediaGestureOptions, 'element'> {
|
|
7
7
|
readonly element: Readonly<Ref<HTMLElement | null>>;
|
|
8
8
|
readonly active?: Readonly<Ref<boolean>>;
|
package/dist/media-gesture.js
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import{getCurrentInstance,isRef,shallowReadonly,shallowRef}from"vue";import{failResult}from"@sectile/core/result";import{connectMediaGesture,readMediaViewport}from"@sectile/dom/media-gesture";import{createComponentHandle}from"./component-handle.js";import{useHostActive}from"./host-provider.js";import{useConnectionLifetime}from"./internal/connection-lifetime.js";function projectMethods(current){function measure(points=[]){const target=current()?.element;return target?readMediaViewport(target,points):failResult("resource-rejection","dom.media-gesture-unavailable","No active media gesture surface")}return Object.freeze({cancel:()=>current()?.connection.cancel(),measure})}function useMediaGesture(options){if(!getCurrentInstance())throw Object.assign(new TypeError("useMediaGesture requires component setup"),{code:"vue.media-gesture-scope-required"});if(!isRef(options.element)||options.active!==void 0&&(!isRef(options.active)||typeof options.active.value!=="boolean")||typeof options.onStart!=="function"||typeof options.onMove!=="function"||options.onEnd!==void 0&&typeof options.onEnd!=="function"||options.onWheel!==void 0&&typeof options.onWheel!=="function"){throw Object.assign(new TypeError("useMediaGesture requires reactive participation and native input hooks"),{code:"vue.media-gesture-invalid"})}let element=options.element,active=options.active;let start=options.onStart,move=options.onMove;let end=options.onEnd,wheel=options.onWheel,host=useHostActive();let alive=true,native,epoch,retiring;const error=shallowRef(),handle=createComponentHandle(projectMethods);const release=()=>{const held=native,token=epoch;native=void 0;epoch=void 0;handle.release();retiring=token;try{held?.disconnect()}finally{retiring=void 0;error.value=void 0}};const failed=failure=>{try{release()}catch{}throw failure};const read=()=>{const enabled=alive&&host?.value!==false&&active?.value!==false;return[enabled?element?.value??null:null,enabled]};const attach=([target,enabled])=>{if(!target||!enabled)return;const token={};epoch=token;const result=connectMediaGesture({element:target,onStart(input){if(!alive||epoch!==token)return false;try{const accepted=start?.(input)??false;return accepted&&alive&&epoch===token}catch(failure){return failed(failure)}},onMove(input){if(alive&&epoch===token){try{move?.(input)}catch(failure){failed(failure)}}},onEnd(reason){if(alive&&(epoch===token||reason==="disconnect"&&retiring===token)){try{end?.(reason)}catch(failure){failed(failure)}}},...wheel===void 0?{}:{onWheel(input){if(!alive||epoch!==token)return false;try{const accepted=wheel?.(input)??false;return accepted&&alive&&epoch===token}catch(failure){return failed(failure)}}}});if(result.ok){if(alive&&epoch===token){native=result.value;handle.set({connection:native,element:target})}else result.value.disconnect()}else if(epoch===token){epoch=void 0;error.value=result.error.code}};useConnectionLifetime({read,equal:(next,previous)=>next[0]===previous[0]&&next[1]===previous[1],connect:attach,disconnect:release,dispose(){alive=false;element=void 0;active=void 0;host=void 0;start=void 0;move=void 0;end=void 0;wheel=void 0}});return Object.freeze({...handle.view,error:shallowReadonly(error)})}export{useMediaGesture};
|
|
1
|
+
import{getCurrentInstance,isRef,shallowReadonly,shallowRef}from"vue";import{failResult}from"@sectile/core/result";import{connectMediaGesture,readMediaViewport}from"@sectile/dom/media-gesture";import{createComponentHandle}from"./component-handle.js";import{useHostActive}from"./host-provider.js";import{useConnectionLifetime}from"./internal/connection-lifetime.js";function projectMethods(current){function measure(points=[]){const target=current()?.element;return target?readMediaViewport(target,points):failResult("resource-rejection","dom.media-gesture-unavailable","No active media gesture surface")}return Object.freeze({cancel:()=>current()?.connection.cancel(),measure})}function useMediaGesture(options){if(!getCurrentInstance())throw Object.assign(new TypeError("useMediaGesture requires component setup"),{code:"vue.media-gesture-scope-required"});if(!isRef(options.element)||options.active!==void 0&&(!isRef(options.active)||typeof options.active.value!=="boolean")||typeof options.onStart!=="function"||typeof options.onMove!=="function"||options.onEnd!==void 0&&typeof options.onEnd!=="function"||options.onWheel!==void 0&&typeof options.onWheel!=="function"||options.admitPointer!==void 0&&typeof options.admitPointer!=="function"||options.dragThreshold!==void 0&&(!Number.isFinite(options.dragThreshold)||options.dragThreshold<0)){throw Object.assign(new TypeError("useMediaGesture requires reactive participation and native input hooks"),{code:"vue.media-gesture-invalid"})}let element=options.element,active=options.active;let start=options.onStart,move=options.onMove;let end=options.onEnd,wheel=options.onWheel,host=useHostActive();let admit=options.admitPointer;const threshold=options.dragThreshold;let alive=true,native,epoch,retiring;const error=shallowRef(),handle=createComponentHandle(projectMethods);const release=()=>{const held=native,token=epoch;native=void 0;epoch=void 0;handle.release();retiring=token;try{held?.disconnect()}finally{retiring=void 0;error.value=void 0}};const failed=failure=>{try{release()}catch{}throw failure};const read=()=>{const enabled=alive&&host?.value!==false&&active?.value!==false;return[enabled?element?.value??null:null,enabled]};const attach=([target,enabled])=>{if(!target||!enabled)return;const token={};epoch=token;const result=connectMediaGesture({element:target,...threshold===void 0?{}:{dragThreshold:threshold},...admit===void 0?{}:{admitPointer(input){if(!alive||epoch!==token)return false;try{const accepted=admit?.(input)??false;return accepted&&alive&&epoch===token}catch(failure){return failed(failure)}}},onStart(input){if(!alive||epoch!==token)return false;try{const accepted=start?.(input)??false;return accepted&&alive&&epoch===token}catch(failure){return failed(failure)}},onMove(input){if(alive&&epoch===token){try{move?.(input)}catch(failure){failed(failure)}}},onEnd(reason){if(alive&&(epoch===token||reason==="disconnect"&&retiring===token)){try{end?.(reason)}catch(failure){failed(failure)}}},...wheel===void 0?{}:{onWheel(input){if(!alive||epoch!==token)return false;try{const accepted=wheel?.(input)??false;return accepted&&alive&&epoch===token}catch(failure){return failed(failure)}}}});if(result.ok){if(alive&&epoch===token){native=result.value;handle.set({connection:native,element:target})}else result.value.disconnect()}else if(epoch===token){epoch=void 0;error.value=result.error.code}};useConnectionLifetime({read,equal:(next,previous)=>next[0]===previous[0]&&next[1]===previous[1],connect:attach,disconnect:release,dispose(){alive=false;element=void 0;active=void 0;host=void 0;start=void 0;move=void 0;end=void 0;wheel=void 0;admit=void 0}});return Object.freeze({...handle.view,error:shallowReadonly(error)})}export{useMediaGesture};
|
|
2
2
|
//# sourceMappingURL=media-gesture.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/media-gesture.ts"],"mappings":"AAAA,OAAS,mBAAoB,MAAO,gBAAiB,eAA6C,MAClG,OAAS,eAA+B,uBAExC,OAAS,oBAAqB,sBAA2I,6BACzK,OAAS,0BAA6B,wBACtC,OAAS,kBAAqB,qBAC9B,OAAS,0BAA6B,oCAkBtC,SAAS,eAAe,QAA6B,CAGnD,SAAS,QAAQ,OAA2B,CAAA,EAAE,CAC5C,MAAM,OAAS,QAAO,GAAI,QAC1B,OAAO,OAAS,kBAAkB,OAAQ,MAAM,EAAI,WAAW,qBAAsB,gCAAiC,iCAAiC,CACzJ,CACA,OAAO,OAAO,OAAO,CAAE,OAAQ,IAAM,QAAO,GAAI,WAAW,OAAM,EAAI,OAAO,CAAE,CAChF,CAGM,SAAU,gBAAgB,QAA+B,CAC7D,GAAI,CAAC,mBAAkB,EAAI,MAAM,OAAO,OAAO,IAAI,UAAU,0CAA0C,EAAG,CAAE,KAAM,kCAAkC,CAAE,EACtJ,GAAI,CAAC,MAAM,QAAQ,OAAO,GAAK,QAAQ,SAAW,SAAc,CAAC,MAAM,QAAQ,MAAM,GAAK,OAAO,QAAQ,OAAO,QAAU,YACrH,OAAO,QAAQ,UAAY,YAAc,OAAO,QAAQ,SAAW,YACnE,QAAQ,QAAU,QAAa,OAAO,QAAQ,QAAU,YAAc,QAAQ,UAAY,QAAa,OAAO,QAAQ,UAAY,
|
|
1
|
+
{"version":3,"sources":["../src/media-gesture.ts"],"mappings":"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","names":[],"file":"media-gesture.js"}
|
package/dist/number-field.d.ts
CHANGED
|
@@ -9,4 +9,21 @@ export interface NumberFieldProps {
|
|
|
9
9
|
readonly label?: string;
|
|
10
10
|
readonly native?: boolean;
|
|
11
11
|
}
|
|
12
|
-
export
|
|
12
|
+
export type NumberFieldEditResult = {
|
|
13
|
+
readonly status: 'accepted';
|
|
14
|
+
readonly value: string | null;
|
|
15
|
+
} | {
|
|
16
|
+
readonly status: 'rejected';
|
|
17
|
+
readonly reason: 'unavailable' | 'disabled' | 'readonly' | 'composing' | 'busy' | 'invalid' | 'refused';
|
|
18
|
+
};
|
|
19
|
+
export interface NumberFieldExpose {
|
|
20
|
+
getText(): string | null;
|
|
21
|
+
commitValue(value: string | null): Promise<NumberFieldEditResult>;
|
|
22
|
+
clear(): Promise<NumberFieldEditResult>;
|
|
23
|
+
stepBy(delta: string): Promise<NumberFieldEditResult>;
|
|
24
|
+
}
|
|
25
|
+
declare const NumberFieldImplementation: import("vue").DefineComponent<import("./input/native-field.js").NativeFieldPublicProps<string, import("@sectile/core").NumberFieldPolicies>>;
|
|
26
|
+
export declare const NumberField: typeof NumberFieldImplementation & {
|
|
27
|
+
new (): InstanceType<typeof NumberFieldImplementation> & NumberFieldExpose;
|
|
28
|
+
};
|
|
29
|
+
export {};
|
package/dist/number-field.js
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import{}from"vue";import{createNumberField}from"@sectile/dom/number-field";import{createNativeFieldComponent}from"./input/native-field.js";const
|
|
1
|
+
import{nextTick,onBeforeUnmount}from"vue";import{createNumberField}from"@sectile/dom/number-field";import{createNativeFieldComponent}from"./input/native-field.js";function numberCommands(port){const reject=reason=>({status:"rejected",reason});const command=async apply=>{const host=port.host,target=host?.connection;if(!host?.mounted||!target)return reject("unavailable");if(host.disabled)return reject("disabled");if(host.readOnly)return reject("readonly");if(host.composing)return reject("composing");if(port.editing)return reject("busy");port.editing=true;try{if(!apply(target))return reject("invalid");const proposal=target.getText();await nextTick();if(port.host!==host||!host.mounted||host.connection!==target)return reject("unavailable");target.handleEvent("cancel");return target.getText()===proposal?{status:"accepted",value:target.getValue()}:reject("refused")}finally{port.editing=false}};return{getText:()=>port.host?.connection?.getText()??null,commitValue:value=>command(target=>target.handleEvent({type:"set-value",value})),clear:()=>command(target=>target.handleEvent({type:"set-value",value:null})),stepBy:delta=>command(target=>target.handleEvent({type:"step",delta}))}}const NumberFieldImplementation=createNativeFieldComponent({name:"SectileNumberField",scope:"number-field",inputMode:"decimal",formatValue:value=>value,valueType:String,exposeValueCommands(host,expose){const port={host,editing:false};expose(numberCommands(port));onBeforeUnmount(()=>{port.host=void 0})},commitValue:(connection,value)=>connection.handleEvent({type:"set-value",value}),create:options=>{const{onValueChange,policies,...rest}=options;return createNumberField({...rest,...policies===void 0?{}:{policies},onValueChange:({value})=>onValueChange(value)})}});const NumberField=NumberFieldImplementation;export{NumberField};
|
|
2
2
|
//# sourceMappingURL=number-field.js.map
|
package/dist/number-field.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/number-field.ts"],"mappings":"AAAA,
|
|
1
|
+
{"version":3,"sources":["../src/number-field.ts"],"mappings":"AAAA,OAAS,SAAU,oBAAsC,MACzD,OACE,sBAGK,4BACP,OAAS,+BAA+F,0BAwBxG,SAAS,eAAe,KAAiB,CACvC,MAAM,OAAU,SAAqG,CAAE,OAAQ,WAAY,MAAM,GACjJ,MAAM,QAAU,MAAO,OAAqF,CAC1G,MAAM,KAAO,KAAK,KAAM,OAAS,MAAM,WACvC,GAAI,CAAC,MAAM,SAAW,CAAC,OAAQ,OAAO,OAAO,aAAa,EAC1D,GAAI,KAAK,SAAU,OAAO,OAAO,UAAU,EAC3C,GAAI,KAAK,SAAU,OAAO,OAAO,UAAU,EAC3C,GAAI,KAAK,UAAW,OAAO,OAAO,WAAW,EAC7C,GAAI,KAAK,QAAS,OAAO,OAAO,MAAM,EACtC,KAAK,QAAU,KACf,GAAI,CACF,GAAI,CAAC,MAAM,MAAM,EAAG,OAAO,OAAO,SAAS,EAC3C,MAAM,SAAW,OAAO,QAAO,EAAI,MAAM,SAAQ,EACjD,GAAI,KAAK,OAAS,MAAQ,CAAC,KAAK,SAAW,KAAK,aAAe,OAAQ,OAAO,OAAO,aAAa,EAClG,OAAO,YAAY,QAAQ,EAC3B,OAAO,OAAO,QAAO,IAAO,SAAW,CAAE,OAAQ,WAAY,MAAO,OAAO,SAAQ,CAAE,EAAK,OAAO,SAAS,CAC5G,SAAY,KAAK,QAAU,KAAO,CACpC,EACA,MAAO,CAAE,QAAS,IAAM,KAAK,MAAM,YAAY,QAAO,GAAM,KAC1D,YAAa,OAAS,QAAQ,QAAU,OAAO,YAAY,CAAE,KAAM,YAAa,KAAK,CAAE,CAAC,EACxF,MAAO,IAAM,QAAQ,QAAU,OAAO,YAAY,CAAE,KAAM,YAAa,MAAO,IAAI,CAAE,CAAC,EACrF,OAAQ,OAAS,QAAQ,QAAU,OAAO,YAAY,CAAE,KAAM,OAAQ,KAAK,CAAE,CAAC,CAAC,CACnF,CACA,MAAM,0BAA4B,2BAAwD,CACxF,KAAM,qBACN,MAAO,eACP,UAAW,UACX,YAAc,OAAU,MACxB,UAAW,OACX,oBAAoB,KAAM,OAAM,CAC9B,MAAM,KAAoB,CAAE,KAAM,QAAS,KAAK,EAAI,OAAO,eAAe,IAAI,CAAC,EAAG,gBAAgB,IAAK,CAAG,KAAK,KAAO,MAAW,CAAC,CACpI,EACA,YAAa,CAAC,WAAY,QAAW,WAAqC,YAAY,CAAE,KAAM,YAAa,KAAK,CAAE,EAClH,OAAS,SAA0F,CACjG,KAAM,CAAE,cAAe,SAAU,GAAG,IAAI,EAAK,QAC7C,OAAO,kBAAkB,CACvB,GAAG,KACH,GAAI,WAAa,OACb,CAAA,EACA,CAAE,QAAQ,EACd,cAAe,CAAC,CAAE,KAAK,IAAO,cAAc,KAAK,EAClD,CACH,EACD,EACM,MAAM,YAAc","names":[],"file":"number-field.js"}
|
package/dist/overlay/popup.d.ts
CHANGED
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
import { type Component } from 'vue';
|
|
2
|
+
import type { TooltipGroup } from '@sectile/dom/tooltip';
|
|
2
3
|
import type { PositionOptions } from '@sectile/dom/position';
|
|
3
4
|
import type { InteractOutsideEvent, InteractOutsideHandler } from '@sectile/dom';
|
|
4
5
|
import type { DOMLayerPresentationSnapshot, DOMLayerPresentationListener, DOMLayerPresentationSubscription, DOMLayerReparentErrorCode } from '@sectile/dom/dialog';
|
|
@@ -36,6 +37,9 @@ export interface PopupConnection {
|
|
|
36
37
|
disconnect(): void;
|
|
37
38
|
}
|
|
38
39
|
export interface PopupFactoryOptions extends PositionOptions {
|
|
40
|
+
readonly openDelay?: number;
|
|
41
|
+
readonly closeDelay?: number;
|
|
42
|
+
readonly group?: TooltipGroup;
|
|
39
43
|
readonly root: HTMLElement;
|
|
40
44
|
readonly trigger?: HTMLElement;
|
|
41
45
|
readonly anchor?: HTMLElement;
|
package/dist/overlay/popup.js
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import{Fragment,computed,defineComponent,h,inject,mergeProps,nextTick,onBeforeUnmount,provide,ref,shallowRef,watch}from"vue";import{failResult,SectileResultError,unwrap}from"@sectile/core/result";import{Primitive,renderPrimitive}from"../primitive.js";import{HostPortal,provideHostActive,provideHostLayerParent,useHostActive,useHostDirection,useHostId,useHostLayer,useHostLayerParent,useHostPopup}from"../host-provider.js";import{usePresence}from"../presence/presence.js";import{useControlledStateInvariant}from"../internal/controlled-state.js";import{providePortalMove}from"../internal/portal-move.js";function createPopupComponents(config){const contextKey=Symbol(`Sectile${config.scope}Root`);const useRoot=part=>{const context=inject(contextKey);if(context===void 0)throw new TypeError(`${part} must be used inside ${config.scope} Root.`);return context};const primitiveProps={as:{type:[String,Object,Function],default:"div"},asChild:{type:Boolean,default:false}};const buttonProps={as:{type:[String,Object,Function],default:"button"},asChild:{type:Boolean,default:false}};const Root=defineComponent({name:`Sectile${pascal(config.scope)}Root`,inheritAttrs:false,props:{open:{type:Boolean,default:void 0},defaultOpen:{type:Boolean,default:false},disabled:{type:Boolean,default:false},modal:{type:Boolean,default:config.modal},label:{type:String,default:void 0},describedBy:{type:String,default:void 0},initialFocus:{type:Object,default:void 0},restoreFocusTarget:{type:Object,default:void 0},anchor:{type:Object,default:void 0},autoFocus:{type:Boolean,default:true},restoreFocus:{type:Boolean,default:true},trapFocus:{type:Boolean,default:config.modal},closeOnEscape:{type:Boolean,default:config.closeOnEscape??true},closeOnInteractOutside:{type:Boolean,default:config.closeOnInteractOutside??false},interactOutsideExclusions:{type:Array,default:void 0},side:{type:String,default:config.defaultSide??"bottom"},position:{type:Boolean,default:true},swipeToDismiss:{type:Boolean,default:true},swipeThreshold:{type:Number,default:80},swipeVelocityThreshold:{type:Number,default:.5},align:{type:String,default:"center"},sideOffset:{type:Number,default:8},collisionPadding:{type:[Number,Object],default:8},collisionBoundary:{type:[String,Object],default:void 0},avoidCollisions:{type:Boolean,default:true},arrowPadding:{type:Number,default:8},hideWhenDetached:{type:Boolean,default:false},strategy:{type:String,default:"absolute"},tracking:{type:String,default:"events"},unmountOnExit:{type:Boolean,default:false},presentation:{type:String,default:"overlay"}},emits:{"update:open":_open=>true,closeRequest:_reason=>true,afterClose:()=>true,interactOutside:_event=>true},slots:Object,setup(props,{emit,slots,expose}){const controlled=useControlledStateInvariant(`${config.scope}Root`,"open",()=>props.open);const localOpen=ref(controlled?props.open:props.defaultOpen);const requestedPlacement=()=>config.inlinePresentation?props.presentation??"overlay":"overlay";const validatePlacement=()=>{const requested=requestedPlacement();if(requested!=="overlay"&&requested!=="inline"||requested==="inline"&&(props.open===true||props.defaultOpen===true||props.unmountOnExit)){throw new TypeError("Inline Drawer presentation requires closed, retained content.")}};validatePlacement();const placement=shallowRef(requestedPlacement());const inline=computed(()=>placement.value==="inline");const trigger=shallowRef();const anchor=shallowRef();const arrow=shallowRef();const overlay=shallowRef();const handle=shallowRef();const content=shallowRef();const connection=shallowRef();providePortalMove(()=>connection.value);const hostAvailability=useHostActive();const parentLayer=useHostLayerParent();const parentAllowsPresentation=()=>parentLayer?.available.value??true;const availability=computed(()=>hostAvailability.value&&(!localOpen.value||parentAllowsPresentation()));const active=shallowRef(availability.value);provideHostActive(active);expose({requestClose:()=>{connection.value?.handleEvent("close","programmatic")}});const invocation=config.scope==="dialog"||config.scope==="drawer"||config.scope==="alert-dialog"?useHostPopup():void 0;let reservation=invocation?.reservation;if(reservation!==void 0&&(!localOpen.value||inline.value))throw new TypeError("A reserved popup binding requires an initially open overlay.");invocation?.attach(()=>{connection.value?.handleEvent("close","programmatic")});const presentation=shallowRef();const inputMethod=shallowRef("programmatic");const layerHost=useHostLayer();const contentPresence=shallowRef();const overlayPresence=shallowRef();let stopPresentation;const id=useHostId();const contentID=`sectile-${config.scope}-${id}-content`;const titleID=`sectile-${config.scope}-${id}-title`;const descriptionID=`sectile-${config.scope}-${id}-description`;const describedBy=computed(()=>props.describedBy===void 0?descriptionID:props.describedBy??void 0);const open=computed(()=>localOpen.value);const disabled=computed(()=>props.disabled);const modal=computed(()=>props.modal);const unmountOnExit=computed(()=>props.unmountOnExit);const label=computed(()=>props.label);const side=computed(()=>props.side);const position=computed(()=>props.position);const strategy=computed(()=>props.strategy);const update=()=>{const current=connection.value;if(current&&!current.getActive()){active.value=false;invocation?.onActiveChange?.(false);return}if(current===void 0||current.getLayerOrder()===null||presentation.value?.phase==="active")return;stopPresentation?.();const subscribed=current.subscribeLayerPresentation(snapshot=>{presentation.value=snapshot});if(!subscribed.ok)throw new SectileResultError(subscribed.error);stopPresentation=subscribed.value};const disconnect=()=>{stopPresentation?.();stopPresentation=void 0;try{connection.value?.disconnect()}finally{connection.value=void 0;presentation.value=void 0}};const registerPresence=(part,present)=>{const target=part==="content"?contentPresence:overlayPresence;target.value=present;return()=>{if(target.value===present)target.value=void 0}};let inactiveClosePending=false;const afterClose=()=>{inactiveClosePending=false;try{invocation?.onAfterClose()}finally{emit("afterClose")}};watch([active,presentation,()=>contentPresence.value?.value,()=>overlayPresence.value?.value],([available,snapshot,panel,backdrop])=>{if(!available||localOpen.value||panel===true||backdrop===true)return;if(inactiveClosePending&&snapshot?.phase!=="exiting"){afterClose();return}if(snapshot?.phase!=="exiting")return;const result=connection.value?.completeLayerExit(snapshot.generation);if(result!==void 0&&!result.ok)throw new SectileResultError(result.error);if(result?.ok&&presentation.value?.phase==="closed"&&presentation.value.generation===snapshot.generation){afterClose()}},{flush:"post"});let restoreAutoFocusOnClose=false;let reconnectPending=false;let inactiveRefsChanged=false;const restoreFocusTarget=()=>props.restoreFocusTarget===void 0?invocation?.restoreFocusTarget:props.restoreFocusTarget??void 0;const connect=(preserveOpenLifecycle=false)=>{if(!availability.value)return;if(inline.value){disconnect();return}if(presentation.value?.phase==="exiting"&&!localOpen.value){reconnectPending=true;return}reconnectPending=false;if(content.value===void 0)return;const host=layerHost.value;if(host===null)unwrap(failResult("construction","dom.layer-host-unavailable","Managed popup layer host is unavailable"));const preserveFocusLifecycle=preserveOpenLifecycle&&connection.value!==void 0&&localOpen.value;const completed=presentation.value?.phase==="closed"?presentation.value:void 0;disconnect();const positionAnchor=config.positioned===true?props.anchor??anchor.value:anchor.value;const focusTarget=restoreFocusTarget();connection.value=config.create({root:content.value,...trigger.value===void 0?{}:{trigger:trigger.value},...positionAnchor===void 0?{}:{anchor:positionAnchor},...arrow.value===void 0?{}:{arrow:arrow.value},...overlay.value===void 0?{}:{overlay:overlay.value},...handle.value===void 0?{}:{handle:handle.value},...controlled?{open:props.open}:{defaultOpen:localOpen.value},disabled:props.disabled,modal:props.modal,...props.label===void 0?{labelledBy:titleID}:{label:props.label},...describedBy.value===void 0?{}:{describedBy:describedBy.value},...props.initialFocus===void 0?{}:{initialFocus:props.initialFocus},autoFocus:preserveFocusLifecycle?false:props.autoFocus,restoreFocus:props.restoreFocus,...focusTarget===void 0?{}:{restoreFocusTarget:focusTarget},trapFocus:props.trapFocus,closeOnEscape:props.closeOnEscape,closeOnInteractOutside:props.closeOnInteractOutside,...props.interactOutsideExclusions===void 0?{}:{interactOutsideExclusions:props.interactOutsideExclusions},side:props.side,...config.positioned===true?{position:props.position}:{},swipeToDismiss:props.swipeToDismiss,swipeThreshold:props.swipeThreshold,swipeVelocityThreshold:props.swipeVelocityThreshold,align:props.align,sideOffset:props.sideOffset,collisionPadding:props.collisionPadding,...props.collisionBoundary===void 0?{}:{collisionBoundary:props.collisionBoundary},avoidCollisions:props.avoidCollisions,arrowPadding:props.arrowPadding,hideWhenDetached:props.hideWhenDetached,strategy:props.strategy,tracking:props.tracking,manageVisibility:false,retainExit:true,...host==null?{}:{layerHost:host},...reservation===void 0?{}:{reservation},onOpenChange:(next,method,reason)=>{inputMethod.value=method;if(!controlled)localOpen.value=next;try{if(!next&&reason!==void 0){try{invocation?.onCloseRequest(reason)}finally{emit("closeRequest",reason)}}}finally{try{if(!controlled)invocation?.onOpenChange(next)}finally{emit("update:open",next)}}},onInteractOutside:event=>{emit("interactOutside",event)},onUpdate:update});reservation=void 0;restoreAutoFocusOnClose=preserveFocusLifecycle&&props.autoFocus;update();if(completed&&!localOpen.value&&presentation.value===void 0)presentation.value=completed;invocation?.onActiveChange?.(active.value&&connection.value.getActive());invocation?.onOpenChange(localOpen.value)};const connectScheduled=shallowRef(false);let destroyed=false;watch(connectScheduled,async scheduled=>{if(!scheduled)return;await nextTick();connectScheduled.value=false;if(!destroyed&&availability.value)connect()},{flush:"post"});const scheduleConnect=()=>{if(!availability.value||inline.value||connectScheduled.value||destroyed||props.unmountOnExit&&!localOpen.value)return;connectScheduled.value=true};const elements={trigger,anchor,arrow,overlay,handle,content};const syncPosition=()=>{const current=connection.value;if(config.positioned!==true||!current?.syncPosition)return false;current.syncPosition({anchor:props.anchor??anchor.value??null,side:props.side,position:props.position,align:props.align,sideOffset:props.sideOffset,collisionPadding:props.collisionPadding,...props.collisionBoundary===void 0?{}:{collisionBoundary:props.collisionBoundary},avoidCollisions:props.avoidCollisions,arrowPadding:props.arrowPadding,hideWhenDetached:props.hideWhenDetached,strategy:props.strategy,tracking:props.tracking});return true};const registerElement=(part,element)=>{const target=elements[part];if(target.value===element)return;target.value=element;if(part==="anchor"&&props.anchor!=null)return;if(!availability.value){inactiveRefsChanged=true;return}if(part==="anchor"&&syncPosition())return;if(presentation.value?.phase==="exiting"&&!localOpen.value){reconnectPending=true;return}if(content.value===void 0)disconnect();else scheduleConnect()};const suspend=()=>{if(destroyed)return;const current=connection.value;const exiting=presentation.value?.phase==="exiting";try{current?.suspend()}finally{if(!current||!current.getActive()){inactiveClosePending||=exiting;active.value=false;invocation?.onActiveChange?.(false)}}};watch(hostAvailability,next=>{if(!next)suspend()},{flush:"sync"});watch(availability,next=>{if(destroyed)return;if(!next){suspend();return}if(inactiveRefsChanged){inactiveRefsChanged=false;connect(true)}else if(connection.value){connection.value.resume();update()}else scheduleConnect();active.value=true;invocation?.onActiveChange?.(connection.value?.getActive()===true)},{flush:"post"});watch(presentation,snapshot=>{if(!reconnectPending)return;if(snapshot?.phase==="active"&&localOpen.value){connect(true);return}if(snapshot?.phase!=="closed")return;if(content.value===void 0){reconnectPending=false;disconnect();presentation.value=snapshot}else scheduleConnect()},{flush:"post"});watch(layerHost,host=>{if(host===null)return;if(connection.value===void 0){scheduleConnect();return}unwrap(connection.value.syncLayerHost(host))},{flush:"post"});if(parentLayer)watch([connection,()=>presentation.value?.generation,()=>presentation.value?.phase,parentLayer.element,()=>parentLayer.presentation.value?.generation,()=>parentLayer.presentation.value?.phase],()=>{const parent=parentLayer.element.value;if(parent&&presentation.value?.phase==="active"&&parentLayer.presentation.value?.phase==="active"){unwrap(connection.value.syncLayerParent(parent))}},{flush:"post"});const activateTrigger=event=>{if(inline.value||event?.defaultPrevented===true||connection.value!==void 0||props.disabled||localOpen.value)return;inputMethod.value=popupInputMethod(event);if(!controlled)localOpen.value=true;emit("update:open",true)};const deactivateTrigger=event=>{if(event?.defaultPrevented===true||connection.value!==void 0||!localOpen.value)return;inputMethod.value=popupInputMethod(event);if(!controlled)localOpen.value=false;emit("update:open",false)};watch([()=>props.open,()=>props.modal,()=>props.label,()=>props.initialFocus,()=>props.autoFocus,()=>props.describedBy,()=>props.restoreFocus,()=>props.trapFocus,()=>props.interactOutsideExclusions,()=>props.disabled,()=>props.restoreFocusTarget],(_values,previousValues)=>{validatePlacement();if(inline.value&&requestedPlacement()==="overlay"){placement.value="overlay";scheduleConnect()}const current=connection.value;if(current)unwrap(current.syncDisabled(props.disabled));if(current&&config.role!=="tooltip")unwrap(current.syncBehavior({modal:props.modal,autoFocus:props.autoFocus,restoreFocus:props.restoreFocus,trapFocus:props.trapFocus,label:props.label,labelledBy:props.label===void 0?titleID:void 0,describedBy:describedBy.value,initialFocus:props.initialFocus,interactOutsideExclusions:props.interactOutsideExclusions,restoreFocusTarget:restoreFocusTarget()??null}));const next=props.open;if(!controlled||next===void 0||Object.is(next,previousValues[0]))return;if(next&&!parentAllowsPresentation())suspend();if(current===void 0){localOpen.value=next;invocation?.onOpenChange(next);return}const result=current.syncControlledValue(next);if(!result.ok)throw new TypeError(`${config.scope} controlled open state could not be synchronized.`);localOpen.value=next;invocation?.onOpenChange(next)});watch([()=>props.swipeToDismiss,()=>props.swipeThreshold,()=>props.swipeVelocityThreshold,()=>config.directional===true?props.side:void 0],()=>{const current=connection.value;if(current?.syncGesture)unwrap(current.syncGesture({side:props.side,swipeToDismiss:props.swipeToDismiss,swipeThreshold:props.swipeThreshold,swipeVelocityThreshold:props.swipeVelocityThreshold}))});watch([()=>props.anchor,()=>props.side,()=>props.position,()=>props.align,()=>props.sideOffset,()=>props.collisionPadding,()=>props.collisionBoundary,()=>props.avoidCollisions,()=>props.arrowPadding,()=>props.hideWhenDetached,()=>props.strategy,()=>props.tracking],syncPosition,{flush:"post"});watch([()=>props.closeOnEscape,()=>props.closeOnInteractOutside],()=>{const current=connection.value;if(current)unwrap(current.syncDismissal({closeOnEscape:props.closeOnEscape,closeOnInteractOutside:props.closeOnInteractOutside}))});watch(localOpen,next=>{if(next)inactiveClosePending=false;if(!next&&!active.value)inactiveClosePending=true;if(!next&&restoreAutoFocusOnClose)scheduleConnect()});if(config.inlinePresentation)watch([requestedPlacement,()=>props.unmountOnExit,()=>props.open,()=>props.defaultOpen,localOpen,()=>presentation.value?.phase],()=>{validatePlacement();const requested=requestedPlacement();if(requested===placement.value)return;if(requested==="inline"&&(localOpen.value||presentation.value?.phase==="active"||presentation.value?.phase==="exiting"))return;if(requested==="inline")disconnect();placement.value=requested;if(requested==="overlay"){if(controlled&&props.open!==void 0)localOpen.value=props.open;scheduleConnect()}});onBeforeUnmount(()=>{destroyed=true;try{disconnect()}finally{invocation?.detach()}});provide(contextKey,{active,open,inline,presentation,inputMethod,disabled,modal,unmountOnExit,label,describedBy,contentID,titleID,descriptionID,side,position,strategy,registerPresence,registerElement,activateTrigger,deactivateTrigger,close:event=>{connection.value?.handleEvent("close",popupInputMethod(event),"close-button")},refresh:()=>{connection.value?.refresh()}});return()=>h(Fragment,null,slots["default"]?.({open:open.value,disabled:props.disabled,inputMethod:inputMethod.value,presentation:presentation.value,...config.inlinePresentation?{placement:placement.value}:{}})??[])}});const Trigger=defineComponent({name:`Sectile${pascal(config.scope)}Trigger`,inheritAttrs:false,props:buttonProps,setup(props,{attrs,slots}){const root=useRoot("Trigger");return()=>{const elementRef=element=>{root.registerElement("trigger",element instanceof HTMLElement?element:void 0)};const attributes=mergeProps(attrs,{...config.triggerMode==="click"?{onClick:root.activateTrigger}:{onFocus:root.activateTrigger,onBlur:root.deactivateTrigger,onMouseenter:root.activateTrigger,onMouseleave:root.deactivateTrigger},...config.role==="tooltip"&&props.asChild?{}:{type:props.as==="button"?"button":void 0},...config.role==="tooltip"&&props.asChild&&!root.disabled.value?{}:{disabled:root.disabled.value},...config.role==="tooltip"?{}:{"aria-haspopup":root.inline.value?void 0:"dialog","aria-expanded":config.triggerMode==="click"?String(root.open.value):void 0,"aria-controls":root.contentID},"data-scope":config.scope,"data-part":"trigger","data-state":root.open.value?"open":"closed"});if(!config.describeTrigger)return h(Primitive,{...attributes,as:props.as,asChild:props.asChild,elementRef},slots);return h(Primitive,{asChild:true,elementRef},{default:()=>renderPrimitive(props,attributes,slots,adopted=>({...adopted,"aria-describedby":config.describeTrigger(typeof adopted["aria-describedby"]==="string"?adopted["aria-describedby"]:void 0,root.contentID,root.open.value||!root.unmountOnExit.value)}))})}}});const Content=defineComponent({name:`Sectile${pascal(config.scope)}Content`,inheritAttrs:false,props:primitiveProps,setup(props,{attrs,slots}){const root=useRoot("Content");const direction=useHostDirection();const element=shallowRef();const retainedReopen=shallowRef(0);provideHostLayerParent({element,presentation:root.presentation,open:root.open,inline:root.inline,active:root.active});const visible=computed(()=>root.open.value||root.inline.value);const present=usePresence(visible,element,()=>{retainedReopen.value+=1},root.active);onBeforeUnmount(root.registerPresence("content",present));const refreshAfterRender=async()=>{await nextTick();root.refresh()};watch(present,refreshAfterRender,{flush:"post"});watch(retainedReopen,refreshAfterRender,{flush:"post"});return()=>{if(root.unmountOnExit.value&&!present.value)return null;const exiting=!root.inline.value&&!root.open.value&&present.value;return h(Primitive,mergeProps(attrs,{as:props.as,asChild:props.asChild,elementRef:candidate=>{const node=candidate instanceof HTMLElement?candidate:void 0;element.value=node;root.registerElement("content",node)},id:root.contentID,role:root.inline.value?void 0:config.role,hidden:!root.active.value||!present.value,dir:direction.value,...exiting||!root.active.value?{inert:true,"aria-hidden":"true"}:{},style:config.positioned===true&&root.position.value?{position:root.strategy.value,visibility:element.value===void 0?"hidden":void 0}:void 0,"aria-modal":root.inline.value||config.role==="tooltip"?void 0:String(root.modal.value),...config.role==="tooltip"?{}:{"aria-label":root.inline.value?void 0:root.label.value,"aria-labelledby":root.inline.value||root.label.value!==void 0?void 0:root.titleID,"aria-describedby":root.inline.value?void 0:root.describedBy.value},"data-presentation":config.inlinePresentation?root.inline.value?"inline":"overlay":void 0,"data-scope":config.scope,"data-part":"content","data-state":root.open.value?"open":"closed","data-input-method":root.inputMethod.value,"data-side":config.directional===true?root.side.value:void 0,"data-swipe-direction":config.directional===true?swipeDirection(root.side.value):void 0}),slots)}}});const Anchor=defineComponent({name:`Sectile${pascal(config.scope)}Anchor`,inheritAttrs:false,props:primitiveProps,setup(props,{attrs,slots}){const root=useRoot("Anchor");return()=>h(Primitive,mergeProps(attrs,{as:props.as,asChild:props.asChild,elementRef:element=>{root.registerElement("anchor",element instanceof HTMLElement?element:void 0)},"data-scope":config.scope,"data-part":"anchor"}),slots)}});const Arrow=defineComponent({name:`Sectile${pascal(config.scope)}Arrow`,inheritAttrs:false,props:primitiveProps,setup(props,{attrs,slots}){const root=useRoot("Arrow");return()=>h(Primitive,mergeProps(attrs,{as:props.as,asChild:props.asChild,elementRef:element=>{root.registerElement("arrow",element instanceof HTMLElement?element:void 0)},"aria-hidden":"true","data-scope":config.scope,"data-part":"arrow"}),slots)}});const Overlay=defineComponent({name:`Sectile${pascal(config.scope)}Overlay`,inheritAttrs:false,props:primitiveProps,setup(props,{attrs,slots}){const root=useRoot("Overlay");const element=shallowRef();const present=usePresence(root.open,element,void 0,root.active);onBeforeUnmount(root.registerPresence("overlay",present));return()=>{if(root.unmountOnExit.value&&!present.value)return null;const exiting=!root.open.value&&present.value;return h(Primitive,mergeProps(attrs,{as:props.as,asChild:props.asChild,elementRef:candidate=>{const node=candidate instanceof HTMLElement?candidate:void 0;element.value=node;root.registerElement("overlay",node)},hidden:!root.active.value||!present.value,"aria-hidden":"true",...exiting||!root.active.value?{inert:true}:{},"data-scope":config.scope,"data-part":"overlay","data-state":root.open.value?"open":"closed","data-input-method":root.inputMethod.value,"data-side":config.directional===true?root.side.value:void 0,"data-swipe-direction":config.directional===true?swipeDirection(root.side.value):void 0}),slots)}}});const Handle=defineComponent({name:`Sectile${pascal(config.scope)}Handle`,inheritAttrs:false,props:primitiveProps,setup(props,{attrs,slots}){const root=useRoot("Handle");return()=>h(Primitive,mergeProps(attrs,{as:props.as,asChild:props.asChild,elementRef:candidate=>{root.registerElement("handle",candidate instanceof HTMLElement?candidate:void 0)},"aria-hidden":"true","data-scope":config.scope,"data-part":"handle","data-state":root.open.value?"open":"closed","data-side":config.directional===true?root.side.value:void 0,"data-swipe-direction":config.directional===true?swipeDirection(root.side.value):void 0}),slots)}});const Title=createLabelPart("Title","title",root=>root.titleID);const Description=createLabelPart("Description","description",root=>root.descriptionID);const Close=defineComponent({name:`Sectile${pascal(config.scope)}Close`,inheritAttrs:false,props:buttonProps,setup(props,{attrs,slots}){const root=useRoot("Close");return()=>h(Primitive,mergeProps(attrs,{as:props.as,asChild:props.asChild,type:props.as==="button"?"button":void 0,"data-scope":config.scope,"data-part":"close",onClick:root.close}),slots)}});const Portal=HostPortal;function createLabelPart(name,part,id){return defineComponent({name:`Sectile${pascal(config.scope)}${name}`,inheritAttrs:false,props:primitiveProps,setup(props,{attrs,slots}){const root=useRoot(name);return()=>h(Primitive,mergeProps(attrs,{as:props.as,asChild:props.asChild,id:id(root),"data-scope":config.scope,"data-part":part}),slots)}})}return Object.freeze({Root,Trigger,Anchor,Portal,Overlay,Content,Handle,Title,Description,Close,Arrow})}function pascal(value){return value.split("-").map(part=>part[0]?.toUpperCase()+part.slice(1)).join("")}function popupInputMethod(event){if(event===void 0)return"programmatic";return event.type==="mouseenter"||event.type==="mouseleave"||event.type==="click"&&event.detail!==0?"pointer":"keyboard"}function swipeDirection(side){return side==="top"?"up":side==="bottom"?"down":side}export{createPopupComponents};
|
|
1
|
+
import{Fragment,computed,defineComponent,h,inject,mergeProps,nextTick,onBeforeUnmount,provide,ref,shallowRef,watch}from"vue";import{failResult,SectileResultError,unwrap}from"@sectile/core/result";import{Primitive,renderPrimitive}from"../primitive.js";import{HostPortal,provideHostActive,provideHostLayerParent,useHostActive,useHostDirection,useHostId,useHostLayer,useHostLayerParent,useHostPopup}from"../host-provider.js";import{usePresence}from"../presence/presence.js";import{useControlledStateInvariant}from"../internal/controlled-state.js";import{providePortalMove}from"../internal/portal-move.js";function createPopupComponents(config){const contextKey=Symbol(`Sectile${config.scope}Root`);const useRoot=part=>{const context=inject(contextKey);if(context===void 0)throw new TypeError(`${part} must be used inside ${config.scope} Root.`);return context};const primitiveProps={as:{type:[String,Object,Function],default:"div"},asChild:{type:Boolean,default:false}};const buttonProps={as:{type:[String,Object,Function],default:"button"},asChild:{type:Boolean,default:false}};const Root=defineComponent({name:`Sectile${pascal(config.scope)}Root`,inheritAttrs:false,props:{openDelay:{type:Number,default:0},closeDelay:{type:Number,default:0},group:{type:Object,default:void 0},open:{type:Boolean,default:void 0},defaultOpen:{type:Boolean,default:false},disabled:{type:Boolean,default:false},modal:{type:Boolean,default:config.modal},label:{type:String,default:void 0},describedBy:{type:String,default:void 0},initialFocus:{type:Object,default:void 0},restoreFocusTarget:{type:Object,default:void 0},anchor:{type:Object,default:void 0},autoFocus:{type:Boolean,default:true},restoreFocus:{type:Boolean,default:true},trapFocus:{type:Boolean,default:config.modal},closeOnEscape:{type:Boolean,default:config.closeOnEscape??true},closeOnInteractOutside:{type:Boolean,default:config.closeOnInteractOutside??false},interactOutsideExclusions:{type:Array,default:void 0},side:{type:String,default:config.defaultSide??"bottom"},position:{type:Boolean,default:true},swipeToDismiss:{type:Boolean,default:true},swipeThreshold:{type:Number,default:80},swipeVelocityThreshold:{type:Number,default:.5},align:{type:String,default:"center"},sideOffset:{type:Number,default:8},collisionPadding:{type:[Number,Object],default:8},collisionBoundary:{type:[String,Object],default:void 0},avoidCollisions:{type:Boolean,default:true},arrowPadding:{type:Number,default:8},hideWhenDetached:{type:Boolean,default:false},strategy:{type:String,default:"absolute"},tracking:{type:String,default:"events"},unmountOnExit:{type:Boolean,default:false},presentation:{type:String,default:"overlay"}},emits:{"update:open":_open=>true,closeRequest:_reason=>true,afterClose:()=>true,interactOutside:_event=>true},slots:Object,setup(props,{emit,slots,expose}){const controlled=useControlledStateInvariant(`${config.scope}Root`,"open",()=>props.open);const localOpen=ref(controlled?props.open:props.defaultOpen);const requestedPlacement=()=>config.inlinePresentation?props.presentation??"overlay":"overlay";const validatePlacement=()=>{const requested=requestedPlacement();if(requested!=="overlay"&&requested!=="inline"||requested==="inline"&&(props.open===true||props.defaultOpen===true||props.unmountOnExit)){throw new TypeError("Inline Drawer presentation requires closed, retained content.")}};validatePlacement();const placement=shallowRef(requestedPlacement());const inline=computed(()=>placement.value==="inline");const trigger=shallowRef();const anchor=shallowRef();const arrow=shallowRef();const overlay=shallowRef();const handle=shallowRef();const content=shallowRef();const connection=shallowRef();providePortalMove(()=>connection.value);const hostAvailability=useHostActive();const parentLayer=useHostLayerParent();const parentAllowsPresentation=()=>parentLayer?.available.value??true;const availability=computed(()=>hostAvailability.value&&(!localOpen.value||parentAllowsPresentation()));const active=shallowRef(availability.value);provideHostActive(active);expose({requestClose:()=>{connection.value?.handleEvent("close","programmatic")}});const invocation=config.scope==="dialog"||config.scope==="drawer"||config.scope==="alert-dialog"?useHostPopup():void 0;let reservation=invocation?.reservation;if(reservation!==void 0&&(!localOpen.value||inline.value))throw new TypeError("A reserved popup binding requires an initially open overlay.");invocation?.attach(()=>{connection.value?.handleEvent("close","programmatic")});const presentation=shallowRef();const inputMethod=shallowRef("programmatic");const layerHost=useHostLayer();const contentPresence=shallowRef();const overlayPresence=shallowRef();let stopPresentation;const id=useHostId();const contentID=`sectile-${config.scope}-${id}-content`;const titleID=`sectile-${config.scope}-${id}-title`;const descriptionID=`sectile-${config.scope}-${id}-description`;const describedBy=computed(()=>props.describedBy===void 0?descriptionID:props.describedBy??void 0);const open=computed(()=>localOpen.value);const disabled=computed(()=>props.disabled);const modal=computed(()=>props.modal);const unmountOnExit=computed(()=>props.unmountOnExit);const label=computed(()=>props.label);const side=computed(()=>props.side);const position=computed(()=>props.position);const strategy=computed(()=>props.strategy);const update=()=>{const current=connection.value;if(current&&!current.getActive()){active.value=false;invocation?.onActiveChange?.(false);return}if(current===void 0||current.getLayerOrder()===null||presentation.value?.phase==="active")return;stopPresentation?.();const subscribed=current.subscribeLayerPresentation(snapshot=>{presentation.value=snapshot});if(!subscribed.ok)throw new SectileResultError(subscribed.error);stopPresentation=subscribed.value};const disconnect=()=>{stopPresentation?.();stopPresentation=void 0;try{connection.value?.disconnect()}finally{connection.value=void 0;presentation.value=void 0}};const registerPresence=(part,present)=>{const target=part==="content"?contentPresence:overlayPresence;target.value=present;return()=>{if(target.value===present)target.value=void 0}};let inactiveClosePending=false;const afterClose=()=>{inactiveClosePending=false;try{invocation?.onAfterClose()}finally{emit("afterClose")}};watch([active,presentation,()=>contentPresence.value?.value,()=>overlayPresence.value?.value],([available,snapshot,panel,backdrop])=>{if(!available||localOpen.value||panel===true||backdrop===true)return;if(inactiveClosePending&&snapshot?.phase!=="exiting"){afterClose();return}if(snapshot?.phase!=="exiting")return;const result=connection.value?.completeLayerExit(snapshot.generation);if(result!==void 0&&!result.ok)throw new SectileResultError(result.error);if(result?.ok&&presentation.value?.phase==="closed"&&presentation.value.generation===snapshot.generation){afterClose()}},{flush:"post"});let restoreAutoFocusOnClose=false;let reconnectPending=false;let inactiveRefsChanged=false;const restoreFocusTarget=()=>props.restoreFocusTarget===void 0?invocation?.restoreFocusTarget:props.restoreFocusTarget??void 0;let inlineReturn;const rememberInlineOrigin=()=>{const panel=content.value,focused=panel?.ownerDocument.activeElement;inlineReturn=active.value&&props.restoreFocus&&panel&&focused instanceof HTMLElement&&panel.contains(focused)?{panel,target:focused,armed:false}:void 0};watch(inline,async next=>{if(!next)return;const pending=inlineReturn;inlineReturn=void 0;if(!pending?.armed)return;await nextTick();if(destroyed||!inline.value||localOpen.value||!active.value||!props.restoreFocus||content.value!==pending.panel)return;const panel=pending.panel,document=panel.ownerDocument;const focused=panel.getRootNode().activeElement;if(focused&&focused!==document.body&&focused!==document.documentElement&&!panel.contains(focused))return;for(const target of[restoreFocusTarget(),trigger.value,pending.target]){if(!target||!panel.contains(target)||!target.isConnected||target.closest('[hidden],[inert],[aria-hidden="true"],:disabled'))continue;let visible=true;for(let node=target;node;node=node.parentElement){const style=document.defaultView?.getComputedStyle(node);if(style?.display==="none"||style?.visibility==="hidden"||style?.visibility==="collapse"||style?.contentVisibility==="hidden"){visible=false;break}}if(!visible)continue;target.focus({preventScroll:true});break}},{flush:"post"});const connect=(preserveOpenLifecycle=false)=>{if(!availability.value)return;if(inline.value){disconnect();return}if(presentation.value?.phase==="exiting"&&!localOpen.value){reconnectPending=true;return}reconnectPending=false;if(content.value===void 0)return;const host=layerHost.value;if(host===null)unwrap(failResult("construction","dom.layer-host-unavailable","Managed popup layer host is unavailable"));const preserveFocusLifecycle=preserveOpenLifecycle&&connection.value!==void 0&&localOpen.value;const completed=presentation.value?.phase==="closed"?presentation.value:void 0;disconnect();const positionAnchor=config.positioned===true?props.anchor??anchor.value:anchor.value;const focusTarget=restoreFocusTarget();connection.value=config.create({root:content.value,...trigger.value===void 0?{}:{trigger:trigger.value},...positionAnchor===void 0?{}:{anchor:positionAnchor},...arrow.value===void 0?{}:{arrow:arrow.value},...overlay.value===void 0?{}:{overlay:overlay.value},...handle.value===void 0?{}:{handle:handle.value},...controlled?{open:props.open}:{defaultOpen:localOpen.value},disabled:props.disabled,modal:props.modal,...props.label===void 0?{labelledBy:titleID}:{label:props.label},...describedBy.value===void 0?{}:{describedBy:describedBy.value},...props.initialFocus===void 0?{}:{initialFocus:props.initialFocus},autoFocus:preserveFocusLifecycle?false:props.autoFocus,restoreFocus:props.restoreFocus,...focusTarget===void 0?{}:{restoreFocusTarget:focusTarget},trapFocus:props.trapFocus,closeOnEscape:props.closeOnEscape,closeOnInteractOutside:props.closeOnInteractOutside,...props.interactOutsideExclusions===void 0?{}:{interactOutsideExclusions:props.interactOutsideExclusions},side:props.side,...config.positioned===true?{position:props.position}:{},swipeToDismiss:props.swipeToDismiss,swipeThreshold:props.swipeThreshold,swipeVelocityThreshold:props.swipeVelocityThreshold,align:props.align,sideOffset:props.sideOffset,collisionPadding:props.collisionPadding,...props.collisionBoundary===void 0?{}:{collisionBoundary:props.collisionBoundary},avoidCollisions:props.avoidCollisions,arrowPadding:props.arrowPadding,hideWhenDetached:props.hideWhenDetached,strategy:props.strategy,tracking:props.tracking,manageVisibility:false,...config.triggerMode==="focus-hover"?{openDelay:props.openDelay,closeDelay:props.closeDelay,...props.group===void 0?{}:{group:props.group}}:{},retainExit:true,...host==null?{}:{layerHost:host},...reservation===void 0?{}:{reservation},onOpenChange:(next,method,reason)=>{inputMethod.value=method;if(!controlled)localOpen.value=next;try{if(!next&&reason!==void 0){try{invocation?.onCloseRequest(reason)}finally{emit("closeRequest",reason)}}}finally{try{if(!controlled)invocation?.onOpenChange(next)}finally{emit("update:open",next)}}},onInteractOutside:event=>{emit("interactOutside",event)},onUpdate:update});reservation=void 0;restoreAutoFocusOnClose=preserveFocusLifecycle&&props.autoFocus;update();if(completed&&!localOpen.value&&presentation.value===void 0)presentation.value=completed;invocation?.onActiveChange?.(active.value&&connection.value.getActive());invocation?.onOpenChange(localOpen.value)};const connectScheduled=shallowRef(false);let destroyed=false;watch(connectScheduled,async scheduled=>{if(!scheduled)return;await nextTick();connectScheduled.value=false;if(!destroyed&&availability.value)connect()},{flush:"post"});const scheduleConnect=()=>{if(!availability.value||inline.value||connectScheduled.value||destroyed||props.unmountOnExit&&!localOpen.value)return;connectScheduled.value=true};const elements={trigger,anchor,arrow,overlay,handle,content};const syncPosition=()=>{const current=connection.value;if(config.positioned!==true||!current?.syncPosition)return false;current.syncPosition({anchor:props.anchor??anchor.value??null,side:props.side,position:props.position,align:props.align,sideOffset:props.sideOffset,collisionPadding:props.collisionPadding,...props.collisionBoundary===void 0?{}:{collisionBoundary:props.collisionBoundary},avoidCollisions:props.avoidCollisions,arrowPadding:props.arrowPadding,hideWhenDetached:props.hideWhenDetached,strategy:props.strategy,tracking:props.tracking});return true};const registerElement=(part,element)=>{const target=elements[part];if(target.value===element)return;target.value=element;if(part==="anchor"&&props.anchor!=null)return;if(!availability.value){inactiveRefsChanged=true;return}if(part==="anchor"&&syncPosition())return;if(presentation.value?.phase==="exiting"&&!localOpen.value){reconnectPending=true;return}if(content.value===void 0)disconnect();else scheduleConnect()};const suspend=()=>{if(destroyed)return;inlineReturn=void 0;const current=connection.value;const exiting=presentation.value?.phase==="exiting";try{current?.suspend()}finally{if(!current||!current.getActive()){inactiveClosePending||=exiting;active.value=false;invocation?.onActiveChange?.(false)}}};watch(hostAvailability,next=>{if(!next)suspend()},{flush:"sync"});watch(availability,next=>{if(destroyed)return;if(!next){suspend();return}if(inactiveRefsChanged){inactiveRefsChanged=false;connect(true)}else if(connection.value){connection.value.resume();update()}else scheduleConnect();active.value=true;invocation?.onActiveChange?.(connection.value?.getActive()===true)},{flush:"post"});watch(presentation,snapshot=>{if(!reconnectPending)return;if(snapshot?.phase==="active"&&localOpen.value){connect(true);return}if(snapshot?.phase!=="closed")return;if(content.value===void 0){reconnectPending=false;disconnect();presentation.value=snapshot}else scheduleConnect()},{flush:"post"});watch(layerHost,host=>{if(host===null)return;if(connection.value===void 0){scheduleConnect();return}unwrap(connection.value.syncLayerHost(host))},{flush:"post"});if(parentLayer)watch([connection,()=>presentation.value?.generation,()=>presentation.value?.phase,parentLayer.element,()=>parentLayer.presentation.value?.generation,()=>parentLayer.presentation.value?.phase],()=>{const parent=parentLayer.element.value;if(parent&&presentation.value?.phase==="active"&&parentLayer.presentation.value?.phase==="active"){unwrap(connection.value.syncLayerParent(parent))}},{flush:"post"});const activateTrigger=event=>{if(inline.value||event?.defaultPrevented===true||connection.value!==void 0||props.disabled||localOpen.value)return;inputMethod.value=popupInputMethod(event);if(!controlled)localOpen.value=true;emit("update:open",true)};const deactivateTrigger=event=>{if(event?.defaultPrevented===true||connection.value!==void 0||!localOpen.value)return;inputMethod.value=popupInputMethod(event);if(!controlled)localOpen.value=false;emit("update:open",false)};watch([()=>props.open,()=>props.modal,()=>props.label,()=>props.initialFocus,()=>props.autoFocus,()=>props.describedBy,()=>props.restoreFocus,()=>props.trapFocus,()=>props.interactOutsideExclusions,()=>props.disabled,()=>props.restoreFocusTarget],(_values,previousValues)=>{validatePlacement();if(inline.value&&requestedPlacement()==="overlay"){rememberInlineOrigin();placement.value="overlay";scheduleConnect()}const current=connection.value;if(current)unwrap(current.syncDisabled(props.disabled));if(current&&config.role!=="tooltip")unwrap(current.syncBehavior({modal:props.modal,autoFocus:props.autoFocus,restoreFocus:props.restoreFocus,trapFocus:props.trapFocus,label:props.label,labelledBy:props.label===void 0?titleID:void 0,describedBy:describedBy.value,initialFocus:props.initialFocus,interactOutsideExclusions:props.interactOutsideExclusions,restoreFocusTarget:restoreFocusTarget()??null}));const next=props.open;if(!controlled||next===void 0||Object.is(next,previousValues[0]))return;if(next&&!parentAllowsPresentation())suspend();if(current===void 0){localOpen.value=next;invocation?.onOpenChange(next);return}const result=current.syncControlledValue(next);if(!result.ok)throw new TypeError(`${config.scope} controlled open state could not be synchronized.`);localOpen.value=next;invocation?.onOpenChange(next)});watch([()=>props.swipeToDismiss,()=>props.swipeThreshold,()=>props.swipeVelocityThreshold,()=>config.directional===true?props.side:void 0],()=>{const current=connection.value;if(current?.syncGesture)unwrap(current.syncGesture({side:props.side,swipeToDismiss:props.swipeToDismiss,swipeThreshold:props.swipeThreshold,swipeVelocityThreshold:props.swipeVelocityThreshold}))});watch([()=>props.anchor,()=>props.side,()=>props.position,()=>props.align,()=>props.sideOffset,()=>props.collisionPadding,()=>props.collisionBoundary,()=>props.avoidCollisions,()=>props.arrowPadding,()=>props.hideWhenDetached,()=>props.strategy,()=>props.tracking],syncPosition,{flush:"post"});watch([()=>props.closeOnEscape,()=>props.closeOnInteractOutside],()=>{const current=connection.value;if(current)unwrap(current.syncDismissal({closeOnEscape:props.closeOnEscape,closeOnInteractOutside:props.closeOnInteractOutside}))});watch([()=>props.openDelay,()=>props.closeDelay,()=>props.group],()=>{if(config.triggerMode==="focus-hover")scheduleConnect()});watch(localOpen,(next,previous)=>{if(inlineReturn){if(next)inlineReturn.armed=false;else if(previous&&requestedPlacement()==="inline")inlineReturn.armed=true;else inlineReturn=void 0}if(next)inactiveClosePending=false;if(!next&&!active.value)inactiveClosePending=true;if(!next&&restoreAutoFocusOnClose)scheduleConnect()});if(config.inlinePresentation)watch([requestedPlacement,()=>props.unmountOnExit,()=>props.open,()=>props.defaultOpen,localOpen,()=>presentation.value?.phase],()=>{validatePlacement();const requested=requestedPlacement();if(requested===placement.value)return;if(requested==="inline"&&(localOpen.value||presentation.value?.phase==="active"||presentation.value?.phase==="exiting"))return;if(requested==="inline")disconnect();else if(inline.value)rememberInlineOrigin();placement.value=requested;if(requested==="overlay"){if(controlled&&props.open!==void 0)localOpen.value=props.open;scheduleConnect()}});onBeforeUnmount(()=>{destroyed=true;inlineReturn=void 0;try{disconnect()}finally{invocation?.detach()}});provide(contextKey,{active,open,inline,presentation,inputMethod,disabled,modal,unmountOnExit,label,describedBy,contentID,titleID,descriptionID,side,position,strategy,registerPresence,registerElement,activateTrigger,deactivateTrigger,close:event=>{connection.value?.handleEvent("close",popupInputMethod(event),"close-button")},refresh:()=>{connection.value?.refresh()}});return()=>h(Fragment,null,slots["default"]?.({open:open.value,disabled:props.disabled,inputMethod:inputMethod.value,presentation:presentation.value,...config.inlinePresentation?{placement:placement.value}:{}})??[])}});const Trigger=defineComponent({name:`Sectile${pascal(config.scope)}Trigger`,inheritAttrs:false,props:buttonProps,setup(props,{attrs,slots}){const root=useRoot("Trigger");return()=>{const elementRef=element=>{root.registerElement("trigger",element instanceof HTMLElement?element:void 0)};const attributes=mergeProps(attrs,{...config.triggerMode==="click"?{onClick:root.activateTrigger}:{onFocus:root.activateTrigger,onBlur:root.deactivateTrigger,onMouseenter:root.activateTrigger,onMouseleave:root.deactivateTrigger},...config.role==="tooltip"&&props.asChild?{}:{type:props.as==="button"?"button":void 0},...config.role==="tooltip"&&props.asChild&&!root.disabled.value?{}:{disabled:root.disabled.value},...config.role==="tooltip"?{}:{"aria-haspopup":root.inline.value?void 0:"dialog","aria-expanded":config.triggerMode==="click"?String(root.open.value):void 0,"aria-controls":root.contentID},"data-scope":config.scope,"data-part":"trigger","data-state":root.open.value?"open":"closed"});if(!config.describeTrigger)return h(Primitive,{...attributes,as:props.as,asChild:props.asChild,elementRef},slots);return h(Primitive,{asChild:true,elementRef},{default:()=>renderPrimitive(props,attributes,slots,adopted=>({...adopted,"aria-describedby":config.describeTrigger(typeof adopted["aria-describedby"]==="string"?adopted["aria-describedby"]:void 0,root.contentID,root.open.value||!root.unmountOnExit.value)}))})}}});const Content=defineComponent({name:`Sectile${pascal(config.scope)}Content`,inheritAttrs:false,props:primitiveProps,setup(props,{attrs,slots}){const root=useRoot("Content");const direction=useHostDirection();const element=shallowRef();const retainedReopen=shallowRef(0);provideHostLayerParent({element,presentation:root.presentation,open:root.open,inline:root.inline,active:root.active});const visible=computed(()=>root.open.value||root.inline.value);const present=usePresence(visible,element,()=>{retainedReopen.value+=1},root.active);onBeforeUnmount(root.registerPresence("content",present));const refreshAfterRender=async()=>{await nextTick();root.refresh()};watch(present,refreshAfterRender,{flush:"post"});watch(retainedReopen,refreshAfterRender,{flush:"post"});return()=>{if(root.unmountOnExit.value&&!present.value)return null;return h(Primitive,mergeProps(attrs,{as:props.as,asChild:props.asChild,elementRef:candidate=>{const node=candidate instanceof HTMLElement?candidate:void 0;element.value=node;root.registerElement("content",node)},id:root.contentID,role:root.inline.value?void 0:config.role,hidden:!root.active.value||!present.value,dir:direction.value,style:config.positioned===true&&root.position.value?{position:root.strategy.value,visibility:element.value===void 0?"hidden":void 0}:void 0,"aria-modal":root.inline.value||config.role==="tooltip"?void 0:String(root.modal.value),...config.role==="tooltip"?{}:{"aria-label":root.inline.value?void 0:root.label.value,"aria-labelledby":root.inline.value||root.label.value!==void 0?void 0:root.titleID,"aria-describedby":root.inline.value?void 0:root.describedBy.value},"data-presentation":config.inlinePresentation?root.inline.value?"inline":"overlay":void 0,"data-scope":config.scope,"data-part":"content","data-state":root.open.value?"open":"closed","data-input-method":root.inputMethod.value,"data-side":config.directional===true?root.side.value:void 0,"data-swipe-direction":config.directional===true?swipeDirection(root.side.value):void 0}),slots)}}});const Anchor=defineComponent({name:`Sectile${pascal(config.scope)}Anchor`,inheritAttrs:false,props:primitiveProps,setup(props,{attrs,slots}){const root=useRoot("Anchor");return()=>h(Primitive,mergeProps(attrs,{as:props.as,asChild:props.asChild,elementRef:element=>{root.registerElement("anchor",element instanceof HTMLElement?element:void 0)},"data-scope":config.scope,"data-part":"anchor"}),slots)}});const Arrow=defineComponent({name:`Sectile${pascal(config.scope)}Arrow`,inheritAttrs:false,props:primitiveProps,setup(props,{attrs,slots}){const root=useRoot("Arrow");return()=>h(Primitive,mergeProps(attrs,{as:props.as,asChild:props.asChild,elementRef:element=>{root.registerElement("arrow",element instanceof HTMLElement?element:void 0)},"aria-hidden":"true","data-scope":config.scope,"data-part":"arrow"}),slots)}});const Overlay=defineComponent({name:`Sectile${pascal(config.scope)}Overlay`,inheritAttrs:false,props:primitiveProps,setup(props,{attrs,slots}){const root=useRoot("Overlay");const element=shallowRef();const present=usePresence(root.open,element,void 0,root.active);onBeforeUnmount(root.registerPresence("overlay",present));return()=>{if(root.unmountOnExit.value&&!present.value)return null;const exiting=!root.open.value&&present.value;return h(Primitive,mergeProps(attrs,{as:props.as,asChild:props.asChild,elementRef:candidate=>{const node=candidate instanceof HTMLElement?candidate:void 0;element.value=node;root.registerElement("overlay",node)},hidden:!root.active.value||!present.value,"aria-hidden":"true",...exiting||!root.active.value?{inert:true}:{},"data-scope":config.scope,"data-part":"overlay","data-state":root.open.value?"open":"closed","data-input-method":root.inputMethod.value,"data-side":config.directional===true?root.side.value:void 0,"data-swipe-direction":config.directional===true?swipeDirection(root.side.value):void 0}),slots)}}});const Handle=defineComponent({name:`Sectile${pascal(config.scope)}Handle`,inheritAttrs:false,props:primitiveProps,setup(props,{attrs,slots}){const root=useRoot("Handle");return()=>h(Primitive,mergeProps(attrs,{as:props.as,asChild:props.asChild,elementRef:candidate=>{root.registerElement("handle",candidate instanceof HTMLElement?candidate:void 0)},"aria-hidden":"true","data-scope":config.scope,"data-part":"handle","data-state":root.open.value?"open":"closed","data-side":config.directional===true?root.side.value:void 0,"data-swipe-direction":config.directional===true?swipeDirection(root.side.value):void 0}),slots)}});const Title=createLabelPart("Title","title",root=>root.titleID);const Description=createLabelPart("Description","description",root=>root.descriptionID);const Close=defineComponent({name:`Sectile${pascal(config.scope)}Close`,inheritAttrs:false,props:buttonProps,setup(props,{attrs,slots}){const root=useRoot("Close");return()=>h(Primitive,mergeProps(attrs,{as:props.as,asChild:props.asChild,type:props.as==="button"?"button":void 0,"data-scope":config.scope,"data-part":"close",onClick:root.close}),slots)}});const Portal=HostPortal;function createLabelPart(name,part,id){return defineComponent({name:`Sectile${pascal(config.scope)}${name}`,inheritAttrs:false,props:primitiveProps,setup(props,{attrs,slots}){const root=useRoot(name);return()=>h(Primitive,mergeProps(attrs,{as:props.as,asChild:props.asChild,id:id(root),"data-scope":config.scope,"data-part":part}),slots)}})}return Object.freeze({Root,Trigger,Anchor,Portal,Overlay,Content,Handle,Title,Description,Close,Arrow})}function pascal(value){return value.split("-").map(part=>part[0]?.toUpperCase()+part.slice(1)).join("")}function popupInputMethod(event){if(event===void 0)return"programmatic";return event.type==="mouseenter"||event.type==="mouseleave"||event.type==="click"&&event.detail!==0?"pointer":"keyboard"}function swipeDirection(side){return side==="top"?"up":side==="bottom"?"down":side}export{createPopupComponents};
|
|
2
2
|
//# sourceMappingURL=popup.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../src/overlay/popup.ts"],"mappings":"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","names":[],"file":"popup.js"}
|
|
1
|
+
{"version":3,"sources":["../../src/overlay/popup.ts"],"mappings":"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","names":[],"file":"popup.js"}
|