@questpie/admin 3.2.4 → 3.2.6

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (255) hide show
  1. package/dist/client/blocks/block-renderer.d.mts +2 -2
  2. package/dist/client/blocks/block-renderer.mjs +164 -339
  3. package/dist/client/components/actions/action-button.mjs +9 -9
  4. package/dist/client/components/actions/action-dialog.mjs +195 -493
  5. package/dist/client/components/actions/confirmation-dialog.mjs +44 -159
  6. package/dist/client/components/actions/header-actions.mjs +73 -165
  7. package/dist/client/components/admin-link.d.mts +2 -2
  8. package/dist/client/components/admin-link.mjs +40 -126
  9. package/dist/client/components/auth/auth-loading.mjs +9 -44
  10. package/dist/client/components/blocks/block-canvas.mjs +31 -95
  11. package/dist/client/components/blocks/block-editor-context.mjs +13 -57
  12. package/dist/client/components/blocks/block-editor-layout.mjs +72 -166
  13. package/dist/client/components/blocks/block-editor-provider.mjs +184 -245
  14. package/dist/client/components/blocks/block-fields-renderer.mjs +54 -229
  15. package/dist/client/components/blocks/block-insert-button.mjs +49 -165
  16. package/dist/client/components/blocks/block-item-menu.mjs +102 -301
  17. package/dist/client/components/blocks/block-item.mjs +136 -370
  18. package/dist/client/components/blocks/block-library-sidebar.mjs +103 -230
  19. package/dist/client/components/blocks/block-tree.mjs +12 -68
  20. package/dist/client/components/blocks/block-type-icon.mjs +14 -56
  21. package/dist/client/components/brand-logo.mjs +35 -149
  22. package/dist/client/components/component-renderer.mjs +42 -118
  23. package/dist/client/components/error-boundary.mjs +14 -58
  24. package/dist/client/components/fields/array-field.mjs +209 -521
  25. package/dist/client/components/fields/asset-preview-field.mjs +41 -141
  26. package/dist/client/components/fields/blocks-field/blocks-field.mjs +60 -156
  27. package/dist/client/components/fields/boolean-field.mjs +29 -59
  28. package/dist/client/components/fields/date-field.mjs +7 -37
  29. package/dist/client/components/fields/datetime-field.mjs +7 -38
  30. package/dist/client/components/fields/email-field.mjs +25 -54
  31. package/dist/client/components/fields/field-wrapper.mjs +30 -105
  32. package/dist/client/components/fields/json-field.mjs +94 -296
  33. package/dist/client/components/fields/locale-badge.mjs +6 -15
  34. package/dist/client/components/fields/number-field.mjs +27 -60
  35. package/dist/client/components/fields/object-array-field.mjs +283 -659
  36. package/dist/client/components/fields/object-field.mjs +165 -633
  37. package/dist/client/components/fields/relation/displays/cards-display.mjs +106 -220
  38. package/dist/client/components/fields/relation/displays/chips-display.mjs +78 -150
  39. package/dist/client/components/fields/relation/displays/grid-display.mjs +92 -186
  40. package/dist/client/components/fields/relation/displays/list-display.mjs +122 -239
  41. package/dist/client/components/fields/relation/displays/table-display.mjs +70 -244
  42. package/dist/client/components/fields/relation/relation-items-display.mjs +30 -126
  43. package/dist/client/components/fields/relation-field.mjs +10 -66
  44. package/dist/client/components/fields/relation-picker.mjs +18 -18
  45. package/dist/client/components/fields/relation-select.mjs +12 -12
  46. package/dist/client/components/fields/rich-text-editor/bubble-menu.mjs +80 -180
  47. package/dist/client/components/fields/rich-text-editor/image-popover.mjs +2 -2
  48. package/dist/client/components/fields/rich-text-editor/image-upload.mjs +13 -29
  49. package/dist/client/components/fields/rich-text-editor/index.mjs +195 -513
  50. package/dist/client/components/fields/rich-text-editor/slash-commands.mjs +61 -111
  51. package/dist/client/components/fields/rich-text-editor/table-controls.mjs +105 -415
  52. package/dist/client/components/fields/rich-text-editor/toolbar.mjs +256 -511
  53. package/dist/client/components/fields/rich-text-field.mjs +14 -53
  54. package/dist/client/components/fields/select-field.mjs +61 -72
  55. package/dist/client/components/fields/text-field.mjs +26 -59
  56. package/dist/client/components/fields/textarea-field.mjs +26 -58
  57. package/dist/client/components/fields/time-field.mjs +7 -35
  58. package/dist/client/components/fields/upload-field.mjs +47 -165
  59. package/dist/client/components/filter-builder/columns-tab.mjs +80 -280
  60. package/dist/client/components/filter-builder/filter-builder-sheet.mjs +197 -540
  61. package/dist/client/components/filter-builder/filters-tab.mjs +96 -386
  62. package/dist/client/components/filter-builder/saved-views-tab.mjs +133 -351
  63. package/dist/client/components/history-sidebar.mjs +285 -605
  64. package/dist/client/components/layout/field-layout-renderer.mjs +106 -254
  65. package/dist/client/components/locale-switcher.mjs +106 -228
  66. package/dist/client/components/media/media-grid.mjs +84 -273
  67. package/dist/client/components/media/media-picker-dialog.mjs +176 -476
  68. package/dist/client/components/preview/live-preview-mode.mjs +233 -458
  69. package/dist/client/components/preview/preview-pane.mjs +22 -22
  70. package/dist/client/components/primitives/asset-preview.mjs +290 -666
  71. package/dist/client/components/primitives/checkbox-input.mjs +9 -35
  72. package/dist/client/components/primitives/date-input.mjs +109 -327
  73. package/dist/client/components/primitives/dropzone.mjs +209 -336
  74. package/dist/client/components/primitives/field-select-control.mjs +12 -80
  75. package/dist/client/components/primitives/number-input.mjs +4 -4
  76. package/dist/client/components/primitives/select-multi.mjs +229 -572
  77. package/dist/client/components/primitives/select-single.mjs +179 -499
  78. package/dist/client/components/primitives/time-input.mjs +43 -117
  79. package/dist/client/components/primitives/toggle-input.mjs +9 -29
  80. package/dist/client/components/sheets/resource-sheet.mjs +61 -70
  81. package/dist/client/components/ui/accordion.mjs +35 -155
  82. package/dist/client/components/ui/alert.mjs +13 -68
  83. package/dist/client/components/ui/badge.mjs +9 -51
  84. package/dist/client/components/ui/button.mjs +8 -54
  85. package/dist/client/components/ui/card.mjs +37 -193
  86. package/dist/client/components/ui/checkbox.mjs +12 -68
  87. package/dist/client/components/ui/command.mjs +48 -219
  88. package/dist/client/components/ui/dialog.mjs +50 -262
  89. package/dist/client/components/ui/drawer.mjs +55 -259
  90. package/dist/client/components/ui/dropdown-menu.mjs +86 -427
  91. package/dist/client/components/ui/empty-state.mjs +28 -98
  92. package/dist/client/components/ui/field.mjs +73 -309
  93. package/dist/client/components/ui/input-group.mjs +42 -167
  94. package/dist/client/components/ui/input.mjs +7 -37
  95. package/dist/client/components/ui/kbd.mjs +6 -36
  96. package/dist/client/components/ui/label.mjs +7 -37
  97. package/dist/client/components/ui/popover.mjs +34 -169
  98. package/dist/client/components/ui/responsive-dialog.mjs +67 -273
  99. package/dist/client/components/ui/scroll-fade.mjs +63 -158
  100. package/dist/client/components/ui/search-input.mjs +33 -100
  101. package/dist/client/components/ui/select.mjs +72 -393
  102. package/dist/client/components/ui/separator.mjs +7 -38
  103. package/dist/client/components/ui/sheet.mjs +49 -269
  104. package/dist/client/components/ui/sidebar.mjs +171 -690
  105. package/dist/client/components/ui/skeleton.mjs +7 -38
  106. package/dist/client/components/ui/sonner.mjs +11 -42
  107. package/dist/client/components/ui/switch.mjs +9 -45
  108. package/dist/client/components/ui/table.mjs +48 -266
  109. package/dist/client/components/ui/tabs.mjs +26 -139
  110. package/dist/client/components/ui/textarea.mjs +6 -32
  111. package/dist/client/components/ui/tooltip.mjs +27 -129
  112. package/dist/client/components/widgets/chart-widget.mjs +174 -522
  113. package/dist/client/components/widgets/progress-widget.mjs +66 -172
  114. package/dist/client/components/widgets/quick-actions-widget.mjs +102 -261
  115. package/dist/client/components/widgets/recent-items-widget.mjs +69 -195
  116. package/dist/client/components/widgets/stats-widget.mjs +41 -175
  117. package/dist/client/components/widgets/table-widget.mjs +9 -9
  118. package/dist/client/components/widgets/timeline-widget.mjs +86 -226
  119. package/dist/client/components/widgets/value-widget.mjs +74 -381
  120. package/dist/client/components/widgets/widget-empty-state.mjs +26 -76
  121. package/dist/client/components/widgets/widget-skeletons.mjs +138 -421
  122. package/dist/client/contexts/focus-context.mjs +63 -146
  123. package/dist/client/hooks/typed-hooks.mjs +241 -701
  124. package/dist/client/hooks/use-action.mjs +62 -198
  125. package/dist/client/hooks/use-admin-config.mjs +5 -35
  126. package/dist/client/hooks/use-admin-preferences.mjs +16 -88
  127. package/dist/client/hooks/use-admin-routes.mjs +22 -56
  128. package/dist/client/hooks/use-audit-history.mjs +21 -69
  129. package/dist/client/hooks/use-brand.mjs +1 -9
  130. package/dist/client/hooks/use-collection-fields.mjs +17 -57
  131. package/dist/client/hooks/use-collection-meta.mjs +12 -44
  132. package/dist/client/hooks/use-collection-schema.mjs +10 -33
  133. package/dist/client/hooks/use-collection-validation.mjs +23 -53
  134. package/dist/client/hooks/use-collection.mjs +194 -614
  135. package/dist/client/hooks/use-current-user.mjs +0 -1
  136. package/dist/client/hooks/use-field-hooks.mjs +10 -10
  137. package/dist/client/hooks/use-field-options.mjs +61 -202
  138. package/dist/client/hooks/use-global-fields.mjs +14 -46
  139. package/dist/client/hooks/use-global-meta.mjs +9 -30
  140. package/dist/client/hooks/use-global-schema.mjs +9 -30
  141. package/dist/client/hooks/use-global.mjs +63 -219
  142. package/dist/client/hooks/use-locks.mjs +117 -325
  143. package/dist/client/hooks/use-media-query.mjs +16 -36
  144. package/dist/client/hooks/use-prefill-params.mjs +0 -1
  145. package/dist/client/hooks/use-questpie-query-options.mjs +12 -29
  146. package/dist/client/hooks/use-reactive-fields.mjs +1 -1
  147. package/dist/client/hooks/use-reactive-prop.mjs +65 -223
  148. package/dist/client/hooks/use-realtime-highlight.mjs +51 -114
  149. package/dist/client/hooks/use-saved-views.mjs +22 -103
  150. package/dist/client/hooks/use-search-param-toggle.mjs +28 -79
  151. package/dist/client/hooks/use-search.mjs +31 -143
  152. package/dist/client/hooks/use-server-actions.mjs +18 -50
  153. package/dist/client/hooks/use-server-validation.mjs +72 -166
  154. package/dist/client/hooks/use-server-widget-data.mjs +7 -33
  155. package/dist/client/hooks/use-setup-status.mjs +12 -25
  156. package/dist/client/hooks/use-sidebar-search-param.mjs +33 -78
  157. package/dist/client/hooks/use-transition-stage.mjs +8 -38
  158. package/dist/client/hooks/use-upload.mjs +54 -152
  159. package/dist/client/hooks/use-validation-error-map.mjs +6 -26
  160. package/dist/client/hooks/use-view-state.mjs +187 -437
  161. package/dist/client/i18n/hooks.mjs +65 -197
  162. package/dist/client/lib/render-profiler.mjs +14 -41
  163. package/dist/client/preview/block-scope-context.mjs +14 -36
  164. package/dist/client/preview/preview-banner.d.mts +2 -2
  165. package/dist/client/preview/preview-banner.mjs +42 -108
  166. package/dist/client/preview/preview-field.d.mts +4 -4
  167. package/dist/client/preview/preview-field.mjs +167 -348
  168. package/dist/client/preview/use-collection-preview.mjs +121 -215
  169. package/dist/client/runtime/content-locales-provider.mjs +31 -83
  170. package/dist/client/runtime/locale-scope.mjs +22 -63
  171. package/dist/client/runtime/provider.mjs +100 -255
  172. package/dist/client/runtime/translations-provider.mjs +41 -107
  173. package/dist/client/scope/picker.mjs +86 -321
  174. package/dist/client/scope/provider.mjs +8 -17
  175. package/dist/client/utils/build-field-definitions-from-schema.mjs +4 -2
  176. package/dist/client/views/auth/accept-invite-form.d.mts +2 -2
  177. package/dist/client/views/auth/accept-invite-form.mjs +121 -412
  178. package/dist/client/views/auth/auth-layout.d.mts +3 -3
  179. package/dist/client/views/auth/auth-layout.mjs +104 -284
  180. package/dist/client/views/auth/forgot-password-form.d.mts +2 -2
  181. package/dist/client/views/auth/forgot-password-form.mjs +94 -325
  182. package/dist/client/views/auth/invite-form.mjs +107 -442
  183. package/dist/client/views/auth/login-form.d.mts +2 -2
  184. package/dist/client/views/auth/login-form.mjs +116 -337
  185. package/dist/client/views/auth/reset-password-form.d.mts +2 -2
  186. package/dist/client/views/auth/reset-password-form.mjs +128 -453
  187. package/dist/client/views/auth/setup-form.d.mts +2 -2
  188. package/dist/client/views/auth/setup-form.mjs +140 -478
  189. package/dist/client/views/collection/auto-form-fields.mjs +243 -615
  190. package/dist/client/views/collection/bulk-action-toolbar.mjs +212 -379
  191. package/dist/client/views/collection/cells/complex-cells.mjs +183 -611
  192. package/dist/client/views/collection/cells/primitive-cells.mjs +116 -356
  193. package/dist/client/views/collection/cells/relation-cells.mjs +86 -233
  194. package/dist/client/views/collection/cells/shared/asset-thumbnail.mjs +142 -371
  195. package/dist/client/views/collection/cells/shared/relation-chip.mjs +35 -131
  196. package/dist/client/views/collection/cells/upload-cells.mjs +60 -177
  197. package/dist/client/views/collection/columns/build-columns.mjs +8 -48
  198. package/dist/client/views/collection/field-renderer.mjs +58 -182
  199. package/dist/client/views/collection/form-view.mjs +284 -518
  200. package/dist/client/views/collection/table-view.mjs +231 -463
  201. package/dist/client/views/collection/view-skeletons.mjs +112 -237
  202. package/dist/client/views/common/global-search.mjs +241 -560
  203. package/dist/client/views/dashboard/dashboard-grid.mjs +256 -775
  204. package/dist/client/views/dashboard/dashboard-widget.mjs +38 -126
  205. package/dist/client/views/dashboard/widget-card.mjs +61 -269
  206. package/dist/client/views/globals/global-form-view.mjs +477 -1301
  207. package/dist/client/views/layout/admin-layout-provider.mjs +28 -88
  208. package/dist/client/views/layout/admin-layout.mjs +83 -246
  209. package/dist/client/views/layout/admin-router.mjs +458 -1274
  210. package/dist/client/views/layout/admin-sidebar.mjs +510 -1292
  211. package/dist/client/views/layout/admin-theme.mjs +30 -64
  212. package/dist/client/views/layout/admin-view-layout.mjs +40 -144
  213. package/dist/client/views/pages/accept-invite-page.d.mts +2 -2
  214. package/dist/client/views/pages/accept-invite-page.mjs +95 -290
  215. package/dist/client/views/pages/dashboard-page.d.mts +2 -2
  216. package/dist/client/views/pages/dashboard-page.mjs +11 -57
  217. package/dist/client/views/pages/forgot-password-page.d.mts +2 -2
  218. package/dist/client/views/pages/forgot-password-page.mjs +31 -83
  219. package/dist/client/views/pages/invite-page.d.mts +2 -2
  220. package/dist/client/views/pages/invite-page.mjs +35 -90
  221. package/dist/client/views/pages/login-page.d.mts +2 -2
  222. package/dist/client/views/pages/login-page.mjs +41 -121
  223. package/dist/client/views/pages/reset-password-page.d.mts +2 -2
  224. package/dist/client/views/pages/reset-password-page.mjs +46 -173
  225. package/dist/client/views/pages/setup-page.d.mts +2 -2
  226. package/dist/client/views/pages/setup-page.mjs +33 -95
  227. package/dist/components/rich-text/rich-text-renderer.mjs +9 -33
  228. package/dist/server/adapters/index.d.mts +2 -0
  229. package/dist/server/adapters/nextjs.d.mts +1 -0
  230. package/dist/server/auth-helpers.d.mts +1 -0
  231. package/dist/server/modules/admin/.generated/module.d.mts +1 -0
  232. package/dist/server/modules/admin/collections/account.d.mts +46 -46
  233. package/dist/server/modules/admin/collections/admin-locks.d.mts +50 -50
  234. package/dist/server/modules/admin/collections/admin-preferences.d.mts +39 -39
  235. package/dist/server/modules/admin/collections/admin-saved-views.d.mts +47 -47
  236. package/dist/server/modules/admin/collections/apikey.d.mts +68 -68
  237. package/dist/server/modules/admin/collections/assets.d.mts +39 -39
  238. package/dist/server/modules/admin/collections/session.d.mts +42 -42
  239. package/dist/server/modules/admin/collections/user.d.mts +62 -62
  240. package/dist/server/modules/admin/collections/verification.d.mts +23 -23
  241. package/dist/server/modules/admin/index.d.mts +20 -19
  242. package/dist/server/modules/admin/routes/admin-config.d.mts +2 -2
  243. package/dist/server/modules/admin/routes/execute-action.d.mts +9 -9
  244. package/dist/server/modules/admin/routes/locales.d.mts +2 -2
  245. package/dist/server/modules/admin/routes/preview.d.mts +11 -11
  246. package/dist/server/modules/admin/routes/reactive.d.mts +9 -9
  247. package/dist/server/modules/admin/routes/setup.d.mts +7 -7
  248. package/dist/server/modules/admin/routes/translations.d.mts +4 -4
  249. package/dist/server/modules/admin/routes/widget-data.d.mts +5 -5
  250. package/dist/server/modules/admin-preferences/collections/saved-views.d.mts +45 -45
  251. package/dist/server/modules/audit/.generated/module.d.mts +6 -6
  252. package/dist/server/modules/audit/collections/audit-log.d.mts +78 -78
  253. package/dist/server/modules/audit/jobs/audit-cleanup.d.mts +2 -2
  254. package/dist/server.d.mts +2 -0
  255. package/package.json +3 -5
@@ -6,7 +6,6 @@ import { WidgetCard } from "../../views/dashboard/widget-card.mjs";
6
6
  import { useServerWidgetData } from "../../hooks/use-server-widget-data.mjs";
7
7
  import { WidgetEmptyState } from "./widget-empty-state.mjs";
8
8
  import { TimelineWidgetSkeleton } from "./widget-skeletons.mjs";
9
- import { c } from "react/compiler-runtime";
10
9
  import { Icon } from "@iconify/react";
11
10
  import { useQuery } from "@tanstack/react-query";
12
11
  import { Fragment, jsx, jsxs } from "react/jsx-runtime";
@@ -80,240 +79,101 @@ function formatTimestamp(date, format = "relative", t, formatDate) {
80
79
  * />
81
80
  * ```
82
81
  */
83
- function TimelineWidget(t0) {
84
- const $ = c(64);
85
- const { config, navigate } = t0;
82
+ function TimelineWidget({ config, navigate }) {
86
83
  const client = useAdminStore(selectClient);
87
84
  const resolveText = useResolveText();
88
85
  const { t, formatDate } = useTranslation();
89
- const { maxItems: t1, showTimestamps: t2, timestampFormat: t3, emptyMessage } = config;
90
- const maxItems = t1 === void 0 ? 10 : t1;
91
- const showTimestamps = t2 === void 0 ? true : t2;
92
- const timestampFormat = t3 === void 0 ? "relative" : t3;
86
+ const { maxItems = 10, showTimestamps = true, timestampFormat = "relative", emptyMessage } = config;
93
87
  const useServerData = !!config.hasLoader;
94
- let t4;
95
- if ($[0] !== config.refreshInterval || $[1] !== useServerData) {
96
- t4 = {
97
- enabled: useServerData,
98
- refreshInterval: config.refreshInterval
99
- };
100
- $[0] = config.refreshInterval;
101
- $[1] = useServerData;
102
- $[2] = t4;
103
- } else t4 = $[2];
104
- const serverQuery = useServerWidgetData(config.id, t4);
105
- let t5;
106
- if ($[3] !== config.id) {
107
- t5 = [
88
+ const serverQuery = useServerWidgetData(config.id, {
89
+ enabled: useServerData,
90
+ refreshInterval: config.refreshInterval
91
+ });
92
+ const clientQuery = useQuery({
93
+ queryKey: [
108
94
  "widget",
109
95
  "timeline",
110
96
  config.id
111
- ];
112
- $[3] = config.id;
113
- $[4] = t5;
114
- } else t5 = $[4];
115
- let t6;
116
- if ($[5] !== client || $[6] !== config.loader) {
117
- t6 = () => config.loader(client);
118
- $[5] = client;
119
- $[6] = config.loader;
120
- $[7] = t6;
121
- } else t6 = $[7];
122
- const t7 = !useServerData && !!config.loader;
123
- let t8;
124
- if ($[8] !== config.refreshInterval || $[9] !== t5 || $[10] !== t6 || $[11] !== t7) {
125
- t8 = {
126
- queryKey: t5,
127
- queryFn: t6,
128
- enabled: t7,
129
- refetchInterval: config.refreshInterval
130
- };
131
- $[8] = config.refreshInterval;
132
- $[9] = t5;
133
- $[10] = t6;
134
- $[11] = t7;
135
- $[12] = t8;
136
- } else t8 = $[12];
137
- const clientQuery = useQuery(t8);
97
+ ],
98
+ queryFn: () => config.loader(client),
99
+ enabled: !useServerData && !!config.loader,
100
+ refetchInterval: config.refreshInterval
101
+ });
138
102
  const { data, isLoading, error, refetch, isFetching } = useServerData ? serverQuery : clientQuery;
139
- let t9;
140
- let title;
141
- if ($[13] !== config.title || $[14] !== data || $[15] !== emptyMessage || $[16] !== formatDate || $[17] !== maxItems || $[18] !== navigate || $[19] !== resolveText || $[20] !== showTimestamps || $[21] !== t || $[22] !== timestampFormat) {
142
- const items = data?.slice(0, maxItems) ?? [];
143
- let t10$1;
144
- if ($[25] !== config.title || $[26] !== resolveText) {
145
- t10$1 = config.title ? resolveText(config.title) : void 0;
146
- $[25] = config.title;
147
- $[26] = resolveText;
148
- $[27] = t10$1;
149
- } else t10$1 = $[27];
150
- title = t10$1;
151
- let t11$1;
152
- if ($[28] !== navigate) {
153
- t11$1 = (item) => {
154
- if (item.href && navigate) navigate(item.href);
155
- };
156
- $[28] = navigate;
157
- $[29] = t11$1;
158
- } else t11$1 = $[29];
159
- const handleItemClick = t11$1;
160
- let t12$1;
161
- if ($[30] !== emptyMessage || $[31] !== resolveText) {
162
- t12$1 = emptyMessage ? resolveText(emptyMessage) : void 0;
163
- $[30] = emptyMessage;
164
- $[31] = resolveText;
165
- $[32] = t12$1;
166
- } else t12$1 = $[32];
167
- const resolvedEmptyMessage = t12$1;
168
- let t13$1;
169
- if ($[33] !== resolvedEmptyMessage || $[34] !== t) {
170
- t13$1 = resolvedEmptyMessage ?? t("widget.timeline.emptyTitle");
171
- $[33] = resolvedEmptyMessage;
172
- $[34] = t;
173
- $[35] = t13$1;
174
- } else t13$1 = $[35];
175
- let t14$1;
176
- if ($[36] !== resolvedEmptyMessage || $[37] !== t) {
177
- t14$1 = resolvedEmptyMessage ? void 0 : t("widget.timeline.emptyDescription");
178
- $[36] = resolvedEmptyMessage;
179
- $[37] = t;
180
- $[38] = t14$1;
181
- } else t14$1 = $[38];
182
- let t15$1;
183
- if ($[39] !== t13$1 || $[40] !== t14$1) {
184
- t15$1 = /* @__PURE__ */ jsx(WidgetEmptyState, {
185
- iconName: "ph:clock-counter-clockwise",
186
- title: t13$1,
187
- description: t14$1
188
- });
189
- $[39] = t13$1;
190
- $[40] = t14$1;
191
- $[41] = t15$1;
192
- } else t15$1 = $[41];
193
- const emptyContent = t15$1;
194
- t9 = items.length === 0 ? emptyContent : /* @__PURE__ */ jsx("div", {
195
- className: "space-y-0",
196
- children: items.map((item_0, index) => {
197
- const iconElement = resolveIconElement(item_0.icon, { className: "h-3 w-3 text-white" });
198
- const variant = item_0.variant || "default";
199
- const isLast = index === items.length - 1;
200
- const isClickable = !!(item_0.href && navigate);
201
- const itemContent = /* @__PURE__ */ jsxs(Fragment, { children: [
202
- !isLast && /* @__PURE__ */ jsx("div", { className: "bg-border absolute top-6 bottom-0 left-[11px] w-px" }),
203
- /* @__PURE__ */ jsx("div", {
204
- className: cn("relative z-10 flex h-6 w-6 shrink-0 items-center justify-center rounded-full", variantStyles[variant]),
205
- children: iconElement ?? /* @__PURE__ */ jsx(Icon, {
206
- icon: "ph:circle-bold",
207
- className: "h-3 w-3 text-white"
208
- })
209
- }),
210
- /* @__PURE__ */ jsxs("div", {
211
- className: "min-w-0 flex-1 pt-0.5 text-left",
212
- children: [
213
- /* @__PURE__ */ jsx("p", {
214
- className: "truncate text-sm font-medium",
215
- children: item_0.title
216
- }),
217
- item_0.description && /* @__PURE__ */ jsx("p", {
218
- className: "text-muted-foreground mt-0.5 line-clamp-2 text-xs",
219
- children: item_0.description
220
- }),
221
- showTimestamps && item_0.timestamp && /* @__PURE__ */ jsx("p", {
222
- className: "text-muted-foreground mt-1 text-xs",
223
- children: formatTimestamp(item_0.timestamp, timestampFormat, t, formatDate)
224
- })
225
- ]
103
+ const items = data?.slice(0, maxItems) ?? [];
104
+ const title = config.title ? resolveText(config.title) : void 0;
105
+ const handleItemClick = (item) => {
106
+ if (item.href && navigate) navigate(item.href);
107
+ };
108
+ const resolvedEmptyMessage = emptyMessage ? resolveText(emptyMessage) : void 0;
109
+ const emptyContent = /* @__PURE__ */ jsx(WidgetEmptyState, {
110
+ iconName: "ph:clock-counter-clockwise",
111
+ title: resolvedEmptyMessage ?? t("widget.timeline.emptyTitle"),
112
+ description: resolvedEmptyMessage ? void 0 : t("widget.timeline.emptyDescription")
113
+ });
114
+ const timelineContent = items.length === 0 ? emptyContent : /* @__PURE__ */ jsx("div", {
115
+ className: "space-y-0",
116
+ children: items.map((item, index) => {
117
+ const iconElement = resolveIconElement(item.icon, { className: "h-3 w-3 text-white" });
118
+ const variant = item.variant || "default";
119
+ const isLast = index === items.length - 1;
120
+ const isClickable = !!(item.href && navigate);
121
+ const itemContent = /* @__PURE__ */ jsxs(Fragment, { children: [
122
+ !isLast && /* @__PURE__ */ jsx("div", { className: "bg-border absolute top-6 bottom-0 left-[11px] w-px" }),
123
+ /* @__PURE__ */ jsx("div", {
124
+ className: cn("relative z-10 flex h-6 w-6 shrink-0 items-center justify-center rounded-full", variantStyles[variant]),
125
+ children: iconElement ?? /* @__PURE__ */ jsx(Icon, {
126
+ icon: "ph:circle-bold",
127
+ className: "h-3 w-3 text-white"
226
128
  })
227
- ] });
228
- return /* @__PURE__ */ jsx("div", {
229
- className: cn("relative flex gap-3 pb-4", isLast && "pb-0"),
230
- ...isClickable ? {
231
- role: "button",
232
- tabIndex: 0,
233
- onClick: () => handleItemClick(item_0),
234
- onKeyDown: (e) => {
235
- if (e.key === "Enter" || e.key === " ") handleItemClick(item_0);
236
- },
237
- style: { cursor: "pointer" }
238
- } : {},
239
- children: itemContent
240
- }, item_0.id);
241
- })
242
- });
243
- $[13] = config.title;
244
- $[14] = data;
245
- $[15] = emptyMessage;
246
- $[16] = formatDate;
247
- $[17] = maxItems;
248
- $[18] = navigate;
249
- $[19] = resolveText;
250
- $[20] = showTimestamps;
251
- $[21] = t;
252
- $[22] = timestampFormat;
253
- $[23] = t9;
254
- $[24] = title;
255
- } else {
256
- t9 = $[23];
257
- title = $[24];
258
- }
259
- const timelineContent = t9;
260
- let t10;
261
- if ($[42] !== config.description || $[43] !== resolveText) {
262
- t10 = config.description ? resolveText(config.description) : void 0;
263
- $[42] = config.description;
264
- $[43] = resolveText;
265
- $[44] = t10;
266
- } else t10 = $[44];
267
- const t11 = isFetching && !isLoading;
268
- let t12;
269
- if ($[45] !== maxItems) {
270
- t12 = /* @__PURE__ */ jsx(TimelineWidgetSkeleton, { count: maxItems });
271
- $[45] = maxItems;
272
- $[46] = t12;
273
- } else t12 = $[46];
274
- let t13;
275
- if ($[47] !== error) {
276
- t13 = error instanceof Error ? error : error ? new Error(String(error)) : null;
277
- $[47] = error;
278
- $[48] = t13;
279
- } else t13 = $[48];
280
- let t14;
281
- if ($[49] !== refetch) {
282
- t14 = () => refetch();
283
- $[49] = refetch;
284
- $[50] = t14;
285
- } else t14 = $[50];
286
- let t15;
287
- if ($[51] !== config.actions || $[52] !== config.cardVariant || $[53] !== config.className || $[54] !== config.icon || $[55] !== isLoading || $[56] !== t10 || $[57] !== t11 || $[58] !== t12 || $[59] !== t13 || $[60] !== t14 || $[61] !== timelineContent || $[62] !== title) {
288
- t15 = /* @__PURE__ */ jsx(WidgetCard, {
289
- title,
290
- description: t10,
291
- icon: config.icon,
292
- variant: config.cardVariant,
293
- isLoading,
294
- isRefreshing: t11,
295
- loadingSkeleton: t12,
296
- error: t13,
297
- onRefresh: t14,
298
- actions: config.actions,
299
- className: config.className,
300
- children: timelineContent
301
- });
302
- $[51] = config.actions;
303
- $[52] = config.cardVariant;
304
- $[53] = config.className;
305
- $[54] = config.icon;
306
- $[55] = isLoading;
307
- $[56] = t10;
308
- $[57] = t11;
309
- $[58] = t12;
310
- $[59] = t13;
311
- $[60] = t14;
312
- $[61] = timelineContent;
313
- $[62] = title;
314
- $[63] = t15;
315
- } else t15 = $[63];
316
- return t15;
129
+ }),
130
+ /* @__PURE__ */ jsxs("div", {
131
+ className: "min-w-0 flex-1 pt-0.5 text-left",
132
+ children: [
133
+ /* @__PURE__ */ jsx("p", {
134
+ className: "truncate text-sm font-medium",
135
+ children: item.title
136
+ }),
137
+ item.description && /* @__PURE__ */ jsx("p", {
138
+ className: "text-muted-foreground mt-0.5 line-clamp-2 text-xs",
139
+ children: item.description
140
+ }),
141
+ showTimestamps && item.timestamp && /* @__PURE__ */ jsx("p", {
142
+ className: "text-muted-foreground mt-1 text-xs",
143
+ children: formatTimestamp(item.timestamp, timestampFormat, t, formatDate)
144
+ })
145
+ ]
146
+ })
147
+ ] });
148
+ return /* @__PURE__ */ jsx("div", {
149
+ className: cn("relative flex gap-3 pb-4", isLast && "pb-0"),
150
+ ...isClickable ? {
151
+ role: "button",
152
+ tabIndex: 0,
153
+ onClick: () => handleItemClick(item),
154
+ onKeyDown: (e) => {
155
+ if (e.key === "Enter" || e.key === " ") handleItemClick(item);
156
+ },
157
+ style: { cursor: "pointer" }
158
+ } : {},
159
+ children: itemContent
160
+ }, item.id);
161
+ })
162
+ });
163
+ return /* @__PURE__ */ jsx(WidgetCard, {
164
+ title,
165
+ description: config.description ? resolveText(config.description) : void 0,
166
+ icon: config.icon,
167
+ variant: config.cardVariant,
168
+ isLoading,
169
+ isRefreshing: isFetching && !isLoading,
170
+ loadingSkeleton: /* @__PURE__ */ jsx(TimelineWidgetSkeleton, { count: maxItems }),
171
+ error: error instanceof Error ? error : error ? new Error(String(error)) : null,
172
+ onRefresh: () => refetch(),
173
+ actions: config.actions,
174
+ className: config.className,
175
+ children: timelineContent
176
+ });
317
177
  }
318
178
 
319
179
  //#endregion