@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
@@ -2,12 +2,13 @@
2
2
 
3
3
  import { useResolveText, useSafeI18n } from "../../i18n/hooks.mjs";
4
4
  import { cn } from "../../lib/utils.mjs";
5
+ import { flattenOptions } from "./types.mjs";
6
+ import { resolveOptionLabel } from "./option-label.mjs";
5
7
  import { Badge } from "../ui/badge.mjs";
6
8
  import { Popover, PopoverContent, PopoverTrigger } from "../ui/popover.mjs";
7
9
  import { useIsMobile } from "../../hooks/use-media-query.mjs";
8
10
  import { Command, CommandEmpty, CommandGroup, CommandInput, CommandItem, CommandList } from "../ui/command.mjs";
9
11
  import { Drawer, DrawerContent, DrawerHeader, DrawerTitle, DrawerTrigger } from "../ui/drawer.mjs";
10
- import { flattenOptions } from "./types.mjs";
11
12
  import { c } from "react/compiler-runtime";
12
13
  import { Icon } from "@iconify/react";
13
14
  import { useDeferredValue, useId, useState } from "react";
@@ -41,7 +42,7 @@ const EMPTY_OPTIONS = [];
41
42
  * ```
42
43
  */
43
44
  function SelectMulti(t0) {
44
- const $ = c(154);
45
+ const $ = c(160);
45
46
  const { value, onChange, options: staticOptions, loadOptions, queryKey, prefetchOnMount: t1, maxSelections, loading: t2, emptyMessage: t3, placeholder: t4, disabled, className, id, "aria-invalid": ariaInvalid, drawerTitle: t5, maxVisibleChips: t6 } = t0;
46
47
  const prefetchOnMount = t1 === void 0 ? false : t1;
47
48
  const externalLoading = t2 === void 0 ? false : t2;
@@ -55,156 +56,186 @@ function SelectMulti(t0) {
55
56
  const i18n = useSafeI18n();
56
57
  let t7;
57
58
  if ($[0] !== i18n) {
58
- t7 = (key, fallback) => {
59
- const message = i18n?.t(key);
60
- return message && message !== key ? message : fallback;
61
- };
59
+ t7 = (key) => i18n?.t(key) ?? key;
62
60
  $[0] = i18n;
63
61
  $[1] = t7;
64
62
  } else t7 = $[1];
65
- const t = t7;
63
+ const translate = t7;
64
+ const locale = i18n?.locale ?? "en";
66
65
  let t8;
67
- if ($[2] !== placeholder || $[3] !== resolveText) {
68
- t8 = resolveText(placeholder);
69
- $[2] = placeholder;
70
- $[3] = resolveText;
71
- $[4] = t8;
72
- } else t8 = $[4];
73
- const resolvedPlaceholder = t8;
66
+ if ($[2] !== translate) {
67
+ t8 = (key_0, fallback) => {
68
+ const message = translate(key_0);
69
+ return message && message !== key_0 ? message : fallback;
70
+ };
71
+ $[2] = translate;
72
+ $[3] = t8;
73
+ } else t8 = $[3];
74
+ const t = t8;
74
75
  let t9;
75
- if ($[5] !== emptyMessage || $[6] !== resolveText) {
76
- t9 = resolveText(emptyMessage);
77
- $[5] = emptyMessage;
78
- $[6] = resolveText;
79
- $[7] = t9;
80
- } else t9 = $[7];
81
- const resolvedEmptyMessage = t9;
76
+ if ($[4] !== placeholder || $[5] !== resolveText) {
77
+ t9 = resolveText(placeholder);
78
+ $[4] = placeholder;
79
+ $[5] = resolveText;
80
+ $[6] = t9;
81
+ } else t9 = $[6];
82
+ const resolvedPlaceholder = t9;
82
83
  let t10;
83
- if ($[8] !== drawerTitle || $[9] !== resolveText) {
84
- t10 = resolveText(drawerTitle);
85
- $[8] = drawerTitle;
86
- $[9] = resolveText;
87
- $[10] = t10;
88
- } else t10 = $[10];
89
- const resolvedDrawerTitle = t10;
84
+ if ($[7] !== emptyMessage || $[8] !== resolveText) {
85
+ t10 = resolveText(emptyMessage);
86
+ $[7] = emptyMessage;
87
+ $[8] = resolveText;
88
+ $[9] = t10;
89
+ } else t10 = $[9];
90
+ const resolvedEmptyMessage = t10;
91
+ let t11;
92
+ if ($[10] !== drawerTitle || $[11] !== resolveText) {
93
+ t11 = resolveText(drawerTitle);
94
+ $[10] = drawerTitle;
95
+ $[11] = resolveText;
96
+ $[12] = t11;
97
+ } else t11 = $[12];
98
+ const resolvedDrawerTitle = t11;
90
99
  const [open, setOpen] = useState(false);
91
100
  const [search, setSearch] = useState("");
92
101
  const instanceId = useId();
93
102
  const deferredSearch = useDeferredValue(search);
94
103
  const isMobile = useIsMobile();
95
- let t11;
96
- if ($[11] !== resolvedStaticOptions) {
97
- t11 = flattenOptions(resolvedStaticOptions);
98
- $[11] = resolvedStaticOptions;
99
- $[12] = t11;
100
- } else t11 = $[12];
101
- const flatStaticOptions = t11;
102
104
  let t12;
103
- if ($[13] !== deferredSearch || $[14] !== instanceId || $[15] !== queryKey) {
104
- t12 = queryKey ? queryKey(deferredSearch) : [
105
+ if ($[13] !== resolvedStaticOptions) {
106
+ t12 = flattenOptions(resolvedStaticOptions);
107
+ $[13] = resolvedStaticOptions;
108
+ $[14] = t12;
109
+ } else t12 = $[14];
110
+ const flatStaticOptions = t12;
111
+ let t13;
112
+ if ($[15] !== deferredSearch || $[16] !== instanceId || $[17] !== queryKey) {
113
+ t13 = queryKey ? queryKey(deferredSearch) : [
105
114
  "select-multi",
106
115
  instanceId,
107
116
  deferredSearch
108
117
  ];
109
- $[13] = deferredSearch;
110
- $[14] = instanceId;
111
- $[15] = queryKey;
112
- $[16] = t12;
113
- } else t12 = $[16];
114
- const loadOptionsKey = t12;
115
- let t13;
116
- if ($[17] !== deferredSearch || $[18] !== loadOptions) {
117
- t13 = () => loadOptions?.(deferredSearch) ?? Promise.resolve([]);
118
- $[17] = deferredSearch;
119
- $[18] = loadOptions;
120
- $[19] = t13;
121
- } else t13 = $[19];
122
- const t14 = !!loadOptions && (open || prefetchOnMount);
123
- let t15;
124
- if ($[20] !== loadOptionsKey || $[21] !== t13 || $[22] !== t14) {
125
- t15 = {
118
+ $[15] = deferredSearch;
119
+ $[16] = instanceId;
120
+ $[17] = queryKey;
121
+ $[18] = t13;
122
+ } else t13 = $[18];
123
+ const loadOptionsKey = t13;
124
+ let t14;
125
+ if ($[19] !== deferredSearch || $[20] !== loadOptions) {
126
+ t14 = () => loadOptions?.(deferredSearch) ?? Promise.resolve([]);
127
+ $[19] = deferredSearch;
128
+ $[20] = loadOptions;
129
+ $[21] = t14;
130
+ } else t14 = $[21];
131
+ const t15 = !!loadOptions && (open || prefetchOnMount);
132
+ let t16;
133
+ if ($[22] !== loadOptionsKey || $[23] !== t14 || $[24] !== t15) {
134
+ t16 = {
126
135
  queryKey: loadOptionsKey,
127
- queryFn: t13,
128
- enabled: t14,
136
+ queryFn: t14,
137
+ enabled: t15,
129
138
  staleTime: 3e4,
130
139
  gcTime: 3e5
131
140
  };
132
- $[20] = loadOptionsKey;
133
- $[21] = t13;
134
- $[22] = t14;
135
- $[23] = t15;
136
- } else t15 = $[23];
137
- const { data: t16, isFetching } = useQuery(t15);
138
- let t17;
139
- if ($[24] !== t16) {
140
- t17 = t16 === void 0 ? [] : t16;
141
- $[24] = t16;
142
- $[25] = t17;
143
- } else t17 = $[25];
144
- const dynamicOptions = t17;
141
+ $[22] = loadOptionsKey;
142
+ $[23] = t14;
143
+ $[24] = t15;
144
+ $[25] = t16;
145
+ } else t16 = $[25];
146
+ const { data: t17, isFetching } = useQuery(t16);
145
147
  let t18;
148
+ if ($[26] !== t17) {
149
+ t18 = t17 === void 0 ? [] : t17;
150
+ $[26] = t17;
151
+ $[27] = t18;
152
+ } else t18 = $[27];
153
+ const dynamicOptions = t18;
154
+ let t19;
146
155
  bb0: {
147
156
  if (!loadOptions) {
148
- t18 = flatStaticOptions;
157
+ t19 = flatStaticOptions;
149
158
  break bb0;
150
159
  }
151
160
  if (flatStaticOptions.length === 0) {
152
- t18 = dynamicOptions;
161
+ t19 = dynamicOptions;
153
162
  break bb0;
154
163
  }
155
- let t19$1;
156
- if ($[26] !== dynamicOptions || $[27] !== flatStaticOptions) {
164
+ let t20$1;
165
+ if ($[28] !== dynamicOptions || $[29] !== flatStaticOptions) {
157
166
  const mergedMap = [...flatStaticOptions, ...dynamicOptions].reduce(_temp, /* @__PURE__ */ new Map());
158
- t19$1 = Array.from(mergedMap.values());
159
- $[26] = dynamicOptions;
160
- $[27] = flatStaticOptions;
161
- $[28] = t19$1;
162
- } else t19$1 = $[28];
163
- t18 = t19$1;
167
+ t20$1 = Array.from(mergedMap.values());
168
+ $[28] = dynamicOptions;
169
+ $[29] = flatStaticOptions;
170
+ $[30] = t20$1;
171
+ } else t20$1 = $[30];
172
+ t19 = t20$1;
164
173
  }
165
- const allOptions = t18;
166
- let t19;
174
+ const allOptions = t19;
175
+ let t20;
176
+ if ($[31] !== locale || $[32] !== resolveText || $[33] !== translate) {
177
+ t20 = (option) => resolveOptionLabel({
178
+ value: option.value,
179
+ label: option.label,
180
+ resolveText,
181
+ t: translate,
182
+ locale
183
+ });
184
+ $[31] = locale;
185
+ $[32] = resolveText;
186
+ $[33] = translate;
187
+ $[34] = t20;
188
+ } else t20 = $[34];
189
+ const getOptionLabel = t20;
190
+ let t21;
167
191
  bb1: {
168
192
  if (loadOptions) {
169
- t19 = allOptions;
193
+ t21 = allOptions;
170
194
  break bb1;
171
195
  }
172
196
  if (!search) {
173
- t19 = allOptions;
197
+ t21 = allOptions;
174
198
  break bb1;
175
199
  }
176
- let t20$1;
177
- if ($[29] !== allOptions || $[30] !== resolveText || $[31] !== search) {
178
- let t21$1;
179
- if ($[33] !== resolveText || $[34] !== search) {
180
- t21$1 = (opt_0) => resolveText(opt_0.label).toLowerCase().includes(search.toLowerCase());
181
- $[33] = resolveText;
182
- $[34] = search;
183
- $[35] = t21$1;
184
- } else t21$1 = $[35];
185
- t20$1 = allOptions.filter(t21$1);
186
- $[29] = allOptions;
187
- $[30] = resolveText;
188
- $[31] = search;
189
- $[32] = t20$1;
190
- } else t20$1 = $[32];
191
- t19 = t20$1;
200
+ let t22$1;
201
+ if ($[35] !== allOptions || $[36] !== getOptionLabel || $[37] !== search) {
202
+ let t23$1;
203
+ if ($[39] !== getOptionLabel || $[40] !== search) {
204
+ t23$1 = (opt_0) => getOptionLabel(opt_0).toLowerCase().includes(search.toLowerCase());
205
+ $[39] = getOptionLabel;
206
+ $[40] = search;
207
+ $[41] = t23$1;
208
+ } else t23$1 = $[41];
209
+ t22$1 = allOptions.filter(t23$1);
210
+ $[35] = allOptions;
211
+ $[36] = getOptionLabel;
212
+ $[37] = search;
213
+ $[38] = t22$1;
214
+ } else t22$1 = $[38];
215
+ t21 = t22$1;
192
216
  }
193
- const filteredOptions = t19;
194
- let t20;
195
- if ($[36] !== allOptions || $[37] !== resolveText) {
196
- t20 = (val) => {
197
- const option = allOptions.find((opt_1) => opt_1.value === val);
198
- return option?.label ? resolveText(option.label) : String(val);
217
+ const filteredOptions = t21;
218
+ let t22;
219
+ if ($[42] !== allOptions || $[43] !== locale || $[44] !== resolveText || $[45] !== translate) {
220
+ t22 = (val) => {
221
+ return resolveOptionLabel({
222
+ value: val,
223
+ label: allOptions.find((opt_1) => opt_1.value === val)?.label,
224
+ resolveText,
225
+ t: translate,
226
+ locale
227
+ });
199
228
  };
200
- $[36] = allOptions;
201
- $[37] = resolveText;
202
- $[38] = t20;
203
- } else t20 = $[38];
204
- const getLabel = t20;
205
- let t21;
206
- if ($[39] !== maxSelections || $[40] !== onChange || $[41] !== resolvedValue) {
207
- t21 = (selectedValue) => {
229
+ $[42] = allOptions;
230
+ $[43] = locale;
231
+ $[44] = resolveText;
232
+ $[45] = translate;
233
+ $[46] = t22;
234
+ } else t22 = $[46];
235
+ const getLabel = t22;
236
+ let t23;
237
+ if ($[47] !== maxSelections || $[48] !== onChange || $[49] !== resolvedValue) {
238
+ t23 = (selectedValue) => {
208
239
  const typedValue = selectedValue;
209
240
  if (resolvedValue.includes(typedValue)) onChange(resolvedValue.filter((v) => v !== typedValue));
210
241
  else {
@@ -212,50 +243,48 @@ function SelectMulti(t0) {
212
243
  onChange([...resolvedValue, typedValue]);
213
244
  }
214
245
  };
215
- $[39] = maxSelections;
216
- $[40] = onChange;
217
- $[41] = resolvedValue;
218
- $[42] = t21;
219
- } else t21 = $[42];
220
- const handleToggle = t21;
221
- let t22;
222
- if ($[43] !== onChange || $[44] !== resolvedValue) {
223
- t22 = (removedValue, e) => {
246
+ $[47] = maxSelections;
247
+ $[48] = onChange;
248
+ $[49] = resolvedValue;
249
+ $[50] = t23;
250
+ } else t23 = $[50];
251
+ const handleToggle = t23;
252
+ let t24;
253
+ if ($[51] !== onChange || $[52] !== resolvedValue) {
254
+ t24 = (removedValue, e) => {
224
255
  e?.preventDefault();
225
256
  e?.stopPropagation();
226
257
  onChange(resolvedValue.filter((v_0) => v_0 !== removedValue));
227
258
  };
228
- $[43] = onChange;
229
- $[44] = resolvedValue;
230
- $[45] = t22;
231
- } else t22 = $[45];
232
- const handleRemove = t22;
233
- let t23;
234
- if ($[46] !== onChange) {
235
- t23 = (e_0) => {
259
+ $[51] = onChange;
260
+ $[52] = resolvedValue;
261
+ $[53] = t24;
262
+ } else t24 = $[53];
263
+ const handleRemove = t24;
264
+ let t25;
265
+ if ($[54] !== onChange) {
266
+ t25 = (e_0) => {
236
267
  e_0.preventDefault();
237
268
  e_0.stopPropagation();
238
269
  onChange([]);
239
270
  };
240
- $[46] = onChange;
241
- $[47] = t23;
242
- } else t23 = $[47];
243
- const handleClearAll = t23;
244
- let t24;
245
- if ($[48] !== disabled || $[49] !== handleClearAll || $[50] !== resolvedValue.length) {
246
- t24 = (event) => {
271
+ $[54] = onChange;
272
+ $[55] = t25;
273
+ } else t25 = $[55];
274
+ const handleClearAll = t25;
275
+ let t26;
276
+ if ($[56] !== disabled || $[57] !== handleClearAll || $[58] !== resolvedValue.length) {
277
+ t26 = (event) => {
247
278
  if (resolvedValue.length > 0 && !disabled && (event.key === "Backspace" || event.key === "Delete")) handleClearAll(event);
248
279
  };
249
- $[48] = disabled;
250
- $[49] = handleClearAll;
251
- $[50] = resolvedValue.length;
252
- $[51] = t24;
253
- } else t24 = $[51];
254
- const handleTriggerKeyDown = t24;
280
+ $[56] = disabled;
281
+ $[57] = handleClearAll;
282
+ $[58] = resolvedValue.length;
283
+ $[59] = t26;
284
+ } else t26 = $[59];
285
+ const handleTriggerKeyDown = t26;
255
286
  const showLoading = isFetching || externalLoading;
256
287
  const canAddMore = !maxSelections || resolvedValue.length < maxSelections;
257
- let t25;
258
- let t26;
259
288
  let t27;
260
289
  let t28;
261
290
  let t29;
@@ -263,26 +292,26 @@ function SelectMulti(t0) {
263
292
  let t31;
264
293
  let t32;
265
294
  let t33;
266
- if ($[52] !== ariaInvalid || $[53] !== className || $[54] !== disabled || $[55] !== getLabel || $[56] !== handleRemove || $[57] !== id || $[58] !== maxVisibleChips || $[59] !== open || $[60] !== resolvedPlaceholder || $[61] !== resolvedValue || $[62] !== t) {
295
+ let t34;
296
+ if ($[60] !== ariaInvalid || $[61] !== className || $[62] !== disabled || $[63] !== getLabel || $[64] !== handleRemove || $[65] !== id || $[66] !== maxVisibleChips || $[67] !== open || $[68] !== resolvedPlaceholder || $[69] !== resolvedValue || $[70] !== t) {
267
297
  const visibleChips = resolvedValue.slice(0, maxVisibleChips);
268
298
  const hiddenCount = resolvedValue.length - maxVisibleChips;
269
- t25 = id;
270
- t26 = "combobox";
271
- t27 = "select-multi-list";
272
- t28 = "listbox";
273
- t29 = open;
274
- t30 = ariaInvalid;
275
- t31 = 0;
276
- const t34$1 = disabled && "cursor-not-allowed opacity-50";
277
- const t35$1 = ariaInvalid && "border-destructive ring-destructive/20";
278
- if ($[72] !== className || $[73] !== t34$1 || $[74] !== t35$1) {
279
- t32 = cn("qa-select-multi control-surface font-chrome flex h-auto min-h-[var(--control-height)] w-full flex-wrap items-center gap-1 px-3 py-1.5 text-sm", "hover:bg-surface-low focus-within:border-border-strong focus-within:ring-ring/20 aria-expanded:border-border-strong aria-expanded:ring-ring/20 focus-within:ring-3 aria-expanded:ring-3", t34$1, t35$1, className);
280
- $[72] = className;
281
- $[73] = t34$1;
282
- $[74] = t35$1;
283
- $[75] = t32;
284
- } else t32 = $[75];
285
- t33 = resolvedValue.length === 0 ? /* @__PURE__ */ jsx("span", {
299
+ t27 = id;
300
+ t28 = "combobox";
301
+ t29 = "select-multi-list";
302
+ t30 = open;
303
+ t31 = ariaInvalid;
304
+ t32 = 0;
305
+ const t35$1 = disabled && "cursor-not-allowed opacity-50";
306
+ const t36$1 = ariaInvalid && "border-destructive ring-destructive/20";
307
+ if ($[79] !== className || $[80] !== t35$1 || $[81] !== t36$1) {
308
+ t33 = cn("qa-select-multi control-surface font-chrome flex h-auto min-h-[var(--control-height)] w-full flex-wrap items-center gap-1 px-3 py-1.5 text-sm", "hover:bg-surface-low focus-within:border-border-strong focus-within:ring-ring/20 aria-expanded:border-border-strong aria-expanded:ring-ring/20 focus-within:ring-3 aria-expanded:ring-3", t35$1, t36$1, className);
309
+ $[79] = className;
310
+ $[80] = t35$1;
311
+ $[81] = t36$1;
312
+ $[82] = t33;
313
+ } else t33 = $[82];
314
+ t34 = resolvedValue.length === 0 ? /* @__PURE__ */ jsx("span", {
286
315
  className: "text-muted-foreground text-xs",
287
316
  children: resolvedPlaceholder
288
317
  }) : /* @__PURE__ */ jsxs(Fragment, { children: [visibleChips.map((val_0) => /* @__PURE__ */ jsxs(Badge, {
@@ -311,40 +340,38 @@ function SelectMulti(t0) {
311
340
  " more"
312
341
  ]
313
342
  })] });
314
- $[52] = ariaInvalid;
315
- $[53] = className;
316
- $[54] = disabled;
317
- $[55] = getLabel;
318
- $[56] = handleRemove;
319
- $[57] = id;
320
- $[58] = maxVisibleChips;
321
- $[59] = open;
322
- $[60] = resolvedPlaceholder;
323
- $[61] = resolvedValue;
324
- $[62] = t;
325
- $[63] = t25;
326
- $[64] = t26;
327
- $[65] = t27;
328
- $[66] = t28;
329
- $[67] = t29;
330
- $[68] = t30;
331
- $[69] = t31;
332
- $[70] = t32;
333
- $[71] = t33;
343
+ $[60] = ariaInvalid;
344
+ $[61] = className;
345
+ $[62] = disabled;
346
+ $[63] = getLabel;
347
+ $[64] = handleRemove;
348
+ $[65] = id;
349
+ $[66] = maxVisibleChips;
350
+ $[67] = open;
351
+ $[68] = resolvedPlaceholder;
352
+ $[69] = resolvedValue;
353
+ $[70] = t;
354
+ $[71] = t27;
355
+ $[72] = t28;
356
+ $[73] = t29;
357
+ $[74] = t30;
358
+ $[75] = t31;
359
+ $[76] = t32;
360
+ $[77] = t33;
361
+ $[78] = t34;
334
362
  } else {
335
- t25 = $[63];
336
- t26 = $[64];
337
- t27 = $[65];
338
- t28 = $[66];
339
- t29 = $[67];
340
- t30 = $[68];
341
- t31 = $[69];
342
- t32 = $[70];
343
- t33 = $[71];
363
+ t27 = $[71];
364
+ t28 = $[72];
365
+ t29 = $[73];
366
+ t30 = $[74];
367
+ t31 = $[75];
368
+ t32 = $[76];
369
+ t33 = $[77];
370
+ t34 = $[78];
344
371
  }
345
- let t34;
346
- if ($[76] !== disabled || $[77] !== handleClearAll || $[78] !== resolvedValue.length || $[79] !== t) {
347
- t34 = resolvedValue.length > 0 && !disabled && /* @__PURE__ */ jsx("span", {
372
+ let t35;
373
+ if ($[83] !== disabled || $[84] !== handleClearAll || $[85] !== resolvedValue.length || $[86] !== t) {
374
+ t35 = resolvedValue.length > 0 && !disabled && /* @__PURE__ */ jsx("span", {
348
375
  "aria-hidden": "true",
349
376
  title: t("common.clear", "Clear all"),
350
377
  onPointerDown: handleClearAll,
@@ -355,100 +382,98 @@ function SelectMulti(t0) {
355
382
  className: "size-3"
356
383
  })
357
384
  });
358
- $[76] = disabled;
359
- $[77] = handleClearAll;
360
- $[78] = resolvedValue.length;
361
- $[79] = t;
362
- $[80] = t34;
363
- } else t34 = $[80];
364
- let t35;
365
- if ($[81] === Symbol.for("react.memo_cache_sentinel")) {
366
- t35 = /* @__PURE__ */ jsx(Icon, {
385
+ $[83] = disabled;
386
+ $[84] = handleClearAll;
387
+ $[85] = resolvedValue.length;
388
+ $[86] = t;
389
+ $[87] = t35;
390
+ } else t35 = $[87];
391
+ let t36;
392
+ if ($[88] === Symbol.for("react.memo_cache_sentinel")) {
393
+ t36 = /* @__PURE__ */ jsx(Icon, {
367
394
  icon: "ph:plus",
368
395
  className: "size-3.5 opacity-50"
369
396
  });
370
- $[81] = t35;
371
- } else t35 = $[81];
372
- let t36;
373
- if ($[82] !== t34) {
374
- t36 = /* @__PURE__ */ jsxs("div", {
375
- className: "ml-auto flex shrink-0 items-center gap-1",
376
- children: [t34, t35]
377
- });
378
- $[82] = t34;
379
- $[83] = t36;
380
- } else t36 = $[83];
397
+ $[88] = t36;
398
+ } else t36 = $[88];
381
399
  let t37;
382
- if ($[84] !== t25 || $[85] !== t26 || $[86] !== t27 || $[87] !== t28 || $[88] !== t29 || $[89] !== t30 || $[90] !== t31 || $[91] !== t32 || $[92] !== t33 || $[93] !== t36) {
400
+ if ($[89] !== t35) {
383
401
  t37 = /* @__PURE__ */ jsxs("div", {
384
- id: t25,
385
- role: t26,
386
- "aria-controls": t27,
387
- "aria-haspopup": t28,
388
- "aria-expanded": t29,
389
- "aria-invalid": t30,
390
- tabIndex: t31,
391
- className: t32,
392
- children: [t33, t36]
402
+ className: "ml-auto flex shrink-0 items-center gap-1",
403
+ children: [t35, t36]
404
+ });
405
+ $[89] = t35;
406
+ $[90] = t37;
407
+ } else t37 = $[90];
408
+ let t38;
409
+ if ($[91] !== t27 || $[92] !== t28 || $[93] !== t29 || $[94] !== t30 || $[95] !== t31 || $[96] !== t32 || $[97] !== t33 || $[98] !== t34 || $[99] !== t37) {
410
+ t38 = /* @__PURE__ */ jsxs("div", {
411
+ id: t27,
412
+ role: t28,
413
+ "aria-controls": t29,
414
+ "aria-expanded": t30,
415
+ "aria-invalid": t31,
416
+ tabIndex: t32,
417
+ className: t33,
418
+ children: [t34, t37]
393
419
  });
394
- $[84] = t25;
395
- $[85] = t26;
396
- $[86] = t27;
397
- $[87] = t28;
398
- $[88] = t29;
399
- $[89] = t30;
400
- $[90] = t31;
401
- $[91] = t32;
402
- $[92] = t33;
403
- $[93] = t36;
404
- $[94] = t37;
405
- } else t37 = $[94];
406
- const TriggerContent = t37;
407
- const t38 = !loadOptions;
408
- let t39;
409
- if ($[95] !== t) {
410
- t39 = t("ui.searchPlaceholder", "Search...");
411
- $[95] = t;
412
- $[96] = t39;
413
- } else t39 = $[96];
420
+ $[91] = t27;
421
+ $[92] = t28;
422
+ $[93] = t29;
423
+ $[94] = t30;
424
+ $[95] = t31;
425
+ $[96] = t32;
426
+ $[97] = t33;
427
+ $[98] = t34;
428
+ $[99] = t37;
429
+ $[100] = t38;
430
+ } else t38 = $[100];
431
+ const TriggerContent = t38;
432
+ const t39 = !loadOptions;
414
433
  let t40;
415
- if ($[97] !== search || $[98] !== t39) {
416
- t40 = /* @__PURE__ */ jsx(CommandInput, {
417
- placeholder: t39,
434
+ if ($[101] !== t) {
435
+ t40 = t("ui.searchPlaceholder", "Search...");
436
+ $[101] = t;
437
+ $[102] = t40;
438
+ } else t40 = $[102];
439
+ let t41;
440
+ if ($[103] !== search || $[104] !== t40) {
441
+ t41 = /* @__PURE__ */ jsx(CommandInput, {
442
+ placeholder: t40,
418
443
  value: search,
419
444
  onValueChange: setSearch
420
445
  });
421
- $[97] = search;
422
- $[98] = t39;
423
- $[99] = t40;
424
- } else t40 = $[99];
425
- let t41;
426
- if ($[100] !== showLoading) {
427
- t41 = showLoading && /* @__PURE__ */ jsx("div", {
446
+ $[103] = search;
447
+ $[104] = t40;
448
+ $[105] = t41;
449
+ } else t41 = $[105];
450
+ let t42;
451
+ if ($[106] !== showLoading) {
452
+ t42 = showLoading && /* @__PURE__ */ jsx("div", {
428
453
  className: "flex items-center justify-center py-6",
429
454
  children: /* @__PURE__ */ jsx(Icon, {
430
455
  icon: "ph:circle-notch",
431
456
  className: "text-muted-foreground size-4 animate-spin"
432
457
  })
433
458
  });
434
- $[100] = showLoading;
435
- $[101] = t41;
436
- } else t41 = $[101];
437
- let t42;
438
- if ($[102] !== resolvedEmptyMessage) {
439
- t42 = /* @__PURE__ */ jsx(CommandEmpty, { children: resolvedEmptyMessage });
440
- $[102] = resolvedEmptyMessage;
441
- $[103] = t42;
442
- } else t42 = $[103];
459
+ $[106] = showLoading;
460
+ $[107] = t42;
461
+ } else t42 = $[107];
443
462
  let t43;
444
- if ($[104] !== canAddMore || $[105] !== filteredOptions || $[106] !== handleToggle || $[107] !== resolveText || $[108] !== resolvedValue) {
445
- let t44$1;
446
- if ($[110] !== canAddMore || $[111] !== handleToggle || $[112] !== resolveText || $[113] !== resolvedValue) {
447
- t44$1 = (option_0) => {
448
- const isSelected_0 = resolvedValue.includes(option_0.value);
449
- const isDisabled = option_0.disabled || !isSelected_0 && !canAddMore;
463
+ if ($[108] !== resolvedEmptyMessage) {
464
+ t43 = /* @__PURE__ */ jsx(CommandEmpty, { children: resolvedEmptyMessage });
465
+ $[108] = resolvedEmptyMessage;
466
+ $[109] = t43;
467
+ } else t43 = $[109];
468
+ let t44;
469
+ if ($[110] !== canAddMore || $[111] !== filteredOptions || $[112] !== getOptionLabel || $[113] !== handleToggle || $[114] !== resolvedValue) {
470
+ let t45$1;
471
+ if ($[116] !== canAddMore || $[117] !== getOptionLabel || $[118] !== handleToggle || $[119] !== resolvedValue) {
472
+ t45$1 = (option_1) => {
473
+ const isSelected_0 = resolvedValue.includes(option_1.value);
474
+ const isDisabled = option_1.disabled || !isSelected_0 && !canAddMore;
450
475
  return /* @__PURE__ */ jsxs(CommandItem, {
451
- value: String(option_0.value),
476
+ value: String(option_1.value),
452
477
  onSelect: handleToggle,
453
478
  disabled: isDisabled,
454
479
  children: [
@@ -459,49 +484,49 @@ function SelectMulti(t0) {
459
484
  className: "size-3"
460
485
  })
461
486
  }),
462
- option_0.icon,
487
+ option_1.icon,
463
488
  /* @__PURE__ */ jsx("span", {
464
489
  className: "truncate",
465
- children: resolveText(option_0.label)
490
+ children: getOptionLabel(option_1)
466
491
  })
467
492
  ]
468
- }, String(option_0.value));
493
+ }, String(option_1.value));
469
494
  };
470
- $[110] = canAddMore;
471
- $[111] = handleToggle;
472
- $[112] = resolveText;
473
- $[113] = resolvedValue;
474
- $[114] = t44$1;
475
- } else t44$1 = $[114];
476
- t43 = filteredOptions.map(t44$1);
477
- $[104] = canAddMore;
478
- $[105] = filteredOptions;
479
- $[106] = handleToggle;
480
- $[107] = resolveText;
481
- $[108] = resolvedValue;
482
- $[109] = t43;
483
- } else t43 = $[109];
484
- let t44;
485
- if ($[115] !== t43) {
486
- t44 = /* @__PURE__ */ jsx(CommandGroup, { children: t43 });
487
- $[115] = t43;
488
- $[116] = t44;
489
- } else t44 = $[116];
495
+ $[116] = canAddMore;
496
+ $[117] = getOptionLabel;
497
+ $[118] = handleToggle;
498
+ $[119] = resolvedValue;
499
+ $[120] = t45$1;
500
+ } else t45$1 = $[120];
501
+ t44 = filteredOptions.map(t45$1);
502
+ $[110] = canAddMore;
503
+ $[111] = filteredOptions;
504
+ $[112] = getOptionLabel;
505
+ $[113] = handleToggle;
506
+ $[114] = resolvedValue;
507
+ $[115] = t44;
508
+ } else t44 = $[115];
490
509
  let t45;
491
- if ($[117] !== t41 || $[118] !== t42 || $[119] !== t44) {
492
- t45 = /* @__PURE__ */ jsxs(CommandList, { children: [
493
- t41,
510
+ if ($[121] !== t44) {
511
+ t45 = /* @__PURE__ */ jsx(CommandGroup, { children: t44 });
512
+ $[121] = t44;
513
+ $[122] = t45;
514
+ } else t45 = $[122];
515
+ let t46;
516
+ if ($[123] !== t42 || $[124] !== t43 || $[125] !== t45) {
517
+ t46 = /* @__PURE__ */ jsxs(CommandList, { children: [
494
518
  t42,
495
- t44
519
+ t43,
520
+ t45
496
521
  ] });
497
- $[117] = t41;
498
- $[118] = t42;
499
- $[119] = t44;
500
- $[120] = t45;
501
- } else t45 = $[120];
502
- let t46;
503
- if ($[121] !== maxSelections || $[122] !== resolvedValue.length) {
504
- t46 = maxSelections && /* @__PURE__ */ jsxs("div", {
522
+ $[123] = t42;
523
+ $[124] = t43;
524
+ $[125] = t45;
525
+ $[126] = t46;
526
+ } else t46 = $[126];
527
+ let t47;
528
+ if ($[127] !== maxSelections || $[128] !== resolvedValue.length) {
529
+ t47 = maxSelections && /* @__PURE__ */ jsxs("div", {
505
530
  className: "text-muted-foreground border-t p-2 text-center text-xs tabular-nums",
506
531
  children: [
507
532
  resolvedValue.length,
@@ -510,31 +535,31 @@ function SelectMulti(t0) {
510
535
  " selected"
511
536
  ]
512
537
  });
513
- $[121] = maxSelections;
514
- $[122] = resolvedValue.length;
515
- $[123] = t46;
516
- } else t46 = $[123];
517
- let t47;
518
- if ($[124] !== t38 || $[125] !== t40 || $[126] !== t45 || $[127] !== t46) {
519
- t47 = /* @__PURE__ */ jsxs(Command, {
520
- shouldFilter: t38,
538
+ $[127] = maxSelections;
539
+ $[128] = resolvedValue.length;
540
+ $[129] = t47;
541
+ } else t47 = $[129];
542
+ let t48;
543
+ if ($[130] !== t39 || $[131] !== t41 || $[132] !== t46 || $[133] !== t47) {
544
+ t48 = /* @__PURE__ */ jsxs(Command, {
545
+ shouldFilter: t39,
521
546
  children: [
522
- t40,
523
- t45,
524
- t46
547
+ t41,
548
+ t46,
549
+ t47
525
550
  ]
526
551
  });
527
- $[124] = t38;
528
- $[125] = t40;
529
- $[126] = t45;
530
- $[127] = t46;
531
- $[128] = t47;
532
- } else t47 = $[128];
533
- const CommandContent = t47;
552
+ $[130] = t39;
553
+ $[131] = t41;
554
+ $[132] = t46;
555
+ $[133] = t47;
556
+ $[134] = t48;
557
+ } else t48 = $[134];
558
+ const CommandContent = t48;
534
559
  if (isMobile) {
535
- let t48$1;
536
- if ($[129] !== TriggerContent || $[130] !== disabled || $[131] !== handleTriggerKeyDown) {
537
- t48$1 = /* @__PURE__ */ jsx(DrawerTrigger, {
560
+ let t49$1;
561
+ if ($[135] !== TriggerContent || $[136] !== disabled || $[137] !== handleTriggerKeyDown) {
562
+ t49$1 = /* @__PURE__ */ jsx(DrawerTrigger, {
538
563
  asChild: true,
539
564
  children: /* @__PURE__ */ jsx("button", {
540
565
  type: "button",
@@ -544,84 +569,84 @@ function SelectMulti(t0) {
544
569
  children: TriggerContent
545
570
  })
546
571
  });
547
- $[129] = TriggerContent;
548
- $[130] = disabled;
549
- $[131] = handleTriggerKeyDown;
550
- $[132] = t48$1;
551
- } else t48$1 = $[132];
552
- let t49$1;
553
- if ($[133] !== resolvedDrawerTitle) {
554
- t49$1 = /* @__PURE__ */ jsx(DrawerHeader, { children: /* @__PURE__ */ jsx(DrawerTitle, { children: resolvedDrawerTitle }) });
555
- $[133] = resolvedDrawerTitle;
556
- $[134] = t49$1;
557
- } else t49$1 = $[134];
572
+ $[135] = TriggerContent;
573
+ $[136] = disabled;
574
+ $[137] = handleTriggerKeyDown;
575
+ $[138] = t49$1;
576
+ } else t49$1 = $[138];
558
577
  let t50$1;
559
- if ($[135] !== CommandContent) {
560
- t50$1 = /* @__PURE__ */ jsx("div", {
578
+ if ($[139] !== resolvedDrawerTitle) {
579
+ t50$1 = /* @__PURE__ */ jsx(DrawerHeader, { children: /* @__PURE__ */ jsx(DrawerTitle, { children: resolvedDrawerTitle }) });
580
+ $[139] = resolvedDrawerTitle;
581
+ $[140] = t50$1;
582
+ } else t50$1 = $[140];
583
+ let t51$1;
584
+ if ($[141] !== CommandContent) {
585
+ t51$1 = /* @__PURE__ */ jsx("div", {
561
586
  className: "px-4 pb-6",
562
587
  children: CommandContent
563
588
  });
564
- $[135] = CommandContent;
565
- $[136] = t50$1;
566
- } else t50$1 = $[136];
567
- let t51;
568
- if ($[137] !== t49$1 || $[138] !== t50$1) {
569
- t51 = /* @__PURE__ */ jsxs(DrawerContent, { children: [t49$1, t50$1] });
570
- $[137] = t49$1;
571
- $[138] = t50$1;
572
- $[139] = t51;
573
- } else t51 = $[139];
589
+ $[141] = CommandContent;
590
+ $[142] = t51$1;
591
+ } else t51$1 = $[142];
574
592
  let t52;
575
- if ($[140] !== open || $[141] !== t48$1 || $[142] !== t51) {
576
- t52 = /* @__PURE__ */ jsxs(Drawer, {
593
+ if ($[143] !== t50$1 || $[144] !== t51$1) {
594
+ t52 = /* @__PURE__ */ jsxs(DrawerContent, { children: [t50$1, t51$1] });
595
+ $[143] = t50$1;
596
+ $[144] = t51$1;
597
+ $[145] = t52;
598
+ } else t52 = $[145];
599
+ let t53;
600
+ if ($[146] !== open || $[147] !== t49$1 || $[148] !== t52) {
601
+ t53 = /* @__PURE__ */ jsxs(Drawer, {
577
602
  open,
578
603
  onOpenChange: setOpen,
579
- children: [t48$1, t51]
604
+ children: [t49$1, t52]
580
605
  });
581
- $[140] = open;
582
- $[141] = t48$1;
583
- $[142] = t51;
584
- $[143] = t52;
585
- } else t52 = $[143];
586
- return t52;
606
+ $[146] = open;
607
+ $[147] = t49$1;
608
+ $[148] = t52;
609
+ $[149] = t53;
610
+ } else t53 = $[149];
611
+ return t53;
587
612
  }
588
- let t48;
589
- if ($[144] !== TriggerContent || $[145] !== disabled || $[146] !== handleTriggerKeyDown) {
590
- t48 = /* @__PURE__ */ jsx(PopoverTrigger, { render: /* @__PURE__ */ jsx("button", {
613
+ let t49;
614
+ if ($[150] !== TriggerContent || $[151] !== disabled || $[152] !== handleTriggerKeyDown) {
615
+ t49 = /* @__PURE__ */ jsx(PopoverTrigger, { render: /* @__PURE__ */ jsx("button", {
591
616
  type: "button",
592
617
  disabled,
593
618
  onKeyDown: handleTriggerKeyDown,
594
619
  className: "w-full text-left",
595
620
  children: TriggerContent
596
621
  }) });
597
- $[144] = TriggerContent;
598
- $[145] = disabled;
599
- $[146] = handleTriggerKeyDown;
600
- $[147] = t48;
601
- } else t48 = $[147];
602
- let t49;
603
- if ($[148] !== CommandContent) {
604
- t49 = /* @__PURE__ */ jsx(PopoverContent, {
622
+ $[150] = TriggerContent;
623
+ $[151] = disabled;
624
+ $[152] = handleTriggerKeyDown;
625
+ $[153] = t49;
626
+ } else t49 = $[153];
627
+ let t50;
628
+ if ($[154] !== CommandContent) {
629
+ t50 = /* @__PURE__ */ jsx(PopoverContent, {
605
630
  className: "w-(--anchor-width) p-0",
606
631
  align: "start",
607
632
  children: CommandContent
608
633
  });
609
- $[148] = CommandContent;
610
- $[149] = t49;
611
- } else t49 = $[149];
612
- let t50;
613
- if ($[150] !== open || $[151] !== t48 || $[152] !== t49) {
614
- t50 = /* @__PURE__ */ jsxs(Popover, {
634
+ $[154] = CommandContent;
635
+ $[155] = t50;
636
+ } else t50 = $[155];
637
+ let t51;
638
+ if ($[156] !== open || $[157] !== t49 || $[158] !== t50) {
639
+ t51 = /* @__PURE__ */ jsxs(Popover, {
615
640
  open,
616
641
  onOpenChange: setOpen,
617
- children: [t48, t49]
642
+ children: [t49, t50]
618
643
  });
619
- $[150] = open;
620
- $[151] = t48;
621
- $[152] = t49;
622
- $[153] = t50;
623
- } else t50 = $[153];
624
- return t50;
644
+ $[156] = open;
645
+ $[157] = t49;
646
+ $[158] = t50;
647
+ $[159] = t51;
648
+ } else t51 = $[159];
649
+ return t51;
625
650
  }
626
651
  function _temp(map, opt) {
627
652
  return new Map(map).set(opt.value, opt);