@questpie/admin 3.0.4 → 3.0.6

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