1 line
4.6 KiB
JavaScript
1 line
4.6 KiB
JavaScript
import{Ct as e,E as t,Et as n,H as r,N as i,S as a,W as o,c as s,g as c,l,nt as u,v as d,w as f,y as p,z as m}from"./vue.runtime.esm-bundler-DQjudA8G.js";import{t as h}from"./check-igezbCYp.js";import{t as g}from"./utils-BB02OBq2.js";import{S as _,m as v}from"./dist-t_U6YImb.js";import{n as y,t as b}from"./useFormControl-CyMrrgSu.js";import{t as x}from"./createContext-BefgL9WT.js";import{t as S}from"./useForwardPropsEmits-ixfQllIc.js";import{n as C,t as w}from"./Presence-C1RtYpyR.js";import{t as T}from"./isValueEqualOrExist-CCbNmJVe.js";import{t as E}from"./Primitive-jhoGcsVx.js";import{t as D}from"./useForwardExpose-OKJAPp5E.js";import{t as O}from"./VisuallyHiddenInput-syf01z94.js";import{t as k}from"./RovingFocusItem-4bA-dcrz.js";var[A,j]=x(`CheckboxGroupRoot`);function M(e){return e===`indeterminate`}function N(e){return M(e)?`indeterminate`:e?`checked`:`unchecked`}var[P,F]=x(`CheckboxRoot`),I=f({inheritAttrs:!1,__name:`CheckboxRoot`,props:{defaultValue:{type:null,required:!1},modelValue:{type:null,required:!1,default:void 0},disabled:{type:Boolean,required:!1},value:{type:null,required:!1,default:`on`},id:{type:String,required:!1},trueValue:{type:null,required:!1,default:()=>!0},falseValue:{type:null,required:!1,default:()=>!1},asChild:{type:Boolean,required:!1},as:{type:null,required:!1,default:`button`},name:{type:String,required:!1},required:{type:Boolean,required:!1}},emits:[`update:modelValue`],setup(t,{emit:n}){let a=t,f=n,{forwardRef:h,currentElement:g}=D(),_=A(null),x=v(a,`modelValue`,f,{defaultValue:a.defaultValue??a.falseValue,passive:a.modelValue===void 0}),S=c(()=>_?.disabled.value||a.disabled),w=c(()=>y(x.value,a.trueValue)),j=c(()=>C(_?.modelValue.value)?x.value===`indeterminate`?`indeterminate`:w.value:T(_.modelValue.value,a.value));function P(){if(C(_?.modelValue.value))x.value===`indeterminate`?x.value=a.trueValue:x.value=w.value?a.falseValue:a.trueValue;else{let e=[..._.modelValue.value||[]];if(T(e,a.value)){let t=e.findIndex(e=>y(e,a.value));e.splice(t,1)}else e.push(a.value);_.modelValue.value=e}}let I=b(g),L=c(()=>a.id&&g.value?document.querySelector(`[for="${a.id}"]`)?.innerText:void 0);return F({disabled:S,state:j}),(t,n)=>(m(),d(o(e(_)?.rovingFocus.value?e(k):e(E)),i(t.$attrs,{id:t.id,ref:e(h),role:`checkbox`,"as-child":t.asChild,as:t.as,type:t.as===`button`?`button`:void 0,"aria-checked":e(M)(j.value)?`mixed`:j.value,"aria-required":t.required,"aria-label":t.$attrs[`aria-label`]||L.value,"data-state":e(N)(j.value),"data-disabled":S.value?``:void 0,disabled:S.value,focusable:e(_)?.rovingFocus.value?!S.value:void 0,onKeydown:s(l(()=>{},[`prevent`]),[`enter`]),onClick:P}),{default:u(()=>[r(t.$slots,`default`,{modelValue:e(x),state:j.value}),e(I)&&t.name&&!e(_)?(m(),d(e(O),{key:0,type:`checkbox`,checked:!!j.value,name:t.name,value:t.value,disabled:S.value,required:t.required},null,8,[`checked`,`name`,`value`,`disabled`,`required`])):p(`v-if`,!0)]),_:3},16,[`id`,`as-child`,`as`,`type`,`aria-checked`,`aria-required`,`aria-label`,`data-state`,`data-disabled`,`disabled`,`focusable`,`onKeydown`]))}}),L=f({__name:`CheckboxIndicator`,props:{forceMount:{type:Boolean,required:!1},asChild:{type:Boolean,required:!1},as:{type:null,required:!1,default:`span`}},setup(t){let{forwardRef:n}=D(),o=P();return(t,s)=>(m(),d(e(w),{present:t.forceMount||e(M)(e(o).state.value)||e(o).state.value===!0},{default:u(()=>[a(e(E),i({ref:e(n),"data-state":e(N)(e(o).state.value),"data-disabled":e(o).disabled.value?``:void 0,style:{pointerEvents:`none`},"as-child":t.asChild,as:t.as},t.$attrs),{default:u(()=>[r(t.$slots,`default`)]),_:3},16,[`data-state`,`data-disabled`,`as-child`,`as`])]),_:3},8,[`present`]))}}),R=f({__name:`Checkbox`,props:{defaultValue:{},modelValue:{},disabled:{type:Boolean},value:{},id:{},trueValue:{},falseValue:{},asChild:{type:Boolean},as:{},name:{},required:{type:Boolean},class:{type:[Boolean,null,String,Object,Array]}},emits:[`update:modelValue`],setup(o,{emit:s}){let c=o,l=s,f=S(_(c,`class`),l);return(o,s)=>(m(),d(e(I),i({"data-slot":`checkbox`},e(f),{class:e(g)(`peer border-input data-[state=checked]:bg-primary data-[state=checked]:text-primary-foreground data-[state=checked]:border-primary focus-visible:border-ring focus-visible:ring-ring/50 aria-invalid:ring-destructive/20 dark:aria-invalid:ring-destructive/40 aria-invalid:border-destructive size-4 shrink-0 rounded-[4px] border shadow-xs transition-shadow outline-none focus-visible:ring-[3px] disabled:cursor-not-allowed disabled:opacity-50`,c.class)}),{default:u(i=>[a(e(L),{"data-slot":`checkbox-indicator`,class:`grid place-content-center text-current transition-none`},{default:u(()=>[r(o.$slots,`default`,n(t(i)),()=>[a(e(h),{class:`size-3.5`})])]),_:2},1024)]),_:3},16,[`class`]))}});export{R as t}; |