@sectile/vue 0.11.1 → 0.13.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (84) hide show
  1. package/dist/calendar.js +1 -1
  2. package/dist/calendar.js.map +1 -1
  3. package/dist/chart.d.ts +542 -0
  4. package/dist/chart.js +2 -0
  5. package/dist/chart.js.map +1 -0
  6. package/dist/data-grid.d.ts +2 -2
  7. package/dist/data-grid.js +1 -1
  8. package/dist/data-grid.js.map +1 -1
  9. package/dist/data-table.js +1 -1
  10. package/dist/data-table.js.map +1 -1
  11. package/dist/data-tree-grid.d.ts +2 -2
  12. package/dist/data-tree-grid.js +1 -1
  13. package/dist/data-tree-grid.js.map +1 -1
  14. package/dist/date-picker.js +1 -1
  15. package/dist/date-picker.js.map +1 -1
  16. package/dist/date-range-picker.js +1 -1
  17. package/dist/date-range-picker.js.map +1 -1
  18. package/dist/date-time-picker.js +1 -1
  19. package/dist/date-time-picker.js.map +1 -1
  20. package/dist/date-time-range-picker.js +1 -1
  21. package/dist/date-time-range-picker.js.map +1 -1
  22. package/dist/form.d.ts +45 -23
  23. package/dist/form.js +1 -1
  24. package/dist/form.js.map +1 -1
  25. package/dist/internal/calendar-capability.d.ts +1 -0
  26. package/dist/internal/calendar-capability.js +2 -0
  27. package/dist/internal/calendar-capability.js.map +1 -0
  28. package/dist/internal/date-picker-capability.d.ts +1 -0
  29. package/dist/internal/date-picker-capability.js +2 -0
  30. package/dist/internal/date-picker-capability.js.map +1 -0
  31. package/dist/internal/date-picker.d.ts +8 -7
  32. package/dist/internal/date-picker.js +1 -1
  33. package/dist/internal/date-picker.js.map +1 -1
  34. package/dist/internal/date-range-picker-capability.d.ts +1 -0
  35. package/dist/internal/date-range-picker-capability.js +2 -0
  36. package/dist/internal/date-range-picker-capability.js.map +1 -0
  37. package/dist/internal/date-time-picker-capability.d.ts +1 -0
  38. package/dist/internal/date-time-picker-capability.js +2 -0
  39. package/dist/internal/date-time-picker-capability.js.map +1 -0
  40. package/dist/internal/date-time-range-picker-capability.d.ts +1 -0
  41. package/dist/internal/date-time-range-picker-capability.js +2 -0
  42. package/dist/internal/date-time-range-picker-capability.js.map +1 -0
  43. package/dist/internal/month-picker-capability.d.ts +1 -0
  44. package/dist/internal/month-picker-capability.js +2 -0
  45. package/dist/internal/month-picker-capability.js.map +1 -0
  46. package/dist/internal/month-range-picker-capability.d.ts +1 -0
  47. package/dist/internal/month-range-picker-capability.js +2 -0
  48. package/dist/internal/month-range-picker-capability.js.map +1 -0
  49. package/dist/internal/picker-capability.d.ts +27 -0
  50. package/dist/internal/picker-capability.js +2 -0
  51. package/dist/internal/picker-capability.js.map +1 -0
  52. package/dist/internal/range-calendar-capability.d.ts +1 -0
  53. package/dist/internal/range-calendar-capability.js +2 -0
  54. package/dist/internal/range-calendar-capability.js.map +1 -0
  55. package/dist/internal/tabular-parts.d.ts +4 -0
  56. package/dist/internal/tabular-parts.js +1 -1
  57. package/dist/internal/tabular-parts.js.map +1 -1
  58. package/dist/internal/tabular-profile.d.ts +4 -4
  59. package/dist/internal/tabular-profile.js.map +1 -1
  60. package/dist/internal/virtual-core.d.ts +4 -9
  61. package/dist/internal/virtual-core.js.map +1 -1
  62. package/dist/internal/virtual-list.js +1 -1
  63. package/dist/internal/virtual-list.js.map +1 -1
  64. package/dist/internal/year-picker-capability.d.ts +1 -0
  65. package/dist/internal/year-picker-capability.js +2 -0
  66. package/dist/internal/year-picker-capability.js.map +1 -0
  67. package/dist/internal/year-range-picker-capability.d.ts +1 -0
  68. package/dist/internal/year-range-picker-capability.js +2 -0
  69. package/dist/internal/year-range-picker-capability.js.map +1 -0
  70. package/dist/month-picker.js +1 -1
  71. package/dist/month-picker.js.map +1 -1
  72. package/dist/month-range-picker.js +1 -1
  73. package/dist/month-range-picker.js.map +1 -1
  74. package/dist/range-calendar.js +1 -1
  75. package/dist/range-calendar.js.map +1 -1
  76. package/dist/tabs.js +1 -1
  77. package/dist/tabs.js.map +1 -1
  78. package/dist/text.js +1 -1
  79. package/dist/text.js.map +1 -1
  80. package/dist/year-picker.js +1 -1
  81. package/dist/year-picker.js.map +1 -1
  82. package/dist/year-range-picker.js +1 -1
  83. package/dist/year-range-picker.js.map +1 -1
  84. package/package.json +22 -11
@@ -1,9 +1,8 @@
1
1
  import { type MaybeRefOrGetter, type PropType, type Ref, type ShallowRef, type SlotsType, type VNodeChild } from 'vue';
2
- import type { LinearLayoutState, LinearPatch } from '@sectile/virtual/linear-layout';
3
- import type { Extent } from '@sectile/virtual/extent-index';
2
+ import type { StableID } from '@sectile/core';
4
3
  import { createAxisMeasurementResolver, virtualContentStyle, virtualItemStyle, type VirtualInsets, type VirtualLayoutPlan, type VirtualLayoutStrategy, type VirtualMeasurementResolver, type VirtualPlacement, type VirtualRect, type VirtualScrollAlignment, type VirtualScrollWriter, type VirtualViewportReader, type VirtualizerConnection, type VirtualizerEnvironment, type VirtualizerErrorHandler } from '@sectile/dom/virtual';
5
4
  import { type PrimitiveAs } from '../primitive.js';
6
- export interface UseVirtualizerOptions<State, ID extends string, Measurement, Mutation> {
5
+ export interface UseVirtualizerOptions<State, ID extends StableID, Measurement, Mutation> {
7
6
  readonly state: Ref<State>;
8
7
  readonly strategy: VirtualLayoutStrategy<State, ID, Measurement, Mutation>;
9
8
  readonly root?: ShallowRef<HTMLElement | null | undefined>;
@@ -17,7 +16,7 @@ export interface UseVirtualizerOptions<State, ID extends string, Measurement, Mu
17
16
  readonly onStateChange?: (state: State) => void;
18
17
  readonly onError?: VirtualizerErrorHandler;
19
18
  }
20
- export interface UseVirtualizerReturn<State, ID extends string, Measurement, Mutation> {
19
+ export interface UseVirtualizerReturn<State, ID extends StableID, Measurement, Mutation> {
21
20
  readonly root: ShallowRef<HTMLElement | null | undefined>;
22
21
  readonly plan: ShallowRef<VirtualLayoutPlan<ID> | null>;
23
22
  readonly connection: ShallowRef<VirtualizerConnection<State, ID, Measurement, Mutation> | undefined>;
@@ -26,10 +25,6 @@ export interface UseVirtualizerReturn<State, ID extends string, Measurement, Mut
26
25
  mutate(mutation: Mutation): ReturnType<VirtualizerConnection<State, ID, Measurement, Mutation>['mutate']>;
27
26
  scrollTo(id: ID, alignment?: VirtualScrollAlignment): ReturnType<VirtualizerConnection<State, ID, Measurement, Mutation>['scrollTo']>;
28
27
  refresh(): void;
29
- flush(): ReturnType<VirtualizerConnection<LinearLayoutState<string>, string, {
30
- readonly index: number;
31
- readonly extent: Extent;
32
- }, LinearPatch<string>>['flush']>;
33
28
  flush(): ReturnType<VirtualizerConnection<State, ID, Measurement, Mutation>['flush']>;
34
29
  }
35
30
  export type VirtualizerItemSize = 'none' | 'width' | 'height' | 'both';
@@ -65,7 +60,7 @@ export interface VirtualizerItemProps {
65
60
  export interface VirtualizerRootExpose extends VirtualizerRootSlotProps {
66
61
  readonly root: ShallowRef<HTMLElement | null | undefined>;
67
62
  }
68
- export declare function useVirtualizer<State, ID extends string, Measurement, Mutation>(options: UseVirtualizerOptions<State, ID, Measurement, Mutation>): UseVirtualizerReturn<State, ID, Measurement, Mutation>;
63
+ export declare function useVirtualizer<State, ID extends StableID, Measurement, Mutation>(options: UseVirtualizerOptions<State, ID, Measurement, Mutation>): UseVirtualizerReturn<State, ID, Measurement, Mutation>;
69
64
  export declare const VirtualizerRoot: import("vue").DefineComponent<import("vue").ExtractPropTypes<{
70
65
  defaultState: {
71
66
  type: PropType<object>;
@@ -1 +1 @@
1
- {"version":3,"file":"virtual-core.js","names":["computed","defineComponent","h","inject","mergeProps","onBeforeUnmount","onScopeDispose","provide","shallowRef","toValue","watch","createAxisMeasurementResolver","createVirtualizer","virtualContentStyle","virtualItemStyle","Primitive","virtualizerContextKey","Symbol","useVirtualizer","options","root","plan","connection","items","Map","registrations","report","error","onError","updateInitialPlan","initialViewport","undefined","value","overscan","result","strategy","tryQuery","state","viewport","ok","onPlanChange","disconnect","clear","connect","element","next","measure","readViewport","writeScroll","environment","onStateChange","item","id","set","registerItem","flush","immediate","setState","setOverscan","deep","requireConnection","TypeError","Object","freeze","get","delete","measurements","mutate","mutation","scrollTo","alignment","refresh","VirtualizerRoot","name","inheritAttrs","props","defaultState","type","required","Number","default","Function","as","String","asChild","Boolean","emits","stateChange","_state","planChange","_plan","_error","slots","setup","attrs","emit","expose","virtualizer","constructionWarningShown","previous","every","index","is","console","warn","slotProps","placements","elementRef","HTMLElement","VirtualizerContent","useVirtualizerRoot","style","position","VirtualizerItem","placement","size","unregister","sizing","width","height","visible","part"],"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","shallowRef","toValue","watch","createAxisMeasurementResolver","createVirtualizer","virtualContentStyle","virtualItemStyle","Primitive","virtualizerContextKey","Symbol","useVirtualizer","options","root","plan","connection","items","Map","registrations","report","error","onError","updateInitialPlan","initialViewport","undefined","value","overscan","result","strategy","tryQuery","state","viewport","ok","onPlanChange","disconnect","clear","connect","element","next","measure","readViewport","writeScroll","environment","onStateChange","item","id","set","registerItem","flush","immediate","setState","setOverscan","deep","requireConnection","TypeError","Object","freeze","get","delete","measurements","mutate","mutation","scrollTo","alignment","refresh","VirtualizerRoot","name","inheritAttrs","props","defaultState","type","required","Number","default","Function","as","String","asChild","Boolean","emits","stateChange","_state","planChange","_plan","_error","slots","setup","attrs","emit","expose","virtualizer","constructionWarningShown","previous","every","index","is","console","warn","slotProps","placements","elementRef","HTMLElement","VirtualizerContent","useVirtualizerRoot","style","position","VirtualizerItem","placement","size","unregister","sizing","width","height","visible","part"],"sources":["../../src/internal/virtual-core.ts"],"mappings":"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","ignoreList":[]}
@@ -1,2 +1,2 @@
1
- import{defineComponent,h,nextTick,onBeforeUnmount,onMounted,shallowRef,watch}from'vue';import{createSequence}from'@sectile/core/sequence';import{createExtentIndex,createUniformExtentIndex}from'@sectile/virtual/extent-index';import{linearLayoutStrategy,tryApplyLinearPatch,createLinearLayout}from'@sectile/virtual/linear-layout';import{createAxisMeasurementResolver,virtualItemStyle}from'@sectile/dom/virtual';import{Primitive}from'../primitive.js';import{VirtualizerContent,VirtualizerRoot,useVirtualizer}from'./virtual-core.js';import{assertVirtualListSizeMode,createPreparedVirtualListSequence,estimatedExtent,exactExtent,prepareVirtualList,reconcileVirtualList,requireAutomaticEstimate,requiresDOMBootstrap,updatePreparedVirtualList}from'./virtual-collection-model.js';const VirtualListRuntime=/* @__PURE__ */defineComponent({name:'SectileVirtualList',inheritAttrs:false,props:{items:{type:Array,required:true},getKey:{type:Function,required:true},estimateSize:{type:[Number,Function],default:undefined},itemSize:{type:Number,default:undefined},axis:{type:String,default:'vertical'},gap:{type:Number,default:0},overscan:{type:[Number,Object],default:240},maxItems:{type:Number,default:1_000_000},initialViewport:{type:Object,default:undefined},as:{type:String,default:'div'},contentAs:{type:String,default:'div'},itemAs:{type:String,default:'div'},itemAttributes:{type:Function,default:undefined}},emits:{stateChange:_state=>true,planChange:_plan=>true,error:_error=>true},slots:Object,setup(props,{attrs,emit,expose,slots}){assertVirtualListSizeMode(props.itemSize,props.estimateSize);const prepared=shallowRef(prepareVirtualList(props.items,props.getKey,props.maxItems));const automaticEstimate=shallowRef();const bootstrapCount=shallowRef(requiresDOMBootstrap(props.itemSize,props.estimateSize)&&prepared.value.domain.size>0?1:0);const bootstrapElements=new Map;let bootstrapScheduled=false;let disposed=false;const state=shallowRef(requiresDOMBootstrap(props.itemSize,props.estimateSize)?createEmptyVirtualListState(props):createVirtualListState(prepared.value,props.items,props));const measure=props.itemSize===undefined?createVirtualListMeasurementResolver(props.axis):undefined;const virtualizer=useVirtualizer({state,strategy:linearLayoutStrategy,overscan:()=>props.overscan,...props.initialViewport===undefined?{}:{initialViewport:props.initialViewport},...measure===undefined?{}:{measure},onStateChange:value=>{emit('stateChange',value)},onPlanChange:value=>{emit('planChange',value)},onError:error=>{emit('error',error)}});const registrations=new Map;const elements=new Map;const itemRefs=new Map;const pendingMeasurements=new Set;const forcedMeasurements=new Set;let measurementScheduled=false;const setRootElement=value=>{virtualizer.root.value=value instanceof HTMLElement?value:null};const measurePendingItems=()=>{measurementScheduled=false;if(disposed||pendingMeasurements.size===0)return;const connection=virtualizer.connection.value;if(connection===undefined)return;const queued=Array.from(pendingMeasurements);pendingMeasurements.clear();const measurements=[];for(const id of queued){const element=elements.get(id);const index=state.value.domain.indexOf(id);if(element===undefined||index===null)continue;const current=state.value.extents.extentAt(index);if(current?.kind==='exact'&&!forcedMeasurements.has(id))continue;const measurement=measureVirtualListElement(props.axis,id,element,state.value);if(measurement!==null)measurements.push(measurement)}for(const id of queued)forcedMeasurements.delete(id);if(measurements.length>0)connection.measure(measurements)};const scheduleItemMeasurement=(id,force=false)=>{if(props.itemSize!==undefined)return;pendingMeasurements.add(id);if(force)forcedMeasurements.add(id);if(measurementScheduled)return;measurementScheduled=true;void nextTick(measurePendingItems)};const scheduleChangedRenderedItemMeasurements=(previousPrepared,previousState,nextPrepared,nextState)=>{if(props.itemSize!==undefined)return;for(const id of elements.keys()){const previousIndex=previousState.domain.indexOf(id);const nextIndex=nextState.domain.indexOf(id);if(previousIndex!==null&&nextIndex!==null&&!Object.is(previousPrepared.items[previousIndex],nextPrepared.items[nextIndex]))scheduleItemMeasurement(id,true)}};const itemRef=id=>{const existing=itemRefs.get(id);if(existing!==undefined)return existing;const callback=value=>{const element=value instanceof HTMLElement?value:null;if(element!==null&&elements.get(id)===element)return;registrations.get(id)?.();registrations.delete(id);elements.delete(id);if(element!==null){elements.set(id,element);registrations.set(id,virtualizer.registerItem(element,id));scheduleItemMeasurement(id)}};itemRefs.set(id,callback);return callback};const bootstrapItemRef=(index,value)=>{const element=value instanceof HTMLElement?value:null;if(element===null)bootstrapElements.delete(index);else{bootstrapElements.set(index,element);scheduleBootstrap()}};const completeBootstrap=()=>{if(automaticEstimate.value!==undefined||!requiresDOMBootstrap(props.itemSize,props.estimateSize)||prepared.value.domain.size===0)return;const count=Math.min(bootstrapCount.value,prepared.value.domain.size);const extents=[];for(let index=0;index<count;index+=1){const element=bootstrapElements.get(index);if(element===undefined)return;const bounds=element.getBoundingClientRect();const extent=props.axis==='vertical'?bounds.height:bounds.width;if(!Number.isFinite(extent)||extent<=0)return;extents.push(extent)}const total=extents.reduce((sum,extent)=>sum+extent,0)+props.gap*Math.max(0,extents.length-1);const root=virtualizer.root.value;const measuredViewportExtent=props.axis==='vertical'?root?.clientHeight??0:root?.clientWidth??0;const viewportExtent=measuredViewportExtent>0?measuredViewportExtent:props.axis==='vertical'?props.initialViewport?.height??0:props.initialViewport?.width??0;const target=viewportExtent+bootstrapTrailingOverscanExtent(props.overscan,props.axis);const average=extents.reduce((sum,extent)=>sum+extent,0)/extents.length;if(target>total&&count<prepared.value.domain.size){const nextCount=Math.min(prepared.value.domain.size,Math.max(count+1,Math.ceil((target+props.gap)/(average+props.gap))));bootstrapCount.value=nextCount;return}automaticEstimate.value=average;bootstrapCount.value=0;bootstrapElements.clear();state.value=createVirtualListState(prepared.value,props.items,props,automaticEstimate.value)};function scheduleBootstrap(){if(disposed||bootstrapScheduled||automaticEstimate.value!==undefined||bootstrapCount.value===0)return;bootstrapScheduled=true;void nextTick(()=>{bootstrapScheduled=false;if(!disposed)completeBootstrap()})}onMounted(scheduleBootstrap);watch(()=>props.items,items=>{const previousPrepared=prepared.value;const previousState=state.value;const next=updatePreparedVirtualList(previousPrepared,items,props.getKey);if(requiresDOMBootstrap(props.itemSize,props.estimateSize)&&automaticEstimate.value===undefined){prepared.value=next;bootstrapCount.value=next.domain.size>0?1:0;scheduleBootstrap();return}const patch=reconcileVirtualList(state.value,next,items,props,automaticEstimate.value);if(patch===null){scheduleChangedRenderedItemMeasurements(previousPrepared,previousState,next,previousState);prepared.value=next;return}const result=virtualizer.connection.value===undefined?tryApplyLinearPatch(state.value,patch):virtualizer.connection.value.mutate(patch);if(!result.ok){if(virtualizer.connection.value===undefined)emit('error',result.error);return}if(virtualizer.connection.value===undefined)state.value=result.value.state;scheduleChangedRenderedItemMeasurements(previousPrepared,previousState,next,result.value.state);for(const id of itemRefs.keys()){if(result.value.state.domain.indexOf(id)===null)itemRefs.delete(id)}prepared.value=next},{flush:'sync'});let constructionWarningShown=false;watch(()=>[props.axis,props.gap,props.maxItems,props.itemSize,props.estimateSize,props.initialViewport?.x,props.initialViewport?.y,props.initialViewport?.width,props.initialViewport?.height],(value,previous)=>{if(constructionWarningShown||value.every((item,index)=>Object.is(item,previous[index])))return;constructionWarningShown=true;console.warn('[Sectile] VirtualList axis, gap, maxItems, itemSize, estimateSize, and initialViewport are construction-time options. Remount the list to change them.')},{flush:'sync'});onBeforeUnmount(()=>{disposed=true;for(const unregister of registrations.values())unregister();registrations.clear();elements.clear();itemRefs.clear();bootstrapElements.clear();pendingMeasurements.clear();forcedMeasurements.clear()});expose(Object.freeze({root:virtualizer.root,get state(){return state.value},get plan(){return virtualizer.plan.value},scrollTo:virtualizer.scrollTo,refresh:virtualizer.refresh,flush:virtualizer.flush}));return()=>{const plan=virtualizer.plan.value;const rootStyle=attrs['style'];const rootAttributes={...attrs};delete rootAttributes['style'];const bootstrapping=automaticEstimate.value===undefined&&bootstrapCount.value>0;const contentStyle=props.axis==='vertical'?{position:'relative',width:'100%',...bootstrapping?{}:{height:`${plan?.contentSize.height??0}px`}}:{position:'relative',height:'100%',...bootstrapping?{display:'flex'}:{width:`${plan?.contentSize.width??0}px`}};const children=plan?.placements.map(placement=>{const index=placement.index;const value=props.items[index];if(index>=props.items.length||prepared.value.domain.at(index)!==placement.id)return null;const itemAttributes=props.itemAttributes?.(value,index)??{};const itemStyle=virtualItemStyle(placement,props.itemSize===undefined?undefined:props.axis==='vertical'?{height:true}:{width:true});const rendered=slots['default']?.({value,key:placement.id,index,placement});const itemChildren=rendered===undefined||rendered===null?[]:Array.isArray(rendered)?rendered:[rendered];return h(props.itemAs,{...itemAttributes,key:placement.id,...props.itemSize===undefined?{ref:itemRef(placement.id)}:{},style:[itemAttributes['style'],itemStyle,props.axis==='vertical'?{width:'100%'}:{height:'100%'}],'data-scope':'virtual-list','data-part':'item','data-index':placement.index,'data-visible':placement.visible?'':undefined},itemChildren)})??[];if(automaticEstimate.value===undefined&&bootstrapCount.value>0){children.push(...renderVirtualListBootstrapItems(prepared.value,props.items,bootstrapCount.value,props,slots['default'],bootstrapItemRef))}if(prepared.value.domain.size===0){const empty=slots['empty']?.();if(empty!==undefined&&empty!==null)children.push(empty)}return h(props.as,{...rootAttributes,ref:setRootElement,style:[{overflow:'auto'},rootStyle],'data-scope':'virtual-list','data-part':'root'},[h(props.contentAs,{style:contentStyle,'data-scope':'virtual-list','data-part':'content'},children)])}}});export const VirtualList=VirtualListRuntime;export function createVirtualListMeasurementResolver(axis){return({element,placement,state})=>measureVirtualListElement(axis,placement.id,element,state)}function measureVirtualListElement(axis,id,element,state){const index=state.domain.indexOf(id);if(index===null)return null;const bounds=element.getBoundingClientRect();const value=axis==='vertical'?bounds.height:bounds.width;if(!Number.isFinite(value)||value<=0)return null;const current=state.extents.extentAt(index);if(current?.kind==='exact'&&Math.abs(current.value-value)<0.01)return null;return Object.freeze({index,extent:Object.freeze({kind:'exact',value})})}export function createVirtualListState(prepared,items,props,automaticEstimate){const estimate=props.estimateSize??automaticEstimate;const sharedExtent=props.itemSize!==undefined?exactExtent(props.itemSize):typeof estimate!=='function'?estimatedExtent(requireAutomaticEstimate(estimate),undefined,0):null;return createLinearLayout(createPreparedVirtualListSequence(prepared,props.maxItems),sharedExtent===null?createExtentIndex(Array.from({length:prepared.domain.size},(_unused,index)=>estimatedExtent(estimate,items[index],index)),{maxItems:props.maxItems}):createUniformExtentIndex(prepared.domain.size,sharedExtent,{maxItems:props.maxItems}),{axis:props.axis,gap:props.gap,crossExtent:1})}export function createEmptyVirtualListState(props){return createLinearLayout(createSequence([],{maxItems:props.maxItems,maxIDCodeUnits:1_024}),createUniformExtentIndex(0,exactExtent(0),{maxItems:props.maxItems}),{axis:props.axis,gap:props.gap,crossExtent:1})}export function bootstrapTrailingOverscanExtent(overscan,axis){if(typeof overscan==='number')return overscan;return axis==='vertical'?overscan.bottom??0:overscan.right??0}export function renderVirtualListBootstrapItems(prepared,items,count,props,render,itemRef){return Array.from({length:Math.min(count,prepared.domain.size)},(_unused,index)=>{const value=items[index];const id=prepared.domain.at(index);const attributes=props.itemAttributes?.(value,index)??{};const placement=Object.freeze({id,index,rect:Object.freeze({x:0,y:0,width:0,height:0}),visible:true});const rendered=render?.({value,key:id,index,placement});const children=rendered===undefined||rendered===null?[]:Array.isArray(rendered)?rendered:[rendered];return h(props.itemAs,{...attributes,key:id,ref:element=>itemRef(index,element),style:[attributes['style'],props.axis==='vertical'?{width:'100%'}:{height:'100%'},props.gap>0&&index>0?props.axis==='vertical'?{marginTop:`${props.gap}px`}:{marginLeft:`${props.gap}px`}:undefined],'data-scope':'virtual-list','data-part':'item','data-index':index,'data-visible':'','data-bootstrap':''},children)})}
1
+ import{defineComponent,h,nextTick,onBeforeUnmount,onMounted,shallowRef,watch}from'vue';import{createSequence}from'@sectile/core/sequence';import{createExtentIndex,createUniformExtentIndex}from'@sectile/virtual/extent-index';import{linearLayoutStrategyFor,tryApplyLinearPatch,createLinearLayout}from'@sectile/virtual/linear-layout';import{createAxisMeasurementResolver,virtualItemStyle}from'@sectile/dom/virtual';import{Primitive}from'../primitive.js';import{VirtualizerContent,VirtualizerRoot,useVirtualizer}from'./virtual-core.js';import{assertVirtualListSizeMode,createPreparedVirtualListSequence,estimatedExtent,exactExtent,prepareVirtualList,reconcileVirtualList,requireAutomaticEstimate,requiresDOMBootstrap,updatePreparedVirtualList}from'./virtual-collection-model.js';const VirtualListRuntime=/* @__PURE__ */defineComponent({name:'SectileVirtualList',inheritAttrs:false,props:{items:{type:Array,required:true},getKey:{type:Function,required:true},estimateSize:{type:[Number,Function],default:undefined},itemSize:{type:Number,default:undefined},axis:{type:String,default:'vertical'},gap:{type:Number,default:0},overscan:{type:[Number,Object],default:240},maxItems:{type:Number,default:1_000_000},initialViewport:{type:Object,default:undefined},as:{type:String,default:'div'},contentAs:{type:String,default:'div'},itemAs:{type:String,default:'div'},itemAttributes:{type:Function,default:undefined}},emits:{stateChange:_state=>true,planChange:_plan=>true,error:_error=>true},slots:Object,setup(props,{attrs,emit,expose,slots}){assertVirtualListSizeMode(props.itemSize,props.estimateSize);const prepared=shallowRef(prepareVirtualList(props.items,props.getKey,props.maxItems));const automaticEstimate=shallowRef();const bootstrapCount=shallowRef(requiresDOMBootstrap(props.itemSize,props.estimateSize)&&prepared.value.domain.size>0?1:0);const bootstrapElements=new Map;let bootstrapScheduled=false;let disposed=false;const state=shallowRef(requiresDOMBootstrap(props.itemSize,props.estimateSize)?createEmptyVirtualListState(props):createVirtualListState(prepared.value,props.items,props));const measure=props.itemSize===undefined?createVirtualListMeasurementResolver(props.axis):undefined;const virtualizer=useVirtualizer({state,strategy:linearLayoutStrategyFor(),overscan:()=>props.overscan,...props.initialViewport===undefined?{}:{initialViewport:props.initialViewport},...measure===undefined?{}:{measure},onStateChange:value=>{emit('stateChange',value)},onPlanChange:value=>{emit('planChange',value)},onError:error=>{emit('error',error)}});const registrations=new Map;const elements=new Map;const itemRefs=new Map;const pendingMeasurements=new Set;const forcedMeasurements=new Set;let measurementScheduled=false;const setRootElement=value=>{virtualizer.root.value=value instanceof HTMLElement?value:null};const measurePendingItems=()=>{measurementScheduled=false;if(disposed||pendingMeasurements.size===0)return;const connection=virtualizer.connection.value;if(connection===undefined)return;const queued=Array.from(pendingMeasurements);pendingMeasurements.clear();const measurements=[];for(const id of queued){const element=elements.get(id);const index=state.value.domain.indexOf(id);if(element===undefined||index===null)continue;const current=state.value.extents.extentAt(index);if(current?.kind==='exact'&&!forcedMeasurements.has(id))continue;const measurement=measureVirtualListElement(props.axis,id,element,state.value);if(measurement!==null)measurements.push(measurement)}for(const id of queued)forcedMeasurements.delete(id);if(measurements.length>0)connection.measure(measurements)};const scheduleItemMeasurement=(id,force=false)=>{if(props.itemSize!==undefined)return;pendingMeasurements.add(id);if(force)forcedMeasurements.add(id);if(measurementScheduled)return;measurementScheduled=true;void nextTick(measurePendingItems)};const scheduleChangedRenderedItemMeasurements=(previousPrepared,previousState,nextPrepared,nextState)=>{if(props.itemSize!==undefined)return;for(const id of elements.keys()){const previousIndex=previousState.domain.indexOf(id);const nextIndex=nextState.domain.indexOf(id);if(previousIndex!==null&&nextIndex!==null&&!Object.is(previousPrepared.items[previousIndex],nextPrepared.items[nextIndex]))scheduleItemMeasurement(id,true)}};const itemRef=id=>{const existing=itemRefs.get(id);if(existing!==undefined)return existing;const callback=value=>{const element=value instanceof HTMLElement?value:null;if(element!==null&&elements.get(id)===element)return;registrations.get(id)?.();registrations.delete(id);elements.delete(id);if(element!==null){elements.set(id,element);registrations.set(id,virtualizer.registerItem(element,id));scheduleItemMeasurement(id)}};itemRefs.set(id,callback);return callback};const bootstrapItemRef=(index,value)=>{const element=value instanceof HTMLElement?value:null;if(element===null)bootstrapElements.delete(index);else{bootstrapElements.set(index,element);scheduleBootstrap()}};const completeBootstrap=()=>{if(automaticEstimate.value!==undefined||!requiresDOMBootstrap(props.itemSize,props.estimateSize)||prepared.value.domain.size===0)return;const count=Math.min(bootstrapCount.value,prepared.value.domain.size);const extents=[];for(let index=0;index<count;index+=1){const element=bootstrapElements.get(index);if(element===undefined)return;const bounds=element.getBoundingClientRect();const extent=props.axis==='vertical'?bounds.height:bounds.width;if(!Number.isFinite(extent)||extent<=0)return;extents.push(extent)}const total=extents.reduce((sum,extent)=>sum+extent,0)+props.gap*Math.max(0,extents.length-1);const root=virtualizer.root.value;const measuredViewportExtent=props.axis==='vertical'?root?.clientHeight??0:root?.clientWidth??0;const viewportExtent=measuredViewportExtent>0?measuredViewportExtent:props.axis==='vertical'?props.initialViewport?.height??0:props.initialViewport?.width??0;const target=viewportExtent+bootstrapTrailingOverscanExtent(props.overscan,props.axis);const average=extents.reduce((sum,extent)=>sum+extent,0)/extents.length;if(target>total&&count<prepared.value.domain.size){const nextCount=Math.min(prepared.value.domain.size,Math.max(count+1,Math.ceil((target+props.gap)/(average+props.gap))));bootstrapCount.value=nextCount;return}automaticEstimate.value=average;bootstrapCount.value=0;bootstrapElements.clear();state.value=createVirtualListState(prepared.value,props.items,props,automaticEstimate.value)};function scheduleBootstrap(){if(disposed||bootstrapScheduled||automaticEstimate.value!==undefined||bootstrapCount.value===0)return;bootstrapScheduled=true;void nextTick(()=>{bootstrapScheduled=false;if(!disposed)completeBootstrap()})}onMounted(scheduleBootstrap);watch(()=>props.items,items=>{const previousPrepared=prepared.value;const previousState=state.value;const next=updatePreparedVirtualList(previousPrepared,items,props.getKey);if(requiresDOMBootstrap(props.itemSize,props.estimateSize)&&automaticEstimate.value===undefined){prepared.value=next;bootstrapCount.value=next.domain.size>0?1:0;scheduleBootstrap();return}const patch=reconcileVirtualList(state.value,next,items,props,automaticEstimate.value);if(patch===null){scheduleChangedRenderedItemMeasurements(previousPrepared,previousState,next,previousState);prepared.value=next;return}const result=virtualizer.connection.value===undefined?tryApplyLinearPatch(state.value,patch):virtualizer.connection.value.mutate(patch);if(!result.ok){if(virtualizer.connection.value===undefined)emit('error',result.error);return}if(virtualizer.connection.value===undefined)state.value=result.value.state;scheduleChangedRenderedItemMeasurements(previousPrepared,previousState,next,result.value.state);for(const id of itemRefs.keys()){if(result.value.state.domain.indexOf(id)===null)itemRefs.delete(id)}prepared.value=next},{flush:'sync'});let constructionWarningShown=false;watch(()=>[props.axis,props.gap,props.maxItems,props.itemSize,props.estimateSize,props.initialViewport?.x,props.initialViewport?.y,props.initialViewport?.width,props.initialViewport?.height],(value,previous)=>{if(constructionWarningShown||value.every((item,index)=>Object.is(item,previous[index])))return;constructionWarningShown=true;console.warn('[Sectile] VirtualList axis, gap, maxItems, itemSize, estimateSize, and initialViewport are construction-time options. Remount the list to change them.')},{flush:'sync'});onBeforeUnmount(()=>{disposed=true;for(const unregister of registrations.values())unregister();registrations.clear();elements.clear();itemRefs.clear();bootstrapElements.clear();pendingMeasurements.clear();forcedMeasurements.clear()});expose(Object.freeze({root:virtualizer.root,get state(){return state.value},get plan(){return virtualizer.plan.value},scrollTo:virtualizer.scrollTo,refresh:virtualizer.refresh,flush:virtualizer.flush}));return()=>{const plan=virtualizer.plan.value;const rootStyle=attrs['style'];const rootAttributes={...attrs};delete rootAttributes['style'];const bootstrapping=automaticEstimate.value===undefined&&bootstrapCount.value>0;const contentStyle=props.axis==='vertical'?{position:'relative',width:'100%',...bootstrapping?{}:{height:`${plan?.contentSize.height??0}px`}}:{position:'relative',height:'100%',...bootstrapping?{display:'flex'}:{width:`${plan?.contentSize.width??0}px`}};const children=plan?.placements.map(placement=>{const index=placement.index;const value=props.items[index];if(index>=props.items.length||prepared.value.domain.at(index)!==placement.id)return null;const itemAttributes=props.itemAttributes?.(value,index)??{};const itemStyle=virtualItemStyle(placement,props.itemSize===undefined?undefined:props.axis==='vertical'?{height:true}:{width:true});const rendered=slots['default']?.({value,key:placement.id,index,placement});const itemChildren=rendered===undefined||rendered===null?[]:Array.isArray(rendered)?rendered:[rendered];return h(props.itemAs,{...itemAttributes,key:placement.id,...props.itemSize===undefined?{ref:itemRef(placement.id)}:{},style:[itemAttributes['style'],itemStyle,props.axis==='vertical'?{width:'100%'}:{height:'100%'}],'data-scope':'virtual-list','data-part':'item','data-index':placement.index,'data-visible':placement.visible?'':undefined},itemChildren)})??[];if(automaticEstimate.value===undefined&&bootstrapCount.value>0){children.push(...renderVirtualListBootstrapItems(prepared.value,props.items,bootstrapCount.value,props,slots['default'],bootstrapItemRef))}if(prepared.value.domain.size===0){const empty=slots['empty']?.();if(empty!==undefined&&empty!==null)children.push(empty)}return h(props.as,{...rootAttributes,ref:setRootElement,style:[{overflow:'auto'},rootStyle],'data-scope':'virtual-list','data-part':'root'},[h(props.contentAs,{style:contentStyle,'data-scope':'virtual-list','data-part':'content'},children)])}}});export const VirtualList=VirtualListRuntime;export function createVirtualListMeasurementResolver(axis){return({element,placement,state})=>measureVirtualListElement(axis,placement.id,element,state)}function measureVirtualListElement(axis,id,element,state){const index=state.domain.indexOf(id);if(index===null)return null;const bounds=element.getBoundingClientRect();const value=axis==='vertical'?bounds.height:bounds.width;if(!Number.isFinite(value)||value<=0)return null;const current=state.extents.extentAt(index);if(current?.kind==='exact'&&Math.abs(current.value-value)<0.01)return null;return Object.freeze({index,extent:Object.freeze({kind:'exact',value})})}export function createVirtualListState(prepared,items,props,automaticEstimate){const estimate=props.estimateSize??automaticEstimate;const sharedExtent=props.itemSize!==undefined?exactExtent(props.itemSize):typeof estimate!=='function'?estimatedExtent(requireAutomaticEstimate(estimate),undefined,0):null;return createLinearLayout(createPreparedVirtualListSequence(prepared,props.maxItems),sharedExtent===null?createExtentIndex(Array.from({length:prepared.domain.size},(_unused,index)=>estimatedExtent(estimate,items[index],index)),{maxItems:props.maxItems}):createUniformExtentIndex(prepared.domain.size,sharedExtent,{maxItems:props.maxItems}),{axis:props.axis,gap:props.gap,crossExtent:1})}export function createEmptyVirtualListState(props){return createLinearLayout(createSequence([],{maxItems:props.maxItems,maxIDCodeUnits:1_024}),createUniformExtentIndex(0,exactExtent(0),{maxItems:props.maxItems}),{axis:props.axis,gap:props.gap,crossExtent:1})}export function bootstrapTrailingOverscanExtent(overscan,axis){if(typeof overscan==='number')return overscan;return axis==='vertical'?overscan.bottom??0:overscan.right??0}export function renderVirtualListBootstrapItems(prepared,items,count,props,render,itemRef){return Array.from({length:Math.min(count,prepared.domain.size)},(_unused,index)=>{const value=items[index];const id=prepared.domain.at(index);const attributes=props.itemAttributes?.(value,index)??{};const placement=Object.freeze({id,index,rect:Object.freeze({x:0,y:0,width:0,height:0}),visible:true});const rendered=render?.({value,key:id,index,placement});const children=rendered===undefined||rendered===null?[]:Array.isArray(rendered)?rendered:[rendered];return h(props.itemAs,{...attributes,key:id,ref:element=>itemRef(index,element),style:[attributes['style'],props.axis==='vertical'?{width:'100%'}:{height:'100%'},props.gap>0&&index>0?props.axis==='vertical'?{marginTop:`${props.gap}px`}:{marginLeft:`${props.gap}px`}:undefined],'data-scope':'virtual-list','data-part':'item','data-index':index,'data-visible':'','data-bootstrap':''},children)})}
2
2
  //# sourceMappingURL=virtual-list.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"virtual-list.js","names":["defineComponent","h","nextTick","onBeforeUnmount","onMounted","shallowRef","watch","createSequence","createExtentIndex","createUniformExtentIndex","linearLayoutStrategy","tryApplyLinearPatch","createLinearLayout","createAxisMeasurementResolver","virtualItemStyle","Primitive","VirtualizerContent","VirtualizerRoot","useVirtualizer","assertVirtualListSizeMode","createPreparedVirtualListSequence","estimatedExtent","exactExtent","prepareVirtualList","reconcileVirtualList","requireAutomaticEstimate","requiresDOMBootstrap","updatePreparedVirtualList","VirtualListRuntime","name","inheritAttrs","props","items","type","Array","required","getKey","Function","estimateSize","Number","default","undefined","itemSize","axis","String","gap","overscan","Object","maxItems","initialViewport","as","contentAs","itemAs","itemAttributes","emits","stateChange","_state","planChange","_plan","error","_error","slots","setup","attrs","emit","expose","prepared","automaticEstimate","bootstrapCount","value","domain","size","bootstrapElements","Map","bootstrapScheduled","disposed","state","createEmptyVirtualListState","createVirtualListState","measure","createVirtualListMeasurementResolver","virtualizer","strategy","onStateChange","onPlanChange","onError","registrations","elements","itemRefs","pendingMeasurements","Set","forcedMeasurements","measurementScheduled","setRootElement","root","HTMLElement","measurePendingItems","connection","queued","from","clear","measurements","id","element","get","index","indexOf","current","extents","extentAt","kind","has","measurement","measureVirtualListElement","push","delete","length","scheduleItemMeasurement","force","add","scheduleChangedRenderedItemMeasurements","previousPrepared","previousState","nextPrepared","nextState","keys","previousIndex","nextIndex","is","itemRef","existing","callback","set","registerItem","bootstrapItemRef","scheduleBootstrap","completeBootstrap","count","Math","min","bounds","getBoundingClientRect","extent","height","width","isFinite","total","reduce","sum","max","measuredViewportExtent","clientHeight","clientWidth","viewportExtent","target","bootstrapTrailingOverscanExtent","average","nextCount","ceil","next","patch","result","mutate","ok","flush","constructionWarningShown","x","y","previous","every","item","console","warn","unregister","values","freeze","plan","scrollTo","refresh","rootStyle","rootAttributes","bootstrapping","contentStyle","position","contentSize","display","children","placements","map","placement","at","itemStyle","rendered","key","itemChildren","isArray","ref","style","visible","renderVirtualListBootstrapItems","empty","overflow","VirtualList","abs","estimate","sharedExtent","_unused","crossExtent","maxIDCodeUnits","bottom","right","render","attributes","rect","marginTop","marginLeft"],"sources":["../../src/internal/virtual-list.ts"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"file":"virtual-list.js","names":["defineComponent","h","nextTick","onBeforeUnmount","onMounted","shallowRef","watch","createSequence","createExtentIndex","createUniformExtentIndex","linearLayoutStrategyFor","tryApplyLinearPatch","createLinearLayout","createAxisMeasurementResolver","virtualItemStyle","Primitive","VirtualizerContent","VirtualizerRoot","useVirtualizer","assertVirtualListSizeMode","createPreparedVirtualListSequence","estimatedExtent","exactExtent","prepareVirtualList","reconcileVirtualList","requireAutomaticEstimate","requiresDOMBootstrap","updatePreparedVirtualList","VirtualListRuntime","name","inheritAttrs","props","items","type","Array","required","getKey","Function","estimateSize","Number","default","undefined","itemSize","axis","String","gap","overscan","Object","maxItems","initialViewport","as","contentAs","itemAs","itemAttributes","emits","stateChange","_state","planChange","_plan","error","_error","slots","setup","attrs","emit","expose","prepared","automaticEstimate","bootstrapCount","value","domain","size","bootstrapElements","Map","bootstrapScheduled","disposed","state","createEmptyVirtualListState","createVirtualListState","measure","createVirtualListMeasurementResolver","virtualizer","strategy","onStateChange","onPlanChange","onError","registrations","elements","itemRefs","pendingMeasurements","Set","forcedMeasurements","measurementScheduled","setRootElement","root","HTMLElement","measurePendingItems","connection","queued","from","clear","measurements","id","element","get","index","indexOf","current","extents","extentAt","kind","has","measurement","measureVirtualListElement","push","delete","length","scheduleItemMeasurement","force","add","scheduleChangedRenderedItemMeasurements","previousPrepared","previousState","nextPrepared","nextState","keys","previousIndex","nextIndex","is","itemRef","existing","callback","set","registerItem","bootstrapItemRef","scheduleBootstrap","completeBootstrap","count","Math","min","bounds","getBoundingClientRect","extent","height","width","isFinite","total","reduce","sum","max","measuredViewportExtent","clientHeight","clientWidth","viewportExtent","target","bootstrapTrailingOverscanExtent","average","nextCount","ceil","next","patch","result","mutate","ok","flush","constructionWarningShown","x","y","previous","every","item","console","warn","unregister","values","freeze","plan","scrollTo","refresh","rootStyle","rootAttributes","bootstrapping","contentStyle","position","contentSize","display","children","placements","map","placement","at","itemStyle","rendered","key","itemChildren","isArray","ref","style","visible","renderVirtualListBootstrapItems","empty","overflow","VirtualList","abs","estimate","sharedExtent","_unused","crossExtent","maxIDCodeUnits","bottom","right","render","attributes","rect","marginTop","marginLeft"],"sources":["../../src/internal/virtual-list.ts"],"mappings":"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","ignoreList":[]}
@@ -0,0 +1 @@
1
+ export declare const yearPickerCapability: import("./picker-capability.js").PickerFamilyCapability<"date">;
@@ -0,0 +1,2 @@
1
+ import{createYearPicker}from"@sectile/dom/temporal/year-picker";import{formatDateValue}from"@sectile/dom/temporal/date-field";import{definePickerFamilyCapability}from"./picker-capability.js";const yearPickerCapability=definePickerFamilyCapability({kind:"date",connect:options=>createYearPicker(options),formatInput:(granularity,_part,value)=>formatPeriod(value,granularity)});function formatPeriod(value,granularity){return granularity==="year"?String(value.year):granularity==="month"?`${String(value.year).padStart(4,"0")}-${String(value.month).padStart(2,"0")}`:formatDateValue(value)}export{yearPickerCapability};
2
+ //# sourceMappingURL=year-picker-capability.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../src/internal/year-picker-capability.ts"],"mappings":"AAAA,OAAS,qBAAwB,oCACjC,OAAS,oBAAuC,mCAChD,OAAS,iCAAsE,yBAExE,MAAM,qBAAuB,6BAA6B,CAC/D,KAAM,OACN,QAAU,SAAY,iBAAiB,OAAgB,EACvD,YAAa,CAAC,YAAa,MAAO,QAAU,aAAa,MAAoB,WAAW,EACzF,EAED,SAAS,aAAa,MAAkB,YAAwC,CAC9E,OAAO,cAAgB,OAAS,OAAO,MAAM,IAAI,EAAI,cAAgB,QACjE,GAAG,OAAO,MAAM,IAAI,EAAE,SAAS,EAAG,GAAG,CAAC,IAAI,OAAO,MAAM,KAAK,EAAE,SAAS,EAAG,GAAG,CAAC,GAAK,gBAAgB,KAAK,CAC9G","names":[],"file":"year-picker-capability.js"}
@@ -0,0 +1 @@
1
+ export declare const yearRangePickerCapability: import("./picker-capability.js").PickerFamilyCapability<"date-range">;
@@ -0,0 +1,2 @@
1
+ import{createYearRangePicker}from"@sectile/dom/temporal/year-range-picker";import{formatDateValue}from"@sectile/dom/temporal/date-field";import{definePickerFamilyCapability}from"./picker-capability.js";const yearRangePickerCapability=definePickerFamilyCapability({kind:"date-range",connect:options=>createYearRangePicker(options),formatInput:(granularity,part,value)=>{const range=value;return formatPeriod(part.startsWith("start")?range.start:range.end,granularity)}});function formatPeriod(value,granularity){return granularity==="year"?String(value.year):granularity==="month"?`${String(value.year).padStart(4,"0")}-${String(value.month).padStart(2,"0")}`:formatDateValue(value)}export{yearRangePickerCapability};
2
+ //# sourceMappingURL=year-range-picker-capability.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../src/internal/year-range-picker-capability.ts"],"mappings":"AAAA,OAAS,0BAA6B,0CACtC,OAAS,oBAAuD,mCAChE,OAAS,iCAAsE,yBAExE,MAAM,0BAA4B,6BAA6B,CACpE,KAAM,aACN,QAAU,SAAY,sBAAsB,OAAgB,EAC5D,YAAa,CAAC,YAAa,KAAM,QAAS,CACxC,MAAM,MAAQ,MACd,OAAO,aAAa,KAAK,WAAW,OAAO,EAAI,MAAM,MAAQ,MAAM,IAAK,WAAW,CACrF,EACD,EAED,SAAS,aAAa,MAAkB,YAAwC,CAC9E,OAAO,cAAgB,OAAS,OAAO,MAAM,IAAI,EAAI,cAAgB,QACjE,GAAG,OAAO,MAAM,IAAI,EAAE,SAAS,EAAG,GAAG,CAAC,IAAI,OAAO,MAAM,KAAK,EAAE,SAAS,EAAG,GAAG,CAAC,GAAK,gBAAgB,KAAK,CAC9G","names":[],"file":"year-range-picker-capability.js"}
@@ -1,2 +1,2 @@
1
- import{PickerAnchor,PickerContent,PickerGrid,PickerPortal,PickerTrigger,createPickerInput,createPickerMonthCell,createPickerMove,specializePickerRootPart,createPickerRoot}from"./internal/date-picker.js";const MonthPickerRoot=createPickerRoot("date","SectileMonthPickerRoot",{scope:"month-picker",granularity:"month",defaultView:"year"});const MonthPickerTrigger=specializePickerRootPart("date",PickerTrigger);const MonthPickerAnchor=specializePickerRootPart("date",PickerAnchor);const MonthPickerPortal=PickerPortal;const MonthPickerContent=specializePickerRootPart("date",PickerContent);const MonthPickerGrid=specializePickerRootPart("date",PickerGrid);const MonthPickerCell=createPickerMonthCell("cell","SectileMonthPickerCell");const MonthPickerInput=createPickerInput("input","SectileMonthPickerInput");const MonthPickerPreviousYear=specializePickerRootPart("date",createPickerMove("year",-1,"SectileMonthPickerPreviousYear"));const MonthPickerNextYear=specializePickerRootPart("date",createPickerMove("year",1,"SectileMonthPickerNextYear"));export{MonthPickerAnchor,MonthPickerCell,MonthPickerContent,MonthPickerGrid,MonthPickerInput,MonthPickerNextYear,MonthPickerPortal,MonthPickerPreviousYear,MonthPickerRoot,MonthPickerTrigger};
1
+ import{PickerAnchor,PickerContent,PickerGrid,PickerPortal,PickerTrigger,createPickerInput,createPickerMonthCell,createPickerMove,specializePickerRootPart,createPickerRoot}from"./internal/date-picker.js";import{monthPickerCapability}from"./internal/month-picker-capability.js";const MonthPickerRoot=createPickerRoot(monthPickerCapability,"SectileMonthPickerRoot",{scope:"month-picker",granularity:"month",defaultView:"year"});const MonthPickerTrigger=specializePickerRootPart("date",PickerTrigger);const MonthPickerAnchor=specializePickerRootPart("date",PickerAnchor);const MonthPickerPortal=PickerPortal;const MonthPickerContent=specializePickerRootPart("date",PickerContent);const MonthPickerGrid=specializePickerRootPart("date",PickerGrid);const MonthPickerCell=createPickerMonthCell("cell","SectileMonthPickerCell");const MonthPickerInput=createPickerInput("input","SectileMonthPickerInput");const MonthPickerPreviousYear=specializePickerRootPart("date",createPickerMove("year",-1,"SectileMonthPickerPreviousYear"));const MonthPickerNextYear=specializePickerRootPart("date",createPickerMove("year",1,"SectileMonthPickerNextYear"));export{MonthPickerAnchor,MonthPickerCell,MonthPickerContent,MonthPickerGrid,MonthPickerInput,MonthPickerNextYear,MonthPickerPortal,MonthPickerPreviousYear,MonthPickerRoot,MonthPickerTrigger};
2
2
  //# sourceMappingURL=month-picker.js.map
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/month-picker.ts"],"mappings":"AAEA,OACE,aAAc,cAAe,WAAY,aAAc,cAAe,kBAAmB,sBAAuB,iBAAkB,yBAClI,qBACK,4BAiBA,MAAM,gBAAkB,iBAAiB,OAAQ,yBAA0B,CAAE,MAAO,eAAgB,YAAa,QAAS,YAAa,MAAM,CAAE,EAK/I,MAAM,mBAAqB,yBAAyB,OAAQ,aAAa,EACzE,MAAM,kBAAoB,yBAAyB,OAAQ,YAAY,EACvE,MAAM,kBAAoB,aAC1B,MAAM,mBAAqB,yBAAyB,OAAQ,aAAa,EACzE,MAAM,gBAAkB,yBAAyB,OAAQ,UAAU,EACnE,MAAM,gBAAkB,sBAAsB,OAAQ,wBAAwB,EAC9E,MAAM,iBAAmB,kBAAkB,QAAS,yBAAyB,EAC7E,MAAM,wBAA0B,yBAAyB,OAAQ,iBAAiB,OAAQ,GAAI,gCAAgC,CAAC,EAC/H,MAAM,oBAAsB,yBAAyB,OAAQ,iBAAiB,OAAQ,EAAG,4BAA4B,CAAC","names":[],"file":"month-picker.js"}
1
+ {"version":3,"sources":["../src/month-picker.ts"],"mappings":"AAEA,OACE,aAAc,cAAe,WAAY,aAAc,cAAe,kBAAmB,sBAAuB,iBAAkB,yBAClI,qBACK,4BACP,OAAS,0BAA6B,wCAiB/B,MAAM,gBAAkB,iBAAiB,sBAAuB,yBAA0B,CAAE,MAAO,eAAgB,YAAa,QAAS,YAAa,MAAM,CAAE,EAK9J,MAAM,mBAAqB,yBAAyB,OAAQ,aAAa,EACzE,MAAM,kBAAoB,yBAAyB,OAAQ,YAAY,EACvE,MAAM,kBAAoB,aAC1B,MAAM,mBAAqB,yBAAyB,OAAQ,aAAa,EACzE,MAAM,gBAAkB,yBAAyB,OAAQ,UAAU,EACnE,MAAM,gBAAkB,sBAAsB,OAAQ,wBAAwB,EAC9E,MAAM,iBAAmB,kBAAkB,QAAS,yBAAyB,EAC7E,MAAM,wBAA0B,yBAAyB,OAAQ,iBAAiB,OAAQ,GAAI,gCAAgC,CAAC,EAC/H,MAAM,oBAAsB,yBAAyB,OAAQ,iBAAiB,OAAQ,EAAG,4BAA4B,CAAC","names":[],"file":"month-picker.js"}
@@ -1,2 +1,2 @@
1
- import{PickerAnchor,PickerContent,PickerGrid,PickerPortal,PickerTrigger,createPickerInput,createPickerMonthCell,createPickerMove,specializePickerRootPart,createPickerRoot}from"./internal/date-picker.js";const MonthRangePickerRoot=createPickerRoot("date-range","SectileMonthRangePickerRoot",{scope:"month-range-picker",granularity:"month",defaultView:"year"});const MonthRangePickerTrigger=specializePickerRootPart("date-range",PickerTrigger);const MonthRangePickerAnchor=specializePickerRootPart("date-range",PickerAnchor);const MonthRangePickerPortal=PickerPortal;const MonthRangePickerContent=specializePickerRootPart("date-range",PickerContent);const MonthRangePickerGrid=specializePickerRootPart("date-range",PickerGrid);const MonthRangePickerCell=createPickerMonthCell("cell","SectileMonthRangePickerCell");const MonthRangePickerStartInput=createPickerInput("start-input","SectileMonthRangePickerStartInput");const MonthRangePickerEndInput=createPickerInput("end-input","SectileMonthRangePickerEndInput");const MonthRangePickerPreviousYear=specializePickerRootPart("date-range",createPickerMove("year",-1,"SectileMonthRangePickerPreviousYear"));const MonthRangePickerNextYear=specializePickerRootPart("date-range",createPickerMove("year",1,"SectileMonthRangePickerNextYear"));export{MonthRangePickerAnchor,MonthRangePickerCell,MonthRangePickerContent,MonthRangePickerEndInput,MonthRangePickerGrid,MonthRangePickerNextYear,MonthRangePickerPortal,MonthRangePickerPreviousYear,MonthRangePickerRoot,MonthRangePickerStartInput,MonthRangePickerTrigger};
1
+ import{PickerAnchor,PickerContent,PickerGrid,PickerPortal,PickerTrigger,createPickerInput,createPickerMonthCell,createPickerMove,specializePickerRootPart,createPickerRoot}from"./internal/date-picker.js";import{monthRangePickerCapability}from"./internal/month-range-picker-capability.js";const MonthRangePickerRoot=createPickerRoot(monthRangePickerCapability,"SectileMonthRangePickerRoot",{scope:"month-range-picker",granularity:"month",defaultView:"year"});const MonthRangePickerTrigger=specializePickerRootPart("date-range",PickerTrigger);const MonthRangePickerAnchor=specializePickerRootPart("date-range",PickerAnchor);const MonthRangePickerPortal=PickerPortal;const MonthRangePickerContent=specializePickerRootPart("date-range",PickerContent);const MonthRangePickerGrid=specializePickerRootPart("date-range",PickerGrid);const MonthRangePickerCell=createPickerMonthCell("cell","SectileMonthRangePickerCell");const MonthRangePickerStartInput=createPickerInput("start-input","SectileMonthRangePickerStartInput");const MonthRangePickerEndInput=createPickerInput("end-input","SectileMonthRangePickerEndInput");const MonthRangePickerPreviousYear=specializePickerRootPart("date-range",createPickerMove("year",-1,"SectileMonthRangePickerPreviousYear"));const MonthRangePickerNextYear=specializePickerRootPart("date-range",createPickerMove("year",1,"SectileMonthRangePickerNextYear"));export{MonthRangePickerAnchor,MonthRangePickerCell,MonthRangePickerContent,MonthRangePickerEndInput,MonthRangePickerGrid,MonthRangePickerNextYear,MonthRangePickerPortal,MonthRangePickerPreviousYear,MonthRangePickerRoot,MonthRangePickerStartInput,MonthRangePickerTrigger};
2
2
  //# sourceMappingURL=month-range-picker.js.map
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/month-range-picker.ts"],"mappings":"AAEA,OACE,aAAc,cAAe,WAAY,aAAc,cAAe,kBAAmB,sBAAuB,iBAAkB,yBAClI,qBACK,4BAiBA,MAAM,qBAAuB,iBAAiB,aAAc,8BAA+B,CAAE,MAAO,qBAAsB,YAAa,QAAS,YAAa,MAAM,CAAE,EAKrK,MAAM,wBAA0B,yBAAyB,aAAc,aAAa,EACpF,MAAM,uBAAyB,yBAAyB,aAAc,YAAY,EAClF,MAAM,uBAAyB,aAC/B,MAAM,wBAA0B,yBAAyB,aAAc,aAAa,EACpF,MAAM,qBAAuB,yBAAyB,aAAc,UAAU,EAC9E,MAAM,qBAAuB,sBAAsB,OAAQ,6BAA6B,EACxF,MAAM,2BAA6B,kBAAkB,cAAe,mCAAmC,EACvG,MAAM,yBAA2B,kBAAkB,YAAa,iCAAiC,EACjG,MAAM,6BAA+B,yBAAyB,aAAc,iBAAiB,OAAQ,GAAI,qCAAqC,CAAC,EAC/I,MAAM,yBAA2B,yBAAyB,aAAc,iBAAiB,OAAQ,EAAG,iCAAiC,CAAC","names":[],"file":"month-range-picker.js"}
1
+ {"version":3,"sources":["../src/month-range-picker.ts"],"mappings":"AAEA,OACE,aAAc,cAAe,WAAY,aAAc,cAAe,kBAAmB,sBAAuB,iBAAkB,yBAClI,qBACK,4BACP,OAAS,+BAAkC,8CAiBpC,MAAM,qBAAuB,iBAAiB,2BAA4B,8BAA+B,CAAE,MAAO,qBAAsB,YAAa,QAAS,YAAa,MAAM,CAAE,EAKnL,MAAM,wBAA0B,yBAAyB,aAAc,aAAa,EACpF,MAAM,uBAAyB,yBAAyB,aAAc,YAAY,EAClF,MAAM,uBAAyB,aAC/B,MAAM,wBAA0B,yBAAyB,aAAc,aAAa,EACpF,MAAM,qBAAuB,yBAAyB,aAAc,UAAU,EAC9E,MAAM,qBAAuB,sBAAsB,OAAQ,6BAA6B,EACxF,MAAM,2BAA6B,kBAAkB,cAAe,mCAAmC,EACvG,MAAM,yBAA2B,kBAAkB,YAAa,iCAAiC,EACjG,MAAM,6BAA+B,yBAAyB,aAAc,iBAAiB,OAAQ,GAAI,qCAAqC,CAAC,EAC/I,MAAM,yBAA2B,yBAAyB,aAAc,iBAAiB,OAAQ,EAAG,iCAAiC,CAAC","names":[],"file":"month-range-picker.js"}
@@ -1,2 +1,2 @@
1
- import{PickerCell,PickerContent,PickerGrid,createPickerMove,createPickerRoot,specializePickerRootPart}from"./internal/date-picker.js";const RangeCalendarRoot=createPickerRoot("date-range","SectileRangeCalendarRoot",{scope:"range-calendar",defaultOpen:true,defaultView:"month",inline:true});const RangeCalendarContent=specializePickerRootPart("date-range",PickerContent);const RangeCalendarGrid=specializePickerRootPart("date-range",PickerGrid);const RangeCalendarCell=PickerCell;const RangeCalendarPreviousMonth=specializePickerRootPart("date-range",createPickerMove("month",-1,"SectileRangeCalendarPreviousMonth"));const RangeCalendarNextMonth=specializePickerRootPart("date-range",createPickerMove("month",1,"SectileRangeCalendarNextMonth"));const RangeCalendarPreviousYear=specializePickerRootPart("date-range",createPickerMove("year",-1,"SectileRangeCalendarPreviousYear"));const RangeCalendarNextYear=specializePickerRootPart("date-range",createPickerMove("year",1,"SectileRangeCalendarNextYear"));export{RangeCalendarCell,RangeCalendarContent,RangeCalendarGrid,RangeCalendarNextMonth,RangeCalendarNextYear,RangeCalendarPreviousMonth,RangeCalendarPreviousYear,RangeCalendarRoot};
1
+ import{PickerCell,PickerContent,PickerGrid,createPickerMove,createPickerRoot,specializePickerRootPart}from"./internal/date-picker.js";import{rangeCalendarCapability}from"./internal/range-calendar-capability.js";const RangeCalendarRoot=createPickerRoot(rangeCalendarCapability,"SectileRangeCalendarRoot",{scope:"range-calendar",defaultOpen:true,defaultView:"month",inline:true});const RangeCalendarContent=specializePickerRootPart("date-range",PickerContent);const RangeCalendarGrid=specializePickerRootPart("date-range",PickerGrid);const RangeCalendarCell=PickerCell;const RangeCalendarPreviousMonth=specializePickerRootPart("date-range",createPickerMove("month",-1,"SectileRangeCalendarPreviousMonth"));const RangeCalendarNextMonth=specializePickerRootPart("date-range",createPickerMove("month",1,"SectileRangeCalendarNextMonth"));const RangeCalendarPreviousYear=specializePickerRootPart("date-range",createPickerMove("year",-1,"SectileRangeCalendarPreviousYear"));const RangeCalendarNextYear=specializePickerRootPart("date-range",createPickerMove("year",1,"SectileRangeCalendarNextYear"));export{RangeCalendarCell,RangeCalendarContent,RangeCalendarGrid,RangeCalendarNextMonth,RangeCalendarNextYear,RangeCalendarPreviousMonth,RangeCalendarPreviousYear,RangeCalendarRoot};
2
2
  //# sourceMappingURL=range-calendar.js.map
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/range-calendar.ts"],"mappings":"AAEA,OACE,WAAY,cAAe,WAAY,iBAAkB,iBAAkB,6BAEtE,4BAiBA,MAAM,kBAAoB,iBAAiB,aAAc,2BAA4B,CAC1F,MAAO,iBACP,YAAa,KACb,YAAa,QACb,OAAQ,KACT,EAKM,MAAM,qBAAuB,yBAAyB,aAAc,aAAa,EACjF,MAAM,kBAAoB,yBAAyB,aAAc,UAAU,EAC3E,MAAM,kBAAoB,WAC1B,MAAM,2BAA6B,yBAAyB,aAAc,iBAAiB,QAAS,GAAI,mCAAmC,CAAC,EAC5I,MAAM,uBAAyB,yBAAyB,aAAc,iBAAiB,QAAS,EAAG,+BAA+B,CAAC,EACnI,MAAM,0BAA4B,yBAAyB,aAAc,iBAAiB,OAAQ,GAAI,kCAAkC,CAAC,EACzI,MAAM,sBAAwB,yBAAyB,aAAc,iBAAiB,OAAQ,EAAG,8BAA8B,CAAC","names":[],"file":"range-calendar.js"}
1
+ {"version":3,"sources":["../src/range-calendar.ts"],"mappings":"AAEA,OACE,WAAY,cAAe,WAAY,iBAAkB,iBAAkB,6BAEtE,4BACP,OAAS,4BAA+B,0CAiBjC,MAAM,kBAAoB,iBAAiB,wBAAyB,2BAA4B,CACrG,MAAO,iBACP,YAAa,KACb,YAAa,QACb,OAAQ,KACT,EAKM,MAAM,qBAAuB,yBAAyB,aAAc,aAAa,EACjF,MAAM,kBAAoB,yBAAyB,aAAc,UAAU,EAC3E,MAAM,kBAAoB,WAC1B,MAAM,2BAA6B,yBAAyB,aAAc,iBAAiB,QAAS,GAAI,mCAAmC,CAAC,EAC5I,MAAM,uBAAyB,yBAAyB,aAAc,iBAAiB,QAAS,EAAG,+BAA+B,CAAC,EACnI,MAAM,0BAA4B,yBAAyB,aAAc,iBAAiB,OAAQ,GAAI,kCAAkC,CAAC,EACzI,MAAM,sBAAwB,yBAAyB,aAAc,iBAAiB,OAAQ,EAAG,8BAA8B,CAAC","names":[],"file":"range-calendar.js"}
package/dist/tabs.js CHANGED
@@ -1,2 +1,2 @@
1
- import{computed,defineComponent,h,mergeProps,nextTick,provide,shallowRef,watch}from"vue";import{getTabsContentAttributes,getTabsListAttributes,getTabsRootAttributes,getTabsTriggerAttributes}from"@sectile/dom/tabs";import{createListboxControllerFromItems}from"@sectile/dom/listbox";import{Primitive}from"./primitive.js";import{usePartContract}from"./internal/part-contract.js";import{tabsRootContextKey,useTabsRootContext}from"./internal/tabs-context.js";import{useHostDirection,useHostId}from"./host-provider.js";import{reconcileCollectionState}from"./internal/collection.js";import{useControlledStateInvariant}from"./internal/controlled-state.js";const TabsRoot=defineComponent({name:"SectileTabsRoot",inheritAttrs:false,props:{items:{type:Array,required:true},modelValue:{type:String,default:void 0},defaultValue:{type:String,default:""},disabledItems:{type:Array,default:()=>[]},disabled:{type:Boolean,default:false},readonly:{type:Boolean,default:false},orientation:{type:String,default:"horizontal"},activationMode:{type:String,default:"automatic"},as:{type:[String,Object,Function],default:"div"},asChild:{type:Boolean,default:false}},emits:{"update:modelValue":_value=>true,highlight:_value=>true,activate:_value=>true},slots:Object,setup(props,{attrs,emit,slots}){const controlled=useControlledStateInvariant("TabsRoot","modelValue",()=>props.modelValue);const instanceID=useHostId();const direction=useHostDirection();const rootElement=shallowRef(null);const idMap=new Map;const ids=value2=>{const found=idMap.get(value2);if(found!==void 0)return found;const safe=encodeURIComponent(value2).replaceAll("%","-");const created=Object.freeze({trigger:`sectile-tabs-${instanceID}-${safe}-trigger`,content:`sectile-tabs-${instanceID}-${safe}-content`});idMap.set(value2,created);return created};const makeController=(value2,highlightedValue=value2||null)=>{const selected=value2===""?[]:[value2];const result=createListboxControllerFromItems({items:props.items,selectionMode:"single",disabledItems:props.disabledItems,disabled:props.disabled,readOnly:props.readonly,orientation:props.orientation,direction:direction.value,policies:{selectionFollowsFocus:props.activationMode==="automatic"},...controlled?{value:selected}:{defaultValue:selected},defaultHighlightedValue:highlightedValue??props.items.find(id=>!props.disabledItems.includes(id))??null,onValueChange:({value:next})=>emit("update:modelValue",next[0]??""),onHighlightedValueChange:({value:next})=>emit("highlight",next)});if(!result.ok)throw new TypeError(result.error.message);return result.value};const initial=controlled?props.modelValue:props.defaultValue||props.items.find(id=>!props.disabledItems.includes(id))||"";const controller=shallowRef(makeController(initial));const snapshot=shallowRef(controller.value.getSnapshot());const rebuild=()=>{const requested=controlled?props.modelValue:snapshot.value.state.selection.selected[0]??"";const reconciled=reconcileCollectionState(props.items,requested===""?[]:[requested],snapshot.value.state.cursor.current,props.disabledItems,"single");const current=reconciled.selected[0]??reconciled.current??"";controller.value=makeController(current,reconciled.current);snapshot.value=controller.value.getSnapshot();if(controlled&&current!==requested)emit("update:modelValue",current)};watch(()=>props.modelValue,next=>{if(!controlled||next===void 0)return;const result=controller.value.syncControlledValues({value:next===""?[]:[next]});if(!result.ok)throw new TypeError(result.error.message);snapshot.value=result.value});watch([()=>props.items,()=>props.disabledItems,()=>props.disabled,()=>props.readonly,()=>props.orientation,()=>props.activationMode,direction],rebuild);const value=computed(()=>snapshot.value.state.selection.selected[0]??"");const highlighted=computed(()=>snapshot.value.state.cursor.current);const disabled=computed(()=>props.disabled);const readonly=computed(()=>props.readonly);const orientation=computed(()=>props.orientation);const disabledItems=computed(()=>new Set(props.disabledItems));const apply=(result,root)=>{if(!result.ok)return false;snapshot.value=result.snapshot;applyEffects(result.commands,emit);if(root!==void 0)void nextTick(()=>focusTrigger(root,result.snapshot.state.cursor.current));return true};const activateTarget=target=>{if(!apply(controller.value.handleEvent({type:"focus",id:target})))return false;if(!apply(controller.value.handleEvent({type:"activate",id:target})))return false;void nextTick(()=>{if(rootElement.value!==null)focusTrigger(rootElement.value,target)});return true};const part=usePartContract("tabs","root");provide(tabsRootContextKey,{value,highlighted,disabled,readonly,orientation,direction,disabledItems,items:computed(()=>props.items),partContract:part,ids,select:(id,target)=>apply(controller.value.handleEvent({type:"activate",id}),target.closest('[role="tablist"]')),keydown:event=>{if(!apply(controller.value.handleKeyboardInput(event),event.currentTarget))return;event.preventDefault()},activateTarget});const slotProps=computed(()=>({value:value.value,highlightedValue:highlighted.value,disabled:props.disabled,readonly:props.readonly}));return()=>h(Primitive,mergeProps(attrs,getTabsRootAttributes(),{as:props.as,asChild:props.asChild,elementRef:element=>{rootElement.value=element},"data-scope":part.scope}),{default:()=>slots["default"]?.(slotProps.value)})}});const TabsList=defineComponent({name:"SectileTabsList",inheritAttrs:false,props:{label:{type:String,default:void 0},as:{type:[String,Object,Function],default:"div"},asChild:{type:Boolean,default:false}},slots:Object,setup(props,{attrs,slots}){const root=useTabsRootContext("TabsList");const part={scope:root.partContract.scope,part:root.partContract.parts["list"]??"list"};const attributes=computed(()=>getTabsListAttributes({orientation:root.orientation.value,direction:root.direction.value,...props.label===void 0?{}:{label:props.label},disabled:root.disabled.value,readOnly:root.readonly.value}));return()=>h(Primitive,mergeProps(attrs,attributes.value,{as:props.as,asChild:props.asChild,"data-scope":part.scope,onKeydown:root.keydown}),slots)}});const TabsTrigger=defineComponent({name:"SectileTabsTrigger",inheritAttrs:false,props:{value:{type:String,required:true},disabled:{type:Boolean,default:false},as:{type:[String,Object,Function],default:"button"},asChild:{type:Boolean,default:false}},slots:Object,setup(props,{attrs,slots}){const root=useTabsRootContext("TabsTrigger");const part={scope:root.partContract.scope,part:root.partContract.parts["trigger"]??"trigger"};const state=computed(()=>({value:props.value,selected:root.value.value===props.value,highlighted:root.highlighted.value===props.value,disabled:root.disabled.value||props.disabled||root.disabledItems.value.has(props.value)}));const attributes=computed(()=>{const ids=root.ids(props.value);return getTabsTriggerAttributes({id:props.value,selected:state.value.selected,highlighted:state.value.highlighted,disabled:state.value.disabled,triggerID:ids.trigger,panelID:ids.content})});return()=>h(Primitive,mergeProps(attrs,attributes.value,{as:props.as,asChild:props.asChild,"data-scope":part.scope,"data-part":part.part,onClick:event=>{if(!event.defaultPrevented&&!state.value.disabled)root.select(props.value,event.currentTarget)}}),{default:()=>slots["default"]?.(state.value)})}});const TabsContent=defineComponent({name:"SectileTabsContent",inheritAttrs:false,props:{value:{type:String,required:true},as:{type:[String,Object,Function],default:"div"},asChild:{type:Boolean,default:false}},slots:Object,setup(props,{attrs,slots}){const root=useTabsRootContext("TabsContent");const part={scope:root.partContract.scope,part:root.partContract.parts["content"]??"content"};const selected=computed(()=>root.value.value===props.value);const attributes=computed(()=>{const ids=root.ids(props.value);return getTabsContentAttributes({selected:selected.value,contentID:ids.content,triggerID:ids.trigger})});return()=>h(Primitive,mergeProps(attrs,attributes.value,{as:props.as,asChild:props.asChild,"data-scope":part.scope}),{default:()=>slots["default"]?.({value:props.value,selected:selected.value})})}});const TabsIndicator=defineComponent({name:"SectileTabsIndicator",inheritAttrs:false,props:{as:{type:[String,Object,Function],default:"span"},asChild:{type:Boolean,default:false}},slots:Object,setup(props,{attrs,slots}){const root=useTabsRootContext("TabsIndicator");const part={scope:root.partContract.scope,part:root.partContract.parts["indicator"]??"indicator"};return()=>h(Primitive,mergeProps(attrs,{as:props.as,asChild:props.asChild,"aria-hidden":"true","data-scope":part.scope,"data-part":part.part,"data-value":root.value.value}),{default:()=>slots["default"]?.({value:root.value.value})})}});function applyEffects(effects,emit){for(const effect of effects)if(effect.type==="dispatch-activation")emit("activate",effect.id)}function focusTrigger(root,id){if(id===null)return;for(const item of root.querySelectorAll("[data-tabs-id]"))if(item.dataset["tabsId"]===id)item.focus()}export{TabsContent,TabsIndicator,TabsList,TabsRoot,TabsTrigger};
1
+ import{computed,defineComponent,h,mergeProps,nextTick,provide,shallowRef,watch}from"vue";import{getTabsContentAttributes,getTabsListAttributes,getTabsRootAttributes,getTabsTriggerAttributes}from"@sectile/dom/tabs";import{createListboxControllerFromItems}from"@sectile/dom/listbox";import{Primitive}from"./primitive.js";import{usePartContract}from"./internal/part-contract.js";import{tabsRootContextKey,useTabsRootContext}from"./internal/tabs-context.js";import{useHostDirection,useHostId}from"./host-provider.js";import{reconcileCollectionState}from"./internal/collection.js";import{useControlledStateInvariant}from"./internal/controlled-state.js";const TabsRoot=defineComponent({name:"SectileTabsRoot",inheritAttrs:false,props:{items:{type:Array,required:true},modelValue:{type:String,default:void 0},defaultValue:{type:String,default:""},disabledItems:{type:Array,default:()=>[]},disabled:{type:Boolean,default:false},readonly:{type:Boolean,default:false},orientation:{type:String,default:"horizontal"},activationMode:{type:String,default:"automatic"},as:{type:[String,Object,Function],default:"div"},asChild:{type:Boolean,default:false}},emits:{"update:modelValue":_value=>true,highlight:_value=>true,activate:_value=>true},slots:Object,setup(props,{attrs,emit,slots}){const controlled=useControlledStateInvariant("TabsRoot","modelValue",()=>props.modelValue);const instanceID=useHostId();const direction=useHostDirection();const rootElement=shallowRef(null);const idMap=new Map;const ids=value2=>{const found=idMap.get(value2);if(found!==void 0)return found;const safe=encodeURIComponent(value2).replaceAll("%","-");const created=Object.freeze({trigger:`sectile-tabs-${instanceID}-${safe}-trigger`,content:`sectile-tabs-${instanceID}-${safe}-content`});idMap.set(value2,created);return created};const makeController=(value2,highlightedValue=value2||null)=>{const selected=value2===""?[]:[value2];const result=createListboxControllerFromItems({items:props.items,selectionMode:"single",disabledItems:props.disabledItems,disabled:props.disabled,readOnly:props.readonly,orientation:props.orientation,direction:direction.value,policies:{selectionFollowsFocus:props.activationMode==="automatic"},...controlled?{value:selected}:{defaultValue:selected},defaultHighlightedValue:highlightedValue??props.items.find(id=>!props.disabledItems.includes(id))??null,onValueChange:({value:next})=>emit("update:modelValue",next[0]??""),onHighlightedValueChange:({value:next})=>emit("highlight",next)});if(!result.ok)throw new TypeError(result.error.message);return result.value};const initial=controlled?props.modelValue:props.defaultValue||props.items.find(id=>!props.disabledItems.includes(id))||"";const controller=shallowRef(makeController(initial));const snapshot=shallowRef(controller.value.getSnapshot());const rebuild=()=>{const requested=controlled?props.modelValue:snapshot.value.state.selection.selected[0]??"";const reconciled=reconcileCollectionState(props.items,requested===""?[]:[requested],snapshot.value.state.cursor.current,props.disabledItems,"single");const current=reconciled.selected[0]??reconciled.current??"";controller.value=makeController(current,reconciled.current);snapshot.value=controller.value.getSnapshot();if(controlled&&current!==requested)emit("update:modelValue",current)};watch(()=>props.modelValue,next=>{if(!controlled||next===void 0)return;const result=controller.value.syncControlledValues({value:next===""?[]:[next]});if(!result.ok)throw new TypeError(result.error.message);snapshot.value=result.value});watch([()=>props.items,()=>props.disabledItems,()=>props.disabled,()=>props.readonly,()=>props.orientation,()=>props.activationMode,direction],rebuild);const value=computed(()=>snapshot.value.state.selection.selected[0]??"");const highlighted=computed(()=>snapshot.value.state.cursor.current);const disabled=computed(()=>props.disabled);const readonly=computed(()=>props.readonly);const orientation=computed(()=>props.orientation);const disabledItems=computed(()=>new Set(props.disabledItems));const apply=(result,root)=>{if(!result.ok)return false;snapshot.value=result.snapshot;applyEffects(result.commands,emit);if(root!==void 0)void nextTick(()=>focusTrigger(root,result.snapshot.state.cursor.current));return true};const activateTarget=target=>{if(!apply(controller.value.handleEvent({type:"focus",id:target})))return false;if(!apply(controller.value.handleEvent({type:"activate",id:target})))return false;void nextTick(()=>{if(rootElement.value!==null)focusTrigger(rootElement.value,target)});return true};const part=usePartContract("tabs","root");provide(tabsRootContextKey,{value,highlighted,disabled,readonly,orientation,direction,disabledItems,items:computed(()=>props.items),partContract:part,ids,select:(id,target)=>apply(controller.value.handleEvent({type:"activate",id}),target.closest('[role="tablist"]')),keydown:event=>{if(!apply(controller.value.handleKeyboardInput(event),event.currentTarget))return;event.preventDefault()},activateTarget});const slotProps=computed(()=>({value:value.value,highlightedValue:highlighted.value,disabled:props.disabled,readonly:props.readonly}));return()=>h(Primitive,mergeProps(attrs,getTabsRootAttributes(),{as:props.as,asChild:props.asChild,elementRef:element=>{rootElement.value=element},"data-scope":part.scope}),{default:()=>slots["default"]?.(slotProps.value)})}});const TabsList=defineComponent({name:"SectileTabsList",inheritAttrs:false,props:{label:{type:String,default:void 0},as:{type:[String,Object,Function],default:"div"},asChild:{type:Boolean,default:false}},slots:Object,setup(props,{attrs,slots}){const root=useTabsRootContext("TabsList");const part={scope:root.partContract.scope,part:root.partContract.parts["list"]??"list"};const attributes=computed(()=>getTabsListAttributes({orientation:root.orientation.value,direction:root.direction.value,...props.label===void 0?{}:{label:props.label},disabled:root.disabled.value,readOnly:root.readonly.value}));return()=>h(Primitive,mergeProps(attrs,attributes.value,{as:props.as,asChild:props.asChild,"data-scope":part.scope,onKeydown:root.keydown}),slots)}});const TabsTrigger=defineComponent({name:"SectileTabsTrigger",inheritAttrs:false,props:{value:{type:String,required:true},disabled:{type:Boolean,default:false},as:{type:[String,Object,Function],default:"button"},asChild:{type:Boolean,default:false}},slots:Object,setup(props,{attrs,slots}){const root=useTabsRootContext("TabsTrigger");const part={scope:root.partContract.scope,part:root.partContract.parts["trigger"]??"trigger"};const state=computed(()=>({value:props.value,selected:root.value.value===props.value,highlighted:root.highlighted.value===props.value,disabled:root.disabled.value||props.disabled||root.disabledItems.value.has(props.value)}));const attributes=computed(()=>{const ids=root.ids(props.value);return getTabsTriggerAttributes({id:props.value,selected:state.value.selected,highlighted:state.value.highlighted,disabled:state.value.disabled,triggerID:ids.trigger,panelID:ids.content})});return()=>h(Primitive,mergeProps(attrs,attributes.value,{as:props.as,asChild:props.asChild,"data-scope":part.scope,"data-part":part.part,onClick:event=>{if(!event.defaultPrevented&&!state.value.disabled)root.select(props.value,event.currentTarget)}}),{default:()=>slots["default"]?.(state.value)})}});const TabsContent=defineComponent({name:"SectileTabsContent",inheritAttrs:false,props:{value:{type:String,required:true},as:{type:[String,Object,Function],default:"div"},asChild:{type:Boolean,default:false}},slots:Object,setup(props,{attrs,slots}){const root=useTabsRootContext("TabsContent");const part={scope:root.partContract.scope,part:root.partContract.parts["content"]??"content"};const selected=computed(()=>root.value.value===props.value);const attributes=computed(()=>{const ids=root.ids(props.value);return getTabsContentAttributes({selected:selected.value,contentID:ids.content,triggerID:ids.trigger})});return()=>h(Primitive,mergeProps(attrs,attributes.value,{as:props.as,asChild:props.asChild,"data-scope":part.scope}),{default:()=>slots["default"]?.({value:props.value,selected:selected.value})})}});const TabsIndicator=defineComponent({name:"SectileTabsIndicator",inheritAttrs:false,props:{as:{type:[String,Object,Function],default:"span"},asChild:{type:Boolean,default:false}},slots:Object,setup(props,{attrs,slots}){const root=useTabsRootContext("TabsIndicator");const part={scope:root.partContract.scope,part:root.partContract.parts["indicator"]??"indicator"};return()=>h(Primitive,mergeProps(attrs,{as:props.as,asChild:props.asChild,"aria-hidden":"true","data-scope":part.scope,"data-part":part.part,"data-value":root.value.value}),{default:()=>slots["default"]?.({value:root.value.value})})}});function applyEffects(effects,emit){for(const effect of effects)if(effect.type==="dispatch-activation")emit("activate",effect.id)}function focusTrigger(root,id){if(id===null)return;const token=getTabsTriggerAttributes({id,selected:false,highlighted:false})["data-tabs-id"];for(const item of root.querySelectorAll("[data-tabs-id]")){if(item.dataset["tabsId"]===token)item.focus()}}export{TabsContent,TabsIndicator,TabsList,TabsRoot,TabsTrigger};
2
2
  //# sourceMappingURL=tabs.js.map
package/dist/tabs.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/tabs.ts"],"mappings":"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","names":["value"],"file":"tabs.js"}
1
+ {"version":3,"sources":["../src/tabs.ts"],"mappings":"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","names":["value"],"file":"tabs.js"}
package/dist/text.js CHANGED
@@ -1,2 +1,2 @@
1
- import{defineComponent,h,mergeProps,nextTick,onBeforeUnmount,onMounted,shallowRef,watch}from"vue";import{connectText,createTextController,createTextState}from"@sectile/dom/text";import{useNativeInputFormControl}from"./internal/form-control.js";import{useControlledStateInvariant}from"./internal/controlled-state.js";const TextField=defineComponent({name:"SectileTextField",inheritAttrs:false,props:{modelValue:{type:[String,Number],default:void 0},defaultValue:{type:[String,Number],default:""},modelModifiers:{type:Object,default:()=>({})},disabled:{type:Boolean,default:false},readonly:{type:Boolean,default:false},multiline:{type:Boolean,default:false},type:{type:String,default:"text"},name:{type:String,default:void 0},form:{type:String,default:void 0},required:{type:Boolean,default:false},placeholder:{type:String,default:void 0},autocomplete:{type:String,default:void 0}},emits:{"update:modelValue":_value=>true},setup(props,{attrs,emit}){const element=shallowRef(null);const controlled=useControlledStateInvariant("TextField","modelValue",()=>props.modelValue);const initialValue=String(controlled?props.modelValue:props.defaultValue);const renderServerValue=typeof window==="undefined";let controller=null;let connection=null;let proposedState=null;let mounted=false;const createController=state=>{const result=createTextController({...controlled&&!props.modelModifiers.lazy?{value:state}:{defaultValue:state},disabled:props.disabled,readOnly:props.readonly,onValueChange:change=>{proposedState=change.value;if(!props.modelModifiers.lazy){const proposal=change.value;const text=proposal.snapshot.text;emit("update:modelValue",text);void nextTick(()=>{if(connection===null||proposedState!==proposal)return;if(String(props.modelValue)!==text)return;proposedState=null;const result2=connection.syncControlledValues({value:proposal});if(!result2.ok)throw new TypeError(result2.error.message)})}}});if(!result.ok)throw new TypeError(result.error.message);return result.value};const mountConnection=state=>{if(!mounted||element.value===null)return;connection?.disconnect();controller=createController(state);connection=connectText({controller,element:element.value,disabled:props.disabled,readOnly:props.readonly});connection.render()};const participation=useNativeInputFormControl(element,{reset:()=>{queueMicrotask(()=>mountConnection(createTextState(controlled?String(props.modelValue):initialValue)))}});onMounted(()=>{mounted=true;mountConnection(createTextState(initialValue))});onBeforeUnmount(()=>{mounted=false;connection?.disconnect();connection=null;controller=null;proposedState=null});watch(()=>props.modelValue,value=>{if(!controlled||value===void 0||connection===null)return;const text=String(value);const state=proposedState?.snapshot.text===text?proposedState:createTextState(text);proposedState=null;if(props.modelModifiers.lazy){mountConnection(state);return}const result=connection.syncControlledValues({value:state});if(!result.ok)throw new TypeError(result.error.message)});watch([()=>props.disabled,()=>props.readonly],()=>{const state=controller?.getSnapshot().state??createTextState(String(controlled?props.modelValue:props.defaultValue));mountConnection(state)});const commitLazyValue=()=>{if(!props.modelModifiers.lazy||controller===null)return;emit("update:modelValue",controller.getSnapshot().state.snapshot.text)};return()=>h(props.multiline?"textarea":"input",mergeProps(attrs,{ref:element,...!props.multiline?{type:props.type}:{},...renderServerValue?{value:initialValue}:{},disabled:props.disabled,readonly:props.readonly,required:props.required,name:props.name,form:props.form,placeholder:props.placeholder,autocomplete:props.autocomplete,onChange:commitLazyValue,"data-scope":"text","data-part":"input","data-disabled":props.disabled?"":void 0,"data-readonly":props.readonly?"":void 0},participation.controlProps.value))}});export{TextField};
1
+ import{defineComponent,h,mergeProps,nextTick,onBeforeUnmount,onMounted,shallowRef,watch}from"vue";import{connectText,createTextController,createTextState}from"@sectile/dom/text";import{useNativeInputFormControl}from"./internal/form-control.js";import{useControlledStateInvariant}from"./internal/controlled-state.js";const TextField=defineComponent({name:"SectileTextField",inheritAttrs:false,props:{modelValue:{type:[String,Number],default:void 0},defaultValue:{type:[String,Number],default:""},modelModifiers:{type:Object,default:()=>({})},disabled:{type:Boolean,default:false},readonly:{type:Boolean,default:false},multiline:{type:Boolean,default:false},type:{type:String,default:"text"},name:{type:String,default:void 0},form:{type:String,default:void 0},required:{type:Boolean,default:false},placeholder:{type:String,default:void 0},autocomplete:{type:String,default:void 0}},emits:{"update:modelValue":_value=>true},setup(props,{attrs,emit}){const element=shallowRef(null);const controlled=useControlledStateInvariant("TextField","modelValue",()=>props.modelValue);const initialValue=String(controlled?props.modelValue:props.defaultValue);const renderServerValue=typeof window==="undefined";let controller=null;let connection=null;let proposedState=null;let mounted=false;const createController=state=>{const result=createTextController({...controlled&&!props.modelModifiers.lazy?{value:state}:{defaultValue:state},disabled:props.disabled,readOnly:props.readonly,onValueChange:change=>{const wasComposing=proposedState!==null&&proposedState.composition!==null;proposedState=change.value;if(change.value.composition!==null)return;if(props.modelModifiers.lazy){if(wasComposing)settleControlledProposal(change.value);return}emit("update:modelValue",change.value.snapshot.text);settleControlledProposal(change.value)}});if(!result.ok)throw new TypeError(result.error.message);return result.value};const mountConnection=state=>{if(!mounted||element.value===null)return;connection?.disconnect();controller=createController(state);connection=connectText({controller,element:element.value,disabled:props.disabled,readOnly:props.readonly,onTransition:({input})=>{if(!controlled||props.modelModifiers.lazy||input.type!=="composition-commit")return;const proposal=proposedState;if(proposal===null||proposal.composition!==null||connection===null)return;const result=connection.syncControlledValues({value:proposal});if(!result.ok)throw new TypeError(result.error.message)}});connection.render()};function settleControlledProposal(proposal){if(!controlled)return;void nextTick(()=>{if(connection===null||proposedState!==proposal||props.modelValue===void 0)return;proposedState=null;const text=String(props.modelValue);const state=proposal.snapshot.text===text?proposal:createTextState(text);if(props.modelModifiers.lazy){mountConnection(state);return}const result=connection.syncControlledValues({value:state});if(!result.ok)throw new TypeError(result.error.message)})}const participation=useNativeInputFormControl(element,{reset:()=>{queueMicrotask(()=>mountConnection(createTextState(controlled?String(props.modelValue):initialValue)))}});onMounted(()=>{mounted=true;mountConnection(createTextState(initialValue))});onBeforeUnmount(()=>{mounted=false;connection?.disconnect();connection=null;controller=null;proposedState=null});watch(()=>props.modelValue,value=>{if(!controlled||value===void 0||connection===null)return;if(proposedState!==null&&proposedState.composition!==null)return;const text=String(value);const state=proposedState?.snapshot.text===text?proposedState:createTextState(text);proposedState=null;if(props.modelModifiers.lazy){mountConnection(state);return}const result=connection.syncControlledValues({value:state});if(!result.ok)throw new TypeError(result.error.message)});watch([()=>props.disabled,()=>props.readonly],()=>{const state=controller?.getSnapshot().state??createTextState(String(controlled?props.modelValue:props.defaultValue));mountConnection(state)});const commitLazyValue=()=>{if(!props.modelModifiers.lazy||controller===null)return;emit("update:modelValue",controller.getSnapshot().state.snapshot.text)};return()=>h(props.multiline?"textarea":"input",mergeProps(attrs,{ref:element,...!props.multiline?{type:props.type}:{},...renderServerValue?{value:initialValue}:{},disabled:props.disabled,readonly:props.readonly,required:props.required,name:props.name,form:props.form,placeholder:props.placeholder,autocomplete:props.autocomplete,onChange:commitLazyValue,"data-scope":"text","data-part":"input","data-disabled":props.disabled?"":void 0,"data-readonly":props.readonly?"":void 0},participation.controlProps.value))}});export{TextField};
2
2
  //# sourceMappingURL=text.js.map
package/dist/text.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/text.ts"],"mappings":"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","names":["result"],"file":"text.js"}
1
+ {"version":3,"sources":["../src/text.ts"],"mappings":"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","names":[],"file":"text.js"}
@@ -1,2 +1,2 @@
1
- import{PickerAnchor,PickerContent,PickerGrid,PickerPortal,PickerTrigger,createPickerInput,createPickerMove,createPickerYearCell,specializePickerRootPart,createPickerRoot}from"./internal/date-picker.js";const YearPickerRoot=createPickerRoot("date","SectileYearPickerRoot",{scope:"year-picker",granularity:"year",defaultView:"year"});const YearPickerTrigger=specializePickerRootPart("date",PickerTrigger);const YearPickerAnchor=specializePickerRootPart("date",PickerAnchor);const YearPickerPortal=PickerPortal;const YearPickerContent=specializePickerRootPart("date",PickerContent);const YearPickerGrid=specializePickerRootPart("date",PickerGrid);const YearPickerCell=createPickerYearCell("cell","SectileYearPickerCell");const YearPickerInput=createPickerInput("input","SectileYearPickerInput");const YearPickerPreviousPage=specializePickerRootPart("date",createPickerMove("year",-1,"SectileYearPickerPreviousPage","previous-page"));const YearPickerNextPage=specializePickerRootPart("date",createPickerMove("year",1,"SectileYearPickerNextPage","next-page"));export{YearPickerAnchor,YearPickerCell,YearPickerContent,YearPickerGrid,YearPickerInput,YearPickerNextPage,YearPickerPortal,YearPickerPreviousPage,YearPickerRoot,YearPickerTrigger};
1
+ import{PickerAnchor,PickerContent,PickerGrid,PickerPortal,PickerTrigger,createPickerInput,createPickerMove,createPickerYearCell,specializePickerRootPart,createPickerRoot}from"./internal/date-picker.js";import{yearPickerCapability}from"./internal/year-picker-capability.js";const YearPickerRoot=createPickerRoot(yearPickerCapability,"SectileYearPickerRoot",{scope:"year-picker",granularity:"year",defaultView:"year"});const YearPickerTrigger=specializePickerRootPart("date",PickerTrigger);const YearPickerAnchor=specializePickerRootPart("date",PickerAnchor);const YearPickerPortal=PickerPortal;const YearPickerContent=specializePickerRootPart("date",PickerContent);const YearPickerGrid=specializePickerRootPart("date",PickerGrid);const YearPickerCell=createPickerYearCell("cell","SectileYearPickerCell");const YearPickerInput=createPickerInput("input","SectileYearPickerInput");const YearPickerPreviousPage=specializePickerRootPart("date",createPickerMove("year",-1,"SectileYearPickerPreviousPage","previous-page"));const YearPickerNextPage=specializePickerRootPart("date",createPickerMove("year",1,"SectileYearPickerNextPage","next-page"));export{YearPickerAnchor,YearPickerCell,YearPickerContent,YearPickerGrid,YearPickerInput,YearPickerNextPage,YearPickerPortal,YearPickerPreviousPage,YearPickerRoot,YearPickerTrigger};
2
2
  //# sourceMappingURL=year-picker.js.map
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/year-picker.ts"],"mappings":"AAEA,OACE,aAAc,cAAe,WAAY,aAAc,cAAe,kBAAmB,iBAAkB,qBAAsB,yBACjI,qBACK,4BAiBA,MAAM,eAAiB,iBAAiB,OAAQ,wBAAyB,CAAE,MAAO,cAAe,YAAa,OAAQ,YAAa,MAAM,CAAE,EAK3I,MAAM,kBAAoB,yBAAyB,OAAQ,aAAa,EACxE,MAAM,iBAAmB,yBAAyB,OAAQ,YAAY,EACtE,MAAM,iBAAmB,aACzB,MAAM,kBAAoB,yBAAyB,OAAQ,aAAa,EACxE,MAAM,eAAiB,yBAAyB,OAAQ,UAAU,EAClE,MAAM,eAAiB,qBAAqB,OAAQ,uBAAuB,EAC3E,MAAM,gBAAkB,kBAAkB,QAAS,wBAAwB,EAC3E,MAAM,uBAAyB,yBAAyB,OAAQ,iBAAiB,OAAQ,GAAI,gCAAiC,eAAe,CAAC,EAC9I,MAAM,mBAAqB,yBAAyB,OAAQ,iBAAiB,OAAQ,EAAG,4BAA6B,WAAW,CAAC","names":[],"file":"year-picker.js"}
1
+ {"version":3,"sources":["../src/year-picker.ts"],"mappings":"AAEA,OACE,aAAc,cAAe,WAAY,aAAc,cAAe,kBAAmB,iBAAkB,qBAAsB,yBACjI,qBACK,4BACP,OAAS,yBAA4B,uCAiB9B,MAAM,eAAiB,iBAAiB,qBAAsB,wBAAyB,CAAE,MAAO,cAAe,YAAa,OAAQ,YAAa,MAAM,CAAE,EAKzJ,MAAM,kBAAoB,yBAAyB,OAAQ,aAAa,EACxE,MAAM,iBAAmB,yBAAyB,OAAQ,YAAY,EACtE,MAAM,iBAAmB,aACzB,MAAM,kBAAoB,yBAAyB,OAAQ,aAAa,EACxE,MAAM,eAAiB,yBAAyB,OAAQ,UAAU,EAClE,MAAM,eAAiB,qBAAqB,OAAQ,uBAAuB,EAC3E,MAAM,gBAAkB,kBAAkB,QAAS,wBAAwB,EAC3E,MAAM,uBAAyB,yBAAyB,OAAQ,iBAAiB,OAAQ,GAAI,gCAAiC,eAAe,CAAC,EAC9I,MAAM,mBAAqB,yBAAyB,OAAQ,iBAAiB,OAAQ,EAAG,4BAA6B,WAAW,CAAC","names":[],"file":"year-picker.js"}
@@ -1,2 +1,2 @@
1
- import{PickerAnchor,PickerContent,PickerGrid,PickerPortal,PickerTrigger,createPickerInput,createPickerMove,createPickerYearCell,specializePickerRootPart,createPickerRoot}from"./internal/date-picker.js";const YearRangePickerRoot=createPickerRoot("date-range","SectileYearRangePickerRoot",{scope:"year-range-picker",granularity:"year",defaultView:"year"});const YearRangePickerTrigger=specializePickerRootPart("date-range",PickerTrigger);const YearRangePickerAnchor=specializePickerRootPart("date-range",PickerAnchor);const YearRangePickerPortal=PickerPortal;const YearRangePickerContent=specializePickerRootPart("date-range",PickerContent);const YearRangePickerGrid=specializePickerRootPart("date-range",PickerGrid);const YearRangePickerCell=createPickerYearCell("cell","SectileYearRangePickerCell");const YearRangePickerStartInput=createPickerInput("start-input","SectileYearRangePickerStartInput");const YearRangePickerEndInput=createPickerInput("end-input","SectileYearRangePickerEndInput");const YearRangePickerPreviousPage=specializePickerRootPart("date-range",createPickerMove("year",-1,"SectileYearRangePickerPreviousPage","previous-page"));const YearRangePickerNextPage=specializePickerRootPart("date-range",createPickerMove("year",1,"SectileYearRangePickerNextPage","next-page"));export{YearRangePickerAnchor,YearRangePickerCell,YearRangePickerContent,YearRangePickerEndInput,YearRangePickerGrid,YearRangePickerNextPage,YearRangePickerPortal,YearRangePickerPreviousPage,YearRangePickerRoot,YearRangePickerStartInput,YearRangePickerTrigger};
1
+ import{PickerAnchor,PickerContent,PickerGrid,PickerPortal,PickerTrigger,createPickerInput,createPickerMove,createPickerYearCell,specializePickerRootPart,createPickerRoot}from"./internal/date-picker.js";import{yearRangePickerCapability}from"./internal/year-range-picker-capability.js";const YearRangePickerRoot=createPickerRoot(yearRangePickerCapability,"SectileYearRangePickerRoot",{scope:"year-range-picker",granularity:"year",defaultView:"year"});const YearRangePickerTrigger=specializePickerRootPart("date-range",PickerTrigger);const YearRangePickerAnchor=specializePickerRootPart("date-range",PickerAnchor);const YearRangePickerPortal=PickerPortal;const YearRangePickerContent=specializePickerRootPart("date-range",PickerContent);const YearRangePickerGrid=specializePickerRootPart("date-range",PickerGrid);const YearRangePickerCell=createPickerYearCell("cell","SectileYearRangePickerCell");const YearRangePickerStartInput=createPickerInput("start-input","SectileYearRangePickerStartInput");const YearRangePickerEndInput=createPickerInput("end-input","SectileYearRangePickerEndInput");const YearRangePickerPreviousPage=specializePickerRootPart("date-range",createPickerMove("year",-1,"SectileYearRangePickerPreviousPage","previous-page"));const YearRangePickerNextPage=specializePickerRootPart("date-range",createPickerMove("year",1,"SectileYearRangePickerNextPage","next-page"));export{YearRangePickerAnchor,YearRangePickerCell,YearRangePickerContent,YearRangePickerEndInput,YearRangePickerGrid,YearRangePickerNextPage,YearRangePickerPortal,YearRangePickerPreviousPage,YearRangePickerRoot,YearRangePickerStartInput,YearRangePickerTrigger};
2
2
  //# sourceMappingURL=year-range-picker.js.map
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/year-range-picker.ts"],"mappings":"AAEA,OACE,aAAc,cAAe,WAAY,aAAc,cAAe,kBAAmB,iBAAkB,qBAAsB,yBACjI,qBACK,4BAiBA,MAAM,oBAAsB,iBAAiB,aAAc,6BAA8B,CAAE,MAAO,oBAAqB,YAAa,OAAQ,YAAa,MAAM,CAAE,EAKjK,MAAM,uBAAyB,yBAAyB,aAAc,aAAa,EACnF,MAAM,sBAAwB,yBAAyB,aAAc,YAAY,EACjF,MAAM,sBAAwB,aAC9B,MAAM,uBAAyB,yBAAyB,aAAc,aAAa,EACnF,MAAM,oBAAsB,yBAAyB,aAAc,UAAU,EAC7E,MAAM,oBAAsB,qBAAqB,OAAQ,4BAA4B,EACrF,MAAM,0BAA4B,kBAAkB,cAAe,kCAAkC,EACrG,MAAM,wBAA0B,kBAAkB,YAAa,gCAAgC,EAC/F,MAAM,4BAA8B,yBAAyB,aAAc,iBAAiB,OAAQ,GAAI,qCAAsC,eAAe,CAAC,EAC9J,MAAM,wBAA0B,yBAAyB,aAAc,iBAAiB,OAAQ,EAAG,iCAAkC,WAAW,CAAC","names":[],"file":"year-range-picker.js"}
1
+ {"version":3,"sources":["../src/year-range-picker.ts"],"mappings":"AAEA,OACE,aAAc,cAAe,WAAY,aAAc,cAAe,kBAAmB,iBAAkB,qBAAsB,yBACjI,qBACK,4BACP,OAAS,8BAAiC,6CAiBnC,MAAM,oBAAsB,iBAAiB,0BAA2B,6BAA8B,CAAE,MAAO,oBAAqB,YAAa,OAAQ,YAAa,MAAM,CAAE,EAK9K,MAAM,uBAAyB,yBAAyB,aAAc,aAAa,EACnF,MAAM,sBAAwB,yBAAyB,aAAc,YAAY,EACjF,MAAM,sBAAwB,aAC9B,MAAM,uBAAyB,yBAAyB,aAAc,aAAa,EACnF,MAAM,oBAAsB,yBAAyB,aAAc,UAAU,EAC7E,MAAM,oBAAsB,qBAAqB,OAAQ,4BAA4B,EACrF,MAAM,0BAA4B,kBAAkB,cAAe,kCAAkC,EACrG,MAAM,wBAA0B,kBAAkB,YAAa,gCAAgC,EAC/F,MAAM,4BAA8B,yBAAyB,aAAc,iBAAiB,OAAQ,GAAI,qCAAsC,eAAe,CAAC,EAC9J,MAAM,wBAA0B,yBAAyB,aAAc,iBAAiB,OAAQ,EAAG,iCAAkC,WAAW,CAAC","names":[],"file":"year-range-picker.js"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@sectile/vue",
3
- "version": "0.11.1",
3
+ "version": "0.13.0",
4
4
  "description": "Headless Vue components for Sectile DOM interaction semantics.",
5
5
  "license": "MIT",
6
6
  "type": "module",
@@ -301,6 +301,11 @@
301
301
  "import": "./dist/host-provider.js",
302
302
  "default": "./dist/host-provider.js"
303
303
  },
304
+ "./chart": {
305
+ "types": "./dist/chart.d.ts",
306
+ "import": "./dist/chart.js",
307
+ "default": "./dist/chart.js"
308
+ },
304
309
  "./virtual/core": {
305
310
  "types": "./dist/virtual-core.d.ts",
306
311
  "import": "./dist/virtual-core.js",
@@ -409,17 +414,21 @@
409
414
  "./package.json": "./package.json"
410
415
  },
411
416
  "dependencies": {
412
- "@sectile/core": "0.11.1",
413
- "@sectile/dom": "0.11.1"
417
+ "@sectile/core": "0.13.0",
418
+ "@sectile/dom": "0.13.0"
414
419
  },
415
420
  "peerDependencies": {
421
+ "@sectile/chart": "0.13.0",
422
+ "@sectile/form": "0.13.0",
423
+ "@sectile/tabular": "0.13.0",
424
+ "@sectile/virtual": "0.13.0",
416
425
  "vue": "^3.5.0",
417
- "@sectile/form": "0.11.1",
418
- "@sectile/tabular": "0.11.1",
419
- "@sectile/temporal": "0.11.1",
420
- "@sectile/virtual": "0.11.1"
426
+ "@sectile/temporal": "0.13.0"
421
427
  },
422
428
  "peerDependenciesMeta": {
429
+ "@sectile/chart": {
430
+ "optional": true
431
+ },
423
432
  "@sectile/form": {
424
433
  "optional": true
425
434
  },
@@ -434,6 +443,10 @@
434
443
  }
435
444
  },
436
445
  "devDependencies": {
446
+ "@sectile/chart": "0.13.0",
447
+ "@sectile/form": "0.13.0",
448
+ "@sectile/tabular": "0.13.0",
449
+ "@sectile/virtual": "0.13.0",
437
450
  "@vue/server-renderer": "^3.5.0",
438
451
  "happy-dom": "^20.11.6",
439
452
  "typescript": "7.0.2",
@@ -441,15 +454,13 @@
441
454
  "vite": "5.4.21",
442
455
  "vue": "^3.5.0",
443
456
  "vue-tsc": "^3.0.6",
444
- "@sectile/form": "0.11.1",
445
- "@sectile/tabular": "0.11.1",
446
- "@sectile/virtual": "0.11.1",
447
- "@sectile/temporal": "0.11.1"
457
+ "@sectile/temporal": "0.13.0"
448
458
  },
449
459
  "scripts": {
450
460
  "build": "node scripts/build.mjs production",
451
461
  "build:verification": "node scripts/build.mjs verification",
452
462
  "benchmark:collections": "pnpm --silent run build && node benchmarks/collection-reconciliation.mjs",
463
+ "benchmark:chart": "pnpm --silent run build && node benchmarks/chart-reconciliation.mjs",
453
464
  "check:controlled-reconciliation": "node scripts/check-controlled-reconciliation.mjs",
454
465
  "check:hydration-contract": "node scripts/check-hydration-contract.mjs",
455
466
  "serve:browser-verification": "pnpm --silent run build && node scripts/serve-browser-verification.mjs",