@sectile/vue 0.17.0 → 0.18.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/accordion.d.ts +12 -0
- package/dist/accordion.js +1 -1
- package/dist/accordion.js.map +1 -1
- package/dist/carousel.d.ts +13 -0
- package/dist/carousel.js +1 -1
- package/dist/carousel.js.map +1 -1
- package/dist/cascade-list.d.ts +11 -1
- package/dist/cascade-list.js +1 -1
- package/dist/cascade-list.js.map +1 -1
- package/dist/cascade-select.d.ts +11 -1
- package/dist/cascade-select.js +1 -1
- package/dist/cascade-select.js.map +1 -1
- package/dist/checkbox-group.d.ts +9 -0
- package/dist/checkbox.d.ts +11 -1
- package/dist/checkbox.js +1 -1
- package/dist/checkbox.js.map +1 -1
- package/dist/combobox.d.ts +12 -0
- package/dist/combobox.js +1 -1
- package/dist/combobox.js.map +1 -1
- package/dist/disclosure.d.ts +11 -1
- package/dist/disclosure.js +1 -1
- package/dist/disclosure.js.map +1 -1
- package/dist/form.d.ts +6 -48
- package/dist/form.js +1 -1
- package/dist/form.js.map +1 -1
- package/dist/internal/cascade-choice.d.ts +13 -0
- package/dist/internal/cascade-choice.js +1 -1
- package/dist/internal/cascade-choice.js.map +1 -1
- package/dist/internal/conditional-presence.d.ts +23 -0
- package/dist/internal/conditional-presence.js +2 -0
- package/dist/internal/conditional-presence.js.map +1 -0
- package/dist/internal/date-picker.js +1 -1
- package/dist/internal/date-picker.js.map +1 -1
- package/dist/internal/form-context.d.ts +22 -0
- package/dist/internal/form-context.js +2 -0
- package/dist/internal/form-context.js.map +1 -0
- package/dist/internal/form-presence-parts.d.ts +69 -0
- package/dist/internal/form-presence-parts.js +2 -0
- package/dist/internal/form-presence-parts.js.map +1 -0
- package/dist/internal/tabular-parts.js +1 -1
- package/dist/internal/tabular-parts.js.map +1 -1
- package/dist/listbox.d.ts +12 -0
- package/dist/listbox.js +1 -1
- package/dist/listbox.js.map +1 -1
- package/dist/navigation-menu.d.ts +15 -0
- package/dist/navigation-menu.js +1 -1
- package/dist/navigation-menu.js.map +1 -1
- package/dist/radio-group.d.ts +11 -1
- package/dist/radio-group.js +1 -1
- package/dist/radio-group.js.map +1 -1
- package/dist/rating.d.ts +9 -0
- package/dist/select.d.ts +12 -0
- package/dist/select.js +1 -1
- package/dist/select.js.map +1 -1
- package/dist/stepper.d.ts +9 -0
- package/dist/tabs.d.ts +11 -1
- package/dist/tabs.js +1 -1
- package/dist/tabs.js.map +1 -1
- package/dist/tree-grid.d.ts +14 -0
- package/dist/tree-grid.js +1 -1
- package/dist/tree-grid.js.map +1 -1
- package/dist/tree-view.d.ts +11 -1
- package/dist/tree-view.js +1 -1
- package/dist/tree-view.js.map +1 -1
- package/package.json +11 -11
|
@@ -0,0 +1,69 @@
|
|
|
1
|
+
import { type PropType, type SlotsType, type VNodeChild } from 'vue';
|
|
2
|
+
import type { FormFieldSlotProps, FormSummarySlotProps } from '../form.js';
|
|
3
|
+
import { type PrimitiveAs } from '../primitive.js';
|
|
4
|
+
export declare const FormMessage: import("vue").DefineComponent<import("vue").ExtractPropTypes<{
|
|
5
|
+
forcePresent: {
|
|
6
|
+
readonly type: BooleanConstructor;
|
|
7
|
+
readonly default: false;
|
|
8
|
+
};
|
|
9
|
+
asChild: {
|
|
10
|
+
type: BooleanConstructor;
|
|
11
|
+
default: boolean;
|
|
12
|
+
};
|
|
13
|
+
as: {
|
|
14
|
+
type: PropType<PrimitiveAs>;
|
|
15
|
+
default: string;
|
|
16
|
+
};
|
|
17
|
+
}>, () => VNodeChild, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {}, string, import("vue").PublicProps, Readonly<import("vue").ExtractPropTypes<{
|
|
18
|
+
forcePresent: {
|
|
19
|
+
readonly type: BooleanConstructor;
|
|
20
|
+
readonly default: false;
|
|
21
|
+
};
|
|
22
|
+
asChild: {
|
|
23
|
+
type: BooleanConstructor;
|
|
24
|
+
default: boolean;
|
|
25
|
+
};
|
|
26
|
+
as: {
|
|
27
|
+
type: PropType<PrimitiveAs>;
|
|
28
|
+
default: string;
|
|
29
|
+
};
|
|
30
|
+
}>> & Readonly<{}>, {
|
|
31
|
+
forcePresent: boolean;
|
|
32
|
+
asChild: boolean;
|
|
33
|
+
as: PrimitiveAs;
|
|
34
|
+
}, SlotsType<{
|
|
35
|
+
default: (props: FormFieldSlotProps) => VNodeChild;
|
|
36
|
+
}>, {}, {}, string, import("vue").ComponentProvideOptions, true, {}, any>;
|
|
37
|
+
export declare const FormSummary: import("vue").DefineComponent<import("vue").ExtractPropTypes<{
|
|
38
|
+
forcePresent: {
|
|
39
|
+
readonly type: BooleanConstructor;
|
|
40
|
+
readonly default: false;
|
|
41
|
+
};
|
|
42
|
+
as: {
|
|
43
|
+
type: PropType<PrimitiveAs>;
|
|
44
|
+
default: string;
|
|
45
|
+
};
|
|
46
|
+
asChild: {
|
|
47
|
+
type: BooleanConstructor;
|
|
48
|
+
default: boolean;
|
|
49
|
+
};
|
|
50
|
+
}>, () => VNodeChild, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {}, string, import("vue").PublicProps, Readonly<import("vue").ExtractPropTypes<{
|
|
51
|
+
forcePresent: {
|
|
52
|
+
readonly type: BooleanConstructor;
|
|
53
|
+
readonly default: false;
|
|
54
|
+
};
|
|
55
|
+
as: {
|
|
56
|
+
type: PropType<PrimitiveAs>;
|
|
57
|
+
default: string;
|
|
58
|
+
};
|
|
59
|
+
asChild: {
|
|
60
|
+
type: BooleanConstructor;
|
|
61
|
+
default: boolean;
|
|
62
|
+
};
|
|
63
|
+
}>> & Readonly<{}>, {
|
|
64
|
+
forcePresent: boolean;
|
|
65
|
+
as: PrimitiveAs;
|
|
66
|
+
asChild: boolean;
|
|
67
|
+
}, SlotsType<{
|
|
68
|
+
default: (props: FormSummarySlotProps) => VNodeChild;
|
|
69
|
+
}>, {}, {}, string, import("vue").ComponentProvideOptions, true, {}, any>;
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
import{computed,defineComponent,h,mergeProps}from"vue";import{getFormIssuesBySource}from"@sectile/form/state";import{Primitive}from"../primitive.js";import{conditionalPresenceProps,useConditionalPresence}from"./conditional-presence.js";import{useFormContext,useFormFieldContext,useFormSelectorFromContext}from"./form-context.js";const partProps={as:{type:[String,Object,Function],default:"div"},asChild:{type:Boolean,default:false}};const FormMessage=defineComponent({name:"SectileFormMessage",inheritAttrs:false,props:{...partProps,...conditionalPresenceProps,as:{...partProps.as,default:"p"}},slots:Object,setup(props,{attrs,slots}){const field=useFormFieldContext("FormMessage");const active=computed(()=>!field.slotProps.value.valid);const forcePresent=computed(()=>props.forcePresent);const presence=useConditionalPresence(active,forcePresent);return()=>{const inactivePresent=!active.value&&presence.present.value;return h(Primitive,mergeProps(attrs,{as:props.as,asChild:props.asChild,elementRef:presence.register,id:field.slotProps.value.messageId,hidden:presence.hidden.value,role:active.value?"alert":void 0,"aria-live":active.value?"polite":"off",...inactivePresent?{inert:true,"aria-hidden":"true"}:{},"data-scope":"form","data-part":"message","data-state":active.value?"visible":"hidden"}),{default:()=>slots["default"]?.(field.slotProps.value)??field.slotProps.value.issues.map(issue=>issue.message).join(" ")})}}});const FormSummary=defineComponent({name:"SectileFormSummary",inheritAttrs:false,props:{...partProps,...conditionalPresenceProps},slots:Object,setup(props,{attrs,slots}){const form=useFormContext("FormSummary");const valid=useFormSelectorFromContext(form,()=>state=>state.valid);const validation=useFormSelectorFromContext(form,()=>state=>state.validation);const submission=useFormSelectorFromContext(form,()=>state=>state.submission);const issues=useFormSelectorFromContext(form,()=>state=>state.allIssues);const serverIssues=useFormSelectorFromContext(form,()=>state=>getFormIssuesBySource(state,"server"));const firstIssue=useFormSelectorFromContext(form,()=>state=>state.allIssues[0]??null);const active=computed(()=>issues.value.length>0||submission.value.failure!==null);const forcePresent=computed(()=>props.forcePresent);const presence=useConditionalPresence(active,forcePresent);const slotProps=computed(()=>Object.freeze({validation:validation.value,submission:submission.value,issues:issues.value,serverIssues:serverIssues.value,firstIssue:firstIssue.value,valid:valid.value}));return()=>{const inactivePresent=!active.value&&presence.present.value;return h(Primitive,mergeProps(attrs,{as:props.as,asChild:props.asChild,id:form.summaryId,elementRef:element=>{const resolved=presence.register(element);form.summary.value=resolved??null},role:active.value?"alert":void 0,"aria-live":active.value?"polite":"off",tabindex:-1,hidden:presence.hidden.value,...inactivePresent?{inert:true,"aria-hidden":"true"}:{},"data-scope":"form","data-part":"summary","data-state":active.value?"visible":"hidden"}),{default:()=>slots["default"]?.(slotProps.value)??[submission.value.failure?.message,...issues.value.map(issue=>issue.message)].filter(message=>message!==void 0).join(" ")})}}});export{FormMessage,FormSummary};
|
|
2
|
+
//# sourceMappingURL=form-presence-parts.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../../src/internal/form-presence-parts.ts"],"mappings":"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","names":[],"file":"form-presence-parts.js"}
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import{computed,defineComponent,h,inject,mergeProps,onBeforeUnmount,onMounted,provide}from"vue";import{Primitive}from"../primitive.js";import{provideProfile,refreshVueProfileController,stateOf,useProfile}from"./tabular-profile.js";const asProp={type:[String,Object,Function],default:"div"};const asChildProp={type:Boolean,default:false};const identityProps={rowID:{type:String,default:void 0},column:{type:String,required:true}};function createTabularParts(config){const rowKey=Symbol(`Sectile${config.prefix}Row`);const usePublic=name=>useProfile(config.publicKey,`${config.prefix}${name}`);const usePrivate=name=>useProfile(config.privateKey,`${config.prefix}${name}`);const structural=(suffix,part,tag)=>defineComponent({name:`Sectile${config.prefix}${suffix}`,inheritAttrs:false,props:{as:{...asProp,default:tag},asChild:asChildProp},setup(props,{attrs,slots}){const context=usePublic(suffix);return()=>h(Primitive,mergeProps(attrs,{as:props.as,asChild:props.asChild,"data-scope":config.profile,"data-part":part,role:config.profile==="data-table"?void 0:part==="header"||part==="body"?"rowgroup":void 0}),{default:()=>slots["default"]?.(rootSlot(context))})}});const boundPart=(suffix,part,tag,props,bind,rowAware=false)=>defineComponent({name:`Sectile${config.prefix}${suffix}`,inheritAttrs:false,props:{...props,as:{...asProp,default:tag},asChild:asChildProp},setup(runtimeProps,{attrs,slots}){const context=usePrivate(suffix);const inheritedRow=rowAware?inject(rowKey,null):null;const values=()=>{const resolved=runtimeProps;if(!rowAware||resolved["rowID"]!==void 0)return resolved;const row=inheritedRow?.value;if(row===void 0)throw new TypeError(`${config.prefix}${suffix} requires rowID outside automatic ${config.prefix}Body.`);return Object.freeze({...resolved,rowID:row.id})};let release;onBeforeUnmount(()=>release?.());const elementRef=value=>{release?.();release=void 0;if(!(value instanceof HTMLElement)||context.connection.value===null)return;release=bind(context.connection.value,value,values())};return()=>h(Primitive,mergeProps(attrs,{as:runtimeProps.as,asChild:runtimeProps.asChild,elementRef,"data-scope":config.profile,"data-part":part,role:config.profile==="data-table"?void 0:part==="row"?"row":part==="column-header"?"columnheader":part==="cell"?"gridcell":void 0}),{default:()=>slots["default"]?.(partSlot(context,inheritedRow))})}});const Provider=defineComponent({name:`Sectile${config.prefix}Provider`,props:{controller:{type:Object,required:true}},setup(props,{slots}){const context=provideProfile(config.publicKey,config.privateKey,props.controller);return()=>slots["default"]?.(rootSlot(context))}});const rootTag=config.profile==="data-table"?"table":"div";const Root=defineComponent({name:`Sectile${config.prefix}Root`,inheritAttrs:false,props:{onCommand:{type:Function,default:void 0},onError:{type:Function,default:void 0},as:{...asProp,default:rootTag},asChild:asChildProp},setup(props,{attrs,expose,slots}){const context=usePrivate("Root");let element=null;const connect=()=>{config.connectionChanged?.(context.controller,null);context.connection.value?.disconnect();context.connection.value=null;if(element===null)return;try{context.connection.value=config.connect(element,context.controller,{...props.onCommand===void 0?{}:{onCommand:props.onCommand},onSnapshotChange:()=>refreshVueProfileController(context.controller)});config.connectionChanged?.(context.controller,context.connection.value)}catch(error){props.onError?.(error);if(props.onError===void 0)throw error}};onMounted(connect);onBeforeUnmount(()=>{config.connectionChanged?.(context.controller,null);context.connection.value?.disconnect();context.connection.value=null});expose({controller:context.controller,refresh:()=>context.connection.value?.refresh()});return()=>h(Primitive,mergeProps(attrs,{as:props.as,asChild:props.asChild,elementRef:value=>{element=value instanceof HTMLElement?value:null},"data-scope":config.profile,"data-part":"root",role:config.profile==="data-grid"?"grid":config.profile==="data-tree-grid"?"treegrid":void 0}),{default:()=>slots["default"]?.(rootSlot(context))})}});const table=config.profile==="data-table";const Caption=structural("Caption","caption","caption");const Header=structural("Header","header",table?"thead":"div");const HeaderRow=defineComponent({name:`Sectile${config.prefix}HeaderRow`,inheritAttrs:false,props:{as:{...asProp,default:table?"tr":"div"},asChild:asChildProp},setup(props,{attrs,slots}){const context=usePublic("HeaderRow");return()=>h(Primitive,mergeProps(attrs,{as:props.as,asChild:props.asChild,role:table?void 0:"row","data-scope":config.profile,"data-part":"header-row"}),{default:()=>slots["default"]?.(rootSlot(context))})}});const ColumnHeader=boundPart("ColumnHeader","column-header",table?"th":"div",{column:{type:String,default:void 0},header:{type:String,default:void 0}},(connection,element,props)=>{const column=props["column"];const header=props["header"];if(column===void 0===(header===void 0)){throw new TypeError(`${config.prefix}ColumnHeader requires exactly one of column or header.`)}const reference=column===void 0?{headerNodeID:String(header)}:{columnID:String(column)};if(table&&element instanceof HTMLTableCellElement)connection.setHeaderCellAttributes?.(element,reference);else connection.setColumnHeaderAttributes?.(element,reference);return void 0});const Row=boundPart("Row","row",table?"tr":"div",{rowID:{type:String,required:true}},(connection,element,props)=>{const result=connection.registerRow(element,{rowID:String(props["rowID"]),expectedProjectionGeneration:connection.getProjection().generation});return result.ok?result.value:void 0});const AutomaticRow=defineComponent({name:`Sectile${config.prefix}AutomaticRow`,props:{row:{type:Object,required:true}},setup(props,{slots}){provide(rowKey,computed(()=>props.row));return()=>h(Row,{rowID:props.row.id,"data-row-id":props.row.id,"data-row-kind":props.row.kind,...props.row.contextOnly===true?{"data-context-only":""}:{}},{default:()=>slots["default"]?.()})}});const Body=defineComponent({name:`Sectile${config.prefix}Body`,inheritAttrs:false,props:{manual:{type:Boolean,default:false},as:{...asProp,default:table?"tbody":"div"},asChild:asChildProp},slots:Object,setup(props,{attrs,slots}){const context=usePublic("Body");return()=>h(Primitive,mergeProps(attrs,{as:props.as,asChild:props.asChild,"data-scope":config.profile,"data-part":"body",role:table?void 0:"rowgroup"}),{default:()=>{const root=rootSlot(context);if(props.manual)return slots["default"]?.(root);const rows=root["rows"];if(rows.length===0)return slots["empty"]?.(root);return rows.map((row,rowIndex)=>h(AutomaticRow,{key:row.id,row},{default:()=>slots["default"]?.(Object.freeze({...root,row,rowIndex,isGroup:row.kind==="group"}))}))}})}});const Cell=boundPart("Cell","cell",table?"td":"div",identityProps,(connection,element,props)=>{const result=connection.registerCell(element,{cell:{rowID:String(props["rowID"]),columnID:String(props["column"])},expectedProjectionGeneration:connection.getProjection().generation});return result.ok?result.value:void 0},true);const SortTrigger=boundPart("SortTrigger","sort-trigger","button",{column:{type:String,required:true},comparator:{type:String,default:"default"}},(connection,element,props)=>connection.bindSortTrigger(element,{columnID:String(props["column"]),comparator:String(props["comparator"])}));const FilterControl=boundPart("FilterControl","filter-control","input",{scope:{type:String,required:true},column:{type:String,default:void 0},id:{type:String,required:true},predicate:{type:String,required:true}},(connection,element,props)=>element instanceof HTMLInputElement||element instanceof HTMLSelectElement?connection.bindFilterControl(element,props["scope"]==="column"?{scope:"column",columnID:String(props["column"]),id:String(props["id"]),predicate:String(props["predicate"])}:{scope:"global",id:String(props["id"]),predicate:String(props["predicate"])}):void 0);const ColumnResizeHandle=boundPart("ColumnResizeHandle","column-resize-handle","button",{column:{type:String,required:true},minSize:{type:Number,default:void 0},maxSize:{type:Number,default:void 0}},(connection,element,props)=>connection.bindColumnResizeHandle(element,{columnID:String(props["column"]),...typeof props["minSize"]==="number"?{minSize:props["minSize"]}:{},...typeof props["maxSize"]==="number"?{maxSize:props["maxSize"]}:{}}));const SelectionControl=boundPart(table?"SelectionControl":"RowSelectionControl","selection-control","input",{rowID:{type:String,default:void 0},name:{type:String,required:true},value:{type:String,default:void 0},form:{type:String,default:void 0},disabled:{type:Boolean,default:false}},(connection,element,props)=>{const rowID=String(props["rowID"]);const options={rowID,name:String(props["name"]),value:props["value"]===void 0?rowID:String(props["value"]),...typeof props["form"]==="string"?{form:props["form"]}:{},disabled:props["disabled"]===true};return table?connection.bindSelectionControl?.(element,options):connection.bindRowSelectionControl?.(element,options)},true);const BulkSelectionControl=boundPart("BulkSelectionControl","bulk-selection-control","button",{target:{type:Object,required:true},disabled:{type:Boolean,default:false}},(connection,element,props)=>connection.bindBulkSelectionControl(element,{target:props["target"],disabled:props["disabled"]===true}));const Disclosure=boundPart(config.profile==="data-tree-grid"?"RowDisclosure":"Disclosure","disclosure","button",{rowID:{type:String,default:void 0},disabled:{type:Boolean,default:false}},(connection,element,props)=>config.profile==="data-tree-grid"?connection.bindRowDisclosure?.(element,{rowID:String(props["rowID"]),disabled:props["disabled"]===true}):connection.bindDisclosure?.(element,{rowID:String(props["rowID"]),disabled:props["disabled"]===true}),true);const Editor=boundPart("Editor","editor","input",{...identityProps,parseValue:{type:Function,default:void 0},commitOnChange:{type:Boolean,default:false}},(connection,element,props)=>element instanceof HTMLInputElement||element instanceof HTMLTextAreaElement||element instanceof HTMLSelectElement?connection.bindEditor(element,{cell:{rowID:String(props["rowID"]),columnID:String(props["column"])},...typeof props["parseValue"]==="function"?{parseValue:props["parseValue"]}:{},commitOnChange:props["commitOnChange"]===true}):void 0,true);return Object.freeze({Provider,Root,Caption,Header,HeaderRow,ColumnHeader,SortTrigger,FilterControl,ColumnResizeHandle,Body,Row,SelectionControl,BulkSelectionControl,Disclosure,Cell,Editor})}function rootSlot(context){const state=stateOf(context.snapshot.value);const profile=context.snapshot.value;return Object.freeze({controller:context.controller,snapshot:context.snapshot.value,acceptedViewState:state.acceptedViewState,requestState:state.requestState,query:state.query,rowSelection:state.rowSelection,columnState:state.columnState,accessState:state.accessState,expansion:state.expansion,rows:state.acceptedViewState.kind==="none"?Object.freeze([]):state.acceptedViewState.view.rows,...profile.cursor===void 0?{}:{cursor:profile.cursor},...profile.edit===void 0?{}:{editState:profile.edit}})}function partSlot(context,row){const root=rootSlot(context);return row===null?root:Object.freeze({...root,row:row.value,isGroup:row.value.kind==="group"})}export{createTabularParts};
|
|
1
|
+
import{computed,defineComponent,h,inject,mergeProps,onBeforeUnmount,onMounted,provide}from"vue";import{Primitive}from"../primitive.js";import{provideProfile,refreshVueProfileController,stateOf,useProfile}from"./tabular-profile.js";const asProp={type:[String,Object,Function],default:"div"};const asChildProp={type:Boolean,default:false};const identityProps={rowID:{type:String,default:void 0},column:{type:String,required:true}};function createTabularParts(config){const rowKey=Symbol(`Sectile${config.prefix}Row`);const usePublic=name=>useProfile(config.publicKey,`${config.prefix}${name}`);const usePrivate=name=>useProfile(config.privateKey,`${config.prefix}${name}`);const structural=(suffix,part,tag)=>defineComponent({name:`Sectile${config.prefix}${suffix}`,inheritAttrs:false,props:{as:{...asProp,default:tag},asChild:asChildProp},setup(props,{attrs,slots}){const context=usePublic(suffix);return()=>h(Primitive,mergeProps(attrs,{as:props.as,asChild:props.asChild,"data-scope":config.profile,"data-part":part,role:config.profile==="data-table"?void 0:part==="header"||part==="body"?"rowgroup":void 0}),{default:()=>slots["default"]?.(rootSlot(context))})}});const boundPart=(suffix,part,tag,props,bind,rowAware=false)=>defineComponent({name:`Sectile${config.prefix}${suffix}`,inheritAttrs:false,props:{...props,as:{...asProp,default:tag},asChild:asChildProp},setup(runtimeProps,{attrs,slots}){const context=usePrivate(suffix);const inheritedRow=rowAware?inject(rowKey,null):null;const values=()=>{const resolved=runtimeProps;if(!rowAware||resolved["rowID"]!==void 0)return resolved;const row=inheritedRow?.value;if(row===void 0)throw new TypeError(`${config.prefix}${suffix} requires rowID outside automatic ${config.prefix}Body.`);return Object.freeze({...resolved,rowID:row.id})};let release;onBeforeUnmount(()=>release?.());const elementRef=value=>{release?.();release=void 0;if(!(value instanceof HTMLElement)||context.connection.value===null)return;release=bind(context.connection.value,value,values())};return()=>h(Primitive,mergeProps(attrs,{as:runtimeProps.as,asChild:runtimeProps.asChild,elementRef,"data-scope":config.profile,"data-part":part,role:config.profile==="data-table"?void 0:part==="row"?"row":part==="column-header"?"columnheader":part==="cell"?"gridcell":void 0}),{default:()=>slots["default"]?.(partSlot(context,inheritedRow))})}});const Provider=defineComponent({name:`Sectile${config.prefix}Provider`,props:{controller:{type:Object,required:true}},setup(props,{slots}){const context=provideProfile(config.publicKey,config.privateKey,props.controller);return()=>slots["default"]?.(rootSlot(context))}});const rootTag=config.profile==="data-table"?"table":"div";const Root=defineComponent({name:`Sectile${config.prefix}Root`,inheritAttrs:false,props:{onCommand:{type:Function,default:void 0},onError:{type:Function,default:void 0},as:{...asProp,default:rootTag},asChild:asChildProp},setup(props,{attrs,expose,slots}){const context=usePrivate("Root");let element=null;const connect=()=>{config.connectionChanged?.(context.controller,null);context.connection.value?.disconnect();context.connection.value=null;if(element===null)return;try{context.connection.value=config.connect(element,context.controller,{...props.onCommand===void 0?{}:{onCommand:props.onCommand},onSnapshotChange:()=>refreshVueProfileController(context.controller)});config.connectionChanged?.(context.controller,context.connection.value)}catch(error){props.onError?.(error);if(props.onError===void 0)throw error}};onMounted(connect);onBeforeUnmount(()=>{config.connectionChanged?.(context.controller,null);context.connection.value?.disconnect();context.connection.value=null});expose({controller:context.controller,refresh:()=>context.connection.value?.refresh()});return()=>h(Primitive,mergeProps(attrs,{as:props.as,asChild:props.asChild,elementRef:value=>{element=value instanceof HTMLElement?value:null},"data-scope":config.profile,"data-part":"root",role:config.profile==="data-grid"?"grid":config.profile==="data-tree-grid"?"treegrid":void 0}),{default:()=>slots["default"]?.(rootSlot(context))})}});const table=config.profile==="data-table";const Caption=structural("Caption","caption","caption");const Header=structural("Header","header",table?"thead":"div");const HeaderRow=defineComponent({name:`Sectile${config.prefix}HeaderRow`,inheritAttrs:false,props:{as:{...asProp,default:table?"tr":"div"},asChild:asChildProp},setup(props,{attrs,slots}){const context=usePublic("HeaderRow");return()=>h(Primitive,mergeProps(attrs,{as:props.as,asChild:props.asChild,role:table?void 0:"row","data-scope":config.profile,"data-part":"header-row"}),{default:()=>slots["default"]?.(rootSlot(context))})}});const ColumnHeader=boundPart("ColumnHeader","column-header",table?"th":"div",{column:{type:String,default:void 0},header:{type:String,default:void 0}},(connection,element,props)=>{const column=props["column"];const header=props["header"];if(column===void 0===(header===void 0)){throw new TypeError(`${config.prefix}ColumnHeader requires exactly one of column or header.`)}const reference=column===void 0?{headerNodeID:String(header)}:{columnID:String(column)};if(table&&element instanceof HTMLTableCellElement)connection.setHeaderCellAttributes?.(element,reference);else connection.setColumnHeaderAttributes?.(element,reference);return void 0});const Row=boundPart("Row","row",table?"tr":"div",{rowID:{type:String,required:true}},(connection,element,props)=>{const result=connection.registerRow(element,{rowID:String(props["rowID"]),expectedProjectionGeneration:connection.getProjection().generation});return result.ok?result.value:void 0});const AutomaticRow=defineComponent({name:`Sectile${config.prefix}AutomaticRow`,props:{row:{type:Object,required:true}},setup(props,{slots}){provide(rowKey,computed(()=>props.row));return()=>h(Row,{rowID:props.row.id,"data-row-id":props.row.id,"data-row-kind":props.row.kind,...props.row.kind==="group"&&props.row.contextOnly===true?{"data-context-only":""}:{}},{default:()=>slots["default"]?.()})}});const Body=defineComponent({name:`Sectile${config.prefix}Body`,inheritAttrs:false,props:{manual:{type:Boolean,default:false},as:{...asProp,default:table?"tbody":"div"},asChild:asChildProp},slots:Object,setup(props,{attrs,slots}){const context=usePublic("Body");return()=>h(Primitive,mergeProps(attrs,{as:props.as,asChild:props.asChild,"data-scope":config.profile,"data-part":"body",role:table?void 0:"rowgroup"}),{default:()=>{const root=rootSlot(context);if(props.manual)return slots["default"]?.(root);const rows=root["rows"];if(rows.length===0)return slots["empty"]?.(root);return rows.map((row,rowIndex)=>h(AutomaticRow,{key:row.id,row},{default:()=>slots["default"]?.(Object.freeze({...root,row,rowIndex,isGroup:row.kind==="group"}))}))}})}});const Cell=boundPart("Cell","cell",table?"td":"div",identityProps,(connection,element,props)=>{const result=connection.registerCell(element,{cell:{rowID:String(props["rowID"]),columnID:String(props["column"])},expectedProjectionGeneration:connection.getProjection().generation});return result.ok?result.value:void 0},true);const SortTrigger=boundPart("SortTrigger","sort-trigger","button",{column:{type:String,required:true},comparator:{type:String,default:"default"}},(connection,element,props)=>connection.bindSortTrigger(element,{columnID:String(props["column"]),comparator:String(props["comparator"])}));const FilterControl=boundPart("FilterControl","filter-control","input",{scope:{type:String,required:true},column:{type:String,default:void 0},id:{type:String,required:true},predicate:{type:String,required:true}},(connection,element,props)=>element instanceof HTMLInputElement||element instanceof HTMLSelectElement?connection.bindFilterControl(element,props["scope"]==="column"?{scope:"column",columnID:String(props["column"]),id:String(props["id"]),predicate:String(props["predicate"])}:{scope:"global",id:String(props["id"]),predicate:String(props["predicate"])}):void 0);const ColumnResizeHandle=boundPart("ColumnResizeHandle","column-resize-handle","button",{column:{type:String,required:true},minSize:{type:Number,default:void 0},maxSize:{type:Number,default:void 0}},(connection,element,props)=>connection.bindColumnResizeHandle(element,{columnID:String(props["column"]),...typeof props["minSize"]==="number"?{minSize:props["minSize"]}:{},...typeof props["maxSize"]==="number"?{maxSize:props["maxSize"]}:{}}));const SelectionControl=boundPart(table?"SelectionControl":"RowSelectionControl","selection-control","input",{rowID:{type:String,default:void 0},name:{type:String,required:true},value:{type:String,default:void 0},form:{type:String,default:void 0},disabled:{type:Boolean,default:false}},(connection,element,props)=>{const rowID=String(props["rowID"]);const options={rowID,name:String(props["name"]),value:props["value"]===void 0?rowID:String(props["value"]),...typeof props["form"]==="string"?{form:props["form"]}:{},disabled:props["disabled"]===true};return table?connection.bindSelectionControl?.(element,options):connection.bindRowSelectionControl?.(element,options)},true);const BulkSelectionControl=boundPart("BulkSelectionControl","bulk-selection-control","button",{target:{type:Object,required:true},disabled:{type:Boolean,default:false}},(connection,element,props)=>connection.bindBulkSelectionControl(element,{target:props["target"],disabled:props["disabled"]===true}));const Disclosure=boundPart(config.profile==="data-tree-grid"?"RowDisclosure":"Disclosure","disclosure","button",{rowID:{type:String,default:void 0},disabled:{type:Boolean,default:false}},(connection,element,props)=>config.profile==="data-tree-grid"?connection.bindRowDisclosure?.(element,{rowID:String(props["rowID"]),disabled:props["disabled"]===true}):connection.bindDisclosure?.(element,{rowID:String(props["rowID"]),disabled:props["disabled"]===true}),true);const Editor=boundPart("Editor","editor","input",{...identityProps,parseValue:{type:Function,default:void 0},commitOnChange:{type:Boolean,default:false}},(connection,element,props)=>element instanceof HTMLInputElement||element instanceof HTMLTextAreaElement||element instanceof HTMLSelectElement?connection.bindEditor(element,{cell:{rowID:String(props["rowID"]),columnID:String(props["column"])},...typeof props["parseValue"]==="function"?{parseValue:props["parseValue"]}:{},commitOnChange:props["commitOnChange"]===true}):void 0,true);return Object.freeze({Provider,Root,Caption,Header,HeaderRow,ColumnHeader,SortTrigger,FilterControl,ColumnResizeHandle,Body,Row,SelectionControl,BulkSelectionControl,Disclosure,Cell,Editor})}function rootSlot(context){const state=stateOf(context.snapshot.value);const profile=context.snapshot.value;return Object.freeze({controller:context.controller,snapshot:context.snapshot.value,acceptedViewState:state.acceptedViewState,requestState:state.requestState,query:state.query,rowSelection:state.rowSelection,columnState:state.columnState,accessState:state.accessState,expansion:state.expansion,rows:state.acceptedViewState.kind==="none"?Object.freeze([]):state.acceptedViewState.view.rows,...profile.cursor===void 0?{}:{cursor:profile.cursor},...profile.edit===void 0?{}:{editState:profile.edit}})}function partSlot(context,row){const root=rootSlot(context);return row===null?root:Object.freeze({...root,row:row.value,isGroup:row.value.kind==="group"})}export{createTabularParts};
|
|
2
2
|
//# sourceMappingURL=tabular-parts.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../src/internal/tabular-parts.ts"],"mappings":"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
|
|
1
|
+
{"version":3,"sources":["../../src/internal/tabular-parts.ts"],"mappings":"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","names":[],"file":"tabular-parts.js"}
|
package/dist/listbox.d.ts
CHANGED
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
import { type PropType, type SlotsType, type VNodeChild } from 'vue';
|
|
2
2
|
import { type PrimitiveAs } from './primitive.js';
|
|
3
|
+
import { type ConditionalPresenceProps } from './internal/conditional-presence.js';
|
|
3
4
|
export type ListboxSelectionMode = 'single' | 'multiple';
|
|
4
5
|
export type ListboxValue = string | readonly string[];
|
|
5
6
|
export interface ListboxRootProps {
|
|
@@ -41,6 +42,8 @@ export interface ListboxPartProps {
|
|
|
41
42
|
readonly as?: PrimitiveAs;
|
|
42
43
|
readonly asChild?: boolean;
|
|
43
44
|
}
|
|
45
|
+
export interface ListboxItemIndicatorProps extends ListboxPartProps, ConditionalPresenceProps {
|
|
46
|
+
}
|
|
44
47
|
export declare const ListboxRoot: import("vue").DefineComponent<import("vue").ExtractPropTypes<{
|
|
45
48
|
items: {
|
|
46
49
|
type: PropType<readonly string[]>;
|
|
@@ -249,6 +252,10 @@ export declare const ListboxItemText: import("vue").DefineComponent<import("vue"
|
|
|
249
252
|
default: (props: ListboxItemSlotProps) => VNodeChild;
|
|
250
253
|
}>, {}, {}, string, import("vue").ComponentProvideOptions, true, {}, any>;
|
|
251
254
|
export declare const ListboxItemIndicator: import("vue").DefineComponent<import("vue").ExtractPropTypes<{
|
|
255
|
+
forcePresent: {
|
|
256
|
+
readonly type: BooleanConstructor;
|
|
257
|
+
readonly default: false;
|
|
258
|
+
};
|
|
252
259
|
as: {
|
|
253
260
|
type: PropType<PrimitiveAs>;
|
|
254
261
|
default: string;
|
|
@@ -258,6 +265,10 @@ export declare const ListboxItemIndicator: import("vue").DefineComponent<import(
|
|
|
258
265
|
default: boolean;
|
|
259
266
|
};
|
|
260
267
|
}>, () => VNodeChild, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {}, string, import("vue").PublicProps, Readonly<import("vue").ExtractPropTypes<{
|
|
268
|
+
forcePresent: {
|
|
269
|
+
readonly type: BooleanConstructor;
|
|
270
|
+
readonly default: false;
|
|
271
|
+
};
|
|
261
272
|
as: {
|
|
262
273
|
type: PropType<PrimitiveAs>;
|
|
263
274
|
default: string;
|
|
@@ -267,6 +278,7 @@ export declare const ListboxItemIndicator: import("vue").DefineComponent<import(
|
|
|
267
278
|
default: boolean;
|
|
268
279
|
};
|
|
269
280
|
}>> & Readonly<{}>, {
|
|
281
|
+
forcePresent: boolean;
|
|
270
282
|
as: PrimitiveAs;
|
|
271
283
|
asChild: boolean;
|
|
272
284
|
}, SlotsType<{
|
package/dist/listbox.js
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import{computed,defineComponent,h,inject,mergeProps,nextTick,provide,shallowRef,watch}from"vue";import{DEFAULT_LISTBOX_SELECTION_MODE,createListboxControllerFromItems,getListboxItemAttributes,getListboxRootAttributes}from"@sectile/dom/listbox";import{stableIDElementToken}from"@sectile/dom/identity";import{Primitive}from"./primitive.js";import{visuallyHiddenInputStyle}from"./internal/native-input.js";import{hiddenSelectSubmissionCapabilities,useCompositeFormControl}from"./internal/form-control.js";import{useHostDirection,useHostId}from"./host-provider.js";import{reconcileCollectionState,sameIDs}from"./internal/collection.js";import{useControlledStateInvariant}from"./internal/controlled-state.js";const listboxRootContextKey=Symbol("SectileListboxRoot");const listboxItemContextKey=Symbol("SectileListboxItem");const listboxPartProps={as:{type:[String,Object,Function],default:"span"},asChild:{type:Boolean,default:false}};const ListboxRoot=defineComponent({name:"SectileListboxRoot",inheritAttrs:false,props:{items:{type:Array,required:true},selectionMode:{type:String,default:DEFAULT_LISTBOX_SELECTION_MODE},modelValue:{type:[String,Array],default:void 0},defaultValue:{type:[String,Array],default:void 0},disabledItems:{type:Array,default:()=>[]},disabled:{type:Boolean,default:false},readonly:{type:Boolean,default:false},orientation:{type:String,default:"vertical"},name:{type:String,default:void 0},form:{type:String,default:void 0},required:{type:Boolean,default:false},textValue:{type:Function,default:void 0},as:{type:[String,Object,Function],default:"div"},asChild:{type:Boolean,default:false}},emits:{"update:modelValue":_value=>true,highlight:_value=>true,activate:_value=>true},slots:Object,setup(props,{attrs,emit,slots}){const direction=useHostDirection();const instanceID=useHostId();const itemID=id=>`sectile-listbox-${instanceID}-option-${stableIDElementToken(id)}`;const rootElement=shallowRef(null);const submissionElement=shallowRef(null);let controllerProps=snapshotListboxControllerProps({...props,direction:direction.value});const participation=useCompositeFormControl({root:rootElement,submissions:[{element:submissionElement,capabilities:hiddenSelectSubmissionCapabilities}],reset:()=>{queueMicrotask(()=>{const next=controlled?toIDs(props.modelValue,props.selectionMode):initialValue;controller.value=createController(controlled,next,next[0]??firstEnabledItem(controllerProps)??null,controllerProps,emit);snapshot.value=controller.value.getSnapshot()})}});const controlled=useControlledStateInvariant("ListboxRoot","modelValue",()=>props.modelValue);const initialValue=toIDs(controlled?props.modelValue:props.defaultValue,props.selectionMode);const controller=shallowRef(createController(controlled,initialValue,initialValue[0]??firstEnabledItem(controllerProps)??null,controllerProps,emit));const snapshot=shallowRef(controller.value.getSnapshot());const rebuild=()=>{const nextControllerProps=snapshotListboxControllerProps({...props,direction:direction.value});if(sameListboxControllerProps(controllerProps,nextControllerProps)){return}const requested=controlled?toIDs(props.modelValue,props.selectionMode):snapshot.value.state.selection.selected;const reconciled=reconcileCollectionState(nextControllerProps.items,requested,snapshot.value.state.cursor.current,nextControllerProps.disabledItems,nextControllerProps.selectionMode);controller.value=createController(controlled,reconciled.selected,reconciled.current,nextControllerProps,emit);controllerProps=nextControllerProps;snapshot.value=controller.value.getSnapshot();if(controlled&&!sameIDs(requested,reconciled.selected)){emit("update:modelValue",fromIDs(reconciled.selected,props.selectionMode))}};watch(()=>props.modelValue,value=>{if(!controlled||value===void 0)return;const result=controller.value.syncControlledValues({value:toIDs(value,props.selectionMode)});if(!result.ok)throw new TypeError(result.error.message);snapshot.value=result.value});watch([()=>props.items,()=>props.selectionMode,()=>props.disabledItems,()=>props.disabled,()=>props.readonly,()=>props.orientation,()=>props.textValue,direction],rebuild);const selectedIDs=computed(()=>snapshot.value.state.selection.selected);const selectedIDSet=computed(()=>new Set(selectedIDs.value));const highlightedValue=computed(()=>snapshot.value.state.cursor.current);const disabled=computed(()=>props.disabled);const readonly=computed(()=>props.readonly);const disabledItems=computed(()=>new Set(props.disabledItems));const slotProps=computed(()=>Object.freeze({value:fromIDs(selectedIDs.value,props.selectionMode),highlightedValue:highlightedValue.value,disabled:disabled.value,readonly:readonly.value}));const applyResult=(result,root)=>{if(!result.ok)return false;snapshot.value=result.snapshot;applyEffects(result.commands,emit);if(root!==void 0)void nextTick(()=>root.focus());return true};const select=(id,target)=>{const event=props.selectionMode==="multiple"?{type:"toggle",id}:{type:"activate",id};applyResult(controller.value.handleEvent(event),target.closest('[role="listbox"]'))};const handleKeydown=event=>{const result=controller.value.handleKeyboardInput(event);if(!applyResult(result,event.currentTarget))return;event.preventDefault()};provide(listboxRootContextKey,{selectedIDs,selectedIDSet,highlightedValue,disabled,readonly,disabledItems,itemID,select});const rootAttributes=computed(()=>getListboxRootAttributes({selectionMode:props.selectionMode,orientation:props.orientation,direction:direction.value,disabled:props.disabled,readOnly:props.readonly,...highlightedValue.value===null?{}:{activeDescendantID:itemID(highlightedValue.value)}}));return()=>{const root=h(Primitive,mergeProps(attrs,rootAttributes.value,{as:props.as,asChild:props.asChild,onKeydown:handleKeydown,elementRef:element=>{rootElement.value=element}},participation.controlProps.value),{default:()=>slots["default"]?.(slotProps.value)});if(!participation.participating&&props.name===void 0&&props.form===void 0&&!props.required)return root;return[root,h("select",{ref:submissionElement,name:props.name,form:props.form,required:props.required,multiple:props.selectionMode==="multiple",tabindex:-1,"aria-hidden":"true",style:visuallyHiddenInputStyle},props.items.map(id=>h("option",{value:id,selected:selectedIDSet.value.has(id)},id)))]}}});const ListboxItem=defineComponent({name:"SectileListboxItem",inheritAttrs:false,props:{value:{type:String,required:true},disabled:{type:Boolean,default:false},as:{type:[String,Object,Function],default:"div"},asChild:{type:Boolean,default:false}},slots:Object,setup(props,{attrs,slots}){const root=useListboxRootContext("ListboxItem");const slotProps=computed(()=>Object.freeze({value:props.value,selected:root.selectedIDSet.value.has(props.value),highlighted:root.highlightedValue.value===props.value,disabled:root.disabled.value||props.disabled||root.disabledItems.value.has(props.value)}));provide(listboxItemContextKey,{slotProps});const attributes=computed(()=>getListboxItemAttributes({cursor:{current:root.highlightedValue.value},selection:{has:id=>root.selectedIDSet.value.has(id)}},{id:props.value,disabled:props.disabled},{disabled:slotProps.value.disabled,elementID:root.itemID(props.value)}));const handleClick=event=>{if(!event.defaultPrevented&&!slotProps.value.disabled){root.select(props.value,event.currentTarget)}};return()=>h(Primitive,mergeProps(attrs,attributes.value,{as:props.as,asChild:props.asChild,onClick:handleClick}),{default:()=>slots["default"]?.(slotProps.value)})}});const ListboxItemText=defineComponent({name:"SectileListboxItemText",inheritAttrs:false,props:listboxPartProps,slots:Object,setup(props,{attrs,slots}){const item=useListboxItemContext("ListboxItemText");return()=>h(Primitive,mergeProps(attrs,{as:props.as,asChild:props.asChild,"data-scope":"listbox","data-part":"item-text","data-state":item.slotProps.value.selected?"checked":"unchecked"}),{default:()=>slots["default"]?.(item.slotProps.value)})}});const ListboxItemIndicator=defineComponent({name:"SectileListboxItemIndicator",inheritAttrs:false,props:listboxPartProps,slots:Object,setup(props,{attrs,slots}){const item=useListboxItemContext("ListboxItemIndicator");return()=>h(Primitive,mergeProps(attrs,{as:props.as,asChild:props.asChild,hidden:!item.slotProps.value.selected,"aria-hidden":"true","data-scope":"listbox","data-part":"item-indicator","data-state":item.slotProps.value.selected?"checked":"unchecked"}),{default:()=>slots["default"]?.(item.slotProps.value)})}});function useListboxRootContext(part){const context=inject(listboxRootContextKey);if(context===void 0)throw new TypeError(`${part} must be used inside ListboxRoot.`);return context}function snapshotListboxControllerProps(props){return Object.freeze({...props,items:Object.freeze([...props.items]),disabledItems:Object.freeze([...props.disabledItems])})}function sameListboxControllerProps(left,right){return sameIDs(left.items,right.items)&&sameIDs(left.disabledItems,right.disabledItems)&&left.selectionMode===right.selectionMode&&left.disabled===right.disabled&&left.readonly===right.readonly&&left.orientation===right.orientation&&left.direction===right.direction&&left.textValue===right.textValue}function firstEnabledItem(props){if(props.disabledItems.length===0)return props.items[0];const disabled=new Set(props.disabledItems);return props.items.find(id=>!disabled.has(id))}function useListboxItemContext(part){const context=inject(listboxItemContextKey);if(context===void 0)throw new TypeError(`${part} must be used inside ListboxItem.`);return context}function createController(controlled,value,highlightedValue,props,emit){const result=createListboxControllerFromItems({items:props.items,selectionMode:props.selectionMode,disabledItems:props.disabledItems,disabled:props.disabled,readOnly:props.readonly,orientation:props.orientation,direction:props.direction,typeahead:{textValue:props.textValue??(id=>id)},...controlled?{value}:{defaultValue:value},defaultHighlightedValue:highlightedValue,onValueChange:change=>emit("update:modelValue",fromIDs(change.value,props.selectionMode)),onHighlightedValueChange:change=>emit("highlight",change.value)});if(!result.ok)throw new TypeError(result.error.message);return result.value}function applyEffects(effects,emit){for(const effect of effects){if(effect.type==="dispatch-activation")emit("activate",effect.id)}}function toIDs(value,mode){if(value===void 0||value==="")return[];if(Array.isArray(value))return mode==="single"?value.slice(0,1):value;return[value]}function fromIDs(value,mode){return mode==="single"?value[0]??"":value}export{ListboxItem,ListboxItemIndicator,ListboxItemText,ListboxRoot};
|
|
1
|
+
import{computed,defineComponent,h,inject,mergeProps,nextTick,provide,shallowRef,watch}from"vue";import{DEFAULT_LISTBOX_SELECTION_MODE,createListboxControllerFromItems,getListboxItemAttributes,getListboxRootAttributes}from"@sectile/dom/listbox";import{stableIDElementToken}from"@sectile/dom/identity";import{Primitive}from"./primitive.js";import{visuallyHiddenInputStyle}from"./internal/native-input.js";import{hiddenSelectSubmissionCapabilities,useCompositeFormControl}from"./internal/form-control.js";import{useHostDirection,useHostId}from"./host-provider.js";import{reconcileCollectionState,sameIDs}from"./internal/collection.js";import{useControlledStateInvariant}from"./internal/controlled-state.js";import{conditionalPresenceProps,useConditionalPresenceRegistry}from"./internal/conditional-presence.js";const listboxRootContextKey=Symbol("SectileListboxRoot");const listboxItemContextKey=Symbol("SectileListboxItem");const listboxPartProps={as:{type:[String,Object,Function],default:"span"},asChild:{type:Boolean,default:false}};const ListboxRoot=defineComponent({name:"SectileListboxRoot",inheritAttrs:false,props:{items:{type:Array,required:true},selectionMode:{type:String,default:DEFAULT_LISTBOX_SELECTION_MODE},modelValue:{type:[String,Array],default:void 0},defaultValue:{type:[String,Array],default:void 0},disabledItems:{type:Array,default:()=>[]},disabled:{type:Boolean,default:false},readonly:{type:Boolean,default:false},orientation:{type:String,default:"vertical"},name:{type:String,default:void 0},form:{type:String,default:void 0},required:{type:Boolean,default:false},textValue:{type:Function,default:void 0},as:{type:[String,Object,Function],default:"div"},asChild:{type:Boolean,default:false}},emits:{"update:modelValue":_value=>true,highlight:_value=>true,activate:_value=>true},slots:Object,setup(props,{attrs,emit,slots}){const direction=useHostDirection();const instanceID=useHostId();const itemID=id=>`sectile-listbox-${instanceID}-option-${stableIDElementToken(id)}`;const rootElement=shallowRef(null);const submissionElement=shallowRef(null);let controllerProps=snapshotListboxControllerProps({...props,direction:direction.value});const participation=useCompositeFormControl({root:rootElement,submissions:[{element:submissionElement,capabilities:hiddenSelectSubmissionCapabilities}],reset:()=>{queueMicrotask(()=>{const next=controlled?toIDs(props.modelValue,props.selectionMode):initialValue;controller.value=createController(controlled,next,next[0]??firstEnabledItem(controllerProps)??null,controllerProps,emit);snapshot.value=controller.value.getSnapshot()})}});const controlled=useControlledStateInvariant("ListboxRoot","modelValue",()=>props.modelValue);const initialValue=toIDs(controlled?props.modelValue:props.defaultValue,props.selectionMode);const controller=shallowRef(createController(controlled,initialValue,initialValue[0]??firstEnabledItem(controllerProps)??null,controllerProps,emit));const snapshot=shallowRef(controller.value.getSnapshot());const rebuild=()=>{const nextControllerProps=snapshotListboxControllerProps({...props,direction:direction.value});if(sameListboxControllerProps(controllerProps,nextControllerProps)){return}const requested=controlled?toIDs(props.modelValue,props.selectionMode):snapshot.value.state.selection.selected;const reconciled=reconcileCollectionState(nextControllerProps.items,requested,snapshot.value.state.cursor.current,nextControllerProps.disabledItems,nextControllerProps.selectionMode);controller.value=createController(controlled,reconciled.selected,reconciled.current,nextControllerProps,emit);controllerProps=nextControllerProps;snapshot.value=controller.value.getSnapshot();if(controlled&&!sameIDs(requested,reconciled.selected)){emit("update:modelValue",fromIDs(reconciled.selected,props.selectionMode))}};watch(()=>props.modelValue,value=>{if(!controlled||value===void 0)return;const result=controller.value.syncControlledValues({value:toIDs(value,props.selectionMode)});if(!result.ok)throw new TypeError(result.error.message);snapshot.value=result.value});watch([()=>props.items,()=>props.selectionMode,()=>props.disabledItems,()=>props.disabled,()=>props.readonly,()=>props.orientation,()=>props.textValue,direction],rebuild);const selectedIDs=computed(()=>snapshot.value.state.selection.selected);const selectedIDSet=computed(()=>new Set(selectedIDs.value));const indicatorPresence=useConditionalPresenceRegistry(selectedIDSet);const highlightedValue=computed(()=>snapshot.value.state.cursor.current);const disabled=computed(()=>props.disabled);const readonly=computed(()=>props.readonly);const disabledItems=computed(()=>new Set(props.disabledItems));const slotProps=computed(()=>Object.freeze({value:fromIDs(selectedIDs.value,props.selectionMode),highlightedValue:highlightedValue.value,disabled:disabled.value,readonly:readonly.value}));const applyResult=(result,root)=>{if(!result.ok)return false;snapshot.value=result.snapshot;applyEffects(result.commands,emit);if(root!==void 0)void nextTick(()=>root.focus());return true};const select=(id,target)=>{const event=props.selectionMode==="multiple"?{type:"toggle",id}:{type:"activate",id};applyResult(controller.value.handleEvent(event),target.closest('[role="listbox"]'))};const handleKeydown=event=>{const result=controller.value.handleKeyboardInput(event);if(!applyResult(result,event.currentTarget))return;event.preventDefault()};provide(listboxRootContextKey,{selectedIDs,selectedIDSet,highlightedValue,disabled,readonly,disabledItems,indicatorPresence,itemID,select});const rootAttributes=computed(()=>getListboxRootAttributes({selectionMode:props.selectionMode,orientation:props.orientation,direction:direction.value,disabled:props.disabled,readOnly:props.readonly,...highlightedValue.value===null?{}:{activeDescendantID:itemID(highlightedValue.value)}}));return()=>{const root=h(Primitive,mergeProps(attrs,rootAttributes.value,{as:props.as,asChild:props.asChild,onKeydown:handleKeydown,elementRef:element=>{rootElement.value=element}},participation.controlProps.value),{default:()=>slots["default"]?.(slotProps.value)});if(!participation.participating&&props.name===void 0&&props.form===void 0&&!props.required)return root;return[root,h("select",{ref:submissionElement,name:props.name,form:props.form,required:props.required,multiple:props.selectionMode==="multiple",tabindex:-1,"aria-hidden":"true",style:visuallyHiddenInputStyle},props.items.map(id=>h("option",{value:id,selected:selectedIDSet.value.has(id)},id)))]}}});const ListboxItem=defineComponent({name:"SectileListboxItem",inheritAttrs:false,props:{value:{type:String,required:true},disabled:{type:Boolean,default:false},as:{type:[String,Object,Function],default:"div"},asChild:{type:Boolean,default:false}},slots:Object,setup(props,{attrs,slots}){const root=useListboxRootContext("ListboxItem");const slotProps=computed(()=>Object.freeze({value:props.value,selected:root.selectedIDSet.value.has(props.value),highlighted:root.highlightedValue.value===props.value,disabled:root.disabled.value||props.disabled||root.disabledItems.value.has(props.value)}));provide(listboxItemContextKey,{slotProps});const attributes=computed(()=>getListboxItemAttributes({cursor:{current:root.highlightedValue.value},selection:{has:id=>root.selectedIDSet.value.has(id)}},{id:props.value,disabled:props.disabled},{disabled:slotProps.value.disabled,elementID:root.itemID(props.value)}));const handleClick=event=>{if(!event.defaultPrevented&&!slotProps.value.disabled){root.select(props.value,event.currentTarget)}};return()=>h(Primitive,mergeProps(attrs,attributes.value,{as:props.as,asChild:props.asChild,onClick:handleClick}),{default:()=>slots["default"]?.(slotProps.value)})}});const ListboxItemText=defineComponent({name:"SectileListboxItemText",inheritAttrs:false,props:listboxPartProps,slots:Object,setup(props,{attrs,slots}){const item=useListboxItemContext("ListboxItemText");return()=>h(Primitive,mergeProps(attrs,{as:props.as,asChild:props.asChild,"data-scope":"listbox","data-part":"item-text","data-state":item.slotProps.value.selected?"checked":"unchecked"}),{default:()=>slots["default"]?.(item.slotProps.value)})}});const ListboxItemIndicator=defineComponent({name:"SectileListboxItemIndicator",inheritAttrs:false,props:{...listboxPartProps,...conditionalPresenceProps},slots:Object,setup(props,{attrs,slots}){const root=useListboxRootContext("ListboxItemIndicator");const item=useListboxItemContext("ListboxItemIndicator");return()=>{const state=item.slotProps.value;return h(Primitive,mergeProps(attrs,{as:props.as,asChild:props.asChild,elementRef:element=>root.indicatorPresence.register(state.value,element),hidden:!root.indicatorPresence.isPresent(state.value,state.selected,props.forcePresent),"aria-hidden":"true","data-scope":"listbox","data-part":"item-indicator","data-state":state.selected?"checked":"unchecked"}),{default:()=>slots["default"]?.(state)})}}});function useListboxRootContext(part){const context=inject(listboxRootContextKey);if(context===void 0)throw new TypeError(`${part} must be used inside ListboxRoot.`);return context}function snapshotListboxControllerProps(props){return Object.freeze({...props,items:Object.freeze([...props.items]),disabledItems:Object.freeze([...props.disabledItems])})}function sameListboxControllerProps(left,right){return sameIDs(left.items,right.items)&&sameIDs(left.disabledItems,right.disabledItems)&&left.selectionMode===right.selectionMode&&left.disabled===right.disabled&&left.readonly===right.readonly&&left.orientation===right.orientation&&left.direction===right.direction&&left.textValue===right.textValue}function firstEnabledItem(props){if(props.disabledItems.length===0)return props.items[0];const disabled=new Set(props.disabledItems);return props.items.find(id=>!disabled.has(id))}function useListboxItemContext(part){const context=inject(listboxItemContextKey);if(context===void 0)throw new TypeError(`${part} must be used inside ListboxItem.`);return context}function createController(controlled,value,highlightedValue,props,emit){const result=createListboxControllerFromItems({items:props.items,selectionMode:props.selectionMode,disabledItems:props.disabledItems,disabled:props.disabled,readOnly:props.readonly,orientation:props.orientation,direction:props.direction,typeahead:{textValue:props.textValue??(id=>id)},...controlled?{value}:{defaultValue:value},defaultHighlightedValue:highlightedValue,onValueChange:change=>emit("update:modelValue",fromIDs(change.value,props.selectionMode)),onHighlightedValueChange:change=>emit("highlight",change.value)});if(!result.ok)throw new TypeError(result.error.message);return result.value}function applyEffects(effects,emit){for(const effect of effects){if(effect.type==="dispatch-activation")emit("activate",effect.id)}}function toIDs(value,mode){if(value===void 0||value==="")return[];if(Array.isArray(value))return mode==="single"?value.slice(0,1):value;return[value]}function fromIDs(value,mode){return mode==="single"?value[0]??"":value}export{ListboxItem,ListboxItemIndicator,ListboxItemText,ListboxRoot};
|
|
2
2
|
//# sourceMappingURL=listbox.js.map
|
package/dist/listbox.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/listbox.ts"],"mappings":"AAAA,OACE,SACA,gBACA,EACA,OACA,WACA,SACA,QACA,WACA,UAKK,MACP,OACE,+BACA,iCACA,yBACA,6BAGK,uBACP,OAAS,yBAA4B,wBACrC,OAAS,cAAmC,iBAC5C,OAAS,6BAAgC,6BACzC,OAAS,mCAAoC,4BAA+B,6BAC5E,OAAS,iBAAkB,cAAqC,qBAChE,OAAS,yBAA0B,YAAe,2BAClD,OAAS,gCAAmC,
|
|
1
|
+
{"version":3,"sources":["../src/listbox.ts"],"mappings":"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","names":[],"file":"listbox.js"}
|
|
@@ -1,9 +1,15 @@
|
|
|
1
1
|
import { type PropType, type SlotsType, type VNodeChild } from 'vue';
|
|
2
2
|
import { MenuItem, MenuSubContent, NavigationMenuRoot } from './menu.js';
|
|
3
3
|
import { type PrimitiveAs } from './primitive.js';
|
|
4
|
+
import { type ConditionalPresenceProps } from './internal/conditional-presence.js';
|
|
4
5
|
export { NavigationMenuRoot };
|
|
5
6
|
export { MenuItem as NavigationMenuLink, MenuItem as NavigationMenuTrigger, MenuSubContent as NavigationMenuContent };
|
|
6
7
|
export type { MenuItemProps as NavigationMenuItemProps, MenuItemSlotProps as NavigationMenuItemSlotProps, MenuRootProps as NavigationMenuRootProps, MenuRootSlotProps as NavigationMenuRootSlotProps, MenuSubContentProps as NavigationMenuContentProps, } from './menu.js';
|
|
8
|
+
export interface NavigationMenuIndicatorProps extends ConditionalPresenceProps {
|
|
9
|
+
readonly open?: boolean;
|
|
10
|
+
readonly as?: PrimitiveAs;
|
|
11
|
+
readonly asChild?: boolean;
|
|
12
|
+
}
|
|
7
13
|
export declare const NavigationMenuList: import("vue").DefineComponent<import("vue").ExtractPropTypes<{
|
|
8
14
|
asChild: {
|
|
9
15
|
type: BooleanConstructor;
|
|
@@ -77,6 +83,10 @@ export declare const NavigationMenuViewport: import("vue").DefineComponent<impor
|
|
|
77
83
|
default: () => VNodeChild;
|
|
78
84
|
}>, {}, {}, string, import("vue").ComponentProvideOptions, true, {}, any>;
|
|
79
85
|
export declare const NavigationMenuIndicator: import("vue").DefineComponent<import("vue").ExtractPropTypes<{
|
|
86
|
+
forcePresent: {
|
|
87
|
+
readonly type: BooleanConstructor;
|
|
88
|
+
readonly default: false;
|
|
89
|
+
};
|
|
80
90
|
as: {
|
|
81
91
|
type: PropType<PrimitiveAs>;
|
|
82
92
|
default: string;
|
|
@@ -90,6 +100,10 @@ export declare const NavigationMenuIndicator: import("vue").DefineComponent<impo
|
|
|
90
100
|
default: boolean;
|
|
91
101
|
};
|
|
92
102
|
}>, () => VNodeChild, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {}, string, import("vue").PublicProps, Readonly<import("vue").ExtractPropTypes<{
|
|
103
|
+
forcePresent: {
|
|
104
|
+
readonly type: BooleanConstructor;
|
|
105
|
+
readonly default: false;
|
|
106
|
+
};
|
|
93
107
|
as: {
|
|
94
108
|
type: PropType<PrimitiveAs>;
|
|
95
109
|
default: string;
|
|
@@ -103,6 +117,7 @@ export declare const NavigationMenuIndicator: import("vue").DefineComponent<impo
|
|
|
103
117
|
default: boolean;
|
|
104
118
|
};
|
|
105
119
|
}>> & Readonly<{}>, {
|
|
120
|
+
forcePresent: boolean;
|
|
106
121
|
as: PrimitiveAs;
|
|
107
122
|
asChild: boolean;
|
|
108
123
|
open: boolean;
|
package/dist/navigation-menu.js
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import{computed,defineComponent,h,mergeProps}from"vue";import{MenuItem,MenuSubContent,NavigationMenuRoot}from"./menu.js";import{Primitive}from"./primitive.js";const partProps={as:{type:[String,Object,Function],default:"div"},asChild:{type:Boolean,default:false}};const NavigationMenuList=defineComponent({name:"SectileNavigationMenuList",inheritAttrs:false,props:{...partProps,as:{...partProps.as,default:"ul"}},slots:Object,setup(props,{attrs,slots}){return()=>h(Primitive,mergeProps(attrs,{as:props.as,asChild:props.asChild,"data-scope":"navigation-menu","data-part":"list"}),{default:slots["default"]})}});const NavigationMenuItem=defineComponent({name:"SectileNavigationMenuItem",inheritAttrs:false,props:{...partProps,as:{...partProps.as,default:"li"}},slots:Object,setup(props,{attrs,slots}){return()=>h(Primitive,mergeProps(attrs,{as:props.as,asChild:props.asChild,"data-scope":"navigation-menu","data-part":"item-container"}),{default:slots["default"]})}});const NavigationMenuViewport=defineComponent({name:"SectileNavigationMenuViewport",inheritAttrs:false,props:partProps,slots:Object,setup(props,{attrs,slots}){return()=>h(Primitive,mergeProps(attrs,{as:props.as,asChild:props.asChild,"data-scope":"navigation-menu","data-part":"viewport"}),{default:slots["default"]})}});const NavigationMenuIndicator=defineComponent({name:"SectileNavigationMenuIndicator",inheritAttrs:false,props:{open:{type:Boolean,default:false},...partProps},slots:Object,setup(props,{attrs,slots}){const state=computed(()=>props.open);return()=>h(Primitive,mergeProps(attrs,{as:props.as,asChild:props.asChild,hidden
|
|
1
|
+
import{computed,defineComponent,h,mergeProps}from"vue";import{MenuItem,MenuSubContent,NavigationMenuRoot}from"./menu.js";import{Primitive}from"./primitive.js";import{conditionalPresenceProps,useConditionalPresence}from"./internal/conditional-presence.js";const partProps={as:{type:[String,Object,Function],default:"div"},asChild:{type:Boolean,default:false}};const NavigationMenuList=defineComponent({name:"SectileNavigationMenuList",inheritAttrs:false,props:{...partProps,as:{...partProps.as,default:"ul"}},slots:Object,setup(props,{attrs,slots}){return()=>h(Primitive,mergeProps(attrs,{as:props.as,asChild:props.asChild,"data-scope":"navigation-menu","data-part":"list"}),{default:slots["default"]})}});const NavigationMenuItem=defineComponent({name:"SectileNavigationMenuItem",inheritAttrs:false,props:{...partProps,as:{...partProps.as,default:"li"}},slots:Object,setup(props,{attrs,slots}){return()=>h(Primitive,mergeProps(attrs,{as:props.as,asChild:props.asChild,"data-scope":"navigation-menu","data-part":"item-container"}),{default:slots["default"]})}});const NavigationMenuViewport=defineComponent({name:"SectileNavigationMenuViewport",inheritAttrs:false,props:partProps,slots:Object,setup(props,{attrs,slots}){return()=>h(Primitive,mergeProps(attrs,{as:props.as,asChild:props.asChild,"data-scope":"navigation-menu","data-part":"viewport"}),{default:slots["default"]})}});const NavigationMenuIndicator=defineComponent({name:"SectileNavigationMenuIndicator",inheritAttrs:false,props:{open:{type:Boolean,default:false},...conditionalPresenceProps,...partProps},slots:Object,setup(props,{attrs,slots}){const state=computed(()=>props.open);const forcePresent=computed(()=>props.forcePresent);const presence=useConditionalPresence(state,forcePresent);return()=>h(Primitive,mergeProps(attrs,{as:props.as,asChild:props.asChild,elementRef:presence.register,hidden:presence.hidden.value,"aria-hidden":"true","data-scope":"navigation-menu","data-part":"indicator","data-state":state.value?"visible":"hidden"}),{default:()=>slots["default"]?.({open:state.value})})}});export{MenuSubContent as NavigationMenuContent,NavigationMenuIndicator,NavigationMenuItem,MenuItem as NavigationMenuLink,NavigationMenuList,NavigationMenuRoot,MenuItem as NavigationMenuTrigger,NavigationMenuViewport};
|
|
2
2
|
//# sourceMappingURL=navigation-menu.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/navigation-menu.ts"],"mappings":"AAAA,OAAS,SAAU,gBAAiB,EAAG,eAAkE,MACzG,OAAS,SAAU,eAAgB,uBAA0B,YAC7D,OAAS,cAAmC,
|
|
1
|
+
{"version":3,"sources":["../src/navigation-menu.ts"],"mappings":"AAAA,OAAS,SAAU,gBAAiB,EAAG,eAAkE,MACzG,OAAS,SAAU,eAAgB,uBAA0B,YAC7D,OAAS,cAAmC,iBAC5C,OACE,yBACA,2BAEK,qCAkBP,MAAM,UAAY,CAChB,GAAI,CAAE,KAAM,CAAC,OAAQ,OAAQ,QAAQ,EAA4B,QAAS,KAAK,EAC/E,QAAS,CAAE,KAAM,QAAS,QAAS,KAAK,GAGnC,MAAM,mBAAqB,gBAAgB,CAChD,KAAM,4BAA6B,aAAc,MACjD,MAAO,CAAE,GAAG,UAAW,GAAI,CAAE,GAAG,UAAU,GAAI,QAAS,IAAI,CAAE,EAC7D,MAAO,OACP,MAAM,MAAO,CAAE,MAAO,KAAK,EAAE,CAAI,MAAO,IAAkB,EAAE,UAAW,WAAW,MAAO,CAAE,GAAI,MAAM,GAAI,QAAS,MAAM,QAAS,aAAc,kBAAmB,YAAa,MAAM,CAAE,EAAG,CAAE,QAAS,MAAM,SAAS,CAAC,CAAE,CAAG,EAC3N,EAEM,MAAM,mBAAqB,gBAAgB,CAChD,KAAM,4BAA6B,aAAc,MACjD,MAAO,CAAE,GAAG,UAAW,GAAI,CAAE,GAAG,UAAU,GAAI,QAAS,IAAI,CAAE,EAC7D,MAAO,OACP,MAAM,MAAO,CAAE,MAAO,KAAK,EAAE,CAAI,MAAO,IAAkB,EAAE,UAAW,WAAW,MAAO,CAAE,GAAI,MAAM,GAAI,QAAS,MAAM,QAAS,aAAc,kBAAmB,YAAa,gBAAgB,CAAE,EAAG,CAAE,QAAS,MAAM,SAAS,CAAC,CAAE,CAAG,EACrO,EAEM,MAAM,uBAAyB,gBAAgB,CACpD,KAAM,gCAAiC,aAAc,MAAO,MAAO,UACnE,MAAO,OACP,MAAM,MAAO,CAAE,MAAO,KAAK,EAAE,CAAI,MAAO,IAAkB,EAAE,UAAW,WAAW,MAAO,CAAE,GAAI,MAAM,GAAI,QAAS,MAAM,QAAS,aAAc,kBAAmB,YAAa,UAAU,CAAE,EAAG,CAAE,QAAS,MAAM,SAAS,CAAC,CAAE,CAAG,EAC/N,EAEM,MAAM,wBAA0B,gBAAgB,CACrD,KAAM,iCAAkC,aAAc,MACtD,MAAO,CAAE,KAAM,CAAE,KAAM,QAAS,QAAS,KAAK,EAAI,GAAG,yBAA0B,GAAG,SAAS,EAC3F,MAAO,OACP,MAAM,MAAO,CAAE,MAAO,KAAK,EAAE,CAC3B,MAAM,MAAQ,SAAS,IAAM,MAAM,IAAI,EACvC,MAAM,aAAe,SAAS,IAAM,MAAM,YAAY,EACtD,MAAM,SAAW,uBAAuB,MAAO,YAAY,EAC3D,MAAO,IAAkB,EAAE,UAAW,WAAW,MAAO,CACtD,GAAI,MAAM,GACV,QAAS,MAAM,QACf,WAAY,SAAS,SACrB,OAAQ,SAAS,OAAO,MACxB,cAAe,OACf,aAAc,kBACd,YAAa,YACb,aAAc,MAAM,MAAQ,UAAY,SACzC,EAAG,CAAE,QAAS,IAAM,MAAM,SAAS,IAAI,CAAE,KAAM,MAAM,KAAK,CAAE,CAAC,CAAE,CAClE,EACD","names":[],"file":"navigation-menu.js"}
|
package/dist/radio-group.d.ts
CHANGED
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
import { type PropType, type SlotsType, type VNodeChild } from 'vue';
|
|
2
2
|
import { type PrimitiveAs } from './primitive.js';
|
|
3
|
+
import { type ConditionalPresenceProps } from './internal/conditional-presence.js';
|
|
3
4
|
export interface RadioGroupRootProps {
|
|
4
5
|
readonly items: readonly string[];
|
|
5
6
|
readonly modelValue?: string;
|
|
@@ -32,7 +33,7 @@ export interface RadioGroupItemSlotProps {
|
|
|
32
33
|
readonly highlighted: boolean;
|
|
33
34
|
readonly disabled: boolean;
|
|
34
35
|
}
|
|
35
|
-
export interface RadioGroupIndicatorProps {
|
|
36
|
+
export interface RadioGroupIndicatorProps extends ConditionalPresenceProps {
|
|
36
37
|
readonly as?: PrimitiveAs;
|
|
37
38
|
readonly asChild?: boolean;
|
|
38
39
|
}
|
|
@@ -199,6 +200,10 @@ export declare const RadioGroupItem: import("vue").DefineComponent<import("vue")
|
|
|
199
200
|
default: (props: RadioGroupItemSlotProps) => VNodeChild;
|
|
200
201
|
}>, {}, {}, string, import("vue").ComponentProvideOptions, true, {}, any>;
|
|
201
202
|
export declare const RadioGroupIndicator: import("vue").DefineComponent<import("vue").ExtractPropTypes<{
|
|
203
|
+
forcePresent: {
|
|
204
|
+
readonly type: BooleanConstructor;
|
|
205
|
+
readonly default: false;
|
|
206
|
+
};
|
|
202
207
|
as: {
|
|
203
208
|
type: PropType<PrimitiveAs>;
|
|
204
209
|
default: string;
|
|
@@ -208,6 +213,10 @@ export declare const RadioGroupIndicator: import("vue").DefineComponent<import("
|
|
|
208
213
|
default: boolean;
|
|
209
214
|
};
|
|
210
215
|
}>, () => VNodeChild, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {}, string, import("vue").PublicProps, Readonly<import("vue").ExtractPropTypes<{
|
|
216
|
+
forcePresent: {
|
|
217
|
+
readonly type: BooleanConstructor;
|
|
218
|
+
readonly default: false;
|
|
219
|
+
};
|
|
211
220
|
as: {
|
|
212
221
|
type: PropType<PrimitiveAs>;
|
|
213
222
|
default: string;
|
|
@@ -217,6 +226,7 @@ export declare const RadioGroupIndicator: import("vue").DefineComponent<import("
|
|
|
217
226
|
default: boolean;
|
|
218
227
|
};
|
|
219
228
|
}>> & Readonly<{}>, {
|
|
229
|
+
forcePresent: boolean;
|
|
220
230
|
as: PrimitiveAs;
|
|
221
231
|
asChild: boolean;
|
|
222
232
|
}, SlotsType<{
|
package/dist/radio-group.js
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import{computed,defineComponent,h,inject,mergeProps,nextTick,provide,shallowRef,watch}from"vue";import{getRadioGroupInputAttributes,getRadioGroupItemAttributes,getRadioGroupRootAttributes}from"@sectile/dom/radio-group";import{createListboxControllerFromItems}from"@sectile/dom/listbox";import{Primitive}from"./primitive.js";import{visuallyHiddenInputStyle}from"./internal/native-input.js";import{usePartContract}from"./internal/part-contract.js";import{provideFormControlOwner}from"./internal/form-control.js";import{hiddenInputSubmissionCapabilities,useCompositeFormControl}from"./internal/form-control.js";import{useHostDirection}from"./host-provider.js";import{reconcileCollectionState}from"./internal/collection.js";import{useControlledStateInvariant}from"./internal/controlled-state.js";const rootKey=Symbol("SectileRadioGroupRoot");const itemKey=Symbol("SectileRadioGroupItem");const RadioGroupRoot=defineComponent({name:"SectileRadioGroupRoot",inheritAttrs:false,props:{items:{type:Array,required:true},modelValue:{type:String,default:void 0},defaultValue:{type:String,default:""},disabledItems:{type:Array,default:()=>[]},disabled:{type:Boolean,default:false},readonly:{type:Boolean,default:false},orientation:{type:String,default:"vertical"},name:{type:String,default:void 0},form:{type:String,default:void 0},required:{type:Boolean,default:false},as:{type:[String,Object,Function],default:"div"},asChild:{type:Boolean,default:false}},emits:{"update:modelValue":_value=>true,highlight:_value=>true},slots:Object,setup(props,{attrs,emit,slots}){const direction=useHostDirection();const rootElement=shallowRef(null);const inputElements=[];const participation=useCompositeFormControl({root:rootElement,submissions:()=>props.items.map((_,index)=>({element:()=>inputElements[index]??null,capabilities:hiddenInputSubmissionCapabilities}))});provideFormControlOwner();const controlled=useControlledStateInvariant("RadioGroupRoot","modelValue",()=>props.modelValue);const makeController=(value2,highlightedValue=value2||null)=>{const selected=value2===""?[]:[value2];const result=createListboxControllerFromItems({items:props.items,selectionMode:"single",disabledItems:props.disabledItems,disabled:props.disabled,readOnly:props.readonly,orientation:props.orientation,direction:direction.value,policies:{selectionFollowsFocus:true},...controlled?{value:selected}:{defaultValue:selected},defaultHighlightedValue:highlightedValue??props.items.find(id=>!props.disabledItems.includes(id))??null,onValueChange:({value:next})=>emit("update:modelValue",next[0]??""),onHighlightedValueChange:({value:next})=>emit("highlight",next)});if(!result.ok)throw new TypeError(result.error.message);return result.value};const controller=shallowRef(makeController(controlled?props.modelValue:props.defaultValue));const snapshot=shallowRef(controller.value.getSnapshot());const rebuild=()=>{const requested=controlled?props.modelValue:snapshot.value.state.selection.selected[0]??"";const reconciled=reconcileCollectionState(props.items,requested===""?[]:[requested],snapshot.value.state.cursor.current,props.disabledItems,"single");const current=reconciled.selected[0]??"";controller.value=makeController(current,reconciled.current);snapshot.value=controller.value.getSnapshot();if(controlled&¤t!==requested)emit("update:modelValue",current)};watch(()=>props.modelValue,next=>{if(!controlled||next===void 0)return;const result=controller.value.syncControlledValues({value:next===""?[]:[next]});if(!result.ok)throw new TypeError(result.error.message);snapshot.value=result.value});watch([()=>props.items,()=>props.disabledItems,()=>props.disabled,()=>props.readonly,()=>props.orientation,direction],rebuild);const value=computed(()=>snapshot.value.state.selection.selected[0]??"");const highlighted=computed(()=>snapshot.value.state.cursor.current);const disabled=computed(()=>props.disabled);const disabledItems=computed(()=>new Set(props.disabledItems));const apply=(result,root)=>{if(!result.ok)return false;snapshot.value=result.snapshot;if(root!==void 0)void nextTick(()=>focusItem(root,result.snapshot.state.cursor.current));return true};const part=usePartContract("radio-group","root");provide(rootKey,{value,highlighted,disabled,disabledItems,partContract:part,select:(id,target)=>apply(controller.value.handleEvent({type:"activate",id}),target.closest('[role="radiogroup"]'))});const rootAttributes=computed(()=>getRadioGroupRootAttributes({orientation:props.orientation,direction:direction.value,disabled:props.disabled,readOnly:props.readonly}));const slotProps=computed(()=>({value:value.value,highlightedValue:highlighted.value,disabled:props.disabled,readonly:props.readonly}));return()=>{const root=h(Primitive,mergeProps(attrs,rootAttributes.value,{as:props.as,asChild:props.asChild,elementRef:element=>{rootElement.value=element},"data-scope":part.scope,onKeydown:event=>{if(!apply(controller.value.handleKeyboardInput(event),event.currentTarget))return;event.preventDefault()}},participation.controlProps.value),{default:()=>slots["default"]?.(slotProps.value)});if(!participation.participating&&props.name===void 0&&props.form===void 0&&!props.required)return root;return[root,...props.items.map((id,index)=>h("input",mergeProps(getRadioGroupInputAttributes({...props.name===void 0?{}:{name:props.name},...props.form===void 0?{}:{form:props.form},value:id,checked:value.value===id,required:props.required,disabled:props.disabled||props.disabledItems.includes(id)}),{ref:element=>{inputElements[index]=element instanceof HTMLInputElement?element:null},style:visuallyHiddenInputStyle})))]}}});const RadioGroupItem=defineComponent({name:"SectileRadioGroupItem",inheritAttrs:false,props:{value:{type:String,required:true},disabled:{type:Boolean,default:false},as:{type:[String,Object,Function],default:"button"},asChild:{type:Boolean,default:false}},slots:Object,setup(props,{attrs,slots}){const root=useRoot("RadioGroupItem");const part={scope:root.partContract.scope,part:root.partContract.parts["item"]??"item"};const state=computed(()=>({value:props.value,checked:root.value.value===props.value,highlighted:root.highlighted.value===props.value,disabled:root.disabled.value||props.disabled||root.disabledItems.value.has(props.value)}));provide(itemKey,{state,partContract:root.partContract});const attributes=computed(()=>getRadioGroupItemAttributes({id:props.value,checked:state.value.checked,highlighted:state.value.highlighted,disabled:state.value.disabled}));return()=>h(Primitive,mergeProps(attrs,attributes.value,{as:props.as,asChild:props.asChild,"data-scope":part.scope,onClick:event=>{if(!event.defaultPrevented&&!state.value.disabled)root.select(props.value,event.currentTarget)}}),{default:()=>slots["default"]?.(state.value)})}});const RadioGroupIndicator=defineComponent({name:"SectileRadioGroupIndicator",inheritAttrs:false,props:{as:{type:[String,Object,Function],default:"span"},asChild:{type:Boolean,default:false}},slots:Object,setup(props,{attrs,slots}){const item=inject(itemKey);if(item===void 0)throw new TypeError("RadioGroupIndicator must be used inside RadioGroupItem.");const part={scope:item.partContract.scope,part:item.partContract.parts["indicator"]??"indicator"};return()=>h(Primitive,mergeProps(attrs,{as:props.as,asChild:props.asChild,hidden
|
|
1
|
+
import{computed,defineComponent,h,inject,mergeProps,nextTick,provide,shallowRef,watch}from"vue";import{getRadioGroupInputAttributes,getRadioGroupItemAttributes,getRadioGroupRootAttributes}from"@sectile/dom/radio-group";import{createListboxControllerFromItems}from"@sectile/dom/listbox";import{Primitive}from"./primitive.js";import{visuallyHiddenInputStyle}from"./internal/native-input.js";import{usePartContract}from"./internal/part-contract.js";import{provideFormControlOwner}from"./internal/form-control.js";import{hiddenInputSubmissionCapabilities,useCompositeFormControl}from"./internal/form-control.js";import{useHostDirection}from"./host-provider.js";import{reconcileCollectionState}from"./internal/collection.js";import{useControlledStateInvariant}from"./internal/controlled-state.js";import{conditionalPresenceProps,useConditionalPresence}from"./internal/conditional-presence.js";const rootKey=Symbol("SectileRadioGroupRoot");const itemKey=Symbol("SectileRadioGroupItem");const RadioGroupRoot=defineComponent({name:"SectileRadioGroupRoot",inheritAttrs:false,props:{items:{type:Array,required:true},modelValue:{type:String,default:void 0},defaultValue:{type:String,default:""},disabledItems:{type:Array,default:()=>[]},disabled:{type:Boolean,default:false},readonly:{type:Boolean,default:false},orientation:{type:String,default:"vertical"},name:{type:String,default:void 0},form:{type:String,default:void 0},required:{type:Boolean,default:false},as:{type:[String,Object,Function],default:"div"},asChild:{type:Boolean,default:false}},emits:{"update:modelValue":_value=>true,highlight:_value=>true},slots:Object,setup(props,{attrs,emit,slots}){const direction=useHostDirection();const rootElement=shallowRef(null);const inputElements=[];const participation=useCompositeFormControl({root:rootElement,submissions:()=>props.items.map((_,index)=>({element:()=>inputElements[index]??null,capabilities:hiddenInputSubmissionCapabilities}))});provideFormControlOwner();const controlled=useControlledStateInvariant("RadioGroupRoot","modelValue",()=>props.modelValue);const makeController=(value2,highlightedValue=value2||null)=>{const selected=value2===""?[]:[value2];const result=createListboxControllerFromItems({items:props.items,selectionMode:"single",disabledItems:props.disabledItems,disabled:props.disabled,readOnly:props.readonly,orientation:props.orientation,direction:direction.value,policies:{selectionFollowsFocus:true},...controlled?{value:selected}:{defaultValue:selected},defaultHighlightedValue:highlightedValue??props.items.find(id=>!props.disabledItems.includes(id))??null,onValueChange:({value:next})=>emit("update:modelValue",next[0]??""),onHighlightedValueChange:({value:next})=>emit("highlight",next)});if(!result.ok)throw new TypeError(result.error.message);return result.value};const controller=shallowRef(makeController(controlled?props.modelValue:props.defaultValue));const snapshot=shallowRef(controller.value.getSnapshot());const rebuild=()=>{const requested=controlled?props.modelValue:snapshot.value.state.selection.selected[0]??"";const reconciled=reconcileCollectionState(props.items,requested===""?[]:[requested],snapshot.value.state.cursor.current,props.disabledItems,"single");const current=reconciled.selected[0]??"";controller.value=makeController(current,reconciled.current);snapshot.value=controller.value.getSnapshot();if(controlled&¤t!==requested)emit("update:modelValue",current)};watch(()=>props.modelValue,next=>{if(!controlled||next===void 0)return;const result=controller.value.syncControlledValues({value:next===""?[]:[next]});if(!result.ok)throw new TypeError(result.error.message);snapshot.value=result.value});watch([()=>props.items,()=>props.disabledItems,()=>props.disabled,()=>props.readonly,()=>props.orientation,direction],rebuild);const value=computed(()=>snapshot.value.state.selection.selected[0]??"");const highlighted=computed(()=>snapshot.value.state.cursor.current);const disabled=computed(()=>props.disabled);const disabledItems=computed(()=>new Set(props.disabledItems));const apply=(result,root)=>{if(!result.ok)return false;snapshot.value=result.snapshot;if(root!==void 0)void nextTick(()=>focusItem(root,result.snapshot.state.cursor.current));return true};const part=usePartContract("radio-group","root");provide(rootKey,{value,highlighted,disabled,disabledItems,partContract:part,select:(id,target)=>apply(controller.value.handleEvent({type:"activate",id}),target.closest('[role="radiogroup"]'))});const rootAttributes=computed(()=>getRadioGroupRootAttributes({orientation:props.orientation,direction:direction.value,disabled:props.disabled,readOnly:props.readonly}));const slotProps=computed(()=>({value:value.value,highlightedValue:highlighted.value,disabled:props.disabled,readonly:props.readonly}));return()=>{const root=h(Primitive,mergeProps(attrs,rootAttributes.value,{as:props.as,asChild:props.asChild,elementRef:element=>{rootElement.value=element},"data-scope":part.scope,onKeydown:event=>{if(!apply(controller.value.handleKeyboardInput(event),event.currentTarget))return;event.preventDefault()}},participation.controlProps.value),{default:()=>slots["default"]?.(slotProps.value)});if(!participation.participating&&props.name===void 0&&props.form===void 0&&!props.required)return root;return[root,...props.items.map((id,index)=>h("input",mergeProps(getRadioGroupInputAttributes({...props.name===void 0?{}:{name:props.name},...props.form===void 0?{}:{form:props.form},value:id,checked:value.value===id,required:props.required,disabled:props.disabled||props.disabledItems.includes(id)}),{ref:element=>{inputElements[index]=element instanceof HTMLInputElement?element:null},style:visuallyHiddenInputStyle})))]}}});const RadioGroupItem=defineComponent({name:"SectileRadioGroupItem",inheritAttrs:false,props:{value:{type:String,required:true},disabled:{type:Boolean,default:false},as:{type:[String,Object,Function],default:"button"},asChild:{type:Boolean,default:false}},slots:Object,setup(props,{attrs,slots}){const root=useRoot("RadioGroupItem");const part={scope:root.partContract.scope,part:root.partContract.parts["item"]??"item"};const state=computed(()=>({value:props.value,checked:root.value.value===props.value,highlighted:root.highlighted.value===props.value,disabled:root.disabled.value||props.disabled||root.disabledItems.value.has(props.value)}));provide(itemKey,{state,partContract:root.partContract});const attributes=computed(()=>getRadioGroupItemAttributes({id:props.value,checked:state.value.checked,highlighted:state.value.highlighted,disabled:state.value.disabled}));return()=>h(Primitive,mergeProps(attrs,attributes.value,{as:props.as,asChild:props.asChild,"data-scope":part.scope,onClick:event=>{if(!event.defaultPrevented&&!state.value.disabled)root.select(props.value,event.currentTarget)}}),{default:()=>slots["default"]?.(state.value)})}});const RadioGroupIndicator=defineComponent({name:"SectileRadioGroupIndicator",inheritAttrs:false,props:{...conditionalPresenceProps,as:{type:[String,Object,Function],default:"span"},asChild:{type:Boolean,default:false}},slots:Object,setup(props,{attrs,slots}){const item=inject(itemKey);if(item===void 0)throw new TypeError("RadioGroupIndicator must be used inside RadioGroupItem.");const part={scope:item.partContract.scope,part:item.partContract.parts["indicator"]??"indicator"};const active=computed(()=>item.state.value.checked);const forcePresent=computed(()=>props.forcePresent);const presence=useConditionalPresence(active,forcePresent);return()=>h(Primitive,mergeProps(attrs,{as:props.as,asChild:props.asChild,elementRef:presence.register,hidden:presence.hidden.value,"aria-hidden":"true","data-scope":part.scope,"data-part":part.part,"data-state":item.state.value.checked?"checked":"unchecked"}),{default:()=>slots["default"]?.(item.state.value)})}});function useRoot(part){const root=inject(rootKey);if(root===void 0)throw new TypeError(`${part} must be used inside RadioGroupRoot.`);return root}function focusItem(root,id){if(id===null)return;for(const item of root.querySelectorAll("[data-radio-group-id]"))if(item.dataset["radioGroupId"]===id)item.focus()}export{RadioGroupIndicator,RadioGroupItem,RadioGroupRoot};
|
|
2
2
|
//# sourceMappingURL=radio-group.js.map
|
package/dist/radio-group.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/radio-group.ts"],"mappings":"AAAA,OACE,SAAU,gBAAiB,EAAG,OAAQ,WAAY,SAAU,QAAS,WAAY,UAE5E,MACP,OACE,6BACA,4BACA,gCACK,2BACP,OAAS,qCAAgE,uBACzE,OAAS,cAAmC,iBAC5C,OAAS,6BAAgC,6BACzC,OAAS,oBAA0C,8BACnD,OAAS,4BAA+B,6BACxC,OAAS,kCAAmC,4BAA+B,6BAC3E,OAAS,qBAAwB,qBACjC,OAAS,6BAAgC,2BACzC,OAAS,gCAAmC,
|
|
1
|
+
{"version":3,"sources":["../src/radio-group.ts"],"mappings":"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","names":["value"],"file":"radio-group.js"}
|
package/dist/rating.d.ts
CHANGED
|
@@ -180,6 +180,10 @@ export declare const RatingItem: import("vue").DefineComponent<import("vue").Ext
|
|
|
180
180
|
asChild: boolean;
|
|
181
181
|
}, {}, {}, {}, string, import("vue").ComponentProvideOptions, true, {}, any>;
|
|
182
182
|
export declare const RatingIndicator: import("vue").DefineComponent<import("vue").ExtractPropTypes<{
|
|
183
|
+
forcePresent: {
|
|
184
|
+
readonly type: BooleanConstructor;
|
|
185
|
+
readonly default: false;
|
|
186
|
+
};
|
|
183
187
|
as: {
|
|
184
188
|
type: PropType<PrimitiveAs>;
|
|
185
189
|
default: string;
|
|
@@ -189,6 +193,10 @@ export declare const RatingIndicator: import("vue").DefineComponent<import("vue"
|
|
|
189
193
|
default: boolean;
|
|
190
194
|
};
|
|
191
195
|
}>, () => VNodeChild, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {}, string, import("vue").PublicProps, Readonly<import("vue").ExtractPropTypes<{
|
|
196
|
+
forcePresent: {
|
|
197
|
+
readonly type: BooleanConstructor;
|
|
198
|
+
readonly default: false;
|
|
199
|
+
};
|
|
192
200
|
as: {
|
|
193
201
|
type: PropType<PrimitiveAs>;
|
|
194
202
|
default: string;
|
|
@@ -198,6 +206,7 @@ export declare const RatingIndicator: import("vue").DefineComponent<import("vue"
|
|
|
198
206
|
default: boolean;
|
|
199
207
|
};
|
|
200
208
|
}>> & Readonly<{}>, {
|
|
209
|
+
forcePresent: boolean;
|
|
201
210
|
as: PrimitiveAs;
|
|
202
211
|
asChild: boolean;
|
|
203
212
|
}, SlotsType<{
|
package/dist/select.d.ts
CHANGED
|
@@ -2,6 +2,7 @@ import { type PropType, type SlotsType, type VNodeChild } from 'vue';
|
|
|
2
2
|
import { type SelectPolicies } from '@sectile/dom/select';
|
|
3
3
|
import type { PositionBoundary, PositionOptions, PositionPadding, PositionStrategy, PositionTracking } from '@sectile/dom/position';
|
|
4
4
|
import { type PrimitiveAs } from './primitive.js';
|
|
5
|
+
import { type ConditionalPresenceProps } from './internal/conditional-presence.js';
|
|
5
6
|
export interface SelectRootProps extends Omit<PositionOptions, 'arrowPadding'> {
|
|
6
7
|
readonly items: readonly string[];
|
|
7
8
|
readonly modelValue?: string | null;
|
|
@@ -47,6 +48,8 @@ export interface SelectPartProps {
|
|
|
47
48
|
readonly as?: PrimitiveAs;
|
|
48
49
|
readonly asChild?: boolean;
|
|
49
50
|
}
|
|
51
|
+
export interface SelectItemIndicatorProps extends SelectPartProps, ConditionalPresenceProps {
|
|
52
|
+
}
|
|
50
53
|
export interface SelectPortalProps {
|
|
51
54
|
readonly to?: string | HTMLElement;
|
|
52
55
|
readonly disabled?: boolean;
|
|
@@ -443,6 +446,10 @@ export declare const SelectItem: import("vue").DefineComponent<import("vue").Ext
|
|
|
443
446
|
default: (props: SelectItemSlotProps) => VNodeChild;
|
|
444
447
|
}>, {}, {}, string, import("vue").ComponentProvideOptions, true, {}, any>;
|
|
445
448
|
export declare const SelectItemIndicator: import("vue").DefineComponent<import("vue").ExtractPropTypes<{
|
|
449
|
+
forcePresent: {
|
|
450
|
+
readonly type: BooleanConstructor;
|
|
451
|
+
readonly default: false;
|
|
452
|
+
};
|
|
446
453
|
as: {
|
|
447
454
|
type: PropType<PrimitiveAs>;
|
|
448
455
|
default: string;
|
|
@@ -452,6 +459,10 @@ export declare const SelectItemIndicator: import("vue").DefineComponent<import("
|
|
|
452
459
|
default: boolean;
|
|
453
460
|
};
|
|
454
461
|
}>, () => VNodeChild, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {}, string, import("vue").PublicProps, Readonly<import("vue").ExtractPropTypes<{
|
|
462
|
+
forcePresent: {
|
|
463
|
+
readonly type: BooleanConstructor;
|
|
464
|
+
readonly default: false;
|
|
465
|
+
};
|
|
455
466
|
as: {
|
|
456
467
|
type: PropType<PrimitiveAs>;
|
|
457
468
|
default: string;
|
|
@@ -461,6 +472,7 @@ export declare const SelectItemIndicator: import("vue").DefineComponent<import("
|
|
|
461
472
|
default: boolean;
|
|
462
473
|
};
|
|
463
474
|
}>> & Readonly<{}>, {
|
|
475
|
+
forcePresent: boolean;
|
|
464
476
|
as: PrimitiveAs;
|
|
465
477
|
asChild: boolean;
|
|
466
478
|
}, SlotsType<{
|