@sectile/vue 0.14.0 → 0.14.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -9,7 +9,7 @@ export declare const AlertDialogContent: import("vue").Component;
9
9
  export declare const AlertDialogTitle: import("vue").Component;
10
10
  export declare const AlertDialogDescription: import("vue").Component;
11
11
  export declare const AlertDialogClose: import("vue").Component;
12
- export type AlertDialogRootProps = Omit<PopupRootProps, 'modal'>;
12
+ export type AlertDialogRootProps = Omit<PopupRootProps, 'modal' | 'position'>;
13
13
  export type AlertDialogRootSlotProps = PopupRootSlotProps;
14
14
  export type AlertDialogPartProps = PopupPartProps;
15
15
  export type AlertDialogPortalProps = PopupPortalProps;
@@ -1,8 +1,9 @@
1
1
  import { type PropType, type SlotsType, type VNodeChild } from 'vue';
2
2
  import { type CascadeSelectItemDefinition, type CascadeSelectPolicies } from '@sectile/dom/cascade-select';
3
+ import type { PositionBoundary, PositionOptions, PositionPadding, PositionStrategy, PositionTracking } from '@sectile/dom/position';
3
4
  import { type PrimitiveAs } from './primitive.js';
4
5
  import { type CascadeChoiceColumnProps, type CascadeChoiceColumnSlotProps, type CascadeChoiceItemProps, type CascadeChoiceItemSlotProps, type CascadeChoicePartProps, type CascadeChoiceRootState } from './internal/cascade-choice.js';
5
- export interface CascadeSelectRootProps {
6
+ export interface CascadeSelectRootProps extends Omit<PositionOptions, 'arrowPadding'> {
6
7
  readonly nodes: readonly CascadeSelectItemDefinition<string>[];
7
8
  readonly modelValue?: string | null;
8
9
  readonly defaultValue?: string | null;
@@ -12,6 +13,7 @@ export interface CascadeSelectRootProps {
12
13
  readonly disabled?: boolean;
13
14
  readonly?: boolean;
14
15
  readonly label?: string;
16
+ readonly position?: boolean;
15
17
  readonly name?: string;
16
18
  readonly form?: string;
17
19
  readonly required?: boolean;
@@ -78,6 +80,46 @@ export declare const CascadeSelectRoot: import("vue").DefineComponent<import("vu
78
80
  type: BooleanConstructor;
79
81
  default: boolean;
80
82
  };
83
+ position: {
84
+ type: BooleanConstructor;
85
+ default: boolean;
86
+ };
87
+ side: {
88
+ type: PropType<'top' | 'right' | 'bottom' | 'left'>;
89
+ default: string;
90
+ };
91
+ align: {
92
+ type: PropType<'start' | 'center' | 'end'>;
93
+ default: string;
94
+ };
95
+ sideOffset: {
96
+ type: NumberConstructor;
97
+ default: number;
98
+ };
99
+ collisionPadding: {
100
+ type: PropType<PositionPadding>;
101
+ default: number;
102
+ };
103
+ collisionBoundary: {
104
+ type: PropType<PositionBoundary>;
105
+ default: undefined;
106
+ };
107
+ avoidCollisions: {
108
+ type: BooleanConstructor;
109
+ default: boolean;
110
+ };
111
+ hideWhenDetached: {
112
+ type: BooleanConstructor;
113
+ default: boolean;
114
+ };
115
+ strategy: {
116
+ type: PropType<PositionStrategy>;
117
+ default: string;
118
+ };
119
+ tracking: {
120
+ type: PropType<PositionTracking>;
121
+ default: string;
122
+ };
81
123
  textValue: {
82
124
  type: PropType<CascadeSelectTextValueResolver>;
83
125
  default: undefined;
@@ -147,6 +189,46 @@ export declare const CascadeSelectRoot: import("vue").DefineComponent<import("vu
147
189
  type: BooleanConstructor;
148
190
  default: boolean;
149
191
  };
192
+ position: {
193
+ type: BooleanConstructor;
194
+ default: boolean;
195
+ };
196
+ side: {
197
+ type: PropType<'top' | 'right' | 'bottom' | 'left'>;
198
+ default: string;
199
+ };
200
+ align: {
201
+ type: PropType<'start' | 'center' | 'end'>;
202
+ default: string;
203
+ };
204
+ sideOffset: {
205
+ type: NumberConstructor;
206
+ default: number;
207
+ };
208
+ collisionPadding: {
209
+ type: PropType<PositionPadding>;
210
+ default: number;
211
+ };
212
+ collisionBoundary: {
213
+ type: PropType<PositionBoundary>;
214
+ default: undefined;
215
+ };
216
+ avoidCollisions: {
217
+ type: BooleanConstructor;
218
+ default: boolean;
219
+ };
220
+ hideWhenDetached: {
221
+ type: BooleanConstructor;
222
+ default: boolean;
223
+ };
224
+ strategy: {
225
+ type: PropType<PositionStrategy>;
226
+ default: string;
227
+ };
228
+ tracking: {
229
+ type: PropType<PositionTracking>;
230
+ default: string;
231
+ };
150
232
  textValue: {
151
233
  type: PropType<CascadeSelectTextValueResolver>;
152
234
  default: undefined;
@@ -179,6 +261,16 @@ export declare const CascadeSelectRoot: import("vue").DefineComponent<import("vu
179
261
  name: string;
180
262
  form: string;
181
263
  required: boolean;
264
+ position: boolean;
265
+ side: "bottom" | "left" | "right" | "top";
266
+ align: "center" | "end" | "start";
267
+ sideOffset: number;
268
+ collisionPadding: PositionPadding;
269
+ collisionBoundary: PositionBoundary;
270
+ avoidCollisions: boolean;
271
+ hideWhenDetached: boolean;
272
+ strategy: PositionStrategy;
273
+ tracking: PositionTracking;
182
274
  textValue: (id: string) => string;
183
275
  policies: CascadeSelectPolicies<string>;
184
276
  as: PrimitiveAs;
@@ -1,2 +1,2 @@
1
- import{computed,defineComponent,h,inject,mergeProps,onBeforeUnmount,onMounted,provide,shallowRef,watch}from"vue";import{createCascadeSelect}from"@sectile/dom/cascade-select";import{Primitive}from"./primitive.js";import{visuallyHiddenInputStyle}from"./internal/native-input.js";import{provideFormControlOwner}from"./internal/form-control.js";import{hiddenSelectSubmissionCapabilities,useCompositeFormControl}from"./internal/form-control.js";import{useControlledStateInvariant}from"./internal/controlled-state.js";import{cascadeBranchItems,cascadeChoicePartProps,cascadeItemPath,createCascadeChoiceParts,initialCascadeColumns}from"./internal/cascade-choice.js";const rootKey=Symbol("SectileCascadeSelectRoot");const itemKey=Symbol("SectileCascadeSelectItem");const partProps=cascadeChoicePartProps;const CascadeSelectRoot=defineComponent({name:"SectileCascadeSelectRoot",inheritAttrs:false,props:{nodes:{type:Array,required:true},modelValue:{type:String,default:void 0},defaultValue:{type:String,default:null},open:{type:Boolean,default:void 0},defaultOpen:{type:Boolean,default:false},disabledItems:{type:Array,default:()=>[]},disabled:{type:Boolean,default:false},readonly:{type:Boolean,default:false},label:{type:String,default:void 0},name:{type:String,default:void 0},form:{type:String,default:void 0},required:{type:Boolean,default:false},textValue:{type:Function,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:open":_value=>true,highlight:_value=>true},slots:Object,setup(props,{attrs,emit,slots}){const root=shallowRef(null);const trigger=shallowRef(null);const popup=shallowRef();const submission=shallowRef(null);const connection=shallowRef();const participation=useCompositeFormControl({root,focusTarget:trigger,submissions:[{element:submission,capabilities:hiddenSelectSubmissionCapabilities}]});provideFormControlOwner();const localValue=shallowRef(props.modelValue!==void 0?props.modelValue:props.defaultValue);const initialValuePath=cascadeItemPath(props.nodes,localValue.value);const initialBranchPath=initialValuePath.slice(0,-1);const localOpen=shallowRef(props.open??props.defaultOpen);const highlighted=shallowRef(localValue.value);const path=shallowRef(initialBranchPath);const columns=shallowRef(initialCascadeColumns(props.nodes,initialBranchPath));const valuePath=shallowRef(initialValuePath);const valueControlled=useControlledStateInvariant("CascadeSelectRoot","modelValue",()=>props.modelValue);const openControlled=useControlledStateInvariant("CascadeSelectRoot","open",()=>props.open);const state=computed(()=>Object.freeze({value:props.modelValue!==void 0?props.modelValue:localValue.value,valuePath:valuePath.value,highlightedValue:highlighted.value,path:path.value,columns:columns.value,open:props.open??localOpen.value,disabled:props.disabled,readonly:props.readonly}));const refresh=()=>{const current=connection.value?.getSnapshot().state;if(current===void 0)return;localValue.value=current.value;localOpen.value=current.open;highlighted.value=current.highlighted;path.value=current.path;columns.value=connection.value?.getColumns()??[];valuePath.value=connection.value?.getValuePath()??[];refreshItems()};const refreshItems=()=>{if(popup.value===void 0||connection.value===void 0)return;popup.value.querySelectorAll("[data-sectile-cascade-select-id]").forEach(element=>{const id=element.dataset["sectileCascadeSelectId"];if(id!==void 0)connection.value?.setItemAttributes(element,id,props.disabledItems.includes(id))})};const connect=()=>{connection.value?.disconnect();if(root.value===null||trigger.value===null||popup.value===void 0)return;const branchIDs=cascadeBranchItems(props.nodes);const leafIDs=new Set(props.nodes.filter(node=>!branchIDs.has(node.id)).map(node=>node.id));const requestedValue=valueControlled?props.modelValue:localValue.value;const value=requestedValue!==null&&leafIDs.has(requestedValue)?requestedValue:null;localValue.value=value;if(valueControlled&&requestedValue!==value)emit("update:modelValue",value);connection.value=createCascadeSelect({root:root.value,trigger:trigger.value,popup:popup.value,nodes:props.nodes,disabledItems:props.disabledItems,...props.policies===void 0?{}:{policies:props.policies},...valueControlled?{value}:{defaultValue:value},...openControlled?{open:props.open}:{defaultOpen:localOpen.value},disabled:props.disabled,readOnly:props.readonly,...props.label===void 0?{}:{label:props.label},onValueChange:next=>{localValue.value=next;emit("update:modelValue",next)},onHighlightedValueChange:next=>{highlighted.value=next;emit("highlight",next)},onOpenChange:next=>{localOpen.value=next;emit("update:open",next)},onUpdate:refresh});refresh()};const branches=computed(()=>cascadeBranchItems(props.nodes));provide(rootKey,{state,label:computed(()=>props.label),textValue:computed(()=>props.textValue??(id=>id)),disabledItems:computed(()=>new Set(props.disabledItems)),branchItems:branches,registerTrigger:element=>{trigger.value=element??null},registerPopup:element=>{popup.value=element},registerColumn:(element,depth,label)=>connection.value?.setColumnAttributes(element,depth===0?null:state.value.path[depth-1]??null,label),registerItem:(element,id,disabled)=>connection.value?.setItemAttributes(element,id,disabled)});onMounted(connect);onBeforeUnmount(()=>connection.value?.disconnect());watch([()=>props.nodes,()=>props.disabledItems,()=>props.disabled,()=>props.readonly,()=>props.label,()=>props.policies],connect);watch([()=>props.modelValue,()=>props.open],()=>{if(connection.value===void 0)return;const result=connection.value.syncControlledValues({...valueControlled?{value:props.modelValue}:{},...openControlled?{open:props.open}:{}});if(!result.ok)throw new TypeError(result.error.message);refresh()});return()=>{const visual=h(Primitive,mergeProps(attrs,{as:props.as,asChild:props.asChild,elementRef:node=>{root.value=node instanceof HTMLElement?node:null},"data-scope":"cascade-select","data-part":"root","data-state":state.value.open?"open":"closed"},participation.controlProps.value),{default:()=>slots["default"]?.(state.value)});if(!participation.participating&&props.name===void 0&&props.form===void 0&&!props.required)return visual;return[visual,h("select",{ref:element=>{submission.value=element instanceof HTMLSelectElement?element:null},name:props.name,form:props.form,required:props.required,disabled:props.disabled,value:state.value.value??"",tabindex:-1,"aria-hidden":"true",style:visuallyHiddenInputStyle},[h("option",{value:""}),...props.nodes.filter(node=>!branches.value.has(node.id)).map(node=>h("option",{value:node.id,disabled:props.disabledItems.includes(node.id)},props.textValue?.(node.id)??node.id))])]}}});const CascadeSelectTrigger=defineComponent({name:"SectileCascadeSelectTrigger",inheritAttrs:false,props:{as:{type:[String,Object,Function],default:"button"},asChild:{type:Boolean,default:false}},slots:Object,setup(props,{attrs,slots}){const root=useRoot("CascadeSelectTrigger");return()=>h(Primitive,mergeProps(attrs,{as:props.as,asChild:props.asChild,elementRef:node=>root.registerTrigger(node instanceof HTMLButtonElement?node:void 0),type:props.as==="button"?"button":void 0,disabled:root.state.value.disabled,"aria-haspopup":"listbox","aria-expanded":String(root.state.value.open),"data-scope":"cascade-select","data-part":"trigger","data-state":root.state.value.open?"open":"closed"}),{default:()=>slots["default"]?.(root.state.value)})}});const CascadeSelectValue=defineComponent({name:"SectileCascadeSelectValue",inheritAttrs:false,props:{placeholder:{type:String,default:""},separator:{type:String,default:" / "},...partProps},slots:Object,setup(props,{attrs,slots}){const root=useRoot("CascadeSelectValue");return()=>h(Primitive,mergeProps(attrs,{as:props.as,asChild:props.asChild,"data-scope":"cascade-select","data-part":"value","data-placeholder":root.state.value.value===null?"":void 0}),{default:()=>slots["default"]?.(root.state.value)??(root.state.value.value===null?props.placeholder:root.state.value.valuePath.map(root.textValue.value).join(props.separator))})}});const CascadeSelectContent=defineComponent({name:"SectileCascadeSelectContent",inheritAttrs:false,props:{as:{type:[String,Object,Function],default:"div"},asChild:{type:Boolean,default:false}},slots:Object,setup(props,{attrs,slots}){const root=useRoot("CascadeSelectContent");return()=>h(Primitive,mergeProps(attrs,{as:props.as,asChild:props.asChild,elementRef:node=>root.registerPopup(node instanceof HTMLElement?node:void 0),role:"group",hidden:!root.state.value.open,"aria-label":root.label.value,"data-scope":"cascade-select","data-part":"content","data-state":root.state.value.open?"open":"closed"}),{default:()=>slots["default"]?.(root.state.value)})}});const cascadeSelectParts=createCascadeChoiceParts({scope:"cascade-select",componentName:"CascadeSelect",itemAttribute:"data-sectile-cascade-select-id",rootKey,itemKey});const CascadeSelectColumn=cascadeSelectParts.Column;const CascadeSelectItem=cascadeSelectParts.Item;const CascadeSelectItemIndicator=cascadeSelectParts.ItemIndicator;const CascadeSelectItemChevron=cascadeSelectParts.ItemChevron;function useRoot(part){const root=inject(rootKey);if(root===void 0)throw new TypeError(`${part} must be used inside CascadeSelectRoot.`);return root}export{CascadeSelectColumn,CascadeSelectContent,CascadeSelectItem,CascadeSelectItemChevron,CascadeSelectItemIndicator,CascadeSelectRoot,CascadeSelectTrigger,CascadeSelectValue};
1
+ import{computed,defineComponent,h,inject,mergeProps,nextTick,onBeforeUnmount,onMounted,provide,shallowRef,watch}from"vue";import{createCascadeSelect}from"@sectile/dom/cascade-select";import{Primitive}from"./primitive.js";import{visuallyHiddenInputStyle}from"./internal/native-input.js";import{provideFormControlOwner}from"./internal/form-control.js";import{hiddenSelectSubmissionCapabilities,useCompositeFormControl}from"./internal/form-control.js";import{useControlledStateInvariant}from"./internal/controlled-state.js";import{cascadeBranchItems,cascadeChoicePartProps,cascadeItemPath,createCascadeChoiceParts,initialCascadeColumns}from"./internal/cascade-choice.js";const rootKey=Symbol("SectileCascadeSelectRoot");const itemKey=Symbol("SectileCascadeSelectItem");const partProps=cascadeChoicePartProps;const CascadeSelectRoot=defineComponent({name:"SectileCascadeSelectRoot",inheritAttrs:false,props:{nodes:{type:Array,required:true},modelValue:{type:String,default:void 0},defaultValue:{type:String,default:null},open:{type:Boolean,default:void 0},defaultOpen:{type:Boolean,default:false},disabledItems:{type:Array,default:()=>[]},disabled:{type:Boolean,default:false},readonly:{type:Boolean,default:false},label:{type:String,default:void 0},name:{type:String,default:void 0},form:{type:String,default:void 0},required:{type:Boolean,default:false},position:{type:Boolean,default:true},side:{type:String,default:"bottom"},align:{type:String,default:"start"},sideOffset:{type:Number,default:8},collisionPadding:{type:[Number,Object],default:8},collisionBoundary:{type:[String,Object],default:void 0},avoidCollisions:{type:Boolean,default:true},hideWhenDetached:{type:Boolean,default:false},strategy:{type:String,default:"absolute"},tracking:{type:String,default:"events"},textValue:{type:Function,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:open":_value=>true,highlight:_value=>true},slots:Object,setup(props,{attrs,emit,slots}){const root=shallowRef(null);const trigger=shallowRef(null);const popup=shallowRef();const submission=shallowRef(null);const connection=shallowRef();const participation=useCompositeFormControl({root,focusTarget:trigger,submissions:[{element:submission,capabilities:hiddenSelectSubmissionCapabilities}]});provideFormControlOwner();const localValue=shallowRef(props.modelValue!==void 0?props.modelValue:props.defaultValue);const initialValuePath=cascadeItemPath(props.nodes,localValue.value);const initialBranchPath=initialValuePath.slice(0,-1);const localOpen=shallowRef(props.open??props.defaultOpen);const highlighted=shallowRef(localValue.value);const path=shallowRef(initialBranchPath);const columns=shallowRef(initialCascadeColumns(props.nodes,initialBranchPath));const valuePath=shallowRef(initialValuePath);const valueControlled=useControlledStateInvariant("CascadeSelectRoot","modelValue",()=>props.modelValue);const openControlled=useControlledStateInvariant("CascadeSelectRoot","open",()=>props.open);const state=computed(()=>Object.freeze({value:props.modelValue!==void 0?props.modelValue:localValue.value,valuePath:valuePath.value,highlightedValue:highlighted.value,path:path.value,columns:columns.value,open:props.open??localOpen.value,disabled:props.disabled,readonly:props.readonly}));const refresh=()=>{const current=connection.value?.getSnapshot().state;if(current===void 0)return;localValue.value=current.value;localOpen.value=current.open;highlighted.value=current.highlighted;path.value=current.path;columns.value=connection.value?.getColumns()??[];valuePath.value=connection.value?.getValuePath()??[];refreshItems()};const refreshItems=()=>{if(popup.value===void 0||connection.value===void 0)return;popup.value.querySelectorAll("[data-sectile-cascade-select-id]").forEach(element=>{const id=element.dataset["sectileCascadeSelectId"];if(id!==void 0)connection.value?.setItemAttributes(element,id,props.disabledItems.includes(id))})};const connect=()=>{connection.value?.disconnect();if(root.value===null||trigger.value===null||popup.value===void 0)return;const branchIDs=cascadeBranchItems(props.nodes);const leafIDs=new Set(props.nodes.filter(node=>!branchIDs.has(node.id)).map(node=>node.id));const requestedValue=valueControlled?props.modelValue:localValue.value;const value=requestedValue!==null&&leafIDs.has(requestedValue)?requestedValue:null;localValue.value=value;if(valueControlled&&requestedValue!==value)emit("update:modelValue",value);connection.value=createCascadeSelect({root:root.value,trigger:trigger.value,popup:popup.value,nodes:props.nodes,disabledItems:props.disabledItems,position:props.position,side:props.side,align:props.align,sideOffset:props.sideOffset,collisionPadding:props.collisionPadding,...props.collisionBoundary===void 0?{}:{collisionBoundary:props.collisionBoundary},avoidCollisions:props.avoidCollisions,hideWhenDetached:props.hideWhenDetached,strategy:props.strategy,tracking:props.tracking,...props.policies===void 0?{}:{policies:props.policies},...valueControlled?{value}:{defaultValue:value},...openControlled?{open:props.open}:{defaultOpen:localOpen.value},disabled:props.disabled,readOnly:props.readonly,...props.label===void 0?{}:{label:props.label},onValueChange:next=>{localValue.value=next;emit("update:modelValue",next)},onHighlightedValueChange:next=>{highlighted.value=next;emit("highlight",next)},onOpenChange:next=>{localOpen.value=next;emit("update:open",next)},onUpdate:refresh});refresh()};const branches=computed(()=>cascadeBranchItems(props.nodes));let mounted=false;let connectScheduled=false;const scheduleConnect=()=>{if(!mounted||connectScheduled)return;connectScheduled=true;void nextTick(()=>{connectScheduled=false;if(mounted)connect()})};provide(rootKey,{state,position:computed(()=>props.position),strategy:computed(()=>props.strategy),label:computed(()=>props.label),textValue:computed(()=>props.textValue??(id=>id)),disabledItems:computed(()=>new Set(props.disabledItems)),branchItems:branches,registerTrigger:element=>{const next=element??null;const changed=trigger.value!==next;trigger.value=next;if(changed)scheduleConnect()},registerPopup:element=>{const changed=popup.value!==element;popup.value=element;if(changed)scheduleConnect()},registerColumn:(element,depth,label)=>connection.value?.setColumnAttributes(element,depth===0?null:state.value.path[depth-1]??null,label),registerItem:(element,id,disabled)=>connection.value?.setItemAttributes(element,id,disabled)});onMounted(()=>{mounted=true;connect()});onBeforeUnmount(()=>{mounted=false;connection.value?.disconnect()});watch([()=>props.nodes,()=>props.disabledItems,()=>props.disabled,()=>props.readonly,()=>props.label,()=>props.position,()=>props.side,()=>props.align,()=>props.sideOffset,()=>props.collisionPadding,()=>props.collisionBoundary,()=>props.avoidCollisions,()=>props.hideWhenDetached,()=>props.strategy,()=>props.tracking,()=>props.policies],connect);watch([()=>props.modelValue,()=>props.open],()=>{if(connection.value===void 0)return;const result=connection.value.syncControlledValues({...valueControlled?{value:props.modelValue}:{},...openControlled?{open:props.open}:{}});if(!result.ok)throw new TypeError(result.error.message);refresh()});const registerRoot=node=>{const next=node instanceof HTMLElement?node:null;const changed=root.value!==next;root.value=next;if(changed)scheduleConnect()};return()=>{const visual=h(Primitive,mergeProps(attrs,{as:props.as,asChild:props.asChild,elementRef:registerRoot,"data-scope":"cascade-select","data-part":"root","data-state":state.value.open?"open":"closed"},participation.controlProps.value),{default:()=>slots["default"]?.(state.value)});if(!participation.participating&&props.name===void 0&&props.form===void 0&&!props.required)return visual;return[visual,h("select",{ref:element=>{submission.value=element instanceof HTMLSelectElement?element:null},name:props.name,form:props.form,required:props.required,disabled:props.disabled,value:state.value.value??"",tabindex:-1,"aria-hidden":"true",style:visuallyHiddenInputStyle},[h("option",{value:""}),...props.nodes.filter(node=>!branches.value.has(node.id)).map(node=>h("option",{value:node.id,disabled:props.disabledItems.includes(node.id)},props.textValue?.(node.id)??node.id))])]}}});const CascadeSelectTrigger=defineComponent({name:"SectileCascadeSelectTrigger",inheritAttrs:false,props:{as:{type:[String,Object,Function],default:"button"},asChild:{type:Boolean,default:false}},slots:Object,setup(props,{attrs,slots}){const root=useRoot("CascadeSelectTrigger");const registerTrigger=node=>root.registerTrigger(node instanceof HTMLButtonElement?node:void 0);return()=>h(Primitive,mergeProps(attrs,{as:props.as,asChild:props.asChild,elementRef:registerTrigger,type:props.as==="button"?"button":void 0,disabled:root.state.value.disabled,"aria-haspopup":"listbox","aria-expanded":String(root.state.value.open),"data-scope":"cascade-select","data-part":"trigger","data-state":root.state.value.open?"open":"closed"}),{default:()=>slots["default"]?.(root.state.value)})}});const CascadeSelectValue=defineComponent({name:"SectileCascadeSelectValue",inheritAttrs:false,props:{placeholder:{type:String,default:""},separator:{type:String,default:" / "},...partProps},slots:Object,setup(props,{attrs,slots}){const root=useRoot("CascadeSelectValue");return()=>h(Primitive,mergeProps(attrs,{as:props.as,asChild:props.asChild,"data-scope":"cascade-select","data-part":"value","data-placeholder":root.state.value.value===null?"":void 0}),{default:()=>slots["default"]?.(root.state.value)??(root.state.value.value===null?props.placeholder:root.state.value.valuePath.map(root.textValue.value).join(props.separator))})}});const CascadeSelectContent=defineComponent({name:"SectileCascadeSelectContent",inheritAttrs:false,props:{as:{type:[String,Object,Function],default:"div"},asChild:{type:Boolean,default:false}},slots:Object,setup(props,{attrs,slots}){const root=useRoot("CascadeSelectContent");const element=shallowRef();const registerContent=node=>{const content=node instanceof HTMLElement?node:void 0;element.value=content;root.registerPopup(content)};return()=>h(Primitive,mergeProps(attrs,{as:props.as,asChild:props.asChild,elementRef:registerContent,role:"group",hidden:!root.state.value.open,"aria-label":root.label.value,style:root.position.value?{position:root.strategy.value,visibility:element.value===void 0?"hidden":void 0}:void 0,"data-scope":"cascade-select","data-part":"content","data-state":root.state.value.open?"open":"closed"}),{default:()=>slots["default"]?.(root.state.value)})}});const cascadeSelectParts=createCascadeChoiceParts({scope:"cascade-select",componentName:"CascadeSelect",itemAttribute:"data-sectile-cascade-select-id",rootKey,itemKey});const CascadeSelectColumn=cascadeSelectParts.Column;const CascadeSelectItem=cascadeSelectParts.Item;const CascadeSelectItemIndicator=cascadeSelectParts.ItemIndicator;const CascadeSelectItemChevron=cascadeSelectParts.ItemChevron;function useRoot(part){const root=inject(rootKey);if(root===void 0)throw new TypeError(`${part} must be used inside CascadeSelectRoot.`);return root}export{CascadeSelectColumn,CascadeSelectContent,CascadeSelectItem,CascadeSelectItemChevron,CascadeSelectItemIndicator,CascadeSelectRoot,CascadeSelectTrigger,CascadeSelectValue};
2
2
  //# sourceMappingURL=cascade-select.js.map
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/cascade-select.ts"],"mappings":"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","names":[],"file":"cascade-select.js"}
1
+ {"version":3,"sources":["../src/cascade-select.ts"],"mappings":"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","names":[],"file":"cascade-select.js"}
package/dist/chart.js CHANGED
@@ -1,2 +1,2 @@
1
- import{createChartController}from"@sectile/chart/controller";import{createDOMChart}from"@sectile/dom/chart";import{defineComponent,getCurrentScope,h,inject,nextTick,onBeforeUnmount,onMounted,onScopeDispose,provide,shallowRef,toValue,watch}from"vue";function useChart(options){if(options===null||typeof options!=="object")throw new TypeError("useChart options must be an object.");if(options.model===void 0===(options.definition===void 0)){throw new TypeError("useChart requires exactly one model or declarative definition.")}assertControlledDefaults(options);const controlled=controlledValues(options);const source=options.definition===void 0?{model:toValue(options.model)}:{definition:toValue(options.definition),viewCapabilities:toValue(options.viewCapabilities??(()=>Object.freeze([])))};const controller=createChartController({...source,...options.limits===void 0?{}:{limits:options.limits},...defaultValues(options),...Object.keys(controlled).length===0?{}:{controlled}});const binding=bindController(controller,options,true);const stops=[];if(options.model!==void 0){stops.push(watch(()=>toValue(options.model),model=>{binding.replaceModel(model)},{deep:false}))}else{stops.push(watch(()=>[toValue(options.definition),toValue(options.viewCapabilities??(()=>Object.freeze([])))],([definition,capabilities])=>{binding.replaceDefinition(definition,capabilities)},{deep:false}))}for(const sourceRef of[options.activeDatum,options.cursor,options.selection,options.view]){if(sourceRef!==void 0)stops.push(watch(()=>sourceRef.value,()=>{binding.syncControlledValues()},{deep:false}))}const disposeBinding=binding.dispose;const result=Object.freeze({...binding,dispose(){for(const stop of stops.splice(0))stop();disposeBinding()}});if(getCurrentScope()!==void 0)onScopeDispose(result.dispose);return result}class ChartDeclarations{#records=new Map;#publish;#token=0;#scheduled=false;#active=true;#publications=0;#readRecords=0;constructor(publish){this.#publish=publish}register(kind,read){const token=++this.#token;this.#records.set(token,{token,kind,read});this.schedule();let active=true;return Object.freeze({touch:()=>{if(active)this.schedule()},dispose:()=>{if(!active)return;active=false;this.#records.delete(token);this.schedule()}})}publishNow(){if(!this.#active)return;this.#scheduled=false;this.#publish(this.assemble());this.#publications+=1}getDiagnostics(){return Object.freeze({registeredRecords:this.#records.size,publications:this.#publications,readRecords:this.#readRecords})}schedule(){if(!this.#active||this.#scheduled)return;this.#scheduled=true;void nextTick(()=>{if(this.#scheduled)this.publishNow()})}assemble(){const records=[...this.#records.values()].sort((left,right)=>left.token-right.token);this.#readRecords=records.length;const coordinates=records.filter(record=>record.kind==="coordinate");if(coordinates.length!==1)throw new TypeError("ChartRoot requires exactly one ChartCartesian or ChartRadial coordinate.");const coordinate=coordinates[0]?.read();const axes=records.filter(record=>record.kind==="axis").map(record=>record.read());const layers=records.filter(record=>record.kind==="layer").map(record=>record.read());const capabilities=records.filter(record=>record.kind==="view").map(record=>record.read());const navigationRecords=records.filter(record=>record.kind==="navigation");if(navigationRecords.length>1)throw new TypeError("ChartRoot accepts at most one ChartNavigation declaration.");const controls=records.filter(record=>record.kind==="controls").map(record=>record.read());const navigation=navigationRecords[0]?.read();const alternative=controls.includes("built-in")?"built-in":controls.includes("external")?"external":void 0;if(navigation!==void 0&&((navigation.drag??"none")!=="none"||navigation.pinch===true)&&alternative===void 0){throw new TypeError("Chart direct gestures require ChartViewControls or ChartExternalViewControls.")}return Object.freeze({definition:Object.freeze({coordinate:coordinate.kind==="cartesian"?Object.freeze({kind:"cartesian",axes:Object.freeze(axes)}):Object.freeze({kind:"radial"}),layers:Object.freeze(layers)}),viewCapabilities:Object.freeze(capabilities),navigation:Object.freeze({...navigation??{},...alternative===void 0?{}:{controlAlternative:alternative}})})}dispose(){if(!this.#active)return;this.#active=false;this.#scheduled=false;this.#records.clear()}}const chartKey=Symbol("SectileChart");const chartPublicKey=Symbol("SectileChartPublic");const chartOwnerKey=Symbol("SectileChartOwner");const chartAxisKey=Symbol("SectileChartAxis");const chartControlAxisKey=Symbol("SectileChartControlAxis");function useInternalChart(){const context=inject(chartKey);if(context===void 0)throw new TypeError("Chart component must be used inside ChartRoot.");return context}function useChartContext(){const context=inject(chartPublicKey);if(context===void 0)throw new TypeError("useChartContext must be used inside ChartRoot or ChartProvider.");return context}const ChartProviderRuntime=defineComponent({name:"SectileChartProvider",props:{controller:{type:Object,required:true}},setup(props,{slots}){const controller=shallowRef(props.controller);const snapshot=shallowRef(controller.value.getSnapshot());const unsubscribe=controller.value.subscribeSnapshots(next=>{snapshot.value=next});const owner=Object.freeze({controller});const context=Object.freeze({controller,snapshot,dispatch(event){const result=controller.value.dispatch(event);return result.ok?Object.freeze({ok:true,value:result.value.snapshot}):result},applyPatch(patch){return controller.value.applyPatch(patch)}});provide(chartOwnerKey,owner);provide(chartPublicKey,context);onScopeDispose(unsubscribe);return()=>slots["default"]?.({controller:controller.value,snapshot:snapshot.value,state:snapshot.value.state,definition:controller.value.getDefinition()})??null}});const ChartProvider=ChartProviderRuntime;function useChartSelector(selector,options={}){const context=useChartContext();return useChartContextSelector(context,()=>selector(context.snapshot.value?.state??null),options.equals)}function useChartLayerSelector(id,selector,options={}){const context=useChartContext();return useChartContextSelector(context,()=>{const layers=context.controller.value?.getDefinition()?.layers;return selector(layers?.find(layer=>layer.id===id)??null)},options.equals)}function useChartAxisSelector(id,selector,options={}){const context=useChartContext();return useChartContextSelector(context,()=>{const axes=context.controller.value?.getDefinition()?.axes;return selector(axes?.find(axis=>axis.id===id)??null)},options.equals)}function useChartContextSelector(context,read,equals=Object.is){const selected=shallowRef(read());const stop=watch([context.controller,context.snapshot],()=>{const next=read();if(!equals(selected.value,next))selected.value=next},{deep:false,flush:"sync"});onScopeDispose(stop);return selected}const ChartRootRuntime=defineComponent({name:"SectileChartRoot",inheritAttrs:false,props:{limits:{type:Object,default:void 0},modelValue:{type:Object,default:void 0},defaultModelValue:{type:Object,default:void 0},activeDatum:{type:[String,Number],default:void 0},defaultActiveDatum:{type:[String,Number],default:void 0},cursor:{type:[String,Number],default:void 0},defaultCursor:{type:[String,Number],default:void 0},view:{type:Object,default:void 0},defaultView:{type:Object,default:void 0},patch:{type:Object,default:void 0},dom:{type:Object,default:void 0},onError:{type:Function,default:void 0}},emits:{"update:modelValue":_value=>true,"update:activeDatum":_value=>true,"update:cursor":_value=>true,"update:view":_value=>true,command:_command=>true},setup(props,{attrs,emit,expose,slots}){assertRootControlledDefaults(props);const ownerContext=inject(chartOwnerKey,void 0);const ownsController=ownerContext===void 0;const root=shallowRef(null);const canvas=shallowRef(null);const controller=shallowRef(ownerContext?.controller.value??null);const snapshot=shallowRef(controller.value?.getSnapshot()??null);const projection=shallowRef(null);const connection=shallowRef(null);let assembled=null;let unsubscribeCommands=null;let unsubscribeSnapshots=null;let previousState=snapshot.value?.state??null;let mounted=false;let definitionAccepted=false;const controlled=Object.freeze({activeDatum:props.activeDatum!==void 0,cursor:props.cursor!==void 0,selection:props.modelValue!==void 0,view:props.view!==void 0});const report=error=>{if(props.onError!==void 0)props.onError(error);else throw error};const publishSnapshot=()=>{const owner=controller.value;if(owner===null)return;const current=owner.getSnapshot();if(snapshot.value===current)return;const prior=previousState;snapshot.value=current;previousState=current.state;if(prior!==null){if(!controlled.activeDatum&&prior.activeDatum!==current.state.activeDatum)emit("update:activeDatum",current.state.activeDatum);if(!controlled.cursor&&prior.cursor!==current.state.cursor)emit("update:cursor",current.state.cursor);if(!controlled.selection&&prior.selection!==current.state.selection)emit("update:modelValue",current.state.selection);if(!controlled.view&&prior.view!==current.state.view)emit("update:view",current.state.view)}};const onCommand=command=>{emit("command",command);if(command.type==="active-change-requested")emit("update:activeDatum",command.id);else if(command.type==="cursor-change-requested")emit("update:cursor",command.id);else if(command.type==="selection-change-requested")emit("update:modelValue",command.selection);else if(command.type==="view-change-requested")emit("update:view",command.view);publishSnapshot()};const connect=()=>{const owner=controller.value;if(!mounted||owner===null||root.value===null||canvas.value===null||connection.value!==null)return;const dom=props.dom??{};try{connection.value=createDOMChart({...dom,root:root.value,canvas:canvas.value,controller:owner,...assembled===null?{}:{navigation:assembled.navigation},onCommand:command=>{dom.onCommand?.(command)},onProjectionChange:next=>{projection.value=next;dom.onProjectionChange?.(next)}});projection.value=connection.value.getProjection()}catch(error){report(error)}};const publishDefinition=next=>{assembled=next;definitionAccepted=false;const owner=controller.value;if(!mounted||owner===null)return;const replaced=owner.replaceDefinition(next.definition,next.viewCapabilities);if(!replaced.ok){report(new TypeError(`${replaced.error.code}: ${replaced.error.message}`));return}definitionAccepted=true;publishSnapshot();const navigation=connection.value?.setNavigation(next.navigation);if(navigation!==void 0&&!navigation.ok)report(new TypeError(`${navigation.error.code}: ${navigation.error.message}`));connection.value?.refresh()};const declarations=new ChartDeclarations(next=>{try{publishDefinition(next)}catch(error){report(error)}});const context=Object.freeze({declarations,controller,canvas,dispatch(event){const result=controller.value?.dispatch(event);if(result!==void 0&&!result.ok)report(new TypeError(`${result.error.code}: ${result.error.message}`));publishSnapshot()}});provide(chartKey,context);const publicContext=Object.freeze({controller,snapshot,dispatch(event){const result=controller.value?.dispatch(event);if(result===void 0)return Object.freeze({ok:true,value:null});publishSnapshot();return result.ok?Object.freeze({ok:true,value:result.value.snapshot}):result},applyPatch(patch){const result=controller.value?.applyPatch(patch);if(result===void 0)return Object.freeze({ok:true,value:null});publishSnapshot();return result}});provide(chartPublicKey,publicContext);const syncControlled=()=>{const owner=controller.value;if(owner===null)return;const result=owner.syncControlledValues(Object.freeze({...controlled.activeDatum?{activeDatum:props.activeDatum??null}:{},...controlled.cursor?{cursor:props.cursor??null}:{},...controlled.selection?{selection:props.modelValue}:{},...controlled.view?{view:props.view??null}:{}}));if(!result.ok)report(new TypeError(`${result.error.code}: ${result.error.message}`));publishSnapshot()};watch(()=>[props.activeDatum,props.cursor,props.modelValue,props.view],syncControlled,{deep:false});watch(()=>props.patch,patch=>{if(patch===null||patch===void 0||controller.value===null)return;const result=controller.value.applyPatch(patch);if(!result.ok)report(new TypeError(`${result.error.code}: ${result.error.message}`));publishSnapshot()},{deep:false});watch(()=>props.dom?.accessibilityLabel,label=>{connection.value?.setAccessibilityLabel(label)},{flush:"post"});onMounted(()=>{mounted=true;try{declarations.publishNow();const next=assembled;const controlledValues2=Object.freeze({...controlled.activeDatum?{activeDatum:props.activeDatum??null}:{},...controlled.cursor?{cursor:props.cursor??null}:{},...controlled.selection?{selection:props.modelValue}:{},...controlled.view?{view:props.view??null}:{}});const initialValues=Object.freeze({...!controlled.activeDatum&&props.defaultActiveDatum!==void 0?{activeDatum:props.defaultActiveDatum}:{},...!controlled.cursor&&props.defaultCursor!==void 0?{cursor:props.defaultCursor}:{},...!controlled.selection&&props.defaultModelValue!==void 0?{selection:props.defaultModelValue}:{},...!controlled.view&&props.defaultView!==void 0?{view:props.defaultView}:{}});if(ownerContext===void 0){controller.value=createChartController({definition:next.definition,viewCapabilities:next.viewCapabilities,...props.limits===void 0?{}:{limits:props.limits},...Object.keys(controlledValues2).length===0?{}:{controlled:controlledValues2},...Object.keys(initialValues).length===0?{}:{initialValues}})}else{const borrowed=ownerContext.controller.value;if(!definitionAccepted)return;controller.value=borrowed;if(Object.keys(controlledValues2).length!==0){const synced=borrowed.syncControlledValues(controlledValues2);if(!synced.ok)throw new TypeError(`${synced.error.code}: ${synced.error.message}`)}}snapshot.value=controller.value.getSnapshot();previousState=snapshot.value.state;unsubscribeCommands=controller.value.subscribeCommands(onCommand);unsubscribeSnapshots=controller.value.subscribeSnapshots(()=>{publishSnapshot()});void nextTick(connect)}catch(error){report(error)}});onBeforeUnmount(()=>{mounted=false;declarations.dispose();connection.value?.disconnect();connection.value=null;unsubscribeCommands?.();unsubscribeCommands=null;unsubscribeSnapshots?.();unsubscribeSnapshots=null;if(ownsController)controller.value?.dispose();controller.value=null});expose({controller,getDeclarationDiagnostics:()=>declarations.getDiagnostics(),refresh:()=>connection.value?.refresh()});return()=>h("div",{...attrs,ref:element=>{root.value=element},"data-scope":"chart","data-part":"root"},slots["default"]?.({controller:controller.value,snapshot:snapshot.value,state:snapshot.value?.state??null,projection:projection.value,definition:controller.value?.getDefinition()??null}))}});const ChartRoot=ChartRootRuntime;const coordinateProps={};const ChartCartesian=defineComponent({name:"SectileChartCartesian",props:coordinateProps,setup(_props,{slots}){const context=useInternalChart();const record=context.declarations.register("coordinate",()=>Object.freeze({kind:"cartesian"}));onBeforeUnmount(record.dispose);return()=>slots["default"]?.()??null}});const ChartRadial=defineComponent({name:"SectileChartRadial",props:coordinateProps,setup(_props,{slots}){const context=useInternalChart();const record=context.declarations.register("coordinate",()=>Object.freeze({kind:"radial"}));onBeforeUnmount(record.dispose);return()=>slots["default"]?.()??null}});const axisProps={id:{type:[String,Number],required:true},scale:{type:String,default:"linear"},domain:{type:[String,Object],default:"auto"},field:{type:String,default:void 0},getValue:{type:Function,default:void 0},ticks:{type:Number,default:void 0},label:{type:String,default:void 0},unit:{type:String,default:void 0}};function axisComponent(orientation){return defineComponent({name:orientation==="x"?"SectileChartXAxis":"SectileChartYAxis",props:axisProps,setup(props,{slots}){const context=useInternalChart();const axis=shallowRef(props.id);provide(chartAxisKey,axis);const value=shallowRef(axisDefinition(props,orientation));const record=context.declarations.register("axis",()=>value.value);watch(()=>[props.id,props.scale,props.domain,props.field,props.getValue,props.ticks,props.label,props.unit],()=>{axis.value=props.id;value.value=axisDefinition(props,orientation);record.touch()},{deep:false,flush:"post"});onBeforeUnmount(record.dispose);return()=>slots["default"]?.()??null}})}const ChartXAxis=axisComponent("x");const ChartYAxis=axisComponent("y");function axisDefinition(props,orientation){return defined({id:props["id"],orientation,scale:props["scale"],domain:props["domain"],field:props["field"],getValue:props["getValue"],ticks:props["ticks"],label:props["label"],unit:props["unit"]})}const layerBaseProps={id:{type:[String,Number],required:true},data:{type:Array,required:true},getId:{type:Function,default:void 0},label:{type:String,default:void 0}};const cartesianLayerProps={...layerBaseProps,xAxis:{type:[String,Number],required:true},yAxis:{type:[String,Number],required:true},getX:{type:Function,default:void 0},getY:{type:Function,default:void 0}};function layerComponent(kind,extraProps={}){return defineComponent({name:`SectileChart${kind[0]?.toUpperCase()}${kind.slice(1)}`,props:{...kind==="pie"||kind==="donut"?layerBaseProps:cartesianLayerProps,...extraProps},setup(props){const context=useInternalChart();const value=shallowRef(layerDefinition(props,kind));const record=context.declarations.register("layer",()=>value.value);watch(()=>Object.values(props),()=>{value.value=layerDefinition(props,kind);record.touch()},{deep:false,flush:"post"});onBeforeUnmount(record.dispose);return()=>null}})}const ChartLine=layerComponent("line");const ChartScatter=layerComponent("scatter",{projection:{type:String,default:"raw"}});const ChartBar=layerComponent("bar",{orientation:{type:String,default:"vertical"}});const ChartBars=ChartBar;const ChartHeatmap=layerComponent("heatmap",{getValue:{type:Function,default:void 0},valueField:{type:String,default:void 0},projection:{type:[String,Object],default:"raw"}});const ChartPie=layerComponent("pie",{getValue:{type:Function,default:void 0},valueField:{type:String,default:void 0},getLabel:{type:Function,default:void 0},labelField:{type:String,default:void 0}});const ChartDonut=layerComponent("donut",{getValue:{type:Function,default:void 0},valueField:{type:String,default:void 0},getLabel:{type:Function,default:void 0},labelField:{type:String,default:void 0},innerRadius:{type:Number,default:.5},outerRadius:{type:Number,default:1}});function layerDefinition(props,kind){return defined({kind,id:props["id"],data:props["data"],getId:props["getId"],label:props["label"],xAxis:props["xAxis"],yAxis:props["yAxis"],getX:props["getX"],getY:props["getY"],projection:props["projection"],orientation:props["orientation"],getValue:props["getValue"],valueField:props["valueField"],getLabel:props["getLabel"],labelField:props["labelField"],innerRadius:props["innerRadius"],outerRadius:props["outerRadius"]})}const ChartAxisView=defineComponent({name:"SectileChartAxisView",props:{axis:{type:[String,Number],default:void 0},initial:{type:Object,default:void 0},minimumSpan:{type:Number,default:void 0},maximumSpan:{type:Number,default:void 0},update:{type:String,default:"preserve"}},setup(props){const context=useInternalChart();const inheritedAxis=inject(chartAxisKey,void 0);const read=()=>viewCapability(props,inheritedAxis?.value);const value=shallowRef(read());const record=context.declarations.register("view",()=>value.value);watch(()=>[props.axis,inheritedAxis?.value,props.initial,props.minimumSpan,props.maximumSpan,props.update],()=>{value.value=read();record.touch()},{deep:false,flush:"post"});onBeforeUnmount(record.dispose);return()=>null}});function viewCapability(props,inheritedAxis){const axisID=props["axis"]??inheritedAxis;if(axisID===void 0)throw new TypeError("ChartAxisView requires an axis prop or an enclosing ChartXAxis or ChartYAxis.");return Object.freeze(defined({axisID,initial:props["initial"],minimumSpan:props["minimumSpan"],maximumSpan:props["maximumSpan"],update:props["update"]}))}const ChartNavigation=defineComponent({name:"SectileChartNavigation",props:{axes:{type:Array,default:void 0},drag:{type:String,default:"none"},wheel:{type:String,default:"native"},wheelModifier:{type:String,default:"none"},pinch:{type:Boolean,default:false},keyboard:{type:Boolean,default:false}},setup(props){const context=useInternalChart();const value=shallowRef(navigationDefinition(props));const record=context.declarations.register("navigation",()=>value.value);watch(()=>[props.axes,props.drag,props.wheel,props.wheelModifier,props.pinch,props.keyboard],()=>{const next=navigationDefinition(props);if(sameNavigation(value.value,next))return;value.value=next;record.touch()},{deep:false,flush:"post"});onBeforeUnmount(record.dispose);return()=>null}});function navigationDefinition(props){return Object.freeze(defined({axes:props["axes"],drag:props["drag"],wheel:props["wheel"],wheelModifier:props["wheelModifier"],pinch:props["pinch"],keyboard:props["keyboard"]}))}function sameNavigation(left,right){return sameStableIDs(left.axes,right.axes)&&left.drag===right.drag&&left.wheel===right.wheel&&left.wheelModifier===right.wheelModifier&&left.pinch===right.pinch&&left.keyboard===right.keyboard}function sameStableIDs(left,right){if(left===right)return true;if(left===void 0||right===void 0||left.length!==right.length)return false;for(let index=0;index<left.length;index+=1)if(left[index]!==right[index])return false;return true}const ChartViewControls=defineComponent({name:"SectileChartViewControls",inheritAttrs:false,props:{axis:{type:[String,Number],default:void 0}},setup(props,{attrs,slots}){const context=useInternalChart();const inheritedAxis=inject(chartAxisKey,void 0);const initialAxis=props.axis??inheritedAxis?.value;if(initialAxis===void 0)throw new TypeError("ChartViewControls requires an axis prop or an enclosing ChartXAxis or ChartYAxis.");const axis=shallowRef(initialAxis);provide(chartControlAxisKey,axis);watch(()=>[props.axis,inheritedAxis?.value],()=>{axis.value=props.axis??inheritedAxis?.value},{deep:false,flush:"sync"});const record=context.declarations.register("controls",()=>"built-in");onBeforeUnmount(record.dispose);return()=>h("div",{...attrs,"data-scope":"chart","data-part":"view-controls"},slots["default"]?.())}});const ChartExternalViewControls=defineComponent({name:"SectileChartExternalViewControls",setup(){const context=useInternalChart();const record=context.declarations.register("controls",()=>"external");onBeforeUnmount(record.dispose);return()=>null}});const axisControlProps={axis:{type:[String,Number],default:void 0},label:{type:String,default:void 0}};const ChartPanControl=defineComponent({name:"SectileChartPanControl",inheritAttrs:false,props:{...axisControlProps,direction:{type:String,required:true},step:{type:Number,default:.1}},setup(props,{attrs,slots}){const context=useInternalChart();const inheritedAxis=inject(chartControlAxisKey,inject(chartAxisKey,void 0));const axis=()=>requiredControlAxis(props.axis,inheritedAxis?.value);return()=>h("button",{...attrs,type:"button",disabled:context.controller.value===null,"aria-label":props.label??`Pan ${String(axis())} ${props.direction}`,"data-scope":"chart","data-part":"pan-control",onClick:()=>context.dispatch({type:"pan-axis-view",axisID:axis(),fraction:props.direction==="backward"?-props.step:props.step,phase:"settled"})},slots["default"]?.()??props.direction)}});const ChartZoomControl=defineComponent({name:"SectileChartZoomControl",inheritAttrs:false,props:{...axisControlProps,direction:{type:String,required:true},factor:{type:Number,default:1.25}},setup(props,{attrs,slots}){const context=useInternalChart();const inheritedAxis=inject(chartControlAxisKey,inject(chartAxisKey,void 0));const axis=()=>requiredControlAxis(props.axis,inheritedAxis?.value);return()=>h("button",{...attrs,type:"button",disabled:context.controller.value===null,"aria-label":props.label??`Zoom ${String(axis())} ${props.direction}`,"data-scope":"chart","data-part":"zoom-control",onClick:()=>context.dispatch({type:"zoom-axis-view",axisID:axis(),factor:props.direction==="in"?props.factor:1/props.factor,anchor:.5,phase:"settled"})},slots["default"]?.()??props.direction)}});const ChartResetView=defineComponent({name:"SectileChartResetView",inheritAttrs:false,props:{...axisControlProps,to:{type:String,default:"initial"}},setup(props,{attrs,slots}){const context=useInternalChart();const inheritedAxis=inject(chartControlAxisKey,inject(chartAxisKey,void 0));const axis=()=>requiredControlAxis(props.axis,inheritedAxis?.value);return()=>h("button",{...attrs,type:"button",disabled:context.controller.value===null,"aria-label":props.label??`Reset ${String(axis())} view`,"data-scope":"chart","data-part":"reset-view",onClick:()=>context.dispatch({type:"reset-axis-view",axisID:axis(),to:props.to,phase:"settled"})},slots["default"]?.()??"Reset")}});const ChartPlot=defineComponent({name:"SectileChartPlot",inheritAttrs:false,setup(_props,{attrs,slots}){return()=>h("div",{...attrs,"data-scope":"chart","data-part":"plot"},slots["default"]?.())}});const ChartRenderer=defineComponent({name:"SectileChartRenderer",inheritAttrs:false,setup(_props,{attrs}){const context=useInternalChart();return()=>h("canvas",{...attrs,ref:element=>{context.canvas.value=element},"aria-hidden":"true","data-scope":"chart","data-part":"renderer"})}});const ChartCanvas=ChartRenderer;function semanticMarker(name,part){return defineComponent({name,setup(){useInternalChart();return()=>null}})}const ChartGrid=semanticMarker("SectileChartGrid","grid");const ChartGridLines=ChartGrid;const ChartLegend=semanticMarker("SectileChartLegend","legend");const ChartAxisTicks=semanticMarker("SectileChartAxisTicks","axis-ticks");const ChartTicks=ChartAxisTicks;const chartSuiteKey=Symbol("SectileChartSuite");const chartComponentSuites=new WeakMap;function createChartComponents(controller){if(controller===null||typeof controller!=="object")throw new TypeError("createChartComponents requires a Chart controller.");const cached=chartComponentSuites.get(controller);if(cached!==void 0)return cached;const token=Object.freeze({controller});const suite=Object.freeze({Provider:boundChartProvider(controller,token),Root:boundChartRoot(token),Cartesian:ChartCartesian,Radial:ChartRadial,XAxis:ChartXAxis,YAxis:ChartYAxis,AxisView:ChartAxisView,Line:ChartLine,Scatter:ChartScatter,Bar:ChartBar,Bars:ChartBars,Heatmap:ChartHeatmap,Pie:ChartPie,Donut:ChartDonut,Navigation:ChartNavigation,ViewControls:ChartViewControls,ExternalViewControls:ChartExternalViewControls,PanControl:ChartPanControl,ZoomControl:ChartZoomControl,ResetView:ChartResetView,Plot:ChartPlot,Renderer:ChartRenderer,Canvas:ChartCanvas,Grid:ChartGrid,GridLines:ChartGridLines,Legend:ChartLegend,AxisTicks:ChartAxisTicks,Ticks:ChartTicks});chartComponentSuites.set(controller,suite);return suite}function boundChartProvider(controller,token){return defineComponent({name:"SectileBoundChartProvider",inheritAttrs:false,setup(_props,{attrs,slots}){provide(chartSuiteKey,token);return()=>h(ChartProviderRuntime,{...attrs,controller},slots)}})}function boundChartRoot(token){return defineComponent({name:"SectileBoundChartRoot",inheritAttrs:false,setup(_props,{attrs,slots}){if(inject(chartSuiteKey,void 0)!==token){throw new TypeError("Controller-bound Chart.Root requires its matching Chart.Provider.")}return()=>h(ChartRootRuntime,attrs,slots)}})}function requiredControlAxis(axis,inheritedAxis){const resolved=axis??inheritedAxis;if(resolved===void 0)throw new TypeError("Chart view control requires an axis prop or an enclosing axis control scope.");return resolved}function bindController(controller,options,owned){const snapshot=shallowRef(controller.getSnapshot());const projection=shallowRef(null);const connection=shallowRef(null);let active=true;const controlledFlags={activeDatum:options.activeDatum!==void 0,cursor:options.cursor!==void 0,selection:options.selection!==void 0,view:options.view!==void 0};const publish=()=>{if(!active)return;const previous=snapshot.value;const current=controller.getSnapshot();if(current===previous)return;snapshot.value=current;if(!controlledFlags.activeDatum&&current.state.activeDatum!==previous.state.activeDatum)options.onActiveDatumChange?.(current.state.activeDatum);if(!controlledFlags.cursor&&current.state.cursor!==previous.state.cursor)options.onCursorChange?.(current.state.cursor);if(!controlledFlags.selection&&current.state.selection!==previous.state.selection)options.onSelectionChange?.(current.state.selection);if(!controlledFlags.view&&current.state.view!==previous.state.view)options.onViewChange?.(current.state.view)};const unsubscribeCommands=controller.subscribeCommands(command=>{options.onCommand?.(command);if(command.type==="active-change-requested"){if(options.activeDatum!==void 0)options.activeDatum.value=command.id;options.onActiveDatumChange?.(command.id)}else if(command.type==="cursor-change-requested"){if(options.cursor!==void 0)options.cursor.value=command.id;options.onCursorChange?.(command.id)}else if(command.type==="selection-change-requested"){if(options.selection!==void 0)options.selection.value=command.selection;options.onSelectionChange?.(command.selection)}else if(command.type==="view-change-requested"){if(options.view!==void 0)options.view.value=command.view;options.onViewChange?.(command.view)}publish()});const unsubscribeSnapshots=controller.subscribeSnapshots(()=>{publish()});const result={controller,snapshot,projection,connection,replaceModel(model,expectedRevision){const value=controller.replaceModel(model,expectedRevision);publish();return value},replaceDefinition(definition,viewCapabilities,expectedRevision){const value=controller.replaceDefinition(definition,viewCapabilities,expectedRevision);publish();return value},applyPatch(patch,expectedRevision){const value=controller.applyPatch(patch,expectedRevision);publish();return value},dispatch(event,expectedRevision){const value=controller.dispatch(event,expectedRevision);publish();return value},syncControlledValues(){const value=controller.syncControlledValues(controlledValues(options));publish();return value},dispose(){if(!active)return;active=false;connection.value?.disconnect();connection.value=null;unsubscribeCommands();unsubscribeSnapshots();if(owned)controller.dispose()}};return Object.freeze(result)}function controlledValues(options){return Object.freeze({...options.activeDatum===void 0?{}:{activeDatum:options.activeDatum.value},...options.cursor===void 0?{}:{cursor:options.cursor.value},...options.selection===void 0?{}:{selection:options.selection.value},...options.view===void 0?{}:{view:options.view.value}})}function defaultValues(options){const values=Object.freeze({...options.activeDatum!==void 0||options.defaultActiveDatum===void 0?{}:{activeDatum:options.defaultActiveDatum},...options.cursor!==void 0||options.defaultCursor===void 0?{}:{cursor:options.defaultCursor},...options.selection!==void 0||options.defaultSelection===void 0?{}:{selection:options.defaultSelection},...options.view!==void 0||options.defaultView===void 0?{}:{view:options.defaultView}});return Object.keys(values).length===0?{}:{initialValues:values}}function assertControlledDefaults(options){if(options.activeDatum!==void 0&&options.defaultActiveDatum!==void 0||options.cursor!==void 0&&options.defaultCursor!==void 0||options.selection!==void 0&&options.defaultSelection!==void 0||options.view!==void 0&&options.defaultView!==void 0){throw new TypeError("Chart controlled values and their default counterparts are mutually exclusive.")}}function assertRootControlledDefaults(props){if(props["modelValue"]!==void 0&&props["defaultModelValue"]!==void 0||props["activeDatum"]!==void 0&&props["defaultActiveDatum"]!==void 0||props["cursor"]!==void 0&&props["defaultCursor"]!==void 0||props["view"]!==void 0&&props["defaultView"]!==void 0){throw new TypeError("ChartRoot controlled props and their default counterparts are mutually exclusive.")}}function defined(value){return Object.fromEntries(Object.entries(value).filter(([,entry])=>entry!==void 0))}export{ChartAxisTicks,ChartAxisView,ChartBar,ChartBars,ChartCanvas,ChartCartesian,ChartDonut,ChartExternalViewControls,ChartGrid,ChartGridLines,ChartHeatmap,ChartLegend,ChartLine,ChartNavigation,ChartPanControl,ChartPie,ChartPlot,ChartProvider,ChartRadial,ChartRenderer,ChartResetView,ChartRoot,ChartScatter,ChartTicks,ChartViewControls,ChartXAxis,ChartYAxis,ChartZoomControl,createChartComponents,useChart,useChartAxisSelector,useChartContext,useChartLayerSelector,useChartSelector};
1
+ import{createChartController}from"@sectile/chart/controller";import{createDOMChart}from"@sectile/dom/chart";import{defineComponent,getCurrentScope,h,inject,nextTick,onBeforeUnmount,onMounted,onScopeDispose,provide,shallowRef,toValue,watch}from"vue";function useChart(options){if(options===null||typeof options!=="object")throw new TypeError("useChart options must be an object.");if(options.model===void 0===(options.definition===void 0)){throw new TypeError("useChart requires exactly one model or declarative definition.")}assertControlledDefaults(options);const controlled=controlledValues(options);const source=options.definition===void 0?{model:toValue(options.model)}:{definition:toValue(options.definition),viewCapabilities:toValue(options.viewCapabilities??(()=>Object.freeze([])))};const controller=createChartController({...source,...options.limits===void 0?{}:{limits:options.limits},...defaultValues(options),...Object.keys(controlled).length===0?{}:{controlled}});const binding=bindController(controller,options,true);const stops=[];if(options.model!==void 0){stops.push(watch(()=>toValue(options.model),model=>{binding.replaceModel(model)},{deep:false}))}else{stops.push(watch(()=>[toValue(options.definition),toValue(options.viewCapabilities??(()=>Object.freeze([])))],([definition,capabilities])=>{binding.replaceDefinition(definition,capabilities)},{deep:false}))}for(const sourceRef of[options.activeDatum,options.cursor,options.selection,options.view]){if(sourceRef!==void 0)stops.push(watch(()=>sourceRef.value,()=>{binding.syncControlledValues()},{deep:false}))}const disposeBinding=binding.dispose;const result=Object.freeze({...binding,dispose(){for(const stop of stops.splice(0))stop();disposeBinding()}});if(getCurrentScope()!==void 0)onScopeDispose(result.dispose);return result}class ChartDeclarations{#records=new Map;#publish;#token=0;#scheduled=false;#active=true;#publications=0;#readRecords=0;constructor(publish){this.#publish=publish}register(kind,read){const token=++this.#token;this.#records.set(token,{token,kind,read});this.schedule();let active=true;return Object.freeze({touch:()=>{if(active)this.schedule()},dispose:()=>{if(!active)return;active=false;this.#records.delete(token);this.schedule()}})}publishNow(){if(!this.#active)return;this.#scheduled=false;this.#publish(this.assemble());this.#publications+=1}getDiagnostics(){return Object.freeze({registeredRecords:this.#records.size,publications:this.#publications,readRecords:this.#readRecords})}schedule(){if(!this.#active||this.#scheduled)return;this.#scheduled=true;void nextTick(()=>{if(this.#scheduled)this.publishNow()})}assemble(){const records=[...this.#records.values()].sort((left,right)=>left.token-right.token);this.#readRecords=records.length;const coordinates=records.filter(record=>record.kind==="coordinate");if(coordinates.length!==1)throw new TypeError("ChartRoot requires exactly one ChartCartesian or ChartRadial coordinate.");const coordinate=coordinates[0]?.read();const axes=records.filter(record=>record.kind==="axis").map(record=>record.read());const layers=records.filter(record=>record.kind==="layer").map(record=>record.read());const capabilities=records.filter(record=>record.kind==="view").map(record=>record.read());const navigationRecords=records.filter(record=>record.kind==="navigation");if(navigationRecords.length>1)throw new TypeError("ChartRoot accepts at most one ChartNavigation declaration.");const controls=records.filter(record=>record.kind==="controls").map(record=>record.read());const navigation=navigationRecords[0]?.read();const alternative=controls.includes("built-in")?"built-in":controls.includes("external")?"external":void 0;if(navigation!==void 0&&((navigation.drag??"none")!=="none"||navigation.pinch===true)&&alternative===void 0){throw new TypeError("Chart direct gestures require ChartViewControls or ChartExternalViewControls.")}return Object.freeze({definition:Object.freeze({coordinate:coordinate.kind==="cartesian"?Object.freeze({kind:"cartesian",axes:Object.freeze(axes)}):Object.freeze({kind:"radial"}),layers:Object.freeze(layers)}),viewCapabilities:Object.freeze(capabilities),navigation:Object.freeze({...navigation??{},...alternative===void 0?{}:{controlAlternative:alternative}})})}dispose(){if(!this.#active)return;this.#active=false;this.#scheduled=false;this.#records.clear()}}const chartKey=Symbol("SectileChart");const chartPublicKey=Symbol("SectileChartPublic");const chartOwnerKey=Symbol("SectileChartOwner");const chartAxisKey=Symbol("SectileChartAxis");const chartControlAxisKey=Symbol("SectileChartControlAxis");function useInternalChart(){const context=inject(chartKey);if(context===void 0)throw new TypeError("Chart component must be used inside ChartRoot.");return context}function useChartContext(){const context=inject(chartPublicKey);if(context===void 0)throw new TypeError("useChartContext must be used inside ChartRoot or ChartProvider.");return context}const ChartProviderRuntime=defineComponent({name:"SectileChartProvider",props:{controller:{type:Object,required:true}},setup(props,{slots}){const controller=shallowRef(props.controller);const snapshot=shallowRef(controller.value.getSnapshot());const unsubscribe=controller.value.subscribeSnapshots(next=>{snapshot.value=next});const owner=Object.freeze({controller});const context=Object.freeze({controller,snapshot,dispatch(event){const result=controller.value.dispatch(event);return result.ok?Object.freeze({ok:true,value:result.value.snapshot}):result},applyPatch(patch){return controller.value.applyPatch(patch)}});provide(chartOwnerKey,owner);provide(chartPublicKey,context);onScopeDispose(unsubscribe);return()=>slots["default"]?.({controller:controller.value,snapshot:snapshot.value,state:snapshot.value.state,definition:controller.value.getDefinition()})??null}});const ChartProvider=ChartProviderRuntime;function useChartSelector(selector,options={}){const context=useChartContext();return useChartContextSelector(context,()=>selector(context.snapshot.value?.state??null),options.equals)}function useChartLayerSelector(id,selector,options={}){const context=useChartContext();return useChartContextSelector(context,()=>{const layers=context.controller.value?.getDefinition()?.layers;return selector(layers?.find(layer=>layer.id===id)??null)},options.equals)}function useChartAxisSelector(id,selector,options={}){const context=useChartContext();return useChartContextSelector(context,()=>{const axes=context.controller.value?.getDefinition()?.axes;return selector(axes?.find(axis=>axis.id===id)??null)},options.equals)}function useChartContextSelector(context,read,equals=Object.is){const selected=shallowRef(read());const stop=watch([context.controller,context.snapshot],()=>{const next=read();if(!equals(selected.value,next))selected.value=next},{deep:false,flush:"sync"});onScopeDispose(stop);return selected}const ChartRootRuntime=defineComponent({name:"SectileChartRoot",inheritAttrs:false,props:{limits:{type:Object,default:void 0},modelValue:{type:Object,default:void 0},defaultModelValue:{type:Object,default:void 0},activeDatum:{type:[String,Number],default:void 0},defaultActiveDatum:{type:[String,Number],default:void 0},cursor:{type:[String,Number],default:void 0},defaultCursor:{type:[String,Number],default:void 0},view:{type:Object,default:void 0},defaultView:{type:Object,default:void 0},patch:{type:Object,default:void 0},dom:{type:Object,default:void 0},onError:{type:Function,default:void 0}},emits:{"update:modelValue":_value=>true,"update:activeDatum":_value=>true,"update:cursor":_value=>true,"update:view":_value=>true,command:_command=>true},setup(props,{attrs,emit,expose,slots}){assertRootControlledDefaults(props);const ownerContext=inject(chartOwnerKey,void 0);const ownsController=ownerContext===void 0;const root=shallowRef(null);const canvas=shallowRef(null);const controller=shallowRef(ownerContext?.controller.value??null);const snapshot=shallowRef(controller.value?.getSnapshot()??null);const projection=shallowRef(null);const connection=shallowRef(null);let assembled=null;let unsubscribeCommands=null;let unsubscribeSnapshots=null;let previousState=snapshot.value?.state??null;let mounted=false;let definitionAccepted=false;const controlled=Object.freeze({activeDatum:props.activeDatum!==void 0,cursor:props.cursor!==void 0,selection:props.modelValue!==void 0,view:props.view!==void 0});const report=error=>{if(props.onError!==void 0)props.onError(error);else throw error};const publishSnapshot=()=>{const owner=controller.value;if(owner===null)return;const current=owner.getSnapshot();if(snapshot.value===current)return;const prior=previousState;snapshot.value=current;previousState=current.state;if(prior===null)return;let failure;if(!controlled.activeDatum&&prior.activeDatum!==current.state.activeDatum){try{emit("update:activeDatum",current.state.activeDatum)}catch(error){failure??=[error]}}if(!controlled.cursor&&prior.cursor!==current.state.cursor){try{emit("update:cursor",current.state.cursor)}catch(error){failure??=[error]}}if(!controlled.selection&&prior.selection!==current.state.selection){try{emit("update:modelValue",current.state.selection)}catch(error){failure??=[error]}}if(!controlled.view&&prior.view!==current.state.view){try{emit("update:view",current.state.view)}catch(error){failure??=[error]}}if(failure!==void 0)throw failure[0]};const onCommand=command=>{let failure;try{publishSnapshot()}catch(error){failure??=[error]}try{emit("command",command)}catch(error){failure??=[error]}try{if(command.type==="active-change-requested")emit("update:activeDatum",command.id);else if(command.type==="cursor-change-requested")emit("update:cursor",command.id);else if(command.type==="selection-change-requested")emit("update:modelValue",command.selection);else if(command.type==="view-change-requested")emit("update:view",command.view)}catch(error){failure??=[error]}if(failure!==void 0)throw failure[0]};const connect=()=>{const owner=controller.value;if(!mounted||owner===null||root.value===null||canvas.value===null||connection.value!==null)return;const dom=props.dom??{};try{connection.value=createDOMChart({...dom,root:root.value,canvas:canvas.value,controller:owner,...assembled===null?{}:{navigation:assembled.navigation},onCommand:command=>{dom.onCommand?.(command)},onProjectionChange:next=>{projection.value=next;dom.onProjectionChange?.(next)}});projection.value=connection.value.getProjection()}catch(error){report(error)}};const publishDefinition=next=>{assembled=next;definitionAccepted=false;const owner=controller.value;if(!mounted||owner===null)return;const replaced=owner.replaceDefinition(next.definition,next.viewCapabilities);if(!replaced.ok){report(new TypeError(`${replaced.error.code}: ${replaced.error.message}`));return}definitionAccepted=true;publishSnapshot();const navigation=connection.value?.setNavigation(next.navigation);if(navigation!==void 0&&!navigation.ok)report(new TypeError(`${navigation.error.code}: ${navigation.error.message}`));connection.value?.refresh()};const declarations=new ChartDeclarations(next=>{try{publishDefinition(next)}catch(error){report(error)}});const context=Object.freeze({declarations,controller,canvas,dispatch(event){const result=controller.value?.dispatch(event);if(result!==void 0&&!result.ok)report(new TypeError(`${result.error.code}: ${result.error.message}`));publishSnapshot()}});provide(chartKey,context);const publicContext=Object.freeze({controller,snapshot,dispatch(event){const result=controller.value?.dispatch(event);if(result===void 0)return Object.freeze({ok:true,value:null});publishSnapshot();return result.ok?Object.freeze({ok:true,value:result.value.snapshot}):result},applyPatch(patch){const result=controller.value?.applyPatch(patch);if(result===void 0)return Object.freeze({ok:true,value:null});publishSnapshot();return result}});provide(chartPublicKey,publicContext);const syncControlled=()=>{const owner=controller.value;if(owner===null)return;const result=owner.syncControlledValues(Object.freeze({...controlled.activeDatum?{activeDatum:props.activeDatum??null}:{},...controlled.cursor?{cursor:props.cursor??null}:{},...controlled.selection?{selection:props.modelValue}:{},...controlled.view?{view:props.view??null}:{}}));if(!result.ok)report(new TypeError(`${result.error.code}: ${result.error.message}`));publishSnapshot()};watch(()=>[props.activeDatum,props.cursor,props.modelValue,props.view],syncControlled,{deep:false});watch(()=>props.patch,patch=>{if(patch===null||patch===void 0||controller.value===null)return;const result=controller.value.applyPatch(patch);if(!result.ok)report(new TypeError(`${result.error.code}: ${result.error.message}`));publishSnapshot()},{deep:false});watch(()=>props.dom?.accessibilityLabel,label=>{connection.value?.setAccessibilityLabel(label)},{flush:"post"});onMounted(()=>{mounted=true;try{declarations.publishNow();const next=assembled;const controlledValues2=Object.freeze({...controlled.activeDatum?{activeDatum:props.activeDatum??null}:{},...controlled.cursor?{cursor:props.cursor??null}:{},...controlled.selection?{selection:props.modelValue}:{},...controlled.view?{view:props.view??null}:{}});const initialValues=Object.freeze({...!controlled.activeDatum&&props.defaultActiveDatum!==void 0?{activeDatum:props.defaultActiveDatum}:{},...!controlled.cursor&&props.defaultCursor!==void 0?{cursor:props.defaultCursor}:{},...!controlled.selection&&props.defaultModelValue!==void 0?{selection:props.defaultModelValue}:{},...!controlled.view&&props.defaultView!==void 0?{view:props.defaultView}:{}});if(ownerContext===void 0){controller.value=createChartController({definition:next.definition,viewCapabilities:next.viewCapabilities,...props.limits===void 0?{}:{limits:props.limits},...Object.keys(controlledValues2).length===0?{}:{controlled:controlledValues2},...Object.keys(initialValues).length===0?{}:{initialValues}})}else{const borrowed=ownerContext.controller.value;if(!definitionAccepted)return;controller.value=borrowed;if(Object.keys(controlledValues2).length!==0){const synced=borrowed.syncControlledValues(controlledValues2);if(!synced.ok)throw new TypeError(`${synced.error.code}: ${synced.error.message}`)}}snapshot.value=controller.value.getSnapshot();previousState=snapshot.value.state;unsubscribeCommands=controller.value.subscribeCommands(onCommand);unsubscribeSnapshots=controller.value.subscribeSnapshots(()=>{publishSnapshot()});void nextTick(connect)}catch(error){report(error)}});onBeforeUnmount(()=>{mounted=false;declarations.dispose();connection.value?.disconnect();connection.value=null;unsubscribeCommands?.();unsubscribeCommands=null;unsubscribeSnapshots?.();unsubscribeSnapshots=null;if(ownsController)controller.value?.dispose();controller.value=null});expose({controller,getDeclarationDiagnostics:()=>declarations.getDiagnostics(),refresh:()=>connection.value?.refresh()});return()=>h("div",{...attrs,ref:element=>{root.value=element},"data-scope":"chart","data-part":"root"},slots["default"]?.({controller:controller.value,snapshot:snapshot.value,state:snapshot.value?.state??null,projection:projection.value,definition:controller.value?.getDefinition()??null}))}});const ChartRoot=ChartRootRuntime;const coordinateProps={};const ChartCartesian=defineComponent({name:"SectileChartCartesian",props:coordinateProps,setup(_props,{slots}){const context=useInternalChart();const record=context.declarations.register("coordinate",()=>Object.freeze({kind:"cartesian"}));onBeforeUnmount(record.dispose);return()=>slots["default"]?.()??null}});const ChartRadial=defineComponent({name:"SectileChartRadial",props:coordinateProps,setup(_props,{slots}){const context=useInternalChart();const record=context.declarations.register("coordinate",()=>Object.freeze({kind:"radial"}));onBeforeUnmount(record.dispose);return()=>slots["default"]?.()??null}});const axisProps={id:{type:[String,Number],required:true},scale:{type:String,default:"linear"},domain:{type:[String,Object],default:"auto"},field:{type:String,default:void 0},getValue:{type:Function,default:void 0},ticks:{type:Number,default:void 0},label:{type:String,default:void 0},unit:{type:String,default:void 0}};function axisComponent(orientation){return defineComponent({name:orientation==="x"?"SectileChartXAxis":"SectileChartYAxis",props:axisProps,setup(props,{slots}){const context=useInternalChart();const axis=shallowRef(props.id);provide(chartAxisKey,axis);const value=shallowRef(axisDefinition(props,orientation));const record=context.declarations.register("axis",()=>value.value);watch(()=>[props.id,props.scale,props.domain,props.field,props.getValue,props.ticks,props.label,props.unit],()=>{axis.value=props.id;value.value=axisDefinition(props,orientation);record.touch()},{deep:false,flush:"post"});onBeforeUnmount(record.dispose);return()=>slots["default"]?.()??null}})}const ChartXAxis=axisComponent("x");const ChartYAxis=axisComponent("y");function axisDefinition(props,orientation){return defined({id:props["id"],orientation,scale:props["scale"],domain:props["domain"],field:props["field"],getValue:props["getValue"],ticks:props["ticks"],label:props["label"],unit:props["unit"]})}const layerBaseProps={id:{type:[String,Number],required:true},data:{type:Array,required:true},getId:{type:Function,default:void 0},label:{type:String,default:void 0}};const cartesianLayerProps={...layerBaseProps,xAxis:{type:[String,Number],required:true},yAxis:{type:[String,Number],required:true},getX:{type:Function,default:void 0},getY:{type:Function,default:void 0}};function layerComponent(kind,extraProps={}){return defineComponent({name:`SectileChart${kind[0]?.toUpperCase()}${kind.slice(1)}`,props:{...kind==="pie"||kind==="donut"?layerBaseProps:cartesianLayerProps,...extraProps},setup(props){const context=useInternalChart();const value=shallowRef(layerDefinition(props,kind));const record=context.declarations.register("layer",()=>value.value);watch(()=>Object.values(props),()=>{value.value=layerDefinition(props,kind);record.touch()},{deep:false,flush:"post"});onBeforeUnmount(record.dispose);return()=>null}})}const ChartLine=layerComponent("line");const ChartScatter=layerComponent("scatter",{projection:{type:String,default:"raw"}});const ChartBar=layerComponent("bar",{orientation:{type:String,default:"vertical"}});const ChartBars=ChartBar;const ChartHeatmap=layerComponent("heatmap",{getValue:{type:Function,default:void 0},valueField:{type:String,default:void 0},projection:{type:[String,Object],default:"raw"}});const ChartPie=layerComponent("pie",{getValue:{type:Function,default:void 0},valueField:{type:String,default:void 0},getLabel:{type:Function,default:void 0},labelField:{type:String,default:void 0}});const ChartDonut=layerComponent("donut",{getValue:{type:Function,default:void 0},valueField:{type:String,default:void 0},getLabel:{type:Function,default:void 0},labelField:{type:String,default:void 0},innerRadius:{type:Number,default:.5},outerRadius:{type:Number,default:1}});function layerDefinition(props,kind){return defined({kind,id:props["id"],data:props["data"],getId:props["getId"],label:props["label"],xAxis:props["xAxis"],yAxis:props["yAxis"],getX:props["getX"],getY:props["getY"],projection:props["projection"],orientation:props["orientation"],getValue:props["getValue"],valueField:props["valueField"],getLabel:props["getLabel"],labelField:props["labelField"],innerRadius:props["innerRadius"],outerRadius:props["outerRadius"]})}const ChartAxisView=defineComponent({name:"SectileChartAxisView",props:{axis:{type:[String,Number],default:void 0},initial:{type:Object,default:void 0},minimumSpan:{type:Number,default:void 0},maximumSpan:{type:Number,default:void 0},update:{type:String,default:"preserve"}},setup(props){const context=useInternalChart();const inheritedAxis=inject(chartAxisKey,void 0);const read=()=>viewCapability(props,inheritedAxis?.value);const value=shallowRef(read());const record=context.declarations.register("view",()=>value.value);watch(()=>[props.axis,inheritedAxis?.value,props.initial,props.minimumSpan,props.maximumSpan,props.update],()=>{value.value=read();record.touch()},{deep:false,flush:"post"});onBeforeUnmount(record.dispose);return()=>null}});function viewCapability(props,inheritedAxis){const axisID=props["axis"]??inheritedAxis;if(axisID===void 0)throw new TypeError("ChartAxisView requires an axis prop or an enclosing ChartXAxis or ChartYAxis.");return Object.freeze(defined({axisID,initial:props["initial"],minimumSpan:props["minimumSpan"],maximumSpan:props["maximumSpan"],update:props["update"]}))}const ChartNavigation=defineComponent({name:"SectileChartNavigation",props:{axes:{type:Array,default:void 0},drag:{type:String,default:"none"},wheel:{type:String,default:"native"},wheelModifier:{type:String,default:"none"},pinch:{type:Boolean,default:false},keyboard:{type:Boolean,default:false}},setup(props){const context=useInternalChart();const value=shallowRef(navigationDefinition(props));const record=context.declarations.register("navigation",()=>value.value);watch(()=>[props.axes,props.drag,props.wheel,props.wheelModifier,props.pinch,props.keyboard],()=>{const next=navigationDefinition(props);if(sameNavigation(value.value,next))return;value.value=next;record.touch()},{deep:false,flush:"post"});onBeforeUnmount(record.dispose);return()=>null}});function navigationDefinition(props){return Object.freeze(defined({axes:props["axes"],drag:props["drag"],wheel:props["wheel"],wheelModifier:props["wheelModifier"],pinch:props["pinch"],keyboard:props["keyboard"]}))}function sameNavigation(left,right){return sameStableIDs(left.axes,right.axes)&&left.drag===right.drag&&left.wheel===right.wheel&&left.wheelModifier===right.wheelModifier&&left.pinch===right.pinch&&left.keyboard===right.keyboard}function sameStableIDs(left,right){if(left===right)return true;if(left===void 0||right===void 0||left.length!==right.length)return false;for(let index=0;index<left.length;index+=1)if(left[index]!==right[index])return false;return true}const ChartViewControls=defineComponent({name:"SectileChartViewControls",inheritAttrs:false,props:{axis:{type:[String,Number],default:void 0}},setup(props,{attrs,slots}){const context=useInternalChart();const inheritedAxis=inject(chartAxisKey,void 0);const initialAxis=props.axis??inheritedAxis?.value;if(initialAxis===void 0)throw new TypeError("ChartViewControls requires an axis prop or an enclosing ChartXAxis or ChartYAxis.");const axis=shallowRef(initialAxis);provide(chartControlAxisKey,axis);watch(()=>[props.axis,inheritedAxis?.value],()=>{axis.value=props.axis??inheritedAxis?.value},{deep:false,flush:"sync"});const record=context.declarations.register("controls",()=>"built-in");onBeforeUnmount(record.dispose);return()=>h("div",{...attrs,"data-scope":"chart","data-part":"view-controls"},slots["default"]?.())}});const ChartExternalViewControls=defineComponent({name:"SectileChartExternalViewControls",setup(){const context=useInternalChart();const record=context.declarations.register("controls",()=>"external");onBeforeUnmount(record.dispose);return()=>null}});const axisControlProps={axis:{type:[String,Number],default:void 0},label:{type:String,default:void 0}};const ChartPanControl=defineComponent({name:"SectileChartPanControl",inheritAttrs:false,props:{...axisControlProps,direction:{type:String,required:true},step:{type:Number,default:.1}},setup(props,{attrs,slots}){const context=useInternalChart();const inheritedAxis=inject(chartControlAxisKey,inject(chartAxisKey,void 0));const axis=()=>requiredControlAxis(props.axis,inheritedAxis?.value);return()=>h("button",{...attrs,type:"button",disabled:context.controller.value===null,"aria-label":props.label??`Pan ${String(axis())} ${props.direction}`,"data-scope":"chart","data-part":"pan-control",onClick:()=>context.dispatch({type:"pan-axis-view",axisID:axis(),fraction:props.direction==="backward"?-props.step:props.step,phase:"settled"})},slots["default"]?.()??props.direction)}});const ChartZoomControl=defineComponent({name:"SectileChartZoomControl",inheritAttrs:false,props:{...axisControlProps,direction:{type:String,required:true},factor:{type:Number,default:1.25}},setup(props,{attrs,slots}){const context=useInternalChart();const inheritedAxis=inject(chartControlAxisKey,inject(chartAxisKey,void 0));const axis=()=>requiredControlAxis(props.axis,inheritedAxis?.value);return()=>h("button",{...attrs,type:"button",disabled:context.controller.value===null,"aria-label":props.label??`Zoom ${String(axis())} ${props.direction}`,"data-scope":"chart","data-part":"zoom-control",onClick:()=>context.dispatch({type:"zoom-axis-view",axisID:axis(),factor:props.direction==="in"?props.factor:1/props.factor,anchor:.5,phase:"settled"})},slots["default"]?.()??props.direction)}});const ChartResetView=defineComponent({name:"SectileChartResetView",inheritAttrs:false,props:{...axisControlProps,to:{type:String,default:"initial"}},setup(props,{attrs,slots}){const context=useInternalChart();const inheritedAxis=inject(chartControlAxisKey,inject(chartAxisKey,void 0));const axis=()=>requiredControlAxis(props.axis,inheritedAxis?.value);return()=>h("button",{...attrs,type:"button",disabled:context.controller.value===null,"aria-label":props.label??`Reset ${String(axis())} view`,"data-scope":"chart","data-part":"reset-view",onClick:()=>context.dispatch({type:"reset-axis-view",axisID:axis(),to:props.to,phase:"settled"})},slots["default"]?.()??"Reset")}});const ChartPlot=defineComponent({name:"SectileChartPlot",inheritAttrs:false,setup(_props,{attrs,slots}){return()=>h("div",{...attrs,"data-scope":"chart","data-part":"plot"},slots["default"]?.())}});const ChartRenderer=defineComponent({name:"SectileChartRenderer",inheritAttrs:false,setup(_props,{attrs}){const context=useInternalChart();return()=>h("canvas",{...attrs,ref:element=>{context.canvas.value=element},"aria-hidden":"true","data-scope":"chart","data-part":"renderer"})}});const ChartCanvas=ChartRenderer;function semanticMarker(name,part){return defineComponent({name,setup(){useInternalChart();return()=>null}})}const ChartGrid=semanticMarker("SectileChartGrid","grid");const ChartGridLines=ChartGrid;const ChartLegend=semanticMarker("SectileChartLegend","legend");const ChartAxisTicks=semanticMarker("SectileChartAxisTicks","axis-ticks");const ChartTicks=ChartAxisTicks;const chartSuiteKey=Symbol("SectileChartSuite");const chartComponentSuites=new WeakMap;function createChartComponents(controller){if(controller===null||typeof controller!=="object")throw new TypeError("createChartComponents requires a Chart controller.");const cached=chartComponentSuites.get(controller);if(cached!==void 0)return cached;const token=Object.freeze({controller});const suite=Object.freeze({Provider:boundChartProvider(controller,token),Root:boundChartRoot(token),Cartesian:ChartCartesian,Radial:ChartRadial,XAxis:ChartXAxis,YAxis:ChartYAxis,AxisView:ChartAxisView,Line:ChartLine,Scatter:ChartScatter,Bar:ChartBar,Bars:ChartBars,Heatmap:ChartHeatmap,Pie:ChartPie,Donut:ChartDonut,Navigation:ChartNavigation,ViewControls:ChartViewControls,ExternalViewControls:ChartExternalViewControls,PanControl:ChartPanControl,ZoomControl:ChartZoomControl,ResetView:ChartResetView,Plot:ChartPlot,Renderer:ChartRenderer,Canvas:ChartCanvas,Grid:ChartGrid,GridLines:ChartGridLines,Legend:ChartLegend,AxisTicks:ChartAxisTicks,Ticks:ChartTicks});chartComponentSuites.set(controller,suite);return suite}function boundChartProvider(controller,token){return defineComponent({name:"SectileBoundChartProvider",inheritAttrs:false,setup(_props,{attrs,slots}){provide(chartSuiteKey,token);return()=>h(ChartProviderRuntime,{...attrs,controller},slots)}})}function boundChartRoot(token){return defineComponent({name:"SectileBoundChartRoot",inheritAttrs:false,setup(_props,{attrs,slots}){if(inject(chartSuiteKey,void 0)!==token){throw new TypeError("Controller-bound Chart.Root requires its matching Chart.Provider.")}return()=>h(ChartRootRuntime,attrs,slots)}})}function requiredControlAxis(axis,inheritedAxis){const resolved=axis??inheritedAxis;if(resolved===void 0)throw new TypeError("Chart view control requires an axis prop or an enclosing axis control scope.");return resolved}function bindController(controller,options,owned){const snapshot=shallowRef(controller.getSnapshot());const projection=shallowRef(null);const connection=shallowRef(null);let active=true;const controlledFlags={activeDatum:options.activeDatum!==void 0,cursor:options.cursor!==void 0,selection:options.selection!==void 0,view:options.view!==void 0};const publish=()=>{if(!active)return;const previous=snapshot.value;const current=controller.getSnapshot();if(current===previous)return;snapshot.value=current;let failure;if(!controlledFlags.activeDatum&&current.state.activeDatum!==previous.state.activeDatum){try{options.onActiveDatumChange?.(current.state.activeDatum)}catch(error){failure??=[error]}}if(!controlledFlags.cursor&&current.state.cursor!==previous.state.cursor){try{options.onCursorChange?.(current.state.cursor)}catch(error){failure??=[error]}}if(!controlledFlags.selection&&current.state.selection!==previous.state.selection){try{options.onSelectionChange?.(current.state.selection)}catch(error){failure??=[error]}}if(!controlledFlags.view&&current.state.view!==previous.state.view){try{options.onViewChange?.(current.state.view)}catch(error){failure??=[error]}}if(failure!==void 0)throw failure[0]};const unsubscribeCommands=controller.subscribeCommands(command=>{let failure;if(command.type==="active-change-requested"&&options.activeDatum!==void 0){try{options.activeDatum.value=command.id}catch(error){failure??=[error]}}else if(command.type==="cursor-change-requested"&&options.cursor!==void 0){try{options.cursor.value=command.id}catch(error){failure??=[error]}}else if(command.type==="selection-change-requested"&&options.selection!==void 0){try{options.selection.value=command.selection}catch(error){failure??=[error]}}else if(command.type==="view-change-requested"&&options.view!==void 0){try{options.view.value=command.view}catch(error){failure??=[error]}}try{publish()}catch(error){failure??=[error]}try{options.onCommand?.(command)}catch(error){failure??=[error]}try{if(command.type==="active-change-requested")options.onActiveDatumChange?.(command.id);else if(command.type==="cursor-change-requested")options.onCursorChange?.(command.id);else if(command.type==="selection-change-requested")options.onSelectionChange?.(command.selection);else if(command.type==="view-change-requested")options.onViewChange?.(command.view)}catch(error){failure??=[error]}if(failure!==void 0)throw failure[0]});const unsubscribeSnapshots=controller.subscribeSnapshots(()=>{publish()});const result={controller,snapshot,projection,connection,replaceModel(model,expectedRevision){const value=controller.replaceModel(model,expectedRevision);publish();return value},replaceDefinition(definition,viewCapabilities,expectedRevision){const value=controller.replaceDefinition(definition,viewCapabilities,expectedRevision);publish();return value},applyPatch(patch,expectedRevision){const value=controller.applyPatch(patch,expectedRevision);publish();return value},dispatch(event,expectedRevision){const value=controller.dispatch(event,expectedRevision);publish();return value},syncControlledValues(){const value=controller.syncControlledValues(controlledValues(options));publish();return value},dispose(){if(!active)return;active=false;connection.value?.disconnect();connection.value=null;unsubscribeCommands();unsubscribeSnapshots();if(owned)controller.dispose()}};return Object.freeze(result)}function controlledValues(options){return Object.freeze({...options.activeDatum===void 0?{}:{activeDatum:options.activeDatum.value},...options.cursor===void 0?{}:{cursor:options.cursor.value},...options.selection===void 0?{}:{selection:options.selection.value},...options.view===void 0?{}:{view:options.view.value}})}function defaultValues(options){const values=Object.freeze({...options.activeDatum!==void 0||options.defaultActiveDatum===void 0?{}:{activeDatum:options.defaultActiveDatum},...options.cursor!==void 0||options.defaultCursor===void 0?{}:{cursor:options.defaultCursor},...options.selection!==void 0||options.defaultSelection===void 0?{}:{selection:options.defaultSelection},...options.view!==void 0||options.defaultView===void 0?{}:{view:options.defaultView}});return Object.keys(values).length===0?{}:{initialValues:values}}function assertControlledDefaults(options){if(options.activeDatum!==void 0&&options.defaultActiveDatum!==void 0||options.cursor!==void 0&&options.defaultCursor!==void 0||options.selection!==void 0&&options.defaultSelection!==void 0||options.view!==void 0&&options.defaultView!==void 0){throw new TypeError("Chart controlled values and their default counterparts are mutually exclusive.")}}function assertRootControlledDefaults(props){if(props["modelValue"]!==void 0&&props["defaultModelValue"]!==void 0||props["activeDatum"]!==void 0&&props["defaultActiveDatum"]!==void 0||props["cursor"]!==void 0&&props["defaultCursor"]!==void 0||props["view"]!==void 0&&props["defaultView"]!==void 0){throw new TypeError("ChartRoot controlled props and their default counterparts are mutually exclusive.")}}function defined(value){return Object.fromEntries(Object.entries(value).filter(([,entry])=>entry!==void 0))}export{ChartAxisTicks,ChartAxisView,ChartBar,ChartBars,ChartCanvas,ChartCartesian,ChartDonut,ChartExternalViewControls,ChartGrid,ChartGridLines,ChartHeatmap,ChartLegend,ChartLine,ChartNavigation,ChartPanControl,ChartPie,ChartPlot,ChartProvider,ChartRadial,ChartRenderer,ChartResetView,ChartRoot,ChartScatter,ChartTicks,ChartViewControls,ChartXAxis,ChartYAxis,ChartZoomControl,createChartComponents,useChart,useChartAxisSelector,useChartContext,useChartLayerSelector,useChartSelector};
2
2
  //# sourceMappingURL=chart.js.map
package/dist/chart.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/chart.ts"],"mappings":"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","names":["controlledValues"],"file":"chart.js"}
1
+ {"version":3,"sources":["../src/chart.ts"],"mappings":"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","names":["controlledValues"],"file":"chart.js"}