@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,521 @@
1
+ # Storybook Code Examples
2
+
3
+ ## Overview
4
+
5
+ ```tsx
6
+ return <div style={{
7
+ padding: "80px var(--sb-spacing-small)"
8
+ }}>
9
+ <Dialog id="overview-dialog" aria-label="Overview dialog" middleware={preventMainAxisShift} shouldShowOnMount showTrigger={["click"]} hideTrigger={["click"]} position={"right"} content={<DialogContentContainer>
10
+ <Flex direction="column" align="start" gap="small" style={{
11
+ width: "150px",
12
+ padding: "var(--sb-spacing-small)"
13
+ }}>
14
+ <Skeleton type="text" size="h1" fullWidth />
15
+ {Array.from({
16
+ length: 3
17
+ }, (_value, index: number) => <Flex key={index} gap="small" style={{
18
+ width: "100%"
19
+ }}>
20
+ <Skeleton type="circle" width={20} height={20} />
21
+ <Skeleton type="text" size="small" fullWidth />
22
+ </Flex>)}
23
+ </Flex>
24
+ </DialogContentContainer>} {...args}>
25
+ <IconButton id="overview-dialog-trigger" aria-label="Open information dialog" icon={Info} active kind="secondary" />
26
+ </Dialog>
27
+ </div>;
28
+ ```
29
+
30
+ ## Positions
31
+
32
+ ```tsx
33
+ // For maintain active state of each button according to the dialog open state (this hooks is available for your usage)
34
+ const {
35
+ isChecked: checkedTop,
36
+ onChange: onChangeTop
37
+ } = useSwitch({
38
+ defaultChecked: false
39
+ });
40
+ const {
41
+ isChecked: checkedBottom,
42
+ onChange: onChangeBottom
43
+ } = useSwitch({
44
+ defaultChecked: false
45
+ });
46
+ const {
47
+ isChecked: checkedRight,
48
+ onChange: onChangeRight
49
+ } = useSwitch({
50
+ defaultChecked: false
51
+ });
52
+ const {
53
+ isChecked: checkedLeft,
54
+ onChange: onChangeLeft
55
+ } = useSwitch({
56
+ defaultChecked: false
57
+ });
58
+ return <Flex style={{
59
+ padding: "80px var(--sb-spacing-small)"
60
+ }} gap="medium">
61
+ <Dialog id="positions-top-dialog" aria-label="Top positioned dialog" middleware={preventMainAxisShift} open={checkedTop} position="top" showTrigger={[]} hideTrigger={[]} content={<DialogContentContainer>
62
+ <Flex direction="column" align="start" gap="small" style={{
63
+ width: "150px",
64
+ padding: "var(--sb-spacing-small)"
65
+ }}>
66
+ <Skeleton type="text" size="h1" fullWidth />
67
+ {Array.from({
68
+ length: 3
69
+ }, (_value, index: number) => <Flex key={index} gap="small" style={{
70
+ width: "100%"
71
+ }}>
72
+ <Skeleton type="circle" width={20} height={20} />
73
+ <Skeleton type="text" size="small" fullWidth />
74
+ </Flex>)}
75
+ </Flex>
76
+ </DialogContentContainer>}>
77
+ <Button id="positions-top-button" aria-label="Toggle top dialog" kind="secondary" onClick={onChangeTop} active={checkedTop}>
78
+ Top
79
+ </Button>
80
+ </Dialog>
81
+ <Dialog id="positions-bottom-dialog" aria-label="Bottom positioned dialog" middleware={preventMainAxisShift} position="bottom" showTrigger={[]} hideTrigger={[]} open={checkedBottom} content={<DialogContentContainer>
82
+ <Flex direction="column" align="start" gap="small" style={{
83
+ width: "150px",
84
+ padding: "var(--sb-spacing-small)"
85
+ }}>
86
+ <Skeleton type="text" size="h1" fullWidth />
87
+ {Array.from({
88
+ length: 3
89
+ }, (_value, index: number) => <Flex key={index} gap="small" style={{
90
+ width: "100%"
91
+ }}>
92
+ <Skeleton type="circle" width={20} height={20} />
93
+ <Skeleton type="text" size="small" fullWidth />
94
+ </Flex>)}
95
+ </Flex>
96
+ </DialogContentContainer>}>
97
+ <Button id="positions-bottom-button" aria-label="Toggle bottom dialog" kind="secondary" onClick={onChangeBottom} active={checkedBottom}>
98
+ Bottom
99
+ </Button>
100
+ </Dialog>
101
+ <Dialog id="positions-right-dialog" aria-label="Right positioned dialog" middleware={preventMainAxisShift} showTrigger={[]} hideTrigger={[]} position="right" open={checkedRight} content={<DialogContentContainer>
102
+ <Flex direction="column" align="start" gap="small" style={{
103
+ width: "150px",
104
+ padding: "var(--sb-spacing-small)"
105
+ }}>
106
+ <Skeleton type="text" size="h1" fullWidth />
107
+ {Array.from({
108
+ length: 3
109
+ }, (_value, index: number) => <Flex key={index} gap="small" style={{
110
+ width: "100%"
111
+ }}>
112
+ <Skeleton type="circle" width={20} height={20} />
113
+ <Skeleton type="text" size="small" fullWidth />
114
+ </Flex>)}
115
+ </Flex>
116
+ </DialogContentContainer>}>
117
+ <Button id="positions-right-button" aria-label="Toggle right dialog" kind="secondary" onClick={onChangeRight} active={checkedRight}>
118
+ Right
119
+ </Button>
120
+ </Dialog>
121
+ <Dialog id="positions-left-dialog" aria-label="Left positioned dialog" middleware={preventMainAxisShift} position="left" showTrigger={[]} hideTrigger={[]} open={checkedLeft} content={<DialogContentContainer>
122
+ <Flex direction="column" align="start" gap="small" style={{
123
+ width: "150px",
124
+ padding: "var(--sb-spacing-small)"
125
+ }}>
126
+ <Skeleton type="text" size="h1" fullWidth />
127
+ {Array.from({
128
+ length: 3
129
+ }, (_value, index: number) => <Flex key={index} gap="small" style={{
130
+ width: "100%"
131
+ }}>
132
+ <Skeleton type="circle" width={20} height={20} />
133
+ <Skeleton type="text" size="small" fullWidth />
134
+ </Flex>)}
135
+ </Flex>
136
+ </DialogContentContainer>}>
137
+ <Button id="positions-left-button" aria-label="Toggle left dialog" kind="secondary" onClick={onChangeLeft} active={checkedLeft}>
138
+ Left
139
+ </Button>
140
+ </Dialog>
141
+ </Flex>;
142
+ ```
143
+
144
+ ## Show triggers
145
+
146
+ ```tsx
147
+ const {
148
+ isChecked: clickButtonActive,
149
+ onChange: onClickClickButton
150
+ } = useSwitch({
151
+ defaultChecked: false
152
+ });
153
+ const {
154
+ isChecked: hoverButtonActive,
155
+ onChange: onHoverButton
156
+ } = useSwitch({
157
+ defaultChecked: false
158
+ });
159
+ const {
160
+ isChecked: focusButtonActive,
161
+ onChange: onFocusButton
162
+ } = useSwitch({
163
+ defaultChecked: false
164
+ });
165
+ return <Flex style={{
166
+ padding: "80px var(--sb-spacing-small)"
167
+ }} gap="medium">
168
+ <Dialog middleware={preventMainAxisShift} showTrigger={["click"]} hideTrigger={["click"]} content={<DialogContentContainer>
169
+ <Flex direction="column" align="start" gap="small" style={{
170
+ width: "150px",
171
+ padding: "var(--sb-spacing-small)"
172
+ }}>
173
+ <Skeleton type="text" size="h1" fullWidth />
174
+ {Array.from({
175
+ length: 3
176
+ }, (_value, index: number) => <Flex key={index} gap="small" style={{
177
+ width: "100%"
178
+ }}>
179
+ <Skeleton type="circle" width={20} height={20} />
180
+ <Skeleton type="text" size="small" fullWidth />
181
+ </Flex>)}
182
+ </Flex>
183
+ </DialogContentContainer>}>
184
+ <Button kind="secondary" active={clickButtonActive} onClick={onClickClickButton}>
185
+ On click
186
+ </Button>
187
+ </Dialog>
188
+ <Dialog middleware={preventMainAxisShift} showTrigger={["mouseenter"]} hideTrigger={["mouseleave"]} content={<DialogContentContainer>
189
+ <Flex direction="column" align="start" gap="small" style={{
190
+ width: "150px",
191
+ padding: "var(--sb-spacing-small)"
192
+ }}>
193
+ <Skeleton type="text" size="h1" fullWidth />
194
+ {Array.from({
195
+ length: 3
196
+ }, (_value, index: number) => <Flex key={index} gap="small" style={{
197
+ width: "100%"
198
+ }}>
199
+ <Skeleton type="circle" width={20} height={20} />
200
+ <Skeleton type="text" size="small" fullWidth />
201
+ </Flex>)}
202
+ </Flex>
203
+ </DialogContentContainer>}>
204
+ <div onMouseEnter={onHoverButton} onMouseLeave={onHoverButton}>
205
+ <Button kind="secondary" active={hoverButtonActive}>
206
+ On mouse enter
207
+ </Button>
208
+ </div>
209
+ </Dialog>
210
+ <Dialog middleware={preventMainAxisShift} showTrigger={["focus"]} hideTrigger={["blur"]} content={<DialogContentContainer>
211
+ <Flex direction="column" align="start" gap="small" style={{
212
+ width: "150px",
213
+ padding: "var(--sb-spacing-small)"
214
+ }}>
215
+ <Skeleton type="text" size="h1" fullWidth />
216
+ {Array.from({
217
+ length: 3
218
+ }, (_value, index: number) => <Flex key={index} gap="small" style={{
219
+ width: "100%"
220
+ }}>
221
+ <Skeleton type="circle" width={20} height={20} />
222
+ <Skeleton type="text" size="small" fullWidth />
223
+ </Flex>)}
224
+ </Flex>
225
+ </DialogContentContainer>}>
226
+ <Button onFocus={onFocusButton} onBlur={onFocusButton} kind="secondary" active={focusButtonActive}>
227
+ On focus
228
+ </Button>
229
+ </Dialog>
230
+ <Dialog middleware={preventMainAxisShift} shouldShowOnMount showTrigger={[]} hideTrigger={[]} position="right" content={<DialogContentContainer>
231
+ <Flex direction="column" align="start" gap="small" style={{
232
+ width: "150px",
233
+ padding: "var(--sb-spacing-small)"
234
+ }}>
235
+ <Skeleton type="text" size="h1" fullWidth />
236
+ {Array.from({
237
+ length: 3
238
+ }, (_value, index: number) => <Flex key={index} gap="small" style={{
239
+ width: "100%"
240
+ }}>
241
+ <Skeleton type="circle" width={20} height={20} />
242
+ <Skeleton type="text" size="small" fullWidth />
243
+ </Flex>)}
244
+ </Flex>
245
+ </DialogContentContainer>}>
246
+ <Button kind="secondary" active>
247
+ On mount
248
+ </Button>
249
+ </Dialog>
250
+ </Flex>;
251
+ ```
252
+
253
+ ## Hide triggers
254
+
255
+ ```tsx
256
+ // For maintain active state of each button according to the dialog open state (this hooks is available for your usage)
257
+ const {
258
+ isChecked: clickButtonActive,
259
+ onChange: switchClickButtonActive
260
+ } = useSwitch({
261
+ defaultChecked: true
262
+ });
263
+ const {
264
+ isChecked: clickOutsideButtonActive,
265
+ onChange: switchClickOutsideActive
266
+ } = useSwitch({
267
+ defaultChecked: true
268
+ });
269
+ const {
270
+ isChecked: mouseLeaveButtonActive,
271
+ onChange: switchMouseLeaveActive
272
+ } = useSwitch({
273
+ defaultChecked: true
274
+ });
275
+ const {
276
+ isChecked: blurButtonActive,
277
+ onChange: switchBlurButtonActive
278
+ } = useSwitch({
279
+ defaultChecked: true
280
+ });
281
+ const {
282
+ isChecked: contentClickButtonActive,
283
+ onChange: switchContentClickActive
284
+ } = useSwitch({
285
+ defaultChecked: true
286
+ });
287
+ const {
288
+ isChecked: contextMenuButtonActive,
289
+ onChange: switchContextMenuActive
290
+ } = useSwitch({
291
+ defaultChecked: true
292
+ });
293
+ return <Flex data-testid={HIDE_TRIGGERS_CONTAINER} id={HIDE_TRIGGERS_CONTAINER} style={{
294
+ paddingInline: "var(--sb-spacing-small)"
295
+ }} wrap direction="column" justify="start" align="start">
296
+ <Dialog middleware={preventMainAxisShift} shouldShowOnMount containerSelector={`#${HIDE_TRIGGERS_CONTAINER}`} onClickOutside={switchClickOutsideActive} position="right" showTrigger={["click"]} hideTrigger={["clickoutside"]} content={<DialogContentContainer data-testid={CLICK_OUTSIDE_DIALOG}>
297
+ <Flex direction="column" align="start" gap="small" style={{
298
+ width: "150px",
299
+ padding: "var(--sb-spacing-small)"
300
+ }}>
301
+ <Skeleton type="text" size="h1" fullWidth />
302
+ <Flex gap="small" style={{
303
+ width: "100%"
304
+ }}>
305
+ <Skeleton type="circle" width={20} height={20} />
306
+ <Skeleton type="text" size="small" fullWidth />
307
+ </Flex>
308
+ </Flex>
309
+ </DialogContentContainer>}>
310
+ <Button data-testid={CLICK_OUTSIDE_DIALOG_BUTTON} kind="secondary" active={clickOutsideButtonActive} onClick={switchClickOutsideActive} style={{
311
+ marginBlock: "54px"
312
+ }}>
313
+ On click outside
314
+ </Button>
315
+ </Dialog>
316
+ <Dialog middleware={preventMainAxisShift} shouldShowOnMount position="right" showTrigger={["click"]} hideTrigger={["click"]} content={<DialogContentContainer>
317
+ <Flex direction="column" align="start" gap="small" style={{
318
+ width: "150px",
319
+ padding: "var(--sb-spacing-small)"
320
+ }}>
321
+ <Skeleton type="text" size="h1" fullWidth />
322
+ <Flex gap="small" style={{
323
+ width: "100%"
324
+ }}>
325
+ <Skeleton type="circle" width={20} height={20} />
326
+ <Skeleton type="text" size="small" fullWidth />
327
+ </Flex>
328
+ </Flex>
329
+ </DialogContentContainer>}>
330
+ <Button kind="secondary" active={clickButtonActive} onClick={switchClickButtonActive} style={{
331
+ marginBlock: "54px"
332
+ }}>
333
+ On click
334
+ </Button>
335
+ </Dialog>
336
+ <Dialog middleware={preventMainAxisShift} shouldShowOnMount position="right" showTrigger={["focus", "click"]} hideTrigger={["blur"]} content={<DialogContentContainer>
337
+ <Flex direction="column" align="start" gap="small" style={{
338
+ width: "150px",
339
+ padding: "var(--sb-spacing-small)"
340
+ }}>
341
+ <Skeleton type="text" size="h1" fullWidth />
342
+ <Flex gap="small" style={{
343
+ width: "100%"
344
+ }}>
345
+ <Skeleton type="circle" width={20} height={20} />
346
+ <Skeleton type="text" size="small" fullWidth />
347
+ </Flex>
348
+ </Flex>
349
+ </DialogContentContainer>}>
350
+ <Button kind="secondary" active={blurButtonActive} onClick={switchBlurButtonActive} style={{
351
+ marginBlock: "54px"
352
+ }}>
353
+ On blur
354
+ </Button>
355
+ </Dialog>
356
+ <Dialog middleware={preventMainAxisShift} shouldShowOnMount position="right" showTrigger={["click"]} hideTrigger={["onContentClick"]} onContentClick={switchContentClickActive} content={<DialogContentContainer>
357
+ <Flex direction="column" align="start" gap="small" style={{
358
+ width: "150px",
359
+ padding: "var(--sb-spacing-small)"
360
+ }}>
361
+ <Skeleton type="text" size="h1" fullWidth />
362
+ <Flex gap="small" style={{
363
+ width: "100%"
364
+ }}>
365
+ <Skeleton type="circle" width={20} height={20} />
366
+ <Skeleton type="text" size="small" fullWidth />
367
+ </Flex>
368
+ </Flex>
369
+ </DialogContentContainer>}>
370
+ <Button kind="secondary" active={contentClickButtonActive} onClick={switchContentClickActive} style={{
371
+ marginBlock: "54px"
372
+ }}>
373
+ On content click
374
+ </Button>
375
+ </Dialog>
376
+ <Dialog middleware={preventMainAxisShift} shouldShowOnMount showTrigger={["mouseenter"]} hideTrigger={["mouseleave"]} position="right" onDialogDidHide={switchMouseLeaveActive} onDialogDidShow={switchMouseLeaveActive} content={<DialogContentContainer>
377
+ <Flex direction="column" align="start" gap="small" style={{
378
+ width: "150px",
379
+ padding: "var(--sb-spacing-small)"
380
+ }}>
381
+ <Skeleton type="text" size="h1" fullWidth />
382
+ <Flex gap="small" style={{
383
+ width: "100%"
384
+ }}>
385
+ <Skeleton type="circle" width={20} height={20} />
386
+ <Skeleton type="text" size="small" fullWidth />
387
+ </Flex>
388
+ </Flex>
389
+ </DialogContentContainer>}>
390
+ <Button kind="secondary" active={mouseLeaveButtonActive} onClick={switchMouseLeaveActive} style={{
391
+ marginBlock: "54px"
392
+ }}>
393
+ On mouse leave
394
+ </Button>
395
+ </Dialog>
396
+ <Dialog middleware={preventMainAxisShift} shouldShowOnMount showTrigger={["click"]} hideTrigger={["contextmenu"]} position="right" containerSelector={`#${HIDE_TRIGGERS_CONTAINER}`} onDialogDidHide={switchContextMenuActive} onDialogDidShow={switchContextMenuActive} content={<DialogContentContainer data-testid={CONTEXT_MENU_DIALOG}>
397
+ <Flex direction="column" align="start" gap="small" style={{
398
+ width: "150px",
399
+ padding: "var(--sb-spacing-small)"
400
+ }}>
401
+ <Skeleton type="text" size="h1" fullWidth />
402
+ <Flex gap="small" style={{
403
+ width: "100%"
404
+ }}>
405
+ <Skeleton type="circle" width={20} height={20} />
406
+ <Skeleton type="text" size="small" fullWidth />
407
+ </Flex>
408
+ </Flex>
409
+ </DialogContentContainer>}>
410
+ <Button kind="secondary" active={contextMenuButtonActive} style={{
411
+ marginBlock: "54px"
412
+ }}>
413
+ On right click
414
+ </Button>
415
+ </Dialog>
416
+ </Flex>;
417
+ ```
418
+
419
+ ## Controlled Dialog
420
+
421
+ ```tsx
422
+ const {
423
+ isChecked: isOpen,
424
+ onChange: setIsOpen
425
+ } = useSwitch({
426
+ defaultChecked: false
427
+ });
428
+ return <Dialog
429
+ //disable default triggers
430
+ showTrigger={[]}
431
+ // manage the opening state in the app level
432
+ open={isOpen} content={<DialogContentContainer>
433
+ <DialogContentContainer>
434
+ <Button kind="secondary"
435
+ // @ts-ignore
436
+ onClick={() => setIsOpen(false)}>
437
+ This will close as well
438
+ </Button>
439
+ </DialogContentContainer>
440
+ </DialogContentContainer>}>
441
+ <Button
442
+ // @ts-ignore
443
+ onClick={() => setIsOpen(!isOpen)}>
444
+ Click me to toggle the Dialog
445
+ </Button>
446
+ </Dialog>;
447
+ ```
448
+
449
+ ## Dialog with tooltip
450
+
451
+ ```tsx
452
+ return <div style={{
453
+ padding: "80px var(--sb-spacing-small)"
454
+ }}>
455
+ <Dialog tooltip middleware={preventMainAxisShift} shouldShowOnMount showTrigger={["click"]} hideTrigger={["click"]} position="right" content={<DialogContentContainer>
456
+ <Flex direction="column" align="start" gap="small" style={{
457
+ width: "150px",
458
+ padding: "var(--sb-spacing-small)"
459
+ }}>
460
+ <Skeleton type="text" size="h1" fullWidth />
461
+ {Array.from({
462
+ length: 3
463
+ }, (_value, index: number) => <Flex key={index} gap="small" style={{
464
+ width: "100%"
465
+ }}>
466
+ <Skeleton type="circle" width={20} height={20} />
467
+ <Skeleton type="text" size="small" fullWidth />
468
+ </Flex>)}
469
+ </Flex>
470
+ </DialogContentContainer>}>
471
+ <IconButton icon={Info} active kind="secondary" />
472
+ </Dialog>
473
+ </div>;
474
+ ```
475
+
476
+ ## Disable scroll when dialog open
477
+
478
+ ```tsx
479
+ // For maintain active state of each button according to the dialog open state (this hooks is available for your usage)
480
+ const {
481
+ isChecked: checkedTop,
482
+ onChange: onChangeTop
483
+ } = useSwitch({
484
+ defaultChecked: false
485
+ });
486
+ return <Flex style={{
487
+ padding: "80px var(--sb-spacing-small)"
488
+ }} gap="medium">
489
+ <div className={"scrollable"} style={{
490
+ height: "300px",
491
+ width: "400px",
492
+ overflow: "auto"
493
+ }}>
494
+ <div style={{
495
+ height: "800px"
496
+ }}>
497
+ <Dialog open={checkedTop} position="left" showTrigger={[]} hideTrigger={[]} containerSelector={".scrollable"} disableContainerScroll content={<DialogContentContainer>
498
+ <Flex direction="column" align="start" gap="small" style={{
499
+ width: "150px",
500
+ padding: "var(--sb-spacing-small)"
501
+ }}>
502
+ <Skeleton type="text" size="h1" fullWidth />
503
+ {Array.from({
504
+ length: 3
505
+ }, (_value, index: number) => <Flex key={index} gap="small" style={{
506
+ width: "100%"
507
+ }}>
508
+ <Skeleton type="circle" width={20} height={20} />
509
+ <Skeleton type="text" size="small" fullWidth />
510
+ </Flex>)}
511
+ </Flex>
512
+ </DialogContentContainer>}>
513
+ <Button kind="secondary" onClick={onChangeTop} active={checkedTop}>
514
+ Click
515
+ </Button>
516
+ </Dialog>
517
+ </div>
518
+ </div>
519
+ </Flex>;
520
+ ```
521
+
@@ -0,0 +1,18 @@
1
+ # Storybook Code Examples
2
+
3
+ ## Popover
4
+
5
+ ```tsx
6
+ <DialogContentContainer type="popover">
7
+ <Box margin="medium" padding="medium" />
8
+ </DialogContentContainer>
9
+ ```
10
+
11
+ ## Modal
12
+
13
+ ```tsx
14
+ <DialogContentContainer type="modal">
15
+ <Box margin="medium" padding="medium" />
16
+ </DialogContentContainer>
17
+ ```
18
+
@@ -0,0 +1,50 @@
1
+ # Storybook Code Examples
2
+
3
+ ## Overview
4
+
5
+ ```tsx
6
+ const dividerTemplate = (args: DividerProps) => <div style={{
7
+ width: "400px",
8
+ height: "40px"
9
+ }}>
10
+ <Divider {...args} />
11
+ </div>
12
+ ```
13
+
14
+ ## Directions
15
+
16
+ ```tsx
17
+ <div style={{
18
+ display: "flex",
19
+ flexDirection: "column",
20
+ width: "400px"
21
+ }}>
22
+ <div style={{
23
+ display: "flex",
24
+ alignItems: "center",
25
+ height: 40
26
+ }}>
27
+ <span style={{
28
+ marginRight: "var(--sb-spacing-large)",
29
+ alignSelf: "center"
30
+ }}>
31
+ Horizontal
32
+ </span>
33
+ <Divider direction="horizontal" />
34
+ </div>
35
+ <div style={{
36
+ display: "flex",
37
+ alignItems: "center",
38
+ height: 200
39
+ }}>
40
+ <span style={{
41
+ marginRight: "var(--sb-spacing-large)",
42
+ alignSelf: "center"
43
+ }}>
44
+ Vertical
45
+ </span>
46
+ <Divider direction="vertical" />
47
+ </div>
48
+ </div>
49
+ ```
50
+