@sectile/vue 0.16.0 → 0.16.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/chart.js CHANGED
@@ -1,2 +1,2 @@
1
- import{createChartController}from"@sectile/chart/controller";import{createDOMChart}from"@sectile/dom/chart";import{defineComponent,getCurrentScope,h,inject,nextTick,onBeforeUnmount,onMounted,onScopeDispose,provide,shallowRef,toValue,watch}from"vue";function useChart(options){if(options===null||typeof options!=="object")throw new TypeError("useChart options must be an object.");if(options.model===void 0===(options.definition===void 0)){throw new TypeError("useChart requires exactly one model or declarative definition.")}assertControlledDefaults(options);const controlled=controlledValues(options);const source=options.definition===void 0?{model:toValue(options.model)}:{definition:toValue(options.definition),viewCapabilities:toValue(options.viewCapabilities??(()=>Object.freeze([])))};const controller=createChartController({...source,...options.limits===void 0?{}:{limits:options.limits},...defaultValues(options),...Object.keys(controlled).length===0?{}:{controlled}});const binding=bindController(controller,options,true);const stops=[];if(options.model!==void 0){stops.push(watch(()=>toValue(options.model),model=>{binding.replaceModel(model)},{deep:false}))}else{stops.push(watch(()=>[toValue(options.definition),toValue(options.viewCapabilities??(()=>Object.freeze([])))],([definition,capabilities])=>{binding.replaceDefinition(definition,capabilities)},{deep:false}))}for(const sourceRef of[options.activeDatum,options.cursor,options.selection,options.view]){if(sourceRef!==void 0)stops.push(watch(()=>sourceRef.value,()=>{binding.syncControlledValues()},{deep:false}))}const disposeBinding=binding.dispose;const result=Object.freeze({...binding,dispose(){for(const stop of stops.splice(0))stop();disposeBinding()}});if(getCurrentScope()!==void 0)onScopeDispose(result.dispose);return result}class ChartDeclarations{#records=new Map;#publish;#token=0;#scheduled=false;#active=true;#publications=0;#readRecords=0;constructor(publish){this.#publish=publish}register(kind,read){const token=++this.#token;this.#records.set(token,{token,kind,read});this.schedule();let active=true;return Object.freeze({touch:()=>{if(active)this.schedule()},dispose:()=>{if(!active)return;active=false;this.#records.delete(token);this.schedule()}})}publishNow(){if(!this.#active)return;this.#scheduled=false;this.#publish(this.assemble());this.#publications+=1}getDiagnostics(){return Object.freeze({registeredRecords:this.#records.size,publications:this.#publications,readRecords:this.#readRecords})}schedule(){if(!this.#active||this.#scheduled)return;this.#scheduled=true;void nextTick(()=>{if(this.#scheduled)this.publishNow()})}assemble(){const records=[...this.#records.values()].sort((left,right)=>left.token-right.token);this.#readRecords=records.length;const coordinates=records.filter(record=>record.kind==="coordinate");if(coordinates.length!==1)throw new TypeError("ChartRoot requires exactly one ChartCartesian or ChartRadial coordinate.");const coordinate=coordinates[0]?.read();const axes=records.filter(record=>record.kind==="axis").map(record=>record.read());const layers=records.filter(record=>record.kind==="layer").map(record=>record.read());const capabilities=records.filter(record=>record.kind==="view").map(record=>record.read());const navigationRecords=records.filter(record=>record.kind==="navigation");if(navigationRecords.length>1)throw new TypeError("ChartRoot accepts at most one ChartNavigation declaration.");const controls=records.filter(record=>record.kind==="controls").map(record=>record.read());const navigation=navigationRecords[0]?.read();const alternative=controls.includes("built-in")?"built-in":controls.includes("external")?"external":void 0;if(navigation!==void 0&&((navigation.drag??"none")!=="none"||navigation.pinch===true)&&alternative===void 0){throw new TypeError("Chart direct gestures require ChartViewControls or ChartExternalViewControls.")}return Object.freeze({definition:Object.freeze({coordinate:coordinate.kind==="cartesian"?Object.freeze({kind:"cartesian",axes:Object.freeze(axes)}):Object.freeze({kind:"radial"}),layers:Object.freeze(layers)}),viewCapabilities:Object.freeze(capabilities),navigation:Object.freeze({...navigation??{},...alternative===void 0?{}:{controlAlternative:alternative}})})}dispose(){if(!this.#active)return;this.#active=false;this.#scheduled=false;this.#records.clear()}}const chartKey=Symbol("SectileChart");const chartPublicKey=Symbol("SectileChartPublic");const chartOwnerKey=Symbol("SectileChartOwner");const chartAxisKey=Symbol("SectileChartAxis");const chartControlAxisKey=Symbol("SectileChartControlAxis");function useInternalChart(){const context=inject(chartKey);if(context===void 0)throw new TypeError("Chart component must be used inside ChartRoot.");return context}function useChartContext(){const context=inject(chartPublicKey);if(context===void 0)throw new TypeError("useChartContext must be used inside ChartRoot or ChartProvider.");return context}const ChartProviderRuntime=defineComponent({name:"SectileChartProvider",props:{controller:{type:Object,required:true}},setup(props,{slots}){const controller=shallowRef(props.controller);const snapshot=shallowRef(controller.value.getSnapshot());const unsubscribe=controller.value.subscribeSnapshots(next=>{snapshot.value=next});const owner=Object.freeze({controller});const context=Object.freeze({controller,snapshot,dispatch(event){const result=controller.value.dispatch(event);return result.ok?Object.freeze({ok:true,value:result.value.snapshot}):result},applyPatch(patch){return controller.value.applyPatch(patch)}});provide(chartOwnerKey,owner);provide(chartPublicKey,context);onScopeDispose(unsubscribe);return()=>slots["default"]?.({controller:controller.value,snapshot:snapshot.value,state:snapshot.value.state,definition:controller.value.getDefinition()})??null}});const ChartProvider=ChartProviderRuntime;function useChartSelector(selector,options={}){const context=useChartContext();return useChartContextSelector(context,()=>selector(context.snapshot.value?.state??null),options.equals)}function useChartLayerSelector(id,selector,options={}){const context=useChartContext();return useChartContextSelector(context,()=>{const layers=context.controller.value?.getDefinition()?.layers;return selector(layers?.find(layer=>layer.id===id)??null)},options.equals)}function useChartAxisSelector(id,selector,options={}){const context=useChartContext();return useChartContextSelector(context,()=>{const axes=context.controller.value?.getDefinition()?.axes;return selector(axes?.find(axis=>axis.id===id)??null)},options.equals)}function useChartContextSelector(context,read,equals=Object.is){const selected=shallowRef(read());const stop=watch([context.controller,context.snapshot],()=>{const next=read();if(!equals(selected.value,next))selected.value=next},{deep:false,flush:"sync"});onScopeDispose(stop);return selected}const ChartRootRuntime=defineComponent({name:"SectileChartRoot",inheritAttrs:false,props:{limits:{type:Object,default:void 0},modelValue:{type:Object,default:void 0},defaultModelValue:{type:Object,default:void 0},activeDatum:{type:[String,Number],default:void 0},defaultActiveDatum:{type:[String,Number],default:void 0},cursor:{type:[String,Number],default:void 0},defaultCursor:{type:[String,Number],default:void 0},view:{type:Object,default:void 0},defaultView:{type:Object,default:void 0},patch:{type:Object,default:void 0},dom:{type:Object,default:void 0},onError:{type:Function,default:void 0}},emits:{"update:modelValue":_value=>true,"update:activeDatum":_value=>true,"update:cursor":_value=>true,"update:view":_value=>true,command:_command=>true},setup(props,{attrs,emit,expose,slots}){assertRootControlledDefaults(props);const ownerContext=inject(chartOwnerKey,void 0);const ownsController=ownerContext===void 0;const root=shallowRef(null);const canvas=shallowRef(null);const controller=shallowRef(ownerContext?.controller.value??null);const snapshot=shallowRef(controller.value?.getSnapshot()??null);const projection=shallowRef(null);const connection=shallowRef(null);let assembled=null;let unsubscribeCommands=null;let unsubscribeSnapshots=null;let previousState=snapshot.value?.state??null;let mounted=false;let definitionAccepted=false;const controlled=Object.freeze({activeDatum:props.activeDatum!==void 0,cursor:props.cursor!==void 0,selection:props.modelValue!==void 0,view:props.view!==void 0});const report=error=>{if(props.onError!==void 0)props.onError(error);else throw error};const publishSnapshot=()=>{const owner=controller.value;if(owner===null)return;const current=owner.getSnapshot();if(snapshot.value===current)return;const prior=previousState;snapshot.value=current;previousState=current.state;if(prior===null)return;let failure;if(!controlled.activeDatum&&prior.activeDatum!==current.state.activeDatum){try{emit("update:activeDatum",current.state.activeDatum)}catch(error){failure??=[error]}}if(!controlled.cursor&&prior.cursor!==current.state.cursor){try{emit("update:cursor",current.state.cursor)}catch(error){failure??=[error]}}if(!controlled.selection&&prior.selection!==current.state.selection){try{emit("update:modelValue",current.state.selection)}catch(error){failure??=[error]}}if(!controlled.view&&prior.view!==current.state.view){try{emit("update:view",current.state.view)}catch(error){failure??=[error]}}if(failure!==void 0)throw failure[0]};const onCommand=command=>{let failure;try{publishSnapshot()}catch(error){failure??=[error]}try{emit("command",command)}catch(error){failure??=[error]}try{if(command.type==="active-change-requested")emit("update:activeDatum",command.id);else if(command.type==="cursor-change-requested")emit("update:cursor",command.id);else if(command.type==="selection-change-requested")emit("update:modelValue",command.selection);else if(command.type==="view-change-requested")emit("update:view",command.view)}catch(error){failure??=[error]}if(failure!==void 0)throw failure[0]};const connect=()=>{const owner=controller.value;if(!mounted||owner===null||root.value===null||canvas.value===null||connection.value!==null)return;const dom=props.dom??{};try{connection.value=createDOMChart({...dom,root:root.value,canvas:canvas.value,controller:owner,...assembled===null?{}:{navigation:assembled.navigation},onCommand:command=>{dom.onCommand?.(command)},onProjectionChange:next=>{projection.value=next;dom.onProjectionChange?.(next)}});projection.value=connection.value.getProjection()}catch(error){report(error)}};const publishDefinition=next=>{assembled=next;definitionAccepted=false;const owner=controller.value;if(!mounted||owner===null)return;const replaced=owner.replaceDefinition(next.definition,next.viewCapabilities);if(!replaced.ok){report(new TypeError(`${replaced.error.code}: ${replaced.error.message}`));return}definitionAccepted=true;publishSnapshot();const navigation=connection.value?.setNavigation(next.navigation);if(navigation!==void 0&&!navigation.ok)report(new TypeError(`${navigation.error.code}: ${navigation.error.message}`));connection.value?.refresh()};const declarations=new ChartDeclarations(next=>{try{publishDefinition(next)}catch(error){report(error)}});const context=Object.freeze({declarations,controller,canvas,dispatch(event){const result=controller.value?.dispatch(event);if(result!==void 0&&!result.ok)report(new TypeError(`${result.error.code}: ${result.error.message}`));publishSnapshot()}});provide(chartKey,context);const publicContext=Object.freeze({controller,snapshot,dispatch(event){const result=controller.value?.dispatch(event);if(result===void 0)return Object.freeze({ok:true,value:null});publishSnapshot();return result.ok?Object.freeze({ok:true,value:result.value.snapshot}):result},applyPatch(patch){const result=controller.value?.applyPatch(patch);if(result===void 0)return Object.freeze({ok:true,value:null});publishSnapshot();return result}});provide(chartPublicKey,publicContext);const syncControlled=()=>{const owner=controller.value;if(owner===null)return;const result=owner.syncControlledValues(Object.freeze({...controlled.activeDatum?{activeDatum:props.activeDatum??null}:{},...controlled.cursor?{cursor:props.cursor??null}:{},...controlled.selection?{selection:props.modelValue}:{},...controlled.view?{view:props.view??null}:{}}));if(!result.ok)report(new TypeError(`${result.error.code}: ${result.error.message}`));publishSnapshot()};watch(()=>[props.activeDatum,props.cursor,props.modelValue,props.view],syncControlled,{deep:false});watch(()=>props.patch,patch=>{if(patch===null||patch===void 0||controller.value===null)return;const result=controller.value.applyPatch(patch);if(!result.ok)report(new TypeError(`${result.error.code}: ${result.error.message}`));publishSnapshot()},{deep:false});watch(()=>props.dom?.accessibilityLabel,label=>{connection.value?.setAccessibilityLabel(label)},{flush:"post"});onMounted(()=>{mounted=true;try{declarations.publishNow();const next=assembled;const controlledValues2=Object.freeze({...controlled.activeDatum?{activeDatum:props.activeDatum??null}:{},...controlled.cursor?{cursor:props.cursor??null}:{},...controlled.selection?{selection:props.modelValue}:{},...controlled.view?{view:props.view??null}:{}});const initialValues=Object.freeze({...!controlled.activeDatum&&props.defaultActiveDatum!==void 0?{activeDatum:props.defaultActiveDatum}:{},...!controlled.cursor&&props.defaultCursor!==void 0?{cursor:props.defaultCursor}:{},...!controlled.selection&&props.defaultModelValue!==void 0?{selection:props.defaultModelValue}:{},...!controlled.view&&props.defaultView!==void 0?{view:props.defaultView}:{}});if(ownerContext===void 0){controller.value=createChartController({definition:next.definition,viewCapabilities:next.viewCapabilities,...props.limits===void 0?{}:{limits:props.limits},...Object.keys(controlledValues2).length===0?{}:{controlled:controlledValues2},...Object.keys(initialValues).length===0?{}:{initialValues}})}else{const borrowed=ownerContext.controller.value;if(!definitionAccepted)return;controller.value=borrowed;if(Object.keys(controlledValues2).length!==0){const synced=borrowed.syncControlledValues(controlledValues2);if(!synced.ok)throw new TypeError(`${synced.error.code}: ${synced.error.message}`)}}snapshot.value=controller.value.getSnapshot();previousState=snapshot.value.state;unsubscribeCommands=controller.value.subscribeCommands(onCommand);unsubscribeSnapshots=controller.value.subscribeSnapshots(()=>{publishSnapshot()});void nextTick(connect)}catch(error){report(error)}});onBeforeUnmount(()=>{mounted=false;declarations.dispose();connection.value?.disconnect();connection.value=null;unsubscribeCommands?.();unsubscribeCommands=null;unsubscribeSnapshots?.();unsubscribeSnapshots=null;if(ownsController)controller.value?.dispose();controller.value=null});expose({controller,getDeclarationDiagnostics:()=>declarations.getDiagnostics(),refresh:()=>connection.value?.refresh()});return()=>h("div",{...attrs,ref:element=>{root.value=element},"data-scope":"chart","data-part":"root"},slots["default"]?.({controller:controller.value,snapshot:snapshot.value,state:snapshot.value?.state??null,projection:projection.value,definition:controller.value?.getDefinition()??null}))}});const ChartRoot=ChartRootRuntime;const coordinateProps={};const ChartCartesian=defineComponent({name:"SectileChartCartesian",props:coordinateProps,setup(_props,{slots}){const context=useInternalChart();const record=context.declarations.register("coordinate",()=>Object.freeze({kind:"cartesian"}));onBeforeUnmount(record.dispose);return()=>slots["default"]?.()??null}});const ChartRadial=defineComponent({name:"SectileChartRadial",props:coordinateProps,setup(_props,{slots}){const context=useInternalChart();const record=context.declarations.register("coordinate",()=>Object.freeze({kind:"radial"}));onBeforeUnmount(record.dispose);return()=>slots["default"]?.()??null}});const axisProps={id:{type:[String,Number],required:true},scale:{type:String,default:"linear"},domain:{type:[String,Object],default:"auto"},field:{type:String,default:void 0},getValue:{type:Function,default:void 0},ticks:{type:Number,default:void 0},label:{type:String,default:void 0},unit:{type:String,default:void 0}};function axisComponent(orientation){return defineComponent({name:orientation==="x"?"SectileChartXAxis":"SectileChartYAxis",props:axisProps,setup(props,{slots}){const context=useInternalChart();const axis=shallowRef(props.id);provide(chartAxisKey,axis);const value=shallowRef(axisDefinition(props,orientation));const record=context.declarations.register("axis",()=>value.value);watch(()=>[props.id,props.scale,props.domain,props.field,props.getValue,props.ticks,props.label,props.unit],()=>{axis.value=props.id;value.value=axisDefinition(props,orientation);record.touch()},{deep:false,flush:"post"});onBeforeUnmount(record.dispose);return()=>slots["default"]?.()??null}})}const ChartXAxis=axisComponent("x");const ChartYAxis=axisComponent("y");function axisDefinition(props,orientation){return defined({id:props["id"],orientation,scale:props["scale"],domain:props["domain"],field:props["field"],getValue:props["getValue"],ticks:props["ticks"],label:props["label"],unit:props["unit"]})}const layerBaseProps={id:{type:[String,Number],required:true},data:{type:Array,required:true},getId:{type:Function,default:void 0},label:{type:String,default:void 0}};const cartesianLayerProps={...layerBaseProps,xAxis:{type:[String,Number],required:true},yAxis:{type:[String,Number],required:true},getX:{type:Function,default:void 0},getY:{type:Function,default:void 0}};function layerComponent(kind,extraProps={}){return defineComponent({name:`SectileChart${kind[0]?.toUpperCase()}${kind.slice(1)}`,props:{...kind==="pie"||kind==="donut"?layerBaseProps:cartesianLayerProps,...extraProps},setup(props){const context=useInternalChart();const value=shallowRef(layerDefinition(props,kind));const record=context.declarations.register("layer",()=>value.value);watch(()=>Object.values(props),()=>{value.value=layerDefinition(props,kind);record.touch()},{deep:false,flush:"post"});onBeforeUnmount(record.dispose);return()=>null}})}const ChartLine=layerComponent("line");const ChartScatter=layerComponent("scatter",{projection:{type:String,default:"raw"}});const ChartBar=layerComponent("bar",{orientation:{type:String,default:"vertical"}});const ChartBars=ChartBar;const ChartHeatmap=layerComponent("heatmap",{getValue:{type:Function,default:void 0},valueField:{type:String,default:void 0},projection:{type:[String,Object],default:"raw"}});const ChartPie=layerComponent("pie",{getValue:{type:Function,default:void 0},valueField:{type:String,default:void 0},getLabel:{type:Function,default:void 0},labelField:{type:String,default:void 0}});const ChartDonut=layerComponent("donut",{getValue:{type:Function,default:void 0},valueField:{type:String,default:void 0},getLabel:{type:Function,default:void 0},labelField:{type:String,default:void 0},innerRadius:{type:Number,default:.5},outerRadius:{type:Number,default:1}});function layerDefinition(props,kind){return defined({kind,id:props["id"],data:props["data"],getId:props["getId"],label:props["label"],xAxis:props["xAxis"],yAxis:props["yAxis"],getX:props["getX"],getY:props["getY"],projection:props["projection"],orientation:props["orientation"],getValue:props["getValue"],valueField:props["valueField"],getLabel:props["getLabel"],labelField:props["labelField"],innerRadius:props["innerRadius"],outerRadius:props["outerRadius"]})}const ChartAxisView=defineComponent({name:"SectileChartAxisView",props:{axis:{type:[String,Number],default:void 0},initial:{type:Object,default:void 0},minimumSpan:{type:Number,default:void 0},maximumSpan:{type:Number,default:void 0},update:{type:String,default:"preserve"}},setup(props){const context=useInternalChart();const inheritedAxis=inject(chartAxisKey,void 0);const read=()=>viewCapability(props,inheritedAxis?.value);const value=shallowRef(read());const record=context.declarations.register("view",()=>value.value);watch(()=>[props.axis,inheritedAxis?.value,props.initial,props.minimumSpan,props.maximumSpan,props.update],()=>{value.value=read();record.touch()},{deep:false,flush:"post"});onBeforeUnmount(record.dispose);return()=>null}});function viewCapability(props,inheritedAxis){const axisID=props["axis"]??inheritedAxis;if(axisID===void 0)throw new TypeError("ChartAxisView requires an axis prop or an enclosing ChartXAxis or ChartYAxis.");return Object.freeze(defined({axisID,initial:props["initial"],minimumSpan:props["minimumSpan"],maximumSpan:props["maximumSpan"],update:props["update"]}))}const ChartNavigation=defineComponent({name:"SectileChartNavigation",props:{axes:{type:Array,default:void 0},drag:{type:String,default:"none"},wheel:{type:String,default:"native"},wheelModifier:{type:String,default:"none"},pinch:{type:Boolean,default:false},keyboard:{type:Boolean,default:false}},setup(props){const context=useInternalChart();const value=shallowRef(navigationDefinition(props));const record=context.declarations.register("navigation",()=>value.value);watch(()=>[props.axes,props.drag,props.wheel,props.wheelModifier,props.pinch,props.keyboard],()=>{const next=navigationDefinition(props);if(sameNavigation(value.value,next))return;value.value=next;record.touch()},{deep:false,flush:"post"});onBeforeUnmount(record.dispose);return()=>null}});function navigationDefinition(props){return Object.freeze(defined({axes:props["axes"],drag:props["drag"],wheel:props["wheel"],wheelModifier:props["wheelModifier"],pinch:props["pinch"],keyboard:props["keyboard"]}))}function sameNavigation(left,right){return sameStableIDs(left.axes,right.axes)&&left.drag===right.drag&&left.wheel===right.wheel&&left.wheelModifier===right.wheelModifier&&left.pinch===right.pinch&&left.keyboard===right.keyboard}function sameStableIDs(left,right){if(left===right)return true;if(left===void 0||right===void 0||left.length!==right.length)return false;for(let index=0;index<left.length;index+=1)if(left[index]!==right[index])return false;return true}const ChartViewControls=defineComponent({name:"SectileChartViewControls",inheritAttrs:false,props:{axis:{type:[String,Number],default:void 0}},setup(props,{attrs,slots}){const context=useInternalChart();const inheritedAxis=inject(chartAxisKey,void 0);const initialAxis=props.axis??inheritedAxis?.value;if(initialAxis===void 0)throw new TypeError("ChartViewControls requires an axis prop or an enclosing ChartXAxis or ChartYAxis.");const axis=shallowRef(initialAxis);provide(chartControlAxisKey,axis);watch(()=>[props.axis,inheritedAxis?.value],()=>{axis.value=props.axis??inheritedAxis?.value},{deep:false,flush:"sync"});const record=context.declarations.register("controls",()=>"built-in");onBeforeUnmount(record.dispose);return()=>h("div",{...attrs,"data-scope":"chart","data-part":"view-controls"},slots["default"]?.())}});const ChartExternalViewControls=defineComponent({name:"SectileChartExternalViewControls",setup(){const context=useInternalChart();const record=context.declarations.register("controls",()=>"external");onBeforeUnmount(record.dispose);return()=>null}});const axisControlProps={axis:{type:[String,Number],default:void 0},label:{type:String,default:void 0}};const ChartPanControl=defineComponent({name:"SectileChartPanControl",inheritAttrs:false,props:{...axisControlProps,direction:{type:String,required:true},step:{type:Number,default:.1}},setup(props,{attrs,slots}){const context=useInternalChart();const inheritedAxis=inject(chartControlAxisKey,inject(chartAxisKey,void 0));const axis=()=>requiredControlAxis(props.axis,inheritedAxis?.value);return()=>h("button",{...attrs,type:"button",disabled:context.controller.value===null,"aria-label":props.label??`Pan ${String(axis())} ${props.direction}`,"data-scope":"chart","data-part":"pan-control",onClick:()=>context.dispatch({type:"pan-axis-view",axisID:axis(),fraction:props.direction==="backward"?-props.step:props.step,phase:"settled"})},slots["default"]?.()??props.direction)}});const ChartZoomControl=defineComponent({name:"SectileChartZoomControl",inheritAttrs:false,props:{...axisControlProps,direction:{type:String,required:true},factor:{type:Number,default:1.25}},setup(props,{attrs,slots}){const context=useInternalChart();const inheritedAxis=inject(chartControlAxisKey,inject(chartAxisKey,void 0));const axis=()=>requiredControlAxis(props.axis,inheritedAxis?.value);return()=>h("button",{...attrs,type:"button",disabled:context.controller.value===null,"aria-label":props.label??`Zoom ${String(axis())} ${props.direction}`,"data-scope":"chart","data-part":"zoom-control",onClick:()=>context.dispatch({type:"zoom-axis-view",axisID:axis(),factor:props.direction==="in"?props.factor:1/props.factor,anchor:.5,phase:"settled"})},slots["default"]?.()??props.direction)}});const ChartResetView=defineComponent({name:"SectileChartResetView",inheritAttrs:false,props:{...axisControlProps,to:{type:String,default:"initial"}},setup(props,{attrs,slots}){const context=useInternalChart();const inheritedAxis=inject(chartControlAxisKey,inject(chartAxisKey,void 0));const axis=()=>requiredControlAxis(props.axis,inheritedAxis?.value);return()=>h("button",{...attrs,type:"button",disabled:context.controller.value===null,"aria-label":props.label??`Reset ${String(axis())} view`,"data-scope":"chart","data-part":"reset-view",onClick:()=>context.dispatch({type:"reset-axis-view",axisID:axis(),to:props.to,phase:"settled"})},slots["default"]?.()??"Reset")}});const ChartPlot=defineComponent({name:"SectileChartPlot",inheritAttrs:false,setup(_props,{attrs,slots}){return()=>h("div",{...attrs,"data-scope":"chart","data-part":"plot"},slots["default"]?.())}});const ChartRenderer=defineComponent({name:"SectileChartRenderer",inheritAttrs:false,setup(_props,{attrs}){const context=useInternalChart();return()=>h("canvas",{...attrs,ref:element=>{context.canvas.value=element},"aria-hidden":"true","data-scope":"chart","data-part":"renderer"})}});const ChartCanvas=ChartRenderer;function semanticMarker(name,part){return defineComponent({name,setup(){useInternalChart();return()=>null}})}const ChartGrid=semanticMarker("SectileChartGrid","grid");const ChartGridLines=ChartGrid;const ChartLegend=semanticMarker("SectileChartLegend","legend");const ChartAxisTicks=semanticMarker("SectileChartAxisTicks","axis-ticks");const ChartTicks=ChartAxisTicks;const chartSuiteKey=Symbol("SectileChartSuite");const chartComponentSuites=new WeakMap;function createChartComponents(controller){if(controller===null||typeof controller!=="object")throw new TypeError("createChartComponents requires a Chart controller.");const cached=chartComponentSuites.get(controller);if(cached!==void 0)return cached;const token=Object.freeze({controller});const suite=Object.freeze({Provider:boundChartProvider(controller,token),Root:boundChartRoot(token),Cartesian:ChartCartesian,Radial:ChartRadial,XAxis:ChartXAxis,YAxis:ChartYAxis,AxisView:ChartAxisView,Line:ChartLine,Scatter:ChartScatter,Bar:ChartBar,Bars:ChartBars,Heatmap:ChartHeatmap,Pie:ChartPie,Donut:ChartDonut,Navigation:ChartNavigation,ViewControls:ChartViewControls,ExternalViewControls:ChartExternalViewControls,PanControl:ChartPanControl,ZoomControl:ChartZoomControl,ResetView:ChartResetView,Plot:ChartPlot,Renderer:ChartRenderer,Canvas:ChartCanvas,Grid:ChartGrid,GridLines:ChartGridLines,Legend:ChartLegend,AxisTicks:ChartAxisTicks,Ticks:ChartTicks});chartComponentSuites.set(controller,suite);return suite}function boundChartProvider(controller,token){return defineComponent({name:"SectileBoundChartProvider",inheritAttrs:false,setup(_props,{attrs,slots}){provide(chartSuiteKey,token);return()=>h(ChartProviderRuntime,{...attrs,controller},slots)}})}function boundChartRoot(token){return defineComponent({name:"SectileBoundChartRoot",inheritAttrs:false,setup(_props,{attrs,slots}){if(inject(chartSuiteKey,void 0)!==token){throw new TypeError("Controller-bound Chart.Root requires its matching Chart.Provider.")}return()=>h(ChartRootRuntime,attrs,slots)}})}function requiredControlAxis(axis,inheritedAxis){const resolved=axis??inheritedAxis;if(resolved===void 0)throw new TypeError("Chart view control requires an axis prop or an enclosing axis control scope.");return resolved}function bindController(controller,options,owned){const snapshot=shallowRef(controller.getSnapshot());const projection=shallowRef(null);const connection=shallowRef(null);let active=true;const controlledFlags={activeDatum:options.activeDatum!==void 0,cursor:options.cursor!==void 0,selection:options.selection!==void 0,view:options.view!==void 0};const publish=()=>{if(!active)return;const previous=snapshot.value;const current=controller.getSnapshot();if(current===previous)return;snapshot.value=current;let failure;if(!controlledFlags.activeDatum&&current.state.activeDatum!==previous.state.activeDatum){try{options.onActiveDatumChange?.(current.state.activeDatum)}catch(error){failure??=[error]}}if(!controlledFlags.cursor&&current.state.cursor!==previous.state.cursor){try{options.onCursorChange?.(current.state.cursor)}catch(error){failure??=[error]}}if(!controlledFlags.selection&&current.state.selection!==previous.state.selection){try{options.onSelectionChange?.(current.state.selection)}catch(error){failure??=[error]}}if(!controlledFlags.view&&current.state.view!==previous.state.view){try{options.onViewChange?.(current.state.view)}catch(error){failure??=[error]}}if(failure!==void 0)throw failure[0]};const unsubscribeCommands=controller.subscribeCommands(command=>{let failure;if(command.type==="active-change-requested"&&options.activeDatum!==void 0){try{options.activeDatum.value=command.id}catch(error){failure??=[error]}}else if(command.type==="cursor-change-requested"&&options.cursor!==void 0){try{options.cursor.value=command.id}catch(error){failure??=[error]}}else if(command.type==="selection-change-requested"&&options.selection!==void 0){try{options.selection.value=command.selection}catch(error){failure??=[error]}}else if(command.type==="view-change-requested"&&options.view!==void 0){try{options.view.value=command.view}catch(error){failure??=[error]}}try{publish()}catch(error){failure??=[error]}try{options.onCommand?.(command)}catch(error){failure??=[error]}try{if(command.type==="active-change-requested")options.onActiveDatumChange?.(command.id);else if(command.type==="cursor-change-requested")options.onCursorChange?.(command.id);else if(command.type==="selection-change-requested")options.onSelectionChange?.(command.selection);else if(command.type==="view-change-requested")options.onViewChange?.(command.view)}catch(error){failure??=[error]}if(failure!==void 0)throw failure[0]});const unsubscribeSnapshots=controller.subscribeSnapshots(()=>{publish()});const result={controller,snapshot,projection,connection,replaceModel(model,expectedRevision){const value=controller.replaceModel(model,expectedRevision);publish();return value},replaceDefinition(definition,viewCapabilities,expectedRevision){const value=controller.replaceDefinition(definition,viewCapabilities,expectedRevision);publish();return value},applyPatch(patch,expectedRevision){const value=controller.applyPatch(patch,expectedRevision);publish();return value},dispatch(event,expectedRevision){const value=controller.dispatch(event,expectedRevision);publish();return value},syncControlledValues(){const value=controller.syncControlledValues(controlledValues(options));publish();return value},dispose(){if(!active)return;active=false;connection.value?.disconnect();connection.value=null;unsubscribeCommands();unsubscribeSnapshots();if(owned)controller.dispose()}};return Object.freeze(result)}function controlledValues(options){return Object.freeze({...options.activeDatum===void 0?{}:{activeDatum:options.activeDatum.value},...options.cursor===void 0?{}:{cursor:options.cursor.value},...options.selection===void 0?{}:{selection:options.selection.value},...options.view===void 0?{}:{view:options.view.value}})}function defaultValues(options){const values=Object.freeze({...options.activeDatum!==void 0||options.defaultActiveDatum===void 0?{}:{activeDatum:options.defaultActiveDatum},...options.cursor!==void 0||options.defaultCursor===void 0?{}:{cursor:options.defaultCursor},...options.selection!==void 0||options.defaultSelection===void 0?{}:{selection:options.defaultSelection},...options.view!==void 0||options.defaultView===void 0?{}:{view:options.defaultView}});return Object.keys(values).length===0?{}:{initialValues:values}}function assertControlledDefaults(options){if(options.activeDatum!==void 0&&options.defaultActiveDatum!==void 0||options.cursor!==void 0&&options.defaultCursor!==void 0||options.selection!==void 0&&options.defaultSelection!==void 0||options.view!==void 0&&options.defaultView!==void 0){throw new TypeError("Chart controlled values and their default counterparts are mutually exclusive.")}}function assertRootControlledDefaults(props){if(props["modelValue"]!==void 0&&props["defaultModelValue"]!==void 0||props["activeDatum"]!==void 0&&props["defaultActiveDatum"]!==void 0||props["cursor"]!==void 0&&props["defaultCursor"]!==void 0||props["view"]!==void 0&&props["defaultView"]!==void 0){throw new TypeError("ChartRoot controlled props and their default counterparts are mutually exclusive.")}}function defined(value){return Object.fromEntries(Object.entries(value).filter(([,entry])=>entry!==void 0))}export{ChartAxisTicks,ChartAxisView,ChartBar,ChartBars,ChartCanvas,ChartCartesian,ChartDonut,ChartExternalViewControls,ChartGrid,ChartGridLines,ChartHeatmap,ChartLegend,ChartLine,ChartNavigation,ChartPanControl,ChartPie,ChartPlot,ChartProvider,ChartRadial,ChartRenderer,ChartResetView,ChartRoot,ChartScatter,ChartTicks,ChartViewControls,ChartXAxis,ChartYAxis,ChartZoomControl,createChartComponents,useChart,useChartAxisSelector,useChartContext,useChartLayerSelector,useChartSelector};
1
+ import{createChartController}from'@sectile/chart/controller';import{createDOMChart}from'@sectile/dom/chart';import{useControlledStateInvariant}from'./internal/controlled-state.js';import{defineComponent,getCurrentScope,h,inject,nextTick,onBeforeUnmount,onMounted,onScopeDispose,provide,shallowRef,toValue,watch}from'vue';export function useChart(options){if(options===null||typeof options!=='object')throw new TypeError('useChart options must be an object.');if(options.model===undefined===(options.definition===undefined)){throw new TypeError('useChart requires exactly one model or declarative definition.')}assertControlledDefaults(options);const controlled=controlledValues(options);const source=options.definition===undefined?{model:toValue(options.model)}:{definition:toValue(options.definition),viewCapabilities:toValue(options.viewCapabilities??(()=>Object.freeze([])))};const controller=createChartController({...source,...options.limits===undefined?{}:{limits:options.limits},...defaultValues(options),...Object.keys(controlled).length===0?{}:{controlled}});const binding=bindController(controller,options,true);const stops=[];if(options.model!==undefined){stops.push(watch(()=>toValue(options.model),model=>{binding.replaceModel(model)},{deep:false}))}else{stops.push(watch(()=>[toValue(options.definition),toValue(options.viewCapabilities??(()=>Object.freeze([])))],([definition,capabilities])=>{binding.replaceDefinition(definition,capabilities)},{deep:false}))}for(const sourceRef of[options.activeDatum,options.cursor,options.selection,options.view]){if(sourceRef!==undefined)stops.push(watch(()=>sourceRef.value,()=>{binding.syncControlledValues()},{deep:false}))}const disposeBinding=binding.dispose;const result=Object.freeze({...binding,dispose(){for(const stop of stops.splice(0))stop();disposeBinding()}});if(getCurrentScope()!==undefined)onScopeDispose(result.dispose);return result}class ChartDeclarations{#records=new Map;#publish;#token=0;#scheduled=false;#active=true;#publications=0;#readRecords=0;constructor(publish){this.#publish=publish}register(kind,read){const token=++this.#token;this.#records.set(token,{token,kind,read});this.schedule();let active=true;return Object.freeze({touch:()=>{if(active)this.schedule()},dispose:()=>{if(!active)return;active=false;this.#records.delete(token);this.schedule()}})}publishNow(){if(!this.#active)return;this.#scheduled=false;this.#publish(this.assemble());this.#publications+=1}getDiagnostics(){return Object.freeze({registeredRecords:this.#records.size,publications:this.#publications,readRecords:this.#readRecords})}schedule(){if(!this.#active||this.#scheduled)return;this.#scheduled=true;void nextTick(()=>{if(this.#scheduled)this.publishNow()})}assemble(){const records=[...this.#records.values()].sort((left,right)=>left.token-right.token);this.#readRecords=records.length;const coordinates=records.filter(record=>record.kind==='coordinate');if(coordinates.length!==1)throw new TypeError('ChartRoot requires exactly one ChartCartesian or ChartRadial coordinate.');const coordinate=coordinates[0]?.read();const axes=records.filter(record=>record.kind==='axis').map(record=>record.read());const layers=records.filter(record=>record.kind==='layer').map(record=>record.read());const capabilities=records.filter(record=>record.kind==='view').map(record=>record.read());const navigationRecords=records.filter(record=>record.kind==='navigation');if(navigationRecords.length>1)throw new TypeError('ChartRoot accepts at most one ChartNavigation declaration.');const controls=records.filter(record=>record.kind==='controls').map(record=>record.read());const navigation=navigationRecords[0]?.read();const alternative=controls.includes('built-in')?'built-in':controls.includes('external')?'external':undefined;if(navigation!==undefined&&((navigation.drag??'none')!=='none'||navigation.pinch===true)&&alternative===undefined){throw new TypeError('Chart direct gestures require ChartViewControls or ChartExternalViewControls.')}return Object.freeze({definition:Object.freeze({coordinate:coordinate.kind==='cartesian'?Object.freeze({kind:'cartesian',axes:Object.freeze(axes)}):Object.freeze({kind:'radial'}),layers:Object.freeze(layers)}),viewCapabilities:Object.freeze(capabilities),navigation:Object.freeze({...navigation??{},...alternative===undefined?{}:{controlAlternative:alternative}})})}dispose(){if(!this.#active)return;this.#active=false;this.#scheduled=false;this.#records.clear()}}const chartKey=Symbol('SectileChart');const chartPublicKey=Symbol('SectileChartPublic');const chartOwnerKey=Symbol('SectileChartOwner');const chartAxisKey=Symbol('SectileChartAxis');const chartControlAxisKey=Symbol('SectileChartControlAxis');function useInternalChart(){const context=inject(chartKey);if(context===undefined)throw new TypeError('Chart component must be used inside ChartRoot.');return context}export function useChartContext(){const context=inject(chartPublicKey);if(context===undefined)throw new TypeError('useChartContext must be used inside ChartRoot or ChartProvider.');return context}const ChartProviderRuntime=/* @__PURE__ */defineComponent({name:'SectileChartProvider',props:{controller:{type:Object,required:true}},setup(props,{slots}){const controller=shallowRef(props.controller);const snapshot=shallowRef(controller.value.getSnapshot());const unsubscribe=controller.value.subscribeSnapshots(next=>{snapshot.value=next});const owner=Object.freeze({controller});const context=Object.freeze({controller,snapshot,dispatch(event){const result=controller.value.dispatch(event);return result.ok?Object.freeze({ok:true,value:result.value.snapshot}):result},applyPatch(patch){return controller.value.applyPatch(patch)}});provide(chartOwnerKey,owner);provide(chartPublicKey,context);onScopeDispose(unsubscribe);return()=>slots['default']?.({controller:controller.value,snapshot:snapshot.value,state:snapshot.value.state,definition:controller.value.getDefinition()})??null}});export const ChartProvider=ChartProviderRuntime;export function useChartSelector(selector,options={}){const context=useChartContext();return useChartContextSelector(context,()=>selector(context.snapshot.value?.state??null),options.equals)}export function useChartLayerSelector(id,selector,options={}){const context=useChartContext();return useChartContextSelector(context,()=>{const layers=context.controller.value?.getDefinition()?.layers;return selector(layers?.find(layer=>layer.id===id)??null)},options.equals)}export function useChartAxisSelector(id,selector,options={}){const context=useChartContext();return useChartContextSelector(context,()=>{const axes=context.controller.value?.getDefinition()?.axes;return selector(axes?.find(axis=>axis.id===id)??null)},options.equals)}function useChartContextSelector(context,read,equals=Object.is){const selected=shallowRef(read());const stop=watch([context.controller,context.snapshot],()=>{const next=read();if(!equals(selected.value,next))selected.value=next},{deep:false,flush:'sync'});onScopeDispose(stop);return selected}const ChartRootRuntime=/* @__PURE__ */defineComponent({name:'SectileChartRoot',inheritAttrs:false,props:{limits:{type:Object,default:undefined},modelValue:{type:Object,default:undefined},defaultModelValue:{type:Object,default:undefined},activeDatum:{type:[String,Number],default:undefined},defaultActiveDatum:{type:[String,Number],default:undefined},cursor:{type:[String,Number],default:undefined},defaultCursor:{type:[String,Number],default:undefined},view:{type:Object,default:undefined},defaultView:{type:Object,default:undefined},patch:{type:Object,default:undefined},dom:{type:Object,default:undefined},onError:{type:Function,default:undefined}},emits:{'update:modelValue':_value=>true,'update:activeDatum':_value=>true,'update:cursor':_value=>true,'update:view':_value=>true,command:_command=>true},setup(props,{attrs,emit,expose,slots}){assertRootControlledDefaults(props);const ownerContext=inject(chartOwnerKey,undefined);const ownsController=ownerContext===undefined;const root=shallowRef(null);const canvas=shallowRef(null);const controller=shallowRef(ownerContext?.controller.value??null);const snapshot=shallowRef(controller.value?.getSnapshot()??null);const projection=shallowRef(null);const connection=shallowRef(null);let assembled=null;let unsubscribeCommands=null;let unsubscribeSnapshots=null;let previousState=snapshot.value?.state??null;let mounted=false;let definitionAccepted=false;const controlled=Object.freeze({activeDatum:useControlledStateInvariant('ChartRoot','activeDatum',()=>props.activeDatum),cursor:useControlledStateInvariant('ChartRoot','cursor',()=>props.cursor),selection:useControlledStateInvariant('ChartRoot','modelValue',()=>props.modelValue),view:useControlledStateInvariant('ChartRoot','view',()=>props.view)});const report=error=>{if(props.onError!==undefined)props.onError(error);else throw error};const publishSnapshot=()=>{const owner=controller.value;if(owner===null)return;const current=owner.getSnapshot();if(snapshot.value===current)return;const prior=previousState;snapshot.value=current;previousState=current.state;if(prior===null)return;let failure;if(!controlled.activeDatum&&prior.activeDatum!==current.state.activeDatum){try{emit('update:activeDatum',current.state.activeDatum)}catch(error){failure??=[error]}}if(!controlled.cursor&&prior.cursor!==current.state.cursor){try{emit('update:cursor',current.state.cursor)}catch(error){failure??=[error]}}if(!controlled.selection&&prior.selection!==current.state.selection){try{emit('update:modelValue',current.state.selection)}catch(error){failure??=[error]}}if(!controlled.view&&prior.view!==current.state.view){try{emit('update:view',current.state.view)}catch(error){failure??=[error]}}if(failure!==undefined)throw failure[0]};const publishRootCommand=command=>{emit('command',command)};const publishRootProposal=command=>{if(command.type==='active-change-requested')emit('update:activeDatum',command.id);else if(command.type==='cursor-change-requested')emit('update:cursor',command.id);else if(command.type==='selection-change-requested')emit('update:modelValue',command.selection);else if(command.type==='view-change-requested')emit('update:view',command.view)};const onCommand=command=>{publishVueChartCommand(command,publishSnapshot,publishRootCommand,publishRootProposal)};const connect=()=>{const owner=controller.value;if(!mounted||owner===null||root.value===null||canvas.value===null||connection.value!==null)return;const dom=props.dom??{};try{connection.value=createDOMChart({...dom,root:root.value,canvas:canvas.value,controller:owner,...assembled===null?{}:{navigation:assembled.navigation},onCommand:command=>{dom.onCommand?.(command)},onProjectionChange:next=>{projection.value=next;dom.onProjectionChange?.(next)},onProjectionError:projectionError=>{let failure;try{dom.onProjectionError?.(projectionError)}catch(error){failure??=[error]}try{report(projectionError)}catch(error){failure??=[error]}if(failure!==undefined)throw failure[0]}});projection.value=connection.value.getProjection()}catch(error){report(error)}};const publishDefinition=next=>{assembled=next;definitionAccepted=false;const owner=controller.value;if(!mounted||owner===null)return;const replaced=owner.replaceDefinition(next.definition,next.viewCapabilities);if(!replaced.ok){report(new TypeError(`${replaced.error.code}: ${replaced.error.message}`));return}definitionAccepted=true;publishSnapshot();const navigation=connection.value?.setNavigation(next.navigation);if(navigation!==undefined&&!navigation.ok)report(new TypeError(`${navigation.error.code}: ${navigation.error.message}`));connection.value?.refresh()};const declarations=new ChartDeclarations(next=>{try{publishDefinition(next)}catch(error){report(error)}});const context=Object.freeze({declarations,controller,canvas,dispatch(event){const result=controller.value?.dispatch(event);if(result!==undefined&&!result.ok)report(new TypeError(`${result.error.code}: ${result.error.message}`));publishSnapshot()}});provide(chartKey,context);const publicContext=Object.freeze({controller,snapshot,dispatch(event){const result=controller.value?.dispatch(event);if(result===undefined)return Object.freeze({ok:true,value:null});publishSnapshot();return result.ok?Object.freeze({ok:true,value:result.value.snapshot}):result},applyPatch(patch){const result=controller.value?.applyPatch(patch);if(result===undefined)return Object.freeze({ok:true,value:null});publishSnapshot();return result}});provide(chartPublicKey,publicContext);const syncControlled=()=>{const owner=controller.value;if(owner===null)return;const result=owner.syncControlledValues(Object.freeze({...controlled.activeDatum?{activeDatum:props.activeDatum??null}:{},...controlled.cursor?{cursor:props.cursor??null}:{},...controlled.selection?{selection:props.modelValue}:{},...controlled.view?{view:props.view??null}:{}}));if(!result.ok)report(new TypeError(`${result.error.code}: ${result.error.message}`));publishSnapshot()};watch(()=>[props.activeDatum,props.cursor,props.modelValue,props.view],syncControlled,{deep:false});watch(()=>props.patch,patch=>{if(patch===null||patch===undefined||controller.value===null)return;const result=controller.value.applyPatch(patch);if(!result.ok)report(new TypeError(`${result.error.code}: ${result.error.message}`));publishSnapshot()},{deep:false});watch(()=>props.dom?.accessibilityLabel,label=>{connection.value?.setAccessibilityLabel(label)},{flush:'post'});onMounted(()=>{mounted=true;try{declarations.publishNow();const next=assembled;const controlledValues=Object.freeze({...controlled.activeDatum?{activeDatum:props.activeDatum??null}:{},...controlled.cursor?{cursor:props.cursor??null}:{},...controlled.selection?{selection:props.modelValue}:{},...controlled.view?{view:props.view??null}:{}});const initialValues=Object.freeze({...!controlled.activeDatum&&props.defaultActiveDatum!==undefined?{activeDatum:props.defaultActiveDatum}:{},...!controlled.cursor&&props.defaultCursor!==undefined?{cursor:props.defaultCursor}:{},...!controlled.selection&&props.defaultModelValue!==undefined?{selection:props.defaultModelValue}:{},...!controlled.view&&props.defaultView!==undefined?{view:props.defaultView}:{}});if(ownerContext===undefined){controller.value=createChartController({definition:next.definition,viewCapabilities:next.viewCapabilities,...props.limits===undefined?{}:{limits:props.limits},...Object.keys(controlledValues).length===0?{}:{controlled:controlledValues},...Object.keys(initialValues).length===0?{}:{initialValues}})}else{const borrowed=ownerContext.controller.value;if(!definitionAccepted)return;controller.value=borrowed;if(Object.keys(controlledValues).length!==0){const synced=borrowed.syncControlledValues(controlledValues);if(!synced.ok)throw new TypeError(`${synced.error.code}: ${synced.error.message}`)}}snapshot.value=controller.value.getSnapshot();previousState=snapshot.value.state;unsubscribeCommands=controller.value.subscribeCommands(onCommand);unsubscribeSnapshots=controller.value.subscribeSnapshots(()=>{publishSnapshot()});void nextTick(connect)}catch(error){report(error)}});onBeforeUnmount(()=>{mounted=false;declarations.dispose();connection.value?.disconnect();connection.value=null;unsubscribeCommands?.();unsubscribeCommands=null;unsubscribeSnapshots?.();unsubscribeSnapshots=null;if(ownsController)controller.value?.dispose();controller.value=null});expose({controller,getDeclarationDiagnostics:()=>declarations.getDiagnostics(),refresh:()=>connection.value?.refresh()});return()=>h('div',{...attrs,ref:element=>{root.value=element},'data-scope':'chart','data-part':'root'},slots['default']?.({controller:controller.value,snapshot:snapshot.value,state:snapshot.value?.state??null,projection:projection.value,definition:controller.value?.getDefinition()??null}))}});export const ChartRoot=ChartRootRuntime;const coordinateProps={};export const ChartCartesian=defineComponent({name:'SectileChartCartesian',props:coordinateProps,setup(_props,{slots}){const context=useInternalChart();const record=context.declarations.register('coordinate',()=>Object.freeze({kind:'cartesian'}));onBeforeUnmount(record.dispose);return()=>slots['default']?.()??null}});export const ChartRadial=defineComponent({name:'SectileChartRadial',props:coordinateProps,setup(_props,{slots}){const context=useInternalChart();const record=context.declarations.register('coordinate',()=>Object.freeze({kind:'radial'}));onBeforeUnmount(record.dispose);return()=>slots['default']?.()??null}});const axisProps={id:{type:[String,Number],required:true},scale:{type:String,default:'linear'},domain:{type:[String,Object],default:'auto'},field:{type:String,default:undefined},getValue:{type:Function,default:undefined},ticks:{type:Number,default:undefined},label:{type:String,default:undefined},unit:{type:String,default:undefined}};function axisComponent(orientation){return defineComponent({name:orientation==='x'?'SectileChartXAxis':'SectileChartYAxis',props:axisProps,setup(props,{slots}){const context=useInternalChart();const axis=shallowRef(props.id);provide(chartAxisKey,axis);const value=shallowRef(axisDefinition(props,orientation));const record=context.declarations.register('axis',()=>value.value);watch(()=>[props.id,props.scale,props.domain,props.field,props.getValue,props.ticks,props.label,props.unit],()=>{axis.value=props.id;value.value=axisDefinition(props,orientation);record.touch()},{deep:false,flush:'post'});onBeforeUnmount(record.dispose);return()=>slots['default']?.()??null}})}export const ChartXAxis=axisComponent('x');export const ChartYAxis=axisComponent('y');function axisDefinition(props,orientation){return defined({id:props['id'],orientation,scale:props['scale'],domain:props['domain'],field:props['field'],getValue:props['getValue'],ticks:props['ticks'],label:props['label'],unit:props['unit']})}const layerBaseProps={id:{type:[String,Number],required:true},data:{type:Array,required:true},getId:{type:Function,default:undefined},label:{type:String,default:undefined}};const cartesianLayerProps={...layerBaseProps,xAxis:{type:[String,Number],required:true},yAxis:{type:[String,Number],required:true},getX:{type:Function,default:undefined},getY:{type:Function,default:undefined}};function layerComponent(kind,extraProps={}){return defineComponent({name:`SectileChart${kind[0]?.toUpperCase()}${kind.slice(1)}`,props:{...kind==='pie'||kind==='donut'?layerBaseProps:cartesianLayerProps,...extraProps},setup(props){const context=useInternalChart();const value=shallowRef(layerDefinition(props,kind));const record=context.declarations.register('layer',()=>value.value);watch(()=>Object.values(props),()=>{value.value=layerDefinition(props,kind);record.touch()},{deep:false,flush:'post'});onBeforeUnmount(record.dispose);return()=>null}})}export const ChartLine=layerComponent('line');export const ChartScatter=layerComponent('scatter',{projection:{type:String,default:'raw'}});export const ChartBar=layerComponent('bar',{orientation:{type:String,default:'vertical'}});export const ChartBars=ChartBar;export const ChartHeatmap=layerComponent('heatmap',{getValue:{type:Function,default:undefined},valueField:{type:String,default:undefined},projection:{type:[String,Object],default:'raw'}});export const ChartPie=layerComponent('pie',{getValue:{type:Function,default:undefined},valueField:{type:String,default:undefined},getLabel:{type:Function,default:undefined},labelField:{type:String,default:undefined}});export const ChartDonut=layerComponent('donut',{getValue:{type:Function,default:undefined},valueField:{type:String,default:undefined},getLabel:{type:Function,default:undefined},labelField:{type:String,default:undefined},innerRadius:{type:Number,default:0.5},outerRadius:{type:Number,default:1}});function layerDefinition(props,kind){return defined({kind,id:props['id'],data:props['data'],getId:props['getId'],label:props['label'],xAxis:props['xAxis'],yAxis:props['yAxis'],getX:props['getX'],getY:props['getY'],projection:props['projection'],orientation:props['orientation'],getValue:props['getValue'],valueField:props['valueField'],getLabel:props['getLabel'],labelField:props['labelField'],innerRadius:props['innerRadius'],outerRadius:props['outerRadius']})}export const ChartAxisView=defineComponent({name:'SectileChartAxisView',props:{axis:{type:[String,Number],default:undefined},initial:{type:Object,default:undefined},minimumSpan:{type:Number,default:undefined},maximumSpan:{type:Number,default:undefined},update:{type:String,default:'preserve'}},setup(props){const context=useInternalChart();const inheritedAxis=inject(chartAxisKey,undefined);const read=()=>viewCapability(props,inheritedAxis?.value);const value=shallowRef(read());const record=context.declarations.register('view',()=>value.value);watch(()=>[props.axis,inheritedAxis?.value,props.initial,props.minimumSpan,props.maximumSpan,props.update],()=>{value.value=read();record.touch()},{deep:false,flush:'post'});onBeforeUnmount(record.dispose);return()=>null}});function viewCapability(props,inheritedAxis){const axisID=props['axis']??inheritedAxis;if(axisID===undefined)throw new TypeError('ChartAxisView requires an axis prop or an enclosing ChartXAxis or ChartYAxis.');return Object.freeze(defined({axisID,initial:props['initial'],minimumSpan:props['minimumSpan'],maximumSpan:props['maximumSpan'],update:props['update']}))}export const ChartNavigation=defineComponent({name:'SectileChartNavigation',props:{axes:{type:Array,default:undefined},drag:{type:String,default:'none'},wheel:{type:String,default:'native'},wheelModifier:{type:String,default:'none'},pinch:{type:Boolean,default:false},keyboard:{type:Boolean,default:false}},setup(props){const context=useInternalChart();const value=shallowRef(navigationDefinition(props));const record=context.declarations.register('navigation',()=>value.value);watch(()=>[props.axes,props.drag,props.wheel,props.wheelModifier,props.pinch,props.keyboard],()=>{const next=navigationDefinition(props);if(sameNavigation(value.value,next))return;value.value=next;record.touch()},{deep:false,flush:'post'});onBeforeUnmount(record.dispose);return()=>null}});function navigationDefinition(props){return Object.freeze(defined({axes:props['axes'],drag:props['drag'],wheel:props['wheel'],wheelModifier:props['wheelModifier'],pinch:props['pinch'],keyboard:props['keyboard']}))}function sameNavigation(left,right){return sameStableIDs(left.axes,right.axes)&&left.drag===right.drag&&left.wheel===right.wheel&&left.wheelModifier===right.wheelModifier&&left.pinch===right.pinch&&left.keyboard===right.keyboard}function sameStableIDs(left,right){if(left===right)return true;if(left===undefined||right===undefined||left.length!==right.length)return false;for(let index=0;index<left.length;index+=1)if(left[index]!==right[index])return false;return true}export const ChartViewControls=defineComponent({name:'SectileChartViewControls',inheritAttrs:false,props:{axis:{type:[String,Number],default:undefined}},setup(props,{attrs,slots}){const context=useInternalChart();const inheritedAxis=inject(chartAxisKey,undefined);const initialAxis=props.axis??inheritedAxis?.value;if(initialAxis===undefined)throw new TypeError('ChartViewControls requires an axis prop or an enclosing ChartXAxis or ChartYAxis.');const axis=shallowRef(initialAxis);provide(chartControlAxisKey,axis);watch(()=>[props.axis,inheritedAxis?.value],()=>{axis.value=props.axis??inheritedAxis?.value},{deep:false,flush:'sync'});const record=context.declarations.register('controls',()=>'built-in');onBeforeUnmount(record.dispose);return()=>h('div',{...attrs,'data-scope':'chart','data-part':'view-controls'},slots['default']?.())}});export const ChartExternalViewControls=defineComponent({name:'SectileChartExternalViewControls',setup(){const context=useInternalChart();const record=context.declarations.register('controls',()=>'external');onBeforeUnmount(record.dispose);return()=>null}});const axisControlProps={axis:{type:[String,Number],default:undefined},label:{type:String,default:undefined}};export const ChartPanControl=defineComponent({name:'SectileChartPanControl',inheritAttrs:false,props:{...axisControlProps,direction:{type:String,required:true},step:{type:Number,default:0.1}},setup(props,{attrs,slots}){const context=useInternalChart();const inheritedAxis=inject(chartControlAxisKey,inject(chartAxisKey,undefined));const axis=()=>requiredControlAxis(props.axis,inheritedAxis?.value);return()=>h('button',{...attrs,type:'button',disabled:context.controller.value===null,'aria-label':props.label??`Pan ${String(axis())} ${props.direction}`,'data-scope':'chart','data-part':'pan-control',onClick:()=>context.dispatch({type:'pan-axis-view',axisID:axis(),fraction:props.direction==='backward'?-props.step:props.step,phase:'settled'})},slots['default']?.()??props.direction)}});export const ChartZoomControl=defineComponent({name:'SectileChartZoomControl',inheritAttrs:false,props:{...axisControlProps,direction:{type:String,required:true},factor:{type:Number,default:1.25}},setup(props,{attrs,slots}){const context=useInternalChart();const inheritedAxis=inject(chartControlAxisKey,inject(chartAxisKey,undefined));const axis=()=>requiredControlAxis(props.axis,inheritedAxis?.value);return()=>h('button',{...attrs,type:'button',disabled:context.controller.value===null,'aria-label':props.label??`Zoom ${String(axis())} ${props.direction}`,'data-scope':'chart','data-part':'zoom-control',onClick:()=>context.dispatch({type:'zoom-axis-view',axisID:axis(),factor:props.direction==='in'?props.factor:1/props.factor,anchor:0.5,phase:'settled'})},slots['default']?.()??props.direction)}});export const ChartResetView=defineComponent({name:'SectileChartResetView',inheritAttrs:false,props:{...axisControlProps,to:{type:String,default:'initial'}},setup(props,{attrs,slots}){const context=useInternalChart();const inheritedAxis=inject(chartControlAxisKey,inject(chartAxisKey,undefined));const axis=()=>requiredControlAxis(props.axis,inheritedAxis?.value);return()=>h('button',{...attrs,type:'button',disabled:context.controller.value===null,'aria-label':props.label??`Reset ${String(axis())} view`,'data-scope':'chart','data-part':'reset-view',onClick:()=>context.dispatch({type:'reset-axis-view',axisID:axis(),to:props.to,phase:'settled'})},slots['default']?.()??'Reset')}});export const ChartPlot=defineComponent({name:'SectileChartPlot',inheritAttrs:false,setup(_props,{attrs,slots}){return()=>h('div',{...attrs,'data-scope':'chart','data-part':'plot'},slots['default']?.())}});export const ChartRenderer=defineComponent({name:'SectileChartRenderer',inheritAttrs:false,setup(_props,{attrs}){const context=useInternalChart();return()=>h('canvas',{...attrs,ref:element=>{context.canvas.value=element},'aria-hidden':'true','data-scope':'chart','data-part':'renderer'})}});export const ChartCanvas=ChartRenderer;function semanticMarker(name,part){return defineComponent({name,setup(){useInternalChart();return()=>null}})}export const ChartGrid=semanticMarker('SectileChartGrid','grid');export const ChartGridLines=ChartGrid;export const ChartLegend=semanticMarker('SectileChartLegend','legend');export const ChartAxisTicks=semanticMarker('SectileChartAxisTicks','axis-ticks');export const ChartTicks=ChartAxisTicks;const chartSuiteKey=Symbol('SectileChartSuite');const chartComponentSuites=new WeakMap;export function createChartComponents(controller){if(controller===null||typeof controller!=='object')throw new TypeError('createChartComponents requires a Chart controller.');const cached=chartComponentSuites.get(controller);if(cached!==undefined)return cached;const token=Object.freeze({controller});const suite=Object.freeze({Provider:boundChartProvider(controller,token),Root:boundChartRoot(token),Cartesian:ChartCartesian,Radial:ChartRadial,XAxis:ChartXAxis,YAxis:ChartYAxis,AxisView:ChartAxisView,Line:ChartLine,Scatter:ChartScatter,Bar:ChartBar,Bars:ChartBars,Heatmap:ChartHeatmap,Pie:ChartPie,Donut:ChartDonut,Navigation:ChartNavigation,ViewControls:ChartViewControls,ExternalViewControls:ChartExternalViewControls,PanControl:ChartPanControl,ZoomControl:ChartZoomControl,ResetView:ChartResetView,Plot:ChartPlot,Renderer:ChartRenderer,Canvas:ChartCanvas,Grid:ChartGrid,GridLines:ChartGridLines,Legend:ChartLegend,AxisTicks:ChartAxisTicks,Ticks:ChartTicks});chartComponentSuites.set(controller,suite);return suite}function boundChartProvider(controller,token){return defineComponent({name:'SectileBoundChartProvider',inheritAttrs:false,setup(_props,{attrs,slots}){provide(chartSuiteKey,token);return()=>h(ChartProviderRuntime,{...attrs,controller},slots)}})}function boundChartRoot(token){return defineComponent({name:'SectileBoundChartRoot',inheritAttrs:false,setup(_props,{attrs,slots}){if(inject(chartSuiteKey,undefined)!==token){throw new TypeError('Controller-bound Chart.Root requires its matching Chart.Provider.')}return()=>h(ChartRootRuntime,attrs,slots)}})}function requiredControlAxis(axis,inheritedAxis){const resolved=axis??inheritedAxis;if(resolved===undefined)throw new TypeError('Chart view control requires an axis prop or an enclosing axis control scope.');return resolved}function publishVueChartCommand(command,publishSnapshot,publishCommand,publishProposal,publishChange){let failure;try{publishSnapshot()}catch(error){failure??=[error]}try{publishCommand(command)}catch(error){failure??=[error]}try{publishProposal(command)}catch(error){failure??=[error]}if(publishChange!==undefined){try{publishChange(command)}catch(error){failure??=[error]}}if(failure!==undefined)throw failure[0]}function bindController(controller,options,owned){const snapshot=shallowRef(controller.getSnapshot());const projection=shallowRef(null);const connection=shallowRef(null);let active=true;const controlledFlags={activeDatum:options.activeDatum!==undefined,cursor:options.cursor!==undefined,selection:options.selection!==undefined,view:options.view!==undefined};const publish=()=>{if(!active)return;const previous=snapshot.value;const current=controller.getSnapshot();if(current===previous)return;snapshot.value=current;let failure;if(!controlledFlags.activeDatum&&current.state.activeDatum!==previous.state.activeDatum){try{options.onActiveDatumChange?.(current.state.activeDatum)}catch(error){failure??=[error]}}if(!controlledFlags.cursor&&current.state.cursor!==previous.state.cursor){try{options.onCursorChange?.(current.state.cursor)}catch(error){failure??=[error]}}if(!controlledFlags.selection&&current.state.selection!==previous.state.selection){try{options.onSelectionChange?.(current.state.selection)}catch(error){failure??=[error]}}if(!controlledFlags.view&&current.state.view!==previous.state.view){try{options.onViewChange?.(current.state.view)}catch(error){failure??=[error]}}if(failure!==undefined)throw failure[0]};const publishComposableCommand=command=>{options.onCommand?.(command)};const publishComposableProposal=command=>{if(command.type==='active-change-requested'&&options.activeDatum!==undefined)options.activeDatum.value=command.id;else if(command.type==='cursor-change-requested'&&options.cursor!==undefined)options.cursor.value=command.id;else if(command.type==='selection-change-requested'&&options.selection!==undefined)options.selection.value=command.selection;else if(command.type==='view-change-requested'&&options.view!==undefined)options.view.value=command.view};const publishComposableChange=command=>{if(command.type==='active-change-requested')options.onActiveDatumChange?.(command.id);else if(command.type==='cursor-change-requested')options.onCursorChange?.(command.id);else if(command.type==='selection-change-requested')options.onSelectionChange?.(command.selection);else if(command.type==='view-change-requested')options.onViewChange?.(command.view)};const unsubscribeCommands=controller.subscribeCommands(command=>{publishVueChartCommand(command,publish,publishComposableCommand,publishComposableProposal,publishComposableChange)});const unsubscribeSnapshots=controller.subscribeSnapshots(()=>{publish()});const result={controller,snapshot,projection,connection,replaceModel(model,expectedRevision){const value=controller.replaceModel(model,expectedRevision);publish();return value},replaceDefinition(definition,viewCapabilities,expectedRevision){const value=controller.replaceDefinition(definition,viewCapabilities,expectedRevision);publish();return value},applyPatch(patch,expectedRevision){const value=controller.applyPatch(patch,expectedRevision);publish();return value},dispatch(event,expectedRevision){const value=controller.dispatch(event,expectedRevision);publish();return value},syncControlledValues(){const value=controller.syncControlledValues(controlledValues(options));publish();return value},dispose(){if(!active)return;active=false;connection.value?.disconnect();connection.value=null;unsubscribeCommands();unsubscribeSnapshots();if(owned)controller.dispose()}};return Object.freeze(result)}function controlledValues(options){return Object.freeze({...options.activeDatum===undefined?{}:{activeDatum:options.activeDatum.value},...options.cursor===undefined?{}:{cursor:options.cursor.value},...options.selection===undefined?{}:{selection:options.selection.value},...options.view===undefined?{}:{view:options.view.value}})}function defaultValues(options){const values=Object.freeze({...options.activeDatum!==undefined||options.defaultActiveDatum===undefined?{}:{activeDatum:options.defaultActiveDatum},...options.cursor!==undefined||options.defaultCursor===undefined?{}:{cursor:options.defaultCursor},...options.selection!==undefined||options.defaultSelection===undefined?{}:{selection:options.defaultSelection},...options.view!==undefined||options.defaultView===undefined?{}:{view:options.defaultView}});return Object.keys(values).length===0?{}:{initialValues:values}}function assertControlledDefaults(options){if(options.activeDatum!==undefined&&options.defaultActiveDatum!==undefined||options.cursor!==undefined&&options.defaultCursor!==undefined||options.selection!==undefined&&options.defaultSelection!==undefined||options.view!==undefined&&options.defaultView!==undefined){throw new TypeError('Chart controlled values and their default counterparts are mutually exclusive.')}}function assertRootControlledDefaults(props){if(props['modelValue']!==undefined&&props['defaultModelValue']!==undefined||props['activeDatum']!==undefined&&props['defaultActiveDatum']!==undefined||props['cursor']!==undefined&&props['defaultCursor']!==undefined||props['view']!==undefined&&props['defaultView']!==undefined){throw new TypeError('ChartRoot controlled props and their default counterparts are mutually exclusive.')}}function defined(value){return Object.fromEntries(Object.entries(value).filter(([,entry])=>entry!==undefined))}
2
2
  //# sourceMappingURL=chart.js.map
package/dist/chart.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/chart.ts"],"mappings":"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","names":["controlledValues"],"file":"chart.js"}
1
+ {"version":3,"file":"chart.js","names":["createChartController","createDOMChart","useControlledStateInvariant","defineComponent","getCurrentScope","h","inject","nextTick","onBeforeUnmount","onMounted","onScopeDispose","provide","shallowRef","toValue","watch","useChart","options","TypeError","model","undefined","definition","assertControlledDefaults","controlled","controlledValues","source","viewCapabilities","Object","freeze","controller","limits","defaultValues","keys","length","binding","bindController","stops","push","replaceModel","deep","capabilities","replaceDefinition","sourceRef","activeDatum","cursor","selection","view","value","syncControlledValues","disposeBinding","dispose","result","stop","splice","ChartDeclarations","records","Map","publish","token","scheduled","active","publications","readRecords","constructor","this","register","kind","read","set","schedule","touch","delete","publishNow","assemble","getDiagnostics","registeredRecords","size","values","sort","left","right","coordinates","filter","record","coordinate","axes","map","layers","navigationRecords","controls","navigation","alternative","includes","drag","pinch","controlAlternative","clear","chartKey","Symbol","chartPublicKey","chartOwnerKey","chartAxisKey","chartControlAxisKey","useInternalChart","context","useChartContext","ChartProviderRuntime","name","props","type","required","setup","slots","snapshot","getSnapshot","unsubscribe","subscribeSnapshots","next","owner","dispatch","event","ok","applyPatch","patch","state","getDefinition","ChartProvider","useChartSelector","selector","useChartContextSelector","equals","useChartLayerSelector","id","find","layer","useChartAxisSelector","axis","is","selected","flush","ChartRootRuntime","inheritAttrs","default","modelValue","defaultModelValue","String","Number","defaultActiveDatum","defaultCursor","defaultView","dom","onError","Function","emits","_value","command","_command","attrs","emit","expose","assertRootControlledDefaults","ownerContext","ownsController","root","canvas","projection","connection","assembled","unsubscribeCommands","unsubscribeSnapshots","previousState","mounted","definitionAccepted","report","error","publishSnapshot","current","prior","failure","publishRootCommand","publishRootProposal","onCommand","publishVueChartCommand","connect","onProjectionChange","onProjectionError","projectionError","getProjection","publishDefinition","replaced","code","message","setNavigation","refresh","declarations","publicContext","syncControlled","accessibilityLabel","label","setAccessibilityLabel","initialValues","borrowed","synced","subscribeCommands","disconnect","getDeclarationDiagnostics","ref","element","ChartRoot","coordinateProps","ChartCartesian","_props","ChartRadial","axisProps","scale","domain","field","getValue","ticks","unit","axisComponent","orientation","axisDefinition","ChartXAxis","ChartYAxis","defined","layerBaseProps","data","Array","getId","cartesianLayerProps","xAxis","yAxis","getX","getY","layerComponent","extraProps","toUpperCase","slice","layerDefinition","ChartLine","ChartScatter","ChartBar","ChartBars","ChartHeatmap","valueField","ChartPie","getLabel","labelField","ChartDonut","innerRadius","outerRadius","ChartAxisView","initial","minimumSpan","maximumSpan","update","inheritedAxis","viewCapability","axisID","ChartNavigation","wheel","wheelModifier","Boolean","keyboard","navigationDefinition","sameNavigation","sameStableIDs","index","ChartViewControls","initialAxis","ChartExternalViewControls","axisControlProps","ChartPanControl","direction","step","requiredControlAxis","disabled","onClick","fraction","phase","ChartZoomControl","factor","anchor","ChartResetView","to","ChartPlot","ChartRenderer","ChartCanvas","semanticMarker","part","ChartGrid","ChartGridLines","ChartLegend","ChartAxisTicks","ChartTicks","chartSuiteKey","chartComponentSuites","WeakMap","createChartComponents","cached","get","suite","Provider","boundChartProvider","Root","boundChartRoot","Cartesian","Radial","XAxis","YAxis","AxisView","Line","Scatter","Bar","Bars","Heatmap","Pie","Donut","Navigation","ViewControls","ExternalViewControls","PanControl","ZoomControl","ResetView","Plot","Renderer","Canvas","Grid","GridLines","Legend","AxisTicks","Ticks","resolved","publishCommand","publishProposal","publishChange","owned","controlledFlags","previous","onActiveDatumChange","onCursorChange","onSelectionChange","onViewChange","publishComposableCommand","publishComposableProposal","publishComposableChange","expectedRevision","defaultSelection","fromEntries","entries","entry"],"sources":["../src/chart.ts"],"mappings":"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","ignoreList":[]}
package/dist/grid.js CHANGED
@@ -1,2 +1,2 @@
1
- import{computed,defineComponent,h,inject,mergeProps,onBeforeUnmount,onMounted,provide,shallowRef,watch}from"vue";import{createGridControl}from"@sectile/dom/grid";import{Primitive}from"./primitive.js";import{reconcileCollectionState,sameIDs}from"./internal/collection.js";import{useControlledStateInvariant}from"./internal/controlled-state.js";const key=Symbol("SectileGridRoot");const partProps={as:{type:[String,Object,Function],default:"div"},asChild:{type:Boolean,default:false}};const GridRoot=defineComponent({name:"SectileGridRoot",inheritAttrs:false,props:{rows:{type:Array,required:true},modelValue:{type:String,default:void 0},defaultValue:{type:String,default:null},highlightedValue:{type:String,default:void 0},defaultHighlightedValue:{type:String,default:null},editMode:{type:String,default:void 0},defaultEditMode:{type:String,default:"navigation"},disabledItems:{type:Array,default:()=>[]},disabled:{type:Boolean,default:false},readonly:{type:Boolean,default:false},label:{type:String,default:void 0},policies:{type:Object,default:void 0},as:{type:[String,Object,Function],default:"div"},asChild:{type:Boolean,default:false}},emits:{"update:modelValue":_value=>true,"update:highlightedValue":_value=>true,"update:editMode":_value=>true,editStart:_value=>true,editCommit:_value=>true,editCancel:_value=>true},slots:Object,setup(props,{attrs,emit,slots}){const element=shallowRef();const connection=shallowRef();let connectionOwner;const localValue=shallowRef(props.modelValue!==void 0?props.modelValue:props.defaultValue);const localHighlight=shallowRef(props.highlightedValue!==void 0?props.highlightedValue:props.defaultHighlightedValue);const localEditMode=shallowRef(props.editMode??props.defaultEditMode);const controlled={value:useControlledStateInvariant("GridRoot","modelValue",()=>props.modelValue),highlighted:useControlledStateInvariant("GridRoot","highlightedValue",()=>props.highlightedValue),editMode:useControlledStateInvariant("GridRoot","editMode",()=>props.editMode)};const state=computed(()=>Object.freeze({value:props.modelValue!==void 0?props.modelValue:localValue.value,highlightedValue:props.highlightedValue!==void 0?props.highlightedValue:localHighlight.value,editMode:props.editMode??localEditMode.value,disabled:props.disabled,readonly:props.readonly}));const refreshParts=()=>{if(element.value===void 0||connection.value===void 0)return;element.value.querySelectorAll("[data-sectile-grid-cell]").forEach(node=>{const id=node.dataset["sectileGridCell"];if(id!==void 0)connection.value?.setCellAttributes(node,id,{disabled:node.dataset["sectileGridItemDisabled"]!==void 0})})};const refresh=()=>{const snapshot=connection.value?.getSnapshot().state;if(snapshot===void 0)return;localValue.value=snapshot.selection.selected[0]??null;localHighlight.value=snapshot.cursor.current;localEditMode.value=snapshot.editMode;refreshParts()};const connect=()=>{const nextOwner=snapshotGridConnectionOwner(props);if(connection.value!==void 0&&connectionOwner!==void 0&&sameGridConnectionOwner(connectionOwner,nextOwner))return;connection.value?.disconnect();if(element.value===void 0)return;const items=nextOwner.rows.flatMap(row=>row.filter(id=>id!==null));const requestedValue=controlled.value?props.modelValue:localValue.value;const requestedHighlight=controlled.highlighted?props.highlightedValue:localHighlight.value;const reconciled=reconcileCollectionState(items,requestedValue===null?[]:[requestedValue],requestedHighlight,nextOwner.disabledItems,"single",{preserveNullCurrent:true});const value=reconciled.selected[0]??null;const requestedEditMode=controlled.editMode?props.editMode:localEditMode.value;const editMode=reconciled.current===null&&requestedEditMode==="editing"?"navigation":requestedEditMode;localValue.value=value;localHighlight.value=reconciled.current;localEditMode.value=editMode;if(controlled.value&&requestedValue!==value)emit("update:modelValue",value);if(controlled.highlighted&&requestedHighlight!==reconciled.current)emit("update:highlightedValue",reconciled.current);if(controlled.editMode&&props.editMode!==editMode)emit("update:editMode",editMode);connection.value=createGridControl({root:element.value,rows:nextOwner.rows,...controlled.value?{value}:{defaultValue:value},...controlled.highlighted?{highlightedValue:reconciled.current}:{defaultHighlightedValue:reconciled.current},...controlled.editMode?{editMode}:{defaultEditMode:editMode},disabledItems:nextOwner.disabledItems,disabled:nextOwner.disabled,readOnly:nextOwner.readonly,...nextOwner.label===void 0?{}:{label:nextOwner.label},...props.policies===void 0?{}:{policies:props.policies},onValueChange:value2=>{localValue.value=value2;emit("update:modelValue",value2)},onHighlightedValueChange:value2=>{localHighlight.value=value2;emit("update:highlightedValue",value2)},onEditModeChange:value2=>{localEditMode.value=value2;emit("update:editMode",value2)},onEditStart:id=>emit("editStart",id),onEditCommit:id=>emit("editCommit",id),onEditCancel:id=>emit("editCancel",id),onUpdate:refresh});connectionOwner=nextOwner;refreshParts();refresh()};const disabledItems=computed(()=>new Set(props.disabledItems));provide(key,{state,disabledItems,registerCell:(node,id,disabled)=>connection.value?.setCellAttributes(node,id,{disabled})});onMounted(connect);onBeforeUnmount(()=>connection.value?.disconnect());watch([()=>props.rows,()=>props.disabledItems,()=>props.disabled,()=>props.readonly,()=>props.label,()=>props.policies],connect);watch([()=>props.modelValue,()=>props.highlightedValue,()=>props.editMode],()=>{if(connection.value===void 0)return;const result=connection.value.syncControlledValues({...controlled.value?{value:props.modelValue}:{},...controlled.highlighted?{highlightedValue:props.highlightedValue}:{},...controlled.editMode?{editMode:props.editMode}:{}});if(!result.ok)throw new TypeError(result.error.message);refresh()});return()=>h(Primitive,mergeProps(attrs,{as:props.as,asChild:props.asChild,elementRef:node=>{element.value=node instanceof HTMLElement?node:void 0},"data-scope":"grid","data-part":"root","data-edit-mode":state.value.editMode}),{default:()=>slots["default"]?.(state.value)})}});const GridRow=defineComponent({name:"SectileGridRow",inheritAttrs:false,props:partProps,slots:Object,setup(props,{attrs,slots}){const root=useRoot("GridRow");return()=>h(Primitive,mergeProps(attrs,{as:props.as,asChild:props.asChild,role:"row","data-scope":"grid","data-part":"row"}),{default:()=>slots["default"]?.(root.state.value)})}});const GridCell=defineComponent({name:"SectileGridCell",inheritAttrs:false,props:{value:{type:String,required:true},disabled:{type:Boolean,default:false},...partProps},slots:Object,setup(props,{attrs,slots}){const root=useRoot("GridCell");const state=computed(()=>({...root.state.value,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)}));return()=>h(Primitive,mergeProps(attrs,{as:props.as,asChild:props.asChild,elementRef:node=>{if(node instanceof HTMLElement)root.registerCell(node,props.value,props.disabled)},"data-sectile-grid-cell":props.value,"data-sectile-grid-item-disabled":props.disabled?"":void 0,"data-scope":"grid","data-part":"cell","data-selected":state.value.selected?"":void 0,"data-highlighted":state.value.highlighted?"":void 0,"data-disabled":state.value.disabled?"":void 0}),{default:()=>slots["default"]?.(state.value)})}});function useRoot(part){const root=inject(key);if(root===void 0)throw new TypeError(`${part} must be used inside GridRoot.`);return root}function snapshotGridConnectionOwner(props){return Object.freeze({rows:Object.freeze(props.rows.map(row=>Object.freeze([...row]))),disabledItems:Object.freeze([...props.disabledItems]),disabled:props.disabled,readonly:props.readonly,label:props.label,eligible:props.policies?.eligible,boundary:props.policies?.boundary,maxScan:props.policies?.maxScan})}function sameGridConnectionOwner(left,right){if(left.rows.length!==right.rows.length||!sameIDRows(left.rows,right.rows)||!sameIDs(left.disabledItems,right.disabledItems)||left.disabled!==right.disabled||left.readonly!==right.readonly||left.label!==right.label||left.eligible!==right.eligible||left.boundary!==right.boundary||left.maxScan!==right.maxScan)return false;return true}function sameIDRows(left,right){for(let row=0;row<left.length;row+=1){const leftRow=left[row];const rightRow=right[row];if(leftRow.length!==rightRow.length)return false;for(let column=0;column<leftRow.length;column+=1){if(leftRow[column]!==rightRow[column])return false}}return true}export{GridCell,GridRoot,GridRow};
1
+ import{computed,defineComponent,h,inject,mergeProps,onBeforeUnmount,onMounted,provide,shallowRef,watch}from"vue";import{createGridControl}from"@sectile/dom/grid";import{Primitive}from"./primitive.js";import{reconcileCollectionState,sameIDs}from"./internal/collection.js";import{useControlledStateInvariant}from"./internal/controlled-state.js";const key=Symbol("SectileGridRoot");const partProps={as:{type:[String,Object,Function],default:"div"},asChild:{type:Boolean,default:false}};const GridRoot=defineComponent({name:"SectileGridRoot",inheritAttrs:false,props:{rows:{type:Array,required:true},modelValue:{type:String,default:void 0},defaultValue:{type:String,default:null},highlightedValue:{type:String,default:void 0},defaultHighlightedValue:{type:String,default:null},editMode:{type:String,default:void 0},defaultEditMode:{type:String,default:"navigation"},disabledItems:{type:Array,default:()=>[]},disabled:{type:Boolean,default:false},readonly:{type:Boolean,default:false},label:{type:String,default:void 0},policies:{type:Object,default:void 0},as:{type:[String,Object,Function],default:"div"},asChild:{type:Boolean,default:false}},emits:{"update:modelValue":_value=>true,"update:highlightedValue":_value=>true,"update:editMode":_value=>true,editStart:_value=>true,editCommit:_value=>true,editCancel:_value=>true},slots:Object,setup(props,{attrs,emit,slots}){const element=shallowRef();const connection=shallowRef();let connectionOwner;const localValue=shallowRef(props.modelValue!==void 0?props.modelValue:props.defaultValue);const localHighlight=shallowRef(props.highlightedValue!==void 0?props.highlightedValue:props.defaultHighlightedValue);const localEditMode=shallowRef(props.editMode??props.defaultEditMode);const controlled={value:useControlledStateInvariant("GridRoot","modelValue",()=>props.modelValue),highlighted:useControlledStateInvariant("GridRoot","highlightedValue",()=>props.highlightedValue),editMode:useControlledStateInvariant("GridRoot","editMode",()=>props.editMode)};const state=computed(()=>Object.freeze({value:props.modelValue!==void 0?props.modelValue:localValue.value,highlightedValue:props.highlightedValue!==void 0?props.highlightedValue:localHighlight.value,editMode:props.editMode??localEditMode.value,disabled:props.disabled,readonly:props.readonly}));const refreshParts=()=>{if(element.value===void 0||connection.value===void 0)return;element.value.querySelectorAll("[data-sectile-grid-cell]").forEach(node=>{const id=node.dataset["sectileGridCell"];if(id!==void 0)connection.value?.setCellAttributes(node,id,{disabled:node.dataset["sectileGridItemDisabled"]!==void 0})})};const refresh=()=>{const snapshot=connection.value?.getSnapshot().state;if(snapshot===void 0)return;localValue.value=snapshot.selection.selected[0]??null;localHighlight.value=snapshot.cursor.current;localEditMode.value=snapshot.editMode};const connect=()=>{const nextOwner=snapshotGridConnectionOwner(props);if(connection.value!==void 0&&connectionOwner!==void 0&&sameGridConnectionOwner(connectionOwner,nextOwner))return;connection.value?.disconnect();if(element.value===void 0)return;const items=nextOwner.rows.flatMap(row=>row.filter(id=>id!==null));const requestedValue=controlled.value?props.modelValue:localValue.value;const requestedHighlight=controlled.highlighted?props.highlightedValue:localHighlight.value;const reconciled=reconcileCollectionState(items,requestedValue===null?[]:[requestedValue],requestedHighlight,nextOwner.disabledItems,"single",{preserveNullCurrent:true});const value=reconciled.selected[0]??null;const requestedEditMode=controlled.editMode?props.editMode:localEditMode.value;const editMode=reconciled.current===null&&requestedEditMode==="editing"?"navigation":requestedEditMode;localValue.value=value;localHighlight.value=reconciled.current;localEditMode.value=editMode;if(controlled.value&&requestedValue!==value)emit("update:modelValue",value);if(controlled.highlighted&&requestedHighlight!==reconciled.current)emit("update:highlightedValue",reconciled.current);if(controlled.editMode&&props.editMode!==editMode)emit("update:editMode",editMode);connection.value=createGridControl({root:element.value,rows:nextOwner.rows,...controlled.value?{value}:{defaultValue:value},...controlled.highlighted?{highlightedValue:reconciled.current}:{defaultHighlightedValue:reconciled.current},...controlled.editMode?{editMode}:{defaultEditMode:editMode},disabledItems:nextOwner.disabledItems,disabled:nextOwner.disabled,readOnly:nextOwner.readonly,...nextOwner.label===void 0?{}:{label:nextOwner.label},...props.policies===void 0?{}:{policies:props.policies},onValueChange:value2=>{localValue.value=value2;emit("update:modelValue",value2)},onHighlightedValueChange:value2=>{localHighlight.value=value2;emit("update:highlightedValue",value2)},onEditModeChange:value2=>{localEditMode.value=value2;emit("update:editMode",value2)},onEditStart:id=>emit("editStart",id),onEditCommit:id=>emit("editCommit",id),onEditCancel:id=>emit("editCancel",id),onUpdate:refresh});connectionOwner=nextOwner;refreshParts();refresh()};const disabledItems=computed(()=>new Set(props.disabledItems));provide(key,{state,disabledItems,registerCell:(node,id,disabled)=>connection.value?.setCellAttributes(node,id,{disabled})});onMounted(connect);onBeforeUnmount(()=>connection.value?.disconnect());watch([()=>props.rows,()=>props.disabledItems,()=>props.disabled,()=>props.readonly,()=>props.label,()=>props.policies],connect);watch([()=>props.modelValue,()=>props.highlightedValue,()=>props.editMode],()=>{if(connection.value===void 0)return;const result=connection.value.syncControlledValues({...controlled.value?{value:props.modelValue}:{},...controlled.highlighted?{highlightedValue:props.highlightedValue}:{},...controlled.editMode?{editMode:props.editMode}:{}});if(!result.ok)throw new TypeError(result.error.message);refresh()});return()=>h(Primitive,mergeProps(attrs,{as:props.as,asChild:props.asChild,elementRef:node=>{element.value=node instanceof HTMLElement?node:void 0},"data-scope":"grid","data-part":"root","data-edit-mode":state.value.editMode}),{default:()=>slots["default"]?.(state.value)})}});const GridRow=defineComponent({name:"SectileGridRow",inheritAttrs:false,props:partProps,slots:Object,setup(props,{attrs,slots}){const root=useRoot("GridRow");return()=>h(Primitive,mergeProps(attrs,{as:props.as,asChild:props.asChild,role:"row","data-scope":"grid","data-part":"row"}),{default:()=>slots["default"]?.(root.state.value)})}});const GridCell=defineComponent({name:"SectileGridCell",inheritAttrs:false,props:{value:{type:String,required:true},disabled:{type:Boolean,default:false},...partProps},slots:Object,setup(props,{attrs,slots}){const root=useRoot("GridCell");let registeredID=props.value;const register=node=>{if(registeredID!==props.value){root.registerCell(void 0,registeredID,false);registeredID=props.value}root.registerCell(node instanceof HTMLElement?node:void 0,registeredID,props.disabled)};onBeforeUnmount(()=>root.registerCell(void 0,registeredID,false));const state=computed(()=>({...root.state.value,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)}));return()=>h(Primitive,mergeProps(attrs,{as:props.as,asChild:props.asChild,elementRef:register,"data-sectile-grid-cell":props.value,"data-sectile-grid-item-disabled":props.disabled?"":void 0,"data-scope":"grid","data-part":"cell","data-selected":state.value.selected?"":void 0,"data-highlighted":state.value.highlighted?"":void 0,"data-disabled":state.value.disabled?"":void 0}),{default:()=>slots["default"]?.(state.value)})}});function useRoot(part){const root=inject(key);if(root===void 0)throw new TypeError(`${part} must be used inside GridRoot.`);return root}function snapshotGridConnectionOwner(props){return Object.freeze({rows:Object.freeze(props.rows.map(row=>Object.freeze([...row]))),disabledItems:Object.freeze([...props.disabledItems]),disabled:props.disabled,readonly:props.readonly,label:props.label,eligible:props.policies?.eligible,boundary:props.policies?.boundary,maxScan:props.policies?.maxScan})}function sameGridConnectionOwner(left,right){if(left.rows.length!==right.rows.length||!sameIDRows(left.rows,right.rows)||!sameIDs(left.disabledItems,right.disabledItems)||left.disabled!==right.disabled||left.readonly!==right.readonly||left.label!==right.label||left.eligible!==right.eligible||left.boundary!==right.boundary||left.maxScan!==right.maxScan)return false;return true}function sameIDRows(left,right){for(let row=0;row<left.length;row+=1){const leftRow=left[row];const rightRow=right[row];if(leftRow.length!==rightRow.length)return false;for(let column=0;column<leftRow.length;column+=1){if(leftRow[column]!==rightRow[column])return false}}return true}export{GridCell,GridRoot,GridRow};
2
2
  //# sourceMappingURL=grid.js.map
package/dist/grid.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/grid.ts"],"mappings":"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","names":["value"],"file":"grid.js"}
1
+ {"version":3,"sources":["../src/grid.ts"],"mappings":"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","names":["value"],"file":"grid.js"}
@@ -1,2 +1,2 @@
1
- import{Fragment,Teleport,computed,defineComponent,h,inject,mergeProps,nextTick,onBeforeUnmount,provide,ref,shallowRef,watch}from"vue";import{Primitive}from"../primitive.js";import{useHostDirection,useHostId,useHostPortalTarget}from"../host-provider.js";import{usePresence}from"./presence.js";import{useControlledStateInvariant}from"./controlled-state.js";function createPopupComponents(config){const contextKey=Symbol(`Sectile${config.scope}Root`);const useRoot=part=>{const context=inject(contextKey);if(context===void 0)throw new TypeError(`${part} must be used inside ${config.scope} Root.`);return context};const primitiveProps={as:{type:[String,Object,Function],default:"div"},asChild:{type:Boolean,default:false}};const buttonProps={as:{type:[String,Object,Function],default:"button"},asChild:{type:Boolean,default:false}};const Root=defineComponent({name:`Sectile${pascal(config.scope)}Root`,inheritAttrs:false,props:{open:{type:Boolean,default:void 0},defaultOpen:{type:Boolean,default:false},disabled:{type:Boolean,default:false},modal:{type:Boolean,default:config.modal},label:{type:String,default:void 0},initialFocus:{type:Object,default:void 0},autoFocus:{type:Boolean,default:true},restoreFocus:{type:Boolean,default:true},trapFocus:{type:Boolean,default:config.modal},closeOnInteractOutside:{type:Boolean,default:config.closeOnInteractOutside??false},interactOutsideExclusions:{type:Array,default:void 0},side:{type:String,default:config.defaultSide??"bottom"},position:{type:Boolean,default:true},swipeToDismiss:{type:Boolean,default:true},swipeThreshold:{type:Number,default:80},swipeVelocityThreshold:{type:Number,default:.5},align:{type:String,default:"center"},sideOffset:{type:Number,default:8},collisionPadding:{type:[Number,Object],default:8},collisionBoundary:{type:[String,Object],default:void 0},avoidCollisions:{type:Boolean,default:true},arrowPadding:{type:Number,default:8},hideWhenDetached:{type:Boolean,default:false},strategy:{type:String,default:"absolute"},tracking:{type:String,default:"events"},unmountOnExit:{type:Boolean,default:false}},emits:{"update:open":_open=>true,interactOutside:_event=>true},slots:Object,setup(props,{emit,slots}){const controlled=useControlledStateInvariant(`${config.scope}Root`,"open",()=>props.open);const localOpen=ref(controlled?props.open:props.defaultOpen);const trigger=shallowRef();const anchor=shallowRef();const arrow=shallowRef();const overlay=shallowRef();const handle=shallowRef();const content=shallowRef();const connection=shallowRef();const id=useHostId();const contentID=`sectile-${config.scope}-${id}-content`;const titleID=`sectile-${config.scope}-${id}-title`;const descriptionID=`sectile-${config.scope}-${id}-description`;const open=computed(()=>localOpen.value);const disabled=computed(()=>props.disabled);const modal=computed(()=>props.modal);const unmountOnExit=computed(()=>props.unmountOnExit);const label=computed(()=>props.label);const side=computed(()=>props.side);const position=computed(()=>props.position);const strategy=computed(()=>props.strategy);const update=()=>{if(connection.value===void 0)return;void connection.value.getSnapshot().revision};const disconnect=()=>{connection.value?.disconnect();connection.value=void 0};const connect=()=>{if(content.value===void 0)return;disconnect();connection.value=config.create({root:content.value,...trigger.value===void 0?{}:{trigger:trigger.value},...anchor.value===void 0?{}:{anchor:anchor.value},...arrow.value===void 0?{}:{arrow:arrow.value},...overlay.value===void 0?{}:{overlay:overlay.value},...handle.value===void 0?{}:{handle:handle.value},...controlled?{open:props.open}:{defaultOpen:localOpen.value},disabled:props.disabled,modal:props.modal,...props.label===void 0?{labelledBy:titleID}:{label:props.label},describedBy:descriptionID,...props.initialFocus===void 0?{}:{initialFocus:props.initialFocus},autoFocus:props.autoFocus,restoreFocus:props.restoreFocus,trapFocus:props.trapFocus,closeOnInteractOutside:props.closeOnInteractOutside,...props.interactOutsideExclusions===void 0?{}:{interactOutsideExclusions:props.interactOutsideExclusions},side:props.side,...config.positioned===true?{position:props.position}:{},swipeToDismiss:props.swipeToDismiss,swipeThreshold:props.swipeThreshold,swipeVelocityThreshold:props.swipeVelocityThreshold,align:props.align,sideOffset:props.sideOffset,collisionPadding:props.collisionPadding,...props.collisionBoundary===void 0?{}:{collisionBoundary:props.collisionBoundary},avoidCollisions:props.avoidCollisions,arrowPadding:props.arrowPadding,hideWhenDetached:props.hideWhenDetached,strategy:props.strategy,tracking:props.tracking,manageVisibility:false,onOpenChange:next=>{if(!controlled)localOpen.value=next;emit("update:open",next)},onInteractOutside:event=>{emit("interactOutside",event)},onUpdate:update});update()};let connectScheduled=false;let destroyed=false;const scheduleConnect=()=>{if(connectScheduled||destroyed||props.unmountOnExit&&!localOpen.value)return;connectScheduled=true;void nextTick(()=>{connectScheduled=false;if(!destroyed)connect()})};const elements={trigger,anchor,arrow,overlay,handle,content};const registerElement=(part,element)=>{const target=elements[part];if(target.value===element)return;target.value=element;if(content.value===void 0)disconnect();else scheduleConnect()};const activateTrigger=event=>{if(event?.defaultPrevented===true||connection.value!==void 0||props.disabled||localOpen.value)return;if(!controlled)localOpen.value=true;emit("update:open",true)};const deactivateTrigger=event=>{if(event?.defaultPrevented===true||connection.value!==void 0||!localOpen.value)return;if(!controlled)localOpen.value=false;emit("update:open",false)};watch(()=>props.open,next=>{if(!controlled||next===void 0)return;if(connection.value===void 0){localOpen.value=next;return}const result=connection.value.syncControlledValue(next);if(!result.ok)throw new TypeError(`${config.scope} controlled open state could not be synchronized.`);localOpen.value=next});watch([()=>props.disabled,()=>props.modal,()=>props.label,()=>props.initialFocus,()=>props.autoFocus,()=>props.restoreFocus,()=>props.trapFocus,()=>props.closeOnInteractOutside,()=>props.interactOutsideExclusions,()=>props.side,()=>props.position,()=>props.swipeToDismiss,()=>props.swipeThreshold,()=>props.swipeVelocityThreshold,()=>props.align,()=>props.sideOffset,()=>props.collisionPadding,()=>props.collisionBoundary,()=>props.avoidCollisions,()=>props.arrowPadding,()=>props.hideWhenDetached,()=>props.strategy,()=>props.tracking],connect);onBeforeUnmount(()=>{destroyed=true;disconnect()});provide(contextKey,{open,disabled,modal,unmountOnExit,label,contentID,titleID,descriptionID,side,position,strategy,registerElement,activateTrigger,deactivateTrigger,close:()=>{connection.value?.handleEvent("close")},refresh:()=>{connection.value?.refresh()}});return()=>h(Fragment,null,slots["default"]?.({open:open.value,disabled:props.disabled})??[])}});const Trigger=defineComponent({name:`Sectile${pascal(config.scope)}Trigger`,inheritAttrs:false,props:buttonProps,setup(props,{attrs,slots}){const root=useRoot("Trigger");return()=>h(Primitive,mergeProps(attrs,{as:props.as,asChild:props.asChild,elementRef:element=>{root.registerElement("trigger",element instanceof HTMLElement?element:void 0)},...config.triggerMode==="click"?{onClick:root.activateTrigger}:{onFocus:root.activateTrigger,onBlur:root.deactivateTrigger,onMouseenter:root.activateTrigger,onMouseleave:root.deactivateTrigger},type:props.as==="button"?"button":void 0,disabled:root.disabled.value,"aria-haspopup":config.role==="tooltip"?void 0:"dialog","aria-expanded":config.triggerMode==="click"?String(root.open.value):void 0,"aria-controls":config.role==="tooltip"?void 0:root.contentID,"aria-describedby":config.role==="tooltip"?root.contentID:void 0,"data-scope":config.scope,"data-part":"trigger","data-state":root.open.value?"open":"closed"}),slots)}});const Content=defineComponent({name:`Sectile${pascal(config.scope)}Content`,inheritAttrs:false,props:primitiveProps,setup(props,{attrs,slots}){const root=useRoot("Content");const direction=useHostDirection();const element=shallowRef();const present=usePresence(root.open,element);watch(present,async()=>{await nextTick();root.refresh()},{flush:"post"});return()=>{if(root.unmountOnExit.value&&!present.value)return null;const exiting=!root.open.value&&present.value;return h(Primitive,mergeProps(attrs,{as:props.as,asChild:props.asChild,elementRef:candidate=>{const node=candidate instanceof HTMLElement?candidate:void 0;element.value=node;root.registerElement("content",node)},id:root.contentID,role:config.role,hidden:!present.value,dir:direction.value,...exiting?{inert:true,"aria-hidden":"true"}:{},style:config.positioned===true&&root.position.value?{position:root.strategy.value,visibility:element.value===void 0?"hidden":void 0}:void 0,"aria-modal":config.role==="tooltip"?void 0:String(root.modal.value),"aria-label":root.label.value,"aria-labelledby":root.label.value===void 0?root.titleID:void 0,"aria-describedby":root.descriptionID,"data-scope":config.scope,"data-part":"content","data-state":root.open.value?"open":"closed","data-side":config.directional===true?root.side.value:void 0,"data-swipe-direction":config.directional===true?swipeDirection(root.side.value):void 0}),slots)}}});const Anchor=defineComponent({name:`Sectile${pascal(config.scope)}Anchor`,inheritAttrs:false,props:primitiveProps,setup(props,{attrs,slots}){const root=useRoot("Anchor");return()=>h(Primitive,mergeProps(attrs,{as:props.as,asChild:props.asChild,elementRef:element=>{root.registerElement("anchor",element instanceof HTMLElement?element:void 0)},"data-scope":config.scope,"data-part":"anchor"}),slots)}});const Arrow=defineComponent({name:`Sectile${pascal(config.scope)}Arrow`,inheritAttrs:false,props:primitiveProps,setup(props,{attrs,slots}){const root=useRoot("Arrow");return()=>h(Primitive,mergeProps(attrs,{as:props.as,asChild:props.asChild,elementRef:element=>{root.registerElement("arrow",element instanceof HTMLElement?element:void 0)},"aria-hidden":"true","data-scope":config.scope,"data-part":"arrow"}),slots)}});const Overlay=defineComponent({name:`Sectile${pascal(config.scope)}Overlay`,inheritAttrs:false,props:primitiveProps,setup(props,{attrs,slots}){const root=useRoot("Overlay");const element=shallowRef();const present=usePresence(root.open,element);return()=>{if(root.unmountOnExit.value&&!present.value)return null;const exiting=!root.open.value&&present.value;return h(Primitive,mergeProps(attrs,{as:props.as,asChild:props.asChild,elementRef:candidate=>{const node=candidate instanceof HTMLElement?candidate:void 0;element.value=node;root.registerElement("overlay",node)},hidden:!present.value,"aria-hidden":"true",...exiting?{inert:true}:{},"data-scope":config.scope,"data-part":"overlay","data-state":root.open.value?"open":"closed","data-side":config.directional===true?root.side.value:void 0,"data-swipe-direction":config.directional===true?swipeDirection(root.side.value):void 0}),slots)}}});const Handle=defineComponent({name:`Sectile${pascal(config.scope)}Handle`,inheritAttrs:false,props:primitiveProps,setup(props,{attrs,slots}){const root=useRoot("Handle");return()=>h(Primitive,mergeProps(attrs,{as:props.as,asChild:props.asChild,elementRef:candidate=>{root.registerElement("handle",candidate instanceof HTMLElement?candidate:void 0)},"aria-hidden":"true","data-scope":config.scope,"data-part":"handle","data-state":root.open.value?"open":"closed","data-side":config.directional===true?root.side.value:void 0,"data-swipe-direction":config.directional===true?swipeDirection(root.side.value):void 0}),slots)}});const Title=createLabelPart("Title","title",root=>root.titleID);const Description=createLabelPart("Description","description",root=>root.descriptionID);const Close=defineComponent({name:`Sectile${pascal(config.scope)}Close`,inheritAttrs:false,props:buttonProps,setup(props,{attrs,slots}){const root=useRoot("Close");return()=>h(Primitive,mergeProps(attrs,{as:props.as,asChild:props.asChild,type:props.as==="button"?"button":void 0,"data-scope":config.scope,"data-part":"close",onClick:root.close}),slots)}});const Portal=defineComponent({name:`Sectile${pascal(config.scope)}Portal`,inheritAttrs:false,props:{to:{type:[String,Object],default:void 0},disabled:{type:Boolean,default:false},defer:{type:Boolean,default:false}},setup(props,{slots}){const portalTarget=useHostPortalTarget();return()=>h(Teleport,{to:props.to??portalTarget.value??"body",disabled:props.disabled,defer:props.defer},slots["default"]?.())}});function createLabelPart(name,part,id){return defineComponent({name:`Sectile${pascal(config.scope)}${name}`,inheritAttrs:false,props:primitiveProps,setup(props,{attrs,slots}){const root=useRoot(name);return()=>h(Primitive,mergeProps(attrs,{as:props.as,asChild:props.asChild,id:id(root),"data-scope":config.scope,"data-part":part}),slots)}})}return Object.freeze({Root,Trigger,Anchor,Portal,Overlay,Content,Handle,Title,Description,Close,Arrow})}function pascal(value){return value.split("-").map(part=>part[0]?.toUpperCase()+part.slice(1)).join("")}function swipeDirection(side){return side==="top"?"up":side==="bottom"?"down":side}export{createPopupComponents};
1
+ import{Fragment,Teleport,computed,defineComponent,h,inject,mergeProps,nextTick,onBeforeUnmount,provide,ref,shallowRef,watch}from"vue";import{Primitive}from"../primitive.js";import{useHostDirection,useHostId,useHostPortalTarget}from"../host-provider.js";import{usePresence}from"./presence.js";import{useControlledStateInvariant}from"./controlled-state.js";function createPopupComponents(config){const contextKey=Symbol(`Sectile${config.scope}Root`);const useRoot=part=>{const context=inject(contextKey);if(context===void 0)throw new TypeError(`${part} must be used inside ${config.scope} Root.`);return context};const primitiveProps={as:{type:[String,Object,Function],default:"div"},asChild:{type:Boolean,default:false}};const buttonProps={as:{type:[String,Object,Function],default:"button"},asChild:{type:Boolean,default:false}};const Root=defineComponent({name:`Sectile${pascal(config.scope)}Root`,inheritAttrs:false,props:{open:{type:Boolean,default:void 0},defaultOpen:{type:Boolean,default:false},disabled:{type:Boolean,default:false},modal:{type:Boolean,default:config.modal},label:{type:String,default:void 0},initialFocus:{type:Object,default:void 0},autoFocus:{type:Boolean,default:true},restoreFocus:{type:Boolean,default:true},trapFocus:{type:Boolean,default:config.modal},closeOnInteractOutside:{type:Boolean,default:config.closeOnInteractOutside??false},interactOutsideExclusions:{type:Array,default:void 0},side:{type:String,default:config.defaultSide??"bottom"},position:{type:Boolean,default:true},swipeToDismiss:{type:Boolean,default:true},swipeThreshold:{type:Number,default:80},swipeVelocityThreshold:{type:Number,default:.5},align:{type:String,default:"center"},sideOffset:{type:Number,default:8},collisionPadding:{type:[Number,Object],default:8},collisionBoundary:{type:[String,Object],default:void 0},avoidCollisions:{type:Boolean,default:true},arrowPadding:{type:Number,default:8},hideWhenDetached:{type:Boolean,default:false},strategy:{type:String,default:"absolute"},tracking:{type:String,default:"events"},unmountOnExit:{type:Boolean,default:false}},emits:{"update:open":_open=>true,interactOutside:_event=>true},slots:Object,setup(props,{emit,slots}){const controlled=useControlledStateInvariant(`${config.scope}Root`,"open",()=>props.open);const localOpen=ref(controlled?props.open:props.defaultOpen);const trigger=shallowRef();const anchor=shallowRef();const arrow=shallowRef();const overlay=shallowRef();const handle=shallowRef();const content=shallowRef();const connection=shallowRef();const id=useHostId();const contentID=`sectile-${config.scope}-${id}-content`;const titleID=`sectile-${config.scope}-${id}-title`;const descriptionID=`sectile-${config.scope}-${id}-description`;const open=computed(()=>localOpen.value);const disabled=computed(()=>props.disabled);const modal=computed(()=>props.modal);const unmountOnExit=computed(()=>props.unmountOnExit);const label=computed(()=>props.label);const side=computed(()=>props.side);const position=computed(()=>props.position);const strategy=computed(()=>props.strategy);const update=()=>{if(connection.value===void 0)return;void connection.value.getSnapshot().revision};const disconnect=()=>{connection.value?.disconnect();connection.value=void 0};const connect=()=>{if(content.value===void 0)return;disconnect();connection.value=config.create({root:content.value,...trigger.value===void 0?{}:{trigger:trigger.value},...anchor.value===void 0?{}:{anchor:anchor.value},...arrow.value===void 0?{}:{arrow:arrow.value},...overlay.value===void 0?{}:{overlay:overlay.value},...handle.value===void 0?{}:{handle:handle.value},...controlled?{open:props.open}:{defaultOpen:localOpen.value},disabled:props.disabled,modal:props.modal,...props.label===void 0?{labelledBy:titleID}:{label:props.label},describedBy:descriptionID,...props.initialFocus===void 0?{}:{initialFocus:props.initialFocus},autoFocus:props.autoFocus,restoreFocus:props.restoreFocus,trapFocus:props.trapFocus,closeOnInteractOutside:props.closeOnInteractOutside,...props.interactOutsideExclusions===void 0?{}:{interactOutsideExclusions:props.interactOutsideExclusions},side:props.side,...config.positioned===true?{position:props.position}:{},swipeToDismiss:props.swipeToDismiss,swipeThreshold:props.swipeThreshold,swipeVelocityThreshold:props.swipeVelocityThreshold,align:props.align,sideOffset:props.sideOffset,collisionPadding:props.collisionPadding,...props.collisionBoundary===void 0?{}:{collisionBoundary:props.collisionBoundary},avoidCollisions:props.avoidCollisions,arrowPadding:props.arrowPadding,hideWhenDetached:props.hideWhenDetached,strategy:props.strategy,tracking:props.tracking,manageVisibility:false,onOpenChange:next=>{if(!controlled)localOpen.value=next;emit("update:open",next)},onInteractOutside:event=>{emit("interactOutside",event)},onUpdate:update});update()};let connectScheduled=false;let destroyed=false;const scheduleConnect=()=>{if(connectScheduled||destroyed||props.unmountOnExit&&!localOpen.value)return;connectScheduled=true;void nextTick(()=>{connectScheduled=false;if(!destroyed)connect()})};const elements={trigger,anchor,arrow,overlay,handle,content};const registerElement=(part,element)=>{const target=elements[part];if(target.value===element)return;target.value=element;if(content.value===void 0)disconnect();else scheduleConnect()};const activateTrigger=event=>{if(event?.defaultPrevented===true||connection.value!==void 0||props.disabled||localOpen.value)return;if(!controlled)localOpen.value=true;emit("update:open",true)};const deactivateTrigger=event=>{if(event?.defaultPrevented===true||connection.value!==void 0||!localOpen.value)return;if(!controlled)localOpen.value=false;emit("update:open",false)};watch(()=>props.open,next=>{if(!controlled||next===void 0)return;if(connection.value===void 0){localOpen.value=next;return}const result=connection.value.syncControlledValue(next);if(!result.ok)throw new TypeError(`${config.scope} controlled open state could not be synchronized.`);localOpen.value=next});watch([()=>props.disabled,()=>props.modal,()=>props.label,()=>props.initialFocus,()=>props.autoFocus,()=>props.restoreFocus,()=>props.trapFocus,()=>props.closeOnInteractOutside,()=>props.interactOutsideExclusions,()=>props.side,()=>props.position,()=>props.swipeToDismiss,()=>props.swipeThreshold,()=>props.swipeVelocityThreshold,()=>props.align,()=>props.sideOffset,()=>props.collisionPadding,()=>props.collisionBoundary,()=>props.avoidCollisions,()=>props.arrowPadding,()=>props.hideWhenDetached,()=>props.strategy,()=>props.tracking],connect);onBeforeUnmount(()=>{destroyed=true;disconnect()});provide(contextKey,{open,disabled,modal,unmountOnExit,label,contentID,titleID,descriptionID,side,position,strategy,registerElement,activateTrigger,deactivateTrigger,close:()=>{connection.value?.handleEvent("close")},refresh:()=>{connection.value?.refresh()}});return()=>h(Fragment,null,slots["default"]?.({open:open.value,disabled:props.disabled})??[])}});const Trigger=defineComponent({name:`Sectile${pascal(config.scope)}Trigger`,inheritAttrs:false,props:buttonProps,setup(props,{attrs,slots}){const root=useRoot("Trigger");return()=>h(Primitive,mergeProps(attrs,{as:props.as,asChild:props.asChild,elementRef:element=>{root.registerElement("trigger",element instanceof HTMLElement?element:void 0)},...config.triggerMode==="click"?{onClick:root.activateTrigger}:{onFocus:root.activateTrigger,onBlur:root.deactivateTrigger,onMouseenter:root.activateTrigger,onMouseleave:root.deactivateTrigger},type:props.as==="button"?"button":void 0,disabled:root.disabled.value,"aria-haspopup":config.role==="tooltip"?void 0:"dialog","aria-expanded":config.triggerMode==="click"?String(root.open.value):void 0,"aria-controls":config.role==="tooltip"?void 0:root.contentID,"aria-describedby":config.role==="tooltip"?root.contentID:void 0,"data-scope":config.scope,"data-part":"trigger","data-state":root.open.value?"open":"closed"}),slots)}});const Content=defineComponent({name:`Sectile${pascal(config.scope)}Content`,inheritAttrs:false,props:primitiveProps,setup(props,{attrs,slots}){const root=useRoot("Content");const direction=useHostDirection();const element=shallowRef();const retainedReopen=shallowRef(0);const present=usePresence(root.open,element,()=>{retainedReopen.value+=1});const refreshAfterRender=async()=>{await nextTick();root.refresh()};watch(present,refreshAfterRender,{flush:"post"});watch(retainedReopen,refreshAfterRender,{flush:"post"});return()=>{if(root.unmountOnExit.value&&!present.value)return null;const exiting=!root.open.value&&present.value;return h(Primitive,mergeProps(attrs,{as:props.as,asChild:props.asChild,elementRef:candidate=>{const node=candidate instanceof HTMLElement?candidate:void 0;element.value=node;root.registerElement("content",node)},id:root.contentID,role:config.role,hidden:!present.value,dir:direction.value,...exiting?{inert:true,"aria-hidden":"true"}:{},style:config.positioned===true&&root.position.value?{position:root.strategy.value,visibility:element.value===void 0?"hidden":void 0}:void 0,"aria-modal":config.role==="tooltip"?void 0:String(root.modal.value),"aria-label":root.label.value,"aria-labelledby":root.label.value===void 0?root.titleID:void 0,"aria-describedby":root.descriptionID,"data-scope":config.scope,"data-part":"content","data-state":root.open.value?"open":"closed","data-side":config.directional===true?root.side.value:void 0,"data-swipe-direction":config.directional===true?swipeDirection(root.side.value):void 0}),slots)}}});const Anchor=defineComponent({name:`Sectile${pascal(config.scope)}Anchor`,inheritAttrs:false,props:primitiveProps,setup(props,{attrs,slots}){const root=useRoot("Anchor");return()=>h(Primitive,mergeProps(attrs,{as:props.as,asChild:props.asChild,elementRef:element=>{root.registerElement("anchor",element instanceof HTMLElement?element:void 0)},"data-scope":config.scope,"data-part":"anchor"}),slots)}});const Arrow=defineComponent({name:`Sectile${pascal(config.scope)}Arrow`,inheritAttrs:false,props:primitiveProps,setup(props,{attrs,slots}){const root=useRoot("Arrow");return()=>h(Primitive,mergeProps(attrs,{as:props.as,asChild:props.asChild,elementRef:element=>{root.registerElement("arrow",element instanceof HTMLElement?element:void 0)},"aria-hidden":"true","data-scope":config.scope,"data-part":"arrow"}),slots)}});const Overlay=defineComponent({name:`Sectile${pascal(config.scope)}Overlay`,inheritAttrs:false,props:primitiveProps,setup(props,{attrs,slots}){const root=useRoot("Overlay");const element=shallowRef();const present=usePresence(root.open,element);return()=>{if(root.unmountOnExit.value&&!present.value)return null;const exiting=!root.open.value&&present.value;return h(Primitive,mergeProps(attrs,{as:props.as,asChild:props.asChild,elementRef:candidate=>{const node=candidate instanceof HTMLElement?candidate:void 0;element.value=node;root.registerElement("overlay",node)},hidden:!present.value,"aria-hidden":"true",...exiting?{inert:true}:{},"data-scope":config.scope,"data-part":"overlay","data-state":root.open.value?"open":"closed","data-side":config.directional===true?root.side.value:void 0,"data-swipe-direction":config.directional===true?swipeDirection(root.side.value):void 0}),slots)}}});const Handle=defineComponent({name:`Sectile${pascal(config.scope)}Handle`,inheritAttrs:false,props:primitiveProps,setup(props,{attrs,slots}){const root=useRoot("Handle");return()=>h(Primitive,mergeProps(attrs,{as:props.as,asChild:props.asChild,elementRef:candidate=>{root.registerElement("handle",candidate instanceof HTMLElement?candidate:void 0)},"aria-hidden":"true","data-scope":config.scope,"data-part":"handle","data-state":root.open.value?"open":"closed","data-side":config.directional===true?root.side.value:void 0,"data-swipe-direction":config.directional===true?swipeDirection(root.side.value):void 0}),slots)}});const Title=createLabelPart("Title","title",root=>root.titleID);const Description=createLabelPart("Description","description",root=>root.descriptionID);const Close=defineComponent({name:`Sectile${pascal(config.scope)}Close`,inheritAttrs:false,props:buttonProps,setup(props,{attrs,slots}){const root=useRoot("Close");return()=>h(Primitive,mergeProps(attrs,{as:props.as,asChild:props.asChild,type:props.as==="button"?"button":void 0,"data-scope":config.scope,"data-part":"close",onClick:root.close}),slots)}});const Portal=defineComponent({name:`Sectile${pascal(config.scope)}Portal`,inheritAttrs:false,props:{to:{type:[String,Object],default:void 0},disabled:{type:Boolean,default:false},defer:{type:Boolean,default:false}},setup(props,{slots}){const portalTarget=useHostPortalTarget();return()=>h(Teleport,{to:props.to??portalTarget.value??"body",disabled:props.disabled,defer:props.defer},slots["default"]?.())}});function createLabelPart(name,part,id){return defineComponent({name:`Sectile${pascal(config.scope)}${name}`,inheritAttrs:false,props:primitiveProps,setup(props,{attrs,slots}){const root=useRoot(name);return()=>h(Primitive,mergeProps(attrs,{as:props.as,asChild:props.asChild,id:id(root),"data-scope":config.scope,"data-part":part}),slots)}})}return Object.freeze({Root,Trigger,Anchor,Portal,Overlay,Content,Handle,Title,Description,Close,Arrow})}function pascal(value){return value.split("-").map(part=>part[0]?.toUpperCase()+part.slice(1)).join("")}function swipeDirection(side){return side==="top"?"up":side==="bottom"?"down":side}export{createPopupComponents};
2
2
  //# sourceMappingURL=popup.js.map
@@ -1 +1 @@
1
- {"version":3,"sources":["../../src/internal/popup.ts"],"mappings":"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","names":[],"file":"popup.js"}
1
+ {"version":3,"sources":["../../src/internal/popup.ts"],"mappings":"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","names":[],"file":"popup.js"}
@@ -1,2 +1,2 @@
1
1
  import { type ComputedRef, type ShallowRef } from 'vue';
2
- export declare function usePresence(open: ComputedRef<boolean>, element: ShallowRef<HTMLElement | undefined>): ShallowRef<boolean>;
2
+ export declare function usePresence(open: ComputedRef<boolean>, element: ShallowRef<HTMLElement | undefined>, onRetainedReopen?: () => void): ShallowRef<boolean>;
@@ -1,2 +1,2 @@
1
- import{onBeforeUnmount,shallowRef,watch}from"vue";import{createPresence}from"@sectile/dom/presence";function usePresence(open,element){const present=shallowRef(open.value);const initialElement=element.value;const connection=createPresence({open:open.value,...initialElement===void 0?{}:{element:initialElement},onPresentChange:next=>{present.value=next}});watch(open,next=>{if(next)connection.update(true,element.value)},{flush:"sync"});watch([open,element],([next,node])=>{connection.update(next,node)},{flush:"post"});onBeforeUnmount(()=>{connection.disconnect()});return present}export{usePresence};
1
+ import{onBeforeUnmount,shallowRef,watch}from"vue";import{createPresence}from"@sectile/dom/presence";function usePresence(open,element,onRetainedReopen){const present=shallowRef(open.value);const initialElement=element.value;const connection=createPresence({open:open.value,...initialElement===void 0?{}:{element:initialElement},onPresentChange:next=>{present.value=next}});watch(open,(next,previous)=>{if(!next)return;const retainedReopen=previous===false&&connection.getPresent();connection.update(true,element.value);if(retainedReopen)onRetainedReopen?.()},{flush:"sync"});watch([open,element],([next,node])=>{connection.update(next,node)},{flush:"post"});onBeforeUnmount(()=>{connection.disconnect()});return present}export{usePresence};
2
2
  //# sourceMappingURL=presence.js.map
@@ -1 +1 @@
1
- {"version":3,"sources":["../../src/internal/presence.ts"],"mappings":"AAAA,OAAS,gBAAiB,WAAY,UAAgD,MACtF,OAAS,mBAAsB,wBAEzB,SAAU,YAAY,KAA4B,QAA4C,CAClG,MAAM,QAAU,WAAW,KAAK,KAAK,EACrC,MAAM,eAAiB,QAAQ,MAC/B,MAAM,WAAa,eAAe,CAChC,KAAM,KAAK,MACX,GAAI,iBAAmB,OAAY,CAAA,EAAK,CAAE,QAAS,cAAc,EACjE,gBAAkB,MAAQ,CAAG,QAAQ,MAAQ,IAAM,EACpD,EAED,MAAM,KAAO,MAAQ,CACnB,GAAI,KAAM,WAAW,OAAO,KAAM,QAAQ,KAAK,CACjD,EAAG,CAAE,MAAO,MAAM,CAAE,EACpB,MAAM,CAAC,KAAM,OAAO,EAAG,CAAC,CAAC,KAAM,IAAI,IAAK,CACtC,WAAW,OAAO,KAAM,IAAI,CAC9B,EAAG,CAAE,MAAO,MAAM,CAAE,EACpB,gBAAgB,IAAK,CAAG,WAAW,WAAU,CAAI,CAAC,EAClD,OAAO,OACT","names":[],"file":"presence.js"}
1
+ {"version":3,"sources":["../../src/internal/presence.ts"],"mappings":"AAAA,OAAS,gBAAiB,WAAY,UAAgD,MACtF,OAAS,mBAAsB,wBAEzB,SAAU,YACd,KACA,QACA,iBAA6B,CAE7B,MAAM,QAAU,WAAW,KAAK,KAAK,EACrC,MAAM,eAAiB,QAAQ,MAC/B,MAAM,WAAa,eAAe,CAChC,KAAM,KAAK,MACX,GAAI,iBAAmB,OAAY,CAAA,EAAK,CAAE,QAAS,cAAc,EACjE,gBAAkB,MAAQ,CAAG,QAAQ,MAAQ,IAAM,EACpD,EAED,MAAM,KAAM,CAAC,KAAM,WAAY,CAC7B,GAAI,CAAC,KAAM,OACX,MAAM,eAAiB,WAAa,OAAS,WAAW,WAAU,EAClE,WAAW,OAAO,KAAM,QAAQ,KAAK,EACrC,GAAI,eAAgB,mBAAkB,CACxC,EAAG,CAAE,MAAO,MAAM,CAAE,EACpB,MAAM,CAAC,KAAM,OAAO,EAAG,CAAC,CAAC,KAAM,IAAI,IAAK,CACtC,WAAW,OAAO,KAAM,IAAI,CAC9B,EAAG,CAAE,MAAO,MAAM,CAAE,EACpB,gBAAgB,IAAK,CAAG,WAAW,WAAU,CAAI,CAAC,EAClD,OAAO,OACT","names":[],"file":"presence.js"}
package/dist/menu.js CHANGED
@@ -1,2 +1,2 @@
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";import{usePresence}from"./internal/presence.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,manageVisibility:false,...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,refresh:()=>connection.value?.refresh(),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();const open=computed(()=>root.state.value.open);const present=usePresence(open,element);watch(present,async()=>{await nextTick();root.refresh()},{flush:"post"});return()=>{const exiting=!open.value&&present.value;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:!present.value,"aria-label":root.label.value,dir:root.direction.value,...exiting?{inert:true,"aria-hidden":"true"}:{},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":open.value?"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=>{root.registerItem(node instanceof HTMLElement?node:void 0,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");const element=shallowRef();const open=computed(()=>root.state.value.open&&root.state.value.openPath.includes(props.for));const present=usePresence(open,element);watch(present,async()=>{await nextTick();root.refresh()},{flush:"post"});return()=>{const exiting=!open.value&&present.value;return h(Primitive,mergeProps(attrs,{as:props.as,asChild:props.asChild,elementRef:node=>{const submenu=node instanceof HTMLElement?node:void 0;element.value=submenu;root.registerSubmenu(submenu,props.for)},role:root.kind==="navigation-menu"?void 0:"menu",hidden:!present.value,dir:root.direction.value,"data-sectile-submenu-for":props.for,...exiting?{inert:true,"aria-hidden":"true"}:{},"data-scope":root.kind==="navigation-menu"?"navigation-menu":"menu","data-part":"sub-content","data-state":open.value?"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";import{usePresence}from"./internal/presence.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};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,manageVisibility:false,...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,refresh:parentID=>connection.value?.refresh(parentID??null),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();const open=computed(()=>root.state.value.open);const present=useMenuPresence(open,element,root.refresh);return()=>{const exiting=!open.value&&present.value;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:!present.value,"aria-label":root.label.value,dir:root.direction.value,...exiting?{inert:true,"aria-hidden":"true"}:{},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":open.value?"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=>{root.registerItem(node instanceof HTMLElement?node:void 0,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");const element=shallowRef();const open=computed(()=>root.state.value.open&&root.state.value.openPath.includes(props.for));const present=useMenuPresence(open,element,()=>root.refresh(props.for));return()=>{const exiting=!open.value&&present.value;return h(Primitive,mergeProps(attrs,{as:props.as,asChild:props.asChild,elementRef:node=>{const submenu=node instanceof HTMLElement?node:void 0;element.value=submenu;root.registerSubmenu(submenu,props.for)},role:root.kind==="navigation-menu"?void 0:"menu",hidden:!present.value,dir:root.direction.value,"data-sectile-submenu-for":props.for,...exiting?{inert:true,"aria-hidden":"true"}:{},"data-scope":root.kind==="navigation-menu"?"navigation-menu":"menu","data-part":"sub-content","data-state":open.value?"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 useMenuPresence(open,element,refresh){const retainedReopen=shallowRef(0);const present=usePresence(open,element,()=>{retainedReopen.value+=1});watch([present,retainedReopen],async(_next,_previous,onCleanup)=>{let active=true;onCleanup(()=>{active=false});await nextTick();if(active)refresh()},{flush:"post"});return present}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/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@sectile/vue",
3
- "version": "0.16.0",
3
+ "version": "0.16.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.2",
418
- "@sectile/dom": "^0.16.0"
417
+ "@sectile/core": "^0.14.3",
418
+ "@sectile/dom": "^0.16.2"
419
419
  },
420
420
  "peerDependencies": {
421
- "@sectile/chart": "^0.15.0",
422
- "@sectile/form": "^0.14.2",
423
- "@sectile/tabular": "^0.15.0",
424
- "@sectile/virtual": "^0.15.0",
421
+ "@sectile/chart": "^0.15.2",
422
+ "@sectile/form": "^0.14.3",
423
+ "@sectile/tabular": "^0.15.1",
424
+ "@sectile/virtual": "^0.15.1",
425
425
  "vue": "^3.5.0",
426
- "@sectile/temporal": "^0.14.2"
426
+ "@sectile/temporal": "^0.14.3"
427
427
  },
428
428
  "peerDependenciesMeta": {
429
429
  "@sectile/chart": {
@@ -443,10 +443,11 @@
443
443
  }
444
444
  },
445
445
  "devDependencies": {
446
- "@sectile/chart": "0.15.0",
447
- "@sectile/form": "0.14.2",
448
- "@sectile/tabular": "0.15.0",
449
- "@sectile/virtual": "0.15.0",
446
+ "@sectile/tooling": "0.0.0",
447
+ "@sectile/chart": "0.15.2",
448
+ "@sectile/form": "0.14.3",
449
+ "@sectile/tabular": "0.15.1",
450
+ "@sectile/virtual": "0.15.1",
450
451
  "@vue/server-renderer": "^3.5.0",
451
452
  "happy-dom": "^20.11.6",
452
453
  "typescript": "7.0.2",
@@ -454,20 +455,20 @@
454
455
  "vite": "5.4.21",
455
456
  "vue": "^3.5.0",
456
457
  "vue-tsc": "^3.0.6",
457
- "@sectile/temporal": "0.14.2"
458
+ "@sectile/temporal": "0.14.3"
458
459
  },
459
460
  "scripts": {
460
- "build": "node scripts/build.mjs production",
461
- "build:verification": "node scripts/build.mjs verification",
461
+ "build": "sectile-build production",
462
+ "build:verification": "sectile-build verification",
462
463
  "benchmark:collections": "pnpm --silent run build && node benchmarks/collection-reconciliation.mjs",
463
464
  "benchmark:chart": "pnpm --silent run build && node benchmarks/chart-reconciliation.mjs",
464
465
  "check:controlled-reconciliation": "node scripts/check-controlled-reconciliation.mjs",
465
466
  "check:hydration-contract": "node scripts/check-hydration-contract.mjs",
466
467
  "serve:browser-verification": "pnpm --silent run build && node scripts/serve-browser-verification.mjs",
467
- "typecheck": "node node_modules/typescript/lib/tsc.js --project tsconfig.json --pretty false",
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",
468
+ "typecheck": "tsc --project tsconfig.json --pretty false",
469
+ "typecheck:public": "pnpm --silent run build && pnpm --silent run typecheck:public:prepared",
470
+ "typecheck:public:prepared": "tsc --project type-tests/tsconfig.json --pretty false && sectile-typecheck-sfc --project type-tests/tsconfig.vue.json --noEmit",
470
471
  "test": "pnpm --silent run build:verification && node --test --test-concurrency=4 tests/*.test.mjs",
471
- "verify:reproducible-build": "node scripts/check-reproducible-build.mjs"
472
+ "verify:reproducible-build": "sectile-check-build"
472
473
  }
473
474
  }