@sectile/vue 0.11.0 → 0.12.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -1,2 +1,2 @@
1
- import{defineComponent,h,nextTick,onBeforeUnmount,onMounted,shallowRef,watch}from'vue';import{createSequence}from'@sectile/core/sequence';import{createExtentIndex,createUniformExtentIndex}from'@sectile/virtual/extent-index';import{linearLayoutStrategy,tryApplyLinearPatch,createLinearLayout}from'@sectile/virtual/linear-layout';import{createAxisMeasurementResolver,virtualItemStyle}from'@sectile/dom/virtual';import{Primitive}from'../primitive.js';import{VirtualizerContent,VirtualizerRoot,useVirtualizer}from'./virtual-core.js';import{assertVirtualListSizeMode,createPreparedVirtualListSequence,estimatedExtent,exactExtent,prepareVirtualList,reconcileVirtualList,requireAutomaticEstimate,requiresDOMBootstrap,updatePreparedVirtualList}from'./virtual-collection-model.js';const VirtualListRuntime=/* @__PURE__ */defineComponent({name:'SectileVirtualList',inheritAttrs:false,props:{items:{type:Array,required:true},getKey:{type:Function,required:true},estimateSize:{type:[Number,Function],default:undefined},itemSize:{type:Number,default:undefined},axis:{type:String,default:'vertical'},gap:{type:Number,default:0},overscan:{type:[Number,Object],default:240},maxItems:{type:Number,default:1_000_000},initialViewport:{type:Object,default:undefined},as:{type:String,default:'div'},contentAs:{type:String,default:'div'},itemAs:{type:String,default:'div'},itemAttributes:{type:Function,default:undefined}},emits:{stateChange:_state=>true,planChange:_plan=>true,error:_error=>true},slots:Object,setup(props,{attrs,emit,expose,slots}){assertVirtualListSizeMode(props.itemSize,props.estimateSize);const prepared=shallowRef(prepareVirtualList(props.items,props.getKey,props.maxItems));const automaticEstimate=shallowRef();const bootstrapCount=shallowRef(requiresDOMBootstrap(props.itemSize,props.estimateSize)&&prepared.value.domain.size>0?1:0);const bootstrapElements=new Map;let bootstrapScheduled=false;let disposed=false;const state=shallowRef(requiresDOMBootstrap(props.itemSize,props.estimateSize)?createEmptyVirtualListState(props):createVirtualListState(prepared.value,props.items,props));const measure=props.itemSize===undefined?createVirtualListMeasurementResolver(props.axis):undefined;const virtualizer=useVirtualizer({state,strategy:linearLayoutStrategy,overscan:()=>props.overscan,...props.initialViewport===undefined?{}:{initialViewport:props.initialViewport},...measure===undefined?{}:{measure},onStateChange:value=>{emit('stateChange',value)},onPlanChange:value=>{emit('planChange',value)},onError:error=>{emit('error',error)}});const registrations=new Map;const elements=new Map;const itemRefs=new Map;const pendingMeasurements=new Set;const forcedMeasurements=new Set;let measurementScheduled=false;const setRootElement=value=>{virtualizer.root.value=value instanceof HTMLElement?value:null};const measurePendingItems=()=>{measurementScheduled=false;if(disposed||pendingMeasurements.size===0)return;const connection=virtualizer.connection.value;if(connection===undefined)return;const queued=Array.from(pendingMeasurements);pendingMeasurements.clear();const measurements=[];for(const id of queued){const element=elements.get(id);const index=state.value.domain.indexOf(id);if(element===undefined||index===null)continue;const current=state.value.extents.extentAt(index);if(current?.kind==='exact'&&!forcedMeasurements.has(id))continue;const measurement=measureVirtualListElement(props.axis,id,element,state.value);if(measurement!==null)measurements.push(measurement)}for(const id of queued)forcedMeasurements.delete(id);if(measurements.length>0)connection.measure(measurements)};const scheduleItemMeasurement=(id,force=false)=>{if(props.itemSize!==undefined)return;pendingMeasurements.add(id);if(force)forcedMeasurements.add(id);if(measurementScheduled)return;measurementScheduled=true;void nextTick(measurePendingItems)};const scheduleChangedRenderedItemMeasurements=(previousPrepared,previousState,nextPrepared,nextState)=>{if(props.itemSize!==undefined)return;for(const id of elements.keys()){const previousIndex=previousState.domain.indexOf(id);const nextIndex=nextState.domain.indexOf(id);if(previousIndex!==null&&nextIndex!==null&&!Object.is(previousPrepared.items[previousIndex],nextPrepared.items[nextIndex]))scheduleItemMeasurement(id,true)}};const itemRef=id=>{const existing=itemRefs.get(id);if(existing!==undefined)return existing;const callback=value=>{const element=value instanceof HTMLElement?value:null;if(element!==null&&elements.get(id)===element)return;registrations.get(id)?.();registrations.delete(id);elements.delete(id);if(element!==null){elements.set(id,element);registrations.set(id,virtualizer.registerItem(element,id));scheduleItemMeasurement(id)}};itemRefs.set(id,callback);return callback};const bootstrapItemRef=(index,value)=>{const element=value instanceof HTMLElement?value:null;if(element===null)bootstrapElements.delete(index);else{bootstrapElements.set(index,element);scheduleBootstrap()}};const completeBootstrap=()=>{if(automaticEstimate.value!==undefined||!requiresDOMBootstrap(props.itemSize,props.estimateSize)||prepared.value.domain.size===0)return;const count=Math.min(bootstrapCount.value,prepared.value.domain.size);const extents=[];for(let index=0;index<count;index+=1){const element=bootstrapElements.get(index);if(element===undefined)return;const bounds=element.getBoundingClientRect();const extent=props.axis==='vertical'?bounds.height:bounds.width;if(!Number.isFinite(extent)||extent<=0)return;extents.push(extent)}const total=extents.reduce((sum,extent)=>sum+extent,0)+props.gap*Math.max(0,extents.length-1);const root=virtualizer.root.value;const measuredViewportExtent=props.axis==='vertical'?root?.clientHeight??0:root?.clientWidth??0;const viewportExtent=measuredViewportExtent>0?measuredViewportExtent:props.axis==='vertical'?props.initialViewport?.height??0:props.initialViewport?.width??0;const target=viewportExtent+bootstrapTrailingOverscanExtent(props.overscan,props.axis);const average=extents.reduce((sum,extent)=>sum+extent,0)/extents.length;if(target>total&&count<prepared.value.domain.size){const nextCount=Math.min(prepared.value.domain.size,Math.max(count+1,Math.ceil((target+props.gap)/(average+props.gap))));bootstrapCount.value=nextCount;return}automaticEstimate.value=average;bootstrapCount.value=0;bootstrapElements.clear();state.value=createVirtualListState(prepared.value,props.items,props,automaticEstimate.value)};function scheduleBootstrap(){if(disposed||bootstrapScheduled||automaticEstimate.value!==undefined||bootstrapCount.value===0)return;bootstrapScheduled=true;void nextTick(()=>{bootstrapScheduled=false;if(!disposed)completeBootstrap()})}onMounted(scheduleBootstrap);watch(()=>props.items,items=>{const previousPrepared=prepared.value;const previousState=state.value;const next=updatePreparedVirtualList(previousPrepared,items,props.getKey);if(requiresDOMBootstrap(props.itemSize,props.estimateSize)&&automaticEstimate.value===undefined){prepared.value=next;bootstrapCount.value=next.domain.size>0?1:0;scheduleBootstrap();return}const patch=reconcileVirtualList(state.value,next,items,props,automaticEstimate.value);if(patch===null){scheduleChangedRenderedItemMeasurements(previousPrepared,previousState,next,previousState);prepared.value=next;return}const result=virtualizer.connection.value===undefined?tryApplyLinearPatch(state.value,patch):virtualizer.connection.value.mutate(patch);if(!result.ok){if(virtualizer.connection.value===undefined)emit('error',result.error);return}if(virtualizer.connection.value===undefined)state.value=result.value.state;scheduleChangedRenderedItemMeasurements(previousPrepared,previousState,next,result.value.state);for(const id of itemRefs.keys()){if(result.value.state.domain.indexOf(id)===null)itemRefs.delete(id)}prepared.value=next},{flush:'sync'});let constructionWarningShown=false;watch(()=>[props.axis,props.gap,props.maxItems,props.itemSize,props.estimateSize,props.initialViewport?.x,props.initialViewport?.y,props.initialViewport?.width,props.initialViewport?.height],(value,previous)=>{if(constructionWarningShown||value.every((item,index)=>Object.is(item,previous[index])))return;constructionWarningShown=true;console.warn('[Sectile] VirtualList axis, gap, maxItems, itemSize, estimateSize, and initialViewport are construction-time options. Remount the list to change them.')},{flush:'sync'});onBeforeUnmount(()=>{disposed=true;for(const unregister of registrations.values())unregister();registrations.clear();elements.clear();itemRefs.clear();bootstrapElements.clear();pendingMeasurements.clear();forcedMeasurements.clear()});expose(Object.freeze({root:virtualizer.root,get state(){return state.value},get plan(){return virtualizer.plan.value},scrollTo:virtualizer.scrollTo,refresh:virtualizer.refresh,flush:virtualizer.flush}));return()=>{const plan=virtualizer.plan.value;const rootStyle=attrs['style'];const rootAttributes={...attrs};delete rootAttributes['style'];const bootstrapping=automaticEstimate.value===undefined&&bootstrapCount.value>0;const contentStyle=props.axis==='vertical'?{position:'relative',width:'100%',...bootstrapping?{}:{height:`${plan?.contentSize.height??0}px`}}:{position:'relative',height:'100%',...bootstrapping?{display:'flex'}:{width:`${plan?.contentSize.width??0}px`}};const children=plan?.placements.map(placement=>{const index=placement.index;const value=props.items[index];if(index>=props.items.length||prepared.value.domain.at(index)!==placement.id)return null;const itemAttributes=props.itemAttributes?.(value,index)??{};const itemStyle=virtualItemStyle(placement,props.itemSize===undefined?undefined:props.axis==='vertical'?{height:true}:{width:true});const rendered=slots['default']?.({value,key:placement.id,index,placement});const itemChildren=rendered===undefined||rendered===null?[]:Array.isArray(rendered)?rendered:[rendered];return h(props.itemAs,{...itemAttributes,key:placement.id,...props.itemSize===undefined?{ref:itemRef(placement.id)}:{},style:[itemAttributes['style'],itemStyle,props.axis==='vertical'?{width:'100%'}:{height:'100%'}],'data-scope':'virtual-list','data-part':'item','data-index':placement.index,'data-visible':placement.visible?'':undefined},itemChildren)})??[];if(automaticEstimate.value===undefined&&bootstrapCount.value>0){children.push(...renderVirtualListBootstrapItems(prepared.value,props.items,bootstrapCount.value,props,slots['default'],bootstrapItemRef))}if(prepared.value.domain.size===0){const empty=slots['empty']?.();if(empty!==undefined&&empty!==null)children.push(empty)}return h(props.as,{...rootAttributes,ref:setRootElement,style:[{overflow:'auto'},rootStyle],'data-scope':'virtual-list','data-part':'root'},[h(props.contentAs,{style:contentStyle,'data-scope':'virtual-list','data-part':'content'},children)])}}});export const VirtualList=VirtualListRuntime;export function createVirtualListMeasurementResolver(axis){return({element,placement,state})=>measureVirtualListElement(axis,placement.id,element,state)}function measureVirtualListElement(axis,id,element,state){const index=state.domain.indexOf(id);if(index===null)return null;const bounds=element.getBoundingClientRect();const value=axis==='vertical'?bounds.height:bounds.width;if(!Number.isFinite(value)||value<=0)return null;const current=state.extents.extentAt(index);if(current?.kind==='exact'&&Math.abs(current.value-value)<0.01)return null;return Object.freeze({index,extent:Object.freeze({kind:'exact',value})})}export function createVirtualListState(prepared,items,props,automaticEstimate){const estimate=props.estimateSize??automaticEstimate;const sharedExtent=props.itemSize!==undefined?exactExtent(props.itemSize):typeof estimate!=='function'?estimatedExtent(requireAutomaticEstimate(estimate),undefined,0):null;return createLinearLayout(createPreparedVirtualListSequence(prepared,props.maxItems),sharedExtent===null?createExtentIndex(Array.from({length:prepared.domain.size},(_unused,index)=>estimatedExtent(estimate,items[index],index)),{maxItems:props.maxItems}):createUniformExtentIndex(prepared.domain.size,sharedExtent,{maxItems:props.maxItems}),{axis:props.axis,gap:props.gap,crossExtent:1})}export function createEmptyVirtualListState(props){return createLinearLayout(createSequence([],{maxItems:props.maxItems,maxIDCodeUnits:1_024}),createUniformExtentIndex(0,exactExtent(0),{maxItems:props.maxItems}),{axis:props.axis,gap:props.gap,crossExtent:1})}export function bootstrapTrailingOverscanExtent(overscan,axis){if(typeof overscan==='number')return overscan;return axis==='vertical'?overscan.bottom??0:overscan.right??0}export function renderVirtualListBootstrapItems(prepared,items,count,props,render,itemRef){return Array.from({length:Math.min(count,prepared.domain.size)},(_unused,index)=>{const value=items[index];const id=prepared.domain.at(index);const attributes=props.itemAttributes?.(value,index)??{};const placement=Object.freeze({id,index,rect:Object.freeze({x:0,y:0,width:0,height:0}),visible:true});const rendered=render?.({value,key:id,index,placement});const children=rendered===undefined||rendered===null?[]:Array.isArray(rendered)?rendered:[rendered];return h(props.itemAs,{...attributes,key:id,ref:element=>itemRef(index,element),style:[attributes['style'],props.axis==='vertical'?{width:'100%'}:{height:'100%'},props.gap>0&&index>0?props.axis==='vertical'?{marginTop:`${props.gap}px`}:{marginLeft:`${props.gap}px`}:undefined],'data-scope':'virtual-list','data-part':'item','data-index':index,'data-visible':'','data-bootstrap':''},children)})}
1
+ import{defineComponent,h,nextTick,onBeforeUnmount,onMounted,shallowRef,watch}from'vue';import{createSequence}from'@sectile/core/sequence';import{createExtentIndex,createUniformExtentIndex}from'@sectile/virtual/extent-index';import{linearLayoutStrategyFor,tryApplyLinearPatch,createLinearLayout}from'@sectile/virtual/linear-layout';import{createAxisMeasurementResolver,virtualItemStyle}from'@sectile/dom/virtual';import{Primitive}from'../primitive.js';import{VirtualizerContent,VirtualizerRoot,useVirtualizer}from'./virtual-core.js';import{assertVirtualListSizeMode,createPreparedVirtualListSequence,estimatedExtent,exactExtent,prepareVirtualList,reconcileVirtualList,requireAutomaticEstimate,requiresDOMBootstrap,updatePreparedVirtualList}from'./virtual-collection-model.js';const VirtualListRuntime=/* @__PURE__ */defineComponent({name:'SectileVirtualList',inheritAttrs:false,props:{items:{type:Array,required:true},getKey:{type:Function,required:true},estimateSize:{type:[Number,Function],default:undefined},itemSize:{type:Number,default:undefined},axis:{type:String,default:'vertical'},gap:{type:Number,default:0},overscan:{type:[Number,Object],default:240},maxItems:{type:Number,default:1_000_000},initialViewport:{type:Object,default:undefined},as:{type:String,default:'div'},contentAs:{type:String,default:'div'},itemAs:{type:String,default:'div'},itemAttributes:{type:Function,default:undefined}},emits:{stateChange:_state=>true,planChange:_plan=>true,error:_error=>true},slots:Object,setup(props,{attrs,emit,expose,slots}){assertVirtualListSizeMode(props.itemSize,props.estimateSize);const prepared=shallowRef(prepareVirtualList(props.items,props.getKey,props.maxItems));const automaticEstimate=shallowRef();const bootstrapCount=shallowRef(requiresDOMBootstrap(props.itemSize,props.estimateSize)&&prepared.value.domain.size>0?1:0);const bootstrapElements=new Map;let bootstrapScheduled=false;let disposed=false;const state=shallowRef(requiresDOMBootstrap(props.itemSize,props.estimateSize)?createEmptyVirtualListState(props):createVirtualListState(prepared.value,props.items,props));const measure=props.itemSize===undefined?createVirtualListMeasurementResolver(props.axis):undefined;const virtualizer=useVirtualizer({state,strategy:linearLayoutStrategyFor(),overscan:()=>props.overscan,...props.initialViewport===undefined?{}:{initialViewport:props.initialViewport},...measure===undefined?{}:{measure},onStateChange:value=>{emit('stateChange',value)},onPlanChange:value=>{emit('planChange',value)},onError:error=>{emit('error',error)}});const registrations=new Map;const elements=new Map;const itemRefs=new Map;const pendingMeasurements=new Set;const forcedMeasurements=new Set;let measurementScheduled=false;const setRootElement=value=>{virtualizer.root.value=value instanceof HTMLElement?value:null};const measurePendingItems=()=>{measurementScheduled=false;if(disposed||pendingMeasurements.size===0)return;const connection=virtualizer.connection.value;if(connection===undefined)return;const queued=Array.from(pendingMeasurements);pendingMeasurements.clear();const measurements=[];for(const id of queued){const element=elements.get(id);const index=state.value.domain.indexOf(id);if(element===undefined||index===null)continue;const current=state.value.extents.extentAt(index);if(current?.kind==='exact'&&!forcedMeasurements.has(id))continue;const measurement=measureVirtualListElement(props.axis,id,element,state.value);if(measurement!==null)measurements.push(measurement)}for(const id of queued)forcedMeasurements.delete(id);if(measurements.length>0)connection.measure(measurements)};const scheduleItemMeasurement=(id,force=false)=>{if(props.itemSize!==undefined)return;pendingMeasurements.add(id);if(force)forcedMeasurements.add(id);if(measurementScheduled)return;measurementScheduled=true;void nextTick(measurePendingItems)};const scheduleChangedRenderedItemMeasurements=(previousPrepared,previousState,nextPrepared,nextState)=>{if(props.itemSize!==undefined)return;for(const id of elements.keys()){const previousIndex=previousState.domain.indexOf(id);const nextIndex=nextState.domain.indexOf(id);if(previousIndex!==null&&nextIndex!==null&&!Object.is(previousPrepared.items[previousIndex],nextPrepared.items[nextIndex]))scheduleItemMeasurement(id,true)}};const itemRef=id=>{const existing=itemRefs.get(id);if(existing!==undefined)return existing;const callback=value=>{const element=value instanceof HTMLElement?value:null;if(element!==null&&elements.get(id)===element)return;registrations.get(id)?.();registrations.delete(id);elements.delete(id);if(element!==null){elements.set(id,element);registrations.set(id,virtualizer.registerItem(element,id));scheduleItemMeasurement(id)}};itemRefs.set(id,callback);return callback};const bootstrapItemRef=(index,value)=>{const element=value instanceof HTMLElement?value:null;if(element===null)bootstrapElements.delete(index);else{bootstrapElements.set(index,element);scheduleBootstrap()}};const completeBootstrap=()=>{if(automaticEstimate.value!==undefined||!requiresDOMBootstrap(props.itemSize,props.estimateSize)||prepared.value.domain.size===0)return;const count=Math.min(bootstrapCount.value,prepared.value.domain.size);const extents=[];for(let index=0;index<count;index+=1){const element=bootstrapElements.get(index);if(element===undefined)return;const bounds=element.getBoundingClientRect();const extent=props.axis==='vertical'?bounds.height:bounds.width;if(!Number.isFinite(extent)||extent<=0)return;extents.push(extent)}const total=extents.reduce((sum,extent)=>sum+extent,0)+props.gap*Math.max(0,extents.length-1);const root=virtualizer.root.value;const measuredViewportExtent=props.axis==='vertical'?root?.clientHeight??0:root?.clientWidth??0;const viewportExtent=measuredViewportExtent>0?measuredViewportExtent:props.axis==='vertical'?props.initialViewport?.height??0:props.initialViewport?.width??0;const target=viewportExtent+bootstrapTrailingOverscanExtent(props.overscan,props.axis);const average=extents.reduce((sum,extent)=>sum+extent,0)/extents.length;if(target>total&&count<prepared.value.domain.size){const nextCount=Math.min(prepared.value.domain.size,Math.max(count+1,Math.ceil((target+props.gap)/(average+props.gap))));bootstrapCount.value=nextCount;return}automaticEstimate.value=average;bootstrapCount.value=0;bootstrapElements.clear();state.value=createVirtualListState(prepared.value,props.items,props,automaticEstimate.value)};function scheduleBootstrap(){if(disposed||bootstrapScheduled||automaticEstimate.value!==undefined||bootstrapCount.value===0)return;bootstrapScheduled=true;void nextTick(()=>{bootstrapScheduled=false;if(!disposed)completeBootstrap()})}onMounted(scheduleBootstrap);watch(()=>props.items,items=>{const previousPrepared=prepared.value;const previousState=state.value;const next=updatePreparedVirtualList(previousPrepared,items,props.getKey);if(requiresDOMBootstrap(props.itemSize,props.estimateSize)&&automaticEstimate.value===undefined){prepared.value=next;bootstrapCount.value=next.domain.size>0?1:0;scheduleBootstrap();return}const patch=reconcileVirtualList(state.value,next,items,props,automaticEstimate.value);if(patch===null){scheduleChangedRenderedItemMeasurements(previousPrepared,previousState,next,previousState);prepared.value=next;return}const result=virtualizer.connection.value===undefined?tryApplyLinearPatch(state.value,patch):virtualizer.connection.value.mutate(patch);if(!result.ok){if(virtualizer.connection.value===undefined)emit('error',result.error);return}if(virtualizer.connection.value===undefined)state.value=result.value.state;scheduleChangedRenderedItemMeasurements(previousPrepared,previousState,next,result.value.state);for(const id of itemRefs.keys()){if(result.value.state.domain.indexOf(id)===null)itemRefs.delete(id)}prepared.value=next},{flush:'sync'});let constructionWarningShown=false;watch(()=>[props.axis,props.gap,props.maxItems,props.itemSize,props.estimateSize,props.initialViewport?.x,props.initialViewport?.y,props.initialViewport?.width,props.initialViewport?.height],(value,previous)=>{if(constructionWarningShown||value.every((item,index)=>Object.is(item,previous[index])))return;constructionWarningShown=true;console.warn('[Sectile] VirtualList axis, gap, maxItems, itemSize, estimateSize, and initialViewport are construction-time options. Remount the list to change them.')},{flush:'sync'});onBeforeUnmount(()=>{disposed=true;for(const unregister of registrations.values())unregister();registrations.clear();elements.clear();itemRefs.clear();bootstrapElements.clear();pendingMeasurements.clear();forcedMeasurements.clear()});expose(Object.freeze({root:virtualizer.root,get state(){return state.value},get plan(){return virtualizer.plan.value},scrollTo:virtualizer.scrollTo,refresh:virtualizer.refresh,flush:virtualizer.flush}));return()=>{const plan=virtualizer.plan.value;const rootStyle=attrs['style'];const rootAttributes={...attrs};delete rootAttributes['style'];const bootstrapping=automaticEstimate.value===undefined&&bootstrapCount.value>0;const contentStyle=props.axis==='vertical'?{position:'relative',width:'100%',...bootstrapping?{}:{height:`${plan?.contentSize.height??0}px`}}:{position:'relative',height:'100%',...bootstrapping?{display:'flex'}:{width:`${plan?.contentSize.width??0}px`}};const children=plan?.placements.map(placement=>{const index=placement.index;const value=props.items[index];if(index>=props.items.length||prepared.value.domain.at(index)!==placement.id)return null;const itemAttributes=props.itemAttributes?.(value,index)??{};const itemStyle=virtualItemStyle(placement,props.itemSize===undefined?undefined:props.axis==='vertical'?{height:true}:{width:true});const rendered=slots['default']?.({value,key:placement.id,index,placement});const itemChildren=rendered===undefined||rendered===null?[]:Array.isArray(rendered)?rendered:[rendered];return h(props.itemAs,{...itemAttributes,key:placement.id,...props.itemSize===undefined?{ref:itemRef(placement.id)}:{},style:[itemAttributes['style'],itemStyle,props.axis==='vertical'?{width:'100%'}:{height:'100%'}],'data-scope':'virtual-list','data-part':'item','data-index':placement.index,'data-visible':placement.visible?'':undefined},itemChildren)})??[];if(automaticEstimate.value===undefined&&bootstrapCount.value>0){children.push(...renderVirtualListBootstrapItems(prepared.value,props.items,bootstrapCount.value,props,slots['default'],bootstrapItemRef))}if(prepared.value.domain.size===0){const empty=slots['empty']?.();if(empty!==undefined&&empty!==null)children.push(empty)}return h(props.as,{...rootAttributes,ref:setRootElement,style:[{overflow:'auto'},rootStyle],'data-scope':'virtual-list','data-part':'root'},[h(props.contentAs,{style:contentStyle,'data-scope':'virtual-list','data-part':'content'},children)])}}});export const VirtualList=VirtualListRuntime;export function createVirtualListMeasurementResolver(axis){return({element,placement,state})=>measureVirtualListElement(axis,placement.id,element,state)}function measureVirtualListElement(axis,id,element,state){const index=state.domain.indexOf(id);if(index===null)return null;const bounds=element.getBoundingClientRect();const value=axis==='vertical'?bounds.height:bounds.width;if(!Number.isFinite(value)||value<=0)return null;const current=state.extents.extentAt(index);if(current?.kind==='exact'&&Math.abs(current.value-value)<0.01)return null;return Object.freeze({index,extent:Object.freeze({kind:'exact',value})})}export function createVirtualListState(prepared,items,props,automaticEstimate){const estimate=props.estimateSize??automaticEstimate;const sharedExtent=props.itemSize!==undefined?exactExtent(props.itemSize):typeof estimate!=='function'?estimatedExtent(requireAutomaticEstimate(estimate),undefined,0):null;return createLinearLayout(createPreparedVirtualListSequence(prepared,props.maxItems),sharedExtent===null?createExtentIndex(Array.from({length:prepared.domain.size},(_unused,index)=>estimatedExtent(estimate,items[index],index)),{maxItems:props.maxItems}):createUniformExtentIndex(prepared.domain.size,sharedExtent,{maxItems:props.maxItems}),{axis:props.axis,gap:props.gap,crossExtent:1})}export function createEmptyVirtualListState(props){return createLinearLayout(createSequence([],{maxItems:props.maxItems,maxIDCodeUnits:1_024}),createUniformExtentIndex(0,exactExtent(0),{maxItems:props.maxItems}),{axis:props.axis,gap:props.gap,crossExtent:1})}export function bootstrapTrailingOverscanExtent(overscan,axis){if(typeof overscan==='number')return overscan;return axis==='vertical'?overscan.bottom??0:overscan.right??0}export function renderVirtualListBootstrapItems(prepared,items,count,props,render,itemRef){return Array.from({length:Math.min(count,prepared.domain.size)},(_unused,index)=>{const value=items[index];const id=prepared.domain.at(index);const attributes=props.itemAttributes?.(value,index)??{};const placement=Object.freeze({id,index,rect:Object.freeze({x:0,y:0,width:0,height:0}),visible:true});const rendered=render?.({value,key:id,index,placement});const children=rendered===undefined||rendered===null?[]:Array.isArray(rendered)?rendered:[rendered];return h(props.itemAs,{...attributes,key:id,ref:element=>itemRef(index,element),style:[attributes['style'],props.axis==='vertical'?{width:'100%'}:{height:'100%'},props.gap>0&&index>0?props.axis==='vertical'?{marginTop:`${props.gap}px`}:{marginLeft:`${props.gap}px`}:undefined],'data-scope':'virtual-list','data-part':'item','data-index':index,'data-visible':'','data-bootstrap':''},children)})}
2
2
  //# sourceMappingURL=virtual-list.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"virtual-list.js","names":["defineComponent","h","nextTick","onBeforeUnmount","onMounted","shallowRef","watch","createSequence","createExtentIndex","createUniformExtentIndex","linearLayoutStrategy","tryApplyLinearPatch","createLinearLayout","createAxisMeasurementResolver","virtualItemStyle","Primitive","VirtualizerContent","VirtualizerRoot","useVirtualizer","assertVirtualListSizeMode","createPreparedVirtualListSequence","estimatedExtent","exactExtent","prepareVirtualList","reconcileVirtualList","requireAutomaticEstimate","requiresDOMBootstrap","updatePreparedVirtualList","VirtualListRuntime","name","inheritAttrs","props","items","type","Array","required","getKey","Function","estimateSize","Number","default","undefined","itemSize","axis","String","gap","overscan","Object","maxItems","initialViewport","as","contentAs","itemAs","itemAttributes","emits","stateChange","_state","planChange","_plan","error","_error","slots","setup","attrs","emit","expose","prepared","automaticEstimate","bootstrapCount","value","domain","size","bootstrapElements","Map","bootstrapScheduled","disposed","state","createEmptyVirtualListState","createVirtualListState","measure","createVirtualListMeasurementResolver","virtualizer","strategy","onStateChange","onPlanChange","onError","registrations","elements","itemRefs","pendingMeasurements","Set","forcedMeasurements","measurementScheduled","setRootElement","root","HTMLElement","measurePendingItems","connection","queued","from","clear","measurements","id","element","get","index","indexOf","current","extents","extentAt","kind","has","measurement","measureVirtualListElement","push","delete","length","scheduleItemMeasurement","force","add","scheduleChangedRenderedItemMeasurements","previousPrepared","previousState","nextPrepared","nextState","keys","previousIndex","nextIndex","is","itemRef","existing","callback","set","registerItem","bootstrapItemRef","scheduleBootstrap","completeBootstrap","count","Math","min","bounds","getBoundingClientRect","extent","height","width","isFinite","total","reduce","sum","max","measuredViewportExtent","clientHeight","clientWidth","viewportExtent","target","bootstrapTrailingOverscanExtent","average","nextCount","ceil","next","patch","result","mutate","ok","flush","constructionWarningShown","x","y","previous","every","item","console","warn","unregister","values","freeze","plan","scrollTo","refresh","rootStyle","rootAttributes","bootstrapping","contentStyle","position","contentSize","display","children","placements","map","placement","at","itemStyle","rendered","key","itemChildren","isArray","ref","style","visible","renderVirtualListBootstrapItems","empty","overflow","VirtualList","abs","estimate","sharedExtent","_unused","crossExtent","maxIDCodeUnits","bottom","right","render","attributes","rect","marginTop","marginLeft"],"sources":["../../src/internal/virtual-list.ts"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"file":"virtual-list.js","names":["defineComponent","h","nextTick","onBeforeUnmount","onMounted","shallowRef","watch","createSequence","createExtentIndex","createUniformExtentIndex","linearLayoutStrategyFor","tryApplyLinearPatch","createLinearLayout","createAxisMeasurementResolver","virtualItemStyle","Primitive","VirtualizerContent","VirtualizerRoot","useVirtualizer","assertVirtualListSizeMode","createPreparedVirtualListSequence","estimatedExtent","exactExtent","prepareVirtualList","reconcileVirtualList","requireAutomaticEstimate","requiresDOMBootstrap","updatePreparedVirtualList","VirtualListRuntime","name","inheritAttrs","props","items","type","Array","required","getKey","Function","estimateSize","Number","default","undefined","itemSize","axis","String","gap","overscan","Object","maxItems","initialViewport","as","contentAs","itemAs","itemAttributes","emits","stateChange","_state","planChange","_plan","error","_error","slots","setup","attrs","emit","expose","prepared","automaticEstimate","bootstrapCount","value","domain","size","bootstrapElements","Map","bootstrapScheduled","disposed","state","createEmptyVirtualListState","createVirtualListState","measure","createVirtualListMeasurementResolver","virtualizer","strategy","onStateChange","onPlanChange","onError","registrations","elements","itemRefs","pendingMeasurements","Set","forcedMeasurements","measurementScheduled","setRootElement","root","HTMLElement","measurePendingItems","connection","queued","from","clear","measurements","id","element","get","index","indexOf","current","extents","extentAt","kind","has","measurement","measureVirtualListElement","push","delete","length","scheduleItemMeasurement","force","add","scheduleChangedRenderedItemMeasurements","previousPrepared","previousState","nextPrepared","nextState","keys","previousIndex","nextIndex","is","itemRef","existing","callback","set","registerItem","bootstrapItemRef","scheduleBootstrap","completeBootstrap","count","Math","min","bounds","getBoundingClientRect","extent","height","width","isFinite","total","reduce","sum","max","measuredViewportExtent","clientHeight","clientWidth","viewportExtent","target","bootstrapTrailingOverscanExtent","average","nextCount","ceil","next","patch","result","mutate","ok","flush","constructionWarningShown","x","y","previous","every","item","console","warn","unregister","values","freeze","plan","scrollTo","refresh","rootStyle","rootAttributes","bootstrapping","contentStyle","position","contentSize","display","children","placements","map","placement","at","itemStyle","rendered","key","itemChildren","isArray","ref","style","visible","renderVirtualListBootstrapItems","empty","overflow","VirtualList","abs","estimate","sharedExtent","_unused","crossExtent","maxIDCodeUnits","bottom","right","render","attributes","rect","marginTop","marginLeft"],"sources":["../../src/internal/virtual-list.ts"],"mappings":"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","ignoreList":[]}
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;for(const item of root.querySelectorAll("[data-tabs-id]"))if(item.dataset["tabsId"]===id)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{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};
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/text.js CHANGED
@@ -1,2 +1,2 @@
1
- import{defineComponent,h,mergeProps,nextTick,onBeforeUnmount,onMounted,shallowRef,watch}from"vue";import{connectText,createTextController,createTextState}from"@sectile/dom/text";import{useNativeInputFormControl}from"./internal/form-control.js";import{useControlledStateInvariant}from"./internal/controlled-state.js";const TextField=defineComponent({name:"SectileTextField",inheritAttrs:false,props:{modelValue:{type:[String,Number],default:void 0},defaultValue:{type:[String,Number],default:""},modelModifiers:{type:Object,default:()=>({})},disabled:{type:Boolean,default:false},readonly:{type:Boolean,default:false},multiline:{type:Boolean,default:false},type:{type:String,default:"text"},name:{type:String,default:void 0},form:{type:String,default:void 0},required:{type:Boolean,default:false},placeholder:{type:String,default:void 0},autocomplete:{type:String,default:void 0}},emits:{"update:modelValue":_value=>true},setup(props,{attrs,emit}){const element=shallowRef(null);const controlled=useControlledStateInvariant("TextField","modelValue",()=>props.modelValue);const initialValue=String(controlled?props.modelValue:props.defaultValue);const renderServerValue=typeof window==="undefined";let controller=null;let connection=null;let proposedState=null;let mounted=false;const createController=state=>{const result=createTextController({...controlled&&!props.modelModifiers.lazy?{value:state}:{defaultValue:state},disabled:props.disabled,readOnly:props.readonly,onValueChange:change=>{proposedState=change.value;if(!props.modelModifiers.lazy){const proposal=change.value;const text=proposal.snapshot.text;emit("update:modelValue",text);void nextTick(()=>{if(connection===null||proposedState!==proposal)return;if(String(props.modelValue)!==text)return;proposedState=null;const result2=connection.syncControlledValues({value:proposal});if(!result2.ok)throw new TypeError(result2.error.message)})}}});if(!result.ok)throw new TypeError(result.error.message);return result.value};const mountConnection=state=>{if(!mounted||element.value===null)return;connection?.disconnect();controller=createController(state);connection=connectText({controller,element:element.value,disabled:props.disabled,readOnly:props.readonly});connection.render()};const participation=useNativeInputFormControl(element,{reset:()=>{queueMicrotask(()=>mountConnection(createTextState(controlled?String(props.modelValue):initialValue)))}});onMounted(()=>{mounted=true;mountConnection(createTextState(initialValue))});onBeforeUnmount(()=>{mounted=false;connection?.disconnect();connection=null;controller=null;proposedState=null});watch(()=>props.modelValue,value=>{if(!controlled||value===void 0||connection===null)return;const text=String(value);const state=proposedState?.snapshot.text===text?proposedState:createTextState(text);proposedState=null;if(props.modelModifiers.lazy){mountConnection(state);return}const result=connection.syncControlledValues({value:state});if(!result.ok)throw new TypeError(result.error.message)});watch([()=>props.disabled,()=>props.readonly],()=>{const state=controller?.getSnapshot().state??createTextState(String(controlled?props.modelValue:props.defaultValue));mountConnection(state)});const commitLazyValue=()=>{if(!props.modelModifiers.lazy||controller===null)return;emit("update:modelValue",controller.getSnapshot().state.snapshot.text)};return()=>h(props.multiline?"textarea":"input",mergeProps(attrs,{ref:element,...!props.multiline?{type:props.type}:{},...renderServerValue?{value:initialValue}:{},disabled:props.disabled,readonly:props.readonly,required:props.required,name:props.name,form:props.form,placeholder:props.placeholder,autocomplete:props.autocomplete,onChange:commitLazyValue,"data-scope":"text","data-part":"input","data-disabled":props.disabled?"":void 0,"data-readonly":props.readonly?"":void 0},participation.controlProps.value))}});export{TextField};
1
+ import{defineComponent,h,mergeProps,nextTick,onBeforeUnmount,onMounted,shallowRef,watch}from"vue";import{connectText,createTextController,createTextState}from"@sectile/dom/text";import{useNativeInputFormControl}from"./internal/form-control.js";import{useControlledStateInvariant}from"./internal/controlled-state.js";const TextField=defineComponent({name:"SectileTextField",inheritAttrs:false,props:{modelValue:{type:[String,Number],default:void 0},defaultValue:{type:[String,Number],default:""},modelModifiers:{type:Object,default:()=>({})},disabled:{type:Boolean,default:false},readonly:{type:Boolean,default:false},multiline:{type:Boolean,default:false},type:{type:String,default:"text"},name:{type:String,default:void 0},form:{type:String,default:void 0},required:{type:Boolean,default:false},placeholder:{type:String,default:void 0},autocomplete:{type:String,default:void 0}},emits:{"update:modelValue":_value=>true},setup(props,{attrs,emit}){const element=shallowRef(null);const controlled=useControlledStateInvariant("TextField","modelValue",()=>props.modelValue);const initialValue=String(controlled?props.modelValue:props.defaultValue);const renderServerValue=typeof window==="undefined";let controller=null;let connection=null;let proposedState=null;let mounted=false;const createController=state=>{const result=createTextController({...controlled&&!props.modelModifiers.lazy?{value:state}:{defaultValue:state},disabled:props.disabled,readOnly:props.readonly,onValueChange:change=>{const wasComposing=proposedState!==null&&proposedState.composition!==null;proposedState=change.value;if(change.value.composition!==null)return;if(props.modelModifiers.lazy){if(wasComposing)settleControlledProposal(change.value);return}emit("update:modelValue",change.value.snapshot.text);settleControlledProposal(change.value)}});if(!result.ok)throw new TypeError(result.error.message);return result.value};const mountConnection=state=>{if(!mounted||element.value===null)return;connection?.disconnect();controller=createController(state);connection=connectText({controller,element:element.value,disabled:props.disabled,readOnly:props.readonly,onTransition:({input})=>{if(!controlled||props.modelModifiers.lazy||input.type!=="composition-commit")return;const proposal=proposedState;if(proposal===null||proposal.composition!==null||connection===null)return;const result=connection.syncControlledValues({value:proposal});if(!result.ok)throw new TypeError(result.error.message)}});connection.render()};function settleControlledProposal(proposal){if(!controlled)return;void nextTick(()=>{if(connection===null||proposedState!==proposal||props.modelValue===void 0)return;proposedState=null;const text=String(props.modelValue);const state=proposal.snapshot.text===text?proposal:createTextState(text);if(props.modelModifiers.lazy){mountConnection(state);return}const result=connection.syncControlledValues({value:state});if(!result.ok)throw new TypeError(result.error.message)})}const participation=useNativeInputFormControl(element,{reset:()=>{queueMicrotask(()=>mountConnection(createTextState(controlled?String(props.modelValue):initialValue)))}});onMounted(()=>{mounted=true;mountConnection(createTextState(initialValue))});onBeforeUnmount(()=>{mounted=false;connection?.disconnect();connection=null;controller=null;proposedState=null});watch(()=>props.modelValue,value=>{if(!controlled||value===void 0||connection===null)return;if(proposedState!==null&&proposedState.composition!==null)return;const text=String(value);const state=proposedState?.snapshot.text===text?proposedState:createTextState(text);proposedState=null;if(props.modelModifiers.lazy){mountConnection(state);return}const result=connection.syncControlledValues({value:state});if(!result.ok)throw new TypeError(result.error.message)});watch([()=>props.disabled,()=>props.readonly],()=>{const state=controller?.getSnapshot().state??createTextState(String(controlled?props.modelValue:props.defaultValue));mountConnection(state)});const commitLazyValue=()=>{if(!props.modelModifiers.lazy||controller===null)return;emit("update:modelValue",controller.getSnapshot().state.snapshot.text)};return()=>h(props.multiline?"textarea":"input",mergeProps(attrs,{ref:element,...!props.multiline?{type:props.type}:{},...renderServerValue?{value:initialValue}:{},disabled:props.disabled,readonly:props.readonly,required:props.required,name:props.name,form:props.form,placeholder:props.placeholder,autocomplete:props.autocomplete,onChange:commitLazyValue,"data-scope":"text","data-part":"input","data-disabled":props.disabled?"":void 0,"data-readonly":props.readonly?"":void 0},participation.controlProps.value))}});export{TextField};
2
2
  //# sourceMappingURL=text.js.map
package/dist/text.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/text.ts"],"mappings":"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","names":["result"],"file":"text.js"}
1
+ {"version":3,"sources":["../src/text.ts"],"mappings":"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","names":[],"file":"text.js"}
@@ -1,2 +1,2 @@
1
- import{defineComponent,h,shallowRef,watch}from'vue';import{createSpatialLayout,spatialLayoutStrategy}from'@sectile/virtual/spatial-layout';import{}from'@sectile/dom/virtual';import{VirtualizerContent,VirtualizerRoot}from'./internal/virtual-core.js';import{prepareVirtualList,updatePreparedVirtualList}from'./internal/virtual-collection-model.js';import{createHighLevelVirtualExpose,renderHighLevelItems}from'./internal/virtual-collection.js';const VirtualSpatialRuntime=/* @__PURE__ */defineComponent({name:'SectileVirtualSpatial',inheritAttrs:false,props:{items:{type:Array,required:true},getKey:{type:Function,required:true},getRect:{type:Function,required:true},getZIndex:{type:[Number,Function],default:0},measureSize:{type:Boolean,default:true},overscan:{type:[Number,Object],default:240},maxItems:{type:Number,default:1_000_000},initialViewport:{type:Object,default:undefined},as:{type:String,default:'div'},contentAs:{type:String,default:'div'},itemAs:{type:String,default:'div'},itemAttributes:{type:Function,default:undefined}},emits:{stateChange:_state=>true,planChange:_plan=>true,error:_error=>true},slots:Object,setup(props,{attrs,emit,expose,slots}){const initialViewport=props.initialViewport===undefined?undefined:Object.freeze({...props.initialViewport});const prepared=shallowRef(prepareVirtualList(props.items,props.getKey,props.maxItems));const initialState=createVirtualSpatialState(prepared.value,props.items,props);const root=shallowRef();const measure=props.measureSize?({element,placement,state})=>{const bounds=element.getBoundingClientRect();if(bounds.width<=0||bounds.height<=0)return null;const current=state.items.at(placement.index);if(current===undefined)return null;if(current.rect.width===bounds.width&&current.rect.height===bounds.height)return null;return Object.freeze({id:placement.id,rect:Object.freeze({x:current.rect.x,y:current.rect.y,width:bounds.width,height:bounds.height})})}:undefined;watch(()=>[props.items,props.getKey,props.getRect,props.getZIndex],(current,previous)=>{const exposed=root.value;if(exposed===undefined)return;const next=updatePreparedVirtualList(prepared.value,props.items,props.getKey);const state=exposed.state;const resolverChanged=current[2]!==previous[2]||current[3]!==previous[3];const valuePatch=next.valueChange===null?null:Object.freeze({index:next.valueChange.index,deleteCount:next.valueChange.count,inserted:Object.freeze(next.domain.ids.slice(next.valueChange.index,next.valueChange.index+next.valueChange.count))});const collectionPatch=next.change??valuePatch;const result=resolverChanged||collectionPatch===null?resolverChanged?exposed.mutate(Object.freeze({type:'replace',items:preserveSpatialMeasurements(createSpatialItems(next,props.items,props),state,props.measureSize)})):null:exposed.mutate(Object.freeze({type:'patch',patch:Object.freeze({type:'splice',index:collectionPatch.index,deleteCount:collectionPatch.deleteCount,inserted:collectionPatch.inserted}),inserted:preserveSpatialMeasurements(createSpatialItemsRange(next,props.items,props,collectionPatch.index,collectionPatch.inserted.length),state,props.measureSize)}));if(result===null){prepared.value=next;return}if(result.ok)prepared.value=next},{flush:'post'});expose(createHighLevelVirtualExpose(root,initialState));return()=>h(VirtualizerRoot,{...attrs,ref:root,defaultState:initialState,strategy:spatialLayoutStrategy,overscan:props.overscan,...initialViewport===undefined?{}:{initialViewport},...measure===undefined?{}:{measure},as:props.as,'data-virtual-layout':'virtual-spatial',onStateChange:state=>emit('stateChange',state),onPlanChange:plan=>emit('planChange',plan),onError:error=>emit('error',error)},{default:({placements})=>h(VirtualizerContent,{as:props.contentAs},{default:()=>renderHighLevelItems('virtual-spatial',placements,prepared.value,props.items,props.itemAs,props.itemAttributes,props.measureSize?'none':'both',(value,key,index,placement)=>{const spatialPlacement=placement;return slots['default']?.({value,key,index,placement:spatialPlacement,zIndex:spatialPlacement.zIndex})},slots['empty'])})})}});export const VirtualSpatial=VirtualSpatialRuntime;function createVirtualSpatialState(prepared,items,props){return createSpatialLayout(createSpatialItems(prepared,items,props),{maxItems:props.maxItems,domain:prepared.domain})}function createSpatialItems(prepared,items,props){return createSpatialItemsRange(prepared,items,props,0,prepared.domain.size)}function createSpatialItemsRange(prepared,items,props,start,count){return Object.freeze(Array.from({length:count},(_unused,localIndex)=>{const index=start+localIndex;return Object.freeze({id:prepared.domain.at(index),rect:Object.freeze({...props.getRect(items[index],index)}),zIndex:typeof props.getZIndex==='number'?props.getZIndex:props.getZIndex(items[index],index)})}))}function preserveSpatialMeasurements(items,state,preserve){if(!preserve)return items;return Object.freeze(items.map(item=>{const previousIndex=state.domain.indexOf(item.id);const previous=previousIndex===null?undefined:state.items.at(previousIndex);return previous===undefined?item:Object.freeze({...item,rect:Object.freeze({...item.rect,width:previous.rect.width,height:previous.rect.height})})}))}
1
+ import{defineComponent,h,shallowRef,watch}from'vue';import{createSpatialLayout,spatialLayoutStrategy}from'@sectile/virtual/spatial-layout';import{}from'@sectile/dom/virtual';import{VirtualizerContent,VirtualizerRoot}from'./internal/virtual-core.js';import{prepareVirtualList,updatePreparedVirtualList}from'./internal/virtual-collection-model.js';import{createHighLevelVirtualExpose,renderHighLevelItems}from'./internal/virtual-collection.js';const VirtualSpatialRuntime=/* @__PURE__ */defineComponent({name:'SectileVirtualSpatial',inheritAttrs:false,props:{items:{type:Array,required:true},getKey:{type:Function,required:true},getRect:{type:Function,required:true},getZIndex:{type:[Number,Function],default:0},measureSize:{type:Boolean,default:true},overscan:{type:[Number,Object],default:240},maxItems:{type:Number,default:1_000_000},initialViewport:{type:Object,default:undefined},as:{type:String,default:'div'},contentAs:{type:String,default:'div'},itemAs:{type:String,default:'div'},itemAttributes:{type:Function,default:undefined}},emits:{stateChange:_state=>true,planChange:_plan=>true,error:_error=>true},slots:Object,setup(props,{attrs,emit,expose,slots}){const initialViewport=props.initialViewport===undefined?undefined:Object.freeze({...props.initialViewport});const prepared=shallowRef(prepareVirtualList(props.items,props.getKey,props.maxItems));const initialState=createVirtualSpatialState(prepared.value,props.items,props);const root=shallowRef();const measure=props.measureSize?({element,placement,state})=>{const bounds=element.getBoundingClientRect();if(bounds.width<=0||bounds.height<=0)return null;const current=state.items.at(placement.index);if(current===undefined)return null;if(current.rect.width===bounds.width&&current.rect.height===bounds.height)return null;return Object.freeze({id:placement.id,rect:Object.freeze({x:current.rect.x,y:current.rect.y,width:bounds.width,height:bounds.height})})}:undefined;watch(()=>[props.items,props.getKey,props.getRect,props.getZIndex],(current,previous)=>{const exposed=root.value;if(exposed===undefined)return;const next=updatePreparedVirtualList(prepared.value,props.items,props.getKey);const state=exposed.state;const resolverChanged=current[2]!==previous[2]||current[3]!==previous[3];const valuePatch=next.valueChange===null?null:Object.freeze({index:next.valueChange.index,deleteCount:next.valueChange.count,inserted:Object.freeze(next.domain.ids.slice(next.valueChange.index,next.valueChange.index+next.valueChange.count))});const collectionPatch=next.change??valuePatch;const result=resolverChanged||collectionPatch===null?resolverChanged?exposed.mutate(Object.freeze({type:'replace',items:preserveSpatialMeasurements(createSpatialItems(next,props.items,props),state,props.measureSize)})):null:exposed.mutate(Object.freeze({type:'patch',patch:Object.freeze({type:'splice',index:collectionPatch.index,deleteCount:collectionPatch.deleteCount,inserted:collectionPatch.inserted}),inserted:preserveSpatialMeasurements(createSpatialItemsRange(next,props.items,props,collectionPatch.index,collectionPatch.inserted.length),state,props.measureSize)}));if(result===null){prepared.value=next;return}if(result.ok)prepared.value=next},{flush:'post'});expose(createHighLevelVirtualExpose(root,initialState));return()=>h(VirtualizerRoot,{...attrs,ref:root,defaultState:initialState,strategy:spatialLayoutStrategy,overscan:props.overscan,...initialViewport===undefined?{}:{initialViewport},...measure===undefined?{}:{measure},as:props.as,'data-virtual-layout':'virtual-spatial',onStateChange:state=>emit('stateChange',state),onPlanChange:plan=>emit('planChange',plan),onError:error=>emit('error',error)},{default:({placements})=>h(VirtualizerContent,{as:props.contentAs},{default:()=>renderHighLevelItems('virtual-spatial',placements,prepared.value,props.items,props.itemAs,props.itemAttributes,props.measureSize?'none':'both',(value,key,index,placement)=>{const spatialPlacement=placement;return slots['default']?.({value,key,index,placement:spatialPlacement,zIndex:spatialPlacement.zIndex})},slots['empty'])})})}});export const VirtualSpatial=VirtualSpatialRuntime;function createVirtualSpatialState(prepared,items,props){return createSpatialLayout(createSpatialItems(prepared,items,props),{maxItems:props.maxItems,domain:prepared.domain})}function createSpatialItems(prepared,items,props){return createSpatialItemsRange(prepared,items,props,0,prepared.domain.size)}function createSpatialItemsRange(prepared,items,props,start,count){const spatialItems=Array(count);for(let localIndex=0;localIndex<count;localIndex+=1){const index=start+localIndex;spatialItems[localIndex]={id:prepared.domain.at(index),rect:props.getRect(items[index],index),zIndex:typeof props.getZIndex==='number'?props.getZIndex:props.getZIndex(items[index],index)}}return spatialItems}function preserveSpatialMeasurements(items,state,preserve){if(!preserve)return items;return items.map(item=>{const previousIndex=state.domain.indexOf(item.id);const previous=previousIndex===null?undefined:state.items.at(previousIndex);return previous===undefined?item:{...item,rect:{...item.rect,width:previous.rect.width,height:previous.rect.height}}})}
2
2
  //# sourceMappingURL=virtual-spatial.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"virtual-spatial.js","names":["defineComponent","h","shallowRef","watch","createSpatialLayout","spatialLayoutStrategy","VirtualizerContent","VirtualizerRoot","prepareVirtualList","updatePreparedVirtualList","createHighLevelVirtualExpose","renderHighLevelItems","VirtualSpatialRuntime","name","inheritAttrs","props","items","type","Array","required","getKey","Function","getRect","getZIndex","Number","default","measureSize","Boolean","overscan","Object","maxItems","initialViewport","undefined","as","String","contentAs","itemAs","itemAttributes","emits","stateChange","_state","planChange","_plan","error","_error","slots","setup","attrs","emit","expose","freeze","prepared","initialState","createVirtualSpatialState","value","root","measure","element","placement","state","bounds","getBoundingClientRect","width","height","current","at","index","rect","id","x","y","previous","exposed","next","resolverChanged","valuePatch","valueChange","deleteCount","count","inserted","domain","ids","slice","collectionPatch","change","result","mutate","preserveSpatialMeasurements","createSpatialItems","patch","createSpatialItemsRange","length","ok","flush","ref","defaultState","strategy","onStateChange","onPlanChange","plan","onError","placements","key","spatialPlacement","zIndex","VirtualSpatial","size","start","from","_unused","localIndex","preserve","map","item","previousIndex","indexOf"],"sources":["../src/virtual-spatial.ts"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"file":"virtual-spatial.js","names":["defineComponent","h","shallowRef","watch","createSpatialLayout","spatialLayoutStrategy","VirtualizerContent","VirtualizerRoot","prepareVirtualList","updatePreparedVirtualList","createHighLevelVirtualExpose","renderHighLevelItems","VirtualSpatialRuntime","name","inheritAttrs","props","items","type","Array","required","getKey","Function","getRect","getZIndex","Number","default","measureSize","Boolean","overscan","Object","maxItems","initialViewport","undefined","as","String","contentAs","itemAs","itemAttributes","emits","stateChange","_state","planChange","_plan","error","_error","slots","setup","attrs","emit","expose","freeze","prepared","initialState","createVirtualSpatialState","value","root","measure","element","placement","state","bounds","getBoundingClientRect","width","height","current","at","index","rect","id","x","y","previous","exposed","next","resolverChanged","valuePatch","valueChange","deleteCount","count","inserted","domain","ids","slice","collectionPatch","change","result","mutate","preserveSpatialMeasurements","createSpatialItems","patch","createSpatialItemsRange","length","ok","flush","ref","defaultState","strategy","onStateChange","onPlanChange","plan","onError","placements","key","spatialPlacement","zIndex","VirtualSpatial","size","start","spatialItems","localIndex","preserve","map","item","previousIndex","indexOf"],"sources":["../src/virtual-spatial.ts"],"mappings":"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","ignoreList":[]}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@sectile/vue",
3
- "version": "0.11.0",
3
+ "version": "0.12.0",
4
4
  "description": "Headless Vue components for Sectile DOM interaction semantics.",
5
5
  "license": "MIT",
6
6
  "type": "module",
@@ -301,6 +301,11 @@
301
301
  "import": "./dist/host-provider.js",
302
302
  "default": "./dist/host-provider.js"
303
303
  },
304
+ "./chart": {
305
+ "types": "./dist/chart.d.ts",
306
+ "import": "./dist/chart.js",
307
+ "default": "./dist/chart.js"
308
+ },
304
309
  "./virtual/core": {
305
310
  "types": "./dist/virtual-core.d.ts",
306
311
  "import": "./dist/virtual-core.js",
@@ -409,17 +414,21 @@
409
414
  "./package.json": "./package.json"
410
415
  },
411
416
  "dependencies": {
412
- "@sectile/dom": "0.11.0",
413
- "@sectile/core": "0.11.0"
417
+ "@sectile/core": "0.12.0",
418
+ "@sectile/dom": "0.12.0"
414
419
  },
415
420
  "peerDependencies": {
421
+ "@sectile/chart": "0.12.0",
422
+ "@sectile/form": "0.12.0",
423
+ "@sectile/tabular": "0.12.0",
424
+ "@sectile/virtual": "0.12.0",
416
425
  "vue": "^3.5.0",
417
- "@sectile/form": "0.11.0",
418
- "@sectile/tabular": "0.11.0",
419
- "@sectile/virtual": "0.11.0",
420
- "@sectile/temporal": "0.11.0"
426
+ "@sectile/temporal": "0.12.0"
421
427
  },
422
428
  "peerDependenciesMeta": {
429
+ "@sectile/chart": {
430
+ "optional": true
431
+ },
423
432
  "@sectile/form": {
424
433
  "optional": true
425
434
  },
@@ -434,6 +443,10 @@
434
443
  }
435
444
  },
436
445
  "devDependencies": {
446
+ "@sectile/chart": "0.12.0",
447
+ "@sectile/form": "0.12.0",
448
+ "@sectile/tabular": "0.12.0",
449
+ "@sectile/virtual": "0.12.0",
437
450
  "@vue/server-renderer": "^3.5.0",
438
451
  "happy-dom": "^20.11.6",
439
452
  "typescript": "7.0.2",
@@ -441,15 +454,13 @@
441
454
  "vite": "5.4.21",
442
455
  "vue": "^3.5.0",
443
456
  "vue-tsc": "^3.0.6",
444
- "@sectile/form": "0.11.0",
445
- "@sectile/tabular": "0.11.0",
446
- "@sectile/virtual": "0.11.0",
447
- "@sectile/temporal": "0.11.0"
457
+ "@sectile/temporal": "0.12.0"
448
458
  },
449
459
  "scripts": {
450
460
  "build": "node scripts/build.mjs production",
451
461
  "build:verification": "node scripts/build.mjs verification",
452
462
  "benchmark:collections": "pnpm --silent run build && node benchmarks/collection-reconciliation.mjs",
463
+ "benchmark:chart": "pnpm --silent run build && node benchmarks/chart-reconciliation.mjs",
453
464
  "check:controlled-reconciliation": "node scripts/check-controlled-reconciliation.mjs",
454
465
  "check:hydration-contract": "node scripts/check-hydration-contract.mjs",
455
466
  "serve:browser-verification": "pnpm --silent run build && node scripts/serve-browser-verification.mjs",