@acmekit/dashboard 2.13.7 → 2.13.9
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/dist/api-key-management-create-VWUERPPB.mjs +170 -0
- package/dist/api-key-management-detail-V4ENQHYY.mjs +306 -0
- package/dist/api-key-management-edit-R44OHS7B.mjs +106 -0
- package/dist/api-key-management-list-K2XPKF5E.mjs +400 -0
- package/dist/app.js +16765 -1370
- package/dist/app.mjs +786 -1030
- package/dist/chunk-22YYMH6M.mjs +382 -0
- package/dist/chunk-2U3RK3JG.mjs +474 -0
- package/dist/chunk-535OVBXR.mjs +226 -0
- package/dist/chunk-774WSTCC.mjs +19 -0
- package/dist/chunk-C76H5USB.mjs +16 -0
- package/dist/chunk-DFFLVEZ5.mjs +40 -0
- package/dist/chunk-DN3MIYQH.mjs +140 -0
- package/dist/chunk-DQCEH3X2.mjs +28 -0
- package/dist/chunk-DTY37DDZ.mjs +20 -0
- package/dist/chunk-EFRMWHRX.mjs +84 -0
- package/dist/chunk-FXYH54JP.mjs +16 -0
- package/dist/chunk-G22WWLPG.mjs +44 -0
- package/dist/chunk-G2VJOHHV.mjs +32 -0
- package/dist/chunk-GBFVWROS.mjs +58 -0
- package/dist/chunk-ITNQKZQQ.mjs +142 -0
- package/dist/chunk-IUCDCPJU.mjs +0 -0
- package/dist/chunk-LKWTBYYC.mjs +35 -0
- package/dist/{chunk-4VYJHIB3.mjs → chunk-ND3ODI36.mjs} +0 -72
- package/dist/chunk-OAHCJFG3.mjs +17 -0
- package/dist/chunk-RPAL6FHW.mjs +73 -0
- package/dist/{chunk-JSJZMTQG.mjs → chunk-RREPQMYC.mjs} +14 -41
- package/dist/chunk-S3REQHPQ.mjs +86 -0
- package/dist/chunk-S4DMV3ZT.mjs +35 -0
- package/dist/chunk-ST2YB7JN.mjs +74 -0
- package/dist/chunk-TCNCAWYD.mjs +9 -0
- package/dist/chunk-ULSPL3DR.mjs +126 -0
- package/dist/chunk-WILMJYUB.mjs +35 -0
- package/dist/chunk-XIM7X4FB.mjs +83 -0
- package/dist/chunk-YLPAZ2DP.mjs +1837 -0
- package/dist/chunk-YRWSG3YM.mjs +80 -0
- package/dist/{invite-S5USGDOZ.mjs → invite-XGPZZBUP.mjs} +15 -7
- package/dist/{login-AIMR26AL.mjs → login-GNP3QIPI.mjs} +25 -12
- package/dist/profile-detail-YX27F7N6.mjs +96 -0
- package/dist/profile-edit-2VRDU75O.mjs +173 -0
- package/dist/{reset-password-UQPRHMB3.mjs → reset-password-TWRNZO6Z.mjs} +7 -3
- package/dist/settings-3XWLL5LG.mjs +545 -0
- package/dist/translation-list-CCEQJNED.mjs +581 -0
- package/dist/translations-edit-E57GVUFV.mjs +5376 -0
- package/dist/user-detail-KUSRRVNX.mjs +169 -0
- package/dist/user-edit-HTN3ZGCL.mjs +114 -0
- package/dist/user-invite-E3FAAU3V.mjs +361 -0
- package/dist/user-list-KNJ5S3IM.mjs +1116 -0
- package/dist/user-metadata-5GQK75DT.mjs +425 -0
- package/dist/workflow-execution-detail-LZXCRVNC.mjs +819 -0
- package/dist/workflow-execution-list-HQ3V6TML.mjs +175 -0
- package/package.json +9 -9
- package/src/components/layout/settings-layout/settings-layout.tsx +8 -2
- package/src/dashboard-app/routes/get-route.map.tsx +1 -14
- package/src/hooks/api/api-keys.tsx +0 -49
- package/src/hooks/api/index.ts +0 -1
- package/src/providers/keybind-provider/hooks.tsx +0 -145
- package/src/routes/translations/translation-list/translation-list.tsx +10 -21
- package/src/routes/translations/translations-edit/translations-edit.tsx +14 -11
- package/src/vite-env.d.ts +3 -1
- package/dist/chunk-FBTP4AJM.mjs +0 -221
- package/dist/chunk-QYOO4QR6.mjs +0 -73
- package/src/components/data-table/helpers/sales-channels/index.ts +0 -4
- package/src/components/data-table/helpers/sales-channels/use-sales-channel-table-columns.tsx +0 -61
- package/src/components/data-table/helpers/sales-channels/use-sales-channel-table-empty-state.tsx +0 -22
- package/src/components/data-table/helpers/sales-channels/use-sales-channel-table-filters.tsx +0 -33
- package/src/components/data-table/helpers/sales-channels/use-sales-channel-table-query.tsx +0 -30
- package/src/routes/api-key-management/api-key-management-detail/components/api-key-sales-channel-section/api-key-sales-channel-section.tsx +0 -206
- package/src/routes/api-key-management/api-key-management-detail/components/api-key-sales-channel-section/index.ts +0 -1
- package/src/routes/store/common/hooks/use-currencies-table-columns.tsx +0 -29
- package/src/routes/store/common/hooks/use-currencies-table-query.tsx +0 -21
- package/src/routes/store/common/hooks/use-locales-table-columns.tsx +0 -29
- package/src/routes/store/common/hooks/use-locales-table-query.tsx +0 -21
- package/src/routes/store/store-detail/components/store-general-section/index.ts +0 -1
- package/src/routes/store/store-detail/components/store-general-section/store-general-section.tsx +0 -48
- package/src/routes/store/store-detail/index.ts +0 -2
- package/src/routes/store/store-detail/loader.ts +0 -18
- package/src/routes/store/store-detail/store-detail.tsx +0 -42
- package/src/routes/store/store-edit/components/edit-store-form/edit-store-form.tsx +0 -83
- package/src/routes/store/store-edit/index.ts +0 -1
- package/src/routes/store/store-edit/store-edit.tsx +0 -25
- package/src/routes/store/store-metadata/index.ts +0 -1
- package/src/routes/store/store-metadata/store-metadata.tsx +0 -24
|
@@ -0,0 +1,382 @@
|
|
|
1
|
+
// src/components/layout/pages/single-column-page/single-column-page.tsx
|
|
2
|
+
import { Outlet } from "react-router-dom";
|
|
3
|
+
|
|
4
|
+
// src/components/common/json-view-section/json-view-section.tsx
|
|
5
|
+
import {
|
|
6
|
+
ArrowUpRightOnBox,
|
|
7
|
+
Check,
|
|
8
|
+
SquareTwoStack,
|
|
9
|
+
TriangleDownMini,
|
|
10
|
+
XMarkMini
|
|
11
|
+
} from "@acmekit/icons";
|
|
12
|
+
import {
|
|
13
|
+
Badge,
|
|
14
|
+
Container,
|
|
15
|
+
Drawer,
|
|
16
|
+
Heading,
|
|
17
|
+
IconButton,
|
|
18
|
+
Kbd
|
|
19
|
+
} from "@acmekit/ui";
|
|
20
|
+
import Primitive from "@uiw/react-json-view";
|
|
21
|
+
import { Suspense, useState } from "react";
|
|
22
|
+
import { Trans, useTranslation } from "react-i18next";
|
|
23
|
+
import { jsx, jsxs } from "react/jsx-runtime";
|
|
24
|
+
var JsonViewSection = ({ data }) => {
|
|
25
|
+
const { t } = useTranslation();
|
|
26
|
+
const numberOfKeys = Object.keys(data).length;
|
|
27
|
+
return /* @__PURE__ */ jsxs(Container, { className: "flex items-center justify-between px-6 py-4", children: [
|
|
28
|
+
/* @__PURE__ */ jsxs("div", { className: "flex items-center gap-x-4", children: [
|
|
29
|
+
/* @__PURE__ */ jsx(Heading, { level: "h2", children: t("json.header") }),
|
|
30
|
+
/* @__PURE__ */ jsx(Badge, { size: "2xsmall", rounded: "full", children: t("json.numberOfKeys", {
|
|
31
|
+
count: numberOfKeys
|
|
32
|
+
}) })
|
|
33
|
+
] }),
|
|
34
|
+
/* @__PURE__ */ jsxs(Drawer, { children: [
|
|
35
|
+
/* @__PURE__ */ jsx(Drawer.Trigger, { asChild: true, children: /* @__PURE__ */ jsx(
|
|
36
|
+
IconButton,
|
|
37
|
+
{
|
|
38
|
+
size: "small",
|
|
39
|
+
variant: "transparent",
|
|
40
|
+
className: "text-ui-fg-muted hover:text-ui-fg-subtle",
|
|
41
|
+
children: /* @__PURE__ */ jsx(ArrowUpRightOnBox, {})
|
|
42
|
+
}
|
|
43
|
+
) }),
|
|
44
|
+
/* @__PURE__ */ jsxs(
|
|
45
|
+
Drawer.Content,
|
|
46
|
+
{
|
|
47
|
+
dir: "ltr",
|
|
48
|
+
className: "bg-ui-contrast-bg-base text-ui-code-fg-subtle !shadow-elevation-commandbar overflow-hidden border border-none max-md:inset-x-2 max-md:max-w-[calc(100%-16px)]",
|
|
49
|
+
children: [
|
|
50
|
+
/* @__PURE__ */ jsxs("div", { className: "bg-ui-code-bg-base flex items-center justify-between px-6 py-4", children: [
|
|
51
|
+
/* @__PURE__ */ jsxs("div", { className: "flex items-center gap-x-4", children: [
|
|
52
|
+
/* @__PURE__ */ jsx(Drawer.Title, { asChild: true, children: /* @__PURE__ */ jsx(Heading, { className: "text-ui-contrast-fg-primary", children: /* @__PURE__ */ jsx(
|
|
53
|
+
Trans,
|
|
54
|
+
{
|
|
55
|
+
i18nKey: "json.drawer.header",
|
|
56
|
+
count: numberOfKeys,
|
|
57
|
+
components: [
|
|
58
|
+
/* @__PURE__ */ jsx("span", { className: "text-ui-fg-subtle" }, "count-span")
|
|
59
|
+
]
|
|
60
|
+
}
|
|
61
|
+
) }) }),
|
|
62
|
+
/* @__PURE__ */ jsx(Drawer.Description, { className: "sr-only", children: t("json.drawer.description") })
|
|
63
|
+
] }),
|
|
64
|
+
/* @__PURE__ */ jsxs("div", { className: "flex items-center gap-x-2", children: [
|
|
65
|
+
/* @__PURE__ */ jsx(Kbd, { className: "bg-ui-contrast-bg-subtle border-ui-contrast-border-base text-ui-contrast-fg-secondary", children: "esc" }),
|
|
66
|
+
/* @__PURE__ */ jsx(Drawer.Close, { asChild: true, children: /* @__PURE__ */ jsx(
|
|
67
|
+
IconButton,
|
|
68
|
+
{
|
|
69
|
+
size: "small",
|
|
70
|
+
variant: "transparent",
|
|
71
|
+
className: "text-ui-contrast-fg-secondary hover:text-ui-contrast-fg-primary hover:bg-ui-contrast-bg-base-hover active:bg-ui-contrast-bg-base-pressed focus-visible:bg-ui-contrast-bg-base-hover focus-visible:shadow-borders-interactive-with-active",
|
|
72
|
+
children: /* @__PURE__ */ jsx(XMarkMini, {})
|
|
73
|
+
}
|
|
74
|
+
) })
|
|
75
|
+
] })
|
|
76
|
+
] }),
|
|
77
|
+
/* @__PURE__ */ jsx(Drawer.Body, { className: "flex flex-1 flex-col overflow-hidden px-[5px] py-0 pb-[5px]", children: /* @__PURE__ */ jsx("div", { className: "bg-ui-contrast-bg-subtle flex-1 overflow-auto rounded-b-[4px] rounded-t-lg p-3", children: /* @__PURE__ */ jsx(
|
|
78
|
+
Suspense,
|
|
79
|
+
{
|
|
80
|
+
fallback: /* @__PURE__ */ jsx("div", { className: "flex size-full flex-col" }),
|
|
81
|
+
children: /* @__PURE__ */ jsxs(
|
|
82
|
+
Primitive,
|
|
83
|
+
{
|
|
84
|
+
value: data,
|
|
85
|
+
displayDataTypes: false,
|
|
86
|
+
style: {
|
|
87
|
+
"--w-rjv-font-family": "Roboto Mono, monospace",
|
|
88
|
+
"--w-rjv-line-color": "var(--contrast-border-base)",
|
|
89
|
+
"--w-rjv-curlybraces-color": "var(--contrast-fg-secondary)",
|
|
90
|
+
"--w-rjv-brackets-color": "var(--contrast-fg-secondary)",
|
|
91
|
+
"--w-rjv-key-string": "var(--contrast-fg-primary)",
|
|
92
|
+
"--w-rjv-info-color": "var(--contrast-fg-secondary)",
|
|
93
|
+
"--w-rjv-type-string-color": "var(--tag-green-icon)",
|
|
94
|
+
"--w-rjv-quotes-string-color": "var(--tag-green-icon)",
|
|
95
|
+
"--w-rjv-type-boolean-color": "var(--tag-orange-icon)",
|
|
96
|
+
"--w-rjv-type-int-color": "var(--tag-orange-icon)",
|
|
97
|
+
"--w-rjv-type-float-color": "var(--tag-orange-icon)",
|
|
98
|
+
"--w-rjv-type-bigint-color": "var(--tag-orange-icon)",
|
|
99
|
+
"--w-rjv-key-number": "var(--contrast-fg-secondary)",
|
|
100
|
+
"--w-rjv-arrow-color": "var(--contrast-fg-secondary)",
|
|
101
|
+
"--w-rjv-copied-color": "var(--contrast-fg-secondary)",
|
|
102
|
+
"--w-rjv-copied-success-color": "var(--contrast-fg-primary)",
|
|
103
|
+
"--w-rjv-colon-color": "var(--contrast-fg-primary)",
|
|
104
|
+
"--w-rjv-ellipsis-color": "var(--contrast-fg-secondary)"
|
|
105
|
+
},
|
|
106
|
+
collapsed: 1,
|
|
107
|
+
children: [
|
|
108
|
+
/* @__PURE__ */ jsx(Primitive.Quote, { render: () => /* @__PURE__ */ jsx("span", {}) }),
|
|
109
|
+
/* @__PURE__ */ jsx(
|
|
110
|
+
Primitive.Null,
|
|
111
|
+
{
|
|
112
|
+
render: () => /* @__PURE__ */ jsx("span", { className: "text-ui-tag-red-icon", children: "null" })
|
|
113
|
+
}
|
|
114
|
+
),
|
|
115
|
+
/* @__PURE__ */ jsx(
|
|
116
|
+
Primitive.Undefined,
|
|
117
|
+
{
|
|
118
|
+
render: () => /* @__PURE__ */ jsx("span", { className: "text-ui-tag-blue-icon", children: "undefined" })
|
|
119
|
+
}
|
|
120
|
+
),
|
|
121
|
+
/* @__PURE__ */ jsx(
|
|
122
|
+
Primitive.CountInfo,
|
|
123
|
+
{
|
|
124
|
+
render: (_props, { value }) => {
|
|
125
|
+
return /* @__PURE__ */ jsx("span", { className: "text-ui-contrast-fg-secondary ml-2", children: t("general.items", {
|
|
126
|
+
count: Object.keys(value).length
|
|
127
|
+
}) });
|
|
128
|
+
}
|
|
129
|
+
}
|
|
130
|
+
),
|
|
131
|
+
/* @__PURE__ */ jsx(Primitive.Arrow, { children: /* @__PURE__ */ jsx(TriangleDownMini, { className: "text-ui-contrast-fg-secondary -ml-[0.5px]" }) }),
|
|
132
|
+
/* @__PURE__ */ jsx(Primitive.Colon, { children: /* @__PURE__ */ jsx("span", { className: "mr-1", children: ":" }) }),
|
|
133
|
+
/* @__PURE__ */ jsx(
|
|
134
|
+
Primitive.Copied,
|
|
135
|
+
{
|
|
136
|
+
render: ({ style }, { value }) => {
|
|
137
|
+
return /* @__PURE__ */ jsx(Copied, { style, value });
|
|
138
|
+
}
|
|
139
|
+
}
|
|
140
|
+
)
|
|
141
|
+
]
|
|
142
|
+
}
|
|
143
|
+
)
|
|
144
|
+
}
|
|
145
|
+
) }) })
|
|
146
|
+
]
|
|
147
|
+
}
|
|
148
|
+
)
|
|
149
|
+
] })
|
|
150
|
+
] });
|
|
151
|
+
};
|
|
152
|
+
var Copied = ({ style, value }) => {
|
|
153
|
+
const [copied, setCopied] = useState(false);
|
|
154
|
+
const handler = (e) => {
|
|
155
|
+
e.stopPropagation();
|
|
156
|
+
setCopied(true);
|
|
157
|
+
if (typeof value === "string") {
|
|
158
|
+
navigator.clipboard.writeText(value);
|
|
159
|
+
} else {
|
|
160
|
+
const json = JSON.stringify(value, null, 2);
|
|
161
|
+
navigator.clipboard.writeText(json);
|
|
162
|
+
}
|
|
163
|
+
setTimeout(() => {
|
|
164
|
+
setCopied(false);
|
|
165
|
+
}, 2e3);
|
|
166
|
+
};
|
|
167
|
+
const styl = { whiteSpace: "nowrap", width: "20px" };
|
|
168
|
+
if (copied) {
|
|
169
|
+
return /* @__PURE__ */ jsx("span", { style: { ...style, ...styl }, children: /* @__PURE__ */ jsx(Check, { className: "text-ui-contrast-fg-primary" }) });
|
|
170
|
+
}
|
|
171
|
+
return /* @__PURE__ */ jsx("span", { style: { ...style, ...styl }, onClick: handler, children: /* @__PURE__ */ jsx(SquareTwoStack, { className: "text-ui-contrast-fg-secondary" }) });
|
|
172
|
+
};
|
|
173
|
+
|
|
174
|
+
// src/components/common/metadata-section/metadata-section.tsx
|
|
175
|
+
import { ArrowUpRightOnBox as ArrowUpRightOnBox2 } from "@acmekit/icons";
|
|
176
|
+
import { Badge as Badge2, Container as Container2, Heading as Heading2, IconButton as IconButton2 } from "@acmekit/ui";
|
|
177
|
+
import { useTranslation as useTranslation2 } from "react-i18next";
|
|
178
|
+
import { Link } from "react-router-dom";
|
|
179
|
+
import { jsx as jsx2, jsxs as jsxs2 } from "react/jsx-runtime";
|
|
180
|
+
var MetadataSection = ({
|
|
181
|
+
data,
|
|
182
|
+
href = "metadata/edit"
|
|
183
|
+
}) => {
|
|
184
|
+
const { t } = useTranslation2();
|
|
185
|
+
if (!data) {
|
|
186
|
+
return null;
|
|
187
|
+
}
|
|
188
|
+
if (!("metadata" in data)) {
|
|
189
|
+
return null;
|
|
190
|
+
}
|
|
191
|
+
const numberOfKeys = data.metadata ? Object.keys(data.metadata).length : 0;
|
|
192
|
+
return /* @__PURE__ */ jsxs2(Container2, { className: "flex items-center justify-between", children: [
|
|
193
|
+
/* @__PURE__ */ jsxs2("div", { className: "flex items-center gap-x-3", children: [
|
|
194
|
+
/* @__PURE__ */ jsx2(Heading2, { level: "h2", children: t("metadata.header") }),
|
|
195
|
+
/* @__PURE__ */ jsx2(Badge2, { size: "2xsmall", rounded: "full", children: t("metadata.numberOfKeys", {
|
|
196
|
+
count: numberOfKeys
|
|
197
|
+
}) })
|
|
198
|
+
] }),
|
|
199
|
+
/* @__PURE__ */ jsx2(
|
|
200
|
+
IconButton2,
|
|
201
|
+
{
|
|
202
|
+
size: "small",
|
|
203
|
+
variant: "transparent",
|
|
204
|
+
className: "text-ui-fg-muted hover:text-ui-fg-subtle",
|
|
205
|
+
asChild: true,
|
|
206
|
+
children: /* @__PURE__ */ jsx2(Link, { to: href, children: /* @__PURE__ */ jsx2(ArrowUpRightOnBox2, {}) })
|
|
207
|
+
}
|
|
208
|
+
)
|
|
209
|
+
] });
|
|
210
|
+
};
|
|
211
|
+
|
|
212
|
+
// src/components/layout/pages/single-column-page/single-column-page.tsx
|
|
213
|
+
import { jsx as jsx3, jsxs as jsxs3 } from "react/jsx-runtime";
|
|
214
|
+
import { createElement } from "react";
|
|
215
|
+
var SingleColumnPage = ({
|
|
216
|
+
children,
|
|
217
|
+
widgets,
|
|
218
|
+
/**
|
|
219
|
+
* Data of the page which is passed to Widgets, JSON view, and Metadata view.
|
|
220
|
+
*/
|
|
221
|
+
data,
|
|
222
|
+
/**
|
|
223
|
+
* Whether the page should render an outlet for children routes. Defaults to true.
|
|
224
|
+
*/
|
|
225
|
+
hasOutlet = true,
|
|
226
|
+
/**
|
|
227
|
+
* Whether to show JSON view of the data. Defaults to false.
|
|
228
|
+
*/
|
|
229
|
+
showJSON,
|
|
230
|
+
/**
|
|
231
|
+
* Whether to show metadata view of the data. Defaults to false.
|
|
232
|
+
*/
|
|
233
|
+
showMetadata
|
|
234
|
+
}) => {
|
|
235
|
+
const { before, after } = widgets;
|
|
236
|
+
const widgetProps = { data };
|
|
237
|
+
if (showJSON && !data) {
|
|
238
|
+
if (process.env.NODE_ENV === "development") {
|
|
239
|
+
console.warn(
|
|
240
|
+
"`showJSON` is true but no data is provided. To display JSON, provide data prop."
|
|
241
|
+
);
|
|
242
|
+
}
|
|
243
|
+
showJSON = false;
|
|
244
|
+
}
|
|
245
|
+
if (showMetadata && !data) {
|
|
246
|
+
if (process.env.NODE_ENV === "development") {
|
|
247
|
+
console.warn(
|
|
248
|
+
"`showMetadata` is true but no data is provided. To display metadata, provide data prop."
|
|
249
|
+
);
|
|
250
|
+
}
|
|
251
|
+
showMetadata = false;
|
|
252
|
+
}
|
|
253
|
+
return /* @__PURE__ */ jsxs3("div", { className: "flex flex-col gap-y-3", children: [
|
|
254
|
+
before.map((Component, i) => {
|
|
255
|
+
return /* @__PURE__ */ createElement(Component, { ...widgetProps, key: i });
|
|
256
|
+
}),
|
|
257
|
+
children,
|
|
258
|
+
after.map((Component, i) => {
|
|
259
|
+
return /* @__PURE__ */ createElement(Component, { ...widgetProps, key: i });
|
|
260
|
+
}),
|
|
261
|
+
showMetadata && /* @__PURE__ */ jsx3(MetadataSection, { data }),
|
|
262
|
+
showJSON && /* @__PURE__ */ jsx3(JsonViewSection, { data }),
|
|
263
|
+
hasOutlet && /* @__PURE__ */ jsx3(Outlet, {})
|
|
264
|
+
] });
|
|
265
|
+
};
|
|
266
|
+
|
|
267
|
+
// src/components/layout/pages/two-column-page/two-column-page.tsx
|
|
268
|
+
import { clx } from "@acmekit/ui";
|
|
269
|
+
import { Children } from "react";
|
|
270
|
+
import { Outlet as Outlet2 } from "react-router-dom";
|
|
271
|
+
import { jsx as jsx4, jsxs as jsxs4 } from "react/jsx-runtime";
|
|
272
|
+
import { createElement as createElement2 } from "react";
|
|
273
|
+
var Root = ({
|
|
274
|
+
children,
|
|
275
|
+
/**
|
|
276
|
+
* Widgets to be rendered in the main content area and sidebar.
|
|
277
|
+
*/
|
|
278
|
+
widgets,
|
|
279
|
+
/**
|
|
280
|
+
* Data to be passed to widgets, JSON view, and Metadata view.
|
|
281
|
+
*/
|
|
282
|
+
data,
|
|
283
|
+
/**
|
|
284
|
+
* Whether to show JSON view of the data. Defaults to false.
|
|
285
|
+
*/
|
|
286
|
+
showJSON = false,
|
|
287
|
+
/**
|
|
288
|
+
* Whether to show metadata view of the data. Defaults to false.
|
|
289
|
+
*/
|
|
290
|
+
showMetadata = false,
|
|
291
|
+
/**
|
|
292
|
+
* Whether to render an outlet for children routes. Defaults to true.
|
|
293
|
+
*/
|
|
294
|
+
hasOutlet = true
|
|
295
|
+
}) => {
|
|
296
|
+
const widgetProps = { data };
|
|
297
|
+
const { before, after, sideBefore, sideAfter } = widgets;
|
|
298
|
+
if (showJSON && !data) {
|
|
299
|
+
if (process.env.NODE_ENV === "development") {
|
|
300
|
+
console.warn(
|
|
301
|
+
"`showJSON` is true but no data is provided. To display JSON, provide data prop."
|
|
302
|
+
);
|
|
303
|
+
}
|
|
304
|
+
showJSON = false;
|
|
305
|
+
}
|
|
306
|
+
if (showMetadata && !data) {
|
|
307
|
+
if (process.env.NODE_ENV === "development") {
|
|
308
|
+
console.warn(
|
|
309
|
+
"`showMetadata` is true but no data is provided. To display metadata, provide data prop."
|
|
310
|
+
);
|
|
311
|
+
}
|
|
312
|
+
showMetadata = false;
|
|
313
|
+
}
|
|
314
|
+
const childrenArray = Children.toArray(children);
|
|
315
|
+
if (childrenArray.length !== 2) {
|
|
316
|
+
throw new Error("TwoColumnPage expects exactly two children");
|
|
317
|
+
}
|
|
318
|
+
const [main, sidebar] = childrenArray;
|
|
319
|
+
const showExtraData = showJSON || showMetadata;
|
|
320
|
+
return /* @__PURE__ */ jsxs4("div", { className: "flex w-full flex-col gap-y-3", children: [
|
|
321
|
+
before.map((Component, i) => {
|
|
322
|
+
return /* @__PURE__ */ createElement2(Component, { ...widgetProps, key: i });
|
|
323
|
+
}),
|
|
324
|
+
/* @__PURE__ */ jsxs4("div", { className: "flex w-full flex-col items-start gap-x-4 gap-y-3 xl:grid xl:grid-cols-[minmax(0,_1fr)_440px]", children: [
|
|
325
|
+
/* @__PURE__ */ jsxs4("div", { className: "flex w-full min-w-0 flex-col gap-y-3", children: [
|
|
326
|
+
main,
|
|
327
|
+
after.map((Component, i) => {
|
|
328
|
+
return /* @__PURE__ */ createElement2(Component, { ...widgetProps, key: i });
|
|
329
|
+
}),
|
|
330
|
+
showExtraData && /* @__PURE__ */ jsxs4("div", { className: "hidden flex-col gap-y-3 xl:flex", children: [
|
|
331
|
+
showMetadata && /* @__PURE__ */ jsx4(MetadataSection, { data }),
|
|
332
|
+
showJSON && /* @__PURE__ */ jsx4(JsonViewSection, { data })
|
|
333
|
+
] })
|
|
334
|
+
] }),
|
|
335
|
+
/* @__PURE__ */ jsxs4("div", { className: "flex w-full flex-col gap-y-3 xl:mt-0", children: [
|
|
336
|
+
sideBefore.map((Component, i) => {
|
|
337
|
+
return /* @__PURE__ */ createElement2(Component, { ...widgetProps, key: i });
|
|
338
|
+
}),
|
|
339
|
+
sidebar,
|
|
340
|
+
sideAfter.map((Component, i) => {
|
|
341
|
+
return /* @__PURE__ */ createElement2(Component, { ...widgetProps, key: i });
|
|
342
|
+
}),
|
|
343
|
+
showExtraData && /* @__PURE__ */ jsxs4("div", { className: "flex flex-col gap-y-3 xl:hidden", children: [
|
|
344
|
+
showMetadata && /* @__PURE__ */ jsx4(MetadataSection, { data }),
|
|
345
|
+
showJSON && /* @__PURE__ */ jsx4(JsonViewSection, { data })
|
|
346
|
+
] })
|
|
347
|
+
] })
|
|
348
|
+
] }),
|
|
349
|
+
hasOutlet && /* @__PURE__ */ jsx4(Outlet2, {})
|
|
350
|
+
] });
|
|
351
|
+
};
|
|
352
|
+
var Main = ({
|
|
353
|
+
children,
|
|
354
|
+
className,
|
|
355
|
+
...props
|
|
356
|
+
}) => {
|
|
357
|
+
return /* @__PURE__ */ jsx4("div", { className: clx("flex w-full flex-col gap-y-3", className), ...props, children });
|
|
358
|
+
};
|
|
359
|
+
var Sidebar = ({
|
|
360
|
+
children,
|
|
361
|
+
className,
|
|
362
|
+
...props
|
|
363
|
+
}) => {
|
|
364
|
+
return /* @__PURE__ */ jsx4(
|
|
365
|
+
"div",
|
|
366
|
+
{
|
|
367
|
+
className: clx(
|
|
368
|
+
"flex w-full max-w-[100%] flex-col gap-y-3 xl:mt-0 xl:max-w-[440px]",
|
|
369
|
+
className
|
|
370
|
+
),
|
|
371
|
+
...props,
|
|
372
|
+
children
|
|
373
|
+
}
|
|
374
|
+
);
|
|
375
|
+
};
|
|
376
|
+
var TwoColumnPage = Object.assign(Root, { Main, Sidebar });
|
|
377
|
+
|
|
378
|
+
export {
|
|
379
|
+
JsonViewSection,
|
|
380
|
+
SingleColumnPage,
|
|
381
|
+
TwoColumnPage
|
|
382
|
+
};
|