@hitachivantara/uikit-cli 6.0.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.
Files changed (109) hide show
  1. package/README.md +46 -0
  2. package/package.json +68 -0
  3. package/src/app-shell.js +106 -0
  4. package/src/baselines/app-shell/vite/_gitignore +30 -0
  5. package/src/baselines/app-shell/vite/_oxlintrc.json +5 -0
  6. package/src/baselines/app-shell/vite/_package.json +55 -0
  7. package/src/baselines/app-shell/vite/public/locales/en/example.json +8 -0
  8. package/src/baselines/app-shell/vite/src/lib/data/config.ts +15 -0
  9. package/src/baselines/app-shell/vite/src/lib/i18n.ts +44 -0
  10. package/src/baselines/app-shell/vite/src/pages/Example/index.tsx +25 -0
  11. package/src/baselines/app-shell/vite/src/providers/Provider.tsx +31 -0
  12. package/src/baselines/app-shell/vite/src/tests/mocks.ts +1 -0
  13. package/src/baselines/app-shell/vite/src/tests/providers.tsx +13 -0
  14. package/src/baselines/app-shell/vite/src/tests/setupTests.ts +24 -0
  15. package/src/baselines/app-shell/vite/src/types/theme.d.ts +8 -0
  16. package/src/baselines/app-shell/vite/src/types/vite-env.d.ts +1 -0
  17. package/src/baselines/app-shell/vite/tsconfig.json +10 -0
  18. package/src/baselines/app-shell/vite/tsconfig.node.json +9 -0
  19. package/src/baselines/app-shell/vite/uno.config.ts +6 -0
  20. package/src/baselines/app-shell/vite/vite.config.ts +45 -0
  21. package/src/baselines/vite/_gitignore +30 -0
  22. package/src/baselines/vite/_oxlintrc.json +5 -0
  23. package/src/baselines/vite/_package.json +53 -0
  24. package/src/baselines/vite/index.html +18 -0
  25. package/src/baselines/vite/public/favicon.ico +0 -0
  26. package/src/baselines/vite/public/locales/en/common.json +16 -0
  27. package/src/baselines/vite/public/locales/en/home.json +4 -0
  28. package/src/baselines/vite/public/logo192.png +0 -0
  29. package/src/baselines/vite/src/App.tsx +31 -0
  30. package/src/baselines/vite/src/assets/HitachiLogo.tsx +27 -0
  31. package/src/baselines/vite/src/components/common/Loading/Loading.test.tsx +18 -0
  32. package/src/baselines/vite/src/components/common/Loading/Loading.tsx +15 -0
  33. package/src/baselines/vite/src/components/common/Loading/index.ts +1 -0
  34. package/src/baselines/vite/src/context/NavigationContext.tsx +67 -0
  35. package/src/baselines/vite/src/lib/i18n.ts +29 -0
  36. package/src/baselines/vite/src/main.tsx +12 -0
  37. package/src/baselines/vite/src/pages/Home/index.tsx +13 -0
  38. package/src/baselines/vite/src/pages/NotFound/NotFound.tsx +39 -0
  39. package/src/baselines/vite/src/pages/NotFound/index.tsx +1 -0
  40. package/src/baselines/vite/src/pages/layout/navigation.tsx +82 -0
  41. package/src/baselines/vite/src/routes.tsx +14 -0
  42. package/src/baselines/vite/src/tests/mocks.ts +1 -0
  43. package/src/baselines/vite/src/tests/providers.tsx +13 -0
  44. package/src/baselines/vite/src/tests/setupTests.ts +24 -0
  45. package/src/baselines/vite/src/types/theme.d.ts +8 -0
  46. package/src/baselines/vite/src/vite-env.d.ts +1 -0
  47. package/src/baselines/vite/tsconfig.json +10 -0
  48. package/src/baselines/vite/tsconfig.node.json +9 -0
  49. package/src/baselines/vite/uno.config.ts +6 -0
  50. package/src/baselines/vite/vite.config.ts +31 -0
  51. package/src/contents.js +63 -0
  52. package/src/create.js +172 -0
  53. package/src/index.js +22 -0
  54. package/src/navigation.js +21 -0
  55. package/src/package.js +37 -0
  56. package/src/plop-templates/README.md.hbs +10 -0
  57. package/src/plop-templates/app-shell/app-shell.config.ts.hbs +54 -0
  58. package/src/plop-templates/app-shell/index.html.hbs +15 -0
  59. package/src/plopfile.js +61 -0
  60. package/src/templates/AssetInventory/CardView.tsx +167 -0
  61. package/src/templates/AssetInventory/ListView.tsx +56 -0
  62. package/src/templates/AssetInventory/data.tsx +255 -0
  63. package/src/templates/AssetInventory/index.tsx +198 -0
  64. package/src/templates/AssetInventory/usePaginationData.ts +158 -0
  65. package/src/templates/Canvas/Context.tsx +49 -0
  66. package/src/templates/Canvas/ListView.tsx +189 -0
  67. package/src/templates/Canvas/Node.tsx +203 -0
  68. package/src/templates/Canvas/Sidebar.tsx +51 -0
  69. package/src/templates/Canvas/StatusEdge.tsx +75 -0
  70. package/src/templates/Canvas/StickyNode.tsx +475 -0
  71. package/src/templates/Canvas/Table.tsx +202 -0
  72. package/src/templates/Canvas/TreeView.tsx +211 -0
  73. package/src/templates/Canvas/dependencies.json +7 -0
  74. package/src/templates/Canvas/index.tsx +363 -0
  75. package/src/templates/Canvas/styles.tsx +41 -0
  76. package/src/templates/Canvas/utils.tsx +70 -0
  77. package/src/templates/Dashboard/GridPanel.tsx +33 -0
  78. package/src/templates/Dashboard/Kpi.tsx +107 -0
  79. package/src/templates/Dashboard/Map.styles.ts +681 -0
  80. package/src/templates/Dashboard/Map.tsx +71 -0
  81. package/src/templates/Dashboard/data.ts +67 -0
  82. package/src/templates/Dashboard/dependencies.json +11 -0
  83. package/src/templates/Dashboard/index.tsx +173 -0
  84. package/src/templates/DetailsView/KPIs.tsx +70 -0
  85. package/src/templates/DetailsView/MetadataItem.tsx +35 -0
  86. package/src/templates/DetailsView/Properties.tsx +127 -0
  87. package/src/templates/DetailsView/Table.tsx +104 -0
  88. package/src/templates/DetailsView/data.ts +67 -0
  89. package/src/templates/DetailsView/index.tsx +102 -0
  90. package/src/templates/DetailsView/usePaginationData.ts +155 -0
  91. package/src/templates/DetailsView/utils.ts +51 -0
  92. package/src/templates/Form/index.tsx +107 -0
  93. package/src/templates/KanbanBoard/ColumnContainer.tsx +89 -0
  94. package/src/templates/KanbanBoard/TaskCard.tsx +130 -0
  95. package/src/templates/KanbanBoard/data.tsx +140 -0
  96. package/src/templates/KanbanBoard/dependencies.json +6 -0
  97. package/src/templates/KanbanBoard/index.tsx +179 -0
  98. package/src/templates/KanbanBoard/styles.tsx +76 -0
  99. package/src/templates/KanbanBoard/types.ts +21 -0
  100. package/src/templates/ListView/Indicator.tsx +42 -0
  101. package/src/templates/ListView/Kpi.tsx +120 -0
  102. package/src/templates/ListView/Table.tsx +55 -0
  103. package/src/templates/ListView/data.tsx +179 -0
  104. package/src/templates/ListView/dependencies.json +5 -0
  105. package/src/templates/ListView/index.tsx +245 -0
  106. package/src/templates/ListView/usePaginationData.ts +158 -0
  107. package/src/templates/Welcome/index.tsx +101 -0
  108. package/src/templates/package.json +30 -0
  109. package/src/utils.js +37 -0
@@ -0,0 +1,33 @@
1
+ import { css } from "@emotion/css";
2
+ import {
3
+ HvGrid,
4
+ HvGridProps,
5
+ HvLoadingContainer,
6
+ HvPanel,
7
+ theme,
8
+ } from "@hitachivantara/uikit-react-core";
9
+
10
+ /** A `HvGrid` item + styled `HvPanel` container with a loading `Suspense` boundary */
11
+ export const GridPanel = ({
12
+ children,
13
+ height = 300,
14
+ isLoading,
15
+ ...others
16
+ }: HvGridProps & { isLoading?: boolean }) => (
17
+ <HvGrid item {...others}>
18
+ <HvLoadingContainer hidden={!isLoading}>
19
+ <HvPanel
20
+ role="region"
21
+ style={{ height: height as number }}
22
+ className={css({
23
+ overflow: "visible",
24
+ position: "relative",
25
+ borderWidth: 1,
26
+ borderRadius: `0 0 ${theme.radii.round} ${theme.radii.round}`,
27
+ })}
28
+ >
29
+ {children}
30
+ </HvPanel>
31
+ </HvLoadingContainer>
32
+ </HvGrid>
33
+ );
@@ -0,0 +1,107 @@
1
+ import { css } from "@emotion/css";
2
+ import {
3
+ HvCard,
4
+ HvCardContent,
5
+ HvCardProps,
6
+ HvTypography,
7
+ theme,
8
+ } from "@hitachivantara/uikit-react-core";
9
+ import { Level0Good } from "@hitachivantara/uikit-react-icons";
10
+
11
+ const styles = {
12
+ title: css({
13
+ padding: theme.spacing(0, 3, 1),
14
+ textAlign: "center",
15
+ }),
16
+ contentContainer: css({
17
+ display: "flex",
18
+ flexFlow: "column nowrap",
19
+ alignItems: "center",
20
+ paddingTop: theme.space.xs,
21
+ }),
22
+ gaugeOuterSemiCircle: css({
23
+ position: "relative",
24
+ width: "122px",
25
+ height: "61px",
26
+ borderRadius: "61px 61px 0px 0px",
27
+ backgroundColor: theme.colors.positive,
28
+ overflow: "hidden",
29
+ }),
30
+ gaugeInnerSemiCircle: css({
31
+ position: "absolute",
32
+ width: "110px",
33
+ height: "55px",
34
+ borderRadius: "55px 55px 0px 0px",
35
+ backgroundColor: theme.colors.bgPage,
36
+ bottom: 0,
37
+ left: 0,
38
+ right: 0,
39
+ margin: "auto",
40
+ }),
41
+ gaugeMask: css({
42
+ position: "absolute",
43
+ width: "122px",
44
+ height: "61px",
45
+ borderRadius: "61px 61px 0px 0px",
46
+ bottom: 0,
47
+ left: 0,
48
+ right: 0,
49
+ margin: "auto",
50
+ backgroundColor: theme.colors.border,
51
+ transformOrigin: "bottom center",
52
+ }),
53
+ gaugeIndicatorContainer: css({
54
+ position: "absolute",
55
+ zIndex: 10,
56
+ display: "flex",
57
+ alignItems: "baseline",
58
+ justifyContent: "center",
59
+ gap: 2,
60
+ left: 0,
61
+ right: 0,
62
+ margin: "auto",
63
+ bottom: -8,
64
+ }),
65
+ };
66
+
67
+ const GaugeChart = ({
68
+ indicator,
69
+ unit,
70
+ percentage,
71
+ }: Record<string, React.ReactNode>) => (
72
+ <div className={styles.gaugeOuterSemiCircle}>
73
+ <div
74
+ className={styles.gaugeMask}
75
+ style={{ transform: `rotate(${percentage}deg)` }}
76
+ />
77
+ <div className={styles.gaugeInnerSemiCircle} />
78
+ <div className={styles.gaugeIndicatorContainer}>
79
+ <HvTypography variant="title2">{indicator}</HvTypography>
80
+ {unit && <HvTypography variant="caption1">{unit}</HvTypography>}
81
+ </div>
82
+ </div>
83
+ );
84
+
85
+ interface KpiProps extends HvCardProps {
86
+ title: string;
87
+ value: React.ReactNode;
88
+ unit?: React.ReactNode;
89
+ color: HvCardProps["statusColor"];
90
+ }
91
+
92
+ export const Kpi = ({ title, value, color, unit = "t/h" }: KpiProps) => {
93
+ return (
94
+ <HvCard
95
+ statusColor={color}
96
+ bgcolor="bgPage"
97
+ icon={<Level0Good title="Good" color="positive" />}
98
+ >
99
+ <HvCardContent className={styles.contentContainer}>
100
+ <HvTypography className={styles.title} variant="label">
101
+ {title}
102
+ </HvTypography>
103
+ <GaugeChart indicator={value} unit={unit} percentage={125} />
104
+ </HvCardContent>
105
+ </HvCard>
106
+ );
107
+ };