matsuri-ui 17.0.2-alpha-1748646728204-3488dc1.0 → 17.0.2-alpha-1749200134692-75cf25d.0

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":"SelectField.js","names":["useFieldGroup","FormControl","FormHelperText","InputBase","InputLabel","Paper","Popper","SelectFieldInputWrapper","SelectFieldInputWrapperContext","Triangle","VisuallyHidden","css","dispatchChangeEvent","getSearch","useDitectInputTouched","useInputValue","useMergeRefs","useOnClickOutside","useTheme","React","forwardRef","useCallback","useEffect","useId","useMemo","useRef","useState","SearchIcon","jsx","___EmotionJSX","ownerDocument","node","document","nextItem","list","item","firstChild","nextElementSibling","previousItem","lastChild","previousElementSibling","moveFocus","currentFocus","traversalFunction","nextFocus","disabledFocus","disabled","getAttribute","focus","_ref2","process","env","NODE_ENV","name","styles","toString","_EMOTION_STRINGIFIED_CSS_ERROR__","SelectInnerSpinButton","_ref3","open","onClick","theme","typography","body","fontSize","transitions","duration","shorter","easing","easeInOut","SelectList","props","ref","_extends","role","tabIndex","SelectOption","spacing","palette","text","primary","background","paper","gray","shortest","action","hover","selected","filterSelectOptionsByQuery","options","query","result","map","option","keys","label","content","value","defaultLoadOptions","_ref5","_asyncToGenerator","_ref4","undefined","length","_x","apply","arguments","DefaultOption","_ref","SelectField","propOptions","loadOptions","disabledInput","onChange","onFocus","placeholder","required","id","_valueProp","defaultValue","children","helperText","invalid","loading","propsLoading","readOnly","propsReadOnly","style","className","originalInputTestId","pseudoInputTestId","disablePortal","renderOption","inputRef","inputHasValueRef","setOpen","setQuery","selectedOptionsCache","setOptions","selectedOptions","current","then","setValue","isControlled","onLoaded","displayValue","_ref6","_selectedOptionsCache","find","listRef","pseudoInputRef","pseudoInputRefs","originalInputRef","originalInputRefs","updateValue","resetValue","_options$find","touched","inputProps","popperOptions","modifiers","roundOffsets","_ref7","y","x","Math","round","enabled","phase","requires","fn","_ref8","state","popper","width","rects","reference","effect","_ref9","elements","offsetWidth","internalInputId","inputId","htmlFor","type","key","autoCapitalize","autoComplete","autoCorrect","spellCheck","Provider","renderInputWrapper","onKeyDown","event","prev","preventDefault","startAdornment","some","endAdornment","_pseudoInputRef$curre","currentTarget","anchorEl","placement","activeElement","Children","toArray","child","i","index","_pseudoInputRef$curre2","click"],"sources":["../../../src/SelectField/SelectField.tsx"],"sourcesContent":["import { FieldGroupProps, useFieldGroup } from \"../FieldGroup\";\nimport { FieldProps } from \"../FieldBase\";\nimport { FormControl } from \"../FormControl\";\nimport { FormHelperText } from \"../FieldBase/FormHelperText\";\nimport { InputBase } from \"../InputBase\";\nimport { InputLabel } from \"../InputLabel\";\nimport { Paper } from \"../Paper\";\nimport { Popper } from \"../Popper\";\nimport {\n SelectFieldInputWrapper,\n SelectFieldInputWrapperContext,\n} from \"./SelectFieldInputWrapper\";\nimport { Triangle } from \"../Icon/Triangle\";\nimport { VisuallyHidden } from \"../VisuallyHidden/VisuallyHidden\";\nimport { css } from \"@emotion/react\";\nimport { dispatchChangeEvent } from \"../@utils/dispatchChangeEvent\";\nimport { getSearch } from \"../SearchField/useSearch\";\nimport { useDitectInputTouched } from \"../FieldBase/useDitectInputTouched\";\nimport { useInputValue } from \"../hooks/useInputValue\";\nimport { useMergeRefs } from \"../hooks/useMergeRefs\";\nimport { useOnClickOutside } from \"../hooks/useOnClickOutside\";\nimport { useTheme } from \"../theme\";\nimport React, {\n forwardRef,\n useCallback,\n useEffect,\n useId,\n useMemo,\n useRef,\n useState,\n} from \"react\";\nimport SearchIcon from \"@mui/icons-material/Search\";\nimport type { Options as PopperjsOptions } from \"@popperjs/core\";\n\nfunction ownerDocument(node: Node | null | undefined): Document {\n // eslint-disable-next-line @typescript-eslint/prefer-nullish-coalescing\n return node?.ownerDocument || document;\n}\n\ntype TraversalFunction = (\n list: HTMLUListElement,\n item?: Element | null,\n) => ChildNode | null;\n\nconst nextItem: TraversalFunction = (list, item) => {\n if (list === item) {\n return list.firstChild;\n }\n if (item?.nextElementSibling) {\n return item.nextElementSibling;\n }\n return list.firstChild;\n};\n\nconst previousItem: TraversalFunction = (list, item) => {\n if (list === item) {\n return list.lastChild;\n }\n if (item?.previousElementSibling) {\n return item.previousElementSibling;\n }\n return list.lastChild;\n};\n\nconst moveFocus = (\n list: HTMLUListElement,\n currentFocus: Element | null,\n traversalFunction: TraversalFunction,\n) => {\n let nextFocus = traversalFunction(list, currentFocus) as HTMLElement | null;\n while (nextFocus) {\n if (\n currentFocus === null\n ? nextFocus === list.lastChild\n : nextFocus === currentFocus\n ) {\n break;\n }\n const disabledFocus =\n (nextFocus as HTMLInputElement).disabled ||\n nextFocus.getAttribute(\"aria-disabled\") === \"true\";\n if (disabledFocus) {\n nextFocus = traversalFunction(list, nextFocus) as HTMLElement;\n } else {\n nextFocus.focus();\n break;\n }\n }\n};\n\nconst SelectInnerSpinButton = ({\n open,\n onClick,\n}: {\n open: boolean;\n onClick: () => void;\n}) => {\n const theme = useTheme();\n return (\n <Triangle\n onClick={onClick}\n data-testid=\"SelectFieldSpinButton\"\n css={[\n css`\n font-size: ${theme.typography.body.fontSize}px;\n transition: ${theme.transitions.duration.shorter}\n ${theme.transitions.easing.easeInOut};\n `,\n open\n ? css`\n transform: rotateX(180deg);\n `\n : null,\n ]}\n />\n );\n};\n\nconst SelectList = forwardRef<\n HTMLUListElement,\n React.ComponentPropsWithoutRef<\"ul\">\n>((props, ref) => {\n return (\n <ul\n ref={ref}\n role=\"listbox\"\n tabIndex={-1}\n css={css`\n box-sizing: border-box;\n min-height: ${42 * 3.5}px;\n max-height: ${42 * 7.5}px;\n padding: 0;\n margin: 0;\n overflow-x: hidden;\n overflow-y: auto;\n list-style: none;\n border-radius: inherit;\n `}\n {...props}\n />\n );\n});\n\nconst SelectOption = (props: React.ComponentPropsWithoutRef<\"li\">) => {\n const theme = useTheme();\n return (\n <li\n role=\"option\"\n // aria-selectedは親要素から設定するため、この値は上書きされる\n aria-selected={false}\n css={css`\n box-sizing: border-box;\n min-height: ${theme.spacing * 6}px;\n padding: 9px 12px;\n color: ${theme.palette.text.primary};\n cursor: pointer;\n background-color: ${theme.palette.background.paper};\n border-bottom: 1px solid ${theme.palette.gray[300]};\n outline: 0px;\n transition: ${theme.transitions.duration.shortest};\n\n ${css(theme.typography.body)}\n &:last-child {\n border-bottom: none;\n }\n &:hover,\n &:focus {\n background-color: ${theme.palette.action.hover};\n }\n &[aria-selected=\"true\"] {\n background-color: ${theme.palette.action.selected};\n }\n &[aria-disabled=\"true\"] {\n color: ${theme.palette.text.disabled};\n cursor: default;\n }\n &[aria-readonly=\"true\"],\n &[aria-disabled=\"true\"] {\n &:hover {\n background-color: ${theme.palette.background.paper};\n }\n }\n `}\n {...props}\n />\n );\n};\n\nexport interface SelectOptionValue {\n value: string | undefined;\n label: string;\n keys?: string[];\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n [key: string]: any;\n}\n\nexport type RenderSelectOption<\n T extends SelectOptionValue = SelectOptionValue,\n> = (peops: T) => React.JSX.Element;\n\nexport interface SelectFieldProps<\n T extends SelectOptionValue = SelectOptionValue,\n> extends Pick<FieldProps<string>, \"helperText\" | \"invalid\">,\n FieldGroupProps {\n renderOption?: RenderSelectOption<T>;\n children?: React.ReactNode;\n /**\n * 見出し\n */\n label?: string;\n name?: string;\n defaultValue?: string;\n /**\n * valueの変更は、defaultValueが指定されていないときのみ反映されます。\n */\n value?: string;\n disabled?: boolean;\n style?: React.CSSProperties;\n id?: string;\n className?: string;\n /**\n * placeholder\n */\n placeholder?: string;\n /**\n * selecting data is required\n */\n required?: boolean;\n options?: T[];\n loadOptions?: SelectLoadOptions<T>;\n disabledInput?: boolean;\n readOnly?: boolean;\n /**\n * SelectFieldのOptionがクリックされた際に発火する関数。\n */\n onChange?: (value: T[\"value\"], options: T) => void;\n onFocus?: (e: React.FocusEvent<HTMLInputElement>) => void;\n loading?: boolean;\n originalInputTestId?: string;\n pseudoInputTestId?: string;\n /**\n * オプションの表示にPortalを利用するかどうかを指定します。\n * このpropがtrueの場合、Portalが無効化されます。\n * また初期値がtrueであることに注意してください。\n * つまり通常、オプションはこのコンポーネントの子要素としてレンダリングされます。\n * @default true\n */\n disablePortal?: boolean;\n /**\n * 見かけ上のinput要素に対するrefを利用できます。\n * 選択された値を取得する場合などは、inputHasValueRefを利用してください。\n */\n inputRef?: React.Ref<HTMLInputElement>;\n /**\n * 選択された値を保持しているinput要素に対するrefを利用できます。\n * 見えているinput要素にフォーカスしたい場合などは、inputRefを利用してください。\n */\n inputHasValueRef?: React.Ref<HTMLInputElement>;\n}\n\nexport const filterSelectOptionsByQuery = <\n T extends SelectOptionValue = SelectOptionValue,\n>(\n options: T[],\n query: string,\n) => {\n const result = getSearch(\n options.map((option) => {\n return {\n ...option,\n // eslint-disable-next-line @typescript-eslint/prefer-nullish-coalescing\n keys: option.keys || [option.label],\n content: option.value,\n };\n }),\n query,\n );\n return result;\n};\n\nexport type SelectLoadOptions<T extends SelectOptionValue = SelectOptionValue> =\n (args: {\n query: string;\n options?: T[];\n selectedOptions?: T[];\n }) => Promise<T[] | undefined>;\n\nconst defaultLoadOptions = async <\n T extends SelectOptionValue = SelectOptionValue,\n>({\n query,\n options,\n}: {\n query: string;\n options?: T[];\n // eslint-disable-next-line @typescript-eslint/require-await\n}): Promise<T[] | undefined> => {\n if (options === undefined) {\n return undefined;\n }\n if (query === undefined) {\n return options;\n }\n const result = filterSelectOptionsByQuery(options, query);\n return result.length ? result : options;\n};\n\nconst DefaultOption = <T extends SelectOptionValue>(\n props: T,\n): React.JSX.Element => {\n return <span>{props.label}</span>;\n};\n\nexport const SelectField = <T extends SelectOptionValue>(\n props: SelectFieldProps<T>,\n) => {\n const {\n label,\n name,\n options: propOptions,\n loadOptions = defaultLoadOptions,\n disabledInput,\n onChange,\n onFocus,\n placeholder,\n required,\n id,\n value: _valueProp,\n defaultValue,\n disabled,\n children,\n helperText,\n invalid,\n loading: propsLoading,\n readOnly: propsReadOnly,\n style,\n className,\n originalInputTestId,\n pseudoInputTestId,\n disablePortal = true,\n renderOption = DefaultOption,\n inputRef,\n inputHasValueRef,\n } = props;\n const [open, setOpen] = useState(false);\n const ref = useRef<HTMLDivElement>(null);\n\n const [query, setQuery] = useState<string>(\"\");\n const selectedOptionsCache = useRef<T[] | undefined>(propOptions);\n const [options, setOptions] = useState(propOptions);\n\n useEffect(() => {\n void loadOptions({\n query,\n options: propOptions,\n selectedOptions: selectedOptionsCache.current,\n }).then((result) => {\n setOptions(result);\n });\n }, [propOptions, loadOptions, query]);\n\n const [value, setValue, isControlled] = useInputValue(props);\n\n const { loading, readOnly } = useFieldGroup({\n loading: propsLoading,\n readOnly: propsReadOnly,\n onLoaded: () => {\n if (isControlled === false) {\n setValue(defaultValue);\n }\n },\n });\n\n const displayValue = useMemo(() => {\n return (\n selectedOptionsCache.current?.find(\n (option) => option.value === value,\n // eslint-disable-next-line @typescript-eslint/prefer-nullish-coalescing\n ) || options?.find((option) => option.value === value)\n )?.label;\n }, [options, value]);\n\n const listRef = useRef<HTMLUListElement>(null);\n useOnClickOutside([ref, listRef], () => {\n setOpen(false);\n setQuery(\"\");\n });\n\n const pseudoInputRef = useRef<HTMLInputElement>(null);\n const pseudoInputRefs = useMergeRefs(inputRef, pseudoInputRef);\n const originalInputRef = useRef<HTMLInputElement>(null);\n const originalInputRefs = useMergeRefs(inputHasValueRef, originalInputRef);\n\n const updateValue = useCallback(\n (option: T) => {\n onChange?.(option.value, option);\n setValue(option.value);\n selectedOptionsCache.current = options;\n setQuery(\"\");\n if (originalInputRef.current) {\n dispatchChangeEvent(originalInputRef.current, option.value);\n }\n },\n [onChange, options, setValue],\n );\n\n const resetValue = useCallback(() => {\n setValue(undefined);\n if (onChange) {\n const option =\n options?.find((option) => option.value === undefined) ??\n ({ value: undefined, label: \"\" } as T);\n onChange(undefined, option);\n }\n }, [onChange, options, setValue]);\n\n const [touched, inputProps] = useDitectInputTouched(onFocus);\n\n const popperOptions: Partial<PopperjsOptions> = useMemo(() => {\n return {\n modifiers: [\n disablePortal\n ? {\n name: \"computeStyles\",\n options: {\n roundOffsets: ({ y }: { y: number }) => ({\n x: 0,\n y: Math.round(y),\n }),\n },\n }\n : {},\n {\n name: \"sameWidth\",\n enabled: true,\n phase: \"beforeWrite\",\n requires: [\"computeStyles\"],\n fn: ({ state }) => {\n state.styles.popper.width = `${state.rects.reference.width}px`;\n },\n effect: ({ state }) => {\n state.elements.popper.style.width = `${\n (state.elements.reference as HTMLElement).offsetWidth\n }px`;\n },\n },\n ],\n };\n }, [disablePortal]);\n\n const internalInputId = useId();\n const inputId = id ?? internalInputId;\n\n return (\n <FormControl style={style} className={className}>\n {label ? (\n <InputLabel\n htmlFor={inputId}\n aria-disabled={disabled}\n required={required}\n loading={loading}\n >\n {label}\n </InputLabel>\n ) : null}\n <VisuallyHidden>\n <input\n ref={originalInputRefs}\n type=\"text\"\n data-testid={originalInputTestId}\n required={required}\n name={name}\n key={value}\n defaultValue={value}\n autoCapitalize=\"none\"\n autoComplete=\"off\"\n autoCorrect=\"off\"\n spellCheck=\"false\"\n tabIndex={-1}\n />\n </VisuallyHidden>\n\n <div ref={ref}>\n <SelectFieldInputWrapperContext.Provider\n value={!query ? displayValue : undefined}\n >\n <InputBase\n id={inputId}\n renderInputWrapper={SelectFieldInputWrapper}\n ref={pseudoInputRefs}\n data-testid={pseudoInputTestId}\n placeholder={placeholder}\n disabled={disabled}\n loading={loading}\n readOnly={readOnly}\n autoCapitalize=\"none\"\n autoComplete=\"off\"\n autoCorrect=\"off\"\n spellCheck=\"false\"\n onKeyDown={(event) => {\n const { key } = event;\n if (key === \"Delete\" || key === \"Backspace\") {\n setQuery((prev) => {\n if (prev === \"\") {\n resetValue();\n }\n return prev;\n });\n } else if (key === \"ArrowDown\") {\n event.preventDefault();\n const list = listRef.current;\n if (list) {\n moveFocus(list, null, nextItem);\n }\n } else if (event.key.length === 1) {\n setOpen(true);\n }\n }}\n type=\"text\"\n startAdornment={\n value ||\n disabledInput ||\n (value === undefined &&\n options?.some(\n (option) => option.value === undefined,\n )) ? undefined : (\n <SearchIcon />\n )\n }\n endAdornment={\n <SelectInnerSpinButton\n open={open}\n onClick={() => {\n setOpen((prev) => {\n if (prev) {\n return false;\n }\n pseudoInputRef.current?.focus();\n return prev;\n });\n }}\n />\n }\n data-invalid={invalid}\n value={query}\n onChange={\n disabledInput\n ? // @see https://github.com/matsuri-tech/matsuri-ui/issues/2451\n // eslint-disable-next-line @typescript-eslint/no-empty-function\n () => {}\n : (event) => {\n const value = event.currentTarget.value;\n setQuery(value);\n }\n }\n data-touched={inputProps[\"data-touched\"]}\n onFocus={(event) => {\n inputProps.onFocus(event);\n if (readOnly !== true) {\n setOpen(true);\n }\n }}\n css={\n disabledInput\n ? css`\n caret-color: transparent;\n input {\n cursor: pointer;\n }\n `\n : null\n }\n />\n </SelectFieldInputWrapperContext.Provider>\n\n <Popper\n disablePortal={disablePortal}\n anchorEl={ref.current}\n placement=\"bottom-start\"\n open={open}\n options={popperOptions}\n >\n <div>\n <Paper>\n <SelectList\n ref={listRef}\n onKeyDown={(event) => {\n const key = event.key;\n const list = listRef.current;\n if (list === null) {\n return;\n }\n const currentFocus = ownerDocument(list).activeElement;\n if (key === \"ArrowDown\") {\n event.preventDefault();\n moveFocus(list, currentFocus, nextItem);\n } else if (key === \"ArrowUp\") {\n event.preventDefault();\n moveFocus(list, currentFocus, previousItem);\n }\n }}\n >\n {React.Children.toArray(children).map((child, i) => (\n <SelectOption\n tabIndex={-1}\n aria-readonly={true}\n key={`child-${i}`}\n >\n {child}\n </SelectOption>\n ))}\n {options === undefined ? (\n <SelectOption aria-disabled={true} tabIndex={-1}>\n Loading...\n </SelectOption>\n ) : options.length === 0 ? (\n <SelectOption aria-disabled={true} tabIndex={-1}>\n No options\n </SelectOption>\n ) : (\n options.map((option, index) => {\n const selected = value === option.value;\n return (\n <SelectOption\n onKeyDown={(event) => {\n const { key } = event;\n if (key === \"Enter\") {\n event.preventDefault();\n event.currentTarget.click();\n pseudoInputRef.current?.focus();\n setOpen(false);\n }\n }}\n aria-selected={selected}\n /**\n * 何も選択されていないときは、先頭のオプションに飛べるようにしておく\n */\n tabIndex={\n (value === undefined ? index === 0 : selected)\n ? 0\n : -1\n }\n // eslint-disable-next-line @typescript-eslint/prefer-nullish-coalescing\n key={option.value || `undefinedValue`}\n onClick={() => {\n updateValue(option);\n setOpen(false);\n }}\n >\n {renderOption(option)}\n </SelectOption>\n );\n })\n )}\n </SelectList>\n </Paper>\n </div>\n </Popper>\n </div>\n <FormHelperText\n invalid={invalid}\n loading={loading}\n touched={touched}\n value={value}\n >\n {helperText}\n </FormHelperText>\n </FormControl>\n );\n};\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"file":"SelectField.js","names":["useFieldGroup","FormControl","FormHelperText","InputBase","InputLabel","Paper","Popper","SelectFieldInputWrapper","SelectFieldInputWrapperContext","Triangle","VisuallyHidden","css","dispatchChangeEvent","getSearch","useDitectInputTouched","useInputValue","useMergeRefs","useOnClickOutside","useTheme","React","forwardRef","useCallback","useEffect","useId","useMemo","useReducer","useRef","useState","SearchIcon","jsx","___EmotionJSX","ownerDocument","node","document","nextItem","list","item","firstChild","nextElementSibling","previousItem","lastChild","previousElementSibling","moveFocus","currentFocus","traversalFunction","nextFocus","disabledFocus","disabled","getAttribute","focus","_ref2","process","env","NODE_ENV","name","styles","toString","_EMOTION_STRINGIFIED_CSS_ERROR__","SelectInnerSpinButton","_ref3","open","onClick","theme","typography","body","fontSize","transitions","duration","shorter","easing","easeInOut","SelectList","props","ref","_extends","role","tabIndex","SelectOption","spacing","palette","text","primary","background","paper","gray","shortest","action","hover","selected","filterSelectOptionsByQuery","options","query","result","map","option","keys","label","content","value","defaultLoadOptions","_ref5","_asyncToGenerator","_ref4","undefined","length","_x","apply","arguments","DefaultOption","_ref","SelectField","propOptions","loadOptions","disabledInput","onChange","onFocus","placeholder","required","id","_valueProp","defaultValue","children","helperText","invalid","loading","propsLoading","readOnly","propsReadOnly","style","className","originalInputTestId","pseudoInputTestId","disablePortal","renderOption","inputRef","inputHasValueRef","setOpen","setQuery","selectedOptionsCache","setOptions","selectedOptions","current","then","setValue","isControlled","onLoaded","displayValue","_ref6","_selectedOptionsCache","find","listRef","pseudoInputRef","pseudoInputRefs","originalInputRef","originalInputRefs","updateValue","resetValue","_options$find","touched","inputProps","popperOptions","modifiers","roundOffsets","_ref7","y","x","Math","round","enabled","phase","requires","fn","_ref8","state","popper","width","rects","reference","effect","_ref9","elements","offsetWidth","internalInputId","inputId","autoFillPreventionKey","updateAutoFillPreventionKey","prev","htmlFor","type","key","autoCapitalize","autoComplete","onInput","event","preventDefault","currentTarget","autoCorrect","spellCheck","Provider","renderInputWrapper","onKeyDown","startAdornment","some","endAdornment","_pseudoInputRef$curre","anchorEl","placement","activeElement","Children","toArray","child","i","index","_pseudoInputRef$curre2","click"],"sources":["../../../src/SelectField/SelectField.tsx"],"sourcesContent":["import { FieldGroupProps, useFieldGroup } from \"../FieldGroup\";\nimport { FieldProps } from \"../FieldBase\";\nimport { FormControl } from \"../FormControl\";\nimport { FormHelperText } from \"../FieldBase/FormHelperText\";\nimport { InputBase } from \"../InputBase\";\nimport { InputLabel } from \"../InputLabel\";\nimport { Paper } from \"../Paper\";\nimport { Popper } from \"../Popper\";\nimport {\n SelectFieldInputWrapper,\n SelectFieldInputWrapperContext,\n} from \"./SelectFieldInputWrapper\";\nimport { Triangle } from \"../Icon/Triangle\";\nimport { VisuallyHidden } from \"../VisuallyHidden/VisuallyHidden\";\nimport { css } from \"@emotion/react\";\nimport { dispatchChangeEvent } from \"../@utils/dispatchChangeEvent\";\nimport { getSearch } from \"../SearchField/useSearch\";\nimport { useDitectInputTouched } from \"../FieldBase/useDitectInputTouched\";\nimport { useInputValue } from \"../hooks/useInputValue\";\nimport { useMergeRefs } from \"../hooks/useMergeRefs\";\nimport { useOnClickOutside } from \"../hooks/useOnClickOutside\";\nimport { useTheme } from \"../theme\";\nimport React, {\n forwardRef,\n useCallback,\n useEffect,\n useId,\n useMemo,\n useReducer,\n useRef,\n useState,\n} from \"react\";\nimport SearchIcon from \"@mui/icons-material/Search\";\nimport type { Options as PopperjsOptions } from \"@popperjs/core\";\n\nfunction ownerDocument(node: Node | null | undefined): Document {\n // eslint-disable-next-line @typescript-eslint/prefer-nullish-coalescing\n return node?.ownerDocument || document;\n}\n\ntype TraversalFunction = (\n list: HTMLUListElement,\n item?: Element | null,\n) => ChildNode | null;\n\nconst nextItem: TraversalFunction = (list, item) => {\n if (list === item) {\n return list.firstChild;\n }\n if (item?.nextElementSibling) {\n return item.nextElementSibling;\n }\n return list.firstChild;\n};\n\nconst previousItem: TraversalFunction = (list, item) => {\n if (list === item) {\n return list.lastChild;\n }\n if (item?.previousElementSibling) {\n return item.previousElementSibling;\n }\n return list.lastChild;\n};\n\nconst moveFocus = (\n list: HTMLUListElement,\n currentFocus: Element | null,\n traversalFunction: TraversalFunction,\n) => {\n let nextFocus = traversalFunction(list, currentFocus) as HTMLElement | null;\n while (nextFocus) {\n if (\n currentFocus === null\n ? nextFocus === list.lastChild\n : nextFocus === currentFocus\n ) {\n break;\n }\n const disabledFocus =\n (nextFocus as HTMLInputElement).disabled ||\n nextFocus.getAttribute(\"aria-disabled\") === \"true\";\n if (disabledFocus) {\n nextFocus = traversalFunction(list, nextFocus) as HTMLElement;\n } else {\n nextFocus.focus();\n break;\n }\n }\n};\n\nconst SelectInnerSpinButton = ({\n open,\n onClick,\n}: {\n open: boolean;\n onClick: () => void;\n}) => {\n const theme = useTheme();\n return (\n <Triangle\n onClick={onClick}\n data-testid=\"SelectFieldSpinButton\"\n css={[\n css`\n font-size: ${theme.typography.body.fontSize}px;\n transition: ${theme.transitions.duration.shorter}\n ${theme.transitions.easing.easeInOut};\n `,\n open\n ? css`\n transform: rotateX(180deg);\n `\n : null,\n ]}\n />\n );\n};\n\nconst SelectList = forwardRef<\n HTMLUListElement,\n React.ComponentPropsWithoutRef<\"ul\">\n>((props, ref) => {\n return (\n <ul\n ref={ref}\n role=\"listbox\"\n tabIndex={-1}\n css={css`\n box-sizing: border-box;\n min-height: ${42 * 3.5}px;\n max-height: ${42 * 7.5}px;\n padding: 0;\n margin: 0;\n overflow-x: hidden;\n overflow-y: auto;\n list-style: none;\n border-radius: inherit;\n `}\n {...props}\n />\n );\n});\n\nconst SelectOption = (props: React.ComponentPropsWithoutRef<\"li\">) => {\n const theme = useTheme();\n return (\n <li\n role=\"option\"\n // aria-selectedは親要素から設定するため、この値は上書きされる\n aria-selected={false}\n css={css`\n box-sizing: border-box;\n min-height: ${theme.spacing * 6}px;\n padding: 9px 12px;\n color: ${theme.palette.text.primary};\n cursor: pointer;\n background-color: ${theme.palette.background.paper};\n border-bottom: 1px solid ${theme.palette.gray[300]};\n outline: 0px;\n transition: ${theme.transitions.duration.shortest};\n\n ${css(theme.typography.body)}\n &:last-child {\n border-bottom: none;\n }\n &:hover,\n &:focus {\n background-color: ${theme.palette.action.hover};\n }\n &[aria-selected=\"true\"] {\n background-color: ${theme.palette.action.selected};\n }\n &[aria-disabled=\"true\"] {\n color: ${theme.palette.text.disabled};\n cursor: default;\n }\n &[aria-readonly=\"true\"],\n &[aria-disabled=\"true\"] {\n &:hover {\n background-color: ${theme.palette.background.paper};\n }\n }\n `}\n {...props}\n />\n );\n};\n\nexport interface SelectOptionValue {\n value: string | undefined;\n label: string;\n keys?: string[];\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n [key: string]: any;\n}\n\nexport type RenderSelectOption<\n T extends SelectOptionValue = SelectOptionValue,\n> = (peops: T) => React.JSX.Element;\n\nexport interface SelectFieldProps<\n T extends SelectOptionValue = SelectOptionValue,\n> extends Pick<FieldProps<string>, \"helperText\" | \"invalid\">,\n FieldGroupProps {\n renderOption?: RenderSelectOption<T>;\n children?: React.ReactNode;\n /**\n * 見出し\n */\n label?: string;\n name?: string;\n defaultValue?: string;\n /**\n * valueの変更は、defaultValueが指定されていないときのみ反映されます。\n */\n value?: string;\n disabled?: boolean;\n style?: React.CSSProperties;\n id?: string;\n className?: string;\n /**\n * placeholder\n */\n placeholder?: string;\n /**\n * selecting data is required\n */\n required?: boolean;\n options?: T[];\n loadOptions?: SelectLoadOptions<T>;\n disabledInput?: boolean;\n readOnly?: boolean;\n /**\n * SelectFieldのOptionがクリックされた際に発火する関数。\n */\n onChange?: (value: T[\"value\"], options: T) => void;\n onFocus?: (e: React.FocusEvent<HTMLInputElement>) => void;\n loading?: boolean;\n originalInputTestId?: string;\n pseudoInputTestId?: string;\n /**\n * オプションの表示にPortalを利用するかどうかを指定します。\n * このpropがtrueの場合、Portalが無効化されます。\n * また初期値がtrueであることに注意してください。\n * つまり通常、オプションはこのコンポーネントの子要素としてレンダリングされます。\n * @default true\n */\n disablePortal?: boolean;\n /**\n * 見かけ上のinput要素に対するrefを利用できます。\n * 選択された値を取得する場合などは、inputHasValueRefを利用してください。\n */\n inputRef?: React.Ref<HTMLInputElement>;\n /**\n * 選択された値を保持しているinput要素に対するrefを利用できます。\n * 見えているinput要素にフォーカスしたい場合などは、inputRefを利用してください。\n */\n inputHasValueRef?: React.Ref<HTMLInputElement>;\n}\n\nexport const filterSelectOptionsByQuery = <\n T extends SelectOptionValue = SelectOptionValue,\n>(\n options: T[],\n query: string,\n) => {\n const result = getSearch(\n options.map((option) => {\n return {\n ...option,\n // eslint-disable-next-line @typescript-eslint/prefer-nullish-coalescing\n keys: option.keys || [option.label],\n content: option.value,\n };\n }),\n query,\n );\n return result;\n};\n\nexport type SelectLoadOptions<T extends SelectOptionValue = SelectOptionValue> =\n (args: {\n query: string;\n options?: T[];\n selectedOptions?: T[];\n }) => Promise<T[] | undefined>;\n\nconst defaultLoadOptions = async <\n T extends SelectOptionValue = SelectOptionValue,\n>({\n query,\n options,\n}: {\n query: string;\n options?: T[];\n // eslint-disable-next-line @typescript-eslint/require-await\n}): Promise<T[] | undefined> => {\n if (options === undefined) {\n return undefined;\n }\n if (query === undefined) {\n return options;\n }\n const result = filterSelectOptionsByQuery(options, query);\n return result.length ? result : options;\n};\n\nconst DefaultOption = <T extends SelectOptionValue>(\n props: T,\n): React.JSX.Element => {\n return <span>{props.label}</span>;\n};\n\nexport const SelectField = <T extends SelectOptionValue>(\n props: SelectFieldProps<T>,\n) => {\n const {\n label,\n name,\n options: propOptions,\n loadOptions = defaultLoadOptions,\n disabledInput,\n onChange,\n onFocus,\n placeholder,\n required,\n id,\n value: _valueProp,\n defaultValue,\n disabled,\n children,\n helperText,\n invalid,\n loading: propsLoading,\n readOnly: propsReadOnly,\n style,\n className,\n originalInputTestId,\n pseudoInputTestId,\n disablePortal = true,\n renderOption = DefaultOption,\n inputRef,\n inputHasValueRef,\n } = props;\n const [open, setOpen] = useState(false);\n const ref = useRef<HTMLDivElement>(null);\n\n const [query, setQuery] = useState<string>(\"\");\n const selectedOptionsCache = useRef<T[] | undefined>(propOptions);\n const [options, setOptions] = useState(propOptions);\n\n useEffect(() => {\n void loadOptions({\n query,\n options: propOptions,\n selectedOptions: selectedOptionsCache.current,\n }).then((result) => {\n setOptions(result);\n });\n }, [propOptions, loadOptions, query]);\n\n const [value, setValue, isControlled] = useInputValue(props);\n\n const { loading, readOnly } = useFieldGroup({\n loading: propsLoading,\n readOnly: propsReadOnly,\n onLoaded: () => {\n if (isControlled === false) {\n setValue(defaultValue);\n }\n },\n });\n\n const displayValue = useMemo(() => {\n return (\n selectedOptionsCache.current?.find(\n (option) => option.value === value,\n // eslint-disable-next-line @typescript-eslint/prefer-nullish-coalescing\n ) || options?.find((option) => option.value === value)\n )?.label;\n }, [options, value]);\n\n const listRef = useRef<HTMLUListElement>(null);\n useOnClickOutside([ref, listRef], () => {\n setOpen(false);\n setQuery(\"\");\n });\n\n const pseudoInputRef = useRef<HTMLInputElement>(null);\n const pseudoInputRefs = useMergeRefs(inputRef, pseudoInputRef);\n const originalInputRef = useRef<HTMLInputElement>(null);\n const originalInputRefs = useMergeRefs(inputHasValueRef, originalInputRef);\n\n const updateValue = useCallback(\n (option: T) => {\n onChange?.(option.value, option);\n setValue(option.value);\n selectedOptionsCache.current = options;\n setQuery(\"\");\n if (originalInputRef.current) {\n dispatchChangeEvent(originalInputRef.current, option.value);\n }\n },\n [onChange, options, setValue],\n );\n\n const resetValue = useCallback(() => {\n setValue(undefined);\n if (onChange) {\n const option =\n options?.find((option) => option.value === undefined) ??\n ({ value: undefined, label: \"\" } as T);\n onChange(undefined, option);\n }\n }, [onChange, options, setValue]);\n\n const [touched, inputProps] = useDitectInputTouched(onFocus);\n\n const popperOptions: Partial<PopperjsOptions> = useMemo(() => {\n return {\n modifiers: [\n disablePortal\n ? {\n name: \"computeStyles\",\n options: {\n roundOffsets: ({ y }: { y: number }) => ({\n x: 0,\n y: Math.round(y),\n }),\n },\n }\n : {},\n {\n name: \"sameWidth\",\n enabled: true,\n phase: \"beforeWrite\",\n requires: [\"computeStyles\"],\n fn: ({ state }) => {\n state.styles.popper.width = `${state.rects.reference.width}px`;\n },\n effect: ({ state }) => {\n state.elements.popper.style.width = `${\n (state.elements.reference as HTMLElement).offsetWidth\n }px`;\n },\n },\n ],\n };\n }, [disablePortal]);\n\n const internalInputId = useId();\n const inputId = id ?? internalInputId;\n\n // Auto fillによって値が後から更新されることを防ぐ\n const [autoFillPreventionKey, updateAutoFillPreventionKey] = useReducer(\n (prev: number) => prev + 1,\n 0,\n );\n\n return (\n <FormControl style={style} className={className}>\n {label ? (\n <InputLabel\n htmlFor={inputId}\n aria-disabled={disabled}\n required={required}\n loading={loading}\n >\n {label}\n </InputLabel>\n ) : null}\n <VisuallyHidden>\n <input\n ref={originalInputRefs}\n type=\"text\"\n data-testid={originalInputTestId}\n required={required}\n name={name}\n key={`${value}-${autoFillPreventionKey}`}\n defaultValue={value}\n autoCapitalize=\"none\"\n autoComplete=\"off\"\n onInput={(event) => {\n event.preventDefault();\n if (value === undefined) {\n // 選択肢が選択されていない状態で、値に選択肢と一致するものがある場合、その値に更新する\n const option = options?.find(\n (option) => option.value === event.currentTarget.value,\n );\n if (option) {\n updateValue(option);\n } else {\n // 一致する選択肢がない場合、Auto fillが適用されると困るため無効化する\n updateAutoFillPreventionKey();\n }\n } else {\n // このinput要素の値でonInputが発火するケースはAuto fillによる場合のみ、選択肢の選択では発火しない。\n // ここでkeyを更新することでauto fillによる値の上書きを、さらに上書きできる。\n updateAutoFillPreventionKey();\n }\n }}\n autoCorrect=\"off\"\n spellCheck=\"false\"\n tabIndex={-1}\n />\n </VisuallyHidden>\n\n <div ref={ref}>\n <SelectFieldInputWrapperContext.Provider\n value={!query ? displayValue : undefined}\n >\n <InputBase\n id={inputId}\n renderInputWrapper={SelectFieldInputWrapper}\n ref={pseudoInputRefs}\n data-testid={pseudoInputTestId}\n placeholder={placeholder}\n disabled={disabled}\n loading={loading}\n readOnly={readOnly}\n autoCapitalize=\"none\"\n autoComplete=\"off\"\n autoCorrect=\"off\"\n spellCheck=\"false\"\n onKeyDown={(event) => {\n const { key } = event;\n if (key === \"Delete\" || key === \"Backspace\") {\n setQuery((prev) => {\n if (prev === \"\") {\n resetValue();\n }\n return prev;\n });\n } else if (key === \"ArrowDown\") {\n event.preventDefault();\n const list = listRef.current;\n if (list) {\n moveFocus(list, null, nextItem);\n }\n } else if (event.key.length === 1) {\n setOpen(true);\n }\n }}\n type=\"text\"\n startAdornment={\n value ||\n disabledInput ||\n (value === undefined &&\n options?.some(\n (option) => option.value === undefined,\n )) ? undefined : (\n <SearchIcon />\n )\n }\n endAdornment={\n <SelectInnerSpinButton\n open={open}\n onClick={() => {\n setOpen((prev) => {\n if (prev) {\n return false;\n }\n pseudoInputRef.current?.focus();\n return prev;\n });\n }}\n />\n }\n data-invalid={invalid}\n value={query}\n onChange={\n disabledInput\n ? // @see https://github.com/matsuri-tech/matsuri-ui/issues/2451\n // eslint-disable-next-line @typescript-eslint/no-empty-function\n () => {}\n : (event) => {\n const value = event.currentTarget.value;\n setQuery(value);\n }\n }\n data-touched={inputProps[\"data-touched\"]}\n onFocus={(event) => {\n inputProps.onFocus(event);\n if (readOnly !== true) {\n setOpen(true);\n }\n }}\n css={\n disabledInput\n ? css`\n caret-color: transparent;\n input {\n cursor: pointer;\n }\n `\n : null\n }\n />\n </SelectFieldInputWrapperContext.Provider>\n\n <Popper\n disablePortal={disablePortal}\n anchorEl={ref.current}\n placement=\"bottom-start\"\n open={open}\n options={popperOptions}\n >\n <div>\n <Paper>\n <SelectList\n ref={listRef}\n onKeyDown={(event) => {\n const key = event.key;\n const list = listRef.current;\n if (list === null) {\n return;\n }\n const currentFocus = ownerDocument(list).activeElement;\n if (key === \"ArrowDown\") {\n event.preventDefault();\n moveFocus(list, currentFocus, nextItem);\n } else if (key === \"ArrowUp\") {\n event.preventDefault();\n moveFocus(list, currentFocus, previousItem);\n }\n }}\n >\n {React.Children.toArray(children).map((child, i) => (\n <SelectOption\n tabIndex={-1}\n aria-readonly={true}\n key={`child-${i}`}\n >\n {child}\n </SelectOption>\n ))}\n {options === undefined ? (\n <SelectOption aria-disabled={true} tabIndex={-1}>\n Loading...\n </SelectOption>\n ) : options.length === 0 ? (\n <SelectOption aria-disabled={true} tabIndex={-1}>\n No options\n </SelectOption>\n ) : (\n options.map((option, index) => {\n const selected = value === option.value;\n return (\n <SelectOption\n onKeyDown={(event) => {\n const { key } = event;\n if (key === \"Enter\") {\n event.preventDefault();\n event.currentTarget.click();\n pseudoInputRef.current?.focus();\n setOpen(false);\n }\n }}\n aria-selected={selected}\n /**\n * 何も選択されていないときは、先頭のオプションに飛べるようにしておく\n */\n tabIndex={\n (value === undefined ? index === 0 : selected)\n ? 0\n : -1\n }\n // eslint-disable-next-line @typescript-eslint/prefer-nullish-coalescing\n key={option.value || `undefinedValue`}\n onClick={() => {\n updateValue(option);\n setOpen(false);\n }}\n >\n {renderOption(option)}\n </SelectOption>\n );\n })\n )}\n </SelectList>\n </Paper>\n </div>\n </Popper>\n </div>\n <FormHelperText\n invalid={invalid}\n loading={loading}\n touched={touched}\n value={value}\n >\n {helperText}\n </FormHelperText>\n </FormControl>\n );\n};\n"],"mappings":"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","ignoreList":[]}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "matsuri-ui",
3
- "version": "17.0.2-alpha-1748646728204-3488dc1.0",
3
+ "version": "17.0.2-alpha-1749200134692-75cf25d.0",
4
4
  "repository": {
5
5
  "type": "git",
6
6
  "url": "git+https://github.com/matsuri-tech/matsuri-ui.git"
@@ -58,7 +58,7 @@
58
58
  },
59
59
  "devDependencies": {
60
60
  "@babel/cli": "7.27.2",
61
- "@babel/core": "7.27.3",
61
+ "@babel/core": "7.27.4",
62
62
  "@babel/preset-env": "7.27.2",
63
63
  "@babel/preset-react": "7.27.1",
64
64
  "@babel/preset-typescript": "7.27.1",