@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.
Files changed (65) hide show
  1. package/dist/accordion.d.ts +12 -0
  2. package/dist/accordion.js +1 -1
  3. package/dist/accordion.js.map +1 -1
  4. package/dist/carousel.d.ts +13 -0
  5. package/dist/carousel.js +1 -1
  6. package/dist/carousel.js.map +1 -1
  7. package/dist/cascade-list.d.ts +11 -1
  8. package/dist/cascade-list.js +1 -1
  9. package/dist/cascade-list.js.map +1 -1
  10. package/dist/cascade-select.d.ts +11 -1
  11. package/dist/cascade-select.js +1 -1
  12. package/dist/cascade-select.js.map +1 -1
  13. package/dist/checkbox-group.d.ts +9 -0
  14. package/dist/checkbox.d.ts +11 -1
  15. package/dist/checkbox.js +1 -1
  16. package/dist/checkbox.js.map +1 -1
  17. package/dist/combobox.d.ts +12 -0
  18. package/dist/combobox.js +1 -1
  19. package/dist/combobox.js.map +1 -1
  20. package/dist/disclosure.d.ts +11 -1
  21. package/dist/disclosure.js +1 -1
  22. package/dist/disclosure.js.map +1 -1
  23. package/dist/form.d.ts +6 -48
  24. package/dist/form.js +1 -1
  25. package/dist/form.js.map +1 -1
  26. package/dist/internal/cascade-choice.d.ts +13 -0
  27. package/dist/internal/cascade-choice.js +1 -1
  28. package/dist/internal/cascade-choice.js.map +1 -1
  29. package/dist/internal/conditional-presence.d.ts +23 -0
  30. package/dist/internal/conditional-presence.js +2 -0
  31. package/dist/internal/conditional-presence.js.map +1 -0
  32. package/dist/internal/date-picker.js +1 -1
  33. package/dist/internal/date-picker.js.map +1 -1
  34. package/dist/internal/form-context.d.ts +22 -0
  35. package/dist/internal/form-context.js +2 -0
  36. package/dist/internal/form-context.js.map +1 -0
  37. package/dist/internal/form-presence-parts.d.ts +69 -0
  38. package/dist/internal/form-presence-parts.js +2 -0
  39. package/dist/internal/form-presence-parts.js.map +1 -0
  40. package/dist/internal/tabular-parts.js +1 -1
  41. package/dist/internal/tabular-parts.js.map +1 -1
  42. package/dist/listbox.d.ts +12 -0
  43. package/dist/listbox.js +1 -1
  44. package/dist/listbox.js.map +1 -1
  45. package/dist/navigation-menu.d.ts +15 -0
  46. package/dist/navigation-menu.js +1 -1
  47. package/dist/navigation-menu.js.map +1 -1
  48. package/dist/radio-group.d.ts +11 -1
  49. package/dist/radio-group.js +1 -1
  50. package/dist/radio-group.js.map +1 -1
  51. package/dist/rating.d.ts +9 -0
  52. package/dist/select.d.ts +12 -0
  53. package/dist/select.js +1 -1
  54. package/dist/select.js.map +1 -1
  55. package/dist/stepper.d.ts +9 -0
  56. package/dist/tabs.d.ts +11 -1
  57. package/dist/tabs.js +1 -1
  58. package/dist/tabs.js.map +1 -1
  59. package/dist/tree-grid.d.ts +14 -0
  60. package/dist/tree-grid.js +1 -1
  61. package/dist/tree-grid.js.map +1 -1
  62. package/dist/tree-view.d.ts +11 -1
  63. package/dist/tree-view.js +1 -1
  64. package/dist/tree-view.js.map +1 -1
  65. 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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","names":[],"file":"tabular-parts.js"}
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
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/listbox.ts"],"mappings":"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","names":[],"file":"listbox.js"}
1
+ {"version":3,"sources":["../src/listbox.ts"],"mappings":"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","names":[],"file":"listbox.js"}
@@ -1,9 +1,15 @@
1
1
  import { type PropType, type SlotsType, type VNodeChild } from 'vue';
2
2
  import { MenuItem, MenuSubContent, NavigationMenuRoot } from './menu.js';
3
3
  import { type PrimitiveAs } from './primitive.js';
4
+ import { type ConditionalPresenceProps } from './internal/conditional-presence.js';
4
5
  export { NavigationMenuRoot };
5
6
  export { MenuItem as NavigationMenuLink, MenuItem as NavigationMenuTrigger, MenuSubContent as NavigationMenuContent };
6
7
  export type { MenuItemProps as NavigationMenuItemProps, MenuItemSlotProps as NavigationMenuItemSlotProps, MenuRootProps as NavigationMenuRootProps, MenuRootSlotProps as NavigationMenuRootSlotProps, MenuSubContentProps as NavigationMenuContentProps, } from './menu.js';
8
+ export interface NavigationMenuIndicatorProps extends ConditionalPresenceProps {
9
+ readonly open?: boolean;
10
+ readonly as?: PrimitiveAs;
11
+ readonly asChild?: boolean;
12
+ }
7
13
  export declare const NavigationMenuList: import("vue").DefineComponent<import("vue").ExtractPropTypes<{
8
14
  asChild: {
9
15
  type: BooleanConstructor;
@@ -77,6 +83,10 @@ export declare const NavigationMenuViewport: import("vue").DefineComponent<impor
77
83
  default: () => VNodeChild;
78
84
  }>, {}, {}, string, import("vue").ComponentProvideOptions, true, {}, any>;
79
85
  export declare const NavigationMenuIndicator: import("vue").DefineComponent<import("vue").ExtractPropTypes<{
86
+ forcePresent: {
87
+ readonly type: BooleanConstructor;
88
+ readonly default: false;
89
+ };
80
90
  as: {
81
91
  type: PropType<PrimitiveAs>;
82
92
  default: string;
@@ -90,6 +100,10 @@ export declare const NavigationMenuIndicator: import("vue").DefineComponent<impo
90
100
  default: boolean;
91
101
  };
92
102
  }>, () => VNodeChild, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {}, string, import("vue").PublicProps, Readonly<import("vue").ExtractPropTypes<{
103
+ forcePresent: {
104
+ readonly type: BooleanConstructor;
105
+ readonly default: false;
106
+ };
93
107
  as: {
94
108
  type: PropType<PrimitiveAs>;
95
109
  default: string;
@@ -103,6 +117,7 @@ export declare const NavigationMenuIndicator: import("vue").DefineComponent<impo
103
117
  default: boolean;
104
118
  };
105
119
  }>> & Readonly<{}>, {
120
+ forcePresent: boolean;
106
121
  as: PrimitiveAs;
107
122
  asChild: boolean;
108
123
  open: boolean;
@@ -1,2 +1,2 @@
1
- import{computed,defineComponent,h,mergeProps}from"vue";import{MenuItem,MenuSubContent,NavigationMenuRoot}from"./menu.js";import{Primitive}from"./primitive.js";const partProps={as:{type:[String,Object,Function],default:"div"},asChild:{type:Boolean,default:false}};const NavigationMenuList=defineComponent({name:"SectileNavigationMenuList",inheritAttrs:false,props:{...partProps,as:{...partProps.as,default:"ul"}},slots:Object,setup(props,{attrs,slots}){return()=>h(Primitive,mergeProps(attrs,{as:props.as,asChild:props.asChild,"data-scope":"navigation-menu","data-part":"list"}),{default:slots["default"]})}});const NavigationMenuItem=defineComponent({name:"SectileNavigationMenuItem",inheritAttrs:false,props:{...partProps,as:{...partProps.as,default:"li"}},slots:Object,setup(props,{attrs,slots}){return()=>h(Primitive,mergeProps(attrs,{as:props.as,asChild:props.asChild,"data-scope":"navigation-menu","data-part":"item-container"}),{default:slots["default"]})}});const NavigationMenuViewport=defineComponent({name:"SectileNavigationMenuViewport",inheritAttrs:false,props:partProps,slots:Object,setup(props,{attrs,slots}){return()=>h(Primitive,mergeProps(attrs,{as:props.as,asChild:props.asChild,"data-scope":"navigation-menu","data-part":"viewport"}),{default:slots["default"]})}});const NavigationMenuIndicator=defineComponent({name:"SectileNavigationMenuIndicator",inheritAttrs:false,props:{open:{type:Boolean,default:false},...partProps},slots:Object,setup(props,{attrs,slots}){const state=computed(()=>props.open);return()=>h(Primitive,mergeProps(attrs,{as:props.as,asChild:props.asChild,hidden:!state.value,"aria-hidden":"true","data-scope":"navigation-menu","data-part":"indicator","data-state":state.value?"visible":"hidden"}),{default:()=>slots["default"]?.({open:state.value})})}});export{MenuSubContent as NavigationMenuContent,NavigationMenuIndicator,NavigationMenuItem,MenuItem as NavigationMenuLink,NavigationMenuList,NavigationMenuRoot,MenuItem as NavigationMenuTrigger,NavigationMenuViewport};
1
+ import{computed,defineComponent,h,mergeProps}from"vue";import{MenuItem,MenuSubContent,NavigationMenuRoot}from"./menu.js";import{Primitive}from"./primitive.js";import{conditionalPresenceProps,useConditionalPresence}from"./internal/conditional-presence.js";const partProps={as:{type:[String,Object,Function],default:"div"},asChild:{type:Boolean,default:false}};const NavigationMenuList=defineComponent({name:"SectileNavigationMenuList",inheritAttrs:false,props:{...partProps,as:{...partProps.as,default:"ul"}},slots:Object,setup(props,{attrs,slots}){return()=>h(Primitive,mergeProps(attrs,{as:props.as,asChild:props.asChild,"data-scope":"navigation-menu","data-part":"list"}),{default:slots["default"]})}});const NavigationMenuItem=defineComponent({name:"SectileNavigationMenuItem",inheritAttrs:false,props:{...partProps,as:{...partProps.as,default:"li"}},slots:Object,setup(props,{attrs,slots}){return()=>h(Primitive,mergeProps(attrs,{as:props.as,asChild:props.asChild,"data-scope":"navigation-menu","data-part":"item-container"}),{default:slots["default"]})}});const NavigationMenuViewport=defineComponent({name:"SectileNavigationMenuViewport",inheritAttrs:false,props:partProps,slots:Object,setup(props,{attrs,slots}){return()=>h(Primitive,mergeProps(attrs,{as:props.as,asChild:props.asChild,"data-scope":"navigation-menu","data-part":"viewport"}),{default:slots["default"]})}});const NavigationMenuIndicator=defineComponent({name:"SectileNavigationMenuIndicator",inheritAttrs:false,props:{open:{type:Boolean,default:false},...conditionalPresenceProps,...partProps},slots:Object,setup(props,{attrs,slots}){const state=computed(()=>props.open);const forcePresent=computed(()=>props.forcePresent);const presence=useConditionalPresence(state,forcePresent);return()=>h(Primitive,mergeProps(attrs,{as:props.as,asChild:props.asChild,elementRef:presence.register,hidden:presence.hidden.value,"aria-hidden":"true","data-scope":"navigation-menu","data-part":"indicator","data-state":state.value?"visible":"hidden"}),{default:()=>slots["default"]?.({open:state.value})})}});export{MenuSubContent as NavigationMenuContent,NavigationMenuIndicator,NavigationMenuItem,MenuItem as NavigationMenuLink,NavigationMenuList,NavigationMenuRoot,MenuItem as NavigationMenuTrigger,NavigationMenuViewport};
2
2
  //# sourceMappingURL=navigation-menu.js.map
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/navigation-menu.ts"],"mappings":"AAAA,OAAS,SAAU,gBAAiB,EAAG,eAAkE,MACzG,OAAS,SAAU,eAAgB,uBAA0B,YAC7D,OAAS,cAAmC,iBAY5C,MAAM,UAAY,CAChB,GAAI,CAAE,KAAM,CAAC,OAAQ,OAAQ,QAAQ,EAA4B,QAAS,KAAK,EAC/E,QAAS,CAAE,KAAM,QAAS,QAAS,KAAK,GAGnC,MAAM,mBAAqB,gBAAgB,CAChD,KAAM,4BAA6B,aAAc,MACjD,MAAO,CAAE,GAAG,UAAW,GAAI,CAAE,GAAG,UAAU,GAAI,QAAS,IAAI,CAAE,EAC7D,MAAO,OACP,MAAM,MAAO,CAAE,MAAO,KAAK,EAAE,CAAI,MAAO,IAAkB,EAAE,UAAW,WAAW,MAAO,CAAE,GAAI,MAAM,GAAI,QAAS,MAAM,QAAS,aAAc,kBAAmB,YAAa,MAAM,CAAE,EAAG,CAAE,QAAS,MAAM,SAAS,CAAC,CAAE,CAAG,EAC3N,EAEM,MAAM,mBAAqB,gBAAgB,CAChD,KAAM,4BAA6B,aAAc,MACjD,MAAO,CAAE,GAAG,UAAW,GAAI,CAAE,GAAG,UAAU,GAAI,QAAS,IAAI,CAAE,EAC7D,MAAO,OACP,MAAM,MAAO,CAAE,MAAO,KAAK,EAAE,CAAI,MAAO,IAAkB,EAAE,UAAW,WAAW,MAAO,CAAE,GAAI,MAAM,GAAI,QAAS,MAAM,QAAS,aAAc,kBAAmB,YAAa,gBAAgB,CAAE,EAAG,CAAE,QAAS,MAAM,SAAS,CAAC,CAAE,CAAG,EACrO,EAEM,MAAM,uBAAyB,gBAAgB,CACpD,KAAM,gCAAiC,aAAc,MAAO,MAAO,UACnE,MAAO,OACP,MAAM,MAAO,CAAE,MAAO,KAAK,EAAE,CAAI,MAAO,IAAkB,EAAE,UAAW,WAAW,MAAO,CAAE,GAAI,MAAM,GAAI,QAAS,MAAM,QAAS,aAAc,kBAAmB,YAAa,UAAU,CAAE,EAAG,CAAE,QAAS,MAAM,SAAS,CAAC,CAAE,CAAG,EAC/N,EAEM,MAAM,wBAA0B,gBAAgB,CACrD,KAAM,iCAAkC,aAAc,MACtD,MAAO,CAAE,KAAM,CAAE,KAAM,QAAS,QAAS,KAAK,EAAI,GAAG,SAAS,EAC9D,MAAO,OACP,MAAM,MAAO,CAAE,MAAO,KAAK,EAAE,CAC3B,MAAM,MAAQ,SAAS,IAAM,MAAM,IAAI,EACvC,MAAO,IAAkB,EAAE,UAAW,WAAW,MAAO,CAAE,GAAI,MAAM,GAAI,QAAS,MAAM,QAAS,OAAQ,CAAC,MAAM,MAAO,cAAe,OAAQ,aAAc,kBAAmB,YAAa,YAAa,aAAc,MAAM,MAAQ,UAAY,QAAQ,CAAE,EAAG,CAAE,QAAS,IAAM,MAAM,SAAS,IAAI,CAAE,KAAM,MAAM,KAAK,CAAE,CAAC,CAAE,CAC3T,EACD","names":[],"file":"navigation-menu.js"}
1
+ {"version":3,"sources":["../src/navigation-menu.ts"],"mappings":"AAAA,OAAS,SAAU,gBAAiB,EAAG,eAAkE,MACzG,OAAS,SAAU,eAAgB,uBAA0B,YAC7D,OAAS,cAAmC,iBAC5C,OACE,yBACA,2BAEK,qCAkBP,MAAM,UAAY,CAChB,GAAI,CAAE,KAAM,CAAC,OAAQ,OAAQ,QAAQ,EAA4B,QAAS,KAAK,EAC/E,QAAS,CAAE,KAAM,QAAS,QAAS,KAAK,GAGnC,MAAM,mBAAqB,gBAAgB,CAChD,KAAM,4BAA6B,aAAc,MACjD,MAAO,CAAE,GAAG,UAAW,GAAI,CAAE,GAAG,UAAU,GAAI,QAAS,IAAI,CAAE,EAC7D,MAAO,OACP,MAAM,MAAO,CAAE,MAAO,KAAK,EAAE,CAAI,MAAO,IAAkB,EAAE,UAAW,WAAW,MAAO,CAAE,GAAI,MAAM,GAAI,QAAS,MAAM,QAAS,aAAc,kBAAmB,YAAa,MAAM,CAAE,EAAG,CAAE,QAAS,MAAM,SAAS,CAAC,CAAE,CAAG,EAC3N,EAEM,MAAM,mBAAqB,gBAAgB,CAChD,KAAM,4BAA6B,aAAc,MACjD,MAAO,CAAE,GAAG,UAAW,GAAI,CAAE,GAAG,UAAU,GAAI,QAAS,IAAI,CAAE,EAC7D,MAAO,OACP,MAAM,MAAO,CAAE,MAAO,KAAK,EAAE,CAAI,MAAO,IAAkB,EAAE,UAAW,WAAW,MAAO,CAAE,GAAI,MAAM,GAAI,QAAS,MAAM,QAAS,aAAc,kBAAmB,YAAa,gBAAgB,CAAE,EAAG,CAAE,QAAS,MAAM,SAAS,CAAC,CAAE,CAAG,EACrO,EAEM,MAAM,uBAAyB,gBAAgB,CACpD,KAAM,gCAAiC,aAAc,MAAO,MAAO,UACnE,MAAO,OACP,MAAM,MAAO,CAAE,MAAO,KAAK,EAAE,CAAI,MAAO,IAAkB,EAAE,UAAW,WAAW,MAAO,CAAE,GAAI,MAAM,GAAI,QAAS,MAAM,QAAS,aAAc,kBAAmB,YAAa,UAAU,CAAE,EAAG,CAAE,QAAS,MAAM,SAAS,CAAC,CAAE,CAAG,EAC/N,EAEM,MAAM,wBAA0B,gBAAgB,CACrD,KAAM,iCAAkC,aAAc,MACtD,MAAO,CAAE,KAAM,CAAE,KAAM,QAAS,QAAS,KAAK,EAAI,GAAG,yBAA0B,GAAG,SAAS,EAC3F,MAAO,OACP,MAAM,MAAO,CAAE,MAAO,KAAK,EAAE,CAC3B,MAAM,MAAQ,SAAS,IAAM,MAAM,IAAI,EACvC,MAAM,aAAe,SAAS,IAAM,MAAM,YAAY,EACtD,MAAM,SAAW,uBAAuB,MAAO,YAAY,EAC3D,MAAO,IAAkB,EAAE,UAAW,WAAW,MAAO,CACtD,GAAI,MAAM,GACV,QAAS,MAAM,QACf,WAAY,SAAS,SACrB,OAAQ,SAAS,OAAO,MACxB,cAAe,OACf,aAAc,kBACd,YAAa,YACb,aAAc,MAAM,MAAQ,UAAY,SACzC,EAAG,CAAE,QAAS,IAAM,MAAM,SAAS,IAAI,CAAE,KAAM,MAAM,KAAK,CAAE,CAAC,CAAE,CAClE,EACD","names":[],"file":"navigation-menu.js"}
@@ -1,5 +1,6 @@
1
1
  import { type PropType, type SlotsType, type VNodeChild } from 'vue';
2
2
  import { type PrimitiveAs } from './primitive.js';
3
+ import { type ConditionalPresenceProps } from './internal/conditional-presence.js';
3
4
  export interface RadioGroupRootProps {
4
5
  readonly items: readonly string[];
5
6
  readonly modelValue?: string;
@@ -32,7 +33,7 @@ export interface RadioGroupItemSlotProps {
32
33
  readonly highlighted: boolean;
33
34
  readonly disabled: boolean;
34
35
  }
35
- export interface RadioGroupIndicatorProps {
36
+ export interface RadioGroupIndicatorProps extends ConditionalPresenceProps {
36
37
  readonly as?: PrimitiveAs;
37
38
  readonly asChild?: boolean;
38
39
  }
@@ -199,6 +200,10 @@ export declare const RadioGroupItem: import("vue").DefineComponent<import("vue")
199
200
  default: (props: RadioGroupItemSlotProps) => VNodeChild;
200
201
  }>, {}, {}, string, import("vue").ComponentProvideOptions, true, {}, any>;
201
202
  export declare const RadioGroupIndicator: import("vue").DefineComponent<import("vue").ExtractPropTypes<{
203
+ forcePresent: {
204
+ readonly type: BooleanConstructor;
205
+ readonly default: false;
206
+ };
202
207
  as: {
203
208
  type: PropType<PrimitiveAs>;
204
209
  default: string;
@@ -208,6 +213,10 @@ export declare const RadioGroupIndicator: import("vue").DefineComponent<import("
208
213
  default: boolean;
209
214
  };
210
215
  }>, () => VNodeChild, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {}, string, import("vue").PublicProps, Readonly<import("vue").ExtractPropTypes<{
216
+ forcePresent: {
217
+ readonly type: BooleanConstructor;
218
+ readonly default: false;
219
+ };
211
220
  as: {
212
221
  type: PropType<PrimitiveAs>;
213
222
  default: string;
@@ -217,6 +226,7 @@ export declare const RadioGroupIndicator: import("vue").DefineComponent<import("
217
226
  default: boolean;
218
227
  };
219
228
  }>> & Readonly<{}>, {
229
+ forcePresent: boolean;
220
230
  as: PrimitiveAs;
221
231
  asChild: boolean;
222
232
  }, SlotsType<{
@@ -1,2 +1,2 @@
1
- import{computed,defineComponent,h,inject,mergeProps,nextTick,provide,shallowRef,watch}from"vue";import{getRadioGroupInputAttributes,getRadioGroupItemAttributes,getRadioGroupRootAttributes}from"@sectile/dom/radio-group";import{createListboxControllerFromItems}from"@sectile/dom/listbox";import{Primitive}from"./primitive.js";import{visuallyHiddenInputStyle}from"./internal/native-input.js";import{usePartContract}from"./internal/part-contract.js";import{provideFormControlOwner}from"./internal/form-control.js";import{hiddenInputSubmissionCapabilities,useCompositeFormControl}from"./internal/form-control.js";import{useHostDirection}from"./host-provider.js";import{reconcileCollectionState}from"./internal/collection.js";import{useControlledStateInvariant}from"./internal/controlled-state.js";const rootKey=Symbol("SectileRadioGroupRoot");const itemKey=Symbol("SectileRadioGroupItem");const RadioGroupRoot=defineComponent({name:"SectileRadioGroupRoot",inheritAttrs:false,props:{items:{type:Array,required:true},modelValue:{type:String,default:void 0},defaultValue:{type:String,default:""},disabledItems:{type:Array,default:()=>[]},disabled:{type:Boolean,default:false},readonly:{type:Boolean,default:false},orientation:{type:String,default:"vertical"},name:{type:String,default:void 0},form:{type:String,default:void 0},required:{type:Boolean,default:false},as:{type:[String,Object,Function],default:"div"},asChild:{type:Boolean,default:false}},emits:{"update:modelValue":_value=>true,highlight:_value=>true},slots:Object,setup(props,{attrs,emit,slots}){const direction=useHostDirection();const rootElement=shallowRef(null);const inputElements=[];const participation=useCompositeFormControl({root:rootElement,submissions:()=>props.items.map((_,index)=>({element:()=>inputElements[index]??null,capabilities:hiddenInputSubmissionCapabilities}))});provideFormControlOwner();const controlled=useControlledStateInvariant("RadioGroupRoot","modelValue",()=>props.modelValue);const makeController=(value2,highlightedValue=value2||null)=>{const selected=value2===""?[]:[value2];const result=createListboxControllerFromItems({items:props.items,selectionMode:"single",disabledItems:props.disabledItems,disabled:props.disabled,readOnly:props.readonly,orientation:props.orientation,direction:direction.value,policies:{selectionFollowsFocus:true},...controlled?{value:selected}:{defaultValue:selected},defaultHighlightedValue:highlightedValue??props.items.find(id=>!props.disabledItems.includes(id))??null,onValueChange:({value:next})=>emit("update:modelValue",next[0]??""),onHighlightedValueChange:({value:next})=>emit("highlight",next)});if(!result.ok)throw new TypeError(result.error.message);return result.value};const controller=shallowRef(makeController(controlled?props.modelValue:props.defaultValue));const snapshot=shallowRef(controller.value.getSnapshot());const rebuild=()=>{const requested=controlled?props.modelValue:snapshot.value.state.selection.selected[0]??"";const reconciled=reconcileCollectionState(props.items,requested===""?[]:[requested],snapshot.value.state.cursor.current,props.disabledItems,"single");const current=reconciled.selected[0]??"";controller.value=makeController(current,reconciled.current);snapshot.value=controller.value.getSnapshot();if(controlled&&current!==requested)emit("update:modelValue",current)};watch(()=>props.modelValue,next=>{if(!controlled||next===void 0)return;const result=controller.value.syncControlledValues({value:next===""?[]:[next]});if(!result.ok)throw new TypeError(result.error.message);snapshot.value=result.value});watch([()=>props.items,()=>props.disabledItems,()=>props.disabled,()=>props.readonly,()=>props.orientation,direction],rebuild);const value=computed(()=>snapshot.value.state.selection.selected[0]??"");const highlighted=computed(()=>snapshot.value.state.cursor.current);const disabled=computed(()=>props.disabled);const disabledItems=computed(()=>new Set(props.disabledItems));const apply=(result,root)=>{if(!result.ok)return false;snapshot.value=result.snapshot;if(root!==void 0)void nextTick(()=>focusItem(root,result.snapshot.state.cursor.current));return true};const part=usePartContract("radio-group","root");provide(rootKey,{value,highlighted,disabled,disabledItems,partContract:part,select:(id,target)=>apply(controller.value.handleEvent({type:"activate",id}),target.closest('[role="radiogroup"]'))});const rootAttributes=computed(()=>getRadioGroupRootAttributes({orientation:props.orientation,direction:direction.value,disabled:props.disabled,readOnly:props.readonly}));const slotProps=computed(()=>({value:value.value,highlightedValue:highlighted.value,disabled:props.disabled,readonly:props.readonly}));return()=>{const root=h(Primitive,mergeProps(attrs,rootAttributes.value,{as:props.as,asChild:props.asChild,elementRef:element=>{rootElement.value=element},"data-scope":part.scope,onKeydown:event=>{if(!apply(controller.value.handleKeyboardInput(event),event.currentTarget))return;event.preventDefault()}},participation.controlProps.value),{default:()=>slots["default"]?.(slotProps.value)});if(!participation.participating&&props.name===void 0&&props.form===void 0&&!props.required)return root;return[root,...props.items.map((id,index)=>h("input",mergeProps(getRadioGroupInputAttributes({...props.name===void 0?{}:{name:props.name},...props.form===void 0?{}:{form:props.form},value:id,checked:value.value===id,required:props.required,disabled:props.disabled||props.disabledItems.includes(id)}),{ref:element=>{inputElements[index]=element instanceof HTMLInputElement?element:null},style:visuallyHiddenInputStyle})))]}}});const RadioGroupItem=defineComponent({name:"SectileRadioGroupItem",inheritAttrs:false,props:{value:{type:String,required:true},disabled:{type:Boolean,default:false},as:{type:[String,Object,Function],default:"button"},asChild:{type:Boolean,default:false}},slots:Object,setup(props,{attrs,slots}){const root=useRoot("RadioGroupItem");const part={scope:root.partContract.scope,part:root.partContract.parts["item"]??"item"};const state=computed(()=>({value:props.value,checked:root.value.value===props.value,highlighted:root.highlighted.value===props.value,disabled:root.disabled.value||props.disabled||root.disabledItems.value.has(props.value)}));provide(itemKey,{state,partContract:root.partContract});const attributes=computed(()=>getRadioGroupItemAttributes({id:props.value,checked:state.value.checked,highlighted:state.value.highlighted,disabled:state.value.disabled}));return()=>h(Primitive,mergeProps(attrs,attributes.value,{as:props.as,asChild:props.asChild,"data-scope":part.scope,onClick:event=>{if(!event.defaultPrevented&&!state.value.disabled)root.select(props.value,event.currentTarget)}}),{default:()=>slots["default"]?.(state.value)})}});const RadioGroupIndicator=defineComponent({name:"SectileRadioGroupIndicator",inheritAttrs:false,props:{as:{type:[String,Object,Function],default:"span"},asChild:{type:Boolean,default:false}},slots:Object,setup(props,{attrs,slots}){const item=inject(itemKey);if(item===void 0)throw new TypeError("RadioGroupIndicator must be used inside RadioGroupItem.");const part={scope:item.partContract.scope,part:item.partContract.parts["indicator"]??"indicator"};return()=>h(Primitive,mergeProps(attrs,{as:props.as,asChild:props.asChild,hidden:!item.state.value.checked,"aria-hidden":"true","data-scope":part.scope,"data-part":part.part,"data-state":item.state.value.checked?"checked":"unchecked"}),{default:()=>slots["default"]?.(item.state.value)})}});function useRoot(part){const root=inject(rootKey);if(root===void 0)throw new TypeError(`${part} must be used inside RadioGroupRoot.`);return root}function focusItem(root,id){if(id===null)return;for(const item of root.querySelectorAll("[data-radio-group-id]"))if(item.dataset["radioGroupId"]===id)item.focus()}export{RadioGroupIndicator,RadioGroupItem,RadioGroupRoot};
1
+ import{computed,defineComponent,h,inject,mergeProps,nextTick,provide,shallowRef,watch}from"vue";import{getRadioGroupInputAttributes,getRadioGroupItemAttributes,getRadioGroupRootAttributes}from"@sectile/dom/radio-group";import{createListboxControllerFromItems}from"@sectile/dom/listbox";import{Primitive}from"./primitive.js";import{visuallyHiddenInputStyle}from"./internal/native-input.js";import{usePartContract}from"./internal/part-contract.js";import{provideFormControlOwner}from"./internal/form-control.js";import{hiddenInputSubmissionCapabilities,useCompositeFormControl}from"./internal/form-control.js";import{useHostDirection}from"./host-provider.js";import{reconcileCollectionState}from"./internal/collection.js";import{useControlledStateInvariant}from"./internal/controlled-state.js";import{conditionalPresenceProps,useConditionalPresence}from"./internal/conditional-presence.js";const rootKey=Symbol("SectileRadioGroupRoot");const itemKey=Symbol("SectileRadioGroupItem");const RadioGroupRoot=defineComponent({name:"SectileRadioGroupRoot",inheritAttrs:false,props:{items:{type:Array,required:true},modelValue:{type:String,default:void 0},defaultValue:{type:String,default:""},disabledItems:{type:Array,default:()=>[]},disabled:{type:Boolean,default:false},readonly:{type:Boolean,default:false},orientation:{type:String,default:"vertical"},name:{type:String,default:void 0},form:{type:String,default:void 0},required:{type:Boolean,default:false},as:{type:[String,Object,Function],default:"div"},asChild:{type:Boolean,default:false}},emits:{"update:modelValue":_value=>true,highlight:_value=>true},slots:Object,setup(props,{attrs,emit,slots}){const direction=useHostDirection();const rootElement=shallowRef(null);const inputElements=[];const participation=useCompositeFormControl({root:rootElement,submissions:()=>props.items.map((_,index)=>({element:()=>inputElements[index]??null,capabilities:hiddenInputSubmissionCapabilities}))});provideFormControlOwner();const controlled=useControlledStateInvariant("RadioGroupRoot","modelValue",()=>props.modelValue);const makeController=(value2,highlightedValue=value2||null)=>{const selected=value2===""?[]:[value2];const result=createListboxControllerFromItems({items:props.items,selectionMode:"single",disabledItems:props.disabledItems,disabled:props.disabled,readOnly:props.readonly,orientation:props.orientation,direction:direction.value,policies:{selectionFollowsFocus:true},...controlled?{value:selected}:{defaultValue:selected},defaultHighlightedValue:highlightedValue??props.items.find(id=>!props.disabledItems.includes(id))??null,onValueChange:({value:next})=>emit("update:modelValue",next[0]??""),onHighlightedValueChange:({value:next})=>emit("highlight",next)});if(!result.ok)throw new TypeError(result.error.message);return result.value};const controller=shallowRef(makeController(controlled?props.modelValue:props.defaultValue));const snapshot=shallowRef(controller.value.getSnapshot());const rebuild=()=>{const requested=controlled?props.modelValue:snapshot.value.state.selection.selected[0]??"";const reconciled=reconcileCollectionState(props.items,requested===""?[]:[requested],snapshot.value.state.cursor.current,props.disabledItems,"single");const current=reconciled.selected[0]??"";controller.value=makeController(current,reconciled.current);snapshot.value=controller.value.getSnapshot();if(controlled&&current!==requested)emit("update:modelValue",current)};watch(()=>props.modelValue,next=>{if(!controlled||next===void 0)return;const result=controller.value.syncControlledValues({value:next===""?[]:[next]});if(!result.ok)throw new TypeError(result.error.message);snapshot.value=result.value});watch([()=>props.items,()=>props.disabledItems,()=>props.disabled,()=>props.readonly,()=>props.orientation,direction],rebuild);const value=computed(()=>snapshot.value.state.selection.selected[0]??"");const highlighted=computed(()=>snapshot.value.state.cursor.current);const disabled=computed(()=>props.disabled);const disabledItems=computed(()=>new Set(props.disabledItems));const apply=(result,root)=>{if(!result.ok)return false;snapshot.value=result.snapshot;if(root!==void 0)void nextTick(()=>focusItem(root,result.snapshot.state.cursor.current));return true};const part=usePartContract("radio-group","root");provide(rootKey,{value,highlighted,disabled,disabledItems,partContract:part,select:(id,target)=>apply(controller.value.handleEvent({type:"activate",id}),target.closest('[role="radiogroup"]'))});const rootAttributes=computed(()=>getRadioGroupRootAttributes({orientation:props.orientation,direction:direction.value,disabled:props.disabled,readOnly:props.readonly}));const slotProps=computed(()=>({value:value.value,highlightedValue:highlighted.value,disabled:props.disabled,readonly:props.readonly}));return()=>{const root=h(Primitive,mergeProps(attrs,rootAttributes.value,{as:props.as,asChild:props.asChild,elementRef:element=>{rootElement.value=element},"data-scope":part.scope,onKeydown:event=>{if(!apply(controller.value.handleKeyboardInput(event),event.currentTarget))return;event.preventDefault()}},participation.controlProps.value),{default:()=>slots["default"]?.(slotProps.value)});if(!participation.participating&&props.name===void 0&&props.form===void 0&&!props.required)return root;return[root,...props.items.map((id,index)=>h("input",mergeProps(getRadioGroupInputAttributes({...props.name===void 0?{}:{name:props.name},...props.form===void 0?{}:{form:props.form},value:id,checked:value.value===id,required:props.required,disabled:props.disabled||props.disabledItems.includes(id)}),{ref:element=>{inputElements[index]=element instanceof HTMLInputElement?element:null},style:visuallyHiddenInputStyle})))]}}});const RadioGroupItem=defineComponent({name:"SectileRadioGroupItem",inheritAttrs:false,props:{value:{type:String,required:true},disabled:{type:Boolean,default:false},as:{type:[String,Object,Function],default:"button"},asChild:{type:Boolean,default:false}},slots:Object,setup(props,{attrs,slots}){const root=useRoot("RadioGroupItem");const part={scope:root.partContract.scope,part:root.partContract.parts["item"]??"item"};const state=computed(()=>({value:props.value,checked:root.value.value===props.value,highlighted:root.highlighted.value===props.value,disabled:root.disabled.value||props.disabled||root.disabledItems.value.has(props.value)}));provide(itemKey,{state,partContract:root.partContract});const attributes=computed(()=>getRadioGroupItemAttributes({id:props.value,checked:state.value.checked,highlighted:state.value.highlighted,disabled:state.value.disabled}));return()=>h(Primitive,mergeProps(attrs,attributes.value,{as:props.as,asChild:props.asChild,"data-scope":part.scope,onClick:event=>{if(!event.defaultPrevented&&!state.value.disabled)root.select(props.value,event.currentTarget)}}),{default:()=>slots["default"]?.(state.value)})}});const RadioGroupIndicator=defineComponent({name:"SectileRadioGroupIndicator",inheritAttrs:false,props:{...conditionalPresenceProps,as:{type:[String,Object,Function],default:"span"},asChild:{type:Boolean,default:false}},slots:Object,setup(props,{attrs,slots}){const item=inject(itemKey);if(item===void 0)throw new TypeError("RadioGroupIndicator must be used inside RadioGroupItem.");const part={scope:item.partContract.scope,part:item.partContract.parts["indicator"]??"indicator"};const active=computed(()=>item.state.value.checked);const forcePresent=computed(()=>props.forcePresent);const presence=useConditionalPresence(active,forcePresent);return()=>h(Primitive,mergeProps(attrs,{as:props.as,asChild:props.asChild,elementRef:presence.register,hidden:presence.hidden.value,"aria-hidden":"true","data-scope":part.scope,"data-part":part.part,"data-state":item.state.value.checked?"checked":"unchecked"}),{default:()=>slots["default"]?.(item.state.value)})}});function useRoot(part){const root=inject(rootKey);if(root===void 0)throw new TypeError(`${part} must be used inside RadioGroupRoot.`);return root}function focusItem(root,id){if(id===null)return;for(const item of root.querySelectorAll("[data-radio-group-id]"))if(item.dataset["radioGroupId"]===id)item.focus()}export{RadioGroupIndicator,RadioGroupItem,RadioGroupRoot};
2
2
  //# sourceMappingURL=radio-group.js.map
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/radio-group.ts"],"mappings":"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","names":["value"],"file":"radio-group.js"}
1
+ {"version":3,"sources":["../src/radio-group.ts"],"mappings":"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","names":["value"],"file":"radio-group.js"}
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<{