@true-engineering/true-react-common-ui-kit 3.8.0 → 3.8.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.
Files changed (117) hide show
  1. package/LICENSE +201 -201
  2. package/README.md +6 -0
  3. package/dist/components/NewMoreMenu/NewMoreMenu.d.ts +1 -1
  4. package/dist/components/WithPopup/WithPopup.d.ts +2 -0
  5. package/dist/true-react-common-ui-kit.js +62 -60
  6. package/dist/true-react-common-ui-kit.js.map +1 -1
  7. package/dist/true-react-common-ui-kit.umd.cjs +62 -60
  8. package/dist/true-react-common-ui-kit.umd.cjs.map +1 -1
  9. package/package.json +1 -1
  10. package/src/components/AccountInfo/AccountInfo.stories.tsx +32 -32
  11. package/src/components/AccountInfo/AccountInfo.tsx +80 -80
  12. package/src/components/AddButton/AddButton.stories.tsx +21 -21
  13. package/src/components/AddButton/AddButton.tsx +52 -52
  14. package/src/components/Button/Button.stories.tsx +56 -56
  15. package/src/components/Button/Button.tsx +129 -129
  16. package/src/components/Checkbox/Checkbox.stories.tsx +28 -28
  17. package/src/components/Checkbox/Checkbox.tsx +85 -85
  18. package/src/components/CloseButton/CloseButton.tsx +34 -34
  19. package/src/components/Colors/Colors.stories.tsx +7 -7
  20. package/src/components/DateInput/DateInput.tsx +90 -90
  21. package/src/components/DateInput/constants.ts +2 -2
  22. package/src/components/DatePicker/DatePicker.tsx +308 -308
  23. package/src/components/Description/Description.stories.tsx +27 -27
  24. package/src/components/Description/Description.tsx +61 -61
  25. package/src/components/FiltersPane/FiltersPane.tsx +158 -158
  26. package/src/components/FiltersPane/components/Filter/Filter.tsx +203 -203
  27. package/src/components/FiltersPane/components/FilterValueView/FilterValueView.tsx +166 -166
  28. package/src/components/FiltersPane/components/FilterWithDates/FilterWithDates.tsx +210 -210
  29. package/src/components/FiltersPane/components/FilterWithPeriod/FilterWithPeriod.tsx +177 -177
  30. package/src/components/FiltersPane/components/FilterWrapper/FilterWrapper.tsx +167 -167
  31. package/src/components/Flag/Flag.stories.tsx +29 -29
  32. package/src/components/Flag/Flag.tsx +26 -26
  33. package/src/components/Flag/augment.d.ts +1 -1
  34. package/src/components/FlexibleTable/FlexibleTable.stories.tsx +267 -267
  35. package/src/components/FlexibleTable/FlexibleTable.styles.ts +110 -110
  36. package/src/components/FlexibleTable/FlexibleTable.tsx +271 -271
  37. package/src/components/FlexibleTable/components/FlexibleTableCell/FlexibleTableCell.styles.ts +38 -38
  38. package/src/components/FlexibleTable/components/FlexibleTableCell/FlexibleTableCell.tsx +83 -83
  39. package/src/components/FlexibleTable/components/FlexibleTableRow/FlexibleTableRow.styles.ts +25 -25
  40. package/src/components/FlexibleTable/components/FlexibleTableRow/FlexibleTableRow.tsx +196 -196
  41. package/src/components/FlexibleTable/helpers.ts +13 -13
  42. package/src/components/FlexibleTable/types.ts +52 -52
  43. package/src/components/Icon/Icon.stories.tsx +86 -86
  44. package/src/components/Icon/complexIcons/augment.d.ts +1 -1
  45. package/src/components/Icon/complexIcons/avatarGreen.svg +57 -57
  46. package/src/components/Icon/complexIcons/index.ts +1 -1
  47. package/src/components/IncrementInput/IncrementInput.tsx +105 -105
  48. package/src/components/Input/Input.tsx +297 -297
  49. package/src/components/Input/types.ts +32 -32
  50. package/src/components/List/List.stories.tsx +70 -70
  51. package/src/components/List/List.tsx +33 -33
  52. package/src/components/List/components/ListItem/ListItem.tsx +57 -57
  53. package/src/components/Modal/Modal.stories.tsx +105 -105
  54. package/src/components/Modal/Modal.tsx +196 -196
  55. package/src/components/MoreMenu/MoreMenu.styles.ts +68 -68
  56. package/src/components/MultiSelect/MultiSelect.stories.tsx +46 -46
  57. package/src/components/MultiSelect/MultiSelect.tsx +106 -106
  58. package/src/components/MultiSelect/components/MultiSelectInput/MultiSelectInput.tsx +53 -53
  59. package/src/components/MultiSelectList/MultiSelectList.tsx +461 -461
  60. package/src/components/NewMoreMenu/NewMoreMenu.stories.tsx +1 -0
  61. package/src/components/NewMoreMenu/NewMoreMenu.tsx +3 -1
  62. package/src/components/Notification/Notification.stories.tsx +46 -46
  63. package/src/components/Notification/Notification.tsx +69 -69
  64. package/src/components/NumberInput/NumberInput.tsx +137 -137
  65. package/src/components/NumberInput/index.ts +1 -1
  66. package/src/components/PhoneInput/PhoneInput.tsx +214 -214
  67. package/src/components/PhoneInput/components/PhoneInputCountryList/PhoneInputCountryList.tsx +155 -155
  68. package/src/components/PhoneInput/types.ts +16 -16
  69. package/src/components/RadioButton/RadioButton.stories.tsx +46 -46
  70. package/src/components/RadioButton/RadioButton.tsx +57 -57
  71. package/src/components/ScrollIntoViewIfNeeded/index.ts +1 -1
  72. package/src/components/Select/CustomSelect.stories.tsx +217 -217
  73. package/src/components/Select/MultiSelect.stories.tsx +240 -240
  74. package/src/components/Select/Select.stories.tsx +235 -235
  75. package/src/components/Select/Select.tsx +580 -580
  76. package/src/components/Select/components/SelectList/SelectList.tsx +157 -157
  77. package/src/components/Select/components/SelectListItem/SelectListItem.tsx +68 -68
  78. package/src/components/Select/constants.ts +2 -2
  79. package/src/components/Select/types.ts +1 -1
  80. package/src/components/Selector/Selector.stories.tsx +62 -62
  81. package/src/components/Selector/Selector.styles.ts +164 -164
  82. package/src/components/Selector/Selector.tsx +115 -115
  83. package/src/components/Selector/index.ts +2 -2
  84. package/src/components/Selector/types.ts +12 -12
  85. package/src/components/Skeleton/Skeleton.stories.tsx +19 -19
  86. package/src/components/SmartInput/SmartInput.tsx +134 -134
  87. package/src/components/Status/Status.stories.tsx +73 -73
  88. package/src/components/Status/Status.styles.ts +143 -143
  89. package/src/components/Status/Status.tsx +49 -49
  90. package/src/components/Status/constants.ts +11 -11
  91. package/src/components/Status/index.ts +3 -3
  92. package/src/components/Status/types.ts +5 -5
  93. package/src/components/Switch/Switch.stories.tsx +40 -40
  94. package/src/components/Switch/Switch.tsx +75 -75
  95. package/src/components/TextArea/TextArea.tsx +180 -180
  96. package/src/components/TextButton/TextButton.stories.tsx +46 -46
  97. package/src/components/TextButton/TextButton.styles.ts +129 -129
  98. package/src/components/TextButton/TextButton.tsx +103 -103
  99. package/src/components/TextButton/index.ts +4 -4
  100. package/src/components/TextWithInfo/TextWithInfo.stories.tsx +53 -53
  101. package/src/components/TextWithInfo/TextWithInfo.tsx +62 -62
  102. package/src/components/TextWithTooltip/TextWithTooltip.stories.tsx +58 -58
  103. package/src/components/ThemedPreloader/ThemedPreloader.stories.tsx +41 -41
  104. package/src/components/ThemedPreloader/ThemedPreloader.tsx +54 -54
  105. package/src/components/ThemedPreloader/components/DefaultPreloader/index.ts +1 -1
  106. package/src/components/Toaster/Toaster.stories.tsx +30 -30
  107. package/src/components/Toaster/Toaster.tsx +108 -108
  108. package/src/components/Tooltip/Tooltip.stories.tsx +19 -19
  109. package/src/components/Tooltip/Tooltip.tsx +35 -35
  110. package/src/components/Tooltip/types.ts +1 -1
  111. package/src/components/WithPopup/WithPopup.stories.tsx +1 -0
  112. package/src/components/WithPopup/WithPopup.tsx +7 -1
  113. package/src/helpers/popper-helpers.ts +17 -17
  114. package/src/hooks/use-dropdown.ts +84 -84
  115. package/src/hooks/use-is-mounted.ts +15 -15
  116. package/src/theme/helpers.ts +76 -76
  117. package/src/vite-env.d.ts +1 -1
@@ -1,180 +1,180 @@
1
- import {
2
- useRef,
3
- useState,
4
- FC,
5
- useEffect,
6
- FormEvent,
7
- FocusEvent,
8
- ChangeEvent,
9
- ClipboardEvent,
10
- } from 'react';
11
- import clsx from 'clsx';
12
- import { addDataAttributes, trimStringToMaxLength } from '../../helpers';
13
- import { ICommonProps } from '../../types';
14
- import { useStyles, ITextAreaStyles } from './TextArea.styles';
15
-
16
- export interface ITextAreaProps extends ICommonProps<ITextAreaStyles> {
17
- value?: string;
18
- label?: string;
19
- placeholder?: string;
20
- /** @default false */
21
- isDisabled?: boolean;
22
- /** @default true */
23
- hasFloatingLabel?: boolean;
24
- /** @default false */
25
- isInvalid?: boolean;
26
- /** @default false */
27
- isActive?: boolean;
28
- infoMessage?: string;
29
- errorMessage?: string;
30
- /** @default false */
31
- isRequired?: boolean;
32
- name?: string;
33
- /** @default false */
34
- hasRequiredLabel?: boolean;
35
- /** @default false */
36
- shouldFocusOnMount?: boolean;
37
- /** @default true */
38
- hasCounter?: boolean;
39
- /** @default false */
40
- shouldTrimAfterMaxLength?: boolean;
41
- maxLength?: number;
42
- rows?: number;
43
- onChange: (value: string, event?: FormEvent<HTMLTextAreaElement>) => void;
44
- onFocus?: (event: FocusEvent<HTMLTextAreaElement>) => void;
45
- onBlur?: (event: FocusEvent<HTMLTextAreaElement>) => void;
46
- onPaste?: (event: ClipboardEvent<HTMLTextAreaElement>) => void;
47
- }
48
-
49
- const DEFAULT_VALUE = '';
50
-
51
- export const TextArea: FC<ITextAreaProps> = ({
52
- value = DEFAULT_VALUE,
53
- label,
54
- placeholder,
55
- isDisabled,
56
- hasFloatingLabel = true,
57
- isInvalid = false,
58
- isActive = false,
59
- infoMessage,
60
- errorMessage,
61
- isRequired = false,
62
- name,
63
- hasRequiredLabel = false,
64
- shouldFocusOnMount = false,
65
- hasCounter = true,
66
- shouldTrimAfterMaxLength = false,
67
- maxLength,
68
- rows,
69
- testId,
70
- data,
71
- tweakStyles,
72
- onChange,
73
- onPaste,
74
- onFocus,
75
- onBlur,
76
- }) => {
77
- const classes = useStyles({ theme: tweakStyles });
78
- const [isFocused, setFocused] = useState(false);
79
- const ref = useRef<HTMLTextAreaElement>(null);
80
-
81
- const handleOnChange = (event: ChangeEvent<HTMLTextAreaElement>) => {
82
- const newValue = event.currentTarget.value;
83
- onChange(
84
- shouldTrimAfterMaxLength && maxLength !== undefined
85
- ? trimStringToMaxLength(newValue, maxLength)
86
- : newValue,
87
- event,
88
- );
89
- };
90
-
91
- const handleOnFocus = (event: FocusEvent<HTMLTextAreaElement>) => {
92
- setFocused(true);
93
- if (onFocus !== undefined) {
94
- onFocus(event);
95
- }
96
- };
97
-
98
- const handleOnBlur = (event: FocusEvent<HTMLTextAreaElement>) => {
99
- setFocused(false);
100
- if (onBlur !== undefined) {
101
- onBlur(event);
102
- }
103
- };
104
-
105
- const hasFocus = isFocused || isActive;
106
- const hasValue = value !== undefined && value !== '';
107
- const hasLabel = label !== undefined && label !== '';
108
- const hasPlaceholder = (!hasLabel || hasFocus) && placeholder !== undefined && placeholder !== '';
109
-
110
- const props = {
111
- className: clsx(classes.textarea, hasFloatingLabel && hasLabel && classes.withFloatingLabel),
112
- onFocus: handleOnFocus,
113
- onBlur: handleOnBlur,
114
- onChange: handleOnChange,
115
- value,
116
- onPaste,
117
- disabled: isDisabled,
118
- placeholder: hasPlaceholder ? placeholder : undefined,
119
- name,
120
- autoFocus: shouldFocusOnMount,
121
- 'data-testid': testId,
122
- rows,
123
- };
124
-
125
- useEffect(() => {
126
- const { current: textarea } = ref;
127
- if (textarea === null) {
128
- return;
129
- }
130
- // Нужно для того, чтобы TextArea уменьшалась при стирании значения.
131
- textarea.style.height = 'auto';
132
- textarea.style.height = `${textarea.scrollHeight}px`;
133
- }, [value]);
134
-
135
- const hasInfoMessage = infoMessage !== undefined && infoMessage !== '';
136
- const hasErrorMessage = errorMessage !== undefined && errorMessage !== '';
137
-
138
- return (
139
- <div className={classes.root} {...addDataAttributes(data)}>
140
- <div
141
- className={clsx(classes.wrapper, {
142
- [classes.required]: isRequired && !hasRequiredLabel,
143
- [classes.invalid]: isInvalid,
144
- [classes.focused]: hasFocus,
145
- [classes.disabled]: isDisabled,
146
- })}
147
- >
148
- {label && (
149
- <span
150
- className={clsx(classes.label, {
151
- [classes.invalidLabel]: isInvalid,
152
- [classes.requiredLabel]: hasRequiredLabel && !isRequired,
153
- [classes.activeLabel]: hasFocus || hasValue,
154
- [classes.floating]: hasFloatingLabel,
155
- })}
156
- >
157
- {label}
158
- </span>
159
- )}
160
- <textarea ref={ref} {...props} />
161
- </div>
162
-
163
- <div className={classes.footer}>
164
- {hasInfoMessage && <div className={classes.info}>{infoMessage}</div>}
165
- {!hasInfoMessage && hasErrorMessage && <div className={classes.error}>{errorMessage}</div>}
166
- {hasCounter && maxLength !== undefined && (
167
- <span
168
- className={clsx(
169
- classes.symbolsCount,
170
- value.length > maxLength && classes.symbolsCountError,
171
- )}
172
- >
173
- {value.length} / {maxLength}
174
- </span>
175
- )}
176
- </div>
177
- {hasInfoMessage && hasErrorMessage && <div className={classes.error}>{errorMessage}</div>}
178
- </div>
179
- );
180
- };
1
+ import {
2
+ useRef,
3
+ useState,
4
+ FC,
5
+ useEffect,
6
+ FormEvent,
7
+ FocusEvent,
8
+ ChangeEvent,
9
+ ClipboardEvent,
10
+ } from 'react';
11
+ import clsx from 'clsx';
12
+ import { addDataAttributes, trimStringToMaxLength } from '../../helpers';
13
+ import { ICommonProps } from '../../types';
14
+ import { useStyles, ITextAreaStyles } from './TextArea.styles';
15
+
16
+ export interface ITextAreaProps extends ICommonProps<ITextAreaStyles> {
17
+ value?: string;
18
+ label?: string;
19
+ placeholder?: string;
20
+ /** @default false */
21
+ isDisabled?: boolean;
22
+ /** @default true */
23
+ hasFloatingLabel?: boolean;
24
+ /** @default false */
25
+ isInvalid?: boolean;
26
+ /** @default false */
27
+ isActive?: boolean;
28
+ infoMessage?: string;
29
+ errorMessage?: string;
30
+ /** @default false */
31
+ isRequired?: boolean;
32
+ name?: string;
33
+ /** @default false */
34
+ hasRequiredLabel?: boolean;
35
+ /** @default false */
36
+ shouldFocusOnMount?: boolean;
37
+ /** @default true */
38
+ hasCounter?: boolean;
39
+ /** @default false */
40
+ shouldTrimAfterMaxLength?: boolean;
41
+ maxLength?: number;
42
+ rows?: number;
43
+ onChange: (value: string, event?: FormEvent<HTMLTextAreaElement>) => void;
44
+ onFocus?: (event: FocusEvent<HTMLTextAreaElement>) => void;
45
+ onBlur?: (event: FocusEvent<HTMLTextAreaElement>) => void;
46
+ onPaste?: (event: ClipboardEvent<HTMLTextAreaElement>) => void;
47
+ }
48
+
49
+ const DEFAULT_VALUE = '';
50
+
51
+ export const TextArea: FC<ITextAreaProps> = ({
52
+ value = DEFAULT_VALUE,
53
+ label,
54
+ placeholder,
55
+ isDisabled,
56
+ hasFloatingLabel = true,
57
+ isInvalid = false,
58
+ isActive = false,
59
+ infoMessage,
60
+ errorMessage,
61
+ isRequired = false,
62
+ name,
63
+ hasRequiredLabel = false,
64
+ shouldFocusOnMount = false,
65
+ hasCounter = true,
66
+ shouldTrimAfterMaxLength = false,
67
+ maxLength,
68
+ rows,
69
+ testId,
70
+ data,
71
+ tweakStyles,
72
+ onChange,
73
+ onPaste,
74
+ onFocus,
75
+ onBlur,
76
+ }) => {
77
+ const classes = useStyles({ theme: tweakStyles });
78
+ const [isFocused, setFocused] = useState(false);
79
+ const ref = useRef<HTMLTextAreaElement>(null);
80
+
81
+ const handleOnChange = (event: ChangeEvent<HTMLTextAreaElement>) => {
82
+ const newValue = event.currentTarget.value;
83
+ onChange(
84
+ shouldTrimAfterMaxLength && maxLength !== undefined
85
+ ? trimStringToMaxLength(newValue, maxLength)
86
+ : newValue,
87
+ event,
88
+ );
89
+ };
90
+
91
+ const handleOnFocus = (event: FocusEvent<HTMLTextAreaElement>) => {
92
+ setFocused(true);
93
+ if (onFocus !== undefined) {
94
+ onFocus(event);
95
+ }
96
+ };
97
+
98
+ const handleOnBlur = (event: FocusEvent<HTMLTextAreaElement>) => {
99
+ setFocused(false);
100
+ if (onBlur !== undefined) {
101
+ onBlur(event);
102
+ }
103
+ };
104
+
105
+ const hasFocus = isFocused || isActive;
106
+ const hasValue = value !== undefined && value !== '';
107
+ const hasLabel = label !== undefined && label !== '';
108
+ const hasPlaceholder = (!hasLabel || hasFocus) && placeholder !== undefined && placeholder !== '';
109
+
110
+ const props = {
111
+ className: clsx(classes.textarea, hasFloatingLabel && hasLabel && classes.withFloatingLabel),
112
+ onFocus: handleOnFocus,
113
+ onBlur: handleOnBlur,
114
+ onChange: handleOnChange,
115
+ value,
116
+ onPaste,
117
+ disabled: isDisabled,
118
+ placeholder: hasPlaceholder ? placeholder : undefined,
119
+ name,
120
+ autoFocus: shouldFocusOnMount,
121
+ 'data-testid': testId,
122
+ rows,
123
+ };
124
+
125
+ useEffect(() => {
126
+ const { current: textarea } = ref;
127
+ if (textarea === null) {
128
+ return;
129
+ }
130
+ // Нужно для того, чтобы TextArea уменьшалась при стирании значения.
131
+ textarea.style.height = 'auto';
132
+ textarea.style.height = `${textarea.scrollHeight}px`;
133
+ }, [value]);
134
+
135
+ const hasInfoMessage = infoMessage !== undefined && infoMessage !== '';
136
+ const hasErrorMessage = errorMessage !== undefined && errorMessage !== '';
137
+
138
+ return (
139
+ <div className={classes.root} {...addDataAttributes(data)}>
140
+ <div
141
+ className={clsx(classes.wrapper, {
142
+ [classes.required]: isRequired && !hasRequiredLabel,
143
+ [classes.invalid]: isInvalid,
144
+ [classes.focused]: hasFocus,
145
+ [classes.disabled]: isDisabled,
146
+ })}
147
+ >
148
+ {label && (
149
+ <span
150
+ className={clsx(classes.label, {
151
+ [classes.invalidLabel]: isInvalid,
152
+ [classes.requiredLabel]: hasRequiredLabel && !isRequired,
153
+ [classes.activeLabel]: hasFocus || hasValue,
154
+ [classes.floating]: hasFloatingLabel,
155
+ })}
156
+ >
157
+ {label}
158
+ </span>
159
+ )}
160
+ <textarea ref={ref} {...props} />
161
+ </div>
162
+
163
+ <div className={classes.footer}>
164
+ {hasInfoMessage && <div className={classes.info}>{infoMessage}</div>}
165
+ {!hasInfoMessage && hasErrorMessage && <div className={classes.error}>{errorMessage}</div>}
166
+ {hasCounter && maxLength !== undefined && (
167
+ <span
168
+ className={clsx(
169
+ classes.symbolsCount,
170
+ value.length > maxLength && classes.symbolsCountError,
171
+ )}
172
+ >
173
+ {value.length} / {maxLength}
174
+ </span>
175
+ )}
176
+ </div>
177
+ {hasInfoMessage && hasErrorMessage && <div className={classes.error}>{errorMessage}</div>}
178
+ </div>
179
+ );
180
+ };
@@ -1,46 +1,46 @@
1
- import { ComponentStory, ComponentMeta } from '@storybook/react';
2
- import { IIconType, iconsList } from '../Icon';
3
- import { complexIcons } from '../Icon/complexIcons';
4
- import { TextButton } from './TextButton';
5
-
6
- const iconTypes = [
7
- undefined,
8
- ...Object.keys(iconsList),
9
- ...Object.keys(complexIcons),
10
- ] as IIconType[];
11
-
12
- export default {
13
- title: 'Buttons/TextButton',
14
- component: TextButton,
15
- args: {
16
- children: 'Text Button',
17
- icon: 'chevron-right-small',
18
- size: 'l',
19
- view: 'primary',
20
- isBold: false,
21
- isLoading: false,
22
- isActive: false,
23
- isDisabled: false,
24
- hasCircleUnderIcon: true,
25
- iconPosition: 'left',
26
- preloaderType: 'dots',
27
- },
28
-
29
- argTypes: {
30
- icon: { control: 'select', options: iconTypes },
31
- size: { control: 'inline-radio' },
32
- view: { control: 'inline-radio' },
33
- iconPosition: { control: 'inline-radio' },
34
- preloaderType: { control: 'inline-radio' },
35
- },
36
-
37
- parameters: {
38
- controls: {
39
- exclude: ['testId', 'tweakStyles', 'data', 'onClick'],
40
- },
41
- },
42
- } as ComponentMeta<typeof TextButton>;
43
-
44
- export const Default: ComponentStory<typeof TextButton> = (args) => (
45
- <TextButton {...args} key={args.size} />
46
- );
1
+ import { ComponentStory, ComponentMeta } from '@storybook/react';
2
+ import { IIconType, iconsList } from '../Icon';
3
+ import { complexIcons } from '../Icon/complexIcons';
4
+ import { TextButton } from './TextButton';
5
+
6
+ const iconTypes = [
7
+ undefined,
8
+ ...Object.keys(iconsList),
9
+ ...Object.keys(complexIcons),
10
+ ] as IIconType[];
11
+
12
+ export default {
13
+ title: 'Buttons/TextButton',
14
+ component: TextButton,
15
+ args: {
16
+ children: 'Text Button',
17
+ icon: 'chevron-right-small',
18
+ size: 'l',
19
+ view: 'primary',
20
+ isBold: false,
21
+ isLoading: false,
22
+ isActive: false,
23
+ isDisabled: false,
24
+ hasCircleUnderIcon: true,
25
+ iconPosition: 'left',
26
+ preloaderType: 'dots',
27
+ },
28
+
29
+ argTypes: {
30
+ icon: { control: 'select', options: iconTypes },
31
+ size: { control: 'inline-radio' },
32
+ view: { control: 'inline-radio' },
33
+ iconPosition: { control: 'inline-radio' },
34
+ preloaderType: { control: 'inline-radio' },
35
+ },
36
+
37
+ parameters: {
38
+ controls: {
39
+ exclude: ['testId', 'tweakStyles', 'data', 'onClick'],
40
+ },
41
+ },
42
+ } as ComponentMeta<typeof TextButton>;
43
+
44
+ export const Default: ComponentStory<typeof TextButton> = (args) => (
45
+ <TextButton {...args} key={args.size} />
46
+ );