@grafana/plugin-ui 0.2.0 โ†’ 0.3.0

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.
@@ -0,0 +1,15 @@
1
+ /**
2
+ * Copy & paste from https://github.com/grafana/grafana/blob/main/packages/grafana-ui/src/components/SecretInput/SecretInput.tsx
3
+ * Available starting from @grafana/ui 9.2
4
+ */
5
+ import * as React from "react";
6
+ import { Input } from "@grafana/ui";
7
+ export declare type Props = React.ComponentProps<typeof Input> & {
8
+ /** TRUE if the secret was already configured. (It is needed as often the backend doesn't send back the actual secret, only the information that it was configured) */
9
+ isConfigured: boolean;
10
+ /** Called when the user clicks on the "Reset" button in order to clear the secret */
11
+ onReset: () => void;
12
+ };
13
+ export declare const CONFIGURED_TEXT = "configured";
14
+ export declare const RESET_BUTTON_TEXT = "Reset";
15
+ export declare const SecretInput: ({ isConfigured, onReset, ...props }: Props) => JSX.Element;
@@ -0,0 +1,19 @@
1
+ /**
2
+ * Copy & paste from https://github.com/grafana/grafana/blob/main/packages/grafana-ui/src/components/SecretTextArea/SecretTextArea.tsx
3
+ * Available starting from @grafana/ui 9.2
4
+ */
5
+ import * as React from "react";
6
+ import { TextArea } from "@grafana/ui";
7
+ export declare type Props = React.ComponentProps<typeof TextArea> & {
8
+ /** TRUE if the secret was already configured. (It is needed as often the backend doesn't send back the actual secret, only the information that it was configured) */
9
+ isConfigured: boolean;
10
+ /** Called when the user clicks on the "Reset" button in order to clear the secret */
11
+ onReset: () => void;
12
+ };
13
+ export declare const CONFIGURED_TEXT = "configured";
14
+ export declare const RESET_BUTTON_TEXT = "Reset";
15
+ /**
16
+ * Text area that does not disclose an already configured value but lets the user reset the current value and enter a new one.
17
+ * Typically useful for asymmetric cryptography keys.
18
+ */
19
+ export declare const SecretTextArea: ({ isConfigured, onReset, ...props }: Props) => JSX.Element;
@@ -1 +1,2 @@
1
- export {};
1
+ export { SecretInput } from "./SecretInput";
2
+ export { SecretTextArea } from "./SecretTextarea";
@@ -0,0 +1,2 @@
1
+ #!/usr/bin/env node
2
+ export {};
@@ -0,0 +1,21 @@
1
+ "use strict";
2
+ /**
3
+ * Copy & paste from https://github.com/grafana/grafana/blob/main/packages/grafana-ui/src/components/SecretInput/SecretInput.tsx
4
+ * Available starting from @grafana/ui 9.2
5
+ */
6
+ Object.defineProperty(exports, "__esModule", { value: true });
7
+ exports.SecretInput = exports.RESET_BUTTON_TEXT = exports.CONFIGURED_TEXT = void 0;
8
+ const tslib_1 = require("tslib");
9
+ const React = tslib_1.__importStar(require("react"));
10
+ const ui_1 = require("@grafana/ui");
11
+ exports.CONFIGURED_TEXT = "configured";
12
+ exports.RESET_BUTTON_TEXT = "Reset";
13
+ const SecretInput = (_a) => {
14
+ var { isConfigured, onReset } = _a, props = tslib_1.__rest(_a, ["isConfigured", "onReset"]);
15
+ return (React.createElement(ui_1.HorizontalGroup, null,
16
+ !isConfigured && React.createElement(ui_1.Input, Object.assign({}, props, { type: "password" })),
17
+ isConfigured && (React.createElement(ui_1.Input, Object.assign({}, props, { type: "text", disabled: true, value: exports.CONFIGURED_TEXT }))),
18
+ isConfigured && (React.createElement(ui_1.Button, { onClick: onReset, variant: "secondary" }, exports.RESET_BUTTON_TEXT))));
19
+ };
20
+ exports.SecretInput = SecretInput;
21
+ //# sourceMappingURL=SecretInput.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"SecretInput.js","sourceRoot":"","sources":["../../src/unreleasedComponents/SecretInput.tsx"],"names":[],"mappings":";AAAA;;;GAGG;;;;AAEH,qDAA+B;AAC/B,oCAA6D;AAShD,QAAA,eAAe,GAAG,YAAY,CAAC;AAC/B,QAAA,iBAAiB,GAAG,OAAO,CAAC;AAElC,MAAM,WAAW,GAAG,CAAC,EAA0C,EAAE,EAAE;QAA9C,EAAE,YAAY,EAAE,OAAO,OAAmB,EAAd,KAAK,sBAAjC,2BAAmC,CAAF;IAAc,OAAA,CACzE,oBAAC,oBAAe;QACb,CAAC,YAAY,IAAI,oBAAC,UAAK,oBAAK,KAAK,IAAE,IAAI,EAAC,UAAU,IAAG;QACrD,YAAY,IAAI,CACf,oBAAC,UAAK,oBAAK,KAAK,IAAE,IAAI,EAAC,MAAM,EAAC,QAAQ,EAAE,IAAI,EAAE,KAAK,EAAE,uBAAe,IAAI,CACzE;QACA,YAAY,IAAI,CACf,oBAAC,WAAM,IAAC,OAAO,EAAE,OAAO,EAAE,OAAO,EAAC,WAAW,IAC1C,yBAAiB,CACX,CACV,CACe,CACnB,CAAA;CAAA,CAAC;AAZW,QAAA,WAAW,eAYtB"}
@@ -0,0 +1,36 @@
1
+ "use strict";
2
+ /**
3
+ * Copy & paste from https://github.com/grafana/grafana/blob/main/packages/grafana-ui/src/components/SecretTextArea/SecretTextArea.tsx
4
+ * Available starting from @grafana/ui 9.2
5
+ */
6
+ Object.defineProperty(exports, "__esModule", { value: true });
7
+ exports.SecretTextArea = exports.RESET_BUTTON_TEXT = exports.CONFIGURED_TEXT = void 0;
8
+ const tslib_1 = require("tslib");
9
+ const css_1 = require("@emotion/css");
10
+ const React = tslib_1.__importStar(require("react"));
11
+ const ui_1 = require("@grafana/ui");
12
+ exports.CONFIGURED_TEXT = "configured";
13
+ exports.RESET_BUTTON_TEXT = "Reset";
14
+ const getStyles = (theme) => {
15
+ return {
16
+ configuredStyle: (0, css_1.css) `
17
+ min-height: ${theme.spacing(theme.components.height.md)};
18
+ padding-top: ${theme.spacing(0.5) /** Needed to mimic vertically centered text in an input box */};
19
+ resize: none;
20
+ `,
21
+ };
22
+ };
23
+ /**
24
+ * Text area that does not disclose an already configured value but lets the user reset the current value and enter a new one.
25
+ * Typically useful for asymmetric cryptography keys.
26
+ */
27
+ const SecretTextArea = (_a) => {
28
+ var { isConfigured, onReset } = _a, props = tslib_1.__rest(_a, ["isConfigured", "onReset"]);
29
+ const styles = (0, ui_1.useStyles2)(getStyles);
30
+ return (React.createElement(ui_1.HorizontalGroup, null,
31
+ !isConfigured && React.createElement(ui_1.TextArea, Object.assign({}, props)),
32
+ isConfigured && (React.createElement(ui_1.TextArea, Object.assign({}, props, { rows: 1, disabled: true, value: exports.CONFIGURED_TEXT, className: (0, css_1.cx)(styles.configuredStyle) }))),
33
+ isConfigured && (React.createElement(ui_1.Button, { onClick: onReset, variant: "secondary" }, exports.RESET_BUTTON_TEXT))));
34
+ };
35
+ exports.SecretTextArea = SecretTextArea;
36
+ //# sourceMappingURL=SecretTextarea.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"SecretTextarea.js","sourceRoot":"","sources":["../../src/unreleasedComponents/SecretTextarea.tsx"],"names":[],"mappings":";AAAA;;;GAGG;;;;AAEH,sCAAuC;AACvC,qDAA+B;AAG/B,oCAA4E;AAS/D,QAAA,eAAe,GAAG,YAAY,CAAC;AAC/B,QAAA,iBAAiB,GAAG,OAAO,CAAC;AAEzC,MAAM,SAAS,GAAG,CAAC,KAAoB,EAAE,EAAE;IACzC,OAAO;QACL,eAAe,EAAE,IAAA,SAAG,EAAA;oBACJ,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,UAAU,CAAC,MAAM,CAAC,EAAE,CAAC;qBAErD,KAAK,CAAC,OAAO,CACX,GAAG,CACJ,CAAC,+DACJ;;KAED;KACF,CAAC;AACJ,CAAC,CAAC;AAEF;;;GAGG;AACI,MAAM,cAAc,GAAG,CAAC,EAA0C,EAAE,EAAE;QAA9C,EAAE,YAAY,EAAE,OAAO,OAAmB,EAAd,KAAK,sBAAjC,2BAAmC,CAAF;IAC9D,MAAM,MAAM,GAAG,IAAA,eAAU,EAAC,SAAS,CAAC,CAAC;IACrC,OAAO,CACL,oBAAC,oBAAe;QACb,CAAC,YAAY,IAAI,oBAAC,aAAQ,oBAAK,KAAK,EAAI;QACxC,YAAY,IAAI,CACf,oBAAC,aAAQ,oBACH,KAAK,IACT,IAAI,EAAE,CAAC,EACP,QAAQ,EAAE,IAAI,EACd,KAAK,EAAE,uBAAe,EACtB,SAAS,EAAE,IAAA,QAAE,EAAC,MAAM,CAAC,eAAe,CAAC,IACrC,CACH;QACA,YAAY,IAAI,CACf,oBAAC,WAAM,IAAC,OAAO,EAAE,OAAO,EAAE,OAAO,EAAC,WAAW,IAC1C,yBAAiB,CACX,CACV,CACe,CACnB,CAAC;AACJ,CAAC,CAAC;AArBW,QAAA,cAAc,kBAqBzB"}
@@ -1,3 +1,9 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.SecretTextArea = exports.SecretInput = void 0;
4
+ // noop for when there are no components here
5
+ var SecretInput_1 = require("./SecretInput");
6
+ Object.defineProperty(exports, "SecretInput", { enumerable: true, get: function () { return SecretInput_1.SecretInput; } });
7
+ var SecretTextarea_1 = require("./SecretTextarea");
8
+ Object.defineProperty(exports, "SecretTextArea", { enumerable: true, get: function () { return SecretTextarea_1.SecretTextArea; } });
3
9
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/unreleasedComponents/index.ts"],"names":[],"mappings":""}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/unreleasedComponents/index.ts"],"names":[],"mappings":";;;AAAA,6CAA6C;AAC7C,6CAA4C;AAAnC,0GAAA,WAAW,OAAA;AACpB,mDAAkD;AAAzC,gHAAA,cAAc,OAAA"}
@@ -0,0 +1,90 @@
1
+ #!/usr/bin/env node
2
+ "use strict";
3
+ Object.defineProperty(exports, "__esModule", { value: true });
4
+ const tslib_1 = require("tslib");
5
+ const node_child_process_1 = require("node:child_process");
6
+ const promises_1 = require("node:fs/promises");
7
+ const node_path_1 = require("node:path");
8
+ const prompts_1 = tslib_1.__importDefault(require("prompts"));
9
+ const read_1 = tslib_1.__importDefault(require("@changesets/read"));
10
+ const write_1 = tslib_1.__importDefault(require("@changesets/write"));
11
+ const changeTypes = {
12
+ feature: { icon: "๐Ÿš€", prefix: "Feature" },
13
+ fix: { icon: "๐Ÿ›", prefix: "Fix" },
14
+ docs: { icon: "๐Ÿ“", prefix: "Documentation" },
15
+ chore: { icon: "โš™๏ธ", prefix: "Chore" },
16
+ tests: { icon: "๐Ÿงช", prefix: "Tests" },
17
+ refactor: { icon: "โš™๏ธ", prefix: "Chore" },
18
+ };
19
+ const dir = process.cwd();
20
+ // First two arguments are `ts-node` and this file name.
21
+ // Actual changeset arguments start from the 3rd item.
22
+ const args = process.argv.slice(2);
23
+ (() => tslib_1.__awaiter(void 0, void 0, void 0, function* () {
24
+ if (args[0] === "version") {
25
+ // If this is a version change we only need to update CHANGELOG.md
26
+ yield runChangesetCmd(args);
27
+ updateChangelogFile();
28
+ return;
29
+ }
30
+ const changeSetIdsBefore = (yield (0, read_1.default)(dir)).map((c) => c.id);
31
+ yield runChangesetCmd(args);
32
+ const changeSetsAfter = yield (0, read_1.default)(dir);
33
+ if (changeSetsAfter.length <= changeSetIdsBefore.length) {
34
+ // There are no new changes, no need to continue
35
+ return;
36
+ }
37
+ // Asking what's the change type
38
+ const { changeType } = yield (0, prompts_1.default)({
39
+ name: "changeType",
40
+ type: "select",
41
+ message: "What kind of change have you added?",
42
+ choices: Object.entries(changeTypes).map(([key, { icon }]) => ({
43
+ title: `${icon} ${key}`,
44
+ value: key,
45
+ })),
46
+ });
47
+ const { icon, prefix } = changeTypes[changeType];
48
+ // Adding change type to the changeset summary
49
+ const newChangeset = changeSetsAfter
50
+ .filter((change) => !changeSetIdsBefore.includes(change.id))
51
+ .map((changeset) => (Object.assign(Object.assign({}, changeset), { summary: `${icon} **${prefix}**: ${changeset.summary}` })))[0];
52
+ // Remove the original changeset file
53
+ yield (0, promises_1.rm)((0, node_path_1.join)(dir, ".changeset", `${newChangeset.id}.md`));
54
+ // Write a new changeset file (includes change type), returns the new id
55
+ const id = yield (0, write_1.default)(newChangeset, dir);
56
+ // Rename new file to previous name
57
+ yield (0, promises_1.rename)((0, node_path_1.join)(dir, ".changeset", `${id}.md`), (0, node_path_1.join)(dir, ".changeset", `${newChangeset.id}.md`));
58
+ }))();
59
+ function runChangesetCmd(args) {
60
+ return new Promise((resolve, reject) => {
61
+ const child = (0, node_child_process_1.fork)((0, node_path_1.join)(dir, "node_modules/.bin/changeset"), args);
62
+ child.on("error", reject);
63
+ child.on("close", (exitCode) => {
64
+ if (exitCode === 0) {
65
+ resolve();
66
+ }
67
+ else {
68
+ reject(new Error(`Changeset process exited with exit code ${exitCode}`));
69
+ }
70
+ });
71
+ });
72
+ }
73
+ function updateChangelogFile() {
74
+ return tslib_1.__awaiter(this, void 0, void 0, function* () {
75
+ const filePath = (0, node_path_1.join)(dir, "CHANGELOG.md");
76
+ const content = yield (0, promises_1.readFile)(filePath, { encoding: "utf-8" });
77
+ const today = new Date();
78
+ const date = `0${today.getDate()}`.slice(-2);
79
+ const month = `0${today.getMonth() + 1}`.slice(-2);
80
+ const year = today.getFullYear();
81
+ const formattedDate = `${year}-${month}-${date}`;
82
+ const updatedChangeLog = content
83
+ // Remove unnecessary titles
84
+ .replace(/\s### (Patch|Minor|Major) Changes\s+/gi, "")
85
+ // Add `v` prefix to the version and add date
86
+ .replace(/## (\d+\.\d+.\d+)\s+/, `## v$1 - ${formattedDate}\n\n`);
87
+ yield (0, promises_1.writeFile)(filePath, updatedChangeLog);
88
+ });
89
+ }
90
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/utils/changeset/index.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@grafana/plugin-ui",
3
- "version": "0.2.0",
3
+ "version": "0.3.0",
4
4
  "repository": "git@github.com:grafana/plugin-ui.git",
5
5
  "author": "Grafana Labs",
6
6
  "main": "dist/index.js",
@@ -12,7 +12,12 @@
12
12
  "storybook": "start-storybook -p 6006",
13
13
  "storybook:build": "build-storybook"
14
14
  },
15
+ "bin": {
16
+ "changeset-improved": "./dist/utils/changeset/index.js"
17
+ },
15
18
  "dependencies": {
19
+ "@changesets/read": "^0.5.9",
20
+ "@changesets/write": "^0.2.3",
16
21
  "@grafana/data": "^8.4.7",
17
22
  "@grafana/experimental": "^0.0.2-canary.39",
18
23
  "@grafana/runtime": "^8.4.7",
@@ -25,6 +30,7 @@
25
30
  "copyfiles": "^2.4.1",
26
31
  "lodash": "^4.17.21",
27
32
  "memoize-one": "^5.1.1",
33
+ "prompts": "^2.4.2",
28
34
  "rc-cascader": "1.0.1",
29
35
  "react-awesome-query-builder": "^5.3.1",
30
36
  "react-use": "17.3.1",
@@ -50,6 +56,7 @@
50
56
  "@testing-library/react": "^11.2.2",
51
57
  "@testing-library/user-event": "^12.8.3",
52
58
  "@types/lodash": "^4.14.194",
59
+ "@types/prompts": "^2.4.4",
53
60
  "@types/react": "17.0.38",
54
61
  "@types/semver": "^7.5.0",
55
62
  "@types/testing-library__jest-dom": "^5.9.5",
@@ -58,6 +65,9 @@
58
65
  "mockdate": "^3.0.2",
59
66
  "ts-jest": "^26.4.4"
60
67
  },
68
+ "peerDependencies": {
69
+ "@changesets/cli": ">=2.x"
70
+ },
61
71
  "files": [
62
72
  "dist/**/*",
63
73
  "package.json"