@sectile/vue 0.17.0 → 0.18.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (80) hide show
  1. package/dist/accordion.d.ts +12 -0
  2. package/dist/accordion.js +1 -1
  3. package/dist/accordion.js.map +1 -1
  4. package/dist/carousel.d.ts +13 -0
  5. package/dist/carousel.js +1 -1
  6. package/dist/carousel.js.map +1 -1
  7. package/dist/cascade-list.d.ts +11 -1
  8. package/dist/cascade-list.js +1 -1
  9. package/dist/cascade-list.js.map +1 -1
  10. package/dist/cascade-select.d.ts +11 -1
  11. package/dist/cascade-select.js +1 -1
  12. package/dist/cascade-select.js.map +1 -1
  13. package/dist/checkbox-group.d.ts +9 -0
  14. package/dist/checkbox.d.ts +11 -1
  15. package/dist/checkbox.js +1 -1
  16. package/dist/checkbox.js.map +1 -1
  17. package/dist/combobox.d.ts +12 -0
  18. package/dist/combobox.js +1 -1
  19. package/dist/combobox.js.map +1 -1
  20. package/dist/disclosure.d.ts +11 -1
  21. package/dist/disclosure.js +1 -1
  22. package/dist/disclosure.js.map +1 -1
  23. package/dist/form.d.ts +6 -48
  24. package/dist/form.js +1 -1
  25. package/dist/form.js.map +1 -1
  26. package/dist/grid.js +1 -1
  27. package/dist/grid.js.map +1 -1
  28. package/dist/internal/cascade-choice.d.ts +13 -0
  29. package/dist/internal/cascade-choice.js +1 -1
  30. package/dist/internal/cascade-choice.js.map +1 -1
  31. package/dist/internal/collection.d.ts +2 -0
  32. package/dist/internal/collection.js +1 -1
  33. package/dist/internal/collection.js.map +1 -1
  34. package/dist/internal/conditional-presence.d.ts +23 -0
  35. package/dist/internal/conditional-presence.js +2 -0
  36. package/dist/internal/conditional-presence.js.map +1 -0
  37. package/dist/internal/date-picker.js +1 -1
  38. package/dist/internal/date-picker.js.map +1 -1
  39. package/dist/internal/form-context.d.ts +22 -0
  40. package/dist/internal/form-context.js +2 -0
  41. package/dist/internal/form-context.js.map +1 -0
  42. package/dist/internal/form-presence-parts.d.ts +69 -0
  43. package/dist/internal/form-presence-parts.js +2 -0
  44. package/dist/internal/form-presence-parts.js.map +1 -0
  45. package/dist/internal/native-field.js +1 -1
  46. package/dist/internal/native-field.js.map +1 -1
  47. package/dist/internal/popup.js +1 -1
  48. package/dist/internal/popup.js.map +1 -1
  49. package/dist/internal/tabular-parts.js +1 -1
  50. package/dist/internal/tabular-parts.js.map +1 -1
  51. package/dist/internal/virtual-core.js +1 -1
  52. package/dist/internal/virtual-core.js.map +1 -1
  53. package/dist/listbox.d.ts +12 -0
  54. package/dist/listbox.js +1 -1
  55. package/dist/listbox.js.map +1 -1
  56. package/dist/menu.js +1 -1
  57. package/dist/menu.js.map +1 -1
  58. package/dist/navigation-menu.d.ts +15 -0
  59. package/dist/navigation-menu.js +1 -1
  60. package/dist/navigation-menu.js.map +1 -1
  61. package/dist/radio-group.d.ts +11 -1
  62. package/dist/radio-group.js +1 -1
  63. package/dist/radio-group.js.map +1 -1
  64. package/dist/range-calendar.js +1 -1
  65. package/dist/range-calendar.js.map +1 -1
  66. package/dist/rating.d.ts +9 -0
  67. package/dist/select.d.ts +12 -0
  68. package/dist/select.js +1 -1
  69. package/dist/select.js.map +1 -1
  70. package/dist/stepper.d.ts +9 -0
  71. package/dist/tabs.d.ts +11 -1
  72. package/dist/tabs.js +1 -1
  73. package/dist/tabs.js.map +1 -1
  74. package/dist/tree-grid.d.ts +14 -0
  75. package/dist/tree-grid.js +1 -1
  76. package/dist/tree-grid.js.map +1 -1
  77. package/dist/tree-view.d.ts +11 -1
  78. package/dist/tree-view.js +1 -1
  79. package/dist/tree-view.js.map +1 -1
  80. package/package.json +13 -13
@@ -1,2 +1,2 @@
1
- import{computed,defineComponent,h,inject,mergeProps,onBeforeUnmount,onScopeDispose,provide,shallowReactive,shallowRef,toValue,watch}from'vue';import{createAxisMeasurementResolver,createVirtualizer,virtualItemStyle,virtualSurfaceStyle}from'@sectile/dom/virtual';import{Primitive}from'../primitive.js';const virtualizerContextKey=Symbol('SectileVirtualizerRoot');const virtualizerSurfaceContextKey=Symbol('SectileVirtualizerSurface');export function useVirtualizer(options){const scrollport=options.scrollport??shallowRef(null);const surface=options.surface??shallowRef(null);const plan=shallowRef(null);const connection=shallowRef();const frames=new Map;const frameRegistrations=new Map;const items=new Map;const itemRegistrations=new Map;let disposed=false;const report=error=>{options.onError?.(error)};const updateInitialPlan=()=>{if(options.initialViewport===undefined){plan.value=null;return}const overscan=toValue(options.overscan);const result=options.strategy.tryQuery(options.state.value,{viewport:options.initialViewport,...overscan===undefined?{}:{overscan}});if(!result.ok){report(result.error);return}plan.value=result.value;options.onPlanChange?.(result.value)};updateInitialPlan();const disconnectConnection=()=>{frameRegistrations.clear();itemRegistrations.clear();connection.value?.disconnect();connection.value=undefined};const connect=()=>{if(disposed)return;disconnectConnection();const currentScrollport=scrollport.value;const currentSurface=surface.value;if(currentScrollport===null||currentScrollport===undefined||currentSurface===null||currentSurface===undefined){updateInitialPlan();return}const overscan=toValue(options.overscan);const viewportInsets=toValue(options.viewportInsets);const next=createVirtualizer({scrollport:currentScrollport,surface:currentSurface,state:options.state.value,strategy:options.strategy,...overscan===undefined?{}:{overscan},...viewportInsets===undefined?{}:{viewportInsets},...options.measure===undefined?{}:{measure:options.measure},...options.readViewport===undefined?{}:{readViewport:options.readViewport},...options.writeScroll===undefined?{}:{writeScroll:options.writeScroll},...options.environment===undefined?{}:{environment:options.environment},onPlanChange:value=>{plan.value=value;options.onPlanChange?.(value)},onStateChange:value=>{options.state.value=value;options.onStateChange?.(value)},onError:report});connection.value=next;for(const frame of frames.keys()){frameRegistrations.set(frame,next.registerFrame(frame))}for(const[item,desired]of items){itemRegistrations.set(item,next.registerItem(item,desired.id))}};watch([scrollport,surface],connect,{flush:'post',immediate:true});watch(options.state,value=>{if(connection.value===undefined)updateInitialPlan();else connection.value.setState(value)},{flush:'sync'});watch(()=>toValue(options.overscan),value=>{if(connection.value===undefined)updateInitialPlan();else connection.value.setOverscan(value)},{deep:true,flush:'sync'});watch(()=>toValue(options.viewportInsets),value=>{connection.value?.setViewportInsets(value)},{deep:true,flush:'sync'});onScopeDispose(()=>{disposed=true;disconnectConnection();frames.clear();items.clear()});const currentConnection=()=>connection.value;return Object.freeze({scrollport,surface,plan,connection,registerFrame:element=>{const token=Object.freeze({});frameRegistrations.get(element)?.();frameRegistrations.delete(element);frames.set(element,token);if(connection.value!==undefined){frameRegistrations.set(element,connection.value.registerFrame(element))}return()=>{if(frames.get(element)!==token)return;frameRegistrations.get(element)?.();frameRegistrations.delete(element);frames.delete(element)}},registerItem:(element,id)=>{const token=Object.freeze({});itemRegistrations.get(element)?.();itemRegistrations.delete(element);items.set(element,Object.freeze({id,token}));if(connection.value!==undefined){itemRegistrations.set(element,connection.value.registerItem(element,id))}return()=>{if(items.get(element)?.token!==token)return;itemRegistrations.get(element)?.();itemRegistrations.delete(element);items.delete(element)}},measure:measurements=>{const active=currentConnection();return active===undefined?virtualizerNotConnected():active.measure(measurements)},mutate:mutation=>{const active=currentConnection();return active===undefined?virtualizerNotConnected():active.mutate(mutation)},scrollTo:(id,alignment)=>{const active=currentConnection();return active===undefined?virtualizerNotConnected():active.scrollTo(id,alignment)},refresh:()=>{connection.value?.refresh()},flush:()=>{const active=currentConnection();return active===undefined?virtualizerNotConnected():active.flush()}})}export const VirtualizerRoot=/* @__PURE__ */defineComponent({name:'SectileVirtualizerRoot',inheritAttrs:false,props:{defaultState:{type:Object,required:true},strategy:{type:Object,required:true},scrollport:{type:[String,Object],default:'root'},overscan:{type:[Number,Object],default:undefined},viewportInsets:{type:[Number,Object],default:undefined},initialViewport:{type:Object,default:undefined},measure:{type:Function,default:undefined},as:{type:[String,Object,Function],default:'div'},asChild:{type:Boolean,default:false}},emits:{stateChange:_state=>true,planChange:_plan=>true,error:_error=>true},slots:Object,setup(props,{attrs,emit,expose,slots}){const state=shallowRef(props.defaultState);let rootElement=null;const virtualizer=useVirtualizer({state,strategy:props.strategy,overscan:()=>props.overscan,viewportInsets:()=>props.viewportInsets,...props.initialViewport===undefined?{}:{initialViewport:props.initialViewport},...props.measure===undefined?{}:{measure:props.measure},onStateChange:value=>{emit('stateChange',value)},onPlanChange:value=>{emit('planChange',value)},onError:error=>{emit('error',error)}});const resolveScrollport=target=>{virtualizer.scrollport.value=target==='root'?rootElement:target==='document'?rootElement?.ownerDocument??null:target};watch(()=>props.scrollport,resolveScrollport,{flush:'sync'});watch(()=>props.defaultState,value=>{if(!Object.is(state.value,value))state.value=value},{flush:'sync'});let constructionWarningShown=false;watch(()=>[props.strategy,props.measure,props.initialViewport],(value,previous)=>{if(constructionWarningShown||value.every((item,index)=>Object.is(item,previous[index])))return;constructionWarningShown=true;console.warn('[Sectile] VirtualizerRoot strategy, measure, and initialViewport are construction-time options. Remount the root to change them.')},{flush:'sync'});const slotProps=computed(()=>Object.freeze({state:state.value,plan:virtualizer.plan.value,placements:virtualizer.plan.value?.placements??Object.freeze([]),scrollTo:virtualizer.scrollTo,measure:virtualizer.measure,mutate:virtualizer.mutate,refresh:virtualizer.refresh,flush:virtualizer.flush}));provide(virtualizerContextKey,{plan:computed(()=>virtualizer.plan.value),surface:virtualizer.surface,registerFrame:virtualizer.registerFrame,registerItem:virtualizer.registerItem});expose(shallowReactive({get scrollport(){return virtualizer.scrollport},get surface(){return virtualizer.surface},get state(){return slotProps.value.state},get plan(){return slotProps.value.plan},get placements(){return slotProps.value.placements},scrollTo:virtualizer.scrollTo,measure:virtualizer.measure,mutate:virtualizer.mutate,refresh:virtualizer.refresh,flush:virtualizer.flush}));return()=>h(Primitive,mergeProps(attrs,{as:props.as,asChild:props.asChild,elementRef:element=>{rootElement=asHTMLElement(element);resolveScrollport(props.scrollport)},'data-scope':'virtualizer','data-part':'root'}),{default:()=>slots['default']?.(slotProps.value)})}});export const VirtualizerHeader=/* @__PURE__ */defineComponent({name:'SectileVirtualizerHeader',inheritAttrs:false,props:{as:{type:[String,Object,Function],default:'div'},asChild:{type:Boolean,default:false}},slots:Object,setup(props,{attrs,slots}){const root=useVirtualizerRoot('VirtualizerHeader');let element=null;let unregister;const setElement=value=>{const next=asHTMLElement(value);if(element===next)return;unregister?.();unregister=undefined;element=next;if(next!==null)unregister=root.registerFrame(next)};onBeforeUnmount(()=>{unregister?.();unregister=undefined;element=null});return()=>h(Primitive,mergeProps(attrs,{as:props.as,asChild:props.asChild,elementRef:setElement,'data-scope':'virtualizer','data-part':'header'}),{default:()=>slots['default']?.()})}});export const VirtualizerSurface=/* @__PURE__ */defineComponent({name:'SectileVirtualizerSurface',inheritAttrs:false,props:{as:{type:[String,Object,Function],default:'div'},asChild:{type:Boolean,default:false}},slots:Object,setup(props,{attrs,slots}){const root=useVirtualizerRoot('VirtualizerSurface');provide(virtualizerSurfaceContextKey,{registerItem:root.registerItem});let element=null;const style=computed(()=>root.plan.value===null?Object.freeze({position:'relative'}):virtualSurfaceStyle(root.plan.value));const setElement=value=>{const next=asHTMLElement(value);if(element===next)return;if(element!==null&&root.surface.value===element){root.surface.value=null}element=next;if(next!==null)root.surface.value=next};onBeforeUnmount(()=>{if(element!==null&&root.surface.value===element){root.surface.value=null}element=null});return()=>h(Primitive,mergeProps(attrs,{as:props.as,asChild:props.asChild,elementRef:setElement,style:style.value,'data-scope':'virtualizer','data-part':'surface'}),{default:()=>slots['default']?.(root.plan.value)})}});export const VirtualizerItem=/* @__PURE__ */defineComponent({name:'SectileVirtualizerItem',inheritAttrs:false,props:{placement:{type:Object,required:true},size:{type:String,default:'none'},as:{type:[String,Object,Function],default:'div'},asChild:{type:Boolean,default:false}},slots:Object,setup(props,{attrs,slots}){const surface=useVirtualizerSurface('VirtualizerItem');let element=null;let unregister;const sizing=computed(()=>Object.freeze({width:props.size==='width'||props.size==='both',height:props.size==='height'||props.size==='both'}));const setElement=value=>{const next=asHTMLElement(value);if(element===next)return;unregister?.();unregister=undefined;element=next;if(next!==null){unregister=surface.registerItem(next,props.placement.id)}};onBeforeUnmount(()=>{unregister?.();unregister=undefined;element=null});return()=>h(Primitive,mergeProps(attrs,{as:props.as,asChild:props.asChild,elementRef:setElement,style:virtualItemStyle(props.placement,sizing.value),'data-scope':'virtualizer','data-part':'item','data-index':props.placement.index,'data-visible':props.placement.visible?'':undefined}),{default:()=>slots['default']?.(props.placement)})}});export const VirtualizerFooter=/* @__PURE__ */defineComponent({name:'SectileVirtualizerFooter',inheritAttrs:false,props:{as:{type:[String,Object,Function],default:'div'},asChild:{type:Boolean,default:false}},slots:Object,setup(props,{attrs,slots}){const root=useVirtualizerRoot('VirtualizerFooter');let element=null;let unregister;const setElement=value=>{const next=asHTMLElement(value);if(element===next)return;unregister?.();unregister=undefined;element=next;if(next!==null)unregister=root.registerFrame(next)};onBeforeUnmount(()=>{unregister?.();unregister=undefined;element=null});return()=>h(Primitive,mergeProps(attrs,{as:props.as,asChild:props.asChild,elementRef:setElement,'data-scope':'virtualizer','data-part':'footer'}),{default:()=>slots['default']?.()})}});function useVirtualizerRoot(part){const root=inject(virtualizerContextKey);if(root===undefined){throw new TypeError(`${part} must be used inside VirtualizerRoot.`)}return root}function useVirtualizerSurface(part){const surface=inject(virtualizerSurfaceContextKey);if(surface===undefined){throw new TypeError(`${part} must be used inside VirtualizerSurface.`)}return surface}export function useVirtualizerSurfaceRegistration(part){return useVirtualizerSurface(part)}function asHTMLElement(value){return typeof value==='object'&&value!==null&&'offsetHeight'in value?value:null}export function virtualizerNotConnected(){return{ok:false,error:{class:'transition-rejection',code:'virtualizer-not-connected',message:'not connected'}}}export{createAxisMeasurementResolver,virtualItemStyle,virtualSurfaceStyle};
1
+ import{computed,defineComponent,h,inject,mergeProps,onBeforeUnmount,onScopeDispose,provide,shallowReactive,shallowRef,toValue,watch}from'vue';import{createAxisMeasurementResolver,createVirtualizer,virtualItemStyle,virtualSurfaceStyle}from'@sectile/dom/virtual';import{Primitive}from'../primitive.js';const virtualizerContextKey=Symbol('SectileVirtualizerRoot');const virtualizerSurfaceContextKey=Symbol('SectileVirtualizerSurface');export function useVirtualizer(options){const scrollport=options.scrollport??shallowRef(null);const surface=options.surface??shallowRef(null);const plan=shallowRef(null);const connection=shallowRef();const frames=new Map;const frameRegistrations=new Map;const items=new Map;const itemRegistrations=new Map;let connectedScrollport;let connectedSurface;let disposed=false;const report=error=>{options.onError?.(error)};const updateInitialPlan=()=>{if(options.initialViewport===undefined){plan.value=null;return}const overscan=toValue(options.overscan);const result=options.strategy.tryQuery(options.state.value,{viewport:options.initialViewport,...overscan===undefined?{}:{overscan}});if(!result.ok){report(result.error);return}plan.value=result.value;options.onPlanChange?.(result.value)};updateInitialPlan();const disconnectConnection=()=>{frameRegistrations.clear();itemRegistrations.clear();const current=connection.value;connection.value=undefined;connectedScrollport=undefined;connectedSurface=undefined;current?.disconnect()};const connect=()=>{if(disposed)return;disconnectConnection();const currentScrollport=scrollport.value;const currentSurface=surface.value;if(currentScrollport===null||currentScrollport===undefined||currentSurface===null||currentSurface===undefined){updateInitialPlan();return}const overscan=toValue(options.overscan);const viewportInsets=toValue(options.viewportInsets);const next=createVirtualizer({scrollport:currentScrollport,surface:currentSurface,state:options.state.value,strategy:options.strategy,...overscan===undefined?{}:{overscan},...viewportInsets===undefined?{}:{viewportInsets},...options.measure===undefined?{}:{measure:options.measure},...options.readViewport===undefined?{}:{readViewport:options.readViewport},...options.writeScroll===undefined?{}:{writeScroll:options.writeScroll},...options.environment===undefined?{}:{environment:options.environment},onPlanChange:value=>{plan.value=value;options.onPlanChange?.(value)},onStateChange:value=>{options.state.value=value;options.onStateChange?.(value)},onError:report});connectedScrollport=currentScrollport;connectedSurface=currentSurface;connection.value=next;for(const frame of frames.keys()){frameRegistrations.set(frame,next.registerFrame(frame))}for(const[item,desired]of items){itemRegistrations.set(item,next.registerItem(item,desired.id))}};const retireObsoleteConnection=()=>{if(connection.value===undefined)return;if(scrollport.value===connectedScrollport&&surface.value===connectedSurface)return;disconnectConnection()};watch([scrollport,surface],retireObsoleteConnection,{flush:'sync'});watch([scrollport,surface],connect,{flush:'post',immediate:true});watch(options.state,value=>{if(connection.value===undefined)updateInitialPlan();else connection.value.setState(value)},{flush:'sync'});watch(()=>toValue(options.overscan),value=>{if(connection.value===undefined)updateInitialPlan();else connection.value.setOverscan(value)},{deep:true,flush:'sync'});watch(()=>toValue(options.viewportInsets),value=>{connection.value?.setViewportInsets(value)},{deep:true,flush:'sync'});onScopeDispose(()=>{disposed=true;disconnectConnection();frames.clear();items.clear()});const currentConnection=()=>connection.value;return Object.freeze({scrollport,surface,plan,connection,registerFrame:element=>{const token=Object.freeze({});frameRegistrations.get(element)?.();frameRegistrations.delete(element);frames.set(element,token);if(connection.value!==undefined){frameRegistrations.set(element,connection.value.registerFrame(element))}return()=>{if(frames.get(element)!==token)return;frameRegistrations.get(element)?.();frameRegistrations.delete(element);frames.delete(element)}},registerItem:(element,id)=>{const token=Object.freeze({});itemRegistrations.get(element)?.();itemRegistrations.delete(element);items.set(element,Object.freeze({id,token}));if(connection.value!==undefined){itemRegistrations.set(element,connection.value.registerItem(element,id))}return()=>{if(items.get(element)?.token!==token)return;itemRegistrations.get(element)?.();itemRegistrations.delete(element);items.delete(element)}},measure:measurements=>{const active=currentConnection();return active===undefined?virtualizerNotConnected():active.measure(measurements)},mutate:mutation=>{const active=currentConnection();return active===undefined?virtualizerNotConnected():active.mutate(mutation)},scrollTo:(id,alignment)=>{const active=currentConnection();return active===undefined?virtualizerNotConnected():active.scrollTo(id,alignment)},refresh:()=>{connection.value?.refresh()},flush:()=>{const active=currentConnection();return active===undefined?virtualizerNotConnected():active.flush()}})}export const VirtualizerRoot=/* @__PURE__ */defineComponent({name:'SectileVirtualizerRoot',inheritAttrs:false,props:{defaultState:{type:Object,required:true},strategy:{type:Object,required:true},scrollport:{type:[String,Object],default:'root'},overscan:{type:[Number,Object],default:undefined},viewportInsets:{type:[Number,Object],default:undefined},initialViewport:{type:Object,default:undefined},measure:{type:Function,default:undefined},as:{type:[String,Object,Function],default:'div'},asChild:{type:Boolean,default:false}},emits:{stateChange:_state=>true,planChange:_plan=>true,error:_error=>true},slots:Object,setup(props,{attrs,emit,expose,slots}){const state=shallowRef(props.defaultState);let rootElement=null;const virtualizer=useVirtualizer({state,strategy:props.strategy,overscan:()=>props.overscan,viewportInsets:()=>props.viewportInsets,...props.initialViewport===undefined?{}:{initialViewport:props.initialViewport},...props.measure===undefined?{}:{measure:props.measure},onStateChange:value=>{emit('stateChange',value)},onPlanChange:value=>{emit('planChange',value)},onError:error=>{emit('error',error)}});const resolveScrollport=target=>{virtualizer.scrollport.value=target==='root'?rootElement:target==='document'?rootElement?.ownerDocument??null:target};watch(()=>props.scrollport,resolveScrollport,{flush:'sync'});watch(()=>props.defaultState,value=>{if(!Object.is(state.value,value))state.value=value},{flush:'sync'});let constructionWarningShown=false;watch(()=>[props.strategy,props.measure,props.initialViewport],(value,previous)=>{if(constructionWarningShown||value.every((item,index)=>Object.is(item,previous[index])))return;constructionWarningShown=true;console.warn('[Sectile] VirtualizerRoot strategy, measure, and initialViewport are construction-time options. Remount the root to change them.')},{flush:'sync'});const slotProps=computed(()=>Object.freeze({state:state.value,plan:virtualizer.plan.value,placements:virtualizer.plan.value?.placements??Object.freeze([]),scrollTo:virtualizer.scrollTo,measure:virtualizer.measure,mutate:virtualizer.mutate,refresh:virtualizer.refresh,flush:virtualizer.flush}));provide(virtualizerContextKey,{plan:computed(()=>virtualizer.plan.value),surface:virtualizer.surface,registerFrame:virtualizer.registerFrame,registerItem:virtualizer.registerItem});expose(shallowReactive({get scrollport(){return virtualizer.scrollport},get surface(){return virtualizer.surface},get state(){return slotProps.value.state},get plan(){return slotProps.value.plan},get placements(){return slotProps.value.placements},scrollTo:virtualizer.scrollTo,measure:virtualizer.measure,mutate:virtualizer.mutate,refresh:virtualizer.refresh,flush:virtualizer.flush}));return()=>h(Primitive,mergeProps(attrs,{as:props.as,asChild:props.asChild,elementRef:element=>{rootElement=asHTMLElement(element);resolveScrollport(props.scrollport)},'data-scope':'virtualizer','data-part':'root'}),{default:()=>slots['default']?.(slotProps.value)})}});export const VirtualizerHeader=/* @__PURE__ */defineComponent({name:'SectileVirtualizerHeader',inheritAttrs:false,props:{as:{type:[String,Object,Function],default:'div'},asChild:{type:Boolean,default:false}},slots:Object,setup(props,{attrs,slots}){const root=useVirtualizerRoot('VirtualizerHeader');let element=null;let unregister;const setElement=value=>{const next=asHTMLElement(value);if(element===next)return;unregister?.();unregister=undefined;element=next;if(next!==null)unregister=root.registerFrame(next)};onBeforeUnmount(()=>{unregister?.();unregister=undefined;element=null});return()=>h(Primitive,mergeProps(attrs,{as:props.as,asChild:props.asChild,elementRef:setElement,'data-scope':'virtualizer','data-part':'header'}),{default:()=>slots['default']?.()})}});export const VirtualizerSurface=/* @__PURE__ */defineComponent({name:'SectileVirtualizerSurface',inheritAttrs:false,props:{as:{type:[String,Object,Function],default:'div'},asChild:{type:Boolean,default:false}},slots:Object,setup(props,{attrs,slots}){const root=useVirtualizerRoot('VirtualizerSurface');provide(virtualizerSurfaceContextKey,{registerItem:root.registerItem});let element=null;const style=computed(()=>root.plan.value===null?Object.freeze({position:'relative'}):virtualSurfaceStyle(root.plan.value));const setElement=value=>{const next=asHTMLElement(value);if(element===next)return;if(element!==null&&root.surface.value===element){root.surface.value=null}element=next;if(next!==null)root.surface.value=next};onBeforeUnmount(()=>{if(element!==null&&root.surface.value===element){root.surface.value=null}element=null});return()=>h(Primitive,mergeProps(attrs,{as:props.as,asChild:props.asChild,elementRef:setElement,style:style.value,'data-scope':'virtualizer','data-part':'surface'}),{default:()=>slots['default']?.(root.plan.value)})}});export const VirtualizerItem=/* @__PURE__ */defineComponent({name:'SectileVirtualizerItem',inheritAttrs:false,props:{placement:{type:Object,required:true},size:{type:String,default:'none'},as:{type:[String,Object,Function],default:'div'},asChild:{type:Boolean,default:false}},slots:Object,setup(props,{attrs,slots}){const surface=useVirtualizerSurface('VirtualizerItem');let element=null;let unregister;const sizing=computed(()=>Object.freeze({width:props.size==='width'||props.size==='both',height:props.size==='height'||props.size==='both'}));const setElement=value=>{const next=asHTMLElement(value);if(element===next)return;unregister?.();unregister=undefined;element=next;if(next!==null){unregister=surface.registerItem(next,props.placement.id)}};onBeforeUnmount(()=>{unregister?.();unregister=undefined;element=null});return()=>h(Primitive,mergeProps(attrs,{as:props.as,asChild:props.asChild,elementRef:setElement,style:virtualItemStyle(props.placement,sizing.value),'data-scope':'virtualizer','data-part':'item','data-index':props.placement.index,'data-visible':props.placement.visible?'':undefined}),{default:()=>slots['default']?.(props.placement)})}});export const VirtualizerFooter=/* @__PURE__ */defineComponent({name:'SectileVirtualizerFooter',inheritAttrs:false,props:{as:{type:[String,Object,Function],default:'div'},asChild:{type:Boolean,default:false}},slots:Object,setup(props,{attrs,slots}){const root=useVirtualizerRoot('VirtualizerFooter');let element=null;let unregister;const setElement=value=>{const next=asHTMLElement(value);if(element===next)return;unregister?.();unregister=undefined;element=next;if(next!==null)unregister=root.registerFrame(next)};onBeforeUnmount(()=>{unregister?.();unregister=undefined;element=null});return()=>h(Primitive,mergeProps(attrs,{as:props.as,asChild:props.asChild,elementRef:setElement,'data-scope':'virtualizer','data-part':'footer'}),{default:()=>slots['default']?.()})}});function useVirtualizerRoot(part){const root=inject(virtualizerContextKey);if(root===undefined){throw new TypeError(`${part} must be used inside VirtualizerRoot.`)}return root}function useVirtualizerSurface(part){const surface=inject(virtualizerSurfaceContextKey);if(surface===undefined){throw new TypeError(`${part} must be used inside VirtualizerSurface.`)}return surface}export function useVirtualizerSurfaceRegistration(part){return useVirtualizerSurface(part)}function asHTMLElement(value){return typeof value==='object'&&value!==null&&'offsetHeight'in value?value:null}export function virtualizerNotConnected(){return{ok:false,error:{class:'transition-rejection',code:'virtualizer-not-connected',message:'not connected'}}}export{createAxisMeasurementResolver,virtualItemStyle,virtualSurfaceStyle};
2
2
  //# sourceMappingURL=virtual-core.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"virtual-core.js","names":["computed","defineComponent","h","inject","mergeProps","onBeforeUnmount","onScopeDispose","provide","shallowReactive","shallowRef","toValue","watch","createAxisMeasurementResolver","createVirtualizer","virtualItemStyle","virtualSurfaceStyle","Primitive","virtualizerContextKey","Symbol","virtualizerSurfaceContextKey","useVirtualizer","options","scrollport","surface","plan","connection","frames","Map","frameRegistrations","items","itemRegistrations","disposed","report","error","onError","updateInitialPlan","initialViewport","undefined","value","overscan","result","strategy","tryQuery","state","viewport","ok","onPlanChange","disconnectConnection","clear","disconnect","connect","currentScrollport","currentSurface","viewportInsets","next","measure","readViewport","writeScroll","environment","onStateChange","frame","keys","set","registerFrame","item","desired","registerItem","id","flush","immediate","setState","setOverscan","deep","setViewportInsets","currentConnection","Object","freeze","element","token","get","delete","measurements","active","virtualizerNotConnected","mutate","mutation","scrollTo","alignment","refresh","VirtualizerRoot","name","inheritAttrs","props","defaultState","type","required","String","default","Number","Function","as","asChild","Boolean","emits","stateChange","_state","planChange","_plan","_error","slots","setup","attrs","emit","expose","rootElement","virtualizer","resolveScrollport","target","ownerDocument","is","constructionWarningShown","previous","every","index","console","warn","slotProps","placements","elementRef","asHTMLElement","VirtualizerHeader","root","useVirtualizerRoot","unregister","setElement","VirtualizerSurface","style","position","VirtualizerItem","placement","size","useVirtualizerSurface","sizing","width","height","visible","VirtualizerFooter","part","TypeError","useVirtualizerSurfaceRegistration","class","code","message"],"sources":["../../src/internal/virtual-core.ts"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"file":"virtual-core.js","names":["computed","defineComponent","h","inject","mergeProps","onBeforeUnmount","onScopeDispose","provide","shallowReactive","shallowRef","toValue","watch","createAxisMeasurementResolver","createVirtualizer","virtualItemStyle","virtualSurfaceStyle","Primitive","virtualizerContextKey","Symbol","virtualizerSurfaceContextKey","useVirtualizer","options","scrollport","surface","plan","connection","frames","Map","frameRegistrations","items","itemRegistrations","connectedScrollport","connectedSurface","disposed","report","error","onError","updateInitialPlan","initialViewport","undefined","value","overscan","result","strategy","tryQuery","state","viewport","ok","onPlanChange","disconnectConnection","clear","current","disconnect","connect","currentScrollport","currentSurface","viewportInsets","next","measure","readViewport","writeScroll","environment","onStateChange","frame","keys","set","registerFrame","item","desired","registerItem","id","retireObsoleteConnection","flush","immediate","setState","setOverscan","deep","setViewportInsets","currentConnection","Object","freeze","element","token","get","delete","measurements","active","virtualizerNotConnected","mutate","mutation","scrollTo","alignment","refresh","VirtualizerRoot","name","inheritAttrs","props","defaultState","type","required","String","default","Number","Function","as","asChild","Boolean","emits","stateChange","_state","planChange","_plan","_error","slots","setup","attrs","emit","expose","rootElement","virtualizer","resolveScrollport","target","ownerDocument","is","constructionWarningShown","previous","every","index","console","warn","slotProps","placements","elementRef","asHTMLElement","VirtualizerHeader","root","useVirtualizerRoot","unregister","setElement","VirtualizerSurface","style","position","VirtualizerItem","placement","size","useVirtualizerSurface","sizing","width","height","visible","VirtualizerFooter","part","TypeError","useVirtualizerSurfaceRegistration","class","code","message"],"sources":["../../src/internal/virtual-core.ts"],"mappings":"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","ignoreList":[]}
package/dist/listbox.d.ts CHANGED
@@ -1,5 +1,6 @@
1
1
  import { type PropType, type SlotsType, type VNodeChild } from 'vue';
2
2
  import { type PrimitiveAs } from './primitive.js';
3
+ import { type ConditionalPresenceProps } from './internal/conditional-presence.js';
3
4
  export type ListboxSelectionMode = 'single' | 'multiple';
4
5
  export type ListboxValue = string | readonly string[];
5
6
  export interface ListboxRootProps {
@@ -41,6 +42,8 @@ export interface ListboxPartProps {
41
42
  readonly as?: PrimitiveAs;
42
43
  readonly asChild?: boolean;
43
44
  }
45
+ export interface ListboxItemIndicatorProps extends ListboxPartProps, ConditionalPresenceProps {
46
+ }
44
47
  export declare const ListboxRoot: import("vue").DefineComponent<import("vue").ExtractPropTypes<{
45
48
  items: {
46
49
  type: PropType<readonly string[]>;
@@ -249,6 +252,10 @@ export declare const ListboxItemText: import("vue").DefineComponent<import("vue"
249
252
  default: (props: ListboxItemSlotProps) => VNodeChild;
250
253
  }>, {}, {}, string, import("vue").ComponentProvideOptions, true, {}, any>;
251
254
  export declare const ListboxItemIndicator: import("vue").DefineComponent<import("vue").ExtractPropTypes<{
255
+ forcePresent: {
256
+ readonly type: BooleanConstructor;
257
+ readonly default: false;
258
+ };
252
259
  as: {
253
260
  type: PropType<PrimitiveAs>;
254
261
  default: string;
@@ -258,6 +265,10 @@ export declare const ListboxItemIndicator: import("vue").DefineComponent<import(
258
265
  default: boolean;
259
266
  };
260
267
  }>, () => VNodeChild, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {}, string, import("vue").PublicProps, Readonly<import("vue").ExtractPropTypes<{
268
+ forcePresent: {
269
+ readonly type: BooleanConstructor;
270
+ readonly default: false;
271
+ };
261
272
  as: {
262
273
  type: PropType<PrimitiveAs>;
263
274
  default: string;
@@ -267,6 +278,7 @@ export declare const ListboxItemIndicator: import("vue").DefineComponent<import(
267
278
  default: boolean;
268
279
  };
269
280
  }>> & Readonly<{}>, {
281
+ forcePresent: boolean;
270
282
  as: PrimitiveAs;
271
283
  asChild: boolean;
272
284
  }, SlotsType<{
package/dist/listbox.js CHANGED
@@ -1,2 +1,2 @@
1
- import{computed,defineComponent,h,inject,mergeProps,nextTick,provide,shallowRef,watch}from"vue";import{DEFAULT_LISTBOX_SELECTION_MODE,createListboxControllerFromItems,getListboxItemAttributes,getListboxRootAttributes}from"@sectile/dom/listbox";import{stableIDElementToken}from"@sectile/dom/identity";import{Primitive}from"./primitive.js";import{visuallyHiddenInputStyle}from"./internal/native-input.js";import{hiddenSelectSubmissionCapabilities,useCompositeFormControl}from"./internal/form-control.js";import{useHostDirection,useHostId}from"./host-provider.js";import{reconcileCollectionState,sameIDs}from"./internal/collection.js";import{useControlledStateInvariant}from"./internal/controlled-state.js";const listboxRootContextKey=Symbol("SectileListboxRoot");const listboxItemContextKey=Symbol("SectileListboxItem");const listboxPartProps={as:{type:[String,Object,Function],default:"span"},asChild:{type:Boolean,default:false}};const ListboxRoot=defineComponent({name:"SectileListboxRoot",inheritAttrs:false,props:{items:{type:Array,required:true},selectionMode:{type:String,default:DEFAULT_LISTBOX_SELECTION_MODE},modelValue:{type:[String,Array],default:void 0},defaultValue:{type:[String,Array],default:void 0},disabledItems:{type:Array,default:()=>[]},disabled:{type:Boolean,default:false},readonly:{type:Boolean,default:false},orientation:{type:String,default:"vertical"},name:{type:String,default:void 0},form:{type:String,default:void 0},required:{type:Boolean,default:false},textValue:{type:Function,default:void 0},as:{type:[String,Object,Function],default:"div"},asChild:{type:Boolean,default:false}},emits:{"update:modelValue":_value=>true,highlight:_value=>true,activate:_value=>true},slots:Object,setup(props,{attrs,emit,slots}){const direction=useHostDirection();const instanceID=useHostId();const itemID=id=>`sectile-listbox-${instanceID}-option-${stableIDElementToken(id)}`;const rootElement=shallowRef(null);const submissionElement=shallowRef(null);let controllerProps=snapshotListboxControllerProps({...props,direction:direction.value});const participation=useCompositeFormControl({root:rootElement,submissions:[{element:submissionElement,capabilities:hiddenSelectSubmissionCapabilities}],reset:()=>{queueMicrotask(()=>{const next=controlled?toIDs(props.modelValue,props.selectionMode):initialValue;controller.value=createController(controlled,next,next[0]??firstEnabledItem(controllerProps)??null,controllerProps,emit);snapshot.value=controller.value.getSnapshot()})}});const controlled=useControlledStateInvariant("ListboxRoot","modelValue",()=>props.modelValue);const initialValue=toIDs(controlled?props.modelValue:props.defaultValue,props.selectionMode);const controller=shallowRef(createController(controlled,initialValue,initialValue[0]??firstEnabledItem(controllerProps)??null,controllerProps,emit));const snapshot=shallowRef(controller.value.getSnapshot());const rebuild=()=>{const nextControllerProps=snapshotListboxControllerProps({...props,direction:direction.value});if(sameListboxControllerProps(controllerProps,nextControllerProps)){return}const requested=controlled?toIDs(props.modelValue,props.selectionMode):snapshot.value.state.selection.selected;const reconciled=reconcileCollectionState(nextControllerProps.items,requested,snapshot.value.state.cursor.current,nextControllerProps.disabledItems,nextControllerProps.selectionMode);controller.value=createController(controlled,reconciled.selected,reconciled.current,nextControllerProps,emit);controllerProps=nextControllerProps;snapshot.value=controller.value.getSnapshot();if(controlled&&!sameIDs(requested,reconciled.selected)){emit("update:modelValue",fromIDs(reconciled.selected,props.selectionMode))}};watch(()=>props.modelValue,value=>{if(!controlled||value===void 0)return;const result=controller.value.syncControlledValues({value:toIDs(value,props.selectionMode)});if(!result.ok)throw new TypeError(result.error.message);snapshot.value=result.value});watch([()=>props.items,()=>props.selectionMode,()=>props.disabledItems,()=>props.disabled,()=>props.readonly,()=>props.orientation,()=>props.textValue,direction],rebuild);const selectedIDs=computed(()=>snapshot.value.state.selection.selected);const selectedIDSet=computed(()=>new Set(selectedIDs.value));const highlightedValue=computed(()=>snapshot.value.state.cursor.current);const disabled=computed(()=>props.disabled);const readonly=computed(()=>props.readonly);const disabledItems=computed(()=>new Set(props.disabledItems));const slotProps=computed(()=>Object.freeze({value:fromIDs(selectedIDs.value,props.selectionMode),highlightedValue:highlightedValue.value,disabled:disabled.value,readonly:readonly.value}));const applyResult=(result,root)=>{if(!result.ok)return false;snapshot.value=result.snapshot;applyEffects(result.commands,emit);if(root!==void 0)void nextTick(()=>root.focus());return true};const select=(id,target)=>{const event=props.selectionMode==="multiple"?{type:"toggle",id}:{type:"activate",id};applyResult(controller.value.handleEvent(event),target.closest('[role="listbox"]'))};const handleKeydown=event=>{const result=controller.value.handleKeyboardInput(event);if(!applyResult(result,event.currentTarget))return;event.preventDefault()};provide(listboxRootContextKey,{selectedIDs,selectedIDSet,highlightedValue,disabled,readonly,disabledItems,itemID,select});const rootAttributes=computed(()=>getListboxRootAttributes({selectionMode:props.selectionMode,orientation:props.orientation,direction:direction.value,disabled:props.disabled,readOnly:props.readonly,...highlightedValue.value===null?{}:{activeDescendantID:itemID(highlightedValue.value)}}));return()=>{const root=h(Primitive,mergeProps(attrs,rootAttributes.value,{as:props.as,asChild:props.asChild,onKeydown:handleKeydown,elementRef:element=>{rootElement.value=element}},participation.controlProps.value),{default:()=>slots["default"]?.(slotProps.value)});if(!participation.participating&&props.name===void 0&&props.form===void 0&&!props.required)return root;return[root,h("select",{ref:submissionElement,name:props.name,form:props.form,required:props.required,multiple:props.selectionMode==="multiple",tabindex:-1,"aria-hidden":"true",style:visuallyHiddenInputStyle},props.items.map(id=>h("option",{value:id,selected:selectedIDSet.value.has(id)},id)))]}}});const ListboxItem=defineComponent({name:"SectileListboxItem",inheritAttrs:false,props:{value:{type:String,required:true},disabled:{type:Boolean,default:false},as:{type:[String,Object,Function],default:"div"},asChild:{type:Boolean,default:false}},slots:Object,setup(props,{attrs,slots}){const root=useListboxRootContext("ListboxItem");const slotProps=computed(()=>Object.freeze({value:props.value,selected:root.selectedIDSet.value.has(props.value),highlighted:root.highlightedValue.value===props.value,disabled:root.disabled.value||props.disabled||root.disabledItems.value.has(props.value)}));provide(listboxItemContextKey,{slotProps});const attributes=computed(()=>getListboxItemAttributes({cursor:{current:root.highlightedValue.value},selection:{has:id=>root.selectedIDSet.value.has(id)}},{id:props.value,disabled:props.disabled},{disabled:slotProps.value.disabled,elementID:root.itemID(props.value)}));const handleClick=event=>{if(!event.defaultPrevented&&!slotProps.value.disabled){root.select(props.value,event.currentTarget)}};return()=>h(Primitive,mergeProps(attrs,attributes.value,{as:props.as,asChild:props.asChild,onClick:handleClick}),{default:()=>slots["default"]?.(slotProps.value)})}});const ListboxItemText=defineComponent({name:"SectileListboxItemText",inheritAttrs:false,props:listboxPartProps,slots:Object,setup(props,{attrs,slots}){const item=useListboxItemContext("ListboxItemText");return()=>h(Primitive,mergeProps(attrs,{as:props.as,asChild:props.asChild,"data-scope":"listbox","data-part":"item-text","data-state":item.slotProps.value.selected?"checked":"unchecked"}),{default:()=>slots["default"]?.(item.slotProps.value)})}});const ListboxItemIndicator=defineComponent({name:"SectileListboxItemIndicator",inheritAttrs:false,props:listboxPartProps,slots:Object,setup(props,{attrs,slots}){const item=useListboxItemContext("ListboxItemIndicator");return()=>h(Primitive,mergeProps(attrs,{as:props.as,asChild:props.asChild,hidden:!item.slotProps.value.selected,"aria-hidden":"true","data-scope":"listbox","data-part":"item-indicator","data-state":item.slotProps.value.selected?"checked":"unchecked"}),{default:()=>slots["default"]?.(item.slotProps.value)})}});function useListboxRootContext(part){const context=inject(listboxRootContextKey);if(context===void 0)throw new TypeError(`${part} must be used inside ListboxRoot.`);return context}function snapshotListboxControllerProps(props){return Object.freeze({...props,items:Object.freeze([...props.items]),disabledItems:Object.freeze([...props.disabledItems])})}function sameListboxControllerProps(left,right){return sameIDs(left.items,right.items)&&sameIDs(left.disabledItems,right.disabledItems)&&left.selectionMode===right.selectionMode&&left.disabled===right.disabled&&left.readonly===right.readonly&&left.orientation===right.orientation&&left.direction===right.direction&&left.textValue===right.textValue}function firstEnabledItem(props){if(props.disabledItems.length===0)return props.items[0];const disabled=new Set(props.disabledItems);return props.items.find(id=>!disabled.has(id))}function useListboxItemContext(part){const context=inject(listboxItemContextKey);if(context===void 0)throw new TypeError(`${part} must be used inside ListboxItem.`);return context}function createController(controlled,value,highlightedValue,props,emit){const result=createListboxControllerFromItems({items:props.items,selectionMode:props.selectionMode,disabledItems:props.disabledItems,disabled:props.disabled,readOnly:props.readonly,orientation:props.orientation,direction:props.direction,typeahead:{textValue:props.textValue??(id=>id)},...controlled?{value}:{defaultValue:value},defaultHighlightedValue:highlightedValue,onValueChange:change=>emit("update:modelValue",fromIDs(change.value,props.selectionMode)),onHighlightedValueChange:change=>emit("highlight",change.value)});if(!result.ok)throw new TypeError(result.error.message);return result.value}function applyEffects(effects,emit){for(const effect of effects){if(effect.type==="dispatch-activation")emit("activate",effect.id)}}function toIDs(value,mode){if(value===void 0||value==="")return[];if(Array.isArray(value))return mode==="single"?value.slice(0,1):value;return[value]}function fromIDs(value,mode){return mode==="single"?value[0]??"":value}export{ListboxItem,ListboxItemIndicator,ListboxItemText,ListboxRoot};
1
+ import{computed,defineComponent,h,inject,mergeProps,nextTick,provide,shallowReactive,shallowReadonly,shallowRef,watch}from"vue";import{DEFAULT_LISTBOX_SELECTION_MODE,createListboxControllerFromItems,getListboxItemAttributes,getListboxRootAttributes}from"@sectile/dom/listbox";import{stableIDElementToken}from"@sectile/dom/identity";import{Primitive}from"./primitive.js";import{visuallyHiddenInputStyle}from"./internal/native-input.js";import{hiddenSelectSubmissionCapabilities,useCompositeFormControl}from"./internal/form-control.js";import{useHostDirection,useHostId}from"./host-provider.js";import{invalidateItemProjection,reconcileCollectionState,sameIDs}from"./internal/collection.js";import{useControlledStateInvariant}from"./internal/controlled-state.js";import{conditionalPresenceProps,useConditionalPresenceRegistry}from"./internal/conditional-presence.js";const listboxRootContextKey=Symbol("SectileListboxRoot");const listboxItemContextKey=Symbol("SectileListboxItem");const listboxPartProps={as:{type:[String,Object,Function],default:"span"},asChild:{type:Boolean,default:false}};const ListboxRoot=defineComponent({name:"SectileListboxRoot",inheritAttrs:false,props:{items:{type:Array,required:true},selectionMode:{type:String,default:DEFAULT_LISTBOX_SELECTION_MODE},modelValue:{type:[String,Array],default:void 0},defaultValue:{type:[String,Array],default:void 0},disabledItems:{type:Array,default:()=>[]},disabled:{type:Boolean,default:false},readonly:{type:Boolean,default:false},orientation:{type:String,default:"vertical"},name:{type:String,default:void 0},form:{type:String,default:void 0},required:{type:Boolean,default:false},textValue:{type:Function,default:void 0},as:{type:[String,Object,Function],default:"div"},asChild:{type:Boolean,default:false}},emits:{"update:modelValue":_value=>true,highlight:_value=>true,activate:_value=>true},slots:Object,setup(props,{attrs,emit,slots}){const direction=useHostDirection();const instanceID=useHostId();const itemID=id=>`sectile-listbox-${instanceID}-option-${stableIDElementToken(id)}`;const rootElement=shallowRef(null);const submissionElement=shallowRef(null);let controllerProps=snapshotListboxControllerProps({...props,direction:direction.value});const controlled=useControlledStateInvariant("ListboxRoot","modelValue",()=>props.modelValue);const initialValue=toIDs(controlled?props.modelValue:props.defaultValue,props.selectionMode);const controller=shallowRef(createController(controlled,initialValue,initialValue[0]??firstEnabledItem(controllerProps)??null,controllerProps,emit));const snapshot=shallowRef(controller.value.getSnapshot());const selectedIDs=shallowRef(snapshot.value.state.selection.selected);const selectedIDSet=computed(()=>new Set(selectedIDs.value));const indicatorPresence=useConditionalPresenceRegistry(selectedIDSet);const itemProjection=shallowReactive(new Map);let currentSelectedSet=new Set(selectedIDs.value);let currentSelectionMode=props.selectionMode;let currentHighlighted=snapshot.value.state.cursor.current;let disabledItemSet=new Set(controllerProps.disabledItems);let submissionIndex=new Map(controllerProps.items.map((id,index)=>[id,index]));const mutableState=shallowReactive({value:fromIDs(selectedIDs.value,props.selectionMode),highlightedValue:currentHighlighted,disabled:controllerProps.disabled,readonly:controllerProps.readonly});const state=shallowReadonly(mutableState);const syncActiveDescendant=()=>{const element=rootElement.value;if(element===null||typeof element.setAttribute!=="function"||typeof element.removeAttribute!=="function")return;if(currentHighlighted===null)element.removeAttribute("aria-activedescendant");else element.setAttribute("aria-activedescendant",itemID(currentHighlighted))};const syncSubmissionSelection=changedIDs=>{const element=submissionElement.value;if(element===null)return;for(const id of changedIDs){const index=submissionIndex.get(id);if(index===void 0)continue;const option=element.options.item(index);if(option!==null&&option.value===id)option.selected=currentSelectedSet.has(id)}};const publishSnapshot=nextSnapshot=>{const nextSelectedIDs=nextSnapshot.state.selection.selected;const previousSelectedIDs=selectedIDs.value;const selectionReferenceChanged=previousSelectedIDs!==nextSelectedIDs;let nextSelectedSet=currentSelectedSet;const changedSelection=new Set;let selectionOrderChanged=false;if(selectionReferenceChanged){nextSelectedSet=new Set(nextSelectedIDs);for(const id of currentSelectedSet)if(!nextSelectedSet.has(id))changedSelection.add(id);for(const id of nextSelectedSet)if(!currentSelectedSet.has(id))changedSelection.add(id);selectionOrderChanged=!sameIDs(previousSelectedIDs,nextSelectedIDs)}const selectionModeChanged=currentSelectionMode!==props.selectionMode;const previousHighlight=currentHighlighted;currentSelectedSet=nextSelectedSet;currentSelectionMode=props.selectionMode;currentHighlighted=nextSnapshot.state.cursor.current;snapshot.value=nextSnapshot;if(selectionOrderChanged)selectedIDs.value=nextSelectedIDs;if(selectionOrderChanged||selectionModeChanged){mutableState.value=fromIDs(nextSelectedIDs,props.selectionMode)}mutableState.highlightedValue=currentHighlighted;for(const id of changedSelection)invalidateItemProjection(itemProjection,id);if(previousHighlight!==currentHighlighted){invalidateItemProjection(itemProjection,previousHighlight);invalidateItemProjection(itemProjection,currentHighlighted)}syncSubmissionSelection(changedSelection);syncActiveDescendant()};const updateControllerProjection=nextControllerProps=>{const nextDisabledItems=new Set(nextControllerProps.disabledItems);if(controllerProps.disabled===nextControllerProps.disabled){for(const id of disabledItemSet)if(!nextDisabledItems.has(id))invalidateItemProjection(itemProjection,id);for(const id of nextDisabledItems)if(!disabledItemSet.has(id))invalidateItemProjection(itemProjection,id)}else mutableState.disabled=nextControllerProps.disabled;mutableState.readonly=nextControllerProps.readonly;disabledItemSet=nextDisabledItems;submissionIndex=new Map(nextControllerProps.items.map((id,index)=>[id,index]))};const participation=useCompositeFormControl({root:rootElement,submissions:[{element:submissionElement,capabilities:hiddenSelectSubmissionCapabilities}],reset:()=>{queueMicrotask(()=>{const next=controlled?toIDs(props.modelValue,props.selectionMode):initialValue;controller.value=createController(controlled,next,next[0]??firstEnabledItem(controllerProps)??null,controllerProps,emit);publishSnapshot(controller.value.getSnapshot())})}});const rebuild=()=>{const nextControllerProps=snapshotListboxControllerProps({...props,direction:direction.value});if(sameListboxControllerProps(controllerProps,nextControllerProps))return;const requested=controlled?toIDs(props.modelValue,props.selectionMode):snapshot.value.state.selection.selected;const reconciled=reconcileCollectionState(nextControllerProps.items,requested,snapshot.value.state.cursor.current,nextControllerProps.disabledItems,nextControllerProps.selectionMode);controller.value=createController(controlled,reconciled.selected,reconciled.current,nextControllerProps,emit);updateControllerProjection(nextControllerProps);controllerProps=nextControllerProps;publishSnapshot(controller.value.getSnapshot());if(controlled&&!sameIDs(requested,reconciled.selected)){emit("update:modelValue",fromIDs(reconciled.selected,props.selectionMode))}};watch(()=>props.modelValue,value=>{if(!controlled||value===void 0)return;const result=controller.value.syncControlledValues({value:toIDs(value,props.selectionMode)});if(!result.ok)throw new TypeError(result.error.message);publishSnapshot(result.value)});watch([()=>props.items,()=>props.selectionMode,()=>props.disabledItems,()=>props.disabled,()=>props.readonly,()=>props.orientation,()=>props.textValue,direction],rebuild);const applyResult=(result,root)=>{if(!result.ok)return false;publishSnapshot(result.snapshot);applyEffects(result.commands,emit);if(root!==void 0)void nextTick(()=>root.focus());return true};const select=(id,target)=>{const event=props.selectionMode==="multiple"?{type:"toggle",id}:{type:"activate",id};applyResult(controller.value.handleEvent(event),target.closest('[role="listbox"]'))};const handleKeydown=event=>{const result=controller.value.handleKeyboardInput(event);if(!applyResult(result,event.currentTarget))return;event.preventDefault()};provide(listboxRootContextKey,{state,itemProjection,indicatorPresence,itemID,isSelected:id=>currentSelectedSet.has(id),isHighlighted:id=>currentHighlighted===id,isItemDisabled:id=>disabledItemSet.has(id),select});return()=>{const rootAttributes=getListboxRootAttributes({selectionMode:props.selectionMode,orientation:props.orientation,direction:direction.value,disabled:props.disabled,readOnly:props.readonly,...currentHighlighted===null?{}:{activeDescendantID:itemID(currentHighlighted)}});const root=h(Primitive,mergeProps(attrs,rootAttributes,{as:props.as,asChild:props.asChild,onKeydown:handleKeydown,elementRef:element=>{rootElement.value=element;syncActiveDescendant()}},participation.controlProps.value),{default:()=>slots["default"]?.(state)});if(!participation.participating&&props.name===void 0&&props.form===void 0&&!props.required)return root;return[root,h("select",{ref:submissionElement,name:props.name,form:props.form,required:props.required,multiple:props.selectionMode==="multiple",tabindex:-1,"aria-hidden":"true",style:visuallyHiddenInputStyle},props.items.map(id=>h("option",{value:id,selected:currentSelectedSet.has(id)},id)))]}}});const ListboxItem=defineComponent({name:"SectileListboxItem",inheritAttrs:false,props:{value:{type:String,required:true},disabled:{type:Boolean,default:false},as:{type:[String,Object,Function],default:"div"},asChild:{type:Boolean,default:false}},slots:Object,setup(props,{attrs,slots}){const root=useListboxRootContext("ListboxItem");const slotProps=Object.freeze({get value(){return props.value},get selected(){root.itemProjection.get(props.value);return root.isSelected(props.value)},get highlighted(){root.itemProjection.get(props.value);return root.isHighlighted(props.value)},get disabled(){root.itemProjection.get(props.value);return root.state.disabled||props.disabled||root.isItemDisabled(props.value)}});provide(listboxItemContextKey,{slotProps});const attributes=computed(()=>{const selected=slotProps.selected;const highlighted=slotProps.highlighted;const disabled=slotProps.disabled;return getListboxItemAttributes({cursor:{current:highlighted?props.value:null},selection:{has:id=>id===props.value&&selected}},{id:props.value,disabled:props.disabled},{disabled,elementID:root.itemID(props.value)})});const handleClick=event=>{if(!event.defaultPrevented&&!slotProps.disabled){root.select(props.value,event.currentTarget)}};return()=>h(Primitive,mergeProps(attrs,attributes.value,{as:props.as,asChild:props.asChild,onClick:handleClick}),{default:()=>slots["default"]?.(slotProps)})}});const ListboxItemText=defineComponent({name:"SectileListboxItemText",inheritAttrs:false,props:listboxPartProps,slots:Object,setup(props,{attrs,slots}){const item=useListboxItemContext("ListboxItemText");return()=>h(Primitive,mergeProps(attrs,{as:props.as,asChild:props.asChild,"data-scope":"listbox","data-part":"item-text","data-state":item.slotProps.selected?"checked":"unchecked"}),{default:()=>slots["default"]?.(item.slotProps)})}});const ListboxItemIndicator=defineComponent({name:"SectileListboxItemIndicator",inheritAttrs:false,props:{...listboxPartProps,...conditionalPresenceProps},slots:Object,setup(props,{attrs,slots}){const root=useListboxRootContext("ListboxItemIndicator");const item=useListboxItemContext("ListboxItemIndicator");return()=>{const state=item.slotProps;return h(Primitive,mergeProps(attrs,{as:props.as,asChild:props.asChild,elementRef:element=>root.indicatorPresence.register(state.value,element),hidden:!root.indicatorPresence.isPresent(state.value,state.selected,props.forcePresent),"aria-hidden":"true","data-scope":"listbox","data-part":"item-indicator","data-state":state.selected?"checked":"unchecked"}),{default:()=>slots["default"]?.(state)})}}});function useListboxRootContext(part){const context=inject(listboxRootContextKey);if(context===void 0)throw new TypeError(`${part} must be used inside ListboxRoot.`);return context}function snapshotListboxControllerProps(props){return Object.freeze({...props,items:Object.freeze([...props.items]),disabledItems:Object.freeze([...props.disabledItems])})}function sameListboxControllerProps(left,right){return sameIDs(left.items,right.items)&&sameIDs(left.disabledItems,right.disabledItems)&&left.selectionMode===right.selectionMode&&left.disabled===right.disabled&&left.readonly===right.readonly&&left.orientation===right.orientation&&left.direction===right.direction&&left.textValue===right.textValue}function firstEnabledItem(props){if(props.disabledItems.length===0)return props.items[0];const disabled=new Set(props.disabledItems);return props.items.find(id=>!disabled.has(id))}function useListboxItemContext(part){const context=inject(listboxItemContextKey);if(context===void 0)throw new TypeError(`${part} must be used inside ListboxItem.`);return context}function createController(controlled,value,highlightedValue,props,emit){const result=createListboxControllerFromItems({items:props.items,selectionMode:props.selectionMode,disabledItems:props.disabledItems,disabled:props.disabled,readOnly:props.readonly,orientation:props.orientation,direction:props.direction,typeahead:{textValue:props.textValue??(id=>id)},...controlled?{value}:{defaultValue:value},defaultHighlightedValue:highlightedValue,onValueChange:change=>emit("update:modelValue",fromIDs(change.value,props.selectionMode)),onHighlightedValueChange:change=>emit("highlight",change.value)});if(!result.ok)throw new TypeError(result.error.message);return result.value}function applyEffects(effects,emit){for(const effect of effects){if(effect.type==="dispatch-activation")emit("activate",effect.id)}}function toIDs(value,mode){if(value===void 0||value==="")return[];if(Array.isArray(value))return mode==="single"?value.slice(0,1):value;return[value]}function fromIDs(value,mode){return mode==="single"?value[0]??"":value}export{ListboxItem,ListboxItemIndicator,ListboxItemText,ListboxRoot};
2
2
  //# sourceMappingURL=listbox.js.map
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/listbox.ts"],"mappings":"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","names":[],"file":"listbox.js"}
1
+ {"version":3,"sources":["../src/listbox.ts"],"mappings":"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","names":[],"file":"listbox.js"}
package/dist/menu.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};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};
1
+ import{Fragment,computed,defineComponent,h,inject,mergeProps,nextTick,onBeforeUnmount,onMounted,provide,shallowReactive,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{invalidateItemProjection,reconcileCollectionState,sameIDs}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 controlled=useControlledStateInvariant("MenuButtonRoot","open",()=>kind==="menu-button"?runtimeProps.open:void 0);let currentOpen=kind==="menu-button"?runtimeProps.open??runtimeProps.defaultOpen??false:true;let currentHighlighted=runtimeProps.defaultHighlightedValue;let currentOpenPath=[];let currentOpenPathSet=new Set;let disabledItemSet=new Set(runtimeProps.disabledItems);const itemProjection=shallowReactive(new Map);const state=shallowReactive({open:kind==="menu-button"&&runtimeProps.open!==void 0?runtimeProps.open:currentOpen,highlightedValue:currentHighlighted,openPath:currentOpenPath,disabled:runtimeProps.disabled});const position=computed(()=>kind==="menu-button"?runtimeProps.position??true:false);const strategy=computed(()=>runtimeProps.strategy??"absolute");const publishOpen=value=>{currentOpen=value;const publicValue=kind==="menu-button"&&runtimeProps.open!==void 0?runtimeProps.open:value;if(state.open!==publicValue)state.open=publicValue};const publishHighlight=value=>{const previous=currentHighlighted;if(previous===value)return;currentHighlighted=value;state.highlightedValue=value;invalidateItemProjection(itemProjection,previous);invalidateItemProjection(itemProjection,value)};const publishOpenPath=value=>{const previousSet=currentOpenPathSet;const nextSet=new Set(value);const pathChanged=!sameIDs(currentOpenPath,value);currentOpenPath=value;currentOpenPathSet=nextSet;if(pathChanged)state.openPath=value;for(const id of previousSet)if(!nextSet.has(id))invalidateItemProjection(itemProjection,id);for(const id of nextSet)if(!previousSet.has(id))invalidateItemProjection(itemProjection,id)};const publishSnapshot=snapshot=>{publishOpen(snapshot.open);publishHighlight(snapshot.cursor.current);publishOpenPath(snapshot.openPath)};const updateOwnerProjection=()=>{const nextDisabledItems=new Set(runtimeProps.disabledItems);if(state.disabled===runtimeProps.disabled){for(const id of disabledItemSet)if(!nextDisabledItems.has(id))invalidateItemProjection(itemProjection,id);for(const id of nextDisabledItems)if(!disabledItemSet.has(id))invalidateItemProjection(itemProjection,id)}else state.disabled=runtimeProps.disabled;disabledItemSet=nextDisabledItems};const refresh=()=>{const snapshot=connection.value?.getSnapshot().state;if(snapshot!==void 0)publishSnapshot(snapshot)};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();updateOwnerProjection();if(root.value===void 0||kind==="menu-button"&&trigger.value===void 0)return;const reconciled=reconcileCollectionState(runtimeProps.items.map(item=>item.id),[],currentHighlighted,runtimeProps.disabledItems,"single",{preserveNullCurrent:true});publishHighlight(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=>{publishOpen(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:currentOpen}}):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),direction,position,strategy,itemProjection,isItemHighlighted:id=>currentHighlighted===id,isItemOpen:id=>currentOpenPathSet.has(id),isItemDisabled:id=>state.disabled||disabledItemSet.has(id),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)return;currentOpen=value;state.open=value;if(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)??[]);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.open?"open":"closed"}),{default:()=>slots["default"]?.(state)})}}})}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.disabled,"aria-haspopup":"menu","aria-expanded":String(root.state.open),"data-scope":"menu-button","data-part":"trigger"}),{default:()=>slots["default"]?.(root.state)})}});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.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)})}}});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=Object.freeze({get value(){return props.value},get highlighted(){root.itemProjection.get(props.value);return root.isItemHighlighted(props.value)},get open(){root.itemProjection.get(props.value);return root.isItemOpen(props.value)},get disabled(){root.itemProjection.get(props.value);return props.disabled||root.isItemDisabled(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.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.highlighted?"":void 0,"data-state":state.open?"open":"closed"}),{default:()=>slots["default"]?.(state)})}});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.itemProjection.get(props.for);return root.state.open&&root.isItemOpen(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)})}}});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"}
@@ -1,9 +1,15 @@
1
1
  import { type PropType, type SlotsType, type VNodeChild } from 'vue';
2
2
  import { MenuItem, MenuSubContent, NavigationMenuRoot } from './menu.js';
3
3
  import { type PrimitiveAs } from './primitive.js';
4
+ import { type ConditionalPresenceProps } from './internal/conditional-presence.js';
4
5
  export { NavigationMenuRoot };
5
6
  export { MenuItem as NavigationMenuLink, MenuItem as NavigationMenuTrigger, MenuSubContent as NavigationMenuContent };
6
7
  export type { MenuItemProps as NavigationMenuItemProps, MenuItemSlotProps as NavigationMenuItemSlotProps, MenuRootProps as NavigationMenuRootProps, MenuRootSlotProps as NavigationMenuRootSlotProps, MenuSubContentProps as NavigationMenuContentProps, } from './menu.js';
8
+ export interface NavigationMenuIndicatorProps extends ConditionalPresenceProps {
9
+ readonly open?: boolean;
10
+ readonly as?: PrimitiveAs;
11
+ readonly asChild?: boolean;
12
+ }
7
13
  export declare const NavigationMenuList: import("vue").DefineComponent<import("vue").ExtractPropTypes<{
8
14
  asChild: {
9
15
  type: BooleanConstructor;
@@ -77,6 +83,10 @@ export declare const NavigationMenuViewport: import("vue").DefineComponent<impor
77
83
  default: () => VNodeChild;
78
84
  }>, {}, {}, string, import("vue").ComponentProvideOptions, true, {}, any>;
79
85
  export declare const NavigationMenuIndicator: import("vue").DefineComponent<import("vue").ExtractPropTypes<{
86
+ forcePresent: {
87
+ readonly type: BooleanConstructor;
88
+ readonly default: false;
89
+ };
80
90
  as: {
81
91
  type: PropType<PrimitiveAs>;
82
92
  default: string;
@@ -90,6 +100,10 @@ export declare const NavigationMenuIndicator: import("vue").DefineComponent<impo
90
100
  default: boolean;
91
101
  };
92
102
  }>, () => VNodeChild, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {}, string, import("vue").PublicProps, Readonly<import("vue").ExtractPropTypes<{
103
+ forcePresent: {
104
+ readonly type: BooleanConstructor;
105
+ readonly default: false;
106
+ };
93
107
  as: {
94
108
  type: PropType<PrimitiveAs>;
95
109
  default: string;
@@ -103,6 +117,7 @@ export declare const NavigationMenuIndicator: import("vue").DefineComponent<impo
103
117
  default: boolean;
104
118
  };
105
119
  }>> & Readonly<{}>, {
120
+ forcePresent: boolean;
106
121
  as: PrimitiveAs;
107
122
  asChild: boolean;
108
123
  open: boolean;
@@ -1,2 +1,2 @@
1
- import{computed,defineComponent,h,mergeProps}from"vue";import{MenuItem,MenuSubContent,NavigationMenuRoot}from"./menu.js";import{Primitive}from"./primitive.js";const partProps={as:{type:[String,Object,Function],default:"div"},asChild:{type:Boolean,default:false}};const NavigationMenuList=defineComponent({name:"SectileNavigationMenuList",inheritAttrs:false,props:{...partProps,as:{...partProps.as,default:"ul"}},slots:Object,setup(props,{attrs,slots}){return()=>h(Primitive,mergeProps(attrs,{as:props.as,asChild:props.asChild,"data-scope":"navigation-menu","data-part":"list"}),{default:slots["default"]})}});const NavigationMenuItem=defineComponent({name:"SectileNavigationMenuItem",inheritAttrs:false,props:{...partProps,as:{...partProps.as,default:"li"}},slots:Object,setup(props,{attrs,slots}){return()=>h(Primitive,mergeProps(attrs,{as:props.as,asChild:props.asChild,"data-scope":"navigation-menu","data-part":"item-container"}),{default:slots["default"]})}});const NavigationMenuViewport=defineComponent({name:"SectileNavigationMenuViewport",inheritAttrs:false,props:partProps,slots:Object,setup(props,{attrs,slots}){return()=>h(Primitive,mergeProps(attrs,{as:props.as,asChild:props.asChild,"data-scope":"navigation-menu","data-part":"viewport"}),{default:slots["default"]})}});const NavigationMenuIndicator=defineComponent({name:"SectileNavigationMenuIndicator",inheritAttrs:false,props:{open:{type:Boolean,default:false},...partProps},slots:Object,setup(props,{attrs,slots}){const state=computed(()=>props.open);return()=>h(Primitive,mergeProps(attrs,{as:props.as,asChild:props.asChild,hidden:!state.value,"aria-hidden":"true","data-scope":"navigation-menu","data-part":"indicator","data-state":state.value?"visible":"hidden"}),{default:()=>slots["default"]?.({open:state.value})})}});export{MenuSubContent as NavigationMenuContent,NavigationMenuIndicator,NavigationMenuItem,MenuItem as NavigationMenuLink,NavigationMenuList,NavigationMenuRoot,MenuItem as NavigationMenuTrigger,NavigationMenuViewport};
1
+ import{computed,defineComponent,h,mergeProps}from"vue";import{MenuItem,MenuSubContent,NavigationMenuRoot}from"./menu.js";import{Primitive}from"./primitive.js";import{conditionalPresenceProps,useConditionalPresence}from"./internal/conditional-presence.js";const partProps={as:{type:[String,Object,Function],default:"div"},asChild:{type:Boolean,default:false}};const NavigationMenuList=defineComponent({name:"SectileNavigationMenuList",inheritAttrs:false,props:{...partProps,as:{...partProps.as,default:"ul"}},slots:Object,setup(props,{attrs,slots}){return()=>h(Primitive,mergeProps(attrs,{as:props.as,asChild:props.asChild,"data-scope":"navigation-menu","data-part":"list"}),{default:slots["default"]})}});const NavigationMenuItem=defineComponent({name:"SectileNavigationMenuItem",inheritAttrs:false,props:{...partProps,as:{...partProps.as,default:"li"}},slots:Object,setup(props,{attrs,slots}){return()=>h(Primitive,mergeProps(attrs,{as:props.as,asChild:props.asChild,"data-scope":"navigation-menu","data-part":"item-container"}),{default:slots["default"]})}});const NavigationMenuViewport=defineComponent({name:"SectileNavigationMenuViewport",inheritAttrs:false,props:partProps,slots:Object,setup(props,{attrs,slots}){return()=>h(Primitive,mergeProps(attrs,{as:props.as,asChild:props.asChild,"data-scope":"navigation-menu","data-part":"viewport"}),{default:slots["default"]})}});const NavigationMenuIndicator=defineComponent({name:"SectileNavigationMenuIndicator",inheritAttrs:false,props:{open:{type:Boolean,default:false},...conditionalPresenceProps,...partProps},slots:Object,setup(props,{attrs,slots}){const state=computed(()=>props.open);const forcePresent=computed(()=>props.forcePresent);const presence=useConditionalPresence(state,forcePresent);return()=>h(Primitive,mergeProps(attrs,{as:props.as,asChild:props.asChild,elementRef:presence.register,hidden:presence.hidden.value,"aria-hidden":"true","data-scope":"navigation-menu","data-part":"indicator","data-state":state.value?"visible":"hidden"}),{default:()=>slots["default"]?.({open:state.value})})}});export{MenuSubContent as NavigationMenuContent,NavigationMenuIndicator,NavigationMenuItem,MenuItem as NavigationMenuLink,NavigationMenuList,NavigationMenuRoot,MenuItem as NavigationMenuTrigger,NavigationMenuViewport};
2
2
  //# sourceMappingURL=navigation-menu.js.map
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/navigation-menu.ts"],"mappings":"AAAA,OAAS,SAAU,gBAAiB,EAAG,eAAkE,MACzG,OAAS,SAAU,eAAgB,uBAA0B,YAC7D,OAAS,cAAmC,iBAY5C,MAAM,UAAY,CAChB,GAAI,CAAE,KAAM,CAAC,OAAQ,OAAQ,QAAQ,EAA4B,QAAS,KAAK,EAC/E,QAAS,CAAE,KAAM,QAAS,QAAS,KAAK,GAGnC,MAAM,mBAAqB,gBAAgB,CAChD,KAAM,4BAA6B,aAAc,MACjD,MAAO,CAAE,GAAG,UAAW,GAAI,CAAE,GAAG,UAAU,GAAI,QAAS,IAAI,CAAE,EAC7D,MAAO,OACP,MAAM,MAAO,CAAE,MAAO,KAAK,EAAE,CAAI,MAAO,IAAkB,EAAE,UAAW,WAAW,MAAO,CAAE,GAAI,MAAM,GAAI,QAAS,MAAM,QAAS,aAAc,kBAAmB,YAAa,MAAM,CAAE,EAAG,CAAE,QAAS,MAAM,SAAS,CAAC,CAAE,CAAG,EAC3N,EAEM,MAAM,mBAAqB,gBAAgB,CAChD,KAAM,4BAA6B,aAAc,MACjD,MAAO,CAAE,GAAG,UAAW,GAAI,CAAE,GAAG,UAAU,GAAI,QAAS,IAAI,CAAE,EAC7D,MAAO,OACP,MAAM,MAAO,CAAE,MAAO,KAAK,EAAE,CAAI,MAAO,IAAkB,EAAE,UAAW,WAAW,MAAO,CAAE,GAAI,MAAM,GAAI,QAAS,MAAM,QAAS,aAAc,kBAAmB,YAAa,gBAAgB,CAAE,EAAG,CAAE,QAAS,MAAM,SAAS,CAAC,CAAE,CAAG,EACrO,EAEM,MAAM,uBAAyB,gBAAgB,CACpD,KAAM,gCAAiC,aAAc,MAAO,MAAO,UACnE,MAAO,OACP,MAAM,MAAO,CAAE,MAAO,KAAK,EAAE,CAAI,MAAO,IAAkB,EAAE,UAAW,WAAW,MAAO,CAAE,GAAI,MAAM,GAAI,QAAS,MAAM,QAAS,aAAc,kBAAmB,YAAa,UAAU,CAAE,EAAG,CAAE,QAAS,MAAM,SAAS,CAAC,CAAE,CAAG,EAC/N,EAEM,MAAM,wBAA0B,gBAAgB,CACrD,KAAM,iCAAkC,aAAc,MACtD,MAAO,CAAE,KAAM,CAAE,KAAM,QAAS,QAAS,KAAK,EAAI,GAAG,SAAS,EAC9D,MAAO,OACP,MAAM,MAAO,CAAE,MAAO,KAAK,EAAE,CAC3B,MAAM,MAAQ,SAAS,IAAM,MAAM,IAAI,EACvC,MAAO,IAAkB,EAAE,UAAW,WAAW,MAAO,CAAE,GAAI,MAAM,GAAI,QAAS,MAAM,QAAS,OAAQ,CAAC,MAAM,MAAO,cAAe,OAAQ,aAAc,kBAAmB,YAAa,YAAa,aAAc,MAAM,MAAQ,UAAY,QAAQ,CAAE,EAAG,CAAE,QAAS,IAAM,MAAM,SAAS,IAAI,CAAE,KAAM,MAAM,KAAK,CAAE,CAAC,CAAE,CAC3T,EACD","names":[],"file":"navigation-menu.js"}
1
+ {"version":3,"sources":["../src/navigation-menu.ts"],"mappings":"AAAA,OAAS,SAAU,gBAAiB,EAAG,eAAkE,MACzG,OAAS,SAAU,eAAgB,uBAA0B,YAC7D,OAAS,cAAmC,iBAC5C,OACE,yBACA,2BAEK,qCAkBP,MAAM,UAAY,CAChB,GAAI,CAAE,KAAM,CAAC,OAAQ,OAAQ,QAAQ,EAA4B,QAAS,KAAK,EAC/E,QAAS,CAAE,KAAM,QAAS,QAAS,KAAK,GAGnC,MAAM,mBAAqB,gBAAgB,CAChD,KAAM,4BAA6B,aAAc,MACjD,MAAO,CAAE,GAAG,UAAW,GAAI,CAAE,GAAG,UAAU,GAAI,QAAS,IAAI,CAAE,EAC7D,MAAO,OACP,MAAM,MAAO,CAAE,MAAO,KAAK,EAAE,CAAI,MAAO,IAAkB,EAAE,UAAW,WAAW,MAAO,CAAE,GAAI,MAAM,GAAI,QAAS,MAAM,QAAS,aAAc,kBAAmB,YAAa,MAAM,CAAE,EAAG,CAAE,QAAS,MAAM,SAAS,CAAC,CAAE,CAAG,EAC3N,EAEM,MAAM,mBAAqB,gBAAgB,CAChD,KAAM,4BAA6B,aAAc,MACjD,MAAO,CAAE,GAAG,UAAW,GAAI,CAAE,GAAG,UAAU,GAAI,QAAS,IAAI,CAAE,EAC7D,MAAO,OACP,MAAM,MAAO,CAAE,MAAO,KAAK,EAAE,CAAI,MAAO,IAAkB,EAAE,UAAW,WAAW,MAAO,CAAE,GAAI,MAAM,GAAI,QAAS,MAAM,QAAS,aAAc,kBAAmB,YAAa,gBAAgB,CAAE,EAAG,CAAE,QAAS,MAAM,SAAS,CAAC,CAAE,CAAG,EACrO,EAEM,MAAM,uBAAyB,gBAAgB,CACpD,KAAM,gCAAiC,aAAc,MAAO,MAAO,UACnE,MAAO,OACP,MAAM,MAAO,CAAE,MAAO,KAAK,EAAE,CAAI,MAAO,IAAkB,EAAE,UAAW,WAAW,MAAO,CAAE,GAAI,MAAM,GAAI,QAAS,MAAM,QAAS,aAAc,kBAAmB,YAAa,UAAU,CAAE,EAAG,CAAE,QAAS,MAAM,SAAS,CAAC,CAAE,CAAG,EAC/N,EAEM,MAAM,wBAA0B,gBAAgB,CACrD,KAAM,iCAAkC,aAAc,MACtD,MAAO,CAAE,KAAM,CAAE,KAAM,QAAS,QAAS,KAAK,EAAI,GAAG,yBAA0B,GAAG,SAAS,EAC3F,MAAO,OACP,MAAM,MAAO,CAAE,MAAO,KAAK,EAAE,CAC3B,MAAM,MAAQ,SAAS,IAAM,MAAM,IAAI,EACvC,MAAM,aAAe,SAAS,IAAM,MAAM,YAAY,EACtD,MAAM,SAAW,uBAAuB,MAAO,YAAY,EAC3D,MAAO,IAAkB,EAAE,UAAW,WAAW,MAAO,CACtD,GAAI,MAAM,GACV,QAAS,MAAM,QACf,WAAY,SAAS,SACrB,OAAQ,SAAS,OAAO,MACxB,cAAe,OACf,aAAc,kBACd,YAAa,YACb,aAAc,MAAM,MAAQ,UAAY,SACzC,EAAG,CAAE,QAAS,IAAM,MAAM,SAAS,IAAI,CAAE,KAAM,MAAM,KAAK,CAAE,CAAC,CAAE,CAClE,EACD","names":[],"file":"navigation-menu.js"}
@@ -1,5 +1,6 @@
1
1
  import { type PropType, type SlotsType, type VNodeChild } from 'vue';
2
2
  import { type PrimitiveAs } from './primitive.js';
3
+ import { type ConditionalPresenceProps } from './internal/conditional-presence.js';
3
4
  export interface RadioGroupRootProps {
4
5
  readonly items: readonly string[];
5
6
  readonly modelValue?: string;
@@ -32,7 +33,7 @@ export interface RadioGroupItemSlotProps {
32
33
  readonly highlighted: boolean;
33
34
  readonly disabled: boolean;
34
35
  }
35
- export interface RadioGroupIndicatorProps {
36
+ export interface RadioGroupIndicatorProps extends ConditionalPresenceProps {
36
37
  readonly as?: PrimitiveAs;
37
38
  readonly asChild?: boolean;
38
39
  }
@@ -199,6 +200,10 @@ export declare const RadioGroupItem: import("vue").DefineComponent<import("vue")
199
200
  default: (props: RadioGroupItemSlotProps) => VNodeChild;
200
201
  }>, {}, {}, string, import("vue").ComponentProvideOptions, true, {}, any>;
201
202
  export declare const RadioGroupIndicator: import("vue").DefineComponent<import("vue").ExtractPropTypes<{
203
+ forcePresent: {
204
+ readonly type: BooleanConstructor;
205
+ readonly default: false;
206
+ };
202
207
  as: {
203
208
  type: PropType<PrimitiveAs>;
204
209
  default: string;
@@ -208,6 +213,10 @@ export declare const RadioGroupIndicator: import("vue").DefineComponent<import("
208
213
  default: boolean;
209
214
  };
210
215
  }>, () => VNodeChild, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {}, string, import("vue").PublicProps, Readonly<import("vue").ExtractPropTypes<{
216
+ forcePresent: {
217
+ readonly type: BooleanConstructor;
218
+ readonly default: false;
219
+ };
211
220
  as: {
212
221
  type: PropType<PrimitiveAs>;
213
222
  default: string;
@@ -217,6 +226,7 @@ export declare const RadioGroupIndicator: import("vue").DefineComponent<import("
217
226
  default: boolean;
218
227
  };
219
228
  }>> & Readonly<{}>, {
229
+ forcePresent: boolean;
220
230
  as: PrimitiveAs;
221
231
  asChild: boolean;
222
232
  }, SlotsType<{
@@ -1,2 +1,2 @@
1
- import{computed,defineComponent,h,inject,mergeProps,nextTick,provide,shallowRef,watch}from"vue";import{getRadioGroupInputAttributes,getRadioGroupItemAttributes,getRadioGroupRootAttributes}from"@sectile/dom/radio-group";import{createListboxControllerFromItems}from"@sectile/dom/listbox";import{Primitive}from"./primitive.js";import{visuallyHiddenInputStyle}from"./internal/native-input.js";import{usePartContract}from"./internal/part-contract.js";import{provideFormControlOwner}from"./internal/form-control.js";import{hiddenInputSubmissionCapabilities,useCompositeFormControl}from"./internal/form-control.js";import{useHostDirection}from"./host-provider.js";import{reconcileCollectionState}from"./internal/collection.js";import{useControlledStateInvariant}from"./internal/controlled-state.js";const rootKey=Symbol("SectileRadioGroupRoot");const itemKey=Symbol("SectileRadioGroupItem");const RadioGroupRoot=defineComponent({name:"SectileRadioGroupRoot",inheritAttrs:false,props:{items:{type:Array,required:true},modelValue:{type:String,default:void 0},defaultValue:{type:String,default:""},disabledItems:{type:Array,default:()=>[]},disabled:{type:Boolean,default:false},readonly:{type:Boolean,default:false},orientation:{type:String,default:"vertical"},name:{type:String,default:void 0},form:{type:String,default:void 0},required:{type:Boolean,default:false},as:{type:[String,Object,Function],default:"div"},asChild:{type:Boolean,default:false}},emits:{"update:modelValue":_value=>true,highlight:_value=>true},slots:Object,setup(props,{attrs,emit,slots}){const direction=useHostDirection();const rootElement=shallowRef(null);const inputElements=[];const participation=useCompositeFormControl({root:rootElement,submissions:()=>props.items.map((_,index)=>({element:()=>inputElements[index]??null,capabilities:hiddenInputSubmissionCapabilities}))});provideFormControlOwner();const controlled=useControlledStateInvariant("RadioGroupRoot","modelValue",()=>props.modelValue);const makeController=(value2,highlightedValue=value2||null)=>{const selected=value2===""?[]:[value2];const result=createListboxControllerFromItems({items:props.items,selectionMode:"single",disabledItems:props.disabledItems,disabled:props.disabled,readOnly:props.readonly,orientation:props.orientation,direction:direction.value,policies:{selectionFollowsFocus:true},...controlled?{value:selected}:{defaultValue:selected},defaultHighlightedValue:highlightedValue??props.items.find(id=>!props.disabledItems.includes(id))??null,onValueChange:({value:next})=>emit("update:modelValue",next[0]??""),onHighlightedValueChange:({value:next})=>emit("highlight",next)});if(!result.ok)throw new TypeError(result.error.message);return result.value};const controller=shallowRef(makeController(controlled?props.modelValue:props.defaultValue));const snapshot=shallowRef(controller.value.getSnapshot());const rebuild=()=>{const requested=controlled?props.modelValue:snapshot.value.state.selection.selected[0]??"";const reconciled=reconcileCollectionState(props.items,requested===""?[]:[requested],snapshot.value.state.cursor.current,props.disabledItems,"single");const current=reconciled.selected[0]??"";controller.value=makeController(current,reconciled.current);snapshot.value=controller.value.getSnapshot();if(controlled&&current!==requested)emit("update:modelValue",current)};watch(()=>props.modelValue,next=>{if(!controlled||next===void 0)return;const result=controller.value.syncControlledValues({value:next===""?[]:[next]});if(!result.ok)throw new TypeError(result.error.message);snapshot.value=result.value});watch([()=>props.items,()=>props.disabledItems,()=>props.disabled,()=>props.readonly,()=>props.orientation,direction],rebuild);const value=computed(()=>snapshot.value.state.selection.selected[0]??"");const highlighted=computed(()=>snapshot.value.state.cursor.current);const disabled=computed(()=>props.disabled);const disabledItems=computed(()=>new Set(props.disabledItems));const apply=(result,root)=>{if(!result.ok)return false;snapshot.value=result.snapshot;if(root!==void 0)void nextTick(()=>focusItem(root,result.snapshot.state.cursor.current));return true};const part=usePartContract("radio-group","root");provide(rootKey,{value,highlighted,disabled,disabledItems,partContract:part,select:(id,target)=>apply(controller.value.handleEvent({type:"activate",id}),target.closest('[role="radiogroup"]'))});const rootAttributes=computed(()=>getRadioGroupRootAttributes({orientation:props.orientation,direction:direction.value,disabled:props.disabled,readOnly:props.readonly}));const slotProps=computed(()=>({value:value.value,highlightedValue:highlighted.value,disabled:props.disabled,readonly:props.readonly}));return()=>{const root=h(Primitive,mergeProps(attrs,rootAttributes.value,{as:props.as,asChild:props.asChild,elementRef:element=>{rootElement.value=element},"data-scope":part.scope,onKeydown:event=>{if(!apply(controller.value.handleKeyboardInput(event),event.currentTarget))return;event.preventDefault()}},participation.controlProps.value),{default:()=>slots["default"]?.(slotProps.value)});if(!participation.participating&&props.name===void 0&&props.form===void 0&&!props.required)return root;return[root,...props.items.map((id,index)=>h("input",mergeProps(getRadioGroupInputAttributes({...props.name===void 0?{}:{name:props.name},...props.form===void 0?{}:{form:props.form},value:id,checked:value.value===id,required:props.required,disabled:props.disabled||props.disabledItems.includes(id)}),{ref:element=>{inputElements[index]=element instanceof HTMLInputElement?element:null},style:visuallyHiddenInputStyle})))]}}});const RadioGroupItem=defineComponent({name:"SectileRadioGroupItem",inheritAttrs:false,props:{value:{type:String,required:true},disabled:{type:Boolean,default:false},as:{type:[String,Object,Function],default:"button"},asChild:{type:Boolean,default:false}},slots:Object,setup(props,{attrs,slots}){const root=useRoot("RadioGroupItem");const part={scope:root.partContract.scope,part:root.partContract.parts["item"]??"item"};const state=computed(()=>({value:props.value,checked:root.value.value===props.value,highlighted:root.highlighted.value===props.value,disabled:root.disabled.value||props.disabled||root.disabledItems.value.has(props.value)}));provide(itemKey,{state,partContract:root.partContract});const attributes=computed(()=>getRadioGroupItemAttributes({id:props.value,checked:state.value.checked,highlighted:state.value.highlighted,disabled:state.value.disabled}));return()=>h(Primitive,mergeProps(attrs,attributes.value,{as:props.as,asChild:props.asChild,"data-scope":part.scope,onClick:event=>{if(!event.defaultPrevented&&!state.value.disabled)root.select(props.value,event.currentTarget)}}),{default:()=>slots["default"]?.(state.value)})}});const RadioGroupIndicator=defineComponent({name:"SectileRadioGroupIndicator",inheritAttrs:false,props:{as:{type:[String,Object,Function],default:"span"},asChild:{type:Boolean,default:false}},slots:Object,setup(props,{attrs,slots}){const item=inject(itemKey);if(item===void 0)throw new TypeError("RadioGroupIndicator must be used inside RadioGroupItem.");const part={scope:item.partContract.scope,part:item.partContract.parts["indicator"]??"indicator"};return()=>h(Primitive,mergeProps(attrs,{as:props.as,asChild:props.asChild,hidden:!item.state.value.checked,"aria-hidden":"true","data-scope":part.scope,"data-part":part.part,"data-state":item.state.value.checked?"checked":"unchecked"}),{default:()=>slots["default"]?.(item.state.value)})}});function useRoot(part){const root=inject(rootKey);if(root===void 0)throw new TypeError(`${part} must be used inside RadioGroupRoot.`);return root}function focusItem(root,id){if(id===null)return;for(const item of root.querySelectorAll("[data-radio-group-id]"))if(item.dataset["radioGroupId"]===id)item.focus()}export{RadioGroupIndicator,RadioGroupItem,RadioGroupRoot};
1
+ import{computed,defineComponent,h,inject,mergeProps,nextTick,provide,shallowRef,watch}from"vue";import{getRadioGroupInputAttributes,getRadioGroupItemAttributes,getRadioGroupRootAttributes}from"@sectile/dom/radio-group";import{createListboxControllerFromItems}from"@sectile/dom/listbox";import{Primitive}from"./primitive.js";import{visuallyHiddenInputStyle}from"./internal/native-input.js";import{usePartContract}from"./internal/part-contract.js";import{provideFormControlOwner}from"./internal/form-control.js";import{hiddenInputSubmissionCapabilities,useCompositeFormControl}from"./internal/form-control.js";import{useHostDirection}from"./host-provider.js";import{reconcileCollectionState}from"./internal/collection.js";import{useControlledStateInvariant}from"./internal/controlled-state.js";import{conditionalPresenceProps,useConditionalPresence}from"./internal/conditional-presence.js";const rootKey=Symbol("SectileRadioGroupRoot");const itemKey=Symbol("SectileRadioGroupItem");const RadioGroupRoot=defineComponent({name:"SectileRadioGroupRoot",inheritAttrs:false,props:{items:{type:Array,required:true},modelValue:{type:String,default:void 0},defaultValue:{type:String,default:""},disabledItems:{type:Array,default:()=>[]},disabled:{type:Boolean,default:false},readonly:{type:Boolean,default:false},orientation:{type:String,default:"vertical"},name:{type:String,default:void 0},form:{type:String,default:void 0},required:{type:Boolean,default:false},as:{type:[String,Object,Function],default:"div"},asChild:{type:Boolean,default:false}},emits:{"update:modelValue":_value=>true,highlight:_value=>true},slots:Object,setup(props,{attrs,emit,slots}){const direction=useHostDirection();const rootElement=shallowRef(null);const inputElements=[];const participation=useCompositeFormControl({root:rootElement,submissions:()=>props.items.map((_,index)=>({element:()=>inputElements[index]??null,capabilities:hiddenInputSubmissionCapabilities}))});provideFormControlOwner();const controlled=useControlledStateInvariant("RadioGroupRoot","modelValue",()=>props.modelValue);const makeController=(value2,highlightedValue=value2||null)=>{const selected=value2===""?[]:[value2];const result=createListboxControllerFromItems({items:props.items,selectionMode:"single",disabledItems:props.disabledItems,disabled:props.disabled,readOnly:props.readonly,orientation:props.orientation,direction:direction.value,policies:{selectionFollowsFocus:true},...controlled?{value:selected}:{defaultValue:selected},defaultHighlightedValue:highlightedValue??props.items.find(id=>!props.disabledItems.includes(id))??null,onValueChange:({value:next})=>emit("update:modelValue",next[0]??""),onHighlightedValueChange:({value:next})=>emit("highlight",next)});if(!result.ok)throw new TypeError(result.error.message);return result.value};const controller=shallowRef(makeController(controlled?props.modelValue:props.defaultValue));const snapshot=shallowRef(controller.value.getSnapshot());const rebuild=()=>{const requested=controlled?props.modelValue:snapshot.value.state.selection.selected[0]??"";const reconciled=reconcileCollectionState(props.items,requested===""?[]:[requested],snapshot.value.state.cursor.current,props.disabledItems,"single");const current=reconciled.selected[0]??"";controller.value=makeController(current,reconciled.current);snapshot.value=controller.value.getSnapshot();if(controlled&&current!==requested)emit("update:modelValue",current)};watch(()=>props.modelValue,next=>{if(!controlled||next===void 0)return;const result=controller.value.syncControlledValues({value:next===""?[]:[next]});if(!result.ok)throw new TypeError(result.error.message);snapshot.value=result.value});watch([()=>props.items,()=>props.disabledItems,()=>props.disabled,()=>props.readonly,()=>props.orientation,direction],rebuild);const value=computed(()=>snapshot.value.state.selection.selected[0]??"");const highlighted=computed(()=>snapshot.value.state.cursor.current);const disabled=computed(()=>props.disabled);const disabledItems=computed(()=>new Set(props.disabledItems));const apply=(result,root)=>{if(!result.ok)return false;snapshot.value=result.snapshot;if(root!==void 0)void nextTick(()=>focusItem(root,result.snapshot.state.cursor.current));return true};const part=usePartContract("radio-group","root");provide(rootKey,{value,highlighted,disabled,disabledItems,partContract:part,select:(id,target)=>apply(controller.value.handleEvent({type:"activate",id}),target.closest('[role="radiogroup"]'))});const rootAttributes=computed(()=>getRadioGroupRootAttributes({orientation:props.orientation,direction:direction.value,disabled:props.disabled,readOnly:props.readonly}));const slotProps=computed(()=>({value:value.value,highlightedValue:highlighted.value,disabled:props.disabled,readonly:props.readonly}));return()=>{const root=h(Primitive,mergeProps(attrs,rootAttributes.value,{as:props.as,asChild:props.asChild,elementRef:element=>{rootElement.value=element},"data-scope":part.scope,onKeydown:event=>{if(!apply(controller.value.handleKeyboardInput(event),event.currentTarget))return;event.preventDefault()}},participation.controlProps.value),{default:()=>slots["default"]?.(slotProps.value)});if(!participation.participating&&props.name===void 0&&props.form===void 0&&!props.required)return root;return[root,...props.items.map((id,index)=>h("input",mergeProps(getRadioGroupInputAttributes({...props.name===void 0?{}:{name:props.name},...props.form===void 0?{}:{form:props.form},value:id,checked:value.value===id,required:props.required,disabled:props.disabled||props.disabledItems.includes(id)}),{ref:element=>{inputElements[index]=element instanceof HTMLInputElement?element:null},style:visuallyHiddenInputStyle})))]}}});const RadioGroupItem=defineComponent({name:"SectileRadioGroupItem",inheritAttrs:false,props:{value:{type:String,required:true},disabled:{type:Boolean,default:false},as:{type:[String,Object,Function],default:"button"},asChild:{type:Boolean,default:false}},slots:Object,setup(props,{attrs,slots}){const root=useRoot("RadioGroupItem");const part={scope:root.partContract.scope,part:root.partContract.parts["item"]??"item"};const state=computed(()=>({value:props.value,checked:root.value.value===props.value,highlighted:root.highlighted.value===props.value,disabled:root.disabled.value||props.disabled||root.disabledItems.value.has(props.value)}));provide(itemKey,{state,partContract:root.partContract});const attributes=computed(()=>getRadioGroupItemAttributes({id:props.value,checked:state.value.checked,highlighted:state.value.highlighted,disabled:state.value.disabled}));return()=>h(Primitive,mergeProps(attrs,attributes.value,{as:props.as,asChild:props.asChild,"data-scope":part.scope,onClick:event=>{if(!event.defaultPrevented&&!state.value.disabled)root.select(props.value,event.currentTarget)}}),{default:()=>slots["default"]?.(state.value)})}});const RadioGroupIndicator=defineComponent({name:"SectileRadioGroupIndicator",inheritAttrs:false,props:{...conditionalPresenceProps,as:{type:[String,Object,Function],default:"span"},asChild:{type:Boolean,default:false}},slots:Object,setup(props,{attrs,slots}){const item=inject(itemKey);if(item===void 0)throw new TypeError("RadioGroupIndicator must be used inside RadioGroupItem.");const part={scope:item.partContract.scope,part:item.partContract.parts["indicator"]??"indicator"};const active=computed(()=>item.state.value.checked);const forcePresent=computed(()=>props.forcePresent);const presence=useConditionalPresence(active,forcePresent);return()=>h(Primitive,mergeProps(attrs,{as:props.as,asChild:props.asChild,elementRef:presence.register,hidden:presence.hidden.value,"aria-hidden":"true","data-scope":part.scope,"data-part":part.part,"data-state":item.state.value.checked?"checked":"unchecked"}),{default:()=>slots["default"]?.(item.state.value)})}});function useRoot(part){const root=inject(rootKey);if(root===void 0)throw new TypeError(`${part} must be used inside RadioGroupRoot.`);return root}function focusItem(root,id){if(id===null)return;for(const item of root.querySelectorAll("[data-radio-group-id]"))if(item.dataset["radioGroupId"]===id)item.focus()}export{RadioGroupIndicator,RadioGroupItem,RadioGroupRoot};
2
2
  //# sourceMappingURL=radio-group.js.map
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/radio-group.ts"],"mappings":"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","names":["value"],"file":"radio-group.js"}
1
+ {"version":3,"sources":["../src/radio-group.ts"],"mappings":"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","names":["value"],"file":"radio-group.js"}