@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
@@ -153,7 +153,7 @@ function SectionRenderer(t0) {
153
153
  let t5;
154
154
  if ($[14] !== ctx || $[15] !== section.description) {
155
155
  t5 = section.description && /* @__PURE__ */ jsx("p", {
156
- className: "text-muted-foreground mb-4 text-sm",
156
+ className: "text-muted-foreground mb-4 text-sm text-pretty",
157
157
  children: ctx.resolveText(section.description, "")
158
158
  });
159
159
  $[14] = ctx;
@@ -174,7 +174,7 @@ function SectionRenderer(t0) {
174
174
  if ($[20] !== t4$1 || $[21] !== t6 || $[22] !== value) {
175
175
  t7 = /* @__PURE__ */ jsxs(AccordionItem, {
176
176
  value,
177
- className: "border px-4",
177
+ className: "border-transparent px-4",
178
178
  children: [t4$1, t6]
179
179
  });
180
180
  $[20] = t4$1;
@@ -203,7 +203,7 @@ function SectionRenderer(t0) {
203
203
  className: "text-lg font-semibold",
204
204
  children: ctx.resolveText(section.label, "")
205
205
  }), section.description && /* @__PURE__ */ jsx("p", {
206
- className: "text-muted-foreground mt-1 text-sm",
206
+ className: "text-muted-foreground mt-1 text-sm text-pretty",
207
207
  children: ctx.resolveText(section.description, "")
208
208
  })]
209
209
  }) : null;
@@ -244,7 +244,8 @@ function TabsRenderer(t0) {
244
244
  if ($[3] !== ctx) {
245
245
  t2$1 = (tab) => /* @__PURE__ */ jsxs(TabsTrigger, {
246
246
  value: tab.id,
247
- children: [resolveIconElement(tab.icon, { className: "mr-2 size-4" }), ctx.resolveText(tab.label, tab.id)]
247
+ className: "flex-1",
248
+ children: [resolveIconElement(tab.icon, { className: "size-3.5" }), ctx.resolveText(tab.label, tab.id)]
248
249
  }, tab.id);
249
250
  $[3] = ctx;
250
251
  $[4] = t2$1;
@@ -257,7 +258,7 @@ function TabsRenderer(t0) {
257
258
  let t2;
258
259
  if ($[5] !== t1) {
259
260
  t2 = /* @__PURE__ */ jsx(TabsList, {
260
- variant: "line",
261
+ className: "w-full",
261
262
  children: t1
262
263
  });
263
264
  $[5] = t1;
@@ -42,7 +42,7 @@ function LocaleSwitcher(t0) {
42
42
  t7 = null;
43
43
  break bb0;
44
44
  }
45
- const codeLabel = currentLocale.code.toUpperCase();
45
+ const codeLabel = currentLocale.code;
46
46
  const nameLabel = currentLocale.label ? resolveText(currentLocale.label) : codeLabel;
47
47
  let labelElement = null;
48
48
  bb1: switch (labelMode) {
@@ -57,7 +57,7 @@ function LocaleSwitcher(t0) {
57
57
  labelElement = /* @__PURE__ */ jsxs("span", {
58
58
  className: "flex items-center gap-1",
59
59
  children: [/* @__PURE__ */ jsx("span", {
60
- className: "tracking-wide uppercase",
60
+ className: "font-chrome chrome-meta",
61
61
  children: codeLabel
62
62
  }), currentLocale.label && /* @__PURE__ */ jsx("span", {
63
63
  className: "text-muted-foreground font-normal",
@@ -67,15 +67,15 @@ function LocaleSwitcher(t0) {
67
67
  break bb1;
68
68
  case "code":
69
69
  default: labelElement = /* @__PURE__ */ jsx("span", {
70
- className: "tracking-wide uppercase",
70
+ className: "font-chrome chrome-meta",
71
71
  children: codeLabel
72
72
  });
73
73
  }
74
74
  let baseClassName;
75
75
  let t9$1;
76
76
  if ($[16] !== className) {
77
- baseClassName = cn("bg-muted text-muted-foreground inline-flex items-center gap-1 rounded px-1.5 py-0.5 text-[10px] font-medium", className);
78
- t9$1 = cn(baseClassName, "hover:bg-muted focus:ring-ring cursor-pointer transition-colors focus:ring-1 focus:outline-none");
77
+ baseClassName = cn("item-surface border-border bg-secondary text-secondary-foreground inline-flex min-h-5 items-center gap-1 px-2 py-0.5 text-xs font-medium", className);
78
+ t9$1 = cn(baseClassName, "hover:bg-accent hover:text-accent-foreground focus:ring-ring cursor-pointer transition-colors focus:ring-1 focus:outline-none");
79
79
  $[16] = className;
80
80
  $[17] = baseClassName;
81
81
  $[18] = t9$1;
@@ -88,7 +88,7 @@ function LocaleSwitcher(t0) {
88
88
  const t10 = showFlag && !imgError && /* @__PURE__ */ jsx("img", {
89
89
  src: getLocaleFlagUrl(resolvedValue),
90
90
  alt: resolvedValue,
91
- className: "h-2.5 w-3.5 rounded-[1px] object-cover",
91
+ className: "image-outline h-2.5 w-3.5 rounded-[1px] object-cover",
92
92
  onError: () => setImgError(true)
93
93
  });
94
94
  let t11;
@@ -173,11 +173,11 @@ function LocaleSwitcher(t0) {
173
173
  showFlag && /* @__PURE__ */ jsx("img", {
174
174
  src: getLocaleFlagUrl(locale_2.code),
175
175
  alt: locale_2.code,
176
- className: "h-2.5 w-3.5 rounded-[1px] object-cover",
176
+ className: "image-outline h-2.5 w-3.5 rounded-[1px] object-cover",
177
177
  onError: _temp2
178
178
  }),
179
179
  /* @__PURE__ */ jsx("span", {
180
- className: "font-medium uppercase",
180
+ className: "font-chrome chrome-meta font-medium",
181
181
  children: locale_2.code
182
182
  }),
183
183
  locale_2.label && /* @__PURE__ */ jsx("span", {
@@ -1,3 +1,4 @@
1
+ import { useSafeI18n } from "../../i18n/hooks.mjs";
1
2
  import { cn } from "../../lib/utils.mjs";
2
3
  import { Skeleton } from "../ui/skeleton.mjs";
3
4
  import { c } from "react/compiler-runtime";
@@ -35,7 +36,7 @@ function getAssetTypeColor(mimeType) {
35
36
  if (!mimeType) return "bg-muted";
36
37
  const type = mimeType.toLowerCase();
37
38
  if (type.startsWith("image/")) return "bg-info/10";
38
- if (type.startsWith("video/")) return "bg-primary/10";
39
+ if (type.startsWith("video/")) return "bg-surface-high";
39
40
  if (type.startsWith("audio/")) return "bg-success/10";
40
41
  if (type === "application/pdf") return "bg-destructive/10";
41
42
  return "bg-muted";
@@ -86,7 +87,10 @@ function MediaGridSkeleton(t0) {
86
87
  function _temp2(key) {
87
88
  return /* @__PURE__ */ jsxs("div", {
88
89
  className: "space-y-2",
89
- children: [/* @__PURE__ */ jsx(Skeleton, { className: "aspect-square w-full" }), /* @__PURE__ */ jsx(Skeleton, { className: "h-4 w-3/4" })]
90
+ children: [/* @__PURE__ */ jsx(Skeleton, { className: "aspect-square w-full" }), /* @__PURE__ */ jsx(Skeleton, {
91
+ variant: "text",
92
+ className: "h-4 w-3/4"
93
+ })]
90
94
  }, key);
91
95
  }
92
96
  function _temp() {
@@ -117,10 +121,10 @@ function AssetItem(t0) {
117
121
  $[5] = t2;
118
122
  } else t2 = $[5];
119
123
  const handleClick = t2;
120
- const t3 = selected ? "ring-primary border-primary ring-2" : "border-border hover:border-border";
124
+ const t3 = selected ? "border-border-strong bg-surface-high ring-ring/20 ring-2" : "hover:border-border hover:bg-accent/20";
121
125
  let t4;
122
126
  if ($[6] !== t3) {
123
- t4 = cn("group relative aspect-square w-full overflow-hidden border", "focus-visible:ring-ring transition-all focus-visible:ring-2 focus-visible:outline-none", t3, "bg-muted");
127
+ t4 = cn("panel-surface group relative aspect-square w-full overflow-hidden", "focus-visible:ring-ring transition-[background-color,border-color,box-shadow,transform] focus-visible:ring-2 focus-visible:outline-none active:scale-[0.96]", t3, "bg-card");
124
128
  $[6] = t3;
125
129
  $[7] = t4;
126
130
  } else t4 = $[7];
@@ -129,12 +133,12 @@ function AssetItem(t0) {
129
133
  t5 = thumbnailUrl && isImageType && !imageError ? /* @__PURE__ */ jsx("img", {
130
134
  src: thumbnailUrl,
131
135
  alt: asset.alt || asset.filename || "Asset",
132
- className: "h-full w-full object-cover",
136
+ className: "image-outline h-full w-full object-cover",
133
137
  onError: () => setImageError(true)
134
138
  }) : /* @__PURE__ */ jsx("div", {
135
139
  className: cn("flex h-full w-full items-center justify-center", getAssetTypeColor(asset.mimeType)),
136
140
  children: /* @__PURE__ */ jsx("span", {
137
- className: "text-muted-foreground text-xs font-medium uppercase",
141
+ className: "text-muted-foreground chrome-meta text-xs font-medium",
138
142
  children: asset.mimeType?.split("/")[1]?.slice(0, 4) || "FILE"
139
143
  })
140
144
  });
@@ -149,10 +153,10 @@ function AssetItem(t0) {
149
153
  let t6;
150
154
  if ($[15] !== selected || $[16] !== showCheckbox) {
151
155
  t6 = showCheckbox && /* @__PURE__ */ jsx("div", {
152
- className: cn("absolute top-2 right-2 flex size-5 items-center justify-center rounded-full border-2 transition-all", selected ? "bg-primary border-primary" : "border-white bg-black/20 group-hover:bg-black/40"),
156
+ className: cn("absolute top-2 right-2 flex size-5 items-center justify-center rounded-full border-2 transition-[background-color,border-color,color,opacity,transform]", selected ? "border-foreground bg-foreground text-background" : "border-border bg-background/80 text-muted-foreground group-hover:bg-background"),
153
157
  children: selected && /* @__PURE__ */ jsx(Icon, {
154
158
  icon: "ph:check-bold",
155
- className: "size-3 text-white"
159
+ className: "size-3"
156
160
  })
157
161
  });
158
162
  $[15] = selected;
@@ -195,15 +199,23 @@ function AssetItem(t0) {
195
199
  }
196
200
  const EMPTY_SET = /* @__PURE__ */ new Set();
197
201
  function MediaGrid(t0) {
198
- const $ = c(31);
202
+ const $ = c(37);
199
203
  const { assets, selectedIds: t1, onSelectionChange, selectionMode: t2, loading: t3, onAssetClick, columns: t4, className } = t0;
200
204
  const selectedIds = t1 === void 0 ? EMPTY_SET : t1;
201
205
  const selectionMode = t2 === void 0 ? "none" : t2;
202
206
  const loading = t3 === void 0 ? false : t3;
203
207
  const columns = t4 === void 0 ? 4 : t4;
208
+ const i18n = useSafeI18n();
204
209
  let t5;
205
- if ($[0] !== onSelectionChange || $[1] !== selectedIds || $[2] !== selectionMode) {
206
- t5 = (assetId) => {
210
+ if ($[0] !== i18n) {
211
+ t5 = (key, fallback) => i18n?.t(key) ?? fallback;
212
+ $[0] = i18n;
213
+ $[1] = t5;
214
+ } else t5 = $[1];
215
+ const t = t5;
216
+ let t6;
217
+ if ($[2] !== onSelectionChange || $[3] !== selectedIds || $[4] !== selectionMode) {
218
+ t6 = (assetId) => {
207
219
  if (!onSelectionChange) return;
208
220
  const newSelection = new Set(selectedIds);
209
221
  if (selectionMode === "single") {
@@ -213,101 +225,109 @@ function MediaGrid(t0) {
213
225
  else newSelection.add(assetId);
214
226
  onSelectionChange(newSelection);
215
227
  };
216
- $[0] = onSelectionChange;
217
- $[1] = selectedIds;
218
- $[2] = selectionMode;
219
- $[3] = t5;
220
- } else t5 = $[3];
221
- const handleToggle = t5;
228
+ $[2] = onSelectionChange;
229
+ $[3] = selectedIds;
230
+ $[4] = selectionMode;
231
+ $[5] = t6;
232
+ } else t6 = $[5];
233
+ const handleToggle = t6;
222
234
  if (loading) {
223
- let t6$1;
224
- if ($[4] !== columns) {
225
- t6$1 = /* @__PURE__ */ jsx(MediaGridSkeleton, { columns });
226
- $[4] = columns;
227
- $[5] = t6$1;
228
- } else t6$1 = $[5];
229
235
  let t7$1;
230
- if ($[6] !== className || $[7] !== t6$1) {
231
- t7$1 = /* @__PURE__ */ jsx("div", {
236
+ if ($[6] !== columns) {
237
+ t7$1 = /* @__PURE__ */ jsx(MediaGridSkeleton, { columns });
238
+ $[6] = columns;
239
+ $[7] = t7$1;
240
+ } else t7$1 = $[7];
241
+ let t8$1;
242
+ if ($[8] !== className || $[9] !== t7$1) {
243
+ t8$1 = /* @__PURE__ */ jsx("div", {
232
244
  className,
233
- children: t6$1
245
+ children: t7$1
234
246
  });
235
- $[6] = className;
236
- $[7] = t6$1;
237
- $[8] = t7$1;
238
- } else t7$1 = $[8];
239
- return t7$1;
247
+ $[8] = className;
248
+ $[9] = t7$1;
249
+ $[10] = t8$1;
250
+ } else t8$1 = $[10];
251
+ return t8$1;
240
252
  }
241
253
  if (assets.length === 0) {
242
- let t6$1;
243
- if ($[9] !== className) {
244
- t6$1 = cn("flex flex-col items-center justify-center border border-dashed p-12", "bg-muted text-muted-foreground", className);
245
- $[9] = className;
246
- $[10] = t6$1;
247
- } else t6$1 = $[10];
248
254
  let t7$1;
249
- if ($[11] === Symbol.for("react.memo_cache_sentinel")) {
250
- t7$1 = /* @__PURE__ */ jsx("p", {
255
+ if ($[11] !== className) {
256
+ t7$1 = cn("flex flex-col items-center justify-center p-8", "text-muted-foreground", className);
257
+ $[11] = className;
258
+ $[12] = t7$1;
259
+ } else t7$1 = $[12];
260
+ let t8$1;
261
+ if ($[13] !== t) {
262
+ t8$1 = t("media.noAssets", "No assets found");
263
+ $[13] = t;
264
+ $[14] = t8$1;
265
+ } else t8$1 = $[14];
266
+ let t9$1;
267
+ if ($[15] !== t8$1) {
268
+ t9$1 = /* @__PURE__ */ jsx("p", {
251
269
  className: "text-sm",
252
- children: "No assets found"
270
+ children: t8$1
253
271
  });
254
- $[11] = t7$1;
255
- } else t7$1 = $[11];
256
- let t8$1;
257
- if ($[12] !== t6$1) {
258
- t8$1 = /* @__PURE__ */ jsx("div", {
259
- className: t6$1,
260
- children: t7$1
272
+ $[15] = t8$1;
273
+ $[16] = t9$1;
274
+ } else t9$1 = $[16];
275
+ let t10;
276
+ if ($[17] !== t7$1 || $[18] !== t9$1) {
277
+ t10 = /* @__PURE__ */ jsx("div", {
278
+ className: t7$1,
279
+ children: t9$1
261
280
  });
262
- $[12] = t6$1;
263
- $[13] = t8$1;
264
- } else t8$1 = $[13];
265
- return t8$1;
281
+ $[17] = t7$1;
282
+ $[18] = t9$1;
283
+ $[19] = t10;
284
+ } else t10 = $[19];
285
+ return t10;
266
286
  }
267
287
  const gridClass = columns === 2 ? "grid-cols-2" : columns === 3 ? "grid-cols-2 sm:grid-cols-3" : columns === 5 ? "grid-cols-2 sm:grid-cols-3 lg:grid-cols-4 xl:grid-cols-5" : "grid-cols-2 sm:grid-cols-3 lg:grid-cols-4";
268
- let t6;
269
- if ($[14] !== className || $[15] !== gridClass) {
270
- t6 = cn("grid gap-3", gridClass, className);
271
- $[14] = className;
272
- $[15] = gridClass;
273
- $[16] = t6;
274
- } else t6 = $[16];
275
288
  let t7;
276
- if ($[17] !== assets || $[18] !== handleToggle || $[19] !== onAssetClick || $[20] !== selectedIds || $[21] !== selectionMode) {
277
- let t8$1;
278
- if ($[23] !== handleToggle || $[24] !== onAssetClick || $[25] !== selectedIds || $[26] !== selectionMode) {
279
- t8$1 = (asset) => /* @__PURE__ */ jsx(AssetItem, {
289
+ if ($[20] !== className || $[21] !== gridClass) {
290
+ t7 = cn("grid gap-3", gridClass, className);
291
+ $[20] = className;
292
+ $[21] = gridClass;
293
+ $[22] = t7;
294
+ } else t7 = $[22];
295
+ let t8;
296
+ if ($[23] !== assets || $[24] !== handleToggle || $[25] !== onAssetClick || $[26] !== selectedIds || $[27] !== selectionMode) {
297
+ let t9$1;
298
+ if ($[29] !== handleToggle || $[30] !== onAssetClick || $[31] !== selectedIds || $[32] !== selectionMode) {
299
+ t9$1 = (asset) => /* @__PURE__ */ jsx(AssetItem, {
280
300
  asset,
281
301
  selected: selectedIds.has(asset.id),
282
302
  selectionMode,
283
303
  onToggle: () => handleToggle(asset.id),
284
304
  onClick: onAssetClick ? () => onAssetClick(asset) : void 0
285
305
  }, asset.id);
286
- $[23] = handleToggle;
287
- $[24] = onAssetClick;
288
- $[25] = selectedIds;
289
- $[26] = selectionMode;
290
- $[27] = t8$1;
291
- } else t8$1 = $[27];
292
- t7 = assets.map(t8$1);
293
- $[17] = assets;
294
- $[18] = handleToggle;
295
- $[19] = onAssetClick;
296
- $[20] = selectedIds;
297
- $[21] = selectionMode;
298
- $[22] = t7;
299
- } else t7 = $[22];
300
- let t8;
301
- if ($[28] !== t6 || $[29] !== t7) {
302
- t8 = /* @__PURE__ */ jsx("div", {
303
- className: t6,
304
- children: t7
306
+ $[29] = handleToggle;
307
+ $[30] = onAssetClick;
308
+ $[31] = selectedIds;
309
+ $[32] = selectionMode;
310
+ $[33] = t9$1;
311
+ } else t9$1 = $[33];
312
+ t8 = assets.map(t9$1);
313
+ $[23] = assets;
314
+ $[24] = handleToggle;
315
+ $[25] = onAssetClick;
316
+ $[26] = selectedIds;
317
+ $[27] = selectionMode;
318
+ $[28] = t8;
319
+ } else t8 = $[28];
320
+ let t9;
321
+ if ($[34] !== t7 || $[35] !== t8) {
322
+ t9 = /* @__PURE__ */ jsx("div", {
323
+ className: t7,
324
+ children: t8
305
325
  });
306
- $[28] = t6;
307
- $[29] = t7;
308
- $[30] = t8;
309
- } else t8 = $[30];
310
- return t8;
326
+ $[34] = t7;
327
+ $[35] = t8;
328
+ $[36] = t9;
329
+ } else t9 = $[36];
330
+ return t9;
311
331
  }
312
332
 
313
333
  //#endregion