@questpie/admin 3.0.2 → 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 +3 -3
  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 +64 -64
  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 +40 -28
  215. package/dist/server/modules/admin/collections/user.mjs +40 -9
  216. package/dist/server/modules/admin/collections/verification.d.mts +36 -36
  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 +25 -25
  234. package/dist/server/modules/audit/.generated/module.d.mts +7 -7
  235. package/dist/server/modules/audit/.generated/module.mjs +1 -1
  236. package/dist/server/modules/audit/collections/audit-log.d.mts +39 -39
  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
@@ -40,7 +40,7 @@ import { Fragment, jsx, jsxs } from "react/jsx-runtime";
40
40
  * ```
41
41
  */
42
42
  function BulkActionToolbar(t0) {
43
- const $ = c(80);
43
+ const $ = c(86);
44
44
  const { table, actions, collection, helpers, totalCount, pageCount, onOpenDialog, onSelectAllMatching, onBulkDelete, onBulkRestore, filterCount: t1, onClearFilters, onOpenFilters } = t0;
45
45
  const filterCount = t1 === void 0 ? 0 : t1;
46
46
  const { t } = useTranslation();
@@ -113,10 +113,32 @@ function BulkActionToolbar(t0) {
113
113
  const visibleActions = t6;
114
114
  const hasFilters = filterCount > 0;
115
115
  const hasSelection = selectedCount > 0;
116
- if (!hasSelection && !hasFilters) return null;
116
+ const isVisible = hasSelection || hasFilters;
117
+ const [shouldRender, setShouldRender] = React.useState(isVisible);
117
118
  let t7;
118
- if ($[17] !== ctx || $[18] !== helpers || $[19] !== onBulkDelete || $[20] !== onBulkRestore || $[21] !== onOpenDialog || $[22] !== selectedItems || $[23] !== t || $[24] !== table) {
119
- t7 = async (action_0) => {
119
+ let t8;
120
+ if ($[17] !== isVisible) {
121
+ t7 = () => {
122
+ if (isVisible) {
123
+ setShouldRender(true);
124
+ return;
125
+ }
126
+ const timeout = window.setTimeout(() => setShouldRender(false), 180);
127
+ return () => window.clearTimeout(timeout);
128
+ };
129
+ t8 = [isVisible];
130
+ $[17] = isVisible;
131
+ $[18] = t7;
132
+ $[19] = t8;
133
+ } else {
134
+ t7 = $[18];
135
+ t8 = $[19];
136
+ }
137
+ React.useEffect(t7, t8);
138
+ if (!shouldRender) return null;
139
+ let t9;
140
+ if ($[20] !== ctx || $[21] !== helpers || $[22] !== onBulkDelete || $[23] !== onBulkRestore || $[24] !== onOpenDialog || $[25] !== selectedItems || $[26] !== t || $[27] !== table) {
141
+ t9 = async (action_0) => {
120
142
  const { handler } = action_0;
121
143
  if (action_0.id === "deleteMany" && onBulkDelete) {
122
144
  setIsLoading(true);
@@ -125,7 +147,7 @@ function BulkActionToolbar(t0) {
125
147
  await onBulkDelete(ids);
126
148
  table.resetRowSelection();
127
149
  setIsLoading(false);
128
- } catch (t8$1) {
150
+ } catch (t10$1) {
129
151
  helpers.toast.error(t("collection.bulkDeleteError"));
130
152
  setIsLoading(false);
131
153
  }
@@ -138,13 +160,13 @@ function BulkActionToolbar(t0) {
138
160
  await onBulkRestore(ids_0);
139
161
  table.resetRowSelection();
140
162
  setIsLoading(false);
141
- } catch (t9$1) {
163
+ } catch (t11$1) {
142
164
  helpers.toast.error(t("collection.bulkRestoreError"));
143
165
  setIsLoading(false);
144
166
  }
145
167
  return;
146
168
  }
147
- bb87: switch (handler.type) {
169
+ bb96: switch (handler.type) {
148
170
  case "api": {
149
171
  setIsLoading(true);
150
172
  const ids_1 = selectedItems.map(_temp4).filter(Boolean);
@@ -154,11 +176,11 @@ function BulkActionToolbar(t0) {
154
176
  helpers.refresh();
155
177
  table.resetRowSelection();
156
178
  setIsLoading(false);
157
- } catch (t10$1) {
179
+ } catch (t12$1) {
158
180
  helpers.toast.error(t("collection.bulkActionFailed"));
159
181
  setIsLoading(false);
160
182
  }
161
- break bb87;
183
+ break bb96;
162
184
  }
163
185
  case "custom":
164
186
  setIsLoading(true);
@@ -166,95 +188,97 @@ function BulkActionToolbar(t0) {
166
188
  await handler.fn(ctx);
167
189
  table.resetRowSelection();
168
190
  setIsLoading(false);
169
- } catch (t11$1) {
191
+ } catch (t13$1) {
170
192
  helpers.toast.error(t("collection.bulkActionFailed"));
171
193
  setIsLoading(false);
172
194
  }
173
- break bb87;
195
+ break bb96;
174
196
  case "dialog":
175
197
  case "form":
176
198
  onOpenDialog?.(action_0, selectedItems);
177
- break bb87;
199
+ break bb96;
178
200
  case "navigate":
179
201
  helpers.toast.error("Navigate action not supported for bulk operations");
180
- break bb87;
202
+ break bb96;
181
203
  case "server": onOpenDialog?.(action_0, selectedItems);
182
204
  }
183
205
  };
184
- $[17] = ctx;
185
- $[18] = helpers;
186
- $[19] = onBulkDelete;
187
- $[20] = onBulkRestore;
188
- $[21] = onOpenDialog;
189
- $[22] = selectedItems;
190
- $[23] = t;
191
- $[24] = table;
192
- $[25] = t7;
193
- } else t7 = $[25];
194
- const executeBulkAction = t7;
195
- let t8;
196
- if ($[26] !== executeBulkAction) {
197
- t8 = (action_1) => {
206
+ $[20] = ctx;
207
+ $[21] = helpers;
208
+ $[22] = onBulkDelete;
209
+ $[23] = onBulkRestore;
210
+ $[24] = onOpenDialog;
211
+ $[25] = selectedItems;
212
+ $[26] = t;
213
+ $[27] = table;
214
+ $[28] = t9;
215
+ } else t9 = $[28];
216
+ const executeBulkAction = t9;
217
+ let t10;
218
+ if ($[29] !== executeBulkAction) {
219
+ t10 = (action_1) => {
198
220
  if (action_1.confirmation) setConfirmAction(action_1);
199
221
  else executeBulkAction(action_1);
200
222
  };
201
- $[26] = executeBulkAction;
202
- $[27] = t8;
203
- } else t8 = $[27];
204
- const handleActionClick = t8;
205
- let t9;
206
- if ($[28] !== confirmAction || $[29] !== executeBulkAction) {
207
- t9 = async () => {
223
+ $[29] = executeBulkAction;
224
+ $[30] = t10;
225
+ } else t10 = $[30];
226
+ const handleActionClick = t10;
227
+ let t11;
228
+ if ($[31] !== confirmAction || $[32] !== executeBulkAction) {
229
+ t11 = async () => {
208
230
  if (confirmAction) {
209
231
  await executeBulkAction(confirmAction);
210
232
  setConfirmAction(null);
211
233
  }
212
234
  };
213
- $[28] = confirmAction;
214
- $[29] = executeBulkAction;
215
- $[30] = t9;
216
- } else t9 = $[30];
217
- const handleConfirm = t9;
218
- let t10;
219
- if ($[31] !== onSelectAllMatching) {
220
- t10 = async () => {
235
+ $[31] = confirmAction;
236
+ $[32] = executeBulkAction;
237
+ $[33] = t11;
238
+ } else t11 = $[33];
239
+ const handleConfirm = t11;
240
+ let t12;
241
+ if ($[34] !== onSelectAllMatching) {
242
+ t12 = async () => {
221
243
  if (!onSelectAllMatching) return;
222
244
  setIsSelectingAll(true);
223
245
  try {
224
246
  await onSelectAllMatching();
225
247
  setIsSelectingAll(false);
226
- } catch (t11$1) {
227
- const _err = t11$1;
248
+ } catch (t13$1) {
249
+ const _err = t13$1;
228
250
  setIsSelectingAll(false);
229
251
  throw _err;
230
252
  }
231
253
  };
232
- $[31] = onSelectAllMatching;
233
- $[32] = t10;
234
- } else t10 = $[32];
235
- const handleSelectAllMatching = t10;
236
- let t11;
237
- if ($[33] !== ctx) {
238
- t11 = (action_2) => {
254
+ $[34] = onSelectAllMatching;
255
+ $[35] = t12;
256
+ } else t12 = $[35];
257
+ const handleSelectAllMatching = t12;
258
+ let t13;
259
+ if ($[36] !== ctx) {
260
+ t13 = (action_2) => {
239
261
  if (action_2.disabled === void 0) return false;
240
262
  if (typeof action_2.disabled === "function") return action_2.disabled(ctx);
241
263
  return action_2.disabled;
242
264
  };
243
- $[33] = ctx;
244
- $[34] = t11;
245
- } else t11 = $[34];
246
- const isDisabled = t11;
247
- let t12;
248
- let t13;
265
+ $[36] = ctx;
266
+ $[37] = t13;
267
+ } else t13 = $[37];
268
+ const isDisabled = t13;
249
269
  let t14;
250
270
  let t15;
251
- if ($[35] !== filterCount || $[36] !== handleActionClick || $[37] !== handleSelectAllMatching || $[38] !== hasFilters || $[39] !== hasSelection || $[40] !== isDisabled || $[41] !== isLoading || $[42] !== isSelectingAll || $[43] !== onClearFilters || $[44] !== onOpenFilters || $[45] !== onSelectAllMatching || $[46] !== pageCount || $[47] !== resolveText || $[48] !== selectedCount || $[49] !== t || $[50] !== table || $[51] !== totalCount || $[52] !== visibleActions) {
271
+ let t16;
272
+ let t17;
273
+ let t18;
274
+ if ($[38] !== filterCount || $[39] !== handleActionClick || $[40] !== handleSelectAllMatching || $[41] !== hasFilters || $[42] !== hasSelection || $[43] !== isDisabled || $[44] !== isLoading || $[45] !== isSelectingAll || $[46] !== isVisible || $[47] !== onClearFilters || $[48] !== onOpenFilters || $[49] !== onSelectAllMatching || $[50] !== pageCount || $[51] !== resolveText || $[52] !== selectedCount || $[53] !== t || $[54] !== table || $[55] !== totalCount || $[56] !== visibleActions) {
252
275
  const regularActions = visibleActions.filter(_temp5);
253
276
  const destructiveActions = visibleActions.filter(_temp6);
254
- t15 = "qa-bulk-toolbar animate-in slide-in-from-bottom-4 fade-in fixed bottom-6 left-1/2 z-50 max-w-[calc(100%-2rem)] -translate-x-1/2 duration-200 sm:max-w-none";
255
- t12 = "qa-bulk-toolbar__bar bg-background border-border flex items-center gap-2 overflow-x-auto rounded-full border px-3 py-2 shadow-lg sm:gap-3 sm:px-4 sm:py-2.5";
256
- if ($[57] !== filterCount || $[58] !== hasFilters || $[59] !== hasSelection || $[60] !== onClearFilters || $[61] !== onOpenFilters || $[62] !== t) {
257
- t13 = hasFilters && /* @__PURE__ */ jsxs(Fragment, { children: [/* @__PURE__ */ jsxs("div", {
277
+ t17 = isVisible ? "open" : "closed";
278
+ t18 = "qa-bulk-toolbar fixed bottom-6 left-1/2 z-50 max-w-[calc(100%-2rem)] -translate-x-1/2 transition-[opacity,translate,scale] duration-[var(--motion-duration-slow)] ease-[var(--motion-ease-enter)] data-[state=closed]:pointer-events-none data-[state=closed]:translate-y-2 data-[state=closed]:scale-[0.98] data-[state=closed]:opacity-0 data-[state=open]:translate-y-0 data-[state=open]:scale-100 data-[state=open]:opacity-100 motion-reduce:transition-none sm:max-w-none";
279
+ t14 = "qa-bulk-toolbar__bar bg-background border-border flex items-center gap-2 overflow-x-auto rounded-full border px-3 py-2 shadow-lg transition-[gap,padding] duration-[var(--motion-duration-base)] ease-[var(--motion-ease-standard)] sm:gap-3 sm:px-4 sm:py-2.5";
280
+ if ($[62] !== filterCount || $[63] !== hasFilters || $[64] !== hasSelection || $[65] !== onClearFilters || $[66] !== onOpenFilters || $[67] !== t) {
281
+ t15 = hasFilters && /* @__PURE__ */ jsxs(Fragment, { children: [/* @__PURE__ */ jsxs("div", {
258
282
  className: "flex shrink-0 items-center gap-2",
259
283
  children: [onOpenFilters ? /* @__PURE__ */ jsxs(Button, {
260
284
  variant: "ghost",
@@ -265,13 +289,13 @@ function BulkActionToolbar(t0) {
265
289
  icon: "ph:funnel-fill",
266
290
  width: 14,
267
291
  height: 14,
268
- className: "text-primary"
292
+ className: "text-foreground"
269
293
  }), t("viewOptions.activeFilters", { count: filterCount })]
270
294
  }) : /* @__PURE__ */ jsxs(Fragment, { children: [/* @__PURE__ */ jsx(Icon, {
271
295
  icon: "ph:funnel-fill",
272
296
  width: 14,
273
297
  height: 14,
274
- className: "text-primary"
298
+ className: "text-foreground"
275
299
  }), /* @__PURE__ */ jsx("span", {
276
300
  className: "text-sm font-medium whitespace-nowrap",
277
301
  children: t("viewOptions.activeFilters", { count: filterCount })
@@ -282,21 +306,27 @@ function BulkActionToolbar(t0) {
282
306
  className: "h-6 px-2 text-xs",
283
307
  children: t("viewOptions.clearFilters")
284
308
  })]
285
- }), hasSelection && /* @__PURE__ */ jsx("div", { className: "bg-border h-4 w-px shrink-0" })] });
286
- $[57] = filterCount;
287
- $[58] = hasFilters;
288
- $[59] = hasSelection;
289
- $[60] = onClearFilters;
290
- $[61] = onOpenFilters;
291
- $[62] = t;
292
- $[63] = t13;
293
- } else t13 = $[63];
294
- t14 = hasSelection && /* @__PURE__ */ jsxs(Fragment, { children: [
309
+ }), hasSelection && /* @__PURE__ */ jsx("div", {
310
+ className: "qa-bulk-toolbar__divider bg-border h-4 w-px shrink-0",
311
+ "aria-hidden": "true"
312
+ })] });
313
+ $[62] = filterCount;
314
+ $[63] = hasFilters;
315
+ $[64] = hasSelection;
316
+ $[65] = onClearFilters;
317
+ $[66] = onOpenFilters;
318
+ $[67] = t;
319
+ $[68] = t15;
320
+ } else t15 = $[68];
321
+ t16 = hasSelection && /* @__PURE__ */ jsxs(Fragment, { children: [
295
322
  /* @__PURE__ */ jsx("span", {
296
323
  className: "shrink-0 text-sm font-medium whitespace-nowrap",
297
324
  children: t("collection.selected", { count: selectedCount })
298
325
  }),
299
- /* @__PURE__ */ jsx("div", { className: "bg-border h-4 w-px shrink-0" }),
326
+ /* @__PURE__ */ jsx("div", {
327
+ className: "qa-bulk-toolbar__divider bg-border h-4 w-px shrink-0",
328
+ "aria-hidden": "true"
329
+ }),
300
330
  /* @__PURE__ */ jsxs(DropdownMenu, { children: [/* @__PURE__ */ jsxs(DropdownMenuTrigger, {
301
331
  nativeButton: false,
302
332
  render: /* @__PURE__ */ jsx(Button, {
@@ -380,58 +410,63 @@ function BulkActionToolbar(t0) {
380
410
  })]
381
411
  })
382
412
  ] });
383
- $[35] = filterCount;
384
- $[36] = handleActionClick;
385
- $[37] = handleSelectAllMatching;
386
- $[38] = hasFilters;
387
- $[39] = hasSelection;
388
- $[40] = isDisabled;
389
- $[41] = isLoading;
390
- $[42] = isSelectingAll;
391
- $[43] = onClearFilters;
392
- $[44] = onOpenFilters;
393
- $[45] = onSelectAllMatching;
394
- $[46] = pageCount;
395
- $[47] = resolveText;
396
- $[48] = selectedCount;
397
- $[49] = t;
398
- $[50] = table;
399
- $[51] = totalCount;
400
- $[52] = visibleActions;
401
- $[53] = t12;
402
- $[54] = t13;
403
- $[55] = t14;
404
- $[56] = t15;
413
+ $[38] = filterCount;
414
+ $[39] = handleActionClick;
415
+ $[40] = handleSelectAllMatching;
416
+ $[41] = hasFilters;
417
+ $[42] = hasSelection;
418
+ $[43] = isDisabled;
419
+ $[44] = isLoading;
420
+ $[45] = isSelectingAll;
421
+ $[46] = isVisible;
422
+ $[47] = onClearFilters;
423
+ $[48] = onOpenFilters;
424
+ $[49] = onSelectAllMatching;
425
+ $[50] = pageCount;
426
+ $[51] = resolveText;
427
+ $[52] = selectedCount;
428
+ $[53] = t;
429
+ $[54] = table;
430
+ $[55] = totalCount;
431
+ $[56] = visibleActions;
432
+ $[57] = t14;
433
+ $[58] = t15;
434
+ $[59] = t16;
435
+ $[60] = t17;
436
+ $[61] = t18;
405
437
  } else {
406
- t12 = $[53];
407
- t13 = $[54];
408
- t14 = $[55];
409
- t15 = $[56];
438
+ t14 = $[57];
439
+ t15 = $[58];
440
+ t16 = $[59];
441
+ t17 = $[60];
442
+ t18 = $[61];
410
443
  }
411
- let t16;
412
- if ($[64] !== t12 || $[65] !== t13 || $[66] !== t14) {
413
- t16 = /* @__PURE__ */ jsxs("div", {
414
- className: t12,
415
- children: [t13, t14]
444
+ let t19;
445
+ if ($[69] !== t14 || $[70] !== t15 || $[71] !== t16) {
446
+ t19 = /* @__PURE__ */ jsxs("div", {
447
+ className: t14,
448
+ children: [t15, t16]
416
449
  });
417
- $[64] = t12;
418
- $[65] = t13;
419
- $[66] = t14;
420
- $[67] = t16;
421
- } else t16 = $[67];
422
- let t17;
423
- if ($[68] !== t15 || $[69] !== t16) {
424
- t17 = /* @__PURE__ */ jsx("div", {
425
- className: t15,
426
- children: t16
450
+ $[69] = t14;
451
+ $[70] = t15;
452
+ $[71] = t16;
453
+ $[72] = t19;
454
+ } else t19 = $[72];
455
+ let t20;
456
+ if ($[73] !== t17 || $[74] !== t18 || $[75] !== t19) {
457
+ t20 = /* @__PURE__ */ jsx("div", {
458
+ "data-state": t17,
459
+ className: t18,
460
+ children: t19
427
461
  });
428
- $[68] = t15;
429
- $[69] = t16;
430
- $[70] = t17;
431
- } else t17 = $[70];
432
- let t18;
433
- if ($[71] !== confirmAction || $[72] !== handleConfirm || $[73] !== isLoading || $[74] !== resolveText || $[75] !== selectedCount) {
434
- t18 = confirmAction?.confirmation && /* @__PURE__ */ jsx(ConfirmationDialog, {
462
+ $[73] = t17;
463
+ $[74] = t18;
464
+ $[75] = t19;
465
+ $[76] = t20;
466
+ } else t20 = $[76];
467
+ let t21;
468
+ if ($[77] !== confirmAction || $[78] !== handleConfirm || $[79] !== isLoading || $[80] !== resolveText || $[81] !== selectedCount) {
469
+ t21 = confirmAction?.confirmation && /* @__PURE__ */ jsx(ConfirmationDialog, {
435
470
  open: !!confirmAction,
436
471
  onOpenChange: (open) => !open && setConfirmAction(null),
437
472
  config: {
@@ -441,21 +476,21 @@ function BulkActionToolbar(t0) {
441
476
  onConfirm: handleConfirm,
442
477
  loading: isLoading
443
478
  });
444
- $[71] = confirmAction;
445
- $[72] = handleConfirm;
446
- $[73] = isLoading;
447
- $[74] = resolveText;
448
- $[75] = selectedCount;
449
- $[76] = t18;
450
- } else t18 = $[76];
451
- let t19;
452
- if ($[77] !== t17 || $[78] !== t18) {
453
- t19 = /* @__PURE__ */ jsxs(Fragment, { children: [t17, t18] });
454
- $[77] = t17;
455
- $[78] = t18;
456
- $[79] = t19;
457
- } else t19 = $[79];
458
- return t19;
479
+ $[77] = confirmAction;
480
+ $[78] = handleConfirm;
481
+ $[79] = isLoading;
482
+ $[80] = resolveText;
483
+ $[81] = selectedCount;
484
+ $[82] = t21;
485
+ } else t21 = $[82];
486
+ let t22;
487
+ if ($[83] !== t20 || $[84] !== t21) {
488
+ t22 = /* @__PURE__ */ jsxs(Fragment, { children: [t20, t21] });
489
+ $[83] = t20;
490
+ $[84] = t21;
491
+ $[85] = t22;
492
+ } else t22 = $[85];
493
+ return t22;
459
494
  }
460
495
  function _temp6(a_0) {
461
496
  return a_0.variant === "destructive";
@@ -162,18 +162,18 @@ function ObjectCell(t0) {
162
162
  className: "py-1",
163
163
  children: [/* @__PURE__ */ jsxs("div", {
164
164
  className: "flex items-center gap-1.5 text-xs font-medium",
165
- children: [/* @__PURE__ */ jsx("span", { className: "bg-foreground/60 size-1 rounded-full" }), label_0]
165
+ children: [/* @__PURE__ */ jsx("span", { className: "bg-muted-foreground/50 size-1.5 rounded-full" }), label_0]
166
166
  }), /* @__PURE__ */ jsx("div", {
167
- className: "border-border mt-0.5 ml-2.5 space-y-0.5 border-l pl-2",
167
+ className: "bg-muted/50 mt-1 ml-3 space-y-0.5 rounded-sm px-2 py-1.5",
168
168
  children: nestedEntries.map(_temp)
169
169
  })]
170
170
  }, key_0);
171
171
  }
172
172
  if (Array.isArray(val_0)) return /* @__PURE__ */ jsxs("div", {
173
- className: "flex items-center justify-between gap-2 py-0.5 text-xs",
173
+ className: "item-surface border-border flex items-center justify-between gap-2 px-2 py-1 text-xs",
174
174
  children: [/* @__PURE__ */ jsxs("span", {
175
175
  className: "flex items-center gap-1.5",
176
- children: [/* @__PURE__ */ jsx("span", { className: "bg-foreground/60 size-1 rounded-full" }), /* @__PURE__ */ jsx("span", {
176
+ children: [/* @__PURE__ */ jsx("span", { className: "bg-muted-foreground/50 size-1.5 rounded-full" }), /* @__PURE__ */ jsx("span", {
177
177
  className: "text-muted-foreground",
178
178
  children: label_0
179
179
  })]
@@ -184,10 +184,10 @@ function ObjectCell(t0) {
184
184
  })]
185
185
  }, key_0);
186
186
  return /* @__PURE__ */ jsxs("div", {
187
- className: "flex items-center justify-between gap-2 py-0.5 text-xs",
187
+ className: "item-surface border-border flex items-center justify-between gap-2 px-2 py-1 text-xs",
188
188
  children: [/* @__PURE__ */ jsxs("span", {
189
189
  className: "flex items-center gap-1.5",
190
- children: [/* @__PURE__ */ jsx("span", { className: "bg-foreground/60 size-1 rounded-full" }), /* @__PURE__ */ jsx("span", {
190
+ children: [/* @__PURE__ */ jsx("span", { className: "bg-muted-foreground/50 size-1.5 rounded-full" }), /* @__PURE__ */ jsx("span", {
191
191
  className: "text-muted-foreground",
192
192
  children: label_0
193
193
  })]
@@ -397,9 +397,9 @@ function ArrayCell(t0) {
397
397
  className: "py-1",
398
398
  children: [/* @__PURE__ */ jsxs("div", {
399
399
  className: "flex items-center gap-1.5 text-xs font-medium",
400
- children: [/* @__PURE__ */ jsx("span", { className: "bg-foreground/60 size-1 rounded-full" }), label]
400
+ children: [/* @__PURE__ */ jsx("span", { className: "bg-muted-foreground/50 size-1.5 rounded-full" }), label]
401
401
  }), details.length > 0 && /* @__PURE__ */ jsx("div", {
402
- className: "border-border mt-0.5 ml-2.5 space-y-0.5 border-l pl-2",
402
+ className: "bg-muted/50 mt-1 ml-3 space-y-0.5 rounded-sm px-2 py-1.5",
403
403
  children: details.map((t10$1) => {
404
404
  const [k_0, v] = t10$1;
405
405
  const itemFieldDef = itemFields?.[k_0];
@@ -418,8 +418,8 @@ function ArrayCell(t0) {
418
418
  }, String(itemId));
419
419
  }
420
420
  return /* @__PURE__ */ jsxs("div", {
421
- className: "flex items-center gap-1.5 py-0.5 text-xs",
422
- children: [/* @__PURE__ */ jsx("span", { className: "bg-foreground/60 size-1 rounded-full" }), formatPrimitiveValue(item_0)]
421
+ className: "item-surface border-border flex items-center gap-1.5 px-2 py-1 text-xs",
422
+ children: [/* @__PURE__ */ jsx("span", { className: "bg-muted-foreground/50 size-1.5 rounded-full" }), formatPrimitiveValue(item_0)]
423
423
  }, `item-${String(item_0)}`);
424
424
  };
425
425
  $[25] = itemFields;
@@ -609,14 +609,14 @@ function BlocksCell(t0) {
609
609
  const extraTypes = entries.length - preview.length;
610
610
  let t3;
611
611
  if ($[12] === Symbol.for("react.memo_cache_sentinel")) {
612
- t3 = cn("inline-flex items-center gap-1.5 text-xs", "text-muted-foreground hover:text-foreground", "max-w-[220px] cursor-default transition-colors");
612
+ t3 = cn("inline-flex h-6 max-w-[240px] cursor-default items-center gap-2 rounded-md px-1.5 text-xs", "text-muted-foreground hover:bg-surface-high hover:text-foreground", "transition-[background-color,color] duration-150 ease-out");
613
613
  $[12] = t3;
614
614
  } else t3 = $[12];
615
615
  let t4;
616
616
  if ($[13] !== total) {
617
617
  t4 = /* @__PURE__ */ jsx(Badge, {
618
- variant: "secondary",
619
- className: "h-4 min-w-4 shrink-0 px-1 text-[10px]",
618
+ variant: "outline",
619
+ className: "h-5 min-w-5 shrink-0 px-1.5 text-[10px]",
620
620
  children: total
621
621
  });
622
622
  $[13] = total;
@@ -659,8 +659,8 @@ function BlocksCell(t0) {
659
659
  let t11;
660
660
  if ($[25] !== total) {
661
661
  t11 = /* @__PURE__ */ jsx(Badge, {
662
- variant: "secondary",
663
- className: "h-4 px-1 text-[10px]",
662
+ variant: "outline",
663
+ className: "h-5 px-1.5 text-[10px]",
664
664
  children: total
665
665
  });
666
666
  $[25] = total;
@@ -669,7 +669,7 @@ function BlocksCell(t0) {
669
669
  let t12;
670
670
  if ($[27] !== t10 || $[28] !== t11) {
671
671
  t12 = /* @__PURE__ */ jsxs("div", {
672
- className: "text-muted-foreground border-border flex items-center justify-between border-b px-2 py-1.5 text-[11px]",
672
+ className: "text-muted-foreground flex items-center justify-between px-2 py-1 text-[11px]",
673
673
  children: [t10, t11]
674
674
  });
675
675
  $[27] = t10;
@@ -679,7 +679,7 @@ function BlocksCell(t0) {
679
679
  let t13;
680
680
  if ($[30] !== entries) {
681
681
  t13 = /* @__PURE__ */ jsx("div", {
682
- className: "max-h-[280px] space-y-0.5 overflow-y-auto p-2",
682
+ className: "max-h-[280px] space-y-0.5 overflow-y-auto p-1",
683
683
  children: entries.slice(0, 10).map(_temp5)
684
684
  });
685
685
  $[30] = entries;
@@ -688,7 +688,7 @@ function BlocksCell(t0) {
688
688
  let t14;
689
689
  if ($[32] !== entries.length || $[33] !== t) {
690
690
  t14 = entries.length > 10 && /* @__PURE__ */ jsx("div", {
691
- className: "text-muted-foreground border-border border-t py-1.5 text-center text-[11px]",
691
+ className: "text-muted-foreground py-1.5 text-center text-[11px]",
692
692
  children: t("cell.more", { count: entries.length - 10 })
693
693
  });
694
694
  $[32] = entries.length;
@@ -700,7 +700,7 @@ function BlocksCell(t0) {
700
700
  t15 = /* @__PURE__ */ jsxs(TooltipContent, {
701
701
  side: "bottom",
702
702
  align: "start",
703
- className: "bg-popover border-border w-64 max-w-[90vw] p-0",
703
+ className: "w-64 max-w-[90vw] p-1",
704
704
  children: [
705
705
  t12,
706
706
  t13,
@@ -723,13 +723,13 @@ function BlocksCell(t0) {
723
723
  }
724
724
  function _temp5(entry_0) {
725
725
  return /* @__PURE__ */ jsxs("div", {
726
- className: "flex items-center justify-between gap-2 py-0.5 text-xs",
726
+ className: "flex h-7 items-center justify-between gap-2 rounded-md px-2 text-xs",
727
727
  children: [/* @__PURE__ */ jsx("span", {
728
728
  className: "truncate",
729
729
  children: entry_0.label
730
730
  }), /* @__PURE__ */ jsx(Badge, {
731
- variant: "secondary",
732
- className: "h-4 px-1 text-[10px]",
731
+ variant: "outline",
732
+ className: "h-5 px-1.5 text-[10px]",
733
733
  children: entry_0.count
734
734
  })]
735
735
  }, entry_0.type);
@@ -353,7 +353,7 @@ function EmailCell(t0) {
353
353
  let t2;
354
354
  if ($[1] !== t1) {
355
355
  t2 = /* @__PURE__ */ jsx("span", {
356
- className: "text-primary",
356
+ className: "text-foreground",
357
357
  children: t1
358
358
  });
359
359
  $[1] = t1;