@pega/cosmos-react-demos 4.0.0-dev.8.4 → 4.0.0-dev.9.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 (155) hide show
  1. package/jsx/build/AppShell/AppShell.mocks.d.ts +16 -14
  2. package/jsx/build/AppShell/AppShell.mocks.d.ts.map +1 -1
  3. package/jsx/build/AppShell/AppShell.mocks.jsx +144 -101
  4. package/jsx/build/AppShell/AppShell.mocks.jsx.map +1 -1
  5. package/jsx/build/AppShell/AppShell.stories.d.ts +1 -0
  6. package/jsx/build/AppShell/AppShell.stories.d.ts.map +1 -1
  7. package/jsx/build/AppShell/AppShell.stories.jsx +7 -3
  8. package/jsx/build/AppShell/AppShell.stories.jsx.map +1 -1
  9. package/jsx/build/ExpressionBuilder/ExpressionBuilder.mocks.d.ts +2 -0
  10. package/jsx/build/ExpressionBuilder/ExpressionBuilder.mocks.d.ts.map +1 -1
  11. package/jsx/build/ExpressionBuilder/ExpressionBuilder.mocks.js +23 -0
  12. package/jsx/build/ExpressionBuilder/ExpressionBuilder.mocks.js.map +1 -1
  13. package/jsx/build/ExpressionBuilder/ExpressionBuilder.stories.d.ts.map +1 -1
  14. package/jsx/build/ExpressionBuilder/ExpressionBuilder.stories.jsx +4 -4
  15. package/jsx/build/ExpressionBuilder/ExpressionBuilder.stories.jsx.map +1 -1
  16. package/jsx/build/PageBanner/PageBanner.stories.d.ts +15 -0
  17. package/jsx/build/PageBanner/PageBanner.stories.d.ts.map +1 -0
  18. package/jsx/build/PageBanner/PageBanner.stories.jsx +41 -0
  19. package/jsx/build/PageBanner/PageBanner.stories.jsx.map +1 -0
  20. package/jsx/build/PageTemplates/GalleryPage.stories.d.ts +7 -3
  21. package/jsx/build/PageTemplates/GalleryPage.stories.d.ts.map +1 -1
  22. package/jsx/build/PageTemplates/GalleryPage.stories.jsx +29 -19
  23. package/jsx/build/PageTemplates/GalleryPage.stories.jsx.map +1 -1
  24. package/jsx/build/PageTemplates/ShowcasePage.stories.d.ts +17 -0
  25. package/jsx/build/PageTemplates/ShowcasePage.stories.d.ts.map +1 -0
  26. package/jsx/build/PageTemplates/ShowcasePage.stories.jsx +42 -0
  27. package/jsx/build/PageTemplates/ShowcasePage.stories.jsx.map +1 -0
  28. package/jsx/condition-builder/ConditionBuilder/props.mock.js +4 -4
  29. package/jsx/condition-builder/ConditionBuilder/props.mock.js.map +1 -1
  30. package/jsx/core/AppShell/AppShell.mocks.jsx +1 -1
  31. package/jsx/core/AppShell/AppShell.mocks.jsx.map +1 -1
  32. package/jsx/core/AppShell/AppShell.stories.d.ts +1 -0
  33. package/jsx/core/AppShell/AppShell.stories.d.ts.map +1 -1
  34. package/jsx/core/AppShell/AppShell.stories.jsx +21 -6
  35. package/jsx/core/AppShell/AppShell.stories.jsx.map +1 -1
  36. package/jsx/core/Banner/Banner.stories.d.ts +1 -0
  37. package/jsx/core/Banner/Banner.stories.d.ts.map +1 -1
  38. package/jsx/core/Banner/Banner.stories.jsx +3 -3
  39. package/jsx/core/Banner/Banner.stories.jsx.map +1 -1
  40. package/jsx/cs/CSAppShell/CSAppShell.mocks.d.ts +1 -0
  41. package/jsx/cs/CSAppShell/CSAppShell.mocks.d.ts.map +1 -1
  42. package/jsx/cs/CSAppShell/CSAppShell.mocks.jsx +46 -1
  43. package/jsx/cs/CSAppShell/CSAppShell.mocks.jsx.map +1 -1
  44. package/jsx/cs/CSAppShell/CSAppShell.stories.d.ts.map +1 -1
  45. package/jsx/cs/CSAppShell/CSAppShell.stories.jsx +2 -2
  46. package/jsx/cs/CSAppShell/CSAppShell.stories.jsx.map +1 -1
  47. package/jsx/social/Chat/Chat.mocks.d.ts +2 -1
  48. package/jsx/social/Chat/Chat.mocks.d.ts.map +1 -1
  49. package/jsx/social/Chat/Chat.mocks.js +26 -0
  50. package/jsx/social/Chat/Chat.mocks.js.map +1 -1
  51. package/jsx/social/Chat/Chat.stories.d.ts +5 -2
  52. package/jsx/social/Chat/Chat.stories.d.ts.map +1 -1
  53. package/jsx/social/Chat/Chat.stories.jsx +35 -101
  54. package/jsx/social/Chat/Chat.stories.jsx.map +1 -1
  55. package/jsx/social/Email/Email.mocks.d.ts +49 -7
  56. package/jsx/social/Email/Email.mocks.d.ts.map +1 -1
  57. package/jsx/social/Email/Email.mocks.jsx +127 -15
  58. package/jsx/social/Email/Email.mocks.jsx.map +1 -1
  59. package/jsx/social/Email/Email.stories.d.ts +10 -0
  60. package/jsx/social/Email/Email.stories.d.ts.map +1 -1
  61. package/jsx/social/Email/Email.stories.jsx +129 -12
  62. package/jsx/social/Email/Email.stories.jsx.map +1 -1
  63. package/jsx/tools/DevTools/DevTools.stories.d.ts.map +1 -1
  64. package/jsx/tools/DevTools/DevTools.stories.jsx +2 -4
  65. package/jsx/tools/DevTools/DevTools.stories.jsx.map +1 -1
  66. package/jsx/tools/PreviewShell/PreviewShell.mocks.d.ts +3 -1
  67. package/jsx/tools/PreviewShell/PreviewShell.mocks.d.ts.map +1 -1
  68. package/jsx/tools/PreviewShell/PreviewShell.mocks.jsx +7 -4
  69. package/jsx/tools/PreviewShell/PreviewShell.mocks.jsx.map +1 -1
  70. package/jsx/tools/PreviewShell/PreviewShell.stories.d.ts.map +1 -1
  71. package/jsx/tools/PreviewShell/PreviewShell.stories.jsx +16 -12
  72. package/jsx/tools/PreviewShell/PreviewShell.stories.jsx.map +1 -1
  73. package/jsx/work/Stages/Stages.mocks.jsx +6 -6
  74. package/jsx/work/Stages/Stages.mocks.jsx.map +1 -1
  75. package/jsx/work/Tasks/Tasks.stories.d.ts.map +1 -1
  76. package/jsx/work/Tasks/Tasks.stories.jsx +15 -13
  77. package/jsx/work/Tasks/Tasks.stories.jsx.map +1 -1
  78. package/lib/build/AppShell/AppShell.mocks.d.ts +16 -14
  79. package/lib/build/AppShell/AppShell.mocks.d.ts.map +1 -1
  80. package/lib/build/AppShell/AppShell.mocks.js +144 -101
  81. package/lib/build/AppShell/AppShell.mocks.js.map +1 -1
  82. package/lib/build/AppShell/AppShell.stories.d.ts +1 -0
  83. package/lib/build/AppShell/AppShell.stories.d.ts.map +1 -1
  84. package/lib/build/AppShell/AppShell.stories.js +7 -3
  85. package/lib/build/AppShell/AppShell.stories.js.map +1 -1
  86. package/lib/build/ExpressionBuilder/ExpressionBuilder.mocks.d.ts +2 -0
  87. package/lib/build/ExpressionBuilder/ExpressionBuilder.mocks.d.ts.map +1 -1
  88. package/lib/build/ExpressionBuilder/ExpressionBuilder.mocks.js +23 -0
  89. package/lib/build/ExpressionBuilder/ExpressionBuilder.mocks.js.map +1 -1
  90. package/lib/build/ExpressionBuilder/ExpressionBuilder.stories.d.ts.map +1 -1
  91. package/lib/build/ExpressionBuilder/ExpressionBuilder.stories.js +4 -4
  92. package/lib/build/ExpressionBuilder/ExpressionBuilder.stories.js.map +1 -1
  93. package/lib/build/PageBanner/PageBanner.stories.d.ts +15 -0
  94. package/lib/build/PageBanner/PageBanner.stories.d.ts.map +1 -0
  95. package/lib/build/PageBanner/PageBanner.stories.js +42 -0
  96. package/lib/build/PageBanner/PageBanner.stories.js.map +1 -0
  97. package/lib/build/PageTemplates/GalleryPage.stories.d.ts +7 -3
  98. package/lib/build/PageTemplates/GalleryPage.stories.d.ts.map +1 -1
  99. package/lib/build/PageTemplates/GalleryPage.stories.js +29 -19
  100. package/lib/build/PageTemplates/GalleryPage.stories.js.map +1 -1
  101. package/lib/build/PageTemplates/ShowcasePage.stories.d.ts +17 -0
  102. package/lib/build/PageTemplates/ShowcasePage.stories.d.ts.map +1 -0
  103. package/lib/build/PageTemplates/ShowcasePage.stories.js +43 -0
  104. package/lib/build/PageTemplates/ShowcasePage.stories.js.map +1 -0
  105. package/lib/condition-builder/ConditionBuilder/props.mock.js +4 -4
  106. package/lib/condition-builder/ConditionBuilder/props.mock.js.map +1 -1
  107. package/lib/core/AppShell/AppShell.mocks.js +1 -1
  108. package/lib/core/AppShell/AppShell.mocks.js.map +1 -1
  109. package/lib/core/AppShell/AppShell.stories.d.ts +1 -0
  110. package/lib/core/AppShell/AppShell.stories.d.ts.map +1 -1
  111. package/lib/core/AppShell/AppShell.stories.js +21 -6
  112. package/lib/core/AppShell/AppShell.stories.js.map +1 -1
  113. package/lib/core/Banner/Banner.stories.d.ts +1 -0
  114. package/lib/core/Banner/Banner.stories.d.ts.map +1 -1
  115. package/lib/core/Banner/Banner.stories.js +1 -1
  116. package/lib/core/Banner/Banner.stories.js.map +1 -1
  117. package/lib/cs/CSAppShell/CSAppShell.mocks.d.ts +1 -0
  118. package/lib/cs/CSAppShell/CSAppShell.mocks.d.ts.map +1 -1
  119. package/lib/cs/CSAppShell/CSAppShell.mocks.js +37 -1
  120. package/lib/cs/CSAppShell/CSAppShell.mocks.js.map +1 -1
  121. package/lib/cs/CSAppShell/CSAppShell.stories.d.ts.map +1 -1
  122. package/lib/cs/CSAppShell/CSAppShell.stories.js +2 -2
  123. package/lib/cs/CSAppShell/CSAppShell.stories.js.map +1 -1
  124. package/lib/social/Chat/Chat.mocks.d.ts +2 -1
  125. package/lib/social/Chat/Chat.mocks.d.ts.map +1 -1
  126. package/lib/social/Chat/Chat.mocks.js +26 -0
  127. package/lib/social/Chat/Chat.mocks.js.map +1 -1
  128. package/lib/social/Chat/Chat.stories.d.ts +5 -2
  129. package/lib/social/Chat/Chat.stories.d.ts.map +1 -1
  130. package/lib/social/Chat/Chat.stories.js +36 -76
  131. package/lib/social/Chat/Chat.stories.js.map +1 -1
  132. package/lib/social/Email/Email.mocks.d.ts +49 -7
  133. package/lib/social/Email/Email.mocks.d.ts.map +1 -1
  134. package/lib/social/Email/Email.mocks.js +127 -15
  135. package/lib/social/Email/Email.mocks.js.map +1 -1
  136. package/lib/social/Email/Email.stories.d.ts +10 -0
  137. package/lib/social/Email/Email.stories.d.ts.map +1 -1
  138. package/lib/social/Email/Email.stories.js +134 -12
  139. package/lib/social/Email/Email.stories.js.map +1 -1
  140. package/lib/tools/DevTools/DevTools.stories.d.ts.map +1 -1
  141. package/lib/tools/DevTools/DevTools.stories.js +2 -4
  142. package/lib/tools/DevTools/DevTools.stories.js.map +1 -1
  143. package/lib/tools/PreviewShell/PreviewShell.mocks.d.ts +3 -1
  144. package/lib/tools/PreviewShell/PreviewShell.mocks.d.ts.map +1 -1
  145. package/lib/tools/PreviewShell/PreviewShell.mocks.js +5 -4
  146. package/lib/tools/PreviewShell/PreviewShell.mocks.js.map +1 -1
  147. package/lib/tools/PreviewShell/PreviewShell.stories.d.ts.map +1 -1
  148. package/lib/tools/PreviewShell/PreviewShell.stories.js +11 -13
  149. package/lib/tools/PreviewShell/PreviewShell.stories.js.map +1 -1
  150. package/lib/work/Stages/Stages.mocks.js +6 -6
  151. package/lib/work/Stages/Stages.mocks.js.map +1 -1
  152. package/lib/work/Tasks/Tasks.stories.d.ts.map +1 -1
  153. package/lib/work/Tasks/Tasks.stories.js +2 -2
  154. package/lib/work/Tasks/Tasks.stories.js.map +1 -1
  155. package/package.json +10 -9
@@ -14,22 +14,25 @@ export const TabContent = ({ text }) => {
14
14
  </Flex>);
15
15
  };
16
16
  export const footerTabsMock = [
17
- { name: 'Tracer', id: '0' },
18
- { name: 'Clipboard', id: '1' }
17
+ { name: 'Tracer', id: '0', content: footerTabsMockContent[0] },
18
+ { name: 'Clipboard', id: '1', content: footerTabsMockContent[1] }
19
19
  ];
20
+ export const mainContentMock = (<Flex container={{ justify: 'center', alignItems: 'center' }} as={StyledContainer}>
21
+ <Text variant='h1'>This is the main content</Text>
22
+ </Flex>);
20
23
  export const channelsMock = [
21
24
  {
22
25
  id: 'browser',
23
26
  primary: 'Browser',
24
27
  selected: true,
25
- href: `${window.location.href.split('?')[0]}?id=core-pagetemplates--tabbed-page-demo`,
28
+ content: (<iframe title='Preview frame' src={`${window.location.href.split('?')[0]}?id=core-pagetemplates--tabbed-page-demo`}/>),
26
29
  icon: 'desktop'
27
30
  },
28
31
  {
29
32
  id: 'mobile-app',
30
33
  primary: 'Mobile app',
31
34
  selected: false,
32
- href: 'data:text/html,<!DOCTYPE html><h1>Mobile content goes here</h1>',
35
+ content: mainContentMock,
33
36
  icon: 'mobile-phone'
34
37
  }
35
38
  ];
@@ -1 +1 @@
1
- {"version":3,"file":"PreviewShell.mocks.jsx","sourceRoot":"","sources":["../../../src/tools/PreviewShell/PreviewShell.mocks.tsx"],"names":[],"mappings":"AAEA,OAAO,EAAa,IAAI,EAAE,IAAI,EAAE,MAAM,yBAAyB,CAAC;AAEhE,OAAO,EAAE,mBAAmB,EAAE,MAAM,gCAAgC,CAAC;AACrE,OAAO,EAAE,cAAc,EAAE,MAAM,0CAA0C,CAAC;AAE1E,OAAO,EAAE,eAAe,EAAE,MAAM,uBAAuB,CAAC;AAExD,MAAM,CAAC,MAAM,qBAAqB,GAAG;IACnC,CAAC,eAAe,CACd;IAAA,CAAC,cAAc,CAAC,AAAD,EACjB;EAAA,EAAE,eAAe,CAAC;IAClB,CAAC,mBAAmB,CAAC,UAAU,CAAC,CAAC,EAAE,KAAK,EAAE,EAAE,EAAE,CAAC,EAAG;CACnD,CAAC;AAEF,MAAM,CAAC,MAAM,UAAU,GAAyB,CAAC,EAAE,IAAI,EAAE,EAAE,EAAE;IAC3D,OAAO,CACL,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,EAAE,OAAO,EAAE,QAAQ,EAAE,UAAU,EAAE,QAAQ,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,eAAe,CAAC,CAChF;MAAA,CAAC,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,EAAE,IAAI,CACjC;IAAA,EAAE,IAAI,CAAC,CACR,CAAC;AACJ,CAAC,CAAC;AAEF,MAAM,CAAC,MAAM,cAAc,GAAG;IAC5B,EAAE,IAAI,EAAE,QAAQ,EAAE,EAAE,EAAE,GAAG,EAAE;IAC3B,EAAE,IAAI,EAAE,WAAW,EAAE,EAAE,EAAE,GAAG,EAAE;CAC/B,CAAC;AAEF,MAAM,CAAC,MAAM,YAAY,GAAG;IAC1B;QACE,EAAE,EAAE,SAAS;QACb,OAAO,EAAE,SAAS;QAClB,QAAQ,EAAE,IAAI;QACd,IAAI,EAAE,GAAG,MAAM,CAAC,QAAQ,CAAC,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,0CAA0C;QACrF,IAAI,EAAE,SAAS;KAChB;IACD;QACE,EAAE,EAAE,YAAY;QAChB,OAAO,EAAE,YAAY;QACrB,QAAQ,EAAE,KAAK;QACf,IAAI,EAAE,iEAAiE;QACvE,IAAI,EAAE,cAAc;KACrB;CACF,CAAC;AAEF,MAAM,CAAC,MAAM,cAAc,GAAuB;IAChD;QACE,EAAE,EAAE,GAAG;QACP,OAAO,EAAE,gBAAgB;KAC1B;IACD;QACE,EAAE,EAAE,GAAG;QACP,OAAO,EAAE,iBAAiB;KAC3B;IACD;QACE,EAAE,EAAE,GAAG;QACP,OAAO,EAAE,YAAY;QACrB,KAAK,EAAE;YACL;gBACE,EAAE,EAAE,KAAK;gBACT,OAAO,EAAE,SAAS;aACnB;YACD;gBACE,EAAE,EAAE,KAAK;gBACT,OAAO,EAAE,aAAa;aACvB;YACD;gBACE,EAAE,EAAE,KAAK;gBACT,OAAO,EAAE,QAAQ;aAClB;YACD;gBACE,EAAE,EAAE,KAAK;gBACT,OAAO,EAAE,aAAa;aACvB;SACF;KACF;IACD;QACE,EAAE,EAAE,GAAG;QACP,OAAO,EAAE,UAAU;KACpB;IACD;QACE,EAAE,EAAE,GAAG;QACP,OAAO,EAAE,WAAW;KACrB;IACD;QACE,EAAE,EAAE,GAAG;QACP,OAAO,EAAE,MAAM;KAChB;CACF,CAAC","sourcesContent":["import { FC } from 'react';\n\nimport { MenuProps, Text, Flex } from '@pega/cosmos-react-core';\n\nimport { ClipboardViewerDemo } from '../Clipboard/Clipboard.stories';\nimport { EmptyStateDemo } from '../../core/EmptyState/EmptyState.stories';\n\nimport { StyledContainer } from './PreviewShell.styles';\n\nexport const footerTabsMockContent = [\n <StyledContainer>\n <EmptyStateDemo />\n </StyledContainer>,\n <ClipboardViewerDemo navigation={{ nodes: [] }} />\n];\n\nexport const TabContent: FC<{ text: string }> = ({ text }) => {\n return (\n <Flex container={{ justify: 'center', alignItems: 'center' }} as={StyledContainer}>\n <Text variant='h3'>{text}</Text>\n </Flex>\n );\n};\n\nexport const footerTabsMock = [\n { name: 'Tracer', id: '0' },\n { name: 'Clipboard', id: '1' }\n];\n\nexport const channelsMock = [\n {\n id: 'browser',\n primary: 'Browser',\n selected: true,\n href: `${window.location.href.split('?')[0]}?id=core-pagetemplates--tabbed-page-demo`,\n icon: 'desktop'\n },\n {\n id: 'mobile-app',\n primary: 'Mobile app',\n selected: false,\n href: 'data:text/html,<!DOCTYPE html><h1>Mobile content goes here</h1>',\n icon: 'mobile-phone'\n }\n];\n\nexport const footerMenuMock: MenuProps['items'] = [\n {\n id: '1',\n primary: 'Dock to bottom'\n },\n {\n id: '2',\n primary: 'Separate window'\n },\n {\n id: '3',\n primary: 'More tools',\n items: [\n {\n id: '3-1',\n primary: 'Network'\n },\n {\n id: '3-2',\n primary: 'Performance'\n },\n {\n id: '3-3',\n primary: 'Memory'\n },\n {\n id: '3-4',\n primary: 'Application'\n }\n ]\n },\n {\n id: '4',\n primary: 'Settings'\n },\n {\n id: '5',\n primary: 'Shortcuts'\n },\n {\n id: '6',\n primary: 'Help'\n }\n];\n"]}
1
+ {"version":3,"file":"PreviewShell.mocks.jsx","sourceRoot":"","sources":["../../../src/tools/PreviewShell/PreviewShell.mocks.tsx"],"names":[],"mappings":"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","sourcesContent":["import { FC } from 'react';\n\nimport { MenuProps, Text, Flex } from '@pega/cosmos-react-core';\n\nimport { ClipboardViewerDemo } from '../Clipboard/Clipboard.stories';\nimport { EmptyStateDemo } from '../../core/EmptyState/EmptyState.stories';\n\nimport { StyledContainer } from './PreviewShell.styles';\n\nexport const footerTabsMockContent = [\n <StyledContainer>\n <EmptyStateDemo />\n </StyledContainer>,\n <ClipboardViewerDemo navigation={{ nodes: [] }} />\n];\n\nexport const TabContent: FC<{ text: string }> = ({ text }) => {\n return (\n <Flex container={{ justify: 'center', alignItems: 'center' }} as={StyledContainer}>\n <Text variant='h3'>{text}</Text>\n </Flex>\n );\n};\n\nexport const footerTabsMock = [\n { name: 'Tracer', id: '0', content: footerTabsMockContent[0] },\n { name: 'Clipboard', id: '1', content: footerTabsMockContent[1] }\n];\n\nexport const mainContentMock = (\n <Flex container={{ justify: 'center', alignItems: 'center' }} as={StyledContainer}>\n <Text variant='h1'>This is the main content</Text>\n </Flex>\n);\n\nexport const channelsMock = [\n {\n id: 'browser',\n primary: 'Browser',\n selected: true,\n content: (\n <iframe\n title='Preview frame'\n src={`${window.location.href.split('?')[0]}?id=core-pagetemplates--tabbed-page-demo`}\n />\n ),\n icon: 'desktop'\n },\n {\n id: 'mobile-app',\n primary: 'Mobile app',\n selected: false,\n content: mainContentMock,\n icon: 'mobile-phone'\n }\n];\n\nexport const footerMenuMock: MenuProps['items'] = [\n {\n id: '1',\n primary: 'Dock to bottom'\n },\n {\n id: '2',\n primary: 'Separate window'\n },\n {\n id: '3',\n primary: 'More tools',\n items: [\n {\n id: '3-1',\n primary: 'Network'\n },\n {\n id: '3-2',\n primary: 'Performance'\n },\n {\n id: '3-3',\n primary: 'Memory'\n },\n {\n id: '3-4',\n primary: 'Application'\n }\n ]\n },\n {\n id: '4',\n primary: 'Settings'\n },\n {\n id: '5',\n primary: 'Shortcuts'\n },\n {\n id: '6',\n primary: 'Help'\n }\n];\n"]}
@@ -1 +1 @@
1
- {"version":3,"file":"PreviewShell.stories.d.ts","sourceRoot":"","sources":["../../../src/tools/PreviewShell/PreviewShell.stories.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAE,IAAI,EAAE,KAAK,EAAE,MAAM,kBAAkB,CAAC;AAE/C,OAAO,EAAgC,UAAU,EAAE,MAAM,OAAO,CAAC;AAEjE,OAAO,EAAgB,iBAAiB,EAAE,MAAM,0BAA0B,CAAC;AAC3E,OAAO,EAAE,WAAW,EAAE,MAAM,yBAAyB,CAAC;AACtD,OAAO,EAAE,WAAW,EAAE,MAAM,yEAAyE,CAAC;;AAUtG,wBAMU;AAEV,UAAU,sBAAuB,SAAQ,iBAAiB;IACxD,OAAO,EAAE,WAAW,CAAC,SAAS,CAAC,CAAC;IAChC,aAAa,EAAE,WAAW,CAAC,SAAS,CAAC,CAAC;IACtC,UAAU,EAAE,MAAM,CAAC;IACnB,YAAY,EAAE,WAAW,CAAC,UAAU,CAAC,CAAC,QAAQ,CAAC,CAAC,MAAM,CAAC,CAAC;IACxD,YAAY,EAAE,OAAO,CAAC;IACtB,UAAU,EAAE,OAAO,CAAC;IACpB,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,gBAAgB,EAAE,CAAC,CAAC,CAAC,EAAE,UAAU,CAAC,iBAAiB,CAAC,KAAK,IAAI,CAAC;CAC/D;AAED,eAAO,MAAM,oBAAoB,EAAE,KAAK,CAAC,sBAAsB,CAyE9D,CAAC;AAyBF,eAAO,MAAM,gBAAgB,EAAE,KAAK,CAAC,sBAAsB,CA6F1D,CAAC"}
1
+ {"version":3,"file":"PreviewShell.stories.d.ts","sourceRoot":"","sources":["../../../src/tools/PreviewShell/PreviewShell.stories.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAE,IAAI,EAAE,KAAK,EAAE,MAAM,kBAAkB,CAAC;AAE/C,OAAO,EAAgC,UAAU,EAAE,MAAM,OAAO,CAAC;AAEjE,OAAO,EAAgB,iBAAiB,EAAE,MAAM,0BAA0B,CAAC;AAC3E,OAAO,EAAE,WAAW,EAAc,MAAM,yBAAyB,CAAC;AAClE,OAAO,EAAE,WAAW,EAAE,MAAM,yEAAyE,CAAC;;AAStG,wBAMU;AAEV,UAAU,sBAAuB,SAAQ,iBAAiB;IACxD,OAAO,EAAE,WAAW,CAAC,SAAS,CAAC,CAAC;IAChC,aAAa,EAAE,WAAW,CAAC,SAAS,CAAC,CAAC;IACtC,UAAU,EAAE,MAAM,CAAC;IACnB,YAAY,EAAE,WAAW,CAAC,UAAU,CAAC,CAAC,QAAQ,CAAC,CAAC,MAAM,CAAC,CAAC;IACxD,YAAY,EAAE,OAAO,CAAC;IACtB,UAAU,EAAE,OAAO,CAAC;IACpB,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,gBAAgB,EAAE,CAAC,CAAC,CAAC,EAAE,UAAU,CAAC,iBAAiB,CAAC,KAAK,IAAI,CAAC;CAC/D;AAED,eAAO,MAAM,oBAAoB,EAAE,KAAK,CAAC,sBAAsB,CA8E9D,CAAC;AAyBF,eAAO,MAAM,gBAAgB,EAAE,KAAK,CAAC,sBAAsB,CA2F1D,CAAC"}
@@ -1,7 +1,8 @@
1
1
  import { action } from '@storybook/addon-actions';
2
2
  import { useEffect, useState, useMemo } from 'react';
3
3
  import { PreviewShell } from '@pega/cosmos-react-tools';
4
- import { footerMenuMock, footerTabsMockContent, footerTabsMock, channelsMock, TabContent } from './PreviewShell.mocks';
4
+ import { Flex, Text } from '@pega/cosmos-react-core';
5
+ import { footerMenuMock, footerTabsMock, channelsMock, mainContentMock } from './PreviewShell.mocks';
5
6
  export default {
6
7
  title: 'Tools/PreviewShell',
7
8
  component: PreviewShell,
@@ -10,7 +11,6 @@ export default {
10
11
  }
11
12
  };
12
13
  export const PreviewShellSkeleton = (args) => {
13
- const [tabContent, setTabContent] = useState(<TabContent text='Tab 1 content'/>);
14
14
  const [currentTabId, setCurrentTabId] = useState(footerTabsMock[0].id);
15
15
  const [newWindow, setNewWindow] = useState(null);
16
16
  const [channels, setChannels] = useState(channelsMock);
@@ -19,7 +19,7 @@ export const PreviewShellSkeleton = (args) => {
19
19
  newWindow?.close();
20
20
  setNewWindow(null);
21
21
  };
22
- return (<PreviewShell frameurl='' header={{
22
+ return (<PreviewShell header={{
23
23
  appName: args.appName,
24
24
  status: {
25
25
  variant: args.statusVariant,
@@ -39,11 +39,14 @@ export const PreviewShellSkeleton = (args) => {
39
39
  channels,
40
40
  onChannelClick
41
41
  }} footer={{
42
- tabs: footerTabsMock,
43
- tabContent,
42
+ tabs: footerTabsMock.map(tab => ({
43
+ ...tab,
44
+ content: (<Flex container={{ justify: 'center', alignItems: 'center' }}>
45
+ <Text variant='h2'>This is the content for {tab.name}</Text>
46
+ </Flex>)
47
+ })),
44
48
  currentTabId,
45
49
  onTabClick: (id) => {
46
- setTabContent(<TabContent text={`Tab ${+id + 1} content`}/>);
47
50
  setCurrentTabId(id);
48
51
  },
49
52
  expanded: args.expandFooter,
@@ -66,7 +69,9 @@ export const PreviewShellSkeleton = (args) => {
66
69
  });
67
70
  }),
68
71
  menu: { items: footerMenuMock }
69
- }}/>);
72
+ }}>
73
+ {mainContentMock}
74
+ </PreviewShell>);
70
75
  };
71
76
  PreviewShellSkeleton.args = {
72
77
  appName: 'Title',
@@ -90,7 +95,6 @@ PreviewShellSkeleton.argTypes = {
90
95
  showHeader: { control: { type: 'boolean' } }
91
96
  };
92
97
  export const PreviewShellDemo = (args) => {
93
- const [tabContent, setTabContent] = useState(footerTabsMockContent[1]);
94
98
  const [currentTabId, setCurrentTabId] = useState(footerTabsMock[1].id);
95
99
  const [newWindow, setNewWindow] = useState(null);
96
100
  const [channels, setChannels] = useState(channelsMock);
@@ -115,7 +119,7 @@ export const PreviewShellDemo = (args) => {
115
119
  };
116
120
  }
117
121
  }, [newWindow]);
118
- return (<PreviewShell frameurl={selectedChannel?.href} header={args.showHeader
122
+ return (<PreviewShell header={args.showHeader
119
123
  ? {
120
124
  appName: args.appName,
121
125
  onClick: action('Clicked application name'),
@@ -141,9 +145,7 @@ export const PreviewShellDemo = (args) => {
141
145
  ? {
142
146
  tabs: footerTabsMock,
143
147
  currentTabId,
144
- tabContent,
145
148
  onTabClick: (id) => {
146
- setTabContent(footerTabsMockContent[Number(id)]);
147
149
  setCurrentTabId(id);
148
150
  },
149
151
  expanded: args.expandFooter,
@@ -157,7 +159,9 @@ export const PreviewShellDemo = (args) => {
157
159
  },
158
160
  menu: { items: footerMenuMock }
159
161
  }
160
- : undefined}/>);
162
+ : undefined}>
163
+ {selectedChannel?.content}
164
+ </PreviewShell>);
161
165
  };
162
166
  PreviewShellDemo.args = {
163
167
  appName: 'U+ Desk',
@@ -1 +1 @@
1
- {"version":3,"file":"PreviewShell.stories.jsx","sourceRoot":"","sources":["../../../src/tools/PreviewShell/PreviewShell.stories.tsx"],"names":[],"mappings":"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","sourcesContent":["import { Meta, Story } from '@storybook/react';\nimport { action } from '@storybook/addon-actions';\nimport { useEffect, useState, useMemo, MouseEvent } from 'react';\n\nimport { PreviewShell, PreviewShellProps } from '@pega/cosmos-react-tools';\nimport { StatusProps } from '@pega/cosmos-react-core';\nimport { HeaderProps } from '@pega/cosmos-react-tools/lib/components/PreviewShell/PreviewShell.types';\n\nimport {\n footerMenuMock,\n footerTabsMockContent,\n footerTabsMock,\n channelsMock,\n TabContent\n} from './PreviewShell.mocks';\n\nexport default {\n title: 'Tools/PreviewShell',\n component: PreviewShell,\n parameters: {\n layout: 'fullscreen'\n }\n} as Meta;\n\ninterface PreviewShellStoryProps extends PreviewShellProps {\n appName: HeaderProps['appName'];\n statusVariant: StatusProps['variant'];\n statusText: string;\n operatorName: HeaderProps['operator']['avatar']['name'];\n expandFooter: boolean;\n showHeader: boolean;\n showFooter?: boolean;\n onNewWindowClick: (e?: MouseEvent<HTMLButtonElement>) => void;\n}\n\nexport const PreviewShellSkeleton: Story<PreviewShellStoryProps> = (\n args: PreviewShellStoryProps\n) => {\n const [tabContent, setTabContent] = useState(<TabContent text='Tab 1 content' />);\n const [currentTabId, setCurrentTabId] = useState(footerTabsMock[0].id);\n const [newWindow, setNewWindow] = useState<Window | null>(null);\n const [channels, setChannels] = useState(channelsMock);\n\n const onChannelClick = (id: string) => {\n setChannels(cur => cur.map(ch => ({ ...ch, selected: id === ch.id })));\n newWindow?.close();\n setNewWindow(null);\n };\n\n return (\n <PreviewShell\n frameurl=''\n header={{\n appName: args.appName,\n status: {\n variant: args.statusVariant,\n children: args.statusText\n },\n operator: {\n avatar: { name: args.operatorName || '' },\n actions: [\n { primary: 'Profile', id: 'profile' },\n { primary: 'Settings', id: 'settings' },\n { primary: 'My applications', id: 'apps' },\n { primary: 'Help center', id: 'help' },\n { primary: 'Log out', id: 'logout' }\n ],\n name: args.operatorName\n },\n channels,\n onChannelClick\n }}\n footer={{\n tabs: footerTabsMock,\n tabContent,\n currentTabId,\n onTabClick: (id: string) => {\n setTabContent(<TabContent text={`Tab ${+id + 1} content`} />);\n setCurrentTabId(id);\n },\n expanded: args.expandFooter,\n onContinueDebug: newWindow\n ? () => {\n newWindow?.focus();\n }\n : undefined,\n onNewWindowClick:\n args.onNewWindowClick ??\n (() => {\n const newWindowObj = window.open(\n `${window.location.origin}/iframe.html?id=tools-devtools--dev-tools-demo&args=&viewMode=story`\n );\n setNewWindow(newWindowObj);\n newWindowObj?.addEventListener('load', () => {\n newWindowObj?.addEventListener('beforeunload', () => {\n setNewWindow(null);\n });\n newWindowObj?.addEventListener('unload', () => {\n (\n document.querySelector('button[aria-label=\"Open in new window\"]') as HTMLElement\n )?.focus();\n });\n });\n }),\n menu: { items: footerMenuMock }\n }}\n />\n );\n};\n\nPreviewShellSkeleton.args = {\n appName: 'Title',\n statusVariant: 'pending',\n statusText: 'status',\n operatorName: 'Cindy Turner',\n expandFooter: true,\n onNewWindowClick: undefined,\n showHeader: true\n};\n\nPreviewShellSkeleton.argTypes = {\n appName: { control: { type: 'text' } },\n statusVariant: {\n options: ['success', 'urgent', 'warn', 'pending', 'info'],\n control: { type: 'select' }\n },\n statusText: { control: { type: 'text' } },\n operatorName: { control: { type: 'text' } },\n expandFooter: { control: { type: 'boolean' } },\n onNewWindowClick: { table: { disable: true } },\n showHeader: { control: { type: 'boolean' } }\n};\n\nexport const PreviewShellDemo: Story<PreviewShellStoryProps> = (args: PreviewShellStoryProps) => {\n const [tabContent, setTabContent] = useState(footerTabsMockContent[1]);\n const [currentTabId, setCurrentTabId] = useState(footerTabsMock[1].id);\n const [newWindow, setNewWindow] = useState<Window | null>(null);\n const [channels, setChannels] = useState(channelsMock);\n\n const onChannelClick = (id: string) => {\n setChannels(cur => cur.map(ch => ({ ...ch, selected: id === ch.id })));\n newWindow?.close();\n setNewWindow(null);\n };\n\n const selectedChannel = useMemo(() => {\n const selectedItem = channels.find(ch => ch.selected);\n return selectedItem || channels[0];\n }, [channels]);\n\n useEffect(() => {\n if (newWindow?.self) {\n newWindow.onload = () => {\n newWindow.onbeforeunload = () => {\n setNewWindow(null);\n };\n newWindow.onunload = () => {\n (\n document.querySelector('button[aria-label=\"Open in new window\"]') as HTMLElement\n )?.focus();\n };\n };\n }\n }, [newWindow]);\n\n return (\n <PreviewShell\n frameurl={selectedChannel?.href}\n header={\n args.showHeader\n ? {\n appName: args.appName,\n onClick: action('Clicked application name'),\n status: {\n variant: args.statusVariant,\n children: args.statusText\n },\n operator: {\n avatar: { name: args.operatorName },\n actions: [\n { primary: 'Profile', id: 'profile' },\n { primary: 'Settings', id: 'settings' },\n { primary: 'My applications', id: 'apps' },\n { primary: 'Help center', id: 'help' },\n { primary: 'Log out', id: 'logout' }\n ],\n name: args.operatorName\n },\n channels,\n onChannelClick\n }\n : undefined\n }\n footer={\n args.showFooter && selectedChannel?.id === 'browser'\n ? {\n tabs: footerTabsMock,\n currentTabId,\n tabContent,\n onTabClick: (id: string) => {\n setTabContent(footerTabsMockContent[Number(id)]);\n setCurrentTabId(id);\n },\n expanded: args.expandFooter,\n onContinueDebug: newWindow\n ? () => {\n newWindow?.focus();\n }\n : undefined,\n onNewWindowClick: () => {\n setNewWindow(\n window.open(\n `${\n window.location.href.split('?')[0]\n }?id=tools-devtools--dev-tools-demo&args=&viewMode=story`,\n 'Dev Tools',\n 'popup=true,width=800,height=500'\n )\n );\n },\n menu: { items: footerMenuMock }\n }\n : undefined\n }\n />\n );\n};\n\nPreviewShellDemo.args = {\n appName: 'U+ Desk',\n statusVariant: 'pending',\n statusText: 'development',\n operatorName: 'Cindy Turner',\n expandFooter: false,\n showHeader: true,\n showFooter: true\n};\n\nPreviewShellDemo.argTypes = {\n appName: { control: { type: 'text' } },\n statusVariant: {\n options: ['success', 'urgent', 'warn', 'pending', 'info'],\n control: { type: 'select' }\n },\n statusText: { control: { type: 'text' } },\n operatorName: { control: { type: 'text' } },\n expandFooter: { control: { type: 'boolean' } },\n showHeader: { control: { type: 'boolean' } },\n showFooter: { control: { type: 'boolean' } }\n};\n"]}
1
+ {"version":3,"file":"PreviewShell.stories.jsx","sourceRoot":"","sources":["../../../src/tools/PreviewShell/PreviewShell.stories.tsx"],"names":[],"mappings":"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","sourcesContent":["import { Meta, Story } from '@storybook/react';\nimport { action } from '@storybook/addon-actions';\nimport { useEffect, useState, useMemo, MouseEvent } from 'react';\n\nimport { PreviewShell, PreviewShellProps } from '@pega/cosmos-react-tools';\nimport { StatusProps, Flex, Text } from '@pega/cosmos-react-core';\nimport { HeaderProps } from '@pega/cosmos-react-tools/lib/components/PreviewShell/PreviewShell.types';\n\nimport {\n footerMenuMock,\n footerTabsMock,\n channelsMock,\n mainContentMock\n} from './PreviewShell.mocks';\n\nexport default {\n title: 'Tools/PreviewShell',\n component: PreviewShell,\n parameters: {\n layout: 'fullscreen'\n }\n} as Meta;\n\ninterface PreviewShellStoryProps extends PreviewShellProps {\n appName: HeaderProps['appName'];\n statusVariant: StatusProps['variant'];\n statusText: string;\n operatorName: HeaderProps['operator']['avatar']['name'];\n expandFooter: boolean;\n showHeader: boolean;\n showFooter?: boolean;\n onNewWindowClick: (e?: MouseEvent<HTMLButtonElement>) => void;\n}\n\nexport const PreviewShellSkeleton: Story<PreviewShellStoryProps> = (\n args: PreviewShellStoryProps\n) => {\n const [currentTabId, setCurrentTabId] = useState(footerTabsMock[0].id);\n const [newWindow, setNewWindow] = useState<Window | null>(null);\n const [channels, setChannels] = useState(channelsMock);\n\n const onChannelClick = (id: string) => {\n setChannels(cur => cur.map(ch => ({ ...ch, selected: id === ch.id })));\n newWindow?.close();\n setNewWindow(null);\n };\n\n return (\n <PreviewShell\n header={{\n appName: args.appName,\n status: {\n variant: args.statusVariant,\n children: args.statusText\n },\n operator: {\n avatar: { name: args.operatorName || '' },\n actions: [\n { primary: 'Profile', id: 'profile' },\n { primary: 'Settings', id: 'settings' },\n { primary: 'My applications', id: 'apps' },\n { primary: 'Help center', id: 'help' },\n { primary: 'Log out', id: 'logout' }\n ],\n name: args.operatorName\n },\n channels,\n onChannelClick\n }}\n footer={{\n tabs: footerTabsMock.map(tab => ({\n ...tab,\n content: (\n <Flex container={{ justify: 'center', alignItems: 'center' }}>\n <Text variant='h2'>This is the content for {tab.name}</Text>\n </Flex>\n )\n })),\n currentTabId,\n onTabClick: (id: string) => {\n setCurrentTabId(id);\n },\n expanded: args.expandFooter,\n onContinueDebug: newWindow\n ? () => {\n newWindow?.focus();\n }\n : undefined,\n onNewWindowClick:\n args.onNewWindowClick ??\n (() => {\n const newWindowObj = window.open(\n `${window.location.origin}/iframe.html?id=tools-devtools--dev-tools-demo&args=&viewMode=story`\n );\n setNewWindow(newWindowObj);\n newWindowObj?.addEventListener('load', () => {\n newWindowObj?.addEventListener('beforeunload', () => {\n setNewWindow(null);\n });\n newWindowObj?.addEventListener('unload', () => {\n (\n document.querySelector('button[aria-label=\"Open in new window\"]') as HTMLElement\n )?.focus();\n });\n });\n }),\n menu: { items: footerMenuMock }\n }}\n >\n {mainContentMock}\n </PreviewShell>\n );\n};\n\nPreviewShellSkeleton.args = {\n appName: 'Title',\n statusVariant: 'pending',\n statusText: 'status',\n operatorName: 'Cindy Turner',\n expandFooter: true,\n onNewWindowClick: undefined,\n showHeader: true\n};\n\nPreviewShellSkeleton.argTypes = {\n appName: { control: { type: 'text' } },\n statusVariant: {\n options: ['success', 'urgent', 'warn', 'pending', 'info'],\n control: { type: 'select' }\n },\n statusText: { control: { type: 'text' } },\n operatorName: { control: { type: 'text' } },\n expandFooter: { control: { type: 'boolean' } },\n onNewWindowClick: { table: { disable: true } },\n showHeader: { control: { type: 'boolean' } }\n};\n\nexport const PreviewShellDemo: Story<PreviewShellStoryProps> = (args: PreviewShellStoryProps) => {\n const [currentTabId, setCurrentTabId] = useState(footerTabsMock[1].id);\n const [newWindow, setNewWindow] = useState<Window | null>(null);\n const [channels, setChannels] = useState(channelsMock);\n\n const onChannelClick = (id: string) => {\n setChannels(cur => cur.map(ch => ({ ...ch, selected: id === ch.id })));\n newWindow?.close();\n setNewWindow(null);\n };\n\n const selectedChannel = useMemo(() => {\n const selectedItem = channels.find(ch => ch.selected);\n return selectedItem || channels[0];\n }, [channels]);\n\n useEffect(() => {\n if (newWindow?.self) {\n newWindow.onload = () => {\n newWindow.onbeforeunload = () => {\n setNewWindow(null);\n };\n newWindow.onunload = () => {\n (\n document.querySelector('button[aria-label=\"Open in new window\"]') as HTMLElement\n )?.focus();\n };\n };\n }\n }, [newWindow]);\n\n return (\n <PreviewShell\n header={\n args.showHeader\n ? {\n appName: args.appName,\n onClick: action('Clicked application name'),\n status: {\n variant: args.statusVariant,\n children: args.statusText\n },\n operator: {\n avatar: { name: args.operatorName },\n actions: [\n { primary: 'Profile', id: 'profile' },\n { primary: 'Settings', id: 'settings' },\n { primary: 'My applications', id: 'apps' },\n { primary: 'Help center', id: 'help' },\n { primary: 'Log out', id: 'logout' }\n ],\n name: args.operatorName\n },\n channels,\n onChannelClick\n }\n : undefined\n }\n footer={\n args.showFooter && selectedChannel?.id === 'browser'\n ? {\n tabs: footerTabsMock,\n currentTabId,\n onTabClick: (id: string) => {\n setCurrentTabId(id);\n },\n expanded: args.expandFooter,\n onContinueDebug: newWindow\n ? () => {\n newWindow?.focus();\n }\n : undefined,\n onNewWindowClick: () => {\n setNewWindow(\n window.open(\n `${\n window.location.href.split('?')[0]\n }?id=tools-devtools--dev-tools-demo&args=&viewMode=story`,\n 'Dev Tools',\n 'popup=true,width=800,height=500'\n )\n );\n },\n menu: { items: footerMenuMock }\n }\n : undefined\n }\n >\n {selectedChannel?.content}\n </PreviewShell>\n );\n};\n\nPreviewShellDemo.args = {\n appName: 'U+ Desk',\n statusVariant: 'pending',\n statusText: 'development',\n operatorName: 'Cindy Turner',\n expandFooter: false,\n showHeader: true,\n showFooter: true\n};\n\nPreviewShellDemo.argTypes = {\n appName: { control: { type: 'text' } },\n statusVariant: {\n options: ['success', 'urgent', 'warn', 'pending', 'info'],\n control: { type: 'select' }\n },\n statusText: { control: { type: 'text' } },\n operatorName: { control: { type: 'text' } },\n expandFooter: { control: { type: 'boolean' } },\n showHeader: { control: { type: 'boolean' } },\n showFooter: { control: { type: 'boolean' } }\n};\n"]}
@@ -1,17 +1,17 @@
1
1
  import { Link } from '@pega/cosmos-react-core';
2
2
  export const defaultStageNames = [
3
- 'Initial',
4
- 'Plan',
5
- 'Development',
6
- 'Accessibility',
7
- 'Review',
3
+ 'Initiate',
4
+ 'Identify customer',
5
+ 'Eligibility',
6
+ 'Intake',
7
+ 'Process requests',
8
8
  'Merge'
9
9
  ];
10
10
  export const createStages = (stageNames, current) => {
11
11
  const now = new Date();
12
12
  return stageNames.map((stageName, i) => {
13
13
  const stageDate = new Date(now);
14
- const completed = i + 1 < current;
14
+ const completed = i + 1 <= current;
15
15
  if (completed)
16
16
  stageDate.setDate(now.getDate() + i - current);
17
17
  return {
@@ -1 +1 @@
1
- {"version":3,"file":"Stages.mocks.jsx","sourceRoot":"","sources":["../../../src/work/Stages/Stages.mocks.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAE,IAAI,EAAE,MAAM,yBAAyB,CAAC;AAE/C,MAAM,CAAC,MAAM,iBAAiB,GAAG;IAC/B,SAAS;IACT,MAAM;IACN,aAAa;IACb,eAAe;IACf,QAAQ;IACR,OAAO;CACR,CAAC;AAEF,MAAM,CAAC,MAAM,YAAY,GAAG,CAAC,UAAoB,EAAE,OAAe,EAAE,EAAE;IACpE,MAAM,GAAG,GAAG,IAAI,IAAI,EAAE,CAAC;IACvB,OAAO,UAAU,CAAC,GAAG,CAAC,CAAC,SAAS,EAAE,CAAC,EAAE,EAAE;QACrC,MAAM,SAAS,GAAG,IAAI,IAAI,CAAC,GAAG,CAAC,CAAC;QAChC,MAAM,SAAS,GAAG,CAAC,GAAG,CAAC,GAAG,OAAO,CAAC;QAClC,IAAI,SAAS;YAAE,SAAS,CAAC,OAAO,CAAC,GAAG,CAAC,OAAO,EAAE,GAAG,CAAC,GAAG,OAAO,CAAC,CAAC;QAC9D,OAAO;YACL,IAAI,EAAE,SAAS;YACf,EAAE,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE;YACpB,IAAI,EAAE,SAAS,IAAI,CAAC,GAAG,CAAC,KAAK,OAAO,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,SAAS;YAC5D,SAAS;SACV,CAAC;IACJ,CAAC,CAAC,CAAC;AACL,CAAC,CAAC;AAEF,MAAM,CAAC,MAAM,QAAQ,GAAG,CAAC,iBAAyB,EAAE,UAAkB,EAAE,EAAE;IACxE,OAAO;QACL,YAAY;QACZ,2EAA2E;QAC3E,CAAC,IAAI,CAAC,IAAI,CAAC,sBAAsB,CAAC,MAAM,CAAC,QAAQ,CAC/C;;IACF,EAAE,IAAI,CAAC;KACR,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,CAAC,EAAE,EAAE;QAChB,OAAO;YACL,IAAI,EAAE,IAAI;YACV,SAAS,EAAE,UAAU,GAAG,iBAAiB,IAAI,CAAC,UAAU,KAAK,iBAAiB,IAAI,CAAC,KAAK,CAAC,CAAC;YAC1F,EAAE,EAAE,QAAQ,CAAC,GAAG,CAAC,EAAE;SACpB,CAAC;IACJ,CAAC,CAAC,CAAC;AACL,CAAC,CAAC","sourcesContent":["import { Link } from '@pega/cosmos-react-core';\n\nexport const defaultStageNames = [\n 'Initial',\n 'Plan',\n 'Development',\n 'Accessibility',\n 'Review',\n 'Merge'\n];\n\nexport const createStages = (stageNames: string[], current: number) => {\n const now = new Date();\n return stageNames.map((stageName, i) => {\n const stageDate = new Date(now);\n const completed = i + 1 < current;\n if (completed) stageDate.setDate(now.getDate() + i - current);\n return {\n name: stageName,\n id: `stage-${i + 1}`,\n date: completed || i + 1 === current ? stageDate : undefined,\n completed\n };\n });\n};\n\nexport const getSteps = (currentStageIndex: number, stageIndex: number) => {\n return [\n 'First step',\n 'Second step that contains much more text to demonstrate overflow handling',\n <Link href='https://www.pega.com' target='_blank'>\n Steps can be links as well\n </Link>\n ].map((step, i) => {\n return {\n name: step,\n completed: stageIndex < currentStageIndex || (stageIndex === currentStageIndex && i === 0),\n id: `step-${i + 1}`\n };\n });\n};\n"]}
1
+ {"version":3,"file":"Stages.mocks.jsx","sourceRoot":"","sources":["../../../src/work/Stages/Stages.mocks.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAE,IAAI,EAAE,MAAM,yBAAyB,CAAC;AAE/C,MAAM,CAAC,MAAM,iBAAiB,GAAG;IAC/B,UAAU;IACV,mBAAmB;IACnB,aAAa;IACb,QAAQ;IACR,kBAAkB;IAClB,OAAO;CACR,CAAC;AAEF,MAAM,CAAC,MAAM,YAAY,GAAG,CAAC,UAAoB,EAAE,OAAe,EAAE,EAAE;IACpE,MAAM,GAAG,GAAG,IAAI,IAAI,EAAE,CAAC;IACvB,OAAO,UAAU,CAAC,GAAG,CAAC,CAAC,SAAS,EAAE,CAAC,EAAE,EAAE;QACrC,MAAM,SAAS,GAAG,IAAI,IAAI,CAAC,GAAG,CAAC,CAAC;QAChC,MAAM,SAAS,GAAG,CAAC,GAAG,CAAC,IAAI,OAAO,CAAC;QACnC,IAAI,SAAS;YAAE,SAAS,CAAC,OAAO,CAAC,GAAG,CAAC,OAAO,EAAE,GAAG,CAAC,GAAG,OAAO,CAAC,CAAC;QAC9D,OAAO;YACL,IAAI,EAAE,SAAS;YACf,EAAE,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE;YACpB,IAAI,EAAE,SAAS,IAAI,CAAC,GAAG,CAAC,KAAK,OAAO,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,SAAS;YAC5D,SAAS;SACV,CAAC;IACJ,CAAC,CAAC,CAAC;AACL,CAAC,CAAC;AAEF,MAAM,CAAC,MAAM,QAAQ,GAAG,CAAC,iBAAyB,EAAE,UAAkB,EAAE,EAAE;IACxE,OAAO;QACL,YAAY;QACZ,2EAA2E;QAC3E,CAAC,IAAI,CAAC,IAAI,CAAC,sBAAsB,CAAC,MAAM,CAAC,QAAQ,CAC/C;;IACF,EAAE,IAAI,CAAC;KACR,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,CAAC,EAAE,EAAE;QAChB,OAAO;YACL,IAAI,EAAE,IAAI;YACV,SAAS,EAAE,UAAU,GAAG,iBAAiB,IAAI,CAAC,UAAU,KAAK,iBAAiB,IAAI,CAAC,KAAK,CAAC,CAAC;YAC1F,EAAE,EAAE,QAAQ,CAAC,GAAG,CAAC,EAAE;SACpB,CAAC;IACJ,CAAC,CAAC,CAAC;AACL,CAAC,CAAC","sourcesContent":["import { Link } from '@pega/cosmos-react-core';\n\nexport const defaultStageNames = [\n 'Initiate',\n 'Identify customer',\n 'Eligibility',\n 'Intake',\n 'Process requests',\n 'Merge'\n];\n\nexport const createStages = (stageNames: string[], current: number) => {\n const now = new Date();\n return stageNames.map((stageName, i) => {\n const stageDate = new Date(now);\n const completed = i + 1 <= current;\n if (completed) stageDate.setDate(now.getDate() + i - current);\n return {\n name: stageName,\n id: `stage-${i + 1}`,\n date: completed || i + 1 === current ? stageDate : undefined,\n completed\n };\n });\n};\n\nexport const getSteps = (currentStageIndex: number, stageIndex: number) => {\n return [\n 'First step',\n 'Second step that contains much more text to demonstrate overflow handling',\n <Link href='https://www.pega.com' target='_blank'>\n Steps can be links as well\n </Link>\n ].map((step, i) => {\n return {\n name: step,\n completed: stageIndex < currentStageIndex || (stageIndex === currentStageIndex && i === 0),\n id: `step-${i + 1}`\n };\n });\n};\n"]}
@@ -1 +1 @@
1
- {"version":3,"file":"Tasks.stories.d.ts","sourceRoot":"","sources":["../../../src/work/Tasks/Tasks.stories.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAE,IAAI,EAAE,KAAK,EAAE,MAAM,kBAAkB,CAAC;AA0B/C,OAAO,EAAS,UAAU,EAAiB,MAAM,yBAAyB,CAAC;;AAE3E,wBAGU;AAEV,UAAU,eAAe;IACvB,UAAU,CAAC,EAAE,UAAU,CAAC,YAAY,CAAC,CAAC;IACtC,gBAAgB,CAAC,EAAE,OAAO,CAAC;IAC3B,mBAAmB,CAAC,EAAE,OAAO,CAAC;IAC9B,KAAK,CAAC,EAAE,UAAU,CAAC,OAAO,CAAC,CAAC;IAC5B,aAAa,CAAC,EAAE,OAAO,CAAC;CACzB;AAED,eAAO,MAAM,SAAS,EAAE,KAAK,CAAC,eAAe,CA2I5C,CAAC"}
1
+ {"version":3,"file":"Tasks.stories.d.ts","sourceRoot":"","sources":["../../../src/work/Tasks/Tasks.stories.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAE,IAAI,EAAE,KAAK,EAAE,MAAM,kBAAkB,CAAC;AA2B/C,OAAO,EAAS,UAAU,EAAiB,MAAM,yBAAyB,CAAC;;AAE3E,wBAGU;AAEV,UAAU,eAAe;IACvB,UAAU,CAAC,EAAE,UAAU,CAAC,YAAY,CAAC,CAAC;IACtC,gBAAgB,CAAC,EAAE,OAAO,CAAC;IAC3B,mBAAmB,CAAC,EAAE,OAAO,CAAC;IAC9B,KAAK,CAAC,EAAE,UAAU,CAAC,OAAO,CAAC,CAAC;IAC5B,aAAa,CAAC,EAAE,OAAO,CAAC;CACzB;AAED,eAAO,MAAM,SAAS,EAAE,KAAK,CAAC,eAAe,CA6I5C,CAAC"}
@@ -1,5 +1,5 @@
1
1
  import { useMemo, useState } from 'react';
2
- import { Avatar, Button, MenuButton, MetaList, Text, Form, Input, TextArea, RadioCheckGroup, RadioButton, Checkbox, DateInput, NumberInput, FileInput, menuHelpers, Status, Link, DateTimeDisplay, EmptyState } from '@pega/cosmos-react-core';
2
+ import { Avatar, Button, MenuButton, MetaList, Text, Form, Input, TextArea, RadioCheckGroup, RadioButton, Checkbox, DateInput, NumberInput, FileInput, menuHelpers, Status, Link, DateTimeDisplay, EmptyState, Flex } from '@pega/cosmos-react-core';
3
3
  import { Tasks } from '@pega/cosmos-react-work';
4
4
  export default {
5
5
  title: 'Work/Tasks',
@@ -15,18 +15,20 @@ export const TasksDemo = (args) => {
15
15
  Submit
16
16
  </Button>
17
17
  </>}>
18
- <Input label='Text field 1' required/>
19
- <Input label='Text field 2'/>
20
- <NumberInput onChange={() => { }} label='Number field'/>
21
- <Checkbox label='Boolean field' required/>
22
- <RadioCheckGroup label='Picklist options' name='picklist-1'>
23
- <RadioButton label='option 1' defaultChecked/>
24
- <RadioButton label='option 2'/>
25
- <RadioButton label='option 3'/>
26
- </RadioCheckGroup>
27
- <TextArea label='Text paragraph field' required/>
28
- <FileInput label='File field'/>
29
- <DateInput label='Datetime field'/>
18
+ <Flex container={{ direction: 'column', itemGap: 2 }}>
19
+ <Input label='Text field 1' required/>
20
+ <Input label='Text field 2'/>
21
+ <NumberInput onChange={() => { }} label='Number field'/>
22
+ <Checkbox label='Boolean field' required/>
23
+ <RadioCheckGroup label='Picklist options' name='picklist-1'>
24
+ <RadioButton label='option 1' defaultChecked/>
25
+ <RadioButton label='option 2'/>
26
+ <RadioButton label='option 3'/>
27
+ </RadioCheckGroup>
28
+ <TextArea label='Text paragraph field' required/>
29
+ <FileInput label='File field'/>
30
+ <DateInput label='Datetime field'/>
31
+ </Flex>
30
32
  </Form>);
31
33
  };
32
34
  const [workGroups, setWorkGroups] = useState(() => {
@@ -1 +1 @@
1
- {"version":3,"file":"Tasks.stories.jsx","sourceRoot":"","sources":["../../../src/work/Tasks/Tasks.stories.tsx"],"names":[],"mappings":"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","sourcesContent":["import { Meta, Story } from '@storybook/react';\nimport { useMemo, useState } from 'react';\n\nimport {\n Avatar,\n Button,\n MenuButton,\n MenuProps,\n MetaList,\n Text,\n Form,\n Input,\n TextArea,\n RadioCheckGroup,\n RadioButton,\n Checkbox,\n DateInput,\n NumberInput,\n FileInput,\n menuHelpers,\n Status,\n Link,\n DateTimeDisplay,\n StatusProps,\n EmptyState\n} from '@pega/cosmos-react-core';\nimport { Tasks, TasksProps, TaskItemProps } from '@pega/cosmos-react-work';\n\nexport default {\n title: 'Work/Tasks',\n component: Tasks\n} as Meta;\n\ninterface TasksStoryProps {\n headerText?: TasksProps['headerText'];\n showHeaderVisual?: boolean;\n showHeaderSecondary?: boolean;\n count?: TasksProps['count'];\n openableTasks?: boolean;\n}\n\nexport const TasksDemo: Story<TasksStoryProps> = (args: TasksStoryProps) => {\n const [isLimited, setIsLimited] = useState(true);\n const [hasOpenTask, setHasOpenTask] = useState(false);\n\n const DemoTaskForm = ({ onSubmit, onCancel }: { onSubmit: () => void; onCancel: () => void }) => {\n return (\n <Form\n actions={\n <>\n <Button onClick={onCancel}>Cancel</Button>\n <Button variant='primary' onClick={onSubmit}>\n Submit\n </Button>\n </>\n }\n >\n <Input label='Text field 1' required />\n <Input label='Text field 2' />\n <NumberInput onChange={() => {}} label='Number field' />\n <Checkbox label='Boolean field' required />\n <RadioCheckGroup label='Picklist options' name='picklist-1'>\n <RadioButton label='option 1' defaultChecked />\n <RadioButton label='option 2' />\n <RadioButton label='option 3' />\n </RadioCheckGroup>\n <TextArea label='Text paragraph field' required />\n <FileInput label='File field' />\n <DateInput label='Datetime field' />\n </Form>\n );\n };\n\n const [workGroups, setWorkGroups] = useState<MenuProps['items']>(() => {\n return Array.from({ length: 10 }, (_, i) => {\n return {\n id: `${i + 1}`,\n primary: `Workgroup ${i + 1}`,\n count: typeof args.count === 'number' ? args.count : Math.floor(Math.random() * 10),\n selected: i === 0,\n visual: <Avatar size='l' name={`Team ${i + 1}`} />\n };\n });\n });\n\n const activeGroup = useMemo(() => menuHelpers.getSelected(workGroups)[0], [workGroups]);\n const activeGroupTaskCount = activeGroup?.count ?? 0;\n\n const groupSelection = useMemo(() => {\n return (\n <MenuButton\n variant='text'\n text={activeGroup.primary}\n menu={{\n mode: 'single-select',\n items: workGroups,\n onItemClick: id => {\n setWorkGroups(currentWorkGroups => {\n return menuHelpers.mapTree(currentWorkGroups, group => {\n if (id === group.id || group.selected) {\n return { ...group, selected: id === group.id };\n }\n\n return group;\n });\n });\n }\n }}\n />\n );\n }, [activeGroup.primary, workGroups]);\n\n const taskArray: TaskItemProps[] = useMemo(\n () =>\n Array.from(\n { length: isLimited ? Math.min(3, activeGroupTaskCount) : activeGroupTaskCount },\n (_, i) => {\n const dueIn = 86400000 * i;\n let status: StatusProps['variant'] = 'info';\n\n if (i === 0) {\n status = 'urgent';\n } else if (i === 1) {\n status = 'warn';\n }\n\n return {\n id: `${i}`,\n name: `Task ${i + 1}`,\n processName: i % 2 ? 'Demo process' : undefined,\n meta: (\n <MetaList\n items={[\n <Status variant={status}>{status}</Status>,\n <Text variant='secondary'>\n Due <DateTimeDisplay variant='relative' value={Date.now() + dueIn} />\n </Text>,\n <Link href='#demo'>Parent case link</Link>\n ]}\n />\n ),\n onOpen:\n args.openableTasks !== false\n ? () => {\n setHasOpenTask(true);\n }\n : undefined,\n content: hasOpenTask ? (\n <DemoTaskForm\n onSubmit={() => {\n setHasOpenTask(false);\n }}\n onCancel={() => {\n setHasOpenTask(false);\n }}\n />\n ) : null\n };\n }\n ),\n [isLimited, activeGroupTaskCount, args.openableTasks, hasOpenTask]\n );\n\n return (\n <Tasks\n headerText={args.headerText || 'Tasks'}\n count={activeGroupTaskCount}\n items={taskArray}\n headerVisual={\n args.showHeaderVisual && activeGroup ? (\n <Avatar size='l' name={activeGroup.primary} />\n ) : undefined\n }\n headerSecondary={args.showHeaderSecondary ? groupSelection : undefined}\n emptyPlaceholder={<EmptyState />}\n onExpandToggle={() => {\n setIsLimited(cur => !cur);\n }}\n />\n );\n};\n\nTasksDemo.args = {\n headerText: 'Tasks',\n showHeaderVisual: true,\n showHeaderSecondary: true,\n count: undefined,\n openableTasks: true\n};\n\nTasksDemo.argTypes = {\n headerText: { control: { type: 'text' } },\n showHeaderVisual: { control: { type: 'boolean' } },\n showHeaderSecondary: { control: { type: 'boolean' } },\n count: { control: { type: 'number' } },\n openableTasks: { control: { type: 'boolean' } }\n};\n"]}
1
+ {"version":3,"file":"Tasks.stories.jsx","sourceRoot":"","sources":["../../../src/work/Tasks/Tasks.stories.tsx"],"names":[],"mappings":"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","sourcesContent":["import { Meta, Story } from '@storybook/react';\nimport { useMemo, useState } from 'react';\n\nimport {\n Avatar,\n Button,\n MenuButton,\n MenuProps,\n MetaList,\n Text,\n Form,\n Input,\n TextArea,\n RadioCheckGroup,\n RadioButton,\n Checkbox,\n DateInput,\n NumberInput,\n FileInput,\n menuHelpers,\n Status,\n Link,\n DateTimeDisplay,\n StatusProps,\n EmptyState,\n Flex\n} from '@pega/cosmos-react-core';\nimport { Tasks, TasksProps, TaskItemProps } from '@pega/cosmos-react-work';\n\nexport default {\n title: 'Work/Tasks',\n component: Tasks\n} as Meta;\n\ninterface TasksStoryProps {\n headerText?: TasksProps['headerText'];\n showHeaderVisual?: boolean;\n showHeaderSecondary?: boolean;\n count?: TasksProps['count'];\n openableTasks?: boolean;\n}\n\nexport const TasksDemo: Story<TasksStoryProps> = (args: TasksStoryProps) => {\n const [isLimited, setIsLimited] = useState(true);\n const [hasOpenTask, setHasOpenTask] = useState(false);\n\n const DemoTaskForm = ({ onSubmit, onCancel }: { onSubmit: () => void; onCancel: () => void }) => {\n return (\n <Form\n actions={\n <>\n <Button onClick={onCancel}>Cancel</Button>\n <Button variant='primary' onClick={onSubmit}>\n Submit\n </Button>\n </>\n }\n >\n <Flex container={{ direction: 'column', itemGap: 2 }}>\n <Input label='Text field 1' required />\n <Input label='Text field 2' />\n <NumberInput onChange={() => {}} label='Number field' />\n <Checkbox label='Boolean field' required />\n <RadioCheckGroup label='Picklist options' name='picklist-1'>\n <RadioButton label='option 1' defaultChecked />\n <RadioButton label='option 2' />\n <RadioButton label='option 3' />\n </RadioCheckGroup>\n <TextArea label='Text paragraph field' required />\n <FileInput label='File field' />\n <DateInput label='Datetime field' />\n </Flex>\n </Form>\n );\n };\n\n const [workGroups, setWorkGroups] = useState<MenuProps['items']>(() => {\n return Array.from({ length: 10 }, (_, i) => {\n return {\n id: `${i + 1}`,\n primary: `Workgroup ${i + 1}`,\n count: typeof args.count === 'number' ? args.count : Math.floor(Math.random() * 10),\n selected: i === 0,\n visual: <Avatar size='l' name={`Team ${i + 1}`} />\n };\n });\n });\n\n const activeGroup = useMemo(() => menuHelpers.getSelected(workGroups)[0], [workGroups]);\n const activeGroupTaskCount = activeGroup?.count ?? 0;\n\n const groupSelection = useMemo(() => {\n return (\n <MenuButton\n variant='text'\n text={activeGroup.primary}\n menu={{\n mode: 'single-select',\n items: workGroups,\n onItemClick: id => {\n setWorkGroups(currentWorkGroups => {\n return menuHelpers.mapTree(currentWorkGroups, group => {\n if (id === group.id || group.selected) {\n return { ...group, selected: id === group.id };\n }\n\n return group;\n });\n });\n }\n }}\n />\n );\n }, [activeGroup.primary, workGroups]);\n\n const taskArray: TaskItemProps[] = useMemo(\n () =>\n Array.from(\n { length: isLimited ? Math.min(3, activeGroupTaskCount) : activeGroupTaskCount },\n (_, i) => {\n const dueIn = 86400000 * i;\n let status: StatusProps['variant'] = 'info';\n\n if (i === 0) {\n status = 'urgent';\n } else if (i === 1) {\n status = 'warn';\n }\n\n return {\n id: `${i}`,\n name: `Task ${i + 1}`,\n processName: i % 2 ? 'Demo process' : undefined,\n meta: (\n <MetaList\n items={[\n <Status variant={status}>{status}</Status>,\n <Text variant='secondary'>\n Due <DateTimeDisplay variant='relative' value={Date.now() + dueIn} />\n </Text>,\n <Link href='#demo'>Parent case link</Link>\n ]}\n />\n ),\n onOpen:\n args.openableTasks !== false\n ? () => {\n setHasOpenTask(true);\n }\n : undefined,\n content: hasOpenTask ? (\n <DemoTaskForm\n onSubmit={() => {\n setHasOpenTask(false);\n }}\n onCancel={() => {\n setHasOpenTask(false);\n }}\n />\n ) : null\n };\n }\n ),\n [isLimited, activeGroupTaskCount, args.openableTasks, hasOpenTask]\n );\n\n return (\n <Tasks\n headerText={args.headerText || 'Tasks'}\n count={activeGroupTaskCount}\n items={taskArray}\n headerVisual={\n args.showHeaderVisual && activeGroup ? (\n <Avatar size='l' name={activeGroup.primary} />\n ) : undefined\n }\n headerSecondary={args.showHeaderSecondary ? groupSelection : undefined}\n emptyPlaceholder={<EmptyState />}\n onExpandToggle={() => {\n setIsLimited(cur => !cur);\n }}\n />\n );\n};\n\nTasksDemo.args = {\n headerText: 'Tasks',\n showHeaderVisual: true,\n showHeaderSecondary: true,\n count: undefined,\n openableTasks: true\n};\n\nTasksDemo.argTypes = {\n headerText: { control: { type: 'text' } },\n showHeaderVisual: { control: { type: 'boolean' } },\n showHeaderSecondary: { control: { type: 'boolean' } },\n count: { control: { type: 'number' } },\n openableTasks: { control: { type: 'boolean' } }\n};\n"]}
@@ -1,16 +1,24 @@
1
1
  import { FC } from 'react';
2
2
  import { NavProps } from '@pega/cosmos-react-build';
3
3
  export interface TabbedPageStoryProps {
4
- pageContent: PageContentProps;
4
+ pageContent: {
5
+ template: 'tabbed';
6
+ title: string;
7
+ breadcrumbsPath: string;
8
+ tabs: string[];
9
+ };
5
10
  showBreadcrumbs: boolean;
6
11
  }
12
+ export interface ShowcasePageStoryProps {
13
+ template: 'showcase';
14
+ title: string;
15
+ description: string;
16
+ actionLabel: string;
17
+ imageSrc: string;
18
+ }
7
19
  export interface PageContentProps {
8
20
  id: string;
9
- data: {
10
- pageTitle: string;
11
- breadcrumbsPath: string;
12
- tabs: string[];
13
- };
21
+ data: TabbedPageStoryProps['pageContent'] | ShowcasePageStoryProps;
14
22
  }
15
23
  export declare const getPath: (args: TabbedPageStoryProps) => {
16
24
  id: string;
@@ -18,13 +26,7 @@ export declare const getPath: (args: TabbedPageStoryProps) => {
18
26
  href: string | undefined;
19
27
  }[] | undefined;
20
28
  export declare const defaultNavItems: NavProps['items'];
21
- export declare const contents: {
22
- id: string;
23
- data: {
24
- pageTitle: string;
25
- breadcrumbsPath: string;
26
- tabs: string[];
27
- };
28
- }[];
29
+ export declare const contents: PageContentProps[];
29
30
  export declare const TabbedPageComp: FC<TabbedPageStoryProps>;
31
+ export declare const ShowcasePageComp: FC<ShowcasePageStoryProps>;
30
32
  //# sourceMappingURL=AppShell.mocks.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"AppShell.mocks.d.ts","sourceRoot":"","sources":["../../../src/build/AppShell/AppShell.mocks.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAE,EAAE,EAAE,MAAM,OAAO,CAAC;AAG3B,OAAO,EAAE,QAAQ,EAAE,MAAM,0BAA0B,CAAC;AAGpD,MAAM,WAAW,oBAAoB;IACnC,WAAW,EAAE,gBAAgB,CAAC;IAC9B,eAAe,EAAE,OAAO,CAAC;CAC1B;AAED,MAAM,WAAW,gBAAgB;IAC/B,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE;QACJ,SAAS,EAAE,MAAM,CAAC;QAClB,eAAe,EAAE,MAAM,CAAC;QACxB,IAAI,EAAE,MAAM,EAAE,CAAC;KAChB,CAAC;CACH;AAED,eAAO,MAAM,OAAO,SAAU,oBAAoB;;;;eAqBjD,CAAC;AAEF,eAAO,MAAM,eAAe,EAAE,QAAQ,CAAC,OAAO,CAiH7C,CAAC;AAEF,eAAO,MAAM,QAAQ;;;;;;;GA0NpB,CAAC;AAEF,eAAO,MAAM,cAAc,EAAE,EAAE,CAAC,oBAAoB,CAwBnD,CAAC"}
1
+ {"version":3,"file":"AppShell.mocks.d.ts","sourceRoot":"","sources":["../../../src/build/AppShell/AppShell.mocks.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAE,EAAE,EAAE,MAAM,OAAO,CAAC;AAG3B,OAAO,EAAE,QAAQ,EAAgB,MAAM,0BAA0B,CAAC;AAKlE,MAAM,WAAW,oBAAoB;IACnC,WAAW,EAAE;QACX,QAAQ,EAAE,QAAQ,CAAC;QACnB,KAAK,EAAE,MAAM,CAAC;QACd,eAAe,EAAE,MAAM,CAAC;QACxB,IAAI,EAAE,MAAM,EAAE,CAAC;KAChB,CAAC;IACF,eAAe,EAAE,OAAO,CAAC;CAC1B;AAED,MAAM,WAAW,sBAAsB;IACrC,QAAQ,EAAE,UAAU,CAAC;IACrB,KAAK,EAAE,MAAM,CAAC;IACd,WAAW,EAAE,MAAM,CAAC;IACpB,WAAW,EAAE,MAAM,CAAC;IACpB,QAAQ,EAAE,MAAM,CAAC;CAClB;AAED,MAAM,WAAW,gBAAgB;IAC/B,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,oBAAoB,CAAC,aAAa,CAAC,GAAG,sBAAsB,CAAC;CACpE;AAED,eAAO,MAAM,OAAO,SAAU,oBAAoB;;;;eAmBjD,CAAC;AAEF,eAAO,MAAM,eAAe,EAAE,QAAQ,CAAC,OAAO,CAiH7C,CAAC;AAEF,eAAO,MAAM,QAAQ,EAAE,gBAAgB,EA6PtC,CAAC;AAEF,eAAO,MAAM,cAAc,EAAE,EAAE,CAAC,oBAAoB,CAyBnD,CAAC;AAEF,eAAO,MAAM,gBAAgB,EAAE,EAAE,CAAC,sBAAsB,CAwBvD,CAAC"}