@sectile/vue 0.13.1 → 0.14.1

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.
@@ -9,7 +9,7 @@ export declare const AlertDialogContent: import("vue").Component;
9
9
  export declare const AlertDialogTitle: import("vue").Component;
10
10
  export declare const AlertDialogDescription: import("vue").Component;
11
11
  export declare const AlertDialogClose: import("vue").Component;
12
- export type AlertDialogRootProps = Omit<PopupRootProps, 'modal'>;
12
+ export type AlertDialogRootProps = Omit<PopupRootProps, 'modal' | 'position'>;
13
13
  export type AlertDialogRootSlotProps = PopupRootSlotProps;
14
14
  export type AlertDialogPartProps = PopupPartProps;
15
15
  export type AlertDialogPortalProps = PopupPortalProps;
@@ -1,8 +1,9 @@
1
1
  import { type PropType, type SlotsType, type VNodeChild } from 'vue';
2
2
  import { type CascadeSelectItemDefinition, type CascadeSelectPolicies } from '@sectile/dom/cascade-select';
3
+ import type { PositionBoundary, PositionOptions, PositionPadding, PositionStrategy, PositionTracking } from '@sectile/dom/position';
3
4
  import { type PrimitiveAs } from './primitive.js';
4
5
  import { type CascadeChoiceColumnProps, type CascadeChoiceColumnSlotProps, type CascadeChoiceItemProps, type CascadeChoiceItemSlotProps, type CascadeChoicePartProps, type CascadeChoiceRootState } from './internal/cascade-choice.js';
5
- export interface CascadeSelectRootProps {
6
+ export interface CascadeSelectRootProps extends Omit<PositionOptions, 'arrowPadding'> {
6
7
  readonly nodes: readonly CascadeSelectItemDefinition<string>[];
7
8
  readonly modelValue?: string | null;
8
9
  readonly defaultValue?: string | null;
@@ -12,6 +13,7 @@ export interface CascadeSelectRootProps {
12
13
  readonly disabled?: boolean;
13
14
  readonly?: boolean;
14
15
  readonly label?: string;
16
+ readonly position?: boolean;
15
17
  readonly name?: string;
16
18
  readonly form?: string;
17
19
  readonly required?: boolean;
@@ -78,6 +80,46 @@ export declare const CascadeSelectRoot: import("vue").DefineComponent<import("vu
78
80
  type: BooleanConstructor;
79
81
  default: boolean;
80
82
  };
83
+ position: {
84
+ type: BooleanConstructor;
85
+ default: boolean;
86
+ };
87
+ side: {
88
+ type: PropType<'top' | 'right' | 'bottom' | 'left'>;
89
+ default: string;
90
+ };
91
+ align: {
92
+ type: PropType<'start' | 'center' | 'end'>;
93
+ default: string;
94
+ };
95
+ sideOffset: {
96
+ type: NumberConstructor;
97
+ default: number;
98
+ };
99
+ collisionPadding: {
100
+ type: PropType<PositionPadding>;
101
+ default: number;
102
+ };
103
+ collisionBoundary: {
104
+ type: PropType<PositionBoundary>;
105
+ default: undefined;
106
+ };
107
+ avoidCollisions: {
108
+ type: BooleanConstructor;
109
+ default: boolean;
110
+ };
111
+ hideWhenDetached: {
112
+ type: BooleanConstructor;
113
+ default: boolean;
114
+ };
115
+ strategy: {
116
+ type: PropType<PositionStrategy>;
117
+ default: string;
118
+ };
119
+ tracking: {
120
+ type: PropType<PositionTracking>;
121
+ default: string;
122
+ };
81
123
  textValue: {
82
124
  type: PropType<CascadeSelectTextValueResolver>;
83
125
  default: undefined;
@@ -147,6 +189,46 @@ export declare const CascadeSelectRoot: import("vue").DefineComponent<import("vu
147
189
  type: BooleanConstructor;
148
190
  default: boolean;
149
191
  };
192
+ position: {
193
+ type: BooleanConstructor;
194
+ default: boolean;
195
+ };
196
+ side: {
197
+ type: PropType<'top' | 'right' | 'bottom' | 'left'>;
198
+ default: string;
199
+ };
200
+ align: {
201
+ type: PropType<'start' | 'center' | 'end'>;
202
+ default: string;
203
+ };
204
+ sideOffset: {
205
+ type: NumberConstructor;
206
+ default: number;
207
+ };
208
+ collisionPadding: {
209
+ type: PropType<PositionPadding>;
210
+ default: number;
211
+ };
212
+ collisionBoundary: {
213
+ type: PropType<PositionBoundary>;
214
+ default: undefined;
215
+ };
216
+ avoidCollisions: {
217
+ type: BooleanConstructor;
218
+ default: boolean;
219
+ };
220
+ hideWhenDetached: {
221
+ type: BooleanConstructor;
222
+ default: boolean;
223
+ };
224
+ strategy: {
225
+ type: PropType<PositionStrategy>;
226
+ default: string;
227
+ };
228
+ tracking: {
229
+ type: PropType<PositionTracking>;
230
+ default: string;
231
+ };
150
232
  textValue: {
151
233
  type: PropType<CascadeSelectTextValueResolver>;
152
234
  default: undefined;
@@ -179,6 +261,16 @@ export declare const CascadeSelectRoot: import("vue").DefineComponent<import("vu
179
261
  name: string;
180
262
  form: string;
181
263
  required: boolean;
264
+ position: boolean;
265
+ side: "bottom" | "left" | "right" | "top";
266
+ align: "center" | "end" | "start";
267
+ sideOffset: number;
268
+ collisionPadding: PositionPadding;
269
+ collisionBoundary: PositionBoundary;
270
+ avoidCollisions: boolean;
271
+ hideWhenDetached: boolean;
272
+ strategy: PositionStrategy;
273
+ tracking: PositionTracking;
182
274
  textValue: (id: string) => string;
183
275
  policies: CascadeSelectPolicies<string>;
184
276
  as: PrimitiveAs;
@@ -1,2 +1,2 @@
1
- import{computed,defineComponent,h,inject,mergeProps,onBeforeUnmount,onMounted,provide,shallowRef,watch}from"vue";import{createCascadeSelect}from"@sectile/dom/cascade-select";import{Primitive}from"./primitive.js";import{visuallyHiddenInputStyle}from"./internal/native-input.js";import{provideFormControlOwner}from"./internal/form-control.js";import{hiddenSelectSubmissionCapabilities,useCompositeFormControl}from"./internal/form-control.js";import{useControlledStateInvariant}from"./internal/controlled-state.js";import{cascadeBranchItems,cascadeChoicePartProps,cascadeItemPath,createCascadeChoiceParts,initialCascadeColumns}from"./internal/cascade-choice.js";const rootKey=Symbol("SectileCascadeSelectRoot");const itemKey=Symbol("SectileCascadeSelectItem");const partProps=cascadeChoicePartProps;const CascadeSelectRoot=defineComponent({name:"SectileCascadeSelectRoot",inheritAttrs:false,props:{nodes:{type:Array,required:true},modelValue:{type:String,default:void 0},defaultValue:{type:String,default:null},open:{type:Boolean,default:void 0},defaultOpen:{type:Boolean,default:false},disabledItems:{type:Array,default:()=>[]},disabled:{type:Boolean,default:false},readonly:{type:Boolean,default:false},label:{type:String,default:void 0},name:{type:String,default:void 0},form:{type:String,default:void 0},required:{type:Boolean,default:false},textValue:{type:Function,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:open":_value=>true,highlight:_value=>true},slots:Object,setup(props,{attrs,emit,slots}){const root=shallowRef(null);const trigger=shallowRef(null);const popup=shallowRef();const submission=shallowRef(null);const connection=shallowRef();const participation=useCompositeFormControl({root,focusTarget:trigger,submissions:[{element:submission,capabilities:hiddenSelectSubmissionCapabilities}]});provideFormControlOwner();const localValue=shallowRef(props.modelValue!==void 0?props.modelValue:props.defaultValue);const initialValuePath=cascadeItemPath(props.nodes,localValue.value);const initialBranchPath=initialValuePath.slice(0,-1);const localOpen=shallowRef(props.open??props.defaultOpen);const highlighted=shallowRef(localValue.value);const path=shallowRef(initialBranchPath);const columns=shallowRef(initialCascadeColumns(props.nodes,initialBranchPath));const valuePath=shallowRef(initialValuePath);const valueControlled=useControlledStateInvariant("CascadeSelectRoot","modelValue",()=>props.modelValue);const openControlled=useControlledStateInvariant("CascadeSelectRoot","open",()=>props.open);const state=computed(()=>Object.freeze({value:props.modelValue!==void 0?props.modelValue:localValue.value,valuePath:valuePath.value,highlightedValue:highlighted.value,path:path.value,columns:columns.value,open:props.open??localOpen.value,disabled:props.disabled,readonly:props.readonly}));const refresh=()=>{const current=connection.value?.getSnapshot().state;if(current===void 0)return;localValue.value=current.value;localOpen.value=current.open;highlighted.value=current.highlighted;path.value=current.path;columns.value=connection.value?.getColumns()??[];valuePath.value=connection.value?.getValuePath()??[];refreshItems()};const refreshItems=()=>{if(popup.value===void 0||connection.value===void 0)return;popup.value.querySelectorAll("[data-sectile-cascade-select-id]").forEach(element=>{const id=element.dataset["sectileCascadeSelectId"];if(id!==void 0)connection.value?.setItemAttributes(element,id,props.disabledItems.includes(id))})};const connect=()=>{connection.value?.disconnect();if(root.value===null||trigger.value===null||popup.value===void 0)return;const branchIDs=cascadeBranchItems(props.nodes);const leafIDs=new Set(props.nodes.filter(node=>!branchIDs.has(node.id)).map(node=>node.id));const requestedValue=valueControlled?props.modelValue:localValue.value;const value=requestedValue!==null&&leafIDs.has(requestedValue)?requestedValue:null;localValue.value=value;if(valueControlled&&requestedValue!==value)emit("update:modelValue",value);connection.value=createCascadeSelect({root:root.value,trigger:trigger.value,popup:popup.value,nodes:props.nodes,disabledItems:props.disabledItems,...props.policies===void 0?{}:{policies:props.policies},...valueControlled?{value}:{defaultValue:value},...openControlled?{open:props.open}:{defaultOpen:localOpen.value},disabled:props.disabled,readOnly:props.readonly,...props.label===void 0?{}:{label:props.label},onValueChange:next=>{localValue.value=next;emit("update:modelValue",next)},onHighlightedValueChange:next=>{highlighted.value=next;emit("highlight",next)},onOpenChange:next=>{localOpen.value=next;emit("update:open",next)},onUpdate:refresh});refresh()};const branches=computed(()=>cascadeBranchItems(props.nodes));provide(rootKey,{state,label:computed(()=>props.label),textValue:computed(()=>props.textValue??(id=>id)),disabledItems:computed(()=>new Set(props.disabledItems)),branchItems:branches,registerTrigger:element=>{trigger.value=element??null},registerPopup:element=>{popup.value=element},registerColumn:(element,depth,label)=>connection.value?.setColumnAttributes(element,depth===0?null:state.value.path[depth-1]??null,label),registerItem:(element,id,disabled)=>connection.value?.setItemAttributes(element,id,disabled)});onMounted(connect);onBeforeUnmount(()=>connection.value?.disconnect());watch([()=>props.nodes,()=>props.disabledItems,()=>props.disabled,()=>props.readonly,()=>props.label,()=>props.policies],connect);watch([()=>props.modelValue,()=>props.open],()=>{if(connection.value===void 0)return;const result=connection.value.syncControlledValues({...valueControlled?{value:props.modelValue}:{},...openControlled?{open:props.open}:{}});if(!result.ok)throw new TypeError(result.error.message);refresh()});return()=>{const visual=h(Primitive,mergeProps(attrs,{as:props.as,asChild:props.asChild,elementRef:node=>{root.value=node instanceof HTMLElement?node:null},"data-scope":"cascade-select","data-part":"root","data-state":state.value.open?"open":"closed"},participation.controlProps.value),{default:()=>slots["default"]?.(state.value)});if(!participation.participating&&props.name===void 0&&props.form===void 0&&!props.required)return visual;return[visual,h("select",{ref:element=>{submission.value=element instanceof HTMLSelectElement?element:null},name:props.name,form:props.form,required:props.required,disabled:props.disabled,value:state.value.value??"",tabindex:-1,"aria-hidden":"true",style:visuallyHiddenInputStyle},[h("option",{value:""}),...props.nodes.filter(node=>!branches.value.has(node.id)).map(node=>h("option",{value:node.id,disabled:props.disabledItems.includes(node.id)},props.textValue?.(node.id)??node.id))])]}}});const CascadeSelectTrigger=defineComponent({name:"SectileCascadeSelectTrigger",inheritAttrs:false,props:{as:{type:[String,Object,Function],default:"button"},asChild:{type:Boolean,default:false}},slots:Object,setup(props,{attrs,slots}){const root=useRoot("CascadeSelectTrigger");return()=>h(Primitive,mergeProps(attrs,{as:props.as,asChild:props.asChild,elementRef:node=>root.registerTrigger(node instanceof HTMLButtonElement?node:void 0),type:props.as==="button"?"button":void 0,disabled:root.state.value.disabled,"aria-haspopup":"listbox","aria-expanded":String(root.state.value.open),"data-scope":"cascade-select","data-part":"trigger","data-state":root.state.value.open?"open":"closed"}),{default:()=>slots["default"]?.(root.state.value)})}});const CascadeSelectValue=defineComponent({name:"SectileCascadeSelectValue",inheritAttrs:false,props:{placeholder:{type:String,default:""},separator:{type:String,default:" / "},...partProps},slots:Object,setup(props,{attrs,slots}){const root=useRoot("CascadeSelectValue");return()=>h(Primitive,mergeProps(attrs,{as:props.as,asChild:props.asChild,"data-scope":"cascade-select","data-part":"value","data-placeholder":root.state.value.value===null?"":void 0}),{default:()=>slots["default"]?.(root.state.value)??(root.state.value.value===null?props.placeholder:root.state.value.valuePath.map(root.textValue.value).join(props.separator))})}});const CascadeSelectContent=defineComponent({name:"SectileCascadeSelectContent",inheritAttrs:false,props:{as:{type:[String,Object,Function],default:"div"},asChild:{type:Boolean,default:false}},slots:Object,setup(props,{attrs,slots}){const root=useRoot("CascadeSelectContent");return()=>h(Primitive,mergeProps(attrs,{as:props.as,asChild:props.asChild,elementRef:node=>root.registerPopup(node instanceof HTMLElement?node:void 0),role:"group",hidden:!root.state.value.open,"aria-label":root.label.value,"data-scope":"cascade-select","data-part":"content","data-state":root.state.value.open?"open":"closed"}),{default:()=>slots["default"]?.(root.state.value)})}});const cascadeSelectParts=createCascadeChoiceParts({scope:"cascade-select",componentName:"CascadeSelect",itemAttribute:"data-sectile-cascade-select-id",rootKey,itemKey});const CascadeSelectColumn=cascadeSelectParts.Column;const CascadeSelectItem=cascadeSelectParts.Item;const CascadeSelectItemIndicator=cascadeSelectParts.ItemIndicator;const CascadeSelectItemChevron=cascadeSelectParts.ItemChevron;function useRoot(part){const root=inject(rootKey);if(root===void 0)throw new TypeError(`${part} must be used inside CascadeSelectRoot.`);return root}export{CascadeSelectColumn,CascadeSelectContent,CascadeSelectItem,CascadeSelectItemChevron,CascadeSelectItemIndicator,CascadeSelectRoot,CascadeSelectTrigger,CascadeSelectValue};
1
+ import{computed,defineComponent,h,inject,mergeProps,nextTick,onBeforeUnmount,onMounted,provide,shallowRef,watch}from"vue";import{createCascadeSelect}from"@sectile/dom/cascade-select";import{Primitive}from"./primitive.js";import{visuallyHiddenInputStyle}from"./internal/native-input.js";import{provideFormControlOwner}from"./internal/form-control.js";import{hiddenSelectSubmissionCapabilities,useCompositeFormControl}from"./internal/form-control.js";import{useControlledStateInvariant}from"./internal/controlled-state.js";import{cascadeBranchItems,cascadeChoicePartProps,cascadeItemPath,createCascadeChoiceParts,initialCascadeColumns}from"./internal/cascade-choice.js";const rootKey=Symbol("SectileCascadeSelectRoot");const itemKey=Symbol("SectileCascadeSelectItem");const partProps=cascadeChoicePartProps;const CascadeSelectRoot=defineComponent({name:"SectileCascadeSelectRoot",inheritAttrs:false,props:{nodes:{type:Array,required:true},modelValue:{type:String,default:void 0},defaultValue:{type:String,default:null},open:{type:Boolean,default:void 0},defaultOpen:{type:Boolean,default:false},disabledItems:{type:Array,default:()=>[]},disabled:{type:Boolean,default:false},readonly:{type:Boolean,default:false},label:{type:String,default:void 0},name:{type:String,default:void 0},form:{type:String,default:void 0},required:{type:Boolean,default:false},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"},textValue:{type:Function,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:open":_value=>true,highlight:_value=>true},slots:Object,setup(props,{attrs,emit,slots}){const root=shallowRef(null);const trigger=shallowRef(null);const popup=shallowRef();const submission=shallowRef(null);const connection=shallowRef();const participation=useCompositeFormControl({root,focusTarget:trigger,submissions:[{element:submission,capabilities:hiddenSelectSubmissionCapabilities}]});provideFormControlOwner();const localValue=shallowRef(props.modelValue!==void 0?props.modelValue:props.defaultValue);const initialValuePath=cascadeItemPath(props.nodes,localValue.value);const initialBranchPath=initialValuePath.slice(0,-1);const localOpen=shallowRef(props.open??props.defaultOpen);const highlighted=shallowRef(localValue.value);const path=shallowRef(initialBranchPath);const columns=shallowRef(initialCascadeColumns(props.nodes,initialBranchPath));const valuePath=shallowRef(initialValuePath);const valueControlled=useControlledStateInvariant("CascadeSelectRoot","modelValue",()=>props.modelValue);const openControlled=useControlledStateInvariant("CascadeSelectRoot","open",()=>props.open);const state=computed(()=>Object.freeze({value:props.modelValue!==void 0?props.modelValue:localValue.value,valuePath:valuePath.value,highlightedValue:highlighted.value,path:path.value,columns:columns.value,open:props.open??localOpen.value,disabled:props.disabled,readonly:props.readonly}));const refresh=()=>{const current=connection.value?.getSnapshot().state;if(current===void 0)return;localValue.value=current.value;localOpen.value=current.open;highlighted.value=current.highlighted;path.value=current.path;columns.value=connection.value?.getColumns()??[];valuePath.value=connection.value?.getValuePath()??[];refreshItems()};const refreshItems=()=>{if(popup.value===void 0||connection.value===void 0)return;popup.value.querySelectorAll("[data-sectile-cascade-select-id]").forEach(element=>{const id=element.dataset["sectileCascadeSelectId"];if(id!==void 0)connection.value?.setItemAttributes(element,id,props.disabledItems.includes(id))})};const connect=()=>{connection.value?.disconnect();if(root.value===null||trigger.value===null||popup.value===void 0)return;const branchIDs=cascadeBranchItems(props.nodes);const leafIDs=new Set(props.nodes.filter(node=>!branchIDs.has(node.id)).map(node=>node.id));const requestedValue=valueControlled?props.modelValue:localValue.value;const value=requestedValue!==null&&leafIDs.has(requestedValue)?requestedValue:null;localValue.value=value;if(valueControlled&&requestedValue!==value)emit("update:modelValue",value);connection.value=createCascadeSelect({root:root.value,trigger:trigger.value,popup:popup.value,nodes:props.nodes,disabledItems:props.disabledItems,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,...props.policies===void 0?{}:{policies:props.policies},...valueControlled?{value}:{defaultValue:value},...openControlled?{open:props.open}:{defaultOpen:localOpen.value},disabled:props.disabled,readOnly:props.readonly,...props.label===void 0?{}:{label:props.label},onValueChange:next=>{localValue.value=next;emit("update:modelValue",next)},onHighlightedValueChange:next=>{highlighted.value=next;emit("highlight",next)},onOpenChange:next=>{localOpen.value=next;emit("update:open",next)},onUpdate:refresh});refresh()};const branches=computed(()=>cascadeBranchItems(props.nodes));let mounted=false;let connectScheduled=false;const scheduleConnect=()=>{if(!mounted||connectScheduled)return;connectScheduled=true;void nextTick(()=>{connectScheduled=false;if(mounted)connect()})};provide(rootKey,{state,position:computed(()=>props.position),strategy:computed(()=>props.strategy),label:computed(()=>props.label),textValue:computed(()=>props.textValue??(id=>id)),disabledItems:computed(()=>new Set(props.disabledItems)),branchItems:branches,registerTrigger:element=>{const next=element??null;const changed=trigger.value!==next;trigger.value=next;if(changed)scheduleConnect()},registerPopup:element=>{const changed=popup.value!==element;popup.value=element;if(changed)scheduleConnect()},registerColumn:(element,depth,label)=>connection.value?.setColumnAttributes(element,depth===0?null:state.value.path[depth-1]??null,label),registerItem:(element,id,disabled)=>connection.value?.setItemAttributes(element,id,disabled)});onMounted(()=>{mounted=true;connect()});onBeforeUnmount(()=>{mounted=false;connection.value?.disconnect()});watch([()=>props.nodes,()=>props.disabledItems,()=>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.open],()=>{if(connection.value===void 0)return;const result=connection.value.syncControlledValues({...valueControlled?{value:props.modelValue}:{},...openControlled?{open:props.open}:{}});if(!result.ok)throw new TypeError(result.error.message);refresh()});const registerRoot=node=>{const next=node instanceof HTMLElement?node:null;const changed=root.value!==next;root.value=next;if(changed)scheduleConnect()};return()=>{const visual=h(Primitive,mergeProps(attrs,{as:props.as,asChild:props.asChild,elementRef:registerRoot,"data-scope":"cascade-select","data-part":"root","data-state":state.value.open?"open":"closed"},participation.controlProps.value),{default:()=>slots["default"]?.(state.value)});if(!participation.participating&&props.name===void 0&&props.form===void 0&&!props.required)return visual;return[visual,h("select",{ref:element=>{submission.value=element instanceof HTMLSelectElement?element:null},name:props.name,form:props.form,required:props.required,disabled:props.disabled,value:state.value.value??"",tabindex:-1,"aria-hidden":"true",style:visuallyHiddenInputStyle},[h("option",{value:""}),...props.nodes.filter(node=>!branches.value.has(node.id)).map(node=>h("option",{value:node.id,disabled:props.disabledItems.includes(node.id)},props.textValue?.(node.id)??node.id))])]}}});const CascadeSelectTrigger=defineComponent({name:"SectileCascadeSelectTrigger",inheritAttrs:false,props:{as:{type:[String,Object,Function],default:"button"},asChild:{type:Boolean,default:false}},slots:Object,setup(props,{attrs,slots}){const root=useRoot("CascadeSelectTrigger");const registerTrigger=node=>root.registerTrigger(node instanceof HTMLButtonElement?node:void 0);return()=>h(Primitive,mergeProps(attrs,{as:props.as,asChild:props.asChild,elementRef:registerTrigger,type:props.as==="button"?"button":void 0,disabled:root.state.value.disabled,"aria-haspopup":"listbox","aria-expanded":String(root.state.value.open),"data-scope":"cascade-select","data-part":"trigger","data-state":root.state.value.open?"open":"closed"}),{default:()=>slots["default"]?.(root.state.value)})}});const CascadeSelectValue=defineComponent({name:"SectileCascadeSelectValue",inheritAttrs:false,props:{placeholder:{type:String,default:""},separator:{type:String,default:" / "},...partProps},slots:Object,setup(props,{attrs,slots}){const root=useRoot("CascadeSelectValue");return()=>h(Primitive,mergeProps(attrs,{as:props.as,asChild:props.asChild,"data-scope":"cascade-select","data-part":"value","data-placeholder":root.state.value.value===null?"":void 0}),{default:()=>slots["default"]?.(root.state.value)??(root.state.value.value===null?props.placeholder:root.state.value.valuePath.map(root.textValue.value).join(props.separator))})}});const CascadeSelectContent=defineComponent({name:"SectileCascadeSelectContent",inheritAttrs:false,props:{as:{type:[String,Object,Function],default:"div"},asChild:{type:Boolean,default:false}},slots:Object,setup(props,{attrs,slots}){const root=useRoot("CascadeSelectContent");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:"group",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":"cascade-select","data-part":"content","data-state":root.state.value.open?"open":"closed"}),{default:()=>slots["default"]?.(root.state.value)})}});const cascadeSelectParts=createCascadeChoiceParts({scope:"cascade-select",componentName:"CascadeSelect",itemAttribute:"data-sectile-cascade-select-id",rootKey,itemKey});const CascadeSelectColumn=cascadeSelectParts.Column;const CascadeSelectItem=cascadeSelectParts.Item;const CascadeSelectItemIndicator=cascadeSelectParts.ItemIndicator;const CascadeSelectItemChevron=cascadeSelectParts.ItemChevron;function useRoot(part){const root=inject(rootKey);if(root===void 0)throw new TypeError(`${part} must be used inside CascadeSelectRoot.`);return root}export{CascadeSelectColumn,CascadeSelectContent,CascadeSelectItem,CascadeSelectItemChevron,CascadeSelectItemIndicator,CascadeSelectRoot,CascadeSelectTrigger,CascadeSelectValue};
2
2
  //# sourceMappingURL=cascade-select.js.map
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/cascade-select.ts"],"mappings":"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","names":[],"file":"cascade-select.js"}
1
+ {"version":3,"sources":["../src/cascade-select.ts"],"mappings":"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","names":[],"file":"cascade-select.js"}
@@ -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/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>;
package/dist/menu.js CHANGED
@@ -1,2 +1,2 @@
1
- import{Fragment,computed,defineComponent,h,inject,mergeProps,onBeforeUnmount,onMounted,provide,shallowRef,watch}from"vue";import{createMenu}from"@sectile/dom/menu";import{createMenuButton}from"@sectile/dom/menu-button";import{createMenubar}from"@sectile/dom/menubar";import{createNavigationMenu}from"@sectile/dom/navigation-menu";import{Primitive}from"./primitive.js";import{useHostDirection,useHostId}from"./host-provider.js";import{reconcileCollectionState}from"./internal/collection.js";import{useControlledStateInvariant}from"./internal/controlled-state.js";const key=Symbol("SectileMenuRoot");const partProps={as:{type:[String,Object,Function],default:"div"},asChild:{type:Boolean,default:false}};const commonProps={items:{type:Array,required:true},disabledItems:{type:Array,default:()=>[]},disabled:{type:Boolean,default:false},defaultHighlightedValue:{type:String,default:null},label:{type:String,default:void 0},textValue:{type:Function,default:void 0},policies:{type:Object,default:void 0},as:{type:[String,Object,Function],default:"div"},asChild:{type:Boolean,default:false}};const menuButtonProps={...commonProps,open:{type:Boolean,default:void 0},defaultOpen:{type:Boolean,default:false}};function createRoot(kind,rootProps,providerOnly=false){return defineComponent({name:kind==="menu-button"?"SectileMenuButtonRoot":kind==="menubar"?"SectileMenubarRoot":kind==="navigation-menu"?"SectileNavigationMenuRoot":"SectileMenuRoot",inheritAttrs:false,props:rootProps,emits:{"update:open":_value=>true,invoke:_value=>true},slots:Object,setup(props,{attrs,emit,slots}){const runtimeProps=props;const direction=useHostDirection();const baseID=useHostId();const root=shallowRef();const trigger=shallowRef();const connection=shallowRef();const openProp=runtimeProps.open;const open=shallowRef(kind==="menu-button"?openProp??runtimeProps.defaultOpen??false:true);const highlighted=shallowRef(runtimeProps.defaultHighlightedValue);const openPath=shallowRef([]);const controlled=useControlledStateInvariant("MenuButtonRoot","open",()=>kind==="menu-button"?runtimeProps.open:void 0);const state=computed(()=>({open:kind==="menu-button"&&runtimeProps.open!==void 0?runtimeProps.open:open.value,highlightedValue:highlighted.value,openPath:openPath.value,disabled:runtimeProps.disabled}));const refresh=()=>{const snapshot=connection.value?.getSnapshot().state;if(snapshot===void 0)return;open.value=snapshot.open;highlighted.value=snapshot.cursor.current;openPath.value=snapshot.openPath;refreshParts()};const refreshParts=()=>{if(root.value===void 0||connection.value===void 0)return;root.value.querySelectorAll("[data-sectile-menu-id]").forEach(element=>{const id=element.dataset["sectileMenuId"];if(id!==void 0)connection.value?.setItemAttributes(element,id)});root.value.querySelectorAll("[data-sectile-submenu-for]").forEach(element=>{const id=element.dataset["sectileSubmenuFor"];if(id!==void 0)connection.value?.setSubmenuAttributes(element,id)})};const connect=()=>{connection.value?.disconnect();if(root.value===void 0||kind==="menu-button"&&trigger.value===void 0)return;const reconciled=reconcileCollectionState(runtimeProps.items.map(item=>item.id),[],highlighted.value,runtimeProps.disabledItems,"single",{preserveNullCurrent:true});highlighted.value=reconciled.current;const options={root:root.value,items:runtimeProps.items,disabledItems:runtimeProps.disabledItems,disabled:runtimeProps.disabled,direction:direction.value,baseID,...runtimeProps.policies===void 0?{}:{policies:runtimeProps.policies},defaultHighlightedValue:reconciled.current,...runtimeProps.label===void 0?{}:{label:runtimeProps.label},...runtimeProps.textValue===void 0?{}:{typeahead:{textValue:runtimeProps.textValue}},onOpenChange:value=>{open.value=value;emit("update:open",value)},onInvoke:value=>emit("invoke",value),onUpdate:refresh};connection.value=kind==="menu-button"?createMenuButton({...options,trigger:trigger.value,...controlled?{open:runtimeProps.open}:{defaultOpen:open.value}}):kind==="menubar"?createMenubar(options):kind==="navigation-menu"?createNavigationMenu(options):createMenu(options);refreshParts();refresh()};provide(key,{state,kind,label:computed(()=>runtimeProps.label),disabledItems:computed(()=>new Set(runtimeProps.disabledItems)),direction,registerRoot:element=>{root.value=element},registerTrigger:element=>{trigger.value=element},registerItem:(element,id)=>connection.value?.setItemAttributes(element,id),registerSubmenu:(element,parent)=>connection.value?.setSubmenuAttributes(element,parent)});onMounted(connect);onBeforeUnmount(()=>connection.value?.disconnect());watch([()=>runtimeProps.items,()=>runtimeProps.disabledItems,()=>runtimeProps.disabled,()=>runtimeProps.label,()=>runtimeProps.textValue,()=>runtimeProps.policies,direction],connect);watch(()=>runtimeProps.open,value=>{if(!controlled||value===void 0||connection.value===void 0)return;const result=connection.value.syncControlledValue(value);if(!result.ok)throw new TypeError(result.error.message);refresh()});return()=>{if(providerOnly)return h(Fragment,null,slots["default"]?.(state.value)??[]);return h(Primitive,mergeProps(attrs,{as:runtimeProps.as,asChild:runtimeProps.asChild,elementRef:node=>{root.value=node instanceof HTMLElement?node:void 0},role:kind==="navigation-menu"?"navigation":kind==="menubar"?"menubar":"menu","aria-label":runtimeProps.label,dir:direction.value,"data-scope":kind==="navigation-menu"?"navigation-menu":kind==="menubar"?"menubar":"menu","data-part":"root","data-state":state.value.open?"open":"closed"}),{default:()=>slots["default"]?.(state.value)})}}})}const MenuRoot=createRoot("menu",commonProps);const MenubarRoot=createRoot("menubar",commonProps);const NavigationMenuRoot=createRoot("navigation-menu",commonProps);const MenuButtonRoot=createRoot("menu-button",menuButtonProps,true);const MenuButtonTrigger=defineComponent({name:"SectileMenuButtonTrigger",inheritAttrs:false,props:{as:{type:[String,Object,Function],default:"button"},asChild:{type:Boolean,default:false}},slots:Object,setup(props,{attrs,slots}){const root=useRoot("MenuButtonTrigger");return()=>h(Primitive,mergeProps(attrs,{as:props.as,asChild:props.asChild,elementRef:node=>root.registerTrigger(node instanceof HTMLElement?node:void 0),type:props.as==="button"?"button":void 0,disabled:root.state.value.disabled,"aria-haspopup":"menu","aria-expanded":String(root.state.value.open),"data-scope":"menu-button","data-part":"trigger"}),{default:()=>slots["default"]?.(root.state.value)})}});const MenuButtonContent=defineComponent({name:"SectileMenuButtonContent",inheritAttrs:false,props:partProps,slots:Object,setup(props,{attrs,slots}){const root=useRoot("MenuButtonContent");return()=>h(Primitive,mergeProps(attrs,{as:props.as,asChild:props.asChild,elementRef:node=>root.registerRoot(node instanceof HTMLElement?node:void 0),role:"menu",hidden:!root.state.value.open,"aria-label":root.label.value,dir:root.direction.value,"data-scope":"menu-button","data-part":"content","data-state":root.state.value.open?"open":"closed"}),{default:()=>slots["default"]?.(root.state.value)})}});const MenuItem=defineComponent({name:"SectileMenuItem",inheritAttrs:false,props:{value:{type:String,required:true},disabled:{type:Boolean,default:false},...partProps},slots:Object,setup(props,{attrs,slots}){const root=useRoot("MenuItem");const state=computed(()=>({value:props.value,highlighted:root.state.value.highlightedValue===props.value,open:root.state.value.openPath.includes(props.value),disabled:root.state.value.disabled||props.disabled||root.disabledItems.value.has(props.value)}));return()=>h(Primitive,mergeProps(attrs,{as:props.as,asChild:props.asChild,elementRef:node=>{if(node instanceof HTMLElement)root.registerItem(node,props.value)},role:root.kind==="navigation-menu"?void 0:"menuitem","aria-disabled":state.value.disabled?"true":void 0,"data-sectile-menu-id":props.value,"data-scope":root.kind==="navigation-menu"?"navigation-menu":root.kind==="menubar"?"menubar":"menu","data-part":"item","data-highlighted":state.value.highlighted?"":void 0,"data-state":state.value.open?"open":"closed"}),{default:()=>slots["default"]?.(state.value)})}});const MenuSubContent=defineComponent({name:"SectileMenuSubContent",inheritAttrs:false,props:{for:{type:String,required:true},...partProps},slots:Object,setup(props,{attrs,slots}){const root=useRoot("MenuSubContent");return()=>h(Primitive,mergeProps(attrs,{as:props.as,asChild:props.asChild,elementRef:node=>{if(node instanceof HTMLElement)root.registerSubmenu(node,props.for)},role:root.kind==="navigation-menu"?void 0:"menu",hidden:!root.state.value.openPath.includes(props.for),dir:root.direction.value,"data-sectile-submenu-for":props.for,"data-scope":root.kind==="navigation-menu"?"navigation-menu":"menu","data-part":"sub-content","data-state":root.state.value.openPath.includes(props.for)?"open":"closed"}),{default:()=>slots["default"]?.(root.state.value)})}});const MenuSeparator=defineComponent({name:"SectileMenuSeparator",inheritAttrs:false,props:partProps,setup(props,{attrs}){return()=>h(Primitive,mergeProps(attrs,{as:props.as,asChild:props.asChild,role:"separator","data-scope":"menu","data-part":"separator"}))}});function useRoot(part){const root=inject(key);if(root===void 0)throw new TypeError(`${part} must be used inside a menu root.`);return root}export{MenuButtonContent,MenuButtonRoot,MenuButtonTrigger,MenuItem,MenuRoot,MenuSeparator,MenuSubContent,MenubarRoot,NavigationMenuRoot};
1
+ import{Fragment,computed,defineComponent,h,inject,mergeProps,nextTick,onBeforeUnmount,onMounted,provide,shallowRef,watch}from"vue";import{createMenu}from"@sectile/dom/menu";import{createMenuButton}from"@sectile/dom/menu-button";import{createMenubar}from"@sectile/dom/menubar";import{createNavigationMenu}from"@sectile/dom/navigation-menu";import{Primitive}from"./primitive.js";import{useHostDirection,useHostId}from"./host-provider.js";import{reconcileCollectionState}from"./internal/collection.js";import{useControlledStateInvariant}from"./internal/controlled-state.js";const key=Symbol("SectileMenuRoot");const partProps={as:{type:[String,Object,Function],default:"div"},asChild:{type:Boolean,default:false}};const commonProps={items:{type:Array,required:true},disabledItems:{type:Array,default:()=>[]},disabled:{type:Boolean,default:false},defaultHighlightedValue:{type:String,default:null},label:{type:String,default:void 0},textValue:{type:Function,default:void 0},policies:{type:Object,default:void 0},as:{type:[String,Object,Function],default:"div"},asChild:{type:Boolean,default:false}};const menuButtonProps={...commonProps,open:{type:Boolean,default:void 0},defaultOpen:{type:Boolean,default:false},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"}};function createRoot(kind,rootProps,providerOnly=false){return defineComponent({name:kind==="menu-button"?"SectileMenuButtonRoot":kind==="menubar"?"SectileMenubarRoot":kind==="navigation-menu"?"SectileNavigationMenuRoot":"SectileMenuRoot",inheritAttrs:false,props:rootProps,emits:{"update:open":_value=>true,invoke:_value=>true},slots:Object,setup(props,{attrs,emit,slots}){const runtimeProps=props;const direction=useHostDirection();const baseID=useHostId();const root=shallowRef();const trigger=shallowRef();const connection=shallowRef();const openProp=runtimeProps.open;const open=shallowRef(kind==="menu-button"?openProp??runtimeProps.defaultOpen??false:true);const highlighted=shallowRef(runtimeProps.defaultHighlightedValue);const openPath=shallowRef([]);const controlled=useControlledStateInvariant("MenuButtonRoot","open",()=>kind==="menu-button"?runtimeProps.open:void 0);const position=computed(()=>kind==="menu-button"?runtimeProps.position??true:false);const strategy=computed(()=>runtimeProps.strategy??"absolute");const state=computed(()=>({open:kind==="menu-button"&&runtimeProps.open!==void 0?runtimeProps.open:open.value,highlightedValue:highlighted.value,openPath:openPath.value,disabled:runtimeProps.disabled}));const refresh=()=>{const snapshot=connection.value?.getSnapshot().state;if(snapshot===void 0)return;open.value=snapshot.open;highlighted.value=snapshot.cursor.current;openPath.value=snapshot.openPath;refreshParts()};const refreshParts=()=>{if(root.value===void 0||connection.value===void 0)return;root.value.querySelectorAll("[data-sectile-menu-id]").forEach(element=>{const id=element.dataset["sectileMenuId"];if(id!==void 0)connection.value?.setItemAttributes(element,id)});root.value.querySelectorAll("[data-sectile-submenu-for]").forEach(element=>{const id=element.dataset["sectileSubmenuFor"];if(id!==void 0)connection.value?.setSubmenuAttributes(element,id)})};const connect=()=>{connection.value?.disconnect();if(root.value===void 0||kind==="menu-button"&&trigger.value===void 0)return;const reconciled=reconcileCollectionState(runtimeProps.items.map(item=>item.id),[],highlighted.value,runtimeProps.disabledItems,"single",{preserveNullCurrent:true});highlighted.value=reconciled.current;const options={root:root.value,items:runtimeProps.items,disabledItems:runtimeProps.disabledItems,disabled:runtimeProps.disabled,direction:direction.value,baseID,...kind==="menu-button"?{position:runtimeProps.position??true,side:runtimeProps.side??"bottom",align:runtimeProps.align??"start",sideOffset:runtimeProps.sideOffset??8,collisionPadding:runtimeProps.collisionPadding??8,...runtimeProps.collisionBoundary===void 0?{}:{collisionBoundary:runtimeProps.collisionBoundary},avoidCollisions:runtimeProps.avoidCollisions??true,hideWhenDetached:runtimeProps.hideWhenDetached??false,strategy:runtimeProps.strategy??"absolute",tracking:runtimeProps.tracking??"events"}:{},...runtimeProps.policies===void 0?{}:{policies:runtimeProps.policies},defaultHighlightedValue:reconciled.current,...runtimeProps.label===void 0?{}:{label:runtimeProps.label},...runtimeProps.textValue===void 0?{}:{typeahead:{textValue:runtimeProps.textValue}},onOpenChange:value=>{open.value=value;emit("update:open",value)},onInvoke:value=>emit("invoke",value),onUpdate:refresh};connection.value=kind==="menu-button"?createMenuButton({...options,trigger:trigger.value,...controlled?{open:runtimeProps.open}:{defaultOpen:open.value}}):kind==="menubar"?createMenubar(options):kind==="navigation-menu"?createNavigationMenu(options):createMenu(options);refreshParts();refresh()};let mounted=false;let connectScheduled=false;const scheduleConnect=()=>{if(!mounted||connectScheduled)return;connectScheduled=true;void nextTick(()=>{connectScheduled=false;if(mounted)connect()})};const registerRoot=element=>{if(root.value===element)return;root.value=element;if(element===void 0){connection.value?.disconnect();connection.value=void 0}else scheduleConnect()};const registerTrigger=element=>{if(trigger.value===element)return;trigger.value=element;if(element===void 0){connection.value?.disconnect();connection.value=void 0}else scheduleConnect()};provide(key,{state,kind,label:computed(()=>runtimeProps.label),disabledItems:computed(()=>new Set(runtimeProps.disabledItems)),direction,position,strategy,registerRoot,registerTrigger,registerItem:(element,id)=>connection.value?.setItemAttributes(element,id),registerSubmenu:(element,parent)=>connection.value?.setSubmenuAttributes(element,parent)});onMounted(()=>{mounted=true;connect()});onBeforeUnmount(()=>{mounted=false;connection.value?.disconnect()});watch([()=>runtimeProps.items,()=>runtimeProps.disabledItems,()=>runtimeProps.disabled,()=>runtimeProps.label,()=>runtimeProps.textValue,()=>runtimeProps.policies,direction,()=>runtimeProps.position,()=>runtimeProps.side,()=>runtimeProps.align,()=>runtimeProps.sideOffset,()=>runtimeProps.collisionPadding,()=>runtimeProps.collisionBoundary,()=>runtimeProps.avoidCollisions,()=>runtimeProps.hideWhenDetached,()=>runtimeProps.strategy,()=>runtimeProps.tracking],connect);watch(()=>runtimeProps.open,value=>{if(!controlled||value===void 0||connection.value===void 0)return;const result=connection.value.syncControlledValue(value);if(!result.ok)throw new TypeError(result.error.message);refresh()});return()=>{if(providerOnly)return h(Fragment,null,slots["default"]?.(state.value)??[]);return h(Primitive,mergeProps(attrs,{as:runtimeProps.as,asChild:runtimeProps.asChild,elementRef:node=>registerRoot(node instanceof HTMLElement?node:void 0),role:kind==="navigation-menu"?"navigation":kind==="menubar"?"menubar":"menu","aria-label":runtimeProps.label,dir:direction.value,"data-scope":kind==="navigation-menu"?"navigation-menu":kind==="menubar"?"menubar":"menu","data-part":"root","data-state":state.value.open?"open":"closed"}),{default:()=>slots["default"]?.(state.value)})}}})}const MenuRoot=createRoot("menu",commonProps);const MenubarRoot=createRoot("menubar",commonProps);const NavigationMenuRoot=createRoot("navigation-menu",commonProps);const MenuButtonRoot=createRoot("menu-button",menuButtonProps,true);const MenuButtonTrigger=defineComponent({name:"SectileMenuButtonTrigger",inheritAttrs:false,props:{as:{type:[String,Object,Function],default:"button"},asChild:{type:Boolean,default:false}},slots:Object,setup(props,{attrs,slots}){const root=useRoot("MenuButtonTrigger");return()=>h(Primitive,mergeProps(attrs,{as:props.as,asChild:props.asChild,elementRef:node=>root.registerTrigger(node instanceof HTMLElement?node:void 0),type:props.as==="button"?"button":void 0,disabled:root.state.value.disabled,"aria-haspopup":"menu","aria-expanded":String(root.state.value.open),"data-scope":"menu-button","data-part":"trigger"}),{default:()=>slots["default"]?.(root.state.value)})}});const MenuButtonContent=defineComponent({name:"SectileMenuButtonContent",inheritAttrs:false,props:partProps,slots:Object,setup(props,{attrs,slots}){const root=useRoot("MenuButtonContent");const element=shallowRef();return()=>h(Primitive,mergeProps(attrs,{as:props.as,asChild:props.asChild,elementRef:node=>{const content=node instanceof HTMLElement?node:void 0;element.value=content;root.registerRoot(content)},role:"menu",hidden:!root.state.value.open,"aria-label":root.label.value,dir:root.direction.value,style:root.position.value?{position:root.strategy.value,visibility:element.value===void 0?"hidden":void 0}:void 0,"data-scope":"menu-button","data-part":"content","data-state":root.state.value.open?"open":"closed"}),{default:()=>slots["default"]?.(root.state.value)})}});const MenuItem=defineComponent({name:"SectileMenuItem",inheritAttrs:false,props:{value:{type:String,required:true},disabled:{type:Boolean,default:false},...partProps},slots:Object,setup(props,{attrs,slots}){const root=useRoot("MenuItem");const state=computed(()=>({value:props.value,highlighted:root.state.value.highlightedValue===props.value,open:root.state.value.openPath.includes(props.value),disabled:root.state.value.disabled||props.disabled||root.disabledItems.value.has(props.value)}));return()=>h(Primitive,mergeProps(attrs,{as:props.as,asChild:props.asChild,elementRef:node=>{if(node instanceof HTMLElement)root.registerItem(node,props.value)},role:root.kind==="navigation-menu"?void 0:"menuitem","aria-disabled":state.value.disabled?"true":void 0,"data-sectile-menu-id":props.value,"data-scope":root.kind==="navigation-menu"?"navigation-menu":root.kind==="menubar"?"menubar":"menu","data-part":"item","data-highlighted":state.value.highlighted?"":void 0,"data-state":state.value.open?"open":"closed"}),{default:()=>slots["default"]?.(state.value)})}});const MenuSubContent=defineComponent({name:"SectileMenuSubContent",inheritAttrs:false,props:{for:{type:String,required:true},...partProps},slots:Object,setup(props,{attrs,slots}){const root=useRoot("MenuSubContent");return()=>h(Primitive,mergeProps(attrs,{as:props.as,asChild:props.asChild,elementRef:node=>{if(node instanceof HTMLElement)root.registerSubmenu(node,props.for)},role:root.kind==="navigation-menu"?void 0:"menu",hidden:!root.state.value.openPath.includes(props.for),dir:root.direction.value,"data-sectile-submenu-for":props.for,"data-scope":root.kind==="navigation-menu"?"navigation-menu":"menu","data-part":"sub-content","data-state":root.state.value.openPath.includes(props.for)?"open":"closed"}),{default:()=>slots["default"]?.(root.state.value)})}});const MenuSeparator=defineComponent({name:"SectileMenuSeparator",inheritAttrs:false,props:partProps,setup(props,{attrs}){return()=>h(Primitive,mergeProps(attrs,{as:props.as,asChild:props.asChild,role:"separator","data-scope":"menu","data-part":"separator"}))}});function useRoot(part){const root=inject(key);if(root===void 0)throw new TypeError(`${part} must be used inside a menu root.`);return root}export{MenuButtonContent,MenuButtonRoot,MenuButtonTrigger,MenuItem,MenuRoot,MenuSeparator,MenuSubContent,MenubarRoot,NavigationMenuRoot};
2
2
  //# sourceMappingURL=menu.js.map
package/dist/menu.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/menu.ts"],"mappings":"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","names":[],"file":"menu.js"}
1
+ {"version":3,"sources":["../src/menu.ts"],"mappings":"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","names":[],"file":"menu.js"}
package/dist/tooltip.d.ts CHANGED
@@ -5,7 +5,7 @@ export declare const TooltipTrigger: import("vue").Component;
5
5
  export declare const TooltipPortal: import("vue").Component;
6
6
  export declare const TooltipContent: import("vue").Component;
7
7
  export declare const TooltipArrow: import("vue").Component;
8
- export type TooltipRootProps = Pick<PopupRootProps, 'open' | 'defaultOpen' | 'disabled' | 'side' | 'align' | 'sideOffset' | 'collisionPadding' | 'collisionBoundary' | 'avoidCollisions' | 'arrowPadding' | 'hideWhenDetached' | 'strategy' | 'tracking' | 'unmountOnExit'>;
8
+ export type TooltipRootProps = Pick<PopupRootProps, 'open' | 'defaultOpen' | 'disabled' | 'position' | 'side' | 'align' | 'sideOffset' | 'collisionPadding' | 'collisionBoundary' | 'avoidCollisions' | 'arrowPadding' | 'hideWhenDetached' | 'strategy' | 'tracking' | 'unmountOnExit'>;
9
9
  export type TooltipRootSlotProps = PopupRootSlotProps;
10
10
  export type TooltipPartProps = PopupPartProps;
11
11
  export type TooltipPortalProps = PopupPortalProps;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@sectile/vue",
3
- "version": "0.13.1",
3
+ "version": "0.14.1",
4
4
  "description": "Headless Vue components for Sectile DOM interaction semantics.",
5
5
  "license": "MIT",
6
6
  "type": "module",
@@ -414,16 +414,16 @@
414
414
  "./package.json": "./package.json"
415
415
  },
416
416
  "dependencies": {
417
- "@sectile/core": "0.13.1",
418
- "@sectile/dom": "0.13.1"
417
+ "@sectile/core": "^0.14.1",
418
+ "@sectile/dom": "^0.14.1"
419
419
  },
420
420
  "peerDependencies": {
421
- "@sectile/chart": "0.13.1",
422
- "@sectile/form": "0.13.1",
423
- "@sectile/tabular": "0.13.1",
424
- "@sectile/virtual": "0.13.1",
421
+ "@sectile/chart": "^0.14.1",
422
+ "@sectile/form": "^0.14.1",
423
+ "@sectile/tabular": "^0.14.1",
424
+ "@sectile/virtual": "^0.14.1",
425
425
  "vue": "^3.5.0",
426
- "@sectile/temporal": "0.13.1"
426
+ "@sectile/temporal": "^0.14.1"
427
427
  },
428
428
  "peerDependenciesMeta": {
429
429
  "@sectile/chart": {
@@ -443,10 +443,10 @@
443
443
  }
444
444
  },
445
445
  "devDependencies": {
446
- "@sectile/chart": "0.13.1",
447
- "@sectile/form": "0.13.1",
448
- "@sectile/tabular": "0.13.1",
449
- "@sectile/virtual": "0.13.1",
446
+ "@sectile/chart": "0.14.1",
447
+ "@sectile/form": "0.14.1",
448
+ "@sectile/tabular": "0.14.1",
449
+ "@sectile/virtual": "0.14.1",
450
450
  "@vue/server-renderer": "^3.5.0",
451
451
  "happy-dom": "^20.11.6",
452
452
  "typescript": "7.0.2",
@@ -454,7 +454,7 @@
454
454
  "vite": "5.4.21",
455
455
  "vue": "^3.5.0",
456
456
  "vue-tsc": "^3.0.6",
457
- "@sectile/temporal": "0.13.1"
457
+ "@sectile/temporal": "0.14.1"
458
458
  },
459
459
  "scripts": {
460
460
  "build": "node scripts/build.mjs production",