@red-hat-developer-hub/backstage-plugin-dynamic-home-page 1.8.0 → 1.9.1

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.
package/CHANGELOG.md CHANGED
@@ -1,5 +1,17 @@
1
1
  # @red-hat-developer-hub/backstage-plugin-dynamic-home-page
2
2
 
3
+ ## 1.9.1
4
+
5
+ ### Patch Changes
6
+
7
+ - dd5350f: French translation updated
8
+
9
+ ## 1.9.0
10
+
11
+ ### Minor Changes
12
+
13
+ - 1e6b861: Add customizable homepage functionality with drag, drop, resize, and widget management capabilities
14
+
3
15
  ## 1.8.0
4
16
 
5
17
  ### Minor Changes
@@ -10,22 +10,22 @@ dynamicPlugins:
10
10
  importName: OnboardingSection
11
11
  config:
12
12
  layouts:
13
- xl: { w: 12, h: 5 }
14
- lg: { w: 12, h: 5 }
15
- md: { w: 12, h: 5 }
16
- sm: { w: 12, h: 5 }
17
- xs: { w: 12, h: 7 }
18
- xxs: { w: 12, h: 13 }
13
+ xl: { w: 12, h: 6 }
14
+ lg: { w: 12, h: 6 }
15
+ md: { w: 12, h: 7 }
16
+ sm: { w: 12, h: 8 }
17
+ xs: { w: 12, h: 9 }
18
+ xxs: { w: 12, h: 14 }
19
19
  - mountPoint: home.page/cards
20
20
  importName: EntitySection
21
21
  config:
22
22
  layouts:
23
- xl: { w: 12, h: 6 }
24
- lg: { w: 12, h: 6 }
25
- md: { w: 12, h: 6 }
26
- sm: { w: 12, h: 6 }
27
- xs: { w: 12, h: 10 }
28
- xxs: { w: 12, h: 14.5 }
23
+ xl: { w: 12, h: 7 }
24
+ lg: { w: 12, h: 7 }
25
+ md: { w: 12, h: 8 }
26
+ sm: { w: 12, h: 9 }
27
+ xs: { w: 12, h: 11 }
28
+ xxs: { w: 12, h: 15 }
29
29
  - mountPoint: home.page/cards
30
30
  importName: TemplateSection
31
31
  config:
@@ -1,5 +1,7 @@
1
- import { jsx } from 'react/jsx-runtime';
1
+ import { jsx, jsxs, Fragment } from 'react/jsx-runtime';
2
2
  import { useMemo } from 'react';
3
+ import GlobalStyles from '@mui/material/GlobalStyles';
4
+ import { useTheme } from '@mui/material/styles';
3
5
  import { ErrorBoundary } from '@backstage/core-components';
4
6
  import { CustomHomepageGrid } from '@backstage/plugin-home';
5
7
  import { makeStyles } from 'tss-react/mui';
@@ -19,6 +21,7 @@ const useStyles = makeStyles()({
19
21
  });
20
22
  const CustomizableGrid = (props) => {
21
23
  const { classes } = useStyles();
24
+ const theme = useTheme();
22
25
  const cards = useMemo(() => {
23
26
  return props.mountPoints.map((mountPoint, index) => {
24
27
  const id = (index + 1).toString();
@@ -33,8 +36,8 @@ const CustomizableGrid = (props) => {
33
36
  y: layout.y ?? 0,
34
37
  w: layout.w ?? 12,
35
38
  h: layout.h ?? 4,
36
- isDraggable: false,
37
- isResizable: false
39
+ isDraggable: true,
40
+ isResizable: true
38
41
  };
39
42
  }
40
43
  } else {
@@ -45,8 +48,8 @@ const CustomizableGrid = (props) => {
45
48
  y: 0,
46
49
  w: 12,
47
50
  h: 4,
48
- isDraggable: false,
49
- isResizable: false
51
+ isDraggable: true,
52
+ isResizable: true
50
53
  };
51
54
  });
52
55
  }
@@ -71,7 +74,46 @@ const CustomizableGrid = (props) => {
71
74
  card.id
72
75
  ));
73
76
  }, [cards, classes.cardWrapper]);
74
- return /* @__PURE__ */ jsx(CustomHomepageGrid, { children });
77
+ const defaultConfig = useMemo(() => {
78
+ if (!props.mountPoints || props.mountPoints.length === 0) {
79
+ return [];
80
+ }
81
+ return props.mountPoints.map((mountPoint, index) => {
82
+ const layout = mountPoint.config?.layouts?.xl || {};
83
+ return {
84
+ component: /* @__PURE__ */ jsx(mountPoint.Component, { ...mountPoint.config?.props || {} }),
85
+ x: layout.x ?? 0,
86
+ y: layout.y ?? index * 5,
87
+ width: layout.w ?? 12,
88
+ height: layout.h ?? 4,
89
+ movable: true,
90
+ resizable: true,
91
+ draggable: true,
92
+ deletable: true
93
+ };
94
+ });
95
+ }, [props.mountPoints]);
96
+ return /* @__PURE__ */ jsxs(Fragment, { children: [
97
+ /* @__PURE__ */ jsx(
98
+ GlobalStyles,
99
+ {
100
+ styles: {
101
+ '[class*="makeStyles-settingsOverlay"]': {
102
+ backgroundColor: theme.palette.mode === "dark" ? "rgba(20, 20, 20, 0.95) !important" : "rgba(40, 40, 40, 0.93) !important"
103
+ }
104
+ }
105
+ }
106
+ ),
107
+ /* @__PURE__ */ jsx(
108
+ CustomHomepageGrid,
109
+ {
110
+ config: defaultConfig,
111
+ preventCollision: false,
112
+ compactType: "vertical",
113
+ children
114
+ }
115
+ )
116
+ ] });
75
117
  };
76
118
 
77
119
  export { CustomizableGrid };
@@ -1 +1 @@
1
- {"version":3,"file":"CustomizableGrid.esm.js","sources":["../../src/components/CustomizableGrid.tsx"],"sourcesContent":["/*\n * Copyright Red Hat, Inc.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\n// This complete read-only home page grid picks up the idea and styles from\n// https://github.com/backstage/backstage/blob/master/plugins/home\n// Esp. from the CustomHomepageGrid component:\n// https://github.com/backstage/backstage/blob/master/plugins/home/src/components/CustomHomepage/CustomHomepageGrid.tsx\n// but without the drag and drop functionality.\n\nimport type { ComponentType } from 'react';\n\nimport { useMemo } from 'react';\nimport { Layout } from 'react-grid-layout';\n\nimport { ErrorBoundary } from '@backstage/core-components';\nimport { CustomHomepageGrid } from '@backstage/plugin-home';\n\nimport { makeStyles } from 'tss-react/mui';\n\n// Removes the doubled scrollbar\nimport 'react-grid-layout/css/styles.css';\n\nimport { HomePageCardMountPoint } from '../types';\n\ninterface Card {\n id: string;\n Component: ComponentType<any>;\n props?: Record<string, any>;\n layouts: Record<string, Layout>;\n}\n\nconst useStyles = makeStyles()({\n // Make card content scrollable (so that cards don't overlap)\n cardWrapper: {\n '& > div[class*=\"MuiCard-root\"]': {\n width: '100%',\n height: '100%',\n },\n '& div[class*=\"MuiCardContent-root\"]': {\n overflow: 'auto',\n },\n },\n});\n\n/**\n * @public\n */\nexport interface CustomizableGridProps {\n mountPoints: HomePageCardMountPoint[];\n breakpoints?: Record<string, number>;\n cols?: Record<string, number>;\n}\n\n/**\n * @public\n */\nexport const CustomizableGrid = (props: CustomizableGridProps) => {\n const { classes } = useStyles();\n\n const cards = useMemo<Card[]>(() => {\n return props.mountPoints.map<Card>((mountPoint, index) => {\n const id = (index + 1).toString();\n const layouts: Record<string, Layout> = {};\n\n if (mountPoint.config?.layouts) {\n for (const [breakpoint, layout] of Object.entries(\n mountPoint.config.layouts,\n )) {\n layouts[breakpoint] = {\n i: id,\n x: layout.x ?? 0,\n y: layout.y ?? 0,\n w: layout.w ?? 12,\n h: layout.h ?? 4,\n isDraggable: false,\n isResizable: false,\n };\n }\n } else {\n // Default layout for cards without a layout configuration\n ['xl', 'lg', 'md', 'sm', 'xs', 'xxs'].forEach(breakpoint => {\n layouts[breakpoint] = {\n i: id,\n x: 0,\n y: 0,\n w: 12,\n h: 4,\n isDraggable: false,\n isResizable: false,\n };\n });\n }\n\n return {\n id,\n Component: mountPoint.Component,\n props: mountPoint.config?.props,\n layouts,\n };\n });\n }, [props.mountPoints]);\n\n const children = useMemo(() => {\n return cards.map(card => (\n <div\n key={card.id}\n data-cardid={card.id}\n data-testid={`home-page card ${card.id}`}\n data-layout={JSON.stringify(card.layouts)}\n className={classes.cardWrapper}\n >\n <ErrorBoundary>\n <card.Component {...card.props} />\n </ErrorBoundary>\n </div>\n ));\n }, [cards, classes.cardWrapper]);\n\n return <CustomHomepageGrid>{children}</CustomHomepageGrid>;\n};\n"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"CustomizableGrid.esm.js","sources":["../../src/components/CustomizableGrid.tsx"],"sourcesContent":["/*\n * Copyright Red Hat, Inc.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\n// This complete read-only home page grid picks up the idea and styles from\n// https://github.com/backstage/backstage/blob/master/plugins/home\n// Esp. from the CustomHomepageGrid component:\n// https://github.com/backstage/backstage/blob/master/plugins/home/src/components/CustomHomepage/CustomHomepageGrid.tsx\n// but without the drag and drop functionality.\n\nimport type { ComponentType } from 'react';\n\nimport { useMemo } from 'react';\nimport { Layout } from 'react-grid-layout';\nimport GlobalStyles from '@mui/material/GlobalStyles';\nimport { useTheme } from '@mui/material/styles';\n\nimport { ErrorBoundary } from '@backstage/core-components';\nimport { CustomHomepageGrid } from '@backstage/plugin-home';\n\nimport { makeStyles } from 'tss-react/mui';\n\n// Removes the doubled scrollbar\nimport 'react-grid-layout/css/styles.css';\n\nimport { HomePageCardMountPoint } from '../types';\n\ninterface Card {\n id: string;\n Component: ComponentType<any>;\n props?: Record<string, any>;\n layouts: Record<string, Layout>;\n}\n\nconst useStyles = makeStyles()({\n // Make card content scrollable (so that cards don't overlap)\n cardWrapper: {\n '& > div[class*=\"MuiCard-root\"]': {\n width: '100%',\n height: '100%',\n },\n '& div[class*=\"MuiCardContent-root\"]': {\n overflow: 'auto',\n },\n },\n});\n\n/**\n * @public\n */\nexport interface CustomizableGridProps {\n mountPoints: HomePageCardMountPoint[];\n breakpoints?: Record<string, number>;\n cols?: Record<string, number>;\n}\n\n/**\n * @public\n */\nexport const CustomizableGrid = (props: CustomizableGridProps) => {\n const { classes } = useStyles();\n const theme = useTheme();\n\n const cards = useMemo<Card[]>(() => {\n return props.mountPoints.map<Card>((mountPoint, index) => {\n const id = (index + 1).toString();\n const layouts: Record<string, Layout> = {};\n\n if (mountPoint.config?.layouts) {\n for (const [breakpoint, layout] of Object.entries(\n mountPoint.config.layouts,\n )) {\n layouts[breakpoint] = {\n i: id,\n x: layout.x ?? 0,\n y: layout.y ?? 0,\n w: layout.w ?? 12,\n h: layout.h ?? 4,\n isDraggable: true,\n isResizable: true,\n };\n }\n } else {\n // Default layout for cards without a layout configuration\n ['xl', 'lg', 'md', 'sm', 'xs', 'xxs'].forEach(breakpoint => {\n layouts[breakpoint] = {\n i: id,\n x: 0,\n y: 0,\n w: 12,\n h: 4,\n isDraggable: true,\n isResizable: true,\n };\n });\n }\n\n return {\n id,\n Component: mountPoint.Component,\n props: mountPoint.config?.props,\n layouts,\n };\n });\n }, [props.mountPoints]);\n\n const children = useMemo(() => {\n return cards.map(card => (\n <div\n key={card.id}\n data-cardid={card.id}\n data-testid={`home-page card ${card.id}`}\n data-layout={JSON.stringify(card.layouts)}\n className={classes.cardWrapper}\n >\n <ErrorBoundary>\n <card.Component {...card.props} />\n </ErrorBoundary>\n </div>\n ));\n }, [cards, classes.cardWrapper]);\n\n // Create default layout configuration for initial display AND restore defaults functionality\n const defaultConfig = useMemo(() => {\n if (!props.mountPoints || props.mountPoints.length === 0) {\n return [];\n }\n\n return props.mountPoints.map((mountPoint, index) => {\n const layout = mountPoint.config?.layouts?.xl || {};\n\n return {\n component: (\n <mountPoint.Component {...(mountPoint.config?.props || {})} />\n ),\n x: layout.x ?? 0,\n y: layout.y ?? index * 5,\n width: layout.w ?? 12,\n height: layout.h ?? 4,\n movable: true,\n resizable: true,\n draggable: true,\n deletable: true,\n };\n });\n }, [props.mountPoints]);\n\n return (\n <>\n <GlobalStyles\n styles={{\n '[class*=\"makeStyles-settingsOverlay\"]': {\n backgroundColor:\n theme.palette.mode === 'dark'\n ? 'rgba(20, 20, 20, 0.95) !important'\n : 'rgba(40, 40, 40, 0.93) !important',\n },\n }}\n />\n <CustomHomepageGrid\n config={defaultConfig}\n preventCollision={false}\n compactType=\"vertical\"\n >\n {children}\n </CustomHomepageGrid>\n </>\n );\n};\n"],"names":[],"mappings":"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"}
@@ -0,0 +1,29 @@
1
+ const defaultLayouts = {
2
+ onboarding: {
3
+ xl: { w: 12, h: 6 },
4
+ lg: { w: 12, h: 6 },
5
+ md: { w: 12, h: 7 },
6
+ sm: { w: 12, h: 8 },
7
+ xs: { w: 12, h: 9 },
8
+ xxs: { w: 12, h: 14 }
9
+ },
10
+ entity: {
11
+ xl: { w: 12, h: 7 },
12
+ lg: { w: 12, h: 7 },
13
+ md: { w: 12, h: 8 },
14
+ sm: { w: 12, h: 9 },
15
+ xs: { w: 12, h: 11 },
16
+ xxs: { w: 12, h: 15 }
17
+ },
18
+ template: {
19
+ xl: { w: 12, h: 5 },
20
+ lg: { w: 12, h: 5 },
21
+ md: { w: 12, h: 5 },
22
+ sm: { w: 12, h: 5 },
23
+ xs: { w: 12, h: 7.5 },
24
+ xxs: { w: 12, h: 13.5 }
25
+ }
26
+ };
27
+
28
+ export { defaultLayouts };
29
+ //# sourceMappingURL=defaults.esm.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"defaults.esm.js","sources":["../src/defaults.ts"],"sourcesContent":["/*\n * Copyright Red Hat, Inc.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nexport type Breakpoints = 'xl' | 'lg' | 'md' | 'sm' | 'xs' | 'xxs';\n\n// prettier-ignore\nexport const commonWidths: Record<string, Record<Breakpoints, number>> = {\n small: { xl: 2, lg: 2, md: 2, sm: 3, xs: 4, xxs: 2 },\n half: { xl: 2, lg: 2, md: 2, sm: 3, xs: 4, xxs: 2 },\n '1/2': { xl: 2, lg: 2, md: 2, sm: 3, xs: 4, xxs: 2 },\n '1/3': { xl: 2, lg: 2, md: 2, sm: 3, xs: 4, xxs: 2 },\n '2/2': { xl: 2, lg: 2, md: 2, sm: 3, xs: 4, xxs: 2 },\n full: { xl: 2, lg: 2, md: 2, sm: 3, xs: 4, xxs: 2 },\n};\n\n// prettier-ignore\nexport const commonHeights: Record<string, Record<Breakpoints, number>> = {\n tiny: { xl: 1, lg: 1, md: 1, sm: 1, xs: 1, xxs: 1 },\n small: { xl: 2, lg: 2, md: 2, sm: 2, xs: 2, xxs: 2 },\n medium: { xl: 4, lg: 4, md: 4, sm: 4, xs: 4, xxs: 4 },\n large: { xl: 6, lg: 6, md: 6, sm: 6, xs: 6, xxs: 6 },\n xlarge: { xl: 10, lg: 6, md: 6, sm: 6, xs: 6, xxs: 6 },\n xxlarge: { xl: 14, lg: 6, md: 6, sm: 6, xs: 6, xxs: 6 },\n};\n\n/**\n * Default layout configurations for homepage cards\n * @public\n */\nexport const defaultLayouts = {\n onboarding: {\n xl: { w: 12, h: 6 },\n lg: { w: 12, h: 6 },\n md: { w: 12, h: 7 },\n sm: { w: 12, h: 8 },\n xs: { w: 12, h: 9 },\n xxs: { w: 12, h: 14 },\n },\n entity: {\n xl: { w: 12, h: 7 },\n lg: { w: 12, h: 7 },\n md: { w: 12, h: 8 },\n sm: { w: 12, h: 9 },\n xs: { w: 12, h: 11 },\n xxs: { w: 12, h: 15 },\n },\n template: {\n xl: { w: 12, h: 5 },\n lg: { w: 12, h: 5 },\n md: { w: 12, h: 5 },\n sm: { w: 12, h: 5 },\n xs: { w: 12, h: 7.5 },\n xxs: { w: 12, h: 13.5 },\n },\n};\n"],"names":[],"mappings":"AA0CO,MAAM,cAAiB,GAAA;AAAA,EAC5B,UAAY,EAAA;AAAA,IACV,EAAI,EAAA,EAAE,CAAG,EAAA,EAAA,EAAI,GAAG,CAAE,EAAA;AAAA,IAClB,EAAI,EAAA,EAAE,CAAG,EAAA,EAAA,EAAI,GAAG,CAAE,EAAA;AAAA,IAClB,EAAI,EAAA,EAAE,CAAG,EAAA,EAAA,EAAI,GAAG,CAAE,EAAA;AAAA,IAClB,EAAI,EAAA,EAAE,CAAG,EAAA,EAAA,EAAI,GAAG,CAAE,EAAA;AAAA,IAClB,EAAI,EAAA,EAAE,CAAG,EAAA,EAAA,EAAI,GAAG,CAAE,EAAA;AAAA,IAClB,GAAK,EAAA,EAAE,CAAG,EAAA,EAAA,EAAI,GAAG,EAAG;AAAA,GACtB;AAAA,EACA,MAAQ,EAAA;AAAA,IACN,EAAI,EAAA,EAAE,CAAG,EAAA,EAAA,EAAI,GAAG,CAAE,EAAA;AAAA,IAClB,EAAI,EAAA,EAAE,CAAG,EAAA,EAAA,EAAI,GAAG,CAAE,EAAA;AAAA,IAClB,EAAI,EAAA,EAAE,CAAG,EAAA,EAAA,EAAI,GAAG,CAAE,EAAA;AAAA,IAClB,EAAI,EAAA,EAAE,CAAG,EAAA,EAAA,EAAI,GAAG,CAAE,EAAA;AAAA,IAClB,EAAI,EAAA,EAAE,CAAG,EAAA,EAAA,EAAI,GAAG,EAAG,EAAA;AAAA,IACnB,GAAK,EAAA,EAAE,CAAG,EAAA,EAAA,EAAI,GAAG,EAAG;AAAA,GACtB;AAAA,EACA,QAAU,EAAA;AAAA,IACR,EAAI,EAAA,EAAE,CAAG,EAAA,EAAA,EAAI,GAAG,CAAE,EAAA;AAAA,IAClB,EAAI,EAAA,EAAE,CAAG,EAAA,EAAA,EAAI,GAAG,CAAE,EAAA;AAAA,IAClB,EAAI,EAAA,EAAE,CAAG,EAAA,EAAA,EAAI,GAAG,CAAE,EAAA;AAAA,IAClB,EAAI,EAAA,EAAE,CAAG,EAAA,EAAA,EAAI,GAAG,CAAE,EAAA;AAAA,IAClB,EAAI,EAAA,EAAE,CAAG,EAAA,EAAA,EAAI,GAAG,GAAI,EAAA;AAAA,IACpB,GAAK,EAAA,EAAE,CAAG,EAAA,EAAA,EAAI,GAAG,IAAK;AAAA;AAE1B;;;;"}
package/dist/index.d.ts CHANGED
@@ -275,4 +275,89 @@ declare const homepageTranslationRef: _backstage_core_plugin_api_alpha.Translati
275
275
  */
276
276
  declare const homepageTranslations: _backstage_core_plugin_api_alpha.TranslationResource<"plugin.homepage">;
277
277
 
278
- export { Breakpoint, CatalogStarredEntitiesCard, DynamicCustomizableHomePage, type DynamicCustomizableHomePageProps, DynamicHomePage, type DynamicHomePageProps, EntitySection, FeaturedDocsCard, Headline, type HeadlineProps, type HomePageCardMountPoint, type HomePageCardMountPointConfig, JokeCard, type Layout, type LocalClockProps, Markdown, MarkdownCard, type MarkdownCardProps, type MarkdownProps, OnboardingSection, Placeholder, type PlaceholderProps, QuickAccessCard, type QuickAccessCardProps, RecentlyVisitedCard, SearchBar, type SearchBarProps, TemplateSection, TopVisitedCard, VisitListener, WorldClock, type WorldClockProps, dynamicHomePagePlugin, homepageTranslationRef, homepageTranslations };
278
+ /**
279
+ * Default layout configurations for homepage cards
280
+ * @public
281
+ */
282
+ declare const defaultLayouts: {
283
+ onboarding: {
284
+ xl: {
285
+ w: number;
286
+ h: number;
287
+ };
288
+ lg: {
289
+ w: number;
290
+ h: number;
291
+ };
292
+ md: {
293
+ w: number;
294
+ h: number;
295
+ };
296
+ sm: {
297
+ w: number;
298
+ h: number;
299
+ };
300
+ xs: {
301
+ w: number;
302
+ h: number;
303
+ };
304
+ xxs: {
305
+ w: number;
306
+ h: number;
307
+ };
308
+ };
309
+ entity: {
310
+ xl: {
311
+ w: number;
312
+ h: number;
313
+ };
314
+ lg: {
315
+ w: number;
316
+ h: number;
317
+ };
318
+ md: {
319
+ w: number;
320
+ h: number;
321
+ };
322
+ sm: {
323
+ w: number;
324
+ h: number;
325
+ };
326
+ xs: {
327
+ w: number;
328
+ h: number;
329
+ };
330
+ xxs: {
331
+ w: number;
332
+ h: number;
333
+ };
334
+ };
335
+ template: {
336
+ xl: {
337
+ w: number;
338
+ h: number;
339
+ };
340
+ lg: {
341
+ w: number;
342
+ h: number;
343
+ };
344
+ md: {
345
+ w: number;
346
+ h: number;
347
+ };
348
+ sm: {
349
+ w: number;
350
+ h: number;
351
+ };
352
+ xs: {
353
+ w: number;
354
+ h: number;
355
+ };
356
+ xxs: {
357
+ w: number;
358
+ h: number;
359
+ };
360
+ };
361
+ };
362
+
363
+ export { Breakpoint, CatalogStarredEntitiesCard, DynamicCustomizableHomePage, type DynamicCustomizableHomePageProps, DynamicHomePage, type DynamicHomePageProps, EntitySection, FeaturedDocsCard, Headline, type HeadlineProps, type HomePageCardMountPoint, type HomePageCardMountPointConfig, JokeCard, type Layout, type LocalClockProps, Markdown, MarkdownCard, type MarkdownCardProps, type MarkdownProps, OnboardingSection, Placeholder, type PlaceholderProps, QuickAccessCard, type QuickAccessCardProps, RecentlyVisitedCard, SearchBar, type SearchBarProps, TemplateSection, TopVisitedCard, VisitListener, WorldClock, type WorldClockProps, defaultLayouts, dynamicHomePagePlugin, homepageTranslationRef, homepageTranslations };
package/dist/index.esm.js CHANGED
@@ -1,4 +1,5 @@
1
1
  export { CatalogStarredEntitiesCard, DynamicCustomizableHomePage, DynamicHomePage, EntitySection, FeaturedDocsCard, Headline, JokeCard, Markdown, MarkdownCard, OnboardingSection, Placeholder, QuickAccessCard, RecentlyVisitedCard, SearchBar, TemplateSection, TopVisitedCard, VisitListener, WorldClock, dynamicHomePagePlugin } from './plugin.esm.js';
2
2
  export { homepageTranslations } from './translations/index.esm.js';
3
+ export { defaultLayouts } from './defaults.esm.js';
3
4
  export { homepageTranslationRef } from './translations/ref.esm.js';
4
5
  //# sourceMappingURL=index.esm.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.esm.js","sources":[],"sourcesContent":[],"names":[],"mappings":";;"}
1
+ {"version":3,"file":"index.esm.js","sources":[],"sourcesContent":[],"names":[],"mappings":";;;"}
@@ -4,47 +4,47 @@ import { homepageTranslationRef } from './ref.esm.js';
4
4
  const homepageTranslationFr = createTranslationMessages({
5
5
  ref: homepageTranslationRef,
6
6
  messages: {
7
- "header.welcome": "Bon retour !",
8
- "header.welcomePersonalized": "Bon retour, {{name}} !",
9
- "header.local": "Local",
7
+ "entities.close": "fermer",
8
+ "entities.description": "Parcourez les syst\xE8mes, les composants, les ressources et les API disponibles dans votre organisation.",
9
+ "entities.empty": "Aucun catalogue de logiciels n'a encore \xE9t\xE9 ajout\xE9",
10
+ "entities.emptyDescription": "Une fois les catalogues de logiciels ajout\xE9s, cet espace pr\xE9sentera du contenu pertinent adapt\xE9 \xE0 votre exp\xE9rience.",
11
+ "entities.error": "Erreur inconnue",
12
+ "entities.fetchError": "Impossible de r\xE9cup\xE9rer les donn\xE9es.",
13
+ "entities.register": "Enregistrer un composant",
14
+ "entities.title": "Explorez votre catalogue de logiciels",
15
+ "entities.viewAll": "Afficher toutes les {{count}} entit\xE9s du catalogue",
16
+ "featuredDocs.learnMore": " En savoir plus",
17
+ "header.local": "Locale",
18
+ "header.welcome": "Content de vous revoir!",
19
+ "header.welcomePersonalized": "Bienvenue {{name}}\xA0!",
10
20
  "homePage.empty": "Aucune carte de page d'accueil (points de montage) configur\xE9e ou trouv\xE9e.",
11
- "search.placeholder": "Rechercher",
12
- "quickAccess.title": "Acc\xE8s rapide",
13
- "quickAccess.fetchError": "Impossible de r\xE9cup\xE9rer les donn\xE9es.",
21
+ "onboarding.explore.ariaLabel": "Acc\xE9der au catalogue",
22
+ "onboarding.explore.buttonText": "Acc\xE9der au catalogue",
23
+ "onboarding.explore.description": "Explorez les composants, les API et les mod\xE8les.",
24
+ "onboarding.explore.title": "Explorez",
25
+ "onboarding.getStarted.ariaLabel": "Lire la documentation (s'ouvre dans un nouvel onglet)",
26
+ "onboarding.getStarted.buttonText": "Lire la documentation",
27
+ "onboarding.getStarted.description": "En savoir plus sur Red Hat Developer Hub.",
28
+ "onboarding.getStarted.title": "Commencer",
29
+ "onboarding.greeting.goodAfternoon": "Bon apr\xE8s-midi",
30
+ "onboarding.greeting.goodEvening": "Bonne soir\xE9e",
31
+ "onboarding.greeting.goodMorning": "Bonjour",
32
+ "onboarding.guest": "Invit\xE9",
33
+ "onboarding.learn.ariaLabel": "Acc\xE9der aux parcours d'apprentissage",
34
+ "onboarding.learn.buttonText": "Acc\xE9der aux parcours d'apprentissage",
35
+ "onboarding.learn.description": "Explorer et d\xE9velopper de nouvelles comp\xE9tences.",
36
+ "onboarding.learn.title": "Apprendre",
14
37
  "quickAccess.error": "Erreur inconnue",
15
- "featuredDocs.learnMore": " En savoir plus",
16
- "templates.title": "Explorer les mod\xE8les",
17
- "templates.fetchError": "Impossible de r\xE9cup\xE9rer les donn\xE9es.",
18
- "templates.error": "Erreur inconnue",
38
+ "quickAccess.fetchError": "Impossible de r\xE9cup\xE9rer les donn\xE9es.",
39
+ "quickAccess.title": "Acc\xE8s rapide",
40
+ "search.placeholder": "Rechercher",
19
41
  "templates.empty": "Aucun mod\xE8le ajout\xE9 pour le moment",
20
42
  "templates.emptyDescription": "Une fois les mod\xE8les ajout\xE9s, cet espace pr\xE9sentera du contenu pertinent adapt\xE9 \xE0 votre exp\xE9rience.",
43
+ "templates.error": "Erreur inconnue",
44
+ "templates.fetchError": "Impossible de r\xE9cup\xE9rer les donn\xE9es.",
21
45
  "templates.register": "Enregistrer un mod\xE8le",
22
- "templates.viewAll": "Voir tous les {{count}} mod\xE8les",
23
- "onboarding.greeting.goodMorning": "Bonjour",
24
- "onboarding.greeting.goodAfternoon": "Bon apr\xE8s-midi",
25
- "onboarding.greeting.goodEvening": "Bonsoir",
26
- "onboarding.guest": "Invit\xE9",
27
- "onboarding.getStarted.title": "Commencer",
28
- "onboarding.getStarted.description": "D\xE9couvrez Red Hat Developer Hub.",
29
- "onboarding.getStarted.buttonText": "Lire la documentation",
30
- "onboarding.getStarted.ariaLabel": "Lire la documentation (ouvre dans un nouvel onglet)",
31
- "onboarding.explore.title": "Explorer",
32
- "onboarding.explore.description": "Explorez les composants, APIs et mod\xE8les.",
33
- "onboarding.explore.buttonText": "Aller au catalogue",
34
- "onboarding.explore.ariaLabel": "Aller au catalogue",
35
- "onboarding.learn.title": "Apprendre",
36
- "onboarding.learn.description": "Explorez et d\xE9veloppez de nouvelles comp\xE9tences.",
37
- "onboarding.learn.buttonText": "Aller aux parcours d'apprentissage",
38
- "onboarding.learn.ariaLabel": "Aller aux parcours d'apprentissage",
39
- "entities.title": "Explorez votre catalogue logiciel",
40
- "entities.fetchError": "Impossible de r\xE9cup\xE9rer les donn\xE9es.",
41
- "entities.error": "Erreur inconnue",
42
- "entities.description": "Parcourez les syst\xE8mes, composants, ressources et APIs disponibles dans votre organisation.",
43
- "entities.close": "fermer",
44
- "entities.empty": "Aucun catalogue logiciel ajout\xE9 pour le moment",
45
- "entities.emptyDescription": "Une fois les catalogues logiciels ajout\xE9s, cet espace pr\xE9sentera du contenu pertinent adapt\xE9 \xE0 votre exp\xE9rience.",
46
- "entities.register": "Enregistrer un composant",
47
- "entities.viewAll": "Voir toutes les {{count}} entit\xE9s du catalogue"
46
+ "templates.title": "Explorer les mod\xE8les",
47
+ "templates.viewAll": "Afficher tous les {{count}} mod\xE8les"
48
48
  }
49
49
  });
50
50
 
@@ -1 +1 @@
1
- {"version":3,"file":"fr.esm.js","sources":["../../src/translations/fr.ts"],"sourcesContent":["/*\n * Copyright Red Hat, Inc.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport { createTranslationMessages } from '@backstage/core-plugin-api/alpha';\nimport { homepageTranslationRef } from './ref';\n\n/**\n * French translation for Homepage.\n * @public\n */\nconst homepageTranslationFr = createTranslationMessages({\n ref: homepageTranslationRef,\n messages: {\n 'header.welcome': 'Bon retour !',\n 'header.welcomePersonalized': 'Bon retour, {{name}} !',\n 'header.local': 'Local',\n 'homePage.empty':\n \"Aucune carte de page d'accueil (points de montage) configurée ou trouvée.\",\n 'search.placeholder': 'Rechercher',\n 'quickAccess.title': 'Accès rapide',\n 'quickAccess.fetchError': 'Impossible de récupérer les données.',\n 'quickAccess.error': 'Erreur inconnue',\n 'featuredDocs.learnMore': ' En savoir plus',\n 'templates.title': 'Explorer les modèles',\n 'templates.fetchError': 'Impossible de récupérer les données.',\n 'templates.error': 'Erreur inconnue',\n 'templates.empty': 'Aucun modèle ajouté pour le moment',\n 'templates.emptyDescription':\n 'Une fois les modèles ajoutés, cet espace présentera du contenu pertinent adapté à votre expérience.',\n 'templates.register': 'Enregistrer un modèle',\n 'templates.viewAll': 'Voir tous les {{count}} modèles',\n 'onboarding.greeting.goodMorning': 'Bonjour',\n 'onboarding.greeting.goodAfternoon': 'Bon après-midi',\n 'onboarding.greeting.goodEvening': 'Bonsoir',\n 'onboarding.guest': 'Invité',\n 'onboarding.getStarted.title': 'Commencer',\n 'onboarding.getStarted.description': 'Découvrez Red Hat Developer Hub.',\n 'onboarding.getStarted.buttonText': 'Lire la documentation',\n 'onboarding.getStarted.ariaLabel':\n 'Lire la documentation (ouvre dans un nouvel onglet)',\n 'onboarding.explore.title': 'Explorer',\n 'onboarding.explore.description':\n 'Explorez les composants, APIs et modèles.',\n 'onboarding.explore.buttonText': 'Aller au catalogue',\n 'onboarding.explore.ariaLabel': 'Aller au catalogue',\n 'onboarding.learn.title': 'Apprendre',\n 'onboarding.learn.description':\n 'Explorez et développez de nouvelles compétences.',\n 'onboarding.learn.buttonText': \"Aller aux parcours d'apprentissage\",\n 'onboarding.learn.ariaLabel': \"Aller aux parcours d'apprentissage\",\n 'entities.title': 'Explorez votre catalogue logiciel',\n 'entities.fetchError': 'Impossible de récupérer les données.',\n 'entities.error': 'Erreur inconnue',\n 'entities.description':\n 'Parcourez les systèmes, composants, ressources et APIs disponibles dans votre organisation.',\n 'entities.close': 'fermer',\n 'entities.empty': 'Aucun catalogue logiciel ajouté pour le moment',\n 'entities.emptyDescription':\n 'Une fois les catalogues logiciels ajoutés, cet espace présentera du contenu pertinent adapté à votre expérience.',\n 'entities.register': 'Enregistrer un composant',\n 'entities.viewAll': 'Voir toutes les {{count}} entités du catalogue',\n },\n});\n\nexport default homepageTranslationFr;\n"],"names":[],"mappings":";;;AAuBA,MAAM,wBAAwB,yBAA0B,CAAA;AAAA,EACtD,GAAK,EAAA,sBAAA;AAAA,EACL,QAAU,EAAA;AAAA,IACR,gBAAkB,EAAA,cAAA;AAAA,IAClB,4BAA8B,EAAA,wBAAA;AAAA,IAC9B,cAAgB,EAAA,OAAA;AAAA,IAChB,gBACE,EAAA,iFAAA;AAAA,IACF,oBAAsB,EAAA,YAAA;AAAA,IACtB,mBAAqB,EAAA,iBAAA;AAAA,IACrB,wBAA0B,EAAA,+CAAA;AAAA,IAC1B,mBAAqB,EAAA,iBAAA;AAAA,IACrB,wBAA0B,EAAA,iBAAA;AAAA,IAC1B,iBAAmB,EAAA,yBAAA;AAAA,IACnB,sBAAwB,EAAA,+CAAA;AAAA,IACxB,iBAAmB,EAAA,iBAAA;AAAA,IACnB,iBAAmB,EAAA,0CAAA;AAAA,IACnB,4BACE,EAAA,uHAAA;AAAA,IACF,oBAAsB,EAAA,0BAAA;AAAA,IACtB,mBAAqB,EAAA,oCAAA;AAAA,IACrB,iCAAmC,EAAA,SAAA;AAAA,IACnC,mCAAqC,EAAA,mBAAA;AAAA,IACrC,iCAAmC,EAAA,SAAA;AAAA,IACnC,kBAAoB,EAAA,WAAA;AAAA,IACpB,6BAA+B,EAAA,WAAA;AAAA,IAC/B,mCAAqC,EAAA,qCAAA;AAAA,IACrC,kCAAoC,EAAA,uBAAA;AAAA,IACpC,iCACE,EAAA,qDAAA;AAAA,IACF,0BAA4B,EAAA,UAAA;AAAA,IAC5B,gCACE,EAAA,8CAAA;AAAA,IACF,+BAAiC,EAAA,oBAAA;AAAA,IACjC,8BAAgC,EAAA,oBAAA;AAAA,IAChC,wBAA0B,EAAA,WAAA;AAAA,IAC1B,8BACE,EAAA,wDAAA;AAAA,IACF,6BAA+B,EAAA,oCAAA;AAAA,IAC/B,4BAA8B,EAAA,oCAAA;AAAA,IAC9B,gBAAkB,EAAA,mCAAA;AAAA,IAClB,qBAAuB,EAAA,+CAAA;AAAA,IACvB,gBAAkB,EAAA,iBAAA;AAAA,IAClB,sBACE,EAAA,gGAAA;AAAA,IACF,gBAAkB,EAAA,QAAA;AAAA,IAClB,gBAAkB,EAAA,mDAAA;AAAA,IAClB,2BACE,EAAA,iIAAA;AAAA,IACF,mBAAqB,EAAA,0BAAA;AAAA,IACrB,kBAAoB,EAAA;AAAA;AAExB,CAAC;;;;"}
1
+ {"version":3,"file":"fr.esm.js","sources":["../../src/translations/fr.ts"],"sourcesContent":["/*\n * Copyright Red Hat, Inc.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport { createTranslationMessages } from '@backstage/core-plugin-api/alpha';\nimport { homepageTranslationRef } from './ref';\n\n/**\n * French translation for Homepage.\n * @public\n */\nconst homepageTranslationFr = createTranslationMessages({\n ref: homepageTranslationRef,\n messages: {\n 'entities.close': 'fermer',\n 'entities.description':\n 'Parcourez les systèmes, les composants, les ressources et les API disponibles dans votre organisation.',\n 'entities.empty': \"Aucun catalogue de logiciels n'a encore été ajouté\",\n 'entities.emptyDescription':\n 'Une fois les catalogues de logiciels ajoutés, cet espace présentera du contenu pertinent adapté à votre expérience.',\n 'entities.error': 'Erreur inconnue',\n 'entities.fetchError': 'Impossible de récupérer les données.',\n 'entities.register': 'Enregistrer un composant',\n 'entities.title': 'Explorez votre catalogue de logiciels',\n 'entities.viewAll': 'Afficher toutes les {{count}} entités du catalogue',\n 'featuredDocs.learnMore': ' En savoir plus',\n 'header.local': 'Locale',\n 'header.welcome': 'Content de vous revoir!',\n 'header.welcomePersonalized': 'Bienvenue {{name}} !',\n 'homePage.empty':\n \"Aucune carte de page d'accueil (points de montage) configurée ou trouvée.\",\n 'onboarding.explore.ariaLabel': 'Accéder au catalogue',\n 'onboarding.explore.buttonText': 'Accéder au catalogue',\n 'onboarding.explore.description':\n 'Explorez les composants, les API et les modèles.',\n 'onboarding.explore.title': 'Explorez',\n 'onboarding.getStarted.ariaLabel':\n \"Lire la documentation (s'ouvre dans un nouvel onglet)\",\n 'onboarding.getStarted.buttonText': 'Lire la documentation',\n 'onboarding.getStarted.description':\n 'En savoir plus sur Red Hat Developer Hub.',\n 'onboarding.getStarted.title': 'Commencer',\n 'onboarding.greeting.goodAfternoon': 'Bon après-midi',\n 'onboarding.greeting.goodEvening': 'Bonne soirée',\n 'onboarding.greeting.goodMorning': 'Bonjour',\n 'onboarding.guest': 'Invité',\n 'onboarding.learn.ariaLabel': \"Accéder aux parcours d'apprentissage\",\n 'onboarding.learn.buttonText': \"Accéder aux parcours d'apprentissage\",\n 'onboarding.learn.description':\n 'Explorer et développer de nouvelles compétences.',\n 'onboarding.learn.title': 'Apprendre',\n 'quickAccess.error': 'Erreur inconnue',\n 'quickAccess.fetchError': 'Impossible de récupérer les données.',\n 'quickAccess.title': 'Accès rapide',\n 'search.placeholder': 'Rechercher',\n 'templates.empty': 'Aucun modèle ajouté pour le moment',\n 'templates.emptyDescription':\n 'Une fois les modèles ajoutés, cet espace présentera du contenu pertinent adapté à votre expérience.',\n 'templates.error': 'Erreur inconnue',\n 'templates.fetchError': 'Impossible de récupérer les données.',\n 'templates.register': 'Enregistrer un modèle',\n 'templates.title': 'Explorer les modèles',\n 'templates.viewAll': 'Afficher tous les {{count}} modèles',\n },\n});\n\nexport default homepageTranslationFr;\n"],"names":[],"mappings":";;;AAuBA,MAAM,wBAAwB,yBAA0B,CAAA;AAAA,EACtD,GAAK,EAAA,sBAAA;AAAA,EACL,QAAU,EAAA;AAAA,IACR,gBAAkB,EAAA,QAAA;AAAA,IAClB,sBACE,EAAA,2GAAA;AAAA,IACF,gBAAkB,EAAA,6DAAA;AAAA,IAClB,2BACE,EAAA,oIAAA;AAAA,IACF,gBAAkB,EAAA,iBAAA;AAAA,IAClB,qBAAuB,EAAA,+CAAA;AAAA,IACvB,mBAAqB,EAAA,0BAAA;AAAA,IACrB,gBAAkB,EAAA,uCAAA;AAAA,IAClB,kBAAoB,EAAA,uDAAA;AAAA,IACpB,wBAA0B,EAAA,iBAAA;AAAA,IAC1B,cAAgB,EAAA,QAAA;AAAA,IAChB,gBAAkB,EAAA,yBAAA;AAAA,IAClB,4BAA8B,EAAA,yBAAA;AAAA,IAC9B,gBACE,EAAA,iFAAA;AAAA,IACF,8BAAgC,EAAA,yBAAA;AAAA,IAChC,+BAAiC,EAAA,yBAAA;AAAA,IACjC,gCACE,EAAA,qDAAA;AAAA,IACF,0BAA4B,EAAA,UAAA;AAAA,IAC5B,iCACE,EAAA,uDAAA;AAAA,IACF,kCAAoC,EAAA,uBAAA;AAAA,IACpC,mCACE,EAAA,2CAAA;AAAA,IACF,6BAA+B,EAAA,WAAA;AAAA,IAC/B,mCAAqC,EAAA,mBAAA;AAAA,IACrC,iCAAmC,EAAA,iBAAA;AAAA,IACnC,iCAAmC,EAAA,SAAA;AAAA,IACnC,kBAAoB,EAAA,WAAA;AAAA,IACpB,4BAA8B,EAAA,yCAAA;AAAA,IAC9B,6BAA+B,EAAA,yCAAA;AAAA,IAC/B,8BACE,EAAA,wDAAA;AAAA,IACF,wBAA0B,EAAA,WAAA;AAAA,IAC1B,mBAAqB,EAAA,iBAAA;AAAA,IACrB,wBAA0B,EAAA,+CAAA;AAAA,IAC1B,mBAAqB,EAAA,iBAAA;AAAA,IACrB,oBAAsB,EAAA,YAAA;AAAA,IACtB,iBAAmB,EAAA,0CAAA;AAAA,IACnB,4BACE,EAAA,uHAAA;AAAA,IACF,iBAAmB,EAAA,iBAAA;AAAA,IACnB,sBAAwB,EAAA,+CAAA;AAAA,IACxB,oBAAsB,EAAA,0BAAA;AAAA,IACtB,iBAAmB,EAAA,yBAAA;AAAA,IACnB,mBAAqB,EAAA;AAAA;AAEzB,CAAC;;;;"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@red-hat-developer-hub/backstage-plugin-dynamic-home-page",
3
- "version": "1.8.0",
3
+ "version": "1.9.1",
4
4
  "main": "dist/index.esm.js",
5
5
  "types": "dist/index.d.ts",
6
6
  "license": "Apache-2.0",