@storybook/components 6.4.0-beta.3 → 6.4.0-beta.33

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 (120) hide show
  1. package/dist/cjs/ActionBar/ActionBar.stories.js +7 -7
  2. package/dist/cjs/ScrollArea/GlobalScrollAreaStyles.js +1 -1
  3. package/dist/cjs/ScrollArea/ScrollArea.stories.js +13 -13
  4. package/dist/cjs/Zoom/Zoom.stories.js +22 -22
  5. package/dist/cjs/bar/bar.js +5 -3
  6. package/dist/cjs/bar/button.js +64 -26
  7. package/dist/cjs/bar/button.stories.js +90 -0
  8. package/dist/cjs/bar/separator.js +4 -2
  9. package/dist/cjs/blocks/ArgsTable/ArgRow.js +18 -6
  10. package/dist/cjs/blocks/ArgsTable/ArgRow.stories.js +6 -1
  11. package/dist/cjs/blocks/ArgsTable/ArgsTable.js +125 -32
  12. package/dist/cjs/blocks/ArgsTable/ArgsTable.stories.js +6 -1
  13. package/dist/cjs/blocks/ColorPalette.stories.js +4 -4
  14. package/dist/cjs/blocks/DocsPage.stories.js +9 -2
  15. package/dist/cjs/blocks/EmptyBlock.stories.js +4 -4
  16. package/dist/cjs/blocks/IconGallery.stories.js +4 -4
  17. package/dist/cjs/blocks/Preview.js +13 -2
  18. package/dist/cjs/blocks/Preview.stories.js +8 -1
  19. package/dist/cjs/blocks/Source.js +57 -8
  20. package/dist/cjs/blocks/Source.stories.js +11 -1
  21. package/dist/cjs/blocks/Story.js +11 -2
  22. package/dist/cjs/blocks/Story.stories.js +11 -1
  23. package/dist/cjs/blocks/Typeset.stories.js +13 -13
  24. package/dist/cjs/brand/StorybookLogo.stories.js +4 -4
  25. package/dist/cjs/icon/icons.js +2 -0
  26. package/dist/cjs/placeholder/placeholder.stories.js +7 -7
  27. package/dist/cjs/tabs/tabs.js +1 -1
  28. package/dist/cjs/tooltip/TooltipNote.js +1 -1
  29. package/dist/cjs/typography/DocumentFormatting.js +15 -4
  30. package/dist/cjs/typography/DocumentWrapper.stories.js +7 -7
  31. package/dist/cjs/typography/link/link.js +2 -2
  32. package/dist/cjs/typography/typography.stories.mdx +75 -0
  33. package/dist/esm/ActionBar/ActionBar.stories.js +4 -4
  34. package/dist/esm/ScrollArea/GlobalScrollAreaStyles.js +1 -1
  35. package/dist/esm/ScrollArea/ScrollArea.stories.js +8 -8
  36. package/dist/esm/Zoom/Zoom.stories.js +15 -15
  37. package/dist/esm/bar/bar.js +5 -3
  38. package/dist/esm/bar/button.js +56 -25
  39. package/dist/esm/bar/button.stories.js +56 -0
  40. package/dist/esm/bar/separator.js +4 -2
  41. package/dist/esm/blocks/ArgsTable/ArgRow.js +15 -5
  42. package/dist/esm/blocks/ArgsTable/ArgRow.stories.js +4 -0
  43. package/dist/esm/blocks/ArgsTable/ArgsTable.js +123 -32
  44. package/dist/esm/blocks/ArgsTable/ArgsTable.stories.js +4 -0
  45. package/dist/esm/blocks/ColorPalette.stories.js +2 -2
  46. package/dist/esm/blocks/DocsPage.stories.js +5 -1
  47. package/dist/esm/blocks/EmptyBlock.stories.js +2 -2
  48. package/dist/esm/blocks/IconGallery.stories.js +2 -2
  49. package/dist/esm/blocks/Preview.js +8 -3
  50. package/dist/esm/blocks/Preview.stories.js +5 -1
  51. package/dist/esm/blocks/Source.js +56 -8
  52. package/dist/esm/blocks/Source.stories.js +7 -0
  53. package/dist/esm/blocks/Story.js +7 -1
  54. package/dist/esm/blocks/Story.stories.js +8 -1
  55. package/dist/esm/blocks/Typeset.stories.js +8 -8
  56. package/dist/esm/brand/StorybookLogo.stories.js +2 -2
  57. package/dist/esm/icon/icons.js +2 -0
  58. package/dist/esm/placeholder/placeholder.stories.js +4 -4
  59. package/dist/esm/tabs/tabs.js +1 -1
  60. package/dist/esm/tooltip/TooltipNote.js +1 -1
  61. package/dist/esm/typography/DocumentFormatting.js +12 -3
  62. package/dist/esm/typography/DocumentWrapper.stories.js +4 -4
  63. package/dist/esm/typography/link/link.js +2 -2
  64. package/dist/esm/typography/typography.stories.mdx +75 -0
  65. package/dist/modern/ActionBar/ActionBar.stories.js +4 -4
  66. package/dist/modern/ScrollArea/GlobalScrollAreaStyles.js +1 -1
  67. package/dist/modern/ScrollArea/ScrollArea.stories.js +8 -8
  68. package/dist/modern/Zoom/Zoom.stories.js +15 -15
  69. package/dist/modern/bar/bar.js +5 -3
  70. package/dist/modern/bar/button.js +48 -24
  71. package/dist/modern/bar/button.stories.js +42 -0
  72. package/dist/modern/bar/separator.js +4 -2
  73. package/dist/modern/blocks/ArgsTable/ArgRow.js +9 -1
  74. package/dist/modern/blocks/ArgsTable/ArgRow.stories.js +4 -0
  75. package/dist/modern/blocks/ArgsTable/ArgsTable.js +99 -12
  76. package/dist/modern/blocks/ArgsTable/ArgsTable.stories.js +4 -0
  77. package/dist/modern/blocks/ColorPalette.stories.js +2 -2
  78. package/dist/modern/blocks/DocsPage.stories.js +3 -1
  79. package/dist/modern/blocks/EmptyBlock.stories.js +2 -2
  80. package/dist/modern/blocks/IconGallery.stories.js +2 -2
  81. package/dist/modern/blocks/Preview.js +6 -3
  82. package/dist/modern/blocks/Preview.stories.js +3 -1
  83. package/dist/modern/blocks/Source.js +44 -0
  84. package/dist/modern/blocks/Source.stories.js +5 -0
  85. package/dist/modern/blocks/Story.js +5 -1
  86. package/dist/modern/blocks/Story.stories.js +6 -1
  87. package/dist/modern/blocks/Typeset.stories.js +8 -8
  88. package/dist/modern/brand/StorybookLogo.stories.js +2 -2
  89. package/dist/modern/icon/icons.js +2 -0
  90. package/dist/modern/placeholder/placeholder.stories.js +4 -4
  91. package/dist/modern/tabs/tabs.js +1 -1
  92. package/dist/modern/tooltip/TooltipNote.js +1 -1
  93. package/dist/modern/typography/DocumentFormatting.js +7 -2
  94. package/dist/modern/typography/DocumentWrapper.stories.js +4 -4
  95. package/dist/modern/typography/link/link.js +2 -2
  96. package/dist/modern/typography/typography.stories.mdx +75 -0
  97. package/dist/ts3.4/ScrollArea/GlobalScrollAreaStyles.d.ts +1 -0
  98. package/dist/ts3.4/bar/button.d.ts +2 -0
  99. package/dist/ts3.4/blocks/ArgsTable/ArgRow.d.ts +7 -1
  100. package/dist/ts3.4/blocks/ArgsTable/ArgsTable.d.ts +8 -2
  101. package/dist/ts3.4/blocks/ArgsTable/NoControlsWarning.d.ts +1 -0
  102. package/dist/ts3.4/blocks/EmptyBlock.d.ts +1 -0
  103. package/dist/ts3.4/blocks/Preview.d.ts +2 -2
  104. package/dist/ts3.4/blocks/Source.d.ts +1 -0
  105. package/dist/ts3.4/blocks/Story.d.ts +4 -3
  106. package/dist/ts3.4/icon/icons.d.ts +2 -0
  107. package/dist/ts3.9/ScrollArea/GlobalScrollAreaStyles.d.ts +1 -0
  108. package/dist/ts3.9/bar/button.d.ts +2 -0
  109. package/dist/ts3.9/blocks/ArgsTable/ArgRow.d.ts +7 -1
  110. package/dist/ts3.9/blocks/ArgsTable/ArgsTable.d.ts +8 -2
  111. package/dist/ts3.9/blocks/ArgsTable/NoControlsWarning.d.ts +1 -0
  112. package/dist/ts3.9/blocks/EmptyBlock.d.ts +1 -0
  113. package/dist/ts3.9/blocks/Preview.d.ts +2 -2
  114. package/dist/ts3.9/blocks/Source.d.ts +1 -0
  115. package/dist/ts3.9/blocks/Story.d.ts +4 -3
  116. package/dist/ts3.9/icon/icons.d.ts +2 -0
  117. package/package.json +5 -5
  118. package/dist/cjs/typography/typography.stories.js +0 -130
  119. package/dist/esm/typography/typography.stories.js +0 -106
  120. package/dist/modern/typography/typography.stories.js +0 -91
@@ -0,0 +1,56 @@
1
+ import React from 'react';
2
+ import { IconButton, IconButtonSkeleton } from './button';
3
+ import { Icons } from '../icon/icon';
4
+ export default {
5
+ component: IconButton,
6
+ title: 'Basics/IconButton'
7
+ };
8
+ export var Loading = function Loading() {
9
+ return /*#__PURE__*/React.createElement(IconButtonSkeleton, null);
10
+ };
11
+ Loading.displayName = "Loading";
12
+ // eslint-disable-next-line no-underscore-dangle
13
+ export var _IconButton = function _IconButton() {
14
+ return /*#__PURE__*/React.createElement(IconButton, null, /*#__PURE__*/React.createElement(Icons, {
15
+ icon: "bookmark"
16
+ }));
17
+ };
18
+ _IconButton.displayName = "_IconButton";
19
+ export var Active = function Active() {
20
+ return /*#__PURE__*/React.createElement(IconButton, {
21
+ active: true
22
+ }, /*#__PURE__*/React.createElement(Icons, {
23
+ icon: "beaker"
24
+ }));
25
+ };
26
+ Active.displayName = "Active";
27
+ export var Disabled = function Disabled() {
28
+ return /*#__PURE__*/React.createElement(IconButton, {
29
+ disabled: true
30
+ }, /*#__PURE__*/React.createElement(Icons, {
31
+ icon: "beaker"
32
+ }));
33
+ };
34
+ Disabled.displayName = "Disabled";
35
+ export var WithText = function WithText() {
36
+ return /*#__PURE__*/React.createElement(IconButton, null, /*#__PURE__*/React.createElement(Icons, {
37
+ icon: "circlehollow"
38
+ }), "\xA0Howdy!");
39
+ };
40
+ WithText.displayName = "WithText";
41
+ export var WithTextActive = function WithTextActive() {
42
+ return /*#__PURE__*/React.createElement(IconButton, {
43
+ active: true
44
+ }, /*#__PURE__*/React.createElement(Icons, {
45
+ icon: "circlehollow"
46
+ }), "\xA0Howdy!");
47
+ };
48
+ WithTextActive.displayName = "WithTextActive";
49
+ export var WithTextDisabled = function WithTextDisabled() {
50
+ return /*#__PURE__*/React.createElement(IconButton, {
51
+ disabled: true
52
+ }, /*#__PURE__*/React.createElement(Icons, {
53
+ icon: "circlehollow"
54
+ }), "\xA0Howdy!");
55
+ };
56
+ WithTextDisabled.displayName = "WithTextDisabled";
@@ -4,9 +4,11 @@ export var Separator = styled.span(function (_ref) {
4
4
  var theme = _ref.theme;
5
5
  return {
6
6
  width: 1,
7
- height: 24,
7
+ height: 20,
8
8
  background: theme.appBorderColor,
9
- marginTop: 8
9
+ marginTop: 10,
10
+ marginLeft: 6,
11
+ marginRight: 2
10
12
  };
11
13
  }, function (_ref2) {
12
14
  var force = _ref2.force;
@@ -10,6 +10,13 @@ import { ArgJsDoc } from './ArgJsDoc';
10
10
  import { ArgValue } from './ArgValue';
11
11
  import { ArgControl } from './ArgControl';
12
12
  import { codeCommon } from '../../typography/shared';
13
+ export var argRowLoadingData = {
14
+ row: {
15
+ name: 'loading',
16
+ description: 'loading'
17
+ },
18
+ arg: 0
19
+ };
13
20
  var Name = styled.span({
14
21
  fontWeight: 'bold'
15
22
  });
@@ -74,11 +81,14 @@ var StyledTd = styled.td(function (_ref5) {
74
81
  export var ArgRow = function ArgRow(props) {
75
82
  var _row$type;
76
83
 
77
- var row = props.row,
78
- updateArgs = props.updateArgs,
79
- compact = props.compact,
80
- expandable = props.expandable,
81
- initialExpandedArgs = props.initialExpandedArgs;
84
+ // const isLoading = 'isLoading' in props;
85
+ var _ref6 = 'row' in props ? props : argRowLoadingData,
86
+ row = _ref6.row,
87
+ updateArgs = _ref6.updateArgs,
88
+ compact = _ref6.compact,
89
+ expandable = _ref6.expandable,
90
+ initialExpandedArgs = _ref6.initialExpandedArgs;
91
+
82
92
  var name = row.name,
83
93
  description = row.description;
84
94
  var table = row.table || {};
@@ -20,6 +20,10 @@ Template.displayName = "Template";
20
20
  var baseArgs = {
21
21
  updateArgs: action('updateArgs')
22
22
  };
23
+ export var Loading = Template.bind({});
24
+ Loading.args = {
25
+ isLoading: true
26
+ };
23
27
  export var String = Template.bind({});
24
28
  String.args = Object.assign({}, baseArgs, {
25
29
  row: {
@@ -36,7 +36,7 @@ import pickBy from 'lodash/pickBy';
36
36
  import { styled, ignoreSsrWarning } from '@storybook/theming';
37
37
  import { opacify, transparentize, darken, lighten } from 'polished';
38
38
  import { Icons } from '../../icon/icon';
39
- import { ArgRow } from './ArgRow';
39
+ import { ArgRow, argRowLoadingData } from './ArgRow';
40
40
  import { SectionRow } from './SectionRow';
41
41
  import { EmptyBlock } from '../EmptyBlock';
42
42
  import { Link } from '../../typography/link/link';
@@ -206,6 +206,13 @@ var sortFns = {
206
206
  },
207
207
  none: undefined
208
208
  };
209
+ export var argTableLoadingData = {
210
+ rows: {
211
+ row1: argRowLoadingData.row,
212
+ row2: argRowLoadingData.row,
213
+ row3: argRowLoadingData.row
214
+ }
215
+ };
209
216
 
210
217
  var groupRows = function groupRows(rows, sort) {
211
218
  var sections = {
@@ -278,34 +285,118 @@ var groupRows = function groupRows(rows, sort) {
278
285
  };
279
286
  return sorted;
280
287
  };
288
+
289
+ var SkeletonHeader = styled.div(function (_ref7) {
290
+ var theme = _ref7.theme;
291
+ return {
292
+ alignContent: 'stretch',
293
+ display: 'flex',
294
+ gap: 16,
295
+ marginTop: 25,
296
+ padding: '10px 20px',
297
+ div: {
298
+ animation: "".concat(theme.animation.glow, " 1.5s ease-in-out infinite"),
299
+ background: theme.appBorderColor,
300
+ flexShrink: 0,
301
+ height: 20,
302
+ '&:first-child, &:nth-child(4)': {
303
+ width: '20%'
304
+ },
305
+ '&:nth-child(2)': {
306
+ width: '30%'
307
+ },
308
+ '&:nth-child(3)': {
309
+ flexGrow: 1
310
+ },
311
+ '&:last-child': {
312
+ width: 30
313
+ },
314
+ '@media ( max-width: 500px )': {
315
+ '&:nth-child( n + 4 )': {
316
+ display: 'none'
317
+ }
318
+ }
319
+ }
320
+ };
321
+ });
322
+ var SkeletonBody = styled.div(function (_ref8) {
323
+ var theme = _ref8.theme;
324
+ return {
325
+ background: theme.background.content,
326
+ boxShadow: theme.base === 'light' ? "rgba(0, 0, 0, 0.10) 0 1px 3px 1px,\n ".concat(transparentize(0.035, theme.appBorderColor), " 0 0 0 1px") : "rgba(0, 0, 0, 0.20) 0 2px 5px 1px,\n ".concat(opacify(0.05, theme.appBorderColor), " 0 0 0 1px"),
327
+ borderRadius: theme.appBorderRadius,
328
+ '> div': {
329
+ alignContent: 'stretch',
330
+ borderTopColor: theme.base === 'light' ? darken(0.1, theme.background.content) : lighten(0.05, theme.background.content),
331
+ borderTopStyle: 'solid',
332
+ borderTopWidth: 1,
333
+ display: 'flex',
334
+ gap: 16,
335
+ padding: 20,
336
+ '&:first-child': {
337
+ borderTop: 0
338
+ }
339
+ },
340
+ '> div div': {
341
+ animation: "".concat(theme.animation.glow, " 1.5s ease-in-out infinite"),
342
+ background: theme.appBorderColor,
343
+ flexShrink: 0,
344
+ height: 20,
345
+ '&:first-child': {
346
+ width: '20%'
347
+ },
348
+ '&:nth-child(2)': {
349
+ width: '30%'
350
+ },
351
+ '&:nth-child(3)': {
352
+ flexGrow: 1
353
+ },
354
+ '&:last-child': {
355
+ width: 'calc(20% + 47px)',
356
+ '@media ( max-width: 500px )': {
357
+ display: 'none'
358
+ }
359
+ }
360
+ }
361
+ };
362
+ });
363
+
364
+ var Skeleton = function Skeleton() {
365
+ return /*#__PURE__*/React.createElement("div", null, /*#__PURE__*/React.createElement(SkeletonHeader, null, /*#__PURE__*/React.createElement("div", null), /*#__PURE__*/React.createElement("div", null), /*#__PURE__*/React.createElement("div", null), /*#__PURE__*/React.createElement("div", null), /*#__PURE__*/React.createElement("div", null)), /*#__PURE__*/React.createElement(SkeletonBody, null, /*#__PURE__*/React.createElement("div", null, /*#__PURE__*/React.createElement("div", null), /*#__PURE__*/React.createElement("div", null), /*#__PURE__*/React.createElement("div", null), /*#__PURE__*/React.createElement("div", null)), /*#__PURE__*/React.createElement("div", null, /*#__PURE__*/React.createElement("div", null), /*#__PURE__*/React.createElement("div", null), /*#__PURE__*/React.createElement("div", null), /*#__PURE__*/React.createElement("div", null)), /*#__PURE__*/React.createElement("div", null, /*#__PURE__*/React.createElement("div", null), /*#__PURE__*/React.createElement("div", null), /*#__PURE__*/React.createElement("div", null), /*#__PURE__*/React.createElement("div", null))));
366
+ };
367
+
368
+ Skeleton.displayName = "Skeleton";
369
+
281
370
  /**
282
371
  * Display the props for a component as a props table. Each row is a collection of
283
372
  * ArgDefs, usually derived from docgen info for the component.
284
373
  */
285
-
286
-
287
374
  export var ArgsTable = function ArgsTable(props) {
288
- var _ref7 = props,
289
- error = _ref7.error;
290
-
291
- if (error) {
292
- return /*#__PURE__*/React.createElement(EmptyBlock, null, error, "\xA0", /*#__PURE__*/React.createElement(Link, {
375
+ if ('error' in props) {
376
+ return /*#__PURE__*/React.createElement(EmptyBlock, null, props.error, "\xA0", /*#__PURE__*/React.createElement(Link, {
293
377
  href: "http://storybook.js.org/docs/",
294
378
  target: "_blank",
295
379
  withArrow: true
296
380
  }, "Read the docs"));
297
381
  }
298
382
 
299
- var _ref8 = props,
300
- rows = _ref8.rows,
301
- args = _ref8.args,
302
- updateArgs = _ref8.updateArgs,
303
- resetArgs = _ref8.resetArgs,
304
- compact = _ref8.compact,
305
- inAddonPanel = _ref8.inAddonPanel,
306
- initialExpandedArgs = _ref8.initialExpandedArgs,
307
- _ref8$sort = _ref8.sort,
308
- sort = _ref8$sort === void 0 ? 'none' : _ref8$sort;
383
+ var isLoading = ('isLoading' in props);
384
+
385
+ var _ref9 = 'rows' in props ? props : argTableLoadingData,
386
+ rows = _ref9.rows,
387
+ args = _ref9.args,
388
+ updateArgs = _ref9.updateArgs,
389
+ resetArgs = _ref9.resetArgs,
390
+ compact = _ref9.compact,
391
+ inAddonPanel = _ref9.inAddonPanel,
392
+ initialExpandedArgs = _ref9.initialExpandedArgs,
393
+ _ref9$sort = _ref9.sort,
394
+ sort = _ref9$sort === void 0 ? 'none' : _ref9$sort;
395
+
396
+ if (isLoading) {
397
+ return /*#__PURE__*/React.createElement(Skeleton, null);
398
+ }
399
+
309
400
  var groups = groupRows(pickBy(rows, function (row) {
310
401
  var _row$table;
311
402
 
@@ -336,7 +427,7 @@ export var ArgsTable = function ArgsTable(props) {
336
427
  className: "docblock-argstable"
337
428
  }, /*#__PURE__*/React.createElement("thead", {
338
429
  className: "docblock-argstable-head"
339
- }, /*#__PURE__*/React.createElement("tr", null, /*#__PURE__*/React.createElement("th", null, "Name"), compact ? null : /*#__PURE__*/React.createElement("th", null, "Description"), compact ? null : /*#__PURE__*/React.createElement("th", null, "Default"), updateArgs ? /*#__PURE__*/React.createElement("th", null, /*#__PURE__*/React.createElement(ControlHeadingWrapper, null, "Control", ' ', resetArgs && /*#__PURE__*/React.createElement(ResetButton, {
430
+ }, /*#__PURE__*/React.createElement("tr", null, /*#__PURE__*/React.createElement("th", null, "Name"), compact || /*#__PURE__*/React.createElement("th", null, "Description"), compact || /*#__PURE__*/React.createElement("th", null, "Default"), updateArgs && /*#__PURE__*/React.createElement("th", null, /*#__PURE__*/React.createElement(ControlHeadingWrapper, null, "Control", ' ', resetArgs && /*#__PURE__*/React.createElement(ResetButton, {
340
431
  onClick: function onClick() {
341
432
  return resetArgs();
342
433
  },
@@ -344,7 +435,7 @@ export var ArgsTable = function ArgsTable(props) {
344
435
  }, /*#__PURE__*/React.createElement(Icons, {
345
436
  icon: "undo",
346
437
  "aria-hidden": true
347
- })))) : null)), /*#__PURE__*/React.createElement("tbody", {
438
+ })))), null)), /*#__PURE__*/React.createElement("tbody", {
348
439
  className: "docblock-argstable-body"
349
440
  }, groups.ungrouped.map(function (row) {
350
441
  return /*#__PURE__*/React.createElement(ArgRow, _extends({
@@ -352,10 +443,10 @@ export var ArgsTable = function ArgsTable(props) {
352
443
  row: row,
353
444
  arg: args && args[row.key]
354
445
  }, common));
355
- }), Object.entries(groups.ungroupedSubsections).map(function (_ref9) {
356
- var _ref10 = _slicedToArray(_ref9, 2),
357
- subcategory = _ref10[0],
358
- subsection = _ref10[1];
446
+ }), Object.entries(groups.ungroupedSubsections).map(function (_ref10) {
447
+ var _ref11 = _slicedToArray(_ref10, 2),
448
+ subcategory = _ref11[0],
449
+ subsection = _ref11[1];
359
450
 
360
451
  return /*#__PURE__*/React.createElement(SectionRow, {
361
452
  key: subcategory,
@@ -370,10 +461,10 @@ export var ArgsTable = function ArgsTable(props) {
370
461
  expandable: expandable
371
462
  }, common));
372
463
  }));
373
- }), Object.entries(groups.sections).map(function (_ref11) {
374
- var _ref12 = _slicedToArray(_ref11, 2),
375
- category = _ref12[0],
376
- section = _ref12[1];
464
+ }), Object.entries(groups.sections).map(function (_ref12) {
465
+ var _ref13 = _slicedToArray(_ref12, 2),
466
+ category = _ref13[0],
467
+ section = _ref13[1];
377
468
 
378
469
  return /*#__PURE__*/React.createElement(SectionRow, {
379
470
  key: category,
@@ -386,10 +477,10 @@ export var ArgsTable = function ArgsTable(props) {
386
477
  row: row,
387
478
  arg: args && args[row.key]
388
479
  }, common));
389
- }), Object.entries(section.subsections).map(function (_ref13) {
390
- var _ref14 = _slicedToArray(_ref13, 2),
391
- subcategory = _ref14[0],
392
- subsection = _ref14[1];
480
+ }), Object.entries(section.subsections).map(function (_ref14) {
481
+ var _ref15 = _slicedToArray(_ref14, 2),
482
+ subcategory = _ref15[0],
483
+ subsection = _ref15[1];
393
484
 
394
485
  return /*#__PURE__*/React.createElement(SectionRow, {
395
486
  key: subcategory,
@@ -34,6 +34,10 @@ var Template = function Template(args) {
34
34
  };
35
35
 
36
36
  Template.displayName = "Template";
37
+ export var Loading = Template.bind({});
38
+ Loading.args = {
39
+ isLoading: true
40
+ };
37
41
  export var Normal = Template.bind({});
38
42
  Normal.args = {
39
43
  rows: {
@@ -4,7 +4,7 @@ export default {
4
4
  title: 'Docs/ColorPalette',
5
5
  component: ColorPalette
6
6
  };
7
- export var defaultStyle = function defaultStyle() {
7
+ export var DefaultStyle = function DefaultStyle() {
8
8
  return /*#__PURE__*/React.createElement(ColorPalette, null, /*#__PURE__*/React.createElement(ColorItem, {
9
9
  title: "theme.color.greyscale",
10
10
  subtitle: "Some of the greys",
@@ -27,7 +27,7 @@ export var defaultStyle = function defaultStyle() {
27
27
  colors: ['linear-gradient(to right,white,black)']
28
28
  }));
29
29
  };
30
- defaultStyle.displayName = "defaultStyle";
30
+ DefaultStyle.displayName = "DefaultStyle";
31
31
  export var NamedColors = function NamedColors() {
32
32
  return /*#__PURE__*/React.createElement(ColorPalette, null, /*#__PURE__*/React.createElement(ColorItem, {
33
33
  title: "theme.color.greyscale",
@@ -16,7 +16,7 @@ var _ref = process.env.NODE_ENV === "production" ? {
16
16
  } : {
17
17
  name: "11oe0k1",
18
18
  styles: "ul,ol{list-style:none;}",
19
- map: "/*# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9ibG9ja3MvRG9jc1BhZ2Uuc3Rvcmllcy50c3giXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBb0JxQiIsImZpbGUiOiIuLi8uLi8uLi9zcmMvYmxvY2tzL0RvY3NQYWdlLnN0b3JpZXMudHN4Iiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IFJlYWN0IGZyb20gJ3JlYWN0JztcbmltcG9ydCB7IEdsb2JhbCwgY3NzIH0gZnJvbSAnQGVtb3Rpb24vY29yZSc7XG5cbmltcG9ydCB7IFRpdGxlLCBTdWJ0aXRsZSwgRG9jc1BhZ2VXcmFwcGVyIH0gZnJvbSAnLi9Eb2NzUGFnZSc7XG5pbXBvcnQgeyBBcmdzVGFibGUsIFNvdXJjZSwgRGVzY3JpcHRpb24gfSBmcm9tICcuL2luZGV4JztcbmltcG9ydCAqIGFzIFN0b3J5IGZyb20gJy4vU3Rvcnkuc3Rvcmllcyc7XG5pbXBvcnQgKiBhcyBQcmV2aWV3IGZyb20gJy4vUHJldmlldy5zdG9yaWVzJztcbmltcG9ydCAqIGFzIGFyZ3NUYWJsZSBmcm9tICcuL0FyZ3NUYWJsZS9BcmdzVGFibGUuc3Rvcmllcyc7XG5pbXBvcnQgKiBhcyBzb3VyY2UgZnJvbSAnLi9Tb3VyY2Uuc3Rvcmllcyc7XG5pbXBvcnQgKiBhcyBkZXNjcmlwdGlvbiBmcm9tICcuL0Rlc2NyaXB0aW9uLnN0b3JpZXMnO1xuXG5leHBvcnQgZGVmYXVsdCB7XG4gIHRpdGxlOiAnRG9jcy9Eb2NzUGFnZScsXG4gIGNvbXBvbmVudDogRG9jc1BhZ2VXcmFwcGVyLFxuICAvLyBUaGUgZ29hbCBvZiB0aGlzIGRlY29yYXRvciBpcyB0byBtaW1pYyBzb21lIENTUyByZXNldC5cbiAgLy8gTGlrZSBUYWlsd2luZCBDU1Mgb3IgQnVsbWEgZG8sIGZvciBleGFtcGxlLlxuICBkZWNvcmF0b3JzOiBbXG4gICAgKHN0b3J5Rm4pID0+IChcbiAgICAgIDw+XG4gICAgICAgIDxHbG9iYWxcbiAgICAgICAgICBzdHlsZXM9e2Nzc2BcbiAgICAgICAgICAgIHVsLFxuICAgICAgICAgICAgb2wge1xuICAgICAgICAgICAgICBsaXN0LXN0eWxlOiBub25lO1xuICAgICAgICAgICAgfVxuICAgICAgICAgIGB9XG4gICAgICAgIC8+XG4gICAgICAgIHtzdG9yeUZuKCl9XG4gICAgICA8Lz5cbiAgICApLFxuICBdLFxuICBwYXJhbWV0ZXJzOiB7XG4gICAgbGF5b3V0OiAnZnVsbHNjcmVlbicsXG4gIH0sXG59O1xuXG5leHBvcnQgY29uc3QgV2l0aFN1YnRpdGxlID0gKCkgPT4gKFxuICA8RG9jc1BhZ2VXcmFwcGVyPlxuICAgIDxUaXRsZT5Eb2NzUGFnZTwvVGl0bGU+XG4gICAgPFN1YnRpdGxlPlxuICAgICAgV2hhdCB0aGUgRG9jc1BhZ2UgbG9va3MgbGlrZS4gTWVhbnQgdG8gYmUgUUFlZCBpbiBDYW52YXMgdGFiIG5vdCBpbiBEb2NzIHRhYi5cbiAgICA8L1N1YnRpdGxlPlxuICAgIDxEZXNjcmlwdGlvbiB7Li4uZGVzY3JpcHRpb24uVGV4dC5hcmdzfSAvPlxuICAgIDxQcmV2aWV3LlNpbmdsZSAvPlxuICAgIDxBcmdzVGFibGUgey4uLmFyZ3NUYWJsZS5Ob3JtYWwuYXJnc30gLz5cbiAgICA8U291cmNlIHsuLi5zb3VyY2UuSlNYLmFyZ3N9IC8+XG4gIDwvRG9jc1BhZ2VXcmFwcGVyPlxuKTtcblxuZXhwb3J0IGNvbnN0IEVtcHR5ID0gKCkgPT4gKFxuICA8RG9jc1BhZ2VXcmFwcGVyPlxuICAgIDxTdG9yeS5FcnJvciAvPlxuICAgIDxBcmdzVGFibGUgey4uLmFyZ3NUYWJsZS5FcnJvci5hcmdzfSAvPlxuICAgIDxTb3VyY2Ugey4uLnNvdXJjZS5Tb3VyY2VVbmF2YWlsYWJsZS5hcmdzfSAvPlxuICA8L0RvY3NQYWdlV3JhcHBlcj5cbik7XG5cbmV4cG9ydCBjb25zdCBOb1RleHQgPSAoKSA9PiAoXG4gIDxEb2NzUGFnZVdyYXBwZXI+XG4gICAgPFRpdGxlPm5vIHRleHQ8L1RpdGxlPlxuICAgIDxQcmV2aWV3LlNpbmdsZSAvPlxuICAgIDxBcmdzVGFibGUgey4uLmFyZ3NUYWJsZS5Ob3JtYWwuYXJnc30gLz5cbiAgICA8U291cmNlIHsuLi5zb3VyY2UuSlNYLmFyZ3N9IC8+XG4gIDwvRG9jc1BhZ2VXcmFwcGVyPlxuKTtcblxuZXhwb3J0IGNvbnN0IFRleHQgPSAoKSA9PiAoXG4gIDxEb2NzUGFnZVdyYXBwZXI+XG4gICAgPFRpdGxlPlNlbnNvcml1bTwvVGl0bGU+XG4gICAgPERlc2NyaXB0aW9uIHsuLi5kZXNjcmlwdGlvbi5UZXh0LmFyZ3N9IC8+XG4gICAgPFByZXZpZXcuU2luZ2xlIC8+XG4gICAgPEFyZ3NUYWJsZSB7Li4uYXJnc1RhYmxlLk5vcm1hbC5hcmdzfSAvPlxuICAgIDxTb3VyY2Ugey4uLnNvdXJjZS5KU1guYXJnc30gLz5cbiAgPC9Eb2NzUGFnZVdyYXBwZXI+XG4pO1xuXG5leHBvcnQgY29uc3QgTWFya2Rvd24gPSAoKSA9PiAoXG4gIDxEb2NzUGFnZVdyYXBwZXI+XG4gICAgPFRpdGxlPm1hcmtkb3duPC9UaXRsZT5cbiAgICA8RGVzY3JpcHRpb24gey4uLmRlc2NyaXB0aW9uLk1hcmtkb3duLmFyZ3N9IC8+XG4gICAgPFByZXZpZXcuU2luZ2xlIC8+XG4gICAgPEFyZ3NUYWJsZSB7Li4uYXJnc1RhYmxlLk5vcm1hbC5hcmdzfSAvPlxuICAgIDxTb3VyY2Ugey4uLnNvdXJjZS5KU1guYXJnc30gLz5cbiAgPC9Eb2NzUGFnZVdyYXBwZXI+XG4pO1xuIl19 */",
19
+ map: "/*# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9ibG9ja3MvRG9jc1BhZ2Uuc3Rvcmllcy50c3giXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBb0JxQiIsImZpbGUiOiIuLi8uLi8uLi9zcmMvYmxvY2tzL0RvY3NQYWdlLnN0b3JpZXMudHN4Iiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IFJlYWN0IGZyb20gJ3JlYWN0JztcbmltcG9ydCB7IEdsb2JhbCwgY3NzIH0gZnJvbSAnQGVtb3Rpb24vY29yZSc7XG5cbmltcG9ydCB7IFRpdGxlLCBTdWJ0aXRsZSwgRG9jc1BhZ2VXcmFwcGVyIH0gZnJvbSAnLi9Eb2NzUGFnZSc7XG5pbXBvcnQgeyBBcmdzVGFibGUsIFNvdXJjZSwgRGVzY3JpcHRpb24gfSBmcm9tICcuL2luZGV4JztcbmltcG9ydCAqIGFzIFN0b3J5IGZyb20gJy4vU3Rvcnkuc3Rvcmllcyc7XG5pbXBvcnQgKiBhcyBQcmV2aWV3IGZyb20gJy4vUHJldmlldy5zdG9yaWVzJztcbmltcG9ydCAqIGFzIGFyZ3NUYWJsZSBmcm9tICcuL0FyZ3NUYWJsZS9BcmdzVGFibGUuc3Rvcmllcyc7XG5pbXBvcnQgKiBhcyBzb3VyY2UgZnJvbSAnLi9Tb3VyY2Uuc3Rvcmllcyc7XG5pbXBvcnQgKiBhcyBkZXNjcmlwdGlvbiBmcm9tICcuL0Rlc2NyaXB0aW9uLnN0b3JpZXMnO1xuXG5leHBvcnQgZGVmYXVsdCB7XG4gIHRpdGxlOiAnRG9jcy9Eb2NzUGFnZScsXG4gIGNvbXBvbmVudDogRG9jc1BhZ2VXcmFwcGVyLFxuICAvLyBUaGUgZ29hbCBvZiB0aGlzIGRlY29yYXRvciBpcyB0byBtaW1pYyBzb21lIENTUyByZXNldC5cbiAgLy8gTGlrZSBUYWlsd2luZCBDU1Mgb3IgQnVsbWEgZG8sIGZvciBleGFtcGxlLlxuICBkZWNvcmF0b3JzOiBbXG4gICAgKHN0b3J5Rm4pID0+IChcbiAgICAgIDw+XG4gICAgICAgIDxHbG9iYWxcbiAgICAgICAgICBzdHlsZXM9e2Nzc2BcbiAgICAgICAgICAgIHVsLFxuICAgICAgICAgICAgb2wge1xuICAgICAgICAgICAgICBsaXN0LXN0eWxlOiBub25lO1xuICAgICAgICAgICAgfVxuICAgICAgICAgIGB9XG4gICAgICAgIC8+XG4gICAgICAgIHtzdG9yeUZuKCl9XG4gICAgICA8Lz5cbiAgICApLFxuICBdLFxuICBwYXJhbWV0ZXJzOiB7XG4gICAgbGF5b3V0OiAnZnVsbHNjcmVlbicsXG4gIH0sXG59O1xuXG5leHBvcnQgY29uc3QgTG9hZGluZyA9ICgpID0+IChcbiAgPERvY3NQYWdlV3JhcHBlcj5cbiAgICA8VGl0bGU+RG9jc1BhZ2U8L1RpdGxlPlxuICAgIDxTdWJ0aXRsZT5cbiAgICAgIFdoYXQgdGhlIERvY3NQYWdlIGxvb2tzIGxpa2UuIE1lYW50IHRvIGJlIFFBZWQgaW4gQ2FudmFzIHRhYiBub3QgaW4gRG9jcyB0YWIuXG4gICAgPC9TdWJ0aXRsZT5cbiAgICA8RGVzY3JpcHRpb24gey4uLmRlc2NyaXB0aW9uLlRleHQuYXJnc30gLz5cbiAgICA8UHJldmlldy5Mb2FkaW5nIC8+XG4gICAgPGFyZ3NUYWJsZS5Mb2FkaW5nIC8+XG4gICAgPFNvdXJjZSB7Li4uc291cmNlLkxvYWRpbmcuYXJnc30gLz5cbiAgPC9Eb2NzUGFnZVdyYXBwZXI+XG4pO1xuXG5leHBvcnQgY29uc3QgV2l0aFN1YnRpdGxlID0gKCkgPT4gKFxuICA8RG9jc1BhZ2VXcmFwcGVyPlxuICAgIDxUaXRsZT5Eb2NzUGFnZTwvVGl0bGU+XG4gICAgPFN1YnRpdGxlPlxuICAgICAgV2hhdCB0aGUgRG9jc1BhZ2UgbG9va3MgbGlrZS4gTWVhbnQgdG8gYmUgUUFlZCBpbiBDYW52YXMgdGFiIG5vdCBpbiBEb2NzIHRhYi5cbiAgICA8L1N1YnRpdGxlPlxuICAgIDxEZXNjcmlwdGlvbiB7Li4uZGVzY3JpcHRpb24uVGV4dC5hcmdzfSAvPlxuICAgIDxQcmV2aWV3LlNpbmdsZSAvPlxuICAgIDxBcmdzVGFibGUgey4uLmFyZ3NUYWJsZS5Ob3JtYWwuYXJnc30gLz5cbiAgICA8U291cmNlIHsuLi5zb3VyY2UuSlNYLmFyZ3N9IC8+XG4gIDwvRG9jc1BhZ2VXcmFwcGVyPlxuKTtcblxuZXhwb3J0IGNvbnN0IEVtcHR5ID0gKCkgPT4gKFxuICA8RG9jc1BhZ2VXcmFwcGVyPlxuICAgIDxTdG9yeS5FcnJvciAvPlxuICAgIDxBcmdzVGFibGUgey4uLmFyZ3NUYWJsZS5FcnJvci5hcmdzfSAvPlxuICAgIDxTb3VyY2Ugey4uLnNvdXJjZS5Tb3VyY2VVbmF2YWlsYWJsZS5hcmdzfSAvPlxuICA8L0RvY3NQYWdlV3JhcHBlcj5cbik7XG5cbmV4cG9ydCBjb25zdCBOb1RleHQgPSAoKSA9PiAoXG4gIDxEb2NzUGFnZVdyYXBwZXI+XG4gICAgPFRpdGxlPm5vIHRleHQ8L1RpdGxlPlxuICAgIDxQcmV2aWV3LlNpbmdsZSAvPlxuICAgIDxBcmdzVGFibGUgey4uLmFyZ3NUYWJsZS5Ob3JtYWwuYXJnc30gLz5cbiAgICA8U291cmNlIHsuLi5zb3VyY2UuSlNYLmFyZ3N9IC8+XG4gIDwvRG9jc1BhZ2VXcmFwcGVyPlxuKTtcblxuZXhwb3J0IGNvbnN0IFRleHQgPSAoKSA9PiAoXG4gIDxEb2NzUGFnZVdyYXBwZXI+XG4gICAgPFRpdGxlPlNlbnNvcml1bTwvVGl0bGU+XG4gICAgPERlc2NyaXB0aW9uIHsuLi5kZXNjcmlwdGlvbi5UZXh0LmFyZ3N9IC8+XG4gICAgPFByZXZpZXcuU2luZ2xlIC8+XG4gICAgPEFyZ3NUYWJsZSB7Li4uYXJnc1RhYmxlLk5vcm1hbC5hcmdzfSAvPlxuICAgIDxTb3VyY2Ugey4uLnNvdXJjZS5KU1guYXJnc30gLz5cbiAgPC9Eb2NzUGFnZVdyYXBwZXI+XG4pO1xuXG5leHBvcnQgY29uc3QgTWFya2Rvd24gPSAoKSA9PiAoXG4gIDxEb2NzUGFnZVdyYXBwZXI+XG4gICAgPFRpdGxlPm1hcmtkb3duPC9UaXRsZT5cbiAgICA8RGVzY3JpcHRpb24gey4uLmRlc2NyaXB0aW9uLk1hcmtkb3duLmFyZ3N9IC8+XG4gICAgPFByZXZpZXcuU2luZ2xlIC8+XG4gICAgPEFyZ3NUYWJsZSB7Li4uYXJnc1RhYmxlLk5vcm1hbC5hcmdzfSAvPlxuICAgIDxTb3VyY2Ugey4uLnNvdXJjZS5KU1guYXJnc30gLz5cbiAgPC9Eb2NzUGFnZVdyYXBwZXI+XG4pO1xuIl19 */",
20
20
  toString: _EMOTION_STRINGIFIED_CSS_ERROR__
21
21
  };
22
22
 
@@ -34,6 +34,10 @@ export default {
34
34
  layout: 'fullscreen'
35
35
  }
36
36
  };
37
+ export var Loading = function Loading() {
38
+ return /*#__PURE__*/React.createElement(DocsPageWrapper, null, /*#__PURE__*/React.createElement(Title, null, "DocsPage"), /*#__PURE__*/React.createElement(Subtitle, null, "What the DocsPage looks like. Meant to be QAed in Canvas tab not in Docs tab."), /*#__PURE__*/React.createElement(Description, description.Text.args), /*#__PURE__*/React.createElement(Preview.Loading, null), /*#__PURE__*/React.createElement(argsTable.Loading, null), /*#__PURE__*/React.createElement(Source, source.Loading.args));
39
+ };
40
+ Loading.displayName = "Loading";
37
41
  export var WithSubtitle = function WithSubtitle() {
38
42
  return /*#__PURE__*/React.createElement(DocsPageWrapper, null, /*#__PURE__*/React.createElement(Title, null, "DocsPage"), /*#__PURE__*/React.createElement(Subtitle, null, "What the DocsPage looks like. Meant to be QAed in Canvas tab not in Docs tab."), /*#__PURE__*/React.createElement(Description, description.Text.args), /*#__PURE__*/React.createElement(Preview.Single, null), /*#__PURE__*/React.createElement(ArgsTable, argsTable.Normal.args), /*#__PURE__*/React.createElement(Source, source.JSX.args));
39
43
  };
@@ -4,7 +4,7 @@ export default {
4
4
  title: 'Docs/EmptyBlock',
5
5
  component: EmptyBlock
6
6
  };
7
- export var error = function error() {
7
+ export var Error = function Error() {
8
8
  return /*#__PURE__*/React.createElement(EmptyBlock, null, "Generic error message");
9
9
  };
10
- error.displayName = "error";
10
+ Error.displayName = "Error";
@@ -5,7 +5,7 @@ export default {
5
5
  title: 'Docs/IconGallery',
6
6
  component: IconGallery
7
7
  };
8
- export var defaultStyle = function defaultStyle() {
8
+ export var DefaultStyle = function DefaultStyle() {
9
9
  return /*#__PURE__*/React.createElement(IconGallery, null, /*#__PURE__*/React.createElement(IconItem, {
10
10
  name: "add"
11
11
  }, /*#__PURE__*/React.createElement(ExampleIcon, {
@@ -34,4 +34,4 @@ export var defaultStyle = function defaultStyle() {
34
34
  alt: "example"
35
35
  })));
36
36
  };
37
- defaultStyle.displayName = "defaultStyle";
37
+ DefaultStyle.displayName = "DefaultStyle";
@@ -57,6 +57,7 @@ import { ActionBar } from '../ActionBar/ActionBar';
57
57
  import { Toolbar } from './Toolbar';
58
58
  import { ZoomContext } from './ZoomContext';
59
59
  import { Zoom } from '../Zoom/Zoom';
60
+ import { StorySkeleton } from '.';
60
61
  var ChildrenContainer = styled.div(function (_ref) {
61
62
  var isColumn = _ref.isColumn,
62
63
  columns = _ref.columns,
@@ -235,7 +236,7 @@ var getLayout = function getLayout(children) {
235
236
  */
236
237
 
237
238
 
238
- var Preview = function Preview(_ref8) {
239
+ export var Preview = function Preview(_ref8) {
239
240
  var isColumn = _ref8.isColumn,
240
241
  columns = _ref8.columns,
241
242
  children = _ref8.children,
@@ -360,6 +361,10 @@ var Preview = function Preview(_ref8) {
360
361
  actionItems: actionItems
361
362
  }))), withSource && expanded && source);
362
363
  };
363
-
364
364
  Preview.displayName = "Preview";
365
- export { Preview };
365
+ export var PreviewSkeleton = function PreviewSkeleton() {
366
+ return /*#__PURE__*/React.createElement(Preview, {
367
+ withToolbar: true
368
+ }, /*#__PURE__*/React.createElement(StorySkeleton, null));
369
+ };
370
+ PreviewSkeleton.displayName = "PreviewSkeleton";
@@ -6,7 +6,7 @@ import React from 'react';
6
6
  import { styled } from '@storybook/theming';
7
7
  import global from 'global';
8
8
  import { Spaced } from '../spaced/Spaced';
9
- import { Preview } from './Preview';
9
+ import { Preview, PreviewSkeleton } from './Preview';
10
10
  import { Story } from './Story';
11
11
  import { Button } from '../Button/Button';
12
12
  import * as Source from './Source.stories';
@@ -15,6 +15,10 @@ export default {
15
15
  title: 'Docs/Preview',
16
16
  component: Preview
17
17
  };
18
+ export var Loading = function Loading() {
19
+ return /*#__PURE__*/React.createElement(PreviewSkeleton, null);
20
+ };
21
+ Loading.displayName = "Loading";
18
22
  export var CodeCollapsed = function CodeCollapsed() {
19
23
  return /*#__PURE__*/React.createElement(Preview, {
20
24
  isExpanded: false,
@@ -34,23 +34,71 @@ export var SourceError;
34
34
  SourceError["SOURCE_UNAVAILABLE"] = "Oh no! The source is not available.";
35
35
  })(SourceError || (SourceError = {}));
36
36
 
37
+ var SourceSkeletonWrapper = styled.div(function (_ref2) {
38
+ var theme = _ref2.theme;
39
+ return {
40
+ background: theme.background.content,
41
+ borderRadius: theme.appBorderRadius,
42
+ border: "1px solid ".concat(theme.appBorderColor),
43
+ boxShadow: theme.base === 'light' ? 'rgba(0, 0, 0, 0.10) 0 1px 3px 0' : 'rgba(0, 0, 0, 0.20) 0 2px 5px 0',
44
+ margin: '25px 0 40px',
45
+ padding: '20px 20px 20px 22px'
46
+ };
47
+ });
48
+ var SourceSkeletonPlaceholder = styled.div(function (_ref3) {
49
+ var theme = _ref3.theme;
50
+ return {
51
+ animation: "".concat(theme.animation.glow, " 1.5s ease-in-out infinite"),
52
+ background: theme.appBorderColor,
53
+ height: 17,
54
+ marginTop: 1,
55
+ width: '60%',
56
+ '&:first-child': {
57
+ margin: 0
58
+ }
59
+ };
60
+ });
61
+
62
+ var SourceSkeleton = function SourceSkeleton() {
63
+ return /*#__PURE__*/React.createElement(SourceSkeletonWrapper, null, /*#__PURE__*/React.createElement(SourceSkeletonPlaceholder, null), /*#__PURE__*/React.createElement(SourceSkeletonPlaceholder, {
64
+ style: {
65
+ width: '80%'
66
+ }
67
+ }), /*#__PURE__*/React.createElement(SourceSkeletonPlaceholder, {
68
+ style: {
69
+ width: '30%'
70
+ }
71
+ }), /*#__PURE__*/React.createElement(SourceSkeletonPlaceholder, {
72
+ style: {
73
+ width: '80%'
74
+ }
75
+ }));
76
+ };
77
+
78
+ SourceSkeleton.displayName = "SourceSkeleton";
79
+
37
80
  /**
38
81
  * Syntax-highlighted source code for a component (or anything!)
39
82
  */
40
83
  var Source = function Source(props) {
41
- var _ref2 = props,
42
- error = _ref2.error;
84
+ var _ref4 = props,
85
+ isLoading = _ref4.isLoading,
86
+ error = _ref4.error;
87
+
88
+ if (isLoading) {
89
+ return /*#__PURE__*/React.createElement(SourceSkeleton, null);
90
+ }
43
91
 
44
92
  if (error) {
45
93
  return /*#__PURE__*/React.createElement(EmptyBlock, null, error);
46
94
  }
47
95
 
48
- var _ref3 = props,
49
- language = _ref3.language,
50
- code = _ref3.code,
51
- dark = _ref3.dark,
52
- format = _ref3.format,
53
- rest = _objectWithoutProperties(_ref3, ["language", "code", "dark", "format"]);
96
+ var _ref5 = props,
97
+ language = _ref5.language,
98
+ code = _ref5.code,
99
+ dark = _ref5.dark,
100
+ format = _ref5.format,
101
+ rest = _objectWithoutProperties(_ref5, ["language", "code", "dark", "format"]);
54
102
 
55
103
  var syntaxHighlighter = /*#__PURE__*/React.createElement(StyledSyntaxHighlighter, _extends({
56
104
  bordered: true,
@@ -4,6 +4,13 @@ export default {
4
4
  title: 'Docs/Source',
5
5
  component: Source
6
6
  };
7
+ export var Loading = function Loading(args) {
8
+ return /*#__PURE__*/React.createElement(Source, args);
9
+ };
10
+ Loading.displayName = "Loading";
11
+ Loading.args = {
12
+ isLoading: true
13
+ };
7
14
  var jsxCode = "\n<MyComponent boolProp scalarProp={1} complexProp={{ foo: 1, bar: '2' }}>\n <SomeOtherComponent funcProp={(a) => a.id} />\n</MyComponent>\n";
8
15
  export var JSX = function JSX(args) {
9
16
  return /*#__PURE__*/React.createElement(Source, args);
@@ -9,6 +9,7 @@ import React, { createElement, Fragment } from 'react';
9
9
  import { IFrame } from './IFrame';
10
10
  import { EmptyBlock } from './EmptyBlock';
11
11
  import { ZoomContext } from './ZoomContext';
12
+ import { Loader } from '..';
12
13
  var BASE_URL = 'iframe.html';
13
14
  export var StoryError;
14
15
  /** error message for Story with null storyFn
@@ -88,4 +89,9 @@ var Story = function Story(_ref4) {
88
89
  });
89
90
  };
90
91
 
91
- export { Story };
92
+ var StorySkeleton = function StorySkeleton() {
93
+ return /*#__PURE__*/React.createElement(Loader, null);
94
+ };
95
+
96
+ StorySkeleton.displayName = "StorySkeleton";
97
+ export { Story, StorySkeleton };
@@ -22,7 +22,7 @@ function _iterableToArrayLimit(arr, i) { if (typeof Symbol === "undefined" || !(
22
22
  function _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; }
23
23
 
24
24
  import React, { useState } from 'react';
25
- import { Story, StoryError } from './Story';
25
+ import { Story, StorySkeleton, StoryError } from './Story';
26
26
  import { Button } from '../Button/Button';
27
27
  export default {
28
28
  title: 'Docs/Story',
@@ -52,8 +52,13 @@ var buttonHookFn = function buttonHookFn() {
52
52
  };
53
53
 
54
54
  buttonHookFn.displayName = "buttonHookFn";
55
+ export var Loading = function Loading() {
56
+ return /*#__PURE__*/React.createElement(StorySkeleton, null);
57
+ };
58
+ Loading.displayName = "Loading";
55
59
  export var Inline = function Inline() {
56
60
  return /*#__PURE__*/React.createElement(Story, {
61
+ id: "id",
57
62
  inline: true,
58
63
  storyFn: buttonFn,
59
64
  title: "hello button"
@@ -62,12 +67,14 @@ export var Inline = function Inline() {
62
67
  Inline.displayName = "Inline";
63
68
  export var Error = function Error() {
64
69
  return /*#__PURE__*/React.createElement(Story, {
70
+ id: "id",
65
71
  error: StoryError.NO_STORY
66
72
  });
67
73
  };
68
74
  Error.displayName = "Error";
69
75
  export var ReactHook = function ReactHook() {
70
76
  return /*#__PURE__*/React.createElement(Story, {
77
+ id: "id",
71
78
  inline: true,
72
79
  storyFn: buttonHookFn,
73
80
  title: "hello button"