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

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 +1 @@
1
- {"version":3,"file":"index.cjs","sources":["../src/core/ComponentAbstraction.tsx","../src/_lib/index.ts","../src/styled.ts","../src/components/Clickable/index.tsx","../src/components/Button/index.tsx","../src/components/IconButton/index.tsx","../src/components/Radio/index.tsx","../src/components/Select/context.ts","../src/components/Select/index.tsx","../src/components/Switch/index.tsx","../src/components/FieldLabel/index.tsx","../src/components/TextField/index.tsx","../src/components/Icon/index.tsx"],"sourcesContent":["import React, { useContext } from 'react'\n\nexport type LinkProps = {\n /**\n * リンクのURL\n */\n to: string\n} & Omit<React.ComponentPropsWithoutRef<'a'>, 'href'>\n\nexport const DefaultLink = React.forwardRef<HTMLAnchorElement, LinkProps>(\n function DefaultLink({ to, children, ...rest }, ref) {\n return (\n <a href={to} ref={ref} {...rest}>\n {children}\n </a>\n )\n }\n)\n\ninterface Components {\n Link: React.ComponentType<React.ComponentPropsWithRef<typeof DefaultLink>>\n}\n\nconst DefaultValue: Components = {\n Link: DefaultLink,\n}\n\nconst ComponentAbstractionContext = React.createContext(DefaultValue)\n\ninterface Props {\n children: React.ReactNode\n components: Partial<Components>\n}\n\nexport default function ComponentAbstraction({ children, components }: Props) {\n return (\n <ComponentAbstractionContext.Provider\n value={{ ...DefaultValue, ...components }}\n >\n {children}\n </ComponentAbstractionContext.Provider>\n )\n}\n\nexport function useComponentAbstraction() {\n return useContext(ComponentAbstractionContext)\n}\n","/**\n * 今後ポートされる予定の汎用的な関数群\n */\n\n/**\n * Function used to assert a given code path is unreachable\n */\nexport function unreachable(): never\n/**\n * Function used to assert a given code path is unreachable.\n * Very useful for ensuring switches are exhaustive:\n *\n * ```ts\n * switch (a.type) {\n * case Types.A:\n * case Types.B:\n * break\n * default:\n * unreachable(a) // will cause a build error if there was\n * // a Types.C that was not checked\n * }\n * ```\n *\n * @param value Value to be asserted as unreachable\n */\n// NOTE: Uses separate overloads, _not_ `value?: never`, to not allow `undefined` to be passed\n// eslint-disable-next-line @typescript-eslint/unified-signatures\nexport function unreachable(value: never): never\nexport function unreachable(value?: never): never {\n throw new Error(\n arguments.length === 0\n ? 'unreachable'\n : `unreachable (${JSON.stringify(value)})`\n )\n}\n","import styled from 'styled-components'\nimport { createTheme } from '@charcoal-ui/styled'\nexport const theme = createTheme(styled)\n","import React from 'react'\nimport styled, { css } from 'styled-components'\nimport {\n LinkProps,\n useComponentAbstraction,\n} from '../../core/ComponentAbstraction'\nimport { disabledSelector } from '@charcoal-ui/utils'\n\ninterface BaseProps {\n /**\n * クリックの無効化\n */\n disabled?: boolean\n}\n\ninterface LinkBaseProps {\n /**\n * リンクのURL。指定するとbuttonタグではなくaタグとして描画される\n */\n to: string\n}\n\nexport type ClickableProps =\n | (BaseProps & Omit<React.ComponentPropsWithoutRef<'button'>, 'disabled'>)\n | (BaseProps & LinkBaseProps & Omit<LinkProps, 'to'>)\nexport type ClickableElement = HTMLButtonElement & HTMLAnchorElement\n\nconst Clickable = React.forwardRef<ClickableElement, ClickableProps>(\n function Clickable(props, ref) {\n const { Link } = useComponentAbstraction()\n if ('to' in props) {\n const { onClick, disabled = false, ...rest } = props\n return (\n <A<typeof Link>\n {...rest}\n as={disabled ? undefined : Link}\n onClick={disabled ? undefined : onClick}\n aria-disabled={disabled}\n ref={ref}\n />\n )\n } else {\n return <Button {...props} ref={ref} />\n }\n }\n)\nexport default Clickable\n\nconst clickableCss = css`\n /* Clickable style */\n cursor: pointer;\n\n ${disabledSelector} {\n cursor: default;\n }\n`\n\nconst Button = styled.button`\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 ${clickableCss}\n`\n\nconst A = styled.span`\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 ${clickableCss}\n`\n","import React from 'react'\nimport styled from 'styled-components'\nimport { unreachable } from '../../_lib'\nimport { theme } from '../../styled'\nimport Clickable, { ClickableElement, ClickableProps } from '../Clickable'\n\ntype Variant = 'Primary' | 'Default' | 'Overlay' | 'Danger' | 'Navigation'\ntype Size = 'S' | 'M'\n\ninterface StyledProps {\n /**\n * ボタンのスタイル\n */\n variant: Variant\n /**\n * ボタンのサイズ\n */\n size: Size\n /**\n * 幅を最大まで広げて描画\n */\n fixed: boolean\n}\n\nexport type ButtonProps = Partial<StyledProps> & ClickableProps\n\nconst Button = React.forwardRef<ClickableElement, ButtonProps>(function Button(\n {\n children,\n variant = 'Default',\n size = 'M',\n fixed = false,\n disabled = false,\n ...rest\n },\n ref\n) {\n return (\n <StyledButton\n {...rest}\n disabled={disabled}\n variant={variant}\n size={size}\n fixed={fixed}\n ref={ref}\n >\n {children}\n </StyledButton>\n )\n})\nexport default Button\n\nconst StyledButton = styled(Clickable)\n .withConfig<StyledProps>({\n shouldForwardProp(prop) {\n // fixed は <button> 要素に渡ってはいけない\n return prop !== 'fixed'\n },\n })\n .attrs<StyledProps, ReturnType<typeof styledProps>>(styledProps)`\n width: ${(p) => (p.fixed ? 'stretch' : 'min-content')};\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 ${(p) =>\n theme((o) => [\n o.font[p.font].hover.press,\n o.bg[p.background].hover.press,\n o.typography(14).bold.preserveHalfLeading,\n o.padding.horizontal(p.padding),\n o.disabled,\n o.borderRadius('oval'),\n o.outline.default.focus,\n ])}\n\n /* よく考えたらheight=32って定義が存在しないな... */\n height: ${(p) => p.height}px;\n`\n\nfunction styledProps(props: StyledProps) {\n return {\n ...props,\n ...variantToProps(props.variant),\n ...sizeToProps(props.size),\n }\n}\n\nfunction variantToProps(variant: Variant) {\n switch (variant) {\n case 'Overlay':\n return { font: 'text5', background: 'surface4' } as const\n case 'Default':\n return { font: 'text2', background: 'surface3' } as const\n case 'Primary':\n return { font: 'text5', background: 'brand' } as const\n case 'Navigation':\n return { font: 'text5', background: 'surface6' } as const\n case 'Danger':\n return { font: 'text5', background: 'assertive' } as const\n default:\n return unreachable(variant)\n }\n}\n\nfunction sizeToProps(size: Size) {\n switch (size) {\n case 'S':\n return {\n height: 32,\n padding: 16,\n } as const\n case 'M':\n return {\n height: 40,\n padding: 24,\n } as const\n }\n}\n","import React from 'react'\nimport styled from 'styled-components'\nimport { theme } from '../../styled'\nimport Clickable, { ClickableElement, ClickableProps } from '../Clickable'\nimport type { KnownIconType } from '@charcoal-ui/icons'\n\ntype Variant = 'Default' | 'Overlay'\ntype Size = 'XS' | 'S' | 'M'\n\ninterface StyledProps {\n readonly variant?: Variant\n readonly size?: Size\n readonly icon: keyof KnownIconType\n}\n\nexport type IconButtonProps = StyledProps & ClickableProps\n\nconst IconButton = React.forwardRef<ClickableElement, IconButtonProps>(\n function IconButtonInner(\n { variant = 'Default', size = 'M', icon, ...rest }: IconButtonProps,\n ref\n ) {\n validateIconSize(size, icon)\n return (\n <StyledIconButton {...rest} ref={ref} variant={variant} size={size}>\n <pixiv-icon name={icon} />\n </StyledIconButton>\n )\n }\n)\n\nexport default IconButton\n\nconst StyledIconButton = styled(Clickable).attrs<\n Required<StyledProps>,\n ReturnType<typeof styledProps>\n>(styledProps)`\n user-select: none;\n\n width: ${(p) => p.width}px;\n height: ${(p) => p.height}px;\n display: flex;\n align-items: center;\n justify-content: center;\n\n ${({ font, background }) =>\n theme((o) => [\n o.font[font],\n o.bg[background].hover.press,\n o.disabled,\n o.borderRadius('oval'),\n o.outline.default.focus,\n ])}\n`\n\nfunction styledProps(props: Required<StyledProps>) {\n return {\n ...props,\n ...variantToProps(props.variant),\n ...sizeToProps(props.size),\n }\n}\n\nfunction variantToProps(variant: Variant) {\n switch (variant) {\n case 'Default':\n return { font: 'text3', background: 'transparent' } as const\n case 'Overlay':\n return { font: 'text5', background: 'surface4' } as const\n }\n}\n\nfunction sizeToProps(size: Size) {\n switch (size) {\n case 'XS':\n return {\n width: 20,\n height: 20,\n }\n case 'S':\n return {\n width: 32,\n height: 32,\n }\n case 'M':\n return {\n width: 40,\n height: 40,\n }\n }\n}\n\n/**\n * validates matches of size and icon\n */\nfunction validateIconSize(size: Size, icon: keyof KnownIconType) {\n let requiredIconSize: string\n switch (size) {\n case 'XS':\n requiredIconSize = '16'\n break\n case 'S':\n case 'M':\n requiredIconSize = '24'\n break\n }\n // アイコン名は サイズ/名前\n const result = /^\\d*/u.exec(icon)\n if (result == null) {\n throw new Error('Invalid icon name')\n }\n const [iconSize] = result\n if (iconSize !== requiredIconSize) {\n // eslint-disable-next-line no-console\n console.warn(\n `IconButton with size \"${size}\" expect icon size \"${requiredIconSize}, but got \"${iconSize}\"`\n )\n }\n}\n","import React, { useCallback, useContext } from 'react'\nimport styled from 'styled-components'\nimport warning from 'warning'\nimport { theme } from '../../styled'\nimport { px } from '@charcoal-ui/utils'\n\nexport type RadioProps = React.PropsWithChildren<{\n value: string\n forceChecked?: boolean\n disabled?: boolean\n}>\n\nexport default function Radio({\n value,\n forceChecked = false,\n disabled = false,\n children,\n}: RadioProps) {\n const {\n name,\n selected,\n disabled: isParentDisabled,\n readonly,\n hasError,\n onChange,\n } = useContext(RadioGroupContext)\n\n warning(\n // eslint-disable-next-line @typescript-eslint/no-unnecessary-condition\n name !== undefined,\n `\"name\" is not Provided for <Radio>. Perhaps you forgot to wrap with <RadioGroup> ?`\n )\n\n const isSelected = value === selected\n const isDisabled = disabled || isParentDisabled\n const isReadonly = readonly && !isSelected\n\n const handleChange = useCallback(\n (e: React.ChangeEvent<HTMLInputElement>) => {\n onChange(e.currentTarget.value)\n },\n [onChange]\n )\n\n return (\n <RadioRoot aria-disabled={isDisabled || isReadonly}>\n <RadioInput\n name={name}\n value={value}\n checked={forceChecked || isSelected}\n hasError={hasError}\n onChange={handleChange}\n disabled={isDisabled || isReadonly}\n />\n {children != null && <RadioLabel>{children}</RadioLabel>}\n </RadioRoot>\n )\n}\n\nconst RadioRoot = styled.label`\n display: grid;\n grid-template-columns: auto 1fr;\n grid-gap: ${({ theme }) => px(theme.spacing[4])};\n align-items: center;\n cursor: pointer;\n\n ${theme((o) => [o.disabled])}\n`\n\nexport const RadioInput = styled.input.attrs({ type: 'radio' })<{\n hasError?: boolean\n}>`\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 ${({ hasError = false }) =>\n theme((o) => [\n o.borderRadius('oval'),\n o.bg.text5.hover.press,\n hasError && o.outline.assertive,\n ])};\n\n &:not(:checked) {\n border-width: 2px;\n border-style: solid;\n border-color: ${({ theme }) => theme.color.text4};\n }\n\n &:checked {\n ${theme((o) => o.bg.brand.hover.press)}\n\n &::after {\n content: '';\n display: block;\n width: 8px;\n height: 8px;\n pointer-events: none;\n\n ${theme((o) => [o.bg.text5.hover.press, o.borderRadius('oval')])}\n }\n }\n\n ${theme((o) => o.outline.default.focus)}\n }\n`\n\nconst RadioLabel = styled.div`\n ${theme((o) => [o.typography(14)])}\n`\n\nexport type RadioGroupProps = React.PropsWithChildren<{\n className?: string\n value?: string\n label: string\n name: string\n onChange(next: string): void\n disabled?: boolean\n readonly?: boolean\n hasError?: boolean\n}>\n\n// TODO: use (or polyfill) flex gap\nconst StyledRadioGroup = styled.div`\n display: grid;\n grid-template-columns: 1fr;\n grid-gap: ${({ theme }) => px(theme.spacing[8])};\n`\n\ninterface RadioGroupContext {\n name: string\n selected?: string\n disabled: boolean\n readonly: boolean\n hasError: boolean\n onChange: (next: string) => void\n}\n\nconst RadioGroupContext = React.createContext<RadioGroupContext>({\n name: undefined as never,\n selected: undefined,\n disabled: false,\n readonly: false,\n hasError: false,\n onChange() {\n throw new Error(\n 'Cannot find onChange() handler. Perhaps you forgot to wrap with <RadioGroup> ?'\n )\n },\n})\n\nexport function RadioGroup({\n className,\n value,\n label,\n name,\n onChange,\n disabled,\n readonly,\n hasError,\n children,\n}: RadioGroupProps) {\n const handleChange = useCallback(\n (next: string) => {\n onChange(next)\n },\n [onChange]\n )\n\n return (\n <RadioGroupContext.Provider\n value={{\n name,\n selected: value,\n disabled: disabled ?? false,\n readonly: readonly ?? false,\n hasError: hasError ?? false,\n onChange: handleChange,\n }}\n >\n <StyledRadioGroup\n role=\"radiogroup\"\n aria-orientation=\"vertical\"\n aria-label={label}\n aria-invalid={hasError}\n className={className}\n >\n {children}\n </StyledRadioGroup>\n </RadioGroupContext.Provider>\n )\n}\n","import { createContext } from 'react'\n\ntype SelectGroupContext = {\n name: string\n selected: string[]\n disabled: boolean\n readonly: boolean\n hasError: boolean\n onChange: ({ value, selected }: { value: string; selected: boolean }) => void\n}\n\nexport const SelectGroupContext = createContext<SelectGroupContext>({\n name: undefined as never,\n selected: [],\n disabled: false,\n readonly: false,\n hasError: false,\n onChange() {\n throw new Error(\n 'Cannot find `onChange()` handler. Perhaps you forgot to wrap it with `<SelectGroup />` ?'\n )\n },\n})\n","import React, { ChangeEvent, useCallback, useContext } from 'react'\nimport styled, { css } from 'styled-components'\nimport warning from 'warning'\nimport { theme } from '../../styled'\nimport { disabledSelector, px } from '@charcoal-ui/utils'\n\nimport { SelectGroupContext } from './context'\n\nexport type SelectProps = React.PropsWithChildren<{\n value: string\n forceChecked?: boolean\n disabled?: boolean\n variant?: 'default' | 'overlay'\n onChange?: (payload: { value: string; selected: boolean }) => void\n}>\n\nexport default function Select({\n value,\n forceChecked = false,\n disabled = false,\n onChange,\n variant = 'default',\n children,\n}: SelectProps) {\n const {\n name,\n selected,\n disabled: parentDisabled,\n readonly,\n hasError,\n onChange: parentOnChange,\n } = useContext(SelectGroupContext)\n\n warning(\n // eslint-disable-next-line @typescript-eslint/no-unnecessary-condition\n name !== undefined,\n `\"name\" is not Provided for <Select>. Perhaps you forgot to wrap with <SelectGroup> ?`\n )\n\n const isSelected = selected.includes(value) || forceChecked\n const isDisabled = disabled || parentDisabled || readonly\n\n const handleChange = useCallback(\n (event: ChangeEvent<HTMLInputElement>) => {\n if (!(event.currentTarget instanceof HTMLInputElement)) {\n return\n }\n if (onChange) onChange({ value, selected: event.currentTarget.checked })\n parentOnChange({ value, selected: event.currentTarget.checked })\n },\n [onChange, parentOnChange, value]\n )\n\n return (\n <SelectRoot aria-disabled={isDisabled}>\n <SelectInput\n {...{\n name,\n value,\n hasError,\n }}\n checked={isSelected}\n disabled={isDisabled}\n onChange={handleChange}\n overlay={variant === 'overlay'}\n aria-invalid={hasError}\n />\n <SelectInputOverlay\n overlay={variant === 'overlay'}\n hasError={hasError}\n aria-hidden={true}\n >\n <pixiv-icon name=\"24/Check\" unsafe-non-guideline-scale={16 / 24} />\n </SelectInputOverlay>\n {Boolean(children) && <SelectLabel>{children}</SelectLabel>}\n </SelectRoot>\n )\n}\n\nconst SelectRoot = styled.label`\n display: grid;\n grid-template-columns: auto 1fr;\n align-items: center;\n position: relative;\n cursor: pointer;\n ${disabledSelector} {\n cursor: default;\n }\n gap: ${({ theme }) => px(theme.spacing[4])};\n ${theme((o) => o.disabled)}\n`\n\nconst SelectLabel = styled.div`\n display: flex;\n align-items: center;\n ${theme((o) => [o.typography(14), o.font.text1])}\n`\n\nconst SelectInput = styled.input.attrs({ type: 'checkbox' })<{\n hasError: boolean\n overlay: boolean\n}>`\n &[type='checkbox'] {\n appearance: none;\n display: block;\n width: 20px;\n height: 20px;\n margin: 0;\n\n &:checked {\n ${theme((o) => o.bg.brand.hover.press)}\n }\n\n ${({ hasError, overlay }) =>\n theme((o) => [\n o.bg.text3.hover.press,\n o.borderRadius('oval'),\n hasError && !overlay && o.outline.assertive,\n overlay && o.bg.surface4,\n ])};\n }\n`\n\nconst SelectInputOverlay = styled.div<{ overlay: boolean; hasError: boolean }>`\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 ${({ hasError, overlay }) =>\n theme((o) => [\n o.width.px(24),\n o.height.px(24),\n o.borderRadius('oval'),\n o.font.text5,\n hasError && overlay && o.outline.assertive,\n ])}\n\n ${({ overlay }) =>\n overlay &&\n css`\n border-color: ${({ theme }) => theme.color.text5};\n border-width: 2px;\n border-style: solid;\n `}\n`\n\nexport type SelectGroupProps = React.PropsWithChildren<{\n className?: string\n name: string\n ariaLabel: string\n selected: string[]\n onChange: (selected: string[]) => void\n disabled?: boolean\n readonly?: boolean\n hasError?: boolean\n}>\n\nexport function SelectGroup({\n className,\n name,\n ariaLabel,\n selected,\n onChange,\n disabled = false,\n readonly = false,\n hasError = false,\n children,\n}: SelectGroupProps) {\n const handleChange = useCallback(\n (payload: { value: string; selected: boolean }) => {\n const index = selected.indexOf(payload.value)\n\n if (payload.selected) {\n if (index < 0) {\n onChange([...selected, payload.value])\n }\n } else {\n if (index >= 0) {\n onChange([...selected.slice(0, index), ...selected.slice(index + 1)])\n }\n }\n },\n [onChange, selected]\n )\n\n return (\n <SelectGroupContext.Provider\n value={{\n name,\n selected: Array.from(new Set(selected)),\n disabled,\n readonly,\n hasError,\n onChange: handleChange,\n }}\n >\n <div\n className={className}\n aria-label={ariaLabel}\n data-testid=\"SelectGroup\"\n >\n {children}\n </div>\n </SelectGroupContext.Provider>\n )\n}\n","import { useSwitch } from '@react-aria/switch'\nimport type { AriaSwitchProps } from '@react-types/switch'\nimport React, { useRef, useMemo } from 'react'\nimport { useToggleState } from 'react-stately'\nimport styled from 'styled-components'\nimport { theme } from '../../styled'\nimport { disabledSelector, px } from '@charcoal-ui/utils'\n\nexport type SwitchProps = {\n name: string\n className?: string\n value?: string\n checked?: boolean\n disabled?: boolean\n onChange(checked: boolean): void\n} & (\n | // children か label は片方が必須\n {\n children: React.ReactNode\n }\n | {\n label: string\n }\n)\n\nexport default function SwitchCheckbox(props: SwitchProps) {\n const { disabled, className } = props\n\n const ariaSwitchProps: AriaSwitchProps = useMemo(\n () => ({\n ...props,\n\n // children がいない場合は aria-label をつけないといけない\n 'aria-label': 'children' in props ? undefined : props.label,\n isDisabled: props.disabled,\n isSelected: props.checked,\n }),\n [props]\n )\n\n const state = useToggleState(ariaSwitchProps)\n const ref = useRef<HTMLInputElement>(null)\n const {\n inputProps: { className: _className, type: _type, ...rest },\n } = useSwitch(ariaSwitchProps, state, ref)\n\n return (\n <Label className={className} aria-disabled={disabled}>\n <SwitchInput {...rest} ref={ref} />\n {'children' in props ? (\n // eslint-disable-next-line react/destructuring-assignment\n <LabelInner>{props.children}</LabelInner>\n ) : undefined}\n </Label>\n )\n}\n\nconst Label = styled.label`\n display: inline-grid;\n grid-template-columns: auto 1fr;\n gap: ${({ theme }) => px(theme.spacing[4])};\n cursor: pointer;\n outline: 0;\n\n ${theme((o) => o.disabled)}\n\n ${disabledSelector} {\n cursor: default;\n }\n`\n\nconst LabelInner = styled.div`\n ${theme((o) => o.typography(14))}\n`\n\nconst SwitchInput = styled.input.attrs({\n type: 'checkbox',\n})`\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 ${theme((o) => [\n o.borderRadius(16),\n o.height.px(16),\n o.bg.text4.hover.press,\n o.outline.default.focus,\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 ${theme((o) => [o.bg.text5.hover.press, o.borderRadius('oval')])}\n }\n\n &:checked {\n ${theme((o) => o.bg.brand.hover.press)}\n\n &::after {\n transform: translateX(12px);\n }\n }\n }\n`\n","import React from 'react'\nimport styled from 'styled-components'\nimport { createTheme } from '@charcoal-ui/styled'\n\nexport interface FieldLabelProps\n extends React.LabelHTMLAttributes<HTMLLabelElement> {\n readonly className?: string\n readonly label: string\n readonly subLabel?: React.ReactNode\n readonly required?: boolean\n // TODO: 翻訳用のContextで注入する\n readonly requiredText?: string\n}\n\nconst FieldLabel = React.forwardRef<HTMLLabelElement, FieldLabelProps>(\n function FieldLabel(\n {\n style,\n className,\n label,\n required = false,\n requiredText,\n subLabel,\n ...labelProps\n },\n ref\n ) {\n return (\n <FieldLabelWrapper style={style} className={className}>\n <Label ref={ref} {...labelProps}>\n {label}\n </Label>\n {required && <RequiredText>{requiredText}</RequiredText>}\n <SubLabelClickable>\n <span>{subLabel}</span>\n </SubLabelClickable>\n </FieldLabelWrapper>\n )\n }\n)\n\nexport default FieldLabel\n\nconst theme = createTheme(styled)\n\nconst Label = styled.label`\n ${theme((o) => [o.typography(14).bold, o.font.text1])}\n`\n\nconst RequiredText = styled.span`\n ${theme((o) => [o.typography(14), o.font.text3])}\n`\n\nconst SubLabelClickable = styled.div`\n ${theme((o) => [\n o.typography(14),\n o.font.text3.hover.press,\n o.outline.default.focus,\n ])}\n`\n\nconst FieldLabelWrapper = styled.div`\n display: inline-flex;\n align-items: center;\n\n > ${RequiredText} {\n ${theme((o) => o.margin.left(4))}\n }\n\n > ${SubLabelClickable} {\n ${theme((o) => o.margin.left('auto'))}\n }\n`\n","import { useTextField } from '@react-aria/textfield'\nimport { useVisuallyHidden } from '@react-aria/visually-hidden'\nimport React, {\n ReactNode,\n useCallback,\n useEffect,\n useRef,\n useState,\n} from 'react'\nimport styled, { css } from 'styled-components'\nimport FieldLabel, { FieldLabelProps } from '../FieldLabel'\nimport { createTheme } from '@charcoal-ui/styled'\n\nconst theme = createTheme(styled)\n\ninterface TextFieldBaseProps\n extends Pick<FieldLabelProps, 'label' | 'requiredText' | 'subLabel'> {\n readonly className?: string\n readonly defaultValue?: string\n readonly value?: string\n readonly onChange?: (value: string) => void\n readonly onKeyDown?: (event: React.KeyboardEvent<Element>) => void\n readonly onFocus?: (event: React.FocusEvent<Element>) => void\n readonly onBlur?: (event: React.FocusEvent<Element>) => void\n readonly showCount?: boolean\n readonly showLabel?: boolean\n readonly placeholder?: string\n readonly assistiveText?: string\n readonly disabled?: boolean\n readonly required?: boolean\n readonly invalid?: boolean\n readonly maxLength?: number\n /**\n * tab-indexがー1かどうか\n */\n readonly excludeFromTabOrder?: boolean\n}\n\nexport interface SingleLineTextFieldProps extends TextFieldBaseProps {\n readonly autoHeight?: never\n readonly multiline?: false\n readonly rows?: never\n readonly type?: string\n readonly prefix?: ReactNode\n readonly suffix?: ReactNode\n}\n\nexport interface MultiLineTextFieldProps extends TextFieldBaseProps {\n readonly autoHeight?: boolean\n readonly multiline: true\n readonly rows?: number\n readonly type?: never\n readonly prefix?: never\n readonly suffix?: never\n}\n\nexport type TextFieldProps = SingleLineTextFieldProps | MultiLineTextFieldProps\ntype TextFieldElement = HTMLInputElement & HTMLTextAreaElement\n\nfunction mergeRefs<T>(...refs: React.Ref<T>[]): React.RefCallback<T> {\n return (value) => {\n for (const ref of refs) {\n if (typeof ref === 'function') {\n ref(value)\n } else if (ref !== null) {\n ;(ref as React.MutableRefObject<T | null>).current = value\n }\n }\n }\n}\n\nfunction countCodePointsInString(string: string) {\n // [...string] とするとproduction buildで動かなくなる\n // cf. https://twitter.com/f_subal/status/1497214727511891972\n return Array.from(string).length\n}\n\nconst TextField = React.forwardRef<TextFieldElement, TextFieldProps>(\n function TextField(props, ref) {\n return props.multiline !== undefined && props.multiline ? (\n <MultiLineTextField ref={ref} {...props} />\n ) : (\n <SingleLineTextField ref={ref} {...props} />\n )\n }\n)\n\nexport default TextField\n\nconst SingleLineTextField = React.forwardRef<\n HTMLInputElement,\n SingleLineTextFieldProps\n>(function SingleLineTextFieldInner({ onChange, ...props }, forwardRef) {\n const {\n className,\n showLabel = false,\n showCount = false,\n label,\n requiredText,\n subLabel,\n disabled = false,\n required,\n invalid = false,\n assistiveText,\n maxLength,\n prefix = null,\n suffix = null,\n } = props\n\n const { visuallyHiddenProps } = useVisuallyHidden()\n const ariaRef = useRef<HTMLInputElement>(null)\n const prefixRef = useRef<HTMLSpanElement>(null)\n const suffixRef = useRef<HTMLSpanElement>(null)\n const [count, setCount] = useState(countCodePointsInString(props.value ?? ''))\n const [prefixWidth, setPrefixWidth] = useState(0)\n const [suffixWidth, setSuffixWidth] = useState(0)\n\n const nonControlled = props.value === undefined\n const handleChange = useCallback(\n (value: string) => {\n const count = countCodePointsInString(value)\n if (maxLength !== undefined && count > maxLength) {\n return\n }\n if (nonControlled) {\n setCount(count)\n }\n onChange?.(value)\n },\n [maxLength, nonControlled, onChange]\n )\n\n useEffect(() => {\n setCount(countCodePointsInString(props.value ?? ''))\n }, [props.value])\n\n const { inputProps, labelProps, descriptionProps, errorMessageProps } =\n useTextField(\n {\n inputElementType: 'input',\n isDisabled: disabled,\n isRequired: required,\n validationState: invalid ? 'invalid' : 'valid',\n description: !invalid && assistiveText,\n errorMessage: invalid && assistiveText,\n onChange: handleChange,\n ...props,\n },\n ariaRef\n )\n\n useEffect(() => {\n const prefixObserver = new ResizeObserver((entries) => {\n setPrefixWidth(entries[0].contentRect.width)\n })\n const suffixObserver = new ResizeObserver((entries) => {\n setSuffixWidth(entries[0].contentRect.width)\n })\n\n if (prefixRef.current !== null) {\n prefixObserver.observe(prefixRef.current)\n }\n if (suffixRef.current !== null) {\n suffixObserver.observe(suffixRef.current)\n }\n\n return () => {\n suffixObserver.disconnect()\n prefixObserver.disconnect()\n }\n }, [])\n\n return (\n <TextFieldRoot className={className} isDisabled={disabled}>\n <TextFieldLabel\n label={label}\n requiredText={requiredText}\n required={required}\n subLabel={subLabel}\n {...labelProps}\n {...(!showLabel ? visuallyHiddenProps : {})}\n />\n <StyledInputContainer>\n <PrefixContainer ref={prefixRef}>\n <Affix>{prefix}</Affix>\n </PrefixContainer>\n <StyledInput\n ref={mergeRefs(forwardRef, ariaRef)}\n invalid={invalid}\n extraLeftPadding={prefixWidth}\n extraRightPadding={suffixWidth}\n {...inputProps}\n />\n <SuffixContainer ref={suffixRef}>\n <Affix>{suffix}</Affix>\n {showCount && (\n <SingleLineCounter>\n {maxLength !== undefined ? `${count}/${maxLength}` : count}\n </SingleLineCounter>\n )}\n </SuffixContainer>\n </StyledInputContainer>\n {assistiveText != null && assistiveText.length !== 0 && (\n <AssistiveText\n invalid={invalid}\n {...(invalid ? errorMessageProps : descriptionProps)}\n >\n {assistiveText}\n </AssistiveText>\n )}\n </TextFieldRoot>\n )\n})\n\nconst MultiLineTextField = React.forwardRef<\n HTMLTextAreaElement,\n MultiLineTextFieldProps\n>(function MultiLineTextFieldInner({ onChange, ...props }, forwardRef) {\n const {\n className,\n showCount = false,\n showLabel = false,\n label,\n requiredText,\n subLabel,\n disabled = false,\n required,\n invalid = false,\n assistiveText,\n maxLength,\n autoHeight = false,\n rows: initialRows = 4,\n } = props\n\n const { visuallyHiddenProps } = useVisuallyHidden()\n const textareaRef = useRef<HTMLTextAreaElement>(null)\n const ariaRef = useRef<HTMLTextAreaElement>(null)\n const [count, setCount] = useState(countCodePointsInString(props.value ?? ''))\n const [rows, setRows] = useState(initialRows)\n\n const syncHeight = useCallback(\n (textarea: HTMLTextAreaElement) => {\n const rows = `${textarea.value}\\n`.match(/\\n/gu)?.length ?? 1\n if (initialRows <= rows) {\n setRows(rows)\n }\n },\n [initialRows]\n )\n\n const nonControlled = props.value === undefined\n const handleChange = useCallback(\n (value: string) => {\n const count = countCodePointsInString(value)\n if (maxLength !== undefined && count > maxLength) {\n return\n }\n if (nonControlled) {\n setCount(count)\n }\n if (autoHeight && textareaRef.current !== null) {\n syncHeight(textareaRef.current)\n }\n onChange?.(value)\n },\n [autoHeight, maxLength, nonControlled, onChange, syncHeight]\n )\n\n useEffect(() => {\n setCount(countCodePointsInString(props.value ?? ''))\n }, [props.value])\n\n const { inputProps, labelProps, descriptionProps, errorMessageProps } =\n useTextField(\n {\n inputElementType: 'textarea',\n isDisabled: disabled,\n isRequired: required,\n validationState: invalid ? 'invalid' : 'valid',\n description: !invalid && assistiveText,\n errorMessage: invalid && assistiveText,\n onChange: handleChange,\n ...props,\n },\n ariaRef\n )\n\n useEffect(() => {\n if (autoHeight && textareaRef.current !== null) {\n syncHeight(textareaRef.current)\n }\n }, [autoHeight, syncHeight])\n\n return (\n <TextFieldRoot className={className} isDisabled={disabled}>\n <TextFieldLabel\n label={label}\n requiredText={requiredText}\n required={required}\n subLabel={subLabel}\n {...labelProps}\n {...(!showLabel ? visuallyHiddenProps : {})}\n />\n <StyledTextareaContainer\n invalid={invalid}\n rows={showCount ? rows + 1 : rows}\n >\n <StyledTextarea\n ref={mergeRefs(textareaRef, forwardRef, ariaRef)}\n rows={rows}\n noBottomPadding={showCount}\n {...inputProps}\n />\n {showCount && (\n <MultiLineCounter>\n {maxLength !== undefined ? `${count}/${maxLength}` : count}\n </MultiLineCounter>\n )}\n </StyledTextareaContainer>\n {assistiveText != null && assistiveText.length !== 0 && (\n <AssistiveText\n invalid={invalid}\n {...(invalid ? errorMessageProps : descriptionProps)}\n >\n {assistiveText}\n </AssistiveText>\n )}\n </TextFieldRoot>\n )\n})\n\nconst TextFieldRoot = styled.div<{ isDisabled: boolean }>`\n display: flex;\n flex-direction: column;\n\n ${(p) => p.isDisabled && { opacity: p.theme.elementEffect.disabled.opacity }}\n`\n\nconst TextFieldLabel = styled(FieldLabel)`\n ${theme((o) => o.margin.bottom(8))}\n`\n\nconst StyledInputContainer = styled.div`\n height: 40px;\n display: grid;\n position: relative;\n`\n\nconst PrefixContainer = styled.span`\n position: absolute;\n top: 50%;\n left: 8px;\n transform: translateY(-50%);\n`\n\nconst SuffixContainer = styled.span`\n position: absolute;\n top: 50%;\n right: 8px;\n transform: translateY(-50%);\n\n display: flex;\n gap: 8px;\n`\n\nconst Affix = styled.span`\n user-select: none;\n\n ${theme((o) => [o.typography(14).preserveHalfLeading, o.font.text2])}\n`\n\nconst StyledInput = styled.input<{\n invalid: boolean\n extraLeftPadding: number\n extraRightPadding: number\n}>`\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 + ${(p) => p.extraLeftPadding}px) / 0.875);\n padding-right: calc((8px + ${(p) => p.extraRightPadding}px) / 0.875);\n border-radius: calc(4px / 0.875);\n\n /* Display box-shadow for iOS Safari */\n appearance: none;\n\n ${(p) =>\n theme((o) => [\n o.bg.surface3.hover,\n o.outline.default.focus,\n p.invalid && o.outline.assertive,\n o.font.text2,\n ])}\n\n &::placeholder {\n ${theme((o) => o.font.text3)}\n }\n`\n\nconst StyledTextareaContainer = styled.div<{ rows: number; invalid: boolean }>`\n position: relative;\n overflow: hidden;\n padding: 0 8px;\n\n ${(p) =>\n theme((o) => [\n o.bg.surface3.hover,\n p.invalid && o.outline.assertive,\n o.font.text2,\n o.borderRadius(4),\n ])}\n\n &:focus-within {\n ${(p) =>\n theme((o) => (p.invalid ? o.outline.assertive : o.outline.default))}\n }\n\n ${({ rows }) => css`\n height: calc(22px * ${rows} + 18px);\n `};\n`\n\nconst StyledTextarea = styled.textarea<{ noBottomPadding: boolean }>`\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 ${(p) => (p.noBottomPadding ? 0 : '')};\n\n ${({ rows = 1 }) => css`\n height: calc(22px / 0.875 * ${rows});\n `};\n\n /* Display box-shadow for iOS Safari */\n appearance: none;\n\n background: none;\n\n &::placeholder {\n ${theme((o) => o.font.text3)}\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`\n\nconst SingleLineCounter = styled.span`\n ${theme((o) => [o.typography(14).preserveHalfLeading, o.font.text3])}\n`\n\nconst MultiLineCounter = styled.span`\n position: absolute;\n bottom: 9px;\n right: 8px;\n\n ${theme((o) => [o.typography(14).preserveHalfLeading, o.font.text3])}\n`\n\nconst AssistiveText = styled.p<{ invalid: boolean }>`\n ${(p) =>\n theme((o) => [\n o.typography(14),\n o.margin.top(8),\n o.margin.bottom(0),\n o.font[p.invalid ? 'assertive' : 'text1'],\n ])}\n`\n","import React from 'react'\n\nimport '@charcoal-ui/icons'\nimport type { PixivIcon, Props } from '@charcoal-ui/icons'\n\nexport interface OwnProps {\n unsafeNonGuidelineScale?: number\n className?: string\n}\n\nexport interface IconProps\n extends OwnProps,\n React.PropsWithoutRef<\n Omit<Props, 'class' | 'unsafe-non-guideline-scale' | 'css'>\n > {}\n\nconst Icon = React.forwardRef<PixivIcon, IconProps>(function IconInner(\n { name, scale, unsafeNonGuidelineScale, className, ...rest },\n ref\n) {\n return (\n <pixiv-icon\n ref={ref}\n name={name}\n scale={scale}\n unsafe-non-guideline-scale={unsafeNonGuidelineScale}\n class={className}\n {...rest}\n />\n )\n})\n\nexport default Icon\n"],"names":["DefaultLink","React","forwardRef","ref","to","children","rest","DefaultValue","Link","ComponentAbstractionContext","createContext","ComponentAbstraction","components","useComponentAbstraction","useContext","unreachable","value","Error","arguments","length","JSON","stringify","theme","createTheme","styled","Clickable","props","onClick","disabled","undefined","Button","clickableCss","css","disabledSelector","button","A","span","variant","size","fixed","StyledButton","withConfig","shouldForwardProp","prop","attrs","styledProps","p","o","font","hover","press","bg","background","typography","bold","preserveHalfLeading","padding","horizontal","borderRadius","outline","focus","height","variantToProps","sizeToProps","IconButton","IconButtonInner","icon","validateIconSize","StyledIconButton","width","requiredIconSize","result","exec","iconSize","console","warn","Radio","forceChecked","RadioGroupContext","name","selected","isParentDisabled","readonly","hasError","onChange","warning","isSelected","isDisabled","isReadonly","handleChange","useCallback","e","currentTarget","RadioRoot","label","px","spacing","RadioInput","input","type","text5","assertive","color","text4","brand","RadioLabel","div","StyledRadioGroup","RadioGroup","className","next","SelectGroupContext","Select","parentDisabled","parentOnChange","includes","event","HTMLInputElement","checked","Boolean","SelectRoot","SelectLabel","text1","SelectInput","overlay","text3","surface4","SelectInputOverlay","SelectGroup","ariaLabel","payload","index","indexOf","slice","Array","from","Set","SwitchCheckbox","ariaSwitchProps","useMemo","state","useToggleState","useRef","useSwitch","inputProps","Label","LabelInner","SwitchInput","FieldLabel","style","required","requiredText","subLabel","labelProps","RequiredText","SubLabelClickable","FieldLabelWrapper","margin","left","mergeRefs","current","countCodePointsInString","string","TextField","multiline","SingleLineTextField","SingleLineTextFieldInner","showLabel","showCount","invalid","assistiveText","maxLength","prefix","suffix","useVisuallyHidden","visuallyHiddenProps","ariaRef","prefixRef","suffixRef","useState","count","setCount","prefixWidth","setPrefixWidth","suffixWidth","setSuffixWidth","nonControlled","useEffect","useTextField","inputElementType","isRequired","validationState","description","errorMessage","descriptionProps","errorMessageProps","prefixObserver","ResizeObserver","entries","contentRect","suffixObserver","observe","disconnect","MultiLineTextField","MultiLineTextFieldInner","autoHeight","rows","initialRows","textareaRef","setRows","syncHeight","textarea","match","TextFieldRoot","opacity","elementEffect","TextFieldLabel","bottom","StyledInputContainer","PrefixContainer","SuffixContainer","Affix","text2","StyledInput","extraLeftPadding","extraRightPadding","surface3","StyledTextareaContainer","StyledTextarea","noBottomPadding","SingleLineCounter","MultiLineCounter","AssistiveText","top","Icon","IconInner","scale","unsafeNonGuidelineScale"],"mappings":"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"}
1
+ {"version":3,"file":"index.cjs","sources":["../src/core/ComponentAbstraction.tsx","../src/_lib/index.ts","../src/styled.ts","../src/components/Clickable/index.tsx","../src/components/Button/index.tsx","../src/components/IconButton/index.tsx","../src/components/Radio/index.tsx","../src/components/Select/context.ts","../src/components/Select/index.tsx","../src/components/Switch/index.tsx","../src/components/FieldLabel/index.tsx","../src/components/TextField/index.tsx","../src/components/Icon/index.tsx","../src/components/LoadingSpinner/index.tsx"],"sourcesContent":["import React, { useContext } from 'react'\n\nexport type LinkProps = {\n /**\n * リンクのURL\n */\n to: string\n} & Omit<React.ComponentPropsWithoutRef<'a'>, 'href'>\n\nexport const DefaultLink = React.forwardRef<HTMLAnchorElement, LinkProps>(\n function DefaultLink({ to, children, ...rest }, ref) {\n return (\n <a href={to} ref={ref} {...rest}>\n {children}\n </a>\n )\n }\n)\n\ninterface Components {\n Link: React.ComponentType<React.ComponentPropsWithRef<typeof DefaultLink>>\n}\n\nconst DefaultValue: Components = {\n Link: DefaultLink,\n}\n\nconst ComponentAbstractionContext = React.createContext(DefaultValue)\n\ninterface Props {\n children: React.ReactNode\n components: Partial<Components>\n}\n\nexport default function ComponentAbstraction({ children, components }: Props) {\n return (\n <ComponentAbstractionContext.Provider\n value={{ ...DefaultValue, ...components }}\n >\n {children}\n </ComponentAbstractionContext.Provider>\n )\n}\n\nexport function useComponentAbstraction() {\n return useContext(ComponentAbstractionContext)\n}\n","/**\n * 今後ポートされる予定の汎用的な関数群\n */\n\n/**\n * Function used to assert a given code path is unreachable\n */\nexport function unreachable(): never\n/**\n * Function used to assert a given code path is unreachable.\n * Very useful for ensuring switches are exhaustive:\n *\n * ```ts\n * switch (a.type) {\n * case Types.A:\n * case Types.B:\n * break\n * default:\n * unreachable(a) // will cause a build error if there was\n * // a Types.C that was not checked\n * }\n * ```\n *\n * @param value Value to be asserted as unreachable\n */\n// NOTE: Uses separate overloads, _not_ `value?: never`, to not allow `undefined` to be passed\n// eslint-disable-next-line @typescript-eslint/unified-signatures\nexport function unreachable(value: never): never\nexport function unreachable(value?: never): never {\n throw new Error(\n arguments.length === 0\n ? 'unreachable'\n : `unreachable (${JSON.stringify(value)})`\n )\n}\n","import styled from 'styled-components'\nimport { createTheme } from '@charcoal-ui/styled'\nexport const theme = createTheme(styled)\n","import React from 'react'\nimport styled, { css } from 'styled-components'\nimport {\n LinkProps,\n useComponentAbstraction,\n} from '../../core/ComponentAbstraction'\nimport { disabledSelector } from '@charcoal-ui/utils'\n\ninterface BaseProps {\n /**\n * クリックの無効化\n */\n disabled?: boolean\n}\n\ninterface LinkBaseProps {\n /**\n * リンクのURL。指定するとbuttonタグではなくaタグとして描画される\n */\n to: string\n}\n\nexport type ClickableProps =\n | (BaseProps & Omit<React.ComponentPropsWithoutRef<'button'>, 'disabled'>)\n | (BaseProps & LinkBaseProps & Omit<LinkProps, 'to'>)\nexport type ClickableElement = HTMLButtonElement & HTMLAnchorElement\n\nconst Clickable = React.forwardRef<ClickableElement, ClickableProps>(\n function Clickable(props, ref) {\n const { Link } = useComponentAbstraction()\n if ('to' in props) {\n const { onClick, disabled = false, ...rest } = props\n return (\n <A<typeof Link>\n {...rest}\n as={disabled ? undefined : Link}\n onClick={disabled ? undefined : onClick}\n aria-disabled={disabled}\n ref={ref}\n />\n )\n } else {\n return <Button {...props} ref={ref} />\n }\n }\n)\nexport default Clickable\n\nconst clickableCss = css`\n /* Clickable style */\n cursor: pointer;\n\n ${disabledSelector} {\n cursor: default;\n }\n`\n\nconst Button = styled.button`\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 ${clickableCss}\n`\n\nconst A = styled.span`\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 ${clickableCss}\n`\n","import React from 'react'\nimport styled from 'styled-components'\nimport { unreachable } from '../../_lib'\nimport { theme } from '../../styled'\nimport Clickable, { ClickableElement, ClickableProps } from '../Clickable'\n\ntype Variant = 'Primary' | 'Default' | 'Overlay' | 'Danger' | 'Navigation'\ntype Size = 'S' | 'M'\n\ninterface StyledProps {\n /**\n * ボタンのスタイル\n */\n variant: Variant\n /**\n * ボタンのサイズ\n */\n size: Size\n /**\n * 幅を最大まで広げて描画\n */\n fixed: boolean\n}\n\nexport type ButtonProps = Partial<StyledProps> & ClickableProps\n\nconst Button = React.forwardRef<ClickableElement, ButtonProps>(function Button(\n {\n children,\n variant = 'Default',\n size = 'M',\n fixed = false,\n disabled = false,\n ...rest\n },\n ref\n) {\n return (\n <StyledButton\n {...rest}\n disabled={disabled}\n variant={variant}\n size={size}\n fixed={fixed}\n ref={ref}\n >\n {children}\n </StyledButton>\n )\n})\nexport default Button\n\nconst StyledButton = styled(Clickable)\n .withConfig<StyledProps>({\n shouldForwardProp(prop) {\n // fixed は <button> 要素に渡ってはいけない\n return prop !== 'fixed'\n },\n })\n .attrs<StyledProps, ReturnType<typeof styledProps>>(styledProps)`\n width: ${(p) => (p.fixed ? 'stretch' : 'min-content')};\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 ${(p) =>\n theme((o) => [\n o.font[p.font].hover.press,\n o.bg[p.background].hover.press,\n o.typography(14).bold.preserveHalfLeading,\n o.padding.horizontal(p.padding),\n o.disabled,\n o.borderRadius('oval'),\n o.outline.default.focus,\n ])}\n\n /* よく考えたらheight=32って定義が存在しないな... */\n height: ${(p) => p.height}px;\n`\n\nfunction styledProps(props: StyledProps) {\n return {\n ...props,\n ...variantToProps(props.variant),\n ...sizeToProps(props.size),\n }\n}\n\nfunction variantToProps(variant: Variant) {\n switch (variant) {\n case 'Overlay':\n return { font: 'text5', background: 'surface4' } as const\n case 'Default':\n return { font: 'text2', background: 'surface3' } as const\n case 'Primary':\n return { font: 'text5', background: 'brand' } as const\n case 'Navigation':\n return { font: 'text5', background: 'surface6' } as const\n case 'Danger':\n return { font: 'text5', background: 'assertive' } as const\n default:\n return unreachable(variant)\n }\n}\n\nfunction sizeToProps(size: Size) {\n switch (size) {\n case 'S':\n return {\n height: 32,\n padding: 16,\n } as const\n case 'M':\n return {\n height: 40,\n padding: 24,\n } as const\n }\n}\n","import React from 'react'\nimport styled from 'styled-components'\nimport { theme } from '../../styled'\nimport Clickable, { ClickableElement, ClickableProps } from '../Clickable'\nimport type { KnownIconType } from '@charcoal-ui/icons'\n\ntype Variant = 'Default' | 'Overlay'\ntype Size = 'XS' | 'S' | 'M'\n\ninterface StyledProps {\n readonly variant?: Variant\n readonly size?: Size\n readonly icon: keyof KnownIconType\n}\n\nexport type IconButtonProps = StyledProps & ClickableProps\n\nconst IconButton = React.forwardRef<ClickableElement, IconButtonProps>(\n function IconButtonInner(\n { variant = 'Default', size = 'M', icon, ...rest }: IconButtonProps,\n ref\n ) {\n validateIconSize(size, icon)\n return (\n <StyledIconButton {...rest} ref={ref} variant={variant} size={size}>\n <pixiv-icon name={icon} />\n </StyledIconButton>\n )\n }\n)\n\nexport default IconButton\n\nconst StyledIconButton = styled(Clickable).attrs<\n Required<StyledProps>,\n ReturnType<typeof styledProps>\n>(styledProps)`\n user-select: none;\n\n width: ${(p) => p.width}px;\n height: ${(p) => p.height}px;\n display: flex;\n align-items: center;\n justify-content: center;\n\n ${({ font, background }) =>\n theme((o) => [\n o.font[font],\n o.bg[background].hover.press,\n o.disabled,\n o.borderRadius('oval'),\n o.outline.default.focus,\n ])}\n`\n\nfunction styledProps(props: Required<StyledProps>) {\n return {\n ...props,\n ...variantToProps(props.variant),\n ...sizeToProps(props.size),\n }\n}\n\nfunction variantToProps(variant: Variant) {\n switch (variant) {\n case 'Default':\n return { font: 'text3', background: 'transparent' } as const\n case 'Overlay':\n return { font: 'text5', background: 'surface4' } as const\n }\n}\n\nfunction sizeToProps(size: Size) {\n switch (size) {\n case 'XS':\n return {\n width: 20,\n height: 20,\n }\n case 'S':\n return {\n width: 32,\n height: 32,\n }\n case 'M':\n return {\n width: 40,\n height: 40,\n }\n }\n}\n\n/**\n * validates matches of size and icon\n */\nfunction validateIconSize(size: Size, icon: keyof KnownIconType) {\n let requiredIconSize: string\n switch (size) {\n case 'XS':\n requiredIconSize = '16'\n break\n case 'S':\n case 'M':\n requiredIconSize = '24'\n break\n }\n // アイコン名は サイズ/名前\n const result = /^\\d*/u.exec(icon)\n if (result == null) {\n throw new Error('Invalid icon name')\n }\n const [iconSize] = result\n if (iconSize !== requiredIconSize) {\n // eslint-disable-next-line no-console\n console.warn(\n `IconButton with size \"${size}\" expect icon size \"${requiredIconSize}, but got \"${iconSize}\"`\n )\n }\n}\n","import React, { useCallback, useContext } from 'react'\nimport styled from 'styled-components'\nimport warning from 'warning'\nimport { theme } from '../../styled'\nimport { px } from '@charcoal-ui/utils'\n\nexport type RadioProps = React.PropsWithChildren<{\n value: string\n forceChecked?: boolean\n disabled?: boolean\n}>\n\nexport default function Radio({\n value,\n forceChecked = false,\n disabled = false,\n children,\n}: RadioProps) {\n const {\n name,\n selected,\n disabled: isParentDisabled,\n readonly,\n hasError,\n onChange,\n } = useContext(RadioGroupContext)\n\n warning(\n // eslint-disable-next-line @typescript-eslint/no-unnecessary-condition\n name !== undefined,\n `\"name\" is not Provided for <Radio>. Perhaps you forgot to wrap with <RadioGroup> ?`\n )\n\n const isSelected = value === selected\n const isDisabled = disabled || isParentDisabled\n const isReadonly = readonly && !isSelected\n\n const handleChange = useCallback(\n (e: React.ChangeEvent<HTMLInputElement>) => {\n onChange(e.currentTarget.value)\n },\n [onChange]\n )\n\n return (\n <RadioRoot aria-disabled={isDisabled || isReadonly}>\n <RadioInput\n name={name}\n value={value}\n checked={forceChecked || isSelected}\n hasError={hasError}\n onChange={handleChange}\n disabled={isDisabled || isReadonly}\n />\n {children != null && <RadioLabel>{children}</RadioLabel>}\n </RadioRoot>\n )\n}\n\nconst RadioRoot = styled.label`\n display: grid;\n grid-template-columns: auto 1fr;\n grid-gap: ${({ theme }) => px(theme.spacing[4])};\n align-items: center;\n cursor: pointer;\n\n ${theme((o) => [o.disabled])}\n`\n\nexport const RadioInput = styled.input.attrs({ type: 'radio' })<{\n hasError?: boolean\n}>`\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 ${({ hasError = false }) =>\n theme((o) => [\n o.borderRadius('oval'),\n o.bg.text5.hover.press,\n hasError && o.outline.assertive,\n ])};\n\n &:not(:checked) {\n border-width: 2px;\n border-style: solid;\n border-color: ${({ theme }) => theme.color.text4};\n }\n\n &:checked {\n ${theme((o) => o.bg.brand.hover.press)}\n\n &::after {\n content: '';\n display: block;\n width: 8px;\n height: 8px;\n pointer-events: none;\n\n ${theme((o) => [o.bg.text5.hover.press, o.borderRadius('oval')])}\n }\n }\n\n ${theme((o) => o.outline.default.focus)}\n }\n`\n\nconst RadioLabel = styled.div`\n ${theme((o) => [o.typography(14)])}\n`\n\nexport type RadioGroupProps = React.PropsWithChildren<{\n className?: string\n value?: string\n label: string\n name: string\n onChange(next: string): void\n disabled?: boolean\n readonly?: boolean\n hasError?: boolean\n}>\n\n// TODO: use (or polyfill) flex gap\nconst StyledRadioGroup = styled.div`\n display: grid;\n grid-template-columns: 1fr;\n grid-gap: ${({ theme }) => px(theme.spacing[8])};\n`\n\ninterface RadioGroupContext {\n name: string\n selected?: string\n disabled: boolean\n readonly: boolean\n hasError: boolean\n onChange: (next: string) => void\n}\n\nconst RadioGroupContext = React.createContext<RadioGroupContext>({\n name: undefined as never,\n selected: undefined,\n disabled: false,\n readonly: false,\n hasError: false,\n onChange() {\n throw new Error(\n 'Cannot find onChange() handler. Perhaps you forgot to wrap with <RadioGroup> ?'\n )\n },\n})\n\nexport function RadioGroup({\n className,\n value,\n label,\n name,\n onChange,\n disabled,\n readonly,\n hasError,\n children,\n}: RadioGroupProps) {\n const handleChange = useCallback(\n (next: string) => {\n onChange(next)\n },\n [onChange]\n )\n\n return (\n <RadioGroupContext.Provider\n value={{\n name,\n selected: value,\n disabled: disabled ?? false,\n readonly: readonly ?? false,\n hasError: hasError ?? false,\n onChange: handleChange,\n }}\n >\n <StyledRadioGroup\n role=\"radiogroup\"\n aria-orientation=\"vertical\"\n aria-label={label}\n aria-invalid={hasError}\n className={className}\n >\n {children}\n </StyledRadioGroup>\n </RadioGroupContext.Provider>\n )\n}\n","import { createContext } from 'react'\n\ntype SelectGroupContext = {\n name: string\n selected: string[]\n disabled: boolean\n readonly: boolean\n hasError: boolean\n onChange: ({ value, selected }: { value: string; selected: boolean }) => void\n}\n\nexport const SelectGroupContext = createContext<SelectGroupContext>({\n name: undefined as never,\n selected: [],\n disabled: false,\n readonly: false,\n hasError: false,\n onChange() {\n throw new Error(\n 'Cannot find `onChange()` handler. Perhaps you forgot to wrap it with `<SelectGroup />` ?'\n )\n },\n})\n","import React, { ChangeEvent, useCallback, useContext } from 'react'\nimport styled, { css } from 'styled-components'\nimport warning from 'warning'\nimport { theme } from '../../styled'\nimport { disabledSelector, px } from '@charcoal-ui/utils'\n\nimport { SelectGroupContext } from './context'\n\nexport type SelectProps = React.PropsWithChildren<{\n value: string\n forceChecked?: boolean\n disabled?: boolean\n variant?: 'default' | 'overlay'\n onChange?: (payload: { value: string; selected: boolean }) => void\n}>\n\nexport default function Select({\n value,\n forceChecked = false,\n disabled = false,\n onChange,\n variant = 'default',\n children,\n}: SelectProps) {\n const {\n name,\n selected,\n disabled: parentDisabled,\n readonly,\n hasError,\n onChange: parentOnChange,\n } = useContext(SelectGroupContext)\n\n warning(\n // eslint-disable-next-line @typescript-eslint/no-unnecessary-condition\n name !== undefined,\n `\"name\" is not Provided for <Select>. Perhaps you forgot to wrap with <SelectGroup> ?`\n )\n\n const isSelected = selected.includes(value) || forceChecked\n const isDisabled = disabled || parentDisabled || readonly\n\n const handleChange = useCallback(\n (event: ChangeEvent<HTMLInputElement>) => {\n if (!(event.currentTarget instanceof HTMLInputElement)) {\n return\n }\n if (onChange) onChange({ value, selected: event.currentTarget.checked })\n parentOnChange({ value, selected: event.currentTarget.checked })\n },\n [onChange, parentOnChange, value]\n )\n\n return (\n <SelectRoot aria-disabled={isDisabled}>\n <SelectInput\n {...{\n name,\n value,\n hasError,\n }}\n checked={isSelected}\n disabled={isDisabled}\n onChange={handleChange}\n overlay={variant === 'overlay'}\n aria-invalid={hasError}\n />\n <SelectInputOverlay\n overlay={variant === 'overlay'}\n hasError={hasError}\n aria-hidden={true}\n >\n <pixiv-icon name=\"24/Check\" unsafe-non-guideline-scale={16 / 24} />\n </SelectInputOverlay>\n {Boolean(children) && <SelectLabel>{children}</SelectLabel>}\n </SelectRoot>\n )\n}\n\nconst SelectRoot = styled.label`\n display: grid;\n grid-template-columns: auto 1fr;\n align-items: center;\n position: relative;\n cursor: pointer;\n ${disabledSelector} {\n cursor: default;\n }\n gap: ${({ theme }) => px(theme.spacing[4])};\n ${theme((o) => o.disabled)}\n`\n\nconst SelectLabel = styled.div`\n display: flex;\n align-items: center;\n ${theme((o) => [o.typography(14), o.font.text1])}\n`\n\nconst SelectInput = styled.input.attrs({ type: 'checkbox' })<{\n hasError: boolean\n overlay: boolean\n}>`\n &[type='checkbox'] {\n appearance: none;\n display: block;\n width: 20px;\n height: 20px;\n margin: 0;\n\n &:checked {\n ${theme((o) => o.bg.brand.hover.press)}\n }\n\n ${({ hasError, overlay }) =>\n theme((o) => [\n o.bg.text3.hover.press,\n o.borderRadius('oval'),\n hasError && !overlay && o.outline.assertive,\n overlay && o.bg.surface4,\n ])};\n }\n`\n\nconst SelectInputOverlay = styled.div<{ overlay: boolean; hasError: boolean }>`\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 ${({ hasError, overlay }) =>\n theme((o) => [\n o.width.px(24),\n o.height.px(24),\n o.borderRadius('oval'),\n o.font.text5,\n hasError && overlay && o.outline.assertive,\n ])}\n\n ${({ overlay }) =>\n overlay &&\n css`\n border-color: ${({ theme }) => theme.color.text5};\n border-width: 2px;\n border-style: solid;\n `}\n`\n\nexport type SelectGroupProps = React.PropsWithChildren<{\n className?: string\n name: string\n ariaLabel: string\n selected: string[]\n onChange: (selected: string[]) => void\n disabled?: boolean\n readonly?: boolean\n hasError?: boolean\n}>\n\nexport function SelectGroup({\n className,\n name,\n ariaLabel,\n selected,\n onChange,\n disabled = false,\n readonly = false,\n hasError = false,\n children,\n}: SelectGroupProps) {\n const handleChange = useCallback(\n (payload: { value: string; selected: boolean }) => {\n const index = selected.indexOf(payload.value)\n\n if (payload.selected) {\n if (index < 0) {\n onChange([...selected, payload.value])\n }\n } else {\n if (index >= 0) {\n onChange([...selected.slice(0, index), ...selected.slice(index + 1)])\n }\n }\n },\n [onChange, selected]\n )\n\n return (\n <SelectGroupContext.Provider\n value={{\n name,\n selected: Array.from(new Set(selected)),\n disabled,\n readonly,\n hasError,\n onChange: handleChange,\n }}\n >\n <div\n className={className}\n aria-label={ariaLabel}\n data-testid=\"SelectGroup\"\n >\n {children}\n </div>\n </SelectGroupContext.Provider>\n )\n}\n","import { useSwitch } from '@react-aria/switch'\nimport type { AriaSwitchProps } from '@react-types/switch'\nimport React, { useRef, useMemo } from 'react'\nimport { useToggleState } from 'react-stately'\nimport styled from 'styled-components'\nimport { theme } from '../../styled'\nimport { disabledSelector, px } from '@charcoal-ui/utils'\n\nexport type SwitchProps = {\n name: string\n className?: string\n value?: string\n checked?: boolean\n disabled?: boolean\n onChange(checked: boolean): void\n} & (\n | // children か label は片方が必須\n {\n children: React.ReactNode\n }\n | {\n label: string\n }\n)\n\nexport default function SwitchCheckbox(props: SwitchProps) {\n const { disabled, className } = props\n\n const ariaSwitchProps: AriaSwitchProps = useMemo(\n () => ({\n ...props,\n\n // children がいない場合は aria-label をつけないといけない\n 'aria-label': 'children' in props ? undefined : props.label,\n isDisabled: props.disabled,\n isSelected: props.checked,\n }),\n [props]\n )\n\n const state = useToggleState(ariaSwitchProps)\n const ref = useRef<HTMLInputElement>(null)\n const {\n inputProps: { className: _className, type: _type, ...rest },\n } = useSwitch(ariaSwitchProps, state, ref)\n\n return (\n <Label className={className} aria-disabled={disabled}>\n <SwitchInput {...rest} ref={ref} />\n {'children' in props ? (\n // eslint-disable-next-line react/destructuring-assignment\n <LabelInner>{props.children}</LabelInner>\n ) : undefined}\n </Label>\n )\n}\n\nconst Label = styled.label`\n display: inline-grid;\n grid-template-columns: auto 1fr;\n gap: ${({ theme }) => px(theme.spacing[4])};\n cursor: pointer;\n outline: 0;\n\n ${theme((o) => o.disabled)}\n\n ${disabledSelector} {\n cursor: default;\n }\n`\n\nconst LabelInner = styled.div`\n ${theme((o) => o.typography(14))}\n`\n\nconst SwitchInput = styled.input.attrs({\n type: 'checkbox',\n})`\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 ${theme((o) => [\n o.borderRadius(16),\n o.height.px(16),\n o.bg.text4.hover.press,\n o.outline.default.focus,\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 ${theme((o) => [o.bg.text5.hover.press, o.borderRadius('oval')])}\n }\n\n &:checked {\n ${theme((o) => o.bg.brand.hover.press)}\n\n &::after {\n transform: translateX(12px);\n }\n }\n }\n`\n","import React from 'react'\nimport styled from 'styled-components'\nimport { createTheme } from '@charcoal-ui/styled'\n\nexport interface FieldLabelProps\n extends React.LabelHTMLAttributes<HTMLLabelElement> {\n readonly className?: string\n readonly label: string\n readonly subLabel?: React.ReactNode\n readonly required?: boolean\n // TODO: 翻訳用のContextで注入する\n readonly requiredText?: string\n}\n\nconst FieldLabel = React.forwardRef<HTMLLabelElement, FieldLabelProps>(\n function FieldLabel(\n {\n style,\n className,\n label,\n required = false,\n requiredText,\n subLabel,\n ...labelProps\n },\n ref\n ) {\n return (\n <FieldLabelWrapper style={style} className={className}>\n <Label ref={ref} {...labelProps}>\n {label}\n </Label>\n {required && <RequiredText>{requiredText}</RequiredText>}\n <SubLabelClickable>\n <span>{subLabel}</span>\n </SubLabelClickable>\n </FieldLabelWrapper>\n )\n }\n)\n\nexport default FieldLabel\n\nconst theme = createTheme(styled)\n\nconst Label = styled.label`\n ${theme((o) => [o.typography(14).bold, o.font.text1])}\n`\n\nconst RequiredText = styled.span`\n ${theme((o) => [o.typography(14), o.font.text3])}\n`\n\nconst SubLabelClickable = styled.div`\n ${theme((o) => [\n o.typography(14),\n o.font.text3.hover.press,\n o.outline.default.focus,\n ])}\n`\n\nconst FieldLabelWrapper = styled.div`\n display: inline-flex;\n align-items: center;\n\n > ${RequiredText} {\n ${theme((o) => o.margin.left(4))}\n }\n\n > ${SubLabelClickable} {\n ${theme((o) => o.margin.left('auto'))}\n }\n`\n","import { useTextField } from '@react-aria/textfield'\nimport { useVisuallyHidden } from '@react-aria/visually-hidden'\nimport React, {\n ReactNode,\n useCallback,\n useEffect,\n useRef,\n useState,\n} from 'react'\nimport styled, { css } from 'styled-components'\nimport FieldLabel, { FieldLabelProps } from '../FieldLabel'\nimport { createTheme } from '@charcoal-ui/styled'\n\nconst theme = createTheme(styled)\n\ninterface TextFieldBaseProps\n extends Pick<FieldLabelProps, 'label' | 'requiredText' | 'subLabel'> {\n readonly className?: string\n readonly defaultValue?: string\n readonly value?: string\n readonly onChange?: (value: string) => void\n readonly onKeyDown?: (event: React.KeyboardEvent<Element>) => void\n readonly onFocus?: (event: React.FocusEvent<Element>) => void\n readonly onBlur?: (event: React.FocusEvent<Element>) => void\n readonly showCount?: boolean\n readonly showLabel?: boolean\n readonly placeholder?: string\n readonly assistiveText?: string\n readonly disabled?: boolean\n readonly required?: boolean\n readonly invalid?: boolean\n readonly maxLength?: number\n /**\n * tab-indexがー1かどうか\n */\n readonly excludeFromTabOrder?: boolean\n}\n\nexport interface SingleLineTextFieldProps extends TextFieldBaseProps {\n readonly autoHeight?: never\n readonly multiline?: false\n readonly rows?: never\n readonly type?: string\n readonly prefix?: ReactNode\n readonly suffix?: ReactNode\n}\n\nexport interface MultiLineTextFieldProps extends TextFieldBaseProps {\n readonly autoHeight?: boolean\n readonly multiline: true\n readonly rows?: number\n readonly type?: never\n readonly prefix?: never\n readonly suffix?: never\n}\n\nexport type TextFieldProps = SingleLineTextFieldProps | MultiLineTextFieldProps\ntype TextFieldElement = HTMLInputElement & HTMLTextAreaElement\n\nfunction mergeRefs<T>(...refs: React.Ref<T>[]): React.RefCallback<T> {\n return (value) => {\n for (const ref of refs) {\n if (typeof ref === 'function') {\n ref(value)\n } else if (ref !== null) {\n ;(ref as React.MutableRefObject<T | null>).current = value\n }\n }\n }\n}\n\nfunction countCodePointsInString(string: string) {\n // [...string] とするとproduction buildで動かなくなる\n // cf. https://twitter.com/f_subal/status/1497214727511891972\n return Array.from(string).length\n}\n\nconst TextField = React.forwardRef<TextFieldElement, TextFieldProps>(\n function TextField(props, ref) {\n return props.multiline !== undefined && props.multiline ? (\n <MultiLineTextField ref={ref} {...props} />\n ) : (\n <SingleLineTextField ref={ref} {...props} />\n )\n }\n)\n\nexport default TextField\n\nconst SingleLineTextField = React.forwardRef<\n HTMLInputElement,\n SingleLineTextFieldProps\n>(function SingleLineTextFieldInner({ onChange, ...props }, forwardRef) {\n const {\n className,\n showLabel = false,\n showCount = false,\n label,\n requiredText,\n subLabel,\n disabled = false,\n required,\n invalid = false,\n assistiveText,\n maxLength,\n prefix = null,\n suffix = null,\n } = props\n\n const { visuallyHiddenProps } = useVisuallyHidden()\n const ariaRef = useRef<HTMLInputElement>(null)\n const prefixRef = useRef<HTMLSpanElement>(null)\n const suffixRef = useRef<HTMLSpanElement>(null)\n const [count, setCount] = useState(countCodePointsInString(props.value ?? ''))\n const [prefixWidth, setPrefixWidth] = useState(0)\n const [suffixWidth, setSuffixWidth] = useState(0)\n\n const nonControlled = props.value === undefined\n const handleChange = useCallback(\n (value: string) => {\n const count = countCodePointsInString(value)\n if (maxLength !== undefined && count > maxLength) {\n return\n }\n if (nonControlled) {\n setCount(count)\n }\n onChange?.(value)\n },\n [maxLength, nonControlled, onChange]\n )\n\n useEffect(() => {\n setCount(countCodePointsInString(props.value ?? ''))\n }, [props.value])\n\n const { inputProps, labelProps, descriptionProps, errorMessageProps } =\n useTextField(\n {\n inputElementType: 'input',\n isDisabled: disabled,\n isRequired: required,\n validationState: invalid ? 'invalid' : 'valid',\n description: !invalid && assistiveText,\n errorMessage: invalid && assistiveText,\n onChange: handleChange,\n ...props,\n },\n ariaRef\n )\n\n useEffect(() => {\n const prefixObserver = new ResizeObserver((entries) => {\n setPrefixWidth(entries[0].contentRect.width)\n })\n const suffixObserver = new ResizeObserver((entries) => {\n setSuffixWidth(entries[0].contentRect.width)\n })\n\n if (prefixRef.current !== null) {\n prefixObserver.observe(prefixRef.current)\n }\n if (suffixRef.current !== null) {\n suffixObserver.observe(suffixRef.current)\n }\n\n return () => {\n suffixObserver.disconnect()\n prefixObserver.disconnect()\n }\n }, [])\n\n return (\n <TextFieldRoot className={className} isDisabled={disabled}>\n <TextFieldLabel\n label={label}\n requiredText={requiredText}\n required={required}\n subLabel={subLabel}\n {...labelProps}\n {...(!showLabel ? visuallyHiddenProps : {})}\n />\n <StyledInputContainer>\n <PrefixContainer ref={prefixRef}>\n <Affix>{prefix}</Affix>\n </PrefixContainer>\n <StyledInput\n ref={mergeRefs(forwardRef, ariaRef)}\n invalid={invalid}\n extraLeftPadding={prefixWidth}\n extraRightPadding={suffixWidth}\n {...inputProps}\n />\n <SuffixContainer ref={suffixRef}>\n <Affix>{suffix}</Affix>\n {showCount && (\n <SingleLineCounter>\n {maxLength !== undefined ? `${count}/${maxLength}` : count}\n </SingleLineCounter>\n )}\n </SuffixContainer>\n </StyledInputContainer>\n {assistiveText != null && assistiveText.length !== 0 && (\n <AssistiveText\n invalid={invalid}\n {...(invalid ? errorMessageProps : descriptionProps)}\n >\n {assistiveText}\n </AssistiveText>\n )}\n </TextFieldRoot>\n )\n})\n\nconst MultiLineTextField = React.forwardRef<\n HTMLTextAreaElement,\n MultiLineTextFieldProps\n>(function MultiLineTextFieldInner({ onChange, ...props }, forwardRef) {\n const {\n className,\n showCount = false,\n showLabel = false,\n label,\n requiredText,\n subLabel,\n disabled = false,\n required,\n invalid = false,\n assistiveText,\n maxLength,\n autoHeight = false,\n rows: initialRows = 4,\n } = props\n\n const { visuallyHiddenProps } = useVisuallyHidden()\n const textareaRef = useRef<HTMLTextAreaElement>(null)\n const ariaRef = useRef<HTMLTextAreaElement>(null)\n const [count, setCount] = useState(countCodePointsInString(props.value ?? ''))\n const [rows, setRows] = useState(initialRows)\n\n const syncHeight = useCallback(\n (textarea: HTMLTextAreaElement) => {\n const rows = (`${textarea.value}\\n`.match(/\\n/gu)?.length ?? 0) || 1\n setRows(initialRows <= rows ? rows : initialRows)\n },\n [initialRows]\n )\n\n const nonControlled = props.value === undefined\n const handleChange = useCallback(\n (value: string) => {\n const count = countCodePointsInString(value)\n if (maxLength !== undefined && count > maxLength) {\n return\n }\n if (nonControlled) {\n setCount(count)\n }\n if (autoHeight && textareaRef.current !== null) {\n syncHeight(textareaRef.current)\n }\n onChange?.(value)\n },\n [autoHeight, maxLength, nonControlled, onChange, syncHeight]\n )\n\n useEffect(() => {\n setCount(countCodePointsInString(props.value ?? ''))\n }, [props.value])\n\n const { inputProps, labelProps, descriptionProps, errorMessageProps } =\n useTextField(\n {\n inputElementType: 'textarea',\n isDisabled: disabled,\n isRequired: required,\n validationState: invalid ? 'invalid' : 'valid',\n description: !invalid && assistiveText,\n errorMessage: invalid && assistiveText,\n onChange: handleChange,\n ...props,\n },\n ariaRef\n )\n\n useEffect(() => {\n if (autoHeight && textareaRef.current !== null) {\n syncHeight(textareaRef.current)\n }\n }, [autoHeight, syncHeight])\n\n return (\n <TextFieldRoot className={className} isDisabled={disabled}>\n <TextFieldLabel\n label={label}\n requiredText={requiredText}\n required={required}\n subLabel={subLabel}\n {...labelProps}\n {...(!showLabel ? visuallyHiddenProps : {})}\n />\n <StyledTextareaContainer\n invalid={invalid}\n rows={showCount ? rows + 1 : rows}\n >\n <StyledTextarea\n ref={mergeRefs(textareaRef, forwardRef, ariaRef)}\n rows={rows}\n noBottomPadding={showCount}\n {...inputProps}\n />\n {showCount && (\n <MultiLineCounter>\n {maxLength !== undefined ? `${count}/${maxLength}` : count}\n </MultiLineCounter>\n )}\n </StyledTextareaContainer>\n {assistiveText != null && assistiveText.length !== 0 && (\n <AssistiveText\n invalid={invalid}\n {...(invalid ? errorMessageProps : descriptionProps)}\n >\n {assistiveText}\n </AssistiveText>\n )}\n </TextFieldRoot>\n )\n})\n\nconst TextFieldRoot = styled.div<{ isDisabled: boolean }>`\n display: flex;\n flex-direction: column;\n\n ${(p) => p.isDisabled && { opacity: p.theme.elementEffect.disabled.opacity }}\n`\n\nconst TextFieldLabel = styled(FieldLabel)`\n ${theme((o) => o.margin.bottom(8))}\n`\n\nconst StyledInputContainer = styled.div`\n height: 40px;\n display: grid;\n position: relative;\n`\n\nconst PrefixContainer = styled.span`\n position: absolute;\n top: 50%;\n left: 8px;\n transform: translateY(-50%);\n`\n\nconst SuffixContainer = styled.span`\n position: absolute;\n top: 50%;\n right: 8px;\n transform: translateY(-50%);\n\n display: flex;\n gap: 8px;\n`\n\nconst Affix = styled.span`\n user-select: none;\n\n ${theme((o) => [o.typography(14).preserveHalfLeading, o.font.text2])}\n`\n\nconst StyledInput = styled.input<{\n invalid: boolean\n extraLeftPadding: number\n extraRightPadding: number\n}>`\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 + ${(p) => p.extraLeftPadding}px) / 0.875);\n padding-right: calc((8px + ${(p) => p.extraRightPadding}px) / 0.875);\n border-radius: calc(4px / 0.875);\n\n /* Display box-shadow for iOS Safari */\n appearance: none;\n\n ${(p) =>\n theme((o) => [\n o.bg.surface3.hover,\n o.outline.default.focus,\n p.invalid && o.outline.assertive,\n o.font.text2,\n ])}\n\n &::placeholder {\n ${theme((o) => o.font.text3)}\n }\n`\n\nconst StyledTextareaContainer = styled.div<{ rows: number; invalid: boolean }>`\n position: relative;\n overflow: hidden;\n padding: 0 8px;\n\n ${(p) =>\n theme((o) => [\n o.bg.surface3.hover,\n p.invalid && o.outline.assertive,\n o.font.text2,\n o.borderRadius(4),\n ])}\n\n &:focus-within {\n ${(p) =>\n theme((o) => (p.invalid ? o.outline.assertive : o.outline.default))}\n }\n\n ${({ rows }) => css`\n height: calc(22px * ${rows} + 18px);\n `};\n`\n\nconst StyledTextarea = styled.textarea<{ noBottomPadding: boolean }>`\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 ${(p) => (p.noBottomPadding ? 0 : '')};\n\n ${({ rows = 1 }) => css`\n height: calc(22px / 0.875 * ${rows});\n `};\n\n /* Display box-shadow for iOS Safari */\n appearance: none;\n\n background: none;\n\n &::placeholder {\n ${theme((o) => o.font.text3)}\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`\n\nconst SingleLineCounter = styled.span`\n ${theme((o) => [o.typography(14).preserveHalfLeading, o.font.text3])}\n`\n\nconst MultiLineCounter = styled.span`\n position: absolute;\n bottom: 9px;\n right: 8px;\n\n ${theme((o) => [o.typography(14).preserveHalfLeading, o.font.text3])}\n`\n\nconst AssistiveText = styled.p<{ invalid: boolean }>`\n ${(p) =>\n theme((o) => [\n o.typography(14),\n o.margin.top(8),\n o.margin.bottom(0),\n o.font[p.invalid ? 'assertive' : 'text1'],\n ])}\n`\n","import React from 'react'\n\nimport '@charcoal-ui/icons'\nimport type { PixivIcon, Props } from '@charcoal-ui/icons'\n\nexport interface OwnProps {\n unsafeNonGuidelineScale?: number\n className?: string\n}\n\nexport interface IconProps\n extends OwnProps,\n React.PropsWithoutRef<\n Omit<Props, 'class' | 'unsafe-non-guideline-scale' | 'css'>\n > {}\n\nconst Icon = React.forwardRef<PixivIcon, IconProps>(function IconInner(\n { name, scale, unsafeNonGuidelineScale, className, ...rest },\n ref\n) {\n return (\n <pixiv-icon\n ref={ref}\n name={name}\n scale={scale}\n unsafe-non-guideline-scale={unsafeNonGuidelineScale}\n class={className}\n {...rest}\n />\n )\n})\n\nexport default Icon\n","import { transparentize } from 'polished'\nimport React, { useImperativeHandle, useRef } from 'react'\nimport styled, { keyframes } from 'styled-components'\n\nexport default function LoadingSpinner({\n size = 48,\n padding = 16,\n transparent = false,\n}) {\n return (\n <LoadingSpinnerRoot size={size} padding={padding} transparent={transparent}>\n <LoadingSpinnerIcon />\n </LoadingSpinnerRoot>\n )\n}\n\nconst LoadingSpinnerRoot = styled.div.attrs({ role: 'progressbar' })<{\n size: number\n padding: number\n transparent: boolean\n}>`\n margin: auto;\n padding: ${(props) => props.padding}px;\n border-radius: 8px;\n font-size: ${(props) => props.size}px;\n width: ${(props) => props.size}px;\n height: ${(props) => props.size}px;\n background-color: ${({ theme, transparent }) =>\n transparent\n ? 'transparent'\n : transparentize(0.32, theme.color.background1)};\n color: ${({ theme }) => theme.color.text4};\n`\n\nconst scaleout = keyframes`\n from {\n transform: scale(0);\n opacity: 1;\n }\n\n to {\n transform: scale(1);\n opacity: 0;\n }\n`\n\nconst Icon = styled.div.attrs({ role: 'presentation' })<{ once: boolean }>`\n width: 1em;\n height: 1em;\n border-radius: 1em;\n background-color: currentColor;\n animation: ${scaleout} 1s both ease-out;\n animation-iteration-count: ${(p) => (p.once ? 1 : 'infinite')};\n\n &[data-reset-animation] {\n animation: none;\n }\n`\n\ninterface Props {\n once?: boolean\n}\n\nexport interface LoadingSpinnerIconHandler {\n restart(): void\n}\n\nexport const LoadingSpinnerIcon = React.forwardRef<\n LoadingSpinnerIconHandler,\n Props\n>(function LoadingSpinnerIcon({ once = false }, ref) {\n const iconRef = useRef<HTMLDivElement>(null)\n\n useImperativeHandle(ref, () => ({\n restart: () => {\n if (!iconRef.current) {\n return\n }\n iconRef.current.dataset.resetAnimation = 'true'\n // Force reflow hack!\n void iconRef.current.offsetWidth\n delete iconRef.current.dataset.resetAnimation\n },\n }))\n\n return <Icon ref={iconRef} once={once} />\n})\n"],"names":["DefaultLink","React","forwardRef","ref","to","children","rest","DefaultValue","Link","ComponentAbstractionContext","createContext","ComponentAbstraction","components","useComponentAbstraction","useContext","unreachable","value","Error","arguments","length","JSON","stringify","theme","createTheme","styled","Clickable","props","onClick","disabled","undefined","Button","clickableCss","css","disabledSelector","button","A","span","variant","size","fixed","StyledButton","withConfig","shouldForwardProp","prop","attrs","styledProps","p","o","font","hover","press","bg","background","typography","bold","preserveHalfLeading","padding","horizontal","borderRadius","outline","focus","height","variantToProps","sizeToProps","IconButton","IconButtonInner","icon","validateIconSize","StyledIconButton","width","requiredIconSize","result","exec","iconSize","console","warn","Radio","forceChecked","RadioGroupContext","name","selected","isParentDisabled","readonly","hasError","onChange","warning","isSelected","isDisabled","isReadonly","handleChange","useCallback","e","currentTarget","RadioRoot","label","px","spacing","RadioInput","input","type","text5","assertive","color","text4","brand","RadioLabel","div","StyledRadioGroup","RadioGroup","className","next","SelectGroupContext","Select","parentDisabled","parentOnChange","includes","event","HTMLInputElement","checked","Boolean","SelectRoot","SelectLabel","text1","SelectInput","overlay","text3","surface4","SelectInputOverlay","SelectGroup","ariaLabel","payload","index","indexOf","slice","Array","from","Set","SwitchCheckbox","ariaSwitchProps","useMemo","state","useToggleState","useRef","useSwitch","inputProps","Label","LabelInner","SwitchInput","FieldLabel","style","required","requiredText","subLabel","labelProps","RequiredText","SubLabelClickable","FieldLabelWrapper","margin","left","mergeRefs","current","countCodePointsInString","string","TextField","multiline","SingleLineTextField","SingleLineTextFieldInner","showLabel","showCount","invalid","assistiveText","maxLength","prefix","suffix","useVisuallyHidden","visuallyHiddenProps","ariaRef","prefixRef","suffixRef","useState","count","setCount","prefixWidth","setPrefixWidth","suffixWidth","setSuffixWidth","nonControlled","useEffect","useTextField","inputElementType","isRequired","validationState","description","errorMessage","descriptionProps","errorMessageProps","prefixObserver","ResizeObserver","entries","contentRect","suffixObserver","observe","disconnect","MultiLineTextField","MultiLineTextFieldInner","autoHeight","rows","initialRows","textareaRef","setRows","syncHeight","textarea","match","TextFieldRoot","opacity","elementEffect","TextFieldLabel","bottom","StyledInputContainer","PrefixContainer","SuffixContainer","Affix","text2","StyledInput","extraLeftPadding","extraRightPadding","surface3","StyledTextareaContainer","StyledTextarea","noBottomPadding","SingleLineCounter","MultiLineCounter","AssistiveText","top","Icon","IconInner","scale","unsafeNonGuidelineScale","LoadingSpinner","transparent","LoadingSpinnerRoot","role","transparentize","background1","scaleout","keyframes","once","LoadingSpinnerIcon","iconRef","useImperativeHandle","restart","dataset","resetAnimation"],"mappings":"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"}
package/dist/index.d.ts CHANGED
@@ -8,4 +8,5 @@ export { default as Select, type SelectProps, SelectGroup, type SelectGroupProps
8
8
  export { default as Switch, type SwitchProps } from './components/Switch';
9
9
  export { default as TextField, type TextFieldProps, type SingleLineTextFieldProps, type MultiLineTextFieldProps, } from './components/TextField';
10
10
  export { default as Icon, type IconProps } from './components/Icon';
11
+ export { default as LoadingSpinner, LoadingSpinnerIcon, } from './components/LoadingSpinner';
11
12
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,OAAO,IAAI,oBAAoB,EAC/B,uBAAuB,EACvB,KAAK,SAAS,GACf,MAAM,6BAA6B,CAAA;AACpC,OAAO,EAAE,WAAW,EAAE,MAAM,oBAAoB,CAAA;AAChD,OAAO,EAAE,OAAO,IAAI,MAAM,EAAE,KAAK,WAAW,EAAE,MAAM,qBAAqB,CAAA;AACzE,OAAO,EACL,OAAO,IAAI,SAAS,EACpB,KAAK,cAAc,EACnB,KAAK,gBAAgB,GACtB,MAAM,wBAAwB,CAAA;AAC/B,OAAO,EACL,OAAO,IAAI,UAAU,EACrB,KAAK,eAAe,GACrB,MAAM,yBAAyB,CAAA;AAChC,OAAO,EACL,OAAO,IAAI,KAAK,EAChB,KAAK,UAAU,EACf,UAAU,EACV,KAAK,eAAe,GACrB,MAAM,oBAAoB,CAAA;AAC3B,OAAO,EACL,OAAO,IAAI,MAAM,EACjB,KAAK,WAAW,EAChB,WAAW,EACX,KAAK,gBAAgB,GACtB,MAAM,qBAAqB,CAAA;AAC5B,OAAO,EAAE,OAAO,IAAI,MAAM,EAAE,KAAK,WAAW,EAAE,MAAM,qBAAqB,CAAA;AACzE,OAAO,EACL,OAAO,IAAI,SAAS,EACpB,KAAK,cAAc,EACnB,KAAK,wBAAwB,EAC7B,KAAK,uBAAuB,GAC7B,MAAM,wBAAwB,CAAA;AAC/B,OAAO,EAAE,OAAO,IAAI,IAAI,EAAE,KAAK,SAAS,EAAE,MAAM,mBAAmB,CAAA"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,OAAO,IAAI,oBAAoB,EAC/B,uBAAuB,EACvB,KAAK,SAAS,GACf,MAAM,6BAA6B,CAAA;AACpC,OAAO,EAAE,WAAW,EAAE,MAAM,oBAAoB,CAAA;AAChD,OAAO,EAAE,OAAO,IAAI,MAAM,EAAE,KAAK,WAAW,EAAE,MAAM,qBAAqB,CAAA;AACzE,OAAO,EACL,OAAO,IAAI,SAAS,EACpB,KAAK,cAAc,EACnB,KAAK,gBAAgB,GACtB,MAAM,wBAAwB,CAAA;AAC/B,OAAO,EACL,OAAO,IAAI,UAAU,EACrB,KAAK,eAAe,GACrB,MAAM,yBAAyB,CAAA;AAChC,OAAO,EACL,OAAO,IAAI,KAAK,EAChB,KAAK,UAAU,EACf,UAAU,EACV,KAAK,eAAe,GACrB,MAAM,oBAAoB,CAAA;AAC3B,OAAO,EACL,OAAO,IAAI,MAAM,EACjB,KAAK,WAAW,EAChB,WAAW,EACX,KAAK,gBAAgB,GACtB,MAAM,qBAAqB,CAAA;AAC5B,OAAO,EAAE,OAAO,IAAI,MAAM,EAAE,KAAK,WAAW,EAAE,MAAM,qBAAqB,CAAA;AACzE,OAAO,EACL,OAAO,IAAI,SAAS,EACpB,KAAK,cAAc,EACnB,KAAK,wBAAwB,EAC7B,KAAK,uBAAuB,GAC7B,MAAM,wBAAwB,CAAA;AAC/B,OAAO,EAAE,OAAO,IAAI,IAAI,EAAE,KAAK,SAAS,EAAE,MAAM,mBAAmB,CAAA;AACnE,OAAO,EACL,OAAO,IAAI,cAAc,EACzB,kBAAkB,GACnB,MAAM,6BAA6B,CAAA"}