@comet/admin 9.0.0-beta.3 → 9.0.0-beta.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.
Files changed (42) hide show
  1. package/lib/common/__stories__/Tooltip.stories.js +404 -0
  2. package/lib/common/buttons/__stories__/Button.stories.js +445 -0
  3. package/lib/common/buttons/delete/__stories__/DeleteButton.stories.js +1 -1
  4. package/lib/error/errorHandler/ErrorHandlerProvider.d.ts +8 -0
  5. package/lib/error/errorHandler/ErrorHandlerProvider.d.ts.map +1 -0
  6. package/lib/error/errorHandler/ErrorHandlerProvider.js +16 -0
  7. package/lib/error/errorboundary/ErrorBoundary.d.ts.map +1 -1
  8. package/lib/error/errorboundary/ErrorBoundary.js +26 -18
  9. package/lib/form/FinalFormInput.d.ts.map +1 -1
  10. package/lib/form/FinalFormInput.js +3 -2
  11. package/lib/index.d.ts +1 -0
  12. package/lib/index.d.ts.map +1 -1
  13. package/lib/index.js +1 -0
  14. package/lib/section/__stories__/SectionHeadline.stories.js +71 -0
  15. package/lib/stack/Stack.d.ts.map +1 -1
  16. package/lib/stack/Stack.js +3 -0
  17. package/lib/stack/__stories__/RouterTabsNestedStack.stories.js +51 -0
  18. package/lib/stack/__stories__/Stack.stories.js +14 -0
  19. package/lib/stack/__stories__/StackBackButton.stories.js +50 -0
  20. package/lib/stack/__stories__/StackBreadcrumbs.stories.js +139 -0
  21. package/lib/stack/__stories__/StackBreadcrumbsTabs.stories.js +47 -0
  22. package/lib/stack/__stories__/StackCustomSeparator.stories.js +47 -0
  23. package/lib/stack/__stories__/StackLink.stories.js +41 -0
  24. package/lib/stack/__stories__/StackNested.stories.js +58 -0
  25. package/lib/stack/__stories__/StackNestedOnInitialPage.stories.js +78 -0
  26. package/lib/stack/__stories__/StackNestedOneStack.stories.js +90 -0
  27. package/lib/stack/__stories__/StackPageTitle.stories.js +121 -0
  28. package/lib/stack/__stories__/StackReactNodeTitle.stories.js +54 -0
  29. package/lib/stack/__stories__/StackRefApi.stories.js +56 -0
  30. package/lib/stack/__stories__/StackTableFormQueryAtStack.stories.js +155 -0
  31. package/lib/stack/__stories__/StackTableFormQueryInTable.stories.js +160 -0
  32. package/lib/stack/__stories__/StackUrl.stories.js +66 -0
  33. package/lib/translator/ContentTranslationServiceContext.d.ts +1 -0
  34. package/lib/translator/ContentTranslationServiceContext.d.ts.map +1 -1
  35. package/lib/translator/ContentTranslationServiceProvider.d.ts +1 -1
  36. package/lib/translator/ContentTranslationServiceProvider.d.ts.map +1 -1
  37. package/lib/translator/ContentTranslationServiceProvider.js +4 -2
  38. package/lib/translator/PlainTextTranslationDialog.d.ts +1 -0
  39. package/lib/translator/PlainTextTranslationDialog.d.ts.map +1 -1
  40. package/lib/translator/PlainTextTranslationDialog.js +8 -3
  41. package/lib/translator/__stories__/ContentTranslation.stories.js +104 -0
  42. package/package.json +21 -22
@@ -0,0 +1,160 @@
1
+ function _typeof(o) { "@babel/helpers - typeof"; return _typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && "function" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? "symbol" : typeof o; }, _typeof(o); }
2
+ var _templateObject, _templateObject2;
3
+ function ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }
4
+ function _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
5
+ function _defineProperty(e, r, t) { return (r = _toPropertyKey(r)) in e ? Object.defineProperty(e, r, { value: t, enumerable: !0, configurable: !0, writable: !0 }) : e[r] = t, e; }
6
+ function _toPropertyKey(t) { var i = _toPrimitive(t, "string"); return "symbol" == _typeof(i) ? i : i + ""; }
7
+ function _toPrimitive(t, r) { if ("object" != _typeof(t) || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || "default"); if ("object" != _typeof(i)) return i; throw new TypeError("@@toPrimitive must return a primitive value."); } return ("string" === r ? String : Number)(t); }
8
+ function _taggedTemplateLiteral(e, t) { return t || (t = e.slice(0)), Object.freeze(Object.defineProperties(e, { raw: { value: Object.freeze(t) } })); }
9
+ import { gql, useQuery } from "@apollo/client";
10
+ import { Field, FinalForm, FinalFormInput, Loading, MainContent, Stack, StackPage, StackSwitch, StackSwitchApiContext, Table, TableFilterFinalForm, TableQuery, Toolbar, ToolbarBackButton, ToolbarItem, usePersistedStateId, useTableQuery, useTableQueryFilter } from "@comet/admin";
11
+ import { Edit } from "@comet/admin-icons";
12
+ import { Card, CardContent, Grid, IconButton, Typography } from "@mui/material";
13
+ import { useContext } from "react";
14
+ import { jsx as _jsx, jsxs as _jsxs, Fragment as _Fragment } from "react/jsx-runtime";
15
+ var query = gql(_templateObject || (_templateObject = _taggedTemplateLiteral(["\n query users($query: String) {\n users(query: $query) {\n id\n name\n username\n email\n }\n }\n"])));
16
+ function ExampleTable(props) {
17
+ var filterApi = useTableQueryFilter({
18
+ query: ""
19
+ }, {
20
+ persistedStateId: props.persistedStateId
21
+ });
22
+ var _useTableQuery = useTableQuery()(query, {
23
+ variables: _objectSpread({}, filterApi.current),
24
+ resolveTableData: function resolveTableData(data) {
25
+ return {
26
+ data: data.users,
27
+ totalCount: data.users.length
28
+ };
29
+ }
30
+ }),
31
+ tableData = _useTableQuery.tableData,
32
+ api = _useTableQuery.api,
33
+ loading = _useTableQuery.loading,
34
+ error = _useTableQuery.error;
35
+ var stackApi = useContext(StackSwitchApiContext);
36
+ return /*#__PURE__*/_jsxs(TableQuery, {
37
+ api: api,
38
+ loading: loading,
39
+ error: error,
40
+ children: [/*#__PURE__*/_jsxs(Toolbar, {
41
+ children: [/*#__PURE__*/_jsx(ToolbarItem, {
42
+ children: /*#__PURE__*/_jsx(Typography, {
43
+ variant: "h3",
44
+ children: "Stack Table Form Query In Table"
45
+ })
46
+ }), /*#__PURE__*/_jsx(ToolbarItem, {
47
+ children: /*#__PURE__*/_jsx(TableFilterFinalForm, {
48
+ filterApi: filterApi,
49
+ children: /*#__PURE__*/_jsx(Field, {
50
+ name: "query",
51
+ type: "text",
52
+ component: FinalFormInput,
53
+ fullWidth: true
54
+ })
55
+ })
56
+ })]
57
+ }), tableData && /*#__PURE__*/_jsx(MainContent, {
58
+ children: /*#__PURE__*/_jsx(Table, _objectSpread(_objectSpread({}, tableData), {}, {
59
+ columns: [{
60
+ name: "name",
61
+ header: "Name"
62
+ }, {
63
+ name: "edit",
64
+ header: "",
65
+ cellProps: {
66
+ padding: "none"
67
+ },
68
+ render: function render(row) {
69
+ return /*#__PURE__*/_jsx(Grid, {
70
+ children: /*#__PURE__*/_jsx(IconButton, {
71
+ onClick: function onClick() {
72
+ stackApi.activatePage("form", String(row.id));
73
+ },
74
+ size: "large",
75
+ children: /*#__PURE__*/_jsx(Edit, {})
76
+ })
77
+ });
78
+ }
79
+ }]
80
+ }))
81
+ })]
82
+ });
83
+ }
84
+ function ExampleForm(props) {
85
+ var detailQuery = gql(_templateObject2 || (_templateObject2 = _taggedTemplateLiteral(["\n query user($id: Int) {\n user(id: $id) {\n id\n name\n }\n }\n "])));
86
+ var _useQuery = useQuery(detailQuery, {
87
+ variables: {
88
+ id: props.id
89
+ }
90
+ }),
91
+ loading = _useQuery.loading,
92
+ data = _useQuery.data,
93
+ error = _useQuery.error;
94
+ if (error) {
95
+ return /*#__PURE__*/_jsxs("p", {
96
+ children: ["Error :( ", error.toString()]
97
+ });
98
+ }
99
+ return /*#__PURE__*/_jsxs(_Fragment, {
100
+ children: [/*#__PURE__*/_jsxs(Toolbar, {
101
+ children: [/*#__PURE__*/_jsx(ToolbarBackButton, {}), /*#__PURE__*/_jsx(ToolbarItem, {
102
+ children: /*#__PURE__*/_jsx(Typography, {
103
+ variant: "h3",
104
+ children: "Stack Table Form Query In Table - Detail"
105
+ })
106
+ })]
107
+ }), /*#__PURE__*/_jsx(MainContent, {
108
+ fullHeight: true,
109
+ children: loading || !data ? /*#__PURE__*/_jsx(Loading, {
110
+ behavior: "fillParent"
111
+ }) : /*#__PURE__*/_jsx(Card, {
112
+ variant: "outlined",
113
+ children: /*#__PURE__*/_jsx(CardContent, {
114
+ children: /*#__PURE__*/_jsx(FinalForm, {
115
+ mode: "edit",
116
+ onSubmit: function onSubmit(values) {
117
+ // submit here
118
+ },
119
+ initialValues: data.user,
120
+ children: /*#__PURE__*/_jsx(Field, {
121
+ label: "Name",
122
+ name: "name",
123
+ defaultOptions: true,
124
+ required: true,
125
+ component: FinalFormInput
126
+ })
127
+ })
128
+ })
129
+ })
130
+ })]
131
+ });
132
+ }
133
+ export default {
134
+ title: "components/stack/StackTableFormQueryInTable"
135
+ };
136
+ export var StackTableFormQueryInTable = {
137
+ render: function render() {
138
+ var persistedStateId = usePersistedStateId();
139
+ return /*#__PURE__*/_jsx(Stack, {
140
+ topLevelTitle: "Stack",
141
+ children: /*#__PURE__*/_jsxs(StackSwitch, {
142
+ children: [/*#__PURE__*/_jsx(StackPage, {
143
+ name: "table",
144
+ children: /*#__PURE__*/_jsx(ExampleTable, {
145
+ persistedStateId: persistedStateId
146
+ })
147
+ }), /*#__PURE__*/_jsx(StackPage, {
148
+ name: "form",
149
+ title: "bearbeiten",
150
+ children: function children(selectedId) {
151
+ return /*#__PURE__*/_jsx(ExampleForm, {
152
+ id: +selectedId
153
+ });
154
+ }
155
+ })]
156
+ })
157
+ });
158
+ },
159
+ name: "Stack Table Form Query in Table"
160
+ };
@@ -0,0 +1,66 @@
1
+ import { Stack, StackBreadcrumbs, StackLink, StackPage, StackSwitch } from "@comet/admin";
2
+ import { useLocation } from "react-router";
3
+ import { jsxs as _jsxs, jsx as _jsx, Fragment as _Fragment } from "react/jsx-runtime";
4
+ export default {
5
+ title: "components/stack/StackUrl"
6
+ };
7
+ export var StackUrl = {
8
+ render: function render() {
9
+ var location = useLocation();
10
+ return /*#__PURE__*/_jsxs(_Fragment, {
11
+ children: [/*#__PURE__*/_jsxs("p", {
12
+ children: ["Pathname: ", location.pathname]
13
+ }), /*#__PURE__*/_jsxs(Stack, {
14
+ topLevelTitle: "Stack Url",
15
+ children: [/*#__PURE__*/_jsx(StackBreadcrumbs, {}), /*#__PURE__*/_jsxs(StackSwitch, {
16
+ children: [/*#__PURE__*/_jsxs(StackPage, {
17
+ name: "page1",
18
+ children: [/*#__PURE__*/_jsx("h3", {
19
+ children: "Page 1"
20
+ }), /*#__PURE__*/_jsx(StackLink, {
21
+ pageName: "page2",
22
+ payload: "test",
23
+ children: "go to page 2"
24
+ })]
25
+ }), /*#__PURE__*/_jsxs(StackPage, {
26
+ name: "page2",
27
+ children: [/*#__PURE__*/_jsx("h3", {
28
+ children: "Page 2"
29
+ }), /*#__PURE__*/_jsx("p", {
30
+ children: /*#__PURE__*/_jsx(StackLink, {
31
+ pageName: "page1",
32
+ payload: "test",
33
+ children: "go to page 1"
34
+ })
35
+ }), /*#__PURE__*/_jsxs(StackSwitch, {
36
+ children: [/*#__PURE__*/_jsxs(StackPage, {
37
+ name: "page2-1",
38
+ children: [/*#__PURE__*/_jsx("h3", {
39
+ children: "Page 2-1"
40
+ }), /*#__PURE__*/_jsx("p", {
41
+ children: /*#__PURE__*/_jsx(StackLink, {
42
+ pageName: "page2-2",
43
+ payload: "test",
44
+ children: "go to page 2-2"
45
+ })
46
+ })]
47
+ }), /*#__PURE__*/_jsxs(StackPage, {
48
+ name: "page2-2",
49
+ children: [/*#__PURE__*/_jsx("h3", {
50
+ children: "Page 2-2"
51
+ }), /*#__PURE__*/_jsx("p", {
52
+ children: /*#__PURE__*/_jsx(StackLink, {
53
+ pageName: "page2-1",
54
+ payload: "test",
55
+ children: "go to page 2-1"
56
+ })
57
+ })]
58
+ })]
59
+ })]
60
+ })]
61
+ })]
62
+ })]
63
+ });
64
+ },
65
+ name: "StackUrl"
66
+ };
@@ -2,6 +2,7 @@ export interface ContentTranslationServiceContext {
2
2
  enabled: boolean;
3
3
  showApplyTranslationDialog?: boolean;
4
4
  translate: (text: string) => Promise<string>;
5
+ batchTranslate?: (texts: string[]) => Promise<string[]>;
5
6
  }
6
7
  export declare const ContentTranslationServiceContext: import("react").Context<ContentTranslationServiceContext>;
7
8
  //# sourceMappingURL=ContentTranslationServiceContext.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"ContentTranslationServiceContext.d.ts","sourceRoot":"","sources":["../../src/translator/ContentTranslationServiceContext.tsx"],"names":[],"mappings":"AAEA,MAAM,WAAW,gCAAgC;IAC7C,OAAO,EAAE,OAAO,CAAC;IACjB,0BAA0B,CAAC,EAAE,OAAO,CAAC;IACrC,SAAS,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,OAAO,CAAC,MAAM,CAAC,CAAC;CAChD;AAED,eAAO,MAAM,gCAAgC,2DAK3C,CAAC"}
1
+ {"version":3,"file":"ContentTranslationServiceContext.d.ts","sourceRoot":"","sources":["../../src/translator/ContentTranslationServiceContext.tsx"],"names":[],"mappings":"AAEA,MAAM,WAAW,gCAAgC;IAC7C,OAAO,EAAE,OAAO,CAAC;IACjB,0BAA0B,CAAC,EAAE,OAAO,CAAC;IACrC,SAAS,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,OAAO,CAAC,MAAM,CAAC,CAAC;IAC7C,cAAc,CAAC,EAAE,CAAC,KAAK,EAAE,MAAM,EAAE,KAAK,OAAO,CAAC,MAAM,EAAE,CAAC,CAAC;CAC3D;AAED,eAAO,MAAM,gCAAgC,2DAK3C,CAAC"}
@@ -1,4 +1,4 @@
1
1
  import type { PropsWithChildren } from "react";
2
2
  import { ContentTranslationServiceContext } from "./ContentTranslationServiceContext";
3
- export declare const ContentTranslationServiceProvider: ({ children, enabled, showApplyTranslationDialog, translate, }: PropsWithChildren<ContentTranslationServiceContext>) => import("react/jsx-runtime").JSX.Element;
3
+ export declare const ContentTranslationServiceProvider: ({ children, enabled, showApplyTranslationDialog, translate, batchTranslate, }: PropsWithChildren<ContentTranslationServiceContext>) => import("react/jsx-runtime").JSX.Element;
4
4
  //# sourceMappingURL=ContentTranslationServiceProvider.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"ContentTranslationServiceProvider.d.ts","sourceRoot":"","sources":["../../src/translator/ContentTranslationServiceProvider.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,OAAO,CAAC;AAE/C,OAAO,EAAE,gCAAgC,EAAE,MAAM,oCAAoC,CAAC;AAEtF,eAAO,MAAM,iCAAiC,GAAI,+DAK/C,iBAAiB,CAAC,gCAAgC,CAAC,4CAMrD,CAAC"}
1
+ {"version":3,"file":"ContentTranslationServiceProvider.d.ts","sourceRoot":"","sources":["../../src/translator/ContentTranslationServiceProvider.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,OAAO,CAAC;AAE/C,OAAO,EAAE,gCAAgC,EAAE,MAAM,oCAAoC,CAAC;AAEtF,eAAO,MAAM,iCAAiC,GAAI,+EAM/C,iBAAiB,CAAC,gCAAgC,CAAC,4CAMrD,CAAC"}
@@ -4,12 +4,14 @@ export var ContentTranslationServiceProvider = function ContentTranslationServic
4
4
  var children = _ref.children,
5
5
  enabled = _ref.enabled,
6
6
  showApplyTranslationDialog = _ref.showApplyTranslationDialog,
7
- translate = _ref.translate;
7
+ translate = _ref.translate,
8
+ batchTranslate = _ref.batchTranslate;
8
9
  return /*#__PURE__*/_jsx(ContentTranslationServiceContext.Provider, {
9
10
  value: {
10
11
  enabled: enabled,
11
12
  showApplyTranslationDialog: showApplyTranslationDialog,
12
- translate: translate
13
+ translate: translate,
14
+ batchTranslate: batchTranslate
13
15
  },
14
16
  children: children
15
17
  });
@@ -4,6 +4,7 @@ interface PlainTextTranslationDialogProps {
4
4
  originalText: string;
5
5
  translatedText: string;
6
6
  onApplyTranslation: (value: string) => void;
7
+ multiline?: boolean;
7
8
  }
8
9
  export declare const PlainTextTranslationDialog: (props: PlainTextTranslationDialogProps) => import("react/jsx-runtime").JSX.Element;
9
10
  export {};
@@ -1 +1 @@
1
- {"version":3,"file":"PlainTextTranslationDialog.d.ts","sourceRoot":"","sources":["../../src/translator/PlainTextTranslationDialog.tsx"],"names":[],"mappings":"AAIA,UAAU,+BAA+B;IACrC,IAAI,EAAE,OAAO,CAAC;IACd,OAAO,EAAE,MAAM,IAAI,CAAC;IACpB,YAAY,EAAE,MAAM,CAAC;IACrB,cAAc,EAAE,MAAM,CAAC;IACvB,kBAAkB,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,IAAI,CAAC;CAC/C;AAED,eAAO,MAAM,0BAA0B,GAAI,OAAO,+BAA+B,4CAchF,CAAC"}
1
+ {"version":3,"file":"PlainTextTranslationDialog.d.ts","sourceRoot":"","sources":["../../src/translator/PlainTextTranslationDialog.tsx"],"names":[],"mappings":"AAIA,UAAU,+BAA+B;IACrC,IAAI,EAAE,OAAO,CAAC;IACd,OAAO,EAAE,MAAM,IAAI,CAAC;IACpB,YAAY,EAAE,MAAM,CAAC;IACrB,cAAc,EAAE,MAAM,CAAC;IACvB,kBAAkB,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,IAAI,CAAC;IAC5C,SAAS,CAAC,EAAE,OAAO,CAAC;CACvB;AAED,eAAO,MAAM,0BAA0B,GAAI,OAAO,+BAA+B,4CAsBhF,CAAC"}
@@ -6,7 +6,8 @@ export var PlainTextTranslationDialog = function PlainTextTranslationDialog(prop
6
6
  onClose = props.onClose,
7
7
  originalText = props.originalText,
8
8
  translatedText = props.translatedText,
9
- onApplyTranslation = props.onApplyTranslation;
9
+ onApplyTranslation = props.onApplyTranslation,
10
+ multiline = props.multiline;
10
11
  return /*#__PURE__*/_jsx(BaseTranslationDialog, {
11
12
  open: open,
12
13
  onClose: onClose,
@@ -17,7 +18,9 @@ export var PlainTextTranslationDialog = function PlainTextTranslationDialog(prop
17
18
  return /*#__PURE__*/_jsx(TextField, {
18
19
  value: text,
19
20
  disabled: true,
20
- fullWidth: true
21
+ fullWidth: true,
22
+ multiline: multiline,
23
+ rows: multiline ? 3 : undefined
21
24
  });
22
25
  },
23
26
  renderTranslatedText: function renderTranslatedText(text, _onChange) {
@@ -26,7 +29,9 @@ export var PlainTextTranslationDialog = function PlainTextTranslationDialog(prop
26
29
  onChange: function onChange(event) {
27
30
  return _onChange(event.target.value);
28
31
  },
29
- fullWidth: true
32
+ fullWidth: true,
33
+ multiline: multiline,
34
+ rows: multiline ? 3 : undefined
30
35
  });
31
36
  }
32
37
  });
@@ -0,0 +1,104 @@
1
+ function _regenerator() { /*! regenerator-runtime -- Copyright (c) 2014-present, Facebook, Inc. -- license (MIT): https://github.com/babel/babel/blob/main/packages/babel-helpers/LICENSE */ var e, t, r = "function" == typeof Symbol ? Symbol : {}, n = r.iterator || "@@iterator", o = r.toStringTag || "@@toStringTag"; function i(r, n, o, i) { var c = n && n.prototype instanceof Generator ? n : Generator, u = Object.create(c.prototype); return _regeneratorDefine2(u, "_invoke", function (r, n, o) { var i, c, u, f = 0, p = o || [], y = !1, G = { p: 0, n: 0, v: e, a: d, f: d.bind(e, 4), d: function d(t, r) { return i = t, c = 0, u = e, G.n = r, a; } }; function d(r, n) { for (c = r, u = n, t = 0; !y && f && !o && t < p.length; t++) { var o, i = p[t], d = G.p, l = i[2]; r > 3 ? (o = l === n) && (u = i[(c = i[4]) ? 5 : (c = 3, 3)], i[4] = i[5] = e) : i[0] <= d && ((o = r < 2 && d < i[1]) ? (c = 0, G.v = n, G.n = i[1]) : d < l && (o = r < 3 || i[0] > n || n > l) && (i[4] = r, i[5] = n, G.n = l, c = 0)); } if (o || r > 1) return a; throw y = !0, n; } return function (o, p, l) { if (f > 1) throw TypeError("Generator is already running"); for (y && 1 === p && d(p, l), c = p, u = l; (t = c < 2 ? e : u) || !y;) { i || (c ? c < 3 ? (c > 1 && (G.n = -1), d(c, u)) : G.n = u : G.v = u); try { if (f = 2, i) { if (c || (o = "next"), t = i[o]) { if (!(t = t.call(i, u))) throw TypeError("iterator result is not an object"); if (!t.done) return t; u = t.value, c < 2 && (c = 0); } else 1 === c && (t = i["return"]) && t.call(i), c < 2 && (u = TypeError("The iterator does not provide a '" + o + "' method"), c = 1); i = e; } else if ((t = (y = G.n < 0) ? u : r.call(n, G)) !== a) break; } catch (t) { i = e, c = 1, u = t; } finally { f = 1; } } return { value: t, done: y }; }; }(r, o, i), !0), u; } var a = {}; function Generator() {} function GeneratorFunction() {} function GeneratorFunctionPrototype() {} t = Object.getPrototypeOf; var c = [][n] ? t(t([][n]())) : (_regeneratorDefine2(t = {}, n, function () { return this; }), t), u = GeneratorFunctionPrototype.prototype = Generator.prototype = Object.create(c); function f(e) { return Object.setPrototypeOf ? Object.setPrototypeOf(e, GeneratorFunctionPrototype) : (e.__proto__ = GeneratorFunctionPrototype, _regeneratorDefine2(e, o, "GeneratorFunction")), e.prototype = Object.create(u), e; } return GeneratorFunction.prototype = GeneratorFunctionPrototype, _regeneratorDefine2(u, "constructor", GeneratorFunctionPrototype), _regeneratorDefine2(GeneratorFunctionPrototype, "constructor", GeneratorFunction), GeneratorFunction.displayName = "GeneratorFunction", _regeneratorDefine2(GeneratorFunctionPrototype, o, "GeneratorFunction"), _regeneratorDefine2(u), _regeneratorDefine2(u, o, "Generator"), _regeneratorDefine2(u, n, function () { return this; }), _regeneratorDefine2(u, "toString", function () { return "[object Generator]"; }), (_regenerator = function _regenerator() { return { w: i, m: f }; })(); }
2
+ function _regeneratorDefine2(e, r, n, t) { var i = Object.defineProperty; try { i({}, "", {}); } catch (e) { i = 0; } _regeneratorDefine2 = function _regeneratorDefine(e, r, n, t) { function o(r, n) { _regeneratorDefine2(e, r, function (e) { return this._invoke(r, n, e); }); } r ? i ? i(e, r, { value: n, enumerable: !t, configurable: !t, writable: !t }) : e[r] = n : (o("next", 0), o("throw", 1), o("return", 2)); }, _regeneratorDefine2(e, r, n, t); }
3
+ function asyncGeneratorStep(n, t, e, r, o, a, c) { try { var i = n[a](c), u = i.value; } catch (n) { return void e(n); } i.done ? t(u) : Promise.resolve(u).then(r, o); }
4
+ function _asyncToGenerator(n) { return function () { var t = this, e = arguments; return new Promise(function (r, o) { var a = n.apply(t, e); function _next(n) { asyncGeneratorStep(a, r, o, _next, _throw, "next", n); } function _throw(n) { asyncGeneratorStep(a, r, o, _next, _throw, "throw", n); } _next(void 0); }); }; }
5
+ import { FinalForm } from "../../FinalForm";
6
+ import { TextAreaField } from "../../form/fields/TextAreaField";
7
+ import { TextField } from "../../form/fields/TextField";
8
+ import { FinalFormDebug } from "../../form/FinalFormDebug";
9
+ import { ContentTranslationServiceProvider } from "../ContentTranslationServiceProvider";
10
+ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
11
+ var reverseTranslate = /*#__PURE__*/function () {
12
+ var _ref = _asyncToGenerator(/*#__PURE__*/_regenerator().m(function _callee(text) {
13
+ return _regenerator().w(function (_context) {
14
+ while (1) switch (_context.n) {
15
+ case 0:
16
+ return _context.a(2, text.split("").reverse().join(""));
17
+ }
18
+ }, _callee);
19
+ }));
20
+ return function reverseTranslate(_x) {
21
+ return _ref.apply(this, arguments);
22
+ };
23
+ }();
24
+ var initialValues = {
25
+ title: "Hello World",
26
+ description: "The quick brown fox jumps over the lazy dog."
27
+ };
28
+ var TranslationProvider = function TranslationProvider(_ref2) {
29
+ var children = _ref2.children,
30
+ showApplyTranslationDialog = _ref2.showApplyTranslationDialog;
31
+ return /*#__PURE__*/_jsx(ContentTranslationServiceProvider, {
32
+ enabled: true,
33
+ translate: reverseTranslate,
34
+ showApplyTranslationDialog: showApplyTranslationDialog,
35
+ children: children
36
+ });
37
+ };
38
+ var config = {
39
+ component: ContentTranslationServiceProvider,
40
+ title: "components/translator/ContentTranslation"
41
+ };
42
+ export default config;
43
+
44
+ /**
45
+ * Translation is applied immediately when clicking the translate button on a `TextField` or `TextAreaField`.
46
+ *
47
+ * The fake `translate` function used here reverses the input text.
48
+ */
49
+ export var Default = {
50
+ render: function render() {
51
+ return /*#__PURE__*/_jsx(TranslationProvider, {
52
+ children: /*#__PURE__*/_jsxs(FinalForm, {
53
+ mode: "edit",
54
+ onSubmit: function onSubmit() {
55
+ // not handled
56
+ },
57
+ initialValues: initialValues,
58
+ subscription: {
59
+ values: true
60
+ },
61
+ children: [/*#__PURE__*/_jsx(TextField, {
62
+ name: "title",
63
+ label: "Title",
64
+ fullWidth: true
65
+ }), /*#__PURE__*/_jsx(TextAreaField, {
66
+ name: "description",
67
+ label: "Description",
68
+ fullWidth: true
69
+ }), /*#__PURE__*/_jsx(FinalFormDebug, {})]
70
+ })
71
+ });
72
+ }
73
+ };
74
+
75
+ /**
76
+ * With `showApplyTranslationDialog` enabled, the translation is shown in a dialog where the user can review
77
+ * and edit it before applying. For `TextAreaField`, the dialog renders the input as a multiline textarea.
78
+ */
79
+ export var WithApplyTranslationDialog = {
80
+ render: function render() {
81
+ return /*#__PURE__*/_jsx(TranslationProvider, {
82
+ showApplyTranslationDialog: true,
83
+ children: /*#__PURE__*/_jsxs(FinalForm, {
84
+ mode: "edit",
85
+ onSubmit: function onSubmit() {
86
+ // not handled
87
+ },
88
+ initialValues: initialValues,
89
+ subscription: {
90
+ values: true
91
+ },
92
+ children: [/*#__PURE__*/_jsx(TextField, {
93
+ name: "title",
94
+ label: "Title",
95
+ fullWidth: true
96
+ }), /*#__PURE__*/_jsx(TextAreaField, {
97
+ name: "description",
98
+ label: "Description",
99
+ fullWidth: true
100
+ }), /*#__PURE__*/_jsx(FinalFormDebug, {})]
101
+ })
102
+ });
103
+ }
104
+ };
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@comet/admin",
3
- "version": "9.0.0-beta.3",
3
+ "version": "9.0.0-beta.4",
4
4
  "description": "Comet Admin package",
5
5
  "repository": {
6
6
  "directory": "packages/admin/admin",
@@ -20,7 +20,7 @@
20
20
  "lib"
21
21
  ],
22
22
  "dependencies": {
23
- "@mui/utils": "^7.3.7",
23
+ "@mui/utils": "^7.3.11",
24
24
  "date-fns": "^4.1.0",
25
25
  "exceljs": "^4.4.0",
26
26
  "final-form-set-field-data": "^1.0.2",
@@ -31,25 +31,24 @@
31
31
  "query-string": "^7.1.3",
32
32
  "react-dropzone": "^14.3.8",
33
33
  "use-constant": "^2.0.0",
34
- "uuid": "^11.1.0",
35
- "@comet/admin-icons": "9.0.0-beta.3"
34
+ "uuid": "^11.1.1",
35
+ "@comet/admin-icons": "9.0.0-beta.4"
36
36
  },
37
37
  "devDependencies": {
38
38
  "@apollo/client": "^3.14.1",
39
39
  "@babel/cli": "^7.28.6",
40
- "@babel/core": "^7.28.6",
40
+ "@babel/core": "^7.29.0",
41
41
  "@emotion/react": "^11.14.0",
42
42
  "@emotion/styled": "^11.14.1",
43
- "@mui/material": "^7.3.7",
44
- "@mui/system": "^7.3.7",
45
- "@mui/x-data-grid": "^8.28.2",
46
- "@mui/x-data-grid-premium": "^8.28.3",
47
- "@mui/x-data-grid-pro": "^8.28.3",
48
- "@mui/x-date-pickers": "^8.28.4",
49
- "@mui/x-date-pickers-pro": "^8.28.4",
43
+ "@mui/material": "^7.3.11",
44
+ "@mui/system": "^7.3.11",
45
+ "@mui/x-data-grid": "^8.28.6",
46
+ "@mui/x-data-grid-premium": "^8.28.6",
47
+ "@mui/x-data-grid-pro": "^8.28.6",
48
+ "@mui/x-date-pickers": "^8.28.5",
49
+ "@mui/x-date-pickers-pro": "^8.28.5",
50
50
  "@storybook/addon-docs": "^10.3.5",
51
- "@storybook/addon-webpack5-compiler-babel": "^4.0.1",
52
- "@storybook/react-webpack5": "^10.3.5",
51
+ "@storybook/react-vite": "^10.3.5",
53
52
  "@testing-library/dom": "^10.4.1",
54
53
  "@testing-library/jest-dom": "^6.9.1",
55
54
  "@testing-library/react": "^16.3.2",
@@ -58,12 +57,12 @@
58
57
  "@types/history": "^4.7.11",
59
58
  "@types/lodash.debounce": "^4.0.9",
60
59
  "@types/lodash.isequal": "^4.5.8",
61
- "@types/node": "^24.12.2",
62
- "@types/react": "^19.2.10",
60
+ "@types/node": "^24.12.4",
61
+ "@types/react": "^19.2.14",
63
62
  "@types/react-dom": "^19.2.3",
64
63
  "@types/react-router": "^5.1.20",
65
64
  "@types/react-router-dom": "^5.3.3",
66
- "eslint": "^9.39.2",
65
+ "eslint": "^9.39.4",
67
66
  "eslint-plugin-storybook": "^10.3.5",
68
67
  "final-form": "^4.20.10",
69
68
  "graphql": "^16.13.2",
@@ -72,9 +71,9 @@
72
71
  "msw": "^2.10.4",
73
72
  "npm-run-all2": "^8.0.4",
74
73
  "prettier": "^3.6.2",
75
- "react": "^19.2.4",
74
+ "react": "^19.2.6",
76
75
  "react-dnd": "^16.0.1",
77
- "react-dom": "^19.2.4",
76
+ "react-dom": "^19.2.6",
78
77
  "react-final-form": "^6.5.9",
79
78
  "react-intl": "^7.1.11",
80
79
  "react-router": "^5.3.4",
@@ -85,9 +84,9 @@
85
84
  "typescript": "^5.9.3",
86
85
  "vite-tsconfig-paths": "^6.0.4",
87
86
  "vitest": "^4.0.16",
88
- "@comet/admin-babel-preset": "9.0.0-beta.3",
89
- "@comet/eslint-config": "9.0.0-beta.3",
90
- "@comet/eslint-plugin": "9.0.0-beta.3"
87
+ "@comet/admin-babel-preset": "9.0.0-beta.4",
88
+ "@comet/eslint-config": "9.0.0-beta.4",
89
+ "@comet/eslint-plugin": "9.0.0-beta.4"
91
90
  },
92
91
  "peerDependencies": {
93
92
  "@apollo/client": "^3.7.0",