@kartverket/backstage-plugin-risk-scorecard 3.10.1 → 3.10.3

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 (79) hide show
  1. package/css/theme.css +7 -1
  2. package/dist/components/common/AlertBar/AlertBar.esm.js +19 -0
  3. package/dist/components/common/AlertBar/AlertBar.esm.js.map +1 -0
  4. package/dist/components/common/DualButton/DualButton.esm.js.map +1 -1
  5. package/dist/components/common/Input.esm.js +1 -1
  6. package/dist/components/common/Input.esm.js.map +1 -1
  7. package/dist/components/common/{MarkdownInput.esm.js → MarkdownInput/MarkdownInput.esm.js} +11 -10
  8. package/dist/components/common/MarkdownInput/MarkdownInput.esm.js.map +1 -0
  9. package/dist/components/common/MarkdownInput/MarkdownInput.module.css.esm.js +8 -0
  10. package/dist/components/common/MarkdownInput/MarkdownInput.module.css.esm.js.map +1 -0
  11. package/dist/components/common/UpdatedStatusBadge.esm.js +1 -1
  12. package/dist/components/common/UpdatedStatusBadge.esm.js.map +1 -1
  13. package/dist/components/common/alertBar.module.css.esm.js +8 -0
  14. package/dist/components/common/alertBar.module.css.esm.js.map +1 -0
  15. package/dist/components/common/typography.esm.js.map +1 -1
  16. package/dist/components/riScDialog/ConfigEncryptionDialog.esm.js +17 -17
  17. package/dist/components/riScDialog/ConfigEncryptionDialog.esm.js.map +1 -1
  18. package/dist/components/riScDialog/ConfigInitialRisc.esm.js +56 -64
  19. package/dist/components/riScDialog/ConfigInitialRisc.esm.js.map +1 -1
  20. package/dist/components/riScDialog/ConfigRiscInfo.esm.js +4 -5
  21. package/dist/components/riScDialog/ConfigRiscInfo.esm.js.map +1 -1
  22. package/dist/components/riScDialog/MatrixDialog.esm.js +22 -49
  23. package/dist/components/riScDialog/MatrixDialog.esm.js.map +1 -1
  24. package/dist/components/riScDialog/RiScDialog.esm.js +136 -120
  25. package/dist/components/riScDialog/RiScDialog.esm.js.map +1 -1
  26. package/dist/components/riScDialog/RiScDialog.module.css.esm.js +8 -0
  27. package/dist/components/riScDialog/RiScDialog.module.css.esm.js.map +1 -0
  28. package/dist/components/riScDialog/SupportDialog.esm.js +48 -34
  29. package/dist/components/riScDialog/SupportDialog.esm.js.map +1 -1
  30. package/dist/components/riScInfo/MigrationDialog.esm.js +41 -37
  31. package/dist/components/riScInfo/MigrationDialog.esm.js.map +1 -1
  32. package/dist/components/riScInfo/PublishDialog.esm.js +51 -39
  33. package/dist/components/riScInfo/PublishDialog.esm.js.map +1 -1
  34. package/dist/components/riScInfo/RiScSelectionCard.esm.js +1 -1
  35. package/dist/components/riScInfo/RiScSelectionCard.esm.js.map +1 -1
  36. package/dist/components/riScInfo/RiScSelectionCard.module.css.esm.js +2 -2
  37. package/dist/components/riScInfo/riScStatus/StatusBanner.esm.js +1 -1
  38. package/dist/components/riScInfo/riScStatus/StatusBanner.esm.js.map +1 -1
  39. package/dist/components/riScPlugin/FeedbackDialog.esm.js +2 -2
  40. package/dist/components/riScPlugin/FeedbackDialog.esm.js.map +1 -1
  41. package/dist/components/riScPlugin/RiScPlugin.esm.js +7 -6
  42. package/dist/components/riScPlugin/RiScPlugin.esm.js.map +1 -1
  43. package/dist/components/riskMatrix/EstimatedRiskInfoDialog.esm.js +10 -16
  44. package/dist/components/riskMatrix/EstimatedRiskInfoDialog.esm.js.map +1 -1
  45. package/dist/components/riskMatrix/Tabs.esm.js +22 -3
  46. package/dist/components/riskMatrix/Tabs.esm.js.map +1 -1
  47. package/dist/components/riskMatrix/Tabs.module.css.esm.js +8 -0
  48. package/dist/components/riskMatrix/Tabs.module.css.esm.js.map +1 -0
  49. package/dist/components/scenarioDrawer/ScenarioDrawer.esm.js +22 -45
  50. package/dist/components/scenarioDrawer/ScenarioDrawer.esm.js.map +1 -1
  51. package/dist/components/scenarioDrawer/components/ActionBox.esm.js +1 -0
  52. package/dist/components/scenarioDrawer/components/ActionBox.esm.js.map +1 -1
  53. package/dist/components/scenarioDrawer/components/ActionFormItem.esm.js +1 -1
  54. package/dist/components/scenarioDrawer/components/DeleteConfirmation.esm.js +37 -31
  55. package/dist/components/scenarioDrawer/components/DeleteConfirmation.esm.js.map +1 -1
  56. package/dist/components/scenarioDrawer/components/ScenarioDrawer.module.css.esm.js +8 -0
  57. package/dist/components/scenarioDrawer/components/ScenarioDrawer.module.css.esm.js.map +1 -0
  58. package/dist/components/scenarioDrawer/components/ScopeFormSection.esm.js +1 -1
  59. package/dist/components/scenarioDrawer/scenarioDrawerComponents.esm.js +1 -20
  60. package/dist/components/scenarioDrawer/scenarioDrawerComponents.esm.js.map +1 -1
  61. package/dist/components/scenarioTable/ActionsCard.esm.js +10 -1
  62. package/dist/components/scenarioTable/ActionsCard.esm.js.map +1 -1
  63. package/dist/components/scenarioWizard/ScenarioWizard.module.css.esm.js +8 -0
  64. package/dist/components/scenarioWizard/ScenarioWizard.module.css.esm.js.map +1 -0
  65. package/dist/components/scenarioWizard/components/CloseConfirmation.esm.js +18 -16
  66. package/dist/components/scenarioWizard/components/CloseConfirmation.esm.js.map +1 -1
  67. package/dist/components/scenarioWizard/steps/ActionsStep.esm.js +1 -1
  68. package/dist/components/scenarioWizard/steps/ScenarioStep.esm.js +1 -1
  69. package/dist/utils/hooks.esm.js.map +1 -1
  70. package/dist/utils/style.esm.js +2 -4
  71. package/dist/utils/style.esm.js.map +1 -1
  72. package/dist/utils/translations.esm.js +9 -7
  73. package/dist/utils/translations.esm.js.map +1 -1
  74. package/dist/utils/utilityfunctions.esm.js +4 -1
  75. package/dist/utils/utilityfunctions.esm.js.map +1 -1
  76. package/package.json +1 -1
  77. package/dist/components/common/MarkdownInput.esm.js.map +0 -1
  78. package/dist/components/common/mixins.esm.js +0 -12
  79. package/dist/components/common/mixins.esm.js.map +0 -1
package/css/theme.css CHANGED
@@ -55,6 +55,9 @@ Remember to prefix custom styles with 'ros-' to avoid conflicts with other plugi
55
55
  --ros-risc-status-not-published: var(--ros-orange-400);
56
56
  --ros-risc-status-error: var(--ros-red-700);
57
57
 
58
+ --ros-input-text-color: #757575;
59
+ --ros-input-disabledBackground: rgba(0, 0, 0, 0.12);
60
+
58
61
  /* -------Button styles------- */
59
62
  .ros-button-red {
60
63
  background-color: var(--ros-red-bright);
@@ -74,11 +77,14 @@ Remember to prefix custom styles with 'ros-' to avoid conflicts with other plugi
74
77
  }
75
78
 
76
79
  /* Dark mode custom styles can be added here */
77
- [data-theme-mode='dark'] [data-root-for='ros'] {
80
+ [data-theme-mode='dark'] {
78
81
  --ros-risc-status-updated: var(--ros-green-200);
79
82
  --ros-risc-status-little-outdated: var(--ros-orange-400);
80
83
  --ros-risc-status-outdated: var(--ros-red-700);
81
84
  --ros-risc-status-very-outdated: var(--ros-red-300);
82
85
  --ros-risc-status-not-published: var(--ros-orange-100);
83
86
  --ros-risc-status-error: var(--ros-red-700);
87
+
88
+ --ros-input-text-color: #ffffff80;
89
+ --ros-input-disabledBackground: rgba(255, 255, 255, 0.12);
84
90
  }
@@ -0,0 +1,19 @@
1
+ import { jsx } from 'react/jsx-runtime';
2
+ import Alert from '@mui/material/Alert';
3
+ import styles from '../alertBar.module.css.esm.js';
4
+
5
+ function AlertBar({ severity, children, className, alertProps }) {
6
+ const severityClass = styles[severity] || "";
7
+ return /* @__PURE__ */ jsx("div", { className, children: /* @__PURE__ */ jsx(
8
+ Alert,
9
+ {
10
+ severity,
11
+ className: `${styles.alertBar} ${severityClass}`,
12
+ ...alertProps,
13
+ children
14
+ }
15
+ ) });
16
+ }
17
+
18
+ export { AlertBar, AlertBar as default };
19
+ //# sourceMappingURL=AlertBar.esm.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"AlertBar.esm.js","sources":["../../../../src/components/common/AlertBar/AlertBar.tsx"],"sourcesContent":["import React from 'react';\nimport Alert, { AlertProps } from '@mui/material/Alert';\nimport styles from '../alertBar.module.css';\n\ntype Severity = 'success' | 'warning' | 'error' | 'info';\n\ntype Props = {\n severity: Severity;\n children: React.ReactNode;\n className?: string; // applied to wrapper\n alertProps?: Partial<AlertProps>;\n};\n\nexport function AlertBar({ severity, children, className, alertProps }: Props) {\n const severityClass = (styles as any)[severity] || '';\n\n return (\n <div className={className}>\n <Alert\n severity={severity as any}\n className={`${styles.alertBar} ${severityClass}`}\n {...(alertProps as any)}\n >\n {children}\n </Alert>\n </div>\n );\n}\n\nexport default AlertBar;\n"],"names":[],"mappings":";;;;AAaO,SAAS,SAAS,EAAE,QAAA,EAAU,QAAA,EAAU,SAAA,EAAW,YAAW,EAAU;AAC7E,EAAA,MAAM,aAAA,GAAiB,MAAA,CAAe,QAAQ,CAAA,IAAK,EAAA;AAEnD,EAAA,uBACE,GAAA,CAAC,SAAI,SAAA,EACH,QAAA,kBAAA,GAAA;AAAA,IAAC,KAAA;AAAA,IAAA;AAAA,MACC,QAAA;AAAA,MACA,SAAA,EAAW,CAAA,EAAG,MAAA,CAAO,QAAQ,IAAI,aAAa,CAAA,CAAA;AAAA,MAC7C,GAAI,UAAA;AAAA,MAEJ;AAAA;AAAA,GACH,EACF,CAAA;AAEJ;;;;"}
@@ -1 +1 @@
1
- {"version":3,"file":"DualButton.esm.js","sources":["../../../../src/components/common/DualButton/DualButton.tsx"],"sourcesContent":["import {\n Box,\n Button,\n ButtonProps,\n MenuTrigger,\n Menu,\n MenuItem,\n} from '@backstage/ui';\nimport styles from './DualButton.module.css';\n\ntype MenuItemDef = {\n key: string;\n label: React.ReactNode;\n onClick: () => void;\n selected?: boolean;\n};\n\nexport type DualButtonProps = {\n menuItems?: MenuItemDef[];\n propsLeft?: ButtonProps;\n propsRight?: ButtonProps;\n propsCommon?: ButtonProps;\n} & React.HTMLAttributes<HTMLDivElement>;\n\n/** Base component for dual sided button component.\n * props provided serves as configuration for the left and right button.\n * propsCommon applies to both sides.\n * Specificity takes precedence.\n */\nexport function DualButton({\n menuItems,\n propsLeft,\n propsRight,\n className,\n propsCommon,\n ...props\n}: DualButtonProps) {\n const leftButton = (\n <Button\n size=\"small\"\n {...propsCommon}\n {...propsLeft}\n className={`${styles.DualButtonLeft} ${propsCommon?.className || ''} ${propsLeft?.className || ''}`}\n />\n );\n\n const ConditionalMenuWrapper: React.FC<{ children: React.ReactNode }> = ({\n children,\n }) => {\n const hasMenu = menuItems && menuItems.length > 0;\n\n if (!hasMenu) {\n return <>{children}</>;\n }\n\n return (\n <MenuTrigger>\n {children}\n <Menu>\n {menuItems.map(item => (\n <MenuItem\n key={item.key}\n style={\n item.selected ? { backgroundColor: 'var(--bui-gray-3)' } : {}\n }\n onAction={() => item.onClick()}\n >\n {item.label}\n </MenuItem>\n ))}\n </Menu>\n </MenuTrigger>\n );\n };\n\n return (\n <Box {...props} className={`${styles.DualButton} ${className || ''}`}>\n <ConditionalMenuWrapper>{leftButton}</ConditionalMenuWrapper>\n <Button\n size=\"small\"\n {...propsCommon}\n {...propsRight}\n className={`${styles.DualButtonRight} ${propsCommon?.className || ''} ${propsRight?.className || ''}`}\n />\n </Box>\n );\n}\n"],"names":[],"mappings":";;;;AA6BO,SAAS,UAAA,CAAW;AAAA,EACzB,SAAA;AAAA,EACA,SAAA;AAAA,EACA,UAAA;AAAA,EACA,SAAA;AAAA,EACA,WAAA;AAAA,EACA,GAAG;AACL,CAAA,EAAoB;AAClB,EAAA,MAAM,UAAA,mBACJ,GAAA;AAAA,IAAC,MAAA;AAAA,IAAA;AAAA,MACC,IAAA,EAAK,OAAA;AAAA,MACJ,GAAG,WAAA;AAAA,MACH,GAAG,SAAA;AAAA,MACJ,SAAA,EAAW,CAAA,EAAG,MAAA,CAAO,cAAc,CAAA,CAAA,EAAI,WAAA,EAAa,SAAA,IAAa,EAAE,CAAA,CAAA,EAAI,SAAA,EAAW,SAAA,IAAa,EAAE,CAAA;AAAA;AAAA,GACnG;AAGF,EAAA,MAAM,yBAAkE,CAAC;AAAA,IACvE;AAAA,GACF,KAAM;AACJ,IAAA,MAAM,OAAA,GAAU,SAAA,IAAa,SAAA,CAAU,MAAA,GAAS,CAAA;AAEhD,IAAA,IAAI,CAAC,OAAA,EAAS;AACZ,MAAA,uCAAU,QAAA,EAAS,CAAA;AAAA,IACrB;AAEA,IAAA,4BACG,WAAA,EAAA,EACE,QAAA,EAAA;AAAA,MAAA,QAAA;AAAA,sBACD,GAAA,CAAC,IAAA,EAAA,EACE,QAAA,EAAA,SAAA,CAAU,GAAA,CAAI,CAAA,IAAA,qBACb,GAAA;AAAA,QAAC,QAAA;AAAA,QAAA;AAAA,UAEC,OACE,IAAA,CAAK,QAAA,GAAW,EAAE,eAAA,EAAiB,mBAAA,KAAwB,EAAC;AAAA,UAE9D,QAAA,EAAU,MAAM,IAAA,CAAK,OAAA,EAAQ;AAAA,UAE5B,QAAA,EAAA,IAAA,CAAK;AAAA,SAAA;AAAA,QAND,IAAA,CAAK;AAAA,OAQb,CAAA,EACH;AAAA,KAAA,EACF,CAAA;AAAA,EAEJ,CAAA;AAEA,EAAA,uBACE,IAAA,CAAC,GAAA,EAAA,EAAK,GAAG,KAAA,EAAO,SAAA,EAAW,CAAA,EAAG,MAAA,CAAO,UAAU,CAAA,CAAA,EAAI,SAAA,IAAa,EAAE,CAAA,CAAA,EAChE,QAAA,EAAA;AAAA,oBAAA,GAAA,CAAC,0BAAwB,QAAA,EAAA,UAAA,EAAW,CAAA;AAAA,oBACpC,GAAA;AAAA,MAAC,MAAA;AAAA,MAAA;AAAA,QACC,IAAA,EAAK,OAAA;AAAA,QACJ,GAAG,WAAA;AAAA,QACH,GAAG,UAAA;AAAA,QACJ,SAAA,EAAW,CAAA,EAAG,MAAA,CAAO,eAAe,CAAA,CAAA,EAAI,WAAA,EAAa,SAAA,IAAa,EAAE,CAAA,CAAA,EAAI,UAAA,EAAY,SAAA,IAAa,EAAE,CAAA;AAAA;AAAA;AACrG,GAAA,EACF,CAAA;AAEJ;;;;"}
1
+ {"version":3,"file":"DualButton.esm.js","sources":["../../../../src/components/common/DualButton/DualButton.tsx"],"sourcesContent":["import {\n Box,\n Button,\n ButtonProps,\n MenuTrigger,\n Menu,\n MenuItem,\n} from '@backstage/ui';\nimport styles from './DualButton.module.css';\n\ntype MenuItemDef = {\n key: string;\n label: React.ReactNode;\n onClick: () => void;\n selected?: boolean;\n};\n\ntype DualButtonProps = {\n menuItems?: MenuItemDef[];\n propsLeft?: ButtonProps;\n propsRight?: ButtonProps;\n propsCommon?: ButtonProps;\n} & React.HTMLAttributes<HTMLDivElement>;\n\n/** Base component for dual sided button component.\n * props provided serves as configuration for the left and right button.\n * propsCommon applies to both sides.\n * Specificity takes precedence.\n */\nexport function DualButton({\n menuItems,\n propsLeft,\n propsRight,\n className,\n propsCommon,\n ...props\n}: DualButtonProps) {\n const leftButton = (\n <Button\n size=\"small\"\n {...propsCommon}\n {...propsLeft}\n className={`${styles.DualButtonLeft} ${propsCommon?.className || ''} ${propsLeft?.className || ''}`}\n />\n );\n\n const ConditionalMenuWrapper: React.FC<{ children: React.ReactNode }> = ({\n children,\n }) => {\n const hasMenu = menuItems && menuItems.length > 0;\n\n if (!hasMenu) {\n return <>{children}</>;\n }\n\n return (\n <MenuTrigger>\n {children}\n <Menu>\n {menuItems.map(item => (\n <MenuItem\n key={item.key}\n style={\n item.selected ? { backgroundColor: 'var(--bui-gray-3)' } : {}\n }\n onAction={() => item.onClick()}\n >\n {item.label}\n </MenuItem>\n ))}\n </Menu>\n </MenuTrigger>\n );\n };\n\n return (\n <Box {...props} className={`${styles.DualButton} ${className || ''}`}>\n <ConditionalMenuWrapper>{leftButton}</ConditionalMenuWrapper>\n <Button\n size=\"small\"\n {...propsCommon}\n {...propsRight}\n className={`${styles.DualButtonRight} ${propsCommon?.className || ''} ${propsRight?.className || ''}`}\n />\n </Box>\n );\n}\n"],"names":[],"mappings":";;;;AA6BO,SAAS,UAAA,CAAW;AAAA,EACzB,SAAA;AAAA,EACA,SAAA;AAAA,EACA,UAAA;AAAA,EACA,SAAA;AAAA,EACA,WAAA;AAAA,EACA,GAAG;AACL,CAAA,EAAoB;AAClB,EAAA,MAAM,UAAA,mBACJ,GAAA;AAAA,IAAC,MAAA;AAAA,IAAA;AAAA,MACC,IAAA,EAAK,OAAA;AAAA,MACJ,GAAG,WAAA;AAAA,MACH,GAAG,SAAA;AAAA,MACJ,SAAA,EAAW,CAAA,EAAG,MAAA,CAAO,cAAc,CAAA,CAAA,EAAI,WAAA,EAAa,SAAA,IAAa,EAAE,CAAA,CAAA,EAAI,SAAA,EAAW,SAAA,IAAa,EAAE,CAAA;AAAA;AAAA,GACnG;AAGF,EAAA,MAAM,yBAAkE,CAAC;AAAA,IACvE;AAAA,GACF,KAAM;AACJ,IAAA,MAAM,OAAA,GAAU,SAAA,IAAa,SAAA,CAAU,MAAA,GAAS,CAAA;AAEhD,IAAA,IAAI,CAAC,OAAA,EAAS;AACZ,MAAA,uCAAU,QAAA,EAAS,CAAA;AAAA,IACrB;AAEA,IAAA,4BACG,WAAA,EAAA,EACE,QAAA,EAAA;AAAA,MAAA,QAAA;AAAA,sBACD,GAAA,CAAC,IAAA,EAAA,EACE,QAAA,EAAA,SAAA,CAAU,GAAA,CAAI,CAAA,IAAA,qBACb,GAAA;AAAA,QAAC,QAAA;AAAA,QAAA;AAAA,UAEC,OACE,IAAA,CAAK,QAAA,GAAW,EAAE,eAAA,EAAiB,mBAAA,KAAwB,EAAC;AAAA,UAE9D,QAAA,EAAU,MAAM,IAAA,CAAK,OAAA,EAAQ;AAAA,UAE5B,QAAA,EAAA,IAAA,CAAK;AAAA,SAAA;AAAA,QAND,IAAA,CAAK;AAAA,OAQb,CAAA,EACH;AAAA,KAAA,EACF,CAAA;AAAA,EAEJ,CAAA;AAEA,EAAA,uBACE,IAAA,CAAC,GAAA,EAAA,EAAK,GAAG,KAAA,EAAO,SAAA,EAAW,CAAA,EAAG,MAAA,CAAO,UAAU,CAAA,CAAA,EAAI,SAAA,IAAa,EAAE,CAAA,CAAA,EAChE,QAAA,EAAA;AAAA,oBAAA,GAAA,CAAC,0BAAwB,QAAA,EAAA,UAAA,EAAW,CAAA;AAAA,oBACpC,GAAA;AAAA,MAAC,MAAA;AAAA,MAAA;AAAA,QACC,IAAA,EAAK,OAAA;AAAA,QACJ,GAAG,WAAA;AAAA,QACH,GAAG,UAAA;AAAA,QACJ,SAAA,EAAW,CAAA,EAAG,MAAA,CAAO,eAAe,CAAA,CAAA,EAAI,WAAA,EAAa,SAAA,IAAa,EAAE,CAAA,CAAA,EAAI,UAAA,EAAY,SAAA,IAAa,EAAE,CAAA;AAAA;AAAA;AACrG,GAAA,EACF,CAAA;AAEJ;;;;"}
@@ -24,7 +24,7 @@ const Input = forwardRef(
24
24
  InputProps: {
25
25
  sx: (theme) => ({
26
26
  "&.Mui-disabled": {
27
- color: commonTextColor(theme, true)
27
+ color: commonTextColor(theme)
28
28
  }
29
29
  })
30
30
  },
@@ -1 +1 @@
1
- {"version":3,"file":"Input.esm.js","sources":["../../../src/components/common/Input.tsx"],"sourcesContent":["import FormControl from '@mui/material/FormControl';\nimport FormHelperText from '@mui/material/FormHelperText';\nimport FormLabel from '@mui/material/FormLabel';\nimport TextField, { TextFieldProps } from '@mui/material/TextField';\nimport { forwardRef } from 'react';\nimport { formHelperText, formLabel } from './typography';\nimport { commonTextColor, formControlStyles } from '../../utils/style';\n\ntype Props = TextFieldProps & {\n sublabel?: string;\n};\n\nexport const Input = forwardRef<HTMLInputElement, Props>(\n ({ label, sublabel, error, helperText, required, ...props }, ref) => {\n return (\n <FormControl sx={formControlStyles} error={error} required={required}>\n {label && (\n <FormLabel required={required} sx={formLabel}>\n {label}\n </FormLabel>\n )}\n {sublabel && (\n <FormHelperText sx={formHelperText}>{sublabel}</FormHelperText>\n )}\n <TextField\n id=\"filled-multiline-static\"\n error={error}\n multiline\n fullWidth\n variant=\"outlined\"\n inputRef={ref}\n InputProps={{\n sx: theme => ({\n '&.Mui-disabled': {\n color: commonTextColor(theme, true),\n },\n }),\n }}\n {...props}\n />\n {helperText && <FormHelperText>{helperText}</FormHelperText>}\n </FormControl>\n );\n },\n);\n"],"names":[],"mappings":";;;;;;;;;AAYO,MAAM,KAAA,GAAQ,UAAA;AAAA,EACnB,CAAC,EAAE,KAAA,EAAO,QAAA,EAAU,KAAA,EAAO,YAAY,QAAA,EAAU,GAAG,KAAA,EAAM,EAAG,GAAA,KAAQ;AACnE,IAAA,uBACE,IAAA,CAAC,WAAA,EAAA,EAAY,EAAA,EAAI,iBAAA,EAAmB,OAAc,QAAA,EAC/C,QAAA,EAAA;AAAA,MAAA,KAAA,oBACC,GAAA,CAAC,SAAA,EAAA,EAAU,QAAA,EAAoB,EAAA,EAAI,WAChC,QAAA,EAAA,KAAA,EACH,CAAA;AAAA,MAED,QAAA,oBACC,GAAA,CAAC,cAAA,EAAA,EAAe,EAAA,EAAI,gBAAiB,QAAA,EAAA,QAAA,EAAS,CAAA;AAAA,sBAEhD,GAAA;AAAA,QAAC,SAAA;AAAA,QAAA;AAAA,UACC,EAAA,EAAG,yBAAA;AAAA,UACH,KAAA;AAAA,UACA,SAAA,EAAS,IAAA;AAAA,UACT,SAAA,EAAS,IAAA;AAAA,UACT,OAAA,EAAQ,UAAA;AAAA,UACR,QAAA,EAAU,GAAA;AAAA,UACV,UAAA,EAAY;AAAA,YACV,IAAI,CAAA,KAAA,MAAU;AAAA,cACZ,gBAAA,EAAkB;AAAA,gBAChB,KAAA,EAAO,eAAA,CAAgB,KAAA,EAAO,IAAI;AAAA;AACpC,aACF;AAAA,WACF;AAAA,UACC,GAAG;AAAA;AAAA,OACN;AAAA,MACC,UAAA,oBAAc,GAAA,CAAC,cAAA,EAAA,EAAgB,QAAA,EAAA,UAAA,EAAW;AAAA,KAAA,EAC7C,CAAA;AAAA,EAEJ;AACF;;;;"}
1
+ {"version":3,"file":"Input.esm.js","sources":["../../../src/components/common/Input.tsx"],"sourcesContent":["import FormControl from '@mui/material/FormControl';\nimport FormHelperText from '@mui/material/FormHelperText';\nimport FormLabel from '@mui/material/FormLabel';\nimport TextField, { TextFieldProps } from '@mui/material/TextField';\nimport { forwardRef } from 'react';\nimport { formHelperText, formLabel } from './typography';\nimport { commonTextColor, formControlStyles } from '../../utils/style';\n\ntype Props = TextFieldProps & {\n sublabel?: string;\n};\n\nexport const Input = forwardRef<HTMLInputElement, Props>(\n ({ label, sublabel, error, helperText, required, ...props }, ref) => {\n return (\n <FormControl sx={formControlStyles} error={error} required={required}>\n {label && (\n <FormLabel required={required} sx={formLabel}>\n {label}\n </FormLabel>\n )}\n {sublabel && (\n <FormHelperText sx={formHelperText}>{sublabel}</FormHelperText>\n )}\n <TextField\n id=\"filled-multiline-static\"\n error={error}\n multiline\n fullWidth\n variant=\"outlined\"\n inputRef={ref}\n InputProps={{\n sx: theme => ({\n '&.Mui-disabled': {\n color: commonTextColor(theme, true),\n },\n }),\n }}\n {...props}\n />\n {helperText && <FormHelperText>{helperText}</FormHelperText>}\n </FormControl>\n );\n },\n);\n"],"names":[],"mappings":";;;;;;;;;AAYO,MAAM,KAAA,GAAQ,UAAA;AAAA,EACnB,CAAC,EAAE,KAAA,EAAO,QAAA,EAAU,KAAA,EAAO,YAAY,QAAA,EAAU,GAAG,KAAA,EAAM,EAAG,GAAA,KAAQ;AACnE,IAAA,uBACE,IAAA,CAAC,WAAA,EAAA,EAAY,EAAA,EAAI,iBAAA,EAAmB,OAAc,QAAA,EAC/C,QAAA,EAAA;AAAA,MAAA,KAAA,oBACC,GAAA,CAAC,SAAA,EAAA,EAAU,QAAA,EAAoB,EAAA,EAAI,WAChC,QAAA,EAAA,KAAA,EACH,CAAA;AAAA,MAED,QAAA,oBACC,GAAA,CAAC,cAAA,EAAA,EAAe,EAAA,EAAI,gBAAiB,QAAA,EAAA,QAAA,EAAS,CAAA;AAAA,sBAEhD,GAAA;AAAA,QAAC,SAAA;AAAA,QAAA;AAAA,UACC,EAAA,EAAG,yBAAA;AAAA,UACH,KAAA;AAAA,UACA,SAAA,EAAS,IAAA;AAAA,UACT,SAAA,EAAS,IAAA;AAAA,UACT,OAAA,EAAQ,UAAA;AAAA,UACR,QAAA,EAAU,GAAA;AAAA,UACV,UAAA,EAAY;AAAA,YACV,IAAI,CAAA,KAAA,MAAU;AAAA,cACZ,gBAAA,EAAkB;AAAA,gBAChB,KAAA,EAAO,eAAA,CAAgB,KAAW;AAAA;AACpC,aACF;AAAA,WACF;AAAA,UACC,GAAG;AAAA;AAAA,OACN;AAAA,MACC,UAAA,oBAAc,GAAA,CAAC,cAAA,EAAA,EAAgB,QAAA,EAAA,UAAA,EAAW;AAAA,KAAA,EAC7C,CAAA;AAAA,EAEJ;AACF;;;;"}
@@ -4,9 +4,10 @@ import FormControl from '@mui/material/FormControl';
4
4
  import FormHelperText from '@mui/material/FormHelperText';
5
5
  import FormLabel from '@mui/material/FormLabel';
6
6
  import MDEditor from '@uiw/react-md-editor';
7
- import { formLabel, formHelperText } from './typography.esm.js';
8
- import { useTheme } from '@mui/material/styles';
9
- import { formControlStyles, commonBackgroundColor, commonTextColor } from '../../utils/style.esm.js';
7
+ import { formLabel, formHelperText } from '../typography.esm.js';
8
+ import classNames from 'classnames';
9
+ import { getActiveTheme } from '../../../utils/utilityfunctions.esm.js';
10
+ import styles from './MarkdownInput.module.css.esm.js';
10
11
 
11
12
  const MarkdownInput = forwardRef(
12
13
  ({
@@ -22,7 +23,6 @@ const MarkdownInput = forwardRef(
22
23
  const [markdownContent, setMarkdownContent] = useState(
23
24
  value
24
25
  );
25
- const theme = useTheme();
26
26
  useEffect(() => {
27
27
  setMarkdownContent(value);
28
28
  }, [value]);
@@ -41,14 +41,18 @@ const MarkdownInput = forwardRef(
41
41
  }
42
42
  }
43
43
  };
44
- return /* @__PURE__ */ jsxs(FormControl, { sx: formControlStyles, error, children: [
44
+ const editorClassName = classNames(styles.MarkDownInput, {
45
+ [styles["MarkDownInput--disabled"]]: disabled
46
+ });
47
+ return /* @__PURE__ */ jsxs(FormControl, { className: styles.MarkDownInputFormControl, error, children: [
45
48
  label && /* @__PURE__ */ jsx(FormLabel, { sx: formLabel, children: label }),
46
49
  sublabel && /* @__PURE__ */ jsx(FormHelperText, { sx: formHelperText, children: sublabel }),
47
50
  /* @__PURE__ */ jsx(
48
51
  "div",
49
52
  {
50
- "data-color-mode": theme.palette.mode,
51
53
  onFocusCapture,
54
+ "data-color-mode": getActiveTheme(),
55
+ className: styles.MarkDownInputWrapper,
52
56
  children: /* @__PURE__ */ jsx(
53
57
  MDEditor,
54
58
  {
@@ -57,10 +61,7 @@ const MarkdownInput = forwardRef(
57
61
  onChange: handleMarkdownChange,
58
62
  preview: "edit",
59
63
  height: minRows ? minRows * 24 : 64,
60
- style: {
61
- color: commonTextColor(theme, disabled),
62
- backgroundColor: commonBackgroundColor(theme, disabled)
63
- }
64
+ className: editorClassName
64
65
  }
65
66
  )
66
67
  }
@@ -0,0 +1 @@
1
+ {"version":3,"file":"MarkdownInput.esm.js","sources":["../../../../src/components/common/MarkdownInput/MarkdownInput.tsx"],"sourcesContent":["import { forwardRef, useState, useEffect } from 'react';\nimport FormControl from '@mui/material/FormControl';\nimport FormHelperText from '@mui/material/FormHelperText';\nimport FormLabel from '@mui/material/FormLabel';\nimport MDEditor from '@uiw/react-md-editor';\nimport { formHelperText, formLabel } from '../typography';\nimport { TextFieldProps } from '@material-ui/core';\nimport classNames from 'classnames';\nimport { getActiveTheme } from '../../../utils/utilityfunctions';\nimport styles from './MarkdownInput.module.css';\n\ntype Props = TextFieldProps & {\n sublabel?: string;\n value?: string;\n onMarkdownChange?: (markdown: string) => void;\n minRows?: number;\n};\n\nexport const MarkdownInput = forwardRef<HTMLDivElement, Props>(\n (\n {\n label,\n sublabel,\n error,\n helperText,\n minRows,\n value,\n onMarkdownChange,\n disabled = false,\n },\n ref,\n ) => {\n const [markdownContent, setMarkdownContent] = useState<string | undefined>(\n value,\n );\n\n useEffect(() => {\n setMarkdownContent(value);\n }, [value]);\n\n const handleMarkdownChange = (newValue: string | undefined) => {\n setMarkdownContent(newValue || '');\n onMarkdownChange?.(newValue || '');\n };\n\n const onFocusCapture = (event: React.FocusEvent<HTMLDivElement>) => {\n if (event.relatedTarget) {\n const root = event.currentTarget as HTMLDivElement;\n const target = root.querySelector(\n 'textarea, [contenteditable=\"true\"]',\n ) as HTMLElement | null;\n if (target) {\n setTimeout(() => target.focus());\n }\n }\n };\n const editorClassName = classNames(styles.MarkDownInput, {\n [styles['MarkDownInput--disabled']]: disabled,\n });\n\n return (\n <FormControl className={styles.MarkDownInputFormControl} error={error}>\n {label && <FormLabel sx={formLabel}>{label}</FormLabel>}\n {sublabel && (\n <FormHelperText sx={formHelperText}>{sublabel}</FormHelperText>\n )}\n <div\n onFocusCapture={onFocusCapture}\n data-color-mode={getActiveTheme()}\n className={styles.MarkDownInputWrapper}\n >\n <MDEditor\n ref={ref}\n value={markdownContent}\n onChange={handleMarkdownChange}\n preview=\"edit\"\n height={minRows ? minRows * 24 : 64}\n className={editorClassName}\n />\n </div>\n {helperText && <FormHelperText>{helperText}</FormHelperText>}\n </FormControl>\n );\n },\n);\n"],"names":[],"mappings":";;;;;;;;;;;AAkBO,MAAM,aAAA,GAAgB,UAAA;AAAA,EAC3B,CACE;AAAA,IACE,KAAA;AAAA,IACA,QAAA;AAAA,IACA,KAAA;AAAA,IACA,UAAA;AAAA,IACA,OAAA;AAAA,IACA,KAAA;AAAA,IACA,gBAAA;AAAA,IACA,QAAA,GAAW;AAAA,KAEb,GAAA,KACG;AACH,IAAA,MAAM,CAAC,eAAA,EAAiB,kBAAkB,CAAA,GAAI,QAAA;AAAA,MAC5C;AAAA,KACF;AAEA,IAAA,SAAA,CAAU,MAAM;AACd,MAAA,kBAAA,CAAmB,KAAK,CAAA;AAAA,IAC1B,CAAA,EAAG,CAAC,KAAK,CAAC,CAAA;AAEV,IAAA,MAAM,oBAAA,GAAuB,CAAC,QAAA,KAAiC;AAC7D,MAAA,kBAAA,CAAmB,YAAY,EAAE,CAAA;AACjC,MAAA,gBAAA,GAAmB,YAAY,EAAE,CAAA;AAAA,IACnC,CAAA;AAEA,IAAA,MAAM,cAAA,GAAiB,CAAC,KAAA,KAA4C;AAClE,MAAA,IAAI,MAAM,aAAA,EAAe;AACvB,QAAA,MAAM,OAAO,KAAA,CAAM,aAAA;AACnB,QAAA,MAAM,SAAS,IAAA,CAAK,aAAA;AAAA,UAClB;AAAA,SACF;AACA,QAAA,IAAI,MAAA,EAAQ;AACV,UAAA,UAAA,CAAW,MAAM,MAAA,CAAO,KAAA,EAAO,CAAA;AAAA,QACjC;AAAA,MACF;AAAA,IACF,CAAA;AACA,IAAA,MAAM,eAAA,GAAkB,UAAA,CAAW,MAAA,CAAO,aAAA,EAAe;AAAA,MACvD,CAAC,MAAA,CAAO,yBAAyB,CAAC,GAAG;AAAA,KACtC,CAAA;AAED,IAAA,uBACE,IAAA,CAAC,WAAA,EAAA,EAAY,SAAA,EAAW,MAAA,CAAO,0BAA0B,KAAA,EACtD,QAAA,EAAA;AAAA,MAAA,KAAA,oBAAS,GAAA,CAAC,SAAA,EAAA,EAAU,EAAA,EAAI,SAAA,EAAY,QAAA,EAAA,KAAA,EAAM,CAAA;AAAA,MAC1C,QAAA,oBACC,GAAA,CAAC,cAAA,EAAA,EAAe,EAAA,EAAI,gBAAiB,QAAA,EAAA,QAAA,EAAS,CAAA;AAAA,sBAEhD,GAAA;AAAA,QAAC,KAAA;AAAA,QAAA;AAAA,UACC,cAAA;AAAA,UACA,mBAAiB,cAAA,EAAe;AAAA,UAChC,WAAW,MAAA,CAAO,oBAAA;AAAA,UAElB,QAAA,kBAAA,GAAA;AAAA,YAAC,QAAA;AAAA,YAAA;AAAA,cACC,GAAA;AAAA,cACA,KAAA,EAAO,eAAA;AAAA,cACP,QAAA,EAAU,oBAAA;AAAA,cACV,OAAA,EAAQ,MAAA;AAAA,cACR,MAAA,EAAQ,OAAA,GAAU,OAAA,GAAU,EAAA,GAAK,EAAA;AAAA,cACjC,SAAA,EAAW;AAAA;AAAA;AACb;AAAA,OACF;AAAA,MACC,UAAA,oBAAc,GAAA,CAAC,cAAA,EAAA,EAAgB,QAAA,EAAA,UAAA,EAAW;AAAA,KAAA,EAC7C,CAAA;AAAA,EAEJ;AACF;;;;"}
@@ -0,0 +1,8 @@
1
+ import styleInject from '../../../node_modules_dist/style-inject/dist/style-inject.es.esm.js';
2
+
3
+ var css_248z = ".MarkdownInput-module_MarkDownInput__cJtct {\n color: inherit;\n background-color: inherit;\n border: none;\n box-shadow: none;\n}\n\n.MarkdownInput-module_MarkDownInputFormControl__C-zxH {\n width: 100%;\n gap: 4px;\n}\n\n.MarkdownInput-module_MarkDownInput--disabled__rDXm- {\n color: var(--ros-input-text-color);\n background-color: var(--ros-input-disabledBackground);\n}\n\n.MarkdownInput-module_MarkDownInputWrapper__CarVS {\n border: 1px solid rgba(0, 0, 0, 0.23);\n border-radius: 4px;\n}\n\n[data-theme-mode='dark'] {\n .MarkdownInput-module_MarkDownInputWrapper__CarVS {\n border: 1px solid rgba(255, 255, 255, 0.23);\n }\n}\n";
4
+ var styles = {"MarkDownInput":"MarkdownInput-module_MarkDownInput__cJtct","MarkDownInputFormControl":"MarkdownInput-module_MarkDownInputFormControl__C-zxH","MarkDownInput--disabled":"MarkdownInput-module_MarkDownInput--disabled__rDXm-","MarkDownInputWrapper":"MarkdownInput-module_MarkDownInputWrapper__CarVS"};
5
+ styleInject(css_248z);
6
+
7
+ export { styles as default };
8
+ //# sourceMappingURL=MarkdownInput.module.css.esm.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"MarkdownInput.module.css.esm.js","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;;;"}
@@ -27,7 +27,7 @@ function UpdatedStatusBadge({
27
27
  {
28
28
  className: `${styles.badge} ${styles.pending}`,
29
29
  "aria-label": ariaLabel,
30
- children: /* @__PURE__ */ jsx(Text, { as: "p", children: t("rosStatus.updated") })
30
+ children: /* @__PURE__ */ jsx(Text, { as: "p", className: styles.text, children: t("rosStatus.updated") })
31
31
  }
32
32
  );
33
33
  }
@@ -1 +1 @@
1
- {"version":3,"file":"UpdatedStatusBadge.esm.js","sources":["../../../src/components/common/UpdatedStatusBadge.tsx"],"sourcesContent":["import { useTranslationRef } from '@backstage/core-plugin-api/alpha';\nimport { Text } from '@backstage/ui';\nimport { Tooltip } from '@material-ui/core';\nimport { pluginRiScTranslationRef } from '../../utils/translations';\nimport {\n UpdatedStatusEnum,\n UpdatedStatusEnumType,\n} from '../../utils/utilityfunctions';\nimport styles from './UpdatedStatusBadge.module.css';\n\ntype Props = {\n status?: UpdatedStatusEnumType | null;\n isPending?: boolean;\n};\n\nexport default function UpdatedStatusBadge({\n status,\n isPending = false,\n}: Props) {\n const { t } = useTranslationRef(pluginRiScTranslationRef);\n\n let ariaLabel: string | undefined;\n if (isPending) {\n ariaLabel = t('rosStatus.updated');\n } else if (status === UpdatedStatusEnum.VERY_OUTDATED) {\n ariaLabel = t('rosStatus.veryOutdated');\n } else if (status === UpdatedStatusEnum.OUTDATED) {\n ariaLabel = t('rosStatus.outdated');\n } else {\n ariaLabel = undefined;\n }\n\n if (isPending) {\n return (\n <span\n className={`${styles.badge} ${styles.pending}`}\n aria-label={ariaLabel}\n >\n <Text as=\"p\">{t('rosStatus.updated')}</Text>\n </span>\n );\n }\n\n if (status === UpdatedStatusEnum.VERY_OUTDATED) {\n return (\n <Tooltip title={t('rosStatus.updatedStatus.tooltip.VERY_OUTDATED')}>\n <span\n className={`${styles.badge} ${styles.veryOutdated}`}\n aria-label={ariaLabel}\n >\n <Text as=\"p\" className={styles.text}>\n {t('rosStatus.veryOutdated')}\n </Text>\n </span>\n </Tooltip>\n );\n }\n\n if (status === UpdatedStatusEnum.OUTDATED) {\n return (\n <Tooltip title={t('rosStatus.updatedStatus.tooltip.OUTDATED')}>\n <span\n className={`${styles.badge} ${styles.outdated}`}\n aria-label={ariaLabel}\n >\n <Text as=\"p\" className={styles.text}>\n {t('rosStatus.outdated')}\n </Text>\n </span>\n </Tooltip>\n );\n }\n return null;\n}\n"],"names":[],"mappings":";;;;;;;;AAeA,SAAwB,kBAAA,CAAmB;AAAA,EACzC,MAAA;AAAA,EACA,SAAA,GAAY;AACd,CAAA,EAAU;AACR,EAAA,MAAM,EAAE,CAAA,EAAE,GAAI,iBAAA,CAAkB,wBAAwB,CAAA;AAExD,EAAA,IAAI,SAAA;AACJ,EAAA,IAAI,SAAA,EAAW;AACb,IAAA,SAAA,GAAY,EAAE,mBAAmB,CAAA;AAAA,EACnC,CAAA,MAAA,IAAW,MAAA,KAAW,iBAAA,CAAkB,aAAA,EAAe;AACrD,IAAA,SAAA,GAAY,EAAE,wBAAwB,CAAA;AAAA,EACxC,CAAA,MAAA,IAAW,MAAA,KAAW,iBAAA,CAAkB,QAAA,EAAU;AAChD,IAAA,SAAA,GAAY,EAAE,oBAAoB,CAAA;AAAA,EACpC,CAAA,MAAO;AACL,IAAA,SAAA,GAAY,MAAA;AAAA,EACd;AAEA,EAAA,IAAI,SAAA,EAAW;AACb,IAAA,uBACE,GAAA;AAAA,MAAC,MAAA;AAAA,MAAA;AAAA,QACC,WAAW,CAAA,EAAG,MAAA,CAAO,KAAK,CAAA,CAAA,EAAI,OAAO,OAAO,CAAA,CAAA;AAAA,QAC5C,YAAA,EAAY,SAAA;AAAA,QAEZ,8BAAC,IAAA,EAAA,EAAK,EAAA,EAAG,GAAA,EAAK,QAAA,EAAA,CAAA,CAAE,mBAAmB,CAAA,EAAE;AAAA;AAAA,KACvC;AAAA,EAEJ;AAEA,EAAA,IAAI,MAAA,KAAW,kBAAkB,aAAA,EAAe;AAC9C,IAAA,uBACE,GAAA,CAAC,OAAA,EAAA,EAAQ,KAAA,EAAO,CAAA,CAAE,+CAA+C,CAAA,EAC/D,QAAA,kBAAA,GAAA;AAAA,MAAC,MAAA;AAAA,MAAA;AAAA,QACC,WAAW,CAAA,EAAG,MAAA,CAAO,KAAK,CAAA,CAAA,EAAI,OAAO,YAAY,CAAA,CAAA;AAAA,QACjD,YAAA,EAAY,SAAA;AAAA,QAEZ,QAAA,kBAAA,GAAA,CAAC,QAAK,EAAA,EAAG,GAAA,EAAI,WAAW,MAAA,CAAO,IAAA,EAC5B,QAAA,EAAA,CAAA,CAAE,wBAAwB,CAAA,EAC7B;AAAA;AAAA,KACF,EACF,CAAA;AAAA,EAEJ;AAEA,EAAA,IAAI,MAAA,KAAW,kBAAkB,QAAA,EAAU;AACzC,IAAA,uBACE,GAAA,CAAC,OAAA,EAAA,EAAQ,KAAA,EAAO,CAAA,CAAE,0CAA0C,CAAA,EAC1D,QAAA,kBAAA,GAAA;AAAA,MAAC,MAAA;AAAA,MAAA;AAAA,QACC,WAAW,CAAA,EAAG,MAAA,CAAO,KAAK,CAAA,CAAA,EAAI,OAAO,QAAQ,CAAA,CAAA;AAAA,QAC7C,YAAA,EAAY,SAAA;AAAA,QAEZ,QAAA,kBAAA,GAAA,CAAC,QAAK,EAAA,EAAG,GAAA,EAAI,WAAW,MAAA,CAAO,IAAA,EAC5B,QAAA,EAAA,CAAA,CAAE,oBAAoB,CAAA,EACzB;AAAA;AAAA,KACF,EACF,CAAA;AAAA,EAEJ;AACA,EAAA,OAAO,IAAA;AACT;;;;"}
1
+ {"version":3,"file":"UpdatedStatusBadge.esm.js","sources":["../../../src/components/common/UpdatedStatusBadge.tsx"],"sourcesContent":["import { useTranslationRef } from '@backstage/core-plugin-api/alpha';\nimport { Text } from '@backstage/ui';\nimport { Tooltip } from '@material-ui/core';\nimport { pluginRiScTranslationRef } from '../../utils/translations';\nimport {\n UpdatedStatusEnum,\n UpdatedStatusEnumType,\n} from '../../utils/utilityfunctions';\nimport styles from './UpdatedStatusBadge.module.css';\n\ntype Props = {\n status?: UpdatedStatusEnumType | null;\n isPending?: boolean;\n};\n\nexport default function UpdatedStatusBadge({\n status,\n isPending = false,\n}: Props) {\n const { t } = useTranslationRef(pluginRiScTranslationRef);\n\n let ariaLabel: string | undefined;\n if (isPending) {\n ariaLabel = t('rosStatus.updated');\n } else if (status === UpdatedStatusEnum.VERY_OUTDATED) {\n ariaLabel = t('rosStatus.veryOutdated');\n } else if (status === UpdatedStatusEnum.OUTDATED) {\n ariaLabel = t('rosStatus.outdated');\n } else {\n ariaLabel = undefined;\n }\n\n if (isPending) {\n return (\n <span\n className={`${styles.badge} ${styles.pending}`}\n aria-label={ariaLabel}\n >\n <Text as=\"p\" className={styles.text}>\n {t('rosStatus.updated')}\n </Text>\n </span>\n );\n }\n\n if (status === UpdatedStatusEnum.VERY_OUTDATED) {\n return (\n <Tooltip title={t('rosStatus.updatedStatus.tooltip.VERY_OUTDATED')}>\n <span\n className={`${styles.badge} ${styles.veryOutdated}`}\n aria-label={ariaLabel}\n >\n <Text as=\"p\" className={styles.text}>\n {t('rosStatus.veryOutdated')}\n </Text>\n </span>\n </Tooltip>\n );\n }\n\n if (status === UpdatedStatusEnum.OUTDATED) {\n return (\n <Tooltip title={t('rosStatus.updatedStatus.tooltip.OUTDATED')}>\n <span\n className={`${styles.badge} ${styles.outdated}`}\n aria-label={ariaLabel}\n >\n <Text as=\"p\" className={styles.text}>\n {t('rosStatus.outdated')}\n </Text>\n </span>\n </Tooltip>\n );\n }\n return null;\n}\n"],"names":[],"mappings":";;;;;;;;AAeA,SAAwB,kBAAA,CAAmB;AAAA,EACzC,MAAA;AAAA,EACA,SAAA,GAAY;AACd,CAAA,EAAU;AACR,EAAA,MAAM,EAAE,CAAA,EAAE,GAAI,iBAAA,CAAkB,wBAAwB,CAAA;AAExD,EAAA,IAAI,SAAA;AACJ,EAAA,IAAI,SAAA,EAAW;AACb,IAAA,SAAA,GAAY,EAAE,mBAAmB,CAAA;AAAA,EACnC,CAAA,MAAA,IAAW,MAAA,KAAW,iBAAA,CAAkB,aAAA,EAAe;AACrD,IAAA,SAAA,GAAY,EAAE,wBAAwB,CAAA;AAAA,EACxC,CAAA,MAAA,IAAW,MAAA,KAAW,iBAAA,CAAkB,QAAA,EAAU;AAChD,IAAA,SAAA,GAAY,EAAE,oBAAoB,CAAA;AAAA,EACpC,CAAA,MAAO;AACL,IAAA,SAAA,GAAY,MAAA;AAAA,EACd;AAEA,EAAA,IAAI,SAAA,EAAW;AACb,IAAA,uBACE,GAAA;AAAA,MAAC,MAAA;AAAA,MAAA;AAAA,QACC,WAAW,CAAA,EAAG,MAAA,CAAO,KAAK,CAAA,CAAA,EAAI,OAAO,OAAO,CAAA,CAAA;AAAA,QAC5C,YAAA,EAAY,SAAA;AAAA,QAEZ,QAAA,kBAAA,GAAA,CAAC,QAAK,EAAA,EAAG,GAAA,EAAI,WAAW,MAAA,CAAO,IAAA,EAC5B,QAAA,EAAA,CAAA,CAAE,mBAAmB,CAAA,EACxB;AAAA;AAAA,KACF;AAAA,EAEJ;AAEA,EAAA,IAAI,MAAA,KAAW,kBAAkB,aAAA,EAAe;AAC9C,IAAA,uBACE,GAAA,CAAC,OAAA,EAAA,EAAQ,KAAA,EAAO,CAAA,CAAE,+CAA+C,CAAA,EAC/D,QAAA,kBAAA,GAAA;AAAA,MAAC,MAAA;AAAA,MAAA;AAAA,QACC,WAAW,CAAA,EAAG,MAAA,CAAO,KAAK,CAAA,CAAA,EAAI,OAAO,YAAY,CAAA,CAAA;AAAA,QACjD,YAAA,EAAY,SAAA;AAAA,QAEZ,QAAA,kBAAA,GAAA,CAAC,QAAK,EAAA,EAAG,GAAA,EAAI,WAAW,MAAA,CAAO,IAAA,EAC5B,QAAA,EAAA,CAAA,CAAE,wBAAwB,CAAA,EAC7B;AAAA;AAAA,KACF,EACF,CAAA;AAAA,EAEJ;AAEA,EAAA,IAAI,MAAA,KAAW,kBAAkB,QAAA,EAAU;AACzC,IAAA,uBACE,GAAA,CAAC,OAAA,EAAA,EAAQ,KAAA,EAAO,CAAA,CAAE,0CAA0C,CAAA,EAC1D,QAAA,kBAAA,GAAA;AAAA,MAAC,MAAA;AAAA,MAAA;AAAA,QACC,WAAW,CAAA,EAAG,MAAA,CAAO,KAAK,CAAA,CAAA,EAAI,OAAO,QAAQ,CAAA,CAAA;AAAA,QAC7C,YAAA,EAAY,SAAA;AAAA,QAEZ,QAAA,kBAAA,GAAA,CAAC,QAAK,EAAA,EAAG,GAAA,EAAI,WAAW,MAAA,CAAO,IAAA,EAC5B,QAAA,EAAA,CAAA,CAAE,oBAAoB,CAAA,EACzB;AAAA;AAAA,KACF,EACF,CAAA;AAAA,EAEJ;AACA,EAAA,OAAO,IAAA;AACT;;;;"}
@@ -0,0 +1,8 @@
1
+ import styleInject from '../../node_modules_dist/style-inject/dist/style-inject.es.esm.js';
2
+
3
+ var css_248z = ".alertBar-module_alertBarBox__5jRzs {\n position: sticky;\n top: 8px;\n z-index: 100;\n}\n\n.alertBar-module_alertBar__Wh-8i {\n width: 100%;\n}\n\n/* severity variants */\n.alertBar-module_success__mspmj {\n background-color: #e9f8eb;\n border: 1px solid #66b077;\n}\n\n.alertBar-module_warning__U7erq {\n background-color: #fff7ed;\n border: 1px solid #cf914a;\n}\n\n.alertBar-module_error__h7kt6 {\n background-color: #fcf1e8;\n border: 1px solid #a32f00;\n}\n\n.alertBar-module_info__0WuLO {\n background-color: #eaf6ff;\n border: 1px solid #439ccd;\n}\n";
4
+ var styles = {"alertBarBox":"alertBar-module_alertBarBox__5jRzs","alertBar":"alertBar-module_alertBar__Wh-8i","success":"alertBar-module_success__mspmj","warning":"alertBar-module_warning__U7erq","error":"alertBar-module_error__h7kt6","info":"alertBar-module_info__0WuLO"};
5
+ styleInject(css_248z);
6
+
7
+ export { styles as default };
8
+ //# sourceMappingURL=alertBar.module.css.esm.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"alertBar.module.css.esm.js","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;;;"}
@@ -1 +1 @@
1
- {"version":3,"file":"typography.esm.js","sources":["../../../src/components/common/typography.ts"],"sourcesContent":["import { SxProps, Theme } from '@mui/material/styles';\n\nexport const heading1: SxProps<Theme> = {\n fontSize: '2rem',\n fontWeight: 700,\n};\n\nexport const heading2: SxProps<Theme> = {\n fontSize: '1.75rem',\n fontWeight: 500,\n};\n\nexport const heading3: SxProps<Theme> = {\n fontSize: '1.25rem',\n fontWeight: 500,\n};\n\nexport const body1: SxProps<Theme> = {\n fontSize: '1rem',\n fontWeight: 500,\n};\n\nexport const body2: SxProps<Theme> = {\n fontSize: '1rem',\n fontWeight: 400,\n whiteSpace: 'pre-line',\n};\n\nexport const label: SxProps<Theme> = {\n fontSize: '0.875rem',\n fontWeight: 700,\n textTransform: 'uppercase',\n paddingBottom: '0.4rem',\n};\n\nexport const label2: SxProps<Theme> = {\n fontSize: '0.875rem',\n fontWeight: 700,\n textTransform: 'uppercase',\n};\n\nexport const formLabel: SxProps<Theme> = {\n fontSize: '0.875rem',\n fontWeight: 700,\n textTransform: 'uppercase',\n color: 'inherit',\n};\n\nexport const formHelperText: SxProps<Theme> = {\n fontSize: '0.875rem',\n fontWeight: 400,\n color: 'inherit',\n margin: 0,\n};\n\nexport const emptyState: SxProps<Theme> = {\n fontSize: '1rem',\n fontStyle: 'italic',\n};\n\nexport const subtitle1: SxProps<Theme> = {\n fontSize: '1rem',\n fontWeight: 700,\n};\n\nexport const subtitle2: SxProps<Theme> = {\n fontSize: '1rem',\n fontWeight: 400,\n};\n"],"names":[],"mappings":"AAsBO,MAAM,KAAA,GAAwB;AAAA,EACnC,QAAA,EAAU,MAAA;AAAA,EACV,UAAA,EAAY,GAAA;AAAA,EACZ,UAAA,EAAY;AACd;AAEO,MAAM,KAAA,GAAwB;AAAA,EACnC,QAAA,EAAU,UAAA;AAAA,EACV,UAAA,EAAY,GAAA;AAAA,EACZ,aAAA,EAAe,WAAA;AAAA,EACf,aAAA,EAAe;AACjB;AAQO,MAAM,SAAA,GAA4B;AAAA,EACvC,QAAA,EAAU,UAAA;AAAA,EACV,UAAA,EAAY,GAAA;AAAA,EACZ,aAAA,EAAe,WAAA;AAAA,EACf,KAAA,EAAO;AACT;AAEO,MAAM,cAAA,GAAiC;AAAA,EAC5C,QAAA,EAAU,UAAA;AAAA,EACV,UAAA,EAAY,GAAA;AAAA,EACZ,KAAA,EAAO,SAAA;AAAA,EACP,MAAA,EAAQ;AACV;;;;"}
1
+ {"version":3,"file":"typography.esm.js","sources":["../../../src/components/common/typography.ts"],"sourcesContent":["import { SxProps, Theme } from '@mui/material/styles';\n\nexport const body2: SxProps<Theme> = {\n fontSize: '1rem',\n fontWeight: 400,\n whiteSpace: 'pre-line',\n};\n\nexport const label: SxProps<Theme> = {\n fontSize: '0.875rem',\n fontWeight: 700,\n textTransform: 'uppercase',\n paddingBottom: '0.4rem',\n};\n\nexport const formLabel: SxProps<Theme> = {\n fontSize: '0.875rem',\n fontWeight: 700,\n textTransform: 'uppercase',\n color: 'inherit',\n};\n\nexport const formHelperText: SxProps<Theme> = {\n fontSize: '0.875rem',\n fontWeight: 400,\n color: 'inherit',\n margin: 0,\n};\n"],"names":[],"mappings":"AAEO,MAAM,KAAA,GAAwB;AAAA,EACnC,QAAA,EAAU,MAAA;AAAA,EACV,UAAA,EAAY,GAAA;AAAA,EACZ,UAAA,EAAY;AACd;AAEO,MAAM,KAAA,GAAwB;AAAA,EACnC,QAAA,EAAU,UAAA;AAAA,EACV,UAAA,EAAY,GAAA;AAAA,EACZ,aAAA,EAAe,WAAA;AAAA,EACf,aAAA,EAAe;AACjB;AAEO,MAAM,SAAA,GAA4B;AAAA,EACvC,QAAA,EAAU,UAAA;AAAA,EACV,UAAA,EAAY,GAAA;AAAA,EACZ,aAAA,EAAe,WAAA;AAAA,EACf,KAAA,EAAO;AACT;AAEO,MAAM,cAAA,GAAiC;AAAA,EAC5C,QAAA,EAAU,UAAA;AAAA,EACV,UAAA,EAAY,GAAA;AAAA,EACZ,KAAA,EAAO,SAAA;AAAA,EACP,MAAA,EAAQ;AACV;;;;"}
@@ -1,5 +1,5 @@
1
1
  import { jsxs, jsx, Fragment } from 'react/jsx-runtime';
2
- import { Divider, DialogContentText, Accordion, AccordionSummary, AccordionDetails, FormLabel, List, ListItem, ListItemText, ListItemSecondaryAction, IconButton, TextField } from '@mui/material';
2
+ import { Accordion, AccordionSummary, AccordionDetails, FormLabel, List, ListItem, ListItemText, ListItemSecondaryAction, IconButton, TextField } from '@mui/material';
3
3
  import { GcpCryptoKeyMenu } from '../sopsConfigDialog/GcpCryptoKeyMenu.esm.js';
4
4
  import { useTranslationRef } from '@backstage/core-plugin-api/alpha';
5
5
  import { pluginRiScTranslationRef } from '../../utils/translations.esm.js';
@@ -90,22 +90,22 @@ function ConfigEncryptionDialog({
90
90
  setPublicKeyTextFieldError(true);
91
91
  }
92
92
  }
93
- return /* @__PURE__ */ jsxs(Flex, { direction: "column", gap: "16px", children: [
94
- /* @__PURE__ */ jsx(Divider, {}),
95
- /* @__PURE__ */ jsx(Text, { as: "h2", variant: "title-small", weight: "bold", children: t("rosDialog.stepEncryption") }),
96
- /* @__PURE__ */ jsx(DialogContentText, { children: state === RiScDialogStates.Create ? t("sopsConfigDialog.description.new") : t("sopsConfigDialog.description.edit") }),
97
- /* @__PURE__ */ jsx(Text, { variant: "body-medium", weight: "bold", children: t("sopsConfigDialog.selectKeysTitle") }),
98
- chosenGcpCryptoKey !== void 0 ? /* @__PURE__ */ jsxs(Fragment, { children: [
99
- t("sopsConfigDialog.gcpCryptoKeyDescription"),
100
- /* @__PURE__ */ jsx(
101
- GcpCryptoKeyMenu,
102
- {
103
- chosenGcpCryptoKey,
104
- onChange: handleChangeGcpCryptoKey,
105
- gcpCryptoKeys: gcpCryptoKeys.includes(chosenGcpCryptoKey) ? gcpCryptoKeys : [...gcpCryptoKeys, chosenGcpCryptoKey]
106
- }
107
- )
108
- ] }) : /* @__PURE__ */ jsx(Text, { variant: "body-medium", children: t("sopsConfigDialog.gcpCryptoKeyNoSelectableKey") }),
93
+ return /* @__PURE__ */ jsxs(Flex, { direction: "column", children: [
94
+ /* @__PURE__ */ jsx(Text, { children: state === RiScDialogStates.Create ? t("sopsConfigDialog.description.new") : t("sopsConfigDialog.description.edit") }),
95
+ /* @__PURE__ */ jsxs(Flex, { direction: "column", gap: "0px", children: [
96
+ /* @__PURE__ */ jsx(Text, { variant: "body-medium", weight: "bold", children: t("sopsConfigDialog.selectKeysTitle") }),
97
+ chosenGcpCryptoKey !== void 0 ? /* @__PURE__ */ jsxs(Fragment, { children: [
98
+ /* @__PURE__ */ jsx(Text, { children: t("sopsConfigDialog.gcpCryptoKeyDescription") }),
99
+ /* @__PURE__ */ jsx(
100
+ GcpCryptoKeyMenu,
101
+ {
102
+ chosenGcpCryptoKey,
103
+ onChange: handleChangeGcpCryptoKey,
104
+ gcpCryptoKeys: gcpCryptoKeys.includes(chosenGcpCryptoKey) ? gcpCryptoKeys : [...gcpCryptoKeys, chosenGcpCryptoKey]
105
+ }
106
+ )
107
+ ] }) : /* @__PURE__ */ jsx(Text, { variant: "body-medium", children: t("sopsConfigDialog.gcpCryptoKeyNoSelectableKey") })
108
+ ] }),
109
109
  errors.sopsConfig !== void 0 && /* @__PURE__ */ jsx(FormHelperText, { error: true, children: t("sopsConfigDialog.gcpCryptoKeyNonSelectedErrorMessage") }),
110
110
  /* @__PURE__ */ jsx(Box, { children: /* @__PURE__ */ jsxs(Accordion, { elevation: 1, defaultExpanded: publicAgeKeys.length > 0, children: [
111
111
  /* @__PURE__ */ jsx(
@@ -1 +1 @@
1
- {"version":3,"file":"ConfigEncryptionDialog.esm.js","sources":["../../../src/components/riScDialog/ConfigEncryptionDialog.tsx"],"sourcesContent":["import {\n Accordion,\n AccordionDetails,\n AccordionSummary,\n DialogContentText,\n FormLabel,\n IconButton,\n List,\n ListItem,\n ListItemSecondaryAction,\n ListItemText,\n TextField,\n} from '@mui/material';\nimport { GcpCryptoKeyMenu } from '../sopsConfigDialog/GcpCryptoKeyMenu';\nimport { useTranslationRef } from '@backstage/core-plugin-api/alpha';\nimport { pluginRiScTranslationRef } from '../../utils/translations';\nimport { AddCircle, ExpandMore } from '@mui/icons-material';\nimport DeleteIcon from '@mui/icons-material/Delete';\nimport { GcpCryptoKeyObject, SopsConfigDTO } from '../../utils/DTOs';\nimport { useEffect, useState } from 'react';\nimport { RiScWithMetadata } from '../../utils/types';\nimport { UseFormRegister, UseFormSetValue } from 'react-hook-form';\nimport { RiScDialogStates } from './RiScDialog';\nimport { isPublicAgeKeyValid } from '../../utils/utilityfunctions';\nimport { FieldErrors } from 'react-hook-form/dist/types/errors';\nimport FormHelperText from '@mui/material/FormHelperText';\nimport { URLS } from '../../urls';\nimport { Text, Link, Button, Flex, Box } from '@backstage/ui';\nimport { Divider } from '@mui/material';\n\ninterface ConfigEncryptionDialogProps {\n gcpCryptoKeys: GcpCryptoKeyObject[];\n sopsData?: SopsConfigDTO;\n setValue: UseFormSetValue<RiScWithMetadata>;\n register: UseFormRegister<RiScWithMetadata>;\n errors: FieldErrors<RiScWithMetadata>;\n state: RiScDialogStates;\n}\n\nfunction ConfigEncryptionDialog({\n gcpCryptoKeys,\n sopsData,\n setValue,\n register,\n errors,\n state,\n}: ConfigEncryptionDialogProps) {\n const { t } = useTranslationRef(pluginRiScTranslationRef);\n const [publicAgeKeyHelperText, setPublicKeyTextFieldHelperText] =\n useState('');\n const [publicAgeKeyError, setPublicKeyTextFieldError] = useState(false);\n const [newPublicAgeKey, setNewPublicAgeKey] = useState('');\n const [publicAgeKeys, setPublicAgeKeys] = useState<string[]>(() => {\n if (sopsData?.age) {\n return sopsData.age.map(age => age.recipient);\n }\n return [];\n });\n\n const [chosenGcpCryptoKey, setChosenGcpCryptoKey] =\n useState<GcpCryptoKeyObject>(() => {\n if (state === RiScDialogStates.EditEncryption && sopsData?.gcp_kms) {\n const gcpKms = sopsData.gcp_kms[0];\n if (gcpKms?.resource_id) {\n const resourceParts = gcpKms.resource_id.split('/');\n if (resourceParts.length === 8) {\n return {\n projectId: resourceParts[1],\n keyRing: resourceParts[5],\n keyName: resourceParts[7],\n locations: resourceParts[3],\n resourceId: gcpKms.resource_id,\n createdAt: gcpKms.created_at,\n hasEncryptDecryptAccess: true,\n };\n }\n }\n }\n return gcpCryptoKeys[0];\n });\n\n const [isAddPublicAgeKeyVisible, setIsAddPublicAgeKeyVisible] =\n useState(false);\n\n function showAddPublicAgeKey() {\n setIsAddPublicAgeKeyVisible(true);\n }\n\n useEffect(() => {\n setValue('sopsConfig', {\n shamir_threshold: 2,\n gcp_kms: chosenGcpCryptoKey\n ? [\n {\n resource_id: chosenGcpCryptoKey.resourceId,\n created_at: chosenGcpCryptoKey.createdAt,\n },\n ]\n : [],\n age: publicAgeKeys.map(key => ({ recipient: key })),\n });\n }, [chosenGcpCryptoKey, publicAgeKeys, setValue]);\n\n // Require one key group to contain a GCP key\n register('sopsConfig.gcp_kms', {\n validate: gcpKeys => gcpKeys.length > 0,\n });\n\n function handleChangeGcpCryptoKey(newKey: GcpCryptoKeyObject) {\n setChosenGcpCryptoKey(newKey);\n }\n\n function handleAddPublicAgeKey() {\n if (isPublicAgeKeyValid(newPublicAgeKey)) {\n if (publicAgeKeys.includes(newPublicAgeKey)) {\n setPublicKeyTextFieldHelperText(\n t('sopsConfigDialog.publicKeyHelperTextKeyAlreadyExistInSopsConfig'),\n );\n setPublicKeyTextFieldError(true);\n } else {\n setPublicAgeKeys([...publicAgeKeys, newPublicAgeKey]);\n setNewPublicAgeKey('');\n }\n } else {\n setPublicKeyTextFieldHelperText(\n t('sopsConfigDialog.publicKeyHelperTextKeyNotValid'),\n );\n setPublicKeyTextFieldError(true);\n }\n }\n\n return (\n <Flex direction=\"column\" gap=\"16px\">\n <Divider />\n <Text as=\"h2\" variant=\"title-small\" weight=\"bold\">\n {t('rosDialog.stepEncryption')}\n </Text>\n <DialogContentText>\n {state === RiScDialogStates.Create\n ? t('sopsConfigDialog.description.new')\n : t('sopsConfigDialog.description.edit')}\n </DialogContentText>\n <Text variant=\"body-medium\" weight=\"bold\">\n {t('sopsConfigDialog.selectKeysTitle')}\n </Text>\n\n {chosenGcpCryptoKey !== undefined ? (\n <>\n {t('sopsConfigDialog.gcpCryptoKeyDescription')}\n <GcpCryptoKeyMenu\n chosenGcpCryptoKey={chosenGcpCryptoKey}\n onChange={handleChangeGcpCryptoKey}\n gcpCryptoKeys={\n gcpCryptoKeys.includes(chosenGcpCryptoKey)\n ? gcpCryptoKeys\n : [...gcpCryptoKeys, chosenGcpCryptoKey]\n }\n />\n </>\n ) : (\n <Text variant=\"body-medium\">\n {t('sopsConfigDialog.gcpCryptoKeyNoSelectableKey')}\n </Text>\n )}\n {errors.sopsConfig !== undefined && (\n <FormHelperText error={true}>\n {t('sopsConfigDialog.gcpCryptoKeyNonSelectedErrorMessage')}\n </FormHelperText>\n )}\n <Box>\n <Accordion elevation={1} defaultExpanded={publicAgeKeys.length > 0}>\n <AccordionSummary\n expandIcon={<ExpandMore />}\n aria-controls=\"panel1-content\"\n id=\"panel1-header\"\n >\n {t('sopsConfigDialog.publicAgeKeyQuestion')}\n </AccordionSummary>\n <AccordionDetails>\n <Box>\n {publicAgeKeys.length > 0 && (\n <FormLabel>\n {t('sopsConfigDialog.publicAgeKeysAlreadyPresent')}\n </FormLabel>\n )}\n {publicAgeKeys.length > 0 && (\n <Box\n style={{\n border: '1px solid',\n borderRadius: '4px',\n marginBottom: 2,\n }}\n >\n <List>\n {publicAgeKeys.map(key => (\n <ListItem key={key} dense>\n <ListItemText>{key}</ListItemText>\n <ListItemSecondaryAction>\n <IconButton\n onClick={() => {\n setPublicAgeKeys(\n publicAgeKeys.filter(k => k !== key),\n );\n }}\n >\n <DeleteIcon />\n </IconButton>\n </ListItemSecondaryAction>\n </ListItem>\n ))}\n </List>\n </Box>\n )}\n <Text as=\"p\" variant=\"body-large\">\n {t('dictionary.click')}{' '}\n <Link\n href={\n URLS.external.kartverket_atlassian_net__write_ros_locally\n }\n target=\"_blank\"\n rel=\"noopener noreferrer\"\n color=\"primary\"\n >\n {t('dictionary.here')}\n </Link>{' '}\n {t('sopsConfigDialog.writeLocalRiscSuffix')}\n </Text>\n <Text as=\"p\" variant=\"body-large\">\n {`${t('sopsConfigDialog.publicAgeKeyDescription')} (${t(\n 'dictionary.optional',\n )})`}{' '}\n </Text>\n <Flex direction=\"column\" justify=\"between\" gap=\"2\" mt=\"2\">\n {!isAddPublicAgeKeyVisible && (\n <Button\n iconStart={<AddCircle />}\n type=\"button\"\n variant=\"secondary\"\n onClick={showAddPublicAgeKey}\n style={{\n width: 'fit-content',\n marginTop: '1rem',\n }}\n >\n {t('sopsConfigDialog.addPublicAgeKey')}\n </Button>\n )}\n {isAddPublicAgeKeyVisible && (\n <Flex align=\"center\" gap=\"1\">\n <TextField\n label={t('sopsConfigDialog.publicAgeKey')}\n helperText={publicAgeKeyHelperText}\n error={publicAgeKeyError}\n onKeyDown={e => {\n if (e.key === 'Enter') {\n handleAddPublicAgeKey();\n }\n }}\n onFocus={() => {\n setPublicKeyTextFieldError(false);\n setPublicKeyTextFieldHelperText('');\n }}\n value={newPublicAgeKey}\n onChange={e => setNewPublicAgeKey(e.target.value)}\n sx={{ flex: 1 }}\n />\n <Button\n variant=\"primary\"\n onClick={handleAddPublicAgeKey}\n style={{\n maxWidth: 200,\n }}\n >\n {t('sopsConfigDialog.addPublicAgeKey')}\n </Button>\n </Flex>\n )}\n </Flex>\n </Box>\n </AccordionDetails>\n </Accordion>\n </Box>\n </Flex>\n );\n}\n\nexport default ConfigEncryptionDialog;\n"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"ConfigEncryptionDialog.esm.js","sources":["../../../src/components/riScDialog/ConfigEncryptionDialog.tsx"],"sourcesContent":["import {\n Accordion,\n AccordionDetails,\n AccordionSummary,\n FormLabel,\n IconButton,\n List,\n ListItem,\n ListItemSecondaryAction,\n ListItemText,\n TextField,\n} from '@mui/material';\nimport { GcpCryptoKeyMenu } from '../sopsConfigDialog/GcpCryptoKeyMenu';\nimport { useTranslationRef } from '@backstage/core-plugin-api/alpha';\nimport { pluginRiScTranslationRef } from '../../utils/translations';\nimport { AddCircle, ExpandMore } from '@mui/icons-material';\nimport DeleteIcon from '@mui/icons-material/Delete';\nimport { GcpCryptoKeyObject, SopsConfigDTO } from '../../utils/DTOs';\nimport { useEffect, useState } from 'react';\nimport { RiScWithMetadata } from '../../utils/types';\nimport { UseFormRegister, UseFormSetValue } from 'react-hook-form';\nimport { RiScDialogStates } from './RiScDialog';\nimport { isPublicAgeKeyValid } from '../../utils/utilityfunctions';\nimport { FieldErrors } from 'react-hook-form/dist/types/errors';\nimport FormHelperText from '@mui/material/FormHelperText';\nimport { URLS } from '../../urls';\nimport { Text, Link, Button, Flex, Box } from '@backstage/ui';\n\ninterface ConfigEncryptionDialogProps {\n gcpCryptoKeys: GcpCryptoKeyObject[];\n sopsData?: SopsConfigDTO;\n setValue: UseFormSetValue<RiScWithMetadata>;\n register: UseFormRegister<RiScWithMetadata>;\n errors: FieldErrors<RiScWithMetadata>;\n state: RiScDialogStates;\n}\n\nfunction ConfigEncryptionDialog({\n gcpCryptoKeys,\n sopsData,\n setValue,\n register,\n errors,\n state,\n}: ConfigEncryptionDialogProps) {\n const { t } = useTranslationRef(pluginRiScTranslationRef);\n const [publicAgeKeyHelperText, setPublicKeyTextFieldHelperText] =\n useState('');\n const [publicAgeKeyError, setPublicKeyTextFieldError] = useState(false);\n const [newPublicAgeKey, setNewPublicAgeKey] = useState('');\n const [publicAgeKeys, setPublicAgeKeys] = useState<string[]>(() => {\n if (sopsData?.age) {\n return sopsData.age.map(age => age.recipient);\n }\n return [];\n });\n\n const [chosenGcpCryptoKey, setChosenGcpCryptoKey] =\n useState<GcpCryptoKeyObject>(() => {\n if (state === RiScDialogStates.EditEncryption && sopsData?.gcp_kms) {\n const gcpKms = sopsData.gcp_kms[0];\n if (gcpKms?.resource_id) {\n const resourceParts = gcpKms.resource_id.split('/');\n if (resourceParts.length === 8) {\n return {\n projectId: resourceParts[1],\n keyRing: resourceParts[5],\n keyName: resourceParts[7],\n locations: resourceParts[3],\n resourceId: gcpKms.resource_id,\n createdAt: gcpKms.created_at,\n hasEncryptDecryptAccess: true,\n };\n }\n }\n }\n return gcpCryptoKeys[0];\n });\n\n const [isAddPublicAgeKeyVisible, setIsAddPublicAgeKeyVisible] =\n useState(false);\n\n function showAddPublicAgeKey() {\n setIsAddPublicAgeKeyVisible(true);\n }\n\n useEffect(() => {\n setValue('sopsConfig', {\n shamir_threshold: 2,\n gcp_kms: chosenGcpCryptoKey\n ? [\n {\n resource_id: chosenGcpCryptoKey.resourceId,\n created_at: chosenGcpCryptoKey.createdAt,\n },\n ]\n : [],\n age: publicAgeKeys.map(key => ({ recipient: key })),\n });\n }, [chosenGcpCryptoKey, publicAgeKeys, setValue]);\n\n // Require one key group to contain a GCP key\n register('sopsConfig.gcp_kms', {\n validate: gcpKeys => gcpKeys.length > 0,\n });\n\n function handleChangeGcpCryptoKey(newKey: GcpCryptoKeyObject) {\n setChosenGcpCryptoKey(newKey);\n }\n\n function handleAddPublicAgeKey() {\n if (isPublicAgeKeyValid(newPublicAgeKey)) {\n if (publicAgeKeys.includes(newPublicAgeKey)) {\n setPublicKeyTextFieldHelperText(\n t('sopsConfigDialog.publicKeyHelperTextKeyAlreadyExistInSopsConfig'),\n );\n setPublicKeyTextFieldError(true);\n } else {\n setPublicAgeKeys([...publicAgeKeys, newPublicAgeKey]);\n setNewPublicAgeKey('');\n }\n } else {\n setPublicKeyTextFieldHelperText(\n t('sopsConfigDialog.publicKeyHelperTextKeyNotValid'),\n );\n setPublicKeyTextFieldError(true);\n }\n }\n\n return (\n <Flex direction=\"column\">\n <Text>\n {state === RiScDialogStates.Create\n ? t('sopsConfigDialog.description.new')\n : t('sopsConfigDialog.description.edit')}\n </Text>\n <Flex direction=\"column\" gap=\"0px\">\n <Text variant=\"body-medium\" weight=\"bold\">\n {t('sopsConfigDialog.selectKeysTitle')}\n </Text>\n {chosenGcpCryptoKey !== undefined ? (\n <>\n <Text>{t('sopsConfigDialog.gcpCryptoKeyDescription')}</Text>\n <GcpCryptoKeyMenu\n chosenGcpCryptoKey={chosenGcpCryptoKey}\n onChange={handleChangeGcpCryptoKey}\n gcpCryptoKeys={\n gcpCryptoKeys.includes(chosenGcpCryptoKey)\n ? gcpCryptoKeys\n : [...gcpCryptoKeys, chosenGcpCryptoKey]\n }\n />\n </>\n ) : (\n <Text variant=\"body-medium\">\n {t('sopsConfigDialog.gcpCryptoKeyNoSelectableKey')}\n </Text>\n )}\n </Flex>\n {errors.sopsConfig !== undefined && (\n <FormHelperText error={true}>\n {t('sopsConfigDialog.gcpCryptoKeyNonSelectedErrorMessage')}\n </FormHelperText>\n )}\n <Box>\n <Accordion elevation={1} defaultExpanded={publicAgeKeys.length > 0}>\n <AccordionSummary\n expandIcon={<ExpandMore />}\n aria-controls=\"panel1-content\"\n id=\"panel1-header\"\n >\n {t('sopsConfigDialog.publicAgeKeyQuestion')}\n </AccordionSummary>\n <AccordionDetails>\n <Box>\n {publicAgeKeys.length > 0 && (\n <FormLabel>\n {t('sopsConfigDialog.publicAgeKeysAlreadyPresent')}\n </FormLabel>\n )}\n {publicAgeKeys.length > 0 && (\n <Box\n style={{\n border: '1px solid',\n borderRadius: '4px',\n marginBottom: 2,\n }}\n >\n <List>\n {publicAgeKeys.map(key => (\n <ListItem key={key} dense>\n <ListItemText>{key}</ListItemText>\n <ListItemSecondaryAction>\n <IconButton\n onClick={() => {\n setPublicAgeKeys(\n publicAgeKeys.filter(k => k !== key),\n );\n }}\n >\n <DeleteIcon />\n </IconButton>\n </ListItemSecondaryAction>\n </ListItem>\n ))}\n </List>\n </Box>\n )}\n <Text as=\"p\" variant=\"body-large\">\n {t('dictionary.click')}{' '}\n <Link\n href={\n URLS.external.kartverket_atlassian_net__write_ros_locally\n }\n target=\"_blank\"\n rel=\"noopener noreferrer\"\n color=\"primary\"\n >\n {t('dictionary.here')}\n </Link>{' '}\n {t('sopsConfigDialog.writeLocalRiscSuffix')}\n </Text>\n <Text as=\"p\" variant=\"body-large\">\n {`${t('sopsConfigDialog.publicAgeKeyDescription')} (${t(\n 'dictionary.optional',\n )})`}{' '}\n </Text>\n <Flex direction=\"column\" justify=\"between\" gap=\"2\" mt=\"2\">\n {!isAddPublicAgeKeyVisible && (\n <Button\n iconStart={<AddCircle />}\n type=\"button\"\n variant=\"secondary\"\n onClick={showAddPublicAgeKey}\n style={{\n width: 'fit-content',\n marginTop: '1rem',\n }}\n >\n {t('sopsConfigDialog.addPublicAgeKey')}\n </Button>\n )}\n {isAddPublicAgeKeyVisible && (\n <Flex align=\"center\" gap=\"1\">\n <TextField\n label={t('sopsConfigDialog.publicAgeKey')}\n helperText={publicAgeKeyHelperText}\n error={publicAgeKeyError}\n onKeyDown={e => {\n if (e.key === 'Enter') {\n handleAddPublicAgeKey();\n }\n }}\n onFocus={() => {\n setPublicKeyTextFieldError(false);\n setPublicKeyTextFieldHelperText('');\n }}\n value={newPublicAgeKey}\n onChange={e => setNewPublicAgeKey(e.target.value)}\n sx={{ flex: 1 }}\n />\n <Button\n variant=\"primary\"\n onClick={handleAddPublicAgeKey}\n style={{\n maxWidth: 200,\n }}\n >\n {t('sopsConfigDialog.addPublicAgeKey')}\n </Button>\n </Flex>\n )}\n </Flex>\n </Box>\n </AccordionDetails>\n </Accordion>\n </Box>\n </Flex>\n );\n}\n\nexport default ConfigEncryptionDialog;\n"],"names":[],"mappings":"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"}
@@ -1,9 +1,8 @@
1
- import { jsxs, Fragment, jsx } from 'react/jsx-runtime';
1
+ import { jsx, Fragment, jsxs } from 'react/jsx-runtime';
2
2
  import { pluginRiScTranslationRef } from '../../utils/translations.esm.js';
3
3
  import { useTranslationRef } from '@backstage/core-plugin-api/alpha';
4
4
  import { Box, Text, Switch, Flex, RadioGroup, Radio } from '@backstage/ui';
5
5
  import { RiScDialogStates } from './RiScDialog.esm.js';
6
- import { Divider } from '@mui/material';
7
6
  import { useDefaultRiScTypeDescriptors } from '../../contexts/DefaultRiScTypesContext.esm.js';
8
7
  import { useTheme } from '@mui/material/styles';
9
8
 
@@ -100,69 +99,62 @@ function ConfigInitialRisc(props) {
100
99
  props.setValue("content.scope", descriptor.defaultScope);
101
100
  }
102
101
  }
103
- return /* @__PURE__ */ jsxs(Fragment, { children: [
104
- /* @__PURE__ */ jsx(Divider, { sx: { margin: "16px" } }),
105
- props.dialogState === RiScDialogStates.Create && /* @__PURE__ */ jsx(Fragment, { children: /* @__PURE__ */ jsxs(Box, { children: [
106
- /* @__PURE__ */ jsx(Box, { mb: "4", children: /* @__PURE__ */ jsxs(Text, { variant: "title-small", as: "h6", weight: "bold", children: [
107
- t("rosDialog.initialRiscTitle"),
108
- " "
109
- ] }) }),
110
- defaultRiScTypeDescriptors.length > 0 && /* @__PURE__ */ jsxs(Fragment, { children: [
111
- /* @__PURE__ */ jsxs(Box, { pb: "2", children: [
112
- /* @__PURE__ */ jsx(Text, { variant: "body-medium", as: "p", children: t("rosDialog.initialRiscScopeDescription") }),
113
- /* @__PURE__ */ jsx(
114
- Switch,
115
- {
116
- isSelected: props.switchOn,
117
- onChange: onCreateDefaultRiScSwitchChange,
118
- label: props.switchOn ? t("dictionary.yes") : t("dictionary.no")
119
- }
120
- )
121
- ] }),
122
- /* @__PURE__ */ jsxs(Flex, { direction: "column", justify: "between", mt: "2", gap: "2", children: [
123
- /* @__PURE__ */ jsx(
124
- Text,
125
- {
126
- weight: "bold",
127
- as: "p",
128
- color: !props.switchOn ? "secondary" : "primary",
129
- children: t("rosDialog.applicationType")
130
- }
131
- ),
132
- /* @__PURE__ */ jsx(
133
- Text,
134
- {
135
- variant: "body-medium",
136
- color: !props.switchOn ? "secondary" : "primary",
137
- children: t("rosDialog.initialRiscApplicationType")
138
- }
139
- ),
140
- /* @__PURE__ */ jsx(
141
- RadioGroup,
142
- {
143
- onChange: onSelectRiScType,
144
- isDisabled: !props.switchOn,
145
- "aria-label": "Select application type",
146
- value: props.selectedRiScId,
147
- children: defaultRiScTypeDescriptors.map((descriptor) => /* @__PURE__ */ jsx(
148
- RadioOption,
149
- {
150
- value: descriptor.id,
151
- label: descriptor.listName,
152
- description: descriptor.listDescription,
153
- active: !props.switchOn,
154
- numActions: descriptor.numberOfActions,
155
- numScenarios: descriptor.numberOfScenarios
156
- },
157
- descriptor.id
158
- ))
159
- }
160
- )
161
- ] })
102
+ return /* @__PURE__ */ jsx(Fragment, { children: props.dialogState === RiScDialogStates.Create && /* @__PURE__ */ jsx(Fragment, { children: /* @__PURE__ */ jsxs(Box, { children: [
103
+ defaultRiScTypeDescriptors.length > 0 && /* @__PURE__ */ jsxs(Fragment, { children: [
104
+ /* @__PURE__ */ jsxs(Box, { pb: "2", children: [
105
+ /* @__PURE__ */ jsx(Text, { variant: "body-medium", as: "p", children: t("rosDialog.initialRiscScopeDescription") }),
106
+ /* @__PURE__ */ jsx(
107
+ Switch,
108
+ {
109
+ isSelected: props.switchOn,
110
+ onChange: onCreateDefaultRiScSwitchChange,
111
+ label: props.switchOn ? t("dictionary.yes") : t("dictionary.no")
112
+ }
113
+ )
162
114
  ] }),
163
- defaultRiScTypeDescriptors.length === 0 && /* @__PURE__ */ jsx(Text, { children: t("rosDialog.noInitialRiScFound") })
164
- ] }) })
165
- ] });
115
+ /* @__PURE__ */ jsxs(Flex, { direction: "column", justify: "between", mt: "2", gap: "2", children: [
116
+ /* @__PURE__ */ jsx(
117
+ Text,
118
+ {
119
+ weight: "bold",
120
+ as: "p",
121
+ color: !props.switchOn ? "secondary" : "primary",
122
+ children: t("rosDialog.applicationType")
123
+ }
124
+ ),
125
+ /* @__PURE__ */ jsx(
126
+ Text,
127
+ {
128
+ variant: "body-medium",
129
+ color: !props.switchOn ? "secondary" : "primary",
130
+ children: t("rosDialog.initialRiscApplicationType")
131
+ }
132
+ ),
133
+ /* @__PURE__ */ jsx(
134
+ RadioGroup,
135
+ {
136
+ onChange: onSelectRiScType,
137
+ isDisabled: !props.switchOn,
138
+ "aria-label": "Select application type",
139
+ value: props.selectedRiScId,
140
+ children: defaultRiScTypeDescriptors.map((descriptor) => /* @__PURE__ */ jsx(
141
+ RadioOption,
142
+ {
143
+ value: descriptor.id,
144
+ label: descriptor.listName,
145
+ description: descriptor.listDescription,
146
+ active: !props.switchOn,
147
+ numActions: descriptor.numberOfActions,
148
+ numScenarios: descriptor.numberOfScenarios
149
+ },
150
+ descriptor.id
151
+ ))
152
+ }
153
+ )
154
+ ] })
155
+ ] }),
156
+ defaultRiScTypeDescriptors.length === 0 && /* @__PURE__ */ jsx(Text, { children: t("rosDialog.noInitialRiScFound") })
157
+ ] }) }) });
166
158
  }
167
159
 
168
160
  export { ConfigInitialRisc as default };
@@ -1 +1 @@
1
- {"version":3,"file":"ConfigInitialRisc.esm.js","sources":["../../../src/components/riScDialog/ConfigInitialRisc.tsx"],"sourcesContent":["import { pluginRiScTranslationRef } from '../../utils/translations';\nimport { useTranslationRef } from '@backstage/core-plugin-api/alpha';\nimport { Box, Flex, Radio, RadioGroup, Switch, Text } from '@backstage/ui';\nimport { RiScDialogStates } from './RiScDialog';\nimport { Divider } from '@mui/material';\nimport { RiScWithMetadata } from '../../utils/types.ts';\nimport { useDefaultRiScTypeDescriptors } from '../../contexts/DefaultRiScTypesContext.tsx';\nimport { UseFormSetValue } from 'react-hook-form/dist/types/form';\nimport { useTheme } from '@mui/material/styles';\n\ntype RadioOptionProps = {\n value: string;\n label: string;\n description?: string;\n active?: boolean;\n numActions: number | null;\n numScenarios: number | null;\n};\n\nconst RadioOption = ({\n value,\n label,\n description,\n active = true,\n numActions,\n numScenarios,\n}: RadioOptionProps) => {\n const { t } = useTranslationRef(pluginRiScTranslationRef);\n const theme = useTheme();\n const style = {\n fontSize: '12px',\n border: `1px solid ${active ? 'var(--bui-gray-6)' : 'var(--bui-gray-8)'}`,\n borderRadius: '24px',\n padding: '2px 8px',\n };\n\n return (\n <>\n <Flex\n direction=\"column\"\n align=\"start\"\n p=\"12px 16px\"\n gap=\"2\"\n style={{\n backgroundColor:\n theme.palette.mode === 'dark'\n ? 'var(--bui-gray-5)'\n : 'var(--bui-gray-2)',\n borderRadius: '8px',\n }}\n >\n <Radio value={value}>\n <Text\n weight=\"bold\"\n as=\"h5\"\n variant=\"body-large\"\n color={active ? 'secondary' : 'primary'}\n >\n {label}\n </Text>\n <Flex gap=\"8px\">\n <Text color={active ? 'secondary' : 'primary'} style={style}>\n {numActions} {t('dictionary.measuresInitialRiSc')}\n </Text>\n <Text color={active ? 'secondary' : 'primary'} style={style}>\n {numScenarios} {t('dictionary.scenarios')}\n </Text>\n </Flex>\n </Radio>\n {description && (\n <Flex ml=\"6\">\n <Text\n as=\"p\"\n variant=\"body-large\"\n color={active ? 'secondary' : 'primary'}\n >\n {description}\n </Text>\n </Flex>\n )}\n </Flex>\n </>\n );\n};\n\ninterface ConfigInitialRiscProps {\n dialogState: RiScDialogStates;\n switchOn: boolean;\n setSwitchOn: (val: boolean) => void;\n setValue: UseFormSetValue<RiScWithMetadata>;\n selectedRiScId: string | undefined;\n setSelectedRiScId: (riScId: string | undefined) => void;\n}\n\nfunction ConfigInitialRisc(props: ConfigInitialRiscProps) {\n const { t } = useTranslationRef(pluginRiScTranslationRef);\n const {\n defaultRiScTypeDescriptors,\n riScSelectedByDefault,\n getDescriptorOfId,\n } = useDefaultRiScTypeDescriptors();\n\n function onCreateDefaultRiScSwitchChange() {\n if (props.switchOn) {\n props.setValue('content.title', '');\n props.setValue('content.scope', '');\n } else {\n props.setSelectedRiScId(riScSelectedByDefault?.id);\n if (riScSelectedByDefault) {\n props.setValue('content.title', riScSelectedByDefault.defaultTitle);\n props.setValue('content.scope', riScSelectedByDefault.defaultScope);\n }\n }\n props.setSwitchOn(!props.switchOn);\n }\n\n function onSelectRiScType(selectedDefaultRiScId: string) {\n props.setSelectedRiScId(selectedDefaultRiScId);\n const descriptor = getDescriptorOfId(selectedDefaultRiScId);\n if (descriptor) {\n props.setValue('content.title', descriptor.defaultTitle);\n props.setValue('content.scope', descriptor.defaultScope);\n }\n }\n\n return (\n <>\n <Divider sx={{ margin: '16px' }} />\n {props.dialogState === RiScDialogStates.Create && (\n <>\n <Box>\n <Box mb=\"4\">\n <Text variant=\"title-small\" as=\"h6\" weight=\"bold\">\n {t('rosDialog.initialRiscTitle')}{' '}\n </Text>\n </Box>\n {defaultRiScTypeDescriptors.length > 0 && (\n <>\n <Box pb=\"2\">\n <Text variant=\"body-medium\" as=\"p\">\n {t('rosDialog.initialRiscScopeDescription')}\n </Text>\n <Switch\n isSelected={props.switchOn}\n onChange={onCreateDefaultRiScSwitchChange}\n label={\n props.switchOn ? t('dictionary.yes') : t('dictionary.no')\n }\n />\n </Box>\n <Flex direction=\"column\" justify=\"between\" mt=\"2\" gap=\"2\">\n <Text\n weight=\"bold\"\n as=\"p\"\n color={!props.switchOn ? 'secondary' : 'primary'}\n >\n {t('rosDialog.applicationType')}\n </Text>\n <Text\n variant=\"body-medium\"\n color={!props.switchOn ? 'secondary' : 'primary'}\n >\n {t('rosDialog.initialRiscApplicationType')}\n </Text>\n\n <RadioGroup\n onChange={onSelectRiScType}\n isDisabled={!props.switchOn}\n aria-label=\"Select application type\"\n value={props.selectedRiScId}\n >\n {defaultRiScTypeDescriptors.map(descriptor => (\n <RadioOption\n key={descriptor.id}\n value={descriptor.id}\n label={descriptor.listName}\n description={descriptor.listDescription}\n active={!props.switchOn}\n numActions={descriptor.numberOfActions}\n numScenarios={descriptor.numberOfScenarios}\n />\n ))}\n </RadioGroup>\n </Flex>\n </>\n )}\n {defaultRiScTypeDescriptors.length === 0 && (\n <Text>{t('rosDialog.noInitialRiScFound')}</Text>\n )}\n </Box>\n </>\n )}\n </>\n );\n}\n\nexport default ConfigInitialRisc;\n"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"ConfigInitialRisc.esm.js","sources":["../../../src/components/riScDialog/ConfigInitialRisc.tsx"],"sourcesContent":["import { pluginRiScTranslationRef } from '../../utils/translations';\nimport { useTranslationRef } from '@backstage/core-plugin-api/alpha';\nimport { Box, Flex, Radio, RadioGroup, Switch, Text } from '@backstage/ui';\nimport { RiScDialogStates } from './RiScDialog';\nimport { RiScWithMetadata } from '../../utils/types.ts';\nimport { useDefaultRiScTypeDescriptors } from '../../contexts/DefaultRiScTypesContext.tsx';\nimport { UseFormSetValue } from 'react-hook-form/dist/types/form';\nimport { useTheme } from '@mui/material/styles';\n\ntype RadioOptionProps = {\n value: string;\n label: string;\n description?: string;\n active?: boolean;\n numActions: number | null;\n numScenarios: number | null;\n};\n\nconst RadioOption = ({\n value,\n label,\n description,\n active = true,\n numActions,\n numScenarios,\n}: RadioOptionProps) => {\n const { t } = useTranslationRef(pluginRiScTranslationRef);\n const theme = useTheme();\n const style = {\n fontSize: '12px',\n border: `1px solid ${active ? 'var(--bui-gray-6)' : 'var(--bui-gray-8)'}`,\n borderRadius: '24px',\n padding: '2px 8px',\n };\n\n return (\n <>\n <Flex\n direction=\"column\"\n align=\"start\"\n p=\"12px 16px\"\n gap=\"2\"\n style={{\n backgroundColor:\n theme.palette.mode === 'dark'\n ? 'var(--bui-gray-5)'\n : 'var(--bui-gray-2)',\n borderRadius: '8px',\n }}\n >\n <Radio value={value}>\n <Text\n weight=\"bold\"\n as=\"h5\"\n variant=\"body-large\"\n color={active ? 'secondary' : 'primary'}\n >\n {label}\n </Text>\n <Flex gap=\"8px\">\n <Text color={active ? 'secondary' : 'primary'} style={style}>\n {numActions} {t('dictionary.measuresInitialRiSc')}\n </Text>\n <Text color={active ? 'secondary' : 'primary'} style={style}>\n {numScenarios} {t('dictionary.scenarios')}\n </Text>\n </Flex>\n </Radio>\n {description && (\n <Flex ml=\"6\">\n <Text\n as=\"p\"\n variant=\"body-large\"\n color={active ? 'secondary' : 'primary'}\n >\n {description}\n </Text>\n </Flex>\n )}\n </Flex>\n </>\n );\n};\n\ninterface ConfigInitialRiscProps {\n dialogState: RiScDialogStates;\n switchOn: boolean;\n setSwitchOn: (val: boolean) => void;\n setValue: UseFormSetValue<RiScWithMetadata>;\n selectedRiScId: string | undefined;\n setSelectedRiScId: (riScId: string | undefined) => void;\n}\n\nfunction ConfigInitialRisc(props: ConfigInitialRiscProps) {\n const { t } = useTranslationRef(pluginRiScTranslationRef);\n const {\n defaultRiScTypeDescriptors,\n riScSelectedByDefault,\n getDescriptorOfId,\n } = useDefaultRiScTypeDescriptors();\n\n function onCreateDefaultRiScSwitchChange() {\n if (props.switchOn) {\n props.setValue('content.title', '');\n props.setValue('content.scope', '');\n } else {\n props.setSelectedRiScId(riScSelectedByDefault?.id);\n if (riScSelectedByDefault) {\n props.setValue('content.title', riScSelectedByDefault.defaultTitle);\n props.setValue('content.scope', riScSelectedByDefault.defaultScope);\n }\n }\n props.setSwitchOn(!props.switchOn);\n }\n\n function onSelectRiScType(selectedDefaultRiScId: string) {\n props.setSelectedRiScId(selectedDefaultRiScId);\n const descriptor = getDescriptorOfId(selectedDefaultRiScId);\n if (descriptor) {\n props.setValue('content.title', descriptor.defaultTitle);\n props.setValue('content.scope', descriptor.defaultScope);\n }\n }\n\n return (\n <>\n {props.dialogState === RiScDialogStates.Create && (\n <>\n <Box>\n {defaultRiScTypeDescriptors.length > 0 && (\n <>\n <Box pb=\"2\">\n <Text variant=\"body-medium\" as=\"p\">\n {t('rosDialog.initialRiscScopeDescription')}\n </Text>\n <Switch\n isSelected={props.switchOn}\n onChange={onCreateDefaultRiScSwitchChange}\n label={\n props.switchOn ? t('dictionary.yes') : t('dictionary.no')\n }\n />\n </Box>\n <Flex direction=\"column\" justify=\"between\" mt=\"2\" gap=\"2\">\n <Text\n weight=\"bold\"\n as=\"p\"\n color={!props.switchOn ? 'secondary' : 'primary'}\n >\n {t('rosDialog.applicationType')}\n </Text>\n <Text\n variant=\"body-medium\"\n color={!props.switchOn ? 'secondary' : 'primary'}\n >\n {t('rosDialog.initialRiscApplicationType')}\n </Text>\n\n <RadioGroup\n onChange={onSelectRiScType}\n isDisabled={!props.switchOn}\n aria-label=\"Select application type\"\n value={props.selectedRiScId}\n >\n {defaultRiScTypeDescriptors.map(descriptor => (\n <RadioOption\n key={descriptor.id}\n value={descriptor.id}\n label={descriptor.listName}\n description={descriptor.listDescription}\n active={!props.switchOn}\n numActions={descriptor.numberOfActions}\n numScenarios={descriptor.numberOfScenarios}\n />\n ))}\n </RadioGroup>\n </Flex>\n </>\n )}\n {defaultRiScTypeDescriptors.length === 0 && (\n <Text>{t('rosDialog.noInitialRiScFound')}</Text>\n )}\n </Box>\n </>\n )}\n </>\n );\n}\n\nexport default ConfigInitialRisc;\n"],"names":[],"mappings":"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"}
@@ -1,15 +1,14 @@
1
- import { jsxs, Fragment, jsx } from 'react/jsx-runtime';
2
- import { MarkdownInput } from '../common/MarkdownInput.esm.js';
1
+ import { jsxs, jsx } from 'react/jsx-runtime';
2
+ import { MarkdownInput } from '../common/MarkdownInput/MarkdownInput.esm.js';
3
3
  import { Input } from '../common/Input.esm.js';
4
4
  import { useTranslationRef } from '@backstage/core-plugin-api/alpha';
5
5
  import { pluginRiScTranslationRef } from '../../utils/translations.esm.js';
6
- import { Divider } from '@mui/material';
6
+ import { Flex } from '@backstage/ui';
7
7
 
8
8
  function ConfigRiscInfo(props) {
9
9
  const { t } = useTranslationRef(pluginRiScTranslationRef);
10
10
  const currentScope = props.watch("content.scope");
11
- return /* @__PURE__ */ jsxs(Fragment, { children: [
12
- /* @__PURE__ */ jsx(Divider, {}),
11
+ return /* @__PURE__ */ jsxs(Flex, { gap: "16px", direction: "column", px: "1px", children: [
13
12
  /* @__PURE__ */ jsx(
14
13
  Input,
15
14
  {