@lumx/core 4.14.0-next.0 → 4.14.0-next.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/js/components/AlertDialog/Stories.d.ts +115 -0
- package/js/components/AlertDialog/index.d.ts +91 -0
- package/js/components/Avatar/Stories.d.ts +52 -0
- package/js/components/Avatar/index.d.ts +50 -0
- package/js/components/Badge/BadgeWrapper.d.ts +13 -0
- package/js/components/Badge/BadgeWrapperStories.d.ts +29 -0
- package/js/components/Badge/Stories.d.ts +46 -0
- package/js/components/Badge/index.d.ts +37 -0
- package/js/components/Button/ButtonGroup.d.ts +36 -0
- package/js/components/Button/ButtonGroupStories.d.ts +33 -0
- package/js/components/Button/IconButtonStories.d.ts +210 -0
- package/js/components/Button/Stories.d.ts +302 -0
- package/js/components/Checkbox/Stories.d.ts +89 -0
- package/js/components/Chip/ChipGroupStories.d.ts +17 -0
- package/js/components/Chip/SelectionChipGroupStories.d.ts +54 -0
- package/js/components/Chip/Stories.d.ts +127 -0
- package/js/components/Combobox/ComboboxOptionTests.d.ts +24 -0
- package/js/components/Combobox/Stories.d.ts +167 -0
- package/js/components/Combobox/TestStories.d.ts +143 -0
- package/js/components/Combobox/Tests.d.ts +168 -0
- package/js/components/Dialog/Stories.d.ts +97 -0
- package/js/components/Dialog/index.d.ts +99 -0
- package/js/components/Divider/Stories.d.ts +21 -0
- package/js/components/DragHandle/Stories.d.ts +18 -0
- package/js/components/ExpansionPanel/Stories.d.ts +67 -0
- package/js/components/Flag/Stories.d.ts +120 -0
- package/js/components/FlexBox/Stories.d.ts +116 -0
- package/js/components/FlexBox/constants.d.ts +3 -3
- package/js/components/GenericBlock/Stories.d.ts +74 -0
- package/js/components/GenericBlock/constants.d.ts +1 -1
- package/js/components/GenericBlock/index.d.ts +85 -0
- package/js/components/GridColumn/GridColumnStories.d.ts +45 -0
- package/js/components/GridColumn/index.d.ts +2 -0
- package/js/components/Heading/Stories.d.ts +90 -0
- package/js/components/Icon/Stories.d.ts +156 -0
- package/js/components/ImageBlock/Stories.d.ts +187 -0
- package/js/components/InlineList/Stories.d.ts +64 -0
- package/js/components/InlineList/index.d.ts +53 -0
- package/js/components/InputHelper/Stories.d.ts +35 -0
- package/js/components/InputLabel/Stories.d.ts +34 -0
- package/js/components/Lightbox/Stories.d.ts +40 -0
- package/js/components/Lightbox/index.d.ts +68 -0
- package/js/components/Link/Stories.d.ts +282 -0
- package/js/components/Link/index.d.ts +47 -0
- package/js/components/LinkPreview/Stories.d.ts +61 -0
- package/js/components/LinkPreview/index.d.ts +53 -0
- package/js/components/List/ListDivider.d.ts +33 -0
- package/js/components/List/ListDividerStories.d.ts +17 -0
- package/js/components/List/ListItemStories.d.ts +53 -0
- package/js/components/List/ListSection.d.ts +45 -0
- package/js/components/List/ListSectionStories.d.ts +125 -0
- package/js/components/List/ListStories.d.ts +34 -0
- package/js/components/Message/Stories.d.ts +119 -0
- package/js/components/Mosaic/Stories.d.ts +102 -0
- package/js/components/Mosaic/index.d.ts +40 -0
- package/js/components/Popover/Stories.d.ts +139 -0
- package/js/components/Popover/index.d.ts +119 -0
- package/js/components/PopoverDialog/Stories.d.ts +44 -0
- package/js/components/PopoverDialog/index.d.ts +22 -0
- package/js/components/RadioButton/Stories.d.ts +78 -0
- package/js/components/RadioGroup/index.d.ts +34 -0
- package/js/components/SelectButton/Stories.d.ts +135 -0
- package/js/components/SelectButton/TestStories.d.ts +37 -0
- package/js/components/SelectButton/Tests.d.ts +34 -0
- package/js/components/SelectButton/index.d.ts +85 -0
- package/js/components/SelectTextField/Stories.d.ts +192 -0
- package/js/components/SelectTextField/TestStories.d.ts +39 -0
- package/js/components/SelectTextField/Tests.d.ts +38 -0
- package/js/components/SelectTextField/index.d.ts +87 -0
- package/js/components/Skeleton/SkeletonCircleStories.d.ts +43 -0
- package/js/components/Skeleton/SkeletonRectangleStories.d.ts +83 -0
- package/js/components/Skeleton/SkeletonTypographyStories.d.ts +53 -0
- package/js/components/Switch/Stories.d.ts +94 -0
- package/js/components/Table/Stories.d.ts +30 -0
- package/js/components/Table/TableBody.d.ts +25 -0
- package/js/components/Table/TableCellStories.d.ts +47 -0
- package/js/components/Table/TableHeader.d.ts +29 -0
- package/js/components/Table/TableRow.d.ts +35 -0
- package/js/components/Table/TableRowStories.d.ts +23 -0
- package/js/components/Table/index.d.ts +27 -0
- package/js/components/Tabs/Tab.d.ts +70 -0
- package/js/components/Tabs/TabPanel.d.ts +43 -0
- package/js/components/Text/Stories.d.ts +164 -0
- package/js/components/TextField/RawInputText.d.ts +22 -0
- package/js/components/TextField/RawInputTextStories.d.ts +16 -0
- package/js/components/TextField/RawInputTextareaStories.d.ts +21 -0
- package/js/components/TextField/Stories.d.ts +101 -0
- package/js/components/TextField/TextField.d.ts +84 -0
- package/js/components/Thumbnail/Stories.d.ts +178 -0
- package/js/components/Toolbar/Stories.d.ts +29 -0
- package/js/components/Toolbar/index.d.ts +33 -0
- package/js/components/Tooltip/Stories.d.ts +61 -0
- package/js/components/Tooltip/TestStories.d.ts +72 -0
- package/js/components/Tooltip/index.d.ts +65 -0
- package/js/components/Uploader/Stories.d.ts +116 -0
- package/js/components/Uploader/index.d.ts +79 -0
- package/js/components/UserBlock/Stories.d.ts +153 -0
- package/js/components/UserBlock/index.d.ts +145 -0
- package/js/utils/ClickAway/TestStories.d.ts +36 -0
- package/js/utils/InfiniteScroll/TestStories.d.ts +50 -0
- package/js/utils/InfiniteScroll/index.d.ts +21 -0
- package/js/utils/Portal/Stories.d.ts +29 -0
- package/js/utils/action-area/Stories.d.ts +38 -0
- package/js/utils/select/renderSelectOptions.d.ts +7 -0
- package/package.json +2 -2
- package/stories/utils/CombinationsTable.d.ts +26 -0
- package/stories/utils/ThemingVariablesTable.d.ts +29 -0
|
@@ -0,0 +1,85 @@
|
|
|
1
|
+
import type { CommonRef, JSXElement, LumxClassName } from '../../types';
|
|
2
|
+
import { GenericBlockGapSize } from './constants';
|
|
3
|
+
import { FlexBoxProps } from '../FlexBox';
|
|
4
|
+
export interface GenericBlockProps extends FlexBoxProps {
|
|
5
|
+
/**
|
|
6
|
+
* Component to use as visual element.
|
|
7
|
+
*/
|
|
8
|
+
figure?: JSXElement;
|
|
9
|
+
/**
|
|
10
|
+
* Main content.
|
|
11
|
+
*/
|
|
12
|
+
content?: JSXElement;
|
|
13
|
+
/**
|
|
14
|
+
* Actions to set after the main content.
|
|
15
|
+
*/
|
|
16
|
+
actions?: JSXElement;
|
|
17
|
+
/**
|
|
18
|
+
* Orientation of the 3 sections
|
|
19
|
+
*/
|
|
20
|
+
orientation?: FlexBoxProps['orientation'];
|
|
21
|
+
/**
|
|
22
|
+
* Horizontal alignment.
|
|
23
|
+
*/
|
|
24
|
+
horizontalAlign?: FlexBoxProps['hAlign'];
|
|
25
|
+
/**
|
|
26
|
+
* Vertical alignment.
|
|
27
|
+
*/
|
|
28
|
+
verticalAlign?: FlexBoxProps['vAlign'];
|
|
29
|
+
/**
|
|
30
|
+
* The props to forward to the content.
|
|
31
|
+
* By default, the content will have the same alignment as wrapper.
|
|
32
|
+
*/
|
|
33
|
+
contentProps?: Omit<FlexBoxProps, 'children'>;
|
|
34
|
+
/**
|
|
35
|
+
* props to forward to the actions element.
|
|
36
|
+
*/
|
|
37
|
+
actionsProps?: Omit<FlexBoxProps, 'children'>;
|
|
38
|
+
/**
|
|
39
|
+
* props to forward to the figure element.
|
|
40
|
+
*/
|
|
41
|
+
figureProps?: Omit<FlexBoxProps, 'children'>;
|
|
42
|
+
/**
|
|
43
|
+
* FlexBox component
|
|
44
|
+
*/
|
|
45
|
+
FlexBox: (props: FlexBoxProps) => any;
|
|
46
|
+
/**
|
|
47
|
+
* Gap space between sections.
|
|
48
|
+
*/
|
|
49
|
+
gap?: GenericBlockGapSize;
|
|
50
|
+
/**
|
|
51
|
+
* reference to the root element
|
|
52
|
+
*/
|
|
53
|
+
ref?: CommonRef;
|
|
54
|
+
}
|
|
55
|
+
export interface GenericBlockSectionProps extends FlexBoxProps {
|
|
56
|
+
/**
|
|
57
|
+
* Gap space between items.
|
|
58
|
+
*/
|
|
59
|
+
gap?: GenericBlockGapSize;
|
|
60
|
+
}
|
|
61
|
+
export type GenericBlockPropsToOverride = 'FlexBox' | 'content';
|
|
62
|
+
/**
|
|
63
|
+
* Component display name.
|
|
64
|
+
*/
|
|
65
|
+
export declare const COMPONENT_NAME = "GenericBlock";
|
|
66
|
+
/**
|
|
67
|
+
* Component default class name and class prefix.
|
|
68
|
+
*/
|
|
69
|
+
export declare const CLASSNAME: LumxClassName<typeof COMPONENT_NAME>;
|
|
70
|
+
/**
|
|
71
|
+
* Component default props.
|
|
72
|
+
*/
|
|
73
|
+
export declare const DEFAULT_PROPS: Partial<GenericBlockProps>;
|
|
74
|
+
/**
|
|
75
|
+
* The GenericBlock is a layout component made of 3 sections that can be
|
|
76
|
+
* displayed either horizontally of vertically with the same gap between each section.
|
|
77
|
+
*
|
|
78
|
+
* The sections are:
|
|
79
|
+
* - `Figure` => A visual element to display before the main content.
|
|
80
|
+
* - `Content` => The main content displayed
|
|
81
|
+
* - `Actions` => One or more actions to set after the element.
|
|
82
|
+
*
|
|
83
|
+
* @see https://www.figma.com/file/lzzrQmsfaXRaOyRfoEogPZ/DS%3A-playground?node-id=1%3A4076
|
|
84
|
+
*/
|
|
85
|
+
export declare const GenericBlock: (props: GenericBlockProps) => import("react").JSX.Element;
|
|
@@ -0,0 +1,45 @@
|
|
|
1
|
+
import type { SetupStoriesOptions } from '@lumx/core/stories/types';
|
|
2
|
+
export declare function setup({ component: GridColumn, }: SetupStoriesOptions<{
|
|
3
|
+
decorators?: never;
|
|
4
|
+
}>): {
|
|
5
|
+
meta: {
|
|
6
|
+
component: any;
|
|
7
|
+
render: ({ nbItems, ...props }: any) => import("react").JSX.Element;
|
|
8
|
+
argTypes: {
|
|
9
|
+
nbItems: {
|
|
10
|
+
control: string;
|
|
11
|
+
};
|
|
12
|
+
gap: {
|
|
13
|
+
control: {
|
|
14
|
+
type: "select" | "inline-radio";
|
|
15
|
+
};
|
|
16
|
+
options: (import("./GridColumn").GridColumnGapSize | undefined)[];
|
|
17
|
+
mapping: Record<string, import("./GridColumn").GridColumnGapSize | undefined> | undefined;
|
|
18
|
+
};
|
|
19
|
+
itemMinWidth: {
|
|
20
|
+
control: string;
|
|
21
|
+
};
|
|
22
|
+
maxColumns: {
|
|
23
|
+
control: string;
|
|
24
|
+
};
|
|
25
|
+
};
|
|
26
|
+
args: {
|
|
27
|
+
nbItems: number;
|
|
28
|
+
as?: any;
|
|
29
|
+
children?: import("react").ReactNode;
|
|
30
|
+
gap?: import("./GridColumn").GridColumnGapSize | undefined;
|
|
31
|
+
maxColumns?: number | undefined;
|
|
32
|
+
itemMinWidth?: number | undefined;
|
|
33
|
+
style?: any;
|
|
34
|
+
ref?: import("../../types").CommonRef;
|
|
35
|
+
className?: string | undefined;
|
|
36
|
+
};
|
|
37
|
+
};
|
|
38
|
+
Default: {};
|
|
39
|
+
Columns: {
|
|
40
|
+
args: {
|
|
41
|
+
maxColumns: number;
|
|
42
|
+
itemMinWidth: number;
|
|
43
|
+
};
|
|
44
|
+
};
|
|
45
|
+
};
|
|
@@ -0,0 +1,90 @@
|
|
|
1
|
+
import type { SetupStoriesOptions } from '@lumx/core/stories/types';
|
|
2
|
+
/**
|
|
3
|
+
* Setup Heading stories for a specific framework (React or Vue).
|
|
4
|
+
* Framework-specific components (HeadingLevelProvider) are injected via `components`.
|
|
5
|
+
*/
|
|
6
|
+
export declare function setup({ component: Heading, components: { HeadingLevelProvider }, decorators: { withCombinations }, }: SetupStoriesOptions<{
|
|
7
|
+
decorators: 'withCombinations';
|
|
8
|
+
components: {
|
|
9
|
+
HeadingLevelProvider: any;
|
|
10
|
+
};
|
|
11
|
+
}>): {
|
|
12
|
+
meta: {
|
|
13
|
+
component: any;
|
|
14
|
+
render: ({ children, ...args }: any) => import("react").JSX.Element;
|
|
15
|
+
argTypes: {
|
|
16
|
+
as: {
|
|
17
|
+
control: {
|
|
18
|
+
type: "select" | "inline-radio";
|
|
19
|
+
};
|
|
20
|
+
options: import("../../types").HeadingElement[];
|
|
21
|
+
mapping: Record<string, import("../../types").HeadingElement> | undefined;
|
|
22
|
+
};
|
|
23
|
+
children: {
|
|
24
|
+
control: string;
|
|
25
|
+
};
|
|
26
|
+
typography: {
|
|
27
|
+
control: {
|
|
28
|
+
type: "select" | "inline-radio";
|
|
29
|
+
};
|
|
30
|
+
options: ("caption" | "title" | "overline" | "body1" | "body2" | "subtitle1" | "subtitle2" | "headline" | "display1" | "custom-title1" | "custom-title2" | "custom-title3" | "custom-title4" | "custom-title5" | "custom-title6" | "custom-intro" | "custom-body-large" | "custom-body" | "custom-quote" | "custom-publish-info" | "custom-button")[];
|
|
31
|
+
mapping: Record<string, "caption" | "title" | "overline" | "body1" | "body2" | "subtitle1" | "subtitle2" | "headline" | "display1" | "custom-title1" | "custom-title2" | "custom-title3" | "custom-title4" | "custom-title5" | "custom-title6" | "custom-intro" | "custom-body-large" | "custom-body" | "custom-quote" | "custom-publish-info" | "custom-button"> | undefined;
|
|
32
|
+
};
|
|
33
|
+
color: {
|
|
34
|
+
control: {
|
|
35
|
+
type: "select" | "inline-radio";
|
|
36
|
+
};
|
|
37
|
+
options: ("light" | "dark" | "primary" | "secondary" | "blue" | "green" | "yellow" | "red" | "grey" | undefined)[];
|
|
38
|
+
mapping: Record<string, "light" | "dark" | "primary" | "secondary" | "blue" | "green" | "yellow" | "red" | "grey" | undefined> | undefined;
|
|
39
|
+
};
|
|
40
|
+
colorVariant: {
|
|
41
|
+
control: {
|
|
42
|
+
type: "select" | "inline-radio";
|
|
43
|
+
};
|
|
44
|
+
options: ("D1" | "D2" | "L1" | "L2" | "L3" | "L4" | "L5" | "L6" | "N")[];
|
|
45
|
+
mapping: Record<string, "D1" | "D2" | "L1" | "L2" | "L3" | "L4" | "L5" | "L6" | "N"> | undefined;
|
|
46
|
+
};
|
|
47
|
+
whiteSpace: {
|
|
48
|
+
control: {
|
|
49
|
+
type: "select" | "inline-radio";
|
|
50
|
+
};
|
|
51
|
+
options: string[];
|
|
52
|
+
mapping: Record<string, string> | undefined;
|
|
53
|
+
};
|
|
54
|
+
};
|
|
55
|
+
};
|
|
56
|
+
/** Default heading with text */
|
|
57
|
+
Default: {
|
|
58
|
+
args: {
|
|
59
|
+
children: string;
|
|
60
|
+
};
|
|
61
|
+
};
|
|
62
|
+
/** All supported heading elements */
|
|
63
|
+
AllLevels: {
|
|
64
|
+
args: {
|
|
65
|
+
children: string;
|
|
66
|
+
};
|
|
67
|
+
argTypes: {
|
|
68
|
+
as: {
|
|
69
|
+
control: boolean;
|
|
70
|
+
};
|
|
71
|
+
};
|
|
72
|
+
decorators: ((story: any, context: any) => any)[];
|
|
73
|
+
};
|
|
74
|
+
/** All typography */
|
|
75
|
+
AllTypography: {
|
|
76
|
+
args: {
|
|
77
|
+
children: string;
|
|
78
|
+
};
|
|
79
|
+
argTypes: {
|
|
80
|
+
typography: {
|
|
81
|
+
control: boolean;
|
|
82
|
+
};
|
|
83
|
+
};
|
|
84
|
+
decorators: ((story: any, context: any) => any)[];
|
|
85
|
+
};
|
|
86
|
+
/** Nest HeadingLevelProvider to increment heading levels */
|
|
87
|
+
NestedHeadingLevelProvider: {
|
|
88
|
+
render: () => import("react").JSX.Element;
|
|
89
|
+
};
|
|
90
|
+
};
|
|
@@ -0,0 +1,156 @@
|
|
|
1
|
+
import type { SetupStoriesOptions } from '@lumx/core/stories/types';
|
|
2
|
+
/**
|
|
3
|
+
* Setup Icon stories for a specific framework (React or Vue).
|
|
4
|
+
* Framework-specific components (Text) are injected via `components`.
|
|
5
|
+
*/
|
|
6
|
+
export declare function setup({ component: Icon, components: { Text, GridColumn }, decorators: { withCombinations, withWrapper }, }: SetupStoriesOptions<{
|
|
7
|
+
decorators: 'withCombinations' | 'withWrapper';
|
|
8
|
+
components: {
|
|
9
|
+
Text: any;
|
|
10
|
+
GridColumn: any;
|
|
11
|
+
};
|
|
12
|
+
}>): {
|
|
13
|
+
meta: {
|
|
14
|
+
component: any;
|
|
15
|
+
argTypes: {
|
|
16
|
+
icon: {
|
|
17
|
+
control: {
|
|
18
|
+
type: string;
|
|
19
|
+
};
|
|
20
|
+
options: {
|
|
21
|
+
undefined: undefined;
|
|
22
|
+
mdiAbTesting: string;
|
|
23
|
+
mdiAbjadArabic: string;
|
|
24
|
+
mdiAccount: string;
|
|
25
|
+
mdiAccountBox: string;
|
|
26
|
+
mdiAlert: string;
|
|
27
|
+
mdiAlertCircle: string;
|
|
28
|
+
mdiArrowDown: string;
|
|
29
|
+
mdiArrowUp: string;
|
|
30
|
+
mdiAtom: string;
|
|
31
|
+
mdiBee: string;
|
|
32
|
+
mdiBell: string;
|
|
33
|
+
mdiBullhornOutline: string;
|
|
34
|
+
mdiCheck: string;
|
|
35
|
+
mdiCheckCircle: string;
|
|
36
|
+
mdiChevronDown: string;
|
|
37
|
+
mdiChevronLeft: string;
|
|
38
|
+
mdiChevronRight: string;
|
|
39
|
+
mdiChevronUp: string;
|
|
40
|
+
mdiClose: string;
|
|
41
|
+
mdiCloseCircle: string;
|
|
42
|
+
mdiDelete: string;
|
|
43
|
+
mdiDotsHorizontal: string;
|
|
44
|
+
mdiDragVertical: string;
|
|
45
|
+
mdiEarth: string;
|
|
46
|
+
mdiEmail: string;
|
|
47
|
+
mdiEye: string;
|
|
48
|
+
mdiFileEdit: string;
|
|
49
|
+
mdiFlag: string;
|
|
50
|
+
mdiFolder: string;
|
|
51
|
+
mdiFolderGoogleDrive: string;
|
|
52
|
+
mdiFoodApple: string;
|
|
53
|
+
mdiGoogleCirclesExtended: string;
|
|
54
|
+
mdiHeart: string;
|
|
55
|
+
mdiHome: string;
|
|
56
|
+
mdiImageBroken: string;
|
|
57
|
+
mdiInformation: string;
|
|
58
|
+
mdiLink: string;
|
|
59
|
+
mdiMagnifyMinusOutline: string;
|
|
60
|
+
mdiMagnifyPlusOutline: string;
|
|
61
|
+
mdiMenuDown: string;
|
|
62
|
+
mdiMessageTextOutline: string;
|
|
63
|
+
mdiMinus: string;
|
|
64
|
+
mdiOpenInNew: string;
|
|
65
|
+
mdiPauseCircleOutline: string;
|
|
66
|
+
mdiPencil: string;
|
|
67
|
+
mdiPlay: string;
|
|
68
|
+
mdiPlayCircleOutline: string;
|
|
69
|
+
mdiPlus: string;
|
|
70
|
+
mdiRadioboxBlank: string;
|
|
71
|
+
mdiRadioboxMarked: string;
|
|
72
|
+
mdiReply: string;
|
|
73
|
+
mdiSend: string;
|
|
74
|
+
mdiStar: string;
|
|
75
|
+
mdiTextBox: string;
|
|
76
|
+
mdiTextBoxPlus: string;
|
|
77
|
+
mdiTram: string;
|
|
78
|
+
mdiTranslate: string;
|
|
79
|
+
mdiViewList: string;
|
|
80
|
+
};
|
|
81
|
+
};
|
|
82
|
+
hasShape: {
|
|
83
|
+
control: string;
|
|
84
|
+
};
|
|
85
|
+
size: {
|
|
86
|
+
control: {
|
|
87
|
+
type: "select" | "inline-radio";
|
|
88
|
+
};
|
|
89
|
+
options: ("s" | "xxs" | "xs" | "m" | "l" | "xl" | "xxl")[];
|
|
90
|
+
mapping: Record<string, "s" | "xxs" | "xs" | "m" | "l" | "xl" | "xxl"> | undefined;
|
|
91
|
+
};
|
|
92
|
+
color: {
|
|
93
|
+
control: {
|
|
94
|
+
type: "select" | "inline-radio";
|
|
95
|
+
};
|
|
96
|
+
options: ("light" | "dark" | "primary" | "secondary" | "blue" | "green" | "yellow" | "red" | "grey" | undefined)[];
|
|
97
|
+
mapping: Record<string, "light" | "dark" | "primary" | "secondary" | "blue" | "green" | "yellow" | "red" | "grey" | undefined> | undefined;
|
|
98
|
+
};
|
|
99
|
+
colorVariant: {
|
|
100
|
+
control: {
|
|
101
|
+
type: "select" | "inline-radio";
|
|
102
|
+
};
|
|
103
|
+
options: ("D1" | "D2" | "L1" | "L2" | "L3" | "L4" | "L5" | "L6" | "N")[];
|
|
104
|
+
mapping: Record<string, "D1" | "D2" | "L1" | "L2" | "L3" | "L4" | "L5" | "L6" | "N"> | undefined;
|
|
105
|
+
};
|
|
106
|
+
};
|
|
107
|
+
};
|
|
108
|
+
/** All combinations of size and shape */
|
|
109
|
+
SizeAndShape: {
|
|
110
|
+
args: {
|
|
111
|
+
icon: string;
|
|
112
|
+
};
|
|
113
|
+
argTypes: {
|
|
114
|
+
hasShape: {
|
|
115
|
+
control: boolean;
|
|
116
|
+
};
|
|
117
|
+
size: {
|
|
118
|
+
control: boolean;
|
|
119
|
+
};
|
|
120
|
+
};
|
|
121
|
+
decorators: ((story: any, context: any) => any)[];
|
|
122
|
+
};
|
|
123
|
+
/** All combinations of color and color variants */
|
|
124
|
+
AllColors: {
|
|
125
|
+
args: {
|
|
126
|
+
size: "m";
|
|
127
|
+
icon: string;
|
|
128
|
+
};
|
|
129
|
+
argTypes: {
|
|
130
|
+
hasShape: {
|
|
131
|
+
control: boolean;
|
|
132
|
+
};
|
|
133
|
+
color: {
|
|
134
|
+
control: boolean;
|
|
135
|
+
};
|
|
136
|
+
colorVariant: {
|
|
137
|
+
control: boolean;
|
|
138
|
+
};
|
|
139
|
+
};
|
|
140
|
+
decorators: ((story: any, context: any) => any)[];
|
|
141
|
+
};
|
|
142
|
+
/** Icon inside a text component (renders as inline instead of block and can adapt to the verticalAlign) */
|
|
143
|
+
InsideText: {
|
|
144
|
+
args: {
|
|
145
|
+
icon: string;
|
|
146
|
+
size: string;
|
|
147
|
+
};
|
|
148
|
+
argTypes: {
|
|
149
|
+
verticalAlign: {
|
|
150
|
+
control: string;
|
|
151
|
+
options: (string | undefined)[];
|
|
152
|
+
};
|
|
153
|
+
};
|
|
154
|
+
render: (args: any) => import("react").JSX.Element;
|
|
155
|
+
};
|
|
156
|
+
};
|
|
@@ -0,0 +1,187 @@
|
|
|
1
|
+
import type { SetupStoriesOptions } from '@lumx/core/stories/types';
|
|
2
|
+
import { ImageBlockCaptionPosition } from '.';
|
|
3
|
+
export declare function setup({ component: ImageBlock, components: { Chip, ChipGroup, IconButton }, decorators: { withNestedProps, withWrapper }, }: SetupStoriesOptions<{
|
|
4
|
+
decorators: 'withNestedProps' | 'withWrapper';
|
|
5
|
+
components: {
|
|
6
|
+
Chip: any;
|
|
7
|
+
ChipGroup: any;
|
|
8
|
+
IconButton: any;
|
|
9
|
+
};
|
|
10
|
+
}>): {
|
|
11
|
+
meta: {
|
|
12
|
+
component: any;
|
|
13
|
+
argTypes: {
|
|
14
|
+
size: {
|
|
15
|
+
control: {
|
|
16
|
+
type: "select" | "inline-radio";
|
|
17
|
+
};
|
|
18
|
+
options: ("xl" | "xxl")[];
|
|
19
|
+
mapping: Record<string, "xl" | "xxl"> | undefined;
|
|
20
|
+
};
|
|
21
|
+
image: {
|
|
22
|
+
control: {
|
|
23
|
+
type: "select" | "inline-radio";
|
|
24
|
+
};
|
|
25
|
+
options: string[];
|
|
26
|
+
mapping: Record<string, string> | undefined;
|
|
27
|
+
};
|
|
28
|
+
captionPosition: {
|
|
29
|
+
control: {
|
|
30
|
+
type: "select" | "inline-radio";
|
|
31
|
+
};
|
|
32
|
+
options: ("below" | "over")[];
|
|
33
|
+
mapping: Record<string, "below" | "over"> | undefined;
|
|
34
|
+
};
|
|
35
|
+
'thumbnailProps.aspectRatio': {
|
|
36
|
+
control: {
|
|
37
|
+
type: "select" | "inline-radio";
|
|
38
|
+
};
|
|
39
|
+
options: ("vertical" | "horizontal" | "original" | "panoramic" | "wide" | "square" | "free")[];
|
|
40
|
+
mapping: Record<string, "vertical" | "horizontal" | "original" | "panoramic" | "wide" | "square" | "free"> | undefined;
|
|
41
|
+
};
|
|
42
|
+
align: {
|
|
43
|
+
control: {
|
|
44
|
+
type: "select" | "inline-radio";
|
|
45
|
+
};
|
|
46
|
+
options: ("center" | "right" | "left")[];
|
|
47
|
+
mapping: Record<string, "center" | "right" | "left"> | undefined;
|
|
48
|
+
};
|
|
49
|
+
tags: {
|
|
50
|
+
control: boolean;
|
|
51
|
+
};
|
|
52
|
+
actions: {
|
|
53
|
+
control: boolean;
|
|
54
|
+
};
|
|
55
|
+
};
|
|
56
|
+
args: {
|
|
57
|
+
image: string;
|
|
58
|
+
actions?: import("react").ReactNode;
|
|
59
|
+
align?: import("../../constants").HorizontalAlignment | undefined;
|
|
60
|
+
alt?: string | undefined;
|
|
61
|
+
captionPosition?: ImageBlockCaptionPosition | undefined;
|
|
62
|
+
fillHeight?: boolean | undefined;
|
|
63
|
+
size?: import(".").ImageBlockSize | undefined;
|
|
64
|
+
thumbnailProps?: import("../../types").GenericProps | undefined;
|
|
65
|
+
ref?: import("../../types").CommonRef;
|
|
66
|
+
Thumbnail?: any;
|
|
67
|
+
ImageCaption?: any;
|
|
68
|
+
className?: string | undefined;
|
|
69
|
+
theme?: import("../../constants").Theme | undefined;
|
|
70
|
+
title?: string | undefined;
|
|
71
|
+
description?: import("react").ReactNode | {
|
|
72
|
+
__html: string;
|
|
73
|
+
};
|
|
74
|
+
titleProps?: import("../../types").GenericProps | undefined;
|
|
75
|
+
descriptionProps?: import("../../types").GenericProps | undefined;
|
|
76
|
+
tags?: import("react").ReactNode;
|
|
77
|
+
captionStyle?: import("../../types").GenericProps | undefined;
|
|
78
|
+
};
|
|
79
|
+
decorators: ((story: any, context: any) => any)[];
|
|
80
|
+
};
|
|
81
|
+
WithCaptionBelow: {
|
|
82
|
+
args: {
|
|
83
|
+
captionPosition: "below";
|
|
84
|
+
size: "xxl";
|
|
85
|
+
title: string;
|
|
86
|
+
description: string;
|
|
87
|
+
};
|
|
88
|
+
};
|
|
89
|
+
WithCaptionOver: {
|
|
90
|
+
args: {
|
|
91
|
+
captionPosition: "over";
|
|
92
|
+
size: "xxl";
|
|
93
|
+
title: string;
|
|
94
|
+
description: string;
|
|
95
|
+
};
|
|
96
|
+
};
|
|
97
|
+
WithAlign: {
|
|
98
|
+
args: {
|
|
99
|
+
image: string;
|
|
100
|
+
size: undefined;
|
|
101
|
+
align: "center";
|
|
102
|
+
captionPosition: "below";
|
|
103
|
+
title: string;
|
|
104
|
+
description: string;
|
|
105
|
+
};
|
|
106
|
+
};
|
|
107
|
+
WithTags: {
|
|
108
|
+
render: ({ tags, ...args }: any) => import("react").JSX.Element;
|
|
109
|
+
args: {
|
|
110
|
+
size: "xxl";
|
|
111
|
+
};
|
|
112
|
+
};
|
|
113
|
+
WithActions: {
|
|
114
|
+
render: ({ actions, ...args }: any) => import("react").JSX.Element;
|
|
115
|
+
args: {
|
|
116
|
+
size: "xxl";
|
|
117
|
+
};
|
|
118
|
+
};
|
|
119
|
+
WithFocusPointHorizontal: {
|
|
120
|
+
args: {
|
|
121
|
+
size: "xxl";
|
|
122
|
+
'thumbnailProps.aspectRatio': "vertical";
|
|
123
|
+
'thumbnailProps.focusPoint.x': number;
|
|
124
|
+
'thumbnailProps.focusPoint.y': number;
|
|
125
|
+
};
|
|
126
|
+
argTypes: {
|
|
127
|
+
'thumbnailProps.focusPoint.x': {
|
|
128
|
+
control: {
|
|
129
|
+
type: string;
|
|
130
|
+
min: number;
|
|
131
|
+
max: number;
|
|
132
|
+
step: number;
|
|
133
|
+
};
|
|
134
|
+
};
|
|
135
|
+
'thumbnailProps.focusPoint.y': {
|
|
136
|
+
control: {
|
|
137
|
+
type: string;
|
|
138
|
+
min: number;
|
|
139
|
+
max: number;
|
|
140
|
+
step: number;
|
|
141
|
+
};
|
|
142
|
+
};
|
|
143
|
+
};
|
|
144
|
+
};
|
|
145
|
+
WithFocusPointVertical: {
|
|
146
|
+
args: {
|
|
147
|
+
size: "xxl";
|
|
148
|
+
image: string;
|
|
149
|
+
'thumbnailProps.aspectRatio': "horizontal";
|
|
150
|
+
'thumbnailProps.focusPoint.x': number;
|
|
151
|
+
'thumbnailProps.focusPoint.y': number;
|
|
152
|
+
};
|
|
153
|
+
argTypes: {
|
|
154
|
+
'thumbnailProps.focusPoint.x': {
|
|
155
|
+
control: {
|
|
156
|
+
type: string;
|
|
157
|
+
min: number;
|
|
158
|
+
max: number;
|
|
159
|
+
step: number;
|
|
160
|
+
};
|
|
161
|
+
};
|
|
162
|
+
'thumbnailProps.focusPoint.y': {
|
|
163
|
+
control: {
|
|
164
|
+
type: string;
|
|
165
|
+
min: number;
|
|
166
|
+
max: number;
|
|
167
|
+
step: number;
|
|
168
|
+
};
|
|
169
|
+
};
|
|
170
|
+
};
|
|
171
|
+
};
|
|
172
|
+
FullFeatured: {
|
|
173
|
+
render: ({ tags, actions, ...args }: any) => import("react").JSX.Element;
|
|
174
|
+
args: {
|
|
175
|
+
image: string;
|
|
176
|
+
size: undefined;
|
|
177
|
+
align: "center";
|
|
178
|
+
captionPosition: "below";
|
|
179
|
+
title: string;
|
|
180
|
+
description: string;
|
|
181
|
+
'thumbnailProps.aspectRatio': "horizontal";
|
|
182
|
+
'thumbnailProps.focusPoint.x': number;
|
|
183
|
+
'thumbnailProps.focusPoint.y': number;
|
|
184
|
+
};
|
|
185
|
+
decorators: ((story: any, context: any) => any)[];
|
|
186
|
+
};
|
|
187
|
+
};
|
|
@@ -0,0 +1,64 @@
|
|
|
1
|
+
import type { SetupStoriesOptions } from '@lumx/core/stories/types';
|
|
2
|
+
/**
|
|
3
|
+
* Setup InlineList stories for a specific framework (React or Vue).
|
|
4
|
+
* Framework-specific components (Text, Icon) are injected via `components`.
|
|
5
|
+
*/
|
|
6
|
+
export declare function setup({ component: InlineList, components: { Text, Icon }, decorators: { withResizableBox }, }: SetupStoriesOptions<{
|
|
7
|
+
decorators: 'withResizableBox';
|
|
8
|
+
components: {
|
|
9
|
+
Text: any;
|
|
10
|
+
Icon: any;
|
|
11
|
+
};
|
|
12
|
+
}>): {
|
|
13
|
+
meta: {
|
|
14
|
+
component: any;
|
|
15
|
+
argTypes: {
|
|
16
|
+
typography: {
|
|
17
|
+
control: {
|
|
18
|
+
type: "select" | "inline-radio";
|
|
19
|
+
};
|
|
20
|
+
options: ("caption" | "title" | "overline" | "body1" | "body2" | "subtitle1" | "subtitle2" | "headline" | "display1" | "custom-title1" | "custom-title2" | "custom-title3" | "custom-title4" | "custom-title5" | "custom-title6" | "custom-intro" | "custom-body-large" | "custom-body" | "custom-quote" | "custom-publish-info" | "custom-button")[];
|
|
21
|
+
mapping: Record<string, "caption" | "title" | "overline" | "body1" | "body2" | "subtitle1" | "subtitle2" | "headline" | "display1" | "custom-title1" | "custom-title2" | "custom-title3" | "custom-title4" | "custom-title5" | "custom-title6" | "custom-intro" | "custom-body-large" | "custom-body" | "custom-quote" | "custom-publish-info" | "custom-button"> | undefined;
|
|
22
|
+
};
|
|
23
|
+
color: {
|
|
24
|
+
control: {
|
|
25
|
+
type: "select" | "inline-radio";
|
|
26
|
+
};
|
|
27
|
+
options: ("light" | "dark" | "primary" | "secondary" | "blue" | "green" | "yellow" | "red" | "grey" | undefined)[];
|
|
28
|
+
mapping: Record<string, "light" | "dark" | "primary" | "secondary" | "blue" | "green" | "yellow" | "red" | "grey" | undefined> | undefined;
|
|
29
|
+
};
|
|
30
|
+
colorVariant: {
|
|
31
|
+
control: {
|
|
32
|
+
type: "select" | "inline-radio";
|
|
33
|
+
};
|
|
34
|
+
options: ("D1" | "D2" | "L1" | "L2" | "L3" | "L4" | "L5" | "L6" | "N")[];
|
|
35
|
+
mapping: Record<string, "D1" | "D2" | "L1" | "L2" | "L3" | "L4" | "L5" | "L6" | "N"> | undefined;
|
|
36
|
+
};
|
|
37
|
+
children: {
|
|
38
|
+
control: boolean;
|
|
39
|
+
};
|
|
40
|
+
};
|
|
41
|
+
};
|
|
42
|
+
WithElements: {
|
|
43
|
+
render: (args: any) => import("react").JSX.Element;
|
|
44
|
+
};
|
|
45
|
+
MixedNoWrapAndTruncate: {
|
|
46
|
+
args: {
|
|
47
|
+
typography: string;
|
|
48
|
+
color: string;
|
|
49
|
+
colorVariant: string;
|
|
50
|
+
style: {
|
|
51
|
+
width: string;
|
|
52
|
+
};
|
|
53
|
+
};
|
|
54
|
+
render: ({ children, ...args }: any) => import("react").JSX.Element;
|
|
55
|
+
decorators: ((story: any, context: any) => any)[];
|
|
56
|
+
};
|
|
57
|
+
Wrap: {
|
|
58
|
+
args: {
|
|
59
|
+
wrap: boolean;
|
|
60
|
+
};
|
|
61
|
+
render: ({ children, ...args }: any) => import("react").JSX.Element;
|
|
62
|
+
decorators: ((story: any, context: any) => any)[];
|
|
63
|
+
};
|
|
64
|
+
};
|
|
@@ -0,0 +1,53 @@
|
|
|
1
|
+
import type { ColorVariant, ColorWithVariants, Typography } from '../../constants';
|
|
2
|
+
import type { CommonRef, HasClassName, JSXElement, LumxClassName } from '../../types';
|
|
3
|
+
/**
|
|
4
|
+
* Defines the props of the component.
|
|
5
|
+
*/
|
|
6
|
+
export interface InlineListProps extends HasClassName {
|
|
7
|
+
/**
|
|
8
|
+
* List items to render.
|
|
9
|
+
*/
|
|
10
|
+
items?: JSXElement[];
|
|
11
|
+
/**
|
|
12
|
+
* Text color.
|
|
13
|
+
*/
|
|
14
|
+
color?: ColorWithVariants;
|
|
15
|
+
/**
|
|
16
|
+
* Lightened or darkened variant of the selected color.
|
|
17
|
+
*/
|
|
18
|
+
colorVariant?: ColorVariant;
|
|
19
|
+
/**
|
|
20
|
+
* Typography variant.
|
|
21
|
+
*/
|
|
22
|
+
typography?: Typography;
|
|
23
|
+
/**
|
|
24
|
+
* Activate line wrap on overflow.
|
|
25
|
+
*/
|
|
26
|
+
wrap?: boolean;
|
|
27
|
+
/** reference to the root element */
|
|
28
|
+
ref?: CommonRef;
|
|
29
|
+
}
|
|
30
|
+
/**
|
|
31
|
+
* Component display name.
|
|
32
|
+
*/
|
|
33
|
+
export declare const COMPONENT_NAME = "InlineList";
|
|
34
|
+
/**
|
|
35
|
+
* Component default class name and class prefix.
|
|
36
|
+
*/
|
|
37
|
+
export declare const CLASSNAME: LumxClassName<typeof COMPONENT_NAME>;
|
|
38
|
+
/**
|
|
39
|
+
* Component default props.
|
|
40
|
+
*/
|
|
41
|
+
export declare const DEFAULT_PROPS: Partial<InlineListProps>;
|
|
42
|
+
/**
|
|
43
|
+
* InlineList component.
|
|
44
|
+
*
|
|
45
|
+
* @param props Component props.
|
|
46
|
+
* @return JSX element.
|
|
47
|
+
*/
|
|
48
|
+
export declare const InlineList: {
|
|
49
|
+
(props: InlineListProps): import("react").JSX.Element;
|
|
50
|
+
displayName: string;
|
|
51
|
+
className: "lumx-inline-list";
|
|
52
|
+
defaultProps: Partial<InlineListProps>;
|
|
53
|
+
};
|