@vibe/core 4.2.5 → 4.3.0-alpha-9bd83.0

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 (109) hide show
  1. package/dist/metadata/accessibility/Accordion.md +10 -0
  2. package/dist/metadata/accessibility/AlertBanner.md +9 -0
  3. package/dist/metadata/accessibility/Avatar.md +12 -0
  4. package/dist/metadata/accessibility/AvatarGroup.md +6 -0
  5. package/dist/metadata/accessibility/BreadcrumbsBar.md +10 -0
  6. package/dist/metadata/accessibility/Button.md +13 -0
  7. package/dist/metadata/accessibility/ButtonGroup.md +9 -0
  8. package/dist/metadata/accessibility/Checkbox.md +13 -0
  9. package/dist/metadata/accessibility/Chips.md +10 -0
  10. package/dist/metadata/accessibility/Combobox.md +6 -0
  11. package/dist/metadata/accessibility/DropdownBasicDropdown.md +10 -0
  12. package/dist/metadata/accessibility/IconButton.md +26 -0
  13. package/dist/metadata/accessibility/Info.md +12 -0
  14. package/dist/metadata/accessibility/Link.md +8 -0
  15. package/dist/metadata/accessibility/List.md +11 -0
  16. package/dist/metadata/accessibility/Menu.md +10 -0
  17. package/dist/metadata/accessibility/MenuButton.md +6 -0
  18. package/dist/metadata/accessibility/MenuItem.md +8 -0
  19. package/dist/metadata/accessibility/Modal.md +35 -0
  20. package/dist/metadata/accessibility/NumberField.md +9 -0
  21. package/dist/metadata/accessibility/RadioButton.md +11 -0
  22. package/dist/metadata/accessibility/Search.md +10 -0
  23. package/dist/metadata/accessibility/Tabs.md +10 -0
  24. package/dist/metadata/accessibility/TextArea.md +17 -0
  25. package/dist/metadata/accessibility/TextField.md +16 -0
  26. package/dist/metadata/accessibility/Toast.md +4 -0
  27. package/dist/metadata/accessibility/Toggle.md +7 -0
  28. package/dist/metadata/accessibility/Tooltip.md +11 -0
  29. package/dist/metadata/components.json +20940 -0
  30. package/dist/metadata/examples/Accordion.md +136 -0
  31. package/dist/metadata/examples/AlertBanner.md +85 -0
  32. package/dist/metadata/examples/AttentionBox.md +267 -0
  33. package/dist/metadata/examples/Avatar.md +118 -0
  34. package/dist/metadata/examples/AvatarGroup.md +390 -0
  35. package/dist/metadata/examples/Badge.md +59 -0
  36. package/dist/metadata/examples/BaseInput.md +2 -0
  37. package/dist/metadata/examples/BaseList.md +342 -0
  38. package/dist/metadata/examples/Box.md +208 -0
  39. package/dist/metadata/examples/BreadcrumbItem.md +54 -0
  40. package/dist/metadata/examples/BreadcrumbsBar.md +64 -0
  41. package/dist/metadata/examples/Button.md +174 -0
  42. package/dist/metadata/examples/ButtonGroup.md +180 -0
  43. package/dist/metadata/examples/Checkbox.md +24 -0
  44. package/dist/metadata/examples/Chips.md +192 -0
  45. package/dist/metadata/examples/Clickable.md +31 -0
  46. package/dist/metadata/examples/ColorPicker.md +2 -0
  47. package/dist/metadata/examples/Combobox.md +438 -0
  48. package/dist/metadata/examples/Counter.md +188 -0
  49. package/dist/metadata/examples/DatePicker.md +43 -0
  50. package/dist/metadata/examples/Dialog.md +521 -0
  51. package/dist/metadata/examples/DialogContentContainer.md +18 -0
  52. package/dist/metadata/examples/Divider.md +50 -0
  53. package/dist/metadata/examples/DropdownBasicDropdown.md +479 -0
  54. package/dist/metadata/examples/DropdownBoxMode.md +218 -0
  55. package/dist/metadata/examples/EditableHeading.md +33 -0
  56. package/dist/metadata/examples/EditableText.md +36 -0
  57. package/dist/metadata/examples/EmptyState.md +192 -0
  58. package/dist/metadata/examples/ExpandCollapse.md +77 -0
  59. package/dist/metadata/examples/Flex.md +916 -0
  60. package/dist/metadata/examples/Heading.md +124 -0
  61. package/dist/metadata/examples/HiddenText.md +8 -0
  62. package/dist/metadata/examples/Icon.md +67 -0
  63. package/dist/metadata/examples/IconButton.md +141 -0
  64. package/dist/metadata/examples/Info.md +80 -0
  65. package/dist/metadata/examples/Label.md +109 -0
  66. package/dist/metadata/examples/Link.md +52 -0
  67. package/dist/metadata/examples/List.md +125 -0
  68. package/dist/metadata/examples/ListItem.md +42 -0
  69. package/dist/metadata/examples/Loader.md +148 -0
  70. package/dist/metadata/examples/Menu.md +141 -0
  71. package/dist/metadata/examples/MenuButton.md +127 -0
  72. package/dist/metadata/examples/MenuDivider.md +35 -0
  73. package/dist/metadata/examples/MenuGridItem.md +65 -0
  74. package/dist/metadata/examples/MenuItem.md +98 -0
  75. package/dist/metadata/examples/MenuItemButton.md +42 -0
  76. package/dist/metadata/examples/MenuTitle.md +25 -0
  77. package/dist/metadata/examples/ModalBasicLayout.md +400 -0
  78. package/dist/metadata/examples/ModalMediaLayout.md +240 -0
  79. package/dist/metadata/examples/ModalSideBySideLayout.md +313 -0
  80. package/dist/metadata/examples/MultiStepIndicator.md +189 -0
  81. package/dist/metadata/examples/NumberField.md +68 -0
  82. package/dist/metadata/examples/ProgressBar.md +152 -0
  83. package/dist/metadata/examples/RadioButton.md +41 -0
  84. package/dist/metadata/examples/Search.md +24 -0
  85. package/dist/metadata/examples/Skeleton.md +161 -0
  86. package/dist/metadata/examples/Slider.md +109 -0
  87. package/dist/metadata/examples/SplitButton.md +120 -0
  88. package/dist/metadata/examples/Steps.md +106 -0
  89. package/dist/metadata/examples/Table.md +449 -0
  90. package/dist/metadata/examples/Tabs.md +241 -0
  91. package/dist/metadata/examples/Text.md +188 -0
  92. package/dist/metadata/examples/TextArea.md +28 -0
  93. package/dist/metadata/examples/TextField.md +119 -0
  94. package/dist/metadata/examples/TextWithHighlight.md +2 -0
  95. package/dist/metadata/examples/ThemeProvider.md +47 -0
  96. package/dist/metadata/examples/Tipseen.md +111 -0
  97. package/dist/metadata/examples/Toast.md +127 -0
  98. package/dist/metadata/examples/Toggle.md +38 -0
  99. package/dist/metadata/examples/Tooltip.md +53 -0
  100. package/dist/metadata/examples/VirtualizedGrid.md +54 -0
  101. package/dist/metadata/examples/VirtualizedList.md +50 -0
  102. package/dist/metadata/examples/useGridKeyboardNavigationContext.md +61 -0
  103. package/dist/mocked_classnames/scripts/build-all-metadata.d.ts +1 -0
  104. package/dist/mocked_classnames/scripts/extract-accessibility.d.ts +4 -0
  105. package/dist/mocked_classnames/scripts/extract-examples.d.ts +3 -0
  106. package/dist/scripts/build-all-metadata.d.ts +1 -0
  107. package/dist/scripts/extract-accessibility.d.ts +4 -0
  108. package/dist/scripts/extract-examples.d.ts +3 -0
  109. package/package.json +12 -10
@@ -0,0 +1,98 @@
1
+ # Storybook Code Examples
2
+
3
+ ## Overview
4
+
5
+ ```tsx
6
+ const menuItemTemplate = (args: MenuItemProps) => <Menu>
7
+ <MenuItem {...args} />
8
+ </Menu>
9
+ ```
10
+
11
+ ## States
12
+
13
+ ```tsx
14
+ <Menu>
15
+ <MenuItem title="Regular menu item" />
16
+ <MenuItem title="Selected menu item" selected />
17
+ <MenuItem title="Disabled menu item" disabled />
18
+ </Menu>
19
+ ```
20
+
21
+ ## Icons
22
+
23
+ ```tsx
24
+ <Flex gap="large" align="start" justify="start">
25
+ <Flex direction="column" gap="medium">
26
+ <Text>Left icon</Text>
27
+ <Menu>
28
+ <MenuItem title="SVG icon" icon={Activity} />
29
+ <MenuItem title="Font icon" icon="fa fa-star" type="font" />
30
+ </Menu>
31
+ </Flex>
32
+ <Flex direction="column" gap="medium">
33
+ <Text>Right icon</Text>
34
+ <Menu>
35
+ <MenuItem title="SVG right icon" rightIcon={Activity} />
36
+ <MenuItem title="Font right icon" rightIcon="fa fa-star" rightType="font" />
37
+ </Menu>
38
+ </Flex>
39
+ </Flex>
40
+ ```
41
+
42
+ ## Label
43
+
44
+ ```tsx
45
+ <Menu>
46
+ <MenuItem title="Menu item" label="New" />
47
+ </Menu>
48
+ ```
49
+
50
+ ## Sub menu
51
+
52
+ ```tsx
53
+ <Menu>
54
+ <MenuItem title="Opens on item hover">
55
+ <Menu tabIndex={0} id="sub-menu">
56
+ <MenuItem title="Sub menu item 1" onClick={() => alert("clicked on sub menu item 1")} />
57
+ <MenuItem title="Sub menu item 2" onClick={() => alert("clicked on sub menu item 2")} />
58
+ <MenuItem title="Sub menu item 3" onClick={() => alert("clicked on sub menu item 3")} />
59
+ </Menu>
60
+ </MenuItem>
61
+ <MenuItem title="Opens on icon hover" splitMenuItem onClick={() => alert("clicked on menu item")}>
62
+ <Menu tabIndex={0} id="sub-menu">
63
+ <MenuItem title="Sub menu item 1" onClick={() => alert("clicked on sub menu item 1")} />
64
+ <MenuItem title="Sub menu item 2" onClick={() => alert("clicked on sub menu item 2")} />
65
+ <MenuItem title="Sub menu item 3" onClick={() => alert("clicked on sub menu item 3")} />
66
+ </Menu>
67
+ </MenuItem>
68
+ </Menu>
69
+ ```
70
+
71
+ ## Overflow
72
+
73
+ ```tsx
74
+ <Menu>
75
+ <MenuItem title="short text" />
76
+ <MenuItem title="long text - bla bla bla bla bla bla bla bla bla bla bla" />
77
+ <MenuItem title="long text with sub menu - bla bla bla bla bla bla bla bla bla bla bla">
78
+ <Menu tabIndex={0} id="sub-menu">
79
+ <MenuItem title="Sub menu item 1" />
80
+ <MenuItem title="Sub menu item 2" />
81
+ <MenuItem title="Sub menu item 3" />
82
+ </Menu>
83
+ </MenuItem>
84
+ </Menu>
85
+ ```
86
+
87
+ ## Tooltip
88
+
89
+ ```tsx
90
+ <Menu>
91
+ <MenuItem title="Menu item with tooltip" tooltipContent="I am tooltip" />
92
+ <MenuItem title="Disabled menu item with tooltip" disabled={true} disableReason="I am a disabled tooltip" />
93
+ <MenuItem title="I am a very very very very long text please hover me to get a tooltip" />
94
+ <MenuItem title="Menu item with bottom tooltip" tooltipContent="I am tooltip" tooltipPosition="bottom" />
95
+ <MenuItem title="Menu item with icon and tooltip" tooltipContent="Menu item with icon and tooltip" tooltipPosition="left" icon={Activity} type="svg" />
96
+ </Menu>
97
+ ```
98
+
@@ -0,0 +1,42 @@
1
+ # Storybook Code Examples
2
+
3
+ ## States
4
+
5
+ ```tsx
6
+ [<Menu key="Primary">
7
+ <MenuItemButton kind="primary">Primary</MenuItemButton>
8
+ </Menu>, <Menu key="Secondary">
9
+ <MenuItemButton kind="secondary">Secondary</MenuItemButton>
10
+ </Menu>, <Menu key="Tertiary">
11
+ <MenuItemButton kind="tertiary">Tertiary</MenuItemButton>
12
+ </Menu>]
13
+ ```
14
+
15
+ ## Disabled
16
+
17
+ ```tsx
18
+ [<Menu key="disabled-Primary">
19
+ <MenuItemButton kind="primary" disabled disableReason="Disabled reason">
20
+ Primary
21
+ </MenuItemButton>
22
+ </Menu>, <Menu key="disabled-Secondary">
23
+ <MenuItemButton kind="secondary" disabled disableReason="Disabled reason">
24
+ Secondary
25
+ </MenuItemButton>
26
+ </Menu>, <Menu key="disabled-Tertiary">
27
+ <MenuItemButton kind="tertiary" disabled disableReason="Disabled reason">
28
+ Tertiary
29
+ </MenuItemButton>
30
+ </Menu>]
31
+ ```
32
+
33
+ ## Icons
34
+
35
+ ```tsx
36
+ [<Menu key="left">
37
+ <MenuItemButton leftIcon={Invite}>Left icon</MenuItemButton>
38
+ </Menu>, <Menu key="right">
39
+ <MenuItemButton rightIcon={Invite}>Right icon</MenuItemButton>
40
+ </Menu>]
41
+ ```
42
+
@@ -0,0 +1,25 @@
1
+ # Storybook Code Examples
2
+
3
+ ## Caption placements
4
+
5
+ ```tsx
6
+ <Flex gap={80}>
7
+ <DialogContentContainer>
8
+ <Menu>
9
+ <MenuTitle caption="Left menu title" captionPosition="top" />
10
+ <MenuItem title="Item 1" />
11
+ <MenuItem title="Item 2" />
12
+ <MenuItem title="Item 3" />
13
+ </Menu>
14
+ </DialogContentContainer>
15
+ <DialogContentContainer>
16
+ <Menu>
17
+ <MenuTitle caption="Center menu title" captionPosition="center" />
18
+ <MenuItem title="Item 1" />
19
+ <MenuItem title="Item 2" />
20
+ <MenuItem title="Item 3" />
21
+ </Menu>
22
+ </DialogContentContainer>
23
+ </Flex>
24
+ ```
25
+
@@ -0,0 +1,400 @@
1
+ # Storybook Code Examples
2
+
3
+ ## Overview
4
+
5
+ ```tsx
6
+ return <Modal id="modal-basic" show={show} size="medium" onClose={() => setShow(false)} container={container} {...args}>
7
+ <ModalBasicLayout>
8
+ <ModalHeader title="Modal title" description={<Text type="text1">
9
+ Modal subtitle, can come with icon <Link inheritFontSize inlineText text="and link." />
10
+ </Text>} />
11
+ <ModalContent>
12
+ <Text type="text1" align="inherit" element="p">
13
+ Modal content will appear here, you can custom it however you want, according to the user needs. Please
14
+ make sure that the content is clear for completing the relevant task.
15
+ </Text>
16
+ </ModalContent>
17
+ </ModalBasicLayout>
18
+ <ModalFooter primaryButton={{
19
+ text: "Confirm",
20
+ onClick: () => setShow(false)
21
+ }} secondaryButton={{
22
+ text: "Cancel",
23
+ onClick: () => setShow(false)
24
+ }} />
25
+ </Modal>;
26
+ ```
27
+
28
+ ## Sizes
29
+
30
+ ```tsx
31
+ const [showSmall, setShowSmall] = useState(false);
32
+ const [showMedium, setShowMedium] = useState(false);
33
+ const [showLarge, setShowLarge] = useState(false);
34
+ return <>
35
+ <Flex gap="large" style={{
36
+ paddingBlock: 40
37
+ }}>
38
+ <Button onClick={() => setShowSmall(true)}>Small</Button>
39
+ <Button onClick={() => setShowMedium(true)}>Medium</Button>
40
+ <Button onClick={() => setShowLarge(true)}>Large</Button>
41
+ </Flex>
42
+
43
+ <Modal id="modal-basic-small" show={showSmall} size="small" onClose={() => setShowSmall(false)}>
44
+ <ModalBasicLayout>
45
+ <ModalHeader title="Modal title" description={<Text type="text1">
46
+ Modal subtitle, can come with icon <Link inheritFontSize inlineText text="and link." />
47
+ </Text>} />
48
+ <ModalContent>
49
+ <Text type="text1" align="inherit" element="p">
50
+ Modal content will appear here, you can custom it however you want, according to the user needs. Please
51
+ make sure that the content is clear for completing the relevant task.
52
+ </Text>
53
+ </ModalContent>
54
+ </ModalBasicLayout>
55
+ <ModalFooter primaryButton={{
56
+ text: "Confirm",
57
+ onClick: () => setShowSmall(false)
58
+ }} secondaryButton={{
59
+ text: "Cancel",
60
+ onClick: () => setShowSmall(false)
61
+ }} />
62
+ </Modal>
63
+
64
+ <Modal id="modal-basic-medium" show={showMedium} size="medium" onClose={() => setShowMedium(false)}>
65
+ <ModalBasicLayout>
66
+ <ModalHeader title="Modal title" description={<Text type="text1">
67
+ Modal subtitle, can come with icon <Link inheritFontSize inlineText text="and link." />
68
+ </Text>} />
69
+ <ModalContent>
70
+ <Text type="text1" align="inherit" element="p">
71
+ Modal content will appear here, you can custom it however you want, according to the user needs. Please
72
+ make sure that the content is clear for completing the relevant task.
73
+ </Text>
74
+ </ModalContent>
75
+ </ModalBasicLayout>
76
+ <ModalFooter primaryButton={{
77
+ text: "Confirm",
78
+ onClick: () => setShowMedium(false)
79
+ }} secondaryButton={{
80
+ text: "Cancel",
81
+ onClick: () => setShowMedium(false)
82
+ }} />
83
+ </Modal>
84
+
85
+ <Modal id="modal-basic-large" show={showLarge} size="large" onClose={() => setShowLarge(false)}>
86
+ <ModalBasicLayout>
87
+ <ModalHeader title="Modal title" description={<Text type="text1">
88
+ Modal subtitle, can come with icon <Link inheritFontSize inlineText text="and link." />
89
+ </Text>} />
90
+ <ModalContent>
91
+ <Text type="text1" align="inherit" element="p">
92
+ Modal content will appear here, you can custom it however you want, according to the user needs. Please
93
+ make sure that the content is clear for completing the relevant task.
94
+ </Text>
95
+ </ModalContent>
96
+ </ModalBasicLayout>
97
+ <ModalFooter primaryButton={{
98
+ text: "Confirm",
99
+ onClick: () => setShowLarge(false)
100
+ }} secondaryButton={{
101
+ text: "Cancel",
102
+ onClick: () => setShowLarge(false)
103
+ }} />
104
+ </Modal>
105
+ </>;
106
+ ```
107
+
108
+ ## AlertModal
109
+
110
+ ```tsx
111
+ return <Modal id="modal-basic" show={show} alertModal size="medium" onClose={() => setShow(false)} container={container}>
112
+ <ModalBasicLayout>
113
+ <ModalHeader title="Alert modal" />
114
+ <ModalContent>
115
+ <Text type="text1" align="inherit" element="p">
116
+ This will allow closing the modal only by the close buttons and not by ESC or by clicking outside.
117
+ </Text>
118
+ </ModalContent>
119
+ </ModalBasicLayout>
120
+ <ModalFooter primaryButton={{
121
+ text: "Confirm",
122
+ onClick: () => setShow(false)
123
+ }} secondaryButton={{
124
+ text: "Cancel",
125
+ onClick: () => setShow(false)
126
+ }} />
127
+ </Modal>;
128
+ ```
129
+
130
+ ## Scroll
131
+
132
+ ```tsx
133
+ return <Modal id="modal-basic" show={show} size="medium" onClose={() => setShow(false)} container={container} style={{
134
+ height: 400
135
+ }}>
136
+ <ModalBasicLayout>
137
+ <ModalHeader title="Scrollable modal" />
138
+ <ModalContent>
139
+ <Text type="text1" align="inherit" element="p">
140
+ Modal content will appear here, you can custom it however you want, according to the user needs. Please
141
+ make sure that the content is clear for completing the relevant task. The Basic Modal is intended for
142
+ straightforward tasks, like selecting items or gathering basic information. Basic Modals help users focus
143
+ on a single task without distractions. These modals do not support images or videos. When the content of
144
+ the modal is too large to fit within the viewport, the modal content should become scrollable while the
145
+ header and footer stay sticky. If the scroll is too long, consider switching to a different modal size or
146
+ a different layout. Modal content will appear here, you can custom it however you want, according to the
147
+ user needs. Please make sure that the content is clear for completing the relevant task.
148
+ </Text>
149
+ </ModalContent>
150
+ </ModalBasicLayout>
151
+ <ModalFooter primaryButton={{
152
+ text: "Confirm",
153
+ onClick: () => setShow(false)
154
+ }} secondaryButton={{
155
+ text: "Cancel",
156
+ onClick: () => setShow(false)
157
+ }} />
158
+ </Modal>;
159
+ ```
160
+
161
+ ## Wizard
162
+
163
+ ```tsx
164
+ const steps = [<ModalBasicLayout>
165
+ <ModalHeader title="Modal with wizard" />
166
+ <ModalContent>
167
+ <Text type="text1" align="inherit" element="p">
168
+ Modal content will appear here, you can custom it however you want, according to the user needs. Please make
169
+ sure that the content is clear for completing the relevant task.
170
+ </Text>
171
+ </ModalContent>
172
+ </ModalBasicLayout>, <ModalBasicLayout>
173
+ <ModalHeader title="Modal with wizard" />
174
+ <ModalContent>
175
+ <Text type="text1" align="inherit" element="p">
176
+ Modal content will appear here, you can custom it however you want, according to the user needs. Please make
177
+ sure that the content is clear for completing the relevant task.
178
+ </Text>
179
+ </ModalContent>
180
+ </ModalBasicLayout>, <ModalBasicLayout>
181
+ <ModalHeader title="Modal with wizard" />
182
+ <ModalContent>
183
+ <Text type="text1" align="inherit" element="p">
184
+ Modal content will appear here, you can custom it however you want, according to the user needs. Please make
185
+ sure that the content is clear for completing the relevant task.
186
+ </Text>
187
+ </ModalContent>
188
+ </ModalBasicLayout>];
189
+ const {
190
+ activeStep,
191
+ direction,
192
+ next,
193
+ back,
194
+ isFirstStep,
195
+ isLastStep,
196
+ goToStep
197
+ } = useWizard({
198
+ stepCount: steps.length
199
+ });
200
+ const primaryButtonText = isLastStep ? "Confirm" : "Next";
201
+ return <Modal id="modal-basic" show={show} size="medium" onClose={() => setShow(false)} container={container}>
202
+ <TransitionView activeStep={activeStep} direction={direction}>
203
+ {steps}
204
+ </TransitionView>
205
+ <ModalFooterWizard activeStep={activeStep} stepCount={steps.length} onStepClick={goToStep} primaryButton={{
206
+ text: primaryButtonText,
207
+ onClick: next
208
+ }} secondaryButton={{
209
+ text: "Back",
210
+ onClick: back,
211
+ disabled: isFirstStep
212
+ }} />
213
+ </Modal>;
214
+ ```
215
+
216
+ ## FooterWithExtraContent
217
+
218
+ ```tsx
219
+ return <Modal id="modal-basic" show={show} size="medium" onClose={() => setShow(false)} container={container}>
220
+ <ModalBasicLayout>
221
+ <ModalHeader title="Modal title" description={<Text type="text1">
222
+ Modal subtitle, can come with icon <Link inheritFontSize inlineText text="and link." />
223
+ </Text>} />
224
+ <ModalContent>
225
+ <Text type="text1" align="inherit" element="p">
226
+ Modal content will appear here, you can custom it however you want, according to the user needs. Please
227
+ make sure that the content is clear for completing the relevant task.
228
+ </Text>
229
+ </ModalContent>
230
+ </ModalBasicLayout>
231
+ <ModalFooter primaryButton={{
232
+ text: "Confirm",
233
+ onClick: () => setShow(false)
234
+ }} secondaryButton={{
235
+ text: "Cancel",
236
+ onClick: () => setShow(false)
237
+ }} renderSideAction={<Checkbox label="Don't show again" />} />
238
+ </Modal>;
239
+ ```
240
+
241
+ ## Confirmation
242
+
243
+ ```tsx
244
+ return <Modal id="modal-basic" show={show} size="small" onClose={() => setShow(false)} container={container}>
245
+ <ModalBasicLayout>
246
+ <ModalHeader title="Want to delete?" />
247
+ <ModalContent>
248
+ <Text type="text1" align="inherit" element="p">
249
+ There are other tasks connected to this task. Deleting this task will remove any existing connections. It
250
+ will be kept in trash for 30 days.
251
+ </Text>
252
+ </ModalContent>
253
+ </ModalBasicLayout>
254
+ <ModalFooter primaryButton={{
255
+ text: "Confirm",
256
+ onClick: () => setShow(false)
257
+ }} secondaryButton={{
258
+ text: "Cancel",
259
+ onClick: () => setShow(false)
260
+ }} />
261
+ </Modal>;
262
+ ```
263
+
264
+ ## HeaderWithIconButton
265
+
266
+ ```tsx
267
+ return <Modal id="modal-basic" show={show} renderHeaderAction={<IconButton icon={Menu} size="small" kind="tertiary" aria-label="Open Menu" />} size="medium" onClose={() => setShow(false)} container={container}>
268
+ <ModalBasicLayout>
269
+ <ModalHeader title="Modal title" description={<Text type="text1">
270
+ Modal subtitle, can come with icon <Link inheritFontSize inlineText text="and link." />
271
+ </Text>} />
272
+ <ModalContent>
273
+ <Text type="text1" align="inherit" element="p">
274
+ Modal content will appear here, you can custom it however you want, according to the user needs. Please
275
+ make sure that the content is clear for completing the relevant task.
276
+ </Text>
277
+ </ModalContent>
278
+ </ModalBasicLayout>
279
+ <ModalFooter primaryButton={{
280
+ text: "Confirm",
281
+ onClick: () => setShow(false)
282
+ }} secondaryButton={{
283
+ text: "Cancel",
284
+ onClick: () => setShow(false)
285
+ }} renderSideAction={<Checkbox label="Don't show again" />} />
286
+ </Modal>;
287
+ ```
288
+
289
+ ## Animation
290
+
291
+ ```tsx
292
+ const [showAnchor, setShowAnchor] = useState(false);
293
+ const [showCenterPop, setShowCenterPop] = useState(false);
294
+ const [showTransition, setShowTransition] = useState(false);
295
+ const anchorButtonRef = useRef<HTMLButtonElement>(null);
296
+ const transitionSteps = [<ModalBasicLayout>
297
+ <ModalHeader title="Modal with wizard" />
298
+ <ModalContent>
299
+ <Text type="text1" align="inherit" element="p">
300
+ Modal content will appear here, you can custom it however you want, according to the user needs. Please make
301
+ sure that the content is clear for completing the relevant task.
302
+ </Text>
303
+ </ModalContent>
304
+ </ModalBasicLayout>, <ModalBasicLayout>
305
+ <ModalHeader title="Modal with wizard" />
306
+ <ModalContent>
307
+ <Text type="text1" align="inherit" element="p">
308
+ Modal content will appear here, you can custom it however you want, according to the user needs. Please make
309
+ sure that the content is clear for completing the relevant task.
310
+ </Text>
311
+ </ModalContent>
312
+ </ModalBasicLayout>, <ModalBasicLayout>
313
+ <ModalHeader title="Modal with wizard" />
314
+ <ModalContent>
315
+ <Text type="text1" align="inherit" element="p">
316
+ Modal content will appear here, you can custom it however you want, according to the user needs. Please make
317
+ sure that the content is clear for completing the relevant task.
318
+ </Text>
319
+ </ModalContent>
320
+ </ModalBasicLayout>];
321
+ const {
322
+ activeStep,
323
+ direction,
324
+ next,
325
+ back,
326
+ isFirstStep,
327
+ isLastStep,
328
+ goToStep
329
+ } = useWizard({
330
+ stepCount: transitionSteps.length
331
+ });
332
+ return <>
333
+ <Flex gap="large" style={{
334
+ paddingBlock: 40
335
+ }}>
336
+ <Button ref={anchorButtonRef} onClick={() => setShowAnchor(true)}>
337
+ Anchor
338
+ </Button>
339
+ <Button onClick={() => setShowCenterPop(true)}>Center pop</Button>
340
+ <Button onClick={() => setShowTransition(true)}>Transition</Button>
341
+ </Flex>
342
+
343
+ <Modal id="modal-basic-anchor" show={showAnchor} anchorElementRef={anchorButtonRef} size="medium" onClose={() => setShowAnchor(false)}>
344
+ <ModalBasicLayout>
345
+ <ModalHeader title="Modal title" description={<Text type="text1">
346
+ Modal subtitle, can come with icon <Link inheritFontSize inlineText text="and link." />
347
+ </Text>} />
348
+ <ModalContent>
349
+ <Text type="text1" align="inherit" element="p">
350
+ Modal content will appear here, you can custom it however you want, according to the user needs. Please
351
+ make sure that the content is clear for completing the relevant task.
352
+ </Text>
353
+ </ModalContent>
354
+ </ModalBasicLayout>
355
+ <ModalFooter primaryButton={{
356
+ text: "Confirm",
357
+ onClick: () => setShowAnchor(false)
358
+ }} secondaryButton={{
359
+ text: "Cancel",
360
+ onClick: () => setShowAnchor(false)
361
+ }} />
362
+ </Modal>
363
+
364
+ <Modal id="modal-basic-center" show={showCenterPop} size="medium" onClose={() => setShowCenterPop(false)}>
365
+ <ModalBasicLayout>
366
+ <ModalHeader title="Modal title" description={<Text type="text1">
367
+ Modal subtitle, can come with icon <Link inheritFontSize inlineText text="and link." />
368
+ </Text>} />
369
+ <ModalContent>
370
+ <Text type="text1" align="inherit" element="p">
371
+ Modal content will appear here, you can custom it however you want, according to the user needs. Please
372
+ make sure that the content is clear for completing the relevant task.
373
+ </Text>
374
+ </ModalContent>
375
+ </ModalBasicLayout>
376
+ <ModalFooter primaryButton={{
377
+ text: "Confirm",
378
+ onClick: () => setShowCenterPop(false)
379
+ }} secondaryButton={{
380
+ text: "Cancel",
381
+ onClick: () => setShowCenterPop(false)
382
+ }} />
383
+ </Modal>
384
+
385
+ <Modal id="modal-basic-transition" show={showTransition} size="medium" onClose={() => setShowTransition(false)}>
386
+ <TransitionView activeStep={activeStep} direction={direction}>
387
+ {transitionSteps}
388
+ </TransitionView>
389
+ <ModalFooterWizard activeStep={activeStep} stepCount={transitionSteps.length} onStepClick={goToStep} primaryButton={{
390
+ text: isLastStep ? "Confirm" : "Next",
391
+ onClick: next
392
+ }} secondaryButton={{
393
+ text: "Back",
394
+ onClick: back,
395
+ disabled: isFirstStep
396
+ }} />
397
+ </Modal>
398
+ </>;
399
+ ```
400
+