@questpie/admin 3.2.0 → 3.2.1

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 (85) hide show
  1. package/dist/client/blocks/block-renderer.d.mts +12 -2
  2. package/dist/client/blocks/block-renderer.mjs +357 -49
  3. package/dist/client/components/blocks/block-editor-context.mjs +11 -1
  4. package/dist/client/components/blocks/block-editor-provider.mjs +68 -26
  5. package/dist/client/components/blocks/block-item.mjs +181 -170
  6. package/dist/client/components/blocks/utils/tree-utils.mjs +13 -1
  7. package/dist/client/components/fields/array-field.mjs +177 -118
  8. package/dist/client/components/filter-builder/filter-builder-sheet.mjs +305 -310
  9. package/dist/client/components/filter-builder/filters-tab.mjs +1 -1
  10. package/dist/client/components/history-sidebar.mjs +121 -114
  11. package/dist/client/components/preview/live-preview-mode.mjs +140 -114
  12. package/dist/client/components/preview/preview-pane.mjs +288 -333
  13. package/dist/client/components/primitives/option-label.mjs +44 -0
  14. package/dist/client/components/primitives/select-multi.mjs +408 -383
  15. package/dist/client/components/primitives/select-single.mjs +387 -357
  16. package/dist/client/components/widgets/chart-widget.mjs +168 -143
  17. package/dist/client/contexts/focus-context.d.mts +11 -0
  18. package/dist/client/contexts/focus-context.mjs +51 -34
  19. package/dist/client/hooks/use-brand.mjs +2 -1
  20. package/dist/client/preview/block-scope-context.d.mts +2 -2
  21. package/dist/client/preview/block-scope-context.mjs +10 -20
  22. package/dist/client/preview/index.d.mts +1 -1
  23. package/dist/client/preview/patch.mjs +100 -0
  24. package/dist/client/preview/preview-banner.d.mts +2 -2
  25. package/dist/client/preview/preview-field.d.mts +34 -5
  26. package/dist/client/preview/preview-field.mjs +385 -118
  27. package/dist/client/preview/types.d.mts +82 -3
  28. package/dist/client/preview/types.mjs +85 -6
  29. package/dist/client/preview/use-collection-preview.d.mts +19 -1
  30. package/dist/client/preview/use-collection-preview.mjs +182 -58
  31. package/dist/client/runtime/index.d.mts +2 -2
  32. package/dist/client/runtime/index.mjs +2 -2
  33. package/dist/client/runtime/provider.d.mts +5 -5
  34. package/dist/client/utils/build-field-definitions-from-schema.mjs +8 -3
  35. package/dist/client/views/auth/reset-password-form.d.mts +2 -2
  36. package/dist/client/views/auth/setup-form.d.mts +2 -2
  37. package/dist/client/views/collection/bulk-action-toolbar.mjs +23 -25
  38. package/dist/client/views/collection/cells/primitive-cells.mjs +63 -13
  39. package/dist/client/views/collection/columns/build-columns.mjs +1 -0
  40. package/dist/client/views/collection/form-view.mjs +262 -33
  41. package/dist/client/views/collection/table-view.mjs +16 -11
  42. package/dist/client/views/layout/admin-layout-provider.d.mts +5 -5
  43. package/dist/client/views/layout/admin-layout-provider.mjs +107 -16
  44. package/dist/client.d.mts +2 -2
  45. package/dist/client.mjs +1 -1
  46. package/dist/components/rich-text/rich-text-renderer.d.mts +2 -2
  47. package/dist/index.d.mts +2 -2
  48. package/dist/index.mjs +1 -1
  49. package/dist/server/augmentation/common.d.mts +8 -4
  50. package/dist/server/augmentation/form-layout.d.mts +1 -1
  51. package/dist/server/i18n/messages/cs.mjs +11 -0
  52. package/dist/server/i18n/messages/de.mjs +11 -0
  53. package/dist/server/i18n/messages/en.mjs +11 -0
  54. package/dist/server/i18n/messages/es.mjs +11 -0
  55. package/dist/server/i18n/messages/fr.mjs +11 -0
  56. package/dist/server/i18n/messages/pl.mjs +11 -0
  57. package/dist/server/i18n/messages/pt.mjs +11 -0
  58. package/dist/server/i18n/messages/sk.mjs +11 -0
  59. package/dist/server/modules/admin/block/block-builder.d.mts +7 -10
  60. package/dist/server/modules/admin/block/block-builder.mjs +7 -10
  61. package/dist/server/modules/admin/collections/account.d.mts +50 -50
  62. package/dist/server/modules/admin/collections/admin-locks.d.mts +54 -54
  63. package/dist/server/modules/admin/collections/admin-preferences.d.mts +39 -39
  64. package/dist/server/modules/admin/collections/admin-saved-views.d.mts +47 -47
  65. package/dist/server/modules/admin/collections/apikey.d.mts +68 -68
  66. package/dist/server/modules/admin/collections/assets.d.mts +57 -20
  67. package/dist/server/modules/admin/collections/session.d.mts +42 -42
  68. package/dist/server/modules/admin/collections/user.d.mts +100 -34
  69. package/dist/server/modules/admin/collections/user.mjs +4 -4
  70. package/dist/server/modules/admin/collections/verification.d.mts +32 -32
  71. package/dist/server/modules/admin/index.d.mts +3 -3
  72. package/dist/server/modules/admin/routes/admin-config.d.mts +2 -2
  73. package/dist/server/modules/admin/routes/admin-config.mjs +9 -12
  74. package/dist/server/modules/admin/routes/execute-action.d.mts +9 -9
  75. package/dist/server/modules/admin/routes/locales.d.mts +2 -2
  76. package/dist/server/modules/admin/routes/preview.d.mts +11 -11
  77. package/dist/server/modules/admin/routes/reactive.d.mts +9 -9
  78. package/dist/server/modules/admin/routes/setup.d.mts +7 -7
  79. package/dist/server/modules/admin/routes/translations.d.mts +4 -4
  80. package/dist/server/modules/admin/routes/translations.mjs +1 -1
  81. package/dist/server/modules/admin/routes/widget-data.d.mts +5 -5
  82. package/dist/server/modules/admin-preferences/collections/admin-preferences.mjs +4 -6
  83. package/dist/server/modules/admin-preferences/collections/saved-views.d.mts +31 -33
  84. package/dist/server/modules/admin-preferences/collections/saved-views.mjs +4 -6
  85. package/package.json +3 -3
@@ -1,4 +1,5 @@
1
- import { useResolveText, useTranslation } from "../../i18n/hooks.mjs";
1
+ import { useResolveText, useSafeI18n, useTranslation } from "../../i18n/hooks.mjs";
2
+ import { resolveOptionLabel } from "../primitives/option-label.mjs";
2
3
  import { Button } from "../ui/button.mjs";
3
4
  import { Input } from "../ui/input.mjs";
4
5
  import { Select, SelectContent, SelectItem, SelectTrigger } from "../ui/select.mjs";
@@ -19,144 +20,202 @@ import { useFieldArray, useFormContext, useWatch } from "react-hook-form";
19
20
  * When `item` prop is provided, delegates to ObjectArrayField for object items.
20
21
  */
21
22
  function ArrayItemInput(t0) {
22
- const $ = c(44);
23
+ const $ = c(64);
23
24
  const { name, index, itemType, itemValue, placeholder, disabled, readOnly, options } = t0;
24
25
  const resolveText = useResolveText();
26
+ const i18n = useSafeI18n();
27
+ const locale = i18n?.locale ?? "en";
28
+ let t1;
29
+ if ($[0] !== i18n) {
30
+ t1 = (key) => i18n?.t(key) ?? key;
31
+ $[0] = i18n;
32
+ $[1] = t1;
33
+ } else t1 = $[1];
34
+ const t = t1;
35
+ let t2;
36
+ if ($[2] !== locale || $[3] !== resolveText || $[4] !== t) {
37
+ t2 = (option) => resolveOptionLabel({
38
+ value: option.value,
39
+ label: option.label,
40
+ resolveText,
41
+ t,
42
+ locale
43
+ });
44
+ $[2] = locale;
45
+ $[3] = resolveText;
46
+ $[4] = t;
47
+ $[5] = t2;
48
+ } else t2 = $[5];
49
+ const getOptionLabel = t2;
25
50
  const form = useFormContext();
26
51
  const itemName = `${name}.${index}`;
27
52
  const itemPlaceholder = placeholder || `Item ${index + 1}`;
28
53
  if (itemType === "textarea") {
29
- const t1$1 = disabled || readOnly;
30
- const t2$1 = itemValue ?? "";
31
- let t3$1;
32
- if ($[0] !== form || $[1] !== itemName) {
33
- t3$1 = form.register(itemName);
34
- $[0] = form;
35
- $[1] = itemName;
36
- $[2] = t3$1;
37
- } else t3$1 = $[2];
38
- let t4$1;
39
- if ($[3] !== itemName || $[4] !== itemPlaceholder || $[5] !== t1$1 || $[6] !== t2$1 || $[7] !== t3$1) {
40
- t4$1 = /* @__PURE__ */ jsx(Textarea, {
54
+ const t3$1 = disabled || readOnly;
55
+ const t4$1 = itemValue ?? "";
56
+ let t5$1;
57
+ if ($[6] !== form || $[7] !== itemName) {
58
+ t5$1 = form.register(itemName);
59
+ $[6] = form;
60
+ $[7] = itemName;
61
+ $[8] = t5$1;
62
+ } else t5$1 = $[8];
63
+ let t6$1;
64
+ if ($[9] !== itemName || $[10] !== itemPlaceholder || $[11] !== t3$1 || $[12] !== t4$1 || $[13] !== t5$1) {
65
+ t6$1 = /* @__PURE__ */ jsx(Textarea, {
41
66
  id: itemName,
42
67
  placeholder: itemPlaceholder,
43
- disabled: t1$1,
44
- defaultValue: t2$1,
45
- ...t3$1
68
+ disabled: t3$1,
69
+ defaultValue: t4$1,
70
+ ...t5$1
46
71
  });
47
- $[3] = itemName;
48
- $[4] = itemPlaceholder;
49
- $[5] = t1$1;
50
- $[6] = t2$1;
51
- $[7] = t3$1;
52
- $[8] = t4$1;
53
- } else t4$1 = $[8];
54
- return t4$1;
72
+ $[9] = itemName;
73
+ $[10] = itemPlaceholder;
74
+ $[11] = t3$1;
75
+ $[12] = t4$1;
76
+ $[13] = t5$1;
77
+ $[14] = t6$1;
78
+ } else t6$1 = $[14];
79
+ return t6$1;
55
80
  }
56
81
  if (itemType === "select") {
57
- const t1$1 = itemValue ?? "";
58
- let t2$1;
59
- if ($[9] !== form || $[10] !== itemName) {
60
- t2$1 = (value) => form.setValue(itemName, value, {
61
- shouldDirty: true,
62
- shouldTouch: true
63
- });
64
- $[9] = form;
65
- $[10] = itemName;
66
- $[11] = t2$1;
67
- } else t2$1 = $[11];
68
- const t3$1 = disabled || readOnly;
82
+ let T0;
83
+ let T1;
84
+ let t3$1;
69
85
  let t4$1;
70
- if ($[12] !== itemPlaceholder || $[13] !== itemValue || $[14] !== options || $[15] !== resolveText) {
71
- t4$1 = options?.find((o_0) => o_0.value === itemValue)?.label ? resolveText(options.find((o) => o.value === itemValue)?.label) : itemPlaceholder;
72
- $[12] = itemPlaceholder;
73
- $[13] = itemValue;
74
- $[14] = options;
75
- $[15] = resolveText;
76
- $[16] = t4$1;
77
- } else t4$1 = $[16];
78
86
  let t5$1;
79
- if ($[17] !== t4$1) {
80
- t5$1 = /* @__PURE__ */ jsx("span", {
81
- className: "truncate",
87
+ let t6$1;
88
+ let t7$1;
89
+ let t8;
90
+ if ($[15] !== disabled || $[16] !== form || $[17] !== getOptionLabel || $[18] !== itemName || $[19] !== itemPlaceholder || $[20] !== itemValue || $[21] !== options || $[22] !== readOnly) {
91
+ const selectedOption = options?.find((o) => o.value === itemValue);
92
+ T1 = Select;
93
+ t6$1 = itemValue ?? "";
94
+ if ($[31] !== form || $[32] !== itemName) {
95
+ t7$1 = (value) => form.setValue(itemName, value, {
96
+ shouldDirty: true,
97
+ shouldTouch: true
98
+ });
99
+ $[31] = form;
100
+ $[32] = itemName;
101
+ $[33] = t7$1;
102
+ } else t7$1 = $[33];
103
+ t8 = disabled || readOnly;
104
+ T0 = SelectTrigger;
105
+ t5$1 = itemName;
106
+ t3$1 = "truncate";
107
+ t4$1 = selectedOption ? getOptionLabel(selectedOption) : itemPlaceholder;
108
+ $[15] = disabled;
109
+ $[16] = form;
110
+ $[17] = getOptionLabel;
111
+ $[18] = itemName;
112
+ $[19] = itemPlaceholder;
113
+ $[20] = itemValue;
114
+ $[21] = options;
115
+ $[22] = readOnly;
116
+ $[23] = T0;
117
+ $[24] = T1;
118
+ $[25] = t3$1;
119
+ $[26] = t4$1;
120
+ $[27] = t5$1;
121
+ $[28] = t6$1;
122
+ $[29] = t7$1;
123
+ $[30] = t8;
124
+ } else {
125
+ T0 = $[23];
126
+ T1 = $[24];
127
+ t3$1 = $[25];
128
+ t4$1 = $[26];
129
+ t5$1 = $[27];
130
+ t6$1 = $[28];
131
+ t7$1 = $[29];
132
+ t8 = $[30];
133
+ }
134
+ let t9;
135
+ if ($[34] !== t3$1 || $[35] !== t4$1) {
136
+ t9 = /* @__PURE__ */ jsx("span", {
137
+ className: t3$1,
82
138
  children: t4$1
83
139
  });
84
- $[17] = t4$1;
85
- $[18] = t5$1;
86
- } else t5$1 = $[18];
87
- let t6;
88
- if ($[19] !== itemName || $[20] !== t5$1) {
89
- t6 = /* @__PURE__ */ jsx(SelectTrigger, {
90
- id: itemName,
91
- children: t5$1
140
+ $[34] = t3$1;
141
+ $[35] = t4$1;
142
+ $[36] = t9;
143
+ } else t9 = $[36];
144
+ let t10;
145
+ if ($[37] !== T0 || $[38] !== t5$1 || $[39] !== t9) {
146
+ t10 = /* @__PURE__ */ jsx(T0, {
147
+ id: t5$1,
148
+ children: t9
92
149
  });
93
- $[19] = itemName;
94
- $[20] = t5$1;
95
- $[21] = t6;
96
- } else t6 = $[21];
97
- let t7;
98
- if ($[22] !== options || $[23] !== resolveText) {
99
- t7 = options?.map((option) => /* @__PURE__ */ jsx(SelectItem, {
100
- value: option.value,
101
- children: resolveText(option.label)
102
- }, option.value));
103
- $[22] = options;
104
- $[23] = resolveText;
105
- $[24] = t7;
106
- } else t7 = $[24];
107
- let t8;
108
- if ($[25] !== t7) {
109
- t8 = /* @__PURE__ */ jsx(SelectContent, { children: t7 });
110
- $[25] = t7;
111
- $[26] = t8;
112
- } else t8 = $[26];
113
- let t9;
114
- if ($[27] !== t1$1 || $[28] !== t2$1 || $[29] !== t3$1 || $[30] !== t6 || $[31] !== t8) {
115
- t9 = /* @__PURE__ */ jsxs(Select, {
116
- value: t1$1,
117
- onValueChange: t2$1,
118
- disabled: t3$1,
119
- children: [t6, t8]
150
+ $[37] = T0;
151
+ $[38] = t5$1;
152
+ $[39] = t9;
153
+ $[40] = t10;
154
+ } else t10 = $[40];
155
+ let t11;
156
+ if ($[41] !== getOptionLabel || $[42] !== options) {
157
+ t11 = options?.map((option_0) => /* @__PURE__ */ jsx(SelectItem, {
158
+ value: option_0.value,
159
+ children: getOptionLabel(option_0)
160
+ }, option_0.value));
161
+ $[41] = getOptionLabel;
162
+ $[42] = options;
163
+ $[43] = t11;
164
+ } else t11 = $[43];
165
+ let t12;
166
+ if ($[44] !== t11) {
167
+ t12 = /* @__PURE__ */ jsx(SelectContent, { children: t11 });
168
+ $[44] = t11;
169
+ $[45] = t12;
170
+ } else t12 = $[45];
171
+ let t13;
172
+ if ($[46] !== T1 || $[47] !== t10 || $[48] !== t12 || $[49] !== t6$1 || $[50] !== t7$1 || $[51] !== t8) {
173
+ t13 = /* @__PURE__ */ jsxs(T1, {
174
+ value: t6$1,
175
+ onValueChange: t7$1,
176
+ disabled: t8,
177
+ children: [t10, t12]
120
178
  });
121
- $[27] = t1$1;
122
- $[28] = t2$1;
123
- $[29] = t3$1;
124
- $[30] = t6;
125
- $[31] = t8;
126
- $[32] = t9;
127
- } else t9 = $[32];
128
- return t9;
179
+ $[46] = T1;
180
+ $[47] = t10;
181
+ $[48] = t12;
182
+ $[49] = t6$1;
183
+ $[50] = t7$1;
184
+ $[51] = t8;
185
+ $[52] = t13;
186
+ } else t13 = $[52];
187
+ return t13;
129
188
  }
130
- const t1 = itemType === "email" ? "email" : itemType;
131
- const t2 = disabled || readOnly;
132
- const t3 = itemValue ?? "";
133
- let t4;
134
- if ($[33] !== form || $[34] !== itemName || $[35] !== itemType) {
135
- t4 = form.register(itemName, itemType === "number" ? { valueAsNumber: true } : void 0);
136
- $[33] = form;
137
- $[34] = itemName;
138
- $[35] = itemType;
139
- $[36] = t4;
140
- } else t4 = $[36];
141
- let t5;
142
- if ($[37] !== itemName || $[38] !== itemPlaceholder || $[39] !== t1 || $[40] !== t2 || $[41] !== t3 || $[42] !== t4) {
143
- t5 = /* @__PURE__ */ jsx(Input, {
189
+ const t3 = itemType === "email" ? "email" : itemType;
190
+ const t4 = disabled || readOnly;
191
+ const t5 = itemValue ?? "";
192
+ let t6;
193
+ if ($[53] !== form || $[54] !== itemName || $[55] !== itemType) {
194
+ t6 = form.register(itemName, itemType === "number" ? { valueAsNumber: true } : void 0);
195
+ $[53] = form;
196
+ $[54] = itemName;
197
+ $[55] = itemType;
198
+ $[56] = t6;
199
+ } else t6 = $[56];
200
+ let t7;
201
+ if ($[57] !== itemName || $[58] !== itemPlaceholder || $[59] !== t3 || $[60] !== t4 || $[61] !== t5 || $[62] !== t6) {
202
+ t7 = /* @__PURE__ */ jsx(Input, {
144
203
  id: itemName,
145
- type: t1,
204
+ type: t3,
146
205
  placeholder: itemPlaceholder,
147
- disabled: t2,
148
- defaultValue: t3,
149
- ...t4
206
+ disabled: t4,
207
+ defaultValue: t5,
208
+ ...t6
150
209
  });
151
- $[37] = itemName;
152
- $[38] = itemPlaceholder;
153
- $[39] = t1;
154
- $[40] = t2;
155
- $[41] = t3;
156
- $[42] = t4;
157
- $[43] = t5;
158
- } else t5 = $[43];
159
- return t5;
210
+ $[57] = itemName;
211
+ $[58] = itemPlaceholder;
212
+ $[59] = t3;
213
+ $[60] = t4;
214
+ $[61] = t5;
215
+ $[62] = t6;
216
+ $[63] = t7;
217
+ } else t7 = $[63];
218
+ return t7;
160
219
  }
161
220
  function ArrayField(t0) {
162
221
  const $ = c(89);