@questpie/admin 3.0.3 → 3.0.4

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 (249) 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-fields-renderer.mjs +64 -28
  16. package/dist/client/components/blocks/block-insert-button.mjs +4 -4
  17. package/dist/client/components/blocks/block-item.mjs +2 -2
  18. package/dist/client/components/blocks/block-library-sidebar.mjs +2 -2
  19. package/dist/client/components/component-renderer.mjs +1 -1
  20. package/dist/client/components/fields/array-field.mjs +14 -14
  21. package/dist/client/components/fields/asset-preview-field.mjs +1 -1
  22. package/dist/client/components/fields/blocks-field/blocks-field.mjs +84 -104
  23. package/dist/client/components/fields/json-field.mjs +2 -2
  24. package/dist/client/components/fields/object-array-field.mjs +22 -22
  25. package/dist/client/components/fields/object-field.mjs +5 -5
  26. package/dist/client/components/fields/relation/displays/cards-display.mjs +16 -9
  27. package/dist/client/components/fields/relation/displays/chips-display.mjs +15 -12
  28. package/dist/client/components/fields/relation/displays/grid-display.mjs +15 -11
  29. package/dist/client/components/fields/relation/displays/list-display.mjs +33 -20
  30. package/dist/client/components/fields/relation/displays/table-display.mjs +62 -93
  31. package/dist/client/components/fields/relation/relation-items-display.mjs +1 -1
  32. package/dist/client/components/fields/relation-picker.mjs +7 -6
  33. package/dist/client/components/fields/relation-select.mjs +71 -47
  34. package/dist/client/components/fields/rich-text-editor/bubble-menu.mjs +392 -82
  35. package/dist/client/components/fields/rich-text-editor/extensions.mjs +54 -23
  36. package/dist/client/components/fields/rich-text-editor/image-popover.mjs +24 -50
  37. package/dist/client/components/fields/rich-text-editor/image-upload.mjs +66 -0
  38. package/dist/client/components/fields/rich-text-editor/index.d.mts +38 -0
  39. package/dist/client/components/fields/rich-text-editor/index.mjs +637 -376
  40. package/dist/client/components/fields/rich-text-editor/link-utils.mjs +26 -0
  41. package/dist/client/components/fields/rich-text-editor/presets.d.mts +10 -0
  42. package/dist/client/components/fields/rich-text-editor/slash-commands.mjs +27 -6
  43. package/dist/client/components/fields/rich-text-editor/toolbar.mjs +464 -346
  44. package/dist/client/components/fields/rich-text-editor/types.d.mts +77 -0
  45. package/dist/client/components/fields/upload-field.mjs +45 -49
  46. package/dist/client/components/filter-builder/columns-tab.mjs +69 -62
  47. package/dist/client/components/filter-builder/filter-builder-sheet.mjs +473 -308
  48. package/dist/client/components/filter-builder/filters-tab.mjs +109 -82
  49. package/dist/client/components/filter-builder/saved-views-tab.mjs +300 -198
  50. package/dist/client/components/history-sidebar.mjs +850 -340
  51. package/dist/client/components/layout/field-layout-renderer.mjs +6 -5
  52. package/dist/client/components/locale-switcher.mjs +8 -8
  53. package/dist/client/components/media/media-grid.mjs +12 -9
  54. package/dist/client/components/media/media-picker-dialog.mjs +242 -230
  55. package/dist/client/components/preview/live-preview-mode.mjs +1 -1
  56. package/dist/client/components/primitives/asset-preview.mjs +37 -22
  57. package/dist/client/components/primitives/date-input.mjs +212 -249
  58. package/dist/client/components/primitives/dropzone.mjs +192 -159
  59. package/dist/client/components/primitives/field-select-control.mjs +93 -0
  60. package/dist/client/components/primitives/select-multi.mjs +251 -230
  61. package/dist/client/components/primitives/select-single.mjs +345 -290
  62. package/dist/client/components/primitives/time-input.mjs +2 -2
  63. package/dist/client/components/sheets/resource-sheet.mjs +2 -0
  64. package/dist/client/components/ui/accordion.mjs +4 -4
  65. package/dist/client/components/ui/alert.mjs +3 -3
  66. package/dist/client/components/ui/badge.mjs +4 -4
  67. package/dist/client/components/ui/button.mjs +47 -37
  68. package/dist/client/components/ui/card.mjs +2 -2
  69. package/dist/client/components/ui/checkbox.mjs +1 -1
  70. package/dist/client/components/ui/command.mjs +5 -5
  71. package/dist/client/components/ui/dialog.mjs +3 -3
  72. package/dist/client/components/ui/drawer.mjs +1 -1
  73. package/dist/client/components/ui/dropdown-menu.mjs +157 -15
  74. package/dist/client/components/ui/empty-state.mjs +88 -59
  75. package/dist/client/components/ui/field.mjs +2 -2
  76. package/dist/client/components/ui/input-group.mjs +3 -3
  77. package/dist/client/components/ui/input.mjs +1 -1
  78. package/dist/client/components/ui/kbd.mjs +1 -1
  79. package/dist/client/components/ui/label.mjs +1 -1
  80. package/dist/client/components/ui/popover.mjs +19 -11
  81. package/dist/client/components/ui/scroll-fade.mjs +170 -0
  82. package/dist/client/components/ui/search-input.mjs +1 -1
  83. package/dist/client/components/ui/select.mjs +129 -27
  84. package/dist/client/components/ui/sheet.mjs +54 -34
  85. package/dist/client/components/ui/sidebar.mjs +15 -14
  86. package/dist/client/components/ui/skeleton.mjs +28 -12
  87. package/dist/client/components/ui/switch.mjs +2 -2
  88. package/dist/client/components/ui/table.mjs +82 -74
  89. package/dist/client/components/ui/tabs.mjs +26 -31
  90. package/dist/client/components/ui/textarea.mjs +1 -1
  91. package/dist/client/components/ui/tooltip.mjs +1 -1
  92. package/dist/client/components/widgets/chart-widget.mjs +134 -96
  93. package/dist/client/components/widgets/progress-widget.mjs +59 -34
  94. package/dist/client/components/widgets/quick-actions-widget.mjs +184 -113
  95. package/dist/client/components/widgets/recent-items-widget.mjs +144 -102
  96. package/dist/client/components/widgets/stats-widget.mjs +91 -72
  97. package/dist/client/components/widgets/table-widget.mjs +159 -246
  98. package/dist/client/components/widgets/timeline-widget.mjs +66 -43
  99. package/dist/client/components/widgets/value-widget.mjs +261 -152
  100. package/dist/client/components/widgets/widget-empty-state.mjs +88 -0
  101. package/dist/client/components/widgets/widget-skeletons.mjs +53 -20
  102. package/dist/client/contexts/focus-context.d.mts +2 -2
  103. package/dist/client/hooks/use-action.mjs +63 -55
  104. package/dist/client/hooks/use-audit-history.mjs +1 -65
  105. package/dist/client/hooks/use-collection-validation.mjs +36 -23
  106. package/dist/client/hooks/use-collection.mjs +96 -1
  107. package/dist/client/hooks/use-saved-views.mjs +70 -49
  108. package/dist/client/hooks/use-server-actions.mjs +59 -40
  109. package/dist/client/hooks/use-server-validation.mjs +156 -41
  110. package/dist/client/hooks/use-server-widget-data.mjs +1 -1
  111. package/dist/client/hooks/use-setup-status.d.mts +3 -3
  112. package/dist/client/hooks/use-setup-status.mjs +2 -2
  113. package/dist/client/hooks/use-transition-stage.mjs +2 -10
  114. package/dist/client/hooks/use-validation-error-map.mjs +31 -13
  115. package/dist/client/hooks/use-view-state.mjs +238 -174
  116. package/dist/client/i18n/date-locale.mjs +33 -0
  117. package/dist/client/i18n/hooks.mjs +17 -1
  118. package/dist/client/lib/utils.mjs +3 -2
  119. package/dist/client/preview/block-scope-context.d.mts +2 -2
  120. package/dist/client/preview/preview-banner.d.mts +2 -2
  121. package/dist/client/preview/preview-field.d.mts +4 -4
  122. package/dist/client/preview/preview-field.mjs +2 -2
  123. package/dist/client/runtime/provider.mjs +8 -1
  124. package/dist/client/runtime/translations-provider.mjs +1 -1
  125. package/dist/client/scope/picker.d.mts +2 -2
  126. package/dist/client/scope/provider.d.mts +2 -2
  127. package/dist/client/styles/base.css +1022 -0
  128. package/dist/client/styles/index.css +3 -589
  129. package/dist/client/utils/auto-expand-fields.mjs +4 -2
  130. package/dist/client/utils/keyboard-shortcuts.mjs +26 -0
  131. package/dist/client/utils/use-lazy-component.mjs +80 -0
  132. package/dist/client/views/auth/auth-layout.d.mts +18 -11
  133. package/dist/client/views/auth/auth-layout.mjs +291 -80
  134. package/dist/client/views/auth/forgot-password-form.d.mts +2 -2
  135. package/dist/client/views/auth/forgot-password-form.mjs +2 -2
  136. package/dist/client/views/auth/login-form.d.mts +2 -2
  137. package/dist/client/views/auth/login-form.mjs +1 -1
  138. package/dist/client/views/auth/reset-password-form.d.mts +2 -2
  139. package/dist/client/views/auth/reset-password-form.mjs +2 -2
  140. package/dist/client/views/auth/setup-form.d.mts +2 -2
  141. package/dist/client/views/collection/auto-form-fields.mjs +11 -9
  142. package/dist/client/views/collection/bulk-action-toolbar.mjs +173 -138
  143. package/dist/client/views/collection/cells/complex-cells.mjs +22 -22
  144. package/dist/client/views/collection/cells/primitive-cells.mjs +1 -1
  145. package/dist/client/views/collection/cells/relation-cells.mjs +147 -129
  146. package/dist/client/views/collection/cells/shared/asset-thumbnail.mjs +224 -278
  147. package/dist/client/views/collection/cells/shared/relation-chip.mjs +64 -36
  148. package/dist/client/views/collection/cells/upload-cells.mjs +199 -9
  149. package/dist/client/views/collection/columns/build-columns.mjs +29 -9
  150. package/dist/client/views/collection/columns/column-defaults.mjs +2 -2
  151. package/dist/client/views/collection/field-renderer.mjs +50 -89
  152. package/dist/client/views/collection/form-view.mjs +237 -227
  153. package/dist/client/views/collection/table-view.mjs +1162 -229
  154. package/dist/client/views/collection/view-skeletons.mjs +222 -79
  155. package/dist/client/views/common/global-search.mjs +29 -18
  156. package/dist/client/views/dashboard/dashboard-grid.mjs +678 -501
  157. package/dist/client/views/dashboard/dashboard-widget.mjs +6 -3
  158. package/dist/client/views/dashboard/widget-card.mjs +23 -14
  159. package/dist/client/views/globals/global-form-view.mjs +634 -589
  160. package/dist/client/views/layout/admin-layout-provider.mjs +67 -70
  161. package/dist/client/views/layout/admin-layout.d.mts +3 -6
  162. package/dist/client/views/layout/admin-layout.mjs +149 -172
  163. package/dist/client/views/layout/admin-router.mjs +747 -544
  164. package/dist/client/views/layout/admin-sidebar.d.mts +38 -1
  165. package/dist/client/views/layout/admin-sidebar.mjs +751 -591
  166. package/dist/client/views/layout/admin-theme.d.mts +10 -0
  167. package/dist/client/views/layout/admin-theme.mjs +84 -0
  168. package/dist/client/views/layout/admin-view-layout.mjs +161 -0
  169. package/dist/client/views/pages/accept-invite-page.d.mts +2 -2
  170. package/dist/client/views/pages/accept-invite-page.mjs +49 -26
  171. package/dist/client/views/pages/dashboard-page.d.mts +2 -2
  172. package/dist/client/views/pages/forgot-password-page.d.mts +2 -2
  173. package/dist/client/views/pages/forgot-password-page.mjs +2 -19
  174. package/dist/client/views/pages/invite-page.d.mts +2 -2
  175. package/dist/client/views/pages/invite-page.mjs +2 -19
  176. package/dist/client/views/pages/login-page.d.mts +1 -1
  177. package/dist/client/views/pages/login-page.mjs +4 -21
  178. package/dist/client/views/pages/reset-password-page.d.mts +2 -2
  179. package/dist/client/views/pages/reset-password-page.mjs +3 -20
  180. package/dist/client/views/pages/setup-page.d.mts +2 -2
  181. package/dist/client/views/pages/setup-page.mjs +3 -20
  182. package/dist/client.d.mts +6 -2
  183. package/dist/client.mjs +2 -1
  184. package/dist/components/rich-text/rich-text-renderer.d.mts +2 -2
  185. package/dist/index.d.mts +6 -2
  186. package/dist/index.mjs +2 -1
  187. package/dist/server/augmentation/dashboard.d.mts +67 -3
  188. package/dist/server/augmentation/form-layout.d.mts +21 -0
  189. package/dist/server/augmentation/index.d.mts +1 -1
  190. package/dist/server/codegen/admin-client-template.mjs +4 -0
  191. package/dist/server/fields/blocks.d.mts +1 -1
  192. package/dist/server/fields/blocks.mjs +12 -0
  193. package/dist/server/fields/rich-text.d.mts +1 -1
  194. package/dist/server/fields/rich-text.mjs +8 -0
  195. package/dist/server/i18n/index.mjs +17 -1
  196. package/dist/server/i18n/messages/cs.mjs +23 -0
  197. package/dist/server/i18n/messages/de.mjs +23 -0
  198. package/dist/server/i18n/messages/en.mjs +64 -1
  199. package/dist/server/i18n/messages/es.mjs +23 -0
  200. package/dist/server/i18n/messages/fr.mjs +23 -0
  201. package/dist/server/i18n/messages/pl.mjs +23 -0
  202. package/dist/server/i18n/messages/pt.mjs +23 -0
  203. package/dist/server/i18n/messages/sk.mjs +83 -1
  204. package/dist/server/modules/admin/block/introspection.mjs +4 -1
  205. package/dist/server/modules/admin/block/prefetch.mjs +12 -2
  206. package/dist/server/modules/admin/collections/account.d.mts +50 -50
  207. package/dist/server/modules/admin/collections/admin-locks.d.mts +54 -54
  208. package/dist/server/modules/admin/collections/admin-preferences.d.mts +39 -39
  209. package/dist/server/modules/admin/collections/admin-saved-views.d.mts +47 -47
  210. package/dist/server/modules/admin/collections/apikey.d.mts +68 -68
  211. package/dist/server/modules/admin/collections/assets.d.mts +20 -20
  212. package/dist/server/modules/admin/collections/assets.mjs +0 -1
  213. package/dist/server/modules/admin/collections/session.d.mts +42 -42
  214. package/dist/server/modules/admin/collections/user.d.mts +12 -0
  215. package/dist/server/modules/admin/collections/user.mjs +40 -9
  216. package/dist/server/modules/admin/collections/verification.d.mts +2 -2
  217. package/dist/server/modules/admin/dto/admin-config.dto.mjs +2 -0
  218. package/dist/server/modules/admin/factories.mjs +7 -18
  219. package/dist/server/modules/admin/index.d.mts +1 -1
  220. package/dist/server/modules/admin/routes/admin-config.d.mts +2 -2
  221. package/dist/server/modules/admin/routes/admin-config.mjs +34 -16
  222. package/dist/server/modules/admin/routes/execute-action.d.mts +9 -9
  223. package/dist/server/modules/admin/routes/execute-action.mjs +33 -0
  224. package/dist/server/modules/admin/routes/locales.d.mts +2 -2
  225. package/dist/server/modules/admin/routes/preview.d.mts +11 -11
  226. package/dist/server/modules/admin/routes/reactive.d.mts +9 -9
  227. package/dist/server/modules/admin/routes/setup.d.mts +10 -10
  228. package/dist/server/modules/admin/routes/setup.mjs +7 -7
  229. package/dist/server/modules/admin/routes/translations.d.mts +4 -4
  230. package/dist/server/modules/admin/routes/translations.mjs +5 -1
  231. package/dist/server/modules/admin/routes/widget-data.d.mts +5 -5
  232. package/dist/server/modules/admin-preferences/collections/admin-preferences.mjs +1 -1
  233. package/dist/server/modules/admin-preferences/collections/saved-views.d.mts +27 -27
  234. package/dist/server/modules/audit/.generated/module.d.mts +1 -1
  235. package/dist/server/modules/audit/.generated/module.mjs +1 -1
  236. package/dist/server/modules/audit/collections/audit-log.d.mts +2 -2
  237. package/dist/server/modules/audit/collections/audit-log.mjs +1 -1
  238. package/dist/server/modules/audit/config/app.mjs +99 -42
  239. package/dist/server/modules/audit/jobs/audit-cleanup.mjs +1 -1
  240. package/dist/server/plugin.mjs +4 -2
  241. package/dist/server/proxy-factories.d.mts +4 -3
  242. package/dist/server/proxy-factories.mjs +34 -8
  243. package/dist/shared/types/saved-views.types.d.mts +2 -0
  244. package/package.json +6 -4
  245. package/dist/client/components/fields/rich-text-editor/link-popover.mjs +0 -85
  246. package/dist/client/components/ui/spinner.mjs +0 -52
  247. package/dist/client/components/ui/toolbar.mjs +0 -136
  248. package/dist/client/contexts/breadcrumb-context.mjs +0 -60
  249. package/dist/client/views/layout/admin-topbar.mjs +0 -236
@@ -3,14 +3,17 @@ import { Button } from "../ui/button.mjs";
3
3
  import { Sheet, SheetContent, SheetFooter, SheetHeader, SheetTitle } from "../ui/sheet.mjs";
4
4
  import { Tabs, TabsContent, TabsList, TabsTrigger } from "../ui/tabs.mjs";
5
5
  import { Switch } from "../ui/switch.mjs";
6
+ import { SelectSingle } from "../primitives/select-single.mjs";
6
7
  import { ColumnsTab } from "./columns-tab.mjs";
7
8
  import { FiltersTab } from "./filters-tab.mjs";
8
9
  import { SavedViewsTab } from "./saved-views-tab.mjs";
9
10
  import { c } from "react/compiler-runtime";
11
+ import { Icon } from "@iconify/react";
10
12
  import { useState } from "react";
11
13
  import { jsx, jsxs } from "react/jsx-runtime";
12
14
 
13
15
  //#region src/client/components/filter-builder/filter-builder-sheet.tsx
16
+ const NO_GROUPING_VALUE = "__none";
14
17
  function arraysEqual(a, b, eq) {
15
18
  return a.length === b.length && a.every((v, i) => eq(v, b[i]));
16
19
  }
@@ -28,28 +31,103 @@ function sortConfigEqual(a, b) {
28
31
  return a.field === b.field && a.direction === b.direction;
29
32
  }
30
33
  function viewConfigEqual(a, b) {
31
- return filtersEqual(a.filters, b.filters) && sortConfigEqual(a.sortConfig, b.sortConfig) && arraysEqual(a.visibleColumns, b.visibleColumns, (x, y) => x === y) && a.realtime === b.realtime && a.includeDeleted === b.includeDeleted;
34
+ return filtersEqual(a.filters, b.filters) && sortConfigEqual(a.sortConfig, b.sortConfig) && arraysEqual(a.visibleColumns, b.visibleColumns, (x, y) => x === y) && a.groupBy === b.groupBy && arraysEqual(a.collapsedGroups ?? [], b.collapsedGroups ?? [], (x, y) => x === y) && a.realtime === b.realtime && a.includeDeleted === b.includeDeleted;
32
35
  }
33
36
  const EMPTY_SAVED_VIEWS = [];
37
+ function normalizeSavedViewConfig(config) {
38
+ return {
39
+ filters: config.filters ?? [],
40
+ sortConfig: config.sortConfig ?? null,
41
+ visibleColumns: config.visibleColumns ?? [],
42
+ groupBy: config.groupBy ?? null,
43
+ collapsedGroups: [],
44
+ realtime: config.realtime,
45
+ includeDeleted: config.includeDeleted ?? false,
46
+ pagination: {
47
+ page: 1,
48
+ pageSize: config.pagination?.pageSize ?? 25
49
+ }
50
+ };
51
+ }
52
+ function ViewOptionRow(t0) {
53
+ const $ = c(12);
54
+ const { title, description, control } = t0;
55
+ let t1;
56
+ if ($[0] !== title) {
57
+ t1 = /* @__PURE__ */ jsx("p", {
58
+ className: "text-sm font-medium",
59
+ children: title
60
+ });
61
+ $[0] = title;
62
+ $[1] = t1;
63
+ } else t1 = $[1];
64
+ let t2;
65
+ if ($[2] !== description) {
66
+ t2 = /* @__PURE__ */ jsx("p", {
67
+ className: "text-muted-foreground mt-0.5 text-xs text-pretty",
68
+ children: description
69
+ });
70
+ $[2] = description;
71
+ $[3] = t2;
72
+ } else t2 = $[3];
73
+ let t3;
74
+ if ($[4] !== t1 || $[5] !== t2) {
75
+ t3 = /* @__PURE__ */ jsxs("div", {
76
+ className: "min-w-0",
77
+ children: [t1, t2]
78
+ });
79
+ $[4] = t1;
80
+ $[5] = t2;
81
+ $[6] = t3;
82
+ } else t3 = $[6];
83
+ let t4;
84
+ if ($[7] !== control) {
85
+ t4 = /* @__PURE__ */ jsx("div", {
86
+ className: "shrink-0",
87
+ children: control
88
+ });
89
+ $[7] = control;
90
+ $[8] = t4;
91
+ } else t4 = $[8];
92
+ let t5;
93
+ if ($[9] !== t3 || $[10] !== t4) {
94
+ t5 = /* @__PURE__ */ jsxs("div", {
95
+ className: "border-border-subtle flex items-center justify-between gap-4 border-b py-3 last:border-b-0",
96
+ children: [t3, t4]
97
+ });
98
+ $[9] = t3;
99
+ $[10] = t4;
100
+ $[11] = t5;
101
+ } else t5 = $[11];
102
+ return t5;
103
+ }
34
104
  function FilterBuilderSheet(t0) {
35
- const $ = c(100);
36
- const { collection, availableFields, currentConfig, onConfigChange, isOpen, onOpenChange, defaultColumns, savedViews, savedViewsLoading: t1, onSaveView, onDeleteView, supportsSoftDelete: t2 } = t0;
105
+ const $ = c(126);
106
+ const { collection, availableFields, currentConfig, onConfigChange, isOpen, onOpenChange, defaultColumns, savedViews, savedViewsLoading: t1, onSaveView, onDeleteView, supportsSoftDelete: t2, groupableFields: t3, defaultGroupBy: t4 } = t0;
37
107
  const savedViewsLoading = t1 === void 0 ? false : t1;
38
108
  const supportsSoftDelete = t2 === void 0 ? false : t2;
109
+ let t5;
110
+ if ($[0] !== t3) {
111
+ t5 = t3 === void 0 ? [] : t3;
112
+ $[0] = t3;
113
+ $[1] = t5;
114
+ } else t5 = $[1];
115
+ const groupableFields = t5;
116
+ const defaultGroupBy = t4 === void 0 ? null : t4;
39
117
  const resolvedSavedViews = savedViews ?? EMPTY_SAVED_VIEWS;
40
118
  const { t } = useTranslation();
41
119
  const [localConfig, setLocalConfig] = useState(currentConfig);
42
- let t3;
43
- if ($[0] !== currentConfig || $[1] !== isOpen) {
44
- t3 = {
120
+ let t6;
121
+ if ($[2] !== currentConfig || $[3] !== isOpen) {
122
+ t6 = {
45
123
  isOpen,
46
124
  currentConfig
47
125
  };
48
- $[0] = currentConfig;
49
- $[1] = isOpen;
50
- $[2] = t3;
51
- } else t3 = $[2];
52
- const [prev, setPrev] = useState(t3);
126
+ $[2] = currentConfig;
127
+ $[3] = isOpen;
128
+ $[4] = t6;
129
+ } else t6 = $[4];
130
+ const [prev, setPrev] = useState(t6);
53
131
  if (prev.isOpen !== isOpen || prev.currentConfig !== currentConfig) {
54
132
  setPrev({
55
133
  isOpen,
@@ -57,264 +135,346 @@ function FilterBuilderSheet(t0) {
57
135
  });
58
136
  if (isOpen) setLocalConfig(currentConfig);
59
137
  }
60
- let t4;
61
- if ($[3] === Symbol.for("react.memo_cache_sentinel")) {
62
- t4 = (view) => {
63
- setLocalConfig(view.configuration);
138
+ let t7;
139
+ if ($[5] === Symbol.for("react.memo_cache_sentinel")) {
140
+ t7 = (view) => {
141
+ setLocalConfig(normalizeSavedViewConfig(view.configuration));
64
142
  };
65
- $[3] = t4;
66
- } else t4 = $[3];
67
- const handleLoadView = t4;
68
- let t5;
69
- if ($[4] !== localConfig || $[5] !== onSaveView) {
70
- t5 = (name) => {
71
- onSaveView?.(name, localConfig);
143
+ $[5] = t7;
144
+ } else t7 = $[5];
145
+ const handleLoadView = t7;
146
+ let t8;
147
+ if ($[6] !== localConfig || $[7] !== onSaveView) {
148
+ t8 = (name) => {
149
+ onSaveView?.(name, normalizeSavedViewConfig(localConfig));
72
150
  };
73
- $[4] = localConfig;
74
- $[5] = onSaveView;
75
- $[6] = t5;
76
- } else t5 = $[6];
77
- const handleSaveView = t5;
78
- let t6;
79
- if ($[7] !== localConfig || $[8] !== onConfigChange || $[9] !== onOpenChange) {
80
- t6 = () => {
151
+ $[6] = localConfig;
152
+ $[7] = onSaveView;
153
+ $[8] = t8;
154
+ } else t8 = $[8];
155
+ const handleSaveView = t8;
156
+ let t9;
157
+ if ($[9] !== localConfig || $[10] !== onConfigChange || $[11] !== onOpenChange) {
158
+ t9 = () => {
81
159
  onConfigChange(localConfig);
82
160
  onOpenChange(false);
83
161
  };
84
- $[7] = localConfig;
85
- $[8] = onConfigChange;
86
- $[9] = onOpenChange;
87
- $[10] = t6;
88
- } else t6 = $[10];
89
- const handleApply = t6;
90
- let t7;
91
- if ($[11] !== availableFields || $[12] !== defaultColumns) {
92
- t7 = () => {
162
+ $[9] = localConfig;
163
+ $[10] = onConfigChange;
164
+ $[11] = onOpenChange;
165
+ $[12] = t9;
166
+ } else t9 = $[12];
167
+ const handleApply = t9;
168
+ let t10;
169
+ if ($[13] !== availableFields || $[14] !== defaultColumns || $[15] !== defaultGroupBy) {
170
+ t10 = () => {
93
171
  setLocalConfig({
94
172
  filters: [],
95
173
  sortConfig: null,
96
174
  visibleColumns: defaultColumns ?? availableFields.map(_temp),
175
+ groupBy: defaultGroupBy,
176
+ collapsedGroups: [],
97
177
  realtime: void 0,
98
178
  includeDeleted: false
99
179
  });
100
180
  };
101
- $[11] = availableFields;
102
- $[12] = defaultColumns;
103
- $[13] = t7;
104
- } else t7 = $[13];
105
- const handleReset = t7;
106
- let t8;
107
- if ($[14] !== currentConfig || $[15] !== localConfig) {
108
- t8 = viewConfigEqual(localConfig, currentConfig);
109
- $[14] = currentConfig;
110
- $[15] = localConfig;
111
- $[16] = t8;
112
- } else t8 = $[16];
113
- const hasChanges = !t8;
114
- let t9;
115
- if ($[17] !== t) {
116
- t9 = t("viewOptions.title");
117
- $[17] = t;
118
- $[18] = t9;
119
- } else t9 = $[18];
120
- let t10;
121
- if ($[19] !== t9) {
122
- t10 = /* @__PURE__ */ jsx(SheetHeader, {
123
- className: "px-6 pt-6",
124
- children: /* @__PURE__ */ jsx(SheetTitle, { children: t9 })
125
- });
126
- $[19] = t9;
127
- $[20] = t10;
128
- } else t10 = $[20];
181
+ $[13] = availableFields;
182
+ $[14] = defaultColumns;
183
+ $[15] = defaultGroupBy;
184
+ $[16] = t10;
185
+ } else t10 = $[16];
186
+ const handleReset = t10;
129
187
  let t11;
130
- if ($[21] === Symbol.for("react.memo_cache_sentinel")) {
131
- t11 = /* @__PURE__ */ jsxs("div", { children: [/* @__PURE__ */ jsx("p", {
132
- className: "text-sm font-medium",
133
- children: "Realtime Updates"
134
- }), /* @__PURE__ */ jsx("p", {
135
- className: "text-muted-foreground text-xs",
136
- children: "Auto-refresh this table when data changes."
137
- })] });
138
- $[21] = t11;
139
- } else t11 = $[21];
140
- const t12 = localConfig.realtime ?? true;
188
+ if ($[17] !== currentConfig || $[18] !== localConfig) {
189
+ t11 = viewConfigEqual(localConfig, currentConfig);
190
+ $[17] = currentConfig;
191
+ $[18] = localConfig;
192
+ $[19] = t11;
193
+ } else t11 = $[19];
194
+ const hasChanges = !t11;
195
+ let t12;
196
+ if ($[20] !== t) {
197
+ t12 = t("viewOptions.noGrouping");
198
+ $[20] = t;
199
+ $[21] = t12;
200
+ } else t12 = $[21];
141
201
  let t13;
142
- if ($[22] !== localConfig) {
143
- t13 = (checked) => setLocalConfig({
202
+ if ($[22] === Symbol.for("react.memo_cache_sentinel")) {
203
+ t13 = /* @__PURE__ */ jsx(Icon, {
204
+ icon: "ph:stack-simple",
205
+ className: "size-4 opacity-60"
206
+ });
207
+ $[22] = t13;
208
+ } else t13 = $[22];
209
+ let t14;
210
+ if ($[23] !== t12) {
211
+ t14 = {
212
+ value: NO_GROUPING_VALUE,
213
+ label: t12,
214
+ icon: t13
215
+ };
216
+ $[23] = t12;
217
+ $[24] = t14;
218
+ } else t14 = $[24];
219
+ let t15;
220
+ if ($[25] !== groupableFields || $[26] !== t14) {
221
+ t15 = [t14, ...groupableFields.map(_temp2)];
222
+ $[25] = groupableFields;
223
+ $[26] = t14;
224
+ $[27] = t15;
225
+ } else t15 = $[27];
226
+ const groupByOptions = t15;
227
+ let t16;
228
+ if ($[28] !== t) {
229
+ t16 = t("viewOptions.title");
230
+ $[28] = t;
231
+ $[29] = t16;
232
+ } else t16 = $[29];
233
+ let t17;
234
+ if ($[30] !== t16) {
235
+ t17 = /* @__PURE__ */ jsx(SheetHeader, {
236
+ className: "px-6 pt-6",
237
+ children: /* @__PURE__ */ jsx(SheetTitle, { children: t16 })
238
+ });
239
+ $[30] = t16;
240
+ $[31] = t17;
241
+ } else t17 = $[31];
242
+ let t18;
243
+ if ($[32] !== t) {
244
+ t18 = t("viewOptions.realtime");
245
+ $[32] = t;
246
+ $[33] = t18;
247
+ } else t18 = $[33];
248
+ let t19;
249
+ if ($[34] !== t) {
250
+ t19 = t("viewOptions.realtimeDescription");
251
+ $[34] = t;
252
+ $[35] = t19;
253
+ } else t19 = $[35];
254
+ const t20 = localConfig.realtime ?? true;
255
+ let t21;
256
+ if ($[36] !== localConfig) {
257
+ t21 = (checked) => setLocalConfig({
144
258
  ...localConfig,
145
259
  realtime: checked
146
260
  });
147
- $[22] = localConfig;
148
- $[23] = t13;
149
- } else t13 = $[23];
150
- let t14;
151
- if ($[24] !== t12 || $[25] !== t13) {
152
- t14 = /* @__PURE__ */ jsx("div", {
153
- className: "border-border bg-muted mt-4 border px-3 py-2",
154
- children: /* @__PURE__ */ jsxs("div", {
155
- className: "flex items-center justify-between gap-3",
156
- children: [t11, /* @__PURE__ */ jsx(Switch, {
157
- checked: t12,
158
- onCheckedChange: t13
159
- })]
261
+ $[36] = localConfig;
262
+ $[37] = t21;
263
+ } else t21 = $[37];
264
+ let t22;
265
+ if ($[38] !== t20 || $[39] !== t21) {
266
+ t22 = /* @__PURE__ */ jsx(Switch, {
267
+ checked: t20,
268
+ onCheckedChange: t21
269
+ });
270
+ $[38] = t20;
271
+ $[39] = t21;
272
+ $[40] = t22;
273
+ } else t22 = $[40];
274
+ let t23;
275
+ if ($[41] !== t18 || $[42] !== t19 || $[43] !== t22) {
276
+ t23 = /* @__PURE__ */ jsx(ViewOptionRow, {
277
+ title: t18,
278
+ description: t19,
279
+ control: t22
280
+ });
281
+ $[41] = t18;
282
+ $[42] = t19;
283
+ $[43] = t22;
284
+ $[44] = t23;
285
+ } else t23 = $[44];
286
+ let t24;
287
+ if ($[45] !== localConfig || $[46] !== supportsSoftDelete || $[47] !== t) {
288
+ t24 = supportsSoftDelete && /* @__PURE__ */ jsx(ViewOptionRow, {
289
+ title: t("viewOptions.showDeleted"),
290
+ description: t("viewOptions.showDeletedDescription"),
291
+ control: /* @__PURE__ */ jsx(Switch, {
292
+ checked: localConfig.includeDeleted ?? false,
293
+ onCheckedChange: (checked_0) => setLocalConfig({
294
+ ...localConfig,
295
+ includeDeleted: checked_0
296
+ })
160
297
  })
161
298
  });
162
- $[24] = t12;
163
- $[25] = t13;
164
- $[26] = t14;
165
- } else t14 = $[26];
166
- let t15;
167
- if ($[27] !== localConfig || $[28] !== supportsSoftDelete || $[29] !== t) {
168
- t15 = supportsSoftDelete && /* @__PURE__ */ jsx("div", {
169
- className: "border-border bg-muted mt-3 border px-3 py-2",
170
- children: /* @__PURE__ */ jsxs("div", {
171
- className: "flex items-center justify-between gap-3",
172
- children: [/* @__PURE__ */ jsxs("div", { children: [/* @__PURE__ */ jsx("p", {
173
- className: "text-sm font-medium",
174
- children: t("viewOptions.showDeleted")
175
- }), /* @__PURE__ */ jsx("p", {
176
- className: "text-muted-foreground text-xs",
177
- children: t("viewOptions.showDeletedDescription")
178
- })] }), /* @__PURE__ */ jsx(Switch, {
179
- checked: localConfig.includeDeleted ?? false,
180
- onCheckedChange: (checked_0) => setLocalConfig({
299
+ $[45] = localConfig;
300
+ $[46] = supportsSoftDelete;
301
+ $[47] = t;
302
+ $[48] = t24;
303
+ } else t24 = $[48];
304
+ let t25;
305
+ if ($[49] !== groupByOptions || $[50] !== groupableFields.length || $[51] !== localConfig || $[52] !== t) {
306
+ t25 = groupableFields.length > 0 && /* @__PURE__ */ jsx(ViewOptionRow, {
307
+ title: t("viewOptions.groupBy"),
308
+ description: t("viewOptions.groupByDescription"),
309
+ control: /* @__PURE__ */ jsx(SelectSingle, {
310
+ id: "view-options-group-by",
311
+ value: localConfig.groupBy ?? NO_GROUPING_VALUE,
312
+ onChange: (value) => {
313
+ const nextGroupBy = !value || value === NO_GROUPING_VALUE ? null : value;
314
+ setLocalConfig({
181
315
  ...localConfig,
182
- includeDeleted: checked_0
183
- })
184
- })]
316
+ groupBy: nextGroupBy,
317
+ collapsedGroups: [],
318
+ pagination: {
319
+ ...localConfig.pagination ?? { pageSize: 25 },
320
+ page: 1
321
+ }
322
+ });
323
+ },
324
+ options: groupByOptions,
325
+ clearable: false,
326
+ emptyMessage: t("viewOptions.noFieldsAvailable"),
327
+ placeholder: t("viewOptions.noGrouping"),
328
+ drawerTitle: t("viewOptions.groupBy"),
329
+ className: "h-9 w-48"
185
330
  })
186
331
  });
187
- $[27] = localConfig;
188
- $[28] = supportsSoftDelete;
189
- $[29] = t;
190
- $[30] = t15;
191
- } else t15 = $[30];
192
- let t16;
193
- if ($[31] !== t) {
194
- t16 = t("viewOptions.columns");
195
- $[31] = t;
196
- $[32] = t16;
197
- } else t16 = $[32];
198
- let t17;
199
- if ($[33] !== t16) {
200
- t17 = /* @__PURE__ */ jsx(TabsTrigger, {
332
+ $[49] = groupByOptions;
333
+ $[50] = groupableFields.length;
334
+ $[51] = localConfig;
335
+ $[52] = t;
336
+ $[53] = t25;
337
+ } else t25 = $[53];
338
+ let t26;
339
+ if ($[54] !== t23 || $[55] !== t24 || $[56] !== t25) {
340
+ t26 = /* @__PURE__ */ jsxs("div", {
341
+ className: "mt-4",
342
+ children: [
343
+ t23,
344
+ t24,
345
+ t25
346
+ ]
347
+ });
348
+ $[54] = t23;
349
+ $[55] = t24;
350
+ $[56] = t25;
351
+ $[57] = t26;
352
+ } else t26 = $[57];
353
+ let t27;
354
+ if ($[58] !== t) {
355
+ t27 = t("viewOptions.columns");
356
+ $[58] = t;
357
+ $[59] = t27;
358
+ } else t27 = $[59];
359
+ let t28;
360
+ if ($[60] !== t27) {
361
+ t28 = /* @__PURE__ */ jsx(TabsTrigger, {
201
362
  value: "columns",
202
363
  className: "flex-1",
203
- children: t16
364
+ children: t27
204
365
  });
205
- $[33] = t16;
206
- $[34] = t17;
207
- } else t17 = $[34];
208
- let t18;
209
- if ($[35] !== t) {
210
- t18 = t("viewOptions.filters");
211
- $[35] = t;
212
- $[36] = t18;
213
- } else t18 = $[36];
214
- let t19;
215
- if ($[37] !== localConfig.filters.length) {
216
- t19 = localConfig.filters.length > 0 && /* @__PURE__ */ jsx("span", {
217
- className: "bg-primary text-primary-foreground ml-1.5 rounded-full px-1.5 py-0.5 text-xs",
366
+ $[60] = t27;
367
+ $[61] = t28;
368
+ } else t28 = $[61];
369
+ let t29;
370
+ if ($[62] !== t) {
371
+ t29 = t("viewOptions.filters");
372
+ $[62] = t;
373
+ $[63] = t29;
374
+ } else t29 = $[63];
375
+ let t30;
376
+ if ($[64] !== localConfig.filters.length) {
377
+ t30 = localConfig.filters.length > 0 && /* @__PURE__ */ jsx("span", {
378
+ className: "bg-foreground text-background ml-1.5 rounded-full px-1.5 py-0.5 text-xs tabular-nums",
218
379
  children: localConfig.filters.length
219
380
  });
220
- $[37] = localConfig.filters.length;
221
- $[38] = t19;
222
- } else t19 = $[38];
223
- let t20;
224
- if ($[39] !== t18 || $[40] !== t19) {
225
- t20 = /* @__PURE__ */ jsxs(TabsTrigger, {
381
+ $[64] = localConfig.filters.length;
382
+ $[65] = t30;
383
+ } else t30 = $[65];
384
+ let t31;
385
+ if ($[66] !== t29 || $[67] !== t30) {
386
+ t31 = /* @__PURE__ */ jsxs(TabsTrigger, {
226
387
  value: "filters",
227
388
  className: "flex-1",
228
- children: [t18, t19]
389
+ children: [t29, t30]
229
390
  });
230
- $[39] = t18;
231
- $[40] = t19;
232
- $[41] = t20;
233
- } else t20 = $[41];
234
- let t21;
235
- if ($[42] !== t) {
236
- t21 = t("viewOptions.savedViews");
237
- $[42] = t;
238
- $[43] = t21;
239
- } else t21 = $[43];
240
- let t22;
241
- if ($[44] !== t21) {
242
- t22 = /* @__PURE__ */ jsx(TabsTrigger, {
391
+ $[66] = t29;
392
+ $[67] = t30;
393
+ $[68] = t31;
394
+ } else t31 = $[68];
395
+ let t32;
396
+ if ($[69] !== t) {
397
+ t32 = t("viewOptions.savedViews");
398
+ $[69] = t;
399
+ $[70] = t32;
400
+ } else t32 = $[70];
401
+ let t33;
402
+ if ($[71] !== t32) {
403
+ t33 = /* @__PURE__ */ jsx(TabsTrigger, {
243
404
  value: "views",
244
405
  className: "flex-1",
245
- children: t21
406
+ children: t32
246
407
  });
247
- $[44] = t21;
248
- $[45] = t22;
249
- } else t22 = $[45];
250
- let t23;
251
- if ($[46] !== t17 || $[47] !== t20 || $[48] !== t22) {
252
- t23 = /* @__PURE__ */ jsxs(TabsList, {
253
- variant: "line",
408
+ $[71] = t32;
409
+ $[72] = t33;
410
+ } else t33 = $[72];
411
+ let t34;
412
+ if ($[73] !== t28 || $[74] !== t31 || $[75] !== t33) {
413
+ t34 = /* @__PURE__ */ jsxs(TabsList, {
254
414
  className: "w-full",
255
415
  children: [
256
- t17,
257
- t20,
258
- t22
416
+ t28,
417
+ t31,
418
+ t33
259
419
  ]
260
420
  });
261
- $[46] = t17;
262
- $[47] = t20;
263
- $[48] = t22;
264
- $[49] = t23;
265
- } else t23 = $[49];
266
- let t24;
267
- if ($[50] !== localConfig) {
268
- t24 = (columns) => setLocalConfig({
421
+ $[73] = t28;
422
+ $[74] = t31;
423
+ $[75] = t33;
424
+ $[76] = t34;
425
+ } else t34 = $[76];
426
+ let t35;
427
+ if ($[77] !== localConfig) {
428
+ t35 = (columns) => setLocalConfig({
269
429
  ...localConfig,
270
430
  visibleColumns: columns
271
431
  });
272
- $[50] = localConfig;
273
- $[51] = t24;
274
- } else t24 = $[51];
275
- let t25;
276
- if ($[52] !== availableFields || $[53] !== localConfig.visibleColumns || $[54] !== t24) {
277
- t25 = /* @__PURE__ */ jsx(TabsContent, {
432
+ $[77] = localConfig;
433
+ $[78] = t35;
434
+ } else t35 = $[78];
435
+ let t36;
436
+ if ($[79] !== availableFields || $[80] !== localConfig.visibleColumns || $[81] !== t35) {
437
+ t36 = /* @__PURE__ */ jsx(TabsContent, {
278
438
  value: "columns",
279
439
  children: /* @__PURE__ */ jsx(ColumnsTab, {
280
440
  fields: availableFields,
281
441
  visibleColumns: localConfig.visibleColumns,
282
- onVisibleColumnsChange: t24
442
+ onVisibleColumnsChange: t35
283
443
  })
284
444
  });
285
- $[52] = availableFields;
286
- $[53] = localConfig.visibleColumns;
287
- $[54] = t24;
288
- $[55] = t25;
289
- } else t25 = $[55];
290
- let t26;
291
- if ($[56] !== localConfig) {
292
- t26 = (filters) => setLocalConfig({
445
+ $[79] = availableFields;
446
+ $[80] = localConfig.visibleColumns;
447
+ $[81] = t35;
448
+ $[82] = t36;
449
+ } else t36 = $[82];
450
+ let t37;
451
+ if ($[83] !== localConfig) {
452
+ t37 = (filters) => setLocalConfig({
293
453
  ...localConfig,
294
454
  filters
295
455
  });
296
- $[56] = localConfig;
297
- $[57] = t26;
298
- } else t26 = $[57];
299
- let t27;
300
- if ($[58] !== availableFields || $[59] !== localConfig.filters || $[60] !== t26) {
301
- t27 = /* @__PURE__ */ jsx(TabsContent, {
456
+ $[83] = localConfig;
457
+ $[84] = t37;
458
+ } else t37 = $[84];
459
+ let t38;
460
+ if ($[85] !== availableFields || $[86] !== localConfig.filters || $[87] !== t37) {
461
+ t38 = /* @__PURE__ */ jsx(TabsContent, {
302
462
  value: "filters",
303
463
  children: /* @__PURE__ */ jsx(FiltersTab, {
304
464
  fields: availableFields,
305
465
  filters: localConfig.filters,
306
- onFiltersChange: t26
466
+ onFiltersChange: t37
307
467
  })
308
468
  });
309
- $[58] = availableFields;
310
- $[59] = localConfig.filters;
311
- $[60] = t26;
312
- $[61] = t27;
313
- } else t27 = $[61];
314
- const t28 = onDeleteView || _temp2;
315
- let t29;
316
- if ($[62] !== collection || $[63] !== handleSaveView || $[64] !== localConfig || $[65] !== resolvedSavedViews || $[66] !== savedViewsLoading || $[67] !== t28) {
317
- t29 = /* @__PURE__ */ jsx(TabsContent, {
469
+ $[85] = availableFields;
470
+ $[86] = localConfig.filters;
471
+ $[87] = t37;
472
+ $[88] = t38;
473
+ } else t38 = $[88];
474
+ const t39 = onDeleteView || _temp3;
475
+ let t40;
476
+ if ($[89] !== collection || $[90] !== handleSaveView || $[91] !== localConfig || $[92] !== resolvedSavedViews || $[93] !== savedViewsLoading || $[94] !== t39) {
477
+ t40 = /* @__PURE__ */ jsx(TabsContent, {
318
478
  value: "views",
319
479
  children: /* @__PURE__ */ jsx(SavedViewsTab, {
320
480
  collection,
@@ -323,131 +483,136 @@ function FilterBuilderSheet(t0) {
323
483
  isLoading: savedViewsLoading,
324
484
  onLoadView: handleLoadView,
325
485
  onSaveView: handleSaveView,
326
- onDeleteView: t28
486
+ onDeleteView: t39
327
487
  })
328
488
  });
329
- $[62] = collection;
330
- $[63] = handleSaveView;
331
- $[64] = localConfig;
332
- $[65] = resolvedSavedViews;
333
- $[66] = savedViewsLoading;
334
- $[67] = t28;
335
- $[68] = t29;
336
- } else t29 = $[68];
337
- let t30;
338
- if ($[69] !== t23 || $[70] !== t25 || $[71] !== t27 || $[72] !== t29) {
339
- t30 = /* @__PURE__ */ jsxs(Tabs, {
489
+ $[89] = collection;
490
+ $[90] = handleSaveView;
491
+ $[91] = localConfig;
492
+ $[92] = resolvedSavedViews;
493
+ $[93] = savedViewsLoading;
494
+ $[94] = t39;
495
+ $[95] = t40;
496
+ } else t40 = $[95];
497
+ let t41;
498
+ if ($[96] !== t34 || $[97] !== t36 || $[98] !== t38 || $[99] !== t40) {
499
+ t41 = /* @__PURE__ */ jsxs(Tabs, {
340
500
  defaultValue: "columns",
341
501
  className: "mt-4",
342
502
  children: [
343
- t23,
344
- t25,
345
- t27,
346
- t29
503
+ t34,
504
+ t36,
505
+ t38,
506
+ t40
347
507
  ]
348
508
  });
349
- $[69] = t23;
350
- $[70] = t25;
351
- $[71] = t27;
352
- $[72] = t29;
353
- $[73] = t30;
354
- } else t30 = $[73];
355
- let t31;
356
- if ($[74] !== t14 || $[75] !== t15 || $[76] !== t30) {
357
- t31 = /* @__PURE__ */ jsxs("div", {
509
+ $[96] = t34;
510
+ $[97] = t36;
511
+ $[98] = t38;
512
+ $[99] = t40;
513
+ $[100] = t41;
514
+ } else t41 = $[100];
515
+ let t42;
516
+ if ($[101] !== t26 || $[102] !== t41) {
517
+ t42 = /* @__PURE__ */ jsxs("div", {
358
518
  className: "flex-1 overflow-y-auto px-6",
359
- children: [
360
- t14,
361
- t15,
362
- t30
363
- ]
519
+ children: [t26, t41]
364
520
  });
365
- $[74] = t14;
366
- $[75] = t15;
367
- $[76] = t30;
368
- $[77] = t31;
369
- } else t31 = $[77];
370
- let t32;
371
- if ($[78] !== t) {
372
- t32 = t("viewOptions.reset");
373
- $[78] = t;
374
- $[79] = t32;
375
- } else t32 = $[79];
376
- let t33;
377
- if ($[80] !== handleReset || $[81] !== t32) {
378
- t33 = /* @__PURE__ */ jsx(Button, {
521
+ $[101] = t26;
522
+ $[102] = t41;
523
+ $[103] = t42;
524
+ } else t42 = $[103];
525
+ let t43;
526
+ if ($[104] !== t) {
527
+ t43 = t("viewOptions.reset");
528
+ $[104] = t;
529
+ $[105] = t43;
530
+ } else t43 = $[105];
531
+ let t44;
532
+ if ($[106] !== handleReset || $[107] !== t43) {
533
+ t44 = /* @__PURE__ */ jsx(Button, {
379
534
  variant: "outline",
380
535
  onClick: handleReset,
381
536
  className: "flex-1",
382
- children: t32
537
+ children: t43
383
538
  });
384
- $[80] = handleReset;
385
- $[81] = t32;
386
- $[82] = t33;
387
- } else t33 = $[82];
388
- let t34;
389
- if ($[83] !== t) {
390
- t34 = t("viewOptions.apply");
391
- $[83] = t;
392
- $[84] = t34;
393
- } else t34 = $[84];
394
- const t35 = hasChanges && " *";
395
- let t36;
396
- if ($[85] !== handleApply || $[86] !== t34 || $[87] !== t35) {
397
- t36 = /* @__PURE__ */ jsxs(Button, {
539
+ $[106] = handleReset;
540
+ $[107] = t43;
541
+ $[108] = t44;
542
+ } else t44 = $[108];
543
+ let t45;
544
+ if ($[109] !== t) {
545
+ t45 = t("viewOptions.apply");
546
+ $[109] = t;
547
+ $[110] = t45;
548
+ } else t45 = $[110];
549
+ const t46 = hasChanges && " *";
550
+ let t47;
551
+ if ($[111] !== handleApply || $[112] !== t45 || $[113] !== t46) {
552
+ t47 = /* @__PURE__ */ jsxs(Button, {
398
553
  onClick: handleApply,
399
554
  className: "flex-1",
400
- children: [t34, t35]
555
+ children: [t45, t46]
401
556
  });
402
- $[85] = handleApply;
403
- $[86] = t34;
404
- $[87] = t35;
405
- $[88] = t36;
406
- } else t36 = $[88];
407
- let t37;
408
- if ($[89] !== t33 || $[90] !== t36) {
409
- t37 = /* @__PURE__ */ jsx(SheetFooter, {
557
+ $[111] = handleApply;
558
+ $[112] = t45;
559
+ $[113] = t46;
560
+ $[114] = t47;
561
+ } else t47 = $[114];
562
+ let t48;
563
+ if ($[115] !== t44 || $[116] !== t47) {
564
+ t48 = /* @__PURE__ */ jsx(SheetFooter, {
410
565
  className: "mt-4 border-t px-6 py-4",
411
566
  children: /* @__PURE__ */ jsxs("div", {
412
567
  className: "flex w-full gap-2",
413
- children: [t33, t36]
568
+ children: [t44, t47]
414
569
  })
415
570
  });
416
- $[89] = t33;
417
- $[90] = t36;
418
- $[91] = t37;
419
- } else t37 = $[91];
420
- let t38;
421
- if ($[92] !== t10 || $[93] !== t31 || $[94] !== t37) {
422
- t38 = /* @__PURE__ */ jsxs(SheetContent, {
571
+ $[115] = t44;
572
+ $[116] = t47;
573
+ $[117] = t48;
574
+ } else t48 = $[117];
575
+ let t49;
576
+ if ($[118] !== t17 || $[119] !== t42 || $[120] !== t48) {
577
+ t49 = /* @__PURE__ */ jsxs(SheetContent, {
423
578
  side: "right",
424
579
  className: "qa-filter-builder flex flex-col p-0 sm:max-w-md",
425
580
  children: [
426
- t10,
427
- t31,
428
- t37
581
+ t17,
582
+ t42,
583
+ t48
429
584
  ]
430
585
  });
431
- $[92] = t10;
432
- $[93] = t31;
433
- $[94] = t37;
434
- $[95] = t38;
435
- } else t38 = $[95];
436
- let t39;
437
- if ($[96] !== isOpen || $[97] !== onOpenChange || $[98] !== t38) {
438
- t39 = /* @__PURE__ */ jsx(Sheet, {
586
+ $[118] = t17;
587
+ $[119] = t42;
588
+ $[120] = t48;
589
+ $[121] = t49;
590
+ } else t49 = $[121];
591
+ let t50;
592
+ if ($[122] !== isOpen || $[123] !== onOpenChange || $[124] !== t49) {
593
+ t50 = /* @__PURE__ */ jsx(Sheet, {
439
594
  open: isOpen,
440
595
  onOpenChange,
441
- children: t38
596
+ children: t49
442
597
  });
443
- $[96] = isOpen;
444
- $[97] = onOpenChange;
445
- $[98] = t38;
446
- $[99] = t39;
447
- } else t39 = $[99];
448
- return t39;
598
+ $[122] = isOpen;
599
+ $[123] = onOpenChange;
600
+ $[124] = t49;
601
+ $[125] = t50;
602
+ } else t50 = $[125];
603
+ return t50;
604
+ }
605
+ function _temp3() {}
606
+ function _temp2(field) {
607
+ return {
608
+ value: field.name,
609
+ label: field.label,
610
+ icon: /* @__PURE__ */ jsx(Icon, {
611
+ icon: "ph:rows",
612
+ className: "size-4 opacity-60"
613
+ })
614
+ };
449
615
  }
450
- function _temp2() {}
451
616
  function _temp(f) {
452
617
  return f.name;
453
618
  }