@backstage/core-components 0.17.4-next.2 → 0.17.4

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,16 @@
1
1
  # @backstage/core-components
2
2
 
3
+ ## 0.17.4
4
+
5
+ ### Patch Changes
6
+
7
+ - f6ffea6: Add optional message field for auth providers. This is intended to be a user friendly message that displays in the OAuth request dialog. A default message will be displayed if one is not provided.
8
+ - aa3b054: Added `signIn` and `signOut` analytic events to the `@backstage/core-components` of sign in and sign out.
9
+ - Updated dependencies
10
+ - @backstage/config@1.3.3
11
+ - @backstage/core-plugin-api@1.10.9
12
+ - @backstage/theme@0.6.7
13
+
3
14
  ## 0.17.4-next.2
4
15
 
5
16
  ### Patch Changes
package/dist/alpha.d.ts CHANGED
@@ -43,6 +43,7 @@ declare const coreComponentsTranslationRef: _backstage_core_plugin_api_alpha.Tra
43
43
  readonly "supportConfig.default.title": "Support Not Configured";
44
44
  readonly "supportConfig.default.linkTitle": "Add `app.support` config key";
45
45
  readonly "errorBoundary.title": "Please contact {{slackChannel}} for help.";
46
+ readonly "oauthRequestDialog.message": "Sign-in to allow {{appTitle}} access to {{provider}} APIs and identities.";
46
47
  readonly "oauthRequestDialog.title": "Login Required";
47
48
  readonly "oauthRequestDialog.authRedirectTitle": "This will trigger a http redirect to OAuth Login.";
48
49
  readonly "oauthRequestDialog.login": "Log in";
@@ -1,4 +1,4 @@
1
- import { jsxs, jsx } from 'react/jsx-runtime';
1
+ import { jsxs, jsx, Fragment } from 'react/jsx-runtime';
2
2
  import { makeStyles } from '@material-ui/core/styles';
3
3
  import ListItem from '@material-ui/core/ListItem';
4
4
  import ListItemAvatar from '@material-ui/core/ListItemAvatar';
@@ -7,13 +7,18 @@ import Typography from '@material-ui/core/Typography';
7
7
  import Button from '@material-ui/core/Button';
8
8
  import { useState } from 'react';
9
9
  import { isError } from '@backstage/errors';
10
+ import { useApi, configApiRef } from '@backstage/core-plugin-api';
10
11
  import { coreComponentsTranslationRef } from '../../translation.esm.js';
11
12
  import { useTranslationRef } from '@backstage/core-plugin-api/alpha';
13
+ import Box from '@material-ui/core/Box';
12
14
 
13
15
  const useItemStyles = makeStyles(
14
16
  (theme) => ({
15
17
  root: {
16
- paddingLeft: theme.spacing(3)
18
+ paddingLeft: theme.spacing(2)
19
+ },
20
+ button: {
21
+ marginLeft: theme.spacing(2)
17
22
  }
18
23
  }),
19
24
  { name: "BackstageLoginRequestListItem" }
@@ -22,6 +27,7 @@ const LoginRequestListItem = ({ request, busy, setBusy }) => {
22
27
  const classes = useItemStyles();
23
28
  const [error, setError] = useState();
24
29
  const { t } = useTranslationRef(coreComponentsTranslationRef);
30
+ const configApi = useApi(configApiRef);
25
31
  const handleContinue = async () => {
26
32
  setBusy(true);
27
33
  try {
@@ -33,16 +39,34 @@ const LoginRequestListItem = ({ request, busy, setBusy }) => {
33
39
  }
34
40
  };
35
41
  const IconComponent = request.provider.icon;
42
+ const message = request.provider.message ?? t("oauthRequestDialog.message", {
43
+ appTitle: configApi.getString("app.title"),
44
+ provider: request.provider.title
45
+ });
36
46
  return /* @__PURE__ */ jsxs(ListItem, { disabled: busy, classes: { root: classes.root }, children: [
37
47
  /* @__PURE__ */ jsx(ListItemAvatar, { children: /* @__PURE__ */ jsx(IconComponent, { fontSize: "large" }) }),
38
- /* @__PURE__ */ jsx(
39
- ListItemText,
40
- {
41
- primary: request.provider.title,
42
- secondary: error && /* @__PURE__ */ jsx(Typography, { color: "error", children: error })
43
- }
44
- ),
45
- /* @__PURE__ */ jsx(Button, { color: "primary", variant: "contained", onClick: handleContinue, children: t("oauthRequestDialog.login") })
48
+ /* @__PURE__ */ jsxs(Box, { display: "flex", alignItems: "center", flex: 1, children: [
49
+ /* @__PURE__ */ jsx(Box, { flex: 1, children: /* @__PURE__ */ jsx(
50
+ ListItemText,
51
+ {
52
+ primary: request.provider.title,
53
+ secondary: /* @__PURE__ */ jsxs(Fragment, { children: [
54
+ message && /* @__PURE__ */ jsx(Typography, { variant: "subtitle2", color: "textSecondary", children: message }),
55
+ error && /* @__PURE__ */ jsx(Typography, { color: "error", children: error })
56
+ ] })
57
+ }
58
+ ) }),
59
+ /* @__PURE__ */ jsx(
60
+ Button,
61
+ {
62
+ color: "primary",
63
+ variant: "contained",
64
+ onClick: handleContinue,
65
+ className: classes.button,
66
+ children: t("oauthRequestDialog.login")
67
+ }
68
+ )
69
+ ] })
46
70
  ] });
47
71
  };
48
72
 
@@ -1 +1 @@
1
- {"version":3,"file":"LoginRequestListItem.esm.js","sources":["../../../src/components/OAuthRequestDialog/LoginRequestListItem.tsx"],"sourcesContent":["/*\n * Copyright 2020 The Backstage Authors\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 { makeStyles } from '@material-ui/core/styles';\nimport ListItem from '@material-ui/core/ListItem';\nimport ListItemAvatar from '@material-ui/core/ListItemAvatar';\nimport ListItemText from '@material-ui/core/ListItemText';\nimport Typography from '@material-ui/core/Typography';\nimport Button from '@material-ui/core/Button';\nimport { useState } from 'react';\nimport { isError } from '@backstage/errors';\nimport { PendingOAuthRequest } from '@backstage/core-plugin-api';\nimport { coreComponentsTranslationRef } from '../../translation';\nimport { useTranslationRef } from '@backstage/core-plugin-api/alpha';\n\nexport type LoginRequestListItemClassKey = 'root';\n\nconst useItemStyles = makeStyles(\n theme => ({\n root: {\n paddingLeft: theme.spacing(3),\n },\n }),\n { name: 'BackstageLoginRequestListItem' },\n);\n\ntype RowProps = {\n request: PendingOAuthRequest;\n busy: boolean;\n setBusy: (busy: boolean) => void;\n};\n\nconst LoginRequestListItem = ({ request, busy, setBusy }: RowProps) => {\n const classes = useItemStyles();\n const [error, setError] = useState<string>();\n const { t } = useTranslationRef(coreComponentsTranslationRef);\n\n const handleContinue = async () => {\n setBusy(true);\n try {\n await request.trigger();\n } catch (e) {\n setError(isError(e) ? e.message : 'An unspecified error occurred');\n } finally {\n setBusy(false);\n }\n };\n\n const IconComponent = request.provider.icon;\n\n return (\n <ListItem disabled={busy} classes={{ root: classes.root }}>\n <ListItemAvatar>\n <IconComponent fontSize=\"large\" />\n </ListItemAvatar>\n <ListItemText\n primary={request.provider.title}\n secondary={error && <Typography color=\"error\">{error}</Typography>}\n />\n <Button color=\"primary\" variant=\"contained\" onClick={handleContinue}>\n {t('oauthRequestDialog.login')}\n </Button>\n </ListItem>\n );\n};\n\nexport default LoginRequestListItem;\n"],"names":[],"mappings":";;;;;;;;;;;;AA8BA,MAAM,aAAgB,GAAA,UAAA;AAAA,EACpB,CAAU,KAAA,MAAA;AAAA,IACR,IAAM,EAAA;AAAA,MACJ,WAAA,EAAa,KAAM,CAAA,OAAA,CAAQ,CAAC;AAAA;AAC9B,GACF,CAAA;AAAA,EACA,EAAE,MAAM,+BAAgC;AAC1C,CAAA;AAQA,MAAM,uBAAuB,CAAC,EAAE,OAAS,EAAA,IAAA,EAAM,SAAwB,KAAA;AACrE,EAAA,MAAM,UAAU,aAAc,EAAA;AAC9B,EAAA,MAAM,CAAC,KAAA,EAAO,QAAQ,CAAA,GAAI,QAAiB,EAAA;AAC3C,EAAA,MAAM,EAAE,CAAA,EAAM,GAAA,iBAAA,CAAkB,4BAA4B,CAAA;AAE5D,EAAA,MAAM,iBAAiB,YAAY;AACjC,IAAA,OAAA,CAAQ,IAAI,CAAA;AACZ,IAAI,IAAA;AACF,MAAA,MAAM,QAAQ,OAAQ,EAAA;AAAA,aACf,CAAG,EAAA;AACV,MAAA,QAAA,CAAS,OAAQ,CAAA,CAAC,CAAI,GAAA,CAAA,CAAE,UAAU,+BAA+B,CAAA;AAAA,KACjE,SAAA;AACA,MAAA,OAAA,CAAQ,KAAK,CAAA;AAAA;AACf,GACF;AAEA,EAAM,MAAA,aAAA,GAAgB,QAAQ,QAAS,CAAA,IAAA;AAEvC,EACE,uBAAA,IAAA,CAAC,YAAS,QAAU,EAAA,IAAA,EAAM,SAAS,EAAE,IAAA,EAAM,OAAQ,CAAA,IAAA,EACjD,EAAA,QAAA,EAAA;AAAA,oBAAA,GAAA,CAAC,cACC,EAAA,EAAA,QAAA,kBAAA,GAAA,CAAC,aAAc,EAAA,EAAA,QAAA,EAAS,SAAQ,CAClC,EAAA,CAAA;AAAA,oBACA,GAAA;AAAA,MAAC,YAAA;AAAA,MAAA;AAAA,QACC,OAAA,EAAS,QAAQ,QAAS,CAAA,KAAA;AAAA,QAC1B,WAAW,KAAS,oBAAA,GAAA,CAAC,UAAW,EAAA,EAAA,KAAA,EAAM,SAAS,QAAM,EAAA,KAAA,EAAA;AAAA;AAAA,KACvD;AAAA,oBACA,GAAA,CAAC,MAAO,EAAA,EAAA,KAAA,EAAM,SAAU,EAAA,OAAA,EAAQ,aAAY,OAAS,EAAA,cAAA,EAClD,QAAE,EAAA,CAAA,CAAA,0BAA0B,CAC/B,EAAA;AAAA,GACF,EAAA,CAAA;AAEJ;;;;"}
1
+ {"version":3,"file":"LoginRequestListItem.esm.js","sources":["../../../src/components/OAuthRequestDialog/LoginRequestListItem.tsx"],"sourcesContent":["/*\n * Copyright 2020 The Backstage Authors\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 { makeStyles } from '@material-ui/core/styles';\nimport ListItem from '@material-ui/core/ListItem';\nimport ListItemAvatar from '@material-ui/core/ListItemAvatar';\nimport ListItemText from '@material-ui/core/ListItemText';\nimport Typography from '@material-ui/core/Typography';\nimport Button from '@material-ui/core/Button';\nimport { useState } from 'react';\nimport { isError } from '@backstage/errors';\nimport {\n configApiRef,\n PendingOAuthRequest,\n useApi,\n} from '@backstage/core-plugin-api';\nimport { coreComponentsTranslationRef } from '../../translation';\nimport { useTranslationRef } from '@backstage/core-plugin-api/alpha';\nimport Box from '@material-ui/core/Box';\n\nexport type LoginRequestListItemClassKey = 'root';\n\nconst useItemStyles = makeStyles(\n theme => ({\n root: {\n paddingLeft: theme.spacing(2),\n },\n button: {\n marginLeft: theme.spacing(2),\n },\n }),\n { name: 'BackstageLoginRequestListItem' },\n);\n\ntype RowProps = {\n request: PendingOAuthRequest;\n busy: boolean;\n setBusy: (busy: boolean) => void;\n};\n\nconst LoginRequestListItem = ({ request, busy, setBusy }: RowProps) => {\n const classes = useItemStyles();\n const [error, setError] = useState<string>();\n const { t } = useTranslationRef(coreComponentsTranslationRef);\n const configApi = useApi(configApiRef);\n\n const handleContinue = async () => {\n setBusy(true);\n try {\n await request.trigger();\n } catch (e) {\n setError(isError(e) ? e.message : 'An unspecified error occurred');\n } finally {\n setBusy(false);\n }\n };\n\n const IconComponent = request.provider.icon;\n const message =\n request.provider.message ??\n t('oauthRequestDialog.message', {\n appTitle: configApi.getString('app.title'),\n provider: request.provider.title,\n });\n\n return (\n <ListItem disabled={busy} classes={{ root: classes.root }}>\n <ListItemAvatar>\n <IconComponent fontSize=\"large\" />\n </ListItemAvatar>\n <Box display=\"flex\" alignItems=\"center\" flex={1}>\n <Box flex={1}>\n <ListItemText\n primary={request.provider.title}\n secondary={\n <>\n {message && (\n <Typography variant=\"subtitle2\" color=\"textSecondary\">\n {message}\n </Typography>\n )}\n {error && <Typography color=\"error\">{error}</Typography>}\n </>\n }\n />\n </Box>\n <Button\n color=\"primary\"\n variant=\"contained\"\n onClick={handleContinue}\n className={classes.button}\n >\n {t('oauthRequestDialog.login')}\n </Button>\n </Box>\n </ListItem>\n );\n};\n\nexport default LoginRequestListItem;\n"],"names":[],"mappings":";;;;;;;;;;;;;;AAmCA,MAAM,aAAgB,GAAA,UAAA;AAAA,EACpB,CAAU,KAAA,MAAA;AAAA,IACR,IAAM,EAAA;AAAA,MACJ,WAAA,EAAa,KAAM,CAAA,OAAA,CAAQ,CAAC;AAAA,KAC9B;AAAA,IACA,MAAQ,EAAA;AAAA,MACN,UAAA,EAAY,KAAM,CAAA,OAAA,CAAQ,CAAC;AAAA;AAC7B,GACF,CAAA;AAAA,EACA,EAAE,MAAM,+BAAgC;AAC1C,CAAA;AAQA,MAAM,uBAAuB,CAAC,EAAE,OAAS,EAAA,IAAA,EAAM,SAAwB,KAAA;AACrE,EAAA,MAAM,UAAU,aAAc,EAAA;AAC9B,EAAA,MAAM,CAAC,KAAA,EAAO,QAAQ,CAAA,GAAI,QAAiB,EAAA;AAC3C,EAAA,MAAM,EAAE,CAAA,EAAM,GAAA,iBAAA,CAAkB,4BAA4B,CAAA;AAC5D,EAAM,MAAA,SAAA,GAAY,OAAO,YAAY,CAAA;AAErC,EAAA,MAAM,iBAAiB,YAAY;AACjC,IAAA,OAAA,CAAQ,IAAI,CAAA;AACZ,IAAI,IAAA;AACF,MAAA,MAAM,QAAQ,OAAQ,EAAA;AAAA,aACf,CAAG,EAAA;AACV,MAAA,QAAA,CAAS,OAAQ,CAAA,CAAC,CAAI,GAAA,CAAA,CAAE,UAAU,+BAA+B,CAAA;AAAA,KACjE,SAAA;AACA,MAAA,OAAA,CAAQ,KAAK,CAAA;AAAA;AACf,GACF;AAEA,EAAM,MAAA,aAAA,GAAgB,QAAQ,QAAS,CAAA,IAAA;AACvC,EAAA,MAAM,OACJ,GAAA,OAAA,CAAQ,QAAS,CAAA,OAAA,IACjB,EAAE,4BAA8B,EAAA;AAAA,IAC9B,QAAA,EAAU,SAAU,CAAA,SAAA,CAAU,WAAW,CAAA;AAAA,IACzC,QAAA,EAAU,QAAQ,QAAS,CAAA;AAAA,GAC5B,CAAA;AAEH,EACE,uBAAA,IAAA,CAAC,YAAS,QAAU,EAAA,IAAA,EAAM,SAAS,EAAE,IAAA,EAAM,OAAQ,CAAA,IAAA,EACjD,EAAA,QAAA,EAAA;AAAA,oBAAA,GAAA,CAAC,cACC,EAAA,EAAA,QAAA,kBAAA,GAAA,CAAC,aAAc,EAAA,EAAA,QAAA,EAAS,SAAQ,CAClC,EAAA,CAAA;AAAA,yBACC,GAAI,EAAA,EAAA,OAAA,EAAQ,QAAO,UAAW,EAAA,QAAA,EAAS,MAAM,CAC5C,EAAA,QAAA,EAAA;AAAA,sBAAC,GAAA,CAAA,GAAA,EAAA,EAAI,MAAM,CACT,EAAA,QAAA,kBAAA,GAAA;AAAA,QAAC,YAAA;AAAA,QAAA;AAAA,UACC,OAAA,EAAS,QAAQ,QAAS,CAAA,KAAA;AAAA,UAC1B,2BAEK,IAAA,CAAA,QAAA,EAAA,EAAA,QAAA,EAAA;AAAA,YAAA,OAAA,wBACE,UAAW,EAAA,EAAA,OAAA,EAAQ,WAAY,EAAA,KAAA,EAAM,iBACnC,QACH,EAAA,OAAA,EAAA,CAAA;AAAA,YAED,KAAS,oBAAA,GAAA,CAAC,UAAW,EAAA,EAAA,KAAA,EAAM,SAAS,QAAM,EAAA,KAAA,EAAA;AAAA,WAC7C,EAAA;AAAA;AAAA,OAGN,EAAA,CAAA;AAAA,sBACA,GAAA;AAAA,QAAC,MAAA;AAAA,QAAA;AAAA,UACC,KAAM,EAAA,SAAA;AAAA,UACN,OAAQ,EAAA,WAAA;AAAA,UACR,OAAS,EAAA,cAAA;AAAA,UACT,WAAW,OAAQ,CAAA,MAAA;AAAA,UAElB,YAAE,0BAA0B;AAAA;AAAA;AAC/B,KACF,EAAA;AAAA,GACF,EAAA,CAAA;AAEJ;;;;"}
@@ -58,7 +58,8 @@ const coreComponentsTranslationRef = createTranslationRef({
58
58
  title: "Login Required",
59
59
  authRedirectTitle: "This will trigger a http redirect to OAuth Login.",
60
60
  login: "Log in",
61
- rejectAll: "Reject All"
61
+ rejectAll: "Reject All",
62
+ message: "Sign-in to allow {{appTitle}} access to {{provider}} APIs and identities."
62
63
  },
63
64
  supportButton: {
64
65
  title: "Support",
@@ -1 +1 @@
1
- {"version":3,"file":"translation.esm.js","sources":["../src/translation.ts"],"sourcesContent":["/*\n * Copyright 2023 The Backstage Authors\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 { createTranslationRef } from '@backstage/core-plugin-api/alpha';\n\n/** @alpha */\nexport const coreComponentsTranslationRef = createTranslationRef({\n id: 'core-components',\n messages: {\n signIn: {\n title: 'Sign In',\n loginFailed: 'Login failed',\n customProvider: {\n title: 'Custom User',\n subtitle:\n 'Enter your own User ID and credentials.\\n This selection will not be stored.',\n userId: 'User ID',\n tokenInvalid: 'Token is not a valid OpenID Connect JWT Token',\n continue: 'Continue',\n idToken: 'ID Token (optional)',\n },\n guestProvider: {\n title: 'Guest',\n subtitle:\n 'Enter as a Guest User.\\n You will not have a verified identity, meaning some features might be unavailable.',\n enter: 'Enter',\n },\n },\n skipToContent: 'Skip to content',\n copyTextButton: {\n tooltipText: 'Text copied to clipboard',\n },\n simpleStepper: {\n reset: 'Reset',\n finish: 'Finish',\n next: 'Next',\n skip: 'Skip',\n back: 'Back',\n },\n errorPage: {\n subtitle: 'ERROR {{status}}: {{statusMessage}}',\n title: 'Looks like someone dropped the mic!',\n goBack: 'Go back',\n showMoreDetails: 'Show more details',\n showLessDetails: 'Show less details',\n },\n emptyState: {\n missingAnnotation: {\n title: 'Missing Annotation',\n actionTitle:\n 'Add the annotation to your component YAML as shown in the highlighted example below:',\n readMore: 'Read more',\n },\n },\n supportConfig: {\n default: {\n title: 'Support Not Configured',\n linkTitle: 'Add `app.support` config key',\n },\n },\n errorBoundary: {\n title: 'Please contact {{slackChannel}} for help.',\n },\n oauthRequestDialog: {\n title: 'Login Required',\n authRedirectTitle: 'This will trigger a http redirect to OAuth Login.',\n login: 'Log in',\n rejectAll: 'Reject All',\n },\n supportButton: {\n title: 'Support',\n close: 'Close',\n },\n table: {\n filter: {\n title: 'Filters',\n clearAll: 'Clear all',\n placeholder: 'All results',\n },\n body: {\n emptyDataSourceMessage: 'No records to display',\n },\n pagination: {\n firstTooltip: 'First Page',\n labelDisplayedRows: '{from}-{to} of {count}',\n labelRowsSelect: 'rows',\n lastTooltip: 'Last Page',\n nextTooltip: 'Next Page',\n previousTooltip: 'Previous Page',\n },\n toolbar: {\n search: 'Filter',\n },\n header: {\n actions: 'Actions',\n },\n },\n alertDisplay: {\n message_one: '({{ count }} newer message)',\n message_other: '({{ count }} newer messages)',\n },\n autoLogout: {\n stillTherePrompt: {\n title: 'Logging out due to inactivity',\n buttonText: \"Yes! Don't log me out\",\n },\n },\n proxiedSignInPage: {\n title:\n 'You do not appear to be signed in. Please try reloading the browser page.',\n },\n },\n});\n"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"translation.esm.js","sources":["../src/translation.ts"],"sourcesContent":["/*\n * Copyright 2023 The Backstage Authors\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 { createTranslationRef } from '@backstage/core-plugin-api/alpha';\n\n/** @alpha */\nexport const coreComponentsTranslationRef = createTranslationRef({\n id: 'core-components',\n messages: {\n signIn: {\n title: 'Sign In',\n loginFailed: 'Login failed',\n customProvider: {\n title: 'Custom User',\n subtitle:\n 'Enter your own User ID and credentials.\\n This selection will not be stored.',\n userId: 'User ID',\n tokenInvalid: 'Token is not a valid OpenID Connect JWT Token',\n continue: 'Continue',\n idToken: 'ID Token (optional)',\n },\n guestProvider: {\n title: 'Guest',\n subtitle:\n 'Enter as a Guest User.\\n You will not have a verified identity, meaning some features might be unavailable.',\n enter: 'Enter',\n },\n },\n skipToContent: 'Skip to content',\n copyTextButton: {\n tooltipText: 'Text copied to clipboard',\n },\n simpleStepper: {\n reset: 'Reset',\n finish: 'Finish',\n next: 'Next',\n skip: 'Skip',\n back: 'Back',\n },\n errorPage: {\n subtitle: 'ERROR {{status}}: {{statusMessage}}',\n title: 'Looks like someone dropped the mic!',\n goBack: 'Go back',\n showMoreDetails: 'Show more details',\n showLessDetails: 'Show less details',\n },\n emptyState: {\n missingAnnotation: {\n title: 'Missing Annotation',\n actionTitle:\n 'Add the annotation to your component YAML as shown in the highlighted example below:',\n readMore: 'Read more',\n },\n },\n supportConfig: {\n default: {\n title: 'Support Not Configured',\n linkTitle: 'Add `app.support` config key',\n },\n },\n errorBoundary: {\n title: 'Please contact {{slackChannel}} for help.',\n },\n oauthRequestDialog: {\n title: 'Login Required',\n authRedirectTitle: 'This will trigger a http redirect to OAuth Login.',\n login: 'Log in',\n rejectAll: 'Reject All',\n message:\n 'Sign-in to allow {{appTitle}} access to {{provider}} APIs and identities.',\n },\n supportButton: {\n title: 'Support',\n close: 'Close',\n },\n table: {\n filter: {\n title: 'Filters',\n clearAll: 'Clear all',\n placeholder: 'All results',\n },\n body: {\n emptyDataSourceMessage: 'No records to display',\n },\n pagination: {\n firstTooltip: 'First Page',\n labelDisplayedRows: '{from}-{to} of {count}',\n labelRowsSelect: 'rows',\n lastTooltip: 'Last Page',\n nextTooltip: 'Next Page',\n previousTooltip: 'Previous Page',\n },\n toolbar: {\n search: 'Filter',\n },\n header: {\n actions: 'Actions',\n },\n },\n alertDisplay: {\n message_one: '({{ count }} newer message)',\n message_other: '({{ count }} newer messages)',\n },\n autoLogout: {\n stillTherePrompt: {\n title: 'Logging out due to inactivity',\n buttonText: \"Yes! Don't log me out\",\n },\n },\n proxiedSignInPage: {\n title:\n 'You do not appear to be signed in. Please try reloading the browser page.',\n },\n },\n});\n"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@backstage/core-components",
3
- "version": "0.17.4-next.2",
3
+ "version": "0.17.4",
4
4
  "description": "Core components used by Backstage plugins and apps",
5
5
  "backstage": {
6
6
  "role": "web-library"
@@ -66,11 +66,11 @@
66
66
  "test": "backstage-cli package test"
67
67
  },
68
68
  "dependencies": {
69
- "@backstage/config": "1.3.3-next.0",
70
- "@backstage/core-plugin-api": "1.10.9-next.0",
71
- "@backstage/errors": "1.2.7",
72
- "@backstage/theme": "0.6.7-next.1",
73
- "@backstage/version-bridge": "1.0.11",
69
+ "@backstage/config": "^1.3.3",
70
+ "@backstage/core-plugin-api": "^1.10.9",
71
+ "@backstage/errors": "^1.2.7",
72
+ "@backstage/theme": "^0.6.7",
73
+ "@backstage/version-bridge": "^1.0.11",
74
74
  "@dagrejs/dagre": "^1.1.4",
75
75
  "@date-io/core": "^1.3.13",
76
76
  "@material-table/core": "^3.1.0",
@@ -106,10 +106,10 @@
106
106
  "zod": "^3.22.4"
107
107
  },
108
108
  "devDependencies": {
109
- "@backstage/app-defaults": "1.6.4-next.2",
110
- "@backstage/cli": "0.33.1-next.2",
111
- "@backstage/core-app-api": "1.18.0-next.1",
112
- "@backstage/test-utils": "1.7.10-next.2",
109
+ "@backstage/app-defaults": "^1.6.4",
110
+ "@backstage/cli": "^0.33.1",
111
+ "@backstage/core-app-api": "^1.18.0",
112
+ "@backstage/test-utils": "^1.7.10",
113
113
  "@testing-library/dom": "^10.0.0",
114
114
  "@testing-library/jest-dom": "^6.0.0",
115
115
  "@testing-library/user-event": "^14.0.0",