@flipdish/portal-library 1.0.13 → 1.0.14

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 (44) hide show
  1. package/dist/components/index.d.ts +5 -0
  2. package/dist/components/index.esm.js +6 -0
  3. package/dist/components/index.esm.js.map +1 -0
  4. package/dist/components/index.js +16 -0
  5. package/dist/components/index.js.map +1 -0
  6. package/dist/components/themes/flipdishPublicTheme.d.ts +19 -0
  7. package/dist/components/themes/flipdishPublicTheme.esm.js +171 -0
  8. package/dist/components/themes/flipdishPublicTheme.esm.js.map +1 -0
  9. package/dist/components/themes/flipdishPublicTheme.js +173 -0
  10. package/dist/components/themes/flipdishPublicTheme.js.map +1 -0
  11. package/dist/components/ui/LazyComponent/LazyComponent.d.ts +9 -0
  12. package/dist/components/ui/LazyComponent/LazyComponent.esm.js +14 -0
  13. package/dist/components/ui/LazyComponent/LazyComponent.esm.js.map +1 -0
  14. package/dist/components/ui/LazyComponent/LazyComponent.js +16 -0
  15. package/dist/components/ui/LazyComponent/LazyComponent.js.map +1 -0
  16. package/dist/components/ui/NotFoundPage/NotFoundPage.d.ts +5 -0
  17. package/dist/components/ui/NotFoundPage/NotFoundPage.esm.js +18 -0
  18. package/dist/components/ui/NotFoundPage/NotFoundPage.esm.js.map +1 -0
  19. package/dist/components/ui/NotFoundPage/NotFoundPage.js +20 -0
  20. package/dist/components/ui/NotFoundPage/NotFoundPage.js.map +1 -0
  21. package/dist/components/ui/PortalMock/PortalMock.d.ts +9 -0
  22. package/dist/components/ui/PortalMock/PortalMock.esm.js +45 -0
  23. package/dist/components/ui/PortalMock/PortalMock.esm.js.map +1 -0
  24. package/dist/components/ui/PortalMock/PortalMock.js +47 -0
  25. package/dist/components/ui/PortalMock/PortalMock.js.map +1 -0
  26. package/dist/components/ui/Spacer/Spacer.d.ts +12 -0
  27. package/dist/components/ui/Spacer/Spacer.esm.js +32 -0
  28. package/dist/components/ui/Spacer/Spacer.esm.js.map +1 -0
  29. package/dist/components/ui/Spacer/Spacer.js +34 -0
  30. package/dist/components/ui/Spacer/Spacer.js.map +1 -0
  31. package/dist/localization/en.json.esm.js +52 -0
  32. package/dist/localization/en.json.esm.js.map +1 -0
  33. package/dist/localization/en.json.js +67 -0
  34. package/dist/localization/en.json.js.map +1 -0
  35. package/dist/providers/TranslationProvider.esm.js +21 -0
  36. package/dist/providers/TranslationProvider.esm.js.map +1 -0
  37. package/dist/providers/TranslationProvider.js +23 -0
  38. package/dist/providers/TranslationProvider.js.map +1 -0
  39. package/package.json +1 -1
  40. package/dist/index.d.ts +0 -42
  41. package/dist/index.esm.js +0 -325
  42. package/dist/index.esm.js.map +0 -1
  43. package/dist/index.js +0 -331
  44. package/dist/index.js.map +0 -1
package/dist/index.js DELETED
@@ -1,331 +0,0 @@
1
- 'use strict';
2
-
3
- var material = require('@mui/material');
4
- var jsxRuntime = require('react/jsx-runtime');
5
- var styles = require('@mui/material/styles');
6
- var Typography = require('@mui/material/Typography');
7
- var react = require('react');
8
- var CircularProgress = require('@mui/material/CircularProgress');
9
-
10
- // Colours and fonts as per our brand guidelines
11
- const fontTheme = material.createTheme({
12
- typography: {
13
- body1: {
14
- fontFamily: "'Roboto', sans-serif",
15
- },
16
- body2: {
17
- fontFamily: "'Roboto', sans-serif",
18
- },
19
- h1: {
20
- fontFamily: 'clarendon-text-pro,Domine,serif',
21
- },
22
- h2: {
23
- fontFamily: 'clarendon-text-pro,Domine,serif',
24
- },
25
- h3: {
26
- fontFamily: 'clarendon-text-pro,Domine,serif',
27
- },
28
- h4: {
29
- fontFamily: 'clarendon-text-pro,Domine,serif',
30
- },
31
- h5: {
32
- fontFamily: 'clarendon-text-pro,Domine,serif',
33
- },
34
- h6: {
35
- fontFamily: 'clarendon-text-pro,Domine,serif',
36
- },
37
- },
38
- palette: {
39
- success: {
40
- main: '#20C26E',
41
- dark: '#137442',
42
- light: '#D2F3E2',
43
- },
44
- error: {
45
- main: '#CA0030',
46
- dark: '#79001D',
47
- light: '#FADBE2',
48
- },
49
- warning: {
50
- main: '#FFBC2C',
51
- dark: '#FF7A00',
52
- light: '#FFF2D5',
53
- },
54
- },
55
- });
56
- const theme = material.createTheme(fontTheme, {
57
- palette: {
58
- // Primary
59
- black: fontTheme.palette.augmentColor({
60
- color: {
61
- main: '#000000',
62
- },
63
- name: 'black',
64
- }),
65
- white: fontTheme.palette.augmentColor({
66
- color: {
67
- main: '#ffffff',
68
- },
69
- name: 'white',
70
- }),
71
- flippyBlue: fontTheme.palette.augmentColor({
72
- color: {
73
- main: '#0b75d7',
74
- },
75
- name: 'flippyBlue',
76
- }),
77
- // Core
78
- freezerBurn: fontTheme.palette.augmentColor({
79
- color: {
80
- main: '#a5e2f6',
81
- },
82
- name: 'freezerBurn',
83
- }),
84
- spricyCarrot: fontTheme.palette.augmentColor({
85
- color: {
86
- main: '#f7742b',
87
- },
88
- name: 'spricyCarrot',
89
- }),
90
- pebble: fontTheme.palette.augmentColor({
91
- color: {
92
- main: '#eeebe3',
93
- },
94
- name: 'pebble',
95
- }),
96
- // Secondary
97
- donutPanic: fontTheme.palette.augmentColor({
98
- color: {
99
- main: '#ffbae4',
100
- },
101
- name: 'donutPanic',
102
- }),
103
- eletricLime: fontTheme.palette.augmentColor({
104
- color: {
105
- main: '#cff27d',
106
- },
107
- name: 'eletricLime',
108
- }),
109
- pending: fontTheme.palette.augmentColor({
110
- color: {
111
- main: '#DEACFA',
112
- dark: '#A56AC6',
113
- light: '#FCF7FE',
114
- },
115
- name: 'pending',
116
- }),
117
- },
118
- });
119
- var flipdishPublicTheme = material.createTheme(theme, {
120
- palette: {
121
- primary: {
122
- main: theme.palette.flippyBlue.main,
123
- },
124
- secondary: {
125
- main: theme.palette.spricyCarrot.main,
126
- },
127
- },
128
- components: {
129
- MuiButton: {
130
- styleOverrides: {
131
- root: {
132
- padding: '7px 14px',
133
- textTransform: 'none',
134
- boxShadow: 'none',
135
- '&:hover': {
136
- boxShadow: 'none',
137
- },
138
- borderRadius: '25px',
139
- },
140
- },
141
- },
142
- MuiCard: {
143
- styleOverrides: {
144
- root: {
145
- borderRadius: 0,
146
- boxShadow: 'none',
147
- borderWidth: '1px',
148
- borderStyle: 'solid',
149
- borderColor: '#999999',
150
- },
151
- },
152
- },
153
- MuiChip: {
154
- styleOverrides: {
155
- root: {
156
- borderRadius: '5px',
157
- fontWeight: 'bold',
158
- textTransform: 'uppercase',
159
- },
160
- },
161
- },
162
- MuiListItemButton: {
163
- styleOverrides: {
164
- root: {
165
- '&:hover': {
166
- backgroundColor: '#eaf2ff',
167
- },
168
- '&:not(:last-child)': {
169
- borderBottom: `1px solid ${theme.palette.divider}`,
170
- },
171
- },
172
- },
173
- },
174
- },
175
- });
176
-
177
- var Home = {
178
- value: "Home"
179
- };
180
- var About = {
181
- value: "About"
182
- };
183
- var Welcome_to_new_portal = {
184
- value: "Welcome to the new Flipdish Portal"
185
- };
186
- var Page_Not_Found = {
187
- value: "Page Not Found"
188
- };
189
- var Click_vite_react = {
190
- value: "Click on the Vite and React logos to learn more"
191
- };
192
- var Go_to_about_page = {
193
- value: "Go to About Page"
194
- };
195
- var Go_to_home_page = {
196
- value: "Go to home Page"
197
- };
198
- var Welcome_about_page = {
199
- value: "Welcome to the About Page"
200
- };
201
- var About_Page = {
202
- value: "About Page"
203
- };
204
- var Something_went_wrong_please_refresh_the_page = {
205
- value: "Something went wrong, please refresh the page"
206
- };
207
- var Count_is = {
208
- value: "Count is {count}"
209
- };
210
- var en = {
211
- Home: Home,
212
- About: About,
213
- Welcome_to_new_portal: Welcome_to_new_portal,
214
- Page_Not_Found: Page_Not_Found,
215
- "Micro-Frontend_Example": {
216
- value: "Micro-Frontend Example"
217
- },
218
- Click_vite_react: Click_vite_react,
219
- Go_to_about_page: Go_to_about_page,
220
- Go_to_home_page: Go_to_home_page,
221
- Welcome_about_page: Welcome_about_page,
222
- About_Page: About_Page,
223
- Something_went_wrong_please_refresh_the_page: Something_went_wrong_please_refresh_the_page,
224
- Count_is: Count_is
225
- };
226
-
227
- const TranslationContext = react.createContext({});
228
- const useTranslation = () => {
229
- const { translations } = react.useContext(TranslationContext);
230
- const translate = react.useCallback((key, data) => {
231
- let translation = translations?.[key]?.value || en[key]?.value || key;
232
- if (data && translation) {
233
- Object.keys(data)?.forEach((key) => {
234
- translation = translation.replace(new RegExp(`{${key}}`, 'g'), `${data[key]}`);
235
- });
236
- }
237
- return translation;
238
- }, [translations]);
239
- return { translate, translations };
240
- };
241
-
242
- const StyledTextContainer = styles.styled('div')(({ theme }) => ({
243
- marginTop: theme.spacing(2),
244
- display: 'flex',
245
- justifyContent: 'center',
246
- alignItems: 'center',
247
- }));
248
- const NotFoundPage = () => {
249
- const { translate } = useTranslation();
250
- return (jsxRuntime.jsx(StyledTextContainer, { children: jsxRuntime.jsx(Typography, { children: translate('Page_Not_Found') }) }));
251
- };
252
-
253
- const StyledHeader = styles.styled('div')(({ theme }) => ({
254
- display: 'flex',
255
- justifyContent: 'center',
256
- alignItems: 'center',
257
- backgroundColor: theme.palette.grey[300],
258
- height: '65px',
259
- color: theme.palette.text.primary,
260
- borderBottom: `2px solid ${theme.palette.grey[400]}`,
261
- }));
262
- const StyledSidebar = styles.styled('div')(({ theme }) => ({
263
- display: 'flex',
264
- justifyContent: 'center',
265
- alignItems: 'center',
266
- backgroundColor: theme.palette.grey[300],
267
- height: '100%',
268
- color: theme.palette.text.primary,
269
- }));
270
- const drawerWidth = 198;
271
- const PortalMock = ({ children, loadedFromPortal }) => {
272
- const theme = styles.useTheme();
273
- if (loadedFromPortal) {
274
- return jsxRuntime.jsx(jsxRuntime.Fragment, { children: children });
275
- }
276
- const drawer = (jsxRuntime.jsx(StyledSidebar, { children: jsxRuntime.jsx(material.Typography, { sx: { fontWeight: 'bold' }, children: "Sidebar" }) }));
277
- return (jsxRuntime.jsxs(material.Box, { sx: { display: 'flex' }, children: [jsxRuntime.jsx(material.CssBaseline, {}), jsxRuntime.jsx(material.AppBar, { position: "fixed", sx: {
278
- width: { sm: `calc(100% - ${drawerWidth}px)` },
279
- ml: { sm: `${drawerWidth}px` },
280
- boxShadow: 'none',
281
- }, children: jsxRuntime.jsx(StyledHeader, { children: jsxRuntime.jsx(material.Typography, { sx: { fontWeight: 'bold' }, children: "Header" }) }) }), jsxRuntime.jsx(material.Box, { component: "nav", sx: { width: { sm: drawerWidth }, flexShrink: { sm: 0 } }, "aria-label": "mailbox folders", children: jsxRuntime.jsx(material.Drawer, { variant: "permanent", sx: {
282
- display: { xs: 'none', sm: 'block' },
283
- '& .MuiDrawer-paper': {
284
- boxSizing: 'border-box',
285
- width: drawerWidth,
286
- borderColor: theme.palette.grey[400],
287
- borderWidth: '2px',
288
- },
289
- }, open: true, children: drawer }) }), jsxRuntime.jsx(material.Box, { component: "main", sx: { flexGrow: 1, width: { sm: `calc(100% - ${drawerWidth}px)`, marginTop: '65px' } }, children: children })] }));
290
- };
291
-
292
- const StyledLoadingContainer = styles.styled('div')({
293
- display: 'flex',
294
- justifyContent: 'center',
295
- alignItems: 'center',
296
- });
297
- const LazyComponent = ({ children }) => (jsxRuntime.jsx(react.Suspense, { fallback: jsxRuntime.jsx(StyledLoadingContainer, { children: jsxRuntime.jsx(CircularProgress, { size: 56 }) }), children: children }));
298
-
299
- const SpacerDiv = styles.styled('div')(({ size = 8, variant, children }) => {
300
- // eslint-disable-next-line @typescript-eslint/no-explicit-any
301
- const style = {
302
- padding: children ? `${size}px` : undefined,
303
- };
304
- if (!children) {
305
- if (variant === 'horizontal') {
306
- style.height = `${size}px`;
307
- }
308
- else if (variant === 'vertical') {
309
- style.width = `${size}px`;
310
- }
311
- }
312
- else {
313
- if (variant === 'horizontal') {
314
- style.margin = `${size}px 0`;
315
- }
316
- else if (variant === 'vertical') {
317
- style.margin = `0 ${size}px`;
318
- }
319
- }
320
- return style;
321
- });
322
- const Spacer = ({ className, variant, size = 8, children }) => {
323
- return (jsxRuntime.jsx(SpacerDiv, { className: className, variant: variant, size: size, children: children }));
324
- };
325
-
326
- exports.LazyComponent = LazyComponent;
327
- exports.NotFoundPage = NotFoundPage;
328
- exports.PortalMock = PortalMock;
329
- exports.Spacer = Spacer;
330
- exports.flipdishPublicTheme = flipdishPublicTheme;
331
- //# sourceMappingURL=index.js.map
package/dist/index.js.map DELETED
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.js","sources":["../src/components/themes/flipdishPublicTheme.ts","../src/providers/TranslationProvider.tsx","../src/components/ui/NotFoundPage/NotFoundPage.tsx","../src/components/ui/PortalMock/PortalMock.tsx","../src/components/ui/LazyComponent/LazyComponent.tsx","../src/components/ui/Spacer/Spacer.tsx"],"sourcesContent":["import { createTheme } from '@mui/material';\n\n// Colours and fonts as per our brand guidelines\nconst fontTheme = createTheme({\n typography: {\n body1: {\n fontFamily: \"'Roboto', sans-serif\",\n },\n body2: {\n fontFamily: \"'Roboto', sans-serif\",\n },\n h1: {\n fontFamily: 'clarendon-text-pro,Domine,serif',\n },\n h2: {\n fontFamily: 'clarendon-text-pro,Domine,serif',\n },\n h3: {\n fontFamily: 'clarendon-text-pro,Domine,serif',\n },\n h4: {\n fontFamily: 'clarendon-text-pro,Domine,serif',\n },\n h5: {\n fontFamily: 'clarendon-text-pro,Domine,serif',\n },\n h6: {\n fontFamily: 'clarendon-text-pro,Domine,serif',\n },\n },\n palette: {\n success: {\n main: '#20C26E',\n dark: '#137442',\n light: '#D2F3E2',\n },\n error: {\n main: '#CA0030',\n dark: '#79001D',\n light: '#FADBE2',\n },\n warning: {\n main: '#FFBC2C',\n dark: '#FF7A00',\n light: '#FFF2D5',\n },\n },\n});\n\nconst theme = createTheme(fontTheme, {\n palette: {\n // Primary\n black: fontTheme.palette.augmentColor({\n color: {\n main: '#000000',\n },\n name: 'black',\n }),\n white: fontTheme.palette.augmentColor({\n color: {\n main: '#ffffff',\n },\n name: 'white',\n }),\n flippyBlue: fontTheme.palette.augmentColor({\n color: {\n main: '#0b75d7',\n },\n name: 'flippyBlue',\n }),\n // Core\n freezerBurn: fontTheme.palette.augmentColor({\n color: {\n main: '#a5e2f6',\n },\n name: 'freezerBurn',\n }),\n spricyCarrot: fontTheme.palette.augmentColor({\n color: {\n main: '#f7742b',\n },\n name: 'spricyCarrot',\n }),\n pebble: fontTheme.palette.augmentColor({\n color: {\n main: '#eeebe3',\n },\n name: 'pebble',\n }),\n // Secondary\n donutPanic: fontTheme.palette.augmentColor({\n color: {\n main: '#ffbae4',\n },\n name: 'donutPanic',\n }),\n eletricLime: fontTheme.palette.augmentColor({\n color: {\n main: '#cff27d',\n },\n name: 'eletricLime',\n }),\n pending: fontTheme.palette.augmentColor({\n color: {\n main: '#DEACFA',\n dark: '#A56AC6',\n light: '#FCF7FE',\n },\n name: 'pending',\n }),\n },\n});\n\nexport default createTheme(theme, {\n palette: {\n primary: {\n main: theme.palette.flippyBlue.main,\n },\n secondary: {\n main: theme.palette.spricyCarrot.main,\n },\n },\n components: {\n MuiButton: {\n styleOverrides: {\n root: {\n padding: '7px 14px',\n textTransform: 'none',\n boxShadow: 'none',\n '&:hover': {\n boxShadow: 'none',\n },\n borderRadius: '25px',\n },\n },\n },\n MuiCard: {\n styleOverrides: {\n root: {\n borderRadius: 0,\n boxShadow: 'none',\n borderWidth: '1px',\n borderStyle: 'solid',\n borderColor: '#999999',\n },\n },\n },\n MuiChip: {\n styleOverrides: {\n root: {\n borderRadius: '5px',\n fontWeight: 'bold',\n textTransform: 'uppercase',\n },\n },\n },\n MuiListItemButton: {\n styleOverrides: {\n root: {\n '&:hover': {\n backgroundColor: '#eaf2ff',\n },\n '&:not(:last-child)': {\n borderBottom: `1px solid ${theme.palette.divider}`,\n },\n },\n },\n },\n },\n});\n\ndeclare module '@mui/material/styles' {\n interface Palette {\n black: Palette['primary'];\n white: Palette['primary'];\n flippyBlue: Palette['primary'];\n freezerBurn: Palette['primary'];\n spricyCarrot: Palette['primary'];\n pebble: Palette['primary'];\n donutPanic: Palette['primary'];\n eletricLime: Palette['primary'];\n pending: Palette['primary'];\n }\n}\n","import { createContext, useCallback, useContext, useEffect, useState } from 'react';\nimport en from '../../../../localization/en.json';\nimport { getMicroFrontendAttribute } from '../utilities/renderUtilities';\n\ndeclare global {\n type TranslationId = keyof typeof en;\n}\n\ntype Translation = { value: string };\n\ninterface TranslationBase {\n translations: Record<string, Translation>;\n}\n\nconst TranslationContext = createContext<TranslationBase>({} as unknown as TranslationBase);\n\ntype TranslationProp = {\n children: JSX.Element;\n} & TranslationBase;\n\nexport const TranslationProvider = ({ children, translations }: TranslationProp): JSX.Element => {\n const value = { translations };\n return <TranslationContext.Provider value={value}>{children}</TranslationContext.Provider>;\n};\n\nexport const useTranslation = (): {\n translate: (key: TranslationId, data?: Record<string, string | number>) => string;\n translations: Record<string, Translation>;\n} => {\n const { translations } = useContext(TranslationContext);\n\n const translate = useCallback(\n (key: TranslationId, data?: Record<string, string | number>): string => {\n let translation = translations?.[key]?.value || en[key]?.value || key;\n if (data && translation) {\n Object.keys(data)?.forEach((key) => {\n translation = translation.replace(new RegExp(`{${key}}`, 'g'), `${data[key]}`);\n });\n }\n return translation;\n },\n [translations],\n );\n return { translate, translations };\n};\n\nconst languagesToLoad = ['nl', 'en-US', 'de', 'fr', 'it', 'es', 'pt', 'es-MX', 'dev-lang'];\n\nexport const useLoadTranslations = () => {\n const [translations, setTranslations] = useState<{\n loading: boolean;\n translations?: Record<string, { value: string }>;\n }>({ loading: true, translations: {} });\n const languageFromParentDiv = getMicroFrontendAttribute('data-language') || '';\n\n useEffect(() => {\n const fetchJSONData = async () => {\n // en loaded as default fallback already\n const shouldLoadLanguage = languagesToLoad.includes(languageFromParentDiv);\n if (shouldLoadLanguage) {\n import(`../../../../localization/${languageFromParentDiv}.json`)\n .then((response) => response.default) // Access the default export of the module\n .then((text) => {\n setTranslations({ loading: false, translations: text });\n })\n .catch((error) => {\n setTranslations({ loading: false });\n window.fdlogger?.error(`Error while fetching ${languageFromParentDiv || 'en'} language JSON data: ${error.message}`);\n });\n } else {\n setTranslations({ loading: false });\n }\n };\n\n void fetchJSONData();\n }, [languageFromParentDiv]);\n\n return {\n translations: translations.translations || {},\n loading: translations.loading,\n };\n};\n","import { styled } from '@mui/material/styles';\nimport Typography from '@mui/material/Typography';\nimport { useTranslation } from '../../../providers/TranslationProvider';\n\nconst StyledTextContainer = styled('div')(({ theme }) => ({\n marginTop: theme.spacing(2),\n display: 'flex',\n justifyContent: 'center',\n alignItems: 'center',\n}));\n\nconst NotFoundPage = () => {\n const { translate } = useTranslation();\n return (\n <StyledTextContainer>\n <Typography>{translate('Page_Not_Found')}</Typography>\n </StyledTextContainer>\n );\n};\n\nexport default NotFoundPage;\n","import { styled, useTheme } from '@mui/material/styles';\nimport { AppBar, Box, CssBaseline, Drawer, Typography } from '@mui/material';\n\nconst StyledHeader = styled('div')(({ theme }) => ({\n display: 'flex',\n justifyContent: 'center',\n alignItems: 'center',\n backgroundColor: theme.palette.grey[300],\n height: '65px',\n color: theme.palette.text.primary,\n borderBottom: `2px solid ${theme.palette.grey[400]}`,\n}));\n\nconst StyledSidebar = styled('div')(({ theme }) => ({\n display: 'flex',\n justifyContent: 'center',\n alignItems: 'center',\n backgroundColor: theme.palette.grey[300],\n height: '100%',\n color: theme.palette.text.primary,\n}));\n\ntype Props = {\n loadedFromPortal: boolean;\n children: React.ReactNode;\n};\nconst drawerWidth = 198;\n\nconst PortalMock = ({ children, loadedFromPortal }: Props) => {\n const theme = useTheme();\n\n if (loadedFromPortal) {\n return <>{children}</>;\n }\n\n const drawer = (\n <StyledSidebar>\n <Typography sx={{ fontWeight: 'bold' }}>Sidebar</Typography>\n </StyledSidebar>\n );\n\n return (\n <Box sx={{ display: 'flex' }}>\n <CssBaseline />\n <AppBar\n position=\"fixed\"\n sx={{\n width: { sm: `calc(100% - ${drawerWidth}px)` },\n ml: { sm: `${drawerWidth}px` },\n boxShadow: 'none',\n }}\n >\n <StyledHeader>\n <Typography sx={{ fontWeight: 'bold' }}>Header</Typography>\n </StyledHeader>\n </AppBar>\n <Box component=\"nav\" sx={{ width: { sm: drawerWidth }, flexShrink: { sm: 0 } }} aria-label=\"mailbox folders\">\n <Drawer\n variant=\"permanent\"\n sx={{\n display: { xs: 'none', sm: 'block' },\n '& .MuiDrawer-paper': {\n boxSizing: 'border-box',\n width: drawerWidth,\n borderColor: theme.palette.grey[400],\n borderWidth: '2px',\n },\n }}\n open\n >\n {drawer}\n </Drawer>\n </Box>\n <Box component=\"main\" sx={{ flexGrow: 1, width: { sm: `calc(100% - ${drawerWidth}px)`, marginTop: '65px' } }}>\n {children}\n </Box>\n </Box>\n );\n};\n\nexport default PortalMock;\n","import { Suspense, ReactNode } from 'react';\n\nimport CircularProgress from '@mui/material/CircularProgress';\nimport { styled } from '@mui/material/styles';\n\ntype LazyComponentProps = {\n children: ReactNode;\n};\n\nconst StyledLoadingContainer = styled('div')({\n display: 'flex',\n justifyContent: 'center',\n alignItems: 'center',\n});\n\nconst LazyComponent = ({ children }: LazyComponentProps) => (\n <Suspense\n fallback={\n <StyledLoadingContainer>\n <CircularProgress size={56} />\n </StyledLoadingContainer>\n }\n >\n {children}\n </Suspense>\n);\n\nexport default LazyComponent;\n","import { ReactNode } from 'react';\nimport { styled } from '@mui/material/styles';\n\nexport interface ISpacerProps {\n className?: string;\n variant?: 'horizontal' | 'vertical';\n size?: 8 | 16 | 24 | 32 | 40 | 56;\n children?: ReactNode;\n}\n\nconst SpacerDiv = styled('div')<ISpacerProps>(({ size = 8, variant, children }) => {\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n const style: any = {\n padding: children ? `${size}px` : undefined,\n };\n\n if (!children) {\n if (variant === 'horizontal') {\n style.height = `${size}px`;\n } else if (variant === 'vertical') {\n style.width = `${size}px`;\n }\n } else {\n if (variant === 'horizontal') {\n style.margin = `${size}px 0`;\n } else if (variant === 'vertical') {\n style.margin = `0 ${size}px`;\n }\n }\n\n return style;\n});\n\nconst Spacer = ({ className, variant, size = 8, children }: ISpacerProps) => {\n return (\n <SpacerDiv className={className} variant={variant} size={size}>\n {children}\n </SpacerDiv>\n );\n};\n\nexport default Spacer;\n"],"names":["createTheme","createContext","useContext","useCallback","styled","_jsx","useTheme","_Fragment","Typography","_jsxs","Box","CssBaseline","AppBar","Drawer","Suspense"],"mappings":"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"}