@moneyforward/mfui-components 3.13.0 → 3.14.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.
- package/dist/src/Accordion/Accordion.js +1 -1
- package/dist/src/Button/Button.d.ts +1 -1
- package/dist/src/CheckboxGroup/CheckboxGroup.d.ts +1 -1
- package/dist/src/DateTimeSelection/DateRangePicker/DateRangePickerProvider/DateRangePickerProvider.d.ts +2 -2
- package/dist/src/DateTimeSelection/MonthRangePicker/MonthRangePicker.js +18 -6
- package/dist/src/DateTimeSelection/shared/BaseRangePicker/BaseRangePicker.types.d.ts +14 -5
- package/dist/src/DateTimeSelection/shared/BaseRangePicker/BaseRangePickerProvider/BaseRangePickerProvider.d.ts +2 -2
- package/dist/src/DateTimeSelection/shared/BaseRangePicker/BaseRangePickerProvider/BaseRangePickerProvider.js +41 -6
- package/dist/src/IconButton/IconButton.d.ts +3 -3
- package/dist/src/MultipleSelectBox/MultipleSelectBox.d.ts +1 -1
- package/dist/src/MultipleSelectBox/MultipleSelectBox.js +29 -28
- package/dist/src/MultipleSelectBox/MultipleSelectBox.types.d.ts +77 -0
- package/dist/src/RadioButton/RadioButton.d.ts +1 -1
- package/dist/src/RadioGroup/RadioGroup.d.ts +1 -1
- package/dist/src/SelectBox/SelectBox.js +1 -1
- package/dist/src/Stack/Stack.d.ts +1 -1
- package/dist/src/Tooltip/Tooltip.d.ts +1 -1
- package/dist/src/index.d.ts +42 -42
- package/dist/src/index.js +42 -42
- package/dist/styles.css +2 -0
- package/package.json +3 -3
|
@@ -63,7 +63,7 @@ const AccordionTrigger = forwardRef(({ children, className, onClick, ...props },
|
|
|
63
63
|
toggle();
|
|
64
64
|
onClick?.(event);
|
|
65
65
|
}, [onClick, toggle]);
|
|
66
|
-
return (_jsx(FocusIndicator, { children: _jsxs("button", { ref: ref, className: cx(classes.trigger, 'mfui-Accordion__trigger', className), "aria-expanded": isOpen, "aria-controls": id, onClick: handleClick, ...props, children: [_jsx(Typography, { variant: "controlLabel", children: children }), isOpen ? _jsx(DisclosureBasicExpanded, {}) : _jsx(DisclosureBasicCollapsed, {})] }) }));
|
|
66
|
+
return (_jsx(FocusIndicator, { children: _jsxs("button", { ref: ref, className: cx(classes.trigger, 'mfui-Accordion__trigger', className), "aria-expanded": isOpen, "aria-controls": id, onClick: handleClick, ...props, children: [_jsx(Typography, { variant: "controlLabel", children: children }), isOpen ? _jsx(DisclosureBasicExpanded, { "aria-hidden": "true" }) : _jsx(DisclosureBasicCollapsed, { "aria-hidden": "true" })] }) }));
|
|
67
67
|
});
|
|
68
68
|
const AccordionTarget = forwardRef(({ children, className, style, ...props }, ref) => {
|
|
69
69
|
const { size } = useAccordionContext();
|
|
@@ -20,4 +20,4 @@ export declare const Button: import("react").ForwardRefExoticComponent<{
|
|
|
20
20
|
rightIcon?: React.ReactElement;
|
|
21
21
|
href?: string;
|
|
22
22
|
customLinkComponent?: import("react").ElementType;
|
|
23
|
-
} & Omit<import("react").DetailedHTMLProps<import("react").ButtonHTMLAttributes<HTMLButtonElement>, HTMLButtonElement>, "ref"> & Pick<Omit<import("react").DetailedHTMLProps<import("react").AnchorHTMLAttributes<HTMLAnchorElement>, HTMLAnchorElement>, "ref">, "
|
|
23
|
+
} & Omit<import("react").DetailedHTMLProps<import("react").ButtonHTMLAttributes<HTMLButtonElement>, HTMLButtonElement>, "ref"> & Pick<Omit<import("react").DetailedHTMLProps<import("react").AnchorHTMLAttributes<HTMLAnchorElement>, HTMLAnchorElement>, "ref">, "type" | "rel" | "download" | "hrefLang" | "ping" | "target" | "referrerPolicy"> & import("react").RefAttributes<HTMLButtonElement | HTMLAnchorElement>>;
|
|
@@ -14,4 +14,4 @@ export declare const CheckboxGroup: import("react").ForwardRefExoticComponent<{
|
|
|
14
14
|
defaultValues?: (string | number | readonly string[] | undefined)[];
|
|
15
15
|
values?: (string | number | readonly string[] | undefined)[];
|
|
16
16
|
onChange?: (selectedValue: (string | number | readonly string[] | undefined)[]) => void;
|
|
17
|
-
} & Pick<import("..").CheckboxProps, "
|
|
17
|
+
} & Pick<import("..").CheckboxProps, "disabled" | "name"> & Omit<Omit<import("react").DetailedHTMLProps<import("react").HTMLAttributes<HTMLDivElement>, HTMLDivElement>, "ref">, "onChange"> & import("react").RefAttributes<HTMLDivElement>>;
|
|
@@ -31,7 +31,7 @@ export declare function useDateRangePickerContext(): {
|
|
|
31
31
|
handleClear: () => void;
|
|
32
32
|
handleApply: () => void;
|
|
33
33
|
handleCancel: () => void;
|
|
34
|
-
selecting: "
|
|
34
|
+
selecting: "start" | "end";
|
|
35
35
|
temporaryStart: Date | undefined;
|
|
36
36
|
temporaryEnd: Date | undefined;
|
|
37
37
|
previewDate: Date | undefined;
|
|
@@ -43,7 +43,7 @@ export declare function useDateRangePickerContext(): {
|
|
|
43
43
|
isRangeEnd: (date: Date) => boolean;
|
|
44
44
|
setTemporaryStart: import("react").Dispatch<import("react").SetStateAction<Date | undefined>>;
|
|
45
45
|
setTemporaryEnd: import("react").Dispatch<import("react").SetStateAction<Date | undefined>>;
|
|
46
|
-
setSelecting: import("react").Dispatch<import("react").SetStateAction<"
|
|
46
|
+
setSelecting: import("react").Dispatch<import("react").SetStateAction<"start" | "end">>;
|
|
47
47
|
disableAutoOpen: boolean | undefined;
|
|
48
48
|
pendingFocusDate: string | null;
|
|
49
49
|
setPendingFocusDate: import("react").Dispatch<import("react").SetStateAction<string | null>>;
|
|
@@ -31,14 +31,26 @@ import { MonthRangePickerPanel } from './MonthRangePickerPanel';
|
|
|
31
31
|
*/
|
|
32
32
|
export function MonthRangePicker({ format = 'YYYY/MM', minMonth, maxMonth, startInputProps = {}, endInputProps = {}, initialDisplayedMonths, ...restProps }) {
|
|
33
33
|
// MonthRangePicker panels are grouped by year (left = viewingYear, right = viewingYear + 1).
|
|
34
|
-
// When `previousAndCurrent` is requested, we
|
|
35
|
-
// shows the previous year
|
|
36
|
-
const initialViewingDate =
|
|
37
|
-
|
|
34
|
+
// When `previousAndCurrent` is requested, we shift by a full year so the left panel
|
|
35
|
+
// shows the previous year. This applies regardless of whether `value` is set.
|
|
36
|
+
const initialViewingDate = (() => {
|
|
37
|
+
if (initialDisplayedMonths !== 'previousAndCurrent') {
|
|
38
|
+
return;
|
|
39
|
+
}
|
|
40
|
+
const startDate = restProps.value?.[0] ?? restProps.defaultValue?.[0];
|
|
41
|
+
if (!startDate) {
|
|
42
|
+
// No value: show previous year relative to today
|
|
38
43
|
const today = new Date();
|
|
39
44
|
return new Date(today.getFullYear() - 1, 0, 1);
|
|
40
|
-
}
|
|
41
|
-
|
|
45
|
+
}
|
|
46
|
+
const endDate = restProps.value?.[1] ?? restProps.defaultValue?.[1];
|
|
47
|
+
if (endDate && startDate.getFullYear() !== endDate.getFullYear()) {
|
|
48
|
+
// Value spans different years: provider handles it via the multi-month path
|
|
49
|
+
return;
|
|
50
|
+
}
|
|
51
|
+
// Same-year value + previousAndCurrent: show previous year on the left
|
|
52
|
+
return new Date(startDate.getFullYear() - 1, 0, 1);
|
|
53
|
+
})();
|
|
42
54
|
return (_jsx(BaseRangePicker, { ...restProps, format: format, initialDisplayedMonths: initialDisplayedMonths, initialViewingDate: initialViewingDate, startInputProps: {
|
|
43
55
|
placeholder: '開始月',
|
|
44
56
|
...startInputProps,
|
|
@@ -272,12 +272,15 @@ export type BaseRangePickerProps = {
|
|
|
272
272
|
calendarLocale?: BasePickerProps['calendarLocale'];
|
|
273
273
|
/**
|
|
274
274
|
* Controls which months are initially displayed in the two-panel calendar view.
|
|
275
|
-
* - `'currentAndNext'`: Shows
|
|
276
|
-
*
|
|
275
|
+
* - `'currentAndNext'`: Shows the value's start month on the left and the next month on the right.
|
|
276
|
+
* When no value is set, shows the current month on the left and next month on the right.
|
|
277
|
+
* - `'previousAndCurrent'`: Shows the month before the value's start month on the left and
|
|
278
|
+
* the value's start month on the right.
|
|
279
|
+
* When no value is set, shows the previous month on the left and current month on the right.
|
|
277
280
|
* Useful for log date range selection where showing future months is not meaningful.
|
|
278
281
|
*
|
|
279
|
-
*
|
|
280
|
-
*
|
|
282
|
+
* When `value`/`defaultValue` spans two different months, the calendar always shows both selected
|
|
283
|
+
* months regardless of this setting.
|
|
281
284
|
*
|
|
282
285
|
* @default 'currentAndNext'
|
|
283
286
|
*
|
|
@@ -285,6 +288,12 @@ export type BaseRangePickerProps = {
|
|
|
285
288
|
* ```tsx
|
|
286
289
|
* // Show previous month + current month for log date selection
|
|
287
290
|
* <DateRangePicker initialDisplayedMonths="previousAndCurrent" />
|
|
291
|
+
*
|
|
292
|
+
* // With a value set: shows February (left) and March (right)
|
|
293
|
+
* <DateRangePicker
|
|
294
|
+
* initialDisplayedMonths="previousAndCurrent"
|
|
295
|
+
* value={[new Date(2024, 2, 1), new Date(2024, 2, 15)]}
|
|
296
|
+
* />
|
|
288
297
|
* ```
|
|
289
298
|
*/
|
|
290
299
|
initialDisplayedMonths?: 'currentAndNext' | 'previousAndCurrent';
|
|
@@ -293,7 +302,7 @@ export type BaseRangePickerProps = {
|
|
|
293
302
|
* Use this when the component operates at a different granularity than months
|
|
294
303
|
* (e.g., MonthRangePicker uses years for panel navigation).
|
|
295
304
|
*
|
|
296
|
-
*
|
|
305
|
+
* Takes the highest priority in the `viewingMonth` computation.
|
|
297
306
|
*
|
|
298
307
|
* @internal
|
|
299
308
|
*/
|
|
@@ -31,7 +31,7 @@ export declare function useBaseRangePickerContext(): {
|
|
|
31
31
|
handleClear: () => void;
|
|
32
32
|
handleApply: () => void;
|
|
33
33
|
handleCancel: () => void;
|
|
34
|
-
selecting: "
|
|
34
|
+
selecting: "start" | "end";
|
|
35
35
|
temporaryStart: Date | undefined;
|
|
36
36
|
temporaryEnd: Date | undefined;
|
|
37
37
|
previewDate: Date | undefined;
|
|
@@ -43,7 +43,7 @@ export declare function useBaseRangePickerContext(): {
|
|
|
43
43
|
isRangeEnd: (date: Date) => boolean;
|
|
44
44
|
setTemporaryStart: import("react").Dispatch<import("react").SetStateAction<Date | undefined>>;
|
|
45
45
|
setTemporaryEnd: import("react").Dispatch<import("react").SetStateAction<Date | undefined>>;
|
|
46
|
-
setSelecting: import("react").Dispatch<import("react").SetStateAction<"
|
|
46
|
+
setSelecting: import("react").Dispatch<import("react").SetStateAction<"start" | "end">>;
|
|
47
47
|
disableAutoOpen: boolean | undefined;
|
|
48
48
|
pendingFocusDate: string | null;
|
|
49
49
|
setPendingFocusDate: import("react").Dispatch<import("react").SetStateAction<string | null>>;
|
|
@@ -11,6 +11,40 @@ const noop = () => { };
|
|
|
11
11
|
function normalizeToFirstOfMonth(date) {
|
|
12
12
|
return dayjs(date).startOf('month').toDate();
|
|
13
13
|
}
|
|
14
|
+
/**
|
|
15
|
+
* Computes the initial viewing month for the dual-panel calendar.
|
|
16
|
+
*
|
|
17
|
+
* Priority:
|
|
18
|
+
* 1. `initialViewingDate` — explicit internal override (used by MonthRangePicker for year-level navigation)
|
|
19
|
+
* 2. `value`/`defaultValue` spans **different** months → use start month (both selected months visible)
|
|
20
|
+
* 3. `value`/`defaultValue` within a **single** month:
|
|
21
|
+
* - `previousAndCurrent` → start month − 1 month (left panel = month before value, right = value month)
|
|
22
|
+
* - `currentAndNext` → start month (left panel = value month, right = next month)
|
|
23
|
+
* 4. No value → `initialDisplayedMonths` relative to today
|
|
24
|
+
*/
|
|
25
|
+
function computeInitialViewingMonth({ value, defaultValue, initialViewingDate, initialDisplayedMonths, today, }) {
|
|
26
|
+
if (initialViewingDate) {
|
|
27
|
+
return initialViewingDate;
|
|
28
|
+
}
|
|
29
|
+
const rangeStart = value?.[0] ?? defaultValue?.[0];
|
|
30
|
+
const rangeEnd = value?.[1] ?? defaultValue?.[1];
|
|
31
|
+
if (rangeStart) {
|
|
32
|
+
if (rangeEnd && !dayjs(rangeStart).isSame(rangeEnd, 'month')) {
|
|
33
|
+
// Spans different months: show start month on the left
|
|
34
|
+
return rangeStart;
|
|
35
|
+
}
|
|
36
|
+
// Single-month value: apply initialDisplayedMonths
|
|
37
|
+
if (initialDisplayedMonths === 'previousAndCurrent') {
|
|
38
|
+
return dayjs(rangeStart).subtract(1, 'month').toDate();
|
|
39
|
+
}
|
|
40
|
+
return rangeStart;
|
|
41
|
+
}
|
|
42
|
+
// No value: apply initialDisplayedMonths relative to today
|
|
43
|
+
if (initialDisplayedMonths === 'previousAndCurrent') {
|
|
44
|
+
return new Date(today.getFullYear(), today.getMonth() - 1, 1);
|
|
45
|
+
}
|
|
46
|
+
return new Date(today.getFullYear(), today.getMonth(), 1);
|
|
47
|
+
}
|
|
14
48
|
/**
|
|
15
49
|
* Checks if a date is outside the specified constraints
|
|
16
50
|
*
|
|
@@ -73,12 +107,13 @@ const useBaseRangePickerContextValue = ({ value, defaultValue, disabled = false,
|
|
|
73
107
|
const [startDateString, endDateString] = dateStrings;
|
|
74
108
|
// Add viewingMonth state
|
|
75
109
|
const today = useMemo(() => new Date(), []);
|
|
76
|
-
const [viewingMonth, setViewingMonth] = useTransformedState(
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
110
|
+
const [viewingMonth, setViewingMonth] = useTransformedState(computeInitialViewingMonth({
|
|
111
|
+
value,
|
|
112
|
+
defaultValue,
|
|
113
|
+
initialViewingDate,
|
|
114
|
+
initialDisplayedMonths,
|
|
115
|
+
today,
|
|
116
|
+
}), normalizeToFirstOfMonth);
|
|
82
117
|
// --- Selection/Preview State and Logic ---
|
|
83
118
|
const [selecting, setSelecting] = useState('start');
|
|
84
119
|
const [temporaryStart, setTemporaryStart] = useState(startDate);
|
|
@@ -4,13 +4,13 @@ export declare const InternalIconButton: import("react").ForwardRefExoticCompone
|
|
|
4
4
|
disabled?: boolean;
|
|
5
5
|
href?: string;
|
|
6
6
|
customLinkComponent?: import("react").ElementType;
|
|
7
|
-
} & Omit<import("react").DetailedHTMLProps<import("react").ButtonHTMLAttributes<HTMLButtonElement>, HTMLButtonElement>, "ref"> & Pick<Omit<import("react").DetailedHTMLProps<import("react").AnchorHTMLAttributes<HTMLAnchorElement>, HTMLAnchorElement>, "ref">, "
|
|
7
|
+
} & Omit<import("react").DetailedHTMLProps<import("react").ButtonHTMLAttributes<HTMLButtonElement>, HTMLButtonElement>, "ref"> & Pick<Omit<import("react").DetailedHTMLProps<import("react").AnchorHTMLAttributes<HTMLAnchorElement>, HTMLAnchorElement>, "ref">, "type" | "rel" | "download" | "hrefLang" | "ping" | "target" | "referrerPolicy"> & {
|
|
8
8
|
size?: import("../../styled-system/recipes").IconButtonSlotRecipeVariant["size"];
|
|
9
|
-
} & import("react").RefAttributes<
|
|
9
|
+
} & import("react").RefAttributes<HTMLButtonElement | HTMLAnchorElement>>;
|
|
10
10
|
export declare const IconButton: import("react").ForwardRefExoticComponent<{
|
|
11
11
|
outlined?: import("../../styled-system/recipes").IconButtonSlotRecipeVariant["outlined"];
|
|
12
12
|
children: React.ReactNode;
|
|
13
13
|
disabled?: boolean;
|
|
14
14
|
href?: string;
|
|
15
15
|
customLinkComponent?: import("react").ElementType;
|
|
16
|
-
} & Omit<import("react").DetailedHTMLProps<import("react").ButtonHTMLAttributes<HTMLButtonElement>, HTMLButtonElement>, "ref"> & Pick<Omit<import("react").DetailedHTMLProps<import("react").AnchorHTMLAttributes<HTMLAnchorElement>, HTMLAnchorElement>, "ref">, "
|
|
16
|
+
} & Omit<import("react").DetailedHTMLProps<import("react").ButtonHTMLAttributes<HTMLButtonElement>, HTMLButtonElement>, "ref"> & Pick<Omit<import("react").DetailedHTMLProps<import("react").AnchorHTMLAttributes<HTMLAnchorElement>, HTMLAnchorElement>, "ref">, "type" | "rel" | "download" | "hrefLang" | "ping" | "target" | "referrerPolicy"> & import("react").RefAttributes<HTMLButtonElement | HTMLAnchorElement>>;
|
|
@@ -4,4 +4,4 @@ import { type MultipleSelectBoxProps, type AllowedValueTypes } from './MultipleS
|
|
|
4
4
|
* This component is separated from the SelectBox component because it has a different behavior.
|
|
5
5
|
* This component switches the variants of looks and behaviors depends on the props: size, invalid, disabled.
|
|
6
6
|
*/
|
|
7
|
-
export declare function MultipleSelectBox<T extends AllowedValueTypes = string, AdditionalProps extends Record<string, unknown> = Record<string, never>>({ id, triggerProps, triggerWrapperProps, size, options, defaultValue, placeholder, emptyMessage, disabled, invalid, targetDOMNode, name, onChange, value, showDisplayValueAsTag, renderDisplayValue, enableSearchOptions, notFoundMessage, searchBoxProps, loading, onSearchOptions, clearButtonProps, disableClearButton, optionPanelProps, popoverWrapperProps, enableAllOptionsControls, enableApplyControls, showSelectedCount, selectAllButtonProps, clearAllButtonProps, selectedCountProps, cancelButtonProps, applyButtonProps, renderOption, onOpenStateChanged, enableAutoUnmount, onBlur, showGroupOptionDivider, enableVirtualization, virtualizationOptions, infiniteScroll, }: MultipleSelectBoxProps<T, AdditionalProps>): import("react/jsx-runtime").JSX.Element;
|
|
7
|
+
export declare function MultipleSelectBox<T extends AllowedValueTypes = string, AdditionalProps extends Record<string, unknown> = Record<string, never>>({ id, triggerProps, triggerWrapperProps, size, options, defaultValue, placeholder, emptyMessage, disabled, invalid, targetDOMNode, name, onChange, value, showDisplayValueAsTag, renderDisplayValue, enableSearchOptions, notFoundMessage, searchBoxProps, loading, onSearchOptions, clearButtonProps, disableClearButton, optionPanelProps, popoverWrapperProps, enableAllOptionsControls, enableApplyControls, showSelectedCount, selectAllButtonProps, clearAllButtonProps, selectedCountProps, cancelButtonProps, applyButtonProps, renderOption, renderPopoverHeader, renderOptionList, renderPopoverFooter, onOpenStateChanged, enableAutoUnmount, onBlur, showGroupOptionDivider, enableVirtualization, virtualizationOptions, infiniteScroll, }: MultipleSelectBoxProps<T, AdditionalProps>): import("react/jsx-runtime").JSX.Element;
|
|
@@ -34,7 +34,7 @@ const SKELETON_ITEM_COUNT = 4;
|
|
|
34
34
|
*/
|
|
35
35
|
export function MultipleSelectBox({ id, triggerProps, triggerWrapperProps, size, options = [], defaultValue,
|
|
36
36
|
// eslint-disable-next-line @typescript-eslint/no-deprecated
|
|
37
|
-
placeholder, emptyMessage, disabled, invalid, targetDOMNode, name, onChange, value, showDisplayValueAsTag, renderDisplayValue, enableSearchOptions = false, notFoundMessage, searchBoxProps, loading = false, onSearchOptions, clearButtonProps, disableClearButton = false, optionPanelProps, popoverWrapperProps, enableAllOptionsControls = false, enableApplyControls = false, showSelectedCount = false, selectAllButtonProps, clearAllButtonProps, selectedCountProps, cancelButtonProps, applyButtonProps, renderOption, onOpenStateChanged, enableAutoUnmount = true, onBlur, showGroupOptionDivider, enableVirtualization = false, virtualizationOptions, infiniteScroll, }) {
|
|
37
|
+
placeholder, emptyMessage, disabled, invalid, targetDOMNode, name, onChange, value, showDisplayValueAsTag, renderDisplayValue, enableSearchOptions = false, notFoundMessage, searchBoxProps, loading = false, onSearchOptions, clearButtonProps, disableClearButton = false, optionPanelProps, popoverWrapperProps, enableAllOptionsControls = false, enableApplyControls = false, showSelectedCount = false, selectAllButtonProps, clearAllButtonProps, selectedCountProps, cancelButtonProps, applyButtonProps, renderOption, renderPopoverHeader, renderOptionList, renderPopoverFooter, onOpenStateChanged, enableAutoUnmount = true, onBlur, showGroupOptionDivider, enableVirtualization = false, virtualizationOptions, infiniteScroll, }) {
|
|
38
38
|
const classes = multipleSelectBoxSlotRecipe({ showGroupOptionDivider });
|
|
39
39
|
const triggerRef = useRef(null);
|
|
40
40
|
const listBoxId = useId();
|
|
@@ -301,33 +301,34 @@ placeholder, emptyMessage, disabled, invalid, targetDOMNode, name, onChange, val
|
|
|
301
301
|
]);
|
|
302
302
|
// Render infinite scroll loading indicator
|
|
303
303
|
const renderInfiniteScrollLoading = useCallback(() => isInfiniteScrollLoading && enableInfiniteScroll ? (_jsx("div", { className: cx(classes.infiniteScrollLoading, 'mfui-MultipleSelectBox__infiniteScrollLoading'), children: _jsx(ProgressIndicator, {}) })) : null, [isInfiniteScrollLoading, enableInfiniteScroll, classes.infiniteScrollLoading]);
|
|
304
|
+
const searchNode = enableSearchOptions ? (_jsx(SearchBox, { ref: searchInputRef, enableClearButton: true, value: searchText, textBoxSize: "small", autoComplete: "off", onChange: onSearchTextChange, ...searchBoxProps })) : null;
|
|
305
|
+
const allOptionsControlsNode = enableAllOptionsControls ? (_jsxs(HStack, { justifyContent: "space-between", children: [_jsx(Button, { ref: selectAllButtonRef, size: "small", onClick: handleSelectAll, children: selectAllButtonProps?.label ?? 'すべて選択' }), _jsx(Button, { ref: clearAllButtonRef, size: "small", onClick: handleClearAll, children: clearAllButtonProps?.label ?? 'すべて解除' })] })) : null;
|
|
306
|
+
const selectedCountNode = enableApplyControls || showSelectedCount ? (_jsx(Typography, { variant: "body", color: "neutral.600", children: enableApplyControls
|
|
307
|
+
? (selectedCountProps?.render?.(temporaryValues.size) ?? `${String(temporaryValues.size)}件選択中`)
|
|
308
|
+
: (selectedCountProps?.render?.(localSelectedValuesSet.size) ??
|
|
309
|
+
`${String(localSelectedValuesSet.size)}件選択中`) })) : null;
|
|
310
|
+
const applyControlsNode = enableApplyControls ? (_jsxs(HStack, { gap: "horizontal.0-1of2", children: [_jsx(Button, { ref: cancelButtonRef, size: "small", priority: "secondary", onClick: handleCancelButtonClick, children: cancelButtonProps?.label ?? 'キャンセル' }), _jsx(Button, { ref: applyButtonRef, size: "small", priority: "primary", onClick: handleApplyButtonClick, children: applyButtonProps?.label ?? '適用' })] })) : null;
|
|
311
|
+
const optionsNode = (_jsx("div", { ref: scrollWrapperRef, className: cx(classes.scrollWrapper, 'mfui-MultipleSelectBox__scrollWrapper'), onScroll: enableInfiniteScroll ? handleInfiniteScroll : undefined, children: _jsx("ul", { ref: listBoxRef, role: "listbox", id: listBoxId, className: cx(classes.listBox, 'mfui-MultipleSelectBox__listBox'), tabIndex: -1, style: isVirtualized && totalSize > 0
|
|
312
|
+
? {
|
|
313
|
+
height: `${String(totalSize)}px`,
|
|
314
|
+
position: 'relative',
|
|
315
|
+
}
|
|
316
|
+
: undefined, children: loading
|
|
317
|
+
? Array.from({ length: SKELETON_ITEM_COUNT }).map((_, index) => (_jsx("li", { className: cx(classes.skeletonItem, 'mfui-MultipleSelectBox__skeletonItem'), children: _jsx(Skeleton, {}) }, index)))
|
|
318
|
+
: isVirtualized && virtualItems.length > 0
|
|
319
|
+
? // Virtualized rendering with group support
|
|
320
|
+
[...renderVirtualizedItems(), renderInfiniteScrollLoading(), renderInfiniteScrollError()].filter(Boolean)
|
|
321
|
+
: filteredOptions.length > 0
|
|
322
|
+
? [...renderNonVirtualizedItems(), renderInfiniteScrollLoading(), renderInfiniteScrollError()].filter(Boolean)
|
|
323
|
+
: [
|
|
324
|
+
_jsx("li", { className: cx(classes.emptyMessage, 'mfui-MultipleSelectBox__emptyMessage'), children: _jsx(Typography, { variant: "body", children: enableSearchOptions && searchText && notFoundMessage
|
|
325
|
+
? notFoundMessage
|
|
326
|
+
: options.length > 0
|
|
327
|
+
? notFoundMessage
|
|
328
|
+
: emptyMessage }) }, "empty"),
|
|
329
|
+
renderInfiniteScrollError(),
|
|
330
|
+
].filter(Boolean) }) }));
|
|
304
331
|
return (_jsx(Popover, { renderTrigger: ({ setTriggerRef, togglePopover, handleTriggerKeyDown, handleTriggerBlur }) => (_jsx(MultipleSelectBoxTrigger, { ref: triggerRef, wrapperRef: setTriggerRef, selectedOptions: localSelectedOptions, id: id, disabled: disabled, triggerProps: triggerProps, triggerWrapperProps: triggerWrapperProps, name: name,
|
|
305
332
|
// eslint-disable-next-line @typescript-eslint/no-deprecated
|
|
306
|
-
placeholder: placeholder, size: size, listBoxId: listBoxId, isOptionPanelOpen: isOptionPanelOpen, invalid: invalid, showDisplayValueAsTag: showDisplayValueAsTag, renderDisplayValue: renderDisplayValue, clearButtonProps: clearButtonProps, disableClearButton: disableClearButton, updateSelectedValues: updateSelectedValues, onClick: togglePopover, onKeyDown: handleTriggerKeyDown, onBlur: handleTriggerBlur })), contentProps: { className: classes.popover }, minWidth: optionPanelProps?.minWidth, maxHeight: popoverWrapperProps?.maxHeight, allowedPlacements: optionPanelProps?.allowedPlacements, renderContent: () => (_jsxs("div", { ref: optionPanelRef, className: cx(classes.optionPanel, 'mfui-MultipleSelectBox__optionPanel', optionPanelProps?.className), tabIndex: -1, onKeyDown: handleKeyDownMenu, children: [enableSearchOptions || enableAllOptionsControls ? (
|
|
307
|
-
? {
|
|
308
|
-
height: `${String(totalSize)}px`,
|
|
309
|
-
position: 'relative',
|
|
310
|
-
}
|
|
311
|
-
: undefined, children: loading
|
|
312
|
-
? Array.from({ length: SKELETON_ITEM_COUNT }).map((_, index) => (_jsx("li", { className: cx(classes.skeletonItem, 'mfui-MultipleSelectBox__skeletonItem'), children: _jsx(Skeleton, {}) }, index)))
|
|
313
|
-
: isVirtualized && virtualItems.length > 0
|
|
314
|
-
? // Virtualized rendering with group support
|
|
315
|
-
[...renderVirtualizedItems(), renderInfiniteScrollLoading(), renderInfiniteScrollError()].filter(Boolean)
|
|
316
|
-
: filteredOptions.length > 0
|
|
317
|
-
? [
|
|
318
|
-
...renderNonVirtualizedItems(),
|
|
319
|
-
renderInfiniteScrollLoading(),
|
|
320
|
-
renderInfiniteScrollError(),
|
|
321
|
-
].filter(Boolean)
|
|
322
|
-
: [
|
|
323
|
-
_jsx("li", { className: cx(classes.emptyMessage, 'mfui-MultipleSelectBox__emptyMessage'), children: _jsx(Typography, { variant: "body", children: enableSearchOptions && searchText && notFoundMessage
|
|
324
|
-
? notFoundMessage
|
|
325
|
-
: options.length > 0
|
|
326
|
-
? notFoundMessage
|
|
327
|
-
: emptyMessage }) }, "empty"),
|
|
328
|
-
renderInfiniteScrollError(),
|
|
329
|
-
].filter(Boolean) }) }), enableApplyControls || showSelectedCount ? (_jsxs(HStack, { className: cx(classes.menuFooter, 'mfui-MultipleSelectBox__menuFooter'), justifyContent: "space-between", alignItems: "center", children: [_jsx(Typography, { variant: "body", color: "neutral.600", children: enableApplyControls
|
|
330
|
-
? (selectedCountProps?.render?.(temporaryValues.size) ?? `${String(temporaryValues.size)}件選択中`)
|
|
331
|
-
: (selectedCountProps?.render?.(localSelectedValuesSet.size) ??
|
|
332
|
-
`${String(localSelectedValuesSet.size)}件選択中`) }), enableApplyControls ? (_jsxs(HStack, { gap: "horizontal.0-1of2", children: [_jsx(Button, { ref: cancelButtonRef, size: "small", priority: "secondary", onClick: handleCancelButtonClick, children: cancelButtonProps?.label ?? 'キャンセル' }), _jsx(Button, { ref: applyButtonRef, size: "small", priority: "primary", onClick: handleApplyButtonClick, children: applyButtonProps?.label ?? '適用' })] })) : null] })) : null] })), open: isOptionPanelOpen, targetDOMNode: targetDOMNode, enableAutoUnmount: enableAutoUnmount, onOpenStateChanged: toggleOptionPanel, onBlur: onBlur }));
|
|
333
|
+
placeholder: placeholder, size: size, listBoxId: listBoxId, isOptionPanelOpen: isOptionPanelOpen, invalid: invalid, showDisplayValueAsTag: showDisplayValueAsTag, renderDisplayValue: renderDisplayValue, clearButtonProps: clearButtonProps, disableClearButton: disableClearButton, updateSelectedValues: updateSelectedValues, onClick: togglePopover, onKeyDown: handleTriggerKeyDown, onBlur: handleTriggerBlur })), contentProps: { className: classes.popover }, minWidth: optionPanelProps?.minWidth, maxHeight: popoverWrapperProps?.maxHeight, allowedPlacements: optionPanelProps?.allowedPlacements, renderContent: () => (_jsxs("div", { ref: optionPanelRef, className: cx(classes.optionPanel, 'mfui-MultipleSelectBox__optionPanel', optionPanelProps?.className), tabIndex: -1, onKeyDown: handleKeyDownMenu, children: [enableSearchOptions || enableAllOptionsControls ? (_jsx(VStack, { className: cx(classes.menuHeader, 'mfui-MultipleSelectBox__menuHeader'), gap: "8px", children: renderPopoverHeader ? (renderPopoverHeader({ searchNode, allOptionsControlsNode })) : (_jsxs(_Fragment, { children: [searchNode, allOptionsControlsNode] })) })) : null, renderOptionList ? renderOptionList({ optionsNode }) : optionsNode, enableApplyControls || showSelectedCount ? (_jsx(HStack, { className: cx(classes.menuFooter, 'mfui-MultipleSelectBox__menuFooter'), justifyContent: "space-between", alignItems: "center", children: renderPopoverFooter ? (renderPopoverFooter({ selectedCountNode, applyControlsNode })) : (_jsxs(_Fragment, { children: [selectedCountNode, applyControlsNode] })) })) : null] })), open: isOptionPanelOpen, targetDOMNode: targetDOMNode, enableAutoUnmount: enableAutoUnmount, onOpenStateChanged: toggleOptionPanel, onBlur: onBlur }));
|
|
333
334
|
}
|
|
@@ -290,6 +290,83 @@ export type MultipleSelectBoxProps<T extends AllowedValueTypes = string, Additio
|
|
|
290
290
|
* ```
|
|
291
291
|
*/
|
|
292
292
|
renderOption?: (option: MultipleSelectBoxOption<T, AdditionalProps>, isSelected: boolean) => React.ReactNode;
|
|
293
|
+
/**
|
|
294
|
+
* Customize the popover header content.
|
|
295
|
+
*
|
|
296
|
+
* The component always renders the `mfui-MultipleSelectBox__menuHeader` wrapper (when
|
|
297
|
+
* `enableSearchOptions` or `enableAllOptionsControls` is `true`) — this function controls
|
|
298
|
+
* the content rendered inside it.
|
|
299
|
+
*
|
|
300
|
+
* - `searchNode` is the search input. Available only when `enableSearchOptions` is `true`, otherwise `null`.
|
|
301
|
+
* - `allOptionsControlsNode` is the "Select All" / "Clear All" buttons row. Available only when `enableAllOptionsControls` is `true`, otherwise `null`.
|
|
302
|
+
*
|
|
303
|
+
* @example
|
|
304
|
+
* ```tsx
|
|
305
|
+
* <MultipleSelectBox
|
|
306
|
+
* enableSearchOptions
|
|
307
|
+
* enableAllOptionsControls
|
|
308
|
+
* renderPopoverHeader={({ searchNode, allOptionsControlsNode }) => (
|
|
309
|
+
* <>
|
|
310
|
+
* {searchNode}
|
|
311
|
+
* {allOptionsControlsNode}
|
|
312
|
+
* <Button size="small">+ Add Option</Button>
|
|
313
|
+
* </>
|
|
314
|
+
* )}
|
|
315
|
+
* />
|
|
316
|
+
* ```
|
|
317
|
+
*/
|
|
318
|
+
renderPopoverHeader?: (nodes: {
|
|
319
|
+
searchNode: React.ReactNode | null;
|
|
320
|
+
allOptionsControlsNode: React.ReactNode | null;
|
|
321
|
+
}) => React.ReactNode;
|
|
322
|
+
/**
|
|
323
|
+
* Customize the popover body content.
|
|
324
|
+
*
|
|
325
|
+
* - `optionsNode` is the scrollable list of options (includes the scroll wrapper and listbox).
|
|
326
|
+
*
|
|
327
|
+
* @example
|
|
328
|
+
* ```tsx
|
|
329
|
+
* <MultipleSelectBox
|
|
330
|
+
* renderOptionList={({ optionsNode }) => (
|
|
331
|
+
* <>
|
|
332
|
+
* {optionsNode}
|
|
333
|
+
* <div>Custom content below the list</div>
|
|
334
|
+
* </>
|
|
335
|
+
* )}
|
|
336
|
+
* />
|
|
337
|
+
* ```
|
|
338
|
+
*/
|
|
339
|
+
renderOptionList?: (nodes: {
|
|
340
|
+
optionsNode: React.ReactNode;
|
|
341
|
+
}) => React.ReactNode;
|
|
342
|
+
/**
|
|
343
|
+
* Customize the popover footer content.
|
|
344
|
+
*
|
|
345
|
+
* The component always renders the `mfui-MultipleSelectBox__menuFooter` wrapper (when
|
|
346
|
+
* `enableApplyControls` or `showSelectedCount` is `true`) — this function controls
|
|
347
|
+
* the content rendered inside it.
|
|
348
|
+
*
|
|
349
|
+
* - `selectedCountNode` is the selected count text. Available when `enableApplyControls` or `showSelectedCount` is `true`, otherwise `null`.
|
|
350
|
+
* - `applyControlsNode` is the Cancel / Apply buttons row. Available only when `enableApplyControls` is `true`, otherwise `null`.
|
|
351
|
+
*
|
|
352
|
+
* @example
|
|
353
|
+
* ```tsx
|
|
354
|
+
* <MultipleSelectBox
|
|
355
|
+
* enableApplyControls
|
|
356
|
+
* renderPopoverFooter={({ selectedCountNode, applyControlsNode }) => (
|
|
357
|
+
* <>
|
|
358
|
+
* {selectedCountNode}
|
|
359
|
+
* <Button size="small">Custom action</Button>
|
|
360
|
+
* {applyControlsNode}
|
|
361
|
+
* </>
|
|
362
|
+
* )}
|
|
363
|
+
* />
|
|
364
|
+
* ```
|
|
365
|
+
*/
|
|
366
|
+
renderPopoverFooter?: (nodes: {
|
|
367
|
+
selectedCountNode: React.ReactNode | null;
|
|
368
|
+
applyControlsNode: React.ReactNode | null;
|
|
369
|
+
}) => React.ReactNode;
|
|
293
370
|
/**
|
|
294
371
|
* Whether to enable search options functionality
|
|
295
372
|
*/
|
|
@@ -10,4 +10,4 @@ export declare const RadioButton: import("react").ForwardRefExoticComponent<{
|
|
|
10
10
|
label?: string;
|
|
11
11
|
checked?: boolean | undefined;
|
|
12
12
|
disabled?: boolean | undefined;
|
|
13
|
-
} & Omit<Omit<import("react").DetailedHTMLProps<import("react").InputHTMLAttributes<HTMLInputElement>, HTMLInputElement>, "ref">, "
|
|
13
|
+
} & Omit<Omit<import("react").DetailedHTMLProps<import("react").InputHTMLAttributes<HTMLInputElement>, HTMLInputElement>, "ref">, "disabled" | "checked"> & import("react").RefAttributes<HTMLInputElement>>;
|
|
@@ -10,4 +10,4 @@
|
|
|
10
10
|
*
|
|
11
11
|
* @see https://developer.mozilla.org/en-US/docs/Web/HTML/Element/div
|
|
12
12
|
*/
|
|
13
|
-
export declare const RadioGroup: import("react").ForwardRefExoticComponent<Pick<import("..").RadioButtonProps, "
|
|
13
|
+
export declare const RadioGroup: import("react").ForwardRefExoticComponent<Pick<import("..").RadioButtonProps, "disabled" | "name" | "value" | "defaultValue" | "onChange"> & Omit<Omit<import("react").DetailedHTMLProps<import("react").HTMLAttributes<HTMLDivElement>, HTMLDivElement>, "ref">, "onChange"> & import("react").RefAttributes<HTMLDivElement>>;
|
|
@@ -328,7 +328,7 @@ export const SelectBox = forwardRef((props, ref) => {
|
|
|
328
328
|
return (_jsx(Popover, { open: isOptionPanelOpen, targetDOMNode: targetDOMNode, minWidth: popoverContentProps?.minWidth, maxHeight: popoverWrapperProps?.maxHeight, allowedPlacements: popoverContentProps?.allowedPlacements, enableConstrainedContentWidth: enableConstrainedPopoverWidth, renderContent: () => (_jsx("div", { ref: optionPanelRef, id: listBoxId, className: cx(classes.optionPanel, 'mfui-SelectBox__optionPanel', popoverContentProps?.className), tabIndex: -1, onKeyDown: handleKeyDownMenu, children: renderPopoverContent ? (renderPopoverContent({ searchNode, optionsNode })) : (_jsxs(_Fragment, { children: [searchNode, optionsNode] })) })), renderTrigger: ({ setTriggerRef, togglePopover, isPopoverOpen, handleTriggerKeyDown, handleTriggerBlur }) => (_jsxs("div", { ref: setTriggerRef, ...triggerWrapperProps, className: cx(classes.triggerWrapper, 'mfui-SelectBox__triggerWrapper', triggerWrapperProps?.className), children: [_jsx(FocusIndicator, { children: _jsxs("button", { ref: triggerRef, id: id, type: "button", role: "combobox", disabled: disabled, "aria-label": triggerProps?.['aria-label'], "aria-controls": listBoxId, "aria-expanded": isPopoverOpen, "aria-haspopup": "listbox", "aria-invalid": invalid, className: cx(classes.trigger, 'mfui-SelectBox__trigger', triggerProps?.className), "data-placeholder": !!placeholder && !localSelectedOption, "data-selected": !!localSelectedOption, "data-mfui-has-clear-button": showClearButton, onClick: togglePopover, onKeyDown: (event) => {
|
|
329
329
|
handleTypeAhead(event.nativeEvent);
|
|
330
330
|
handleTriggerKeyDown(event);
|
|
331
|
-
}, onBlur: handleTriggerBlur, children: [_jsx("span", { "data-mfui-content": "select-box-trigger-display-value", children: renderTriggerLabel() }), _jsx(DropdownIcon, {}), _jsx("input", { ref: ref, type: "hidden", value: localSelectedOption?.value ?? '', name: name, disabled: disabled })] }) }), showClearButton ? (_jsx("div", { className: cx(classes.clearButtonWrapper, 'mfui-SelectBox__clearButtonWrapper'), children: _jsx(ClearButton, { size: size === 'small' ? 'small' : size === 'large' ? 'large' : 'default', "aria-label": clearButtonProps?.['aria-label'] ?? '値をクリアする', "data-mfui-content": "select-box-clear-button", onClick: (event) => {
|
|
331
|
+
}, onBlur: handleTriggerBlur, children: [_jsx("span", { "data-mfui-content": "select-box-trigger-display-value", children: renderTriggerLabel() }), _jsx(DropdownIcon, { "aria-hidden": "true", focusable: false }), _jsx("input", { ref: ref, type: "hidden", value: localSelectedOption?.value ?? '', name: name, disabled: disabled })] }) }), showClearButton ? (_jsx("div", { className: cx(classes.clearButtonWrapper, 'mfui-SelectBox__clearButtonWrapper'), children: _jsx(ClearButton, { size: size === 'small' ? 'small' : size === 'large' ? 'large' : 'default', "aria-label": clearButtonProps?.['aria-label'] ?? '値をクリアする', "data-mfui-content": "select-box-clear-button", onClick: (event) => {
|
|
332
332
|
event.stopPropagation();
|
|
333
333
|
handleClearValue();
|
|
334
334
|
} }) })) : null] })), contentProps: { className: classes.popover }, enableAutoUnmount: enableAutoUnmount, onOpenStateChanged: toggleOptionPanel, onBlur: onBlur }));
|
|
@@ -21,7 +21,7 @@ export declare const GRID_TOKEN_VALUES: Record<string, string>;
|
|
|
21
21
|
export declare const Stack: import("react").ForwardRefExoticComponent<{
|
|
22
22
|
children?: import("react").ReactNode;
|
|
23
23
|
direction?: import("react").CSSProperties["flexDirection"];
|
|
24
|
-
gap?: ("horizontal.1" | "horizontal.2" | "horizontal.
|
|
24
|
+
gap?: ("horizontal.1" | "horizontal.2" | "horizontal.3" | "horizontal.8" | "horizontal.4" | "horizontal.5" | "horizontal.6" | "horizontal.7" | "horizontal.20" | "horizontal.0-1of8" | "horizontal.0-1of4" | "horizontal.0-1of2" | "horizontal.1-1of2" | "horizontal.2-1of2" | "horizontal.3-1of7" | "horizontal.3-1of2" | "horizontal.4-1of2" | "horizontal.5-1of2" | "horizontal.6-1of2" | "horizontal.7-1of2" | "vertical.1" | "vertical.2" | "vertical.3" | "vertical.0-1of8" | "vertical.0-1of4" | "vertical.0-1of2" | "vertical.1-1of2" | "vertical.2-1of2" | "vertical.0-1of6" | "vertical.0-1of3" | "vertical.0-2of3" | "vertical.0-3of4" | "vertical.0-5of6" | "vertical.0-7of8" | "vertical.1-1of8" | "vertical.1-1of4" | "vertical.1-1of3" | "vertical.1-2of3") | `${number}px` | number;
|
|
25
25
|
wrap?: import("react").CSSProperties["flexWrap"];
|
|
26
26
|
alignItems?: import("react").CSSProperties["alignItems"];
|
|
27
27
|
justifyContent?: import("react").CSSProperties["justifyContent"];
|
|
@@ -43,4 +43,4 @@ export declare const Tooltip: import("react").ForwardRefExoticComponent<{
|
|
|
43
43
|
hideFromScreenReader?: boolean;
|
|
44
44
|
maxWidth?: import("react").CSSProperties["maxWidth"];
|
|
45
45
|
contentProps?: Pick<import("react").ComponentPropsWithoutRef<"div">, "className">;
|
|
46
|
-
} & Omit<Omit<import("react").DetailedHTMLProps<import("react").HTMLAttributes<HTMLSpanElement>, HTMLSpanElement>, "ref">, "
|
|
46
|
+
} & Omit<Omit<import("react").DetailedHTMLProps<import("react").HTMLAttributes<HTMLSpanElement>, HTMLSpanElement>, "ref">, "disabled" | "content"> & import("react").RefAttributes<HTMLDivElement>>;
|
package/dist/src/index.d.ts
CHANGED
|
@@ -1,58 +1,58 @@
|
|
|
1
|
+
export * from './Accordion';
|
|
2
|
+
export * from './Badge';
|
|
1
3
|
export * from './Breadcrumbs';
|
|
2
4
|
export * from './Button';
|
|
5
|
+
export * from './Checkbox';
|
|
6
|
+
export * from './CheckboxCard';
|
|
7
|
+
export * from './CheckboxGroup';
|
|
8
|
+
export * from './DataGrid';
|
|
9
|
+
export * from './DataTable';
|
|
10
|
+
export * from './DateTimeSelection';
|
|
3
11
|
export * from './Dialog';
|
|
12
|
+
export * from './Disclosure';
|
|
13
|
+
export * from './DisplayTable';
|
|
4
14
|
export * from './DropdownMenu';
|
|
15
|
+
export * from './EmbeddedSidePane';
|
|
16
|
+
export * from './FileBox';
|
|
17
|
+
export * from './FileDropZone';
|
|
18
|
+
export * from './FilterSelectBox';
|
|
19
|
+
export * from './FilterTrigger';
|
|
5
20
|
export * from './FocusIndicator';
|
|
21
|
+
export * from './FormFooter';
|
|
6
22
|
export * from './GlobalHeader';
|
|
23
|
+
export * from './Heading';
|
|
7
24
|
export * from './HelpMessage';
|
|
8
25
|
export * from './IconButton';
|
|
26
|
+
export * from './KeyValue';
|
|
27
|
+
export * from './MainNavigation';
|
|
9
28
|
export * from './MultilineTextBox';
|
|
29
|
+
export * from './MultipleFilterSelectBox';
|
|
30
|
+
export * from './MultipleSelectBox';
|
|
31
|
+
export * from './NavigationList';
|
|
32
|
+
export * from './NumberBox';
|
|
33
|
+
export * from './PageHeader';
|
|
34
|
+
export * from './Pagination';
|
|
10
35
|
export * from './Panel';
|
|
11
|
-
export * from './
|
|
12
|
-
export * from './
|
|
13
|
-
export * from './
|
|
14
|
-
export * from './Tooltip';
|
|
15
|
-
export * from './Typography';
|
|
16
|
-
export * from './Checkbox';
|
|
17
|
-
export * from './Heading';
|
|
36
|
+
export * from './Popover';
|
|
37
|
+
export * from './Portal';
|
|
38
|
+
export * from './ProgressIndicator';
|
|
18
39
|
export * from './RadioButton';
|
|
40
|
+
export * from './RadioButtonCard';
|
|
19
41
|
export * from './RadioGroup';
|
|
20
|
-
export * from './
|
|
21
|
-
export * from './
|
|
42
|
+
export * from './SearchBox';
|
|
43
|
+
export * from './SectionMessage';
|
|
22
44
|
export * from './SelectBox';
|
|
23
45
|
export * from './SidePane';
|
|
24
|
-
export * from './Toast';
|
|
25
|
-
export * from './ToggleSwitch';
|
|
26
|
-
export * from './Pagination';
|
|
27
|
-
export * from './Tag';
|
|
28
|
-
export * from './ProgressIndicator';
|
|
29
|
-
export * from './DataTable';
|
|
30
|
-
export * from './DataGrid';
|
|
31
|
-
export * from './SubNavigation';
|
|
32
|
-
export * from './Tabs';
|
|
33
|
-
export * from './DateTimeSelection';
|
|
34
|
-
export * from './Stack';
|
|
35
|
-
export * from './MultipleSelectBox';
|
|
36
|
-
export * from './SearchBox';
|
|
37
|
-
export * from './CheckboxCard';
|
|
38
|
-
export * from './PageHeader';
|
|
39
|
-
export * from './RadioButtonCard';
|
|
40
|
-
export * from './Disclosure';
|
|
41
|
-
export * from './StatusLabel';
|
|
42
|
-
export * from './FileBox';
|
|
43
|
-
export * from './FilterSelectBox';
|
|
44
|
-
export * from './FilterTrigger';
|
|
45
46
|
export * from './Skeleton';
|
|
46
|
-
export * from './CheckboxGroup';
|
|
47
|
-
export * from './MultipleFilterSelectBox';
|
|
48
|
-
export * from './Popover';
|
|
49
|
-
export * from './Portal';
|
|
50
|
-
export * from './KeyValue';
|
|
51
|
-
export * from './FileDropZone';
|
|
52
|
-
export * from './EmbeddedSidePane';
|
|
53
|
-
export * from './DisplayTable';
|
|
54
|
-
export * from './Accordion';
|
|
55
47
|
export * from './SplitView';
|
|
56
|
-
export * from './
|
|
57
|
-
export * from './
|
|
58
|
-
export * from './
|
|
48
|
+
export * from './Stack';
|
|
49
|
+
export * from './StatusLabel';
|
|
50
|
+
export * from './SubNavigation';
|
|
51
|
+
export * from './Tabs';
|
|
52
|
+
export * from './Tag';
|
|
53
|
+
export * from './TextBox';
|
|
54
|
+
export * from './TextLink';
|
|
55
|
+
export * from './Toast';
|
|
56
|
+
export * from './ToggleSwitch';
|
|
57
|
+
export * from './Tooltip';
|
|
58
|
+
export * from './Typography';
|
package/dist/src/index.js
CHANGED
|
@@ -1,58 +1,58 @@
|
|
|
1
|
+
export * from './Accordion';
|
|
2
|
+
export * from './Badge';
|
|
1
3
|
export * from './Breadcrumbs';
|
|
2
4
|
export * from './Button';
|
|
5
|
+
export * from './Checkbox';
|
|
6
|
+
export * from './CheckboxCard';
|
|
7
|
+
export * from './CheckboxGroup';
|
|
8
|
+
export * from './DataGrid';
|
|
9
|
+
export * from './DataTable';
|
|
10
|
+
export * from './DateTimeSelection';
|
|
3
11
|
export * from './Dialog';
|
|
12
|
+
export * from './Disclosure';
|
|
13
|
+
export * from './DisplayTable';
|
|
4
14
|
export * from './DropdownMenu';
|
|
15
|
+
export * from './EmbeddedSidePane';
|
|
16
|
+
export * from './FileBox';
|
|
17
|
+
export * from './FileDropZone';
|
|
18
|
+
export * from './FilterSelectBox';
|
|
19
|
+
export * from './FilterTrigger';
|
|
5
20
|
export * from './FocusIndicator';
|
|
21
|
+
export * from './FormFooter';
|
|
6
22
|
export * from './GlobalHeader';
|
|
23
|
+
export * from './Heading';
|
|
7
24
|
export * from './HelpMessage';
|
|
8
25
|
export * from './IconButton';
|
|
26
|
+
export * from './KeyValue';
|
|
27
|
+
export * from './MainNavigation';
|
|
9
28
|
export * from './MultilineTextBox';
|
|
29
|
+
export * from './MultipleFilterSelectBox';
|
|
30
|
+
export * from './MultipleSelectBox';
|
|
31
|
+
export * from './NavigationList';
|
|
32
|
+
export * from './NumberBox';
|
|
33
|
+
export * from './PageHeader';
|
|
34
|
+
export * from './Pagination';
|
|
10
35
|
export * from './Panel';
|
|
11
|
-
export * from './
|
|
12
|
-
export * from './
|
|
13
|
-
export * from './
|
|
14
|
-
export * from './Tooltip';
|
|
15
|
-
export * from './Typography';
|
|
16
|
-
export * from './Checkbox';
|
|
17
|
-
export * from './Heading';
|
|
36
|
+
export * from './Popover';
|
|
37
|
+
export * from './Portal';
|
|
38
|
+
export * from './ProgressIndicator';
|
|
18
39
|
export * from './RadioButton';
|
|
40
|
+
export * from './RadioButtonCard';
|
|
19
41
|
export * from './RadioGroup';
|
|
20
|
-
export * from './
|
|
21
|
-
export * from './
|
|
42
|
+
export * from './SearchBox';
|
|
43
|
+
export * from './SectionMessage';
|
|
22
44
|
export * from './SelectBox';
|
|
23
45
|
export * from './SidePane';
|
|
24
|
-
export * from './Toast';
|
|
25
|
-
export * from './ToggleSwitch';
|
|
26
|
-
export * from './Pagination';
|
|
27
|
-
export * from './Tag';
|
|
28
|
-
export * from './ProgressIndicator';
|
|
29
|
-
export * from './DataTable';
|
|
30
|
-
export * from './DataGrid';
|
|
31
|
-
export * from './SubNavigation';
|
|
32
|
-
export * from './Tabs';
|
|
33
|
-
export * from './DateTimeSelection';
|
|
34
|
-
export * from './Stack';
|
|
35
|
-
export * from './MultipleSelectBox';
|
|
36
|
-
export * from './SearchBox';
|
|
37
|
-
export * from './CheckboxCard';
|
|
38
|
-
export * from './PageHeader';
|
|
39
|
-
export * from './RadioButtonCard';
|
|
40
|
-
export * from './Disclosure';
|
|
41
|
-
export * from './StatusLabel';
|
|
42
|
-
export * from './FileBox';
|
|
43
|
-
export * from './FilterSelectBox';
|
|
44
|
-
export * from './FilterTrigger';
|
|
45
46
|
export * from './Skeleton';
|
|
46
|
-
export * from './CheckboxGroup';
|
|
47
|
-
export * from './MultipleFilterSelectBox';
|
|
48
|
-
export * from './Popover';
|
|
49
|
-
export * from './Portal';
|
|
50
|
-
export * from './KeyValue';
|
|
51
|
-
export * from './FileDropZone';
|
|
52
|
-
export * from './EmbeddedSidePane';
|
|
53
|
-
export * from './DisplayTable';
|
|
54
|
-
export * from './Accordion';
|
|
55
47
|
export * from './SplitView';
|
|
56
|
-
export * from './
|
|
57
|
-
export * from './
|
|
58
|
-
export * from './
|
|
48
|
+
export * from './Stack';
|
|
49
|
+
export * from './StatusLabel';
|
|
50
|
+
export * from './SubNavigation';
|
|
51
|
+
export * from './Tabs';
|
|
52
|
+
export * from './Tag';
|
|
53
|
+
export * from './TextBox';
|
|
54
|
+
export * from './TextLink';
|
|
55
|
+
export * from './Toast';
|
|
56
|
+
export * from './ToggleSwitch';
|
|
57
|
+
export * from './Tooltip';
|
|
58
|
+
export * from './Typography';
|
package/dist/styles.css
CHANGED
|
@@ -1326,6 +1326,8 @@
|
|
|
1326
1326
|
background-color: var(--mfui-colors-mfui\.color\.neutral\.background\.none);
|
|
1327
1327
|
color: var(--mfui-colors-mfui\.color\.base\.inverted-content\.none);
|
|
1328
1328
|
box-shadow: var(--mfui-shadows-mfui\.elevation\.plus-1\.shadow-1);
|
|
1329
|
+
word-break: break-word;
|
|
1330
|
+
overflow-wrap: break-word;
|
|
1329
1331
|
min-height: 24px;
|
|
1330
1332
|
}
|
|
1331
1333
|
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@moneyforward/mfui-components",
|
|
3
|
-
"version": "3.
|
|
3
|
+
"version": "3.14.0",
|
|
4
4
|
"description": "React UI Component Library for all Money Forward products",
|
|
5
5
|
"repository": {
|
|
6
6
|
"type": "git",
|
|
@@ -61,8 +61,8 @@
|
|
|
61
61
|
"@floating-ui/react-dom": "^2.1.2",
|
|
62
62
|
"@tanstack/react-virtual": "^3.13.18",
|
|
63
63
|
"dayjs": "^1.11.13",
|
|
64
|
-
"@moneyforward/mfui-
|
|
65
|
-
"@moneyforward/mfui-
|
|
64
|
+
"@moneyforward/mfui-design-tokens": "^3.1.0",
|
|
65
|
+
"@moneyforward/mfui-icons-react": "^3.1.0"
|
|
66
66
|
},
|
|
67
67
|
"scripts": {
|
|
68
68
|
"prepare:panda": "panda codegen",
|