RadioGroup-980b9a9f.js 21 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254
  1. import{h as m,d as H,U as j,a8 as N,b as I,z as U,aa as O,b4 as oe,a9 as P,aY as re,aj as p,S as k,R as c,T as h,X as B,bp as me,av as xe,aw as Ce,aZ as ne,ab as q,Y as E,dV as Re,ac as Q,a3 as M,$ as ee,bf as we,bn as ye,af as ze,W as J,dW as te,ae as Se,b7 as _e}from"./index-9831710d.js";import{g as $e}from"./get-slot-1efb97e5.js";const Be=m("svg",{viewBox:"0 0 64 64",class:"check-icon"},m("path",{d:"M50.42,16.76L22.34,39.45l-8.1-11.46c-1.12-1.58-3.3-1.96-4.88-0.84c-1.58,1.12-1.95,3.3-0.84,4.88l10.26,14.51 c0.56,0.79,1.42,1.31,2.38,1.45c0.16,0.02,0.32,0.03,0.48,0.03c0.8,0,1.57-0.27,2.2-0.78l30.99-25.03c1.5-1.21,1.74-3.42,0.52-4.92 C54.13,15.78,51.93,15.55,50.42,16.76z"})),Te=m("svg",{viewBox:"0 0 100 100",class:"line-icon"},m("path",{d:"M80.2,55.5H21.4c-2.8,0-5.1-2.5-5.1-5.5l0,0c0-3,2.3-5.5,5.1-5.5h58.7c2.8,0,5.1,2.5,5.1,5.5l0,0C85.2,53.1,82.9,55.5,80.2,55.5z"})),ae=re("n-checkbox-group"),De={min:Number,max:Number,size:String,value:Array,defaultValue:{type:Array,default:null},disabled:{type:Boolean,default:void 0},"onUpdate:value":[Function,Array],onUpdateValue:[Function,Array],onChange:[Function,Array]},Ne=H({name:"CheckboxGroup",props:De,setup(e){const{mergedClsPrefixRef:r}=j(e),a=N(e),{mergedSizeRef:b,mergedDisabledRef:s}=a,f=I(e.defaultValue),i=U(()=>e.value),u=O(i,f),d=U(()=>{var x;return((x=u.value)===null||x===void 0?void 0:x.length)||0}),l=U(()=>Array.isArray(u.value)?new Set(u.value):new Set);function T(x,n){const{nTriggerFormInput:R,nTriggerFormChange:C}=a,{onChange:w,"onUpdate:value":y,onUpdateValue:z}=e;if(Array.isArray(u.value)){const t=Array.from(u.value),g=t.findIndex(S=>S===n);x?~g||(t.push(n),z&&p(z,t,{actionType:"check",value:n}),y&&p(y,t,{actionType:"check",value:n}),R(),C(),f.value=t,w&&p(w,t)):~g&&(t.splice(g,1),z&&p(z,t,{actionType:"uncheck",value:n}),y&&p(y,t,{actionType:"uncheck",value:n}),w&&p(w,t),f.value=t,R(),C())}else x?(z&&p(z,[n],{actionType:"check",value:n}),y&&p(y,[n],{actionType:"check",value:n}),w&&p(w,[n]),f.value=[n],R(),C()):(z&&p(z,[],{actionType:"uncheck",value:n}),y&&p(y,[],{actionType:"uncheck",value:n}),w&&p(w,[]),f.value=[],R(),C())}return oe(ae,{checkedCountRef:d,maxRef:P(e,"max"),minRef:P(e,"min"),valueSetRef:l,disabledRef:s,mergedSizeRef:b,toggleCheckbox:T}),{mergedClsPrefix:r}},render(){return m("div",{class:`${this.mergedClsPrefix}-checkbox-group`,role:"group"},this.$slots)}}),Fe=k([c("checkbox",`
  2. line-height: var(--n-label-line-height);
  3. font-size: var(--n-font-size);
  4. outline: none;
  5. cursor: pointer;
  6. display: inline-flex;
  7. flex-wrap: nowrap;
  8. align-items: flex-start;
  9. word-break: break-word;
  10. --n-merged-color-table: var(--n-color-table);
  11. `,[k("&:hover",[c("checkbox-box",[h("border",{border:"var(--n-border-checked)"})])]),k("&:focus:not(:active)",[c("checkbox-box",[h("border",`
  12. border: var(--n-border-focus);
  13. box-shadow: var(--n-box-shadow-focus);
  14. `)])]),B("inside-table",[c("checkbox-box",`
  15. background-color: var(--n-merged-color-table);
  16. `)]),B("checked",[c("checkbox-box",`
  17. background-color: var(--n-color-checked);
  18. `,[c("checkbox-icon",[k(".check-icon",`
  19. opacity: 1;
  20. transform: scale(1);
  21. `)])])]),B("indeterminate",[c("checkbox-box",[c("checkbox-icon",[k(".check-icon",`
  22. opacity: 0;
  23. transform: scale(.5);
  24. `),k(".line-icon",`
  25. opacity: 1;
  26. transform: scale(1);
  27. `)])])]),B("checked, indeterminate",[k("&:focus:not(:active)",[c("checkbox-box",[h("border",`
  28. border: var(--n-border-checked);
  29. box-shadow: var(--n-box-shadow-focus);
  30. `)])]),c("checkbox-box",`
  31. background-color: var(--n-color-checked);
  32. border-left: 0;
  33. border-top: 0;
  34. `,[h("border",{border:"var(--n-border-checked)"})])]),B("disabled",{cursor:"not-allowed"},[B("checked",[c("checkbox-box",`
  35. background-color: var(--n-color-disabled-checked);
  36. `,[h("border",{border:"var(--n-border-disabled-checked)"}),c("checkbox-icon",[k(".check-icon, .line-icon",{fill:"var(--n-check-mark-color-disabled-checked)"})])])]),c("checkbox-box",`
  37. background-color: var(--n-color-disabled);
  38. `,[h("border",{border:"var(--n-border-disabled)"}),c("checkbox-icon",[k(".check-icon, .line-icon",{fill:"var(--n-check-mark-color-disabled)"})])]),h("label",{color:"var(--n-text-color-disabled)"})]),c("checkbox-box-wrapper",`
  39. position: relative;
  40. width: var(--n-size);
  41. flex-shrink: 0;
  42. flex-grow: 0;
  43. user-select: none;
  44. -webkit-user-select: none;
  45. `),c("checkbox-box",`
  46. position: absolute;
  47. left: 0;
  48. top: 50%;
  49. transform: translateY(-50%);
  50. height: var(--n-size);
  51. width: var(--n-size);
  52. display: inline-block;
  53. box-sizing: border-box;
  54. border-radius: var(--n-border-radius);
  55. background-color: var(--n-color);
  56. transition: background-color 0.3s var(--n-bezier);
  57. `,[h("border",`
  58. transition:
  59. border-color .3s var(--n-bezier),
  60. box-shadow .3s var(--n-bezier);
  61. border-radius: inherit;
  62. position: absolute;
  63. left: 0;
  64. right: 0;
  65. top: 0;
  66. bottom: 0;
  67. border: var(--n-border);
  68. `),c("checkbox-icon",`
  69. display: flex;
  70. align-items: center;
  71. justify-content: center;
  72. position: absolute;
  73. left: 1px;
  74. right: 1px;
  75. top: 1px;
  76. bottom: 1px;
  77. `,[k(".check-icon, .line-icon",`
  78. width: 100%;
  79. fill: var(--n-check-mark-color);
  80. opacity: 0;
  81. transform: scale(0.5);
  82. transform-origin: center;
  83. transition:
  84. fill 0.3s var(--n-bezier),
  85. transform 0.3s var(--n-bezier),
  86. opacity 0.3s var(--n-bezier),
  87. border-color 0.3s var(--n-bezier);
  88. `),me({left:"1px",top:"1px"})])]),h("label",`
  89. color: var(--n-text-color);
  90. transition: color .3s var(--n-bezier);
  91. user-select: none;
  92. -webkit-user-select: none;
  93. padding: var(--n-label-padding);
  94. font-weight: var(--n-label-font-weight);
  95. `,[k("&:empty",{display:"none"})])]),xe(c("checkbox",`
  96. --n-merged-color-table: var(--n-color-table-modal);
  97. `)),Ce(c("checkbox",`
  98. --n-merged-color-table: var(--n-color-table-popover);
  99. `))]),Ie=Object.assign(Object.assign({},E.props),{size:String,checked:{type:[Boolean,String,Number],default:void 0},defaultChecked:{type:[Boolean,String,Number],default:!1},value:[String,Number],disabled:{type:Boolean,default:void 0},indeterminate:Boolean,label:String,focusable:{type:Boolean,default:!0},checkedValue:{type:[Boolean,String,Number],default:!0},uncheckedValue:{type:[Boolean,String,Number],default:!1},"onUpdate:checked":[Function,Array],onUpdateChecked:[Function,Array],privateInsideTable:Boolean,onChange:[Function,Array]}),Oe=H({name:"Checkbox",props:Ie,setup(e){const r=I(null),{mergedClsPrefixRef:a,inlineThemeDisabled:b,mergedRtlRef:s}=j(e),f=N(e,{mergedSize(o){const{size:_}=e;if(_!==void 0)return _;if(d){const{value:$}=d.mergedSizeRef;if($!==void 0)return $}if(o){const{mergedSize:$}=o;if($!==void 0)return $.value}return"medium"},mergedDisabled(o){const{disabled:_}=e;if(_!==void 0)return _;if(d){if(d.disabledRef.value)return!0;const{maxRef:{value:$},checkedCountRef:D}=d;if($!==void 0&&D.value>=$&&!n.value)return!0;const{minRef:{value:F}}=d;if(F!==void 0&&D.value<=F&&n.value)return!0}return o?o.disabled.value:!1}}),{mergedDisabledRef:i,mergedSizeRef:u}=f,d=ne(ae,null),l=I(e.defaultChecked),T=P(e,"checked"),x=O(T,l),n=q(()=>{if(d){const o=d.valueSetRef.value;return o&&e.value!==void 0?o.has(e.value):!1}else return x.value===e.checkedValue}),R=E("Checkbox","-checkbox",Fe,Re,e,a);function C(o){if(d&&e.value!==void 0)d.toggleCheckbox(!n.value,e.value);else{const{onChange:_,"onUpdate:checked":$,onUpdateChecked:D}=e,{nTriggerFormInput:F,nTriggerFormChange:V}=f,A=n.value?e.uncheckedValue:e.checkedValue;$&&p($,A,o),D&&p(D,A,o),_&&p(_,A,o),F(),V(),l.value=A}}function w(o){i.value||C(o)}function y(o){if(!i.value)switch(o.key){case" ":case"Enter":C(o)}}function z(o){switch(o.key){case" ":o.preventDefault()}}const t={focus:()=>{var o;(o=r.value)===null||o===void 0||o.focus()},blur:()=>{var o;(o=r.value)===null||o===void 0||o.blur()}},g=Q("Checkbox",s,a),S=U(()=>{const{value:o}=u,{common:{cubicBezierEaseInOut:_},self:{borderRadius:$,color:D,colorChecked:F,colorDisabled:V,colorTableHeader:A,colorTableHeaderModal:G,colorTableHeaderPopover:K,checkMarkColor:L,checkMarkColorDisabled:W,border:Y,borderFocus:X,borderDisabled:Z,borderChecked:de,boxShadowFocus:le,textColor:ce,textColorDisabled:se,checkMarkColorDisabledChecked:ue,colorDisabledChecked:be,borderDisabledChecked:he,labelPadding:fe,labelLineHeight:ve,labelFontWeight:ge,[M("fontSize",o)]:pe,[M("size",o)]:ke}}=R.value;return{"--n-label-line-height":ve,"--n-label-font-weight":ge,"--n-size":ke,"--n-bezier":_,"--n-border-radius":$,"--n-border":Y,"--n-border-checked":de,"--n-border-focus":X,"--n-border-disabled":Z,"--n-border-disabled-checked":he,"--n-box-shadow-focus":le,"--n-color":D,"--n-color-checked":F,"--n-color-table":A,"--n-color-table-modal":G,"--n-color-table-popover":K,"--n-color-disabled":V,"--n-color-disabled-checked":be,"--n-text-color":ce,"--n-text-color-disabled":se,"--n-check-mark-color":L,"--n-check-mark-color-disabled":W,"--n-check-mark-color-disabled-checked":ue,"--n-font-size":pe,"--n-label-padding":fe}}),v=b?ee("checkbox",U(()=>u.value[0]),S,e):void 0;return Object.assign(f,t,{rtlEnabled:g,selfRef:r,mergedClsPrefix:a,mergedDisabled:i,renderedChecked:n,mergedTheme:R,labelId:we(),handleClick:w,handleKeyUp:y,handleKeyDown:z,cssVars:b?void 0:S,themeClass:v==null?void 0:v.themeClass,onRender:v==null?void 0:v.onRender})},render(){var e;const{$slots:r,renderedChecked:a,mergedDisabled:b,indeterminate:s,privateInsideTable:f,cssVars:i,labelId:u,label:d,mergedClsPrefix:l,focusable:T,handleKeyUp:x,handleKeyDown:n,handleClick:R}=this;return(e=this.onRender)===null||e===void 0||e.call(this),m("div",{ref:"selfRef",class:[`${l}-checkbox`,this.themeClass,this.rtlEnabled&&`${l}-checkbox--rtl`,a&&`${l}-checkbox--checked`,b&&`${l}-checkbox--disabled`,s&&`${l}-checkbox--indeterminate`,f&&`${l}-checkbox--inside-table`],tabindex:b||!T?void 0:0,role:"checkbox","aria-checked":s?"mixed":a,"aria-labelledby":u,style:i,onKeyup:x,onKeydown:n,onClick:R,onMousedown:()=>{ze("selectstart",window,C=>{C.preventDefault()},{once:!0})}},m("div",{class:`${l}-checkbox-box-wrapper`}," ",m("div",{class:`${l}-checkbox-box`},m(ye,null,{default:()=>this.indeterminate?m("div",{key:"indeterminate",class:`${l}-checkbox-icon`},Te):m("div",{key:"check",class:`${l}-checkbox-icon`},Be)}),m("div",{class:`${l}-checkbox-box__border`}))),d!==null||r.default?m("span",{class:`${l}-checkbox__label`,id:u},r.default?r.default():d):null)}}),Ue={name:String,value:{type:[String,Number,Boolean],default:"on"},checked:{type:Boolean,default:void 0},defaultChecked:Boolean,disabled:{type:Boolean,default:void 0},label:String,size:String,onUpdateChecked:[Function,Array],"onUpdate:checked":[Function,Array],checkedValue:{type:Boolean,default:void 0}},ie=re("n-radio-group");function Ae(e){const r=N(e,{mergedSize(t){const{size:g}=e;if(g!==void 0)return g;if(i){const{mergedSizeRef:{value:S}}=i;if(S!==void 0)return S}return t?t.mergedSize.value:"medium"},mergedDisabled(t){return!!(e.disabled||i!=null&&i.disabledRef.value||t!=null&&t.disabled.value)}}),{mergedSizeRef:a,mergedDisabledRef:b}=r,s=I(null),f=I(null),i=ne(ie,null),u=I(e.defaultChecked),d=P(e,"checked"),l=O(d,u),T=q(()=>i?i.valueRef.value===e.value:l.value),x=q(()=>{const{name:t}=e;if(t!==void 0)return t;if(i)return i.nameRef.value}),n=I(!1);function R(){if(i){const{doUpdateValue:t}=i,{value:g}=e;p(t,g)}else{const{onUpdateChecked:t,"onUpdate:checked":g}=e,{nTriggerFormInput:S,nTriggerFormChange:v}=r;t&&p(t,!0),g&&p(g,!0),S(),v(),u.value=!0}}function C(){b.value||T.value||R()}function w(){C()}function y(){n.value=!1}function z(){n.value=!0}return{mergedClsPrefix:i?i.mergedClsPrefixRef:j(e).mergedClsPrefixRef,inputRef:s,labelRef:f,mergedName:x,mergedDisabled:b,uncontrolledChecked:u,renderSafeChecked:T,focus:n,mergedSize:a,handleRadioInputChange:w,handleRadioInputBlur:y,handleRadioInputFocus:z}}const Ve=c("radio",`
  100. line-height: var(--n-label-line-height);
  101. outline: none;
  102. position: relative;
  103. user-select: none;
  104. -webkit-user-select: none;
  105. display: inline-flex;
  106. align-items: flex-start;
  107. flex-wrap: nowrap;
  108. font-size: var(--n-font-size);
  109. word-break: break-word;
  110. `,[B("checked",[h("dot",`
  111. background-color: var(--n-color-active);
  112. `)]),h("dot-wrapper",`
  113. position: relative;
  114. flex-shrink: 0;
  115. flex-grow: 0;
  116. width: var(--n-radio-size);
  117. `),c("radio-input",`
  118. position: absolute;
  119. border: 0;
  120. border-radius: inherit;
  121. left: 0;
  122. right: 0;
  123. top: 0;
  124. bottom: 0;
  125. opacity: 0;
  126. z-index: 1;
  127. cursor: pointer;
  128. `),h("dot",`
  129. position: absolute;
  130. top: 50%;
  131. left: 0;
  132. transform: translateY(-50%);
  133. height: var(--n-radio-size);
  134. width: var(--n-radio-size);
  135. background: var(--n-color);
  136. box-shadow: var(--n-box-shadow);
  137. border-radius: 50%;
  138. transition:
  139. background-color .3s var(--n-bezier),
  140. box-shadow .3s var(--n-bezier);
  141. `,[k("&::before",`
  142. content: "";
  143. opacity: 0;
  144. position: absolute;
  145. left: 4px;
  146. top: 4px;
  147. height: calc(100% - 8px);
  148. width: calc(100% - 8px);
  149. border-radius: 50%;
  150. transform: scale(.8);
  151. background: var(--n-dot-color-active);
  152. transition:
  153. opacity .3s var(--n-bezier),
  154. background-color .3s var(--n-bezier),
  155. transform .3s var(--n-bezier);
  156. `),B("checked",{boxShadow:"var(--n-box-shadow-active)"},[k("&::before",`
  157. opacity: 1;
  158. transform: scale(1);
  159. `)])]),h("label",`
  160. color: var(--n-text-color);
  161. padding: var(--n-label-padding);
  162. font-weight: var(--n-label-font-weight);
  163. display: inline-block;
  164. transition: color .3s var(--n-bezier);
  165. `),J("disabled",`
  166. cursor: pointer;
  167. `,[k("&:hover",[h("dot",{boxShadow:"var(--n-box-shadow-hover)"})]),B("focus",[k("&:not(:active)",[h("dot",{boxShadow:"var(--n-box-shadow-focus)"})])])]),B("disabled",`
  168. cursor: not-allowed;
  169. `,[h("dot",{boxShadow:"var(--n-box-shadow-disabled)",backgroundColor:"var(--n-color-disabled)"},[k("&::before",{backgroundColor:"var(--n-dot-color-disabled)"}),B("checked",`
  170. opacity: 1;
  171. `)]),h("label",{color:"var(--n-text-color-disabled)"}),c("radio-input",`
  172. cursor: not-allowed;
  173. `)])]),Ge=H({name:"Radio",props:Object.assign(Object.assign({},E.props),Ue),setup(e){const r=Ae(e),a=E("Radio","-radio",Ve,te,e,r.mergedClsPrefix),b=U(()=>{const{mergedSize:{value:l}}=r,{common:{cubicBezierEaseInOut:T},self:{boxShadow:x,boxShadowActive:n,boxShadowDisabled:R,boxShadowFocus:C,boxShadowHover:w,color:y,colorDisabled:z,colorActive:t,textColor:g,textColorDisabled:S,dotColorActive:v,dotColorDisabled:o,labelPadding:_,labelLineHeight:$,labelFontWeight:D,[M("fontSize",l)]:F,[M("radioSize",l)]:V}}=a.value;return{"--n-bezier":T,"--n-label-line-height":$,"--n-label-font-weight":D,"--n-box-shadow":x,"--n-box-shadow-active":n,"--n-box-shadow-disabled":R,"--n-box-shadow-focus":C,"--n-box-shadow-hover":w,"--n-color":y,"--n-color-active":t,"--n-color-disabled":z,"--n-dot-color-active":v,"--n-dot-color-disabled":o,"--n-font-size":F,"--n-radio-size":V,"--n-text-color":g,"--n-text-color-disabled":S,"--n-label-padding":_}}),{inlineThemeDisabled:s,mergedClsPrefixRef:f,mergedRtlRef:i}=j(e),u=Q("Radio",i,f),d=s?ee("radio",U(()=>r.mergedSize.value[0]),b,e):void 0;return Object.assign(r,{rtlEnabled:u,cssVars:s?void 0:b,themeClass:d==null?void 0:d.themeClass,onRender:d==null?void 0:d.onRender})},render(){const{$slots:e,mergedClsPrefix:r,onRender:a,label:b}=this;return a==null||a(),m("label",{class:[`${r}-radio`,this.themeClass,{[`${r}-radio--rtl`]:this.rtlEnabled,[`${r}-radio--disabled`]:this.mergedDisabled,[`${r}-radio--checked`]:this.renderSafeChecked,[`${r}-radio--focus`]:this.focus}],style:this.cssVars},m("input",{ref:"inputRef",type:"radio",class:`${r}-radio-input`,value:this.value,name:this.mergedName,checked:this.renderSafeChecked,disabled:this.mergedDisabled,onChange:this.handleRadioInputChange,onFocus:this.handleRadioInputFocus,onBlur:this.handleRadioInputBlur}),m("div",{class:`${r}-radio__dot-wrapper`}," ",m("div",{class:[`${r}-radio__dot`,this.renderSafeChecked&&`${r}-radio__dot--checked`]})),Se(e.default,s=>!s&&!b?null:m("div",{ref:"labelRef",class:`${r}-radio__label`},s||b)))}}),Pe=c("radio-group",`
  174. display: inline-block;
  175. font-size: var(--n-font-size);
  176. `,[h("splitor",`
  177. display: inline-block;
  178. vertical-align: bottom;
  179. width: 1px;
  180. transition:
  181. background-color .3s var(--n-bezier),
  182. opacity .3s var(--n-bezier);
  183. background: var(--n-button-border-color);
  184. `,[B("checked",{backgroundColor:"var(--n-button-border-color-active)"}),B("disabled",{opacity:"var(--n-opacity-disabled)"})]),B("button-group",`
  185. white-space: nowrap;
  186. height: var(--n-height);
  187. line-height: var(--n-height);
  188. `,[c("radio-button",{height:"var(--n-height)",lineHeight:"var(--n-height)"}),h("splitor",{height:"var(--n-height)"})]),c("radio-button",`
  189. vertical-align: bottom;
  190. outline: none;
  191. position: relative;
  192. user-select: none;
  193. -webkit-user-select: none;
  194. display: inline-block;
  195. box-sizing: border-box;
  196. padding-left: 14px;
  197. padding-right: 14px;
  198. white-space: nowrap;
  199. transition:
  200. background-color .3s var(--n-bezier),
  201. opacity .3s var(--n-bezier),
  202. border-color .3s var(--n-bezier),
  203. color .3s var(--n-bezier);
  204. color: var(--n-button-text-color);
  205. border-top: 1px solid var(--n-button-border-color);
  206. border-bottom: 1px solid var(--n-button-border-color);
  207. `,[c("radio-input",`
  208. pointer-events: none;
  209. position: absolute;
  210. border: 0;
  211. border-radius: inherit;
  212. left: 0;
  213. right: 0;
  214. top: 0;
  215. bottom: 0;
  216. opacity: 0;
  217. z-index: 1;
  218. `),h("state-border",`
  219. z-index: 1;
  220. pointer-events: none;
  221. position: absolute;
  222. box-shadow: var(--n-button-box-shadow);
  223. transition: box-shadow .3s var(--n-bezier);
  224. left: -1px;
  225. bottom: -1px;
  226. right: -1px;
  227. top: -1px;
  228. `),k("&:first-child",`
  229. border-top-left-radius: var(--n-button-border-radius);
  230. border-bottom-left-radius: var(--n-button-border-radius);
  231. border-left: 1px solid var(--n-button-border-color);
  232. `,[h("state-border",`
  233. border-top-left-radius: var(--n-button-border-radius);
  234. border-bottom-left-radius: var(--n-button-border-radius);
  235. `)]),k("&:last-child",`
  236. border-top-right-radius: var(--n-button-border-radius);
  237. border-bottom-right-radius: var(--n-button-border-radius);
  238. border-right: 1px solid var(--n-button-border-color);
  239. `,[h("state-border",`
  240. border-top-right-radius: var(--n-button-border-radius);
  241. border-bottom-right-radius: var(--n-button-border-radius);
  242. `)]),J("disabled",`
  243. cursor: pointer;
  244. `,[k("&:hover",[h("state-border",`
  245. transition: box-shadow .3s var(--n-bezier);
  246. box-shadow: var(--n-button-box-shadow-hover);
  247. `),J("checked",{color:"var(--n-button-text-color-hover)"})]),B("focus",[k("&:not(:active)",[h("state-border",{boxShadow:"var(--n-button-box-shadow-focus)"})])])]),B("checked",`
  248. background: var(--n-button-color-active);
  249. color: var(--n-button-text-color-active);
  250. border-color: var(--n-button-border-color-active);
  251. `),B("disabled",`
  252. cursor: not-allowed;
  253. opacity: var(--n-opacity-disabled);
  254. `)])]);function Ee(e,r,a){var b;const s=[];let f=!1;for(let i=0;i<e.length;++i){const u=e[i],d=(b=u.type)===null||b===void 0?void 0:b.name;d==="RadioButton"&&(f=!0);const l=u.props;if(d!=="RadioButton"){s.push(u);continue}if(i===0)s.push(u);else{const T=s[s.length-1].props,x=r===T.value,n=T.disabled,R=r===l.value,C=l.disabled,w=(x?2:0)+(n?0:1),y=(R?2:0)+(C?0:1),z={[`${a}-radio-group__splitor--disabled`]:n,[`${a}-radio-group__splitor--checked`]:x},t={[`${a}-radio-group__splitor--disabled`]:C,[`${a}-radio-group__splitor--checked`]:R},g=w<y?t:z;s.push(m("div",{class:[`${a}-radio-group__splitor`,g]}),u)}}return{children:s,isButtonGroup:f}}const Me=Object.assign(Object.assign({},E.props),{name:String,value:[String,Number,Boolean],defaultValue:{type:[String,Number,Boolean],default:null},size:String,disabled:{type:Boolean,default:void 0},"onUpdate:value":[Function,Array],onUpdateValue:[Function,Array]}),Ke=H({name:"RadioGroup",props:Me,setup(e){const r=I(null),{mergedSizeRef:a,mergedDisabledRef:b,nTriggerFormChange:s,nTriggerFormInput:f,nTriggerFormBlur:i,nTriggerFormFocus:u}=N(e),{mergedClsPrefixRef:d,inlineThemeDisabled:l,mergedRtlRef:T}=j(e),x=E("Radio","-radio-group",Pe,te,e,d),n=I(e.defaultValue),R=P(e,"value"),C=O(R,n);function w(v){const{onUpdateValue:o,"onUpdate:value":_}=e;o&&p(o,v),_&&p(_,v),n.value=v,s(),f()}function y(v){const{value:o}=r;o&&(o.contains(v.relatedTarget)||u())}function z(v){const{value:o}=r;o&&(o.contains(v.relatedTarget)||i())}oe(ie,{mergedClsPrefixRef:d,nameRef:P(e,"name"),valueRef:C,disabledRef:b,mergedSizeRef:a,doUpdateValue:w});const t=Q("Radio",T,d),g=U(()=>{const{value:v}=a,{common:{cubicBezierEaseInOut:o},self:{buttonBorderColor:_,buttonBorderColorActive:$,buttonBorderRadius:D,buttonBoxShadow:F,buttonBoxShadowFocus:V,buttonBoxShadowHover:A,buttonColorActive:G,buttonTextColor:K,buttonTextColorActive:L,buttonTextColorHover:W,opacityDisabled:Y,[M("buttonHeight",v)]:X,[M("fontSize",v)]:Z}}=x.value;return{"--n-font-size":Z,"--n-bezier":o,"--n-button-border-color":_,"--n-button-border-color-active":$,"--n-button-border-radius":D,"--n-button-box-shadow":F,"--n-button-box-shadow-focus":V,"--n-button-box-shadow-hover":A,"--n-button-color-active":G,"--n-button-text-color":K,"--n-button-text-color-hover":W,"--n-button-text-color-active":L,"--n-height":X,"--n-opacity-disabled":Y}}),S=l?ee("radio-group",U(()=>a.value[0]),g,e):void 0;return{selfElRef:r,rtlEnabled:t,mergedClsPrefix:d,mergedValue:C,handleFocusout:z,handleFocusin:y,cssVars:l?void 0:g,themeClass:S==null?void 0:S.themeClass,onRender:S==null?void 0:S.onRender}},render(){var e;const{mergedValue:r,mergedClsPrefix:a,handleFocusin:b,handleFocusout:s}=this,{children:f,isButtonGroup:i}=Ee(_e($e(this)),r,a);return(e=this.onRender)===null||e===void 0||e.call(this),m("div",{onFocusin:b,onFocusout:s,ref:"selfElRef",class:[`${a}-radio-group`,this.rtlEnabled&&`${a}-radio-group--rtl`,this.themeClass,i&&`${a}-radio-group--button-group`],style:this.cssVars},f)}});export{Ge as _,Ke as a,Oe as b,Ne as c};