@questpie/admin 3.0.4 → 3.0.5

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 (58) hide show
  1. package/dist/client/components/blocks/block-editor-layout.mjs +2 -2
  2. package/dist/client/components/blocks/block-library-sidebar.mjs +89 -61
  3. package/dist/client/components/media/media-grid.mjs +95 -78
  4. package/dist/client/components/primitives/select-multi.mjs +388 -368
  5. package/dist/client/components/primitives/select-single.mjs +344 -331
  6. package/dist/client/components/widgets/chart-widget.mjs +78 -62
  7. package/dist/client/components/widgets/progress-widget.mjs +39 -37
  8. package/dist/client/components/widgets/quick-actions-widget.mjs +111 -90
  9. package/dist/client/components/widgets/recent-items-widget.mjs +40 -38
  10. package/dist/client/components/widgets/table-widget.mjs +4 -3
  11. package/dist/client/components/widgets/timeline-widget.mjs +92 -74
  12. package/dist/client/components/widgets/value-widget.mjs +164 -144
  13. package/dist/client/hooks/use-server-actions.mjs +21 -16
  14. package/dist/client/preview/block-scope-context.d.mts +2 -2
  15. package/dist/client/preview/preview-banner.d.mts +2 -2
  16. package/dist/client/preview/preview-banner.mjs +75 -46
  17. package/dist/client/views/auth/accept-invite-form.d.mts +2 -2
  18. package/dist/client/views/auth/auth-layout.d.mts +2 -2
  19. package/dist/client/views/auth/forgot-password-form.d.mts +2 -2
  20. package/dist/client/views/auth/login-form.d.mts +2 -2
  21. package/dist/client/views/auth/reset-password-form.d.mts +2 -2
  22. package/dist/client/views/auth/setup-form.d.mts +2 -2
  23. package/dist/client/views/collection/table-view.mjs +26 -26
  24. package/dist/client/views/layout/admin-layout.mjs +151 -131
  25. package/dist/client/views/layout/admin-router.mjs +297 -180
  26. package/dist/client/views/layout/admin-sidebar.mjs +126 -116
  27. package/dist/client/views/pages/login-page.d.mts +2 -2
  28. package/dist/client/views/pages/reset-password-page.d.mts +2 -2
  29. package/dist/client/views/pages/setup-page.mjs +67 -51
  30. package/dist/server/i18n/index.mjs +13 -7
  31. package/dist/server/i18n/messages/cs.mjs +391 -1
  32. package/dist/server/i18n/messages/de.mjs +389 -1
  33. package/dist/server/i18n/messages/en.mjs +102 -0
  34. package/dist/server/i18n/messages/es.mjs +389 -1
  35. package/dist/server/i18n/messages/fr.mjs +389 -1
  36. package/dist/server/i18n/messages/pl.mjs +393 -1
  37. package/dist/server/i18n/messages/pt.mjs +386 -1
  38. package/dist/server/i18n/messages/sk.mjs +133 -1
  39. package/dist/server/modules/admin/collections/account.d.mts +50 -50
  40. package/dist/server/modules/admin/collections/admin-locks.d.mts +54 -54
  41. package/dist/server/modules/admin/collections/admin-preferences.d.mts +39 -39
  42. package/dist/server/modules/admin/collections/admin-saved-views.d.mts +41 -41
  43. package/dist/server/modules/admin/collections/apikey.d.mts +68 -68
  44. package/dist/server/modules/admin/collections/assets.d.mts +20 -20
  45. package/dist/server/modules/admin/collections/session.d.mts +42 -42
  46. package/dist/server/modules/admin/collections/user.d.mts +32 -32
  47. package/dist/server/modules/admin/collections/verification.d.mts +36 -36
  48. package/dist/server/modules/admin/routes/admin-config.d.mts +2 -2
  49. package/dist/server/modules/admin/routes/execute-action.d.mts +9 -9
  50. package/dist/server/modules/admin/routes/execute-action.mjs +34 -28
  51. package/dist/server/modules/admin/routes/i18n-helpers.mjs +34 -0
  52. package/dist/server/modules/admin/routes/preview.d.mts +11 -11
  53. package/dist/server/modules/admin/routes/preview.mjs +25 -17
  54. package/dist/server/modules/admin/routes/route-helpers.mjs +1 -1
  55. package/dist/server/modules/admin/routes/setup.mjs +10 -7
  56. package/dist/server/modules/admin/routes/widget-data.d.mts +5 -5
  57. package/dist/server/modules/admin-preferences/collections/saved-views.d.mts +27 -27
  58. package/package.json +3 -3
@@ -1,3 +1,4 @@
1
+ import { useSafeI18n } from "../../i18n/hooks.mjs";
1
2
  import { cn } from "../../lib/utils.mjs";
2
3
  import { useAdminStore } from "../../runtime/provider.mjs";
3
4
  import { shouldHandleAdminShortcut } from "../../utils/keyboard-shortcuts.mjs";
@@ -62,7 +63,7 @@ function _temp(s) {
62
63
  return s.brandName;
63
64
  }
64
65
  function AdminLayout(t0) {
65
- const $ = c(53);
66
+ const $ = c(59);
66
67
  const { LinkComponent, activeRoute, basePath: t1, brandName: brandNameProp, sidebarCollapsed: t2, children, className, sidebarProps, header, footer, navigate: navigateProp, theme: themeProp, setTheme: setThemeProp, showThemeToggle, toasterProps, layoutMode: t3 } = t0;
67
68
  const basePath = t1 === void 0 ? "/admin" : t1;
68
69
  const sidebarCollapsedProp = t2 === void 0 ? false : t2;
@@ -81,23 +82,34 @@ function AdminLayout(t0) {
81
82
  $[2] = t4;
82
83
  } else t4 = $[2];
83
84
  const { brandName, navigate } = useLayoutProps(t4);
84
- const [isSearchOpen, setIsSearchOpen] = React.useState(false);
85
+ const i18n = useSafeI18n();
85
86
  let t5;
86
- if ($[3] === Symbol.for("react.memo_cache_sentinel")) {
87
- t5 = () => setIsSearchOpen(true);
88
- $[3] = t5;
89
- } else t5 = $[3];
90
- const openSearch = t5;
87
+ if ($[3] !== i18n) {
88
+ t5 = (key, fallback) => {
89
+ const message = i18n?.t(key);
90
+ return message && message !== key ? message : fallback;
91
+ };
92
+ $[3] = i18n;
93
+ $[4] = t5;
94
+ } else t5 = $[4];
95
+ const t = t5;
96
+ const [isSearchOpen, setIsSearchOpen] = React.useState(false);
91
97
  let t6;
92
- if ($[4] === Symbol.for("react.memo_cache_sentinel")) {
93
- t6 = () => setIsSearchOpen(false);
94
- $[4] = t6;
95
- } else t6 = $[4];
96
- const closeSearch = t6;
98
+ if ($[5] === Symbol.for("react.memo_cache_sentinel")) {
99
+ t6 = () => setIsSearchOpen(true);
100
+ $[5] = t6;
101
+ } else t6 = $[5];
102
+ const openSearch = t6;
97
103
  let t7;
104
+ if ($[6] === Symbol.for("react.memo_cache_sentinel")) {
105
+ t7 = () => setIsSearchOpen(false);
106
+ $[6] = t7;
107
+ } else t7 = $[6];
108
+ const closeSearch = t7;
98
109
  let t8;
99
- if ($[5] === Symbol.for("react.memo_cache_sentinel")) {
100
- t7 = () => {
110
+ let t9;
111
+ if ($[7] === Symbol.for("react.memo_cache_sentinel")) {
112
+ t8 = () => {
101
113
  const down = (e) => {
102
114
  if (shouldHandleAdminShortcut(e, { key: "k" })) {
103
115
  e.preventDefault();
@@ -107,46 +119,53 @@ function AdminLayout(t0) {
107
119
  document.addEventListener("keydown", down);
108
120
  return () => document.removeEventListener("keydown", down);
109
121
  };
110
- t8 = [];
111
- $[5] = t7;
112
- $[6] = t8;
122
+ t9 = [];
123
+ $[7] = t8;
124
+ $[8] = t9;
113
125
  } else {
114
- t7 = $[5];
115
- t8 = $[6];
126
+ t8 = $[7];
127
+ t9 = $[8];
116
128
  }
117
- React.useEffect(t7, t8);
118
- let t9;
119
- if ($[7] !== className) {
120
- t9 = cn("qa-admin-layout bg-sidebar text-foreground min-h-screen", className);
121
- $[7] = className;
122
- $[8] = t9;
123
- } else t9 = $[8];
129
+ React.useEffect(t8, t9);
124
130
  let t10;
125
- if ($[9] === Symbol.for("react.memo_cache_sentinel")) {
126
- t10 = /* @__PURE__ */ jsx("a", {
131
+ if ($[9] !== className) {
132
+ t10 = cn("qa-admin-layout bg-sidebar text-foreground min-h-screen", className);
133
+ $[9] = className;
134
+ $[10] = t10;
135
+ } else t10 = $[10];
136
+ let t11;
137
+ if ($[11] !== t) {
138
+ t11 = t("ui.skipToMainContent", "Skip to main content");
139
+ $[11] = t;
140
+ $[12] = t11;
141
+ } else t11 = $[12];
142
+ let t12;
143
+ if ($[13] !== t11) {
144
+ t12 = /* @__PURE__ */ jsx("a", {
127
145
  href: "#main-content",
128
146
  className: "qa-admin-layout__skip-link focus:bg-surface-high focus:text-foreground sr-only focus:not-sr-only focus:fixed focus:top-2 focus:left-2 focus:z-50 focus:rounded-sm focus:px-4 focus:py-2 focus:text-sm focus:font-medium",
129
- children: "Skip to main content"
147
+ children: t11
130
148
  });
131
- $[9] = t10;
132
- } else t10 = $[9];
133
- let t11;
134
- if ($[10] !== basePath || $[11] !== isSearchOpen || $[12] !== navigate) {
135
- t11 = isSearchOpen && /* @__PURE__ */ jsx(GlobalSearch, {
149
+ $[13] = t11;
150
+ $[14] = t12;
151
+ } else t12 = $[14];
152
+ let t13;
153
+ if ($[15] !== basePath || $[16] !== isSearchOpen || $[17] !== navigate) {
154
+ t13 = isSearchOpen && /* @__PURE__ */ jsx(GlobalSearch, {
136
155
  isOpen: isSearchOpen,
137
156
  onClose: closeSearch,
138
157
  navigate,
139
158
  basePath
140
159
  });
141
- $[10] = basePath;
142
- $[11] = isSearchOpen;
143
- $[12] = navigate;
144
- $[13] = t11;
145
- } else t11 = $[13];
146
- const t12 = !sidebarCollapsedProp;
147
- let t13;
148
- if ($[14] !== LinkComponent || $[15] !== activeRoute || $[16] !== basePath || $[17] !== brandName || $[18] !== setTheme || $[19] !== showThemeToggle || $[20] !== sidebarProps || $[21] !== theme) {
149
- t13 = /* @__PURE__ */ jsx(AdminSidebar, {
160
+ $[15] = basePath;
161
+ $[16] = isSearchOpen;
162
+ $[17] = navigate;
163
+ $[18] = t13;
164
+ } else t13 = $[18];
165
+ const t14 = !sidebarCollapsedProp;
166
+ let t15;
167
+ if ($[19] !== LinkComponent || $[20] !== activeRoute || $[21] !== basePath || $[22] !== brandName || $[23] !== setTheme || $[24] !== showThemeToggle || $[25] !== sidebarProps || $[26] !== theme) {
168
+ t15 = /* @__PURE__ */ jsx(AdminSidebar, {
150
169
  LinkComponent,
151
170
  activeRoute,
152
171
  basePath,
@@ -157,122 +176,123 @@ function AdminLayout(t0) {
157
176
  onSearchOpen: openSearch,
158
177
  ...sidebarProps
159
178
  });
160
- $[14] = LinkComponent;
161
- $[15] = activeRoute;
162
- $[16] = basePath;
163
- $[17] = brandName;
164
- $[18] = setTheme;
165
- $[19] = showThemeToggle;
166
- $[20] = sidebarProps;
167
- $[21] = theme;
168
- $[22] = t13;
169
- } else t13 = $[22];
170
- let t14;
171
- if ($[23] !== header || $[24] !== shouldShowHeader) {
172
- t14 = shouldShowHeader && header && /* @__PURE__ */ jsx("header", {
179
+ $[19] = LinkComponent;
180
+ $[20] = activeRoute;
181
+ $[21] = basePath;
182
+ $[22] = brandName;
183
+ $[23] = setTheme;
184
+ $[24] = showThemeToggle;
185
+ $[25] = sidebarProps;
186
+ $[26] = theme;
187
+ $[27] = t15;
188
+ } else t15 = $[27];
189
+ let t16;
190
+ if ($[28] !== header || $[29] !== shouldShowHeader) {
191
+ t16 = shouldShowHeader && header && /* @__PURE__ */ jsx("header", {
173
192
  className: "qa-admin-layout__header border-border-subtle border-b",
174
193
  children: header
175
194
  });
176
- $[23] = header;
177
- $[24] = shouldShowHeader;
178
- $[25] = t14;
179
- } else t14 = $[25];
180
- const t15 = layoutMode === "default" && "mx-auto max-w-5xl px-3 pt-1 pb-6 md:px-4 md:pt-2 md:pb-8";
181
- const t16 = layoutMode === "wide" && "px-3 pt-1 pb-6 md:px-4 md:pt-2 md:pb-8";
182
- const t17 = layoutMode === "full" && "px-2 pt-1 pb-6 md:px-3 md:pb-8";
183
- const t18 = layoutMode === "immersive" && "p-0";
184
- let t19;
185
- if ($[26] !== t15 || $[27] !== t16 || $[28] !== t17 || $[29] !== t18) {
186
- t19 = cn("qa-admin-layout__main-content min-w-0", t15, t16, t17, t18);
187
- $[26] = t15;
188
- $[27] = t16;
189
- $[28] = t17;
190
- $[29] = t18;
191
- $[30] = t19;
192
- } else t19 = $[30];
193
- let t20;
194
- if ($[31] !== children || $[32] !== t19) {
195
- t20 = /* @__PURE__ */ jsx("main", {
195
+ $[28] = header;
196
+ $[29] = shouldShowHeader;
197
+ $[30] = t16;
198
+ } else t16 = $[30];
199
+ const t17 = layoutMode === "default" && "mx-auto max-w-5xl px-3 pt-1 pb-6 md:px-4 md:pt-2 md:pb-8";
200
+ const t18 = layoutMode === "wide" && "px-3 pt-1 pb-6 md:px-4 md:pt-2 md:pb-8";
201
+ const t19 = layoutMode === "full" && "px-2 pt-1 pb-6 md:px-3 md:pb-8";
202
+ const t20 = layoutMode === "immersive" && "p-0";
203
+ let t21;
204
+ if ($[31] !== t17 || $[32] !== t18 || $[33] !== t19 || $[34] !== t20) {
205
+ t21 = cn("qa-admin-layout__main-content min-w-0", t17, t18, t19, t20);
206
+ $[31] = t17;
207
+ $[32] = t18;
208
+ $[33] = t19;
209
+ $[34] = t20;
210
+ $[35] = t21;
211
+ } else t21 = $[35];
212
+ let t22;
213
+ if ($[36] !== children || $[37] !== t21) {
214
+ t22 = /* @__PURE__ */ jsx("main", {
196
215
  id: "main-content",
197
216
  className: "qa-admin-layout__main min-w-0 flex-1 overflow-y-auto",
198
217
  tabIndex: -1,
199
218
  children: /* @__PURE__ */ jsx("div", {
200
- className: t19,
219
+ className: t21,
201
220
  children
202
221
  })
203
222
  });
204
- $[31] = children;
205
- $[32] = t19;
206
- $[33] = t20;
207
- } else t20 = $[33];
208
- let t21;
209
- if ($[34] !== footer || $[35] !== shouldShowFooter) {
210
- t21 = shouldShowFooter && footer && /* @__PURE__ */ jsx("footer", {
223
+ $[36] = children;
224
+ $[37] = t21;
225
+ $[38] = t22;
226
+ } else t22 = $[38];
227
+ let t23;
228
+ if ($[39] !== footer || $[40] !== shouldShowFooter) {
229
+ t23 = shouldShowFooter && footer && /* @__PURE__ */ jsx("footer", {
211
230
  className: "qa-admin-layout__footer border-border-subtle border-t",
212
231
  children: footer
213
232
  });
214
- $[34] = footer;
215
- $[35] = shouldShowFooter;
216
- $[36] = t21;
217
- } else t21 = $[36];
218
- let t22;
219
- if ($[37] !== t14 || $[38] !== t20 || $[39] !== t21) {
220
- t22 = /* @__PURE__ */ jsxs(SidebarInset, {
233
+ $[39] = footer;
234
+ $[40] = shouldShowFooter;
235
+ $[41] = t23;
236
+ } else t23 = $[41];
237
+ let t24;
238
+ if ($[42] !== t16 || $[43] !== t22 || $[44] !== t23) {
239
+ t24 = /* @__PURE__ */ jsxs(SidebarInset, {
221
240
  className: "qa-admin-layout__content bg-background flex h-svh flex-col overflow-hidden md:rounded-tl-2xl",
222
241
  children: [
223
- t14,
224
- t20,
225
- t21
242
+ t16,
243
+ t22,
244
+ t23
226
245
  ]
227
246
  });
228
- $[37] = t14;
229
- $[38] = t20;
230
- $[39] = t21;
231
- $[40] = t22;
232
- } else t22 = $[40];
233
- let t23;
234
- if ($[41] !== t12 || $[42] !== t13 || $[43] !== t22) {
235
- t23 = /* @__PURE__ */ jsxs(SidebarProvider, {
236
- defaultOpen: t12,
237
- className: "qa-admin-layout__sidebar-wrapper bg-sidebar mx-auto h-svh max-w-[1920px] overflow-hidden",
238
- children: [t13, t22]
239
- });
240
- $[41] = t12;
241
- $[42] = t13;
247
+ $[42] = t16;
242
248
  $[43] = t22;
243
249
  $[44] = t23;
244
- } else t23 = $[44];
245
- let t24;
246
- if ($[45] !== theme || $[46] !== toasterProps) {
247
- t24 = /* @__PURE__ */ jsx(Toaster, {
250
+ $[45] = t24;
251
+ } else t24 = $[45];
252
+ let t25;
253
+ if ($[46] !== t14 || $[47] !== t15 || $[48] !== t24) {
254
+ t25 = /* @__PURE__ */ jsxs(SidebarProvider, {
255
+ defaultOpen: t14,
256
+ className: "qa-admin-layout__sidebar-wrapper bg-sidebar mx-auto h-svh max-w-[1920px] overflow-hidden",
257
+ children: [t15, t24]
258
+ });
259
+ $[46] = t14;
260
+ $[47] = t15;
261
+ $[48] = t24;
262
+ $[49] = t25;
263
+ } else t25 = $[49];
264
+ let t26;
265
+ if ($[50] !== theme || $[51] !== toasterProps) {
266
+ t26 = /* @__PURE__ */ jsx(Toaster, {
248
267
  theme,
249
268
  ...toasterProps
250
269
  });
251
- $[45] = theme;
252
- $[46] = toasterProps;
253
- $[47] = t24;
254
- } else t24 = $[47];
255
- let t25;
256
- if ($[48] !== t11 || $[49] !== t23 || $[50] !== t24 || $[51] !== t9) {
257
- t25 = /* @__PURE__ */ jsx(AdminThemeAppliedContext.Provider, {
270
+ $[50] = theme;
271
+ $[51] = toasterProps;
272
+ $[52] = t26;
273
+ } else t26 = $[52];
274
+ let t27;
275
+ if ($[53] !== t10 || $[54] !== t12 || $[55] !== t13 || $[56] !== t25 || $[57] !== t26) {
276
+ t27 = /* @__PURE__ */ jsx(AdminThemeAppliedContext.Provider, {
258
277
  value: true,
259
278
  children: /* @__PURE__ */ jsxs("div", {
260
- className: t9,
279
+ className: t10,
261
280
  children: [
262
- t10,
263
- t11,
264
- t23,
265
- t24
281
+ t12,
282
+ t13,
283
+ t25,
284
+ t26
266
285
  ]
267
286
  })
268
287
  });
269
- $[48] = t11;
270
- $[49] = t23;
271
- $[50] = t24;
272
- $[51] = t9;
273
- $[52] = t25;
274
- } else t25 = $[52];
275
- return t25;
288
+ $[53] = t10;
289
+ $[54] = t12;
290
+ $[55] = t13;
291
+ $[56] = t25;
292
+ $[57] = t26;
293
+ $[58] = t27;
294
+ } else t27 = $[58];
295
+ return t27;
276
296
  }
277
297
 
278
298
  //#endregion