@questpie/admin 3.0.3 → 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 (253) hide show
  1. package/README.md +34 -5
  2. package/dist/client/blocks/block-renderer.d.mts +2 -2
  3. package/dist/client/blocks/block-renderer.mjs +4 -1
  4. package/dist/client/builder/types/action-types.d.mts +31 -3
  5. package/dist/client/builder/types/collection-types.d.mts +140 -0
  6. package/dist/client/builder/types/ui-config.d.mts +16 -2
  7. package/dist/client/builder/types/views.d.mts +57 -0
  8. package/dist/client/builder/types/widget-types.d.mts +5 -0
  9. package/dist/client/components/actions/action-button.mjs +137 -199
  10. package/dist/client/components/actions/action-dialog.mjs +198 -156
  11. package/dist/client/components/actions/confirmation-dialog.mjs +2 -2
  12. package/dist/client/components/actions/header-actions.mjs +52 -53
  13. package/dist/client/components/admin-link.d.mts +2 -2
  14. package/dist/client/components/auth/auth-loading.mjs +41 -18
  15. package/dist/client/components/blocks/block-editor-layout.mjs +2 -2
  16. package/dist/client/components/blocks/block-fields-renderer.mjs +64 -28
  17. package/dist/client/components/blocks/block-insert-button.mjs +4 -4
  18. package/dist/client/components/blocks/block-item.mjs +2 -2
  19. package/dist/client/components/blocks/block-library-sidebar.mjs +91 -63
  20. package/dist/client/components/component-renderer.mjs +1 -1
  21. package/dist/client/components/fields/array-field.mjs +14 -14
  22. package/dist/client/components/fields/asset-preview-field.mjs +1 -1
  23. package/dist/client/components/fields/blocks-field/blocks-field.mjs +84 -104
  24. package/dist/client/components/fields/json-field.mjs +2 -2
  25. package/dist/client/components/fields/object-array-field.mjs +22 -22
  26. package/dist/client/components/fields/object-field.mjs +5 -5
  27. package/dist/client/components/fields/relation/displays/cards-display.mjs +16 -9
  28. package/dist/client/components/fields/relation/displays/chips-display.mjs +15 -12
  29. package/dist/client/components/fields/relation/displays/grid-display.mjs +15 -11
  30. package/dist/client/components/fields/relation/displays/list-display.mjs +33 -20
  31. package/dist/client/components/fields/relation/displays/table-display.mjs +62 -93
  32. package/dist/client/components/fields/relation/relation-items-display.mjs +1 -1
  33. package/dist/client/components/fields/relation-picker.mjs +7 -6
  34. package/dist/client/components/fields/relation-select.mjs +71 -47
  35. package/dist/client/components/fields/rich-text-editor/bubble-menu.mjs +392 -82
  36. package/dist/client/components/fields/rich-text-editor/extensions.mjs +54 -23
  37. package/dist/client/components/fields/rich-text-editor/image-popover.mjs +24 -50
  38. package/dist/client/components/fields/rich-text-editor/image-upload.mjs +66 -0
  39. package/dist/client/components/fields/rich-text-editor/index.d.mts +38 -0
  40. package/dist/client/components/fields/rich-text-editor/index.mjs +637 -376
  41. package/dist/client/components/fields/rich-text-editor/link-utils.mjs +26 -0
  42. package/dist/client/components/fields/rich-text-editor/presets.d.mts +10 -0
  43. package/dist/client/components/fields/rich-text-editor/slash-commands.mjs +27 -6
  44. package/dist/client/components/fields/rich-text-editor/toolbar.mjs +464 -346
  45. package/dist/client/components/fields/rich-text-editor/types.d.mts +77 -0
  46. package/dist/client/components/fields/upload-field.mjs +45 -49
  47. package/dist/client/components/filter-builder/columns-tab.mjs +69 -62
  48. package/dist/client/components/filter-builder/filter-builder-sheet.mjs +473 -308
  49. package/dist/client/components/filter-builder/filters-tab.mjs +109 -82
  50. package/dist/client/components/filter-builder/saved-views-tab.mjs +300 -198
  51. package/dist/client/components/history-sidebar.mjs +850 -340
  52. package/dist/client/components/layout/field-layout-renderer.mjs +6 -5
  53. package/dist/client/components/locale-switcher.mjs +8 -8
  54. package/dist/client/components/media/media-grid.mjs +106 -86
  55. package/dist/client/components/media/media-picker-dialog.mjs +242 -230
  56. package/dist/client/components/preview/live-preview-mode.mjs +1 -1
  57. package/dist/client/components/primitives/asset-preview.mjs +37 -22
  58. package/dist/client/components/primitives/date-input.mjs +212 -249
  59. package/dist/client/components/primitives/dropzone.mjs +192 -159
  60. package/dist/client/components/primitives/field-select-control.mjs +93 -0
  61. package/dist/client/components/primitives/select-multi.mjs +406 -365
  62. package/dist/client/components/primitives/select-single.mjs +391 -323
  63. package/dist/client/components/primitives/time-input.mjs +2 -2
  64. package/dist/client/components/sheets/resource-sheet.mjs +2 -0
  65. package/dist/client/components/ui/accordion.mjs +4 -4
  66. package/dist/client/components/ui/alert.mjs +3 -3
  67. package/dist/client/components/ui/badge.mjs +4 -4
  68. package/dist/client/components/ui/button.mjs +47 -37
  69. package/dist/client/components/ui/card.mjs +2 -2
  70. package/dist/client/components/ui/checkbox.mjs +1 -1
  71. package/dist/client/components/ui/command.mjs +5 -5
  72. package/dist/client/components/ui/dialog.mjs +3 -3
  73. package/dist/client/components/ui/drawer.mjs +1 -1
  74. package/dist/client/components/ui/dropdown-menu.mjs +157 -15
  75. package/dist/client/components/ui/empty-state.mjs +88 -59
  76. package/dist/client/components/ui/field.mjs +2 -2
  77. package/dist/client/components/ui/input-group.mjs +3 -3
  78. package/dist/client/components/ui/input.mjs +1 -1
  79. package/dist/client/components/ui/kbd.mjs +1 -1
  80. package/dist/client/components/ui/label.mjs +1 -1
  81. package/dist/client/components/ui/popover.mjs +19 -11
  82. package/dist/client/components/ui/scroll-fade.mjs +170 -0
  83. package/dist/client/components/ui/search-input.mjs +1 -1
  84. package/dist/client/components/ui/select.mjs +129 -27
  85. package/dist/client/components/ui/sheet.mjs +54 -34
  86. package/dist/client/components/ui/sidebar.mjs +15 -14
  87. package/dist/client/components/ui/skeleton.mjs +28 -12
  88. package/dist/client/components/ui/switch.mjs +2 -2
  89. package/dist/client/components/ui/table.mjs +82 -74
  90. package/dist/client/components/ui/tabs.mjs +26 -31
  91. package/dist/client/components/ui/textarea.mjs +1 -1
  92. package/dist/client/components/ui/tooltip.mjs +1 -1
  93. package/dist/client/components/widgets/chart-widget.mjs +154 -100
  94. package/dist/client/components/widgets/progress-widget.mjs +63 -36
  95. package/dist/client/components/widgets/quick-actions-widget.mjs +207 -115
  96. package/dist/client/components/widgets/recent-items-widget.mjs +147 -103
  97. package/dist/client/components/widgets/stats-widget.mjs +91 -72
  98. package/dist/client/components/widgets/table-widget.mjs +161 -247
  99. package/dist/client/components/widgets/timeline-widget.mjs +119 -78
  100. package/dist/client/components/widgets/value-widget.mjs +286 -157
  101. package/dist/client/components/widgets/widget-empty-state.mjs +88 -0
  102. package/dist/client/components/widgets/widget-skeletons.mjs +53 -20
  103. package/dist/client/contexts/focus-context.d.mts +2 -2
  104. package/dist/client/hooks/use-action.mjs +63 -55
  105. package/dist/client/hooks/use-audit-history.mjs +1 -65
  106. package/dist/client/hooks/use-collection-validation.mjs +36 -23
  107. package/dist/client/hooks/use-collection.mjs +96 -1
  108. package/dist/client/hooks/use-saved-views.mjs +70 -49
  109. package/dist/client/hooks/use-server-actions.mjs +70 -46
  110. package/dist/client/hooks/use-server-validation.mjs +156 -41
  111. package/dist/client/hooks/use-server-widget-data.mjs +1 -1
  112. package/dist/client/hooks/use-setup-status.d.mts +3 -3
  113. package/dist/client/hooks/use-setup-status.mjs +2 -2
  114. package/dist/client/hooks/use-transition-stage.mjs +2 -10
  115. package/dist/client/hooks/use-validation-error-map.mjs +31 -13
  116. package/dist/client/hooks/use-view-state.mjs +238 -174
  117. package/dist/client/i18n/date-locale.mjs +33 -0
  118. package/dist/client/i18n/hooks.mjs +17 -1
  119. package/dist/client/lib/utils.mjs +3 -2
  120. package/dist/client/preview/block-scope-context.d.mts +2 -2
  121. package/dist/client/preview/preview-banner.d.mts +2 -2
  122. package/dist/client/preview/preview-banner.mjs +75 -46
  123. package/dist/client/preview/preview-field.d.mts +4 -4
  124. package/dist/client/preview/preview-field.mjs +2 -2
  125. package/dist/client/runtime/provider.mjs +8 -1
  126. package/dist/client/runtime/translations-provider.mjs +1 -1
  127. package/dist/client/scope/picker.d.mts +2 -2
  128. package/dist/client/scope/provider.d.mts +2 -2
  129. package/dist/client/styles/base.css +1022 -0
  130. package/dist/client/styles/index.css +3 -589
  131. package/dist/client/utils/auto-expand-fields.mjs +4 -2
  132. package/dist/client/utils/keyboard-shortcuts.mjs +26 -0
  133. package/dist/client/utils/use-lazy-component.mjs +80 -0
  134. package/dist/client/views/auth/accept-invite-form.d.mts +2 -2
  135. package/dist/client/views/auth/auth-layout.d.mts +17 -10
  136. package/dist/client/views/auth/auth-layout.mjs +291 -80
  137. package/dist/client/views/auth/forgot-password-form.d.mts +2 -2
  138. package/dist/client/views/auth/forgot-password-form.mjs +2 -2
  139. package/dist/client/views/auth/login-form.d.mts +2 -2
  140. package/dist/client/views/auth/login-form.mjs +1 -1
  141. package/dist/client/views/auth/reset-password-form.d.mts +2 -2
  142. package/dist/client/views/auth/reset-password-form.mjs +2 -2
  143. package/dist/client/views/auth/setup-form.d.mts +2 -2
  144. package/dist/client/views/collection/auto-form-fields.mjs +11 -9
  145. package/dist/client/views/collection/bulk-action-toolbar.mjs +173 -138
  146. package/dist/client/views/collection/cells/complex-cells.mjs +22 -22
  147. package/dist/client/views/collection/cells/primitive-cells.mjs +1 -1
  148. package/dist/client/views/collection/cells/relation-cells.mjs +147 -129
  149. package/dist/client/views/collection/cells/shared/asset-thumbnail.mjs +224 -278
  150. package/dist/client/views/collection/cells/shared/relation-chip.mjs +64 -36
  151. package/dist/client/views/collection/cells/upload-cells.mjs +199 -9
  152. package/dist/client/views/collection/columns/build-columns.mjs +29 -9
  153. package/dist/client/views/collection/columns/column-defaults.mjs +2 -2
  154. package/dist/client/views/collection/field-renderer.mjs +50 -89
  155. package/dist/client/views/collection/form-view.mjs +237 -227
  156. package/dist/client/views/collection/table-view.mjs +1167 -234
  157. package/dist/client/views/collection/view-skeletons.mjs +222 -79
  158. package/dist/client/views/common/global-search.mjs +29 -18
  159. package/dist/client/views/dashboard/dashboard-grid.mjs +678 -501
  160. package/dist/client/views/dashboard/dashboard-widget.mjs +6 -3
  161. package/dist/client/views/dashboard/widget-card.mjs +23 -14
  162. package/dist/client/views/globals/global-form-view.mjs +634 -589
  163. package/dist/client/views/layout/admin-layout-provider.mjs +67 -70
  164. package/dist/client/views/layout/admin-layout.d.mts +3 -6
  165. package/dist/client/views/layout/admin-layout.mjs +152 -155
  166. package/dist/client/views/layout/admin-router.mjs +936 -616
  167. package/dist/client/views/layout/admin-sidebar.d.mts +38 -1
  168. package/dist/client/views/layout/admin-sidebar.mjs +762 -592
  169. package/dist/client/views/layout/admin-theme.d.mts +10 -0
  170. package/dist/client/views/layout/admin-theme.mjs +84 -0
  171. package/dist/client/views/layout/admin-view-layout.mjs +161 -0
  172. package/dist/client/views/pages/accept-invite-page.d.mts +2 -2
  173. package/dist/client/views/pages/accept-invite-page.mjs +49 -26
  174. package/dist/client/views/pages/dashboard-page.d.mts +2 -2
  175. package/dist/client/views/pages/forgot-password-page.d.mts +2 -2
  176. package/dist/client/views/pages/forgot-password-page.mjs +2 -19
  177. package/dist/client/views/pages/invite-page.d.mts +2 -2
  178. package/dist/client/views/pages/invite-page.mjs +2 -19
  179. package/dist/client/views/pages/login-page.d.mts +3 -3
  180. package/dist/client/views/pages/login-page.mjs +4 -21
  181. package/dist/client/views/pages/reset-password-page.d.mts +2 -2
  182. package/dist/client/views/pages/reset-password-page.mjs +3 -20
  183. package/dist/client/views/pages/setup-page.d.mts +2 -2
  184. package/dist/client/views/pages/setup-page.mjs +70 -71
  185. package/dist/client.d.mts +6 -2
  186. package/dist/client.mjs +2 -1
  187. package/dist/components/rich-text/rich-text-renderer.d.mts +2 -2
  188. package/dist/index.d.mts +6 -2
  189. package/dist/index.mjs +2 -1
  190. package/dist/server/augmentation/dashboard.d.mts +67 -3
  191. package/dist/server/augmentation/form-layout.d.mts +21 -0
  192. package/dist/server/augmentation/index.d.mts +1 -1
  193. package/dist/server/codegen/admin-client-template.mjs +4 -0
  194. package/dist/server/fields/blocks.d.mts +1 -1
  195. package/dist/server/fields/blocks.mjs +12 -0
  196. package/dist/server/fields/rich-text.d.mts +1 -1
  197. package/dist/server/fields/rich-text.mjs +8 -0
  198. package/dist/server/i18n/index.mjs +29 -7
  199. package/dist/server/i18n/messages/cs.mjs +414 -1
  200. package/dist/server/i18n/messages/de.mjs +412 -1
  201. package/dist/server/i18n/messages/en.mjs +166 -1
  202. package/dist/server/i18n/messages/es.mjs +412 -1
  203. package/dist/server/i18n/messages/fr.mjs +412 -1
  204. package/dist/server/i18n/messages/pl.mjs +416 -1
  205. package/dist/server/i18n/messages/pt.mjs +409 -1
  206. package/dist/server/i18n/messages/sk.mjs +216 -2
  207. package/dist/server/modules/admin/block/introspection.mjs +4 -1
  208. package/dist/server/modules/admin/block/prefetch.mjs +12 -2
  209. package/dist/server/modules/admin/collections/account.d.mts +2 -2
  210. package/dist/server/modules/admin/collections/admin-locks.d.mts +2 -2
  211. package/dist/server/modules/admin/collections/admin-preferences.d.mts +39 -39
  212. package/dist/server/modules/admin/collections/admin-saved-views.d.mts +47 -47
  213. package/dist/server/modules/admin/collections/apikey.d.mts +42 -42
  214. package/dist/server/modules/admin/collections/assets.d.mts +20 -20
  215. package/dist/server/modules/admin/collections/assets.mjs +0 -1
  216. package/dist/server/modules/admin/collections/session.d.mts +42 -42
  217. package/dist/server/modules/admin/collections/user.d.mts +40 -28
  218. package/dist/server/modules/admin/collections/user.mjs +40 -9
  219. package/dist/server/modules/admin/collections/verification.d.mts +36 -36
  220. package/dist/server/modules/admin/dto/admin-config.dto.mjs +2 -0
  221. package/dist/server/modules/admin/factories.mjs +7 -18
  222. package/dist/server/modules/admin/index.d.mts +1 -1
  223. package/dist/server/modules/admin/routes/admin-config.d.mts +2 -2
  224. package/dist/server/modules/admin/routes/admin-config.mjs +34 -16
  225. package/dist/server/modules/admin/routes/execute-action.d.mts +9 -9
  226. package/dist/server/modules/admin/routes/execute-action.mjs +67 -28
  227. package/dist/server/modules/admin/routes/i18n-helpers.mjs +34 -0
  228. package/dist/server/modules/admin/routes/locales.d.mts +2 -2
  229. package/dist/server/modules/admin/routes/preview.mjs +25 -17
  230. package/dist/server/modules/admin/routes/reactive.d.mts +9 -9
  231. package/dist/server/modules/admin/routes/route-helpers.mjs +1 -1
  232. package/dist/server/modules/admin/routes/setup.d.mts +10 -10
  233. package/dist/server/modules/admin/routes/setup.mjs +16 -13
  234. package/dist/server/modules/admin/routes/translations.d.mts +4 -4
  235. package/dist/server/modules/admin/routes/translations.mjs +5 -1
  236. package/dist/server/modules/admin-preferences/collections/admin-preferences.mjs +1 -1
  237. package/dist/server/modules/admin-preferences/collections/saved-views.d.mts +2 -2
  238. package/dist/server/modules/audit/.generated/module.d.mts +1 -1
  239. package/dist/server/modules/audit/.generated/module.mjs +1 -1
  240. package/dist/server/modules/audit/collections/audit-log.d.mts +2 -2
  241. package/dist/server/modules/audit/collections/audit-log.mjs +1 -1
  242. package/dist/server/modules/audit/config/app.mjs +99 -42
  243. package/dist/server/modules/audit/jobs/audit-cleanup.mjs +1 -1
  244. package/dist/server/plugin.mjs +4 -2
  245. package/dist/server/proxy-factories.d.mts +4 -3
  246. package/dist/server/proxy-factories.mjs +34 -8
  247. package/dist/shared/types/saved-views.types.d.mts +2 -0
  248. package/package.json +6 -4
  249. package/dist/client/components/fields/rich-text-editor/link-popover.mjs +0 -85
  250. package/dist/client/components/ui/spinner.mjs +0 -52
  251. package/dist/client/components/ui/toolbar.mjs +0 -136
  252. package/dist/client/contexts/breadcrumb-context.mjs +0 -60
  253. package/dist/client/views/layout/admin-topbar.mjs +0 -236
@@ -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(141);
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,37 +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) => {
224
+ e?.preventDefault();
213
225
  e?.stopPropagation();
214
226
  onChange(resolvedValue.filter((v_0) => v_0 !== removedValue));
215
227
  };
216
- $[41] = onChange;
217
- $[42] = resolvedValue;
218
- $[43] = t21;
219
- } else t21 = $[43];
220
- const handleRemove = t21;
221
- let t22;
222
- if ($[44] !== onChange) {
223
- 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) => {
236
+ e_0.preventDefault();
224
237
  e_0.stopPropagation();
225
238
  onChange([]);
226
239
  };
227
- $[44] = onChange;
228
- $[45] = t22;
229
- } else t22 = $[45];
230
- const handleClearAll = t22;
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) => {
247
+ if (resolvedValue.length > 0 && !disabled && (event.key === "Backspace" || event.key === "Delete")) handleClearAll(event);
248
+ };
249
+ $[48] = disabled;
250
+ $[49] = handleClearAll;
251
+ $[50] = resolvedValue.length;
252
+ $[51] = t24;
253
+ } else t24 = $[51];
254
+ const handleTriggerKeyDown = t24;
231
255
  const showLoading = isFetching || externalLoading;
232
256
  const canAddMore = !maxSelections || resolvedValue.length < maxSelections;
233
- let t23;
234
- let t24;
235
257
  let t25;
236
258
  let t26;
237
259
  let t27;
@@ -239,38 +261,42 @@ function SelectMulti(t0) {
239
261
  let t29;
240
262
  let t30;
241
263
  let t31;
242
- if ($[46] !== ariaInvalid || $[47] !== className || $[48] !== disabled || $[49] !== getLabel || $[50] !== handleRemove || $[51] !== id || $[52] !== maxVisibleChips || $[53] !== open || $[54] !== resolvedPlaceholder || $[55] !== resolvedValue) {
264
+ let t32;
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) {
243
267
  const visibleChips = resolvedValue.slice(0, maxVisibleChips);
244
268
  const hiddenCount = resolvedValue.length - maxVisibleChips;
245
- t23 = id;
246
- t24 = "combobox";
247
- t25 = "select-multi-list";
248
- t26 = "listbox";
249
- t27 = open;
250
- t28 = ariaInvalid;
251
- t29 = 0;
252
- const t32$1 = disabled && "cursor-not-allowed opacity-50";
253
- const t33$1 = ariaInvalid && "border-destructive ring-destructive/20";
254
- if ($[65] !== className || $[66] !== t32$1 || $[67] !== t33$1) {
255
- t30 = cn("qa-select-multi border-input bg-transparent font-mono flex min-h-9 w-full flex-wrap items-center gap-1 border px-3 py-1.5 text-sm transition-colors", "focus-within:ring-ring focus-within:border-ring focus-within:ring-2", t32$1, t33$1, className);
256
- $[65] = className;
257
- $[66] = t32$1;
258
- $[67] = t33$1;
259
- $[68] = t30;
260
- } else t30 = $[68];
261
- t31 = 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", {
262
286
  className: "text-muted-foreground text-xs",
263
287
  children: resolvedPlaceholder
264
288
  }) : /* @__PURE__ */ jsxs(Fragment, { children: [visibleChips.map((val_0) => /* @__PURE__ */ jsxs(Badge, {
265
289
  variant: "secondary",
266
- className: "gap-1 pr-1",
290
+ className: "min-h-7 gap-1 pr-1",
267
291
  children: [/* @__PURE__ */ jsx("span", {
268
292
  className: "max-w-24 truncate",
269
293
  children: getLabel(val_0)
270
- }), !disabled && /* @__PURE__ */ jsx("button", {
271
- type: "button",
272
- onClick: (e_1) => handleRemove(val_0, e_1),
273
- className: "hover:bg-muted-foreground/20 rounded-full p-0.5",
294
+ }), !disabled && /* @__PURE__ */ jsx("span", {
295
+ "aria-hidden": "true",
296
+ title: t("field.removeItem", "Remove option"),
297
+ onPointerDown: (e_1) => handleRemove(val_0, e_1),
298
+ onClick: (e_2) => handleRemove(val_0, e_2),
299
+ className: "hover:bg-muted-foreground/20 inline-flex size-5 items-center justify-center rounded-full transition-colors",
274
300
  children: /* @__PURE__ */ jsx(Icon, {
275
301
  icon: "ph:x",
276
302
  className: "size-2.5"
@@ -285,129 +311,140 @@ function SelectMulti(t0) {
285
311
  " more"
286
312
  ]
287
313
  })] });
288
- $[46] = ariaInvalid;
289
- $[47] = className;
290
- $[48] = disabled;
291
- $[49] = getLabel;
292
- $[50] = handleRemove;
293
- $[51] = id;
294
- $[52] = maxVisibleChips;
295
- $[53] = open;
296
- $[54] = resolvedPlaceholder;
297
- $[55] = resolvedValue;
298
- $[56] = t23;
299
- $[57] = t24;
300
- $[58] = t25;
301
- $[59] = t26;
302
- $[60] = t27;
303
- $[61] = t28;
304
- $[62] = t29;
305
- $[63] = t30;
306
- $[64] = t31;
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;
307
334
  } else {
308
- t23 = $[56];
309
- t24 = $[57];
310
- t25 = $[58];
311
- t26 = $[59];
312
- t27 = $[60];
313
- t28 = $[61];
314
- t29 = $[62];
315
- t30 = $[63];
316
- t31 = $[64];
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];
317
344
  }
318
- let t32;
319
- if ($[69] !== disabled || $[70] !== handleClearAll || $[71] !== resolvedValue.length) {
320
- t32 = resolvedValue.length > 0 && !disabled && /* @__PURE__ */ jsx("button", {
321
- type: "button",
345
+ let t34;
346
+ if ($[76] !== disabled || $[77] !== handleClearAll || $[78] !== resolvedValue.length || $[79] !== t) {
347
+ t34 = resolvedValue.length > 0 && !disabled && /* @__PURE__ */ jsx("span", {
348
+ "aria-hidden": "true",
349
+ title: t("common.clear", "Clear all"),
350
+ onPointerDown: handleClearAll,
322
351
  onClick: handleClearAll,
323
- className: "hover:bg-muted p-0.5 opacity-50 hover:opacity-100",
352
+ className: "hover:bg-muted inline-flex size-6 items-center justify-center rounded-md opacity-60 transition-[background-color,opacity] hover:opacity-100",
324
353
  children: /* @__PURE__ */ jsx(Icon, {
325
354
  icon: "ph:x",
326
355
  className: "size-3"
327
356
  })
328
357
  });
329
- $[69] = disabled;
330
- $[70] = handleClearAll;
331
- $[71] = resolvedValue.length;
332
- $[72] = t32;
333
- } else t32 = $[72];
334
- let t33;
335
- if ($[73] === Symbol.for("react.memo_cache_sentinel")) {
336
- t33 = /* @__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, {
337
367
  icon: "ph:plus",
338
368
  className: "size-3.5 opacity-50"
339
369
  });
340
- $[73] = t33;
341
- } else t33 = $[73];
342
- let t34;
343
- if ($[74] !== t32) {
344
- t34 = /* @__PURE__ */ jsxs("div", {
370
+ $[81] = t35;
371
+ } else t35 = $[81];
372
+ let t36;
373
+ if ($[82] !== t34) {
374
+ t36 = /* @__PURE__ */ jsxs("div", {
345
375
  className: "ml-auto flex shrink-0 items-center gap-1",
346
- children: [t32, t33]
347
- });
348
- $[74] = t32;
349
- $[75] = t34;
350
- } else t34 = $[75];
351
- let t35;
352
- if ($[76] !== t23 || $[77] !== t24 || $[78] !== t25 || $[79] !== t26 || $[80] !== t27 || $[81] !== t28 || $[82] !== t29 || $[83] !== t30 || $[84] !== t31 || $[85] !== t34) {
353
- t35 = /* @__PURE__ */ jsxs("div", {
354
- id: t23,
355
- role: t24,
356
- "aria-controls": t25,
357
- "aria-haspopup": t26,
358
- "aria-expanded": t27,
359
- "aria-invalid": t28,
360
- tabIndex: t29,
361
- className: t30,
362
- children: [t31, t34]
376
+ children: [t34, t35]
363
377
  });
364
- $[76] = t23;
365
- $[77] = t24;
366
- $[78] = t25;
367
- $[79] = t26;
368
- $[80] = t27;
369
- $[81] = t28;
370
- $[82] = t29;
371
- $[83] = t30;
372
- $[84] = t31;
373
- $[85] = t34;
374
- $[86] = t35;
375
- } else t35 = $[86];
376
- const TriggerContent = t35;
377
- const t36 = !loadOptions;
378
+ $[82] = t34;
379
+ $[83] = t36;
380
+ } else t36 = $[83];
378
381
  let t37;
379
- if ($[87] !== search) {
380
- t37 = /* @__PURE__ */ jsx(CommandInput, {
381
- placeholder: "Search...",
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]
393
+ });
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,
382
418
  value: search,
383
419
  onValueChange: setSearch
384
420
  });
385
- $[87] = search;
386
- $[88] = t37;
387
- } else t37 = $[88];
388
- let t38;
389
- if ($[89] !== showLoading) {
390
- t38 = 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", {
391
428
  className: "flex items-center justify-center py-6",
392
429
  children: /* @__PURE__ */ jsx(Icon, {
393
430
  icon: "ph:circle-notch",
394
431
  className: "text-muted-foreground size-4 animate-spin"
395
432
  })
396
433
  });
397
- $[89] = showLoading;
398
- $[90] = t38;
399
- } else t38 = $[90];
400
- let t39;
401
- if ($[91] !== resolvedEmptyMessage) {
402
- t39 = /* @__PURE__ */ jsx(CommandEmpty, { children: resolvedEmptyMessage });
403
- $[91] = resolvedEmptyMessage;
404
- $[92] = t39;
405
- } else t39 = $[92];
406
- let t40;
407
- if ($[93] !== canAddMore || $[94] !== filteredOptions || $[95] !== handleToggle || $[96] !== resolveText || $[97] !== resolvedValue) {
408
- let t41$1;
409
- if ($[99] !== canAddMore || $[100] !== handleToggle || $[101] !== resolveText || $[102] !== resolvedValue) {
410
- t41$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) => {
411
448
  const isSelected_0 = resolvedValue.includes(option_0.value);
412
449
  const isDisabled = option_0.disabled || !isSelected_0 && !canAddMore;
413
450
  return /* @__PURE__ */ jsxs(CommandItem, {
@@ -416,7 +453,7 @@ function SelectMulti(t0) {
416
453
  disabled: isDisabled,
417
454
  children: [
418
455
  /* @__PURE__ */ jsx("div", {
419
- className: cn("flex size-4 items-center justify-center border", isSelected_0 ? "bg-primary border-primary text-primary-foreground" : "border-muted-foreground/30"),
456
+ className: cn("flex size-4 items-center justify-center border", isSelected_0 ? "border-foreground bg-foreground text-background" : "border-muted-foreground/30"),
420
457
  children: isSelected_0 && /* @__PURE__ */ jsx(Icon, {
421
458
  icon: "ph:check",
422
459
  className: "size-3"
@@ -430,42 +467,42 @@ function SelectMulti(t0) {
430
467
  ]
431
468
  }, String(option_0.value));
432
469
  };
433
- $[99] = canAddMore;
434
- $[100] = handleToggle;
435
- $[101] = resolveText;
436
- $[102] = resolvedValue;
437
- $[103] = t41$1;
438
- } else t41$1 = $[103];
439
- t40 = filteredOptions.map(t41$1);
440
- $[93] = canAddMore;
441
- $[94] = filteredOptions;
442
- $[95] = handleToggle;
443
- $[96] = resolveText;
444
- $[97] = resolvedValue;
445
- $[98] = t40;
446
- } else t40 = $[98];
447
- let t41;
448
- if ($[104] !== t40) {
449
- t41 = /* @__PURE__ */ jsx(CommandGroup, { children: t40 });
450
- $[104] = t40;
451
- $[105] = t41;
452
- } else t41 = $[105];
453
- let t42;
454
- if ($[106] !== t38 || $[107] !== t39 || $[108] !== t41) {
455
- t42 = /* @__PURE__ */ jsxs(CommandList, { children: [
456
- t38,
457
- t39,
458
- t41
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];
490
+ let t45;
491
+ if ($[117] !== t41 || $[118] !== t42 || $[119] !== t44) {
492
+ t45 = /* @__PURE__ */ jsxs(CommandList, { children: [
493
+ t41,
494
+ t42,
495
+ t44
459
496
  ] });
460
- $[106] = t38;
461
- $[107] = t39;
462
- $[108] = t41;
463
- $[109] = t42;
464
- } else t42 = $[109];
465
- let t43;
466
- if ($[110] !== maxSelections || $[111] !== resolvedValue.length) {
467
- t43 = maxSelections && /* @__PURE__ */ jsxs("div", {
468
- className: "text-muted-foreground border-t p-2 text-center text-xs",
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", {
505
+ className: "text-muted-foreground border-t p-2 text-center text-xs tabular-nums",
469
506
  children: [
470
507
  resolvedValue.length,
471
508
  " / ",
@@ -473,114 +510,118 @@ function SelectMulti(t0) {
473
510
  " selected"
474
511
  ]
475
512
  });
476
- $[110] = maxSelections;
477
- $[111] = resolvedValue.length;
478
- $[112] = t43;
479
- } else t43 = $[112];
480
- let t44;
481
- if ($[113] !== t36 || $[114] !== t37 || $[115] !== t42 || $[116] !== t43) {
482
- t44 = /* @__PURE__ */ jsxs(Command, {
483
- shouldFilter: t36,
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,
484
521
  children: [
485
- t37,
486
- t42,
487
- t43
522
+ t40,
523
+ t45,
524
+ t46
488
525
  ]
489
526
  });
490
- $[113] = t36;
491
- $[114] = t37;
492
- $[115] = t42;
493
- $[116] = t43;
494
- $[117] = t44;
495
- } else t44 = $[117];
496
- const CommandContent = t44;
527
+ $[124] = t38;
528
+ $[125] = t40;
529
+ $[126] = t45;
530
+ $[127] = t46;
531
+ $[128] = t47;
532
+ } else t47 = $[128];
533
+ const CommandContent = t47;
497
534
  if (isMobile) {
498
- let t45$1;
499
- if ($[118] !== TriggerContent || $[119] !== disabled) {
500
- t45$1 = /* @__PURE__ */ jsx(DrawerTrigger, {
535
+ let t48$1;
536
+ if ($[129] !== TriggerContent || $[130] !== disabled || $[131] !== handleTriggerKeyDown) {
537
+ t48$1 = /* @__PURE__ */ jsx(DrawerTrigger, {
501
538
  asChild: true,
502
539
  children: /* @__PURE__ */ jsx("button", {
503
540
  type: "button",
504
541
  disabled,
542
+ onKeyDown: handleTriggerKeyDown,
505
543
  className: "w-full text-left",
506
544
  children: TriggerContent
507
545
  })
508
546
  });
509
- $[118] = TriggerContent;
510
- $[119] = disabled;
511
- $[120] = t45$1;
512
- } else t45$1 = $[120];
513
- let t46$1;
514
- if ($[121] !== resolvedDrawerTitle) {
515
- t46$1 = /* @__PURE__ */ jsx(DrawerHeader, { children: /* @__PURE__ */ jsx(DrawerTitle, { children: resolvedDrawerTitle }) });
516
- $[121] = resolvedDrawerTitle;
517
- $[122] = t46$1;
518
- } else t46$1 = $[122];
519
- let t47$1;
520
- if ($[123] !== CommandContent) {
521
- t47$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", {
522
561
  className: "px-4 pb-6",
523
562
  children: CommandContent
524
563
  });
525
- $[123] = CommandContent;
526
- $[124] = t47$1;
527
- } else t47$1 = $[124];
528
- let t48;
529
- if ($[125] !== t46$1 || $[126] !== t47$1) {
530
- t48 = /* @__PURE__ */ jsxs(DrawerContent, { children: [t46$1, t47$1] });
531
- $[125] = t46$1;
532
- $[126] = t47$1;
533
- $[127] = t48;
534
- } else t48 = $[127];
535
- let t49;
536
- if ($[128] !== open || $[129] !== t45$1 || $[130] !== t48) {
537
- t49 = /* @__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, {
538
577
  open,
539
578
  onOpenChange: setOpen,
540
- children: [t45$1, t48]
579
+ children: [t48$1, t51]
541
580
  });
542
- $[128] = open;
543
- $[129] = t45$1;
544
- $[130] = t48;
545
- $[131] = t49;
546
- } else t49 = $[131];
547
- return t49;
581
+ $[140] = open;
582
+ $[141] = t48$1;
583
+ $[142] = t51;
584
+ $[143] = t52;
585
+ } else t52 = $[143];
586
+ return t52;
548
587
  }
549
- let t45;
550
- if ($[132] !== TriggerContent || $[133] !== disabled) {
551
- t45 = /* @__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", {
552
591
  type: "button",
553
592
  disabled,
593
+ onKeyDown: handleTriggerKeyDown,
554
594
  className: "w-full text-left",
555
595
  children: TriggerContent
556
596
  }) });
557
- $[132] = TriggerContent;
558
- $[133] = disabled;
559
- $[134] = t45;
560
- } else t45 = $[134];
561
- let t46;
562
- if ($[135] !== CommandContent) {
563
- t46 = /* @__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, {
564
605
  className: "w-(--anchor-width) p-0",
565
606
  align: "start",
566
607
  children: CommandContent
567
608
  });
568
- $[135] = CommandContent;
569
- $[136] = t46;
570
- } else t46 = $[136];
571
- let t47;
572
- if ($[137] !== open || $[138] !== t45 || $[139] !== t46) {
573
- t47 = /* @__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, {
574
615
  open,
575
616
  onOpenChange: setOpen,
576
- children: [t45, t46]
617
+ children: [t48, t49]
577
618
  });
578
- $[137] = open;
579
- $[138] = t45;
580
- $[139] = t46;
581
- $[140] = t47;
582
- } else t47 = $[140];
583
- return t47;
619
+ $[150] = open;
620
+ $[151] = t48;
621
+ $[152] = t49;
622
+ $[153] = t50;
623
+ } else t50 = $[153];
624
+ return t50;
584
625
  }
585
626
  function _temp(map, opt) {
586
627
  return new Map(map).set(opt.value, opt);