@itwin/itwinui-react 3.0.0-dev.12 → 3.0.0-dev.14

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 (71) hide show
  1. package/CHANGELOG.md +43 -0
  2. package/cjs/core/Carousel/Carousel.d.ts +12 -5
  3. package/cjs/core/Carousel/Carousel.js +9 -39
  4. package/cjs/core/Carousel/CarouselContext.d.ts +0 -4
  5. package/cjs/core/Carousel/CarouselDot.js +1 -1
  6. package/cjs/core/Carousel/CarouselDotsList.js +26 -2
  7. package/cjs/core/Carousel/CarouselNavigation.d.ts +1 -1
  8. package/cjs/core/Carousel/CarouselNavigation.js +4 -17
  9. package/cjs/core/Carousel/CarouselSlide.d.ts +1 -1
  10. package/cjs/core/Carousel/CarouselSlide.js +12 -2
  11. package/cjs/core/Carousel/CarouselSlider.d.ts +1 -1
  12. package/cjs/core/Carousel/CarouselSlider.js +2 -2
  13. package/cjs/core/ColorPicker/ColorBuilder.js +2 -0
  14. package/cjs/core/ColorPicker/ColorInputPanel.js +24 -4
  15. package/cjs/core/ColorPicker/ColorPalette.js +2 -80
  16. package/cjs/core/ColorPicker/ColorSwatch.d.ts +1 -1
  17. package/cjs/core/ColorPicker/ColorSwatch.js +25 -15
  18. package/cjs/core/LabeledSelect/LabeledSelect.d.ts +1 -1
  19. package/cjs/core/LabeledSelect/LabeledSelect.js +3 -3
  20. package/cjs/core/Select/Select.d.ts +1 -1
  21. package/cjs/core/Select/Select.js +6 -4
  22. package/cjs/core/Slider/Slider.d.ts +2 -6
  23. package/cjs/core/Slider/Slider.js +8 -22
  24. package/cjs/core/Slider/Thumb.d.ts +1 -2
  25. package/cjs/core/Slider/Thumb.js +1 -5
  26. package/cjs/core/Tabs/Tabs.d.ts +222 -52
  27. package/cjs/core/Tabs/Tabs.js +429 -375
  28. package/cjs/core/ThemeProvider/ThemeProvider.js +3 -1
  29. package/cjs/core/Tile/Tile.js +11 -10
  30. package/cjs/core/utils/hooks/useOverflow.js +3 -1
  31. package/cjs/index.d.ts +1 -2
  32. package/cjs/index.js +1 -2
  33. package/cjs/styles.js +10 -10
  34. package/esm/core/Carousel/Carousel.d.ts +12 -5
  35. package/esm/core/Carousel/Carousel.js +9 -39
  36. package/esm/core/Carousel/CarouselContext.d.ts +0 -4
  37. package/esm/core/Carousel/CarouselDot.js +1 -1
  38. package/esm/core/Carousel/CarouselDotsList.js +26 -2
  39. package/esm/core/Carousel/CarouselNavigation.d.ts +1 -1
  40. package/esm/core/Carousel/CarouselNavigation.js +5 -22
  41. package/esm/core/Carousel/CarouselSlide.d.ts +1 -1
  42. package/esm/core/Carousel/CarouselSlide.js +15 -3
  43. package/esm/core/Carousel/CarouselSlider.d.ts +1 -1
  44. package/esm/core/Carousel/CarouselSlider.js +2 -2
  45. package/esm/core/ColorPicker/ColorBuilder.js +2 -0
  46. package/esm/core/ColorPicker/ColorInputPanel.js +25 -5
  47. package/esm/core/ColorPicker/ColorPalette.js +3 -83
  48. package/esm/core/ColorPicker/ColorSwatch.d.ts +1 -1
  49. package/esm/core/ColorPicker/ColorSwatch.js +18 -12
  50. package/esm/core/LabeledSelect/LabeledSelect.d.ts +1 -1
  51. package/esm/core/LabeledSelect/LabeledSelect.js +3 -2
  52. package/esm/core/Select/Select.d.ts +1 -1
  53. package/esm/core/Select/Select.js +3 -3
  54. package/esm/core/Slider/Slider.d.ts +2 -6
  55. package/esm/core/Slider/Slider.js +8 -19
  56. package/esm/core/Slider/Thumb.d.ts +1 -2
  57. package/esm/core/Slider/Thumb.js +1 -5
  58. package/esm/core/Tabs/Tabs.d.ts +222 -52
  59. package/esm/core/Tabs/Tabs.js +424 -368
  60. package/esm/core/ThemeProvider/ThemeProvider.js +3 -1
  61. package/esm/core/Tile/Tile.js +11 -10
  62. package/esm/core/utils/hooks/useOverflow.js +3 -1
  63. package/esm/index.d.ts +1 -2
  64. package/esm/index.js +1 -2
  65. package/esm/styles.js +10 -10
  66. package/package.json +2 -2
  67. package/styles.css +33 -47
  68. package/cjs/core/Tabs/Tab.d.ts +0 -40
  69. package/cjs/core/Tabs/Tab.js +0 -65
  70. package/esm/core/Tabs/Tab.d.ts +0 -40
  71. package/esm/core/Tabs/Tab.js +0 -57
@@ -10,6 +10,7 @@ const React = tslib_1.__importStar(require('react'));
10
10
  const classnames_1 = tslib_1.__importDefault(require('classnames'));
11
11
  const index_js_1 = require('../utils/index.js');
12
12
  const ColorPicker_js_1 = require('./ColorPicker.js');
13
+ const VisuallyHidden_js_1 = require('../VisuallyHidden/VisuallyHidden.js');
13
14
  /**
14
15
  * ColorSwatch component to display within a color palette.
15
16
  * @example
@@ -25,21 +26,30 @@ exports.ColorSwatch = React.forwardRef((props, ref) => {
25
26
  : (0, ColorPicker_js_1.getColorValue)(color).toHslString(true),
26
27
  [color],
27
28
  );
28
- return React.createElement(index_js_1.Box, {
29
- className: (0, classnames_1.default)(
30
- 'iui-color-swatch',
31
- { 'iui-active': isActive },
32
- className,
33
- ),
34
- style: {
35
- '--iui-color-swatch-background': colorString,
36
- ...style,
29
+ return React.createElement(
30
+ index_js_1.Box,
31
+ {
32
+ as: !!onClick ? index_js_1.ButtonBase : 'span',
33
+ className: (0, classnames_1.default)(
34
+ 'iui-color-swatch',
35
+ { 'iui-active': isActive },
36
+ className,
37
+ ),
38
+ style: {
39
+ '--iui-color-swatch-background': colorString,
40
+ ...style,
41
+ },
42
+ onClick: onClick,
43
+ 'aria-pressed': !!onClick && isActive ? 'true' : undefined,
44
+ ref: ref,
45
+ ...rest,
37
46
  },
38
- onClick: onClick,
39
- tabIndex: isActive ? 0 : -1,
40
- 'aria-selected': isActive,
41
- ref: ref,
42
- ...rest,
43
- });
47
+ props.children ??
48
+ React.createElement(
49
+ VisuallyHidden_js_1.VisuallyHidden,
50
+ null,
51
+ colorString.toUpperCase(),
52
+ ),
53
+ );
44
54
  });
45
55
  exports.default = exports.ColorSwatch;
@@ -76,5 +76,5 @@ export type LabeledSelectProps<T> = {
76
76
  * svgIcon={<SvgCamera />}
77
77
  * />
78
78
  */
79
- export declare const LabeledSelect: <T>(props: LabeledSelectProps<T>) => JSX.Element;
79
+ export declare const LabeledSelect: React.ForwardRefExoticComponent<LabeledSelectProps<unknown> & React.RefAttributes<HTMLElement>>;
80
80
  export default LabeledSelect;
@@ -46,7 +46,7 @@ const Icon_js_1 = require('../Icon/Icon.js');
46
46
  * svgIcon={<SvgCamera />}
47
47
  * />
48
48
  */
49
- const LabeledSelect = (props) => {
49
+ exports.LabeledSelect = React.forwardRef((props, forwardedRef) => {
50
50
  const {
51
51
  className,
52
52
  disabled = false,
@@ -95,6 +95,7 @@ const LabeledSelect = (props) => {
95
95
  style: style,
96
96
  status: status,
97
97
  ...rest,
98
+ ref: forwardedRef,
98
99
  triggerProps: {
99
100
  'aria-labelledby': labelId,
100
101
  ...triggerProps,
@@ -113,6 +114,5 @@ const LabeledSelect = (props) => {
113
114
  )
114
115
  : message,
115
116
  );
116
- };
117
- exports.LabeledSelect = LabeledSelect;
117
+ });
118
118
  exports.default = exports.LabeledSelect;
@@ -168,5 +168,5 @@ export type SelectProps<T> = {
168
168
  * )}
169
169
  * />
170
170
  */
171
- export declare const Select: <T>(props: SelectProps<T>) => JSX.Element;
171
+ export declare const Select: React.ForwardRefExoticComponent<SelectProps<unknown> & React.RefAttributes<HTMLElement>>;
172
172
  export default Select;
@@ -71,7 +71,7 @@ const isSingleOnChange = (onChange, multiple) => {
71
71
  * )}
72
72
  * />
73
73
  */
74
- const Select = (props) => {
74
+ exports.Select = React.forwardRef((props, forwardedRef) => {
75
75
  const uid = (0, index_js_1.useId)();
76
76
  const {
77
77
  options,
@@ -192,7 +192,10 @@ const Select = (props) => {
192
192
  className: (0, classnames_1.default)('iui-input-with-icon', className),
193
193
  style: style,
194
194
  ...rest,
195
- ref: popover.refs.setPositionReference,
195
+ ref: (0, index_js_1.useMergedRefs)(
196
+ popover.refs.setPositionReference,
197
+ forwardedRef,
198
+ ),
196
199
  },
197
200
  React.createElement(
198
201
  index_js_1.Box,
@@ -282,8 +285,7 @@ const Select = (props) => {
282
285
  ),
283
286
  ),
284
287
  );
285
- };
286
- exports.Select = Select;
288
+ });
287
289
  const SingleSelectButton = ({ selectedItem, selectedItemRenderer }) => {
288
290
  const startIcon = selectedItem?.startIcon ?? selectedItem?.icon;
289
291
  return React.createElement(
@@ -65,9 +65,9 @@ export type SliderProps = {
65
65
  */
66
66
  maxLabel?: React.ReactNode;
67
67
  /**
68
- * Additional props for container `<div>` that hold the slider rail, thumbs, and tracks.
68
+ * Additional props for container `<div>` that hold the slider thumbs, and tracks.
69
69
  */
70
- railContainerProps?: React.HTMLAttributes<HTMLDivElement>;
70
+ trackContainerProps?: React.HTMLAttributes<HTMLDivElement>;
71
71
  /**
72
72
  * Allows props to be passed for slider-min
73
73
  */
@@ -76,10 +76,6 @@ export type SliderProps = {
76
76
  * Allows props to be passed for slider-max
77
77
  */
78
78
  maxProps?: React.ComponentProps<'span'>;
79
- /**
80
- * Allows props to be passed for slider-rail
81
- */
82
- railProps?: React.ComponentProps<'div'>;
83
79
  /**
84
80
  * Allows props to be passed for slider-track
85
81
  */
@@ -90,10 +90,9 @@ exports.Slider = React.forwardRef((props, ref) => {
90
90
  onUpdate,
91
91
  thumbProps,
92
92
  className,
93
- railContainerProps,
93
+ trackContainerProps,
94
94
  minProps,
95
95
  maxProps,
96
- railProps,
97
96
  trackProps,
98
97
  tickProps,
99
98
  ticksProps,
@@ -332,12 +331,9 @@ exports.Slider = React.forwardRef((props, ref) => {
332
331
  index_js_1.Box,
333
332
  {
334
333
  ref: ref,
335
- className: (0, classnames_1.default)(
336
- 'iui-slider-component-container',
337
- `iui-slider-${orientation}`,
338
- { 'iui-disabled': disabled },
339
- className,
340
- ),
334
+ className: (0, classnames_1.default)('iui-slider-container', className),
335
+ 'data-iui-orientation': orientation,
336
+ 'data-iui-disabled': disabled ? 'true' : undefined,
341
337
  ...rest,
342
338
  },
343
339
  minValueLabel &&
@@ -356,26 +352,17 @@ exports.Slider = React.forwardRef((props, ref) => {
356
352
  React.createElement(
357
353
  index_js_1.Box,
358
354
  {
359
- as: 'div',
360
355
  ref: containerRef,
361
- ...railContainerProps,
356
+ ...trackContainerProps,
362
357
  className: (0, classnames_1.default)(
363
- 'iui-slider-container',
358
+ 'iui-slider',
364
359
  {
365
360
  'iui-grabbing': undefined !== activeThumbIndex,
366
361
  },
367
- railContainerProps?.className,
362
+ trackContainerProps?.className,
368
363
  ),
369
364
  onPointerDown: handlePointerDownOnSlider,
370
365
  },
371
- React.createElement(index_js_1.Box, {
372
- as: 'div',
373
- ...railProps,
374
- className: (0, classnames_1.default)(
375
- 'iui-slider-rail',
376
- railProps?.className,
377
- ),
378
- }),
379
366
  currentValues.map((thumbValue, index) => {
380
367
  const [minVal, maxVal] = getAllowableThumbRange(index);
381
368
  const thisThumbProps = thumbProps?.(index);
@@ -394,7 +381,6 @@ exports.Slider = React.forwardRef((props, ref) => {
394
381
  step: step,
395
382
  sliderMin: min,
396
383
  sliderMax: max,
397
- orientation: orientation,
398
384
  });
399
385
  }),
400
386
  React.createElement(Track_js_1.Track, {
@@ -405,8 +391,8 @@ exports.Slider = React.forwardRef((props, ref) => {
405
391
  orientation: orientation,
406
392
  ...trackProps,
407
393
  }),
408
- tickMarkArea,
409
394
  ),
395
+ tickMarkArea,
410
396
  maxValueLabel &&
411
397
  React.createElement(
412
398
  index_js_1.Box,
@@ -1,6 +1,5 @@
1
1
  import * as React from 'react';
2
2
  import { Tooltip } from '../Tooltip/Tooltip.js';
3
- import type { SliderProps } from './Slider.js';
4
3
  type ThumbProps = {
5
4
  /**
6
5
  * Thumb value.
@@ -54,7 +53,7 @@ type ThumbProps = {
54
53
  * Additional props for Thumb.
55
54
  */
56
55
  thumbProps?: React.HTMLAttributes<HTMLDivElement>;
57
- } & Pick<SliderProps, 'orientation'>;
56
+ };
58
57
  /**
59
58
  * Thumb is a local component used to show and modify the values maintained by the Slider.
60
59
  * Only one Thumb can be active at a time. A Thumb is made active when the user selects
@@ -30,7 +30,6 @@ const Thumb = (props) => {
30
30
  tooltipProps,
31
31
  thumbProps,
32
32
  disabled,
33
- orientation,
34
33
  } = props;
35
34
  const thumbRef = React.useRef(null);
36
35
  const handleOnKeyboardEvent = React.useCallback(
@@ -97,13 +96,10 @@ const Thumb = (props) => {
97
96
  },
98
97
  React.createElement(index_js_1.Box, {
99
98
  ...rest,
100
- 'data-index': index,
101
99
  ref: thumbRef,
102
100
  style: {
103
101
  ...style,
104
- ...(orientation === 'horizontal'
105
- ? { insetInlineStart: `${lowPercent}%` }
106
- : { insetBlockEnd: `${lowPercent}%` }),
102
+ '--iui-slider-thumb-position': `${lowPercent}%`,
107
103
  },
108
104
  className: (0, classnames_1.default)(
109
105
  'iui-slider-thumb',
@@ -1,28 +1,5 @@
1
1
  import * as React from 'react';
2
- export type OverflowOptions = {
3
- /**
4
- * Whether to allow tabs list to scroll when there is overflow,
5
- * i.e. when there is not enough space to fit all the tabs.
6
- *
7
- * Not applicable to types `pill` and `borderless`.
8
- */
9
- useOverflow?: boolean;
10
- };
11
- type TabsOverflowProps = {
12
- /**
13
- * Options that can be specified to deal with tabs overflowing the allotted space.
14
- */
15
- overflowOptions?: OverflowOptions;
16
- /**
17
- * Type of the tabs.
18
- *
19
- * If `orientation = 'vertical'`, `pill` is not applicable.
20
- * @default 'default'
21
- */
22
- type?: 'default';
23
- } | {
24
- type: 'pill' | 'borderless';
25
- };
2
+ import type { PolymorphicForwardRefComponent } from '../utils/index.js';
26
3
  type TabsOrientationProps = {
27
4
  /**
28
5
  * Orientation of the tabs.
@@ -40,24 +17,85 @@ type TabsOrientationProps = {
40
17
  orientation: 'vertical';
41
18
  type?: 'default' | 'borderless';
42
19
  };
43
- type TabsTypeProps = {
20
+ type TabsWrapperOwnProps = {
44
21
  /**
45
- * Type of the tabs.
22
+ * Color of the bar on the active tab.
23
+ * @default 'blue'
24
+ */
25
+ color?: 'blue' | 'green';
26
+ /**
27
+ * Control whether focusing tabs (using arrow keys) should automatically select them.
28
+ * Use 'manual' if tab panel content is not preloaded.
29
+ * @default 'auto'
30
+ */
31
+ focusActivationMode?: 'auto' | 'manual';
32
+ /**
33
+ * Value of the tab that should be active on initial render.
46
34
  *
47
- * If `orientation = 'vertical'`, `pill` is not applicable.
48
- * @default 'default'
35
+ * Should be used for uncontrolled state (when no `value` passed).
36
+ *
37
+ * If not specified, then first tab will be active by default.
49
38
  */
50
- type?: 'default' | 'borderless';
39
+ defaultValue?: string;
40
+ /**
41
+ * Value of the active tab for controlled state.
42
+ */
43
+ value?: string;
44
+ /**
45
+ * Function that gets called when active tab is changed.
46
+ *
47
+ * Should be used alongside `value` prop.
48
+ */
49
+ onValueChange?: (value: string) => void;
50
+ /**
51
+ * @deprecated Do not use.
52
+ */
53
+ defaultChecked?: never;
54
+ } & TabsOrientationProps;
55
+ type TabListOwnProps = {
56
+ /**
57
+ * Tab items.
58
+ */
59
+ children: React.ReactNode[];
60
+ };
61
+ type TabOwnProps = {
62
+ /**
63
+ * Value used to associate the tab with a given panel.
64
+ */
65
+ value: string;
66
+ /**
67
+ * Tab label used for simple Tab construction.
68
+ * Cannot be used with tabs that have icons or descriptions.
69
+ */
70
+ label?: string | React.ReactNode;
71
+ /**
72
+ * @deprecated Don't pass `id`, as it will be automatically set.
73
+ */
74
+ id?: string;
75
+ };
76
+ type TabsActionsOwnProps = {
77
+ /**
78
+ * Passes props to the wrapper component for the actions
79
+ */
80
+ wrapperProps?: React.ComponentPropsWithRef<'div'>;
81
+ };
82
+ type TabsPanelOwnProps = {
83
+ /**
84
+ * Value used to associate the panel with a given tab.
85
+ */
86
+ value: string;
87
+ /**
88
+ * @deprecated Don't pass `id`, as it will be automatically set.
89
+ */
90
+ id?: string;
91
+ };
92
+ type TabsLegacyProps = {
51
93
  /**
52
94
  * Content displayed to the right/bottom of the horizontal/vertical tabs
53
95
  *
54
96
  * If `type = 'pill'`, `actions` is not applicable.
55
97
  */
56
98
  actions?: React.ReactNode[];
57
- } | {
58
- type: 'pill';
59
- };
60
- export type TabsProps = {
61
99
  /**
62
100
  * Elements shown for each tab.
63
101
  * Recommended to pass an array of `Tab` components.
@@ -98,33 +136,165 @@ export type TabsProps = {
98
136
  * Content inside the tab panel.
99
137
  */
100
138
  children?: React.ReactNode;
101
- } & TabsOrientationProps & TabsTypeProps & TabsOverflowProps;
139
+ /**
140
+ * @deprecated Tabs will now overflow by default, so this prop does nothing.
141
+ */
142
+ overflowOptions?: {
143
+ /**
144
+ * @deprecated Tabs will now overflow by default, so this prop does nothing.
145
+ */
146
+ useOverflow?: boolean;
147
+ };
148
+ defaultValue?: never;
149
+ defaultChecked?: never;
150
+ } & TabsOrientationProps;
151
+ type TabLegacyProps = {
152
+ /**
153
+ * The main label shown in the tab.
154
+ */
155
+ label?: React.ReactNode;
156
+ /**
157
+ * Secondary label shown below the main label.
158
+ */
159
+ sublabel?: React.ReactNode;
160
+ /**
161
+ * Svg icon shown before the labels.
162
+ */
163
+ startIcon?: JSX.Element;
164
+ /**
165
+ * Control whether the tab is disabled.
166
+ */
167
+ disabled?: boolean;
168
+ /**
169
+ * Custom content appended to the tab.
170
+ */
171
+ children?: React.ReactNode;
172
+ /**
173
+ * `value` of the tab.
174
+ *
175
+ * Will be set by parent `Tabs` component.
176
+ */
177
+ value?: string;
178
+ };
102
179
  /**
103
- * Tabs organize and allow navigation between groups of content that are related and at the same level of hierarchy.
180
+ * Legacy Tab component.
181
+ * For full functionality use composition API.
182
+ *
183
+ * Individual tab component to be used in the `labels` prop of `Tabs`.
104
184
  * @example
105
185
  * const tabs = [
106
- * <Tab label='Label 1' />,
107
- * <Tab label='Label 2' />,
108
- * <Tab label='Label 3' />,
186
+ * <Tab label='Label 1' sublabel='Description 1' />,
187
+ * <Tab label='Label 2' startIcon={<SvgPlaceholder />} />,
109
188
  * ];
110
- * <Tabs labels={tabs} />
111
- *
189
+ */
190
+ declare const LegacyTab: PolymorphicForwardRefComponent<"button", TabLegacyProps>;
191
+ export { LegacyTab as Tab };
192
+ /**
193
+ * Tabs organize and allow navigation between groups of content that are related and at the same level of hierarchy.
194
+ * `Tabs.Tab` and `Tabs.Panel` can be associated with each other by passing them the same `value`.
112
195
  * @example
113
- * <Tabs orientation='vertical' labels={tabs} />
196
+ * <Tabs.Wrapper>
197
+ * <Tabs.TabList>
198
+ * <Tabs.Tab value='tab1' label='Label 1' />
199
+ * <Tabs.Tab value='tab2' label='Label 2' />
200
+ * <Tabs.Tab value='tab3' label='Label 3' />
201
+ * </Tabs.TabList>
202
+ * <Tabs.ActionsWrapper>
203
+ * <Tabs.Actions>
204
+ * <Button>Sample Button</Button>
205
+ * </Tabs.Actions>
206
+ * </Tabs.ActionsWrapper>
207
+ * <Tabs.Panel value='tab1'>Content 1</Tabs.Panel>
208
+ * <Tabs.Panel value='tab2'>Content 2</Tabs.Panel>
209
+ * <Tabs.Panel value='tab3'>Content 3</Tabs.Panel>
210
+ * </Tabs.Wrapper>
114
211
  *
115
212
  * @example
116
- * const tabsWithSublabels = [
117
- * <Tab label='Label 1' sublabel='First tab' />,
118
- * <Tab label='Label 2' sublabel='Active tab' />,
119
- * ];
120
- * <Tabs labels={tabsWithSublabels} activeIndex={1} />
213
+ * <Tabs orientation='vertical'/>
121
214
  *
122
215
  * @example
123
- * const tabsWithIcons = [
124
- * <Tab label='Label 1' icon={<SvgPlaceholder />} />,
125
- * <Tab label='Label 2' icon={<SvgPlaceholder />} />,
126
- * ];
127
- * <Tabs labels={tabsWithIcons} type='pill' />
216
+ * <Tabs.Wrapper focusActivationMode='manual'>
217
+ * <Tabs.Tab value='sample'>
218
+ * <Tabs.TabIcon>
219
+ * <SvgPlaceholder />
220
+ * </Tabs.TabIcon>
221
+ * <Tabs.TabLabel>Sample Label</Tabs.TabLabel>
222
+ * <Tabs.TabDescription>Sample Description</Tabs.TabDescription>
223
+ * </Tabs.Tab>
224
+ * </Tabs.Wrapper>
128
225
  */
129
- export declare const Tabs: (props: TabsProps) => React.JSX.Element;
226
+ export declare const Tabs: PolymorphicForwardRefComponent<"div", TabsLegacyProps> & {
227
+ /**
228
+ * A wrapper component for Tabs
229
+ */
230
+ Wrapper: PolymorphicForwardRefComponent<"div", TabsWrapperOwnProps>;
231
+ /**
232
+ * Tablist subcomponent which contains all of the tab subcomponents.
233
+ * @example
234
+ * <Tabs.TabList>
235
+ * <Tabs.Tab value='tab1' label='Label 1' />
236
+ * <Tabs.Tab value='tab2' label='Label 2' />
237
+ * <Tabs.Tab value='tab3' label='Label 3' />
238
+ * </Tabs.TabList>
239
+ *
240
+ * @example
241
+ * <Tabs.TabList>
242
+ * <Tabs.Tab value='tab1' label='Green Tab' />
243
+ * </Tabs.TabList>
244
+ *
245
+ * @example
246
+ * <Tabs.TabList focusActivationMode='manual'>
247
+ * <Tabs.Tab value='tab1' label='Manual Focus Tab' />
248
+ * </Tabs.TabList>
249
+ */
250
+ TabList: PolymorphicForwardRefComponent<"div", TabListOwnProps>;
251
+ /**
252
+ * Tab subcomponent which is used for each of the tabs.
253
+ * @example
254
+ * <Tabs.Tab value='tab1' label='Label 1' />
255
+ *
256
+ * @example
257
+ * <Tabs.Tab value='sample'>
258
+ * <Tabs.TabIcon>
259
+ * <SvgPlaceholder />
260
+ * </Tabs.TabIcon>
261
+ * <Tabs.TabLabel>Sample Label</Tabs.TabLabel>
262
+ * <Tabs.TabDescription>Sample Description</Tabs.TabDescription>
263
+ * </Tabs.Tab>
264
+ *
265
+ */
266
+ Tab: PolymorphicForwardRefComponent<"button", TabOwnProps>;
267
+ /**
268
+ * Tab icon subcomponent which places an icon on the left side of the tab.
269
+ */
270
+ TabIcon: PolymorphicForwardRefComponent<"span", Omit<Omit<React.DetailedHTMLProps<React.HTMLAttributes<HTMLSpanElement>, HTMLSpanElement>, "ref"> & {
271
+ ref?: ((instance: HTMLSpanElement | null) => void) | React.RefObject<HTMLSpanElement> | null | undefined;
272
+ }, "fill" | "as" | "key" | "size" | keyof React.HTMLAttributes<HTMLSpanElement> | "padded"> & {
273
+ size?: "small" | "auto" | "medium" | "large" | import("../utils/types.js").AnyString | undefined;
274
+ fill?: "default" | "informational" | "negative" | "positive" | "warning" | import("../utils/types.js").AnyString | undefined;
275
+ padded?: boolean | undefined;
276
+ } & Omit<React.DetailedHTMLProps<React.HTMLAttributes<HTMLSpanElement>, HTMLSpanElement>, "ref"> & {
277
+ as?: "span" | undefined;
278
+ }>;
279
+ /**
280
+ * Tab label subcomponent which holds the tab's label.
281
+ */
282
+ TabLabel: PolymorphicForwardRefComponent<"span", {}>;
283
+ /**
284
+ * Tab description subcomponent which places a description under the tab label.
285
+ */
286
+ TabDescription: PolymorphicForwardRefComponent<"span", {}>;
287
+ /**
288
+ * Tab actions subcomponent which contains action buttons that are placed at the end of the tabs.
289
+ */
290
+ Actions: PolymorphicForwardRefComponent<"div", TabsActionsOwnProps>;
291
+ /**
292
+ * Tab panel subcomponent which contains the tab's content.
293
+ * @example
294
+ * <Tabs.Panel value='tab1'>
295
+ * Sample Panel
296
+ * </Tabs.Panel>
297
+ */
298
+ Panel: PolymorphicForwardRefComponent<"div", TabsPanelOwnProps>;
299
+ };
130
300
  export default Tabs;