@sectile/vue 0.14.0 → 0.14.2

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.
@@ -1,7 +1,8 @@
1
1
  import { type PropType, type SlotsType, type VNodeChild } from 'vue';
2
2
  import { type ComboboxItem as ComboboxItemDefinition, type ComboboxPolicies } from '@sectile/dom/combobox';
3
+ import type { PositionBoundary, PositionOptions, PositionPadding, PositionStrategy, PositionTracking } from '@sectile/dom/position';
3
4
  import { type PrimitiveAs } from './primitive.js';
4
- export interface ComboboxRootProps {
5
+ export interface ComboboxRootProps extends Omit<PositionOptions, 'arrowPadding'> {
5
6
  readonly items: readonly ComboboxItemDefinition<string>[];
6
7
  readonly modelValue?: string | null;
7
8
  readonly defaultValue?: string | null;
@@ -12,6 +13,7 @@ export interface ComboboxRootProps {
12
13
  readonly disabled?: boolean;
13
14
  readonly?: boolean;
14
15
  readonly label?: string;
16
+ readonly position?: boolean;
15
17
  readonly policies?: ComboboxPolicies<string>;
16
18
  readonly as?: PrimitiveAs;
17
19
  readonly asChild?: boolean;
@@ -81,6 +83,46 @@ export declare const ComboboxRoot: import("vue").DefineComponent<import("vue").E
81
83
  type: StringConstructor;
82
84
  default: undefined;
83
85
  };
86
+ position: {
87
+ type: BooleanConstructor;
88
+ default: boolean;
89
+ };
90
+ side: {
91
+ type: PropType<'top' | 'right' | 'bottom' | 'left'>;
92
+ default: string;
93
+ };
94
+ align: {
95
+ type: PropType<'start' | 'center' | 'end'>;
96
+ default: string;
97
+ };
98
+ sideOffset: {
99
+ type: NumberConstructor;
100
+ default: number;
101
+ };
102
+ collisionPadding: {
103
+ type: PropType<PositionPadding>;
104
+ default: number;
105
+ };
106
+ collisionBoundary: {
107
+ type: PropType<PositionBoundary>;
108
+ default: undefined;
109
+ };
110
+ avoidCollisions: {
111
+ type: BooleanConstructor;
112
+ default: boolean;
113
+ };
114
+ hideWhenDetached: {
115
+ type: BooleanConstructor;
116
+ default: boolean;
117
+ };
118
+ strategy: {
119
+ type: PropType<PositionStrategy>;
120
+ default: string;
121
+ };
122
+ tracking: {
123
+ type: PropType<PositionTracking>;
124
+ default: string;
125
+ };
84
126
  policies: {
85
127
  type: PropType<ComboboxPolicies<string>>;
86
128
  default: undefined;
@@ -140,6 +182,46 @@ export declare const ComboboxRoot: import("vue").DefineComponent<import("vue").E
140
182
  type: StringConstructor;
141
183
  default: undefined;
142
184
  };
185
+ position: {
186
+ type: BooleanConstructor;
187
+ default: boolean;
188
+ };
189
+ side: {
190
+ type: PropType<'top' | 'right' | 'bottom' | 'left'>;
191
+ default: string;
192
+ };
193
+ align: {
194
+ type: PropType<'start' | 'center' | 'end'>;
195
+ default: string;
196
+ };
197
+ sideOffset: {
198
+ type: NumberConstructor;
199
+ default: number;
200
+ };
201
+ collisionPadding: {
202
+ type: PropType<PositionPadding>;
203
+ default: number;
204
+ };
205
+ collisionBoundary: {
206
+ type: PropType<PositionBoundary>;
207
+ default: undefined;
208
+ };
209
+ avoidCollisions: {
210
+ type: BooleanConstructor;
211
+ default: boolean;
212
+ };
213
+ hideWhenDetached: {
214
+ type: BooleanConstructor;
215
+ default: boolean;
216
+ };
217
+ strategy: {
218
+ type: PropType<PositionStrategy>;
219
+ default: string;
220
+ };
221
+ tracking: {
222
+ type: PropType<PositionTracking>;
223
+ default: string;
224
+ };
143
225
  policies: {
144
226
  type: PropType<ComboboxPolicies<string>>;
145
227
  default: undefined;
@@ -168,6 +250,16 @@ export declare const ComboboxRoot: import("vue").DefineComponent<import("vue").E
168
250
  disabled: boolean;
169
251
  readonly: boolean;
170
252
  label: string;
253
+ position: boolean;
254
+ side: "bottom" | "left" | "right" | "top";
255
+ align: "center" | "end" | "start";
256
+ sideOffset: number;
257
+ collisionPadding: PositionPadding;
258
+ collisionBoundary: PositionBoundary;
259
+ avoidCollisions: boolean;
260
+ hideWhenDetached: boolean;
261
+ strategy: PositionStrategy;
262
+ tracking: PositionTracking;
171
263
  policies: ComboboxPolicies<string>;
172
264
  as: PrimitiveAs;
173
265
  asChild: boolean;
package/dist/combobox.js CHANGED
@@ -1,2 +1,2 @@
1
- import{computed,defineComponent,h,inject,mergeProps,nextTick,onBeforeUnmount,onMounted,provide,shallowRef,watch}from"vue";import{createCombobox}from"@sectile/dom/combobox";import{createTextState}from"@sectile/dom/text";import{Primitive}from"./primitive.js";import{useNativeInputFormControl}from"./internal/form-control.js";import{reconcileCollectionState}from"./internal/collection.js";import{useControlledStateInvariant}from"./internal/controlled-state.js";const key=Symbol("SectileComboboxRoot");const partProps={as:{type:[String,Object,Function],default:"span"},asChild:{type:Boolean,default:false}};const ComboboxRoot=defineComponent({name:"SectileComboboxRoot",inheritAttrs:false,props:{items:{type:Array,required:true},modelValue:{type:String,default:void 0},defaultValue:{type:String,default:null},inputValue:{type:String,default:void 0},defaultInputValue:{type:String,default:""},open:{type:Boolean,default:void 0},defaultOpen:{type:Boolean,default:false},disabled:{type:Boolean,default:false},readonly:{type:Boolean,default:false},label:{type:String,default:void 0},policies:{type:Object,default:void 0},as:{type:[String,Object,Function],default:"div"},asChild:{type:Boolean,default:false}},emits:{"update:modelValue":_value=>true,"update:inputValue":_value=>true,"update:open":_value=>true,highlight:_value=>true,accept:_value=>true},slots:Object,setup(props,{attrs,emit,slots}){const input=shallowRef();const popup=shallowRef();const connection=shallowRef();const localValue=shallowRef(props.modelValue!==void 0?props.modelValue:props.defaultValue);const localInput=shallowRef(props.inputValue??props.defaultInputValue);const localOpen=shallowRef(props.open??props.defaultOpen);const highlighted=shallowRef(null);let proposedInputState=null;const controlled={value:useControlledStateInvariant("ComboboxRoot","modelValue",()=>props.modelValue),input:useControlledStateInvariant("ComboboxRoot","inputValue",()=>props.inputValue),open:useControlledStateInvariant("ComboboxRoot","open",()=>props.open)};const state=computed(()=>Object.freeze({value:props.modelValue!==void 0?props.modelValue:localValue.value,inputValue:props.inputValue??localInput.value,highlightedValue:highlighted.value,open:props.open??localOpen.value,disabled:props.disabled,readonly:props.readonly}));const refresh=()=>{const snapshot=connection.value?.getSnapshot().state;if(snapshot===void 0)return;localValue.value=snapshot.selection.selected[0]??null;localInput.value=snapshot.text.snapshot.text;localOpen.value=snapshot.popupOpen;highlighted.value=snapshot.cursor.current;refreshItems()};const refreshItems=()=>{if(popup.value===void 0||connection.value===void 0)return;popup.value.querySelectorAll("[data-sectile-combobox-id]").forEach(element=>{const id=element.dataset["sectileComboboxId"];if(id!==void 0)connection.value?.setItemAttributes(element,{id,disabled:element.dataset["disabled"]==="true"})})};const connect=()=>{connection.value?.disconnect();if(input.value===void 0)return;const items=props.items.map(item=>item.id);const requestedValue=controlled.value?props.modelValue:localValue.value;const reconciled=reconcileCollectionState(items,requestedValue===null?[]:[requestedValue],highlighted.value,[],"single",{preserveNullCurrent:true});const value=reconciled.selected[0]??null;localValue.value=value;highlighted.value=reconciled.current;if(controlled.value&&requestedValue!==value)emit("update:modelValue",value);connection.value=createCombobox({input:input.value,...popup.value===void 0?{}:{popup:popup.value},items:props.items,...props.policies===void 0?{}:{policies:props.policies},...controlled.value?{value}:{defaultValue:value},defaultHighlightedValue:reconciled.current,...controlled.input?{inputState:createTextState(props.inputValue)}:{defaultInputState:createTextState(localInput.value)},...controlled.open?{open:props.open}:{defaultOpen:localOpen.value},disabled:props.disabled,readOnly:props.readonly,onValueChange:({value:value2})=>{localValue.value=value2;emit("update:modelValue",value2)},onInputStateChange:({value:value2})=>{proposedInputState=value2;localInput.value=value2.snapshot.text;emit("update:inputValue",value2.snapshot.text);if(!controlled.input)return;const proposal=value2;void nextTick(()=>{if(connection.value===void 0||proposedInputState!==proposal)return;if(props.inputValue!==proposal.snapshot.text)return;proposedInputState=null;syncControlledValues(proposal)})},onOpenChange:({value:value2})=>{localOpen.value=value2;emit("update:open",value2)},onHighlightedValueChange:({value:value2})=>{highlighted.value=value2;emit("highlight",value2)},onAccept:id=>emit("accept",id),onUpdate:refresh});connection.value.setInputAttributes(props.label);connection.value.setPopupAttributes(props.label);refreshItems();refresh()};provide(key,{state,label:computed(()=>props.label),connection:computed(()=>connection.value),registerInput:element=>{input.value=element},registerPopup:element=>{popup.value=element},registerItem:(element,id,disabled)=>connection.value?.setItemAttributes(element,{id,disabled})});onMounted(connect);onBeforeUnmount(()=>{connection.value?.disconnect();connection.value=void 0;proposedInputState=null});watch(()=>props.items,(items,previousItems)=>{if(!sameComboboxItems(items,previousItems))connect()});watch([()=>props.disabled,()=>props.readonly,()=>props.label,()=>props.policies],connect);watch([()=>props.modelValue,()=>props.inputValue,()=>props.open],()=>{const inputState=controlled.input&&proposedInputState!==null&&proposedInputState.snapshot.text===props.inputValue?proposedInputState:controlled.input?createTextState(props.inputValue):void 0;proposedInputState=null;syncControlledValues(inputState)});const syncControlledValues=inputState=>{if(connection.value===void 0)return;const result=connection.value.syncControlledValues({...controlled.value?{value:props.modelValue}:{},...controlled.input?{inputState:inputState??createTextState(props.inputValue)}:{},...controlled.open?{open:props.open}:{}});if(!result.ok)throw new TypeError(result.error.message);refresh()};return()=>h(Primitive,mergeProps(attrs,{as:props.as,asChild:props.asChild,"data-scope":"combobox","data-part":"root","data-state":state.value.open?"open":"closed","data-disabled":props.disabled?"":void 0,"data-readonly":props.readonly?"":void 0}),{default:()=>slots["default"]?.(state.value)})}});const ComboboxInput=defineComponent({name:"SectileComboboxInput",inheritAttrs:false,props:{name:{type:String,default:void 0},form:{type:String,default:void 0},required:{type:Boolean,default:false},as:{type:[String,Object,Function],default:"input"},asChild:{type:Boolean,default:false}},setup(props,{attrs}){const root=useRoot("ComboboxInput");const input=shallowRef(null);const participation=useNativeInputFormControl(input);const renderServerValue=typeof window==="undefined";return()=>h(Primitive,mergeProps(attrs,{as:props.as,asChild:props.asChild,elementRef:node=>{input.value=node instanceof HTMLInputElement?node:null;root.registerInput(input.value??void 0)},type:"text",role:"combobox",...renderServerValue?{value:root.state.value.inputValue}:{},name:props.name,form:props.form,required:props.required,disabled:root.state.value.disabled,readonly:root.state.value.readonly,"aria-label":root.label.value,"aria-autocomplete":"list","aria-expanded":String(root.state.value.open),"data-scope":"combobox","data-part":"input"},participation.controlProps.value))}});const ComboboxContent=defineComponent({name:"SectileComboboxContent",inheritAttrs:false,props:{as:{type:[String,Object,Function],default:"div"},asChild:{type:Boolean,default:false}},slots:Object,setup(props,{attrs,slots}){const root=useRoot("ComboboxContent");return()=>h(Primitive,mergeProps(attrs,{as:props.as,asChild:props.asChild,elementRef:node=>root.registerPopup(node instanceof HTMLElement?node:void 0),role:"listbox",hidden:!root.state.value.open,"aria-label":root.label.value,"data-scope":"combobox","data-part":"content","data-state":root.state.value.open?"open":"closed"}),{default:()=>slots["default"]?.(root.state.value)})}});const ComboboxItem=defineComponent({name:"SectileComboboxItem",inheritAttrs:false,props:{value:{type:String,required:true},disabled:{type:Boolean,default:false},...partProps},slots:Object,setup(props,{attrs,slots}){const root=useRoot("ComboboxItem");const state=computed(()=>({value:props.value,selected:root.state.value.value===props.value,highlighted:root.state.value.highlightedValue===props.value,disabled:root.state.value.disabled||props.disabled}));return()=>h(Primitive,mergeProps(attrs,{as:props.as,asChild:props.asChild,elementRef:node=>{if(node instanceof HTMLElement)root.registerItem(node,props.value,state.value.disabled)},role:"option","aria-selected":String(state.value.selected),"aria-disabled":state.value.disabled?"true":void 0,"data-sectile-combobox-id":props.value,"data-disabled":state.value.disabled?"true":void 0,"data-scope":"combobox","data-part":"item","data-selected":state.value.selected?"":void 0,"data-highlighted":state.value.highlighted?"":void 0}),{default:()=>slots["default"]?.(state.value)})}});const ComboboxEmpty=defineComponent({name:"SectileComboboxEmpty",inheritAttrs:false,props:partProps,slots:Object,setup(props,{attrs,slots}){const root=useRoot("ComboboxEmpty");return()=>h(Primitive,mergeProps(attrs,{as:props.as,asChild:props.asChild,role:"status","data-scope":"combobox","data-part":"empty"}),{default:()=>slots["default"]?.(root.state.value)})}});function useRoot(part){const root=inject(key);if(root===void 0)throw new TypeError(`${part} must be used inside ComboboxRoot.`);return root}function sameComboboxItems(items,previousItems){return items.length===previousItems.length&&items.every((item,index)=>{const previousItem=previousItems[index];return previousItem!==void 0&&item.id===previousItem.id&&item.label===previousItem.label})}export{ComboboxContent,ComboboxEmpty,ComboboxInput,ComboboxItem,ComboboxRoot};
1
+ import{computed,defineComponent,h,inject,mergeProps,nextTick,onBeforeUnmount,onMounted,provide,shallowRef,watch}from"vue";import{createCombobox}from"@sectile/dom/combobox";import{createTextState}from"@sectile/dom/text";import{Primitive}from"./primitive.js";import{useNativeInputFormControl}from"./internal/form-control.js";import{reconcileCollectionState}from"./internal/collection.js";import{useControlledStateInvariant}from"./internal/controlled-state.js";const key=Symbol("SectileComboboxRoot");const partProps={as:{type:[String,Object,Function],default:"span"},asChild:{type:Boolean,default:false}};const ComboboxRoot=defineComponent({name:"SectileComboboxRoot",inheritAttrs:false,props:{items:{type:Array,required:true},modelValue:{type:String,default:void 0},defaultValue:{type:String,default:null},inputValue:{type:String,default:void 0},defaultInputValue:{type:String,default:""},open:{type:Boolean,default:void 0},defaultOpen:{type:Boolean,default:false},disabled:{type:Boolean,default:false},readonly:{type:Boolean,default:false},label:{type:String,default:void 0},position:{type:Boolean,default:true},side:{type:String,default:"bottom"},align:{type:String,default:"start"},sideOffset:{type:Number,default:8},collisionPadding:{type:[Number,Object],default:8},collisionBoundary:{type:[String,Object],default:void 0},avoidCollisions:{type:Boolean,default:true},hideWhenDetached:{type:Boolean,default:false},strategy:{type:String,default:"absolute"},tracking:{type:String,default:"events"},policies:{type:Object,default:void 0},as:{type:[String,Object,Function],default:"div"},asChild:{type:Boolean,default:false}},emits:{"update:modelValue":_value=>true,"update:inputValue":_value=>true,"update:open":_value=>true,highlight:_value=>true,accept:_value=>true},slots:Object,setup(props,{attrs,emit,slots}){const input=shallowRef();const popup=shallowRef();const connection=shallowRef();const localValue=shallowRef(props.modelValue!==void 0?props.modelValue:props.defaultValue);const localInput=shallowRef(props.inputValue??props.defaultInputValue);const localOpen=shallowRef(props.open??props.defaultOpen);const highlighted=shallowRef(null);let proposedInputState=null;const controlled={value:useControlledStateInvariant("ComboboxRoot","modelValue",()=>props.modelValue),input:useControlledStateInvariant("ComboboxRoot","inputValue",()=>props.inputValue),open:useControlledStateInvariant("ComboboxRoot","open",()=>props.open)};const state=computed(()=>Object.freeze({value:props.modelValue!==void 0?props.modelValue:localValue.value,inputValue:props.inputValue??localInput.value,highlightedValue:highlighted.value,open:props.open??localOpen.value,disabled:props.disabled,readonly:props.readonly}));const refresh=()=>{const snapshot=connection.value?.getSnapshot().state;if(snapshot===void 0)return;localValue.value=snapshot.selection.selected[0]??null;localInput.value=snapshot.text.snapshot.text;localOpen.value=snapshot.popupOpen;highlighted.value=snapshot.cursor.current;refreshItems()};const refreshItems=()=>{if(popup.value===void 0||connection.value===void 0)return;popup.value.querySelectorAll("[data-sectile-combobox-id]").forEach(element=>{const id=element.dataset["sectileComboboxId"];if(id!==void 0)connection.value?.setItemAttributes(element,{id,disabled:element.dataset["disabled"]==="true"})})};const connect=()=>{connection.value?.disconnect();if(input.value===void 0)return;const items=props.items.map(item=>item.id);const requestedValue=controlled.value?props.modelValue:localValue.value;const reconciled=reconcileCollectionState(items,requestedValue===null?[]:[requestedValue],highlighted.value,[],"single",{preserveNullCurrent:true});const value=reconciled.selected[0]??null;localValue.value=value;highlighted.value=reconciled.current;if(controlled.value&&requestedValue!==value)emit("update:modelValue",value);connection.value=createCombobox({input:input.value,...popup.value===void 0?{}:{popup:popup.value},items:props.items,...props.policies===void 0?{}:{policies:props.policies},...controlled.value?{value}:{defaultValue:value},defaultHighlightedValue:reconciled.current,...controlled.input?{inputState:createTextState(props.inputValue)}:{defaultInputState:createTextState(localInput.value)},...controlled.open?{open:props.open}:{defaultOpen:localOpen.value},disabled:props.disabled,readOnly:props.readonly,position:props.position,side:props.side,align:props.align,sideOffset:props.sideOffset,collisionPadding:props.collisionPadding,...props.collisionBoundary===void 0?{}:{collisionBoundary:props.collisionBoundary},avoidCollisions:props.avoidCollisions,hideWhenDetached:props.hideWhenDetached,strategy:props.strategy,tracking:props.tracking,onValueChange:({value:value2})=>{localValue.value=value2;emit("update:modelValue",value2)},onInputStateChange:({value:value2})=>{proposedInputState=value2;localInput.value=value2.snapshot.text;emit("update:inputValue",value2.snapshot.text);if(!controlled.input)return;const proposal=value2;void nextTick(()=>{if(connection.value===void 0||proposedInputState!==proposal)return;if(props.inputValue!==proposal.snapshot.text)return;proposedInputState=null;syncControlledValues(proposal)})},onOpenChange:({value:value2})=>{localOpen.value=value2;emit("update:open",value2)},onHighlightedValueChange:({value:value2})=>{highlighted.value=value2;emit("highlight",value2)},onAccept:id=>emit("accept",id),onUpdate:refresh});connection.value.setInputAttributes(props.label);connection.value.setPopupAttributes(props.label);refreshItems();refresh()};let mounted=false;let connectScheduled=false;const scheduleConnect=()=>{if(!mounted||connectScheduled)return;connectScheduled=true;void nextTick(()=>{connectScheduled=false;if(mounted)connect()})};provide(key,{state,position:computed(()=>props.position),strategy:computed(()=>props.strategy),label:computed(()=>props.label),connection:computed(()=>connection.value),registerInput:element=>{const changed=input.value!==element;input.value=element;if(changed)scheduleConnect()},registerPopup:element=>{const changed=popup.value!==element;popup.value=element;if(changed)scheduleConnect()},registerItem:(element,id,disabled)=>connection.value?.setItemAttributes(element,{id,disabled})});onMounted(()=>{mounted=true;connect()});onBeforeUnmount(()=>{mounted=false;connection.value?.disconnect();connection.value=void 0;proposedInputState=null});watch(()=>props.items,(items,previousItems)=>{if(!sameComboboxItems(items,previousItems))connect()});watch([()=>props.disabled,()=>props.readonly,()=>props.label,()=>props.position,()=>props.side,()=>props.align,()=>props.sideOffset,()=>props.collisionPadding,()=>props.collisionBoundary,()=>props.avoidCollisions,()=>props.hideWhenDetached,()=>props.strategy,()=>props.tracking,()=>props.policies],connect);watch([()=>props.modelValue,()=>props.inputValue,()=>props.open],()=>{const inputState=controlled.input&&proposedInputState!==null&&proposedInputState.snapshot.text===props.inputValue?proposedInputState:controlled.input?createTextState(props.inputValue):void 0;proposedInputState=null;syncControlledValues(inputState)});const syncControlledValues=inputState=>{if(connection.value===void 0)return;const result=connection.value.syncControlledValues({...controlled.value?{value:props.modelValue}:{},...controlled.input?{inputState:inputState??createTextState(props.inputValue)}:{},...controlled.open?{open:props.open}:{}});if(!result.ok)throw new TypeError(result.error.message);refresh()};return()=>h(Primitive,mergeProps(attrs,{as:props.as,asChild:props.asChild,"data-scope":"combobox","data-part":"root","data-state":state.value.open?"open":"closed","data-disabled":props.disabled?"":void 0,"data-readonly":props.readonly?"":void 0}),{default:()=>slots["default"]?.(state.value)})}});const ComboboxInput=defineComponent({name:"SectileComboboxInput",inheritAttrs:false,props:{name:{type:String,default:void 0},form:{type:String,default:void 0},required:{type:Boolean,default:false},as:{type:[String,Object,Function],default:"input"},asChild:{type:Boolean,default:false}},setup(props,{attrs}){const root=useRoot("ComboboxInput");const input=shallowRef(null);const participation=useNativeInputFormControl(input);const renderServerValue=typeof window==="undefined";const registerInput=node=>{input.value=node instanceof HTMLInputElement?node:null;root.registerInput(input.value??void 0)};return()=>h(Primitive,mergeProps(attrs,{as:props.as,asChild:props.asChild,elementRef:registerInput,type:"text",role:"combobox",...renderServerValue?{value:root.state.value.inputValue}:{},name:props.name,form:props.form,required:props.required,disabled:root.state.value.disabled,readonly:root.state.value.readonly,"aria-label":root.label.value,"aria-autocomplete":"list","aria-expanded":String(root.state.value.open),"data-scope":"combobox","data-part":"input"},participation.controlProps.value))}});const ComboboxContent=defineComponent({name:"SectileComboboxContent",inheritAttrs:false,props:{as:{type:[String,Object,Function],default:"div"},asChild:{type:Boolean,default:false}},slots:Object,setup(props,{attrs,slots}){const root=useRoot("ComboboxContent");const element=shallowRef();const registerContent=node=>{const content=node instanceof HTMLElement?node:void 0;element.value=content;root.registerPopup(content)};return()=>h(Primitive,mergeProps(attrs,{as:props.as,asChild:props.asChild,elementRef:registerContent,role:"listbox",hidden:!root.state.value.open,"aria-label":root.label.value,style:root.position.value?{position:root.strategy.value,visibility:element.value===void 0?"hidden":void 0}:void 0,"data-scope":"combobox","data-part":"content","data-state":root.state.value.open?"open":"closed"}),{default:()=>slots["default"]?.(root.state.value)})}});const ComboboxItem=defineComponent({name:"SectileComboboxItem",inheritAttrs:false,props:{value:{type:String,required:true},disabled:{type:Boolean,default:false},...partProps},slots:Object,setup(props,{attrs,slots}){const root=useRoot("ComboboxItem");const state=computed(()=>({value:props.value,selected:root.state.value.value===props.value,highlighted:root.state.value.highlightedValue===props.value,disabled:root.state.value.disabled||props.disabled}));return()=>h(Primitive,mergeProps(attrs,{as:props.as,asChild:props.asChild,elementRef:node=>{if(node instanceof HTMLElement)root.registerItem(node,props.value,state.value.disabled)},role:"option","aria-selected":String(state.value.selected),"aria-disabled":state.value.disabled?"true":void 0,"data-sectile-combobox-id":props.value,"data-disabled":state.value.disabled?"true":void 0,"data-scope":"combobox","data-part":"item","data-selected":state.value.selected?"":void 0,"data-highlighted":state.value.highlighted?"":void 0}),{default:()=>slots["default"]?.(state.value)})}});const ComboboxEmpty=defineComponent({name:"SectileComboboxEmpty",inheritAttrs:false,props:partProps,slots:Object,setup(props,{attrs,slots}){const root=useRoot("ComboboxEmpty");return()=>h(Primitive,mergeProps(attrs,{as:props.as,asChild:props.asChild,role:"status","data-scope":"combobox","data-part":"empty"}),{default:()=>slots["default"]?.(root.state.value)})}});function useRoot(part){const root=inject(key);if(root===void 0)throw new TypeError(`${part} must be used inside ComboboxRoot.`);return root}function sameComboboxItems(items,previousItems){return items.length===previousItems.length&&items.every((item,index)=>{const previousItem=previousItems[index];return previousItem!==void 0&&item.id===previousItem.id&&item.label===previousItem.label})}export{ComboboxContent,ComboboxEmpty,ComboboxInput,ComboboxItem,ComboboxRoot};
2
2
  //# sourceMappingURL=combobox.js.map
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/combobox.ts"],"mappings":"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","names":["value"],"file":"combobox.js"}
1
+ {"version":3,"sources":["../src/combobox.ts"],"mappings":"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","names":["value"],"file":"combobox.js"}
package/dist/dialog.d.ts CHANGED
@@ -9,7 +9,7 @@ export declare const DialogContent: import("vue").Component;
9
9
  export declare const DialogTitle: import("vue").Component;
10
10
  export declare const DialogDescription: import("vue").Component;
11
11
  export declare const DialogClose: import("vue").Component;
12
- export type DialogRootProps = PopupRootProps;
12
+ export type DialogRootProps = Omit<PopupRootProps, 'position'>;
13
13
  export type DialogRootSlotProps = PopupRootSlotProps;
14
14
  export type DialogPartProps = PopupPartProps;
15
15
  export type DialogPortalProps = PopupPortalProps;
package/dist/drawer.d.ts CHANGED
@@ -11,7 +11,7 @@ export declare const DrawerDescription: import("vue").Component;
11
11
  export declare const DrawerClose: import("vue").Component;
12
12
  export type DrawerOpenChangeHandler = PopupFactoryOptions['onOpenChange'];
13
13
  export type DrawerInteractOutsideHandler = NonNullable<PopupFactoryOptions['onInteractOutside']>;
14
- export type DrawerRootProps = Omit<PopupRootProps, 'align' | 'sideOffset' | 'collisionPadding' | 'collisionBoundary' | 'avoidCollisions' | 'arrowPadding' | 'hideWhenDetached' | 'strategy' | 'tracking'> & {
14
+ export type DrawerRootProps = Omit<PopupRootProps, 'align' | 'sideOffset' | 'collisionPadding' | 'collisionBoundary' | 'avoidCollisions' | 'arrowPadding' | 'hideWhenDetached' | 'position' | 'strategy' | 'tracking'> & {
15
15
  readonly side?: DrawerSide;
16
16
  readonly swipeToDismiss?: boolean;
17
17
  readonly swipeThreshold?: number;
@@ -40,6 +40,7 @@ export interface PopupFactoryOptions extends PositionOptions {
40
40
  readonly onOpenChange: (open: boolean) => void;
41
41
  readonly onUpdate: () => void;
42
42
  readonly manageVisibility?: boolean;
43
+ readonly position?: boolean;
43
44
  }
44
45
  export interface PopupComponentConfig {
45
46
  readonly scope: string;
@@ -69,6 +70,7 @@ export interface PopupRootProps extends PositionOptions {
69
70
  readonly closeOnInteractOutside?: boolean;
70
71
  readonly interactOutsideExclusions?: readonly HTMLElement[];
71
72
  readonly unmountOnExit?: boolean;
73
+ readonly position?: boolean;
72
74
  }
73
75
  export interface PopupPartProps {
74
76
  readonly as?: PrimitiveAs;
@@ -1,2 +1,2 @@
1
- import{Fragment,Teleport,computed,defineComponent,h,inject,mergeProps,nextTick,onBeforeUnmount,provide,ref,shallowRef,watch}from"vue";import{Primitive}from"../primitive.js";import{useHostDirection,useHostId,useHostPortalTarget}from"../host-provider.js";import{usePresence}from"./presence.js";import{useControlledStateInvariant}from"./controlled-state.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},initialFocus:{type:Object,default:void 0},autoFocus:{type:Boolean,default:true},restoreFocus:{type:Boolean,default:true},trapFocus:{type:Boolean,default:config.modal},closeOnInteractOutside:{type:Boolean,default:config.closeOnInteractOutside??false},interactOutsideExclusions:{type:Array,default:void 0},side:{type:String,default:config.defaultSide??"bottom"},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}},emits:{"update:open":_open=>true,interactOutside:_event=>true},slots:Object,setup(props,{emit,slots}){const controlled=useControlledStateInvariant(`${config.scope}Root`,"open",()=>props.open);const localOpen=ref(controlled?props.open:props.defaultOpen);const trigger=shallowRef();const anchor=shallowRef();const arrow=shallowRef();const overlay=shallowRef();const handle=shallowRef();const content=shallowRef();const connection=shallowRef();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 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 strategy=computed(()=>props.strategy);const update=()=>{if(connection.value===void 0)return;void connection.value.getSnapshot().revision};const disconnect=()=>{connection.value?.disconnect();connection.value=void 0};const connect=()=>{if(content.value===void 0)return;disconnect();connection.value=config.create({root:content.value,...trigger.value===void 0?{}:{trigger:trigger.value},...anchor.value===void 0?{}:{anchor:anchor.value},...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:descriptionID,...props.initialFocus===void 0?{}:{initialFocus:props.initialFocus},autoFocus:props.autoFocus,restoreFocus:props.restoreFocus,trapFocus:props.trapFocus,closeOnInteractOutside:props.closeOnInteractOutside,...props.interactOutsideExclusions===void 0?{}:{interactOutsideExclusions:props.interactOutsideExclusions},side:props.side,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,onOpenChange:next=>{if(!controlled)localOpen.value=next;emit("update:open",next)},onInteractOutside:event=>{emit("interactOutside",event)},onUpdate:update});update()};let connectScheduled=false;let destroyed=false;const scheduleConnect=()=>{if(connectScheduled||destroyed||props.unmountOnExit&&!localOpen.value)return;connectScheduled=true;void nextTick(()=>{connectScheduled=false;if(!destroyed)connect()})};const elements={trigger,anchor,arrow,overlay,handle,content};const registerElement=(part,element)=>{const target=elements[part];if(target.value===element)return;target.value=element;if(content.value===void 0)disconnect();else scheduleConnect()};const activateTrigger=event=>{if(event?.defaultPrevented===true||connection.value!==void 0||props.disabled||localOpen.value)return;if(!controlled)localOpen.value=true;emit("update:open",true)};const deactivateTrigger=event=>{if(event?.defaultPrevented===true||connection.value!==void 0||!localOpen.value)return;if(!controlled)localOpen.value=false;emit("update:open",false)};watch(()=>props.open,next=>{if(!controlled||next===void 0)return;if(connection.value===void 0){localOpen.value=next;return}const result=connection.value.syncControlledValue(next);if(!result.ok)throw new TypeError(`${config.scope} controlled open state could not be synchronized.`);localOpen.value=next});watch([()=>props.disabled,()=>props.modal,()=>props.label,()=>props.initialFocus,()=>props.autoFocus,()=>props.restoreFocus,()=>props.trapFocus,()=>props.closeOnInteractOutside,()=>props.interactOutsideExclusions,()=>props.side,()=>props.swipeToDismiss,()=>props.swipeThreshold,()=>props.swipeVelocityThreshold,()=>props.align,()=>props.sideOffset,()=>props.collisionPadding,()=>props.collisionBoundary,()=>props.avoidCollisions,()=>props.arrowPadding,()=>props.hideWhenDetached,()=>props.strategy,()=>props.tracking],connect);onBeforeUnmount(()=>{destroyed=true;disconnect()});provide(contextKey,{open,disabled,modal,unmountOnExit,label,contentID,titleID,descriptionID,side,strategy,registerElement,activateTrigger,deactivateTrigger,close:()=>{connection.value?.handleEvent("close")},refresh:()=>{connection.value?.refresh()}});return()=>h(Fragment,null,slots["default"]?.({open:open.value,disabled:props.disabled})??[])}});const Trigger=defineComponent({name:`Sectile${pascal(config.scope)}Trigger`,inheritAttrs:false,props:buttonProps,setup(props,{attrs,slots}){const root=useRoot("Trigger");return()=>h(Primitive,mergeProps(attrs,{as:props.as,asChild:props.asChild,elementRef:element=>{root.registerElement("trigger",element instanceof HTMLElement?element:void 0)},...config.triggerMode==="click"?{onClick:root.activateTrigger}:{onFocus:root.activateTrigger,onBlur:root.deactivateTrigger,onMouseenter:root.activateTrigger,onMouseleave:root.deactivateTrigger},type:props.as==="button"?"button":void 0,disabled:root.disabled.value,"aria-haspopup":config.role==="tooltip"?void 0:"dialog","aria-expanded":config.triggerMode==="click"?String(root.open.value):void 0,"aria-controls":config.role==="tooltip"?void 0:root.contentID,"aria-describedby":config.role==="tooltip"?root.contentID:void 0,"data-scope":config.scope,"data-part":"trigger","data-state":root.open.value?"open":"closed"}),slots)}});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 present=usePresence(root.open,element);watch(present,async()=>{await nextTick();root.refresh()},{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:config.role,hidden:!present.value,dir:direction.value,style:config.positioned===true?{position:root.strategy.value,visibility:element.value===void 0?"hidden":void 0}:void 0,"aria-modal":config.role==="tooltip"?void 0:String(root.modal.value),"aria-label":root.label.value,"aria-labelledby":root.label.value===void 0?root.titleID:void 0,"aria-describedby":root.descriptionID,"data-scope":config.scope,"data-part":"content","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 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);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("overlay",node)},hidden:!present.value,"aria-hidden":"true","data-scope":config.scope,"data-part":"overlay","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 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=defineComponent({name:`Sectile${pascal(config.scope)}Portal`,inheritAttrs:false,props:{to:{type:[String,Object],default:void 0},disabled:{type:Boolean,default:false},defer:{type:Boolean,default:false}},setup(props,{slots}){const portalTarget=useHostPortalTarget();return()=>h(Teleport,{to:props.to??portalTarget.value??"body",disabled:props.disabled,defer:props.defer},slots["default"]?.())}});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 swipeDirection(side){return side==="top"?"up":side==="bottom"?"down":side}export{createPopupComponents};
1
+ import{Fragment,Teleport,computed,defineComponent,h,inject,mergeProps,nextTick,onBeforeUnmount,provide,ref,shallowRef,watch}from"vue";import{Primitive}from"../primitive.js";import{useHostDirection,useHostId,useHostPortalTarget}from"../host-provider.js";import{usePresence}from"./presence.js";import{useControlledStateInvariant}from"./controlled-state.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},initialFocus:{type:Object,default:void 0},autoFocus:{type:Boolean,default:true},restoreFocus:{type:Boolean,default:true},trapFocus:{type:Boolean,default:config.modal},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}},emits:{"update:open":_open=>true,interactOutside:_event=>true},slots:Object,setup(props,{emit,slots}){const controlled=useControlledStateInvariant(`${config.scope}Root`,"open",()=>props.open);const localOpen=ref(controlled?props.open:props.defaultOpen);const trigger=shallowRef();const anchor=shallowRef();const arrow=shallowRef();const overlay=shallowRef();const handle=shallowRef();const content=shallowRef();const connection=shallowRef();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 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=()=>{if(connection.value===void 0)return;void connection.value.getSnapshot().revision};const disconnect=()=>{connection.value?.disconnect();connection.value=void 0};const connect=()=>{if(content.value===void 0)return;disconnect();connection.value=config.create({root:content.value,...trigger.value===void 0?{}:{trigger:trigger.value},...anchor.value===void 0?{}:{anchor:anchor.value},...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:descriptionID,...props.initialFocus===void 0?{}:{initialFocus:props.initialFocus},autoFocus:props.autoFocus,restoreFocus:props.restoreFocus,trapFocus:props.trapFocus,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,onOpenChange:next=>{if(!controlled)localOpen.value=next;emit("update:open",next)},onInteractOutside:event=>{emit("interactOutside",event)},onUpdate:update});update()};let connectScheduled=false;let destroyed=false;const scheduleConnect=()=>{if(connectScheduled||destroyed||props.unmountOnExit&&!localOpen.value)return;connectScheduled=true;void nextTick(()=>{connectScheduled=false;if(!destroyed)connect()})};const elements={trigger,anchor,arrow,overlay,handle,content};const registerElement=(part,element)=>{const target=elements[part];if(target.value===element)return;target.value=element;if(content.value===void 0)disconnect();else scheduleConnect()};const activateTrigger=event=>{if(event?.defaultPrevented===true||connection.value!==void 0||props.disabled||localOpen.value)return;if(!controlled)localOpen.value=true;emit("update:open",true)};const deactivateTrigger=event=>{if(event?.defaultPrevented===true||connection.value!==void 0||!localOpen.value)return;if(!controlled)localOpen.value=false;emit("update:open",false)};watch(()=>props.open,next=>{if(!controlled||next===void 0)return;if(connection.value===void 0){localOpen.value=next;return}const result=connection.value.syncControlledValue(next);if(!result.ok)throw new TypeError(`${config.scope} controlled open state could not be synchronized.`);localOpen.value=next});watch([()=>props.disabled,()=>props.modal,()=>props.label,()=>props.initialFocus,()=>props.autoFocus,()=>props.restoreFocus,()=>props.trapFocus,()=>props.closeOnInteractOutside,()=>props.interactOutsideExclusions,()=>props.side,()=>props.position,()=>props.swipeToDismiss,()=>props.swipeThreshold,()=>props.swipeVelocityThreshold,()=>props.align,()=>props.sideOffset,()=>props.collisionPadding,()=>props.collisionBoundary,()=>props.avoidCollisions,()=>props.arrowPadding,()=>props.hideWhenDetached,()=>props.strategy,()=>props.tracking],connect);onBeforeUnmount(()=>{destroyed=true;disconnect()});provide(contextKey,{open,disabled,modal,unmountOnExit,label,contentID,titleID,descriptionID,side,position,strategy,registerElement,activateTrigger,deactivateTrigger,close:()=>{connection.value?.handleEvent("close")},refresh:()=>{connection.value?.refresh()}});return()=>h(Fragment,null,slots["default"]?.({open:open.value,disabled:props.disabled})??[])}});const Trigger=defineComponent({name:`Sectile${pascal(config.scope)}Trigger`,inheritAttrs:false,props:buttonProps,setup(props,{attrs,slots}){const root=useRoot("Trigger");return()=>h(Primitive,mergeProps(attrs,{as:props.as,asChild:props.asChild,elementRef:element=>{root.registerElement("trigger",element instanceof HTMLElement?element:void 0)},...config.triggerMode==="click"?{onClick:root.activateTrigger}:{onFocus:root.activateTrigger,onBlur:root.deactivateTrigger,onMouseenter:root.activateTrigger,onMouseleave:root.deactivateTrigger},type:props.as==="button"?"button":void 0,disabled:root.disabled.value,"aria-haspopup":config.role==="tooltip"?void 0:"dialog","aria-expanded":config.triggerMode==="click"?String(root.open.value):void 0,"aria-controls":config.role==="tooltip"?void 0:root.contentID,"aria-describedby":config.role==="tooltip"?root.contentID:void 0,"data-scope":config.scope,"data-part":"trigger","data-state":root.open.value?"open":"closed"}),slots)}});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 present=usePresence(root.open,element);watch(present,async()=>{await nextTick();root.refresh()},{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:config.role,hidden:!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":config.role==="tooltip"?void 0:String(root.modal.value),"aria-label":root.label.value,"aria-labelledby":root.label.value===void 0?root.titleID:void 0,"aria-describedby":root.descriptionID,"data-scope":config.scope,"data-part":"content","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 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);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("overlay",node)},hidden:!present.value,"aria-hidden":"true","data-scope":config.scope,"data-part":"overlay","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 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=defineComponent({name:`Sectile${pascal(config.scope)}Portal`,inheritAttrs:false,props:{to:{type:[String,Object],default:void 0},disabled:{type:Boolean,default:false},defer:{type:Boolean,default:false}},setup(props,{slots}){const portalTarget=useHostPortalTarget();return()=>h(Teleport,{to:props.to??portalTarget.value??"body",disabled:props.disabled,defer:props.defer},slots["default"]?.())}});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 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/internal/popup.ts"],"mappings":"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","names":[],"file":"popup.js"}
1
+ {"version":3,"sources":["../../src/internal/popup.ts"],"mappings":"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","names":[],"file":"popup.js"}
package/dist/listbox.js CHANGED
@@ -1,2 +1,2 @@
1
- import{computed,defineComponent,h,inject,mergeProps,nextTick,provide,shallowRef,watch}from"vue";import{DEFAULT_LISTBOX_SELECTION_MODE,createListboxControllerFromItems,getListboxItemAttributes,getListboxRootAttributes}from"@sectile/dom/listbox";import{Primitive}from"./primitive.js";import{visuallyHiddenInputStyle}from"./internal/native-input.js";import{hiddenSelectSubmissionCapabilities,useCompositeFormControl}from"./internal/form-control.js";import{useHostDirection,useHostId}from"./host-provider.js";import{reconcileCollectionState,sameIDs}from"./internal/collection.js";import{useControlledStateInvariant}from"./internal/controlled-state.js";const listboxRootContextKey=Symbol("SectileListboxRoot");const listboxItemContextKey=Symbol("SectileListboxItem");const listboxPartProps={as:{type:[String,Object,Function],default:"span"},asChild:{type:Boolean,default:false}};const ListboxRoot=defineComponent({name:"SectileListboxRoot",inheritAttrs:false,props:{items:{type:Array,required:true},selectionMode:{type:String,default:DEFAULT_LISTBOX_SELECTION_MODE},modelValue:{type:[String,Array],default:void 0},defaultValue:{type:[String,Array],default:void 0},disabledItems:{type:Array,default:()=>[]},disabled:{type:Boolean,default:false},readonly:{type:Boolean,default:false},orientation:{type:String,default:"vertical"},name:{type:String,default:void 0},form:{type:String,default:void 0},required:{type:Boolean,default:false},textValue:{type:Function,default:void 0},as:{type:[String,Object,Function],default:"div"},asChild:{type:Boolean,default:false}},emits:{"update:modelValue":_value=>true,highlight:_value=>true,activate:_value=>true},slots:Object,setup(props,{attrs,emit,slots}){const direction=useHostDirection();const instanceID=useHostId();const itemID=id=>`sectile-listbox-${instanceID}-option-${encodeURIComponent(id).replaceAll("%","-")}`;const rootElement=shallowRef(null);const submissionElement=shallowRef(null);let controllerProps=snapshotListboxControllerProps({...props,direction:direction.value});const participation=useCompositeFormControl({root:rootElement,submissions:[{element:submissionElement,capabilities:hiddenSelectSubmissionCapabilities}],reset:()=>{queueMicrotask(()=>{const next=controlled?toIDs(props.modelValue,props.selectionMode):initialValue;controller.value=createController(controlled,next,next[0]??firstEnabledItem(controllerProps)??null,controllerProps,emit);snapshot.value=controller.value.getSnapshot()})}});const controlled=useControlledStateInvariant("ListboxRoot","modelValue",()=>props.modelValue);const initialValue=toIDs(controlled?props.modelValue:props.defaultValue,props.selectionMode);const controller=shallowRef(createController(controlled,initialValue,initialValue[0]??firstEnabledItem(controllerProps)??null,controllerProps,emit));const snapshot=shallowRef(controller.value.getSnapshot());const rebuild=()=>{const nextControllerProps=snapshotListboxControllerProps({...props,direction:direction.value});if(sameListboxControllerProps(controllerProps,nextControllerProps)){return}const requested=controlled?toIDs(props.modelValue,props.selectionMode):snapshot.value.state.selection.selected;const reconciled=reconcileCollectionState(nextControllerProps.items,requested,snapshot.value.state.cursor.current,nextControllerProps.disabledItems,nextControllerProps.selectionMode);controller.value=createController(controlled,reconciled.selected,reconciled.current,nextControllerProps,emit);controllerProps=nextControllerProps;snapshot.value=controller.value.getSnapshot();if(controlled&&!sameIDs(requested,reconciled.selected)){emit("update:modelValue",fromIDs(reconciled.selected,props.selectionMode))}};watch(()=>props.modelValue,value=>{if(!controlled||value===void 0)return;const result=controller.value.syncControlledValues({value:toIDs(value,props.selectionMode)});if(!result.ok)throw new TypeError(result.error.message);snapshot.value=result.value});watch([()=>props.items,()=>props.selectionMode,()=>props.disabledItems,()=>props.disabled,()=>props.readonly,()=>props.orientation,()=>props.textValue,direction],rebuild);const selectedIDs=computed(()=>snapshot.value.state.selection.selected);const selectedIDSet=computed(()=>new Set(selectedIDs.value));const highlightedValue=computed(()=>snapshot.value.state.cursor.current);const disabled=computed(()=>props.disabled);const readonly=computed(()=>props.readonly);const disabledItems=computed(()=>new Set(props.disabledItems));const slotProps=computed(()=>Object.freeze({value:fromIDs(selectedIDs.value,props.selectionMode),highlightedValue:highlightedValue.value,disabled:disabled.value,readonly:readonly.value}));const applyResult=(result,root)=>{if(!result.ok)return false;snapshot.value=result.snapshot;applyEffects(result.commands,emit);if(root!==void 0)void nextTick(()=>root.focus());return true};const select=(id,target)=>{const event=props.selectionMode==="multiple"?{type:"toggle",id}:{type:"activate",id};applyResult(controller.value.handleEvent(event),target.closest('[role="listbox"]'))};const handleKeydown=event=>{const result=controller.value.handleKeyboardInput(event);if(!applyResult(result,event.currentTarget))return;event.preventDefault()};provide(listboxRootContextKey,{selectedIDs,selectedIDSet,highlightedValue,disabled,readonly,disabledItems,itemID,select});const rootAttributes=computed(()=>getListboxRootAttributes({selectionMode:props.selectionMode,orientation:props.orientation,direction:direction.value,disabled:props.disabled,readOnly:props.readonly,...highlightedValue.value===null?{}:{activeDescendantID:itemID(highlightedValue.value)}}));return()=>{const root=h(Primitive,mergeProps(attrs,rootAttributes.value,{as:props.as,asChild:props.asChild,onKeydown:handleKeydown,elementRef:element=>{rootElement.value=element}},participation.controlProps.value),{default:()=>slots["default"]?.(slotProps.value)});if(!participation.participating&&props.name===void 0&&props.form===void 0&&!props.required)return root;return[root,h("select",{ref:submissionElement,name:props.name,form:props.form,required:props.required,multiple:props.selectionMode==="multiple",tabindex:-1,"aria-hidden":"true",style:visuallyHiddenInputStyle},props.items.map(id=>h("option",{value:id,selected:selectedIDSet.value.has(id)},id)))]}}});const ListboxItem=defineComponent({name:"SectileListboxItem",inheritAttrs:false,props:{value:{type:String,required:true},disabled:{type:Boolean,default:false},as:{type:[String,Object,Function],default:"div"},asChild:{type:Boolean,default:false}},slots:Object,setup(props,{attrs,slots}){const root=useListboxRootContext("ListboxItem");const slotProps=computed(()=>Object.freeze({value:props.value,selected:root.selectedIDSet.value.has(props.value),highlighted:root.highlightedValue.value===props.value,disabled:root.disabled.value||props.disabled||root.disabledItems.value.has(props.value)}));provide(listboxItemContextKey,{slotProps});const attributes=computed(()=>getListboxItemAttributes({cursor:{current:root.highlightedValue.value},selection:{has:id=>root.selectedIDSet.value.has(id)}},{id:props.value,disabled:props.disabled},{disabled:slotProps.value.disabled,elementID:root.itemID(props.value)}));const handleClick=event=>{if(!event.defaultPrevented&&!slotProps.value.disabled){root.select(props.value,event.currentTarget)}};return()=>h(Primitive,mergeProps(attrs,attributes.value,{as:props.as,asChild:props.asChild,onClick:handleClick}),{default:()=>slots["default"]?.(slotProps.value)})}});const ListboxItemText=defineComponent({name:"SectileListboxItemText",inheritAttrs:false,props:listboxPartProps,slots:Object,setup(props,{attrs,slots}){const item=useListboxItemContext("ListboxItemText");return()=>h(Primitive,mergeProps(attrs,{as:props.as,asChild:props.asChild,"data-scope":"listbox","data-part":"item-text","data-state":item.slotProps.value.selected?"checked":"unchecked"}),{default:()=>slots["default"]?.(item.slotProps.value)})}});const ListboxItemIndicator=defineComponent({name:"SectileListboxItemIndicator",inheritAttrs:false,props:listboxPartProps,slots:Object,setup(props,{attrs,slots}){const item=useListboxItemContext("ListboxItemIndicator");return()=>h(Primitive,mergeProps(attrs,{as:props.as,asChild:props.asChild,hidden:!item.slotProps.value.selected,"aria-hidden":"true","data-scope":"listbox","data-part":"item-indicator","data-state":item.slotProps.value.selected?"checked":"unchecked"}),{default:()=>slots["default"]?.(item.slotProps.value)})}});function useListboxRootContext(part){const context=inject(listboxRootContextKey);if(context===void 0)throw new TypeError(`${part} must be used inside ListboxRoot.`);return context}function snapshotListboxControllerProps(props){return Object.freeze({...props,items:Object.freeze([...props.items]),disabledItems:Object.freeze([...props.disabledItems])})}function sameListboxControllerProps(left,right){return sameIDs(left.items,right.items)&&sameIDs(left.disabledItems,right.disabledItems)&&left.selectionMode===right.selectionMode&&left.disabled===right.disabled&&left.readonly===right.readonly&&left.orientation===right.orientation&&left.direction===right.direction&&left.textValue===right.textValue}function firstEnabledItem(props){if(props.disabledItems.length===0)return props.items[0];const disabled=new Set(props.disabledItems);return props.items.find(id=>!disabled.has(id))}function useListboxItemContext(part){const context=inject(listboxItemContextKey);if(context===void 0)throw new TypeError(`${part} must be used inside ListboxItem.`);return context}function createController(controlled,value,highlightedValue,props,emit){const result=createListboxControllerFromItems({items:props.items,selectionMode:props.selectionMode,disabledItems:props.disabledItems,disabled:props.disabled,readOnly:props.readonly,orientation:props.orientation,direction:props.direction,typeahead:{textValue:props.textValue??(id=>id)},...controlled?{value}:{defaultValue:value},defaultHighlightedValue:highlightedValue,onValueChange:change=>emit("update:modelValue",fromIDs(change.value,props.selectionMode)),onHighlightedValueChange:change=>emit("highlight",change.value)});if(!result.ok)throw new TypeError(result.error.message);return result.value}function applyEffects(effects,emit){for(const effect of effects){if(effect.type==="dispatch-activation")emit("activate",effect.id)}}function toIDs(value,mode){if(value===void 0||value==="")return[];if(Array.isArray(value))return mode==="single"?value.slice(0,1):value;return[value]}function fromIDs(value,mode){return mode==="single"?value[0]??"":value}export{ListboxItem,ListboxItemIndicator,ListboxItemText,ListboxRoot};
1
+ import{computed,defineComponent,h,inject,mergeProps,nextTick,provide,shallowRef,watch}from"vue";import{DEFAULT_LISTBOX_SELECTION_MODE,createListboxControllerFromItems,getListboxItemAttributes,getListboxRootAttributes}from"@sectile/dom/listbox";import{stableIDElementToken}from"@sectile/dom/identity";import{Primitive}from"./primitive.js";import{visuallyHiddenInputStyle}from"./internal/native-input.js";import{hiddenSelectSubmissionCapabilities,useCompositeFormControl}from"./internal/form-control.js";import{useHostDirection,useHostId}from"./host-provider.js";import{reconcileCollectionState,sameIDs}from"./internal/collection.js";import{useControlledStateInvariant}from"./internal/controlled-state.js";const listboxRootContextKey=Symbol("SectileListboxRoot");const listboxItemContextKey=Symbol("SectileListboxItem");const listboxPartProps={as:{type:[String,Object,Function],default:"span"},asChild:{type:Boolean,default:false}};const ListboxRoot=defineComponent({name:"SectileListboxRoot",inheritAttrs:false,props:{items:{type:Array,required:true},selectionMode:{type:String,default:DEFAULT_LISTBOX_SELECTION_MODE},modelValue:{type:[String,Array],default:void 0},defaultValue:{type:[String,Array],default:void 0},disabledItems:{type:Array,default:()=>[]},disabled:{type:Boolean,default:false},readonly:{type:Boolean,default:false},orientation:{type:String,default:"vertical"},name:{type:String,default:void 0},form:{type:String,default:void 0},required:{type:Boolean,default:false},textValue:{type:Function,default:void 0},as:{type:[String,Object,Function],default:"div"},asChild:{type:Boolean,default:false}},emits:{"update:modelValue":_value=>true,highlight:_value=>true,activate:_value=>true},slots:Object,setup(props,{attrs,emit,slots}){const direction=useHostDirection();const instanceID=useHostId();const itemID=id=>`sectile-listbox-${instanceID}-option-${stableIDElementToken(id)}`;const rootElement=shallowRef(null);const submissionElement=shallowRef(null);let controllerProps=snapshotListboxControllerProps({...props,direction:direction.value});const participation=useCompositeFormControl({root:rootElement,submissions:[{element:submissionElement,capabilities:hiddenSelectSubmissionCapabilities}],reset:()=>{queueMicrotask(()=>{const next=controlled?toIDs(props.modelValue,props.selectionMode):initialValue;controller.value=createController(controlled,next,next[0]??firstEnabledItem(controllerProps)??null,controllerProps,emit);snapshot.value=controller.value.getSnapshot()})}});const controlled=useControlledStateInvariant("ListboxRoot","modelValue",()=>props.modelValue);const initialValue=toIDs(controlled?props.modelValue:props.defaultValue,props.selectionMode);const controller=shallowRef(createController(controlled,initialValue,initialValue[0]??firstEnabledItem(controllerProps)??null,controllerProps,emit));const snapshot=shallowRef(controller.value.getSnapshot());const rebuild=()=>{const nextControllerProps=snapshotListboxControllerProps({...props,direction:direction.value});if(sameListboxControllerProps(controllerProps,nextControllerProps)){return}const requested=controlled?toIDs(props.modelValue,props.selectionMode):snapshot.value.state.selection.selected;const reconciled=reconcileCollectionState(nextControllerProps.items,requested,snapshot.value.state.cursor.current,nextControllerProps.disabledItems,nextControllerProps.selectionMode);controller.value=createController(controlled,reconciled.selected,reconciled.current,nextControllerProps,emit);controllerProps=nextControllerProps;snapshot.value=controller.value.getSnapshot();if(controlled&&!sameIDs(requested,reconciled.selected)){emit("update:modelValue",fromIDs(reconciled.selected,props.selectionMode))}};watch(()=>props.modelValue,value=>{if(!controlled||value===void 0)return;const result=controller.value.syncControlledValues({value:toIDs(value,props.selectionMode)});if(!result.ok)throw new TypeError(result.error.message);snapshot.value=result.value});watch([()=>props.items,()=>props.selectionMode,()=>props.disabledItems,()=>props.disabled,()=>props.readonly,()=>props.orientation,()=>props.textValue,direction],rebuild);const selectedIDs=computed(()=>snapshot.value.state.selection.selected);const selectedIDSet=computed(()=>new Set(selectedIDs.value));const highlightedValue=computed(()=>snapshot.value.state.cursor.current);const disabled=computed(()=>props.disabled);const readonly=computed(()=>props.readonly);const disabledItems=computed(()=>new Set(props.disabledItems));const slotProps=computed(()=>Object.freeze({value:fromIDs(selectedIDs.value,props.selectionMode),highlightedValue:highlightedValue.value,disabled:disabled.value,readonly:readonly.value}));const applyResult=(result,root)=>{if(!result.ok)return false;snapshot.value=result.snapshot;applyEffects(result.commands,emit);if(root!==void 0)void nextTick(()=>root.focus());return true};const select=(id,target)=>{const event=props.selectionMode==="multiple"?{type:"toggle",id}:{type:"activate",id};applyResult(controller.value.handleEvent(event),target.closest('[role="listbox"]'))};const handleKeydown=event=>{const result=controller.value.handleKeyboardInput(event);if(!applyResult(result,event.currentTarget))return;event.preventDefault()};provide(listboxRootContextKey,{selectedIDs,selectedIDSet,highlightedValue,disabled,readonly,disabledItems,itemID,select});const rootAttributes=computed(()=>getListboxRootAttributes({selectionMode:props.selectionMode,orientation:props.orientation,direction:direction.value,disabled:props.disabled,readOnly:props.readonly,...highlightedValue.value===null?{}:{activeDescendantID:itemID(highlightedValue.value)}}));return()=>{const root=h(Primitive,mergeProps(attrs,rootAttributes.value,{as:props.as,asChild:props.asChild,onKeydown:handleKeydown,elementRef:element=>{rootElement.value=element}},participation.controlProps.value),{default:()=>slots["default"]?.(slotProps.value)});if(!participation.participating&&props.name===void 0&&props.form===void 0&&!props.required)return root;return[root,h("select",{ref:submissionElement,name:props.name,form:props.form,required:props.required,multiple:props.selectionMode==="multiple",tabindex:-1,"aria-hidden":"true",style:visuallyHiddenInputStyle},props.items.map(id=>h("option",{value:id,selected:selectedIDSet.value.has(id)},id)))]}}});const ListboxItem=defineComponent({name:"SectileListboxItem",inheritAttrs:false,props:{value:{type:String,required:true},disabled:{type:Boolean,default:false},as:{type:[String,Object,Function],default:"div"},asChild:{type:Boolean,default:false}},slots:Object,setup(props,{attrs,slots}){const root=useListboxRootContext("ListboxItem");const slotProps=computed(()=>Object.freeze({value:props.value,selected:root.selectedIDSet.value.has(props.value),highlighted:root.highlightedValue.value===props.value,disabled:root.disabled.value||props.disabled||root.disabledItems.value.has(props.value)}));provide(listboxItemContextKey,{slotProps});const attributes=computed(()=>getListboxItemAttributes({cursor:{current:root.highlightedValue.value},selection:{has:id=>root.selectedIDSet.value.has(id)}},{id:props.value,disabled:props.disabled},{disabled:slotProps.value.disabled,elementID:root.itemID(props.value)}));const handleClick=event=>{if(!event.defaultPrevented&&!slotProps.value.disabled){root.select(props.value,event.currentTarget)}};return()=>h(Primitive,mergeProps(attrs,attributes.value,{as:props.as,asChild:props.asChild,onClick:handleClick}),{default:()=>slots["default"]?.(slotProps.value)})}});const ListboxItemText=defineComponent({name:"SectileListboxItemText",inheritAttrs:false,props:listboxPartProps,slots:Object,setup(props,{attrs,slots}){const item=useListboxItemContext("ListboxItemText");return()=>h(Primitive,mergeProps(attrs,{as:props.as,asChild:props.asChild,"data-scope":"listbox","data-part":"item-text","data-state":item.slotProps.value.selected?"checked":"unchecked"}),{default:()=>slots["default"]?.(item.slotProps.value)})}});const ListboxItemIndicator=defineComponent({name:"SectileListboxItemIndicator",inheritAttrs:false,props:listboxPartProps,slots:Object,setup(props,{attrs,slots}){const item=useListboxItemContext("ListboxItemIndicator");return()=>h(Primitive,mergeProps(attrs,{as:props.as,asChild:props.asChild,hidden:!item.slotProps.value.selected,"aria-hidden":"true","data-scope":"listbox","data-part":"item-indicator","data-state":item.slotProps.value.selected?"checked":"unchecked"}),{default:()=>slots["default"]?.(item.slotProps.value)})}});function useListboxRootContext(part){const context=inject(listboxRootContextKey);if(context===void 0)throw new TypeError(`${part} must be used inside ListboxRoot.`);return context}function snapshotListboxControllerProps(props){return Object.freeze({...props,items:Object.freeze([...props.items]),disabledItems:Object.freeze([...props.disabledItems])})}function sameListboxControllerProps(left,right){return sameIDs(left.items,right.items)&&sameIDs(left.disabledItems,right.disabledItems)&&left.selectionMode===right.selectionMode&&left.disabled===right.disabled&&left.readonly===right.readonly&&left.orientation===right.orientation&&left.direction===right.direction&&left.textValue===right.textValue}function firstEnabledItem(props){if(props.disabledItems.length===0)return props.items[0];const disabled=new Set(props.disabledItems);return props.items.find(id=>!disabled.has(id))}function useListboxItemContext(part){const context=inject(listboxItemContextKey);if(context===void 0)throw new TypeError(`${part} must be used inside ListboxItem.`);return context}function createController(controlled,value,highlightedValue,props,emit){const result=createListboxControllerFromItems({items:props.items,selectionMode:props.selectionMode,disabledItems:props.disabledItems,disabled:props.disabled,readOnly:props.readonly,orientation:props.orientation,direction:props.direction,typeahead:{textValue:props.textValue??(id=>id)},...controlled?{value}:{defaultValue:value},defaultHighlightedValue:highlightedValue,onValueChange:change=>emit("update:modelValue",fromIDs(change.value,props.selectionMode)),onHighlightedValueChange:change=>emit("highlight",change.value)});if(!result.ok)throw new TypeError(result.error.message);return result.value}function applyEffects(effects,emit){for(const effect of effects){if(effect.type==="dispatch-activation")emit("activate",effect.id)}}function toIDs(value,mode){if(value===void 0||value==="")return[];if(Array.isArray(value))return mode==="single"?value.slice(0,1):value;return[value]}function fromIDs(value,mode){return mode==="single"?value[0]??"":value}export{ListboxItem,ListboxItemIndicator,ListboxItemText,ListboxRoot};
2
2
  //# sourceMappingURL=listbox.js.map
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/listbox.ts"],"mappings":"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","names":[],"file":"listbox.js"}
1
+ {"version":3,"sources":["../src/listbox.ts"],"mappings":"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","names":[],"file":"listbox.js"}
package/dist/menu.d.ts CHANGED
@@ -1,5 +1,6 @@
1
1
  import { type PropType, type SlotsType, type VNodeChild } from 'vue';
2
2
  import { type MenuItemDefinition, type MenuPolicies } from '@sectile/dom/menu';
3
+ import type { PositionBoundary, PositionOptions, PositionPadding, PositionStrategy, PositionTracking } from '@sectile/dom/position';
3
4
  import { type PrimitiveAs } from './primitive.js';
4
5
  export interface MenuRootProps {
5
6
  readonly items: readonly MenuItemDefinition<string>[];
@@ -13,9 +14,10 @@ export interface MenuRootProps {
13
14
  readonly asChild?: boolean;
14
15
  }
15
16
  export type MenuTextValueResolver = NonNullable<MenuRootProps['textValue']>;
16
- export interface MenuButtonRootProps extends MenuRootProps {
17
+ export interface MenuButtonRootProps extends MenuRootProps, Omit<PositionOptions, 'arrowPadding'> {
17
18
  readonly open?: boolean;
18
19
  readonly defaultOpen?: boolean;
20
+ readonly position?: boolean;
19
21
  }
20
22
  export interface MenuRootSlotProps {
21
23
  readonly open: boolean;
@@ -365,6 +367,46 @@ export declare const MenuButtonRoot: import("vue").DefineComponent<import("vue")
365
367
  readonly type: BooleanConstructor;
366
368
  readonly default: false;
367
369
  };
370
+ readonly position: {
371
+ readonly type: BooleanConstructor;
372
+ readonly default: true;
373
+ };
374
+ readonly side: {
375
+ readonly type: PropType<'top' | 'right' | 'bottom' | 'left'>;
376
+ readonly default: 'bottom';
377
+ };
378
+ readonly align: {
379
+ readonly type: PropType<'start' | 'center' | 'end'>;
380
+ readonly default: 'start';
381
+ };
382
+ readonly sideOffset: {
383
+ readonly type: NumberConstructor;
384
+ readonly default: 8;
385
+ };
386
+ readonly collisionPadding: {
387
+ readonly type: PropType<PositionPadding>;
388
+ readonly default: 8;
389
+ };
390
+ readonly collisionBoundary: {
391
+ readonly type: PropType<PositionBoundary>;
392
+ readonly default: undefined;
393
+ };
394
+ readonly avoidCollisions: {
395
+ readonly type: BooleanConstructor;
396
+ readonly default: true;
397
+ };
398
+ readonly hideWhenDetached: {
399
+ readonly type: BooleanConstructor;
400
+ readonly default: false;
401
+ };
402
+ readonly strategy: {
403
+ readonly type: PropType<PositionStrategy>;
404
+ readonly default: 'absolute';
405
+ };
406
+ readonly tracking: {
407
+ readonly type: PropType<PositionTracking>;
408
+ readonly default: 'events';
409
+ };
368
410
  }>, () => VNodeChild, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {
369
411
  'update:open': (_value: boolean) => boolean;
370
412
  invoke: (_value: string) => boolean;
@@ -413,6 +455,46 @@ export declare const MenuButtonRoot: import("vue").DefineComponent<import("vue")
413
455
  readonly type: BooleanConstructor;
414
456
  readonly default: false;
415
457
  };
458
+ readonly position: {
459
+ readonly type: BooleanConstructor;
460
+ readonly default: true;
461
+ };
462
+ readonly side: {
463
+ readonly type: PropType<'top' | 'right' | 'bottom' | 'left'>;
464
+ readonly default: 'bottom';
465
+ };
466
+ readonly align: {
467
+ readonly type: PropType<'start' | 'center' | 'end'>;
468
+ readonly default: 'start';
469
+ };
470
+ readonly sideOffset: {
471
+ readonly type: NumberConstructor;
472
+ readonly default: 8;
473
+ };
474
+ readonly collisionPadding: {
475
+ readonly type: PropType<PositionPadding>;
476
+ readonly default: 8;
477
+ };
478
+ readonly collisionBoundary: {
479
+ readonly type: PropType<PositionBoundary>;
480
+ readonly default: undefined;
481
+ };
482
+ readonly avoidCollisions: {
483
+ readonly type: BooleanConstructor;
484
+ readonly default: true;
485
+ };
486
+ readonly hideWhenDetached: {
487
+ readonly type: BooleanConstructor;
488
+ readonly default: false;
489
+ };
490
+ readonly strategy: {
491
+ readonly type: PropType<PositionStrategy>;
492
+ readonly default: 'absolute';
493
+ };
494
+ readonly tracking: {
495
+ readonly type: PropType<PositionTracking>;
496
+ readonly default: 'events';
497
+ };
416
498
  }>> & Readonly<{
417
499
  onInvoke?: (_value: string) => any;
418
500
  "onUpdate:open"?: (_value: boolean) => any;
@@ -427,6 +509,16 @@ export declare const MenuButtonRoot: import("vue").DefineComponent<import("vue")
427
509
  readonly asChild: boolean;
428
510
  readonly open: boolean;
429
511
  readonly defaultOpen: boolean;
512
+ readonly position: boolean;
513
+ readonly side: "bottom" | "left" | "right" | "top";
514
+ readonly align: "center" | "end" | "start";
515
+ readonly sideOffset: number;
516
+ readonly collisionPadding: PositionPadding;
517
+ readonly collisionBoundary: PositionBoundary;
518
+ readonly avoidCollisions: boolean;
519
+ readonly hideWhenDetached: boolean;
520
+ readonly strategy: PositionStrategy;
521
+ readonly tracking: PositionTracking;
430
522
  }, SlotsType<{
431
523
  default: (props: MenuRootSlotProps) => VNodeChild;
432
524
  }>, {}, {}, string, import("vue").ComponentProvideOptions, true, {}, any>;