@expcat/tigercat-vue 0.2.10 → 0.3.0

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 (186) hide show
  1. package/dist/{chunk-ENPZERP2.js → chunk-36KWP3NX.js} +2 -2
  2. package/dist/{chunk-FOQHXUHK.js → chunk-3F2QHERR.js} +37 -21
  3. package/dist/chunk-3G2QV4TL.js +245 -0
  4. package/dist/chunk-4DCSGWCJ.js +436 -0
  5. package/dist/chunk-4QIOLPLB.mjs +380 -0
  6. package/dist/chunk-4VHNAGSP.js +290 -0
  7. package/dist/chunk-54IA7YWJ.js +175 -0
  8. package/dist/chunk-74PW5YAR.mjs +246 -0
  9. package/dist/chunk-AYNQTRO4.mjs +376 -0
  10. package/dist/{chunk-PVQV32JZ.js → chunk-CGJTYURK.js} +11 -1
  11. package/dist/{chunk-D6ONLPQP.mjs → chunk-CKC7W6BL.mjs} +1 -1
  12. package/dist/{chunk-UF5MJ52T.js → chunk-E3FDI3Y5.js} +17 -5
  13. package/dist/chunk-FVL7HDPG.mjs +262 -0
  14. package/dist/{chunk-KVAQ7RXO.mjs → chunk-GO3JWOB6.mjs} +1 -1
  15. package/dist/chunk-HRTL6ZTJ.mjs +242 -0
  16. package/dist/chunk-I3Z247PO.js +250 -0
  17. package/dist/{chunk-BHFFQSYV.js → chunk-IK3ZLVPR.js} +43 -8
  18. package/dist/chunk-JQ73I2Q6.js +114 -0
  19. package/dist/chunk-JYGZCLJH.js +390 -0
  20. package/dist/{chunk-P4NVBKE6.mjs → chunk-L5QECL5P.mjs} +38 -22
  21. package/dist/chunk-LFIZI5Z4.mjs +96 -0
  22. package/dist/chunk-NTXRWISS.js +142 -0
  23. package/dist/chunk-OTTMBYP2.mjs +387 -0
  24. package/dist/chunk-OVFGETP7.mjs +138 -0
  25. package/dist/{chunk-XZTN4VFO.mjs → chunk-PZOSCHRV.mjs} +12 -2
  26. package/dist/chunk-QVMU7OT7.mjs +172 -0
  27. package/dist/chunk-ROM2NNJX.mjs +433 -0
  28. package/dist/chunk-SUZB7IAA.js +97 -0
  29. package/dist/chunk-TKTAGTDP.js +383 -0
  30. package/dist/chunk-UYWPZDRU.mjs +287 -0
  31. package/dist/chunk-W57RIOYG.mjs +111 -0
  32. package/dist/{chunk-LLSZZ6HH.mjs → chunk-XMBCYUDD.mjs} +17 -5
  33. package/dist/chunk-Y4KDPUTV.mjs +94 -0
  34. package/dist/chunk-YRFK5X43.js +265 -0
  35. package/dist/{chunk-VIXWGRQT.js → chunk-ZLMJ3SZQ.js} +2 -2
  36. package/dist/chunk-ZMU5PLEQ.js +379 -0
  37. package/dist/components/ActivityFeed.d.mts +124 -0
  38. package/dist/components/ActivityFeed.d.ts +124 -0
  39. package/dist/components/ActivityFeed.js +23 -0
  40. package/dist/components/ActivityFeed.mjs +8 -0
  41. package/dist/components/Alert.d.mts +4 -4
  42. package/dist/components/Alert.d.ts +4 -4
  43. package/dist/components/Anchor.d.mts +186 -0
  44. package/dist/components/Anchor.d.ts +186 -0
  45. package/dist/components/Anchor.js +20 -0
  46. package/dist/components/Anchor.mjs +1 -0
  47. package/dist/components/AnchorLink.d.mts +69 -0
  48. package/dist/components/AnchorLink.d.ts +69 -0
  49. package/dist/components/AnchorLink.js +17 -0
  50. package/dist/components/AnchorLink.mjs +2 -0
  51. package/dist/components/AreaChart.js +4 -4
  52. package/dist/components/AreaChart.mjs +2 -2
  53. package/dist/components/BackTop.d.mts +88 -0
  54. package/dist/components/BackTop.d.ts +88 -0
  55. package/dist/components/BackTop.js +16 -0
  56. package/dist/components/BackTop.mjs +1 -0
  57. package/dist/components/Badge.d.mts +2 -2
  58. package/dist/components/Badge.d.ts +2 -2
  59. package/dist/components/BarChart.js +4 -4
  60. package/dist/components/BarChart.mjs +2 -2
  61. package/dist/components/Breadcrumb.d.mts +17 -1
  62. package/dist/components/Breadcrumb.d.ts +17 -1
  63. package/dist/components/Breadcrumb.js +4 -4
  64. package/dist/components/Breadcrumb.mjs +1 -1
  65. package/dist/components/BreadcrumbItem.js +4 -4
  66. package/dist/components/BreadcrumbItem.mjs +2 -2
  67. package/dist/components/Button.d.mts +2 -2
  68. package/dist/components/Button.d.ts +2 -2
  69. package/dist/components/Card.d.mts +1 -1
  70. package/dist/components/Card.d.ts +1 -1
  71. package/dist/components/Carousel.d.mts +247 -0
  72. package/dist/components/Carousel.d.ts +247 -0
  73. package/dist/components/Carousel.js +16 -0
  74. package/dist/components/Carousel.mjs +1 -0
  75. package/dist/components/ChatWindow.d.mts +219 -0
  76. package/dist/components/ChatWindow.d.ts +219 -0
  77. package/dist/components/ChatWindow.js +20 -0
  78. package/dist/components/ChatWindow.mjs +5 -0
  79. package/dist/components/Collapse.d.mts +162 -0
  80. package/dist/components/Collapse.d.ts +162 -0
  81. package/dist/components/Collapse.js +20 -0
  82. package/dist/components/Collapse.mjs +1 -0
  83. package/dist/components/CollapsePanel.d.mts +112 -0
  84. package/dist/components/CollapsePanel.d.ts +112 -0
  85. package/dist/components/CollapsePanel.js +17 -0
  86. package/dist/components/CollapsePanel.mjs +2 -0
  87. package/dist/components/CommentThread.d.mts +221 -0
  88. package/dist/components/CommentThread.d.ts +221 -0
  89. package/dist/components/CommentThread.js +21 -0
  90. package/dist/components/CommentThread.mjs +6 -0
  91. package/dist/components/DataTableWithToolbar.d.mts +260 -0
  92. package/dist/components/DataTableWithToolbar.d.ts +260 -0
  93. package/dist/components/DataTableWithToolbar.js +24 -0
  94. package/dist/components/DataTableWithToolbar.mjs +9 -0
  95. package/dist/components/DatePicker.d.mts +1 -1
  96. package/dist/components/DatePicker.d.ts +1 -1
  97. package/dist/components/Drawer.d.mts +3 -3
  98. package/dist/components/Drawer.d.ts +3 -3
  99. package/dist/components/Dropdown.d.mts +1 -1
  100. package/dist/components/Dropdown.d.ts +1 -1
  101. package/dist/components/Dropdown.js +5 -5
  102. package/dist/components/Dropdown.mjs +2 -2
  103. package/dist/components/DropdownItem.d.mts +1 -1
  104. package/dist/components/DropdownItem.d.ts +1 -1
  105. package/dist/components/DropdownItem.js +5 -5
  106. package/dist/components/DropdownItem.mjs +3 -3
  107. package/dist/components/FormItem.js +3 -3
  108. package/dist/components/FormItem.mjs +1 -1
  109. package/dist/components/FormWizard.d.mts +168 -0
  110. package/dist/components/FormWizard.d.ts +168 -0
  111. package/dist/components/FormWizard.js +20 -0
  112. package/dist/components/FormWizard.mjs +5 -0
  113. package/dist/components/LineChart.js +4 -4
  114. package/dist/components/LineChart.mjs +2 -2
  115. package/dist/components/Link.d.mts +1 -1
  116. package/dist/components/Link.d.ts +1 -1
  117. package/dist/components/List.d.mts +2 -2
  118. package/dist/components/List.d.ts +2 -2
  119. package/dist/components/Loading.d.mts +1 -1
  120. package/dist/components/Loading.d.ts +1 -1
  121. package/dist/components/Menu.d.mts +1 -1
  122. package/dist/components/Menu.d.ts +1 -1
  123. package/dist/components/MenuItem.d.mts +1 -1
  124. package/dist/components/MenuItem.d.ts +1 -1
  125. package/dist/components/Modal.d.mts +3 -3
  126. package/dist/components/Modal.d.ts +3 -3
  127. package/dist/components/NotificationCenter.d.mts +213 -0
  128. package/dist/components/NotificationCenter.d.ts +213 -0
  129. package/dist/components/NotificationCenter.js +23 -0
  130. package/dist/components/NotificationCenter.mjs +8 -0
  131. package/dist/components/Pagination.d.mts +7 -7
  132. package/dist/components/Pagination.d.ts +7 -7
  133. package/dist/components/Pagination.js +3 -3
  134. package/dist/components/Pagination.mjs +1 -1
  135. package/dist/components/Popconfirm.d.mts +3 -3
  136. package/dist/components/Popconfirm.d.ts +3 -3
  137. package/dist/components/Popover.d.mts +1 -1
  138. package/dist/components/Popover.d.ts +1 -1
  139. package/dist/components/Progress.d.mts +2 -2
  140. package/dist/components/Progress.d.ts +2 -2
  141. package/dist/components/ScatterChart.js +4 -4
  142. package/dist/components/ScatterChart.mjs +2 -2
  143. package/dist/components/Skeleton.d.mts +1 -1
  144. package/dist/components/Skeleton.d.ts +1 -1
  145. package/dist/components/Slider.d.mts +1 -1
  146. package/dist/components/Slider.d.ts +1 -1
  147. package/dist/components/StepsItem.d.mts +2 -2
  148. package/dist/components/StepsItem.d.ts +2 -2
  149. package/dist/components/SubMenu.d.mts +1 -1
  150. package/dist/components/SubMenu.d.ts +1 -1
  151. package/dist/components/TabPane.d.mts +2 -2
  152. package/dist/components/TabPane.d.ts +2 -2
  153. package/dist/components/Table.d.mts +16 -1
  154. package/dist/components/Table.d.ts +16 -1
  155. package/dist/components/Table.js +3 -3
  156. package/dist/components/Table.mjs +1 -1
  157. package/dist/components/Tabs.d.mts +2 -2
  158. package/dist/components/Tabs.d.ts +2 -2
  159. package/dist/components/Tag.d.mts +2 -2
  160. package/dist/components/Tag.d.ts +2 -2
  161. package/dist/components/TimePicker.d.mts +2 -2
  162. package/dist/components/TimePicker.d.ts +2 -2
  163. package/dist/components/Timeline.d.mts +2 -2
  164. package/dist/components/Timeline.d.ts +2 -2
  165. package/dist/components/Tooltip.d.mts +1 -1
  166. package/dist/components/Tooltip.d.ts +1 -1
  167. package/dist/components/Tree.d.mts +1 -1
  168. package/dist/components/Tree.d.ts +1 -1
  169. package/dist/components/Upload.d.mts +2 -2
  170. package/dist/components/Upload.d.ts +2 -2
  171. package/dist/index.d.mts +12 -0
  172. package/dist/index.d.ts +12 -0
  173. package/dist/index.js +211 -151
  174. package/dist/index.mjs +54 -42
  175. package/package.json +2 -2
  176. package/dist/chunk-QPP7BQN2.mjs +0 -61
  177. package/dist/{chunk-BPXVB37Q.js → chunk-42ILM3BR.js} +1 -1
  178. package/dist/{chunk-IXFEBW6I.mjs → chunk-6NHAWLQA.mjs} +1 -1
  179. package/dist/{chunk-RMXQXTKG.js → chunk-CDZHYIXG.js} +1 -1
  180. package/dist/{chunk-MBJYTGF3.mjs → chunk-DCW4EFNZ.mjs} +1 -1
  181. package/dist/{chunk-QZNLP67Y.mjs → chunk-JUIOGBBB.mjs} +1 -1
  182. package/dist/{chunk-24F6NL3G.js → chunk-LFJQD3ZJ.js} +1 -1
  183. package/dist/{chunk-ESRO3KM3.mjs → chunk-LQYBXAL4.mjs} +1 -1
  184. package/dist/{chunk-GLI2DEV3.js → chunk-RZ6K7TWA.js} +1 -1
  185. package/dist/{chunk-AK3SVOJA.js → chunk-UBMNR3BJ.js} +1 -1
  186. package/dist/{chunk-FNWCU7HI.mjs → chunk-YZM7I5AM.mjs} +1 -1
@@ -1,6 +1,6 @@
1
1
  'use strict';
2
2
 
3
- var chunkAK3SVOJA_js = require('./chunk-AK3SVOJA.js');
3
+ var chunkUBMNR3BJ_js = require('./chunk-UBMNR3BJ.js');
4
4
  var vue = require('vue');
5
5
  var tigercatCore = require('@expcat/tigercat-core');
6
6
 
@@ -48,7 +48,7 @@ var DropdownItem = vue.defineComponent({
48
48
  const attrsRecord = attrs;
49
49
  const attrsClass = attrsRecord.class;
50
50
  const attrsStyle = attrsRecord.style;
51
- const context = vue.inject(chunkAK3SVOJA_js.DropdownContextKey, null);
51
+ const context = vue.inject(chunkUBMNR3BJ_js.DropdownContextKey, null);
52
52
  const handleClick = (event) => {
53
53
  if (props.disabled) {
54
54
  event.preventDefault();
@@ -84,19 +84,29 @@ var FormItem = vue.defineComponent({
84
84
  const labelAlign = vue.computed(() => {
85
85
  return formContext.value?.labelAlign || "right";
86
86
  });
87
+ const hasRequiredRule = (maybeRules) => {
88
+ if (!maybeRules) {
89
+ return false;
90
+ }
91
+ const rules = Array.isArray(maybeRules) ? maybeRules : [maybeRules];
92
+ return rules.some((rule) => {
93
+ if (!rule || typeof rule !== "object") {
94
+ return false;
95
+ }
96
+ return !!rule.required;
97
+ });
98
+ };
87
99
  const showRequiredAsterisk = vue.computed(() => {
88
100
  if (props.required !== void 0) {
89
101
  return props.required;
90
102
  }
91
103
  if (props.rules) {
92
- const rules = Array.isArray(props.rules) ? props.rules : [props.rules];
93
- return rules.some((rule) => rule.required);
104
+ return hasRequiredRule(props.rules);
94
105
  }
95
106
  if (props.name && formContext.value?.rules) {
96
107
  const fieldRules = formContext.value.rules[props.name];
97
108
  if (fieldRules) {
98
- const rules = Array.isArray(fieldRules) ? fieldRules : [fieldRules];
99
- return rules.some((rule) => rule.required);
109
+ return hasRequiredRule(fieldRules);
100
110
  }
101
111
  }
102
112
  return false;
@@ -164,20 +174,20 @@ var FormItem = vue.defineComponent({
164
174
  return props.showMessage && hasError.value ? errorId : void 0;
165
175
  });
166
176
  const formItemClasses = vue.computed(() => {
167
- return tigercatCore.classNames(
168
- "tiger-form-item",
169
- `tiger-form-item--${actualSize.value}`,
170
- `tiger-form-item--label-${labelPosition.value}`,
171
- hasError.value && "tiger-form-item--error",
172
- formContext.value?.disabled && "tiger-form-item--disabled"
173
- );
177
+ return tigercatCore.getFormItemClasses({
178
+ size: actualSize.value,
179
+ labelPosition: labelPosition.value,
180
+ hasError: hasError.value,
181
+ disabled: formContext.value?.disabled
182
+ });
174
183
  });
175
184
  const labelClasses = vue.computed(() => {
176
- return tigercatCore.classNames(
177
- "tiger-form-item__label",
178
- `tiger-form-item__label--${labelAlign.value}`,
179
- isRequired.value && "tiger-form-item__label--required"
180
- );
185
+ return tigercatCore.getFormItemLabelClasses({
186
+ size: actualSize.value,
187
+ labelAlign: labelAlign.value,
188
+ labelPosition: labelPosition.value,
189
+ isRequired: isRequired.value
190
+ });
181
191
  });
182
192
  const labelStyles = vue.computed(() => {
183
193
  if (labelPosition.value === "top") {
@@ -185,10 +195,16 @@ var FormItem = vue.defineComponent({
185
195
  }
186
196
  return actualLabelWidth.value ? { width: actualLabelWidth.value } : {};
187
197
  });
188
- const contentClasses = "tiger-form-item__content";
198
+ const contentClasses = vue.computed(() => tigercatCore.getFormItemContentClasses(labelPosition.value));
189
199
  const errorClasses = vue.computed(() => {
190
- return tigercatCore.classNames("tiger-form-item__error", hasError.value && "tiger-form-item__error--show");
200
+ return tigercatCore.classNames(
201
+ tigercatCore.getFormItemErrorClasses(actualSize.value),
202
+ hasError.value && "tiger-form-item__error--show"
203
+ );
191
204
  });
205
+ const fieldClasses = vue.computed(() => tigercatCore.getFormItemFieldClasses());
206
+ const asteriskClasses = vue.computed(() => tigercatCore.getFormItemAsteriskClasses());
207
+ const asteriskStyle = vue.computed(() => tigercatCore.getFormItemAsteriskStyle());
192
208
  return () => {
193
209
  const mergeAriaDescribedBy = (existing, next) => {
194
210
  if (!existing) {
@@ -262,20 +278,20 @@ var FormItem = vue.defineComponent({
262
278
  for: effectiveFieldId
263
279
  },
264
280
  [
265
- isRequired.value && vue.h("span", { class: "tiger-form-item__asterisk" }, "*"),
281
+ isRequired.value && vue.h("span", { class: asteriskClasses.value, style: asteriskStyle.value }, "*"),
266
282
  props.label
267
283
  ]
268
284
  ) : null;
269
285
  const contentElement = vue.h(
270
286
  "div",
271
287
  {
272
- class: contentClasses
288
+ class: contentClasses.value
273
289
  },
274
290
  [
275
291
  vue.h(
276
292
  "div",
277
293
  {
278
- class: "tiger-form-item__field",
294
+ class: fieldClasses.value,
279
295
  role: "group",
280
296
  "aria-labelledby": props.label ? labelId : void 0,
281
297
  "aria-describedby": describedById.value,
@@ -0,0 +1,245 @@
1
+ 'use strict';
2
+
3
+ var chunkWO332QT2_js = require('./chunk-WO332QT2.js');
4
+ var chunkYFMXWX6H_js = require('./chunk-YFMXWX6H.js');
5
+ var chunkZK26QLSW_js = require('./chunk-ZK26QLSW.js');
6
+ var chunkCCI3RIZU_js = require('./chunk-CCI3RIZU.js');
7
+ var chunkI7GSAVM7_js = require('./chunk-I7GSAVM7.js');
8
+ var chunkSKUTVXHP_js = require('./chunk-SKUTVXHP.js');
9
+ var chunkU65XZCPB_js = require('./chunk-U65XZCPB.js');
10
+ var vue = require('vue');
11
+ var tigercatCore = require('@expcat/tigercat-core');
12
+
13
+ var renderAction = (item, action, index) => {
14
+ const key = action.key ?? `${item.id}-action-${index}`;
15
+ return vue.h(
16
+ chunkYFMXWX6H_js.Link,
17
+ {
18
+ key,
19
+ size: "sm",
20
+ variant: "primary",
21
+ href: action.href,
22
+ target: action.target,
23
+ disabled: action.disabled,
24
+ onClick: () => action.onClick?.(item, action)
25
+ },
26
+ {
27
+ default: () => action.label
28
+ }
29
+ );
30
+ };
31
+ var ActivityFeed = vue.defineComponent({
32
+ name: "TigerActivityFeed",
33
+ inheritAttrs: false,
34
+ props: {
35
+ items: {
36
+ type: Array,
37
+ default: () => []
38
+ },
39
+ groups: {
40
+ type: Array,
41
+ default: void 0
42
+ },
43
+ groupBy: {
44
+ type: Function,
45
+ default: void 0
46
+ },
47
+ groupOrder: {
48
+ type: Array,
49
+ default: void 0
50
+ },
51
+ loading: {
52
+ type: Boolean,
53
+ default: false
54
+ },
55
+ loadingText: {
56
+ type: String,
57
+ default: "\u52A0\u8F7D\u4E2D..."
58
+ },
59
+ emptyText: {
60
+ type: String,
61
+ default: "\u6682\u65E0\u52A8\u6001"
62
+ },
63
+ showAvatar: {
64
+ type: Boolean,
65
+ default: true
66
+ },
67
+ showTime: {
68
+ type: Boolean,
69
+ default: true
70
+ },
71
+ showGroupTitle: {
72
+ type: Boolean,
73
+ default: true
74
+ },
75
+ className: {
76
+ type: String,
77
+ default: void 0
78
+ },
79
+ style: {
80
+ type: Object,
81
+ default: void 0
82
+ }
83
+ },
84
+ setup(props, { slots, attrs }) {
85
+ const resolvedGroups = vue.computed(
86
+ () => tigercatCore.buildActivityGroups(props.items, props.groups, props.groupBy, props.groupOrder)
87
+ );
88
+ const wrapperClasses = vue.computed(
89
+ () => tigercatCore.classNames(
90
+ "tiger-activity-feed",
91
+ "flex",
92
+ "flex-col",
93
+ "gap-6",
94
+ "w-full",
95
+ props.className,
96
+ tigercatCore.coerceClassValue(attrs.class)
97
+ )
98
+ );
99
+ const wrapperStyle = vue.computed(() => tigercatCore.mergeStyleValues(attrs.style, props.style));
100
+ const renderDefaultItem = (item, index, group) => {
101
+ if (slots.item) {
102
+ const slotContent = slots.item({ item, index, group });
103
+ if (slotContent) return slotContent;
104
+ }
105
+ const titleText = item.title ?? (typeof item.content === "string" || typeof item.content === "number" ? String(item.content) : "");
106
+ const descriptionText = item.description;
107
+ const timeText = props.showTime ? tigercatCore.formatActivityTime(item.time) : "";
108
+ const actionNodes = item.actions?.map(
109
+ (action, actionIndex) => renderAction(item, action, actionIndex)
110
+ );
111
+ return vue.h(
112
+ "div",
113
+ {
114
+ class: "tiger-activity-item"
115
+ },
116
+ [
117
+ vue.h("div", { class: "flex gap-3 items-start" }, [
118
+ props.showAvatar && item.user ? vue.h(chunkU65XZCPB_js.Avatar, {
119
+ size: "sm",
120
+ src: item.user.avatar,
121
+ text: item.user.name,
122
+ className: "shrink-0"
123
+ }) : null,
124
+ vue.h("div", { class: "flex-1 min-w-0" }, [
125
+ vue.h("div", { class: "flex items-center justify-between gap-2 mb-1" }, [
126
+ vue.h("div", { class: "flex items-center gap-2 min-w-0" }, [
127
+ titleText ? vue.h(
128
+ chunkI7GSAVM7_js.Text,
129
+ { tag: "div", size: "sm", weight: "medium", class: "truncate" },
130
+ { default: () => titleText }
131
+ ) : null,
132
+ item.status ? vue.h(
133
+ chunkCCI3RIZU_js.Tag,
134
+ {
135
+ variant: item.status.variant ?? "default",
136
+ size: "sm",
137
+ className: "shrink-0"
138
+ },
139
+ { default: () => item.status?.label }
140
+ ) : null
141
+ ]),
142
+ timeText ? vue.h(
143
+ chunkI7GSAVM7_js.Text,
144
+ {
145
+ tag: "div",
146
+ size: "xs",
147
+ color: "muted",
148
+ class: "shrink-0 whitespace-nowrap"
149
+ },
150
+ { default: () => timeText }
151
+ ) : null
152
+ ]),
153
+ descriptionText ? vue.h(
154
+ chunkI7GSAVM7_js.Text,
155
+ { tag: "div", size: "sm", color: "muted", class: "mb-2 break-words" },
156
+ { default: () => descriptionText }
157
+ ) : null,
158
+ actionNodes?.length ? vue.h("div", { class: "flex flex-wrap gap-2" }, actionNodes) : null
159
+ ])
160
+ ])
161
+ ]
162
+ );
163
+ };
164
+ return () => {
165
+ if (props.loading) {
166
+ const loadingNode = slots.loading ? slots.loading() : vue.h(chunkZK26QLSW_js.Loading, { text: props.loadingText });
167
+ return vue.h(
168
+ "div",
169
+ {
170
+ ...attrs,
171
+ class: wrapperClasses.value,
172
+ style: wrapperStyle.value,
173
+ "data-tiger-activity-feed": true
174
+ },
175
+ [
176
+ vue.h(
177
+ chunkSKUTVXHP_js.Card,
178
+ { variant: "bordered", size: "sm", className: "tiger-activity-feed-loading" },
179
+ {
180
+ default: () => vue.h("div", { class: "flex items-center justify-center py-4" }, loadingNode)
181
+ }
182
+ )
183
+ ]
184
+ );
185
+ }
186
+ if (resolvedGroups.value.length === 0) {
187
+ const emptyNode = slots.empty ? slots.empty() : vue.h(chunkI7GSAVM7_js.Text, { tag: "div", size: "sm", color: "muted" }, { default: () => props.emptyText });
188
+ return vue.h(
189
+ "div",
190
+ {
191
+ ...attrs,
192
+ class: wrapperClasses.value,
193
+ style: wrapperStyle.value,
194
+ "data-tiger-activity-feed": true
195
+ },
196
+ [
197
+ vue.h(
198
+ chunkSKUTVXHP_js.Card,
199
+ { variant: "bordered", size: "sm", className: "tiger-activity-feed-empty" },
200
+ {
201
+ default: () => vue.h("div", { class: "flex items-center justify-center py-6" }, emptyNode)
202
+ }
203
+ )
204
+ ]
205
+ );
206
+ }
207
+ return vue.h(
208
+ "div",
209
+ {
210
+ ...attrs,
211
+ class: wrapperClasses.value,
212
+ style: wrapperStyle.value,
213
+ "data-tiger-activity-feed": true
214
+ },
215
+ resolvedGroups.value.map((group, groupIndex) => {
216
+ const headerNode = slots.groupTitle ? slots.groupTitle({ group }) : void 0;
217
+ const groupTitle = group.title;
218
+ const timelineItems = tigercatCore.toActivityTimelineItems(group.items);
219
+ return vue.h("div", { key: group.key ?? groupIndex, class: "space-y-3" }, [
220
+ props.showGroupTitle && groupTitle ? headerNode ?? vue.h(
221
+ chunkI7GSAVM7_js.Text,
222
+ { tag: "div", size: "sm", weight: "medium", color: "muted" },
223
+ { default: () => groupTitle }
224
+ ) : null,
225
+ vue.h(
226
+ chunkWO332QT2_js.Timeline,
227
+ { items: timelineItems },
228
+ {
229
+ item: ({ item, index }) => {
230
+ const activity = item.activity;
231
+ if (!activity) return null;
232
+ return renderDefaultItem(activity, index, group);
233
+ }
234
+ }
235
+ )
236
+ ]);
237
+ })
238
+ );
239
+ };
240
+ }
241
+ });
242
+ var ActivityFeed_default = ActivityFeed;
243
+
244
+ exports.ActivityFeed = ActivityFeed;
245
+ exports.ActivityFeed_default = ActivityFeed_default;