@sectile/vue 0.14.0 → 0.14.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
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/select.js CHANGED
@@ -1,2 +1,2 @@
1
- import{Teleport,computed,defineComponent,h,inject,mergeProps,nextTick,onBeforeUnmount,onMounted,provide,shallowRef,watch}from"vue";import{createSelect}from"@sectile/dom/select";import{Primitive}from"./primitive.js";import{visuallyHiddenInputStyle}from"./internal/native-input.js";import{hiddenSelectSubmissionCapabilities,useCompositeFormControl}from"./internal/form-control.js";import{useHostId,useHostPortalTarget}from"./host-provider.js";import{usePresence}from"./internal/presence.js";import{reconcileCollectionState}from"./internal/collection.js";import{useControlledStateInvariant}from"./internal/controlled-state.js";const rootKey=Symbol("SectileSelectRoot");const itemKey=Symbol("SectileSelectItem");const partProps={as:{type:[String,Object,Function],default:"span"},asChild:{type:Boolean,default:false}};const SelectRoot=defineComponent({name:"SectileSelectRoot",inheritAttrs:false,props:{items:{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},typeaheadTimeoutMs:{type:Number,default:700},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"},unmountOnExit:{type:Boolean,default:false},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();const trigger=shallowRef();const popup=shallowRef();const submissionElement=shallowRef(null);const participation=useCompositeFormControl({root:()=>root.value??null,focusTarget:()=>trigger.value??root.value??null,submissions:[{element:submissionElement,capabilities:hiddenSelectSubmissionCapabilities}]});const connection=shallowRef();const id=useHostId();const contentID=`sectile-select-${id}-content`;const itemID=value=>`${contentID}-item-${encodeURIComponent(value)}`;const localValue=shallowRef(props.modelValue!==void 0?props.modelValue:props.defaultValue);const localOpen=shallowRef(props.open??props.defaultOpen);const highlighted=shallowRef(localValue.value);const valueControlled=useControlledStateInvariant("SelectRoot","modelValue",()=>props.modelValue);const openControlled=useControlledStateInvariant("SelectRoot","open",()=>props.open);const unmountOnExit=computed(()=>props.unmountOnExit);const position=computed(()=>props.position);const strategy=computed(()=>props.strategy);const state=computed(()=>Object.freeze({value:props.modelValue!==void 0?props.modelValue:localValue.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.choice.selection.selected[0]??null;highlighted.value=snapshot.choice.cursor.current;localOpen.value=snapshot.open;refreshItems()};const refreshItems=()=>{if(popup.value===void 0||connection.value===void 0)return;popup.value.querySelectorAll("[data-sectile-select-id]").forEach(element=>{const id2=element.dataset["sectileSelectId"];if(id2!==void 0)connection.value?.setItemAttributes(element,id2,props.disabledItems.includes(id2))})};const connect=()=>{connection.value?.disconnect();if(root.value===void 0||trigger.value===void 0||popup.value===void 0)return;const requestedValue=valueControlled?props.modelValue:localValue.value;const reconciled=reconcileCollectionState(props.items,requestedValue===null?[]:[requestedValue],highlighted.value,props.disabledItems,"single",{preserveNullCurrent:true});const value=reconciled.selected[0]??null;localValue.value=value;highlighted.value=reconciled.current;if(valueControlled&&requestedValue!==value)emit("update:modelValue",value);connection.value=createSelect({root:root.value,trigger:trigger.value,popup:popup.value,items:props.items,disabledItems:props.disabledItems,textValue:props.textValue??(value2=>value2),typeaheadTimeoutMs:props.typeaheadTimeoutMs,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,manageVisibility:false,...props.policies===void 0?{}:{policies:props.policies},...valueControlled?{value}:{defaultValue:value},defaultHighlightedValue:reconciled.current,...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});refreshItems();refresh()};let mounted=false;let connectScheduled=false;const scheduleConnect=()=>{if(!mounted||connectScheduled||props.unmountOnExit&&!state.value.open)return;connectScheduled=true;void nextTick(()=>{connectScheduled=false;if(mounted)connect()})};provide(rootKey,{state,unmountOnExit,position,strategy,label:computed(()=>props.label),textValue:computed(()=>props.textValue??(id2=>id2)),contentID,itemID,disabledItems:computed(()=>new Set(props.disabledItems)),registerTrigger:element=>{trigger.value=element;if(element===void 0){connection.value?.disconnect();connection.value=void 0}else scheduleConnect()},registerPopup:element=>{popup.value=element;if(element===void 0){connection.value?.disconnect();connection.value=void 0}else scheduleConnect()},registerItem:(element,id2,disabled)=>connection.value?.setItemAttributes(element,id2,disabled),activateTrigger:event=>{if(event?.defaultPrevented===true||connection.value!==void 0||props.disabled||state.value.open)return;if(!openControlled)localOpen.value=true;emit("update:open",true)},refresh:()=>connection.value?.refresh()});onMounted(()=>{mounted=true;connect()});onBeforeUnmount(()=>{mounted=false;connection.value?.disconnect()});watch([()=>props.items,()=>props.disabledItems,()=>props.disabled,()=>props.readonly,()=>props.label,()=>props.textValue,()=>props.typeaheadTimeoutMs,()=>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()});return()=>{const visual=h(Primitive,mergeProps(attrs,{as:props.as,asChild:props.asChild,elementRef:node=>{root.value=node instanceof HTMLElement?node:void 0;scheduleConnect()},"data-scope":"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:submissionElement,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.items.map(id2=>h("option",{value:id2,disabled:props.disabledItems.includes(id2)},props.textValue?.(id2)??id2))])]}}});const SelectTrigger=defineComponent({name:"SectileSelectTrigger",inheritAttrs:false,props:{as:{type:[String,Object,Function],default:"button"},asChild:{type:Boolean,default:false}},slots:Object,setup(props,{attrs,slots}){const root=useRoot("SelectTrigger");return()=>h(Primitive,mergeProps(attrs,{as:props.as,asChild:props.asChild,elementRef:node=>root.registerTrigger(node instanceof HTMLButtonElement?node:void 0),onClick:root.activateTrigger,type:props.as==="button"?"button":void 0,disabled:root.state.value.disabled,"aria-haspopup":"listbox","aria-expanded":String(root.state.value.open),"aria-controls":root.contentID,"aria-label":root.label.value,"data-scope":"select","data-part":"trigger","data-state":root.state.value.open?"open":"closed"}),{default:()=>slots["default"]?.(root.state.value)})}});const SelectValue=defineComponent({name:"SectileSelectValue",inheritAttrs:false,props:{placeholder:{type:String,default:""},...partProps},slots:Object,setup(props,{attrs,slots}){const root=useRoot("SelectValue");return()=>h(Primitive,mergeProps(attrs,{as:props.as,asChild:props.asChild,"data-scope":"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.textValue.value(root.state.value.value))})}});const SelectContent=defineComponent({name:"SectileSelectContent",inheritAttrs:false,props:{as:{type:[String,Object,Function],default:"div"},asChild:{type:Boolean,default:false}},slots:Object,setup(props,{attrs,slots}){const root=useRoot("SelectContent");const element=shallowRef();const open=computed(()=>root.state.value.open);const present=usePresence(open,element);watch(present,()=>root.refresh());return()=>{if(root.unmountOnExit.value&&!present.value)return null;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.registerPopup(content)},id:root.contentID,role:"listbox",hidden:!present.value,"aria-label":root.label.value,style:root.position.value?{position:root.strategy.value,visibility:element.value===void 0?"hidden":void 0}:void 0,"aria-activedescendant":root.state.value.highlightedValue===null?void 0:root.itemID(root.state.value.highlightedValue),"data-scope":"select","data-part":"content","data-state":root.state.value.open?"open":"closed"}),{default:()=>slots["default"]?.(root.state.value)})}}});const SelectItem=defineComponent({name:"SectileSelectItem",inheritAttrs:false,props:{value:{type:String,required:true},disabled:{type:Boolean,default:false},as:{type:[String,Object,Function],default:"div"},asChild:{type:Boolean,default:false}},slots:Object,setup(props,{attrs,slots}){const root=useRoot("SelectItem");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||root.disabledItems.value.has(props.value)}));provide(itemKey,{state});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)},id:root.itemID(props.value),role:"option","aria-selected":String(state.value.selected),"aria-disabled":state.value.disabled?"true":void 0,"data-sectile-select-id":props.value,"data-scope":"select","data-part":"item","data-selected":state.value.selected?"":void 0,"data-highlighted":state.value.highlighted?"":void 0}),{default:()=>slots["default"]?.(state.value)})}});const SelectItemIndicator=defineComponent({name:"SectileSelectItemIndicator",inheritAttrs:false,props:partProps,slots:Object,setup(props,{attrs,slots}){const item=useItem("SelectItemIndicator");return()=>h(Primitive,mergeProps(attrs,{as:props.as,asChild:props.asChild,hidden:!item.state.value.selected,"aria-hidden":"true","data-scope":"select","data-part":"item-indicator"}),{default:()=>slots["default"]?.(item.state.value)})}});const SelectViewport=defineComponent({name:"SectileSelectViewport",inheritAttrs:false,props:{...partProps,as:{...partProps.as,default:"div"}},setup(props,{attrs,slots}){useRoot("SelectViewport");return()=>h(Primitive,mergeProps(attrs,{as:props.as,asChild:props.asChild,"data-scope":"select","data-part":"viewport"}),slots)}});const SelectItemText=defineComponent({name:"SectileSelectItemText",inheritAttrs:false,props:partProps,setup(props,{attrs,slots}){useItem("SelectItemText");return()=>h(Primitive,mergeProps(attrs,{as:props.as,asChild:props.asChild,"data-scope":"select","data-part":"item-text"}),slots)}});const SelectPortal=defineComponent({name:"SectileSelectPortal",inheritAttrs:false,props:{to:{type:[String,Object],default:void 0},disabled:{type:Boolean,default:false},defer:{type:Boolean,default:false}},setup(props,{slots}){useRoot("SelectPortal");const portalTarget=useHostPortalTarget();return()=>h(Teleport,{to:props.to??portalTarget.value??"body",disabled:props.disabled,defer:props.defer},slots["default"]?.())}});function useRoot(part){const root=inject(rootKey);if(root===void 0)throw new TypeError(`${part} must be used inside SelectRoot.`);return root}function useItem(part){const item=inject(itemKey);if(item===void 0)throw new TypeError(`${part} must be used inside SelectItem.`);return item}export{SelectContent,SelectItem,SelectItemIndicator,SelectItemText,SelectPortal,SelectRoot,SelectTrigger,SelectValue,SelectViewport};
1
+ import{Teleport,computed,defineComponent,h,inject,mergeProps,nextTick,onBeforeUnmount,onMounted,provide,shallowRef,watch}from"vue";import{stableIDElementToken}from"@sectile/dom/identity";import{createSelect}from"@sectile/dom/select";import{Primitive}from"./primitive.js";import{visuallyHiddenInputStyle}from"./internal/native-input.js";import{hiddenSelectSubmissionCapabilities,useCompositeFormControl}from"./internal/form-control.js";import{useHostId,useHostPortalTarget}from"./host-provider.js";import{usePresence}from"./internal/presence.js";import{reconcileCollectionState}from"./internal/collection.js";import{useControlledStateInvariant}from"./internal/controlled-state.js";const rootKey=Symbol("SectileSelectRoot");const itemKey=Symbol("SectileSelectItem");const partProps={as:{type:[String,Object,Function],default:"span"},asChild:{type:Boolean,default:false}};const SelectRoot=defineComponent({name:"SectileSelectRoot",inheritAttrs:false,props:{items:{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},typeaheadTimeoutMs:{type:Number,default:700},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"},unmountOnExit:{type:Boolean,default:false},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();const trigger=shallowRef();const popup=shallowRef();const submissionElement=shallowRef(null);const participation=useCompositeFormControl({root:()=>root.value??null,focusTarget:()=>trigger.value??root.value??null,submissions:[{element:submissionElement,capabilities:hiddenSelectSubmissionCapabilities}]});const connection=shallowRef();const id=useHostId();const contentID=`sectile-select-${id}-content`;const itemID=value=>`${contentID}-item-${stableIDElementToken(value)}`;const localValue=shallowRef(props.modelValue!==void 0?props.modelValue:props.defaultValue);const localOpen=shallowRef(props.open??props.defaultOpen);const highlighted=shallowRef(localValue.value);const valueControlled=useControlledStateInvariant("SelectRoot","modelValue",()=>props.modelValue);const openControlled=useControlledStateInvariant("SelectRoot","open",()=>props.open);const unmountOnExit=computed(()=>props.unmountOnExit);const position=computed(()=>props.position);const strategy=computed(()=>props.strategy);const state=computed(()=>Object.freeze({value:props.modelValue!==void 0?props.modelValue:localValue.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.choice.selection.selected[0]??null;highlighted.value=snapshot.choice.cursor.current;localOpen.value=snapshot.open;refreshItems()};const refreshItems=()=>{if(popup.value===void 0||connection.value===void 0)return;popup.value.querySelectorAll("[data-sectile-select-id]").forEach(element=>{const id2=element.dataset["sectileSelectId"];if(id2!==void 0)connection.value?.setItemAttributes(element,id2,props.disabledItems.includes(id2))})};const connect=()=>{connection.value?.disconnect();if(root.value===void 0||trigger.value===void 0||popup.value===void 0)return;const requestedValue=valueControlled?props.modelValue:localValue.value;const reconciled=reconcileCollectionState(props.items,requestedValue===null?[]:[requestedValue],highlighted.value,props.disabledItems,"single",{preserveNullCurrent:true});const value=reconciled.selected[0]??null;localValue.value=value;highlighted.value=reconciled.current;if(valueControlled&&requestedValue!==value)emit("update:modelValue",value);connection.value=createSelect({root:root.value,trigger:trigger.value,popup:popup.value,items:props.items,disabledItems:props.disabledItems,textValue:props.textValue??(value2=>value2),typeaheadTimeoutMs:props.typeaheadTimeoutMs,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,manageVisibility:false,...props.policies===void 0?{}:{policies:props.policies},...valueControlled?{value}:{defaultValue:value},defaultHighlightedValue:reconciled.current,...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});refreshItems();refresh()};let mounted=false;let connectScheduled=false;const scheduleConnect=()=>{if(!mounted||connectScheduled||props.unmountOnExit&&!state.value.open)return;connectScheduled=true;void nextTick(()=>{connectScheduled=false;if(mounted)connect()})};provide(rootKey,{state,unmountOnExit,position,strategy,label:computed(()=>props.label),textValue:computed(()=>props.textValue??(id2=>id2)),contentID,itemID,disabledItems:computed(()=>new Set(props.disabledItems)),registerTrigger:element=>{trigger.value=element;if(element===void 0){connection.value?.disconnect();connection.value=void 0}else scheduleConnect()},registerPopup:element=>{popup.value=element;if(element===void 0){connection.value?.disconnect();connection.value=void 0}else scheduleConnect()},registerItem:(element,id2,disabled)=>connection.value?.setItemAttributes(element,id2,disabled),activateTrigger:event=>{if(event?.defaultPrevented===true||connection.value!==void 0||props.disabled||state.value.open)return;if(!openControlled)localOpen.value=true;emit("update:open",true)},refresh:()=>connection.value?.refresh()});onMounted(()=>{mounted=true;connect()});onBeforeUnmount(()=>{mounted=false;connection.value?.disconnect()});watch([()=>props.items,()=>props.disabledItems,()=>props.disabled,()=>props.readonly,()=>props.label,()=>props.textValue,()=>props.typeaheadTimeoutMs,()=>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()});return()=>{const visual=h(Primitive,mergeProps(attrs,{as:props.as,asChild:props.asChild,elementRef:node=>{root.value=node instanceof HTMLElement?node:void 0;scheduleConnect()},"data-scope":"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:submissionElement,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.items.map(id2=>h("option",{value:id2,disabled:props.disabledItems.includes(id2)},props.textValue?.(id2)??id2))])]}}});const SelectTrigger=defineComponent({name:"SectileSelectTrigger",inheritAttrs:false,props:{as:{type:[String,Object,Function],default:"button"},asChild:{type:Boolean,default:false}},slots:Object,setup(props,{attrs,slots}){const root=useRoot("SelectTrigger");return()=>h(Primitive,mergeProps(attrs,{as:props.as,asChild:props.asChild,elementRef:node=>root.registerTrigger(node instanceof HTMLButtonElement?node:void 0),onClick:root.activateTrigger,type:props.as==="button"?"button":void 0,disabled:root.state.value.disabled,"aria-haspopup":"listbox","aria-expanded":String(root.state.value.open),"aria-controls":root.contentID,"aria-label":root.label.value,"data-scope":"select","data-part":"trigger","data-state":root.state.value.open?"open":"closed"}),{default:()=>slots["default"]?.(root.state.value)})}});const SelectValue=defineComponent({name:"SectileSelectValue",inheritAttrs:false,props:{placeholder:{type:String,default:""},...partProps},slots:Object,setup(props,{attrs,slots}){const root=useRoot("SelectValue");return()=>h(Primitive,mergeProps(attrs,{as:props.as,asChild:props.asChild,"data-scope":"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.textValue.value(root.state.value.value))})}});const SelectContent=defineComponent({name:"SectileSelectContent",inheritAttrs:false,props:{as:{type:[String,Object,Function],default:"div"},asChild:{type:Boolean,default:false}},slots:Object,setup(props,{attrs,slots}){const root=useRoot("SelectContent");const element=shallowRef();const open=computed(()=>root.state.value.open);const present=usePresence(open,element);watch(present,()=>root.refresh());return()=>{if(root.unmountOnExit.value&&!present.value)return null;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.registerPopup(content)},id:root.contentID,role:"listbox",hidden:!present.value,"aria-label":root.label.value,style:root.position.value?{position:root.strategy.value,visibility:element.value===void 0?"hidden":void 0}:void 0,"aria-activedescendant":root.state.value.highlightedValue===null?void 0:root.itemID(root.state.value.highlightedValue),"data-scope":"select","data-part":"content","data-state":root.state.value.open?"open":"closed"}),{default:()=>slots["default"]?.(root.state.value)})}}});const SelectItem=defineComponent({name:"SectileSelectItem",inheritAttrs:false,props:{value:{type:String,required:true},disabled:{type:Boolean,default:false},as:{type:[String,Object,Function],default:"div"},asChild:{type:Boolean,default:false}},slots:Object,setup(props,{attrs,slots}){const root=useRoot("SelectItem");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||root.disabledItems.value.has(props.value)}));provide(itemKey,{state});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)},id:root.itemID(props.value),role:"option","aria-selected":String(state.value.selected),"aria-disabled":state.value.disabled?"true":void 0,"data-sectile-select-id":props.value,"data-scope":"select","data-part":"item","data-selected":state.value.selected?"":void 0,"data-highlighted":state.value.highlighted?"":void 0}),{default:()=>slots["default"]?.(state.value)})}});const SelectItemIndicator=defineComponent({name:"SectileSelectItemIndicator",inheritAttrs:false,props:partProps,slots:Object,setup(props,{attrs,slots}){const item=useItem("SelectItemIndicator");return()=>h(Primitive,mergeProps(attrs,{as:props.as,asChild:props.asChild,hidden:!item.state.value.selected,"aria-hidden":"true","data-scope":"select","data-part":"item-indicator"}),{default:()=>slots["default"]?.(item.state.value)})}});const SelectViewport=defineComponent({name:"SectileSelectViewport",inheritAttrs:false,props:{...partProps,as:{...partProps.as,default:"div"}},setup(props,{attrs,slots}){useRoot("SelectViewport");return()=>h(Primitive,mergeProps(attrs,{as:props.as,asChild:props.asChild,"data-scope":"select","data-part":"viewport"}),slots)}});const SelectItemText=defineComponent({name:"SectileSelectItemText",inheritAttrs:false,props:partProps,setup(props,{attrs,slots}){useItem("SelectItemText");return()=>h(Primitive,mergeProps(attrs,{as:props.as,asChild:props.asChild,"data-scope":"select","data-part":"item-text"}),slots)}});const SelectPortal=defineComponent({name:"SectileSelectPortal",inheritAttrs:false,props:{to:{type:[String,Object],default:void 0},disabled:{type:Boolean,default:false},defer:{type:Boolean,default:false}},setup(props,{slots}){useRoot("SelectPortal");const portalTarget=useHostPortalTarget();return()=>h(Teleport,{to:props.to??portalTarget.value??"body",disabled:props.disabled,defer:props.defer},slots["default"]?.())}});function useRoot(part){const root=inject(rootKey);if(root===void 0)throw new TypeError(`${part} must be used inside SelectRoot.`);return root}function useItem(part){const item=inject(itemKey);if(item===void 0)throw new TypeError(`${part} must be used inside SelectItem.`);return item}export{SelectContent,SelectItem,SelectItemIndicator,SelectItemText,SelectPortal,SelectRoot,SelectTrigger,SelectValue,SelectViewport};
2
2
  //# sourceMappingURL=select.js.map
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/select.ts"],"mappings":"AAAA,OACE,SAAU,SAAU,gBAAiB,EAAG,OAAQ,WAAY,SAAU,gBAAiB,UAAW,QAClG,WAAY,UACP,MACP,OAAS,iBAAgE,sBAQzE,OAAS,cAAmC,iBAC5C,OAAS,6BAAgC,6BACzC,OAAS,mCAAoC,4BAA+B,6BAC5E,OAAS,UAAW,wBAA2B,qBAC/C,OAAS,gBAAmB,yBAC5B,OAAS,6BAAgC,2BACzC,OAAS,gCAAmC,iCAgD5C,MAAM,QAAU,OAAO,mBAAmB,EAAG,MAAM,QAAU,OAAO,mBAAmB,EACvF,MAAM,UAAY,CAAE,GAAI,CAAE,KAAM,CAAC,OAAQ,OAAQ,QAAQ,EAA4B,QAAS,MAAM,EAAI,QAAS,CAAE,KAAM,QAAS,QAAS,KAAK,CAAE,EAE3I,MAAM,WAAa,gBAAgB,CACxC,KAAM,oBAAqB,aAAc,MACzC,MAAO,CACL,MAAO,CAAE,KAAM,MAAsC,SAAU,IAAI,EAAI,WAAY,CAAE,KAAM,OAAmC,QAAS,MAAS,EAChJ,aAAc,CAAE,KAAM,OAAmC,QAAS,IAAI,EAAI,KAAM,CAAE,KAAM,QAAS,QAAS,MAAS,EAAI,YAAa,CAAE,KAAM,QAAS,QAAS,KAAK,EACnK,cAAe,CAAE,KAAM,MAAsC,QAAS,IAAM,CAAA,CAAE,EAAI,SAAU,CAAE,KAAM,QAAS,QAAS,KAAK,EAC3H,SAAU,CAAE,KAAM,QAAS,QAAS,KAAK,EAAI,MAAO,CAAE,KAAM,OAAQ,QAAS,MAAS,EAAI,KAAM,CAAE,KAAM,OAAQ,QAAS,MAAS,EAClI,KAAM,CAAE,KAAM,OAAQ,QAAS,MAAS,EAAI,SAAU,CAAE,KAAM,QAAS,QAAS,KAAK,EACrF,UAAW,CAAE,KAAM,SAA+C,QAAS,MAAS,EACpF,mBAAoB,CAAE,KAAM,OAAQ,QAAS,GAAG,EAChD,SAAU,CAAE,KAAM,QAAS,QAAS,IAAI,EACxC,KAAM,CAAE,KAAM,OAAyD,QAAS,QAAQ,EACxF,MAAO,CAAE,KAAM,OAAgD,QAAS,OAAO,EAC/E,WAAY,CAAE,KAAM,OAAQ,QAAS,CAAC,EAAI,iBAAkB,CAAE,KAAM,CAAC,OAAQ,MAAM,EAAgC,QAAS,CAAC,EAC7H,kBAAmB,CAAE,KAAM,CAAC,OAAQ,MAAM,EAAiC,QAAS,MAAS,EAAI,gBAAiB,CAAE,KAAM,QAAS,QAAS,IAAI,EAChJ,iBAAkB,CAAE,KAAM,QAAS,QAAS,KAAK,EAAI,SAAU,CAAE,KAAM,OAAsC,QAAS,UAAU,EAChI,SAAU,CAAE,KAAM,OAAsC,QAAS,QAAQ,EACzE,cAAe,CAAE,KAAM,QAAS,QAAS,KAAK,EAC9C,SAAU,CAAE,KAAM,OAA4C,QAAS,MAAS,EAChF,GAAI,CAAE,KAAM,CAAC,OAAQ,OAAQ,QAAQ,EAA4B,QAAS,KAAK,EAAI,QAAS,CAAE,KAAM,QAAS,QAAS,KAAK,GAE7H,MAAO,CACL,oBAAsB,QAAmC,KACzD,cAAgB,QAA6B,KAC7C,UAAY,QAAmC,MAEjD,MAAO,OACP,MAAM,MAAO,CAAE,MAAO,KAAM,KAAK,EAAE,CACjC,MAAM,KAAO,WAAU,EACvB,MAAM,QAAU,WAAU,EAC1B,MAAM,MAAQ,WAAU,EACxB,MAAM,kBAAoB,WAAqC,IAAI,EACnE,MAAM,cAAgB,wBAAwB,CAC5C,KAAM,IAAM,KAAK,OAAS,KAC1B,YAAa,IAAM,QAAQ,OAAS,KAAK,OAAS,KAClD,YAAa,CAAC,CAAE,QAAS,kBAAmB,aAAc,kCAAkC,CAAE,EAC/F,EACD,MAAM,WAAa,WAAU,EAC7B,MAAM,GAAK,UAAS,EAAI,MAAM,UAAY,kBAAkB,EAAE,WAAY,MAAM,OAAU,OAA0B,GAAG,SAAS,SAAS,mBAAmB,KAAK,CAAC,GAClK,MAAM,WAAa,WAA0B,MAAM,aAAe,OAAY,MAAM,WAAa,MAAM,YAAY,EACnH,MAAM,UAAY,WAAW,MAAM,MAAQ,MAAM,WAAW,EAAG,MAAM,YAAc,WAA0B,WAAW,KAAK,EAC7H,MAAM,gBAAkB,4BAA4B,aAAc,aAAc,IAAM,MAAM,UAAU,EACtG,MAAM,eAAiB,4BAA4B,aAAc,OAAQ,IAAM,MAAM,IAAI,EACzF,MAAM,cAAgB,SAAS,IAAM,MAAM,aAAa,EACxD,MAAM,SAAW,SAAS,IAAM,MAAM,QAAQ,EAC9C,MAAM,SAAW,SAAS,IAAM,MAAM,QAAQ,EAC9C,MAAM,MAAQ,SAA8B,IAAM,OAAO,OAAO,CAC9D,MAAO,MAAM,aAAe,OAAY,MAAM,WAAa,WAAW,MACtE,iBAAkB,YAAY,MAAO,KAAM,MAAM,MAAQ,UAAU,MACnE,SAAU,MAAM,SAAU,SAAU,MAAM,SAC3C,CAAC,EACF,MAAM,QAAU,IAAW,CACzB,MAAM,SAAW,WAAW,OAAO,YAAW,EAAG,MAAO,GAAI,WAAa,OAAW,OACpF,WAAW,MAAQ,SAAS,OAAO,UAAU,SAAS,CAAC,GAAK,KAAM,YAAY,MAAQ,SAAS,OAAO,OAAO,QAAS,UAAU,MAAQ,SAAS,KACjJ,aAAY,CACd,EACA,MAAM,aAAe,IAAW,CAC9B,GAAI,MAAM,QAAU,QAAa,WAAW,QAAU,OAAW,OACjE,MAAM,MAAM,iBAA8B,0BAA0B,EAAE,QAAS,SAAW,CACxF,MAAMA,IAAK,QAAQ,QAAQ,iBAAiB,EAAG,GAAIA,MAAO,OAAW,WAAW,OAAO,kBAAkB,QAASA,IAAI,MAAM,cAAc,SAASA,GAAE,CAAC,CACxJ,CAAC,CACH,EACA,MAAM,QAAU,IAAW,CACzB,WAAW,OAAO,WAAU,EAC5B,GAAI,KAAK,QAAU,QAAa,QAAQ,QAAU,QAAa,MAAM,QAAU,OAAW,OAC1F,MAAM,eAAiB,gBAAkB,MAAM,WAA8B,WAAW,MACxF,MAAM,WAAa,yBACjB,MAAM,MACN,iBAAmB,KAAO,CAAA,EAAK,CAAC,cAAc,EAC9C,YAAY,MACZ,MAAM,cACN,SACA,CAAE,oBAAqB,IAAI,CAAE,EAE/B,MAAM,MAAQ,WAAW,SAAS,CAAC,GAAK,KACxC,WAAW,MAAQ,MACnB,YAAY,MAAQ,WAAW,QAC/B,GAAI,iBAAmB,iBAAmB,MAAO,KAAK,oBAAqB,KAAK,EAChF,WAAW,MAAQ,aAAa,CAC9B,KAAM,KAAK,MAAO,QAAS,QAAQ,MAAO,MAAO,MAAM,MAAO,MAAO,MAAM,MAAO,cAAe,MAAM,cACvG,UAAW,MAAM,YAAeC,QAAkBA,QAAQ,mBAAoB,MAAM,mBACpF,SAAU,MAAM,SAAU,KAAM,MAAM,KAAM,MAAO,MAAM,MAAO,WAAY,MAAM,WAAY,iBAAkB,MAAM,iBACtH,GAAI,MAAM,oBAAsB,OAAY,CAAA,EAAK,CAAE,kBAAmB,MAAM,iBAAiB,EAAK,gBAAiB,MAAM,gBACzH,iBAAkB,MAAM,iBAAkB,SAAU,MAAM,SAC1D,SAAU,MAAM,SAChB,iBAAkB,MAClB,GAAI,MAAM,WAAa,OAAY,CAAA,EAAK,CAAE,SAAU,MAAM,QAAQ,EAClE,GAAI,gBAAkB,CAAE,KAAK,EAAK,CAAE,aAAc,KAAK,EACvD,wBAAyB,WAAW,QACpC,GAAI,eAAiB,CAAE,KAAM,MAAM,IAAe,EAAK,CAAE,YAAa,UAAU,KAAK,EACrF,SAAU,MAAM,SAAU,SAAU,MAAM,SAAU,GAAI,MAAM,QAAU,OAAY,CAAA,EAAK,CAAE,MAAO,MAAM,KAAK,EAC7G,cAAgB,MAAQ,CAAG,WAAW,MAAQ,KAAM,KAAK,oBAAqB,IAAI,CAAG,EACrF,yBAA2B,MAAQ,CAAG,YAAY,MAAQ,KAAM,KAAK,YAAa,IAAI,CAAG,EACzF,aAAe,MAAQ,CAAG,UAAU,MAAQ,KAAM,KAAK,cAAe,IAAI,CAAG,EAAG,SAAU,QAC3F,EACD,aAAY,EAAI,QAAO,CACzB,EACA,IAAI,QAAU,MACd,IAAI,iBAAmB,MACvB,MAAM,gBAAkB,IAAW,CACjC,GAAI,CAAC,SAAW,kBAAqB,MAAM,eAAiB,CAAC,MAAM,MAAM,KAAO,OAChF,iBAAmB,KACnB,KAAK,SAAS,IAAK,CACjB,iBAAmB,MACnB,GAAI,QAAS,QAAO,CACtB,CAAC,CACH,EACA,QAAqB,QAAS,CAC5B,MAAO,cAAe,SAAU,SAAU,MAAO,SAAS,IAAM,MAAM,KAAK,EAAG,UAAW,SAAS,IAAM,MAAM,YAAeD,KAAeA,IAAG,EAAG,UAAW,OAC7J,cAAe,SAAS,IAAM,IAAI,IAAI,MAAM,aAAa,CAAC,EAC1D,gBAAkB,SAAW,CAC3B,QAAQ,MAAQ,QAChB,GAAI,UAAY,OAAW,CACzB,WAAW,OAAO,WAAU,EAC5B,WAAW,MAAQ,MACrB,MAAO,gBAAe,CACxB,EACA,cAAgB,SAAW,CACzB,MAAM,MAAQ,QACd,GAAI,UAAY,OAAW,CACzB,WAAW,OAAO,WAAU,EAC5B,WAAW,MAAQ,MACrB,MAAO,gBAAe,CACxB,EACA,aAAc,CAAC,QAASA,IAAI,WAAa,WAAW,OAAO,kBAAkB,QAASA,IAAI,QAAQ,EAClG,gBAAkB,OAAS,CACzB,GAAI,OAAO,mBAAqB,MAAQ,WAAW,QAAU,QAAa,MAAM,UAAY,MAAM,MAAM,KAAM,OAC9G,GAAI,CAAC,eAAgB,UAAU,MAAQ,KACvC,KAAK,cAAe,IAAI,CAC1B,EACA,QAAS,IAAM,WAAW,OAAO,QAAO,EACzC,EACD,UAAU,IAAK,CAAG,QAAU,KAAM,QAAO,CAAI,CAAC,EAC9C,gBAAgB,IAAK,CAAG,QAAU,MAAO,WAAW,OAAO,WAAU,CAAI,CAAC,EAC1E,MAAM,CAAC,IAAM,MAAM,MAAO,IAAM,MAAM,cAAe,IAAM,MAAM,SAAU,IAAM,MAAM,SAAU,IAAM,MAAM,MAAO,IAAM,MAAM,UAAW,IAAM,MAAM,mBAAoB,IAAM,MAAM,SAAU,IAAM,MAAM,KAAM,IAAM,MAAM,MAAO,IAAM,MAAM,WAAY,IAAM,MAAM,iBAAkB,IAAM,MAAM,kBAAmB,IAAM,MAAM,gBAAiB,IAAM,MAAM,iBAAkB,IAAM,MAAM,SAAU,IAAM,MAAM,SAAU,IAAM,MAAM,QAAQ,EAAG,OAAO,EAChc,MAAM,CAAC,IAAM,MAAM,WAAY,IAAM,MAAM,IAAI,EAAG,IAAK,CACrD,GAAI,WAAW,QAAU,OAAW,OACpC,MAAM,OAAS,WAAW,MAAM,qBAAqB,CACnD,GAAI,gBAAkB,CAAE,MAAO,MAAM,UAA2B,EAAK,CAAA,EACrE,GAAI,eAAiB,CAAE,KAAM,MAAM,IAAe,EAAK,CAAA,EACxD,EACD,GAAI,CAAC,OAAO,GAAI,MAAM,IAAI,UAAU,OAAO,MAAM,OAAO,EAAG,QAAO,CACpE,CAAC,EACD,MAAO,IAAiB,CACtB,MAAM,OAAS,EAAE,UAAW,WAAW,MAAO,CAC5C,GAAI,MAAM,GAAI,QAAS,MAAM,QAAS,WAAa,MAAiB,CAAG,KAAK,MAAQ,gBAAgB,YAAc,KAAO,OAAW,gBAAe,CAAI,EACvJ,aAAc,SAAU,YAAa,OAAQ,aAAc,MAAM,MAAM,KAAO,OAAS,UACtF,cAAc,aAAa,KAAK,EAAG,CAAE,QAAS,IAAM,MAAM,SAAS,IAAI,MAAM,KAAK,CAAC,CAAE,EACxF,GAAI,CAAC,cAAc,eAAiB,MAAM,OAAS,QAAa,MAAM,OAAS,QAAa,CAAC,MAAM,SAAU,OAAO,OACpH,MAAO,CAAC,OAAQ,EAAE,SAAU,CAC1B,IAAK,kBACL,KAAM,MAAM,KAAM,KAAM,MAAM,KAAM,SAAU,MAAM,SAAU,SAAU,MAAM,SAC9E,MAAO,MAAM,MAAM,OAAS,GAAI,SAAU,GAAI,cAAe,OAAQ,MAAO,0BAC3E,CAAC,EAAE,SAAU,CAAE,MAAO,EAAE,CAAE,EAAG,GAAG,MAAM,MAAM,IAAKA,KAAO,EAAE,SAAU,CAAE,MAAOA,IAAI,SAAU,MAAM,cAAc,SAASA,GAAE,CAAC,EAAI,MAAM,YAAYA,GAAE,GAAKA,GAAE,CAAC,CAAC,CAAC,CAAC,CACnK,CACF,EACD,EAMM,MAAM,cAAgB,gBAAgB,CAC3C,KAAM,uBAAwB,aAAc,MAC5C,MAAO,CAAE,GAAI,CAAE,KAAM,CAAC,OAAQ,OAAQ,QAAQ,EAA4B,QAAS,QAAQ,EAAI,QAAS,CAAE,KAAM,QAAS,QAAS,KAAK,CAAE,EACzI,MAAO,OACP,MAAM,MAAO,CAAE,MAAO,KAAK,EAAE,CAAI,MAAM,KAAO,QAAQ,eAAe,EAAG,MAAO,IAAkB,EAAE,UAAW,WAAW,MAAO,CAC9H,GAAI,MAAM,GAAI,QAAS,MAAM,QAAS,WAAa,MAAkB,KAAK,gBAAgB,gBAAgB,kBAAoB,KAAO,MAAS,EAC9I,QAAS,KAAK,gBACd,KAAM,MAAM,KAAO,SAAW,SAAW,OAAW,SAAU,KAAK,MAAM,MAAM,SAC/E,gBAAiB,UAAW,gBAAiB,OAAO,KAAK,MAAM,MAAM,IAAI,EAAG,gBAAiB,KAAK,UAAW,aAAc,KAAK,MAAM,MACtI,aAAc,SAAU,YAAa,UAAW,aAAc,KAAK,MAAM,MAAM,KAAO,OAAS,SAChG,EAAG,CAAE,QAAS,IAAM,MAAM,SAAS,IAAI,KAAK,MAAM,KAAK,CAAC,CAAE,CAAG,EAC/D,EAEM,MAAM,YAAc,gBAAgB,CACzC,KAAM,qBAAsB,aAAc,MAAO,MAAO,CAAE,YAAa,CAAE,KAAM,OAAQ,QAAS,EAAE,EAAI,GAAG,SAAS,EAClH,MAAO,OACP,MAAM,MAAO,CAAE,MAAO,KAAK,EAAE,CAAI,MAAM,KAAO,QAAQ,aAAa,EAAG,MAAO,IAAkB,EAAE,UAAW,WAAW,MAAO,CAC5H,GAAI,MAAM,GAAI,QAAS,MAAM,QAAS,aAAc,SAAU,YAAa,QAC3E,mBAAoB,KAAK,MAAM,MAAM,QAAU,KAAO,GAAK,OAC5D,EAAG,CAAE,QAAS,IAAM,MAAM,SAAS,IAAI,KAAK,MAAM,KAAK,IAAM,KAAK,MAAM,MAAM,QAAU,KAAO,MAAM,YAAc,KAAK,UAAU,MAAM,KAAK,MAAM,MAAM,KAAK,EAAE,CAAE,CAAG,EACvK,EAEM,MAAM,cAAgB,gBAAgB,CAC3C,KAAM,uBAAwB,aAAc,MAC5C,MAAO,CAAE,GAAI,CAAE,KAAM,CAAC,OAAQ,OAAQ,QAAQ,EAA4B,QAAS,KAAK,EAAI,QAAS,CAAE,KAAM,QAAS,QAAS,KAAK,CAAE,EACtI,MAAO,OACP,MAAM,MAAO,CAAE,MAAO,KAAK,EAAE,CAAI,MAAM,KAAO,QAAQ,eAAe,EAAG,MAAM,QAAU,WAAU,EAAiB,MAAM,KAAO,SAAS,IAAM,KAAK,MAAM,MAAM,IAAI,EAAG,MAAM,QAAU,YAAY,KAAM,OAAO,EAAG,MAAM,QAAS,IAAM,KAAK,QAAO,CAAE,EAAG,MAAO,IAAiB,CAC/Q,GAAI,KAAK,cAAc,OAAS,CAAC,QAAQ,MAAO,OAAO,KACvD,OAAO,EAAE,UAAW,WAAW,MAAO,CACpC,GAAI,MAAM,GAAI,QAAS,MAAM,QAAS,WAAa,MAAiB,CAAG,MAAM,QAAU,gBAAgB,YAAc,KAAO,OAAW,QAAQ,MAAQ,QAAS,KAAK,cAAc,OAAO,CAAG,EAC7L,GAAI,KAAK,UAAW,KAAM,UAAW,OAAQ,CAAC,QAAQ,MAAO,aAAc,KAAK,MAAM,MACtF,MAAO,KAAK,SAAS,MACjB,CAAE,SAAU,KAAK,SAAS,MAAO,WAAY,QAAQ,QAAU,OAAY,SAAW,MAAS,EAC/F,OACJ,wBAAyB,KAAK,MAAM,MAAM,mBAAqB,KAAO,OAAY,KAAK,OAAO,KAAK,MAAM,MAAM,gBAAgB,EAC/H,aAAc,SAAU,YAAa,UAAW,aAAc,KAAK,MAAM,MAAM,KAAO,OAAS,SAChG,EAAG,CAAE,QAAS,IAAM,MAAM,SAAS,IAAI,KAAK,MAAM,KAAK,CAAC,CAAE,CAC7D,CAAG,EACJ,EAEM,MAAM,WAAa,gBAAgB,CACxC,KAAM,oBAAqB,aAAc,MACzC,MAAO,CAAE,MAAO,CAAE,KAAM,OAAQ,SAAU,IAAI,EAAI,SAAU,CAAE,KAAM,QAAS,QAAS,KAAK,EAAI,GAAI,CAAE,KAAM,CAAC,OAAQ,OAAQ,QAAQ,EAA4B,QAAS,KAAK,EAAI,QAAS,CAAE,KAAM,QAAS,QAAS,KAAK,CAAE,EAC5N,MAAO,OACP,MAAM,MAAO,CAAE,MAAO,KAAK,EAAE,CAC3B,MAAM,KAAO,QAAQ,YAAY,EAAG,MAAM,MAAQ,SAA8B,KAAO,CACrF,MAAO,MAAM,MAAO,SAAU,KAAK,MAAM,MAAM,QAAU,MAAM,MAAO,YAAa,KAAK,MAAM,MAAM,mBAAqB,MAAM,MAC/H,SAAU,KAAK,MAAM,MAAM,UAAY,MAAM,UAAY,KAAK,cAAc,MAAM,IAAI,MAAM,KAAK,GACjG,EACF,QAAqB,QAAS,CAAE,KAAK,CAAE,EACvC,MAAO,IAAkB,EAAE,UAAW,WAAW,MAAO,CACtD,GAAI,MAAM,GAAI,QAAS,MAAM,QAC7B,WAAa,MAAiB,CAAG,GAAI,gBAAgB,YAAa,KAAK,aAAa,KAAM,MAAM,MAAO,MAAM,MAAM,QAAQ,CAAG,EAC9H,GAAI,KAAK,OAAO,MAAM,KAAK,EAAG,KAAM,SAAU,gBAAiB,OAAO,MAAM,MAAM,QAAQ,EAAG,gBAAiB,MAAM,MAAM,SAAW,OAAS,OAC9I,yBAA0B,MAAM,MAAO,aAAc,SAAU,YAAa,OAC5E,gBAAiB,MAAM,MAAM,SAAW,GAAK,OAAW,mBAAoB,MAAM,MAAM,YAAc,GAAK,OAC5G,EAAG,CAAE,QAAS,IAAM,MAAM,SAAS,IAAI,MAAM,KAAK,CAAC,CAAE,CACxD,EACD,EAEM,MAAM,oBAAsB,gBAAgB,CACjD,KAAM,6BAA8B,aAAc,MAAO,MAAO,UAChE,MAAO,OACP,MAAM,MAAO,CAAE,MAAO,KAAK,EAAE,CAAI,MAAM,KAAO,QAAQ,qBAAqB,EAAG,MAAO,IAAkB,EAAE,UAAW,WAAW,MAAO,CACpI,GAAI,MAAM,GAAI,QAAS,MAAM,QAAS,OAAQ,CAAC,KAAK,MAAM,MAAM,SAAU,cAAe,OAAQ,aAAc,SAAU,YAAa,iBACvI,EAAG,CAAE,QAAS,IAAM,MAAM,SAAS,IAAI,KAAK,MAAM,KAAK,CAAC,CAAE,CAAG,EAC/D,EAEM,MAAM,eAAiB,gBAAgB,CAC5C,KAAM,wBAAyB,aAAc,MAAO,MAAO,CAAE,GAAG,UAAW,GAAI,CAAE,GAAG,UAAU,GAAI,QAAS,KAAK,CAAE,EAClH,MAAM,MAAO,CAAE,MAAO,KAAK,EAAE,CAAI,QAAQ,gBAAgB,EAAG,MAAO,IAAkB,EAAE,UAAW,WAAW,MAAO,CAAE,GAAI,MAAM,GAAI,QAAS,MAAM,QAAS,aAAc,SAAU,YAAa,UAAU,CAAE,EAAG,KAAK,CAAG,EACzN,EAEM,MAAM,eAAiB,gBAAgB,CAC5C,KAAM,wBAAyB,aAAc,MAAO,MAAO,UAC3D,MAAM,MAAO,CAAE,MAAO,KAAK,EAAE,CAAI,QAAQ,gBAAgB,EAAG,MAAO,IAAkB,EAAE,UAAW,WAAW,MAAO,CAAE,GAAI,MAAM,GAAI,QAAS,MAAM,QAAS,aAAc,SAAU,YAAa,WAAW,CAAE,EAAG,KAAK,CAAG,EAC1N,EAEM,MAAM,aAAe,gBAAgB,CAC1C,KAAM,sBACN,aAAc,MACd,MAAO,CACL,GAAI,CAAE,KAAM,CAAC,OAAQ,MAAM,EAAqC,QAAS,MAAS,EAClF,SAAU,CAAE,KAAM,QAAS,QAAS,KAAK,EACzC,MAAO,CAAE,KAAM,QAAS,QAAS,KAAK,GAExC,MAAM,MAAO,CAAE,KAAK,EAAE,CAAI,QAAQ,cAAc,EAAG,MAAM,aAAe,oBAAmB,EAAI,MAAO,IAAkB,EAAE,SAAuB,CAAE,GAAI,MAAM,IAAM,aAAa,OAAS,OAAQ,SAAU,MAAM,SAAU,MAAO,MAAM,KAAK,EAAI,MAAM,SAAS,IAAG,CAAE,CAAG,EACzQ,EAED,SAAS,QAAQ,KAAY,CAAiB,MAAM,KAAO,OAAoB,OAAO,EAAG,GAAI,OAAS,OAAW,MAAM,IAAI,UAAU,GAAG,IAAI,kCAAkC,EAAG,OAAO,IAAM,CAC9L,SAAS,QAAQ,KAAY,CAAiB,MAAM,KAAO,OAAoB,OAAO,EAAG,GAAI,OAAS,OAAW,MAAM,IAAI,UAAU,GAAG,IAAI,kCAAkC,EAAG,OAAO,IAAM","names":["id","value"],"file":"select.js"}
1
+ {"version":3,"sources":["../src/select.ts"],"mappings":"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","names":["id","value"],"file":"select.js"}
package/dist/tabs.js CHANGED
@@ -1,2 +1,2 @@
1
- import{computed,defineComponent,h,mergeProps,nextTick,provide,shallowRef,watch}from"vue";import{getTabsContentAttributes,getTabsListAttributes,getTabsRootAttributes,getTabsTriggerAttributes}from"@sectile/dom/tabs";import{createListboxControllerFromItems}from"@sectile/dom/listbox";import{Primitive}from"./primitive.js";import{usePartContract}from"./internal/part-contract.js";import{tabsRootContextKey,useTabsRootContext}from"./internal/tabs-context.js";import{useHostDirection,useHostId}from"./host-provider.js";import{reconcileCollectionState}from"./internal/collection.js";import{useControlledStateInvariant}from"./internal/controlled-state.js";const TabsRoot=defineComponent({name:"SectileTabsRoot",inheritAttrs:false,props:{items:{type:Array,required:true},modelValue:{type:String,default:void 0},defaultValue:{type:String,default:""},disabledItems:{type:Array,default:()=>[]},disabled:{type:Boolean,default:false},readonly:{type:Boolean,default:false},orientation:{type:String,default:"horizontal"},activationMode:{type:String,default:"automatic"},as:{type:[String,Object,Function],default:"div"},asChild:{type:Boolean,default:false}},emits:{"update:modelValue":_value=>true,highlight:_value=>true,activate:_value=>true},slots:Object,setup(props,{attrs,emit,slots}){const controlled=useControlledStateInvariant("TabsRoot","modelValue",()=>props.modelValue);const instanceID=useHostId();const direction=useHostDirection();const rootElement=shallowRef(null);const idMap=new Map;const ids=value2=>{const found=idMap.get(value2);if(found!==void 0)return found;const safe=encodeURIComponent(value2).replaceAll("%","-");const created=Object.freeze({trigger:`sectile-tabs-${instanceID}-${safe}-trigger`,content:`sectile-tabs-${instanceID}-${safe}-content`});idMap.set(value2,created);return created};const makeController=(value2,highlightedValue=value2||null)=>{const selected=value2===""?[]:[value2];const result=createListboxControllerFromItems({items:props.items,selectionMode:"single",disabledItems:props.disabledItems,disabled:props.disabled,readOnly:props.readonly,orientation:props.orientation,direction:direction.value,policies:{selectionFollowsFocus:props.activationMode==="automatic"},...controlled?{value:selected}:{defaultValue:selected},defaultHighlightedValue:highlightedValue??props.items.find(id=>!props.disabledItems.includes(id))??null,onValueChange:({value:next})=>emit("update:modelValue",next[0]??""),onHighlightedValueChange:({value:next})=>emit("highlight",next)});if(!result.ok)throw new TypeError(result.error.message);return result.value};const initial=controlled?props.modelValue:props.defaultValue||props.items.find(id=>!props.disabledItems.includes(id))||"";const controller=shallowRef(makeController(initial));const snapshot=shallowRef(controller.value.getSnapshot());const rebuild=()=>{const requested=controlled?props.modelValue:snapshot.value.state.selection.selected[0]??"";const reconciled=reconcileCollectionState(props.items,requested===""?[]:[requested],snapshot.value.state.cursor.current,props.disabledItems,"single");const current=reconciled.selected[0]??reconciled.current??"";controller.value=makeController(current,reconciled.current);snapshot.value=controller.value.getSnapshot();if(controlled&&current!==requested)emit("update:modelValue",current)};watch(()=>props.modelValue,next=>{if(!controlled||next===void 0)return;const result=controller.value.syncControlledValues({value:next===""?[]:[next]});if(!result.ok)throw new TypeError(result.error.message);snapshot.value=result.value});watch([()=>props.items,()=>props.disabledItems,()=>props.disabled,()=>props.readonly,()=>props.orientation,()=>props.activationMode,direction],rebuild);const value=computed(()=>snapshot.value.state.selection.selected[0]??"");const highlighted=computed(()=>snapshot.value.state.cursor.current);const disabled=computed(()=>props.disabled);const readonly=computed(()=>props.readonly);const orientation=computed(()=>props.orientation);const disabledItems=computed(()=>new Set(props.disabledItems));const apply=(result,root)=>{if(!result.ok)return false;snapshot.value=result.snapshot;applyEffects(result.commands,emit);if(root!==void 0)void nextTick(()=>focusTrigger(root,result.snapshot.state.cursor.current));return true};const activateTarget=target=>{if(!apply(controller.value.handleEvent({type:"focus",id:target})))return false;if(!apply(controller.value.handleEvent({type:"activate",id:target})))return false;void nextTick(()=>{if(rootElement.value!==null)focusTrigger(rootElement.value,target)});return true};const part=usePartContract("tabs","root");provide(tabsRootContextKey,{value,highlighted,disabled,readonly,orientation,direction,disabledItems,items:computed(()=>props.items),partContract:part,ids,select:(id,target)=>apply(controller.value.handleEvent({type:"activate",id}),target.closest('[role="tablist"]')),keydown:event=>{if(!apply(controller.value.handleKeyboardInput(event),event.currentTarget))return;event.preventDefault()},activateTarget});const slotProps=computed(()=>({value:value.value,highlightedValue:highlighted.value,disabled:props.disabled,readonly:props.readonly}));return()=>h(Primitive,mergeProps(attrs,getTabsRootAttributes(),{as:props.as,asChild:props.asChild,elementRef:element=>{rootElement.value=element},"data-scope":part.scope}),{default:()=>slots["default"]?.(slotProps.value)})}});const TabsList=defineComponent({name:"SectileTabsList",inheritAttrs:false,props:{label:{type:String,default:void 0},as:{type:[String,Object,Function],default:"div"},asChild:{type:Boolean,default:false}},slots:Object,setup(props,{attrs,slots}){const root=useTabsRootContext("TabsList");const part={scope:root.partContract.scope,part:root.partContract.parts["list"]??"list"};const attributes=computed(()=>getTabsListAttributes({orientation:root.orientation.value,direction:root.direction.value,...props.label===void 0?{}:{label:props.label},disabled:root.disabled.value,readOnly:root.readonly.value}));return()=>h(Primitive,mergeProps(attrs,attributes.value,{as:props.as,asChild:props.asChild,"data-scope":part.scope,onKeydown:root.keydown}),slots)}});const TabsTrigger=defineComponent({name:"SectileTabsTrigger",inheritAttrs:false,props:{value:{type:String,required:true},disabled:{type:Boolean,default:false},as:{type:[String,Object,Function],default:"button"},asChild:{type:Boolean,default:false}},slots:Object,setup(props,{attrs,slots}){const root=useTabsRootContext("TabsTrigger");const part={scope:root.partContract.scope,part:root.partContract.parts["trigger"]??"trigger"};const state=computed(()=>({value:props.value,selected:root.value.value===props.value,highlighted:root.highlighted.value===props.value,disabled:root.disabled.value||props.disabled||root.disabledItems.value.has(props.value)}));const attributes=computed(()=>{const ids=root.ids(props.value);return getTabsTriggerAttributes({id:props.value,selected:state.value.selected,highlighted:state.value.highlighted,disabled:state.value.disabled,triggerID:ids.trigger,panelID:ids.content})});return()=>h(Primitive,mergeProps(attrs,attributes.value,{as:props.as,asChild:props.asChild,"data-scope":part.scope,"data-part":part.part,onClick:event=>{if(!event.defaultPrevented&&!state.value.disabled)root.select(props.value,event.currentTarget)}}),{default:()=>slots["default"]?.(state.value)})}});const TabsContent=defineComponent({name:"SectileTabsContent",inheritAttrs:false,props:{value:{type:String,required:true},as:{type:[String,Object,Function],default:"div"},asChild:{type:Boolean,default:false}},slots:Object,setup(props,{attrs,slots}){const root=useTabsRootContext("TabsContent");const part={scope:root.partContract.scope,part:root.partContract.parts["content"]??"content"};const selected=computed(()=>root.value.value===props.value);const attributes=computed(()=>{const ids=root.ids(props.value);return getTabsContentAttributes({selected:selected.value,contentID:ids.content,triggerID:ids.trigger})});return()=>h(Primitive,mergeProps(attrs,attributes.value,{as:props.as,asChild:props.asChild,"data-scope":part.scope}),{default:()=>slots["default"]?.({value:props.value,selected:selected.value})})}});const TabsIndicator=defineComponent({name:"SectileTabsIndicator",inheritAttrs:false,props:{as:{type:[String,Object,Function],default:"span"},asChild:{type:Boolean,default:false}},slots:Object,setup(props,{attrs,slots}){const root=useTabsRootContext("TabsIndicator");const part={scope:root.partContract.scope,part:root.partContract.parts["indicator"]??"indicator"};return()=>h(Primitive,mergeProps(attrs,{as:props.as,asChild:props.asChild,"aria-hidden":"true","data-scope":part.scope,"data-part":part.part,"data-value":root.value.value}),{default:()=>slots["default"]?.({value:root.value.value})})}});function applyEffects(effects,emit){for(const effect of effects)if(effect.type==="dispatch-activation")emit("activate",effect.id)}function focusTrigger(root,id){if(id===null)return;const token=getTabsTriggerAttributes({id,selected:false,highlighted:false})["data-tabs-id"];for(const item of root.querySelectorAll("[data-tabs-id]")){if(item.dataset["tabsId"]===token)item.focus()}}export{TabsContent,TabsIndicator,TabsList,TabsRoot,TabsTrigger};
1
+ import{computed,defineComponent,h,mergeProps,nextTick,provide,shallowRef,watch}from"vue";import{getTabsContentAttributes,getTabsListAttributes,getTabsRootAttributes,getTabsTriggerAttributes}from"@sectile/dom/tabs";import{stableIDElementToken}from"@sectile/dom/identity";import{createListboxControllerFromItems}from"@sectile/dom/listbox";import{Primitive}from"./primitive.js";import{usePartContract}from"./internal/part-contract.js";import{tabsRootContextKey,useTabsRootContext}from"./internal/tabs-context.js";import{useHostDirection,useHostId}from"./host-provider.js";import{reconcileCollectionState}from"./internal/collection.js";import{useControlledStateInvariant}from"./internal/controlled-state.js";const TabsRoot=defineComponent({name:"SectileTabsRoot",inheritAttrs:false,props:{items:{type:Array,required:true},modelValue:{type:String,default:void 0},defaultValue:{type:String,default:""},disabledItems:{type:Array,default:()=>[]},disabled:{type:Boolean,default:false},readonly:{type:Boolean,default:false},orientation:{type:String,default:"horizontal"},activationMode:{type:String,default:"automatic"},as:{type:[String,Object,Function],default:"div"},asChild:{type:Boolean,default:false}},emits:{"update:modelValue":_value=>true,highlight:_value=>true,activate:_value=>true},slots:Object,setup(props,{attrs,emit,slots}){const controlled=useControlledStateInvariant("TabsRoot","modelValue",()=>props.modelValue);const instanceID=useHostId();const direction=useHostDirection();const rootElement=shallowRef(null);const idMap=new Map;const ids=value2=>{const found=idMap.get(value2);if(found!==void 0)return found;const safe=stableIDElementToken(value2);const created=Object.freeze({trigger:`sectile-tabs-${instanceID}-${safe}-trigger`,content:`sectile-tabs-${instanceID}-${safe}-content`});idMap.set(value2,created);return created};const makeController=(value2,highlightedValue=value2||null)=>{const selected=value2===""?[]:[value2];const result=createListboxControllerFromItems({items:props.items,selectionMode:"single",disabledItems:props.disabledItems,disabled:props.disabled,readOnly:props.readonly,orientation:props.orientation,direction:direction.value,policies:{selectionFollowsFocus:props.activationMode==="automatic"},...controlled?{value:selected}:{defaultValue:selected},defaultHighlightedValue:highlightedValue??props.items.find(id=>!props.disabledItems.includes(id))??null,onValueChange:({value:next})=>emit("update:modelValue",next[0]??""),onHighlightedValueChange:({value:next})=>emit("highlight",next)});if(!result.ok)throw new TypeError(result.error.message);return result.value};const initial=controlled?props.modelValue:props.defaultValue||props.items.find(id=>!props.disabledItems.includes(id))||"";const controller=shallowRef(makeController(initial));const snapshot=shallowRef(controller.value.getSnapshot());const rebuild=()=>{const requested=controlled?props.modelValue:snapshot.value.state.selection.selected[0]??"";const reconciled=reconcileCollectionState(props.items,requested===""?[]:[requested],snapshot.value.state.cursor.current,props.disabledItems,"single");const current=reconciled.selected[0]??reconciled.current??"";controller.value=makeController(current,reconciled.current);snapshot.value=controller.value.getSnapshot();if(controlled&&current!==requested)emit("update:modelValue",current)};watch(()=>props.modelValue,next=>{if(!controlled||next===void 0)return;const result=controller.value.syncControlledValues({value:next===""?[]:[next]});if(!result.ok)throw new TypeError(result.error.message);snapshot.value=result.value});watch([()=>props.items,()=>props.disabledItems,()=>props.disabled,()=>props.readonly,()=>props.orientation,()=>props.activationMode,direction],rebuild);const value=computed(()=>snapshot.value.state.selection.selected[0]??"");const highlighted=computed(()=>snapshot.value.state.cursor.current);const disabled=computed(()=>props.disabled);const readonly=computed(()=>props.readonly);const orientation=computed(()=>props.orientation);const disabledItems=computed(()=>new Set(props.disabledItems));const apply=(result,root)=>{if(!result.ok)return false;snapshot.value=result.snapshot;applyEffects(result.commands,emit);if(root!==void 0)void nextTick(()=>focusTrigger(root,result.snapshot.state.cursor.current));return true};const activateTarget=target=>{if(!apply(controller.value.handleEvent({type:"focus",id:target})))return false;if(!apply(controller.value.handleEvent({type:"activate",id:target})))return false;void nextTick(()=>{if(rootElement.value!==null)focusTrigger(rootElement.value,target)});return true};const part=usePartContract("tabs","root");provide(tabsRootContextKey,{value,highlighted,disabled,readonly,orientation,direction,disabledItems,items:computed(()=>props.items),partContract:part,ids,select:(id,target)=>apply(controller.value.handleEvent({type:"activate",id}),target.closest('[role="tablist"]')),keydown:event=>{if(!apply(controller.value.handleKeyboardInput(event),event.currentTarget))return;event.preventDefault()},activateTarget});const slotProps=computed(()=>({value:value.value,highlightedValue:highlighted.value,disabled:props.disabled,readonly:props.readonly}));return()=>h(Primitive,mergeProps(attrs,getTabsRootAttributes(),{as:props.as,asChild:props.asChild,elementRef:element=>{rootElement.value=element},"data-scope":part.scope}),{default:()=>slots["default"]?.(slotProps.value)})}});const TabsList=defineComponent({name:"SectileTabsList",inheritAttrs:false,props:{label:{type:String,default:void 0},as:{type:[String,Object,Function],default:"div"},asChild:{type:Boolean,default:false}},slots:Object,setup(props,{attrs,slots}){const root=useTabsRootContext("TabsList");const part={scope:root.partContract.scope,part:root.partContract.parts["list"]??"list"};const attributes=computed(()=>getTabsListAttributes({orientation:root.orientation.value,direction:root.direction.value,...props.label===void 0?{}:{label:props.label},disabled:root.disabled.value,readOnly:root.readonly.value}));return()=>h(Primitive,mergeProps(attrs,attributes.value,{as:props.as,asChild:props.asChild,"data-scope":part.scope,onKeydown:root.keydown}),slots)}});const TabsTrigger=defineComponent({name:"SectileTabsTrigger",inheritAttrs:false,props:{value:{type:String,required:true},disabled:{type:Boolean,default:false},as:{type:[String,Object,Function],default:"button"},asChild:{type:Boolean,default:false}},slots:Object,setup(props,{attrs,slots}){const root=useTabsRootContext("TabsTrigger");const part={scope:root.partContract.scope,part:root.partContract.parts["trigger"]??"trigger"};const state=computed(()=>({value:props.value,selected:root.value.value===props.value,highlighted:root.highlighted.value===props.value,disabled:root.disabled.value||props.disabled||root.disabledItems.value.has(props.value)}));const attributes=computed(()=>{const ids=root.ids(props.value);return getTabsTriggerAttributes({id:props.value,selected:state.value.selected,highlighted:state.value.highlighted,disabled:state.value.disabled,triggerID:ids.trigger,panelID:ids.content})});return()=>h(Primitive,mergeProps(attrs,attributes.value,{as:props.as,asChild:props.asChild,"data-scope":part.scope,"data-part":part.part,onClick:event=>{if(!event.defaultPrevented&&!state.value.disabled)root.select(props.value,event.currentTarget)}}),{default:()=>slots["default"]?.(state.value)})}});const TabsContent=defineComponent({name:"SectileTabsContent",inheritAttrs:false,props:{value:{type:String,required:true},as:{type:[String,Object,Function],default:"div"},asChild:{type:Boolean,default:false}},slots:Object,setup(props,{attrs,slots}){const root=useTabsRootContext("TabsContent");const part={scope:root.partContract.scope,part:root.partContract.parts["content"]??"content"};const selected=computed(()=>root.value.value===props.value);const attributes=computed(()=>{const ids=root.ids(props.value);return getTabsContentAttributes({selected:selected.value,contentID:ids.content,triggerID:ids.trigger})});return()=>h(Primitive,mergeProps(attrs,attributes.value,{as:props.as,asChild:props.asChild,"data-scope":part.scope}),{default:()=>slots["default"]?.({value:props.value,selected:selected.value})})}});const TabsIndicator=defineComponent({name:"SectileTabsIndicator",inheritAttrs:false,props:{as:{type:[String,Object,Function],default:"span"},asChild:{type:Boolean,default:false}},slots:Object,setup(props,{attrs,slots}){const root=useTabsRootContext("TabsIndicator");const part={scope:root.partContract.scope,part:root.partContract.parts["indicator"]??"indicator"};return()=>h(Primitive,mergeProps(attrs,{as:props.as,asChild:props.asChild,"aria-hidden":"true","data-scope":part.scope,"data-part":part.part,"data-value":root.value.value}),{default:()=>slots["default"]?.({value:root.value.value})})}});function applyEffects(effects,emit){for(const effect of effects)if(effect.type==="dispatch-activation")emit("activate",effect.id)}function focusTrigger(root,id){if(id===null)return;const token=getTabsTriggerAttributes({id,selected:false,highlighted:false})["data-tabs-id"];for(const item of root.querySelectorAll("[data-tabs-id]")){if(item.dataset["tabsId"]===token)item.focus()}}export{TabsContent,TabsIndicator,TabsList,TabsRoot,TabsTrigger};
2
2
  //# sourceMappingURL=tabs.js.map
package/dist/tabs.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/tabs.ts"],"mappings":"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","names":["value"],"file":"tabs.js"}
1
+ {"version":3,"sources":["../src/tabs.ts"],"mappings":"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","names":["value"],"file":"tabs.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.14.0",
3
+ "version": "0.14.2",
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.14.0",
418
- "@sectile/dom": "0.14.0"
417
+ "@sectile/core": "^0.14.2",
418
+ "@sectile/dom": "^0.14.2"
419
419
  },
420
420
  "peerDependencies": {
421
- "@sectile/chart": "0.14.0",
422
- "@sectile/form": "0.14.0",
423
- "@sectile/tabular": "0.14.0",
424
- "@sectile/virtual": "0.14.0",
421
+ "@sectile/chart": "^0.15.0",
422
+ "@sectile/form": "^0.14.2",
423
+ "@sectile/tabular": "^0.14.2",
424
+ "@sectile/virtual": "^0.14.2",
425
425
  "vue": "^3.5.0",
426
- "@sectile/temporal": "0.14.0"
426
+ "@sectile/temporal": "^0.14.2"
427
427
  },
428
428
  "peerDependenciesMeta": {
429
429
  "@sectile/chart": {
@@ -443,10 +443,10 @@
443
443
  }
444
444
  },
445
445
  "devDependencies": {
446
- "@sectile/chart": "0.14.0",
447
- "@sectile/form": "0.14.0",
448
- "@sectile/tabular": "0.14.0",
449
- "@sectile/virtual": "0.14.0",
446
+ "@sectile/chart": "0.15.0",
447
+ "@sectile/form": "0.14.2",
448
+ "@sectile/tabular": "0.14.2",
449
+ "@sectile/virtual": "0.14.2",
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.14.0"
457
+ "@sectile/temporal": "0.14.2"
458
458
  },
459
459
  "scripts": {
460
460
  "build": "node scripts/build.mjs production",
@@ -465,7 +465,8 @@
465
465
  "check:hydration-contract": "node scripts/check-hydration-contract.mjs",
466
466
  "serve:browser-verification": "pnpm --silent run build && node scripts/serve-browser-verification.mjs",
467
467
  "typecheck": "node node_modules/typescript/lib/tsc.js --project tsconfig.json --pretty false",
468
- "typecheck:public": "pnpm --silent run build:verification && node node_modules/typescript/lib/tsc.js --project type-tests/tsconfig.json --pretty false && node scripts/typecheck-public-sfc.mjs --project type-tests/tsconfig.vue.json --noEmit",
468
+ "typecheck:public": "pnpm --silent run build:verification && pnpm --silent run typecheck:public:prepared",
469
+ "typecheck:public:prepared": "node node_modules/typescript/lib/tsc.js --project type-tests/tsconfig.json --pretty false && node scripts/typecheck-public-sfc.mjs --project type-tests/tsconfig.vue.json --noEmit",
469
470
  "test": "pnpm --silent run build:verification && node --test --test-concurrency=4 tests/*.test.mjs",
470
471
  "verify:reproducible-build": "node scripts/check-reproducible-build.mjs"
471
472
  }