@lumx/core 4.14.0-next.0 → 4.14.0-next.2

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.
Files changed (107) hide show
  1. package/js/components/AlertDialog/Stories.d.ts +115 -0
  2. package/js/components/AlertDialog/index.d.ts +91 -0
  3. package/js/components/Avatar/Stories.d.ts +52 -0
  4. package/js/components/Avatar/index.d.ts +50 -0
  5. package/js/components/Badge/BadgeWrapper.d.ts +13 -0
  6. package/js/components/Badge/BadgeWrapperStories.d.ts +29 -0
  7. package/js/components/Badge/Stories.d.ts +46 -0
  8. package/js/components/Badge/index.d.ts +37 -0
  9. package/js/components/Button/ButtonGroup.d.ts +36 -0
  10. package/js/components/Button/ButtonGroupStories.d.ts +33 -0
  11. package/js/components/Button/IconButtonStories.d.ts +210 -0
  12. package/js/components/Button/Stories.d.ts +302 -0
  13. package/js/components/Checkbox/Stories.d.ts +89 -0
  14. package/js/components/Chip/ChipGroupStories.d.ts +17 -0
  15. package/js/components/Chip/SelectionChipGroupStories.d.ts +54 -0
  16. package/js/components/Chip/Stories.d.ts +127 -0
  17. package/js/components/Combobox/ComboboxOptionTests.d.ts +24 -0
  18. package/js/components/Combobox/Stories.d.ts +167 -0
  19. package/js/components/Combobox/TestStories.d.ts +143 -0
  20. package/js/components/Combobox/Tests.d.ts +168 -0
  21. package/js/components/Dialog/Stories.d.ts +97 -0
  22. package/js/components/Dialog/index.d.ts +99 -0
  23. package/js/components/Divider/Stories.d.ts +21 -0
  24. package/js/components/DragHandle/Stories.d.ts +18 -0
  25. package/js/components/ExpansionPanel/Stories.d.ts +67 -0
  26. package/js/components/Flag/Stories.d.ts +120 -0
  27. package/js/components/FlexBox/Stories.d.ts +116 -0
  28. package/js/components/FlexBox/constants.d.ts +3 -3
  29. package/js/components/GenericBlock/Stories.d.ts +74 -0
  30. package/js/components/GenericBlock/constants.d.ts +1 -1
  31. package/js/components/GenericBlock/index.d.ts +85 -0
  32. package/js/components/GridColumn/GridColumnStories.d.ts +45 -0
  33. package/js/components/GridColumn/index.d.ts +2 -0
  34. package/js/components/Heading/Stories.d.ts +90 -0
  35. package/js/components/Icon/Stories.d.ts +156 -0
  36. package/js/components/ImageBlock/Stories.d.ts +187 -0
  37. package/js/components/InlineList/Stories.d.ts +64 -0
  38. package/js/components/InlineList/index.d.ts +53 -0
  39. package/js/components/InputHelper/Stories.d.ts +35 -0
  40. package/js/components/InputLabel/Stories.d.ts +34 -0
  41. package/js/components/Lightbox/Stories.d.ts +40 -0
  42. package/js/components/Lightbox/index.d.ts +68 -0
  43. package/js/components/Link/Stories.d.ts +282 -0
  44. package/js/components/Link/index.d.ts +47 -0
  45. package/js/components/LinkPreview/Stories.d.ts +61 -0
  46. package/js/components/LinkPreview/index.d.ts +53 -0
  47. package/js/components/List/ListDivider.d.ts +33 -0
  48. package/js/components/List/ListDividerStories.d.ts +17 -0
  49. package/js/components/List/ListItemStories.d.ts +53 -0
  50. package/js/components/List/ListSection.d.ts +45 -0
  51. package/js/components/List/ListSectionStories.d.ts +125 -0
  52. package/js/components/List/ListStories.d.ts +34 -0
  53. package/js/components/Message/Stories.d.ts +119 -0
  54. package/js/components/Mosaic/Stories.d.ts +102 -0
  55. package/js/components/Mosaic/index.d.ts +40 -0
  56. package/js/components/Popover/Stories.d.ts +139 -0
  57. package/js/components/Popover/index.d.ts +119 -0
  58. package/js/components/PopoverDialog/Stories.d.ts +44 -0
  59. package/js/components/PopoverDialog/index.d.ts +22 -0
  60. package/js/components/RadioButton/Stories.d.ts +78 -0
  61. package/js/components/RadioGroup/index.d.ts +34 -0
  62. package/js/components/SelectButton/Stories.d.ts +135 -0
  63. package/js/components/SelectButton/TestStories.d.ts +37 -0
  64. package/js/components/SelectButton/Tests.d.ts +34 -0
  65. package/js/components/SelectButton/index.d.ts +85 -0
  66. package/js/components/SelectTextField/Stories.d.ts +192 -0
  67. package/js/components/SelectTextField/TestStories.d.ts +39 -0
  68. package/js/components/SelectTextField/Tests.d.ts +38 -0
  69. package/js/components/SelectTextField/index.d.ts +87 -0
  70. package/js/components/Skeleton/SkeletonCircleStories.d.ts +43 -0
  71. package/js/components/Skeleton/SkeletonRectangleStories.d.ts +83 -0
  72. package/js/components/Skeleton/SkeletonTypographyStories.d.ts +53 -0
  73. package/js/components/Switch/Stories.d.ts +94 -0
  74. package/js/components/Table/Stories.d.ts +30 -0
  75. package/js/components/Table/TableBody.d.ts +25 -0
  76. package/js/components/Table/TableCellStories.d.ts +47 -0
  77. package/js/components/Table/TableHeader.d.ts +29 -0
  78. package/js/components/Table/TableRow.d.ts +35 -0
  79. package/js/components/Table/TableRowStories.d.ts +23 -0
  80. package/js/components/Table/index.d.ts +27 -0
  81. package/js/components/Tabs/Tab.d.ts +70 -0
  82. package/js/components/Tabs/TabPanel.d.ts +43 -0
  83. package/js/components/Text/Stories.d.ts +164 -0
  84. package/js/components/TextField/RawInputText.d.ts +22 -0
  85. package/js/components/TextField/RawInputTextStories.d.ts +16 -0
  86. package/js/components/TextField/RawInputTextareaStories.d.ts +21 -0
  87. package/js/components/TextField/Stories.d.ts +101 -0
  88. package/js/components/TextField/TextField.d.ts +84 -0
  89. package/js/components/Thumbnail/Stories.d.ts +178 -0
  90. package/js/components/Toolbar/Stories.d.ts +29 -0
  91. package/js/components/Toolbar/index.d.ts +33 -0
  92. package/js/components/Tooltip/Stories.d.ts +61 -0
  93. package/js/components/Tooltip/TestStories.d.ts +72 -0
  94. package/js/components/Tooltip/index.d.ts +65 -0
  95. package/js/components/Uploader/Stories.d.ts +116 -0
  96. package/js/components/Uploader/index.d.ts +79 -0
  97. package/js/components/UserBlock/Stories.d.ts +153 -0
  98. package/js/components/UserBlock/index.d.ts +145 -0
  99. package/js/utils/ClickAway/TestStories.d.ts +36 -0
  100. package/js/utils/InfiniteScroll/TestStories.d.ts +50 -0
  101. package/js/utils/InfiniteScroll/index.d.ts +21 -0
  102. package/js/utils/Portal/Stories.d.ts +29 -0
  103. package/js/utils/action-area/Stories.d.ts +38 -0
  104. package/js/utils/select/renderSelectOptions.d.ts +7 -0
  105. package/package.json +2 -2
  106. package/stories/utils/CombinationsTable.d.ts +26 -0
  107. package/stories/utils/ThemingVariablesTable.d.ts +29 -0
@@ -0,0 +1,84 @@
1
+ import { HasTheme, HasAriaDisabled, HasClassName, JSXElement, CommonRef, GenericProps, HasDisabled } from '../../types';
2
+ import { InputLabelProps } from '../InputLabel';
3
+ /**
4
+ * Defines the props of the component.
5
+ */
6
+ export interface TextFieldProps extends HasClassName, HasTheme, HasAriaDisabled, HasDisabled {
7
+ /** Chip Group to be rendered before the main text input. */
8
+ chips?: JSXElement;
9
+ /** Props to pass to the clear button (minus those already set by the TextField props). If not specified, the button won't be displayed. */
10
+ clearButtonProps?: GenericProps;
11
+ /** Error message. */
12
+ error?: string | JSXElement;
13
+ /** Whether we force the focus style or not. */
14
+ forceFocusStyle?: boolean;
15
+ /** Whether the text field is displayed with error style or not. */
16
+ hasError?: boolean;
17
+ /** Additional element to put at the end of the text field. */
18
+ afterElement?: JSXElement;
19
+ /** Helper text. */
20
+ helper?: string | JSXElement;
21
+ /** Icon (SVG path). */
22
+ icon?: string;
23
+ /** Native input id property (generated if not provided to link the label element). */
24
+ id?: string;
25
+ /** Generated helper id for accessibility attributes. */
26
+ helperId?: string;
27
+ /** Generated error id for accessibility attributes. */
28
+ errorId?: string;
29
+ /** Generated label id for accessibility attributes (used to link the clear button to the field label). */
30
+ labelId?: string;
31
+ /** Whether the component is required or not. */
32
+ isRequired?: boolean;
33
+ /** Whether the text field is displayed with valid style or not. */
34
+ isValid?: boolean;
35
+ /** Label text. */
36
+ label?: string;
37
+ /** Additional label props. */
38
+ labelProps?: InputLabelProps;
39
+ /** Max string length the input accepts (constrains the input and displays a character counter). */
40
+ maxLength?: number;
41
+ /** Whether the text field is a textarea or an input. */
42
+ multiline?: boolean;
43
+ /** Placeholder text. */
44
+ placeholder?: string;
45
+ /** Reference to the wrapper. */
46
+ textFieldRef?: CommonRef;
47
+ /** Value. */
48
+ value?: string;
49
+ /** Whether any part is disabled. */
50
+ isAnyDisabled?: boolean;
51
+ /** The input element (input or textarea). */
52
+ input: JSXElement;
53
+ /** Whether the input is focused. */
54
+ isFocus?: boolean;
55
+ /** IconButton component. */
56
+ IconButton: (props: Record<string, any>) => any;
57
+ /** Ref to the component root. */
58
+ ref?: CommonRef;
59
+ }
60
+ export type TextFieldPropsToOverride = 'input' | 'IconButton' | 'labelProps' | 'textFieldRef' | 'clearButtonProps' | 'helperId' | 'errorId' | 'labelId' | 'isAnyDisabled' | 'isFocus';
61
+ /**
62
+ * Generate unique accessibility IDs for helper and error texts.
63
+ * Combines them with any existing aria-describedby in priority order (error > helper > existing).
64
+ *
65
+ * @param helper Helper text content
66
+ * @param error Error text content
67
+ * @param generatedId Unique ID for this text field instance
68
+ * @param existingAriaDescribedBy Existing aria-describedby value to merge
69
+ * @return Object containing helperId, errorId, and combined describedById
70
+ */
71
+ export declare function generateAccessibilityIds(helper: TextFieldProps['helper'], error: TextFieldProps['error'], generatedId: string, existingAriaDescribedBy?: string, label?: TextFieldProps['label']): {
72
+ helperId?: string;
73
+ errorId?: string;
74
+ describedById?: string;
75
+ labelId?: string;
76
+ };
77
+ /**
78
+ * TextField component.
79
+ *
80
+ * @param props Component props.
81
+ * @param ref Component ref.
82
+ * @return React element.
83
+ */
84
+ export declare const TextField: (props: TextFieldProps) => import("react").JSX.Element;
@@ -0,0 +1,178 @@
1
+ import type { SetupStoriesOptions } from '@lumx/core/stories/types';
2
+ import { AspectRatio } from '../../constants';
3
+ import { ThumbnailObjectFit, ThumbnailVariant } from './types';
4
+ /**
5
+ * Setup Thumbnail stories for a specific framework (React or Vue).
6
+ * This function creates all the stories with the appropriate decorators.
7
+ */
8
+ export declare function setup({ component: Thumbnail, decorators: { withNestedProps, withWrapper, withCombinations }, }: SetupStoriesOptions<{
9
+ decorators: 'withNestedProps' | 'withWrapper' | 'withCombinations';
10
+ }>): {
11
+ meta: {
12
+ component: any;
13
+ render: (args: any) => import("react").JSX.Element;
14
+ argTypes: {
15
+ image: {
16
+ control: {
17
+ type: "select" | "inline-radio";
18
+ };
19
+ options: string[];
20
+ mapping: Record<string, string> | undefined;
21
+ };
22
+ align: {
23
+ control: {
24
+ type: "select" | "inline-radio";
25
+ };
26
+ options: ("center" | "right" | "left")[];
27
+ mapping: Record<string, "center" | "right" | "left"> | undefined;
28
+ };
29
+ variant: {
30
+ control: {
31
+ type: "select" | "inline-radio";
32
+ };
33
+ options: ("squared" | "rounded")[];
34
+ mapping: Record<string, "squared" | "rounded"> | undefined;
35
+ };
36
+ aspectRatio: {
37
+ control: {
38
+ type: "select" | "inline-radio";
39
+ };
40
+ options: ("vertical" | "horizontal" | "original" | "panoramic" | "wide" | "square" | "free")[];
41
+ mapping: Record<string, "vertical" | "horizontal" | "original" | "panoramic" | "wide" | "square" | "free"> | undefined;
42
+ };
43
+ fallback: {
44
+ control: boolean;
45
+ };
46
+ 'focusPoint.x': {
47
+ control: {
48
+ type: string;
49
+ max: number;
50
+ min: number;
51
+ step: number;
52
+ };
53
+ };
54
+ 'focusPoint.y': {
55
+ control: {
56
+ type: string;
57
+ max: number;
58
+ min: number;
59
+ step: number;
60
+ };
61
+ };
62
+ };
63
+ decorators: ((story: any, context: any) => any)[];
64
+ args: {
65
+ align?: import("../../constants").HorizontalAlignment | undefined;
66
+ alt?: string | undefined;
67
+ aspectRatio?: AspectRatio | undefined;
68
+ badge?: import("react").ReactNode;
69
+ crossOrigin?: "" | "anonymous" | "use-credentials" | undefined;
70
+ fallback?: import("react").ReactNode;
71
+ fillHeight?: boolean | undefined;
72
+ image?: string | undefined;
73
+ loadingState?: string | undefined;
74
+ imgProps?: import("react").ImgHTMLAttributes<HTMLImageElement> | undefined;
75
+ imgRef?: import("../../types").CommonRef;
76
+ ref?: import("../../types").CommonRef;
77
+ isLoading?: boolean | undefined;
78
+ objectFit?: ThumbnailObjectFit | undefined;
79
+ size?: import("./types").ThumbnailSize | undefined;
80
+ loading?: "eager" | "lazy" | undefined;
81
+ loadingPlaceholderImageRef?: React.RefObject<HTMLImageElement> | undefined;
82
+ handleClick?: ((event: any) => void) | undefined;
83
+ handleKeyPress?: ((event: any) => void) | undefined;
84
+ variant?: ThumbnailVariant | undefined;
85
+ linkProps?: import("../../types").GenericProps | undefined;
86
+ focusPointStyle?: import("../../types").GenericProps | undefined;
87
+ disabledStateProps?: import("../../types").GenericProps | undefined;
88
+ isAnyDisabled?: boolean | undefined;
89
+ linkAs?: "a" | any;
90
+ 'aria-label'?: string | undefined;
91
+ theme?: import("../../constants").Theme | undefined;
92
+ className?: string | undefined;
93
+ };
94
+ };
95
+ /** Simple thumbnail taking the size of the original image */
96
+ Simple: {
97
+ args: {
98
+ image: string;
99
+ };
100
+ decorators: ((story: any, context: any) => any)[];
101
+ };
102
+ /** Loading state */
103
+ IsLoading: {
104
+ args: {
105
+ image: string;
106
+ isLoading: boolean;
107
+ };
108
+ };
109
+ WithoutSource: {
110
+ args: {
111
+ image: string;
112
+ size: "xxl";
113
+ aspectRatio: "square";
114
+ };
115
+ };
116
+ /** Demonstrate the focus point X on a vertical thumbnail containing an horizontal image */
117
+ FocusPointVertical: {
118
+ args: {
119
+ aspectRatio: "vertical";
120
+ size: "xxl";
121
+ image: string;
122
+ 'focusPoint.x': number;
123
+ };
124
+ };
125
+ /** Demonstrate the focus point Y on a horizontal thumbnail containing an vertical image */
126
+ FocusPointHorizontal: {
127
+ args: {
128
+ aspectRatio: "horizontal";
129
+ size: "xxl";
130
+ image: string;
131
+ 'focusPoint.y': number;
132
+ };
133
+ };
134
+ /** Setting `onClick` to turn the thumbnail into a button */
135
+ AsButton: {
136
+ args: {
137
+ image: string;
138
+ };
139
+ argTypes: {
140
+ onClick: {
141
+ action: boolean;
142
+ };
143
+ };
144
+ };
145
+ /** Setting `linkProps.href` to turn the thumbnail into a link */
146
+ AsLink: {
147
+ args: {
148
+ image: string;
149
+ linkProps: {
150
+ href: string;
151
+ };
152
+ };
153
+ };
154
+ /** Combinations of fillHeight and ratios */
155
+ FillHeightAndRatio: {
156
+ args: {
157
+ image: string;
158
+ fillHeight: boolean;
159
+ };
160
+ decorators: ((story: any, context: any) => any)[];
161
+ };
162
+ /** Simple thumbnail with svg image */
163
+ WithSvgImages: {
164
+ args: {
165
+ image: string;
166
+ size: "xxl";
167
+ fillHeight: boolean;
168
+ 'focusPoint.x': number;
169
+ };
170
+ };
171
+ /** Thumbnail letter-boxing */
172
+ ObjectFit: {
173
+ args: {
174
+ size: "xl";
175
+ };
176
+ decorators: ((story: any, context: any) => any)[];
177
+ };
178
+ };
@@ -0,0 +1,29 @@
1
+ import type { SetupStoriesOptions } from '@lumx/core/stories/types';
2
+ /**
3
+ * Setup Toolbar stories for a specific framework (React or Vue).
4
+ * Framework-specific components (Icon) are injected via `components`.
5
+ */
6
+ export declare function setup({ component: Toolbar, components: { Icon }, render, }: SetupStoriesOptions<{
7
+ decorators?: never;
8
+ components: {
9
+ Icon: any;
10
+ };
11
+ }>): {
12
+ meta: {
13
+ component: any;
14
+ render: any;
15
+ args: Partial<import(".").ToolbarProps>;
16
+ };
17
+ Default: {
18
+ render: () => import("react").JSX.Element;
19
+ };
20
+ WithBefore: {
21
+ render: () => import("react").JSX.Element;
22
+ };
23
+ WithAfter: {
24
+ render: () => import("react").JSX.Element;
25
+ };
26
+ WithAll: {
27
+ render: () => import("react").JSX.Element;
28
+ };
29
+ };
@@ -0,0 +1,33 @@
1
+ import type { JSXElement, LumxClassName, HasClassName, CommonRef } from '../../types';
2
+ /**
3
+ * Defines the props of the component.
4
+ */
5
+ export interface ToolbarProps extends HasClassName {
6
+ /** After content (placed after the label). */
7
+ after?: JSXElement;
8
+ /** Before content (placed before the label). */
9
+ before?: JSXElement;
10
+ /** Label content. */
11
+ label?: JSXElement;
12
+ /** Component ref. */
13
+ ref?: CommonRef;
14
+ }
15
+ /**
16
+ * Component display name.
17
+ */
18
+ export declare const TOOLBAR_NAME = "Toolbar";
19
+ /**
20
+ * Component default class name and class prefix.
21
+ */
22
+ export declare const CLASSNAME: LumxClassName<typeof TOOLBAR_NAME>;
23
+ /**
24
+ * Component default props.
25
+ */
26
+ export declare const DEFAULT_PROPS: Partial<ToolbarProps>;
27
+ /**
28
+ * Toolbar component.
29
+ *
30
+ * @param props Component props.
31
+ * @return JSX element.
32
+ */
33
+ export declare const Toolbar: (props: ToolbarProps) => import("react").JSX.Element;
@@ -0,0 +1,61 @@
1
+ import type { SetupStoriesOptions } from '@lumx/core/stories/types';
2
+ /**
3
+ * Setup Tooltip stories for a specific framework (React or Vue).
4
+ * Framework-specific components (Button) and decorators are injected via options.
5
+ */
6
+ export declare function setup({ component: Tooltip, components: { Button }, decorators: { withChromaticForceScreenSize }, }: SetupStoriesOptions<{
7
+ components: {
8
+ Button: any;
9
+ };
10
+ decorators: 'withChromaticForceScreenSize';
11
+ }>): {
12
+ meta: {
13
+ component: any;
14
+ argTypes: {
15
+ placement: {
16
+ control: {
17
+ type: "select" | "inline-radio";
18
+ };
19
+ options: string[];
20
+ mapping: Record<string, string> | undefined;
21
+ };
22
+ children: {
23
+ control: boolean;
24
+ };
25
+ closeMode: {
26
+ control: {
27
+ type: "inline-radio";
28
+ };
29
+ options: string[];
30
+ };
31
+ ariaLinkMode: {
32
+ control: {
33
+ type: "inline-radio";
34
+ };
35
+ options: readonly ["aria-describedby", "aria-labelledby"];
36
+ };
37
+ };
38
+ decorators: ((story: any, context: any) => any)[];
39
+ };
40
+ OnAButton: {
41
+ render: (args: any) => import("react").JSX.Element;
42
+ };
43
+ OnADisabledButton: {
44
+ render: (args: any) => import("react").JSX.Element;
45
+ };
46
+ ForceOpen: {
47
+ render: (args: any) => import("react").JSX.Element;
48
+ args: {
49
+ forceOpen: boolean;
50
+ };
51
+ };
52
+ CloseModeHide: {
53
+ render: (args: any) => import("react").JSX.Element;
54
+ args: {
55
+ closeMode: string;
56
+ };
57
+ };
58
+ MultilineTooltip: {
59
+ render: (args: any) => import("react").JSX.Element;
60
+ };
61
+ };
@@ -0,0 +1,72 @@
1
+ import type { SetupStoriesOptions } from '@lumx/core/stories/types';
2
+ /**
3
+ * Setup Tooltip test stories (with play functions) for a specific framework (React or Vue).
4
+ * Framework-specific components (Button) are injected via options.
5
+ */
6
+ export declare function setup({ component: Tooltip, components: { Button }, }: SetupStoriesOptions<{
7
+ components: {
8
+ Button: any;
9
+ };
10
+ }>): {
11
+ meta: {
12
+ component: any;
13
+ tags: string[];
14
+ parameters: {
15
+ chromatic: {
16
+ disableSnapshot: boolean;
17
+ };
18
+ };
19
+ };
20
+ TestActivateOnHover: {
21
+ render: ({ children, ...args }: any) => import("react").JSX.Element;
22
+ args: {
23
+ label: string;
24
+ };
25
+ play({ canvas, userEvent }: any): Promise<void>;
26
+ };
27
+ TestHoverAnchorThenTooltip: {
28
+ render: ({ children, ...args }: any) => import("react").JSX.Element;
29
+ args: {
30
+ label: string;
31
+ };
32
+ play({ canvas, userEvent }: any): Promise<void>;
33
+ };
34
+ TestFocusVisibleAndEscape: {
35
+ render: ({ children, ...args }: any) => import("react").JSX.Element;
36
+ args: {
37
+ label: string;
38
+ };
39
+ play({ canvas, userEvent }: any): Promise<void>;
40
+ };
41
+ TestNoActivateOnClickFocus: {
42
+ render: ({ children, ...args }: any) => import("react").JSX.Element;
43
+ args: {
44
+ label: string;
45
+ };
46
+ play({ canvas, userEvent }: any): Promise<void>;
47
+ };
48
+ TestCloseModeHide: {
49
+ render: ({ children, ...args }: any) => import("react").JSX.Element;
50
+ args: {
51
+ label: string;
52
+ closeMode: string;
53
+ };
54
+ play({ canvas, userEvent }: any): Promise<void>;
55
+ };
56
+ TestAriaDescribedByOnHover: {
57
+ render: ({ children, ...args }: any) => import("react").JSX.Element;
58
+ play({ canvas, userEvent }: any): Promise<void>;
59
+ };
60
+ TestAriaDescribedByOnWrapperHover: {
61
+ render(props: any): import("react").JSX.Element;
62
+ play({ canvasElement, userEvent }: any): Promise<void>;
63
+ };
64
+ TestAriaLabelledByOnHover: {
65
+ render: ({ children, ...args }: any) => import("react").JSX.Element;
66
+ play({ canvas, userEvent }: any): Promise<void>;
67
+ };
68
+ TestAriaLabelledByOnWrapperHover: {
69
+ render(props: any): import("react").JSX.Element;
70
+ play({ canvasElement, userEvent }: any): Promise<void>;
71
+ };
72
+ };
@@ -0,0 +1,65 @@
1
+ import type { CommonRef, HasClassName, HasCloseMode, LumxClassName } from '../../types';
2
+ import { ARIA_LINK_MODES } from './constants';
3
+ /** Position of the tooltip relative to the anchor element. */
4
+ export type TooltipPlacement = 'top' | 'right' | 'bottom' | 'left';
5
+ /**
6
+ * Framework-agnostic tooltip props (shared between React and Vue wrappers).
7
+ */
8
+ export interface TooltipProps extends HasCloseMode {
9
+ /** Delay (in ms) before closing the tooltip. */
10
+ delay?: number;
11
+ /** Whether the tooltip is displayed even without the mouse hovering the anchor. */
12
+ forceOpen?: boolean;
13
+ /** Label text. */
14
+ label?: string | null | false;
15
+ /** Placement of the tooltip relative to the anchor. */
16
+ placement?: TooltipPlacement;
17
+ /** Choose how the tooltip text should link to the anchor */
18
+ ariaLinkMode?: (typeof ARIA_LINK_MODES)[number];
19
+ /** Z-index for the tooltip */
20
+ zIndex?: number;
21
+ }
22
+ /**
23
+ * Component default props.
24
+ */
25
+ export declare const DEFAULT_PROPS: Partial<TooltipProps>;
26
+ /**
27
+ * Component display name.
28
+ */
29
+ export declare const COMPONENT_NAME = "Tooltip";
30
+ /**
31
+ * Component default class name and class prefix.
32
+ */
33
+ export declare const CLASSNAME: LumxClassName<typeof COMPONENT_NAME>;
34
+ /**
35
+ * Props for the TooltipPopup rendering component.
36
+ */
37
+ export interface TooltipPopupProps extends HasClassName {
38
+ /** Unique ID for the tooltip (used for ARIA linking) */
39
+ id: string;
40
+ /** Label text to display in the tooltip */
41
+ label: string;
42
+ /** Resolved placement position from floating-ui */
43
+ position: string;
44
+ /** Whether the tooltip is visually hidden (closeMode="hide") */
45
+ isHidden: boolean;
46
+ /** Positioning styles from floating-ui */
47
+ style?: any;
48
+ /** Z-index for the tooltip */
49
+ zIndex?: number;
50
+ /** Reference to the root element */
51
+ ref?: CommonRef;
52
+ }
53
+ /**
54
+ * Tooltip popup rendering component.
55
+ * Pure JSX template for the tooltip popup element (arrow + inner text + BEM classes).
56
+ *
57
+ * @param props Component props.
58
+ * @return JSX element.
59
+ */
60
+ export declare const TooltipPopup: {
61
+ (props: TooltipPopupProps): import("react").JSX.Element;
62
+ displayName: string;
63
+ className: "lumx-tooltip";
64
+ };
65
+ export { ARIA_LINK_MODES, ARROW_SIZE, TOOLTIP_ZINDEX } from './constants';
@@ -0,0 +1,116 @@
1
+ import type { SetupStoriesOptions } from '@lumx/core/stories/types';
2
+ export declare function setup({ component: Uploader, components: { GridColumn }, decorators: { withCombinations, withWrapper }, }: SetupStoriesOptions<{
3
+ decorators: 'withCombinations' | 'withWrapper';
4
+ components: {
5
+ GridColumn: any;
6
+ };
7
+ }>): {
8
+ meta: {
9
+ component: any;
10
+ render: (args: any) => import("react").JSX.Element;
11
+ argTypes: {
12
+ onClick: {
13
+ action: boolean;
14
+ };
15
+ icon: {
16
+ control: {
17
+ type: string;
18
+ };
19
+ options: {
20
+ undefined: undefined;
21
+ mdiAbTesting: string;
22
+ mdiAbjadArabic: string;
23
+ mdiAccount: string;
24
+ mdiAccountBox: string;
25
+ mdiAlert: string;
26
+ mdiAlertCircle: string;
27
+ mdiArrowDown: string;
28
+ mdiArrowUp: string;
29
+ mdiAtom: string;
30
+ mdiBee: string;
31
+ mdiBell: string;
32
+ mdiBullhornOutline: string;
33
+ mdiCheck: string;
34
+ mdiCheckCircle: string;
35
+ mdiChevronDown: string;
36
+ mdiChevronLeft: string;
37
+ mdiChevronRight: string;
38
+ mdiChevronUp: string;
39
+ mdiClose: string;
40
+ mdiCloseCircle: string;
41
+ mdiDelete: string;
42
+ mdiDotsHorizontal: string;
43
+ mdiDragVertical: string;
44
+ mdiEarth: string;
45
+ mdiEmail: string;
46
+ mdiEye: string;
47
+ mdiFileEdit: string;
48
+ mdiFlag: string;
49
+ mdiFolder: string;
50
+ mdiFolderGoogleDrive: string;
51
+ mdiFoodApple: string;
52
+ mdiGoogleCirclesExtended: string;
53
+ mdiHeart: string;
54
+ mdiHome: string;
55
+ mdiImageBroken: string;
56
+ mdiInformation: string;
57
+ mdiLink: string;
58
+ mdiMagnifyMinusOutline: string;
59
+ mdiMagnifyPlusOutline: string;
60
+ mdiMenuDown: string;
61
+ mdiMessageTextOutline: string;
62
+ mdiMinus: string;
63
+ mdiOpenInNew: string;
64
+ mdiPauseCircleOutline: string;
65
+ mdiPencil: string;
66
+ mdiPlay: string;
67
+ mdiPlayCircleOutline: string;
68
+ mdiPlus: string;
69
+ mdiRadioboxBlank: string;
70
+ mdiRadioboxMarked: string;
71
+ mdiReply: string;
72
+ mdiSend: string;
73
+ mdiStar: string;
74
+ mdiTextBox: string;
75
+ mdiTextBoxPlus: string;
76
+ mdiTram: string;
77
+ mdiTranslate: string;
78
+ mdiViewList: string;
79
+ };
80
+ };
81
+ aspectRatio: {
82
+ control: {
83
+ type: "select" | "inline-radio";
84
+ };
85
+ options: ("vertical" | "horizontal" | "original" | "panoramic" | "wide" | "square" | "free")[];
86
+ mapping: Record<string, "vertical" | "horizontal" | "original" | "panoramic" | "wide" | "square" | "free"> | undefined;
87
+ };
88
+ };
89
+ args: Partial<import(".").UploaderProps>;
90
+ };
91
+ WithLabel: {
92
+ args: {
93
+ label: string;
94
+ };
95
+ };
96
+ WithLabelAndIcon: {
97
+ args: {
98
+ label: string;
99
+ icon: string;
100
+ };
101
+ };
102
+ Variants: {
103
+ args: {
104
+ label: string;
105
+ icon: string;
106
+ };
107
+ decorators: ((story: any, context: any) => any)[];
108
+ };
109
+ RatioAndSize: {
110
+ args: {
111
+ label: string;
112
+ icon: string;
113
+ };
114
+ decorators: ((story: any, context: any) => any)[];
115
+ };
116
+ };