@sectile/vue 0.17.0 → 0.18.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (80) hide show
  1. package/dist/accordion.d.ts +12 -0
  2. package/dist/accordion.js +1 -1
  3. package/dist/accordion.js.map +1 -1
  4. package/dist/carousel.d.ts +13 -0
  5. package/dist/carousel.js +1 -1
  6. package/dist/carousel.js.map +1 -1
  7. package/dist/cascade-list.d.ts +11 -1
  8. package/dist/cascade-list.js +1 -1
  9. package/dist/cascade-list.js.map +1 -1
  10. package/dist/cascade-select.d.ts +11 -1
  11. package/dist/cascade-select.js +1 -1
  12. package/dist/cascade-select.js.map +1 -1
  13. package/dist/checkbox-group.d.ts +9 -0
  14. package/dist/checkbox.d.ts +11 -1
  15. package/dist/checkbox.js +1 -1
  16. package/dist/checkbox.js.map +1 -1
  17. package/dist/combobox.d.ts +12 -0
  18. package/dist/combobox.js +1 -1
  19. package/dist/combobox.js.map +1 -1
  20. package/dist/disclosure.d.ts +11 -1
  21. package/dist/disclosure.js +1 -1
  22. package/dist/disclosure.js.map +1 -1
  23. package/dist/form.d.ts +6 -48
  24. package/dist/form.js +1 -1
  25. package/dist/form.js.map +1 -1
  26. package/dist/grid.js +1 -1
  27. package/dist/grid.js.map +1 -1
  28. package/dist/internal/cascade-choice.d.ts +13 -0
  29. package/dist/internal/cascade-choice.js +1 -1
  30. package/dist/internal/cascade-choice.js.map +1 -1
  31. package/dist/internal/collection.d.ts +2 -0
  32. package/dist/internal/collection.js +1 -1
  33. package/dist/internal/collection.js.map +1 -1
  34. package/dist/internal/conditional-presence.d.ts +23 -0
  35. package/dist/internal/conditional-presence.js +2 -0
  36. package/dist/internal/conditional-presence.js.map +1 -0
  37. package/dist/internal/date-picker.js +1 -1
  38. package/dist/internal/date-picker.js.map +1 -1
  39. package/dist/internal/form-context.d.ts +22 -0
  40. package/dist/internal/form-context.js +2 -0
  41. package/dist/internal/form-context.js.map +1 -0
  42. package/dist/internal/form-presence-parts.d.ts +69 -0
  43. package/dist/internal/form-presence-parts.js +2 -0
  44. package/dist/internal/form-presence-parts.js.map +1 -0
  45. package/dist/internal/native-field.js +1 -1
  46. package/dist/internal/native-field.js.map +1 -1
  47. package/dist/internal/popup.js +1 -1
  48. package/dist/internal/popup.js.map +1 -1
  49. package/dist/internal/tabular-parts.js +1 -1
  50. package/dist/internal/tabular-parts.js.map +1 -1
  51. package/dist/internal/virtual-core.js +1 -1
  52. package/dist/internal/virtual-core.js.map +1 -1
  53. package/dist/listbox.d.ts +12 -0
  54. package/dist/listbox.js +1 -1
  55. package/dist/listbox.js.map +1 -1
  56. package/dist/menu.js +1 -1
  57. package/dist/menu.js.map +1 -1
  58. package/dist/navigation-menu.d.ts +15 -0
  59. package/dist/navigation-menu.js +1 -1
  60. package/dist/navigation-menu.js.map +1 -1
  61. package/dist/radio-group.d.ts +11 -1
  62. package/dist/radio-group.js +1 -1
  63. package/dist/radio-group.js.map +1 -1
  64. package/dist/range-calendar.js +1 -1
  65. package/dist/range-calendar.js.map +1 -1
  66. package/dist/rating.d.ts +9 -0
  67. package/dist/select.d.ts +12 -0
  68. package/dist/select.js +1 -1
  69. package/dist/select.js.map +1 -1
  70. package/dist/stepper.d.ts +9 -0
  71. package/dist/tabs.d.ts +11 -1
  72. package/dist/tabs.js +1 -1
  73. package/dist/tabs.js.map +1 -1
  74. package/dist/tree-grid.d.ts +14 -0
  75. package/dist/tree-grid.js +1 -1
  76. package/dist/tree-grid.js.map +1 -1
  77. package/dist/tree-view.d.ts +11 -1
  78. package/dist/tree-view.js +1 -1
  79. package/dist/tree-view.js.map +1 -1
  80. package/package.json +13 -13
package/dist/form.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/form.ts"],"mappings":"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","names":["related"],"file":"form.js"}
1
+ {"version":3,"sources":["../src/form.ts"],"mappings":"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","names":["related"],"file":"form.js"}
package/dist/grid.js CHANGED
@@ -1,2 +1,2 @@
1
- import{computed,defineComponent,h,inject,mergeProps,onBeforeUnmount,onMounted,provide,shallowRef,watch}from"vue";import{createGridControl}from"@sectile/dom/grid";import{Primitive}from"./primitive.js";import{reconcileCollectionState,sameIDs}from"./internal/collection.js";import{useControlledStateInvariant}from"./internal/controlled-state.js";const key=Symbol("SectileGridRoot");const partProps={as:{type:[String,Object,Function],default:"div"},asChild:{type:Boolean,default:false}};const GridRoot=defineComponent({name:"SectileGridRoot",inheritAttrs:false,props:{rows:{type:Array,required:true},modelValue:{type:String,default:void 0},defaultValue:{type:String,default:null},highlightedValue:{type:String,default:void 0},defaultHighlightedValue:{type:String,default:null},editMode:{type:String,default:void 0},defaultEditMode:{type:String,default:"navigation"},disabledItems:{type:Array,default:()=>[]},disabled:{type:Boolean,default:false},readonly:{type:Boolean,default:false},label:{type:String,default:void 0},policies:{type:Object,default:void 0},as:{type:[String,Object,Function],default:"div"},asChild:{type:Boolean,default:false}},emits:{"update:modelValue":_value=>true,"update:highlightedValue":_value=>true,"update:editMode":_value=>true,editStart:_value=>true,editCommit:_value=>true,editCancel:_value=>true},slots:Object,setup(props,{attrs,emit,slots}){const element=shallowRef();const connection=shallowRef();let connectionOwner;const localValue=shallowRef(props.modelValue!==void 0?props.modelValue:props.defaultValue);const localHighlight=shallowRef(props.highlightedValue!==void 0?props.highlightedValue:props.defaultHighlightedValue);const localEditMode=shallowRef(props.editMode??props.defaultEditMode);const controlled={value:useControlledStateInvariant("GridRoot","modelValue",()=>props.modelValue),highlighted:useControlledStateInvariant("GridRoot","highlightedValue",()=>props.highlightedValue),editMode:useControlledStateInvariant("GridRoot","editMode",()=>props.editMode)};const state=computed(()=>Object.freeze({value:props.modelValue!==void 0?props.modelValue:localValue.value,highlightedValue:props.highlightedValue!==void 0?props.highlightedValue:localHighlight.value,editMode:props.editMode??localEditMode.value,disabled:props.disabled,readonly:props.readonly}));const refreshParts=()=>{if(element.value===void 0||connection.value===void 0)return;element.value.querySelectorAll("[data-sectile-grid-cell]").forEach(node=>{const id=node.dataset["sectileGridCell"];if(id!==void 0)connection.value?.setCellAttributes(node,id,{disabled:node.dataset["sectileGridItemDisabled"]!==void 0})})};const refresh=()=>{const snapshot=connection.value?.getSnapshot().state;if(snapshot===void 0)return;localValue.value=snapshot.selection.selected[0]??null;localHighlight.value=snapshot.cursor.current;localEditMode.value=snapshot.editMode};const connect=()=>{const nextOwner=snapshotGridConnectionOwner(props);if(connection.value!==void 0&&connectionOwner!==void 0&&sameGridConnectionOwner(connectionOwner,nextOwner))return;connection.value?.disconnect();if(element.value===void 0)return;const items=nextOwner.rows.flatMap(row=>row.filter(id=>id!==null));const requestedValue=controlled.value?props.modelValue:localValue.value;const requestedHighlight=controlled.highlighted?props.highlightedValue:localHighlight.value;const reconciled=reconcileCollectionState(items,requestedValue===null?[]:[requestedValue],requestedHighlight,nextOwner.disabledItems,"single",{preserveNullCurrent:true});const value=reconciled.selected[0]??null;const requestedEditMode=controlled.editMode?props.editMode:localEditMode.value;const editMode=reconciled.current===null&&requestedEditMode==="editing"?"navigation":requestedEditMode;localValue.value=value;localHighlight.value=reconciled.current;localEditMode.value=editMode;if(controlled.value&&requestedValue!==value)emit("update:modelValue",value);if(controlled.highlighted&&requestedHighlight!==reconciled.current)emit("update:highlightedValue",reconciled.current);if(controlled.editMode&&props.editMode!==editMode)emit("update:editMode",editMode);connection.value=createGridControl({root:element.value,rows:nextOwner.rows,...controlled.value?{value}:{defaultValue:value},...controlled.highlighted?{highlightedValue:reconciled.current}:{defaultHighlightedValue:reconciled.current},...controlled.editMode?{editMode}:{defaultEditMode:editMode},disabledItems:nextOwner.disabledItems,disabled:nextOwner.disabled,readOnly:nextOwner.readonly,...nextOwner.label===void 0?{}:{label:nextOwner.label},...props.policies===void 0?{}:{policies:props.policies},onValueChange:value2=>{localValue.value=value2;emit("update:modelValue",value2)},onHighlightedValueChange:value2=>{localHighlight.value=value2;emit("update:highlightedValue",value2)},onEditModeChange:value2=>{localEditMode.value=value2;emit("update:editMode",value2)},onEditStart:id=>emit("editStart",id),onEditCommit:id=>emit("editCommit",id),onEditCancel:id=>emit("editCancel",id),onUpdate:refresh});connectionOwner=nextOwner;refreshParts();refresh()};const disabledItems=computed(()=>new Set(props.disabledItems));provide(key,{state,disabledItems,registerCell:(node,id,disabled)=>connection.value?.setCellAttributes(node,id,{disabled})});onMounted(connect);onBeforeUnmount(()=>connection.value?.disconnect());watch([()=>props.rows,()=>props.disabledItems,()=>props.disabled,()=>props.readonly,()=>props.label,()=>props.policies],connect);watch([()=>props.modelValue,()=>props.highlightedValue,()=>props.editMode],()=>{if(connection.value===void 0)return;const result=connection.value.syncControlledValues({...controlled.value?{value:props.modelValue}:{},...controlled.highlighted?{highlightedValue:props.highlightedValue}:{},...controlled.editMode?{editMode:props.editMode}:{}});if(!result.ok)throw new TypeError(result.error.message);refresh()});return()=>h(Primitive,mergeProps(attrs,{as:props.as,asChild:props.asChild,elementRef:node=>{element.value=node instanceof HTMLElement?node:void 0},"data-scope":"grid","data-part":"root","data-edit-mode":state.value.editMode}),{default:()=>slots["default"]?.(state.value)})}});const GridRow=defineComponent({name:"SectileGridRow",inheritAttrs:false,props:partProps,slots:Object,setup(props,{attrs,slots}){const root=useRoot("GridRow");return()=>h(Primitive,mergeProps(attrs,{as:props.as,asChild:props.asChild,role:"row","data-scope":"grid","data-part":"row"}),{default:()=>slots["default"]?.(root.state.value)})}});const GridCell=defineComponent({name:"SectileGridCell",inheritAttrs:false,props:{value:{type:String,required:true},disabled:{type:Boolean,default:false},...partProps},slots:Object,setup(props,{attrs,slots}){const root=useRoot("GridCell");let registeredID=props.value;const register=node=>{if(registeredID!==props.value){root.registerCell(void 0,registeredID,false);registeredID=props.value}root.registerCell(node instanceof HTMLElement?node:void 0,registeredID,props.disabled)};onBeforeUnmount(()=>root.registerCell(void 0,registeredID,false));const state=computed(()=>({...root.state.value,value:props.value,selected:root.state.value.value===props.value,highlighted:root.state.value.highlightedValue===props.value,disabled:root.state.value.disabled||props.disabled||root.disabledItems.value.has(props.value)}));return()=>h(Primitive,mergeProps(attrs,{as:props.as,asChild:props.asChild,elementRef:register,"data-sectile-grid-cell":props.value,"data-sectile-grid-item-disabled":props.disabled?"":void 0,"data-scope":"grid","data-part":"cell","data-selected":state.value.selected?"":void 0,"data-highlighted":state.value.highlighted?"":void 0,"data-disabled":state.value.disabled?"":void 0}),{default:()=>slots["default"]?.(state.value)})}});function useRoot(part){const root=inject(key);if(root===void 0)throw new TypeError(`${part} must be used inside GridRoot.`);return root}function snapshotGridConnectionOwner(props){return Object.freeze({rows:Object.freeze(props.rows.map(row=>Object.freeze([...row]))),disabledItems:Object.freeze([...props.disabledItems]),disabled:props.disabled,readonly:props.readonly,label:props.label,eligible:props.policies?.eligible,boundary:props.policies?.boundary,maxScan:props.policies?.maxScan})}function sameGridConnectionOwner(left,right){if(left.rows.length!==right.rows.length||!sameIDRows(left.rows,right.rows)||!sameIDs(left.disabledItems,right.disabledItems)||left.disabled!==right.disabled||left.readonly!==right.readonly||left.label!==right.label||left.eligible!==right.eligible||left.boundary!==right.boundary||left.maxScan!==right.maxScan)return false;return true}function sameIDRows(left,right){for(let row=0;row<left.length;row+=1){const leftRow=left[row];const rightRow=right[row];if(leftRow.length!==rightRow.length)return false;for(let column=0;column<leftRow.length;column+=1){if(leftRow[column]!==rightRow[column])return false}}return true}export{GridCell,GridRoot,GridRow};
1
+ import{defineComponent,h,inject,mergeProps,onBeforeUnmount,onMounted,provide,shallowReactive,shallowReadonly,shallowRef,toRaw,watch}from"vue";import{createGridControl}from"@sectile/dom/grid";import{Primitive}from"./primitive.js";import{invalidateItemProjection,reconcileCollectionState,sameIDs}from"./internal/collection.js";import{useControlledStateInvariant}from"./internal/controlled-state.js";const key=Symbol("SectileGridRoot");const partProps={as:{type:[String,Object,Function],default:"div"},asChild:{type:Boolean,default:false}};const GridRoot=defineComponent({name:"SectileGridRoot",inheritAttrs:false,props:{rows:{type:Array,required:true},modelValue:{type:String,default:void 0},defaultValue:{type:String,default:null},highlightedValue:{type:String,default:void 0},defaultHighlightedValue:{type:String,default:null},editMode:{type:String,default:void 0},defaultEditMode:{type:String,default:"navigation"},disabledItems:{type:Array,default:()=>[]},disabled:{type:Boolean,default:false},readonly:{type:Boolean,default:false},label:{type:String,default:void 0},policies:{type:Object,default:void 0},as:{type:[String,Object,Function],default:"div"},asChild:{type:Boolean,default:false}},emits:{"update:modelValue":_value=>true,"update:highlightedValue":_value=>true,"update:editMode":_value=>true,editStart:_value=>true,editCommit:_value=>true,editCancel:_value=>true},slots:Object,setup(props,{attrs,emit,slots}){const element=shallowRef();const connection=shallowRef();let connectionOwner;let disabledItemSet=new Set(props.disabledItems);const itemProjection=shallowReactive(new Map);const mutableState=shallowReactive({value:props.modelValue!==void 0?props.modelValue:props.defaultValue,highlightedValue:props.highlightedValue!==void 0?props.highlightedValue:props.defaultHighlightedValue,editMode:props.editMode??props.defaultEditMode,disabled:props.disabled,readonly:props.readonly});const state=shallowReadonly(mutableState);const controlled={value:useControlledStateInvariant("GridRoot","modelValue",()=>props.modelValue),highlighted:useControlledStateInvariant("GridRoot","highlightedValue",()=>props.highlightedValue),editMode:useControlledStateInvariant("GridRoot","editMode",()=>props.editMode)};const invalidateIdentityChange=(previous,next)=>{if(previous===next)return;invalidateItemProjection(itemProjection,previous);invalidateItemProjection(itemProjection,next)};const updateValue=value=>{const previous=mutableState.value;if(previous===value)return;mutableState.value=value;invalidateIdentityChange(previous,value)};const updateHighlight=value=>{const previous=mutableState.highlightedValue;if(previous===value)return;mutableState.highlightedValue=value;invalidateIdentityChange(previous,value)};const updateEditMode=value=>{if(mutableState.editMode!==value)mutableState.editMode=value};const updateOwnerProjection=owner=>{const nextDisabledItems=new Set(owner.disabledItems);if(mutableState.disabled===owner.disabled){for(const id of disabledItemSet)if(!nextDisabledItems.has(id))invalidateItemProjection(itemProjection,id);for(const id of nextDisabledItems)if(!disabledItemSet.has(id))invalidateItemProjection(itemProjection,id)}else mutableState.disabled=owner.disabled;disabledItemSet=nextDisabledItems;mutableState.readonly=owner.readonly};const publishSnapshot=snapshot=>{updateValue(snapshot.selection.selected[0]??null);updateHighlight(snapshot.cursor.current);updateEditMode(snapshot.editMode)};const refreshParts=()=>{if(element.value===void 0||connection.value===void 0)return;element.value.querySelectorAll("[data-sectile-grid-cell]").forEach(node=>{const id=node.dataset["sectileGridCell"];if(id!==void 0)connection.value?.setCellAttributes(node,id,{disabled:node.dataset["sectileGridItemDisabled"]!==void 0})})};const refresh=()=>{const snapshot=connection.value?.getSnapshot().state;if(snapshot!==void 0)publishSnapshot(snapshot)};const connect=()=>{const nextOwner=snapshotGridConnectionOwner(props);if(connection.value!==void 0&&connectionOwner!==void 0&&sameGridConnectionOwner(connectionOwner,nextOwner))return;connection.value?.disconnect();updateOwnerProjection(nextOwner);if(element.value===void 0)return;const items=nextOwner.rows.flatMap(row=>row.filter(id=>id!==null));const requestedValue=controlled.value?props.modelValue:mutableState.value;const requestedHighlight=controlled.highlighted?props.highlightedValue:mutableState.highlightedValue;const reconciled=reconcileCollectionState(items,requestedValue===null?[]:[requestedValue],requestedHighlight,nextOwner.disabledItems,"single",{preserveNullCurrent:true});const value=reconciled.selected[0]??null;const requestedEditMode=controlled.editMode?props.editMode:mutableState.editMode;const editMode=reconciled.current===null&&requestedEditMode==="editing"?"navigation":requestedEditMode;updateValue(value);updateHighlight(reconciled.current);updateEditMode(editMode);if(controlled.value&&requestedValue!==value)emit("update:modelValue",value);if(controlled.highlighted&&requestedHighlight!==reconciled.current)emit("update:highlightedValue",reconciled.current);if(controlled.editMode&&props.editMode!==editMode)emit("update:editMode",editMode);connection.value=createGridControl({root:element.value,rows:nextOwner.rows,...controlled.value?{value}:{defaultValue:value},...controlled.highlighted?{highlightedValue:reconciled.current}:{defaultHighlightedValue:reconciled.current},...controlled.editMode?{editMode}:{defaultEditMode:editMode},disabledItems:nextOwner.disabledItems,disabled:nextOwner.disabled,readOnly:nextOwner.readonly,...nextOwner.label===void 0?{}:{label:nextOwner.label},...props.policies===void 0?{}:{policies:props.policies},onValueChange:value2=>{updateValue(value2);emit("update:modelValue",value2)},onHighlightedValueChange:value2=>{updateHighlight(value2);emit("update:highlightedValue",value2)},onEditModeChange:value2=>{updateEditMode(value2);emit("update:editMode",value2)},onEditStart:id=>emit("editStart",id),onEditCommit:id=>emit("editCommit",id),onEditCancel:id=>emit("editCancel",id),onUpdate:refresh});connectionOwner=nextOwner;refreshParts();refresh()};provide(key,{state,itemProjection,isItemDisabled:id=>disabledItemSet.has(id),registerCell:(node,id,disabled)=>connection.value?.setCellAttributes(node,id,{disabled})});onMounted(connect);onBeforeUnmount(()=>connection.value?.disconnect());watch([()=>props.rows,()=>props.disabledItems,()=>props.disabled,()=>props.readonly,()=>props.label,()=>props.policies],connect);watch([()=>props.modelValue,()=>props.highlightedValue,()=>props.editMode],()=>{if(connection.value===void 0)return;const result=connection.value.syncControlledValues({...controlled.value?{value:props.modelValue}:{},...controlled.highlighted?{highlightedValue:props.highlightedValue}:{},...controlled.editMode?{editMode:props.editMode}:{}});if(!result.ok)throw new TypeError(result.error.message);publishSnapshot(result.value.state)});return()=>h(Primitive,mergeProps(attrs,{as:props.as,asChild:props.asChild,elementRef:node=>{element.value=node instanceof HTMLElement?node:void 0},"data-scope":"grid","data-part":"root","data-edit-mode":state.editMode}),{default:()=>slots["default"]?.(state)})}});const GridRow=defineComponent({name:"SectileGridRow",inheritAttrs:false,props:partProps,slots:Object,setup(props,{attrs,slots}){const root=useRoot("GridRow");return()=>h(Primitive,mergeProps(attrs,{as:props.as,asChild:props.asChild,role:"row","data-scope":"grid","data-part":"row"}),{default:()=>slots["default"]?.(root.state)})}});const GridCell=defineComponent({name:"SectileGridCell",inheritAttrs:false,props:{value:{type:String,required:true},disabled:{type:Boolean,default:false},...partProps},slots:Object,setup(props,{attrs,slots}){const root=useRoot("GridCell");let registeredID=props.value;const register=node=>{if(registeredID!==props.value){root.registerCell(void 0,registeredID,false);registeredID=props.value}root.registerCell(node instanceof HTMLElement?node:void 0,registeredID,props.disabled)};onBeforeUnmount(()=>root.registerCell(void 0,registeredID,false));const state=Object.freeze({get value(){return props.value},get selected(){root.itemProjection.get(props.value);return toRaw(root.state).value===props.value},get highlighted(){root.itemProjection.get(props.value);return toRaw(root.state).highlightedValue===props.value},get disabled(){root.itemProjection.get(props.value);return root.state.disabled||props.disabled||root.isItemDisabled(props.value)},get highlightedValue(){return root.state.highlightedValue},get editMode(){return root.state.editMode},get readonly(){return root.state.readonly}});return()=>h(Primitive,mergeProps(attrs,{as:props.as,asChild:props.asChild,elementRef:register,"data-sectile-grid-cell":props.value,"data-sectile-grid-item-disabled":props.disabled?"":void 0,"data-scope":"grid","data-part":"cell","data-selected":state.selected?"":void 0,"data-highlighted":state.highlighted?"":void 0,"data-disabled":state.disabled?"":void 0}),{default:()=>slots["default"]?.(state)})}});function useRoot(part){const root=inject(key);if(root===void 0)throw new TypeError(`${part} must be used inside GridRoot.`);return root}function snapshotGridConnectionOwner(props){return Object.freeze({rows:Object.freeze(props.rows.map(row=>Object.freeze([...row]))),disabledItems:Object.freeze([...props.disabledItems]),disabled:props.disabled,readonly:props.readonly,label:props.label,eligible:props.policies?.eligible,boundary:props.policies?.boundary,maxScan:props.policies?.maxScan})}function sameGridConnectionOwner(left,right){if(left.rows.length!==right.rows.length||!sameIDRows(left.rows,right.rows)||!sameIDs(left.disabledItems,right.disabledItems)||left.disabled!==right.disabled||left.readonly!==right.readonly||left.label!==right.label||left.eligible!==right.eligible||left.boundary!==right.boundary||left.maxScan!==right.maxScan)return false;return true}function sameIDRows(left,right){for(let row=0;row<left.length;row+=1){const leftRow=left[row];const rightRow=right[row];if(leftRow.length!==rightRow.length)return false;for(let column=0;column<leftRow.length;column+=1){if(leftRow[column]!==rightRow[column])return false}}return true}export{GridCell,GridRoot,GridRow};
2
2
  //# sourceMappingURL=grid.js.map
package/dist/grid.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/grid.ts"],"mappings":"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","names":["value"],"file":"grid.js"}
1
+ {"version":3,"sources":["../src/grid.ts"],"mappings":"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","names":["value"],"file":"grid.js"}
@@ -1,6 +1,7 @@
1
1
  import { type ComputedRef, type InjectionKey, type PropType, type SlotsType, type VNodeChild } from 'vue';
2
2
  import { type TreeNodeInput } from '@sectile/core/tree';
3
3
  import { type PrimitiveAs } from '../primitive.js';
4
+ import { type ConditionalPresenceProps, type ConditionalPresenceRegistry } from './conditional-presence.js';
4
5
  export interface CascadeChoiceRootState {
5
6
  readonly value: string | null;
6
7
  readonly valuePath: readonly string[];
@@ -39,12 +40,15 @@ export interface CascadeChoicePartProps {
39
40
  readonly as?: PrimitiveAs;
40
41
  readonly asChild?: boolean;
41
42
  }
43
+ export interface CascadeChoiceItemIndicatorProps extends CascadeChoicePartProps, ConditionalPresenceProps {
44
+ }
42
45
  export interface CascadeChoiceRootContext<State extends CascadeChoiceRootState = CascadeChoiceRootState> {
43
46
  readonly state: ComputedRef<State>;
44
47
  readonly label: ComputedRef<string | undefined>;
45
48
  readonly textValue: ComputedRef<(id: string) => string>;
46
49
  readonly disabledItems: ComputedRef<ReadonlySet<string>>;
47
50
  readonly branchItems: ComputedRef<ReadonlySet<string>>;
51
+ readonly indicatorPresence: ConditionalPresenceRegistry;
48
52
  registerColumn(element: HTMLElement, depth: number, label?: string): void;
49
53
  registerItem(element: HTMLElement, id: string, disabled: boolean): void;
50
54
  }
@@ -151,6 +155,10 @@ export declare function createCascadeChoiceParts<State extends CascadeChoiceRoot
151
155
  default: (props: CascadeChoiceItemSlotProps) => VNodeChild;
152
156
  }>, {}, {}, string, import("vue").ComponentProvideOptions, true, {}, any>;
153
157
  ItemIndicator: import("vue").DefineComponent<import("vue").ExtractPropTypes<{
158
+ forcePresent: {
159
+ readonly type: BooleanConstructor;
160
+ readonly default: false;
161
+ };
154
162
  as: {
155
163
  type: PropType<PrimitiveAs>;
156
164
  default: string;
@@ -160,6 +168,10 @@ export declare function createCascadeChoiceParts<State extends CascadeChoiceRoot
160
168
  default: boolean;
161
169
  };
162
170
  }>, () => VNodeChild, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {}, string, import("vue").PublicProps, Readonly<import("vue").ExtractPropTypes<{
171
+ forcePresent: {
172
+ readonly type: BooleanConstructor;
173
+ readonly default: false;
174
+ };
163
175
  as: {
164
176
  type: PropType<PrimitiveAs>;
165
177
  default: string;
@@ -169,6 +181,7 @@ export declare function createCascadeChoiceParts<State extends CascadeChoiceRoot
169
181
  default: boolean;
170
182
  };
171
183
  }>> & Readonly<{}>, {
184
+ forcePresent: boolean;
172
185
  as: PrimitiveAs;
173
186
  asChild: boolean;
174
187
  }, SlotsType<{
@@ -1,2 +1,2 @@
1
- import{computed,defineComponent,h,inject,mergeProps,provide}from"vue";import{tryCreateTree}from"@sectile/core/tree";import{Primitive}from"../primitive.js";import{collectionBranchIDs}from"./collection.js";const cascadeChoicePartProps={as:{type:[String,Object,Function],default:"span"},asChild:{type:Boolean,default:false}};function createCascadeChoiceParts(options){const useRoot=part=>{const root=inject(options.rootKey);if(root===void 0)throw new TypeError(`${part} must be used inside ${options.componentName}Root.`);return root};const useItem=part=>{const item=inject(options.itemKey);if(item===void 0)throw new TypeError(`${part} must be used inside ${options.componentName}Item.`);return item};const Column=defineComponent({name:`Sectile${options.componentName}Column`,inheritAttrs:false,props:{depth:{type:Number,required:true},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=useRoot(`${options.componentName}Column`);const state=computed(()=>({depth:props.depth,items:root.state.value.columns[props.depth]??[],parentValue:props.depth===0?null:root.state.value.path[props.depth-1]??null}));return()=>h(Primitive,mergeProps(attrs,{as:props.as,asChild:props.asChild,elementRef:node=>{if(node instanceof HTMLElement)root.registerColumn(node,props.depth,props.label)},role:"listbox","aria-label":props.label??root.label.value,"aria-orientation":"vertical",hidden:state.value.items.length===0,"data-scope":options.scope,"data-part":"column","data-depth":String(props.depth)}),{default:()=>slots["default"]?.(state.value)})}});const Item=defineComponent({name:`Sectile${options.componentName}Item`,inheritAttrs:false,props:{value:{type:String,required:true},disabled:{type:Boolean,default:false},as:{type:[String,Object,Function],default:"div"},asChild:{type:Boolean,default:false}},slots:Object,setup(props,{attrs,slots}){const root=useRoot(`${options.componentName}Item`);const state=computed(()=>({value:props.value,selected:root.state.value.value===props.value,highlighted:root.state.value.highlightedValue===props.value,expanded:root.state.value.path.includes(props.value),branch:root.branchItems.value.has(props.value),disabled:root.state.value.disabled||props.disabled||root.disabledItems.value.has(props.value)}));provide(options.itemKey,{state});return()=>h(Primitive,mergeProps(attrs,{as:props.as,asChild:props.asChild,elementRef:node=>{if(node instanceof HTMLElement)root.registerItem(node,props.value,state.value.disabled)},role:"option",tabindex:state.value.disabled?-1:state.value.highlighted?0:-1,"aria-selected":String(state.value.selected),"aria-disabled":state.value.disabled?"true":void 0,"aria-haspopup":state.value.branch?"listbox":void 0,"aria-expanded":state.value.branch?String(state.value.expanded):void 0,[options.itemAttribute]:props.value,"data-scope":options.scope,"data-part":"item","data-state":state.value.selected?"checked":"unchecked","data-selected":state.value.selected?"":void 0,"data-highlighted":state.value.highlighted?"":void 0,"data-expanded":state.value.expanded?"":void 0,"data-disabled":state.value.disabled?"":void 0}),{default:()=>slots["default"]?.(state.value)})}});const ItemIndicator=defineComponent({name:`Sectile${options.componentName}ItemIndicator`,inheritAttrs:false,props:cascadeChoicePartProps,slots:Object,setup(props,{attrs,slots}){const item=useItem(`${options.componentName}ItemIndicator`);return()=>h(Primitive,mergeProps(attrs,{as:props.as,asChild:props.asChild,hidden:!item.state.value.selected,"aria-hidden":"true","data-scope":options.scope,"data-part":"item-indicator"}),{default:()=>slots["default"]?.(item.state.value)})}});const ItemChevron=defineComponent({name:`Sectile${options.componentName}ItemChevron`,inheritAttrs:false,props:cascadeChoicePartProps,slots:Object,setup(props,{attrs,slots}){const item=useItem(`${options.componentName}ItemChevron`);return()=>h(Primitive,mergeProps(attrs,{as:props.as,asChild:props.asChild,hidden:!item.state.value.branch,"aria-hidden":"true","data-scope":options.scope,"data-part":"item-chevron"}),{default:()=>slots["default"]?.(item.state.value)})}});return Object.freeze({Column,Item,ItemIndicator,ItemChevron})}function initialCascadeColumns(nodes,path=[]){const tree=tryCreateTree(nodes);if(!tree.ok)throw new TypeError(tree.error.message);const columns=[tree.value.roots.ids];for(const id of path){const children=tree.value.childrenOf(id)?.ids??[];if(children.length>0)columns.push(children)}return columns}function cascadeItemPath(nodes,value){if(value===null)return[];const tree=tryCreateTree(nodes);if(!tree.ok)throw new TypeError(tree.error.message);const ancestors=tree.value.ancestorsOf(value);return ancestors===null?[]:Object.freeze([...ancestors].reverse().concat(value))}function cascadeBranchItems(nodes){return new Set(collectionBranchIDs(nodes))}export{cascadeBranchItems,cascadeChoicePartProps,cascadeItemPath,createCascadeChoiceParts,initialCascadeColumns};
1
+ import{computed,defineComponent,h,inject,mergeProps,provide}from"vue";import{tryCreateTree}from"@sectile/core/tree";import{Primitive}from"../primitive.js";import{collectionBranchIDs}from"./collection.js";import{conditionalPresenceProps}from"./conditional-presence.js";const cascadeChoicePartProps={as:{type:[String,Object,Function],default:"span"},asChild:{type:Boolean,default:false}};function createCascadeChoiceParts(options){const useRoot=part=>{const root=inject(options.rootKey);if(root===void 0)throw new TypeError(`${part} must be used inside ${options.componentName}Root.`);return root};const useItem=part=>{const item=inject(options.itemKey);if(item===void 0)throw new TypeError(`${part} must be used inside ${options.componentName}Item.`);return item};const Column=defineComponent({name:`Sectile${options.componentName}Column`,inheritAttrs:false,props:{depth:{type:Number,required:true},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=useRoot(`${options.componentName}Column`);const state=computed(()=>({depth:props.depth,items:root.state.value.columns[props.depth]??[],parentValue:props.depth===0?null:root.state.value.path[props.depth-1]??null}));return()=>h(Primitive,mergeProps(attrs,{as:props.as,asChild:props.asChild,elementRef:node=>{if(node instanceof HTMLElement)root.registerColumn(node,props.depth,props.label)},role:"listbox","aria-label":props.label??root.label.value,"aria-orientation":"vertical",hidden:state.value.items.length===0,"data-scope":options.scope,"data-part":"column","data-depth":String(props.depth)}),{default:()=>slots["default"]?.(state.value)})}});const Item=defineComponent({name:`Sectile${options.componentName}Item`,inheritAttrs:false,props:{value:{type:String,required:true},disabled:{type:Boolean,default:false},as:{type:[String,Object,Function],default:"div"},asChild:{type:Boolean,default:false}},slots:Object,setup(props,{attrs,slots}){const root=useRoot(`${options.componentName}Item`);const state=computed(()=>({value:props.value,selected:root.state.value.value===props.value,highlighted:root.state.value.highlightedValue===props.value,expanded:root.state.value.path.includes(props.value),branch:root.branchItems.value.has(props.value),disabled:root.state.value.disabled||props.disabled||root.disabledItems.value.has(props.value)}));provide(options.itemKey,{state});return()=>h(Primitive,mergeProps(attrs,{as:props.as,asChild:props.asChild,elementRef:node=>{if(node instanceof HTMLElement)root.registerItem(node,props.value,state.value.disabled)},role:"option",tabindex:state.value.disabled?-1:state.value.highlighted?0:-1,"aria-selected":String(state.value.selected),"aria-disabled":state.value.disabled?"true":void 0,"aria-haspopup":state.value.branch?"listbox":void 0,"aria-expanded":state.value.branch?String(state.value.expanded):void 0,[options.itemAttribute]:props.value,"data-scope":options.scope,"data-part":"item","data-state":state.value.selected?"checked":"unchecked","data-selected":state.value.selected?"":void 0,"data-highlighted":state.value.highlighted?"":void 0,"data-expanded":state.value.expanded?"":void 0,"data-disabled":state.value.disabled?"":void 0}),{default:()=>slots["default"]?.(state.value)})}});const ItemIndicator=defineComponent({name:`Sectile${options.componentName}ItemIndicator`,inheritAttrs:false,props:{...cascadeChoicePartProps,...conditionalPresenceProps},slots:Object,setup(props,{attrs,slots}){const root=useRoot(`${options.componentName}ItemIndicator`);const item=useItem(`${options.componentName}ItemIndicator`);return()=>{const state=item.state.value;return h(Primitive,mergeProps(attrs,{as:props.as,asChild:props.asChild,elementRef:element=>root.indicatorPresence.register(state.value,element),hidden:!root.indicatorPresence.isPresent(state.value,state.selected,props.forcePresent),"aria-hidden":"true","data-scope":options.scope,"data-part":"item-indicator","data-state":state.selected?"checked":"unchecked"}),{default:()=>slots["default"]?.(state)})}}});const ItemChevron=defineComponent({name:`Sectile${options.componentName}ItemChevron`,inheritAttrs:false,props:cascadeChoicePartProps,slots:Object,setup(props,{attrs,slots}){const item=useItem(`${options.componentName}ItemChevron`);return()=>h(Primitive,mergeProps(attrs,{as:props.as,asChild:props.asChild,hidden:!item.state.value.branch,"aria-hidden":"true","data-scope":options.scope,"data-part":"item-chevron"}),{default:()=>slots["default"]?.(item.state.value)})}});return Object.freeze({Column,Item,ItemIndicator,ItemChevron})}function initialCascadeColumns(nodes,path=[]){const tree=tryCreateTree(nodes);if(!tree.ok)throw new TypeError(tree.error.message);const columns=[tree.value.roots.ids];for(const id of path){const children=tree.value.childrenOf(id)?.ids??[];if(children.length>0)columns.push(children)}return columns}function cascadeItemPath(nodes,value){if(value===null)return[];const tree=tryCreateTree(nodes);if(!tree.ok)throw new TypeError(tree.error.message);const ancestors=tree.value.ancestorsOf(value);return ancestors===null?[]:Object.freeze([...ancestors].reverse().concat(value))}function cascadeBranchItems(nodes){return new Set(collectionBranchIDs(nodes))}export{cascadeBranchItems,cascadeChoicePartProps,cascadeItemPath,createCascadeChoiceParts,initialCascadeColumns};
2
2
  //# sourceMappingURL=cascade-choice.js.map
@@ -1 +1 @@
1
- {"version":3,"sources":["../../src/internal/cascade-choice.ts"],"mappings":"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","names":[],"file":"cascade-choice.js"}
1
+ {"version":3,"sources":["../../src/internal/cascade-choice.ts"],"mappings":"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","names":[],"file":"cascade-choice.js"}
@@ -1,6 +1,7 @@
1
1
  import { type CollectionSelectionMode, type ReconciledCollectionIdentities } from '@sectile/core/adapter-runtime';
2
2
  export type { CollectionSelectionMode } from '@sectile/core/adapter-runtime';
3
3
  export type ReconciledCollectionState = ReconciledCollectionIdentities<string>;
4
+ export type ItemProjection = Map<string, true>;
4
5
  export interface ReconcileCollectionOptions {
5
6
  readonly preserveNullCurrent?: boolean;
6
7
  }
@@ -10,6 +11,7 @@ export interface ReconcileCollectionOptions {
10
11
  */
11
12
  export declare function reconcileCollectionState(items: readonly string[], selected: readonly string[], current: string | null, disabledItems: readonly string[], mode: CollectionSelectionMode, options?: ReconcileCollectionOptions): ReconciledCollectionState;
12
13
  export declare function sameIDs(left: readonly string[], right: readonly string[]): boolean;
14
+ export declare function invalidateItemProjection(projection: ItemProjection, id: string | null | undefined): void;
13
15
  export declare function collectionBranchIDs(nodes: readonly Readonly<{
14
16
  id: string;
15
17
  parentID: string | null;
@@ -1,2 +1,2 @@
1
- import{tryReconcileCollectionIdentities}from"@sectile/core/adapter-runtime";import{sameStableIDOrder}from"@sectile/core/identity";import{tryCreateTree}from"@sectile/core/tree";function reconcileCollectionState(items,selected,current,disabledItems,mode,options={}){const result=tryReconcileCollectionIdentities(items,selected,current,disabledItems,mode,options);if(!result.ok)throw new TypeError(result.error.message);return result.value}function sameIDs(left,right){return sameStableIDOrder(left,right)}function collectionBranchIDs(nodes){const tree=tryCreateTree(nodes);if(!tree.ok)throw new TypeError(tree.error.message);return Object.freeze(nodes.filter(node=>tree.value.isLeaf(node.id)===false).map(node=>node.id))}export{collectionBranchIDs,reconcileCollectionState,sameIDs};
1
+ import{tryReconcileCollectionIdentities}from"@sectile/core/adapter-runtime";import{sameStableIDOrder}from"@sectile/core/identity";import{tryCreateTree}from"@sectile/core/tree";function reconcileCollectionState(items,selected,current,disabledItems,mode,options={}){const result=tryReconcileCollectionIdentities(items,selected,current,disabledItems,mode,options);if(!result.ok)throw new TypeError(result.error.message);return result.value}function sameIDs(left,right){return sameStableIDOrder(left,right)}function invalidateItemProjection(projection,id){if(id===null||id===void 0)return;projection.set(id,true);projection.delete(id)}function collectionBranchIDs(nodes){const tree=tryCreateTree(nodes);if(!tree.ok)throw new TypeError(tree.error.message);return Object.freeze(nodes.filter(node=>tree.value.isLeaf(node.id)===false).map(node=>node.id))}export{collectionBranchIDs,invalidateItemProjection,reconcileCollectionState,sameIDs};
2
2
  //# sourceMappingURL=collection.js.map
@@ -1 +1 @@
1
- {"version":3,"sources":["../../src/internal/collection.ts"],"mappings":"AAAA,OACE,qCAGK,gCACP,OAAS,sBAAyB,yBAClC,OAAS,kBAAqB,qBAcxB,SAAU,yBACd,MACA,SACA,QACA,cACA,KACA,QAAsC,CAAA,EAAE,CAExC,MAAM,OAAS,iCACb,MACA,SACA,QACA,cACA,KACA,OAAO,EAET,GAAI,CAAC,OAAO,GAAI,MAAM,IAAI,UAAU,OAAO,MAAM,OAAO,EACxD,OAAO,OAAO,KAChB,CAEM,SAAU,QAAQ,KAAyB,MAAwB,CACvE,OAAO,kBAAkB,KAAM,KAAK,CACtC,CAEM,SAAU,oBACd,MAAmE,CAEnE,MAAM,KAAO,cAAc,KAAK,EAChC,GAAI,CAAC,KAAK,GAAI,MAAM,IAAI,UAAU,KAAK,MAAM,OAAO,EACpD,OAAO,OAAO,OAAO,MAClB,OAAQ,MAAS,KAAK,MAAM,OAAO,KAAK,EAAE,IAAM,KAAK,EACrD,IAAK,MAAS,KAAK,EAAE,CAAC,CAC3B","names":[],"file":"collection.js"}
1
+ {"version":3,"sources":["../../src/internal/collection.ts"],"mappings":"AAAA,OACE,qCAGK,gCACP,OAAS,sBAAyB,yBAClC,OAAS,kBAAqB,qBAexB,SAAU,yBACd,MACA,SACA,QACA,cACA,KACA,QAAsC,CAAA,EAAE,CAExC,MAAM,OAAS,iCACb,MACA,SACA,QACA,cACA,KACA,OAAO,EAET,GAAI,CAAC,OAAO,GAAI,MAAM,IAAI,UAAU,OAAO,MAAM,OAAO,EACxD,OAAO,OAAO,KAChB,CAEM,SAAU,QAAQ,KAAyB,MAAwB,CACvE,OAAO,kBAAkB,KAAM,KAAK,CACtC,CAEM,SAAU,yBACd,WACA,GAA6B,CAE7B,GAAI,KAAO,MAAQ,KAAO,OAAW,OACrC,WAAW,IAAI,GAAI,IAAI,EACvB,WAAW,OAAO,EAAE,CACtB,CAEM,SAAU,oBACd,MAAmE,CAEnE,MAAM,KAAO,cAAc,KAAK,EAChC,GAAI,CAAC,KAAK,GAAI,MAAM,IAAI,UAAU,KAAK,MAAM,OAAO,EACpD,OAAO,OAAO,OAAO,MAClB,OAAQ,MAAS,KAAK,MAAM,OAAO,KAAK,EAAE,IAAM,KAAK,EACrD,IAAK,MAAS,KAAK,EAAE,CAAC,CAC3B","names":[],"file":"collection.js"}
@@ -0,0 +1,23 @@
1
+ import { type ComputedRef, type ShallowRef } from 'vue';
2
+ export interface ConditionalPresenceProps {
3
+ readonly forcePresent?: boolean;
4
+ }
5
+ export declare const conditionalPresenceProps: {
6
+ readonly forcePresent: {
7
+ readonly type: BooleanConstructor;
8
+ readonly default: false;
9
+ };
10
+ };
11
+ export interface ConditionalPresence {
12
+ readonly element: ShallowRef<HTMLElement | undefined>;
13
+ readonly present: ComputedRef<boolean>;
14
+ readonly hidden: ComputedRef<boolean>;
15
+ register(element: unknown): HTMLElement | undefined;
16
+ }
17
+ export declare function resolvePresenceElement(element: unknown): HTMLElement | undefined;
18
+ export declare function useConditionalPresence(active: ComputedRef<boolean>, forcePresent: ComputedRef<boolean>): ConditionalPresence;
19
+ export interface ConditionalPresenceRegistry {
20
+ register(key: string, element: unknown): void;
21
+ isPresent(key: string, active: boolean, forcePresent?: boolean): boolean;
22
+ }
23
+ export declare function useConditionalPresenceRegistry(activeKeys: ComputedRef<ReadonlySet<string>>): ConditionalPresenceRegistry;
@@ -0,0 +1,2 @@
1
+ import{computed,onBeforeUnmount,shallowReactive,shallowRef,watch}from"vue";import{retainExitPresence}from"@sectile/dom/presence";import{usePresence}from"./presence.js";const conditionalPresenceProps={forcePresent:{type:Boolean,default:false}};function resolvePresenceElement(element){return typeof HTMLElement!=="undefined"&&element instanceof HTMLElement?element:void 0}function useConditionalPresence(active,forcePresent){const element=shallowRef();const requested=computed(()=>active.value||forcePresent.value);const retained=usePresence(requested,element);const present=computed(()=>forcePresent.value||retained.value);return Object.freeze({element,present,hidden:computed(()=>!present.value),register(candidate){const resolved=resolvePresenceElement(candidate);element.value=resolved;return resolved}})}function useConditionalPresenceRegistry(activeKeys){const elements=new Map;const exiting=shallowReactive(new Set);const connections=new Map;const cancelConnection=key=>{const cancel=connections.get(key);if(cancel===void 0)return;cancel();connections.delete(key)};const cancelExit=key=>{cancelConnection(key);exiting.delete(key)};const startExit=key=>{if(activeKeys.value.has(key)){cancelExit(key);return}const element=elements.get(key);if(element===void 0){cancelExit(key);return}cancelConnection(key);const cancel=retainExitPresence(element,()=>{connections.delete(key);exiting.delete(key)});if(cancel!==null)connections.set(key,cancel)};watch(activeKeys,(next,previous)=>{for(const key of previous){if(!next.has(key))exiting.add(key)}for(const key of next){if(!previous.has(key))cancelExit(key)}},{flush:"sync"});watch(activeKeys,next=>{for(const key of exiting){if(!next.has(key)&&!connections.has(key))startExit(key)}},{flush:"post"});onBeforeUnmount(()=>{for(const cancel of connections.values())cancel();connections.clear();exiting.clear();elements.clear()});return Object.freeze({register(key,candidate){const previousElement=elements.get(key);const element=resolvePresenceElement(candidate);if(element===void 0){elements.delete(key);if(connections.has(key))cancelExit(key);return}elements.set(key,element);if(!connections.has(key)||previousElement===element)return;cancelConnection(key);if(!activeKeys.value.has(key)&&exiting.has(key)){queueMicrotask(()=>{if(!activeKeys.value.has(key)&&exiting.has(key)&&!connections.has(key))startExit(key)})}},isPresent:(key,active,forcePresent)=>forcePresent||active||exiting.has(key)})}export{conditionalPresenceProps,resolvePresenceElement,useConditionalPresence,useConditionalPresenceRegistry};
2
+ //# sourceMappingURL=conditional-presence.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../src/internal/conditional-presence.ts"],"mappings":"AAAA,OACE,SACA,gBACA,gBACA,WACA,UAGK,MACP,OAAS,uBAAmD,wBAC5D,OAAS,gBAAmB,gBAMrB,MAAM,yBAA2B,CACtC,aAAc,CAAE,KAAM,QAAS,QAAS,KAAK,GAUzC,SAAU,uBAAuB,QAAgB,CACrD,OAAO,OAAO,cAAgB,aAAe,mBAAmB,YAC5D,QACA,MACN,CAEM,SAAU,uBACd,OACA,aAAkC,CAElC,MAAM,QAAU,WAAU,EAC1B,MAAM,UAAY,SAAS,IAAM,OAAO,OAAS,aAAa,KAAK,EACnE,MAAM,SAAW,YAAY,UAAW,OAAO,EAC/C,MAAM,QAAU,SAAS,IAAM,aAAa,OAAS,SAAS,KAAK,EACnE,OAAO,OAAO,OAAO,CACnB,QACA,QACA,OAAQ,SAAS,IAAM,CAAC,QAAQ,KAAK,EACrC,SAAS,UAAkB,CACzB,MAAM,SAAW,uBAAuB,SAAS,EACjD,QAAQ,MAAQ,SAChB,OAAO,QACT,EACD,CACH,CAOM,SAAU,+BACd,WAA4C,CAE5C,MAAM,SAAW,IAAI,IACrB,MAAM,QAAU,gBAAgB,IAAI,GAAa,EACjD,MAAM,YAAc,IAAI,IAExB,MAAM,iBAAoB,KAAqB,CAC7C,MAAM,OAAS,YAAY,IAAI,GAAG,EAClC,GAAI,SAAW,OAAW,OAC1B,OAAM,EACN,YAAY,OAAO,GAAG,CACxB,EAEA,MAAM,WAAc,KAAqB,CACvC,iBAAiB,GAAG,EACpB,QAAQ,OAAO,GAAG,CACpB,EAEA,MAAM,UAAa,KAAqB,CACtC,GAAI,WAAW,MAAM,IAAI,GAAG,EAAG,CAC7B,WAAW,GAAG,EACd,MACF,CACA,MAAM,QAAU,SAAS,IAAI,GAAG,EAChC,GAAI,UAAY,OAAW,CACzB,WAAW,GAAG,EACd,MACF,CACA,iBAAiB,GAAG,EACpB,MAAM,OAAS,mBAAmB,QAAS,IAAK,CAC9C,YAAY,OAAO,GAAG,EACtB,QAAQ,OAAO,GAAG,CACpB,CAAC,EACD,GAAI,SAAW,KAAM,YAAY,IAAI,IAAK,MAAM,CAClD,EAEA,MAAM,WAAY,CAAC,KAAM,WAAY,CACnC,UAAW,OAAO,SAAU,CAC1B,GAAI,CAAC,KAAK,IAAI,GAAG,EAAG,QAAQ,IAAI,GAAG,CACrC,CACA,UAAW,OAAO,KAAM,CACtB,GAAI,CAAC,SAAS,IAAI,GAAG,EAAG,WAAW,GAAG,CACxC,CACF,EAAG,CAAE,MAAO,MAAM,CAAE,EAEpB,MAAM,WAAa,MAAQ,CACzB,UAAW,OAAO,QAAS,CACzB,GAAI,CAAC,KAAK,IAAI,GAAG,GAAK,CAAC,YAAY,IAAI,GAAG,EAAG,UAAU,GAAG,CAC5D,CACF,EAAG,CAAE,MAAO,MAAM,CAAE,EAEpB,gBAAgB,IAAK,CACnB,UAAW,UAAU,YAAY,OAAM,EAAI,OAAM,EACjD,YAAY,MAAK,EACjB,QAAQ,MAAK,EACb,SAAS,MAAK,CAChB,CAAC,EAED,OAAO,OAAO,OAAO,CACnB,SAAS,IAAa,UAAkB,CACtC,MAAM,gBAAkB,SAAS,IAAI,GAAG,EACxC,MAAM,QAAU,uBAAuB,SAAS,EAChD,GAAI,UAAY,OAAW,CACzB,SAAS,OAAO,GAAG,EACnB,GAAI,YAAY,IAAI,GAAG,EAAG,WAAW,GAAG,EACxC,MACF,CACA,SAAS,IAAI,IAAK,OAAO,EACzB,GAAI,CAAC,YAAY,IAAI,GAAG,GAAK,kBAAoB,QAAS,OAC1D,iBAAiB,GAAG,EACpB,GAAI,CAAC,WAAW,MAAM,IAAI,GAAG,GAAK,QAAQ,IAAI,GAAG,EAAG,CAClD,eAAe,IAAK,CAClB,GAAI,CAAC,WAAW,MAAM,IAAI,GAAG,GAAK,QAAQ,IAAI,GAAG,GAAK,CAAC,YAAY,IAAI,GAAG,EAAG,UAAU,GAAG,CAC5F,CAAC,CACH,CACF,EACA,UAAW,CAAC,IAAa,OAAiB,eAA2B,cAAgB,QAAU,QAAQ,IAAI,GAAG,EAC/G,CACH","names":[],"file":"conditional-presence.js"}
@@ -1,2 +1,2 @@
1
- import{Fragment,Teleport,computed,defineComponent,h,inject,mergeProps,onBeforeUnmount,onMounted,nextTick,provide,shallowRef,watch}from'vue';import{formatDateValue,parseDateValue}from'@sectile/dom/temporal/date-field';import{createCalendarMonth,createCalendarYear,isCalendarValueAvailable}from'@sectile/temporal/calendar';import{createMonthPickerValue,tryCreateMonthPickerValue}from'@sectile/temporal/month-picker';import{createYearPickerValue,tryCreateYearPickerValue}from'@sectile/temporal/year-picker';import{hiddenInputSubmissionCapabilities,useCompositeFormControl}from'./form-control.js';import{Primitive}from'../primitive.js';import{useControlledStateInvariant}from'./controlled-state.js';import{usePresence}from'./presence.js';import{useHostPortalTarget}from'../host-provider.js';import{useTemporalReferenceDate}from'../temporal-provider.js';export function specializePickerRootPart(_kind,component){return component}const key=Symbol('SectileDatePickerRoot');const noPendingPickerValue=Symbol('no-pending-picker-value');const partProps={as:{type:[String,Object,Function],default:'div'},asChild:{type:Boolean,default:false}};export function createPickerRoot(capability,name,config={}){const kind=capability.kind;const scope=config.scope??kind;const granularity=config.granularity??'day';const defaultView=config.defaultView??(granularity==='day'?'month':'year');const defaultOpen=config.defaultOpen??false;const yearPageSize=config.yearPageSize??12;const inline=config.inline??false;const component=defineComponent({name,inheritAttrs:false,props:{modelValue:{type:Object,default:undefined},defaultValue:{type:Object,default:null},open:{type:Boolean,default:undefined},defaultOpen:{type:Boolean,default:defaultOpen},highlightedValue:{type:Object,default:undefined},defaultHighlightedValue:{type:Object,default:undefined},referenceDate:{type:Object,default:undefined},defaultView:{type:String,default:defaultView},disabled:{type:Boolean,default:false},readonly:{type:Boolean,default:false},required:{type:Boolean,default:false},label:{type:String,default:undefined},policies:{type:Object,default:undefined},position:{type:Boolean,default:true},side:{type:String,default:'bottom'},align:{type:String,default:'center'},sideOffset:{type:Number,default:8},collisionPadding:{type:[Number,Object],default:8},collisionBoundary:{type:[String,Object],default:undefined},avoidCollisions:{type:Boolean,default:true},hideWhenDetached:{type:Boolean,default:false},strategy:{type:String,default:'absolute'},tracking:{type:String,default:'events'},as:{type:[String,Object,Function],default:'div'},asChild:{type:Boolean,default:false}},emits:{'update:modelValue':_value=>true,'update:open':_value=>true,'update:highlightedValue':_value=>true},slots:Object,setup(props,{emit,slots}){const runtimeProps=props;const elements=new Map;const connection=shallowRef();const hostReferenceDate=useTemporalReferenceDate();const referenceDate=computed(()=>runtimeProps.referenceDate??hostReferenceDate.value);const inlineTrigger=typeof document==='undefined'||!inline||kind==='calendar'?undefined:document.createElement('button');const localValue=shallowRef(runtimeProps.modelValue!==undefined?runtimeProps.modelValue:runtimeProps.defaultValue);const localOpen=shallowRef(runtimeProps.open??runtimeProps.defaultOpen);const localHighlight=shallowRef(runtimeProps.highlightedValue??runtimeProps.defaultHighlightedValue??dateOf(localValue.value)??referenceDate.value);const periodReferenceYear=localHighlight.value.year;const yearPageStart=shallowRef(localHighlight.value.year-Math.floor(yearPageSize/2));const dates=shallowRef(monthFor(localHighlight.value));const months=shallowRef(yearFor(localHighlight.value.year));const years=shallowRef(yearsFrom(yearPageStart.value,yearPageSize));const localView=shallowRef(Object.freeze({year:localHighlight.value.year,month:localHighlight.value.month}));const localViewMode=shallowRef(runtimeProps.defaultView);const controlled={value:useControlledStateInvariant(`${kind}PickerRoot`,'modelValue',()=>runtimeProps.modelValue),open:useControlledStateInvariant(`${kind}PickerRoot`,'open',()=>runtimeProps.open),highlighted:useControlledStateInvariant(`${kind}PickerRoot`,'highlightedValue',()=>runtimeProps.highlightedValue)};const pendingValue=shallowRef(noPendingPickerValue);const state=computed(()=>{const highlighted=runtimeProps.highlightedValue??localHighlight.value;const value=controlled.value&&pendingValue.value!==noPendingPickerValue?pendingValue.value:runtimeProps.modelValue!==undefined?runtimeProps.modelValue:localValue.value;return Object.freeze({value,highlightedValue:highlighted,open:runtimeProps.open??localOpen.value,dates:dates.value,months:months.value,years:years.value,view:localView.value,viewMode:localViewMode.value,disabled:runtimeProps.disabled,readonly:runtimeProps.readonly})});useCompositeFormControl({root:()=>elements.get('content')??elements.get('grid')??null,focusTarget:()=>elements.get('trigger')??(kind==='calendar'?null:firstPickerInput(elements,kind))??elements.get('grid')??null,submissions:()=>pickerFormSubmissions(elements,kind)});const periodAvailable=value=>{const policies=runtimeProps.policies;if(granularity!=='day'){const canonical='month'in value?tryCreateMonthPickerValue(value.year,value.month):tryCreateYearPickerValue(value.year);return canonical.ok&&isCalendarValueAvailable(canonical.value,policies)}if('month'in value)return monthAvailable(value,policies);return Array.from({length:12},(_entry,index)=>index+1).some(month=>monthAvailable({year:value.year,month},policies))};const refreshCells=()=>{const grid=elements.get('grid');if(grid===undefined||connection.value===undefined)return;grid.querySelectorAll('[data-sectile-picker-date]').forEach(element=>{const parsed=parseDateValue(element.dataset['sectilePickerDate']??'');if(parsed.ok)connection.value?.setCellAttributes(element,parsed.value)})};const refresh=()=>{const raw=connection.value?.getSnapshot().state;if(raw===undefined)return;const picked=extractState(kind,raw);localValue.value=picked.value;localHighlight.value=picked.highlighted;localOpen.value=picked.open;localView.value=picked.view;localViewMode.value=picked.viewMode;if(connection.value!==undefined){dates.value=picked.viewMode==='week'?[connection.value.getWeek()]:picked.viewMode==='month'?connection.value.getMonth():[];months.value=picked.viewMode==='year'?connection.value.getYear():[];if(granularity==='year'){yearPageStart.value=pageStartContaining(picked.highlighted.year,yearPageStart.value,yearPageSize);years.value=yearsFrom(yearPageStart.value,yearPageSize)}}refreshCells();void nextTick(refreshCells)};const connect=()=>{connection.value?.disconnect();const content=elements.get('content');const grid=elements.get('grid');const trigger=elements.get('trigger')??inlineTrigger;if(content===undefined||grid===undefined||kind!=='calendar'&&trigger===undefined)return;const base={root:content,grid,disabled:runtimeProps.disabled,readOnly:runtimeProps.readonly,required:runtimeProps.required,referenceDate:referenceDate.value,...runtimeProps.label===undefined?{}:{label:runtimeProps.label},...runtimeProps.policies===undefined?{}:{policies:runtimeProps.policies},...controlled.value?{value:runtimeProps.modelValue}:{defaultValue:localValue.value},...controlled.highlighted?{highlightedValue:runtimeProps.highlightedValue}:{defaultHighlightedValue:localHighlight.value},onValueChange:value=>{localValue.value=value;if(controlled.value)pendingValue.value=value;emit('update:modelValue',value)},onHighlightedValueChange:value=>{localHighlight.value=value;emit('update:highlightedValue',value)},onUpdate:refresh};if(kind!=='calendar'){base['trigger']=trigger;const anchor=elements.get('anchor');if(anchor!==undefined)base['anchor']=anchor;Object.assign(base,{manageVisibility:false,position:runtimeProps.position,side:runtimeProps.side,align:runtimeProps.align,sideOffset:runtimeProps.sideOffset,collisionPadding:runtimeProps.collisionPadding,avoidCollisions:runtimeProps.avoidCollisions,hideWhenDetached:runtimeProps.hideWhenDetached,strategy:runtimeProps.strategy,tracking:runtimeProps.tracking});if(runtimeProps.collisionBoundary!==undefined)base['collisionBoundary']=runtimeProps.collisionBoundary;if(controlled.open)base['open']=runtimeProps.open;else base['defaultOpen']=localOpen.value;base['onOpenChange']=value=>{localOpen.value=value;emit('update:open',value)}}if(granularity==='day'){for(const part of inputParts(kind)){const element=elements.get(part);if(element!==undefined)base[toDOMInputKey(part)]=element}}connection.value=capability.connect(base);if(runtimeProps.defaultView!=='month')connection.value.handleEvent({type:'set-view-mode',value:runtimeProps.defaultView});refreshCells();refresh()};let mounted=false;let connectQueued=false;const scheduleConnect=()=>{if(!mounted||connectQueued)return;connectQueued=true;void nextTick(()=>{connectQueued=false;if(mounted)connect()})};const moveBy=(unit,delta)=>{const direction=delta<0?-1:1;for(let index=0;index<Math.abs(delta);index+=1){connection.value?.handleEvent(`${direction<0?'previous':'next'}-${unit}`)}refresh()};const selectMonth=value=>{connection.value?.handleEvent(granularity==='month'?{type:kind==='calendar'||kind==='date'||kind==='date-range'?'select':'select-date',value:createMonthPickerValue(value.year,value.month)}:{type:'select-month',value});refresh()};const selectYear=value=>{connection.value?.handleEvent({type:kind==='calendar'||kind==='date'||kind==='date-range'?'select':'select-date',value:createYearPickerValue(value.year)});refresh()};provide(key,{kind,scope,granularity,inline,state,periodAvailable,formatInput:capability.formatInput,position:computed(()=>runtimeProps.position),strategy:computed(()=>runtimeProps.strategy),register:(part,element)=>{if(elements.get(part)===element||element===undefined&&!elements.has(part))return;if(element===undefined)elements.delete(part);else elements.set(part,element);scheduleConnect()},refresh:()=>connection.value?.refresh(),registerCell:(element,value)=>connection.value?.setCellAttributes(element,value),move:(unit,direction)=>{if(granularity!=='day'&&unit==='year'){connection.value?.handleEvent({type:'navigate-period',unit:granularity,direction:direction<0?'previous-page':'next-page',referenceYear:periodReferenceYear});refresh();return}moveBy(unit,direction)},handleGridKey:event=>{if(granularity==='day'&&state.value.viewMode!=='year'||event.altKey||event.ctrlKey||event.metaKey)return;const highlighted=state.value.highlightedValue;if(event.key==='Enter'||event.key===' '){event.preventDefault();event.stopImmediatePropagation();if(granularity==='year')selectYear({year:highlighted.year});else selectMonth({year:highlighted.year,month:highlighted.month});return}if(granularity!=='day'){const direction=event.key==='ArrowLeft'?'previous':event.key==='ArrowRight'?'next':event.key==='ArrowUp'?'above':event.key==='ArrowDown'?'below':event.key==='PageUp'?'previous-page':event.key==='PageDown'?'next-page':event.key==='Home'?'start':event.key==='End'?'end':null;if(direction===null)return;event.preventDefault();event.stopImmediatePropagation();connection.value?.handleEvent({type:'navigate-period',unit:granularity,direction,referenceYear:periodReferenceYear});refresh();return}let movement;if(event.key==='ArrowLeft')movement={unit:'month',delta:-1};else if(event.key==='ArrowRight')movement={unit:'month',delta:1};else if(event.key==='ArrowUp')movement={unit:'month',delta:-3};else if(event.key==='ArrowDown')movement={unit:'month',delta:3};else if(event.key==='PageUp')movement={unit:'year',delta:-1};else if(event.key==='PageDown')movement={unit:'year',delta:1};else if(event.key==='Home')movement={unit:'month',delta:1-highlighted.month};else if(event.key==='End')movement={unit:'month',delta:12-highlighted.month};else return;event.preventDefault();event.stopImmediatePropagation();if(movement.delta!==0)moveBy(movement.unit,movement.delta)},setViewMode:value=>{connection.value?.handleEvent({type:'set-view-mode',value});refresh()},selectDate:value=>{const type=kind==='calendar'||kind==='date'||kind==='date-range'?'select':'select-date';connection.value?.handleEvent({type,value});refresh()},selectMonth,selectYear});onMounted(()=>{mounted=true;connect()});onBeforeUnmount(()=>{mounted=false;connectQueued=false;connection.value?.disconnect();connection.value=undefined});watch([()=>runtimeProps.disabled,()=>runtimeProps.readonly,()=>runtimeProps.required,()=>runtimeProps.label,()=>runtimeProps.policies,()=>runtimeProps.position,()=>runtimeProps.side,()=>runtimeProps.align,()=>runtimeProps.sideOffset,()=>runtimeProps.collisionPadding,()=>runtimeProps.collisionBoundary,()=>runtimeProps.avoidCollisions,()=>runtimeProps.hideWhenDetached,()=>runtimeProps.strategy,()=>runtimeProps.tracking],connect);watch(referenceDate,value=>{if(runtimeProps.highlightedValue===undefined&&runtimeProps.defaultHighlightedValue===undefined&&dateOf(runtimeProps.modelValue??runtimeProps.defaultValue)===null)localHighlight.value=value;connect()});watch([()=>runtimeProps.modelValue,()=>runtimeProps.open,()=>runtimeProps.highlightedValue],(values,previousValues)=>{if(connection.value===undefined)return;if(values[0]!==previousValues[0])pendingValue.value=noPendingPickerValue;const result=connection.value.syncControlledValues({...controlled.value?{value:runtimeProps.modelValue}:{},...kind!=='calendar'&&controlled.open?{open:runtimeProps.open}:{},...controlled.highlighted?{highlightedValue:runtimeProps.highlightedValue}:{}});if(!result.ok)throw new TypeError(result.error?.message??'Could not synchronize picker values.');refresh()});return()=>h(Fragment,null,slots['default']?.(state.value)??[])}});return component}export const PickerTrigger=/* @__PURE__ */defineComponent({name:'SectilePickerTrigger',inheritAttrs:false,props:{as:{type:[String,Object,Function],default:'button'},asChild:{type:Boolean,default:false}},slots:Object,setup(props,{attrs,slots}){const root=useRoot('PickerTrigger');return()=>h(Primitive,mergeProps(attrs,{as:props.as,asChild:props.asChild,elementRef:node=>root.register('trigger',node instanceof HTMLElement?node:undefined),type:props.as==='button'?'button':undefined,disabled:root.state.value.disabled,'aria-haspopup':'dialog','aria-expanded':String(root.state.value.open),'data-scope':root.scope,'data-part':'trigger'}),{default:()=>slots['default']?.(root.state.value)})}});export const PickerAnchor=/* @__PURE__ */defineComponent({name:'SectilePickerAnchor',inheritAttrs:false,props:partProps,setup(props,{attrs,slots}){const root=useRoot('PickerAnchor');return()=>h(Primitive,mergeProps(attrs,{as:props.as,asChild:props.asChild,elementRef:node=>root.register('anchor',node instanceof HTMLElement?node:undefined),'data-scope':root.scope,'data-part':'anchor'}),slots)}});export const PickerContent=/* @__PURE__ */defineComponent({name:'SectilePickerContent',inheritAttrs:false,props:partProps,slots:Object,setup(props,{attrs,slots}){const root=useRoot('PickerContent');const element=shallowRef();const open=computed(()=>root.inline||root.state.value.open);const present=usePresence(open,element);watch(present,async()=>{await nextTick();root.refresh()},{flush:'post'});return()=>{const exiting=!root.inline&&!open.value&&present.value;return h(Primitive,mergeProps(attrs,{as:props.as,asChild:props.asChild,elementRef:node=>{const content=node instanceof HTMLElement?node:undefined;element.value=content;root.register('content',content)},role:root.inline?'group':'dialog','aria-modal':root.inline?undefined:'false',hidden:root.inline?false:!present.value,...exiting?{inert:true,'aria-hidden':'true'}:{},'data-scope':root.scope,'data-part':'content','data-state':root.state.value.open?'open':'closed',style:!root.inline&&root.position.value?{position:root.strategy.value}:undefined}),{default:()=>slots['default']?.(root.state.value)})}}});export const PickerPortal=/* @__PURE__ */defineComponent({name:'SectilePickerPortal',inheritAttrs:false,props:{to:{type:[String,Object],default:undefined},disabled:{type:Boolean,default:false},defer:{type:Boolean,default:false}},setup(props,{slots}){useRoot('PickerPortal');const portalTarget=useHostPortalTarget();return()=>h(Teleport,{to:props.to??portalTarget.value??'body',disabled:props.disabled,defer:props.defer},slots['default']?.())}});export const PickerGrid=/* @__PURE__ */defineComponent({name:'SectilePickerGrid',inheritAttrs:false,props:partProps,slots:Object,setup(props,{attrs,slots}){const root=useRoot('PickerGrid');return()=>h(Primitive,mergeProps(attrs,{as:props.as,asChild:props.asChild,elementRef:node=>root.register('grid',node instanceof HTMLElement?node:undefined),role:'grid',onKeydown:root.handleGridKey,'data-scope':root.scope,'data-part':'grid'}),{default:()=>slots['default']?.(root.state.value)})}});export const PickerCell=/* @__PURE__ */defineComponent({name:'SectilePickerCell',inheritAttrs:false,props:{value:{type:Object,required:true},as:{type:[String,Object,Function],default:'button'},asChild:{type:Boolean,default:false}},slots:Object,setup(props,{attrs,slots}){const root=useRoot('PickerCell');const state=computed(()=>cellState(root.kind,root.state.value,props.value));return()=>h(Primitive,mergeProps(attrs,{as:props.as,asChild:props.asChild,type:props.as==='button'?'button':undefined,elementRef:node=>{if(node instanceof HTMLElement)root.registerCell(node,props.value)},disabled:state.value.disabled,onClick:event=>{event.stopPropagation();root.selectDate(props.value)},role:'gridcell','aria-selected':String(state.value.selected||state.value.inRange),'data-sectile-picker-date':formatDateValue(props.value),'data-scope':root.scope,'data-part':'cell','data-selected':state.value.selected?'':undefined,'data-in-range':state.value.inRange?'':undefined,'data-highlighted':state.value.highlighted?'':undefined,'data-outside-month':state.value.outsideMonth?'':undefined}),{default:()=>slots['default']?.(state.value)})}});export function createPickerMonthCell(part='month-cell',name='SectilePickerMonthCell'){return defineComponent({name,inheritAttrs:false,props:{value:{type:Object,required:true},as:{type:[String,Object,Function],default:'button'},asChild:{type:Boolean,default:false}},slots:Object,setup(props,{attrs,slots}){const root=useRoot(name);const state=computed(()=>({value:props.value,selected:monthContainsValue(root.state.value.value,props.value),inRange:periodInRange(root.state.value.value,{...props.value,day:1},{...props.value,day:31}),highlighted:root.state.value.highlightedValue.year===props.value.year&&root.state.value.highlightedValue.month===props.value.month,disabled:root.state.value.disabled||!root.periodAvailable(props.value)}));return()=>h(Primitive,mergeProps(attrs,{as:props.as,asChild:props.asChild,type:props.as==='button'?'button':undefined,disabled:state.value.disabled,tabIndex:state.value.highlighted?0:-1,onClick:event=>{event.stopPropagation();if(!state.value.disabled)root.selectMonth(props.value)},role:'gridcell','aria-selected':String(state.value.selected||state.value.inRange),'aria-disabled':String(state.value.disabled),'data-sectile-picker-month':`${String(props.value.year).padStart(4,'0')}-${String(props.value.month).padStart(2,'0')}`,'data-scope':root.scope,'data-part':part,'data-selected':state.value.selected?'':undefined,'data-in-range':state.value.inRange?'':undefined,'data-highlighted':state.value.highlighted?'':undefined}),{default:()=>slots['default']?.(state.value)})}})}export function createPickerYearCell(part='year-cell',name='SectilePickerYearCell'){return defineComponent({name,inheritAttrs:false,props:{value:{type:Object,required:true},as:{type:[String,Object,Function],default:'button'},asChild:{type:Boolean,default:false}},slots:Object,setup(props,{attrs,slots}){const root=useRoot(name);const currentYear=(new Date).getFullYear();const state=computed(()=>({value:props.value,selected:yearContainsValue(root.state.value.value,props.value),inRange:periodInRange(root.state.value.value,{year:props.value.year,month:1,day:1},{year:props.value.year,month:12,day:31}),highlighted:root.state.value.highlightedValue.year===props.value.year,current:props.value.year===currentYear,disabled:root.state.value.disabled||!root.periodAvailable(props.value)}));return()=>h(Primitive,mergeProps(attrs,{as:props.as,asChild:props.asChild,type:props.as==='button'?'button':undefined,disabled:state.value.disabled,tabIndex:state.value.highlighted?0:-1,onClick:event=>{event.stopPropagation();if(!state.value.disabled)root.selectYear(props.value)},role:'gridcell','aria-selected':String(state.value.selected||state.value.inRange),'aria-disabled':String(state.value.disabled),'aria-current':state.value.current?'date':undefined,'data-sectile-picker-year':String(props.value.year),'data-scope':root.scope,'data-part':part,'data-selected':state.value.selected?'':undefined,'data-in-range':state.value.inRange?'':undefined,'data-highlighted':state.value.highlighted?'':undefined,'data-current':state.value.current?'':undefined}),{default:()=>slots['default']?.(state.value)})}})}export const PickerMonthCell=/* @__PURE__ */createPickerMonthCell();export const PickerYearCell=/* @__PURE__ */createPickerYearCell();export function createPickerInput(part,name,type='text'){return defineComponent({name,inheritAttrs:false,props:{name:{type:String,default:undefined},form:{type:String,default:undefined},as:{type:[String,Object,Function],default:'input'},asChild:{type:Boolean,default:false}},setup(props,{attrs}){const root=useRoot(name);return()=>h(Primitive,mergeProps(attrs,{as:props.as,asChild:props.asChild,elementRef:node=>root.register(part,node instanceof HTMLInputElement?node:undefined),type,name:props.name,form:props.form,disabled:root.state.value.disabled,readOnly:root.granularity!=='day'||root.state.value.readonly||part==='start-input'||part==='end-input'||part==='start-date-time-input'||part==='end-date-time-input',required:false,value:root.state.value.value===null?'':root.formatInput(root.granularity,part,root.state.value.value),'data-scope':root.scope,'data-part':part}))}})}export function createPickerMove(unit,direction,name,part){return defineComponent({name,inheritAttrs:false,props:{as:{type:[String,Object,Function],default:'button'},asChild:{type:Boolean,default:false}},slots:Object,setup(props,{attrs,slots}){const root=useRoot(name);return()=>h(Primitive,mergeProps(attrs,{as:props.as,asChild:props.asChild,type:props.as==='button'?'button':undefined,disabled:root.state.value.disabled,onClick:()=>root.move(unit,direction),'data-scope':root.scope,'data-part':part??`${direction<0?'previous':'next'}-${unit}`}),{default:()=>slots['default']?.(root.state.value)})}})}export function createPickerViewTrigger(view,name){return defineComponent({name,inheritAttrs:false,props:{as:{type:[String,Object,Function],default:'button'},asChild:{type:Boolean,default:false}},slots:Object,setup(props,{attrs,slots}){const root=useRoot(name);return()=>h(Primitive,mergeProps(attrs,{as:props.as,asChild:props.asChild,type:props.as==='button'?'button':undefined,disabled:root.state.value.disabled,onClick:()=>root.setViewMode(view),'aria-pressed':String(root.state.value.viewMode===view),'data-scope':root.scope,'data-part':`${view}-view-trigger`,'data-state':root.state.value.viewMode===view?'active':'inactive'}),{default:()=>slots['default']?.(root.state.value)})}})}function useRoot(part){const root=inject(key);if(root===undefined)throw new TypeError(`${part} must be used inside a date picker root.`);return root}function firstPickerInput(elements,kind){for(const part of inputParts(kind)){const element=elements.get(part);if(element instanceof HTMLInputElement)return element}return null}function pickerFormSubmissions(elements,kind){const submission=(part,relativeName)=>{const element=elements.get(part);if(!(element instanceof HTMLInputElement))return null;return{element:()=>element,...relativeName===undefined?{}:{relativeName},capabilities:hiddenInputSubmissionCapabilities}};if(kind==='calendar'||kind==='date')return compactSubmissions(submission('input'));if(kind==='date-range'){return compactSubmissions(submission('start-input','start'),submission('end-input','end'))}if(kind==='date-time'){const combined=submission('date-time-input');return combined===null?compactSubmissions(submission('date-input','date'),submission('time-input','time')):[combined]}const combinedStart=submission('start-date-time-input','start');const combinedEnd=submission('end-date-time-input','end');return compactSubmissions(combinedStart??submission('start-date-input','start.date'),combinedStart===null?submission('start-time-input','start.time'):null,combinedEnd??submission('end-date-input','end.date'),combinedEnd===null?submission('end-time-input','end.time'):null)}function compactSubmissions(...submissions){return submissions.filter(submission=>submission!==null)}function monthFor(value){return createCalendarMonth({year:value.year,month:value.month})}function yearFor(year){return createCalendarYear(year)}function yearsFrom(start,pageSize){const columns=4;return Array.from({length:Math.ceil(pageSize/columns)},(_row,rowIndex)=>Array.from({length:columns},(_column,columnIndex)=>Object.freeze({year:start+rowIndex*columns+columnIndex})))}function pageStartContaining(year,currentStart,pageSize){if(year<currentStart)return currentStart-Math.ceil((currentStart-year)/pageSize)*pageSize;if(year>=currentStart+pageSize)return currentStart+Math.floor((year-currentStart)/pageSize)*pageSize;return currentStart}function monthAvailable(value,policies){const days=daysInMonth(value.year,value.month);for(let day=1;day<=days;day+=1){if(isCalendarValueAvailable({year:value.year,month:value.month,day},policies))return true}return false}function daysInMonth(year,month){if(month===2)return year%4===0&&(year%100!==0||year%400===0)?29:28;return[4,6,9,11].includes(month)?30:31}function dateOf(value){if(value===null)return null;if('year'in value)return value;if('date'in value)return value.date;const start=value.start;return'date'in start?start.date:start}function extractState(kind,raw){const state=raw;if(kind==='calendar')return{value:state['value'],highlighted:state['highlighted'],open:true,view:state['view'],viewMode:state['viewMode']};if(kind==='date')return{value:state['value'],highlighted:state['highlighted'],open:state['open'],view:state['view'],viewMode:state['viewMode']};const calendar=state['calendar'];return{value:state['value'],highlighted:calendar['highlighted'],open:calendar['open'],view:calendar['view'],viewMode:calendar['viewMode']}}function compare(left,right){return left.year-right.year||left.month-right.month||left.day-right.day}function cellState(kind,state,value){const selectedDate=dateOf(state.value);let selected=selectedDate!==null&&compare(selectedDate,value)===0;let inRange=false;if(state.value!==null&&!('year'in state.value)&&!('date'in state.value)){const start='date'in state.value.start?state.value.start.date:state.value.start;const end='date'in state.value.end?state.value.end.date:state.value.end;inRange=compare(start,value)<=0&&compare(value,end)<=0;selected=compare(start,value)===0||compare(end,value)===0}return{value,selected,inRange,highlighted:compare(state.highlightedValue,value)===0,disabled:state.disabled,outsideMonth:value.month!==state.view.month||value.year!==state.view.year}}function monthContainsValue(value,month){const date=dateOf(value);return date!==null&&date.year===month.year&&date.month===month.month}function yearContainsValue(value,year){const date=dateOf(value);return date!==null&&date.year===year.year}function periodInRange(value,start,end){if(value===null||'year'in value||'date'in value)return false;const rangeStart='date'in value.start?value.start.date:value.start;const rangeEnd='date'in value.end?value.end.date:value.end;return compare(rangeStart,end)<=0&&compare(start,rangeEnd)<=0}function inputParts(kind){return kind==='calendar'||kind==='date'?['input']:kind==='date-range'?['start-input','end-input']:kind==='date-time'?['date-time-input','date-input','time-input']:['start-date-time-input','end-date-time-input','start-date-input','end-date-input','start-time-input','end-time-input']}function toDOMInputKey(part){if(part==='date-time-input')return'dateTimeInput';if(part==='start-date-time-input')return'startDateTimeInput';if(part==='end-date-time-input')return'endDateTimeInput';return part.replace(/-([a-z])/g,(_match,letter)=>letter.toUpperCase())}
1
+ import{Fragment,Teleport,computed,defineComponent,h,inject,mergeProps,onBeforeUnmount,onMounted,nextTick,provide,shallowRef,watch}from'vue';import{formatDateValue,parseDateValue}from'@sectile/dom/temporal/date-field';import{createCalendarMonth,createCalendarYear,isCalendarValueAvailable}from'@sectile/temporal/calendar';import{createDateValue,tryCreateDateValue}from'@sectile/temporal/date-field';import{hiddenInputSubmissionCapabilities,useCompositeFormControl}from'./form-control.js';import{Primitive}from'../primitive.js';import{useControlledStateInvariant}from'./controlled-state.js';import{usePresence}from'./presence.js';import{useHostPortalTarget}from'../host-provider.js';import{useTemporalReferenceDate}from'../temporal-provider.js';export function specializePickerRootPart(_kind,component){return component}const key=Symbol('SectileDatePickerRoot');const noPendingPickerValue=Symbol('no-pending-picker-value');const partProps={as:{type:[String,Object,Function],default:'div'},asChild:{type:Boolean,default:false}};export function createPickerRoot(capability,name,config={}){const kind=capability.kind;const scope=config.scope??kind;const granularity=config.granularity??'day';const defaultView=config.defaultView??(granularity==='day'?'month':'year');const defaultOpen=config.defaultOpen??false;const yearPageSize=config.yearPageSize??12;const inline=config.inline??false;const selectionEventType=kind==='calendar'||kind==='date'||kind==='date-range'?'select':'select-date';const component=defineComponent({name,inheritAttrs:false,props:{modelValue:{type:Object,default:undefined},defaultValue:{type:Object,default:null},open:{type:Boolean,default:undefined},defaultOpen:{type:Boolean,default:defaultOpen},highlightedValue:{type:Object,default:undefined},defaultHighlightedValue:{type:Object,default:undefined},referenceDate:{type:Object,default:undefined},defaultView:{type:String,default:defaultView},disabled:{type:Boolean,default:false},readonly:{type:Boolean,default:false},required:{type:Boolean,default:false},label:{type:String,default:undefined},policies:{type:Object,default:undefined},position:{type:Boolean,default:true},side:{type:String,default:'bottom'},align:{type:String,default:'center'},sideOffset:{type:Number,default:8},collisionPadding:{type:[Number,Object],default:8},collisionBoundary:{type:[String,Object],default:undefined},avoidCollisions:{type:Boolean,default:true},hideWhenDetached:{type:Boolean,default:false},strategy:{type:String,default:'absolute'},tracking:{type:String,default:'events'},as:{type:[String,Object,Function],default:'div'},asChild:{type:Boolean,default:false}},emits:{'update:modelValue':_value=>true,'update:open':_value=>true,'update:highlightedValue':_value=>true},slots:Object,setup(props,{emit,slots}){const runtimeProps=props;const elements=new Map;const connection=shallowRef();const hostReferenceDate=useTemporalReferenceDate();const referenceDate=computed(()=>runtimeProps.referenceDate??hostReferenceDate.value);const inlineTrigger=typeof document==='undefined'||!inline||kind==='calendar'?undefined:document.createElement('button');const localValue=shallowRef(runtimeProps.modelValue!==undefined?runtimeProps.modelValue:runtimeProps.defaultValue);const localOpen=shallowRef(runtimeProps.open??runtimeProps.defaultOpen);const localHighlight=shallowRef(runtimeProps.highlightedValue??runtimeProps.defaultHighlightedValue??dateOf(localValue.value)??referenceDate.value);const periodReferenceYear=localHighlight.value.year;const yearPageStart=shallowRef(localHighlight.value.year-Math.floor(yearPageSize/2));const dates=shallowRef(monthFor(localHighlight.value));const months=shallowRef(yearFor(localHighlight.value.year));const years=shallowRef(yearsFrom(yearPageStart.value,yearPageSize));const localView=shallowRef(Object.freeze({year:localHighlight.value.year,month:localHighlight.value.month}));const localViewMode=shallowRef(runtimeProps.defaultView);const controlled={value:useControlledStateInvariant(`${kind}PickerRoot`,'modelValue',()=>runtimeProps.modelValue),open:useControlledStateInvariant(`${kind}PickerRoot`,'open',()=>runtimeProps.open),highlighted:useControlledStateInvariant(`${kind}PickerRoot`,'highlightedValue',()=>runtimeProps.highlightedValue)};const pendingValue=shallowRef(noPendingPickerValue);const state=computed(()=>{const highlighted=runtimeProps.highlightedValue??localHighlight.value;const value=controlled.value&&pendingValue.value!==noPendingPickerValue?pendingValue.value:runtimeProps.modelValue!==undefined?runtimeProps.modelValue:localValue.value;return Object.freeze({value,highlightedValue:highlighted,open:runtimeProps.open??localOpen.value,dates:dates.value,months:months.value,years:years.value,view:localView.value,viewMode:localViewMode.value,disabled:runtimeProps.disabled,readonly:runtimeProps.readonly})});useCompositeFormControl({root:()=>elements.get('content')??elements.get('grid')??null,focusTarget:()=>elements.get('trigger')??(kind==='calendar'?null:firstPickerInput(elements,kind))??elements.get('grid')??null,submissions:()=>pickerFormSubmissions(elements,kind)});const periodAvailable=value=>{const policies=runtimeProps.policies;if(granularity!=='day'){const canonical='month'in value?tryCreateDateValue(value.year,value.month,1):tryCreateDateValue(value.year,1,1);return canonical.ok&&isCalendarValueAvailable(canonical.value,policies)}if('month'in value)return monthAvailable(value,policies);return Array.from({length:12},(_entry,index)=>index+1).some(month=>monthAvailable({year:value.year,month},policies))};const refreshCells=()=>{const grid=elements.get('grid');if(grid===undefined||connection.value===undefined)return;grid.querySelectorAll('[data-sectile-picker-date]').forEach(element=>{const parsed=parseDateValue(element.dataset['sectilePickerDate']??'');if(parsed.ok)connection.value?.setCellAttributes(element,parsed.value)})};const refresh=()=>{const raw=connection.value?.getSnapshot().state;if(raw===undefined)return;const picked=extractState(kind,raw);localValue.value=picked.value;localHighlight.value=picked.highlighted;localOpen.value=picked.open;localView.value=picked.view;localViewMode.value=picked.viewMode;if(connection.value!==undefined){dates.value=picked.viewMode==='week'?[connection.value.getWeek()]:picked.viewMode==='month'?connection.value.getMonth():[];months.value=picked.viewMode==='year'?connection.value.getYear():[];if(granularity==='year'){yearPageStart.value=pageStartContaining(picked.highlighted.year,yearPageStart.value,yearPageSize);years.value=yearsFrom(yearPageStart.value,yearPageSize)}}refreshCells();void nextTick(refreshCells)};const connect=()=>{connection.value?.disconnect();const content=elements.get('content');const grid=elements.get('grid');const trigger=elements.get('trigger')??inlineTrigger;if(content===undefined||grid===undefined||kind!=='calendar'&&trigger===undefined)return;const base={root:content,grid,disabled:runtimeProps.disabled,readOnly:runtimeProps.readonly,required:runtimeProps.required,referenceDate:referenceDate.value,...runtimeProps.label===undefined?{}:{label:runtimeProps.label},...runtimeProps.policies===undefined?{}:{policies:runtimeProps.policies},...controlled.value?{value:runtimeProps.modelValue}:{defaultValue:localValue.value},...controlled.highlighted?{highlightedValue:runtimeProps.highlightedValue}:{defaultHighlightedValue:localHighlight.value},onValueChange:value=>{localValue.value=value;if(controlled.value)pendingValue.value=value;emit('update:modelValue',value)},onHighlightedValueChange:value=>{localHighlight.value=value;emit('update:highlightedValue',value)},onUpdate:refresh};if(kind!=='calendar'){base['trigger']=trigger;const anchor=elements.get('anchor');if(anchor!==undefined)base['anchor']=anchor;Object.assign(base,{manageVisibility:false,position:runtimeProps.position,side:runtimeProps.side,align:runtimeProps.align,sideOffset:runtimeProps.sideOffset,collisionPadding:runtimeProps.collisionPadding,avoidCollisions:runtimeProps.avoidCollisions,hideWhenDetached:runtimeProps.hideWhenDetached,strategy:runtimeProps.strategy,tracking:runtimeProps.tracking});if(runtimeProps.collisionBoundary!==undefined)base['collisionBoundary']=runtimeProps.collisionBoundary;if(controlled.open)base['open']=runtimeProps.open;else base['defaultOpen']=localOpen.value;base['onOpenChange']=value=>{localOpen.value=value;emit('update:open',value)}}if(granularity==='day'){for(const part of inputParts(kind)){const element=elements.get(part);if(element!==undefined)base[toDOMInputKey(part)]=element}}connection.value=capability.connect(base);if(runtimeProps.defaultView!=='month')connection.value.handleEvent({type:'set-view-mode',value:runtimeProps.defaultView});refreshCells();refresh()};let mounted=false;let connectQueued=false;const scheduleConnect=()=>{if(!mounted||connectQueued)return;connectQueued=true;void nextTick(()=>{connectQueued=false;if(mounted)connect()})};const moveBy=(unit,delta)=>{const direction=delta<0?-1:1;for(let index=0;index<Math.abs(delta);index+=1){connection.value?.handleEvent(`${direction<0?'previous':'next'}-${unit}`)}refresh()};const selectMonth=value=>{connection.value?.handleEvent(granularity==='month'?{type:selectionEventType,value:createDateValue(value.year,value.month,1)}:{type:'select-month',value});refresh()};const selectYear=value=>{connection.value?.handleEvent({type:selectionEventType,value:createDateValue(value.year,1,1)});refresh()};provide(key,{kind,scope,granularity,inline,state,dayAvailable:value=>isCalendarValueAvailable(value,kind==='date-time'||kind==='date-time-range'?runtimeProps.policies?.date:runtimeProps.policies),periodAvailable,formatInput:capability.formatInput,position:computed(()=>runtimeProps.position),strategy:computed(()=>runtimeProps.strategy),register:(part,element)=>{if(elements.get(part)===element||element===undefined&&!elements.has(part))return;if(element===undefined)elements.delete(part);else elements.set(part,element);scheduleConnect()},refresh:()=>connection.value?.refresh(),registerCell:(element,value)=>connection.value?.setCellAttributes(element,value),move:(unit,direction)=>{if(granularity!=='day'&&unit==='year'){connection.value?.handleEvent({type:'navigate-period',unit:granularity,direction:direction<0?'previous-page':'next-page',referenceYear:periodReferenceYear});refresh();return}moveBy(unit,direction)},handleGridKey:event=>{if(granularity==='day'&&state.value.viewMode!=='year'||event.altKey||event.ctrlKey||event.metaKey)return;const highlighted=state.value.highlightedValue;if(event.key==='Enter'||event.key===' '){event.preventDefault();event.stopImmediatePropagation();if(granularity==='year')selectYear({year:highlighted.year});else selectMonth({year:highlighted.year,month:highlighted.month});return}if(granularity!=='day'){const direction=event.key==='ArrowLeft'?'previous':event.key==='ArrowRight'?'next':event.key==='ArrowUp'?'above':event.key==='ArrowDown'?'below':event.key==='PageUp'?'previous-page':event.key==='PageDown'?'next-page':event.key==='Home'?'start':event.key==='End'?'end':null;if(direction===null)return;event.preventDefault();event.stopImmediatePropagation();connection.value?.handleEvent({type:'navigate-period',unit:granularity,direction,referenceYear:periodReferenceYear});refresh();return}let movement;if(event.key==='ArrowLeft')movement={unit:'month',delta:-1};else if(event.key==='ArrowRight')movement={unit:'month',delta:1};else if(event.key==='ArrowUp')movement={unit:'month',delta:-3};else if(event.key==='ArrowDown')movement={unit:'month',delta:3};else if(event.key==='PageUp')movement={unit:'year',delta:-1};else if(event.key==='PageDown')movement={unit:'year',delta:1};else if(event.key==='Home')movement={unit:'month',delta:1-highlighted.month};else if(event.key==='End')movement={unit:'month',delta:12-highlighted.month};else return;event.preventDefault();event.stopImmediatePropagation();if(movement.delta!==0)moveBy(movement.unit,movement.delta)},setViewMode:value=>{connection.value?.handleEvent({type:'set-view-mode',value});refresh()},selectDate:value=>{connection.value?.handleEvent({type:selectionEventType,value});refresh()},selectMonth,selectYear});onMounted(()=>{mounted=true;connect()});onBeforeUnmount(()=>{mounted=false;connectQueued=false;connection.value?.disconnect();connection.value=undefined});watch([()=>runtimeProps.disabled,()=>runtimeProps.readonly,()=>runtimeProps.required,()=>runtimeProps.label,()=>runtimeProps.policies,()=>runtimeProps.position,()=>runtimeProps.side,()=>runtimeProps.align,()=>runtimeProps.sideOffset,()=>runtimeProps.collisionPadding,()=>runtimeProps.collisionBoundary,()=>runtimeProps.avoidCollisions,()=>runtimeProps.hideWhenDetached,()=>runtimeProps.strategy,()=>runtimeProps.tracking],connect);watch(referenceDate,value=>{if(runtimeProps.highlightedValue===undefined&&runtimeProps.defaultHighlightedValue===undefined&&dateOf(runtimeProps.modelValue??runtimeProps.defaultValue)===null)localHighlight.value=value;connect()});watch([()=>runtimeProps.modelValue,()=>runtimeProps.open,()=>runtimeProps.highlightedValue],(values,previousValues)=>{if(connection.value===undefined)return;if(values[0]!==previousValues[0])pendingValue.value=noPendingPickerValue;const result=connection.value.syncControlledValues({...controlled.value?{value:runtimeProps.modelValue}:{},...kind!=='calendar'&&controlled.open?{open:runtimeProps.open}:{},...controlled.highlighted?{highlightedValue:runtimeProps.highlightedValue}:{}});if(!result.ok)throw new TypeError(result.error?.message??'Could not synchronize picker values.');refresh()});return()=>h(Fragment,null,slots['default']?.(state.value)??[])}});return component}export const PickerTrigger=/* @__PURE__ */defineComponent({name:'SectilePickerTrigger',inheritAttrs:false,props:{as:{type:[String,Object,Function],default:'button'},asChild:{type:Boolean,default:false}},slots:Object,setup(props,{attrs,slots}){const root=useRoot('PickerTrigger');return()=>h(Primitive,mergeProps(attrs,{as:props.as,asChild:props.asChild,elementRef:node=>root.register('trigger',node instanceof HTMLElement?node:undefined),type:props.as==='button'?'button':undefined,disabled:root.state.value.disabled,'aria-haspopup':'dialog','aria-expanded':String(root.state.value.open),'data-scope':root.scope,'data-part':'trigger'}),{default:()=>slots['default']?.(root.state.value)})}});export const PickerAnchor=/* @__PURE__ */defineComponent({name:'SectilePickerAnchor',inheritAttrs:false,props:partProps,setup(props,{attrs,slots}){const root=useRoot('PickerAnchor');return()=>h(Primitive,mergeProps(attrs,{as:props.as,asChild:props.asChild,elementRef:node=>root.register('anchor',node instanceof HTMLElement?node:undefined),'data-scope':root.scope,'data-part':'anchor'}),slots)}});export const PickerContent=/* @__PURE__ */defineComponent({name:'SectilePickerContent',inheritAttrs:false,props:partProps,slots:Object,setup(props,{attrs,slots}){const root=useRoot('PickerContent');const element=shallowRef();const open=computed(()=>root.inline||root.state.value.open);const present=usePresence(open,element);watch(present,async()=>{await nextTick();root.refresh()},{flush:'post'});return()=>{const exiting=!root.inline&&!open.value&&present.value;return h(Primitive,mergeProps(attrs,{as:props.as,asChild:props.asChild,elementRef:node=>{const content=node instanceof HTMLElement?node:undefined;element.value=content;root.register('content',content)},role:root.inline?'group':'dialog','aria-modal':root.inline?undefined:'false',hidden:root.inline?false:!present.value,...exiting?{inert:true,'aria-hidden':'true'}:{},'data-scope':root.scope,'data-part':'content','data-state':root.state.value.open?'open':'closed',style:!root.inline&&root.position.value?{position:root.strategy.value}:undefined}),{default:()=>slots['default']?.(root.state.value)})}}});export const PickerPortal=/* @__PURE__ */defineComponent({name:'SectilePickerPortal',inheritAttrs:false,props:{to:{type:[String,Object],default:undefined},disabled:{type:Boolean,default:false},defer:{type:Boolean,default:false}},setup(props,{slots}){useRoot('PickerPortal');const portalTarget=useHostPortalTarget();return()=>h(Teleport,{to:props.to??portalTarget.value??'body',disabled:props.disabled,defer:props.defer},slots['default']?.())}});export const PickerGrid=/* @__PURE__ */defineComponent({name:'SectilePickerGrid',inheritAttrs:false,props:partProps,slots:Object,setup(props,{attrs,slots}){const root=useRoot('PickerGrid');return()=>h(Primitive,mergeProps(attrs,{as:props.as,asChild:props.asChild,elementRef:node=>root.register('grid',node instanceof HTMLElement?node:undefined),role:'grid',onKeydown:root.handleGridKey,'data-scope':root.scope,'data-part':'grid'}),{default:()=>slots['default']?.(root.state.value)})}});export const PickerCell=/* @__PURE__ */defineComponent({name:'SectilePickerCell',inheritAttrs:false,props:{value:{type:Object,required:true},as:{type:[String,Object,Function],default:'button'},asChild:{type:Boolean,default:false}},slots:Object,setup(props,{attrs,slots}){const root=useRoot('PickerCell');const state=computed(()=>cellState(root.state.value,props.value,root.dayAvailable(props.value)));return()=>h(Primitive,mergeProps(attrs,{as:props.as,asChild:props.asChild,type:props.as==='button'?'button':undefined,elementRef:node=>{if(node instanceof HTMLElement)root.registerCell(node,props.value)},disabled:state.value.disabled,onClick:event=>{event.stopPropagation();root.selectDate(props.value)},role:'gridcell','aria-selected':String(state.value.selected||state.value.inRange),'aria-disabled':String(state.value.disabled),'data-sectile-picker-date':formatDateValue(props.value),'data-scope':root.scope,'data-part':'cell','data-selected':state.value.selected?'':undefined,'data-in-range':state.value.inRange?'':undefined,'data-highlighted':state.value.highlighted?'':undefined,'data-outside-month':state.value.outsideMonth?'':undefined}),{default:()=>slots['default']?.(state.value)})}});export function createPickerMonthCell(part='month-cell',name='SectilePickerMonthCell'){return defineComponent({name,inheritAttrs:false,props:{value:{type:Object,required:true},as:{type:[String,Object,Function],default:'button'},asChild:{type:Boolean,default:false}},slots:Object,setup(props,{attrs,slots}){const root=useRoot(name);const state=computed(()=>({value:props.value,selected:monthContainsValue(root.state.value.value,props.value),inRange:periodInRange(root.state.value.value,{...props.value,day:1},{...props.value,day:31}),highlighted:root.state.value.highlightedValue.year===props.value.year&&root.state.value.highlightedValue.month===props.value.month,disabled:root.state.value.disabled||!root.periodAvailable(props.value)}));return()=>h(Primitive,mergeProps(attrs,{as:props.as,asChild:props.asChild,type:props.as==='button'?'button':undefined,disabled:state.value.disabled,tabIndex:state.value.highlighted?0:-1,onClick:event=>{event.stopPropagation();if(!state.value.disabled)root.selectMonth(props.value)},role:'gridcell','aria-selected':String(state.value.selected||state.value.inRange),'aria-disabled':String(state.value.disabled),'data-sectile-picker-month':`${String(props.value.year).padStart(4,'0')}-${String(props.value.month).padStart(2,'0')}`,'data-scope':root.scope,'data-part':part,'data-selected':state.value.selected?'':undefined,'data-in-range':state.value.inRange?'':undefined,'data-highlighted':state.value.highlighted?'':undefined}),{default:()=>slots['default']?.(state.value)})}})}export function createPickerYearCell(part='year-cell',name='SectilePickerYearCell'){return defineComponent({name,inheritAttrs:false,props:{value:{type:Object,required:true},as:{type:[String,Object,Function],default:'button'},asChild:{type:Boolean,default:false}},slots:Object,setup(props,{attrs,slots}){const root=useRoot(name);const currentYear=(new Date).getFullYear();const state=computed(()=>({value:props.value,selected:yearContainsValue(root.state.value.value,props.value),inRange:periodInRange(root.state.value.value,{year:props.value.year,month:1,day:1},{year:props.value.year,month:12,day:31}),highlighted:root.state.value.highlightedValue.year===props.value.year,current:props.value.year===currentYear,disabled:root.state.value.disabled||!root.periodAvailable(props.value)}));return()=>h(Primitive,mergeProps(attrs,{as:props.as,asChild:props.asChild,type:props.as==='button'?'button':undefined,disabled:state.value.disabled,tabIndex:state.value.highlighted?0:-1,onClick:event=>{event.stopPropagation();if(!state.value.disabled)root.selectYear(props.value)},role:'gridcell','aria-selected':String(state.value.selected||state.value.inRange),'aria-disabled':String(state.value.disabled),'aria-current':state.value.current?'date':undefined,'data-sectile-picker-year':String(props.value.year),'data-scope':root.scope,'data-part':part,'data-selected':state.value.selected?'':undefined,'data-in-range':state.value.inRange?'':undefined,'data-highlighted':state.value.highlighted?'':undefined,'data-current':state.value.current?'':undefined}),{default:()=>slots['default']?.(state.value)})}})}export const PickerMonthCell=/* @__PURE__ */createPickerMonthCell();export const PickerYearCell=/* @__PURE__ */createPickerYearCell();export function createPickerInput(part,name,type='text'){return defineComponent({name,inheritAttrs:false,props:{name:{type:String,default:undefined},form:{type:String,default:undefined},as:{type:[String,Object,Function],default:'input'},asChild:{type:Boolean,default:false}},setup(props,{attrs}){const root=useRoot(name);return()=>h(Primitive,mergeProps(attrs,{as:props.as,asChild:props.asChild,elementRef:node=>root.register(part,node instanceof HTMLInputElement?node:undefined),type,name:props.name,form:props.form,disabled:root.state.value.disabled,readOnly:root.granularity!=='day'||root.state.value.readonly||part==='start-input'||part==='end-input'||part==='start-date-time-input'||part==='end-date-time-input',required:false,value:root.state.value.value===null?'':root.formatInput(root.granularity,part,root.state.value.value),'data-scope':root.scope,'data-part':part}))}})}export function createPickerMove(unit,direction,name,part){return defineComponent({name,inheritAttrs:false,props:{as:{type:[String,Object,Function],default:'button'},asChild:{type:Boolean,default:false}},slots:Object,setup(props,{attrs,slots}){const root=useRoot(name);return()=>h(Primitive,mergeProps(attrs,{as:props.as,asChild:props.asChild,type:props.as==='button'?'button':undefined,disabled:root.state.value.disabled,onClick:()=>root.move(unit,direction),'data-scope':root.scope,'data-part':part??`${direction<0?'previous':'next'}-${unit}`}),{default:()=>slots['default']?.(root.state.value)})}})}export function createPickerViewTrigger(view,name){return defineComponent({name,inheritAttrs:false,props:{as:{type:[String,Object,Function],default:'button'},asChild:{type:Boolean,default:false}},slots:Object,setup(props,{attrs,slots}){const root=useRoot(name);return()=>h(Primitive,mergeProps(attrs,{as:props.as,asChild:props.asChild,type:props.as==='button'?'button':undefined,disabled:root.state.value.disabled,onClick:()=>root.setViewMode(view),'aria-pressed':String(root.state.value.viewMode===view),'data-scope':root.scope,'data-part':`${view}-view-trigger`,'data-state':root.state.value.viewMode===view?'active':'inactive'}),{default:()=>slots['default']?.(root.state.value)})}})}function useRoot(part){const root=inject(key);if(root===undefined)throw new TypeError(`${part} must be used inside a date picker root.`);return root}function firstPickerInput(elements,kind){for(const part of inputParts(kind)){const element=elements.get(part);if(element instanceof HTMLInputElement)return element}return null}function pickerFormSubmissions(elements,kind){const submission=(part,relativeName)=>{const element=elements.get(part);if(!(element instanceof HTMLInputElement))return null;return{element:()=>element,...relativeName===undefined?{}:{relativeName},capabilities:hiddenInputSubmissionCapabilities}};if(kind==='calendar'||kind==='date')return compactSubmissions(submission('input'));if(kind==='date-range'){return compactSubmissions(submission('start-input','start'),submission('end-input','end'))}if(kind==='date-time'){const combined=submission('date-time-input');return combined===null?compactSubmissions(submission('date-input','date'),submission('time-input','time')):[combined]}const combinedStart=submission('start-date-time-input','start');const combinedEnd=submission('end-date-time-input','end');return compactSubmissions(combinedStart??submission('start-date-input','start.date'),combinedStart===null?submission('start-time-input','start.time'):null,combinedEnd??submission('end-date-input','end.date'),combinedEnd===null?submission('end-time-input','end.time'):null)}function compactSubmissions(...submissions){return submissions.filter(submission=>submission!==null)}function monthFor(value){return createCalendarMonth({year:value.year,month:value.month})}function yearFor(year){return createCalendarYear(year)}function yearsFrom(start,pageSize){const columns=4;return Array.from({length:Math.ceil(pageSize/columns)},(_row,rowIndex)=>Array.from({length:columns},(_column,columnIndex)=>Object.freeze({year:start+rowIndex*columns+columnIndex})))}function pageStartContaining(year,currentStart,pageSize){if(year<currentStart)return currentStart-Math.ceil((currentStart-year)/pageSize)*pageSize;if(year>=currentStart+pageSize)return currentStart+Math.floor((year-currentStart)/pageSize)*pageSize;return currentStart}function monthAvailable(value,policies){const days=daysInMonth(value.year,value.month);for(let day=1;day<=days;day+=1){if(isCalendarValueAvailable({year:value.year,month:value.month,day},policies))return true}return false}function daysInMonth(year,month){if(month===2)return year%4===0&&(year%100!==0||year%400===0)?29:28;return[4,6,9,11].includes(month)?30:31}function dateOf(value){if(value===null)return null;if('year'in value)return value;if('date'in value)return value.date;const start=value.start;return'date'in start?start.date:start}function extractState(kind,raw){const state=raw;if(kind==='calendar')return{value:state['value'],highlighted:state['highlighted'],open:true,view:state['view'],viewMode:state['viewMode']};if(kind==='date')return{value:state['value'],highlighted:state['highlighted'],open:state['open'],view:state['view'],viewMode:state['viewMode']};const calendar=state['calendar'];return{value:state['value'],highlighted:calendar['highlighted'],open:calendar['open'],view:calendar['view'],viewMode:calendar['viewMode']}}function compare(left,right){return left.year-right.year||left.month-right.month||left.day-right.day}function cellState(state,value,available){const selectedDate=dateOf(state.value);let selected=selectedDate!==null&&compare(selectedDate,value)===0;let inRange=false;if(state.value!==null&&!('year'in state.value)&&!('date'in state.value)){const start='date'in state.value.start?state.value.start.date:state.value.start;const end='date'in state.value.end?state.value.end.date:state.value.end;inRange=compare(start,value)<=0&&compare(value,end)<=0;selected=compare(start,value)===0||compare(end,value)===0}return{value,selected,inRange,highlighted:compare(state.highlightedValue,value)===0,disabled:state.disabled||!available,outsideMonth:value.month!==state.view.month||value.year!==state.view.year}}function monthContainsValue(value,month){const date=dateOf(value);return date!==null&&date.year===month.year&&date.month===month.month}function yearContainsValue(value,year){const date=dateOf(value);return date!==null&&date.year===year.year}function periodInRange(value,start,end){if(value===null||'year'in value||'date'in value)return false;const rangeStart='date'in value.start?value.start.date:value.start;const rangeEnd='date'in value.end?value.end.date:value.end;return compare(rangeStart,end)<=0&&compare(start,rangeEnd)<=0}function inputParts(kind){return kind==='calendar'||kind==='date'?['input']:kind==='date-range'?['start-input','end-input']:kind==='date-time'?['date-time-input','date-input','time-input']:['start-date-time-input','end-date-time-input','start-date-input','end-date-input','start-time-input','end-time-input']}function toDOMInputKey(part){if(part==='date-time-input')return'dateTimeInput';if(part==='start-date-time-input')return'startDateTimeInput';if(part==='end-date-time-input')return'endDateTimeInput';return part.replace(/-([a-z])/g,(_match,letter)=>letter.toUpperCase())}
2
2
  //# sourceMappingURL=date-picker.js.map