ingred-ui 22.2.1 → 22.3.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,4 +1,4 @@
1
- import React, { type ReactNode, type Ref, type ReactElement, type ButtonHTMLAttributes, type Dispatch, type SetStateAction } from "react";
1
+ import React, { type ReactNode, type ReactElement, type ButtonHTMLAttributes, type Dispatch, type SetStateAction, type Ref } from "react";
2
2
  export type ContextMenu2Anchor = {
3
3
  x: number;
4
4
  y: number;
@@ -37,6 +37,18 @@ type ContextMenu2Props = {
37
37
  * 開閉状態が変更されたときのコールバック
38
38
  */
39
39
  onOpenChange?: (open: boolean) => void;
40
+ /**
41
+ * パネルの上部に固定表示される要素(検索窓など)
42
+ */
43
+ stickyHeader?: ReactNode;
44
+ /**
45
+ * パネルの下部に固定表示される要素(適用ボタンなど)
46
+ */
47
+ stickyFooter?: ReactNode;
48
+ /**
49
+ * 検索結果が0件の場合に表示するメッセージ
50
+ */
51
+ noResultsMessage?: string;
40
52
  };
41
53
  export declare const ContextMenu2: React.ForwardRefExoticComponent<ContextMenu2Props & React.RefAttributes<HTMLButtonElement>>;
42
54
  type ContextMenu2ContainerProps = {
@@ -12,6 +12,9 @@ declare const _default: {
12
12
  minWidth?: number | undefined;
13
13
  children: React.ReactNode;
14
14
  onOpenChange?: ((open: boolean) => void) | undefined;
15
+ stickyHeader?: React.ReactNode;
16
+ stickyFooter?: React.ReactNode;
17
+ noResultsMessage?: string | undefined;
15
18
  } & React.RefAttributes<HTMLButtonElement>>;
16
19
  parameters: {
17
20
  docs: {
@@ -0,0 +1,5 @@
1
+ import React from "react";
2
+ export type ContextMenu2NoResultsMessageProps = {
3
+ message: string;
4
+ };
5
+ export declare const ContextMenu2NoResultsMessage: React.FC<ContextMenu2NoResultsMessageProps>;
@@ -13,7 +13,12 @@ type FilterTagInputProps = {
13
13
  size?: FilterSize;
14
14
  variant?: FilterVariant;
15
15
  tagVariant?: FilterVariant;
16
- placeholder?: string;
16
+ searchPlaceholder?: string;
17
+ noResultsMessage?: string;
18
+ disabled?: boolean;
19
+ applyButtonText?: string;
20
+ cancelButtonText?: string;
21
+ error?: boolean;
17
22
  };
18
- export declare const FilterComboBox: ({ values, options, selectedIndex, selectOptions, onChange, onSelectChange, size, variant, tagVariant, placeholder, }: FilterTagInputProps) => JSX.Element;
23
+ export declare const FilterComboBox: ({ values, options, selectedIndex, selectOptions, onChange, onSelectChange, size, variant, tagVariant, searchPlaceholder, noResultsMessage, disabled, applyButtonText, cancelButtonText, error, }: FilterTagInputProps) => JSX.Element;
19
24
  export {};
@@ -2,7 +2,7 @@ import React from "react";
2
2
  import { StoryObj } from "@storybook/react";
3
3
  declare const meta: {
4
4
  title: string;
5
- component: ({ values, options, selectedIndex, selectOptions, onChange, onSelectChange, size, variant, tagVariant, placeholder, }: {
5
+ component: ({ values, options, selectedIndex, selectOptions, onChange, onSelectChange, size, variant, tagVariant, searchPlaceholder, noResultsMessage, disabled, applyButtonText, cancelButtonText, error, }: {
6
6
  values: string[];
7
7
  options: (string | string[])[];
8
8
  selectedIndex: number;
@@ -15,7 +15,12 @@ declare const meta: {
15
15
  size?: import("../FilterInputAbstract/types").FilterSize | undefined;
16
16
  variant?: import("../FilterInputAbstract/types").FilterVariant | undefined;
17
17
  tagVariant?: import("../FilterInputAbstract/types").FilterVariant | undefined;
18
- placeholder?: string | undefined;
18
+ searchPlaceholder?: string | undefined;
19
+ noResultsMessage?: string | undefined;
20
+ disabled?: boolean | undefined;
21
+ applyButtonText?: string | undefined;
22
+ cancelButtonText?: string | undefined;
23
+ error?: boolean | undefined;
19
24
  }) => JSX.Element;
20
25
  argTypes: {
21
26
  size: {
@@ -63,20 +68,6 @@ declare const meta: {
63
68
  };
64
69
  };
65
70
  };
66
- placeholder: {
67
- control: {
68
- type: string;
69
- };
70
- description: string;
71
- table: {
72
- type: {
73
- summary: string;
74
- };
75
- defaultValue: {
76
- summary: string;
77
- };
78
- };
79
- };
80
71
  };
81
72
  };
82
73
  export default meta;
@@ -114,7 +105,19 @@ export declare const Sizes: StoryObj<typeof meta>;
114
105
  * - light: 明るい背景色
115
106
  * - dark: 暗い背景色(デフォルト)
116
107
  * - tagVariant: タグの背景色
117
- * - light: 明るい背景色(デフォルト)
108
+ * - 指定なし: 親コンポーネントのvariantに応じて自動的に設定(推奨)
109
+ * - light: 明るい背景色
118
110
  * - dark: 暗い背景色
111
+ *
112
+ * コンポーネントのvariantに応じてタグのvariantが自動的に切り替わります。
113
+ * variantが"light"の場合はタグは"dark"に、variantが"dark"の場合はタグは"light"になります。
119
114
  */
120
115
  export declare const Variants: StoryObj<typeof meta>;
116
+ /**
117
+ * 無効状態のサンプル
118
+ */
119
+ export declare const Disabled: StoryObj<typeof meta>;
120
+ /**
121
+ * エラー状態
122
+ */
123
+ export declare const Error: StoryObj<typeof meta>;
@@ -10,4 +10,8 @@ export declare const SelectIcon: import("styled-components").StyledComponent<"sp
10
10
  export declare const StyledContextMenu2TextInputItem: import("styled-components").StyledComponent<import("react").ForwardRefExoticComponent<{
11
11
  onEnter?: (() => void) | undefined;
12
12
  } & import("react").InputHTMLAttributes<HTMLInputElement> & import("react").RefAttributes<HTMLInputElement>>, import("styled-components").DefaultTheme, {}, never>;
13
+ export declare const StyledContextMenu2ButtonControlsItem: import("styled-components").StyledComponent<({ className, children }: {
14
+ className?: string | undefined;
15
+ children: import("react").ReactNode;
16
+ }) => JSX.Element, import("styled-components").DefaultTheme, {}, never>;
13
17
  export {};
@@ -2,6 +2,7 @@ import React, { type ReactElement, type ReactNode } from "react";
2
2
  import { FilterSize } from "./types";
3
3
  export declare const FilterInputContext: React.Context<{
4
4
  isSmall: boolean;
5
+ disabled: boolean;
5
6
  }>;
6
7
  type FilterTagProps = {
7
8
  label: string;
@@ -19,6 +20,9 @@ type FilterInputAbstractProps = {
19
20
  children?: ReactNode;
20
21
  onSelectChange: (index: number) => void;
21
22
  size?: "small" | "medium" | "large";
23
+ disabled?: boolean;
24
+ error?: boolean;
25
+ isOpen?: boolean;
22
26
  };
23
- export declare const FilterInputAbstract: ({ selectedIndex, selectOptions, onSelectChange, children, size, }: FilterInputAbstractProps) => JSX.Element;
27
+ export declare const FilterInputAbstract: ({ selectedIndex, selectOptions, onSelectChange, children, size, disabled, error, isOpen, }: FilterInputAbstractProps) => JSX.Element;
24
28
  export {};
@@ -2,7 +2,7 @@ import React from "react";
2
2
  import { StoryObj } from "@storybook/react";
3
3
  declare const meta: {
4
4
  title: string;
5
- component: ({ selectedIndex, selectOptions, onSelectChange, children, size, }: {
5
+ component: ({ selectedIndex, selectOptions, onSelectChange, children, size, disabled, error, isOpen, }: {
6
6
  selectedIndex: number;
7
7
  selectOptions: {
8
8
  icon: React.ReactElement<any, string | React.JSXElementConstructor<any>>;
@@ -11,6 +11,9 @@ declare const meta: {
11
11
  children?: React.ReactNode;
12
12
  onSelectChange: (index: number) => void;
13
13
  size?: "small" | "medium" | "large" | undefined;
14
+ disabled?: boolean | undefined;
15
+ error?: boolean | undefined;
16
+ isOpen?: boolean | undefined;
14
17
  }) => JSX.Element;
15
18
  argTypes: {
16
19
  size: {
@@ -6,7 +6,11 @@ export declare const getTriggerIconSizeStyle: (size: FilterSize) => import("styl
6
6
  export type FilterTagProps = {
7
7
  $size: FilterSize;
8
8
  };
9
- export declare const FilterInputAbstract: import("styled-components").StyledComponent<"div", import("styled-components").DefaultTheme, {}, never>;
9
+ export declare const FilterInputAbstract: import("styled-components").StyledComponent<"div", import("styled-components").DefaultTheme, {
10
+ $isOpen?: boolean | undefined;
11
+ $error?: boolean | undefined;
12
+ $disabled?: boolean | undefined;
13
+ }, never>;
10
14
  export declare const DropDownTrigger: import("styled-components").StyledComponent<"button", import("styled-components").DefaultTheme, {}, never>;
11
15
  export declare const FilterTag: import("styled-components").StyledComponent<"span", import("styled-components").DefaultTheme, FilterTagProps, never>;
12
16
  export declare const FilterTagButton: import("styled-components").StyledComponent<"button", import("styled-components").DefaultTheme, FilterTagProps, never>;
@@ -13,6 +13,9 @@ type FilterSelectInputProps = {
13
13
  size?: FilterSize;
14
14
  variant?: FilterVariant;
15
15
  searchPlaceholder?: string;
16
+ noResultsMessage?: string;
17
+ disabled?: boolean;
18
+ error?: boolean;
16
19
  };
17
- export declare const FilterSelectInput: ({ value, options, selectedIndex, selectOptions, onChange, onSelectChange, size, variant, searchPlaceholder, }: FilterSelectInputProps) => JSX.Element;
20
+ export declare const FilterSelectInput: ({ value, options, selectedIndex, selectOptions, onChange, onSelectChange, size, variant, searchPlaceholder, noResultsMessage, disabled, error, }: FilterSelectInputProps) => JSX.Element;
18
21
  export {};
@@ -1,42 +1,6 @@
1
- import React from "react";
2
- import { StoryObj } from "@storybook/react";
3
- declare const meta: {
4
- title: string;
5
- component: ({ value, options, selectedIndex, selectOptions, onChange, onSelectChange, size, variant, searchPlaceholder, }: {
6
- value: string;
7
- options: string[];
8
- selectedIndex: number;
9
- selectOptions: {
10
- icon: React.ReactElement<any, string | React.JSXElementConstructor<any>>;
11
- label: string;
12
- }[];
13
- onChange: (value: string) => void;
14
- onSelectChange: (index: number) => void;
15
- size?: import("../FilterInputAbstract/types").FilterSize | undefined;
16
- variant?: import("../FilterInputAbstract/types").FilterVariant | undefined;
17
- searchPlaceholder?: string | undefined;
18
- }) => JSX.Element;
19
- argTypes: {
20
- size: {
21
- control: {
22
- type: string;
23
- };
24
- options: string[];
25
- };
26
- variant: {
27
- control: {
28
- type: string;
29
- };
30
- options: string[];
31
- };
32
- searchPlaceholder: {
33
- control: {
34
- type: string;
35
- };
36
- description: string;
37
- };
38
- };
39
- };
1
+ import { Meta, StoryObj } from "@storybook/react";
2
+ import { FilterSelectInput } from "./index";
3
+ declare const meta: Meta<typeof FilterSelectInput>;
40
4
  export default meta;
41
5
  /**
42
6
  * 入力内容をリストから選択させるフィルターの入力です。
@@ -55,7 +19,7 @@ export declare const Default: StoryObj<typeof meta>;
55
19
  export declare const Sizes: StoryObj<typeof meta>;
56
20
  export declare const Variants: StoryObj<typeof meta>;
57
21
  /**
58
- * 検索窓のプレースホルダーをカスタマイズできます。
59
- * デフォルトは「絞り込む」です。
22
+ * 無効化状態のサンプル
60
23
  */
61
- export declare const SearchPlaceholder: StoryObj<typeof meta>;
24
+ export declare const Disabled: StoryObj<typeof meta>;
25
+ export declare const Error: StoryObj<typeof meta>;
@@ -9,12 +9,14 @@ type FilterTagInputProps = {
9
9
  icon: ReactElement;
10
10
  label: string;
11
11
  }[];
12
- onChange: (values: string[]) => void;
12
+ onChange: (values: string[], selectedIndex: number) => void;
13
13
  onSelectChange: (index: number) => void;
14
14
  size?: FilterSize;
15
15
  variant?: "light" | "dark";
16
16
  tagVariant?: "light" | "dark";
17
17
  menuIconSize?: IconSize | number;
18
+ disabled?: boolean;
19
+ error?: boolean;
18
20
  };
19
- export declare const FilterTagInput: ({ title, values, selectedIndex, selectOptions, onChange, onSelectChange, size, variant, tagVariant, menuIconSize, }: FilterTagInputProps) => JSX.Element;
21
+ export declare const FilterTagInput: ({ title, values, selectedIndex, selectOptions, onChange, onSelectChange, size, variant, tagVariant, menuIconSize, disabled, error, }: FilterTagInputProps) => JSX.Element;
20
22
  export {};
@@ -1,43 +1,6 @@
1
- import React from "react";
2
- import { StoryObj } from "@storybook/react";
3
- declare const meta: {
4
- title: string;
5
- component: ({ title, values, selectedIndex, selectOptions, onChange, onSelectChange, size, variant, tagVariant, menuIconSize, }: {
6
- title: string;
7
- values: string[];
8
- selectedIndex: number;
9
- selectOptions: {
10
- icon: React.ReactElement<any, string | React.JSXElementConstructor<any>>;
11
- label: string;
12
- }[];
13
- onChange: (values: string[]) => void;
14
- onSelectChange: (index: number) => void;
15
- size?: import("../FilterInputAbstract/types").FilterSize | undefined;
16
- variant?: "dark" | "light" | undefined;
17
- tagVariant?: "dark" | "light" | undefined;
18
- menuIconSize?: number | import("../Icon").IconSize | undefined;
19
- }) => JSX.Element;
20
- argTypes: {
21
- size: {
22
- control: {
23
- type: string;
24
- };
25
- options: string[];
26
- };
27
- variant: {
28
- control: {
29
- type: string;
30
- };
31
- options: string[];
32
- };
33
- tagVariant: {
34
- control: {
35
- type: string;
36
- };
37
- options: string[];
38
- };
39
- };
40
- };
1
+ import { Meta, StoryObj } from "@storybook/react";
2
+ import { FilterTagInput } from "./index";
3
+ declare const meta: Meta<typeof FilterTagInput>;
41
4
  export default meta;
42
5
  /**
43
6
  * 入力内容がタグ形式で表示される。<br />
@@ -80,3 +43,5 @@ export default meta;
80
43
  export declare const Default: StoryObj<typeof meta>;
81
44
  export declare const Sizes: StoryObj<typeof meta>;
82
45
  export declare const Variants: StoryObj<typeof meta>;
46
+ export declare const Disabled: StoryObj<typeof meta>;
47
+ export declare const Error: StoryObj<typeof meta>;
@@ -0,0 +1,26 @@
1
+ import React from "react";
2
+ import { Select2Size, Select2Variant } from "./types";
3
+ import { TagVariant } from "../Tag/types";
4
+ type Select2Option = {
5
+ value: string | number;
6
+ label: string;
7
+ disabled?: boolean;
8
+ };
9
+ type Select2Props = {
10
+ value: (string | number) | (string | number)[];
11
+ onChange: (value: (string | number) | (string | number)[]) => void;
12
+ options: Select2Option[];
13
+ multiple?: boolean;
14
+ disabled?: boolean;
15
+ placeholder?: string;
16
+ size?: Select2Size;
17
+ variant?: Select2Variant;
18
+ tagVariant?: TagVariant;
19
+ searchPlaceholder?: string;
20
+ noResultsMessage?: string;
21
+ error?: boolean;
22
+ applyButtonText?: string;
23
+ cancelButtonText?: string;
24
+ };
25
+ export declare const Select2: React.FC<Select2Props>;
26
+ export {};
@@ -0,0 +1,2 @@
1
+ export { Select2 } from "./Select2";
2
+ export type { Select2Props, Select2Option, Select2Size, Select2Variant, } from "./types";
@@ -0,0 +1,40 @@
1
+ /// <reference types="react" />
2
+ import { Select2Size, Select2Props } from "./types";
3
+ export declare const Select2Container: import("styled-components").StyledComponent<"div", import("styled-components").DefaultTheme, {}, never>;
4
+ export declare const SelectContainer: import("styled-components").StyledComponent<"div", import("styled-components").DefaultTheme, {
5
+ $size?: Select2Size | undefined;
6
+ $variant?: Select2Props["variant"];
7
+ $disabled?: boolean | undefined;
8
+ $error?: boolean | undefined;
9
+ $isOpen?: boolean | undefined;
10
+ }, never>;
11
+ export declare const SelectButton: import("styled-components").StyledComponent<"button", import("styled-components").DefaultTheme, {
12
+ $size: Select2Size;
13
+ $variant?: Select2Props["variant"];
14
+ $error?: boolean | undefined;
15
+ $disabled?: boolean | undefined;
16
+ $isOpen?: boolean | undefined;
17
+ $hasValue?: boolean | undefined;
18
+ $multiple?: boolean | undefined;
19
+ }, never>;
20
+ export declare const InputArea: import("styled-components").StyledComponent<"div", import("styled-components").DefaultTheme, {
21
+ $size?: Select2Size | undefined;
22
+ $variant?: Select2Props["variant"];
23
+ $disabled?: boolean | undefined;
24
+ $multiple?: boolean | undefined;
25
+ }, never>;
26
+ export declare const SelectLabel: import("styled-components").StyledComponent<"span", import("styled-components").DefaultTheme, {}, never>;
27
+ export declare const TagContainer: import("styled-components").StyledComponent<"div", import("styled-components").DefaultTheme, {}, never>;
28
+ export declare const StyledTag: import("styled-components").StyledComponent<({ label, size, variant, onRemove, className, disabled, }: import("../Tag").TagProps) => JSX.Element, import("styled-components").DefaultTheme, {}, never>;
29
+ export declare const Placeholder: import("styled-components").StyledComponent<"span", import("styled-components").DefaultTheme, {
30
+ $variant?: Select2Props["variant"];
31
+ $disabled?: boolean | undefined;
32
+ }, never>;
33
+ export declare const IconArea: import("styled-components").StyledComponent<"div", import("styled-components").DefaultTheme, {
34
+ $size?: Select2Size | undefined;
35
+ $disabled?: boolean | undefined;
36
+ }, never>;
37
+ export declare const StyledContextMenu2TextInputItem: import("styled-components").StyledComponent<import("react").ForwardRefExoticComponent<{
38
+ onEnter?: (() => void) | undefined;
39
+ } & import("react").InputHTMLAttributes<HTMLInputElement> & import("react").RefAttributes<HTMLInputElement>>, import("styled-components").DefaultTheme, {}, never>;
40
+ export declare const OptionsContainer: import("styled-components").StyledComponent<"div", import("styled-components").DefaultTheme, {}, never>;
@@ -0,0 +1,107 @@
1
+ import { Theme } from "../../themes";
2
+ export type Select2Size = "small" | "medium" | "large";
3
+ export type Select2Variant = "light" | "dark";
4
+ export type Select2SizeConfig = {
5
+ fontSize: string;
6
+ padding: string;
7
+ iconSize: string;
8
+ borderRadius: string;
9
+ height: string;
10
+ };
11
+ export declare const SELECT2_SIZES: Record<Select2Size, Select2SizeConfig>;
12
+ export type Select2Option = {
13
+ /**
14
+ * 選択肢の値
15
+ */
16
+ value: string | number;
17
+ /**
18
+ * 表示ラベル
19
+ */
20
+ label: string;
21
+ /**
22
+ * 無効状態
23
+ */
24
+ disabled?: boolean;
25
+ };
26
+ export type Select2StyleProps = {
27
+ theme: Theme;
28
+ $size: Select2Size;
29
+ $variant: Select2Variant;
30
+ $disabled?: boolean;
31
+ $error?: boolean;
32
+ $isOpen?: boolean;
33
+ $hasValue?: boolean;
34
+ };
35
+ export type Select2Props = {
36
+ /**
37
+ * 選択肢の配列
38
+ */
39
+ options: Select2Option[];
40
+ /**
41
+ * 選択された値。multipleがtrueの場合は配列、falseの場合は単一の値
42
+ */
43
+ value?: string | number | (string | number)[];
44
+ /**
45
+ * 値が変更された時のコールバック
46
+ */
47
+ onChange?: ((value: string | number) => void) | ((values: (string | number)[]) => void);
48
+ /**
49
+ * 複数選択モード
50
+ * @default false
51
+ */
52
+ multiple?: boolean;
53
+ /**
54
+ * コンポーネントのサイズ
55
+ * @default "medium"
56
+ */
57
+ size?: Select2Size;
58
+ /**
59
+ * コンポーネントのバリアント
60
+ * @default "light"
61
+ */
62
+ variant?: Select2Variant;
63
+ /**
64
+ * タグのバリアント(複数選択時)
65
+ * @default 指定がない場合、Select2のvariantに応じて自動的に決定されます。
66
+ * variant="light"の場合はdark、variant="dark"の場合はlightが適用されます。
67
+ */
68
+ tagVariant?: Select2Variant;
69
+ /**
70
+ * 無効状態
71
+ * @default false
72
+ */
73
+ disabled?: boolean;
74
+ /**
75
+ * プレースホルダー
76
+ * @default "選択してください"
77
+ */
78
+ placeholder?: string;
79
+ /**
80
+ * 検索入力のプレースホルダー
81
+ * @default "検索"
82
+ */
83
+ searchPlaceholder?: string;
84
+ /**
85
+ * 検索結果がない場合のメッセージ
86
+ * @default "オプションがありません"
87
+ */
88
+ noResultsMessage?: string;
89
+ /**
90
+ * エラー状態
91
+ * @default false
92
+ *
93
+ * 注意: エラーメッセージの表示はコンポーネント側では行われません。
94
+ * エラーメッセージはプロダクト側で実装してください。
95
+ */
96
+ error?: boolean;
97
+ /**
98
+ * 適用ボタンのテキスト (multipleがtrueの場合のみ使用)
99
+ * @default "適用"
100
+ */
101
+ applyButtonText?: string;
102
+ /**
103
+ * キャンセルボタンのテキスト (multipleがtrueの場合のみ使用)
104
+ * @default "キャンセル"
105
+ */
106
+ cancelButtonText?: string;
107
+ };