reshaped 3.8.8 → 3.9.0-canary.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 (191) hide show
  1. package/dist/bundle.css +1 -1
  2. package/dist/bundle.js +11 -11
  3. package/dist/components/Button/Button.module.css +1 -1
  4. package/dist/components/Card/Card.d.ts +1 -1
  5. package/dist/components/Divider/Divider.js +3 -3
  6. package/dist/components/Divider/Divider.module.css +1 -1
  7. package/dist/components/Divider/Divider.types.d.ts +6 -0
  8. package/dist/components/DropdownMenu/DropdownMenu.js +1 -1
  9. package/dist/components/DropdownMenu/DropdownMenu.types.d.ts +1 -1
  10. package/dist/components/Flyout/Flyout.constants.d.ts +1 -3
  11. package/dist/components/Flyout/Flyout.constants.js +1 -3
  12. package/dist/components/Flyout/Flyout.types.d.ts +2 -0
  13. package/dist/components/Flyout/FlyoutControlled.js +10 -11
  14. package/dist/components/Flyout/utilities/cooldown.js +1 -2
  15. package/dist/components/Icon/Icon.module.css +1 -1
  16. package/dist/components/Popover/Popover.types.d.ts +1 -1
  17. package/dist/components/Progress/Progress.module.css +1 -1
  18. package/dist/components/Select/Select.module.css +1 -1
  19. package/dist/components/Select/Select.types.d.ts +16 -11
  20. package/dist/components/Select/SelectCustomControlled.js +27 -10
  21. package/dist/components/Select/SelectGroup.d.ts +4 -0
  22. package/dist/components/Select/SelectGroup.js +10 -0
  23. package/dist/components/Select/SelectTrigger.js +1 -1
  24. package/dist/components/Select/index.d.ts +3 -2
  25. package/dist/components/Select/index.js +3 -2
  26. package/dist/components/Tabs/TabsContext.d.ts +1 -1
  27. package/dist/components/TextArea/TextArea.module.css +1 -1
  28. package/dist/components/TextArea/TextArea.types.d.ts +1 -1
  29. package/dist/components/TextField/TextField.module.css +1 -1
  30. package/dist/components/TextField/TextField.types.d.ts +1 -1
  31. package/dist/components/Tooltip/Tooltip.types.d.ts +1 -1
  32. package/dist/config/tailwind.d.ts +1 -1
  33. package/package.json +31 -30
  34. package/dist/components/Accordion/tests/Accordion.stories.d.ts +0 -44
  35. package/dist/components/Accordion/tests/Accordion.stories.js +0 -204
  36. package/dist/components/ActionBar/tests/ActionBar.stories.d.ts +0 -40
  37. package/dist/components/ActionBar/tests/ActionBar.stories.js +0 -223
  38. package/dist/components/Actionable/tests/Actionable.stories.d.ts +0 -41
  39. package/dist/components/Actionable/tests/Actionable.stories.js +0 -220
  40. package/dist/components/Alert/tests/Alert.stories.d.ts +0 -24
  41. package/dist/components/Alert/tests/Alert.stories.js +0 -78
  42. package/dist/components/Autocomplete/tests/Autocomplete.stories.d.ts +0 -32
  43. package/dist/components/Autocomplete/tests/Autocomplete.stories.js +0 -246
  44. package/dist/components/Avatar/tests/Avatar.stories.d.ts +0 -31
  45. package/dist/components/Avatar/tests/Avatar.stories.js +0 -176
  46. package/dist/components/Badge/tests/Badge.stories.d.ts +0 -55
  47. package/dist/components/Badge/tests/Badge.stories.js +0 -328
  48. package/dist/components/Breadcrumbs/tests/Breadcrumbs.stories.d.ts +0 -40
  49. package/dist/components/Breadcrumbs/tests/Breadcrumbs.stories.js +0 -187
  50. package/dist/components/Button/tests/Button.stories.d.ts +0 -79
  51. package/dist/components/Button/tests/Button.stories.js +0 -789
  52. package/dist/components/Calendar/tests/Calendar.stories.d.ts +0 -29
  53. package/dist/components/Calendar/tests/Calendar.stories.js +0 -255
  54. package/dist/components/Card/tests/Card.stories.d.ts +0 -52
  55. package/dist/components/Card/tests/Card.stories.js +0 -125
  56. package/dist/components/Carousel/tests/Carousel.stories.d.ts +0 -34
  57. package/dist/components/Carousel/tests/Carousel.stories.js +0 -224
  58. package/dist/components/Checkbox/tests/Checkbox.stories.d.ts +0 -30
  59. package/dist/components/Checkbox/tests/Checkbox.stories.js +0 -171
  60. package/dist/components/CheckboxGroup/tests/CheckboxGroup.stories.d.ts +0 -19
  61. package/dist/components/CheckboxGroup/tests/CheckboxGroup.stories.js +0 -83
  62. package/dist/components/Container/tests/Container.stories.d.ts +0 -24
  63. package/dist/components/Container/tests/Container.stories.js +0 -75
  64. package/dist/components/ContextMenu/tests/ContextMenu.stories.d.ts +0 -26
  65. package/dist/components/ContextMenu/tests/ContextMenu.stories.js +0 -70
  66. package/dist/components/Dismissible/tests/Dismissible.stories.d.ts +0 -25
  67. package/dist/components/Dismissible/tests/Dismissible.stories.js +0 -97
  68. package/dist/components/Divider/tests/Divider.stories.d.ts +0 -18
  69. package/dist/components/Divider/tests/Divider.stories.js +0 -94
  70. package/dist/components/DropdownMenu/tests/DropdownMenu.stories.d.ts +0 -53
  71. package/dist/components/DropdownMenu/tests/DropdownMenu.stories.js +0 -278
  72. package/dist/components/FileUpload/tests/FileUpload.stories.d.ts +0 -31
  73. package/dist/components/FileUpload/tests/FileUpload.stories.js +0 -140
  74. package/dist/components/Flyout/tests/Flyout.stories.d.ts +0 -102
  75. package/dist/components/Flyout/tests/Flyout.stories.js +0 -708
  76. package/dist/components/FormControl/tests/FormControl.stories.d.ts +0 -31
  77. package/dist/components/FormControl/tests/FormControl.stories.js +0 -143
  78. package/dist/components/Grid/tests/Grid.stories.d.ts +0 -38
  79. package/dist/components/Grid/tests/Grid.stories.js +0 -245
  80. package/dist/components/Hidden/tests/Hidden.stories.d.ts +0 -16
  81. package/dist/components/Hidden/tests/Hidden.stories.js +0 -48
  82. package/dist/components/HiddenVisually/tests/HiddenVisually.stories.d.ts +0 -16
  83. package/dist/components/HiddenVisually/tests/HiddenVisually.stories.js +0 -28
  84. package/dist/components/Hotkey/tests/Hotkey.stories.d.ts +0 -13
  85. package/dist/components/Hotkey/tests/Hotkey.stories.js +0 -53
  86. package/dist/components/Icon/tests/Icon.stories.d.ts +0 -25
  87. package/dist/components/Icon/tests/Icon.stories.js +0 -113
  88. package/dist/components/Image/tests/Image.stories.d.ts +0 -41
  89. package/dist/components/Image/tests/Image.stories.js +0 -196
  90. package/dist/components/Link/tests/Link.stories.d.ts +0 -42
  91. package/dist/components/Link/tests/Link.stories.js +0 -155
  92. package/dist/components/Loader/tests/Loader.stories.d.ts +0 -21
  93. package/dist/components/Loader/tests/Loader.stories.js +0 -68
  94. package/dist/components/MenuItem/tests/MenuItem.stories.d.ts +0 -59
  95. package/dist/components/MenuItem/tests/MenuItem.stories.js +0 -236
  96. package/dist/components/Modal/tests/Modal.stories.d.ts +0 -64
  97. package/dist/components/Modal/tests/Modal.stories.js +0 -410
  98. package/dist/components/NumberField/tests/NumberField.stories.d.ts +0 -28
  99. package/dist/components/NumberField/tests/NumberField.stories.js +0 -258
  100. package/dist/components/Overlay/tests/Overlay.stories.d.ts +0 -28
  101. package/dist/components/Overlay/tests/Overlay.stories.js +0 -202
  102. package/dist/components/Pagination/tests/Pagination.stories.d.ts +0 -24
  103. package/dist/components/Pagination/tests/Pagination.stories.js +0 -105
  104. package/dist/components/PinField/tests/PinField.stories.d.ts +0 -34
  105. package/dist/components/PinField/tests/PinField.stories.js +0 -209
  106. package/dist/components/Popover/tests/Popover.stories.d.ts +0 -69
  107. package/dist/components/Popover/tests/Popover.stories.js +0 -340
  108. package/dist/components/Progress/tests/Progress.stories.d.ts +0 -30
  109. package/dist/components/Progress/tests/Progress.stories.js +0 -102
  110. package/dist/components/ProgressIndicator/tests/ProgressIndicator.stories.d.ts +0 -19
  111. package/dist/components/ProgressIndicator/tests/ProgressIndicator.stories.js +0 -92
  112. package/dist/components/Radio/tests/Radio.stories.d.ts +0 -35
  113. package/dist/components/Radio/tests/Radio.stories.js +0 -162
  114. package/dist/components/RadioGroup/tests/RadioGroup.stories.d.ts +0 -19
  115. package/dist/components/RadioGroup/tests/RadioGroup.stories.js +0 -77
  116. package/dist/components/Reshaped/tests/Reshaped.stories.d.ts +0 -34
  117. package/dist/components/Reshaped/tests/Reshaped.stories.js +0 -108
  118. package/dist/components/Resizable/tests/Resizable.stories.d.ts +0 -38
  119. package/dist/components/Resizable/tests/Resizable.stories.js +0 -185
  120. package/dist/components/Scrim/tests/Scrim.stories.d.ts +0 -20
  121. package/dist/components/Scrim/tests/Scrim.stories.js +0 -67
  122. package/dist/components/ScrollArea/tests/ScrollArea.stories.d.ts +0 -37
  123. package/dist/components/ScrollArea/tests/ScrollArea.stories.js +0 -244
  124. package/dist/components/Select/SelectOptionGroup.d.ts +0 -4
  125. package/dist/components/Select/SelectOptionGroup.js +0 -9
  126. package/dist/components/Select/tests/Select.stories.d.ts +0 -47
  127. package/dist/components/Select/tests/Select.stories.js +0 -520
  128. package/dist/components/Skeleton/tests/Skeleton.stories.d.ts +0 -20
  129. package/dist/components/Skeleton/tests/Skeleton.stories.js +0 -63
  130. package/dist/components/Slider/tests/Slider.stories.d.ts +0 -47
  131. package/dist/components/Slider/tests/Slider.stories.js +0 -279
  132. package/dist/components/Stepper/tests/Stepper.stories.d.ts +0 -31
  133. package/dist/components/Stepper/tests/Stepper.stories.js +0 -135
  134. package/dist/components/Switch/tests/Switch.stories.d.ts +0 -22
  135. package/dist/components/Switch/tests/Switch.stories.js +0 -137
  136. package/dist/components/Switch/tests/Switch.test.stories.d.ts +0 -13
  137. package/dist/components/Switch/tests/Switch.test.stories.js +0 -11
  138. package/dist/components/Table/tests/Table.stories.d.ts +0 -42
  139. package/dist/components/Table/tests/Table.stories.js +0 -348
  140. package/dist/components/Tabs/tests/Tabs.stories.d.ts +0 -62
  141. package/dist/components/Tabs/tests/Tabs.stories.js +0 -539
  142. package/dist/components/Text/tests/Text.stories.d.ts +0 -48
  143. package/dist/components/Text/tests/Text.stories.js +0 -201
  144. package/dist/components/TextArea/tests/TextArea.stories.d.ts +0 -53
  145. package/dist/components/TextArea/tests/TextArea.stories.js +0 -200
  146. package/dist/components/TextField/tests/TextField.stories.d.ts +0 -53
  147. package/dist/components/TextField/tests/TextField.stories.js +0 -237
  148. package/dist/components/Theme/tests/Theme.stories.d.ts +0 -25
  149. package/dist/components/Theme/tests/Theme.stories.js +0 -171
  150. package/dist/components/Timeline/tests/Timeline.stories.d.ts +0 -22
  151. package/dist/components/Timeline/tests/Timeline.stories.js +0 -86
  152. package/dist/components/Toast/tests/Toast.stories.d.ts +0 -41
  153. package/dist/components/Toast/tests/Toast.stories.js +0 -432
  154. package/dist/components/ToggleButton/tests/ToggleButton.stories.d.ts +0 -27
  155. package/dist/components/ToggleButton/tests/ToggleButton.stories.js +0 -97
  156. package/dist/components/ToggleButtonGroup/tests/ToggleButtonGroup.stories.d.ts +0 -27
  157. package/dist/components/ToggleButtonGroup/tests/ToggleButtonGroup.stories.js +0 -169
  158. package/dist/components/Tooltip/tests/Tooltip.stories.d.ts +0 -28
  159. package/dist/components/Tooltip/tests/Tooltip.stories.js +0 -182
  160. package/dist/components/View/tests/View.stories.d.ts +0 -141
  161. package/dist/components/View/tests/View.stories.js +0 -1329
  162. package/dist/components/_private/Portal/tests/Portal.stories.d.ts +0 -6
  163. package/dist/components/_private/Portal/tests/Portal.stories.js +0 -17
  164. package/dist/hooks/tests/useDrag.stories.d.ts +0 -31
  165. package/dist/hooks/tests/useDrag.stories.js +0 -147
  166. package/dist/hooks/tests/useElementId.stories.d.ts +0 -11
  167. package/dist/hooks/tests/useElementId.stories.js +0 -23
  168. package/dist/hooks/tests/useHandlerRef.stories.d.ts +0 -14
  169. package/dist/hooks/tests/useHandlerRef.stories.js +0 -44
  170. package/dist/hooks/tests/useHotkeys.stories.d.ts +0 -43
  171. package/dist/hooks/tests/useHotkeys.stories.js +0 -158
  172. package/dist/hooks/tests/useKeyboardArrowNavigation.stories.d.ts +0 -15
  173. package/dist/hooks/tests/useKeyboardArrowNavigation.stories.js +0 -128
  174. package/dist/hooks/tests/useKeyboardMode.stories.d.ts +0 -11
  175. package/dist/hooks/tests/useKeyboardMode.stories.js +0 -42
  176. package/dist/hooks/tests/useOnClickOutside.stories.d.ts +0 -23
  177. package/dist/hooks/tests/useOnClickOutside.stories.js +0 -111
  178. package/dist/hooks/tests/useRTL.stories.d.ts +0 -11
  179. package/dist/hooks/tests/useRTL.stories.js +0 -23
  180. package/dist/hooks/tests/useResponsiveClientValue.stories.d.ts +0 -18
  181. package/dist/hooks/tests/useResponsiveClientValue.stories.js +0 -30
  182. package/dist/hooks/tests/useScrollLock.stories.d.ts +0 -14
  183. package/dist/hooks/tests/useScrollLock.stories.js +0 -97
  184. package/dist/hooks/tests/useToggle.stories.d.ts +0 -13
  185. package/dist/hooks/tests/useToggle.stories.js +0 -59
  186. package/dist/tests/ShadowDOM.stories.d.ts +0 -6
  187. package/dist/tests/ShadowDOM.stories.js +0 -110
  188. package/dist/tests/themes.stories.d.ts +0 -16
  189. package/dist/tests/themes.stories.js +0 -327
  190. package/dist/utilities/a11y/tests/TrapFocus.stories.d.ts +0 -14
  191. package/dist/utilities/a11y/tests/TrapFocus.stories.js +0 -615
@@ -1,328 +0,0 @@
1
- import React from "react";
2
- import { expect, fn } from "storybook/test";
3
- import { Example } from "../../../utilities/storybook/index.js";
4
- import Avatar from "../../Avatar/index.js";
5
- import View from "../../View/index.js";
6
- import Badge from "../index.js";
7
- import Icon from "../../Icon/index.js";
8
- import Button from "../../Button/index.js";
9
- import IconCheckmark from "../../../icons/Checkmark.js";
10
- import IconChevronRight from "../../../icons/ChevronRight.js";
11
- import userEvent from "@testing-library/user-event";
12
- export default {
13
- title: "Components/Badge",
14
- component: Badge,
15
- parameters: {
16
- iframe: {
17
- url: "https://reshaped.so/docs/components/badge",
18
- },
19
- },
20
- };
21
- export const variant = {
22
- name: "variant",
23
- render: () => (<Example>
24
- <Example.Item title="variant: default">
25
- <Badge>Badge</Badge>
26
- </Example.Item>
27
- <Example.Item title="variant: faded">
28
- <Badge variant="faded">Badge</Badge>
29
- </Example.Item>
30
- <Example.Item title="variant: outline">
31
- <Badge variant="outline">Badge</Badge>
32
- </Example.Item>
33
- </Example>),
34
- };
35
- export const color = {
36
- name: "color",
37
- render: () => (<Example>
38
- <Example.Item title="color: primary, all variants">
39
- <View direction="row" gap={3}>
40
- <Badge color="primary">Badge</Badge>
41
- <Badge variant="faded" color="primary">
42
- Badge
43
- </Badge>
44
- <Badge variant="outline" color="primary">
45
- Badge
46
- </Badge>
47
- </View>
48
- </Example.Item>
49
-
50
- <Example.Item title="color: positive, all variants">
51
- <View direction="row" gap={3}>
52
- <Badge color="positive">Badge</Badge>
53
- <Badge variant="faded" color="positive">
54
- Badge
55
- </Badge>
56
- <Badge variant="outline" color="positive">
57
- Badge
58
- </Badge>
59
- </View>
60
- </Example.Item>
61
-
62
- <Example.Item title="color: critical, all variants">
63
- <View direction="row" gap={3}>
64
- <Badge color="critical">Badge</Badge>
65
- <Badge variant="faded" color="critical">
66
- Badge
67
- </Badge>
68
- <Badge variant="outline" color="critical">
69
- Badge
70
- </Badge>
71
- </View>
72
- </Example.Item>
73
-
74
- <Example.Item title="color: warning, all variants">
75
- <View direction="row" gap={3}>
76
- <Badge color="warning">Badge</Badge>
77
- <Badge variant="faded" color="warning">
78
- Badge
79
- </Badge>
80
- <Badge variant="outline" color="warning">
81
- Badge
82
- </Badge>
83
- </View>
84
- </Example.Item>
85
- </Example>),
86
- };
87
- export const size = {
88
- name: "size",
89
- render: () => (<Example>
90
- <Example.Item title="size: small, not rounded and rounded">
91
- <View gap={3} direction="row">
92
- <Badge size="small">Badge</Badge>
93
- <Badge rounded size="small">
94
- Badge
95
- </Badge>
96
- </View>
97
- </Example.Item>
98
- <Example.Item title="size: medium, not rounded and rounded">
99
- <View gap={3} direction="row">
100
- <Badge>Badge</Badge>
101
- <Badge rounded>Badge</Badge>
102
- </View>
103
- </Example.Item>
104
- <Example.Item title="size: large, not rounded and rounded">
105
- <View gap={3} direction="row">
106
- <Badge size="large">Badge</Badge>
107
- <Badge rounded size="large">
108
- Badge
109
- </Badge>
110
- </View>
111
- </Example.Item>
112
- </Example>),
113
- };
114
- export const icon = {
115
- name: "icon",
116
- render: () => (<Example>
117
- <Example.Item title="size: small">
118
- <View gap={3} direction="row">
119
- <Badge icon={IconCheckmark} endIcon={IconChevronRight} size="small">
120
- Badge
121
- </Badge>
122
- <Badge icon={IconCheckmark} size="small"/>
123
- </View>
124
- </Example.Item>
125
- <Example.Item title="size: medium">
126
- <View gap={3} direction="row">
127
- <Badge icon={IconCheckmark} endIcon={IconChevronRight}>
128
- Badge
129
- </Badge>
130
- <Badge icon={IconCheckmark}/>
131
- </View>
132
- </Example.Item>
133
- <Example.Item title="size: large">
134
- <View gap={3} direction="row">
135
- <Badge size="large" icon={IconCheckmark} endIcon={IconChevronRight}>
136
- Badge
137
- </Badge>
138
-
139
- <Badge icon={IconCheckmark} size="large"/>
140
- </View>
141
- </Example.Item>
142
- </Example>),
143
- };
144
- export const onDismiss = {
145
- name: "onDismiss, dismissAriaLabel",
146
- args: {
147
- handleDismiss: fn(),
148
- },
149
- render: (args) => (<Example>
150
- <Example.Item title="onDismiss">
151
- <Badge onDismiss={args.handleDismiss} dismissAriaLabel="Dismiss">
152
- Badge
153
- </Badge>
154
- </Example.Item>
155
- </Example>),
156
- play: async ({ canvas, args }) => {
157
- const dismissTrigger = canvas.getAllByRole("button")[0];
158
- await userEvent.click(dismissTrigger);
159
- expect(dismissTrigger).toHaveAccessibleName("Dismiss");
160
- expect(args.handleDismiss).toHaveBeenCalledTimes(1);
161
- expect(args.handleDismiss).toHaveBeenCalledWith();
162
- },
163
- };
164
- export const rounded = {
165
- name: "rounded",
166
- render: () => (<Example>
167
- <Example.Item title="rounded, all variants">
168
- <View direction="row" gap={3}>
169
- <Badge rounded>Badge</Badge>
170
- <Badge rounded variant="faded">
171
- Badge
172
- </Badge>
173
- <Badge rounded variant="outline">
174
- Badge
175
- </Badge>
176
- </View>
177
- </Example.Item>
178
- <Example.Item title={["rounded, all sizes, color: critical", "one character, renders as circle"]}>
179
- <View direction="row" gap={3}>
180
- <Badge rounded color="critical" size="small">
181
- 2
182
- </Badge>
183
- <Badge rounded color="critical">
184
- 2
185
- </Badge>
186
- <Badge rounded color="critical" size="large">
187
- 2
188
- </Badge>
189
- </View>
190
- </Example.Item>
191
- </Example>),
192
- };
193
- export const empty = {
194
- name: "empty",
195
- render: () => (<Example>
196
- <Example.Item title="empty, not rounded, all sizes, color: critical">
197
- <View direction="row" gap={3}>
198
- <Badge size="small" color="critical"/>
199
- <Badge color="critical"/>
200
- <Badge size="large" color="critical"/>
201
- </View>
202
- </Example.Item>
203
- <Example.Item title="empty, rounded, all sizes, color: critical">
204
- <View direction="row" gap={3}>
205
- <Badge rounded size="small" color="critical"/>
206
- <Badge rounded color="critical"/>
207
- <Badge rounded size="large" color="critical"/>
208
- </View>
209
- </Example.Item>
210
- <Example.Item title="empty, rounded, all sizes, color: neutral">
211
- <View direction="row" gap={3}>
212
- <Badge rounded size="small" color="neutral"/>
213
- <Badge rounded/>
214
- <Badge rounded size="large"/>
215
- </View>
216
- </Example.Item>
217
- </Example>),
218
- };
219
- export const highlighted = {
220
- name: "highlighted",
221
- render: () => (<Example>
222
- <Example.Item title="highlighted, color: neutral">
223
- <View gap={3} direction="row">
224
- <Badge highlighted>Badge</Badge>
225
- </View>
226
- </Example.Item>
227
- </Example>),
228
- };
229
- export const container = {
230
- name: "container",
231
- render: () => {
232
- const [hidden, setHidden] = React.useState(false);
233
- return (<Example title={<Button onClick={() => setHidden(!hidden)}>Toggle badges</Button>}>
234
- <Example.Item title="position: top-end">
235
- <Badge.Container>
236
- <Badge color="primary" hidden={hidden}>
237
- 5
238
- </Badge>
239
- <Avatar initials="A" squared/>
240
- </Badge.Container>
241
- </Example.Item>
242
-
243
- <Example.Item title="position: bottom-end">
244
- <Badge.Container position="bottom-end">
245
- <Badge color="primary" hidden={hidden}>
246
- 5
247
- </Badge>
248
- <Avatar initials="A" squared/>
249
- </Badge.Container>
250
- </Example.Item>
251
-
252
- <Example.Item title="position: top-end, rounded, multiple digits">
253
- <Badge.Container>
254
- <Badge size="small" color="primary" rounded hidden={hidden}>
255
- 123
256
- </Badge>
257
- <Avatar initials="A" squared/>
258
- </Badge.Container>
259
- </Example.Item>
260
-
261
- <Example.Item title="position: top-end, rounded, empty">
262
- <Badge.Container>
263
- <Badge color="primary" rounded hidden={hidden}/>
264
- <Avatar initials="A" squared/>
265
- </Badge.Container>
266
- </Example.Item>
267
-
268
- <Example.Item title={["position: top-end, overlap", "should cover the circular avatar"]}>
269
- <Badge.Container overlap>
270
- <Badge size="small" color="primary" rounded hidden={hidden}>
271
- 2
272
- </Badge>
273
- <Avatar initials="A"/>
274
- </Badge.Container>
275
- </Example.Item>
276
-
277
- <Example.Item title={["position: bottom-end, overlap", "should cover the circular avatar"]}>
278
- <Badge.Container overlap position="bottom-end">
279
- <Badge size="small" color="primary" rounded hidden={hidden}>
280
- 2
281
- </Badge>
282
- <Avatar initials="A"/>
283
- </Badge.Container>
284
- </Example.Item>
285
-
286
- <Example.Item title={["position: top-end, overlap", "should cover the icon"]}>
287
- <Badge.Container overlap position="top-end">
288
- <Badge size="small" color="primary" rounded hidden={hidden}/>
289
- <Icon svg={IconCheckmark} size={5}/>
290
- </Badge.Container>
291
- </Example.Item>
292
- </Example>);
293
- },
294
- };
295
- export const href = {
296
- name: "href",
297
- render: () => (<Badge href="https://reshaped.so" dismissAriaLabel="Dismiss">
298
- Badge
299
- </Badge>),
300
- play: async ({ canvas }) => {
301
- const link = canvas.getByRole("link");
302
- expect(link).toHaveAttribute("href", "https://reshaped.so");
303
- },
304
- };
305
- export const onClick = {
306
- name: "onClick",
307
- args: {
308
- handleClick: fn(),
309
- },
310
- render: (args) => <Badge onClick={args.handleClick}>Badge</Badge>,
311
- play: async ({ canvas, args }) => {
312
- const button = canvas.getAllByRole("button")[0];
313
- await userEvent.click(button);
314
- expect(args.handleClick).toHaveBeenCalledTimes(1);
315
- expect(args.handleClick).toHaveBeenCalledWith(expect.objectContaining({ target: button }));
316
- },
317
- };
318
- export const className = {
319
- name: "className, attributes",
320
- render: () => (<div data-testid="root">
321
- <Badge color="primary" className="test-classname" attributes={{ id: "test-id" }}/>
322
- </div>),
323
- play: async ({ canvas }) => {
324
- const root = canvas.getByTestId("root").firstChild;
325
- expect(root).toHaveClass("test-classname");
326
- expect(root).toHaveAttribute("id", "test-id");
327
- },
328
- };
@@ -1,40 +0,0 @@
1
- import { fn } from "storybook/test";
2
- import { StoryObj } from "@storybook/react-vite";
3
- declare const _default: {
4
- title: string;
5
- component: import("react").FC<import("./..").BreadcrumbsProps> & {
6
- Item: import("react").FC<import("../Breadcrumbs.types").ItemProps>;
7
- };
8
- parameters: {
9
- iframe: {
10
- url: string;
11
- };
12
- };
13
- };
14
- export default _default;
15
- export declare const color: {
16
- name: string;
17
- render: () => import("react").JSX.Element;
18
- };
19
- export declare const item: {
20
- name: string;
21
- render: () => import("react").JSX.Element;
22
- };
23
- export declare const icon: {
24
- name: string;
25
- render: () => import("react").JSX.Element;
26
- };
27
- export declare const slots: {
28
- name: string;
29
- render: () => import("react").JSX.Element;
30
- };
31
- export declare const collapsed: StoryObj;
32
- export declare const multiline: {
33
- name: string;
34
- render: () => import("react").JSX.Element;
35
- };
36
- export declare const onClick: StoryObj<{
37
- handleClick: ReturnType<typeof fn>;
38
- }>;
39
- export declare const href: StoryObj;
40
- export declare const className: StoryObj;
@@ -1,187 +0,0 @@
1
- import { expect, fn, userEvent } from "storybook/test";
2
- import { Example } from "../../../utilities/storybook/index.js";
3
- import Breadcrumbs from "../index.js";
4
- import Badge from "../../Badge/index.js";
5
- import IconZap from "../../../icons/Zap.js";
6
- export default {
7
- title: "Components/Breadcrumbs",
8
- component: Breadcrumbs,
9
- parameters: {
10
- iframe: {
11
- url: "https://reshaped.so/docs/components/breadcrumbs",
12
- },
13
- },
14
- };
15
- export const color = {
16
- name: "color",
17
- render: () => (<Example>
18
- <Example.Item title="color: neutral">
19
- <Breadcrumbs ariaLabel="breadcrumb neutral">
20
- <Breadcrumbs.Item onClick={() => { }}>Item 1</Breadcrumbs.Item>
21
- <Breadcrumbs.Item onClick={() => { }}>Item 2</Breadcrumbs.Item>
22
- <Breadcrumbs.Item>Item 3</Breadcrumbs.Item>
23
- </Breadcrumbs>
24
- </Example.Item>
25
-
26
- <Example.Item title="color: primary">
27
- <Breadcrumbs color="primary" ariaLabel="breadcrumb primary">
28
- <Breadcrumbs.Item onClick={() => { }}>Item 1</Breadcrumbs.Item>
29
- <Breadcrumbs.Item onClick={() => { }}>Item 2</Breadcrumbs.Item>
30
- <Breadcrumbs.Item>Item 3</Breadcrumbs.Item>
31
- </Breadcrumbs>
32
- </Example.Item>
33
- </Example>),
34
- };
35
- export const item = {
36
- name: "item, disabled",
37
- render: () => (<Example>
38
- <Example.Item title="disabled item">
39
- <Breadcrumbs color="primary" ariaLabel="breadcrumb disabled">
40
- <Breadcrumbs.Item onClick={() => { }}>Item 1</Breadcrumbs.Item>
41
- <Breadcrumbs.Item onClick={() => { }} disabled>
42
- Disabled item 2
43
- </Breadcrumbs.Item>
44
- <Breadcrumbs.Item>Item 3</Breadcrumbs.Item>
45
- </Breadcrumbs>
46
- </Example.Item>
47
- </Example>),
48
- };
49
- export const icon = {
50
- name: "item, icon",
51
- render: () => (<Example>
52
- <Example.Item title="item with icon">
53
- <Breadcrumbs color="primary" ariaLabel="breadcrumb with icon">
54
- <Breadcrumbs.Item icon={IconZap} onClick={() => { }}>
55
- Item 1
56
- </Breadcrumbs.Item>
57
- <Breadcrumbs.Item onClick={() => { }}>Item 2</Breadcrumbs.Item>
58
- <Breadcrumbs.Item>Item 3</Breadcrumbs.Item>
59
- </Breadcrumbs>
60
- </Example.Item>
61
- </Example>),
62
- };
63
- export const slots = {
64
- name: "separator, children",
65
- render: () => (<Example>
66
- <Example.Item title="slot: separator">
67
- <Breadcrumbs color="primary" separator="/" ariaLabel="breadcrumb with separator">
68
- <Breadcrumbs.Item onClick={() => { }}>Item 1</Breadcrumbs.Item>
69
- <Breadcrumbs.Item onClick={() => { }}>Item 2</Breadcrumbs.Item>
70
- <Breadcrumbs.Item>Item 3</Breadcrumbs.Item>
71
- </Breadcrumbs>
72
- </Example.Item>
73
-
74
- <Example.Item title="custom child content">
75
- <Breadcrumbs ariaLabel="breadcrumb with custom children">
76
- <Breadcrumbs.Item onClick={() => { }}>
77
- <Badge>Item 1</Badge>
78
- </Breadcrumbs.Item>
79
- <Breadcrumbs.Item onClick={() => { }}>
80
- <Badge>Item 2</Badge>
81
- </Breadcrumbs.Item>
82
- <Breadcrumbs.Item>Item 3</Breadcrumbs.Item>
83
- </Breadcrumbs>
84
- </Example.Item>
85
- </Example>),
86
- };
87
- export const collapsed = {
88
- name: "collapsed",
89
- render: () => (<Example>
90
- <Example.Item title="collapsed, 3 items shown by default">
91
- <Breadcrumbs defaultVisibleItems={3} ariaLabel="breadcrumbs one" expandAriaLabel="Expand items">
92
- <Breadcrumbs.Item onClick={() => { }}>Item 1</Breadcrumbs.Item>
93
- <Breadcrumbs.Item onClick={() => { }}>Item 2</Breadcrumbs.Item>
94
- <Breadcrumbs.Item onClick={() => { }}>Item 3</Breadcrumbs.Item>
95
- <Breadcrumbs.Item onClick={() => { }}>Item 4</Breadcrumbs.Item>
96
- <Breadcrumbs.Item>Item 5</Breadcrumbs.Item>
97
- </Breadcrumbs>
98
- </Example.Item>
99
-
100
- <Example.Item title="collapsed, 4 items shown by default">
101
- <Breadcrumbs defaultVisibleItems={4} ariaLabel="breadcrumb two" expandAriaLabel="Expand items">
102
- <Breadcrumbs.Item onClick={() => { }}>Item 1</Breadcrumbs.Item>
103
- <Breadcrumbs.Item onClick={() => { }}>Item 2</Breadcrumbs.Item>
104
- <Breadcrumbs.Item onClick={() => { }}>Item 3</Breadcrumbs.Item>
105
- <Breadcrumbs.Item onClick={() => { }}>Item 4</Breadcrumbs.Item>
106
- <Breadcrumbs.Item>Item 5</Breadcrumbs.Item>
107
- </Breadcrumbs>
108
- </Example.Item>
109
-
110
- <Example.Item title="collapsed, 3 items shown by default, not expandable">
111
- <Breadcrumbs defaultVisibleItems={3} ariaLabel="breadcrumb three" disableExpand>
112
- <Breadcrumbs.Item onClick={() => { }}>Item 1</Breadcrumbs.Item>
113
- <Breadcrumbs.Item onClick={() => { }}>Item 2</Breadcrumbs.Item>
114
- <Breadcrumbs.Item onClick={() => { }}>Item 3</Breadcrumbs.Item>
115
- <Breadcrumbs.Item onClick={() => { }}>Item 4</Breadcrumbs.Item>
116
- <Breadcrumbs.Item>Item 5</Breadcrumbs.Item>
117
- </Breadcrumbs>
118
- </Example.Item>
119
- </Example>),
120
- play: async ({ canvas }) => {
121
- let triggers = canvas.getAllByRole("button");
122
- expect(triggers[0]).toHaveTextContent("Item 1");
123
- expect(triggers[1]).toHaveAccessibleName("Expand items");
124
- expect(triggers[2]).toHaveTextContent("Item 4");
125
- await userEvent.click(triggers[1]);
126
- triggers = canvas.getAllByRole("button");
127
- expect(triggers[0]).toHaveTextContent("Item 1");
128
- expect(triggers[1]).toHaveTextContent("Item 2");
129
- expect(triggers[2]).toHaveTextContent("Item 3");
130
- expect(triggers[3]).toHaveTextContent("Item 4");
131
- },
132
- };
133
- export const multiline = {
134
- name: "composition, multiline",
135
- render: () => (<Example>
136
- <Example.Item title="wraps content when multiline">
137
- <Breadcrumbs ariaLabel="breadcrumb multiline">
138
- {[1, 2, 3, 4, 5, 6, 7, 8, 9, 10].map((i) => (<Breadcrumbs.Item onClick={() => { }} key={i}>
139
- Item {i}
140
- </Breadcrumbs.Item>))}
141
- </Breadcrumbs>
142
- </Example.Item>
143
- </Example>),
144
- };
145
- export const onClick = {
146
- name: "item, onClick, disabled",
147
- args: {
148
- handleClick: fn(),
149
- },
150
- render: (args) => (<Breadcrumbs>
151
- <Breadcrumbs.Item onClick={args.handleClick}>Trigger</Breadcrumbs.Item>
152
- <Breadcrumbs.Item onClick={args.handleClick} disabled>
153
- Trigger
154
- </Breadcrumbs.Item>
155
- </Breadcrumbs>),
156
- play: async ({ args, canvas }) => {
157
- const triggers = canvas.getAllByRole("button");
158
- await userEvent.click(triggers[0]);
159
- expect(args.handleClick).toHaveBeenCalledTimes(1);
160
- expect(args.handleClick).toHaveBeenCalledWith(expect.objectContaining({ target: triggers[0] }));
161
- await userEvent.click(triggers[1]);
162
- expect(args.handleClick).toHaveBeenCalledTimes(1);
163
- },
164
- };
165
- export const href = {
166
- name: "item, href",
167
- render: () => (<Breadcrumbs>
168
- <Breadcrumbs.Item href="https://reshaped.so">Trigger</Breadcrumbs.Item>
169
- </Breadcrumbs>),
170
- play: async ({ canvas }) => {
171
- const triggers = canvas.getAllByRole("link");
172
- expect(triggers[0]).toHaveAttribute("href", "https://reshaped.so");
173
- },
174
- };
175
- export const className = {
176
- name: "className, attributes",
177
- render: () => (<div data-testid="root">
178
- <Breadcrumbs className="test-classname" attributes={{ id: "test-id" }}>
179
- <Breadcrumbs.Item>Trigger</Breadcrumbs.Item>
180
- </Breadcrumbs>
181
- </div>),
182
- play: async ({ canvas }) => {
183
- const root = canvas.getByTestId("root").firstChild;
184
- expect(root).toHaveClass("test-classname");
185
- expect(root).toHaveAttribute("id", "test-id");
186
- },
187
- };
@@ -1,79 +0,0 @@
1
- import { StoryObj } from "@storybook/react-vite";
2
- import { fn } from "storybook/test";
3
- declare const _default: {
4
- title: string;
5
- component: import("react").ForwardRefExoticComponent<Pick<import("../../Actionable").ActionableProps, "children" | "disabled" | "className" | "attributes" | "as" | "render" | "type" | "onClick" | "href" | "stopPropagation"> & {
6
- color?: "primary" | "critical" | "positive" | "neutral" | "media" | "inherit";
7
- variant?: "solid" | "outline" | "ghost" | "faded";
8
- icon?: import("../../Icon").IconProps["svg"];
9
- endIcon?: import("../../Icon").IconProps["svg"];
10
- size?: import("../../../types/global").Responsive<import("../Button.types").Size>;
11
- rounded?: boolean;
12
- loading?: boolean;
13
- loadingAriaLabel?: string;
14
- elevated?: boolean;
15
- fullWidth?: import("../../../types/global").Responsive<boolean>;
16
- highlighted?: boolean;
17
- } & import("react").RefAttributes<import("../../Actionable").ActionableRef>> & {
18
- Aligner: import("react").FC<import("./..").ButtonAlignerProps>;
19
- Group: import("react").FC<import("./..").ButtonGroupProps>;
20
- };
21
- parameters: {
22
- iframe: {
23
- url: string;
24
- };
25
- };
26
- };
27
- export default _default;
28
- export declare const variantAndColor: {
29
- name: string;
30
- render: () => import("react").JSX.Element;
31
- };
32
- export declare const icon: {
33
- name: string;
34
- render: () => import("react").JSX.Element;
35
- };
36
- export declare const size: {
37
- name: string;
38
- render: () => import("react").JSX.Element;
39
- };
40
- export declare const elevated: {
41
- name: string;
42
- render: () => import("react").JSX.Element;
43
- };
44
- export declare const rounded: {
45
- name: string;
46
- render: () => import("react").JSX.Element;
47
- };
48
- export declare const fullWidth: {
49
- name: string;
50
- render: () => import("react").JSX.Element;
51
- };
52
- export declare const loading: {
53
- name: string;
54
- render: () => import("react").JSX.Element;
55
- };
56
- export declare const highlighted: {
57
- name: string;
58
- render: () => import("react").JSX.Element;
59
- };
60
- export declare const disabled: StoryObj;
61
- export declare const aligner: {
62
- name: string;
63
- render: () => import("react").JSX.Element;
64
- };
65
- export declare const composition: {
66
- name: string;
67
- render: () => import("react").JSX.Element;
68
- };
69
- export declare const href: StoryObj;
70
- export declare const onClick: StoryObj<{
71
- handleClick: ReturnType<typeof fn>;
72
- }>;
73
- export declare const hrefOnClick: StoryObj<{
74
- handleClick: ReturnType<typeof fn>;
75
- }>;
76
- export declare const as: StoryObj;
77
- export declare const className: StoryObj;
78
- export declare const group: StoryObj;
79
- export declare const groupClassName: StoryObj;