@expcat/tigercat-vue 1.2.23 → 1.2.31
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.
- package/dist/{chunk-OK7MTFAX.mjs → chunk-4GYBJBFJ.mjs} +76 -19
- package/dist/{chunk-YCBU3C4T.mjs → chunk-4J5EK3WY.mjs} +100 -35
- package/dist/{chunk-2C5TOAYI.js → chunk-663C2UX7.js} +2 -2
- package/dist/{chunk-P453RVKY.js → chunk-6G5IMGTC.js} +85 -14
- package/dist/{chunk-NMVKDWMK.mjs → chunk-7U673KY5.mjs} +77 -8
- package/dist/{chunk-5ZAIW5W3.mjs → chunk-AQE5RZDE.mjs} +1 -1
- package/dist/{chunk-DYJ4Z47L.mjs → chunk-BPRKQVIL.mjs} +143 -46
- package/dist/{chunk-V6YR7CPK.js → chunk-CNRBYRK6.js} +56 -21
- package/dist/{chunk-KOLARHCT.js → chunk-DEDRUUK4.js} +1 -0
- package/dist/{chunk-VPNIZPIF.js → chunk-DS7RQFEG.js} +15 -2
- package/dist/{chunk-BGMQIUPP.js → chunk-EU4IGIPC.js} +7 -4
- package/dist/{chunk-CN7HFUFN.mjs → chunk-F5S26BR3.mjs} +7 -4
- package/dist/{chunk-YCBLL5K3.js → chunk-FKLK6RHZ.js} +76 -19
- package/dist/{chunk-U5S3ZEYZ.js → chunk-H5JDEKIV.js} +100 -35
- package/dist/{chunk-XMGU52S5.js → chunk-L6W3XL3A.js} +143 -46
- package/dist/{chunk-F5JPUPWI.mjs → chunk-OF4MY6EC.mjs} +1 -0
- package/dist/{chunk-KLX7YHP2.mjs → chunk-OZLSZQXF.mjs} +83 -12
- package/dist/{chunk-ATRF7NPJ.mjs → chunk-PKMSTN65.mjs} +55 -20
- package/dist/{chunk-PUSTYAMS.mjs → chunk-RE7K3KNW.mjs} +16 -3
- package/dist/{chunk-IIEMDA36.mjs → chunk-S45NWVQS.mjs} +14 -8
- package/dist/{chunk-CBZIVUCJ.js → chunk-VES3OJOP.js} +14 -8
- package/dist/{chunk-OW5D4LU6.js → chunk-YS6YQKYU.js} +80 -11
- package/dist/components/ActivityFeed.d.mts +2 -2
- package/dist/components/ActivityFeed.d.ts +2 -2
- package/dist/components/ActivityFeed.js +2 -2
- package/dist/components/ActivityFeed.mjs +1 -1
- package/dist/components/Alert.d.mts +5 -5
- package/dist/components/Alert.d.ts +5 -5
- package/dist/components/Anchor.d.mts +2 -2
- package/dist/components/Anchor.d.ts +2 -2
- package/dist/components/BackTop.d.mts +1 -1
- package/dist/components/BackTop.d.ts +1 -1
- package/dist/components/ButtonGroup.d.mts +1 -1
- package/dist/components/ButtonGroup.d.ts +1 -1
- package/dist/components/Card.d.mts +1 -1
- package/dist/components/Card.d.ts +1 -1
- package/dist/components/ChatWindow.js +3 -2
- package/dist/components/ChatWindow.mjs +2 -1
- package/dist/components/CodeEditor.d.mts +1 -1
- package/dist/components/CodeEditor.d.ts +1 -1
- package/dist/components/CollapsePanel.d.mts +1 -1
- package/dist/components/CollapsePanel.d.ts +1 -1
- package/dist/components/CommentThread.d.mts +1 -1
- package/dist/components/CommentThread.d.ts +1 -1
- package/dist/components/CommentThread.js +2 -2
- package/dist/components/CommentThread.mjs +1 -1
- package/dist/components/Countdown.d.mts +1 -1
- package/dist/components/Countdown.d.ts +1 -1
- package/dist/components/CropUpload.js +2 -2
- package/dist/components/CropUpload.mjs +1 -1
- package/dist/components/DataTableWithToolbar.d.mts +3 -3
- package/dist/components/DataTableWithToolbar.d.ts +3 -3
- package/dist/components/DataTableWithToolbar.js +4 -3
- package/dist/components/DataTableWithToolbar.mjs +3 -2
- package/dist/components/DatePicker.d.mts +1 -1
- package/dist/components/DatePicker.d.ts +1 -1
- package/dist/components/Descriptions.d.mts +1 -1
- package/dist/components/Descriptions.d.ts +1 -1
- package/dist/components/Drawer.d.mts +4 -4
- package/dist/components/Drawer.d.ts +4 -4
- package/dist/components/Empty.d.mts +1 -1
- package/dist/components/Empty.d.ts +1 -1
- package/dist/components/FileManager.d.mts +1 -1
- package/dist/components/FileManager.d.ts +1 -1
- package/dist/components/FormWizard.d.mts +12 -3
- package/dist/components/FormWizard.d.ts +12 -3
- package/dist/components/FormWizard.js +3 -3
- package/dist/components/FormWizard.mjs +2 -2
- package/dist/components/HeatmapChart.d.mts +1 -1
- package/dist/components/HeatmapChart.d.ts +1 -1
- package/dist/components/InfiniteScroll.d.mts +1 -1
- package/dist/components/InfiniteScroll.d.ts +1 -1
- package/dist/components/Kanban.d.mts +1 -1
- package/dist/components/Kanban.d.ts +1 -1
- package/dist/components/Kanban.js +3 -3
- package/dist/components/Kanban.mjs +2 -2
- package/dist/components/List.d.mts +2 -2
- package/dist/components/List.d.ts +2 -2
- package/dist/components/MarkdownEditor.d.mts +1 -1
- package/dist/components/MarkdownEditor.d.ts +1 -1
- package/dist/components/Menu.d.mts +5 -5
- package/dist/components/Menu.d.ts +5 -5
- package/dist/components/Modal.d.mts +8 -8
- package/dist/components/Modal.d.ts +8 -8
- package/dist/components/NotificationCenter.d.mts +3 -3
- package/dist/components/NotificationCenter.d.ts +3 -3
- package/dist/components/NotificationCenter.js +2 -2
- package/dist/components/NotificationCenter.mjs +1 -1
- package/dist/components/NumberKeyboard.d.mts +1 -1
- package/dist/components/NumberKeyboard.d.ts +1 -1
- package/dist/components/Pagination.d.mts +2 -2
- package/dist/components/Pagination.d.ts +2 -2
- package/dist/components/Popconfirm.d.mts +5 -5
- package/dist/components/Popconfirm.d.ts +5 -5
- package/dist/components/Popover.d.mts +1 -1
- package/dist/components/Popover.d.ts +1 -1
- package/dist/components/Result.d.mts +1 -1
- package/dist/components/Result.d.ts +1 -1
- package/dist/components/ScrollSpy.d.mts +1 -1
- package/dist/components/ScrollSpy.d.ts +1 -1
- package/dist/components/Space.d.mts +1 -1
- package/dist/components/Space.d.ts +1 -1
- package/dist/components/Splitter.d.mts +1 -1
- package/dist/components/Splitter.d.ts +1 -1
- package/dist/components/Spotlight.d.mts +4 -4
- package/dist/components/Spotlight.d.ts +4 -4
- package/dist/components/Statistic.d.mts +1 -1
- package/dist/components/Statistic.d.ts +1 -1
- package/dist/components/Steps.d.mts +2 -2
- package/dist/components/Steps.d.ts +2 -2
- package/dist/components/Steps.js +2 -2
- package/dist/components/Steps.mjs +1 -1
- package/dist/components/StepsItem.js +3 -3
- package/dist/components/StepsItem.mjs +1 -1
- package/dist/components/Table.d.mts +1 -1
- package/dist/components/Table.d.ts +1 -1
- package/dist/components/Table.js +3 -2
- package/dist/components/Table.mjs +2 -1
- package/dist/components/Tabs.d.mts +2 -2
- package/dist/components/Tabs.d.ts +2 -2
- package/dist/components/Tag.d.mts +2 -2
- package/dist/components/Tag.d.ts +2 -2
- package/dist/components/TaskBoard.d.mts +1 -1
- package/dist/components/TaskBoard.d.ts +1 -1
- package/dist/components/TaskBoard.js +2 -2
- package/dist/components/TaskBoard.mjs +1 -1
- package/dist/components/TimePicker.d.mts +2 -2
- package/dist/components/TimePicker.d.ts +2 -2
- package/dist/components/Timeline.d.mts +2 -2
- package/dist/components/Timeline.d.ts +2 -2
- package/dist/components/Tour.d.mts +4 -4
- package/dist/components/Tour.d.ts +4 -4
- package/dist/components/Tree.d.mts +2 -2
- package/dist/components/Tree.d.ts +2 -2
- package/dist/components/Upload.d.mts +4 -4
- package/dist/components/Upload.d.ts +4 -4
- package/dist/components/VirtualTable.d.mts +1 -1
- package/dist/components/VirtualTable.d.ts +1 -1
- package/dist/index.js +15 -15
- package/dist/index.mjs +14 -14
- package/package.json +2 -2
|
@@ -45,9 +45,11 @@ var renderAction = (item, action, index) => {
|
|
|
45
45
|
key,
|
|
46
46
|
size: "sm",
|
|
47
47
|
variant: "primary",
|
|
48
|
+
underline: false,
|
|
48
49
|
href: action.href,
|
|
49
50
|
target: action.target,
|
|
50
51
|
disabled: action.disabled,
|
|
52
|
+
className: "inline-flex items-center px-2.5 py-1 rounded-lg hover:bg-blue-50/50 dark:hover:bg-blue-950/20 text-xs font-semibold transition-all duration-200",
|
|
51
53
|
onClick: () => action.onClick?.(item, action)
|
|
52
54
|
},
|
|
53
55
|
{
|
|
@@ -138,7 +140,7 @@ var ActivityFeed = defineComponent({
|
|
|
138
140
|
return h(
|
|
139
141
|
"div",
|
|
140
142
|
{
|
|
141
|
-
class: activityItemClasses
|
|
143
|
+
class: classNames(activityItemClasses, "p-4 rounded-2xl border border-gray-100/70 dark:border-gray-800/40 bg-white/40 dark:bg-gray-900/15 backdrop-blur-sm shadow-sm transition-all duration-300 hover:shadow-md hover:shadow-gray-100/30 dark:hover:shadow-none hover:bg-white dark:hover:bg-gray-900/30 hover:-translate-y-0.5 w-full")
|
|
142
144
|
},
|
|
143
145
|
[
|
|
144
146
|
h("div", { class: activityItemLayoutClasses }, [
|
|
@@ -146,14 +148,14 @@ var ActivityFeed = defineComponent({
|
|
|
146
148
|
size: "sm",
|
|
147
149
|
src: item.user.avatar,
|
|
148
150
|
text: item.user.name,
|
|
149
|
-
className: "shrink-0"
|
|
151
|
+
className: "shrink-0 ring-2 ring-white dark:ring-gray-900 shadow-sm transition-transform hover:scale-105 duration-200"
|
|
150
152
|
}) : null,
|
|
151
153
|
h("div", { class: activityItemBodyClasses }, [
|
|
152
154
|
h("div", { class: activityItemHeaderClasses }, [
|
|
153
155
|
h("div", { class: activityItemTitleGroupClasses }, [
|
|
154
156
|
titleText ? h(
|
|
155
157
|
Text,
|
|
156
|
-
{ tag: "div", size: "sm", weight: "
|
|
158
|
+
{ tag: "div", size: "sm", weight: "semibold", class: "text-gray-900 dark:text-gray-100 hover:text-blue-600 dark:hover:text-blue-400 transition-colors cursor-pointer truncate" },
|
|
157
159
|
{ default: () => titleText }
|
|
158
160
|
) : null,
|
|
159
161
|
item.status ? h(
|
|
@@ -161,7 +163,7 @@ var ActivityFeed = defineComponent({
|
|
|
161
163
|
{
|
|
162
164
|
variant: item.status.variant ?? "default",
|
|
163
165
|
size: "sm",
|
|
164
|
-
className: "shrink-0"
|
|
166
|
+
className: "shrink-0 rounded-full px-2 py-0.5 text-[10px] font-semibold tracking-wide uppercase border border-current bg-opacity-10 shadow-sm"
|
|
165
167
|
},
|
|
166
168
|
{ default: () => item.status?.label }
|
|
167
169
|
) : null
|
|
@@ -172,7 +174,7 @@ var ActivityFeed = defineComponent({
|
|
|
172
174
|
tag: "div",
|
|
173
175
|
size: "xs",
|
|
174
176
|
color: "muted",
|
|
175
|
-
class: "shrink-0 whitespace-nowrap"
|
|
177
|
+
class: "shrink-0 whitespace-nowrap font-medium text-gray-400 dark:text-gray-500"
|
|
176
178
|
},
|
|
177
179
|
{ default: () => timeText }
|
|
178
180
|
) : null
|
|
@@ -183,11 +185,11 @@ var ActivityFeed = defineComponent({
|
|
|
183
185
|
tag: "div",
|
|
184
186
|
size: "sm",
|
|
185
187
|
color: "muted",
|
|
186
|
-
class: activityItemDescriptionClasses
|
|
188
|
+
class: classNames(activityItemDescriptionClasses, "text-gray-600 dark:text-gray-300 leading-relaxed pl-0.5 mt-1")
|
|
187
189
|
},
|
|
188
190
|
{ default: () => descriptionText }
|
|
189
191
|
) : null,
|
|
190
|
-
actionNodes?.length ? h("div", { class: activityItemActionsClasses }, actionNodes) : null
|
|
192
|
+
actionNodes?.length ? h("div", { class: classNames(activityItemActionsClasses, "mt-2.5") }, actionNodes) : null
|
|
191
193
|
])
|
|
192
194
|
])
|
|
193
195
|
]
|
|
@@ -200,7 +202,7 @@ var ActivityFeed = defineComponent({
|
|
|
200
202
|
const feedAriaBusy = computed(() => attrs["aria-busy"] ?? (props.loading ? "true" : void 0));
|
|
201
203
|
return () => {
|
|
202
204
|
if (props.loading) {
|
|
203
|
-
const loadingNode = slots.loading ? slots.loading() : h(Loading, { text: props.loadingText });
|
|
205
|
+
const loadingNode = slots.loading ? slots.loading() : h(Loading, { text: props.loadingText, class: "text-blue-500 dark:text-blue-400 font-medium" });
|
|
204
206
|
return h(
|
|
205
207
|
"div",
|
|
206
208
|
{
|
|
@@ -215,16 +217,35 @@ var ActivityFeed = defineComponent({
|
|
|
215
217
|
[
|
|
216
218
|
h(
|
|
217
219
|
Card,
|
|
218
|
-
{ variant: "bordered", size: "sm", className: "tiger-activity-feed-loading" },
|
|
219
220
|
{
|
|
220
|
-
|
|
221
|
+
variant: "bordered",
|
|
222
|
+
size: "sm",
|
|
223
|
+
className: "tiger-activity-feed-loading bg-white/40 dark:bg-gray-900/20 border-gray-100 dark:border-gray-800/80 backdrop-blur-sm rounded-2xl shadow-sm overflow-hidden"
|
|
224
|
+
},
|
|
225
|
+
{
|
|
226
|
+
default: () => h("div", { class: "flex items-center justify-center py-8" }, loadingNode)
|
|
221
227
|
}
|
|
222
228
|
)
|
|
223
229
|
]
|
|
224
230
|
);
|
|
225
231
|
}
|
|
226
232
|
if (resolvedGroups.value.length === 0) {
|
|
227
|
-
const emptyNode = slots.empty ? slots.empty() : h(
|
|
233
|
+
const emptyNode = slots.empty ? slots.empty() : h("div", { class: "flex flex-col items-center justify-center py-12 px-4" }, [
|
|
234
|
+
h("svg", {
|
|
235
|
+
class: "w-12 h-12 text-gray-300 dark:text-gray-600 mb-3 animate-pulse",
|
|
236
|
+
fill: "none",
|
|
237
|
+
viewBox: "0 0 24 24",
|
|
238
|
+
stroke: "currentColor",
|
|
239
|
+
strokeWidth: "1.5"
|
|
240
|
+
}, [
|
|
241
|
+
h("path", {
|
|
242
|
+
strokeLinecap: "round",
|
|
243
|
+
strokeLinejoin: "round",
|
|
244
|
+
d: "M12 7.5h1.5m-1.5 3h1.5m-7.5 3h10.5m-10.5 3h10.5m-13.5-9h16.5M3 5.25h18M3 18.75h18"
|
|
245
|
+
})
|
|
246
|
+
]),
|
|
247
|
+
h(Text, { tag: "div", size: "sm", color: "muted", class: "font-medium" }, { default: () => props.emptyText })
|
|
248
|
+
]);
|
|
228
249
|
return h(
|
|
229
250
|
"div",
|
|
230
251
|
{
|
|
@@ -238,9 +259,13 @@ var ActivityFeed = defineComponent({
|
|
|
238
259
|
[
|
|
239
260
|
h(
|
|
240
261
|
Card,
|
|
241
|
-
{ variant: "bordered", size: "sm", className: "tiger-activity-feed-empty" },
|
|
242
262
|
{
|
|
243
|
-
|
|
263
|
+
variant: "bordered",
|
|
264
|
+
size: "sm",
|
|
265
|
+
className: "tiger-activity-feed-empty bg-white/40 dark:bg-gray-900/20 border-gray-100 dark:border-gray-800/80 backdrop-blur-sm rounded-2xl shadow-sm overflow-hidden"
|
|
266
|
+
},
|
|
267
|
+
{
|
|
268
|
+
default: () => emptyNode
|
|
244
269
|
}
|
|
245
270
|
)
|
|
246
271
|
]
|
|
@@ -261,14 +286,46 @@ var ActivityFeed = defineComponent({
|
|
|
261
286
|
const groupTitle = group.title;
|
|
262
287
|
const timelineItems = toActivityTimelineItems(group.items);
|
|
263
288
|
return h("div", { key: group.key ?? groupIndex, class: "space-y-3" }, [
|
|
264
|
-
props.showGroupTitle && groupTitle ? headerNode ?? h(
|
|
265
|
-
|
|
266
|
-
|
|
267
|
-
|
|
268
|
-
|
|
289
|
+
props.showGroupTitle && groupTitle ? headerNode ?? h("div", { class: "flex items-center gap-2 mb-2" }, [
|
|
290
|
+
h("span", { class: "w-1.5 h-3.5 bg-blue-500 rounded-full dark:bg-blue-400 shadow-sm shadow-blue-500/20" }),
|
|
291
|
+
h(
|
|
292
|
+
Text,
|
|
293
|
+
{ tag: "span", size: "sm", weight: "bold", class: "text-gray-900 dark:text-gray-100 uppercase tracking-wider" },
|
|
294
|
+
{ default: () => groupTitle }
|
|
295
|
+
)
|
|
296
|
+
]) : null,
|
|
269
297
|
h(
|
|
270
298
|
Timeline,
|
|
271
|
-
{
|
|
299
|
+
{
|
|
300
|
+
items: timelineItems,
|
|
301
|
+
style: {
|
|
302
|
+
"--tiger-border": "rgba(156, 163, 175, 0.18)"
|
|
303
|
+
},
|
|
304
|
+
renderDot: (timelineItem) => {
|
|
305
|
+
const activity = timelineItem.activity;
|
|
306
|
+
const statusVariant = activity?.status?.variant ?? "default";
|
|
307
|
+
const baseDotClass = "w-3 h-3 rounded-full border-2 border-white dark:border-gray-950 shadow-sm";
|
|
308
|
+
let colorClass = "bg-gray-300 dark:bg-gray-700";
|
|
309
|
+
let pulseClass = "";
|
|
310
|
+
if (statusVariant === "success") {
|
|
311
|
+
colorClass = "bg-emerald-500";
|
|
312
|
+
pulseClass = "bg-emerald-500/30";
|
|
313
|
+
} else if (statusVariant === "warning") {
|
|
314
|
+
colorClass = "bg-amber-500";
|
|
315
|
+
pulseClass = "bg-amber-500/30";
|
|
316
|
+
} else if (statusVariant === "error" || statusVariant === "danger") {
|
|
317
|
+
colorClass = "bg-rose-500";
|
|
318
|
+
pulseClass = "bg-rose-500/30";
|
|
319
|
+
} else if (statusVariant === "primary" || statusVariant === "info") {
|
|
320
|
+
colorClass = "bg-blue-500";
|
|
321
|
+
pulseClass = "bg-blue-500/30";
|
|
322
|
+
}
|
|
323
|
+
return h("div", { class: "relative flex items-center justify-center w-4 h-4" }, [
|
|
324
|
+
pulseClass ? h("span", { class: `absolute inline-flex h-full w-full rounded-full animate-ping opacity-75 ${pulseClass}` }) : null,
|
|
325
|
+
h("span", { class: `${baseDotClass} ${colorClass} relative z-10` })
|
|
326
|
+
]);
|
|
327
|
+
}
|
|
328
|
+
},
|
|
272
329
|
{
|
|
273
330
|
item: ({ item, index }) => {
|
|
274
331
|
const activity = item.activity;
|
|
@@ -285,7 +285,7 @@ var NotificationCenter = defineComponent({
|
|
|
285
285
|
return h(
|
|
286
286
|
"div",
|
|
287
287
|
{
|
|
288
|
-
class: "inline-flex
|
|
288
|
+
class: "inline-flex items-center gap-0.5 p-0.5 rounded-lg bg-gray-100/80 dark:bg-gray-800/60 self-start"
|
|
289
289
|
},
|
|
290
290
|
options.map(
|
|
291
291
|
(option) => h(
|
|
@@ -293,9 +293,8 @@ var NotificationCenter = defineComponent({
|
|
|
293
293
|
{
|
|
294
294
|
key: option.key,
|
|
295
295
|
class: classNames(
|
|
296
|
-
"px-3 py-1 text-xs font-
|
|
297
|
-
"
|
|
298
|
-
currentReadFilter.value === option.key ? "bg-[var(--tiger-primary,#2563eb)] text-white" : "bg-[var(--tiger-surface,#ffffff)] text-[var(--tiger-text-muted,#6b7280)] hover:bg-[var(--tiger-surface-muted,#f9fafb)]"
|
|
296
|
+
"px-3.5 py-1 text-xs font-semibold rounded-md transition-all duration-200",
|
|
297
|
+
currentReadFilter.value === option.key ? "bg-white dark:bg-gray-700 text-gray-900 dark:text-white shadow-sm scale-102" : "text-gray-500 dark:text-gray-400 hover:text-gray-900 dark:hover:text-white"
|
|
299
298
|
),
|
|
300
299
|
onClick: () => handleReadFilterChange(option.key)
|
|
301
300
|
},
|
|
@@ -311,26 +310,32 @@ var NotificationCenter = defineComponent({
|
|
|
311
310
|
"div",
|
|
312
311
|
{
|
|
313
312
|
class: classNames(
|
|
314
|
-
"flex items-start gap-3 w-full
|
|
315
|
-
!isRead
|
|
313
|
+
"group relative flex items-start gap-3.5 w-full p-3.5 rounded-xl transition-all duration-300 hover:bg-gray-50/60 dark:hover:bg-gray-800/30",
|
|
314
|
+
!isRead ? "bg-blue-50/20 dark:bg-blue-950/5 hover:bg-blue-50/40 dark:hover:bg-blue-950/10 border-l-[3px] border-l-blue-500/80 -ml-[3px] pl-[calc(0.875rem-3px)]" : "border-l-[3px] border-l-transparent -ml-[3px] pl-[calc(0.875rem-3px)]"
|
|
316
315
|
)
|
|
317
316
|
},
|
|
318
317
|
[
|
|
319
318
|
h("div", { class: "flex-1 min-w-0" }, [
|
|
320
319
|
h("div", { class: "flex items-baseline justify-between gap-2" }, [
|
|
321
|
-
h(
|
|
322
|
-
|
|
323
|
-
|
|
324
|
-
|
|
325
|
-
|
|
326
|
-
|
|
327
|
-
|
|
328
|
-
|
|
329
|
-
|
|
320
|
+
h("div", { class: "flex items-center gap-1.5" }, [
|
|
321
|
+
h(
|
|
322
|
+
Text,
|
|
323
|
+
{
|
|
324
|
+
tag: "span",
|
|
325
|
+
size: "sm",
|
|
326
|
+
weight: isRead ? "normal" : "semibold",
|
|
327
|
+
class: isRead ? "text-gray-600 dark:text-gray-400" : "text-gray-900 dark:text-gray-100"
|
|
328
|
+
},
|
|
329
|
+
{ default: () => item.title }
|
|
330
|
+
),
|
|
331
|
+
!isRead ? h("span", {
|
|
332
|
+
class: "w-1.5 h-1.5 rounded-full bg-blue-500 dark:bg-blue-400 shrink-0 shadow-sm shadow-blue-500/40 animate-pulse"
|
|
333
|
+
}) : null
|
|
334
|
+
]),
|
|
330
335
|
timeText ? h(
|
|
331
336
|
"span",
|
|
332
337
|
{
|
|
333
|
-
class: "text-
|
|
338
|
+
class: "text-[11px] text-gray-400 dark:text-gray-500 font-medium whitespace-nowrap flex-shrink-0 self-center"
|
|
334
339
|
},
|
|
335
340
|
timeText
|
|
336
341
|
) : null
|
|
@@ -338,7 +343,10 @@ var NotificationCenter = defineComponent({
|
|
|
338
343
|
item.description ? h(
|
|
339
344
|
"div",
|
|
340
345
|
{
|
|
341
|
-
class:
|
|
346
|
+
class: classNames(
|
|
347
|
+
"mt-1 text-xs leading-relaxed line-clamp-2",
|
|
348
|
+
isRead ? "text-gray-500 dark:text-gray-400" : "text-gray-600 dark:text-gray-300"
|
|
349
|
+
)
|
|
342
350
|
},
|
|
343
351
|
item.description
|
|
344
352
|
) : null
|
|
@@ -348,6 +356,7 @@ var NotificationCenter = defineComponent({
|
|
|
348
356
|
{
|
|
349
357
|
size: "sm",
|
|
350
358
|
variant: "ghost",
|
|
359
|
+
class: "opacity-0 group-hover:opacity-100 focus:opacity-100 rounded-full px-2.5 py-1 text-[11px] font-semibold transition-all duration-200 bg-gray-100 hover:bg-gray-200 dark:bg-gray-800 dark:hover:bg-gray-700 text-gray-700 dark:text-gray-300 border-0 flex-shrink-0 self-center",
|
|
351
360
|
onClick: (event) => {
|
|
352
361
|
event.stopPropagation();
|
|
353
362
|
handleItemReadChange(item, !isRead);
|
|
@@ -358,20 +367,65 @@ var NotificationCenter = defineComponent({
|
|
|
358
367
|
]
|
|
359
368
|
);
|
|
360
369
|
};
|
|
361
|
-
const renderList = (items) =>
|
|
362
|
-
|
|
363
|
-
|
|
364
|
-
|
|
365
|
-
|
|
366
|
-
|
|
367
|
-
|
|
368
|
-
|
|
369
|
-
|
|
370
|
-
|
|
371
|
-
|
|
372
|
-
|
|
370
|
+
const renderList = (items) => {
|
|
371
|
+
if (items.length === 0) {
|
|
372
|
+
return h(
|
|
373
|
+
"div",
|
|
374
|
+
{ class: "flex flex-col items-center justify-center py-14 px-4 text-center" },
|
|
375
|
+
[
|
|
376
|
+
h(
|
|
377
|
+
"div",
|
|
378
|
+
{
|
|
379
|
+
class: "p-3.5 bg-gray-50 dark:bg-gray-900 rounded-full mb-3 shadow-inner"
|
|
380
|
+
},
|
|
381
|
+
[
|
|
382
|
+
h(
|
|
383
|
+
"svg",
|
|
384
|
+
{
|
|
385
|
+
class: "w-8 h-8 text-gray-400 dark:text-gray-600 animate-pulse",
|
|
386
|
+
fill: "none",
|
|
387
|
+
viewBox: "0 0 24 24",
|
|
388
|
+
stroke: "currentColor",
|
|
389
|
+
strokeWidth: "1.5"
|
|
390
|
+
},
|
|
391
|
+
[
|
|
392
|
+
h("path", {
|
|
393
|
+
strokeLinecap: "round",
|
|
394
|
+
strokeLinejoin: "round",
|
|
395
|
+
d: "M14.857 17.082a23.848 23.848 0 0 0 5.454-1.31A8.967 8.967 0 0 1 18 9.75V9A6 6 0 0 0 6 9v.75a8.967 8.967 0 0 1-2.312 6.022c1.733.64 3.56 1.085 5.455 1.31m5.714 0a24.255 24.255 0 0 1-5.714 0m5.714 0a3 3 0 1 1-5.714 0"
|
|
396
|
+
})
|
|
397
|
+
]
|
|
398
|
+
)
|
|
399
|
+
]
|
|
400
|
+
),
|
|
401
|
+
h(
|
|
402
|
+
Text,
|
|
403
|
+
{
|
|
404
|
+
tag: "div",
|
|
405
|
+
size: "sm",
|
|
406
|
+
color: "muted",
|
|
407
|
+
class: "font-semibold text-gray-400 dark:text-gray-500"
|
|
408
|
+
},
|
|
409
|
+
{ default: () => props.emptyText }
|
|
410
|
+
)
|
|
411
|
+
]
|
|
412
|
+
);
|
|
373
413
|
}
|
|
374
|
-
|
|
414
|
+
return h(
|
|
415
|
+
List,
|
|
416
|
+
{
|
|
417
|
+
dataSource: items,
|
|
418
|
+
split: true,
|
|
419
|
+
bordered: "divided",
|
|
420
|
+
hoverable: true,
|
|
421
|
+
emptyText: props.emptyText,
|
|
422
|
+
onItemClick: handleItemClick
|
|
423
|
+
},
|
|
424
|
+
{
|
|
425
|
+
renderItem: ({ item, index }) => renderListItem(item, index)
|
|
426
|
+
}
|
|
427
|
+
);
|
|
428
|
+
};
|
|
375
429
|
const renderTabs = () => h(
|
|
376
430
|
Tabs,
|
|
377
431
|
{
|
|
@@ -404,11 +458,15 @@ var NotificationCenter = defineComponent({
|
|
|
404
458
|
const header = h("div", { class: "flex flex-col gap-3" }, [
|
|
405
459
|
h("div", { class: "flex items-center justify-between" }, [
|
|
406
460
|
h("div", { class: "flex items-center gap-2.5" }, [
|
|
407
|
-
h(
|
|
461
|
+
h(
|
|
462
|
+
Text,
|
|
463
|
+
{ tag: "div", size: "base", weight: "bold", class: "text-gray-900 dark:text-gray-100" },
|
|
464
|
+
{ default: () => props.title }
|
|
465
|
+
),
|
|
408
466
|
totalUnread.value > 0 ? h(
|
|
409
467
|
"span",
|
|
410
468
|
{
|
|
411
|
-
class: "inline-flex items-center justify-center min-w-[20px] h-5 px-1.5 text-
|
|
469
|
+
class: "inline-flex items-center justify-center min-w-[20px] h-5 px-1.5 text-[11px] font-bold rounded-full bg-gradient-to-r from-blue-500 to-indigo-600 text-white shadow-sm shadow-blue-500/20 animate-pulse"
|
|
412
470
|
},
|
|
413
471
|
String(totalUnread.value)
|
|
414
472
|
) : null
|
|
@@ -419,6 +477,10 @@ var NotificationCenter = defineComponent({
|
|
|
419
477
|
size: "sm",
|
|
420
478
|
variant: "ghost",
|
|
421
479
|
disabled: !hasUnread.value,
|
|
480
|
+
class: classNames(
|
|
481
|
+
"text-xs font-semibold transition-colors duration-200",
|
|
482
|
+
hasUnread.value ? "text-blue-600 dark:text-blue-400 hover:text-blue-700 dark:hover:text-blue-300" : "text-gray-400 dark:text-gray-600"
|
|
483
|
+
),
|
|
422
484
|
onClick: handleMarkAllRead
|
|
423
485
|
},
|
|
424
486
|
{ default: () => props.markAllReadText }
|
|
@@ -426,8 +488,8 @@ var NotificationCenter = defineComponent({
|
|
|
426
488
|
]),
|
|
427
489
|
renderReadFilterButtons()
|
|
428
490
|
]);
|
|
429
|
-
const content = props.loading ? h("div", { class: "flex items-center justify-center py-
|
|
430
|
-
h(Loading, { text: props.loadingText })
|
|
491
|
+
const content = props.loading ? h("div", { class: "flex items-center justify-center py-16" }, [
|
|
492
|
+
h(Loading, { text: props.loadingText, class: "text-blue-500 dark:text-blue-400 font-medium" })
|
|
431
493
|
]) : resolvedGroups.value.length > 0 ? h("div", { class: "-mx-4 -mb-4" }, [renderTabs()]) : h("div", { class: "-mx-4 -mb-4 max-h-[380px] overflow-y-auto" }, [
|
|
432
494
|
renderList(filteredFlatItems.value)
|
|
433
495
|
]);
|
|
@@ -445,7 +507,10 @@ var NotificationCenter = defineComponent({
|
|
|
445
507
|
[
|
|
446
508
|
h(
|
|
447
509
|
Card,
|
|
448
|
-
{
|
|
510
|
+
{
|
|
511
|
+
variant: "bordered",
|
|
512
|
+
className: "w-full rounded-2xl border border-gray-100/80 dark:border-gray-800/80 bg-white/95 dark:bg-gray-950/90 backdrop-blur-md shadow-[0_8px_30px_rgb(0,0,0,0.04)] dark:shadow-[0_8px_30px_rgb(0,0,0,0.2)] transition-all duration-300 overflow-hidden"
|
|
513
|
+
},
|
|
449
514
|
{
|
|
450
515
|
header: () => header,
|
|
451
516
|
default: () => content
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
"use strict";Object.defineProperty(exports, "__esModule", {value: true}); function _optionalChain(ops) { let lastAccessLHS = undefined; let value = ops[0]; let i = 1; while (i < ops.length) { const op = ops[i]; const fn = ops[i + 1]; i += 2; if ((op === 'optionalAccess' || op === 'optionalCall') && value == null) { return undefined; } if (op === 'access' || op === 'optionalAccess') { lastAccessLHS = value; value = fn(value); } else if (op === 'call' || op === 'optionalCall') { value = fn((...args) => value.call(lastAccessLHS, ...args)); lastAccessLHS = undefined; } } return value; }
|
|
2
2
|
|
|
3
|
-
var
|
|
3
|
+
var _chunkEU4IGIPCjs = require('./chunk-EU4IGIPC.js');
|
|
4
4
|
|
|
5
5
|
// src/components/Kanban.ts
|
|
6
6
|
var _vue = require('vue');
|
|
@@ -56,7 +56,7 @@ var Kanban = _vue.defineComponent.call(void 0, {
|
|
|
56
56
|
emit("card-add", colId);
|
|
57
57
|
};
|
|
58
58
|
return () => _vue.h.call(void 0,
|
|
59
|
-
|
|
59
|
+
_chunkEU4IGIPCjs.TaskBoard,
|
|
60
60
|
{
|
|
61
61
|
...attrs,
|
|
62
62
|
columns: props.columns,
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
"use strict";Object.defineProperty(exports, "__esModule", {value: true}); function _nullishCoalesce(lhs, rhsFn) { if (lhs != null) { return lhs; } else { return rhsFn(); } } function _optionalChain(ops) { let lastAccessLHS = undefined; let value = ops[0]; let i = 1; while (i < ops.length) { const op = ops[i]; const fn = ops[i + 1]; i += 2; if ((op === 'optionalAccess' || op === 'optionalCall') && value == null) { return undefined; } if (op === 'access' || op === 'optionalAccess') { lastAccessLHS = value; value = fn(value); } else if (op === 'call' || op === 'optionalCall') { value = fn((...args) => value.call(lastAccessLHS, ...args)); lastAccessLHS = undefined; } } return value; }
|
|
2
2
|
|
|
3
3
|
|
|
4
|
-
var
|
|
4
|
+
var _chunkDS7RQFEGjs = require('./chunk-DS7RQFEG.js');
|
|
5
5
|
|
|
6
6
|
|
|
7
7
|
var _chunk25EYT2CBjs = require('./chunk-25EYT2CB.js');
|
|
@@ -22,6 +22,60 @@ var _vue = require('vue');
|
|
|
22
22
|
|
|
23
23
|
|
|
24
24
|
var _tigercatcore = require('@expcat/tigercat-core');
|
|
25
|
+
var renderArrowLeftIcon = () => _vue.h.call(void 0,
|
|
26
|
+
"svg",
|
|
27
|
+
{
|
|
28
|
+
class: "w-3.5 h-3.5 transition-transform duration-300 group-hover:-translate-x-0.5",
|
|
29
|
+
fill: "none",
|
|
30
|
+
stroke: "currentColor",
|
|
31
|
+
"stroke-width": "2",
|
|
32
|
+
viewBox: "0 0 24 24",
|
|
33
|
+
"aria-hidden": "true"
|
|
34
|
+
},
|
|
35
|
+
[
|
|
36
|
+
_vue.h.call(void 0, "path", {
|
|
37
|
+
"stroke-linecap": "round",
|
|
38
|
+
"stroke-linejoin": "round",
|
|
39
|
+
d: "M10.5 19.5L3 12m0 0l7.5-7.5M3 12h18"
|
|
40
|
+
})
|
|
41
|
+
]
|
|
42
|
+
);
|
|
43
|
+
var renderArrowRightIcon = () => _vue.h.call(void 0,
|
|
44
|
+
"svg",
|
|
45
|
+
{
|
|
46
|
+
class: "w-3.5 h-3.5 transition-transform duration-300 group-hover:translate-x-0.5",
|
|
47
|
+
fill: "none",
|
|
48
|
+
stroke: "currentColor",
|
|
49
|
+
"stroke-width": "2",
|
|
50
|
+
viewBox: "0 0 24 24",
|
|
51
|
+
"aria-hidden": "true"
|
|
52
|
+
},
|
|
53
|
+
[
|
|
54
|
+
_vue.h.call(void 0, "path", {
|
|
55
|
+
"stroke-linecap": "round",
|
|
56
|
+
"stroke-linejoin": "round",
|
|
57
|
+
d: "M13.5 4.5L21 12m0 0l-7.5 7.5M21 12H3"
|
|
58
|
+
})
|
|
59
|
+
]
|
|
60
|
+
);
|
|
61
|
+
var renderCheckIcon = () => _vue.h.call(void 0,
|
|
62
|
+
"svg",
|
|
63
|
+
{
|
|
64
|
+
class: "w-3.5 h-3.5 transition-transform duration-300 group-hover:scale-110",
|
|
65
|
+
fill: "none",
|
|
66
|
+
stroke: "currentColor",
|
|
67
|
+
"stroke-width": "2.5",
|
|
68
|
+
viewBox: "0 0 24 24",
|
|
69
|
+
"aria-hidden": "true"
|
|
70
|
+
},
|
|
71
|
+
[
|
|
72
|
+
_vue.h.call(void 0, "path", {
|
|
73
|
+
"stroke-linecap": "round",
|
|
74
|
+
"stroke-linejoin": "round",
|
|
75
|
+
d: "M4.5 12.75l6 6 9-13.5"
|
|
76
|
+
})
|
|
77
|
+
]
|
|
78
|
+
);
|
|
25
79
|
var FormWizard = _vue.defineComponent.call(void 0, {
|
|
26
80
|
name: "TigerFormWizard",
|
|
27
81
|
inheritAttrs: false,
|
|
@@ -82,6 +136,10 @@ var FormWizard = _vue.defineComponent.call(void 0, {
|
|
|
82
136
|
type: Object,
|
|
83
137
|
default: void 0
|
|
84
138
|
},
|
|
139
|
+
bordered: {
|
|
140
|
+
type: Boolean,
|
|
141
|
+
default: true
|
|
142
|
+
},
|
|
85
143
|
autoSave: {
|
|
86
144
|
type: Function,
|
|
87
145
|
default: void 0
|
|
@@ -122,7 +180,8 @@ var FormWizard = _vue.defineComponent.call(void 0, {
|
|
|
122
180
|
const currentStep = _vue.computed.call(void 0, () => props.steps[currentIndex.value]);
|
|
123
181
|
const wrapperClasses = _vue.computed.call(void 0,
|
|
124
182
|
() => _tigercatcore.classNames.call(void 0,
|
|
125
|
-
"tiger-form-wizard w-full
|
|
183
|
+
"tiger-form-wizard w-full overflow-hidden transition-all duration-300",
|
|
184
|
+
props.bordered ? "rounded-[var(--tiger-radius-md,0.5rem)] border border-[var(--tiger-border,#e5e7eb)] bg-[var(--tiger-surface,#ffffff)] shadow-sm" : "bg-transparent",
|
|
126
185
|
props.className,
|
|
127
186
|
_tigercatcore.coerceClassValue.call(void 0, attrs.class)
|
|
128
187
|
)
|
|
@@ -188,7 +247,7 @@ var FormWizard = _vue.defineComponent.call(void 0, {
|
|
|
188
247
|
};
|
|
189
248
|
return () => {
|
|
190
249
|
const stepsNodes = props.steps.map(
|
|
191
|
-
(step, index) => _vue.h.call(void 0,
|
|
250
|
+
(step, index) => _vue.h.call(void 0, _chunkDS7RQFEGjs.StepsItem, {
|
|
192
251
|
key: _nullishCoalesce(step.key, () => ( index)),
|
|
193
252
|
title: step.title,
|
|
194
253
|
description: step.description,
|
|
@@ -199,6 +258,14 @@ var FormWizard = _vue.defineComponent.call(void 0, {
|
|
|
199
258
|
);
|
|
200
259
|
const isFirst = currentIndex.value <= 0;
|
|
201
260
|
const isLast = currentIndex.value >= totalCount.value - 1;
|
|
261
|
+
const stepsHeaderClass = _tigercatcore.classNames.call(void 0,
|
|
262
|
+
"px-6 py-5 bg-[var(--tiger-surface-muted,#f9fafb)]/95 backdrop-blur-sm transition-all duration-300",
|
|
263
|
+
props.bordered ? "border-b border-[var(--tiger-border,#e5e7eb)]" : ""
|
|
264
|
+
);
|
|
265
|
+
const actionsContainerClass = _tigercatcore.classNames.call(void 0,
|
|
266
|
+
"flex items-center justify-between gap-3 px-8 py-4 bg-[var(--tiger-surface-muted,#f9fafb)]/95 backdrop-blur-sm transition-all duration-300",
|
|
267
|
+
props.bordered ? "border-t border-[var(--tiger-border,#e5e7eb)]" : ""
|
|
268
|
+
);
|
|
202
269
|
return _vue.h.call(void 0,
|
|
203
270
|
"div",
|
|
204
271
|
{
|
|
@@ -208,9 +275,9 @@ var FormWizard = _vue.defineComponent.call(void 0, {
|
|
|
208
275
|
"data-tiger-form-wizard": ""
|
|
209
276
|
},
|
|
210
277
|
[
|
|
211
|
-
props.showSteps && props.steps.length > 0 ? _vue.h.call(void 0, "div", { class:
|
|
278
|
+
props.showSteps && props.steps.length > 0 ? _vue.h.call(void 0, "div", { class: stepsHeaderClass }, [
|
|
212
279
|
_vue.h.call(void 0,
|
|
213
|
-
|
|
280
|
+
_chunkDS7RQFEGjs.Steps,
|
|
214
281
|
{
|
|
215
282
|
current: currentIndex.value,
|
|
216
283
|
direction: props.direction,
|
|
@@ -224,31 +291,35 @@ var FormWizard = _vue.defineComponent.call(void 0, {
|
|
|
224
291
|
]) : null,
|
|
225
292
|
_vue.h.call(void 0,
|
|
226
293
|
"div",
|
|
227
|
-
{ class: "px-
|
|
294
|
+
{ class: "px-8 py-6 flex flex-col items-center w-full min-h-[120px] transition-all duration-300" },
|
|
228
295
|
{ default: () => renderContent() }
|
|
229
296
|
),
|
|
230
297
|
props.showActions ? _vue.h.call(void 0,
|
|
231
298
|
"div",
|
|
232
|
-
{
|
|
233
|
-
class: "flex items-center justify-center gap-3 px-6 py-2 border-t border-[var(--tiger-border,#e5e7eb)] bg-[var(--tiger-surface-muted,#f9fafb)]"
|
|
234
|
-
},
|
|
299
|
+
{ class: actionsContainerClass },
|
|
235
300
|
[
|
|
236
|
-
_vue.h.call(void 0,
|
|
301
|
+
!isFirst ? _vue.h.call(void 0,
|
|
237
302
|
_chunk4VLNT2EDjs.Button,
|
|
238
303
|
{
|
|
239
304
|
type: "button",
|
|
240
305
|
variant: "secondary",
|
|
241
|
-
|
|
242
|
-
onClick: handlePrev
|
|
306
|
+
class: "group",
|
|
307
|
+
onClick: handlePrev,
|
|
308
|
+
size: props.size === "small" ? "sm" : "md",
|
|
309
|
+
icon: renderArrowLeftIcon()
|
|
243
310
|
},
|
|
244
311
|
{ default: () => _tigercatcore.resolveLocaleText.call(void 0, labels.value.prevText, props.prevText) }
|
|
245
|
-
),
|
|
312
|
+
) : _vue.h.call(void 0, "div"),
|
|
246
313
|
_vue.h.call(void 0,
|
|
247
314
|
_chunk4VLNT2EDjs.Button,
|
|
248
315
|
{
|
|
249
316
|
type: "button",
|
|
250
317
|
variant: "primary",
|
|
251
|
-
|
|
318
|
+
class: "group",
|
|
319
|
+
onClick: handleNext,
|
|
320
|
+
size: props.size === "small" ? "sm" : "md",
|
|
321
|
+
icon: isLast ? renderCheckIcon() : renderArrowRightIcon(),
|
|
322
|
+
iconPosition: isLast ? "left" : "right"
|
|
252
323
|
},
|
|
253
324
|
{
|
|
254
325
|
default: () => isLast ? _tigercatcore.resolveLocaleText.call(void 0, labels.value.finishText, props.finishText) : _tigercatcore.resolveLocaleText.call(void 0, labels.value.nextText, props.nextText)
|