@charcoal-ui/react 2.0.0-alpha.20 → 2.0.0-alpha.21

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.
@@ -1,2 +1,1040 @@
1
- import n,{useContext as e,useCallback as r,createContext as t,useMemo as a,useRef as i,useState as o,useEffect as l}from"react";import c,{css as u}from"styled-components";import{createTheme as s}from"@charcoal-ui/styled";import{disabledSelector as d,px as f}from"@charcoal-ui/utils";import p from"warning";import{useSwitch as h}from"@react-aria/switch";import{useToggleState as v}from"react-stately";import{useTextField as g}from"@react-aria/textfield";import{useVisuallyHidden as b}from"@react-aria/visually-hidden";import"@charcoal-ui/icons";function m(){return m=Object.assign||function(n){for(var e=1;e<arguments.length;e++){var r=arguments[e];for(var t in r)Object.prototype.hasOwnProperty.call(r,t)&&(n[t]=r[t])}return n},m.apply(this,arguments)}function x(n,e){if(null==n)return{};var r,t,a={},i=Object.keys(n);for(t=0;t<i.length;t++)e.indexOf(r=i[t])>=0||(a[r]=n[r]);return a}function y(n,e){return e||(e=n.slice(0)),n.raw=e,n}function w(n,e){(null==e||e>n.length)&&(e=n.length);for(var r=0,t=new Array(e);r<e;r++)t[r]=n[r];return t}function E(n,e){var r="undefined"!=typeof Symbol&&n[Symbol.iterator]||n["@@iterator"];if(r)return(r=r.call(n)).next.bind(r);if(Array.isArray(n)||(r=function(n,e){if(n){if("string"==typeof n)return w(n,e);var r=Object.prototype.toString.call(n).slice(8,-1);return"Object"===r&&n.constructor&&(r=n.constructor.name),"Map"===r||"Set"===r?Array.from(n):"Arguments"===r||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(r)?w(n,e):void 0}}(n))||e&&n&&"number"==typeof n.length){r&&(n=r);var t=0;return function(){return t>=n.length?{done:!0}:{done:!1,value:n[t++]}}}throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}var k=["to","children"],C={Link:n.forwardRef(function(e,r){var t=e.to,a=e.children,i=x(e,k);/*#__PURE__*/return n.createElement("a",m({href:t,ref:r},i),a)})},R=n.createContext(C);function S(e){var r=e.children;/*#__PURE__*/return n.createElement(R.Provider,{value:m({},C,e.components)},r)}function P(){return e(R)}var z,L,N,O,T,q,D,M,H,j=s(c),A=["onClick","disabled"],I=n.forwardRef(function(e,r){var t=P().Link;if("to"in e){var a=e.onClick,i=e.disabled,o=void 0!==i&&i,l=x(e,A);/*#__PURE__*/return n.createElement(B,m({},l,{as:o?void 0:t,onClick:o?void 0:a,"aria-disabled":o,ref:r}))}/*#__PURE__*/return n.createElement(F,m({},e,{ref:r}))}),G=u(z||(z=y(["\n /* Clickable style */\n cursor: pointer;\n\n "," {\n cursor: default;\n }\n"])),d),F=c.button(L||(L=y(["\n /* Reset button appearance */\n appearance: none;\n background: transparent;\n padding: 0;\n border-style: none;\n outline: none;\n color: inherit;\n text-rendering: inherit;\n letter-spacing: inherit;\n word-spacing: inherit;\n\n &:focus {\n outline: none;\n }\n\n /* Change the font styles in all browsers. */\n font: inherit;\n\n /* Remove the margin in Firefox and Safari. */\n margin: 0;\n\n /* Show the overflow in Edge. */\n overflow: visible;\n\n /* Remove the inheritance of text transform in Firefox. */\n text-transform: none;\n\n /* Remove the inner border and padding in Firefox. */\n &::-moz-focus-inner {\n border-style: none;\n padding: 0;\n }\n\n ","\n"])),G),B=c.span(N||(N=y(["\n /* Reset a-tag appearance */\n color: inherit;\n\n &:focus {\n outline: none;\n }\n\n .text {\n top: calc(1em + 2em);\n }\n\n ","\n"])),G),X=["children","variant","size","fixed","disabled"],Y=n.forwardRef(function(e,r){var t=e.children,a=e.variant,i=void 0===a?"Default":a,o=e.size,l=void 0===o?"M":o,c=e.fixed,u=void 0!==c&&c,s=e.disabled,d=void 0!==s&&s,f=x(e,X);/*#__PURE__*/return n.createElement(J,m({},f,{disabled:d,variant:i,size:l,fixed:u,ref:r}),t)}),J=c(I).withConfig({shouldForwardProp:function(n){return"fixed"!==n}}).attrs(function(n){return m({},n,function(n){switch(n){case"Overlay":return{font:"text5",background:"surface4"};case"Default":return{font:"text2",background:"surface3"};case"Primary":return{font:"text5",background:"brand"};case"Navigation":return{font:"text5",background:"surface6"};case"Danger":return{font:"text5",background:"assertive"};default:return function(n){throw new Error(0===arguments.length?"unreachable":"unreachable ("+JSON.stringify(n)+")")}(n)}}(n.variant),function(n){switch(n){case"S":return{height:32,padding:16};case"M":return{height:40,padding:24}}}(n.size))})(O||(O=y(["\n width: ",";\n display: inline-grid;\n align-items: center;\n justify-content: center;\n cursor: pointer;\n user-select: none;\n white-space: nowrap;\n\n ","\n\n /* よく考えたらheight=32って定義が存在しないな... */\n height: ","px;\n"])),function(n){return n.fixed?"stretch":"min-content"},function(n){return j(function(e){return[e.font[n.font].hover.press,e.bg[n.background].hover.press,e.typography(14).bold.preserveHalfLeading,e.padding.horizontal(n.padding),e.disabled,e.borderRadius("oval"),e.outline.default.focus]})},function(n){return n.height}),U=["variant","size","icon"],$=n.forwardRef(function(e,r){var t=e.variant,a=void 0===t?"Default":t,i=e.size,o=void 0===i?"M":i,l=e.icon,c=x(e,U);return function(n,e){var r;switch(n){case"XS":r="16";break;case"S":case"M":r="24"}var t=/^[0-9]*/.exec(e);if(null==t)throw new Error("Invalid icon name");var a=t[0];a!==r&&console.warn('IconButton with size "'+n+'" expect icon size "'+r+', but got "'+a+'"')}(o,l),/*#__PURE__*/n.createElement(K,m({},c,{ref:r,variant:a,size:o}),/*#__PURE__*/n.createElement("pixiv-icon",{name:l}))}),K=c(I).attrs(function(n){return m({},n,function(n){switch(n){case"Default":return{font:"text3",background:"transparent"};case"Overlay":return{font:"text5",background:"surface4"}}}(n.variant),function(n){switch(n){case"XS":return{width:20,height:20};case"S":return{width:32,height:32};case"M":return{width:40,height:40}}}(n.size))})(T||(T=y(["\n user-select: none;\n\n width: ","px;\n height: ","px;\n display: flex;\n align-items: center;\n justify-content: center;\n\n ","\n"])),function(n){return n.width},function(n){return n.height},function(n){var e=n.font,r=n.background;return j(function(n){return[n.font[e],n.bg[r].hover.press,n.disabled,n.borderRadius("oval"),n.outline.default.focus]})});function Q(t){var a=t.value,i=t.forceChecked,o=void 0!==i&&i,l=t.disabled,c=void 0!==l&&l,u=t.children,s=e(nn),d=s.name,f=s.selected,h=s.disabled,v=s.readonly,g=s.hasError,b=s.onChange;p(void 0!==d,'"name" is not Provided for <Radio>. Perhaps you forgot to wrap with <RadioGroup> ?');var m=a===f,x=c||h,y=v&&!m,w=r(function(n){b(n.currentTarget.value)},[b]);/*#__PURE__*/return n.createElement(V,{"aria-disabled":x||y},/*#__PURE__*/n.createElement(W,{name:d,value:a,checked:o||m,hasError:g,onChange:w,disabled:x||y}),null!=u&&/*#__PURE__*/n.createElement(Z,null,u))}var V=c.label(q||(q=y(["\n display: grid;\n grid-template-columns: auto 1fr;\n grid-gap: ",";\n align-items: center;\n cursor: pointer;\n\n ","\n"])),function(n){return f(n.theme.spacing[4])},j(function(n){return[n.disabled]})),W=c.input.attrs({type:"radio"})(D||(D=y(["\n /** Make prior to browser default style */\n &[type='radio'] {\n appearance: none;\n display: block;\n box-sizing: border-box;\n\n padding: 6px;\n\n width: 20px;\n height: 20px;\n\n ",";\n\n &:not(:checked) {\n border-width: 2px;\n border-style: solid;\n border-color: ",";\n }\n\n &:checked {\n ","\n\n &::after {\n content: '';\n display: block;\n width: 8px;\n height: 8px;\n pointer-events: none;\n\n ","\n }\n }\n\n ","\n }\n"])),function(n){var e=n.hasError,r=void 0!==e&&e;return j(function(n){return[n.borderRadius("oval"),n.bg.text5.hover.press,r&&n.outline.assertive]})},function(n){return n.theme.color.text4},j(function(n){return n.bg.brand.hover.press}),j(function(n){return[n.bg.text5.hover.press,n.borderRadius("oval")]}),j(function(n){return n.outline.default.focus})),Z=c.div(M||(M=y(["\n ","\n"])),j(function(n){return[n.typography(14)]})),_=c.div(H||(H=y(["\n display: grid;\n grid-template-columns: 1fr;\n grid-gap: ",";\n"])),function(n){return f(n.theme.spacing[8])}),nn=n.createContext({name:void 0,selected:void 0,disabled:!1,readonly:!1,hasError:!1,onChange:function(){throw new Error("Cannot find onChange() handler. Perhaps you forgot to wrap with <RadioGroup> ?")}});function en(e){var t=e.className,a=e.value,i=e.label,o=e.name,l=e.onChange,c=e.disabled,u=e.readonly,s=e.hasError,d=e.children,f=r(function(n){l(n)},[l]);/*#__PURE__*/return n.createElement(nn.Provider,{value:{name:o,selected:a,disabled:null!=c&&c,readonly:null!=u&&u,hasError:null!=s&&s,onChange:f}},/*#__PURE__*/n.createElement(_,{role:"radiogroup","aria-orientation":"vertical","aria-label":i,"aria-invalid":s,className:t},d))}var rn,tn,an,on,ln,cn=t({name:void 0,selected:[],disabled:!1,readonly:!1,hasError:!1,onChange:function(){throw new Error("Cannot find `onChange()` handler. Perhaps you forgot to wrap it with `<SelectGroup />` ?")}});function un(t){var a=t.value,i=t.forceChecked,o=void 0!==i&&i,l=t.disabled,c=void 0!==l&&l,u=t.onChange,s=t.variant,d=void 0===s?"default":s,f=t.children,h=e(cn),v=h.name,g=h.selected,b=h.disabled,m=h.readonly,x=h.hasError,y=h.onChange;p(void 0!==v,'"name" is not Provided for <Select>. Perhaps you forgot to wrap with <SelectGroup> ?');var w=g.includes(a)||o,E=c||b||m,k=r(function(n){n.currentTarget instanceof HTMLInputElement&&(u&&u({value:a,selected:n.currentTarget.checked}),y({value:a,selected:n.currentTarget.checked}))},[u,y,a]);/*#__PURE__*/return n.createElement(pn,{"aria-disabled":E},/*#__PURE__*/n.createElement(vn,{name:v,value:a,hasError:x,checked:w,disabled:E,onChange:k,overlay:"overlay"===d,"aria-invalid":x}),/*#__PURE__*/n.createElement(gn,{overlay:"overlay"===d,hasError:x,"aria-hidden":!0},/*#__PURE__*/n.createElement("pixiv-icon",{name:"24/Check","unsafe-non-guideline-scale":16/24})),Boolean(f)&&/*#__PURE__*/n.createElement(hn,null,f))}var sn,dn,fn,pn=c.label(rn||(rn=y(["\n display: grid;\n grid-template-columns: auto 1fr;\n align-items: center;\n position: relative;\n cursor: pointer;\n "," {\n cursor: default;\n }\n gap: ",";\n ","\n"])),d,function(n){return f(n.theme.spacing[4])},j(function(n){return n.disabled})),hn=c.div(tn||(tn=y(["\n display: flex;\n align-items: center;\n ","\n"])),j(function(n){return[n.typography(14),n.font.text1]})),vn=c.input.attrs({type:"checkbox"})(an||(an=y(["\n &[type='checkbox'] {\n appearance: none;\n display: block;\n width: 20px;\n height: 20px;\n margin: 0;\n\n &:checked {\n ","\n }\n\n ",";\n }\n"])),j(function(n){return n.bg.brand.hover.press}),function(n){var e=n.hasError,r=n.overlay;return j(function(n){return[n.bg.text3.hover.press,n.borderRadius("oval"),e&&!r&&n.outline.assertive,r&&n.bg.surface4]})}),gn=c.div(on||(on=y(["\n position: absolute;\n top: -2px;\n left: -2px;\n box-sizing: border-box;\n display: flex;\n align-items: center;\n justify-content: center;\n\n ","\n\n ","\n"])),function(n){var e=n.hasError,r=n.overlay;return j(function(n){return[n.width.px(24),n.height.px(24),n.borderRadius("oval"),n.font.text5,e&&r&&n.outline.assertive]})},function(n){return n.overlay&&u(ln||(ln=y(["\n border-color: ",";\n border-width: 2px;\n border-style: solid;\n "])),function(n){return n.theme.color.text5})});function bn(e){var t=e.className,a=e.name,i=e.ariaLabel,o=e.selected,l=e.onChange,c=e.disabled,u=void 0!==c&&c,s=e.readonly,d=void 0!==s&&s,f=e.hasError,p=void 0!==f&&f,h=e.children,v=r(function(n){var e=o.indexOf(n.value);n.selected?e<0&&l([].concat(o,[n.value])):e>=0&&l([].concat(o.slice(0,e),o.slice(e+1)))},[l,o]);/*#__PURE__*/return n.createElement(cn.Provider,{value:{name:a,selected:Array.from(new Set(o)),disabled:u,readonly:d,hasError:p,onChange:v}},/*#__PURE__*/n.createElement("div",{className:t,"aria-label":i,"data-testid":"SelectGroup"},h))}var mn=["className","type"];function xn(e){var r=e.disabled,t=e.className,o=a(function(){return m({},e,{"aria-label":"children"in e?void 0:e.label,isDisabled:e.disabled,isSelected:e.checked})},[e]),l=v(o),c=i(null),u=x(h(o,l,c).inputProps,mn);/*#__PURE__*/return n.createElement(An,{className:t,"aria-disabled":r},/*#__PURE__*/n.createElement(Gn,m({},u,{ref:c})),"children"in e?/*#__PURE__*/n.createElement(In,null,e.children):void 0)}var yn,wn,En,kn,Cn,Rn,Sn,Pn,zn,Ln,Nn,On,Tn,qn,Dn,Mn,Hn,jn,An=c.label(sn||(sn=y(["\n display: inline-grid;\n grid-template-columns: auto 1fr;\n gap: ",";\n cursor: pointer;\n outline: 0;\n\n ","\n\n "," {\n cursor: default;\n }\n"])),function(n){return f(n.theme.spacing[4])},j(function(n){return n.disabled}),d),In=c.div(dn||(dn=y(["\n ","\n"])),j(function(n){return n.typography(14)})),Gn=c.input.attrs({type:"checkbox"})(fn||(fn=y(["\n &[type='checkbox'] {\n appearance: none;\n display: inline-flex;\n position: relative;\n box-sizing: border-box;\n width: 28px;\n border: 2px solid transparent;\n transition: box-shadow 0.2s, background-color 0.2s;\n cursor: inherit;\n ","\n\n &::after {\n content: '';\n position: absolute;\n display: block;\n top: 0;\n left: 0;\n width: 12px;\n height: 12px;\n transform: translateX(0);\n transition: transform 0.2s;\n ","\n }\n\n &:checked {\n ","\n\n &::after {\n transform: translateX(12px);\n }\n }\n }\n"])),j(function(n){return[n.borderRadius(16),n.height.px(16),n.bg.text4.hover.press,n.outline.default.focus]}),j(function(n){return[n.bg.text5.hover.press,n.borderRadius("oval")]}),j(function(n){return n.bg.brand.hover.press})),Fn=["style","className","label","required","requiredText","subLabel"],Bn=n.forwardRef(function(e,r){var t=e.style,a=e.className,i=e.label,o=e.required,l=void 0!==o&&o,c=e.requiredText,u=e.subLabel,s=x(e,Fn);/*#__PURE__*/return n.createElement($n,{style:t,className:a},/*#__PURE__*/n.createElement(Yn,m({ref:r},s),i),l&&/*#__PURE__*/n.createElement(Jn,null,c),/*#__PURE__*/n.createElement(Un,null,/*#__PURE__*/n.createElement("span",null,u)))}),Xn=s(c),Yn=c.label(yn||(yn=y(["\n ","\n"])),Xn(function(n){return[n.typography(14).bold,n.font.text1]})),Jn=c.span(wn||(wn=y(["\n ","\n"])),Xn(function(n){return[n.typography(14),n.font.text3]})),Un=c.div(En||(En=y(["\n ","\n"])),Xn(function(n){return[n.typography(14),n.font.text3.hover.press,n.outline.default.focus]})),$n=c.div(kn||(kn=y(["\n display: inline-flex;\n align-items: center;\n\n > "," {\n ","\n }\n\n > "," {\n ","\n }\n"])),Jn,Xn(function(n){return n.margin.left(4)}),Un,Xn(function(n){return n.margin.left("auto")})),Kn=["onChange"],Qn=["onChange"],Vn=s(c);function Wn(){var n=arguments;return function(e){for(var r,t=E([].slice.call(n));!(r=t()).done;){var a=r.value;"function"==typeof a?a(e):null!==a&&(a.current=e)}}}function Zn(n){return Array.from(n).length}var _n=n.forwardRef(function(e,r){/*#__PURE__*/return n.createElement(void 0!==e.multiline&&e.multiline?ee:ne,m({ref:r},e))}),ne=n.forwardRef(function(e,t){var a,c=e.onChange,u=x(e,Kn),s=u.className,d=u.showLabel,f=void 0!==d&&d,p=u.showCount,h=void 0!==p&&p,v=u.label,y=u.requiredText,w=u.subLabel,E=u.disabled,k=void 0!==E&&E,C=u.required,R=u.invalid,S=void 0!==R&&R,P=u.assistiveText,z=u.maxLength,L=u.prefix,N=void 0===L?null:L,O=u.suffix,T=void 0===O?null:O,q=b().visuallyHiddenProps,D=i(null),M=i(null),H=i(null),j=o(Zn(null!=(a=u.value)?a:"")),A=j[0],I=j[1],G=o(0),F=G[0],B=G[1],X=o(0),Y=X[0],J=X[1],U=void 0===u.value,$=r(function(n){var e=Zn(n);void 0!==z&&e>z||(U&&I(e),null==c||c(n))},[z,U,c]);l(function(){var n;I(Zn(null!=(n=u.value)?n:""))},[u.value]);var K=g(m({inputElementType:"input",isDisabled:k,isRequired:C,validationState:S?"invalid":"valid",description:!S&&P,errorMessage:S&&P,onChange:$},u),D),Q=K.inputProps,V=K.labelProps,W=K.descriptionProps,Z=K.errorMessageProps;return l(function(){var n=new ResizeObserver(function(n){B(n[0].contentRect.width)}),e=new ResizeObserver(function(n){J(n[0].contentRect.width)});return null!==M.current&&n.observe(M.current),null!==H.current&&e.observe(H.current),function(){e.disconnect(),n.disconnect()}},[]),/*#__PURE__*/n.createElement(re,{className:s,isDisabled:k},/*#__PURE__*/n.createElement(te,m({label:v,requiredText:y,required:C,subLabel:w},V,f?{}:q)),/*#__PURE__*/n.createElement(ae,null,/*#__PURE__*/n.createElement(ie,{ref:M},/*#__PURE__*/n.createElement(le,null,N)),/*#__PURE__*/n.createElement(ce,m({ref:Wn(t,D),invalid:S,extraLeftPadding:F,extraRightPadding:Y},Q)),/*#__PURE__*/n.createElement(oe,{ref:H},/*#__PURE__*/n.createElement(le,null,T),h&&/*#__PURE__*/n.createElement(de,null,void 0!==z?A+"/"+z:A))),null!=P&&0!==P.length&&/*#__PURE__*/n.createElement(pe,m({invalid:S},S?Z:W),P))}),ee=n.forwardRef(function(e,t){var a,c=e.onChange,u=x(e,Qn),s=u.className,d=u.showCount,f=void 0!==d&&d,p=u.showLabel,h=void 0!==p&&p,v=u.label,y=u.requiredText,w=u.subLabel,E=u.disabled,k=void 0!==E&&E,C=u.required,R=u.invalid,S=void 0!==R&&R,P=u.assistiveText,z=u.maxLength,L=u.autoHeight,N=void 0!==L&&L,O=u.rows,T=void 0===O?4:O,q=b().visuallyHiddenProps,D=i(null),M=i(null),H=o(Zn(null!=(a=u.value)?a:"")),j=H[0],A=H[1],I=o(T),G=I[0],F=I[1],B=r(function(n){var e,r,t=null!=(e=null==(r=(n.value+"\n").match(/\n/g))?void 0:r.length)?e:1;T<=t&&F(t)},[T]),X=void 0===u.value,Y=r(function(n){var e=Zn(n);void 0!==z&&e>z||(X&&A(e),N&&null!==D.current&&B(D.current),null==c||c(n))},[N,z,X,c,B]);l(function(){var n;A(Zn(null!=(n=u.value)?n:""))},[u.value]);var J=g(m({inputElementType:"textarea",isDisabled:k,isRequired:C,validationState:S?"invalid":"valid",description:!S&&P,errorMessage:S&&P,onChange:Y},u),M),U=J.inputProps,$=J.labelProps,K=J.descriptionProps,Q=J.errorMessageProps;return l(function(){N&&null!==D.current&&B(D.current)},[N,B]),/*#__PURE__*/n.createElement(re,{className:s,isDisabled:k},/*#__PURE__*/n.createElement(te,m({label:v,requiredText:y,required:C,subLabel:w},$,h?{}:q)),/*#__PURE__*/n.createElement(ue,{invalid:S,rows:f?G+1:G},/*#__PURE__*/n.createElement(se,m({ref:Wn(D,t,M),rows:G,noBottomPadding:f},U)),f&&/*#__PURE__*/n.createElement(fe,null,void 0!==z?j+"/"+z:j)),null!=P&&0!==P.length&&/*#__PURE__*/n.createElement(pe,m({invalid:S},S?Q:K),P))}),re=c.div(Cn||(Cn=y(["\n display: flex;\n flex-direction: column;\n\n ","\n"])),function(n){return n.isDisabled&&{opacity:n.theme.elementEffect.disabled.opacity}}),te=c(Bn)(Rn||(Rn=y(["\n ","\n"])),Vn(function(n){return n.margin.bottom(8)})),ae=c.div(Sn||(Sn=y(["\n height: 40px;\n display: grid;\n position: relative;\n"]))),ie=c.span(Pn||(Pn=y(["\n position: absolute;\n top: 50%;\n left: 8px;\n transform: translateY(-50%);\n"]))),oe=c.span(zn||(zn=y(["\n position: absolute;\n top: 50%;\n right: 8px;\n transform: translateY(-50%);\n\n display: flex;\n gap: 8px;\n"]))),le=c.span(Ln||(Ln=y(["\n user-select: none;\n\n ","\n"])),Vn(function(n){return[n.typography(14).preserveHalfLeading,n.font.text2]})),ce=c.input(Nn||(Nn=y(["\n border: none;\n box-sizing: border-box;\n outline: none;\n font-family: inherit;\n\n /* Prevent zooming for iOS Safari */\n transform-origin: top left;\n transform: scale(0.875);\n width: calc(100% / 0.875);\n height: calc(100% / 0.875);\n font-size: calc(14px / 0.875);\n line-height: calc(22px / 0.875);\n padding-left: calc((8px + ","px) / 0.875);\n padding-right: calc((8px + ","px) / 0.875);\n border-radius: calc(4px / 0.875);\n\n /* Display box-shadow for iOS Safari */\n appearance: none;\n\n ","\n\n &::placeholder {\n ","\n }\n"])),function(n){return n.extraLeftPadding},function(n){return n.extraRightPadding},function(n){return Vn(function(e){return[e.bg.surface3.hover,e.outline.default.focus,n.invalid&&e.outline.assertive,e.font.text2]})},Vn(function(n){return n.font.text3})),ue=c.div(On||(On=y(["\n position: relative;\n overflow: hidden;\n padding: 0 8px;\n\n ","\n\n &:focus-within {\n ","\n }\n\n ",";\n"])),function(n){return Vn(function(e){return[e.bg.surface3.hover,n.invalid&&e.outline.assertive,e.font.text2,e.borderRadius(4)]})},function(n){return Vn(function(e){return n.invalid?e.outline.assertive:e.outline.default})},function(n){var e=n.rows;return u(Tn||(Tn=y(["\n height: calc(22px * "," + 18px);\n "])),e)}),se=c.textarea(qn||(qn=y(["\n border: none;\n outline: none;\n resize: none;\n font-family: inherit;\n color: inherit;\n\n /* Prevent zooming for iOS Safari */\n transform-origin: top left;\n transform: scale(0.875);\n width: calc(100% / 0.875);\n font-size: calc(14px / 0.875);\n line-height: calc(22px / 0.875);\n padding: calc(9px / 0.875) 0 ",";\n\n ",";\n\n /* Display box-shadow for iOS Safari */\n appearance: none;\n\n background: none;\n\n &::placeholder {\n ","\n }\n\n /* Hide scrollbar for Chrome, Safari and Opera */\n &::-webkit-scrollbar {\n display: none;\n }\n /* Hide scrollbar for IE, Edge and Firefox */\n -ms-overflow-style: none; /* IE and Edge */\n scrollbar-width: none; /* Firefox */\n"])),function(n){return n.noBottomPadding?0:""},function(n){var e=n.rows,r=void 0===e?1:e;return u(Dn||(Dn=y(["\n height: calc(22px / 0.875 * ",");\n "])),r)},Vn(function(n){return n.font.text3})),de=c.span(Mn||(Mn=y(["\n ","\n"])),Vn(function(n){return[n.typography(14).preserveHalfLeading,n.font.text3]})),fe=c.span(Hn||(Hn=y(["\n position: absolute;\n bottom: 9px;\n right: 8px;\n\n ","\n"])),Vn(function(n){return[n.typography(14).preserveHalfLeading,n.font.text3]})),pe=c.p(jn||(jn=y(["\n ","\n"])),function(n){return Vn(function(e){return[e.typography(14),e.margin.top(8),e.margin.bottom(0),e.font[n.invalid?"assertive":"text1"]]})}),he=["name","scale","unsafeNonGuidelineScale","className"],ve=n.forwardRef(function(e,r){var t=e.name,a=e.scale,i=e.unsafeNonGuidelineScale,o=e.className,l=x(e,he);/*#__PURE__*/return n.createElement("pixiv-icon",m({ref:r,name:t,scale:a,"unsafe-non-guideline-scale":i,class:o},l))});export{Y as Button,I as Clickable,S as ComponentAbstraction,ve as Icon,$ as IconButton,Q as Radio,en as RadioGroup,un as Select,bn as SelectGroup,xn as Switch,_n as TextField,P as useComponentAbstraction};
1
+ import React, { useContext, useCallback, createContext, useMemo, useRef, useState, useEffect } from 'react';
2
+ export { SSRProvider } from '@react-aria/ssr';
3
+ import styled, { css } from 'styled-components';
4
+ import { createTheme } from '@charcoal-ui/styled';
5
+ import { disabledSelector, px } from '@charcoal-ui/utils';
6
+ import warning from 'warning';
7
+ import { useSwitch } from '@react-aria/switch';
8
+ import { useToggleState } from 'react-stately';
9
+ import { useTextField } from '@react-aria/textfield';
10
+ import { useVisuallyHidden } from '@react-aria/visually-hidden';
11
+ import '@charcoal-ui/icons';
12
+
13
+ function _extends() {
14
+ _extends = Object.assign || function (target) {
15
+ for (var i = 1; i < arguments.length; i++) {
16
+ var source = arguments[i];
17
+
18
+ for (var key in source) {
19
+ if (Object.prototype.hasOwnProperty.call(source, key)) {
20
+ target[key] = source[key];
21
+ }
22
+ }
23
+ }
24
+
25
+ return target;
26
+ };
27
+
28
+ return _extends.apply(this, arguments);
29
+ }
30
+
31
+ function _objectWithoutPropertiesLoose(source, excluded) {
32
+ if (source == null) return {};
33
+ var target = {};
34
+ var sourceKeys = Object.keys(source);
35
+ var key, i;
36
+
37
+ for (i = 0; i < sourceKeys.length; i++) {
38
+ key = sourceKeys[i];
39
+ if (excluded.indexOf(key) >= 0) continue;
40
+ target[key] = source[key];
41
+ }
42
+
43
+ return target;
44
+ }
45
+
46
+ function _taggedTemplateLiteralLoose(strings, raw) {
47
+ if (!raw) {
48
+ raw = strings.slice(0);
49
+ }
50
+
51
+ strings.raw = raw;
52
+ return strings;
53
+ }
54
+
55
+ function _unsupportedIterableToArray(o, minLen) {
56
+ if (!o) return;
57
+ if (typeof o === "string") return _arrayLikeToArray(o, minLen);
58
+ var n = Object.prototype.toString.call(o).slice(8, -1);
59
+ if (n === "Object" && o.constructor) n = o.constructor.name;
60
+ if (n === "Map" || n === "Set") return Array.from(o);
61
+ if (n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen);
62
+ }
63
+
64
+ function _arrayLikeToArray(arr, len) {
65
+ if (len == null || len > arr.length) len = arr.length;
66
+
67
+ for (var i = 0, arr2 = new Array(len); i < len; i++) arr2[i] = arr[i];
68
+
69
+ return arr2;
70
+ }
71
+
72
+ function _createForOfIteratorHelperLoose(o, allowArrayLike) {
73
+ var it = typeof Symbol !== "undefined" && o[Symbol.iterator] || o["@@iterator"];
74
+ if (it) return (it = it.call(o)).next.bind(it);
75
+
76
+ if (Array.isArray(o) || (it = _unsupportedIterableToArray(o)) || allowArrayLike && o && typeof o.length === "number") {
77
+ if (it) o = it;
78
+ var i = 0;
79
+ return function () {
80
+ if (i >= o.length) return {
81
+ done: true
82
+ };
83
+ return {
84
+ done: false,
85
+ value: o[i++]
86
+ };
87
+ };
88
+ }
89
+
90
+ throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.");
91
+ }
92
+
93
+ var _excluded$7 = ["to", "children"];
94
+ var DefaultLink = React.forwardRef(function DefaultLink(_ref, ref) {
95
+ var to = _ref.to,
96
+ children = _ref.children,
97
+ rest = _objectWithoutPropertiesLoose(_ref, _excluded$7);
98
+
99
+ return /*#__PURE__*/React.createElement("a", _extends({
100
+ href: to,
101
+ ref: ref
102
+ }, rest), children);
103
+ });
104
+ var DefaultValue = {
105
+ Link: DefaultLink
106
+ };
107
+ var ComponentAbstractionContext = React.createContext(DefaultValue);
108
+ function ComponentAbstraction(_ref2) {
109
+ var children = _ref2.children,
110
+ components = _ref2.components;
111
+ return /*#__PURE__*/React.createElement(ComponentAbstractionContext.Provider, {
112
+ value: _extends({}, DefaultValue, components)
113
+ }, children);
114
+ }
115
+ function useComponentAbstraction() {
116
+ return useContext(ComponentAbstractionContext);
117
+ }
118
+
119
+ /**
120
+ * 今後ポートされる予定の汎用的な関数群
121
+ */
122
+ function unreachable(value) {
123
+ throw new Error(arguments.length === 0 ? 'unreachable' : "unreachable (" + JSON.stringify(value) + ")");
124
+ }
125
+
126
+ var theme$2 = createTheme(styled);
127
+
128
+ var _templateObject$7, _templateObject2$5, _templateObject3$5;
129
+
130
+ var _excluded$6 = ["onClick", "disabled"];
131
+ var Clickable = React.forwardRef(function Clickable(props, ref) {
132
+ var _useComponentAbstract = useComponentAbstraction(),
133
+ Link = _useComponentAbstract.Link;
134
+
135
+ if ('to' in props) {
136
+ var onClick = props.onClick,
137
+ _props$disabled = props.disabled,
138
+ disabled = _props$disabled === void 0 ? false : _props$disabled,
139
+ rest = _objectWithoutPropertiesLoose(props, _excluded$6);
140
+
141
+ return /*#__PURE__*/React.createElement(A, _extends({}, rest, {
142
+ as: disabled ? undefined : Link,
143
+ onClick: disabled ? undefined : onClick,
144
+ "aria-disabled": disabled,
145
+ ref: ref
146
+ }));
147
+ } else {
148
+ return /*#__PURE__*/React.createElement(Button$1, _extends({}, props, {
149
+ ref: ref
150
+ }));
151
+ }
152
+ });
153
+ var clickableCss = css(_templateObject$7 || (_templateObject$7 = _taggedTemplateLiteralLoose(["\n /* Clickable style */\n cursor: pointer;\n\n ", " {\n cursor: default;\n }\n"])), disabledSelector);
154
+ var Button$1 = styled.button(_templateObject2$5 || (_templateObject2$5 = _taggedTemplateLiteralLoose(["\n /* Reset button appearance */\n appearance: none;\n background: transparent;\n padding: 0;\n border-style: none;\n outline: none;\n color: inherit;\n text-rendering: inherit;\n letter-spacing: inherit;\n word-spacing: inherit;\n\n &:focus {\n outline: none;\n }\n\n /* Change the font styles in all browsers. */\n font: inherit;\n\n /* Remove the margin in Firefox and Safari. */\n margin: 0;\n\n /* Show the overflow in Edge. */\n overflow: visible;\n\n /* Remove the inheritance of text transform in Firefox. */\n text-transform: none;\n\n /* Remove the inner border and padding in Firefox. */\n &::-moz-focus-inner {\n border-style: none;\n padding: 0;\n }\n\n ", "\n"])), clickableCss);
155
+ var A = styled.span(_templateObject3$5 || (_templateObject3$5 = _taggedTemplateLiteralLoose(["\n /* Reset a-tag appearance */\n color: inherit;\n\n &:focus {\n outline: none;\n }\n\n .text {\n top: calc(1em + 2em);\n }\n\n ", "\n"])), clickableCss);
156
+
157
+ var _templateObject$6;
158
+
159
+ var _excluded$5 = ["children", "variant", "size", "fixed", "disabled"];
160
+ var Button = React.forwardRef(function Button(_ref, ref) {
161
+ var children = _ref.children,
162
+ _ref$variant = _ref.variant,
163
+ variant = _ref$variant === void 0 ? 'Default' : _ref$variant,
164
+ _ref$size = _ref.size,
165
+ size = _ref$size === void 0 ? 'M' : _ref$size,
166
+ _ref$fixed = _ref.fixed,
167
+ fixed = _ref$fixed === void 0 ? false : _ref$fixed,
168
+ _ref$disabled = _ref.disabled,
169
+ disabled = _ref$disabled === void 0 ? false : _ref$disabled,
170
+ rest = _objectWithoutPropertiesLoose(_ref, _excluded$5);
171
+
172
+ return /*#__PURE__*/React.createElement(StyledButton, _extends({}, rest, {
173
+ disabled: disabled,
174
+ variant: variant,
175
+ size: size,
176
+ fixed: fixed,
177
+ ref: ref
178
+ }), children);
179
+ });
180
+ var StyledButton = styled(Clickable).withConfig({
181
+ shouldForwardProp: function shouldForwardProp(prop) {
182
+ // fixed は <button> 要素に渡ってはいけない
183
+ return prop !== 'fixed';
184
+ }
185
+ }).attrs(styledProps$1)(_templateObject$6 || (_templateObject$6 = _taggedTemplateLiteralLoose(["\n width: ", ";\n display: inline-grid;\n align-items: center;\n justify-content: center;\n cursor: pointer;\n user-select: none;\n white-space: nowrap;\n\n ", "\n\n /* \u3088\u304F\u8003\u3048\u305F\u3089height=32\u3063\u3066\u5B9A\u7FA9\u304C\u5B58\u5728\u3057\u306A\u3044\u306A... */\n height: ", "px;\n"])), function (p) {
186
+ return p.fixed ? 'stretch' : 'min-content';
187
+ }, function (p) {
188
+ return theme$2(function (o) {
189
+ return [o.font[p.font].hover.press, o.bg[p.background].hover.press, o.typography(14).bold.preserveHalfLeading, o.padding.horizontal(p.padding), o.disabled, o.borderRadius('oval'), o.outline["default"].focus];
190
+ });
191
+ }, function (p) {
192
+ return p.height;
193
+ });
194
+
195
+ function styledProps$1(props) {
196
+ return _extends({}, props, variantToProps$1(props.variant), sizeToProps$1(props.size));
197
+ }
198
+
199
+ function variantToProps$1(variant) {
200
+ switch (variant) {
201
+ case 'Overlay':
202
+ return {
203
+ font: 'text5',
204
+ background: 'surface4'
205
+ };
206
+
207
+ case 'Default':
208
+ return {
209
+ font: 'text2',
210
+ background: 'surface3'
211
+ };
212
+
213
+ case 'Primary':
214
+ return {
215
+ font: 'text5',
216
+ background: 'brand'
217
+ };
218
+
219
+ case 'Navigation':
220
+ return {
221
+ font: 'text5',
222
+ background: 'surface6'
223
+ };
224
+
225
+ case 'Danger':
226
+ return {
227
+ font: 'text5',
228
+ background: 'assertive'
229
+ };
230
+
231
+ default:
232
+ return unreachable(variant);
233
+ }
234
+ }
235
+
236
+ function sizeToProps$1(size) {
237
+ switch (size) {
238
+ case 'S':
239
+ return {
240
+ height: 32,
241
+ padding: 16
242
+ };
243
+
244
+ case 'M':
245
+ return {
246
+ height: 40,
247
+ padding: 24
248
+ };
249
+ }
250
+ }
251
+
252
+ var _templateObject$5;
253
+
254
+ var _excluded$4 = ["variant", "size", "icon"];
255
+ var IconButton = React.forwardRef(function IconButtonInner(_ref, ref) {
256
+ var _ref$variant = _ref.variant,
257
+ variant = _ref$variant === void 0 ? 'Default' : _ref$variant,
258
+ _ref$size = _ref.size,
259
+ size = _ref$size === void 0 ? 'M' : _ref$size,
260
+ icon = _ref.icon,
261
+ rest = _objectWithoutPropertiesLoose(_ref, _excluded$4);
262
+
263
+ validateIconSize(size, icon);
264
+ return /*#__PURE__*/React.createElement(StyledIconButton, _extends({}, rest, {
265
+ ref: ref,
266
+ variant: variant,
267
+ size: size
268
+ }), /*#__PURE__*/React.createElement("pixiv-icon", {
269
+ name: icon
270
+ }));
271
+ });
272
+ var StyledIconButton = styled(Clickable).attrs(styledProps)(_templateObject$5 || (_templateObject$5 = _taggedTemplateLiteralLoose(["\n user-select: none;\n\n width: ", "px;\n height: ", "px;\n display: flex;\n align-items: center;\n justify-content: center;\n\n ", "\n"])), function (p) {
273
+ return p.width;
274
+ }, function (p) {
275
+ return p.height;
276
+ }, function (_ref2) {
277
+ var font = _ref2.font,
278
+ background = _ref2.background;
279
+ return theme$2(function (o) {
280
+ return [o.font[font], o.bg[background].hover.press, o.disabled, o.borderRadius('oval'), o.outline["default"].focus];
281
+ });
282
+ });
283
+
284
+ function styledProps(props) {
285
+ return _extends({}, props, variantToProps(props.variant), sizeToProps(props.size));
286
+ }
287
+
288
+ function variantToProps(variant) {
289
+ switch (variant) {
290
+ case 'Default':
291
+ return {
292
+ font: 'text3',
293
+ background: 'transparent'
294
+ };
295
+
296
+ case 'Overlay':
297
+ return {
298
+ font: 'text5',
299
+ background: 'surface4'
300
+ };
301
+ }
302
+ }
303
+
304
+ function sizeToProps(size) {
305
+ switch (size) {
306
+ case 'XS':
307
+ return {
308
+ width: 20,
309
+ height: 20
310
+ };
311
+
312
+ case 'S':
313
+ return {
314
+ width: 32,
315
+ height: 32
316
+ };
317
+
318
+ case 'M':
319
+ return {
320
+ width: 40,
321
+ height: 40
322
+ };
323
+ }
324
+ }
325
+ /**
326
+ * validates matches of size and icon
327
+ */
328
+
329
+
330
+ function validateIconSize(size, icon) {
331
+ var requiredIconSize;
332
+
333
+ switch (size) {
334
+ case 'XS':
335
+ requiredIconSize = '16';
336
+ break;
337
+
338
+ case 'S':
339
+ case 'M':
340
+ requiredIconSize = '24';
341
+ break;
342
+ } // アイコン名は サイズ/名前
343
+
344
+
345
+ var result = /^[0-9]*/.exec(icon);
346
+
347
+ if (result == null) {
348
+ throw new Error('Invalid icon name');
349
+ }
350
+
351
+ var iconSize = result[0];
352
+
353
+ if (iconSize !== requiredIconSize) {
354
+ // eslint-disable-next-line no-console
355
+ console.warn("IconButton with size \"" + size + "\" expect icon size \"" + requiredIconSize + ", but got \"" + iconSize + "\"");
356
+ }
357
+ }
358
+
359
+ var _templateObject$4, _templateObject2$4, _templateObject3$4, _templateObject4$3;
360
+ function Radio(_ref) {
361
+ var value = _ref.value,
362
+ _ref$forceChecked = _ref.forceChecked,
363
+ forceChecked = _ref$forceChecked === void 0 ? false : _ref$forceChecked,
364
+ _ref$disabled = _ref.disabled,
365
+ disabled = _ref$disabled === void 0 ? false : _ref$disabled,
366
+ children = _ref.children;
367
+
368
+ var _useContext = useContext(RadioGroupContext),
369
+ name = _useContext.name,
370
+ selected = _useContext.selected,
371
+ isParentDisabled = _useContext.disabled,
372
+ readonly = _useContext.readonly,
373
+ hasError = _useContext.hasError,
374
+ onChange = _useContext.onChange;
375
+
376
+ warning( // eslint-disable-next-line @typescript-eslint/no-unnecessary-condition
377
+ name !== undefined, "\"name\" is not Provided for <Radio>. Perhaps you forgot to wrap with <RadioGroup> ?");
378
+ var isSelected = value === selected;
379
+ var isDisabled = disabled || isParentDisabled;
380
+ var isReadonly = readonly && !isSelected;
381
+ var handleChange = useCallback(function (e) {
382
+ onChange(e.currentTarget.value);
383
+ }, [onChange]);
384
+ return /*#__PURE__*/React.createElement(RadioRoot, {
385
+ "aria-disabled": isDisabled || isReadonly
386
+ }, /*#__PURE__*/React.createElement(RadioInput, {
387
+ name: name,
388
+ value: value,
389
+ checked: forceChecked || isSelected,
390
+ hasError: hasError,
391
+ onChange: handleChange,
392
+ disabled: isDisabled || isReadonly
393
+ }), children != null && /*#__PURE__*/React.createElement(RadioLabel, null, children));
394
+ }
395
+ var RadioRoot = styled.label(_templateObject$4 || (_templateObject$4 = _taggedTemplateLiteralLoose(["\n display: grid;\n grid-template-columns: auto 1fr;\n grid-gap: ", ";\n align-items: center;\n cursor: pointer;\n\n ", "\n"])), function (_ref2) {
396
+ var theme = _ref2.theme;
397
+ return px(theme.spacing[4]);
398
+ }, theme$2(function (o) {
399
+ return [o.disabled];
400
+ }));
401
+ var RadioInput = styled.input.attrs({
402
+ type: 'radio'
403
+ })(_templateObject2$4 || (_templateObject2$4 = _taggedTemplateLiteralLoose(["\n /** Make prior to browser default style */\n &[type='radio'] {\n appearance: none;\n display: block;\n box-sizing: border-box;\n\n padding: 6px;\n\n width: 20px;\n height: 20px;\n\n ", ";\n\n &:not(:checked) {\n border-width: 2px;\n border-style: solid;\n border-color: ", ";\n }\n\n &:checked {\n ", "\n\n &::after {\n content: '';\n display: block;\n width: 8px;\n height: 8px;\n pointer-events: none;\n\n ", "\n }\n }\n\n ", "\n }\n"])), function (_ref3) {
404
+ var _ref3$hasError = _ref3.hasError,
405
+ hasError = _ref3$hasError === void 0 ? false : _ref3$hasError;
406
+ return theme$2(function (o) {
407
+ return [o.borderRadius('oval'), o.bg.text5.hover.press, hasError && o.outline.assertive];
408
+ });
409
+ }, function (_ref4) {
410
+ var theme = _ref4.theme;
411
+ return theme.color.text4;
412
+ }, theme$2(function (o) {
413
+ return o.bg.brand.hover.press;
414
+ }), theme$2(function (o) {
415
+ return [o.bg.text5.hover.press, o.borderRadius('oval')];
416
+ }), theme$2(function (o) {
417
+ return o.outline["default"].focus;
418
+ }));
419
+ var RadioLabel = styled.div(_templateObject3$4 || (_templateObject3$4 = _taggedTemplateLiteralLoose(["\n ", "\n"])), theme$2(function (o) {
420
+ return [o.typography(14)];
421
+ })); // TODO: use (or polyfill) flex gap
422
+
423
+ var StyledRadioGroup = styled.div(_templateObject4$3 || (_templateObject4$3 = _taggedTemplateLiteralLoose(["\n display: grid;\n grid-template-columns: 1fr;\n grid-gap: ", ";\n"])), function (_ref5) {
424
+ var theme = _ref5.theme;
425
+ return px(theme.spacing[8]);
426
+ });
427
+ var RadioGroupContext = React.createContext({
428
+ name: undefined,
429
+ selected: undefined,
430
+ disabled: false,
431
+ readonly: false,
432
+ hasError: false,
433
+ onChange: function onChange() {
434
+ throw new Error('Cannot find onChange() handler. Perhaps you forgot to wrap with <RadioGroup> ?');
435
+ }
436
+ });
437
+ function RadioGroup(_ref6) {
438
+ var className = _ref6.className,
439
+ value = _ref6.value,
440
+ label = _ref6.label,
441
+ name = _ref6.name,
442
+ onChange = _ref6.onChange,
443
+ disabled = _ref6.disabled,
444
+ readonly = _ref6.readonly,
445
+ hasError = _ref6.hasError,
446
+ children = _ref6.children;
447
+ var handleChange = useCallback(function (next) {
448
+ onChange(next);
449
+ }, [onChange]);
450
+ return /*#__PURE__*/React.createElement(RadioGroupContext.Provider, {
451
+ value: {
452
+ name: name,
453
+ selected: value,
454
+ disabled: disabled != null ? disabled : false,
455
+ readonly: readonly != null ? readonly : false,
456
+ hasError: hasError != null ? hasError : false,
457
+ onChange: handleChange
458
+ }
459
+ }, /*#__PURE__*/React.createElement(StyledRadioGroup, {
460
+ role: "radiogroup",
461
+ "aria-orientation": "vertical",
462
+ "aria-label": label,
463
+ "aria-invalid": hasError,
464
+ className: className
465
+ }, children));
466
+ }
467
+
468
+ var SelectGroupContext = createContext({
469
+ name: undefined,
470
+ selected: [],
471
+ disabled: false,
472
+ readonly: false,
473
+ hasError: false,
474
+ onChange: function onChange() {
475
+ throw new Error('Cannot find `onChange()` handler. Perhaps you forgot to wrap it with `<SelectGroup />` ?');
476
+ }
477
+ });
478
+
479
+ var _templateObject$3, _templateObject2$3, _templateObject3$3, _templateObject4$2, _templateObject5$1;
480
+ function Select(_ref) {
481
+ var value = _ref.value,
482
+ _ref$forceChecked = _ref.forceChecked,
483
+ forceChecked = _ref$forceChecked === void 0 ? false : _ref$forceChecked,
484
+ _ref$disabled = _ref.disabled,
485
+ disabled = _ref$disabled === void 0 ? false : _ref$disabled,
486
+ onChange = _ref.onChange,
487
+ _ref$variant = _ref.variant,
488
+ variant = _ref$variant === void 0 ? 'default' : _ref$variant,
489
+ children = _ref.children;
490
+
491
+ var _useContext = useContext(SelectGroupContext),
492
+ name = _useContext.name,
493
+ selected = _useContext.selected,
494
+ parentDisabled = _useContext.disabled,
495
+ readonly = _useContext.readonly,
496
+ hasError = _useContext.hasError,
497
+ parentOnChange = _useContext.onChange;
498
+
499
+ warning( // eslint-disable-next-line @typescript-eslint/no-unnecessary-condition
500
+ name !== undefined, "\"name\" is not Provided for <Select>. Perhaps you forgot to wrap with <SelectGroup> ?");
501
+ var isSelected = selected.includes(value) || forceChecked;
502
+ var isDisabled = disabled || parentDisabled || readonly;
503
+ var handleChange = useCallback(function (event) {
504
+ if (!(event.currentTarget instanceof HTMLInputElement)) {
505
+ return;
506
+ }
507
+
508
+ if (onChange) onChange({
509
+ value: value,
510
+ selected: event.currentTarget.checked
511
+ });
512
+ parentOnChange({
513
+ value: value,
514
+ selected: event.currentTarget.checked
515
+ });
516
+ }, [onChange, parentOnChange, value]);
517
+ return /*#__PURE__*/React.createElement(SelectRoot, {
518
+ "aria-disabled": isDisabled
519
+ }, /*#__PURE__*/React.createElement(SelectInput, {
520
+ name: name,
521
+ value: value,
522
+ hasError: hasError,
523
+ checked: isSelected,
524
+ disabled: isDisabled,
525
+ onChange: handleChange,
526
+ overlay: variant === 'overlay',
527
+ "aria-invalid": hasError
528
+ }), /*#__PURE__*/React.createElement(SelectInputOverlay, {
529
+ overlay: variant === 'overlay',
530
+ hasError: hasError,
531
+ "aria-hidden": true
532
+ }, /*#__PURE__*/React.createElement("pixiv-icon", {
533
+ name: "24/Check",
534
+ "unsafe-non-guideline-scale": 16 / 24
535
+ })), Boolean(children) && /*#__PURE__*/React.createElement(SelectLabel, null, children));
536
+ }
537
+ var SelectRoot = styled.label(_templateObject$3 || (_templateObject$3 = _taggedTemplateLiteralLoose(["\n display: grid;\n grid-template-columns: auto 1fr;\n align-items: center;\n position: relative;\n cursor: pointer;\n ", " {\n cursor: default;\n }\n gap: ", ";\n ", "\n"])), disabledSelector, function (_ref2) {
538
+ var theme = _ref2.theme;
539
+ return px(theme.spacing[4]);
540
+ }, theme$2(function (o) {
541
+ return o.disabled;
542
+ }));
543
+ var SelectLabel = styled.div(_templateObject2$3 || (_templateObject2$3 = _taggedTemplateLiteralLoose(["\n display: flex;\n align-items: center;\n ", "\n"])), theme$2(function (o) {
544
+ return [o.typography(14), o.font.text1];
545
+ }));
546
+ var SelectInput = styled.input.attrs({
547
+ type: 'checkbox'
548
+ })(_templateObject3$3 || (_templateObject3$3 = _taggedTemplateLiteralLoose(["\n &[type='checkbox'] {\n appearance: none;\n display: block;\n width: 20px;\n height: 20px;\n margin: 0;\n\n &:checked {\n ", "\n }\n\n ", ";\n }\n"])), theme$2(function (o) {
549
+ return o.bg.brand.hover.press;
550
+ }), function (_ref3) {
551
+ var hasError = _ref3.hasError,
552
+ overlay = _ref3.overlay;
553
+ return theme$2(function (o) {
554
+ return [o.bg.text3.hover.press, o.borderRadius('oval'), hasError && !overlay && o.outline.assertive, overlay && o.bg.surface4];
555
+ });
556
+ });
557
+ var SelectInputOverlay = styled.div(_templateObject4$2 || (_templateObject4$2 = _taggedTemplateLiteralLoose(["\n position: absolute;\n top: -2px;\n left: -2px;\n box-sizing: border-box;\n display: flex;\n align-items: center;\n justify-content: center;\n\n ", "\n\n ", "\n"])), function (_ref4) {
558
+ var hasError = _ref4.hasError,
559
+ overlay = _ref4.overlay;
560
+ return theme$2(function (o) {
561
+ return [o.width.px(24), o.height.px(24), o.borderRadius('oval'), o.font.text5, hasError && overlay && o.outline.assertive];
562
+ });
563
+ }, function (_ref5) {
564
+ var overlay = _ref5.overlay;
565
+ return overlay && css(_templateObject5$1 || (_templateObject5$1 = _taggedTemplateLiteralLoose(["\n border-color: ", ";\n border-width: 2px;\n border-style: solid;\n "])), function (_ref6) {
566
+ var theme = _ref6.theme;
567
+ return theme.color.text5;
568
+ });
569
+ });
570
+ function SelectGroup(_ref7) {
571
+ var className = _ref7.className,
572
+ name = _ref7.name,
573
+ ariaLabel = _ref7.ariaLabel,
574
+ selected = _ref7.selected,
575
+ onChange = _ref7.onChange,
576
+ _ref7$disabled = _ref7.disabled,
577
+ disabled = _ref7$disabled === void 0 ? false : _ref7$disabled,
578
+ _ref7$readonly = _ref7.readonly,
579
+ readonly = _ref7$readonly === void 0 ? false : _ref7$readonly,
580
+ _ref7$hasError = _ref7.hasError,
581
+ hasError = _ref7$hasError === void 0 ? false : _ref7$hasError,
582
+ children = _ref7.children;
583
+ var handleChange = useCallback(function (payload) {
584
+ var index = selected.indexOf(payload.value);
585
+
586
+ if (payload.selected) {
587
+ if (index < 0) {
588
+ onChange([].concat(selected, [payload.value]));
589
+ }
590
+ } else {
591
+ if (index >= 0) {
592
+ onChange([].concat(selected.slice(0, index), selected.slice(index + 1)));
593
+ }
594
+ }
595
+ }, [onChange, selected]);
596
+ return /*#__PURE__*/React.createElement(SelectGroupContext.Provider, {
597
+ value: {
598
+ name: name,
599
+ selected: Array.from(new Set(selected)),
600
+ disabled: disabled,
601
+ readonly: readonly,
602
+ hasError: hasError,
603
+ onChange: handleChange
604
+ }
605
+ }, /*#__PURE__*/React.createElement("div", {
606
+ className: className,
607
+ "aria-label": ariaLabel,
608
+ "data-testid": "SelectGroup"
609
+ }, children));
610
+ }
611
+
612
+ var _templateObject$2, _templateObject2$2, _templateObject3$2;
613
+
614
+ var _excluded$3 = ["className", "type"];
615
+ function SwitchCheckbox(props) {
616
+ var disabled = props.disabled,
617
+ className = props.className;
618
+ var ariaSwitchProps = useMemo(function () {
619
+ return _extends({}, props, {
620
+ // children がいない場合は aria-label をつけないといけない
621
+ 'aria-label': 'children' in props ? undefined : props.label,
622
+ isDisabled: props.disabled,
623
+ isSelected: props.checked
624
+ });
625
+ }, [props]);
626
+ var state = useToggleState(ariaSwitchProps);
627
+ var ref = useRef(null);
628
+
629
+ var _useSwitch = useSwitch(ariaSwitchProps, state, ref),
630
+ _useSwitch$inputProps = _useSwitch.inputProps,
631
+ rest = _objectWithoutPropertiesLoose(_useSwitch$inputProps, _excluded$3);
632
+
633
+ return /*#__PURE__*/React.createElement(Label$1, {
634
+ className: className,
635
+ "aria-disabled": disabled
636
+ }, /*#__PURE__*/React.createElement(SwitchInput, _extends({}, rest, {
637
+ ref: ref
638
+ })), 'children' in props ?
639
+ /*#__PURE__*/
640
+ // eslint-disable-next-line react/destructuring-assignment
641
+ React.createElement(LabelInner, null, props.children) : undefined);
642
+ }
643
+ var Label$1 = styled.label(_templateObject$2 || (_templateObject$2 = _taggedTemplateLiteralLoose(["\n display: inline-grid;\n grid-template-columns: auto 1fr;\n gap: ", ";\n cursor: pointer;\n outline: 0;\n\n ", "\n\n ", " {\n cursor: default;\n }\n"])), function (_ref) {
644
+ var theme = _ref.theme;
645
+ return px(theme.spacing[4]);
646
+ }, theme$2(function (o) {
647
+ return o.disabled;
648
+ }), disabledSelector);
649
+ var LabelInner = styled.div(_templateObject2$2 || (_templateObject2$2 = _taggedTemplateLiteralLoose(["\n ", "\n"])), theme$2(function (o) {
650
+ return o.typography(14);
651
+ }));
652
+ var SwitchInput = styled.input.attrs({
653
+ type: 'checkbox'
654
+ })(_templateObject3$2 || (_templateObject3$2 = _taggedTemplateLiteralLoose(["\n &[type='checkbox'] {\n appearance: none;\n display: inline-flex;\n position: relative;\n box-sizing: border-box;\n width: 28px;\n border: 2px solid transparent;\n transition: box-shadow 0.2s, background-color 0.2s;\n cursor: inherit;\n ", "\n\n &::after {\n content: '';\n position: absolute;\n display: block;\n top: 0;\n left: 0;\n width: 12px;\n height: 12px;\n transform: translateX(0);\n transition: transform 0.2s;\n ", "\n }\n\n &:checked {\n ", "\n\n &::after {\n transform: translateX(12px);\n }\n }\n }\n"])), theme$2(function (o) {
655
+ return [o.borderRadius(16), o.height.px(16), o.bg.text4.hover.press, o.outline["default"].focus];
656
+ }), theme$2(function (o) {
657
+ return [o.bg.text5.hover.press, o.borderRadius('oval')];
658
+ }), theme$2(function (o) {
659
+ return o.bg.brand.hover.press;
660
+ }));
661
+
662
+ var _templateObject$1, _templateObject2$1, _templateObject3$1, _templateObject4$1;
663
+
664
+ var _excluded$2 = ["style", "className", "label", "required", "requiredText", "subLabel"];
665
+ var FieldLabel = React.forwardRef(function FieldLabel(_ref, ref) {
666
+ var style = _ref.style,
667
+ className = _ref.className,
668
+ label = _ref.label,
669
+ _ref$required = _ref.required,
670
+ required = _ref$required === void 0 ? false : _ref$required,
671
+ requiredText = _ref.requiredText,
672
+ subLabel = _ref.subLabel,
673
+ labelProps = _objectWithoutPropertiesLoose(_ref, _excluded$2);
674
+
675
+ return /*#__PURE__*/React.createElement(FieldLabelWrapper, {
676
+ style: style,
677
+ className: className
678
+ }, /*#__PURE__*/React.createElement(Label, _extends({
679
+ ref: ref
680
+ }, labelProps), label), required && /*#__PURE__*/React.createElement(RequiredText, null, requiredText), /*#__PURE__*/React.createElement(SubLabelClickable, null, /*#__PURE__*/React.createElement("span", null, subLabel)));
681
+ });
682
+ var theme$1 = createTheme(styled);
683
+ var Label = styled.label(_templateObject$1 || (_templateObject$1 = _taggedTemplateLiteralLoose(["\n ", "\n"])), theme$1(function (o) {
684
+ return [o.typography(14).bold, o.font.text1];
685
+ }));
686
+ var RequiredText = styled.span(_templateObject2$1 || (_templateObject2$1 = _taggedTemplateLiteralLoose(["\n ", "\n"])), theme$1(function (o) {
687
+ return [o.typography(14), o.font.text3];
688
+ }));
689
+ var SubLabelClickable = styled.div(_templateObject3$1 || (_templateObject3$1 = _taggedTemplateLiteralLoose(["\n ", "\n"])), theme$1(function (o) {
690
+ return [o.typography(14), o.font.text3.hover.press, o.outline["default"].focus];
691
+ }));
692
+ var FieldLabelWrapper = styled.div(_templateObject4$1 || (_templateObject4$1 = _taggedTemplateLiteralLoose(["\n display: inline-flex;\n align-items: center;\n\n > ", " {\n ", "\n }\n\n > ", " {\n ", "\n }\n"])), RequiredText, theme$1(function (o) {
693
+ return o.margin.left(4);
694
+ }), SubLabelClickable, theme$1(function (o) {
695
+ return o.margin.left('auto');
696
+ }));
697
+
698
+ var _templateObject, _templateObject2, _templateObject3, _templateObject4, _templateObject5, _templateObject6, _templateObject7, _templateObject8, _templateObject9, _templateObject10, _templateObject11, _templateObject12, _templateObject13, _templateObject14;
699
+
700
+ var _excluded$1 = ["onChange"],
701
+ _excluded2 = ["onChange"];
702
+ var theme = createTheme(styled);
703
+
704
+ function mergeRefs() {
705
+ var _arguments = arguments;
706
+ return function (value) {
707
+ for (var _iterator = _createForOfIteratorHelperLoose([].slice.call(_arguments)), _step; !(_step = _iterator()).done;) {
708
+ var ref = _step.value;
709
+
710
+ if (typeof ref === 'function') {
711
+ ref(value);
712
+ } else if (ref !== null) {
713
+ ref.current = value;
714
+ }
715
+ }
716
+ };
717
+ }
718
+
719
+ function countCodePointsInString(string) {
720
+ // [...string] とするとproduction buildで動かなくなる
721
+ // cf. https://twitter.com/f_subal/status/1497214727511891972
722
+ return Array.from(string).length;
723
+ }
724
+
725
+ var TextField = React.forwardRef(function TextField(props, ref) {
726
+ return props.multiline !== undefined && props.multiline ? /*#__PURE__*/React.createElement(MultiLineTextField, _extends({
727
+ ref: ref
728
+ }, props)) : /*#__PURE__*/React.createElement(SingleLineTextField, _extends({
729
+ ref: ref
730
+ }, props));
731
+ });
732
+ var SingleLineTextField = React.forwardRef(function SingleLineTextFieldInner(_ref, forwardRef) {
733
+ var _props$value;
734
+
735
+ var onChange = _ref.onChange,
736
+ props = _objectWithoutPropertiesLoose(_ref, _excluded$1);
737
+
738
+ var className = props.className,
739
+ _props$showLabel = props.showLabel,
740
+ showLabel = _props$showLabel === void 0 ? false : _props$showLabel,
741
+ _props$showCount = props.showCount,
742
+ showCount = _props$showCount === void 0 ? false : _props$showCount,
743
+ label = props.label,
744
+ requiredText = props.requiredText,
745
+ subLabel = props.subLabel,
746
+ _props$disabled = props.disabled,
747
+ disabled = _props$disabled === void 0 ? false : _props$disabled,
748
+ required = props.required,
749
+ _props$invalid = props.invalid,
750
+ invalid = _props$invalid === void 0 ? false : _props$invalid,
751
+ assistiveText = props.assistiveText,
752
+ maxLength = props.maxLength,
753
+ _props$prefix = props.prefix,
754
+ prefix = _props$prefix === void 0 ? null : _props$prefix,
755
+ _props$suffix = props.suffix,
756
+ suffix = _props$suffix === void 0 ? null : _props$suffix;
757
+
758
+ var _useVisuallyHidden = useVisuallyHidden(),
759
+ visuallyHiddenProps = _useVisuallyHidden.visuallyHiddenProps;
760
+
761
+ var ariaRef = useRef(null);
762
+ var prefixRef = useRef(null);
763
+ var suffixRef = useRef(null);
764
+
765
+ var _useState = useState(countCodePointsInString((_props$value = props.value) != null ? _props$value : '')),
766
+ count = _useState[0],
767
+ setCount = _useState[1];
768
+
769
+ var _useState2 = useState(0),
770
+ prefixWidth = _useState2[0],
771
+ setPrefixWidth = _useState2[1];
772
+
773
+ var _useState3 = useState(0),
774
+ suffixWidth = _useState3[0],
775
+ setSuffixWidth = _useState3[1];
776
+
777
+ var nonControlled = props.value === undefined;
778
+ var handleChange = useCallback(function (value) {
779
+ var count = countCodePointsInString(value);
780
+
781
+ if (maxLength !== undefined && count > maxLength) {
782
+ return;
783
+ }
784
+
785
+ if (nonControlled) {
786
+ setCount(count);
787
+ }
788
+
789
+ onChange == null ? void 0 : onChange(value);
790
+ }, [maxLength, nonControlled, onChange]);
791
+ useEffect(function () {
792
+ var _props$value2;
793
+
794
+ setCount(countCodePointsInString((_props$value2 = props.value) != null ? _props$value2 : ''));
795
+ }, [props.value]);
796
+
797
+ var _useTextField = useTextField(_extends({
798
+ inputElementType: 'input',
799
+ isDisabled: disabled,
800
+ isRequired: required,
801
+ validationState: invalid ? 'invalid' : 'valid',
802
+ description: !invalid && assistiveText,
803
+ errorMessage: invalid && assistiveText,
804
+ onChange: handleChange
805
+ }, props), ariaRef),
806
+ inputProps = _useTextField.inputProps,
807
+ labelProps = _useTextField.labelProps,
808
+ descriptionProps = _useTextField.descriptionProps,
809
+ errorMessageProps = _useTextField.errorMessageProps;
810
+
811
+ useEffect(function () {
812
+ var prefixObserver = new ResizeObserver(function (entries) {
813
+ setPrefixWidth(entries[0].contentRect.width);
814
+ });
815
+ var suffixObserver = new ResizeObserver(function (entries) {
816
+ setSuffixWidth(entries[0].contentRect.width);
817
+ });
818
+
819
+ if (prefixRef.current !== null) {
820
+ prefixObserver.observe(prefixRef.current);
821
+ }
822
+
823
+ if (suffixRef.current !== null) {
824
+ suffixObserver.observe(suffixRef.current);
825
+ }
826
+
827
+ return function () {
828
+ suffixObserver.disconnect();
829
+ prefixObserver.disconnect();
830
+ };
831
+ }, []);
832
+ return /*#__PURE__*/React.createElement(TextFieldRoot, {
833
+ className: className,
834
+ isDisabled: disabled
835
+ }, /*#__PURE__*/React.createElement(TextFieldLabel, _extends({
836
+ label: label,
837
+ requiredText: requiredText,
838
+ required: required,
839
+ subLabel: subLabel
840
+ }, labelProps, !showLabel ? visuallyHiddenProps : {})), /*#__PURE__*/React.createElement(StyledInputContainer, null, /*#__PURE__*/React.createElement(PrefixContainer, {
841
+ ref: prefixRef
842
+ }, /*#__PURE__*/React.createElement(Affix, null, prefix)), /*#__PURE__*/React.createElement(StyledInput, _extends({
843
+ ref: mergeRefs(forwardRef, ariaRef),
844
+ invalid: invalid,
845
+ extraLeftPadding: prefixWidth,
846
+ extraRightPadding: suffixWidth
847
+ }, inputProps)), /*#__PURE__*/React.createElement(SuffixContainer, {
848
+ ref: suffixRef
849
+ }, /*#__PURE__*/React.createElement(Affix, null, suffix), showCount && /*#__PURE__*/React.createElement(SingleLineCounter, null, maxLength !== undefined ? count + "/" + maxLength : count))), assistiveText != null && assistiveText.length !== 0 && /*#__PURE__*/React.createElement(AssistiveText, _extends({
850
+ invalid: invalid
851
+ }, invalid ? errorMessageProps : descriptionProps), assistiveText));
852
+ });
853
+ var MultiLineTextField = React.forwardRef(function MultiLineTextFieldInner(_ref2, forwardRef) {
854
+ var _props$value3;
855
+
856
+ var onChange = _ref2.onChange,
857
+ props = _objectWithoutPropertiesLoose(_ref2, _excluded2);
858
+
859
+ var className = props.className,
860
+ _props$showCount2 = props.showCount,
861
+ showCount = _props$showCount2 === void 0 ? false : _props$showCount2,
862
+ _props$showLabel2 = props.showLabel,
863
+ showLabel = _props$showLabel2 === void 0 ? false : _props$showLabel2,
864
+ label = props.label,
865
+ requiredText = props.requiredText,
866
+ subLabel = props.subLabel,
867
+ _props$disabled2 = props.disabled,
868
+ disabled = _props$disabled2 === void 0 ? false : _props$disabled2,
869
+ required = props.required,
870
+ _props$invalid2 = props.invalid,
871
+ invalid = _props$invalid2 === void 0 ? false : _props$invalid2,
872
+ assistiveText = props.assistiveText,
873
+ maxLength = props.maxLength,
874
+ _props$autoHeight = props.autoHeight,
875
+ autoHeight = _props$autoHeight === void 0 ? false : _props$autoHeight,
876
+ _props$rows = props.rows,
877
+ initialRows = _props$rows === void 0 ? 4 : _props$rows;
878
+
879
+ var _useVisuallyHidden2 = useVisuallyHidden(),
880
+ visuallyHiddenProps = _useVisuallyHidden2.visuallyHiddenProps;
881
+
882
+ var textareaRef = useRef(null);
883
+ var ariaRef = useRef(null);
884
+
885
+ var _useState4 = useState(countCodePointsInString((_props$value3 = props.value) != null ? _props$value3 : '')),
886
+ count = _useState4[0],
887
+ setCount = _useState4[1];
888
+
889
+ var _useState5 = useState(initialRows),
890
+ rows = _useState5[0],
891
+ setRows = _useState5[1];
892
+
893
+ var syncHeight = useCallback(function (textarea) {
894
+ var _$match$length, _$match;
895
+
896
+ var rows = (_$match$length = (_$match = (textarea.value + "\n").match(/\n/g)) == null ? void 0 : _$match.length) != null ? _$match$length : 1;
897
+
898
+ if (initialRows <= rows) {
899
+ setRows(rows);
900
+ }
901
+ }, [initialRows]);
902
+ var nonControlled = props.value === undefined;
903
+ var handleChange = useCallback(function (value) {
904
+ var count = countCodePointsInString(value);
905
+
906
+ if (maxLength !== undefined && count > maxLength) {
907
+ return;
908
+ }
909
+
910
+ if (nonControlled) {
911
+ setCount(count);
912
+ }
913
+
914
+ if (autoHeight && textareaRef.current !== null) {
915
+ syncHeight(textareaRef.current);
916
+ }
917
+
918
+ onChange == null ? void 0 : onChange(value);
919
+ }, [autoHeight, maxLength, nonControlled, onChange, syncHeight]);
920
+ useEffect(function () {
921
+ var _props$value4;
922
+
923
+ setCount(countCodePointsInString((_props$value4 = props.value) != null ? _props$value4 : ''));
924
+ }, [props.value]);
925
+
926
+ var _useTextField2 = useTextField(_extends({
927
+ inputElementType: 'textarea',
928
+ isDisabled: disabled,
929
+ isRequired: required,
930
+ validationState: invalid ? 'invalid' : 'valid',
931
+ description: !invalid && assistiveText,
932
+ errorMessage: invalid && assistiveText,
933
+ onChange: handleChange
934
+ }, props), ariaRef),
935
+ inputProps = _useTextField2.inputProps,
936
+ labelProps = _useTextField2.labelProps,
937
+ descriptionProps = _useTextField2.descriptionProps,
938
+ errorMessageProps = _useTextField2.errorMessageProps;
939
+
940
+ useEffect(function () {
941
+ if (autoHeight && textareaRef.current !== null) {
942
+ syncHeight(textareaRef.current);
943
+ }
944
+ }, [autoHeight, syncHeight]);
945
+ return /*#__PURE__*/React.createElement(TextFieldRoot, {
946
+ className: className,
947
+ isDisabled: disabled
948
+ }, /*#__PURE__*/React.createElement(TextFieldLabel, _extends({
949
+ label: label,
950
+ requiredText: requiredText,
951
+ required: required,
952
+ subLabel: subLabel
953
+ }, labelProps, !showLabel ? visuallyHiddenProps : {})), /*#__PURE__*/React.createElement(StyledTextareaContainer, {
954
+ invalid: invalid,
955
+ rows: showCount ? rows + 1 : rows
956
+ }, /*#__PURE__*/React.createElement(StyledTextarea, _extends({
957
+ ref: mergeRefs(textareaRef, forwardRef, ariaRef),
958
+ rows: rows,
959
+ noBottomPadding: showCount
960
+ }, inputProps)), showCount && /*#__PURE__*/React.createElement(MultiLineCounter, null, maxLength !== undefined ? count + "/" + maxLength : count)), assistiveText != null && assistiveText.length !== 0 && /*#__PURE__*/React.createElement(AssistiveText, _extends({
961
+ invalid: invalid
962
+ }, invalid ? errorMessageProps : descriptionProps), assistiveText));
963
+ });
964
+ var TextFieldRoot = styled.div(_templateObject || (_templateObject = _taggedTemplateLiteralLoose(["\n display: flex;\n flex-direction: column;\n\n ", "\n"])), function (p) {
965
+ return p.isDisabled && {
966
+ opacity: p.theme.elementEffect.disabled.opacity
967
+ };
968
+ });
969
+ var TextFieldLabel = styled(FieldLabel)(_templateObject2 || (_templateObject2 = _taggedTemplateLiteralLoose(["\n ", "\n"])), theme(function (o) {
970
+ return o.margin.bottom(8);
971
+ }));
972
+ var StyledInputContainer = styled.div(_templateObject3 || (_templateObject3 = _taggedTemplateLiteralLoose(["\n height: 40px;\n display: grid;\n position: relative;\n"])));
973
+ var PrefixContainer = styled.span(_templateObject4 || (_templateObject4 = _taggedTemplateLiteralLoose(["\n position: absolute;\n top: 50%;\n left: 8px;\n transform: translateY(-50%);\n"])));
974
+ var SuffixContainer = styled.span(_templateObject5 || (_templateObject5 = _taggedTemplateLiteralLoose(["\n position: absolute;\n top: 50%;\n right: 8px;\n transform: translateY(-50%);\n\n display: flex;\n gap: 8px;\n"])));
975
+ var Affix = styled.span(_templateObject6 || (_templateObject6 = _taggedTemplateLiteralLoose(["\n user-select: none;\n\n ", "\n"])), theme(function (o) {
976
+ return [o.typography(14).preserveHalfLeading, o.font.text2];
977
+ }));
978
+ var StyledInput = styled.input(_templateObject7 || (_templateObject7 = _taggedTemplateLiteralLoose(["\n border: none;\n box-sizing: border-box;\n outline: none;\n font-family: inherit;\n\n /* Prevent zooming for iOS Safari */\n transform-origin: top left;\n transform: scale(0.875);\n width: calc(100% / 0.875);\n height: calc(100% / 0.875);\n font-size: calc(14px / 0.875);\n line-height: calc(22px / 0.875);\n padding-left: calc((8px + ", "px) / 0.875);\n padding-right: calc((8px + ", "px) / 0.875);\n border-radius: calc(4px / 0.875);\n\n /* Display box-shadow for iOS Safari */\n appearance: none;\n\n ", "\n\n &::placeholder {\n ", "\n }\n"])), function (p) {
979
+ return p.extraLeftPadding;
980
+ }, function (p) {
981
+ return p.extraRightPadding;
982
+ }, function (p) {
983
+ return theme(function (o) {
984
+ return [o.bg.surface3.hover, o.outline["default"].focus, p.invalid && o.outline.assertive, o.font.text2];
985
+ });
986
+ }, theme(function (o) {
987
+ return o.font.text3;
988
+ }));
989
+ var StyledTextareaContainer = styled.div(_templateObject8 || (_templateObject8 = _taggedTemplateLiteralLoose(["\n position: relative;\n overflow: hidden;\n padding: 0 8px;\n\n ", "\n\n &:focus-within {\n ", "\n }\n\n ", ";\n"])), function (p) {
990
+ return theme(function (o) {
991
+ return [o.bg.surface3.hover, p.invalid && o.outline.assertive, o.font.text2, o.borderRadius(4)];
992
+ });
993
+ }, function (p) {
994
+ return theme(function (o) {
995
+ return p.invalid ? o.outline.assertive : o.outline["default"];
996
+ });
997
+ }, function (_ref3) {
998
+ var rows = _ref3.rows;
999
+ return css(_templateObject9 || (_templateObject9 = _taggedTemplateLiteralLoose(["\n height: calc(22px * ", " + 18px);\n "])), rows);
1000
+ });
1001
+ var StyledTextarea = styled.textarea(_templateObject10 || (_templateObject10 = _taggedTemplateLiteralLoose(["\n border: none;\n outline: none;\n resize: none;\n font-family: inherit;\n color: inherit;\n\n /* Prevent zooming for iOS Safari */\n transform-origin: top left;\n transform: scale(0.875);\n width: calc(100% / 0.875);\n font-size: calc(14px / 0.875);\n line-height: calc(22px / 0.875);\n padding: calc(9px / 0.875) 0 ", ";\n\n ", ";\n\n /* Display box-shadow for iOS Safari */\n appearance: none;\n\n background: none;\n\n &::placeholder {\n ", "\n }\n\n /* Hide scrollbar for Chrome, Safari and Opera */\n &::-webkit-scrollbar {\n display: none;\n }\n /* Hide scrollbar for IE, Edge and Firefox */\n -ms-overflow-style: none; /* IE and Edge */\n scrollbar-width: none; /* Firefox */\n"])), function (p) {
1002
+ return p.noBottomPadding ? 0 : '';
1003
+ }, function (_ref4) {
1004
+ var _ref4$rows = _ref4.rows,
1005
+ rows = _ref4$rows === void 0 ? 1 : _ref4$rows;
1006
+ return css(_templateObject11 || (_templateObject11 = _taggedTemplateLiteralLoose(["\n height: calc(22px / 0.875 * ", ");\n "])), rows);
1007
+ }, theme(function (o) {
1008
+ return o.font.text3;
1009
+ }));
1010
+ var SingleLineCounter = styled.span(_templateObject12 || (_templateObject12 = _taggedTemplateLiteralLoose(["\n ", "\n"])), theme(function (o) {
1011
+ return [o.typography(14).preserveHalfLeading, o.font.text3];
1012
+ }));
1013
+ var MultiLineCounter = styled.span(_templateObject13 || (_templateObject13 = _taggedTemplateLiteralLoose(["\n position: absolute;\n bottom: 9px;\n right: 8px;\n\n ", "\n"])), theme(function (o) {
1014
+ return [o.typography(14).preserveHalfLeading, o.font.text3];
1015
+ }));
1016
+ var AssistiveText = styled.p(_templateObject14 || (_templateObject14 = _taggedTemplateLiteralLoose(["\n ", "\n"])), function (p) {
1017
+ return theme(function (o) {
1018
+ return [o.typography(14), o.margin.top(8), o.margin.bottom(0), o.font[p.invalid ? 'assertive' : 'text1']];
1019
+ });
1020
+ });
1021
+
1022
+ var _excluded = ["name", "scale", "unsafeNonGuidelineScale", "className"];
1023
+ var Icon = React.forwardRef(function IconInner(_ref, ref) {
1024
+ var name = _ref.name,
1025
+ scale = _ref.scale,
1026
+ unsafeNonGuidelineScale = _ref.unsafeNonGuidelineScale,
1027
+ className = _ref.className,
1028
+ rest = _objectWithoutPropertiesLoose(_ref, _excluded);
1029
+
1030
+ return /*#__PURE__*/React.createElement("pixiv-icon", _extends({
1031
+ ref: ref,
1032
+ name: name,
1033
+ scale: scale,
1034
+ "unsafe-non-guideline-scale": unsafeNonGuidelineScale,
1035
+ "class": className
1036
+ }, rest));
1037
+ });
1038
+
1039
+ export { Button, Clickable, ComponentAbstraction, Icon, IconButton, Radio, RadioGroup, Select, SelectGroup, SwitchCheckbox as Switch, TextField, useComponentAbstraction };
2
1040
  //# sourceMappingURL=index.module.js.map