ingred-ui 33.11.1 → 33.12.1
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/components/Chart/BarChart/types.d.ts +6 -0
- package/dist/components/Chart/index.d.ts +4 -0
- package/dist/components/Chart/internal/ChartBar.d.ts +14 -0
- package/dist/components/Chart/internal/ChartLegend.d.ts +8 -4
- package/dist/components/Chart/internal/clampTooltipPosition.d.ts +10 -0
- package/dist/components/Chart/internal/filterVisibleSeries.d.ts +5 -0
- package/dist/components/Chart/internal/getChartDataKey.d.ts +3 -0
- package/dist/components/Chart/internal/getChartLayout.d.ts +1 -2
- package/dist/components/Chart/internal/hasChartData.d.ts +3 -0
- package/dist/components/Chart/internal/mapTimeSeriesChartData.d.ts +26 -0
- package/dist/components/Chart/internal/resolveSeries.d.ts +2 -0
- package/dist/components/Chart/internal/segmentReflow.d.ts +11 -0
- package/dist/components/Chart/internal/styled.d.ts +19 -3
- package/dist/components/Chart/internal/useChartSegmentReflow.d.ts +19 -0
- package/dist/components/Chart/types.d.ts +2 -0
- package/dist/components/DataTable/internal/Table/Row.d.ts +6 -7
- package/dist/components/DataTable2/DataTable2.d.ts +7 -1
- package/dist/components/DataTable2/DataTable2Footer.d.ts +2 -0
- package/dist/components/DataTable2/DataTable2Pagination.d.ts +7 -1
- package/dist/components/DataTable2/styled.d.ts +5 -0
- package/dist/index.es.js +741 -623
- package/dist/index.es.js.map +1 -1
- package/dist/index.js +719 -601
- package/dist/index.js.map +1 -1
- package/dist/themes/index.d.ts +1 -1
- package/dist/themes/palette.d.ts +11 -0
- package/package.json +13 -6
|
@@ -24,12 +24,18 @@ export type BarChartProps = {
|
|
|
24
24
|
showLegend?: boolean;
|
|
25
25
|
/** stacked 時に tooltip に合計を表示。デフォルト true */
|
|
26
26
|
showTotalInTooltip?: boolean;
|
|
27
|
+
/** 凡例クリックで系列の表示/非表示を切り替え。デフォルト true */
|
|
28
|
+
interactiveLegend?: boolean;
|
|
27
29
|
/**
|
|
28
30
|
* 棒の太さ(カテゴリスロット幅に対する比率 0–1)。
|
|
29
31
|
* - single / stacked: 棒 1 本(または積み上げ全体)の幅。デフォルト 0.6
|
|
30
32
|
* - grouped: カテゴリ内グループ全体の幅(系列数で等分)。デフォルト 0.8
|
|
31
33
|
*/
|
|
32
34
|
barWidthRatio?: number;
|
|
35
|
+
/** true の間、チャートの代わりにローディング表示 */
|
|
36
|
+
loading?: boolean;
|
|
37
|
+
/** 描画可能なデータがないときのメッセージ。未指定時は「データがありません」 */
|
|
38
|
+
emptyMessage?: string;
|
|
33
39
|
"aria-label": string;
|
|
34
40
|
height?: number;
|
|
35
41
|
className?: string;
|
|
@@ -2,3 +2,7 @@ export { BarChart } from "./BarChart";
|
|
|
2
2
|
export type { BarChartLayout, BarChartProps } from "./BarChart";
|
|
3
3
|
export type { BarSegment, BarChartOrientation, ChartHoverState, ChartSeries, ResolvedChartSeries, } from "./types";
|
|
4
4
|
export { computeYTicks, computeMaxStackedTotal } from "./internal/utils";
|
|
5
|
+
export { hasChartData } from "./internal/hasChartData";
|
|
6
|
+
export { formatDateAsMonthDay, mapTimeSeriesChartData, } from "./internal/mapTimeSeriesChartData";
|
|
7
|
+
export type { TimeSeriesDataset, TimeSeriesPoint, } from "./internal/mapTimeSeriesChartData";
|
|
8
|
+
export { CHART_DEFAULT_HEIGHT } from "./internal/getChartLayout";
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
import * as React from "react";
|
|
2
|
+
import { BarChartOrientation, BarSegment } from "../types";
|
|
3
|
+
type ChartBarProps = {
|
|
4
|
+
segment: BarSegment;
|
|
5
|
+
orientation: BarChartOrientation;
|
|
6
|
+
animation: "enter" | "exit" | "none";
|
|
7
|
+
enterIndex: number;
|
|
8
|
+
durationMs: number;
|
|
9
|
+
staggerMs: number;
|
|
10
|
+
onPointerMove: (event: React.PointerEvent<SVGRectElement>) => void;
|
|
11
|
+
onPointerLeave: () => void;
|
|
12
|
+
};
|
|
13
|
+
export declare const ChartBar: React.FC<ChartBarProps>;
|
|
14
|
+
export {};
|
|
@@ -1,9 +1,13 @@
|
|
|
1
1
|
import * as React from "react";
|
|
2
|
+
export type ChartLegendItem = {
|
|
3
|
+
label: string;
|
|
4
|
+
color: string;
|
|
5
|
+
hidden: boolean;
|
|
6
|
+
};
|
|
2
7
|
type ChartLegendProps = {
|
|
3
|
-
items:
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
}[];
|
|
8
|
+
items: ChartLegendItem[];
|
|
9
|
+
interactive?: boolean;
|
|
10
|
+
onToggle: (label: string) => void;
|
|
7
11
|
};
|
|
8
12
|
export declare const ChartLegend: React.FC<ChartLegendProps>;
|
|
9
13
|
export {};
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
export type TooltipPosition = {
|
|
2
|
+
left: number;
|
|
3
|
+
top: number;
|
|
4
|
+
transform: string;
|
|
5
|
+
};
|
|
6
|
+
/**
|
|
7
|
+
* カーソル追従 tooltip を viewport 内に収める。
|
|
8
|
+
* 上方向に十分なスペースがなければ下方向に反転する。
|
|
9
|
+
*/
|
|
10
|
+
export declare function clampTooltipPosition(clientX: number, clientY: number, tooltipWidth: number, tooltipHeight: number, viewportWidth: number, viewportHeight: number, padding?: number, offset?: number): TooltipPosition;
|
|
@@ -0,0 +1,5 @@
|
|
|
1
|
+
import { ResolvedChartSeries } from "../types";
|
|
2
|
+
export declare function filterVisibleSeries(series: ResolvedChartSeries[], hiddenLabels: ReadonlySet<string>): ResolvedChartSeries[];
|
|
3
|
+
export declare function toggleSeriesVisibility(hiddenLabels: ReadonlySet<string>, label: string, seriesLabels: readonly string[]): ReadonlySet<string>;
|
|
4
|
+
/** exit アニメーション完了後に hidden 集合へ系列を追加する(既存の hidden を保持する) */
|
|
5
|
+
export declare function commitHiddenSeriesLabel(hiddenLabels: ReadonlySet<string>, label: string): ReadonlySet<string>;
|
|
@@ -9,7 +9,6 @@ export type ChartLayoutOptions = {
|
|
|
9
9
|
categoryCount: number;
|
|
10
10
|
seriesCount?: number;
|
|
11
11
|
height?: number;
|
|
12
|
-
legendHeight?: number;
|
|
13
12
|
barWidthRatio?: number;
|
|
14
13
|
layout?: BarChartLayout;
|
|
15
14
|
orientation?: BarChartOrientation;
|
|
@@ -29,7 +28,6 @@ export type ChartLayout = {
|
|
|
29
28
|
slotWidth: number;
|
|
30
29
|
barWidth: number;
|
|
31
30
|
groupWidth: number;
|
|
32
|
-
legendHeight: number;
|
|
33
31
|
labelEvery: number;
|
|
34
32
|
/** 横スクロールが発生する場合の最小幅 */
|
|
35
33
|
minContentWidth: number;
|
|
@@ -40,4 +38,5 @@ export type ChartLayout = {
|
|
|
40
38
|
/** コンテナ高さよりチャート高さが高い(縦スクロール対象) */
|
|
41
39
|
overflowsVertically: boolean;
|
|
42
40
|
};
|
|
41
|
+
export declare const CHART_DEFAULT_HEIGHT = 320;
|
|
43
42
|
export declare function getChartLayout(options: ChartLayoutOptions): ChartLayout;
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
import { ChartSeries } from "../types";
|
|
2
|
+
export type TimeSeriesPoint = {
|
|
3
|
+
date: string;
|
|
4
|
+
value: number | null;
|
|
5
|
+
};
|
|
6
|
+
export type TimeSeriesDataset = {
|
|
7
|
+
label: string;
|
|
8
|
+
data: TimeSeriesPoint[];
|
|
9
|
+
};
|
|
10
|
+
/** YYYY/MM/DD 形式を MM/DD に変換。それ以外はそのまま返す */
|
|
11
|
+
export declare function formatDateAsMonthDay(date: string): string;
|
|
12
|
+
/**
|
|
13
|
+
* YYYY/M/D 形式(ゼロパディング有無を問わない)の日付文字列を時系列順に比較する。
|
|
14
|
+
* 単純な文字列比較だと "2026/9/1" > "2026/10/1" のように誤った順序になるため、
|
|
15
|
+
* 年/月/日を数値として比較する。YYYY/MM/DD 形式でない場合は文字列比較にフォールバックする。
|
|
16
|
+
*/
|
|
17
|
+
export declare function compareDateStrings(a: string, b: string): number;
|
|
18
|
+
/**
|
|
19
|
+
* 日付付き系列データを BarChart の categories / series に変換する。
|
|
20
|
+
* 全 dataset の date を union し、欠損は null で埋める。
|
|
21
|
+
* date 文字列は dataset 間で同一表記であること(例: "2026/3/5" と "2026/03/05" は別カテゴリになる)。
|
|
22
|
+
*/
|
|
23
|
+
export declare function mapTimeSeriesChartData(datasets: readonly TimeSeriesDataset[], formatCategoryLabel?: (date: string) => string): {
|
|
24
|
+
categories: string[];
|
|
25
|
+
series: ChartSeries[];
|
|
26
|
+
};
|
|
@@ -3,3 +3,5 @@ import { BarChartLayout } from "../BarChart/types";
|
|
|
3
3
|
import { ChartSeries, ResolvedChartSeries } from "../types";
|
|
4
4
|
export declare function resolveSeries(series: ChartSeries[], theme: Theme, colorScheme?: string): ResolvedChartSeries[];
|
|
5
5
|
export declare function resolveLayout(seriesCount: number, layout: BarChartLayout | undefined): BarChartLayout;
|
|
6
|
+
/** 凡例 reflow を使うか。表示系列数ではなく chart 全体の系列数と layout 意図で判定する */
|
|
7
|
+
export declare function supportsChartLegendReflow(totalSeriesCount: number, layoutProp: BarChartLayout | undefined): boolean;
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
import { BarChartOrientation, BarSegment } from "../types";
|
|
2
|
+
export declare function segmentKey(segment: Pick<BarSegment, "categoryIndex" | "seriesLabel">): string;
|
|
3
|
+
export declare function buildSegmentMap(segments: BarSegment[]): Map<string, BarSegment>;
|
|
4
|
+
/** CSS keyframes と reflow で共通の ease-out カーブ */
|
|
5
|
+
export declare const chartMotionEaseCss = "cubic-bezier(0.16, 1, 0.3, 1)";
|
|
6
|
+
/** 終端の減速を長く取る ease-out(7乗) */
|
|
7
|
+
export declare function easeOut(t: number): number;
|
|
8
|
+
export declare function lerpValue(from: number, to: number, t: number): number;
|
|
9
|
+
export declare function lerpSegment(from: BarSegment, to: BarSegment, t: number): BarSegment;
|
|
10
|
+
export declare function collapsedSegment(target: BarSegment, orientation: BarChartOrientation): BarSegment;
|
|
11
|
+
export declare function interpolateSegments(from: BarSegment[], to: BarSegment[], t: number, orientation: BarChartOrientation): BarSegment[];
|
|
@@ -15,11 +15,27 @@ export declare const ChartSvg: import("styled-components/dist/types").IStyledCom
|
|
|
15
15
|
$minHeight: number;
|
|
16
16
|
}, never>>> & string;
|
|
17
17
|
export declare const ChartLegendContainer: import("styled-components/dist/types").IStyledComponentBase<"web", import("styled-components").FastOmit<import("react").DetailedHTMLProps<import("react").HTMLAttributes<HTMLDivElement>, HTMLDivElement>, never> & Partial<Pick<import("react").DetailedHTMLProps<import("react").HTMLAttributes<HTMLDivElement>, HTMLDivElement>, never>>> & string;
|
|
18
|
-
export declare const
|
|
19
|
-
|
|
18
|
+
export declare const ChartLegendItemButton: import("styled-components/dist/types").IStyledComponentBase<"web", import("styled-components").FastOmit<import("styled-components").FastOmit<import("react").DetailedHTMLProps<import("react").ButtonHTMLAttributes<HTMLButtonElement>, HTMLButtonElement>, "$hidden"> & {
|
|
19
|
+
$hidden: boolean;
|
|
20
|
+
}, never> & Partial<Pick<import("styled-components").FastOmit<import("react").DetailedHTMLProps<import("react").ButtonHTMLAttributes<HTMLButtonElement>, HTMLButtonElement>, "$hidden"> & {
|
|
21
|
+
$hidden: boolean;
|
|
22
|
+
}, never>>> & string;
|
|
23
|
+
export declare const ChartLegendItemStatic: import("styled-components/dist/types").IStyledComponentBase<"web", import("styled-components").FastOmit<import("styled-components").FastOmit<import("react").DetailedHTMLProps<import("react").HTMLAttributes<HTMLDivElement>, HTMLDivElement>, "$hidden"> & {
|
|
24
|
+
$hidden: boolean;
|
|
25
|
+
}, never> & Partial<Pick<import("styled-components").FastOmit<import("react").DetailedHTMLProps<import("react").HTMLAttributes<HTMLDivElement>, HTMLDivElement>, "$hidden"> & {
|
|
26
|
+
$hidden: boolean;
|
|
27
|
+
}, never>>> & string;
|
|
28
|
+
export declare const ChartLegendSwatch: import("styled-components/dist/types").IStyledComponentBase<"web", import("styled-components").FastOmit<import("styled-components").FastOmit<import("react").DetailedHTMLProps<import("react").HTMLAttributes<HTMLSpanElement>, HTMLSpanElement>, "$color" | "$hidden"> & {
|
|
20
29
|
$color: string;
|
|
21
|
-
|
|
30
|
+
$hidden?: boolean | undefined;
|
|
31
|
+
}, never> & Partial<Pick<import("styled-components").FastOmit<import("react").DetailedHTMLProps<import("react").HTMLAttributes<HTMLSpanElement>, HTMLSpanElement>, "$color" | "$hidden"> & {
|
|
22
32
|
$color: string;
|
|
33
|
+
$hidden?: boolean | undefined;
|
|
34
|
+
}, never>>> & string;
|
|
35
|
+
export declare const ChartPlaceholder: import("styled-components/dist/types").IStyledComponentBase<"web", import("styled-components").FastOmit<import("styled-components").FastOmit<import("react").DetailedHTMLProps<import("react").HTMLAttributes<HTMLDivElement>, HTMLDivElement>, "$minHeight"> & {
|
|
36
|
+
$minHeight: number;
|
|
37
|
+
}, never> & Partial<Pick<import("styled-components").FastOmit<import("react").DetailedHTMLProps<import("react").HTMLAttributes<HTMLDivElement>, HTMLDivElement>, "$minHeight"> & {
|
|
38
|
+
$minHeight: number;
|
|
23
39
|
}, never>>> & string;
|
|
24
40
|
export declare const ChartTooltipContainer: import("styled-components/dist/types").IStyledComponentBase<"web", import("styled-components").FastOmit<import("react").DetailedHTMLProps<import("react").HTMLAttributes<HTMLDivElement>, HTMLDivElement>, never> & Partial<Pick<import("react").DetailedHTMLProps<import("react").HTMLAttributes<HTMLDivElement>, HTMLDivElement>, never>>> & string;
|
|
25
41
|
export declare const ChartTooltipTitle: import("styled-components/dist/types").IStyledComponentBase<"web", import("styled-components").FastOmit<import("react").DetailedHTMLProps<import("react").HTMLAttributes<HTMLDivElement>, HTMLDivElement>, never> & Partial<Pick<import("react").DetailedHTMLProps<import("react").HTMLAttributes<HTMLDivElement>, HTMLDivElement>, never>>> & string;
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
import { BarSegment, BarChartOrientation } from "../types";
|
|
2
|
+
export type ReflowProgress = {
|
|
3
|
+
phaseIndex: number;
|
|
4
|
+
phaseCount: number;
|
|
5
|
+
progress: number;
|
|
6
|
+
};
|
|
7
|
+
/**
|
|
8
|
+
* 凡例トグル後の segment 位置を rAF で補間する。
|
|
9
|
+
* ChartBar の enter/exit CSS は prefers-reduced-motion 対応済みだが、
|
|
10
|
+
* reflow 自体は未対応。将来 matchMedia で duration 0 / 補間スキップを検討する。
|
|
11
|
+
*/
|
|
12
|
+
export declare function useChartSegmentReflow(durationMs: number, orientation: BarChartOrientation): {
|
|
13
|
+
reflowSegments: BarSegment[] | null;
|
|
14
|
+
reflowProgress: ReflowProgress | null;
|
|
15
|
+
startReflow: (from: BarSegment[], to: BarSegment[], onComplete?: () => void) => void;
|
|
16
|
+
cancelReflow: () => void;
|
|
17
|
+
isReflowing: boolean;
|
|
18
|
+
};
|
|
19
|
+
export declare function lerpAxisMaxValue(fromMaxValue: number, toMaxValue: number, reflowProgress: ReflowProgress | null): number;
|
|
@@ -1,11 +1,10 @@
|
|
|
1
1
|
import * as React from "react";
|
|
2
2
|
export type VerticalSpacing = "small" | "medium" | "large";
|
|
3
|
-
type
|
|
4
|
-
highlighted
|
|
5
|
-
verticalSpacing
|
|
6
|
-
isStickyHeader
|
|
7
|
-
disableHoverHighlight
|
|
3
|
+
export type RowComponentProps = {
|
|
4
|
+
highlighted?: boolean;
|
|
5
|
+
verticalSpacing?: VerticalSpacing;
|
|
6
|
+
isStickyHeader?: boolean;
|
|
7
|
+
disableHoverHighlight?: boolean;
|
|
8
8
|
};
|
|
9
|
-
export type Props = React.ComponentPropsWithoutRef<"tr"> &
|
|
9
|
+
export type Props = React.ComponentPropsWithoutRef<"tr"> & RowComponentProps;
|
|
10
10
|
export declare const Row: React.FunctionComponent<Props>;
|
|
11
|
-
export {};
|
|
@@ -68,6 +68,12 @@ type DataTable2Props = {
|
|
|
68
68
|
* 例: `{ reorder: false }` で表示 ON/OFF のみ、`{ visibility: false }` で並び替えのみ。
|
|
69
69
|
*/
|
|
70
70
|
columnEditFeatures?: DataTable2ColumnEditFeatures;
|
|
71
|
+
/**
|
|
72
|
+
* テーブル下部にも件数表示・ページネーションを表示する。
|
|
73
|
+
* 上部ツールバー右側と同じ UI を右下に複製する。
|
|
74
|
+
* @default false
|
|
75
|
+
*/
|
|
76
|
+
showBottomPagination?: boolean;
|
|
71
77
|
} & {
|
|
72
78
|
/**
|
|
73
79
|
* 見た目の制御。枠線で囲むか否か。枠線で囲むと角丸も適用される
|
|
@@ -80,5 +86,5 @@ type DataTable2Props = {
|
|
|
80
86
|
*/
|
|
81
87
|
onCheckedRowsChange?: (checkedRows: string[]) => void;
|
|
82
88
|
};
|
|
83
|
-
export declare const DataTable2: ({ bordered, currentPage, pageSize, pageSizeOptions, totalCount, columns, onPageChange, onPageSizeChange, onColumnsChange, onCheckedRowsChange, children, tableActions, customTableActionArea, enableRowSelection, columnEditFeatures: columnEditFeaturesProp, }: DataTable2Props) => React.JSX.Element;
|
|
89
|
+
export declare const DataTable2: ({ bordered, currentPage, pageSize, pageSizeOptions, totalCount, columns, onPageChange, onPageSizeChange, onColumnsChange, onCheckedRowsChange, children, tableActions, customTableActionArea, enableRowSelection, columnEditFeatures: columnEditFeaturesProp, showBottomPagination, }: DataTable2Props) => React.JSX.Element;
|
|
84
90
|
export {};
|
|
@@ -1,2 +1,8 @@
|
|
|
1
1
|
import React from "react";
|
|
2
|
-
|
|
2
|
+
type DataTable2PaginationLocation = "toolbar" | "footer";
|
|
3
|
+
type DataTable2PaginationProps = {
|
|
4
|
+
/** 上下にページネーションが並ぶとき、スクリーンリーダー向けに位置を区別する */
|
|
5
|
+
location?: DataTable2PaginationLocation;
|
|
6
|
+
};
|
|
7
|
+
export declare const DataTable2Pagination: ({ location, }: DataTable2PaginationProps) => React.JSX.Element;
|
|
8
|
+
export {};
|
|
@@ -37,6 +37,11 @@ export declare const ToolbarPaginationOperator: import("styled-components/dist/t
|
|
|
37
37
|
export declare const ToolbarPaginationTriggerIcon: import("styled-components/dist/types").IStyledComponentBase<"web", import("styled-components").FastOmit<React.DetailedHTMLProps<React.HTMLAttributes<HTMLSpanElement>, HTMLSpanElement>, never> & Partial<Pick<React.DetailedHTMLProps<React.HTMLAttributes<HTMLSpanElement>, HTMLSpanElement>, never>>> & string;
|
|
38
38
|
export declare const ToolbarFilterTrigger: import("styled-components/dist/types").IStyledComponentBase<"web", import("styled-components").FastOmit<React.DetailedHTMLProps<React.ButtonHTMLAttributes<HTMLButtonElement>, HTMLButtonElement>, never> & Partial<Pick<React.DetailedHTMLProps<React.ButtonHTMLAttributes<HTMLButtonElement>, HTMLButtonElement>, never>>> & string;
|
|
39
39
|
export declare const ToolbarExtras: import("styled-components/dist/types").IStyledComponentBase<"web", import("styled-components").FastOmit<React.DetailedHTMLProps<React.HTMLAttributes<HTMLDivElement>, HTMLDivElement>, never> & Partial<Pick<React.DetailedHTMLProps<React.HTMLAttributes<HTMLDivElement>, HTMLDivElement>, never>>> & string;
|
|
40
|
+
export declare const Footer: import("styled-components/dist/types").IStyledComponentBase<"web", import("styled-components").FastOmit<import("styled-components").FastOmit<React.DetailedHTMLProps<React.HTMLAttributes<HTMLDivElement>, HTMLDivElement>, "isSmallLayout"> & {
|
|
41
|
+
isSmallLayout: boolean;
|
|
42
|
+
}, never> & Partial<Pick<import("styled-components").FastOmit<React.DetailedHTMLProps<React.HTMLAttributes<HTMLDivElement>, HTMLDivElement>, "isSmallLayout"> & {
|
|
43
|
+
isSmallLayout: boolean;
|
|
44
|
+
}, never>>> & string;
|
|
40
45
|
export declare const DataTable2ActionButton: import("styled-components/dist/types").IStyledComponentBase<"web", import("styled-components").FastOmit<import("styled-components").FastOmit<React.DetailedHTMLProps<React.ButtonHTMLAttributes<HTMLButtonElement>, HTMLButtonElement>, never> & Partial<Pick<React.DetailedHTMLProps<React.ButtonHTMLAttributes<HTMLButtonElement>, HTMLButtonElement>, never>> & {
|
|
41
46
|
as?: import("styled-components").WebTarget | undefined;
|
|
42
47
|
forwardedAs?: import("styled-components").WebTarget | undefined;
|