UNPKG

@progress/kendo-themes-html

Version:

A collection of HTML helpers used for developing Kendo UI themes

2 lines (1 loc) 18.9 kB
var r=(...e)=>e.filter(t=>t!==!0&&!!t).map(t=>Array.isArray(t)?r(...t):typeof t=="object"?Object.keys(t).map((o,i)=>t[i]||t[o]&&o||null).filter(o=>o!==null).join(" "):t).filter(t=>!!t).join(" ");var v=(e,t)=>r({[`${e}-xs`]:t.size==="xsmall",[`${e}-sm`]:t.size==="small",[`${e}-md`]:t.size==="medium",[`${e}-lg`]:t.size==="large",[`${e}-xl`]:t.size==="xlarge",[`${e}-xxl`]:t.size==="xxlarge",[`${e}-xxxl`]:t.size==="xxxlarge"},{[`${e}-${t.fillMode}`]:t.fillMode},{[`${e}-${t.themeColor}`]:t.themeColor},{"k-rounded-sm":t.rounded==="small","k-rounded-md":t.rounded==="medium","k-rounded-lg":t.rounded==="large","k-rounded-full":t.rounded==="full","k-rounded-none":t.rounded==="none"}),A=(e,t)=>{let{valid:o,invalid:i,hover:n,focus:d,checked:p,active:c,selected:h,disabled:N,indeterminate:b,loading:k,empty:T,readonly:H,highlighted:V,...C}=t;return r({"k-valid":o,"k-invalid":i,"k-hover":n,"k-focus":d,"k-checked":p,"k-active":c,"k-selected":h,"k-disabled":N,"k-indeterminate":b&&!p,"k-loading":k,"k-empty":T,"k-readonly":H,"k-highlighted":V},Object.keys(C).reduce((I,S)=>(S.startsWith("k-")?I[S]=C[S]:I[`k-${S}`]=C[S],I),{}))};function oe(e,t){if(!t)return{};let o=Array.isArray(t)?t:[t];return Object.fromEntries(o.map(i=>[`k-${i}`,!0]))}var s={undefined:void 0,xsmall:"xsmall",small:"small",medium:"medium",large:"large",xlarge:"xlarge",xxlarge:"xxlarge",xxxlarge:"xxxlarge"},u={undefined:void 0,none:"none",small:"small",medium:"medium",large:"large",full:"full"},m={undefined:void 0,solid:"solid",flat:"flat",outline:"outline",clear:"clear",link:"link"},E={undefined:void 0,outline:"outline",solid:"solid",duotone:"duotone"},l={undefined:void 0,inherit:"inherit",base:"base",primary:"primary",secondary:"secondary",tertiary:"tertiary",info:"info",success:"success",warning:"warning",error:"error",inverse:"inverse"},a={open:"open",hover:"hover",focus:"focus",active:"active",selected:"selected",disabled:"disabled",valid:"valid",invalid:"invalid",loading:"loading",required:"required",empty:"empty",indeterminate:"indeterminate",checked:"checked",readonly:"readonly",highlighted:"highlighted",generating:"generating",expanded:"expanded"};import{Fragment as vt,jsx as Ve}from"react/jsx-runtime";var he="k-font-icon",bt=[],ht={size:[s.undefined,s.xsmall,s.small,s.medium,s.large,s.xlarge,s.xxlarge,s.xxxlarge],themeColor:[l.undefined,l.base,l.primary,l.secondary,l.tertiary,l.success,l.warning,l.error,l.info]},Nt={},J=e=>{let{size:t,themeColor:o,icon:i,rotate:n,flip:d,...p}=e;return i?Ve("span",{...p,className:r(e.className,he,v(he,{size:t}),{[`k-i-${i}`]:i,[`k-color-${o}`]:o,[`k-rotate-${n}`]:n,"k-flip-h":d==="h"||d==="both","k-flip-v":d==="v"||d==="both"}),"aria-hidden":"true"}):Ve(vt,{})};J.states=bt;J.options=ht;J.className=he;J.defaultOptions=Nt;var De=J;import{Fragment as yt,jsx as ne}from"react/jsx-runtime";var Ne="k-svg-icon",gt=[],It={size:[s.undefined,s.xsmall,s.small,s.medium,s.large,s.xlarge,s.xxlarge,s.xxxlarge],themeColor:[l.undefined,l.base,l.primary,l.secondary,l.tertiary,l.success,l.warning,l.error,l.info],variant:[E.outline,E.solid,E.duotone]},ve={viewBox:"0 0 24 24",variant:E.outline},W=e=>{let{size:t,themeColor:o,rotate:i,flip:n,viewBox:d=ve.viewBox,variant:p=ve.variant,icon:c,...h}=e;if(!c)return ne(yt,{});if(c==="none")return ne("span",{...h,className:r(e.className,Ne,v("k-icon",{size:t}),"k-none"),"aria-hidden":"true"});let N=typeof c=="object"&&c.name&&c.name,b=typeof c=="object"?p&&c.variants?.[p]||c.variants?.outline||c.content:void 0;return ne("span",{...h,className:r(e.className,Ne,v("k-icon",{size:t}),{[`k-svg-i-${N}`]:N,[`k-color-${o}`]:o,[`k-rotate-${i}`]:i,"k-flip-h":n==="h"||n==="both","k-flip-v":n==="v"||n==="both"}),"aria-hidden":"true",children:ne("svg",{"aria-hidden":!0,focusable:!1,xmlns:"http://www.w3.org/2000/svg",viewBox:typeof c=="object"?c.viewBox:d,dangerouslySetInnerHTML:b!==void 0?{__html:b}:void 0,children:c?void 0:e.children})})};W.states=gt;W.options=It;W.className=Ne;W.defaultOptions=ve;var ge=W;import*as Ie from"@progress/kendo-svg-icons";var Ue="icon",$e="icons";import{useContext as Tt}from"react";import{createContext as kt}from"react";var Fe=kt({iconsType:"svg"});import{Fragment as Xe,jsx as Y}from"react/jsx-runtime";var ae="k-icon",St=e=>e.replace(/([-_][a-z0-9])/gi,t=>t.toUpperCase().replace("-","").replace("_","")),Mt=[],Ct={size:[s.undefined,s.xsmall,s.small,s.medium,s.large,s.xlarge,s.xxlarge,s.xxxlarge],themeColor:[l.undefined,l.base,l.primary,l.secondary,l.tertiary,l.success,l.warning,l.error,l.info],variant:[E.outline,E.solid,E.duotone]},se={viewBox:"0 0 24 24",type:"svg",variant:E.outline},x=e=>{let{iconsType:t}=Tt(Fe),{size:o,themeColor:i,icon:n,type:d=t||se.type,rotate:p,flip:c,viewBox:h=se.viewBox,variant:N=se.variant,...b}=e;if(!n)return Y(Xe,{});if((t||d)==="svg"){if(n==="none")return Y(ge,{...b,className:r(e.className,ae),icon:n,size:o,variant:N});let T=Ie[n]?n:St(`${n}-icon`);return Ie[T]?Y(ge,{...b,className:r(e.className,ae),icon:Ie[T],size:o,themeColor:i,rotate:p,flip:c,viewBox:h,variant:N}):Y(Xe,{})}return Y(De,{...b,className:r(e.className,ae),icon:n,size:o,themeColor:i,rotate:p,flip:c})};x.states=Mt;x.options=Ct;x.defaultOptions=se;x.className=ae;x.moduleName=Ue;x.folderName=$e;x.ariaSpec={selector:".k-icon, .k-svg-icon",rules:[{selector:".k-icon, .k-svg-icon",attribute:"aria-hidden=true",usage:"Hides the icon element and all its children from assistive technologies."}]};var ye="button",qe=ye;import{Fragment as Ge,jsx as D,jsxs as Je}from"react/jsx-runtime";var Q="k-button",Ot=["icon-button"],Et=[a.hover,a.focus,a.active,a.selected,a.disabled,a.generating],Lt={size:[s.undefined,s.xsmall,s.small,s.medium,s.large],rounded:[u.undefined,u.none,u.small,u.medium,u.large,u.full],fillMode:[m.undefined,m.solid,m.flat,m.outline,m.clear,m.link],themeColor:[l.undefined,l.base,l.primary,l.secondary,l.tertiary,l.success,l.warning,l.error,l.info,l.inverse]},ke={showArrow:!1,arrowIconName:"chevron-down"},f=e=>{let{as:t="button",size:o,rounded:i,fillMode:n,themeColor:d,showArrow:p=ke.showArrow,arrowIconName:c=ke.arrowIconName,variant:h,hover:N,focus:b,active:k,selected:T,disabled:H,togglable:V,ariaDisabled:C,icon:I,iconSize:S,text:O,iconClassName:te,className:me,...fe}=e,xe=I!=null,be=e.children!==void 0;return Je(t,{className:r(me,Q,oe(Q,h),v(Q,{size:o,rounded:i,fillMode:n,themeColor:d}),A(Q,{hover:N,focus:b,active:k,disabled:H||C,selected:T}),{"k-icon-button":!O&&!be&&xe}),"aria-pressed":V?T?"true":"false":void 0,...fe,"aria-disabled":C?"true":void 0,disabled:H||void 0,children:[typeof I=="string"&&I&&D(x,{className:r(te,"k-button-icon"),icon:I,size:S}),I&&typeof I!="string"&&D(Ge,{children:I}),O?Je(Ge,{children:[O&&D("span",{className:"k-button-text",children:O}),e.children]}):e.children&&D("span",{className:"k-button-text",children:e.children}),p&&D("span",{className:"k-menu-button-arrow k-button-arrow",children:D(x,{icon:c})})]})};f.states=Et;f.options=Lt;f.variants=Ot;f.className=Q;f.defaultOptions=ke;f.moduleName=ye;f.folderName=qe;f.ariaSpec={selector:".k-button",rules:[{selector:".k-button",attribute:"role=button or nodeName=button",usage:"The button role is implicit from the native <button> element."},{selector:".k-button",attribute:"aria-label (when icon-only)",usage:"Required for icon-only buttons that have no visible text."},{selector:".k-button",attribute:"aria-pressed (when togglable)",usage:"Indicates the pressed state of a toggle button."},{selector:".k-button",attribute:"disabled (when disabled)",usage:"Rendered when the button is disabled."}]};import{jsx as At}from"react/jsx-runtime";var We=e=>At(f,{icon:"folder",...e,"aria-label":e["aria-label"]||"Folder",children:void 0});import{jsx as Pt}from"react/jsx-runtime";var Ye=e=>Pt(f,{icon:"folder",children:"Button",...e});import{jsx as wt}from"react/jsx-runtime";var _=e=>wt(f,{children:"Button",...e});import{jsx as Te}from"react/jsx-runtime";var Bt=f.options,_t=f.states,Kt={...f.defaultOptions,variant:"text"},Rt=[{name:"icon-only",title:"Icon Only"},{name:"icon-and-text",title:"Icon & Text"},{name:"text",title:"Text"}],zt=[],U=e=>{let{variant:t,...o}=e;switch(t){case"icon-only":return Te(We,{...o,icon:"star"});case"icon-and-text":return Te(Ye,{...o,icon:"star",children:"Button"});default:return Te(_,{...o,children:"Button"})}};U.options=Bt;U.states=_t;U.variants=Rt;U.defaultOptions=Kt;U.modifiers=zt;U.className=f.className;var Se="textbox",Qe=Se;var Z="input",ie=Z;import{jsx as Ut}from"react/jsx-runtime";var re="k-input",Ht=[a.hover,a.focus,a.valid,a.invalid,a.required,a.disabled,a.loading,a.readonly],Vt={size:[s.undefined,s.small,s.medium,s.large],rounded:[u.undefined,u.none,u.small,u.medium,u.large,u.full],fillMode:[m.undefined,m.solid,m.flat,m.outline]},Dt={},y=e=>{let{hover:t,focus:o,disabled:i,invalid:n,valid:d,loading:p,readonly:c,size:h,rounded:N,fillMode:b,...k}=e;return Ut("span",{...k,className:r(e.className,re,v(re,{size:h,rounded:N,fillMode:b}),A(re,{hover:t,focus:o,disabled:i,invalid:n,valid:d,loading:p,readonly:c}))})};y.states=Ht;y.options=Vt;y.className=re;y.defaultOptions=Dt;y.moduleName=Z;y.folderName=ie;import{jsx as qt}from"react/jsx-runtime";var le="k-picker",$t=[a.hover,a.focus,a.valid,a.invalid,a.required,a.disabled,a.loading,a.readonly],Ft={size:[s.undefined,s.small,s.medium,s.large],rounded:[u.undefined,u.none,u.small,u.medium,u.large,u.full],fillMode:[m.undefined,m.solid,m.flat,m.outline]},Xt={},$=e=>{let{hover:t,focus:o,disabled:i,invalid:n,valid:d,loading:p,readonly:c,size:h,rounded:N,fillMode:b,...k}=e;return qt("span",{...k,className:r(e.className,le,v(le,{size:h,rounded:N,fillMode:b}),A(le,{hover:t,focus:o,disabled:i,invalid:n,valid:d,loading:p,readonly:c})),children:e.children})};$.states=$t;$.options=Ft;$.className=le;$.defaultOptions=Xt;$.moduleName=Z;$.folderName=ie;import{Fragment as Wt,jsx as Me}from"react/jsx-runtime";var Ze="k-clear-value",Gt=[a.disabled,a.loading,a.readonly],Jt={},K=e=>{let{disabled:t,loading:o,readonly:i,value:n}=e;return t||i||o||!n?Me(Wt,{}):Me("span",{className:r(e.className,Ze),children:Me(x,{icon:"x"})})};K.states=Gt;K.options=Jt;K.className=Ze;import{jsx as Zt}from"react/jsx-runtime";var Ce="k-input-inner",Yt=[],Qt={},de={type:"text",autocomplete:"off",value:"",placeholder:""},R=e=>{let{value:t=de.value,type:o=de.type,placeholder:i=de.placeholder,autocomplete:n=de.autocomplete,disabled:d,readOnly:p,...c}=e;return Zt("input",{...c,type:o,className:r(e.className,Ce,v(Ce,e)),placeholder:i,autoComplete:n,defaultValue:t,disabled:d||void 0,readOnly:p||void 0})};R.states=Yt;R.options=Qt;R.className=Ce;import{jsx as je,jsxs as to}from"react/jsx-runtime";var Oe="k-input-inner",jt=[],eo={},Ee=e=>{let{value:t,placeholder:o,showValue:i,valueIcon:n,valueIconName:d,...p}=e;return to("span",{...p,className:r(e.className,Oe,v(Oe,e)),children:[n,!n&&d&&je(x,{className:"k-input-value-icon",icon:d}),i&&!t&&o,i&&t&&je("span",{className:"k-input-value-text",children:t})]})};Ee.states=jt;Ee.options=eo;Ee.className=Oe;import{jsx as ao}from"react/jsx-runtime";var Le="k-input-inner",oo=[],no={},et={value:"",placeholder:""},Ae=e=>{let{value:t=et.value,placeholder:o=et.placeholder,rows:i,disabled:n,...d}=e;return ao("textarea",{...d,className:r(e.className,Le,v(Le,e)),placeholder:o,rows:i,defaultValue:t,disabled:n||void 0})};Ae.states=oo;Ae.options=no;Ae.className=Le;import{Fragment as io,jsx as tt}from"react/jsx-runtime";var ot="k-input-loading-icon",so=[a.disabled,a.loading],F=e=>{let{disabled:t,loading:o}=e;return t||!o?tt(io,{}):tt("span",{className:r(e.className,ot,"k-icon k-i-loading")})};F.states=so;F.className=ot;import{Fragment as co,jsx as nt}from"react/jsx-runtime";var at="k-input-validation-icon",ro=[a.valid,a.invalid,a.disabled,a.loading],lo={},z=e=>{let{valid:t,invalid:o,disabled:i,loading:n}=e,d=o?"warning-circle":"check-circle";return i||n||!!!(t||o)?nt(co,{}):nt(x,{className:r(at),icon:d})};z.states=ro;z.options=lo;z.className=at;import{Fragment as mo,jsx as st}from"react/jsx-runtime";var po="k-input-prefix",uo={direction:"horizontal"},ce=e=>{let{direction:t=uo.direction,...o}=e;return e.children?st("span",{...o,className:r(po,e.className,{[`k-input-prefix-${t}`]:t}),children:e.children}):st(mo,{})};import{Fragment as bo,jsx as it}from"react/jsx-runtime";var fo="k-input-suffix",xo={direction:"horizontal"},pe=e=>{let{direction:t=xo.direction,...o}=e;return e.children?it("span",{...o,className:r(fo,e.className,{[`k-input-suffix-${t}`]:t}),children:e.children}):it(bo,{})};import{jsx as Aa}from"react/jsx-runtime";import{jsx as _a}from"react/jsx-runtime";import{jsx as No}from"react/jsx-runtime";var rt="k-input-separator",ho={direction:"vertical"},X=e=>{let{direction:t=ho.direction,...o}=e;return No("span",{...o,className:r(rt,e.className,{[`${rt}-${t}`]:t})})};import{Fragment as lt,jsx as L,jsxs as Pe}from"react/jsx-runtime";var vo=y.states,go=y.defaultOptions,Io=y.options,yo=[{name:"prefix",title:"Prefix"},{name:"suffix",title:"Suffix"},{name:"clear-button",title:"`Clear` Button"},{name:"validation-icon",title:"Validation Icon"},{name:"separators",title:"Separators"}],ko=[],q=e=>{let{modifiers:t,valid:o,invalid:i,loading:n,disabled:d,readonly:p,...c}=e,h=t?.prefix,N=t?.suffix,b=t?.["clear-button"],k=t?.["validation-icon"],T=t?.separators;return Pe(y,{...c,valid:o,invalid:i,loading:n,disabled:d,readonly:p,style:{width:300},children:[h&&Pe(lt,{children:[L(ce,{children:L(x,{icon:"lock"})}),T&&L(X,{})]}),L(R,{placeholder:"Placeholder",value:"Value"}),k&&L(z,{valid:o,invalid:i,loading:n,disabled:d}),L(F,{loading:n,disabled:d}),b&&L(K,{loading:n,disabled:d,readonly:p,value:"Value"}),N&&Pe(lt,{children:[T&&L(X,{}),L(pe,{children:L(_,{size:c.size,fillMode:"clear",children:"Send"})})]})]})};q.options=Io;q.states=vo;q.variants=ko;q.defaultOptions=go;q.modifiers=yo;q.className=y.className;import{Fragment as dt,jsx as P,jsxs as we}from"react/jsx-runtime";var ct="k-textbox",To=[a.hover,a.focus,a.valid,a.invalid,a.required,a.disabled,a.loading,a.readonly],So={size:[s.undefined,s.small,s.medium,s.large],rounded:[u.undefined,u.none,u.small,u.medium,u.large,u.full],fillMode:[m.undefined,m.solid,m.flat,m.outline]},ue={showClearButton:!0,showValidationIcon:!0,separators:!0},g=e=>{let{size:t,rounded:o,fillMode:i,separators:n=ue.separators,showClearButton:d=ue.showClearButton,showValidationIcon:p=ue.showValidationIcon,prefix:c,suffix:h,type:N,value:b,placeholder:k,hover:T,focus:H,valid:V,invalid:C,required:I,loading:S,disabled:O,readonly:te,id:me,"aria-label":fe,"aria-describedby":xe,...be}=e;return we(y,{...be,size:t,rounded:o,fillMode:i,hover:T,focus:H,valid:V,invalid:C,required:I,loading:S,disabled:O,readonly:te,className:r(e.className,ct),children:[c&&we(dt,{children:[P(ce,{children:c}),n&&P(X,{})]}),P(R,{id:me,placeholder:k,value:b,type:N,disabled:O,"aria-label":fe,"aria-describedby":xe,"aria-invalid":C?"true":void 0}),p&&P(z,{valid:V,invalid:C,loading:S,disabled:O}),P(F,{loading:S,disabled:O}),d&&P(K,{loading:S,disabled:O,readonly:te,value:b}),h&&we(dt,{children:[n&&P(X,{}),P(pe,{children:h})]})]})};g.states=To;g.options=So;g.className=ct;g.defaultOptions=ue;g.moduleName=Se;g.folderName=Qe;g.ariaSpec={selector:".k-textbox",rules:[{selector:".k-textbox > .k-input-inner",attribute:"role=textbox or nodeName=input",usage:"Describes the role of the component."},{selector:".k-textbox > .k-input-inner",attribute:"label for or aria-label or aria-labelledby (when has accessible name)",usage:"The input requires an accessible name (provided by consuming app)."},{selector:".k-textbox > .k-input-inner",attribute:"aria-invalid=true (when invalid)",usage:"Rendered when the TextBox is in an invalid state."},{selector:".k-textbox > .k-input-inner",attribute:"aria-describedby (when has hint or error)",usage:"Points to the hint or error message for the input."},{selector:".k-textbox.k-disabled > .k-input-inner",attribute:"disabled=disabled or aria-disabled=true",usage:"Rendered when the TextBox is disabled."}]};var j=g;import{jsx as Mo}from"react/jsx-runtime";var pt=e=>Mo(j,{...e});import{Fragment as Cs,jsx as Ms}from"react/jsx-runtime";import{Fragment as ws,jsx as Ps}from"react/jsx-runtime";import{jsx as Rs}from"react/jsx-runtime";import{jsx as Be}from"react/jsx-runtime";var Co=g.states,Oo=g.defaultOptions,Eo=g.options,Lo=[{name:"prefix",title:"Prefix"},{name:"suffix",title:"Suffix"},{name:"clear-button",title:"`Clear` Button"}],Ao=[],G=e=>{let{modifiers:t,...o}=e,i={};return Object.keys(t||{}).forEach(n=>{switch(n){case"prefix":i.prefix=t?.[n]?Be(x,{icon:"lock"}):void 0;break;case"suffix":i.suffix=t?.[n]?Be(_,{size:o.size,fillMode:"clear",children:"Send"}):void 0;break;case"clear-button":i.showClearButton=t?.[n];break;default:break}}),Be(pt,{value:"Value",style:{width:300},...o,...i})};G.options=Eo;G.states=Co;G.variants=Ao;G.defaultOptions=Oo;G.modifiers=Lo;G.className=g.className;var _e="skeleton",ut=_e;import{jsx as _o}from"react/jsx-runtime";var Ke="k-skeleton",Po=["circle","text","rect"],wo=[],Bo={},Re={variant:"text",shape:"text",animation:"pulse"},M=e=>{let{variant:t,shape:o,animation:i=Re.animation,...n}=e,d=`skeleton-${t||o||Re.variant}`;return _o("span",{...n,className:r(e.className,Ke,oe(Ke,d),{[`k-skeleton-${i}`]:i}),style:e.style})};M.states=wo;M.options=Bo;M.variants=Po;M.className=Ke;M.defaultOptions=Re;M.moduleName=_e;M.folderName=ut;M.ariaSpec={selector:".k-skeleton",rules:[]};import{jsx as ii}from"react/jsx-runtime";import{jsx as Ko}from"react/jsx-runtime";var mt=e=>Ko(M,{shape:"rect",...e});import{jsx as mi}from"react/jsx-runtime";var ze="captcha",ft=ze;import{jsx as w,jsxs as ee}from"react/jsx-runtime";var He="k-captcha",Ro=[a.loading,a.valid,a.invalid,a.disabled],zo={},xt={imgPath:"/packages/html/assets/captcha.jpg"},B=e=>{let{value:t,valid:o,invalid:i,loading:n,disabled:d,imgPath:p=xt.imgPath,...c}=e;return ee("div",{...c,className:r(e.className,He,A(He,{disabled:d}),{"k-captcha-loading":n}),children:[ee("div",{className:"k-captcha-image-wrap k-hstack",children:[ee("div",{className:"k-captcha-image",children:[w("img",{className:r({"k-hidden":n}),src:p,alt:"Captcha image"}),n&&w(mt,{style:{width:"100%",height:"100%"}})]}),ee("div",{className:"k-captcha-image-controls k-vstack",children:[w(f,{icon:"volume-up",disabled:n===!0,"aria-label":"Play audio"}),w(f,{icon:"arrow-rotate-cw",disabled:n===!0,"aria-label":"Refresh captcha"})]}),w("div",{className:"k-captcha-volume-control k-vstack k-pos-absolute k-hidden",children:w("div",{className:"k-slider k-slider-vertical"})})]}),ee("div",{className:"k-captcha-input k-vstack",children:[w(g,{value:t,valid:o,invalid:i,disabled:n===!0,"aria-label":"Captcha code"}),o&&!n&&w("span",{className:"k-captcha-validation-message !k-text-success",children:"Verification Success"})]})]})};B.states=Ro;B.options=zo;B.className=He;B.defaultOptions=xt;B.moduleName=ze;B.folderName=ft;import{jsx as Ho}from"react/jsx-runtime";var Ei=e=>Ho(B,{value:"YR890",...e});export{Ei as CaptchaNormal};