@fiscozen/card-list 1.0.3 → 1.1.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.
package/CHANGELOG.md CHANGED
@@ -1,5 +1,14 @@
1
1
  # @fiscozen/card-list
2
2
 
3
+ ## 1.1.0
4
+
5
+ ### Minor Changes
6
+
7
+ - b19e9df: Allow grouping a row's kebab actions into labeled sections by passing
8
+ `{ type: 'section', label }` markers inside the `actions` array, mirroring
9
+ the `FzActionSection` pattern already supported by `FzDropdown`. Existing
10
+ flat-array usages are unaffected.
11
+
3
12
  ## 1.0.3
4
13
 
5
14
  ### Patch Changes
package/dist/card-list.js CHANGED
@@ -1,10 +1,10 @@
1
- import { defineComponent as w, resolveDirective as b, createBlock as l, openBlock as e, unref as i, withCtx as s, withDirectives as I, createCommentVNode as f, createElementBlock as g, createTextVNode as y, toDisplayString as k, createVNode as o, Fragment as x, renderList as A, computed as C, useId as N, createElementVNode as E } from "vue";
1
+ import { defineComponent as w, resolveDirective as b, createBlock as l, openBlock as e, unref as i, withCtx as s, withDirectives as I, createCommentVNode as f, createElementBlock as g, createTextVNode as y, toDisplayString as k, createVNode as o, Fragment as F, renderList as O, computed as z, useId as N, createElementVNode as p } from "vue";
2
2
  import { FzBadge as B } from "@fiscozen/badge";
3
3
  import { FzContainer as h } from "@fiscozen/container";
4
4
  import { FzDivider as T } from "@fiscozen/divider";
5
5
  import { FzIcon as D } from "@fiscozen/icons";
6
- import { FzIconDropdown as V } from "@fiscozen/dropdown";
7
- const M = ["id"], O = /* @__PURE__ */ w({
6
+ import { FzIconDropdown as E } from "@fiscozen/dropdown";
7
+ const V = ["id"], A = /* @__PURE__ */ w({
8
8
  __name: "FzCardTitle",
9
9
  props: {
10
10
  showIndicator: { type: Boolean },
@@ -12,8 +12,8 @@ const M = ["id"], O = /* @__PURE__ */ w({
12
12
  titleId: {}
13
13
  },
14
14
  setup(t) {
15
- return (v, a) => {
16
- const r = b("color"), c = b("bold");
15
+ return (m, r) => {
16
+ const d = b("color"), a = b("bold");
17
17
  return e(), l(i(h), {
18
18
  horizontal: "",
19
19
  gap: "xs",
@@ -27,25 +27,25 @@ const M = ["id"], O = /* @__PURE__ */ w({
27
27
  size: "xs",
28
28
  variant: "fas"
29
29
  }, null, 512)), [
30
- [r, void 0, "blue"]
30
+ [d, void 0, "blue"]
31
31
  ]) : f("", !0),
32
32
  I((e(), g("p", {
33
33
  class: "min-w-0 flex-1 truncate",
34
34
  id: t.titleId
35
35
  }, [
36
36
  y(k(t.title), 1)
37
- ], 8, M)), [
38
- [c]
37
+ ], 8, V)), [
38
+ [a]
39
39
  ])
40
40
  ]),
41
41
  _: 1
42
42
  });
43
43
  };
44
44
  }
45
- }), p = {
45
+ }), M = {
46
46
  key: 0,
47
47
  class: "text-base whitespace-nowrap"
48
- }, z = /* @__PURE__ */ w({
48
+ }, x = /* @__PURE__ */ w({
49
49
  __name: "FzCardHeader",
50
50
  props: {
51
51
  hasTitleOnly: { type: Boolean },
@@ -55,8 +55,8 @@ const M = ["id"], O = /* @__PURE__ */ w({
55
55
  titleId: {}
56
56
  },
57
57
  setup(t) {
58
- return (v, a) => {
59
- const r = b("bold"), c = b("color");
58
+ return (m, r) => {
59
+ const d = b("bold"), a = b("color");
60
60
  return t.hasTitleOnly ? (e(), l(i(h), {
61
61
  key: 0,
62
62
  horizontal: "",
@@ -65,7 +65,7 @@ const M = ["id"], O = /* @__PURE__ */ w({
65
65
  class: "min-w-0 flex-1"
66
66
  }, {
67
67
  default: s(() => [
68
- o(O, {
68
+ o(A, {
69
69
  "show-indicator": t.showIndicator,
70
70
  title: t.title,
71
71
  "title-id": t.titleId
@@ -80,16 +80,16 @@ const M = ["id"], O = /* @__PURE__ */ w({
80
80
  layout: "space-between"
81
81
  }, {
82
82
  default: s(() => [
83
- o(O, {
83
+ o(A, {
84
84
  "show-indicator": t.showIndicator,
85
85
  title: t.title,
86
86
  "title-id": t.titleId
87
87
  }, null, 8, ["show-indicator", "title", "title-id"]),
88
- t.value ? I((e(), g("p", p, [
88
+ t.value ? I((e(), g("p", M, [
89
89
  y(k(t.value), 1)
90
90
  ])), [
91
- [r],
92
- [c, void 0, "blue"]
91
+ [d],
92
+ [a, void 0, "blue"]
93
93
  ]) : f("", !0)
94
94
  ]),
95
95
  _: 1
@@ -102,19 +102,19 @@ const M = ["id"], O = /* @__PURE__ */ w({
102
102
  descriptions: {}
103
103
  },
104
104
  setup(t) {
105
- return (v, a) => {
106
- var d;
107
- const r = b("small"), c = b("color");
108
- return (d = t.descriptions) != null && d.length ? (e(), l(i(h), {
105
+ return (m, r) => {
106
+ var u;
107
+ const d = b("small"), a = b("color");
108
+ return (u = t.descriptions) != null && u.length ? (e(), l(i(h), {
109
109
  key: 0,
110
110
  gap: "none"
111
111
  }, {
112
112
  default: s(() => [
113
- (e(!0), g(x, null, A(t.descriptions, (n, u) => I((e(), g("p", { key: u }, [
113
+ (e(!0), g(F, null, O(t.descriptions, (n, c) => I((e(), g("p", { key: c }, [
114
114
  y(k(n), 1)
115
115
  ])), [
116
- [r],
117
- [c, void 0, "grey"]
116
+ [d],
117
+ [a, void 0, "grey"]
118
118
  ])), 128))
119
119
  ]),
120
120
  _: 1
@@ -137,28 +137,28 @@ const M = ["id"], O = /* @__PURE__ */ w({
137
137
  badge: {}
138
138
  },
139
139
  emits: ["fzaction:click"],
140
- setup(t, { emit: v }) {
141
- const a = t, r = v, c = C(() => !a.badge && !a.value), d = C(() => !a.action), n = N();
142
- function u(m) {
143
- if (!d.value) {
144
- if (m instanceof KeyboardEvent) {
145
- if (m.key !== "Enter" && m.key !== " ") return;
146
- m.preventDefault();
140
+ setup(t, { emit: m }) {
141
+ const r = t, d = m, a = z(() => !r.badge && !r.value), u = z(() => !r.action), n = N();
142
+ function c(v) {
143
+ if (!u.value) {
144
+ if (v instanceof KeyboardEvent) {
145
+ if (v.key !== "Enter" && v.key !== " ") return;
146
+ v.preventDefault();
147
147
  }
148
- m.stopPropagation(), r("fzaction:click", a.action);
148
+ v.stopPropagation(), d("fzaction:click", r.action);
149
149
  }
150
150
  }
151
- return (m, F) => {
151
+ return (v, C) => {
152
152
  const L = b("color");
153
- return e(), g(x, null, [
153
+ return e(), g(F, null, [
154
154
  o(i(h), {
155
155
  gap: "xs",
156
156
  role: "button",
157
157
  tabindex: "0",
158
158
  "aria-labelledby": i(n),
159
159
  class: "p-8 hover:bg-semantic-info-50 hover:rounded cursor-pointer focus-visible:outline focus-visible:outline-2 focus-visible:outline-blue-200 focus-visible:rounded",
160
- onClick: u,
161
- onKeydown: u
160
+ onClick: c,
161
+ onKeydown: c
162
162
  }, {
163
163
  default: s(() => [
164
164
  o(i(h), {
@@ -175,14 +175,14 @@ const M = ["id"], O = /* @__PURE__ */ w({
175
175
  y(k(t.badge.text), 1)
176
176
  ]),
177
177
  _: 1
178
- }, 8, ["tone"])) : c.value ? (e(), l(z, {
178
+ }, 8, ["tone"])) : a.value ? (e(), l(x, {
179
179
  key: 1,
180
180
  "has-title-only": "",
181
181
  "show-indicator": t.showIndicator,
182
182
  title: t.title,
183
183
  "title-id": i(n)
184
184
  }, null, 8, ["show-indicator", "title", "title-id"])) : f("", !0),
185
- d.value ? f("", !0) : (e(), l(i(h), {
185
+ u.value ? f("", !0) : (e(), l(i(h), {
186
186
  key: 2,
187
187
  horizontal: "",
188
188
  gap: "xs",
@@ -191,7 +191,7 @@ const M = ["id"], O = /* @__PURE__ */ w({
191
191
  class: "shrink-0 ml-auto"
192
192
  }, {
193
193
  default: s(() => [
194
- E("span", K, [
194
+ p("span", K, [
195
195
  I(o(i(D), {
196
196
  name: "chevron-right",
197
197
  size: "md",
@@ -206,7 +206,7 @@ const M = ["id"], O = /* @__PURE__ */ w({
206
206
  ]),
207
207
  _: 1
208
208
  }),
209
- c.value ? f("", !0) : (e(), l(z, {
209
+ a.value ? f("", !0) : (e(), l(x, {
210
210
  key: 0,
211
211
  "show-indicator": t.showIndicator,
212
212
  title: t.title,
@@ -234,12 +234,12 @@ const M = ["id"], O = /* @__PURE__ */ w({
234
234
  badge: {}
235
235
  },
236
236
  emits: ["fzaction:click"],
237
- setup(t, { emit: v }) {
238
- const a = t, r = v, c = C(() => !a.badge && !a.value);
239
- function d(n = 0, u = a.actions[0]) {
240
- r("fzaction:click", n, u);
237
+ setup(t, { emit: m }) {
238
+ const r = t, d = m, a = z(() => !r.badge && !r.value);
239
+ function u(n, c) {
240
+ d("fzaction:click", n, c);
241
241
  }
242
- return (n, u) => (e(), g(x, null, [
242
+ return (n, c) => (e(), g(F, null, [
243
243
  o(i(h), {
244
244
  gap: "xs",
245
245
  class: "p-8 hover:bg-semantic-info-50 hover:rounded"
@@ -259,7 +259,7 @@ const M = ["id"], O = /* @__PURE__ */ w({
259
259
  y(k(t.badge.text), 1)
260
260
  ]),
261
261
  _: 1
262
- }, 8, ["tone"])) : c.value ? (e(), l(z, {
262
+ }, 8, ["tone"])) : a.value ? (e(), l(x, {
263
263
  key: 1,
264
264
  "has-title-only": "",
265
265
  "show-indicator": t.showIndicator,
@@ -273,12 +273,12 @@ const M = ["id"], O = /* @__PURE__ */ w({
273
273
  class: "shrink-0 ml-auto"
274
274
  }, {
275
275
  default: s(() => [
276
- o(i(V), {
276
+ o(i(E), {
277
277
  actions: t.actions,
278
278
  iconName: "ellipsis-vertical",
279
279
  variant: "invisible",
280
280
  "aria-label": "Mostra azioni",
281
- "onFzaction:click": d
281
+ "onFzaction:click": u
282
282
  }, null, 8, ["actions"])
283
283
  ]),
284
284
  _: 1
@@ -286,7 +286,7 @@ const M = ["id"], O = /* @__PURE__ */ w({
286
286
  ]),
287
287
  _: 1
288
288
  }),
289
- c.value ? f("", !0) : (e(), l(z, {
289
+ a.value ? f("", !0) : (e(), l(x, {
290
290
  key: 0,
291
291
  "show-indicator": t.showIndicator,
292
292
  title: t.title,
@@ -311,7 +311,7 @@ const M = ["id"], O = /* @__PURE__ */ w({
311
311
  descriptions: {}
312
312
  },
313
313
  setup(t) {
314
- return (v, a) => (e(), g(x, null, [
314
+ return (m, r) => (e(), g(F, null, [
315
315
  o(i(h), {
316
316
  gap: "xs",
317
317
  class: "p-8"
@@ -335,7 +335,7 @@ const M = ["id"], O = /* @__PURE__ */ w({
335
335
  ]),
336
336
  _: 1
337
337
  })) : f("", !0),
338
- o(z, {
338
+ o(x, {
339
339
  "show-indicator": t.showIndicator,
340
340
  title: t.title,
341
341
  value: t.value
@@ -358,40 +358,39 @@ const M = ["id"], O = /* @__PURE__ */ w({
358
358
  actions: {}
359
359
  },
360
360
  emits: ["fzaction:click"],
361
- setup(t, { emit: v }) {
362
- const a = t, r = v, c = C(() => {
363
- var d;
364
- return (d = a.actions) != null && d.length ? a.actions.length === 1 && a.actions[0].type === "link" ? "link" : "actions" : "none";
365
- });
366
- return (d, n) => {
367
- var u;
368
- return c.value === "none" ? (e(), l(R, {
369
- key: 0,
370
- badge: t.badge,
371
- title: t.title,
372
- "show-indicator": t.showIndicator,
373
- value: t.value,
374
- descriptions: t.descriptions
375
- }, null, 8, ["badge", "title", "show-indicator", "value", "descriptions"])) : c.value === "link" ? (e(), l(H, {
376
- key: 1,
377
- badge: t.badge,
378
- title: t.title,
379
- "show-indicator": t.showIndicator,
380
- value: t.value,
381
- descriptions: t.descriptions,
382
- action: (u = t.actions) == null ? void 0 : u[0],
383
- "onFzaction:click": n[0] || (n[0] = (m) => r("fzaction:click", 0, m))
384
- }, null, 8, ["badge", "title", "show-indicator", "value", "descriptions", "action"])) : (e(), l(P, {
385
- key: 2,
386
- badge: t.badge,
387
- title: t.title,
388
- "show-indicator": t.showIndicator,
389
- value: t.value,
390
- descriptions: t.descriptions,
391
- actions: t.actions,
392
- "onFzaction:click": n[1] || (n[1] = (m, F) => r("fzaction:click", m, F))
393
- }, null, 8, ["badge", "title", "show-indicator", "value", "descriptions", "actions"]));
394
- };
361
+ setup(t, { emit: m }) {
362
+ const r = t, d = m, a = z(
363
+ () => {
364
+ var n;
365
+ return ((n = r.actions) == null ? void 0 : n.filter((c) => c.type !== "section")) ?? [];
366
+ }
367
+ ), u = z(() => a.value.length ? a.value.length === 1 && a.value[0].type === "link" ? "link" : "actions" : "none");
368
+ return (n, c) => u.value === "none" ? (e(), l(R, {
369
+ key: 0,
370
+ badge: t.badge,
371
+ title: t.title,
372
+ "show-indicator": t.showIndicator,
373
+ value: t.value,
374
+ descriptions: t.descriptions
375
+ }, null, 8, ["badge", "title", "show-indicator", "value", "descriptions"])) : u.value === "link" ? (e(), l(H, {
376
+ key: 1,
377
+ badge: t.badge,
378
+ title: t.title,
379
+ "show-indicator": t.showIndicator,
380
+ value: t.value,
381
+ descriptions: t.descriptions,
382
+ action: a.value[0],
383
+ "onFzaction:click": c[0] || (c[0] = (v) => d("fzaction:click", 0, v))
384
+ }, null, 8, ["badge", "title", "show-indicator", "value", "descriptions", "action"])) : (e(), l(P, {
385
+ key: 2,
386
+ badge: t.badge,
387
+ title: t.title,
388
+ "show-indicator": t.showIndicator,
389
+ value: t.value,
390
+ descriptions: t.descriptions,
391
+ actions: t.actions,
392
+ "onFzaction:click": c[1] || (c[1] = (v, C) => d("fzaction:click", v, C))
393
+ }, null, 8, ["badge", "title", "show-indicator", "value", "descriptions", "actions"]));
395
394
  }
396
395
  }), W = /* @__PURE__ */ w({
397
396
  __name: "FzCardList",
@@ -399,22 +398,22 @@ const M = ["id"], O = /* @__PURE__ */ w({
399
398
  items: {}
400
399
  },
401
400
  emits: ["fzaction:click"],
402
- setup(t, { emit: v }) {
403
- const a = v;
404
- function r(c, d, n) {
405
- a("fzaction:click", c, d, n);
401
+ setup(t, { emit: m }) {
402
+ const r = m;
403
+ function d(a, u, n) {
404
+ r("fzaction:click", a, u, n);
406
405
  }
407
- return (c, d) => (e(), l(i(h), { gap: "xs" }, {
406
+ return (a, u) => (e(), l(i(h), { gap: "xs" }, {
408
407
  default: s(() => [
409
- (e(!0), g(x, null, A(t.items, (n, u) => (e(), l(S, {
410
- key: u,
408
+ (e(!0), g(F, null, O(t.items, (n, c) => (e(), l(S, {
409
+ key: c,
411
410
  badge: n.badge,
412
411
  title: n.title,
413
412
  value: n.value,
414
413
  descriptions: n.descriptions,
415
414
  showIndicator: n.showIndicator,
416
415
  actions: n.actions,
417
- "onFzaction:click": (m, F) => r(u, m, F)
416
+ "onFzaction:click": (v, C) => d(c, v, C)
418
417
  }, null, 8, ["badge", "title", "value", "descriptions", "showIndicator", "actions", "onFzaction:click"]))), 128))
419
418
  ]),
420
419
  _: 1
@@ -1 +1 @@
1
- (function(l,t){typeof exports=="object"&&typeof module<"u"?t(exports,require("vue"),require("@fiscozen/badge"),require("@fiscozen/container"),require("@fiscozen/divider"),require("@fiscozen/icons"),require("@fiscozen/dropdown")):typeof define=="function"&&define.amd?define(["exports","vue","@fiscozen/badge","@fiscozen/container","@fiscozen/divider","@fiscozen/icons","@fiscozen/dropdown"],t):(l=typeof globalThis<"u"?globalThis:l||self,t(l.FzCardList={},l.Vue,l.badge,l.container,l.divider,l.icons,l.dropdown))})(this,function(l,t,k,r,w,z,y){"use strict";const x=["id"],B=t.defineComponent({__name:"FzCardTitle",props:{showIndicator:{type:Boolean},title:{},titleId:{}},setup(e){return(f,n)=>{const c=t.resolveDirective("color"),o=t.resolveDirective("bold");return t.openBlock(),t.createBlock(t.unref(r.FzContainer),{horizontal:"",gap:"xs",alignItems:"center",class:"min-w-0"},{default:t.withCtx(()=>[e.showIndicator?t.withDirectives((t.openBlock(),t.createBlock(t.unref(z.FzIcon),{key:0,name:"circle-small",size:"xs",variant:"fas"},null,512)),[[c,void 0,"blue"]]):t.createCommentVNode("",!0),t.withDirectives((t.openBlock(),t.createElementBlock("p",{class:"min-w-0 flex-1 truncate",id:e.titleId},[t.createTextVNode(t.toDisplayString(e.title),1)],8,x)),[[o]])]),_:1})}}}),b={key:0,class:"text-base whitespace-nowrap"},h=t.defineComponent({__name:"FzCardHeader",props:{hasTitleOnly:{type:Boolean},value:{},showIndicator:{type:Boolean},title:{},titleId:{}},setup(e){return(f,n)=>{const c=t.resolveDirective("bold"),o=t.resolveDirective("color");return e.hasTitleOnly?(t.openBlock(),t.createBlock(t.unref(r.FzContainer),{key:0,horizontal:"",gap:"xs",alignItems:"center",class:"min-w-0 flex-1"},{default:t.withCtx(()=>[t.createVNode(B,{"show-indicator":e.showIndicator,title:e.title,"title-id":e.titleId},null,8,["show-indicator","title","title-id"])]),_:1})):(t.openBlock(),t.createBlock(t.unref(r.FzContainer),{key:1,horizontal:"",gap:"sm",alignItems:"center",layout:"space-between"},{default:t.withCtx(()=>[t.createVNode(B,{"show-indicator":e.showIndicator,title:e.title,"title-id":e.titleId},null,8,["show-indicator","title","title-id"]),e.value?t.withDirectives((t.openBlock(),t.createElementBlock("p",b,[t.createTextVNode(t.toDisplayString(e.value),1)])),[[c],[o,void 0,"blue"]]):t.createCommentVNode("",!0)]),_:1}))}}}),g=t.defineComponent({__name:"FzCardFooter",props:{descriptions:{}},setup(e){return(f,n)=>{var a;const c=t.resolveDirective("small"),o=t.resolveDirective("color");return(a=e.descriptions)!=null&&a.length?(t.openBlock(),t.createBlock(t.unref(r.FzContainer),{key:0,gap:"none"},{default:t.withCtx(()=>[(t.openBlock(!0),t.createElementBlock(t.Fragment,null,t.renderList(e.descriptions,(i,d)=>t.withDirectives((t.openBlock(),t.createElementBlock("p",{key:d},[t.createTextVNode(t.toDisplayString(i),1)])),[[c],[o,void 0,"grey"]])),128))]),_:1})):t.createCommentVNode("",!0)}}}),I={class:"inline-flex shrink-0 text-inherit","aria-hidden":"true"},p=t.defineComponent({__name:"FzCardActionLink",props:{action:{},hasTitleOnly:{type:Boolean},value:{},showIndicator:{type:Boolean},title:{},titleId:{},descriptions:{},badge:{}},emits:["fzaction:click"],setup(e,{emit:f}){const n=e,c=f,o=t.computed(()=>!n.badge&&!n.value),a=t.computed(()=>!n.action),i=t.useId();function d(s){if(!a.value){if(s instanceof KeyboardEvent){if(s.key!=="Enter"&&s.key!==" ")return;s.preventDefault()}s.stopPropagation(),c("fzaction:click",n.action)}}return(s,m)=>{const u=t.resolveDirective("color");return t.openBlock(),t.createElementBlock(t.Fragment,null,[t.createVNode(t.unref(r.FzContainer),{gap:"xs",role:"button",tabindex:"0","aria-labelledby":t.unref(i),class:"p-8 hover:bg-semantic-info-50 hover:rounded cursor-pointer focus-visible:outline focus-visible:outline-2 focus-visible:outline-blue-200 focus-visible:rounded",onClick:d,onKeydown:d},{default:t.withCtx(()=>[t.createVNode(t.unref(r.FzContainer),{horizontal:"",alignItems:"center"},{default:t.withCtx(()=>[e.badge?(t.openBlock(),t.createBlock(t.unref(k.FzBadge),{key:0,tone:e.badge.tone,variant:"text"},{default:t.withCtx(()=>[t.createTextVNode(t.toDisplayString(e.badge.text),1)]),_:1},8,["tone"])):o.value?(t.openBlock(),t.createBlock(h,{key:1,"has-title-only":"","show-indicator":e.showIndicator,title:e.title,"title-id":t.unref(i)},null,8,["show-indicator","title","title-id"])):t.createCommentVNode("",!0),a.value?t.createCommentVNode("",!0):(t.openBlock(),t.createBlock(t.unref(r.FzContainer),{key:2,horizontal:"",gap:"xs",alignItems:"center",layout:"expand-last",class:"shrink-0 ml-auto"},{default:t.withCtx(()=>[t.createElementVNode("span",I,[t.withDirectives(t.createVNode(t.unref(z.FzIcon),{name:"chevron-right",size:"md",variant:"far"},null,512),[[u,void 0,"grey"]])])]),_:1}))]),_:1}),o.value?t.createCommentVNode("",!0):(t.openBlock(),t.createBlock(h,{key:0,"show-indicator":e.showIndicator,title:e.title,value:e.value,"title-id":t.unref(i)},null,8,["show-indicator","title","value","title-id"])),t.createVNode(g,{descriptions:e.descriptions},null,8,["descriptions"])]),_:1},8,["aria-labelledby"]),t.createVNode(t.unref(w.FzDivider),{margin:"none"})],64)}}}),F=t.defineComponent({__name:"FzCardMultiActions",props:{actions:{},hasTitleOnly:{type:Boolean},value:{},showIndicator:{type:Boolean},title:{},titleId:{},descriptions:{},badge:{}},emits:["fzaction:click"],setup(e,{emit:f}){const n=e,c=f,o=t.computed(()=>!n.badge&&!n.value);function a(i=0,d=n.actions[0]){c("fzaction:click",i,d)}return(i,d)=>(t.openBlock(),t.createElementBlock(t.Fragment,null,[t.createVNode(t.unref(r.FzContainer),{gap:"xs",class:"p-8 hover:bg-semantic-info-50 hover:rounded"},{default:t.withCtx(()=>[t.createVNode(t.unref(r.FzContainer),{horizontal:"",alignItems:"center"},{default:t.withCtx(()=>[e.badge?(t.openBlock(),t.createBlock(t.unref(k.FzBadge),{key:0,tone:e.badge.tone,variant:"text"},{default:t.withCtx(()=>[t.createTextVNode(t.toDisplayString(e.badge.text),1)]),_:1},8,["tone"])):o.value?(t.openBlock(),t.createBlock(h,{key:1,"has-title-only":"","show-indicator":e.showIndicator,title:e.title},null,8,["show-indicator","title"])):t.createCommentVNode("",!0),t.createVNode(t.unref(r.FzContainer),{horizontal:"",gap:"xs",alignItems:"center",layout:"expand-last",class:"shrink-0 ml-auto"},{default:t.withCtx(()=>[t.createVNode(t.unref(y.FzIconDropdown),{actions:e.actions,iconName:"ellipsis-vertical",variant:"invisible","aria-label":"Mostra azioni","onFzaction:click":a},null,8,["actions"])]),_:1})]),_:1}),o.value?t.createCommentVNode("",!0):(t.openBlock(),t.createBlock(h,{key:0,"show-indicator":e.showIndicator,title:e.title,value:e.value},null,8,["show-indicator","title","value"])),t.createVNode(g,{descriptions:e.descriptions},null,8,["descriptions"])]),_:1}),t.createVNode(t.unref(w.FzDivider),{margin:"none"})],64))}}),N=t.defineComponent({__name:"FzCardNoAction",props:{badge:{},hasTitleOnly:{type:Boolean},value:{},showIndicator:{type:Boolean},title:{},titleId:{},descriptions:{}},setup(e){return(f,n)=>(t.openBlock(),t.createElementBlock(t.Fragment,null,[t.createVNode(t.unref(r.FzContainer),{gap:"xs",class:"p-8"},{default:t.withCtx(()=>[e.badge?(t.openBlock(),t.createBlock(t.unref(r.FzContainer),{key:0,horizontal:"",alignItems:"center"},{default:t.withCtx(()=>[t.createVNode(t.unref(k.FzBadge),{tone:e.badge.tone,variant:"text"},{default:t.withCtx(()=>[t.createTextVNode(t.toDisplayString(e.badge.text),1)]),_:1},8,["tone"])]),_:1})):t.createCommentVNode("",!0),t.createVNode(h,{"show-indicator":e.showIndicator,title:e.title,value:e.value},null,8,["show-indicator","title","value"]),t.createVNode(g,{descriptions:e.descriptions},null,8,["descriptions"])]),_:1}),t.createVNode(t.unref(w.FzDivider),{margin:"none"})],64))}}),C=t.defineComponent({__name:"FzCardListItem",props:{badge:{},title:{},value:{},descriptions:{},showIndicator:{type:Boolean},actions:{}},emits:["fzaction:click"],setup(e,{emit:f}){const n=e,c=f,o=t.computed(()=>{var a;return(a=n.actions)!=null&&a.length?n.actions.length===1&&n.actions[0].type==="link"?"link":"actions":"none"});return(a,i)=>{var d;return o.value==="none"?(t.openBlock(),t.createBlock(N,{key:0,badge:e.badge,title:e.title,"show-indicator":e.showIndicator,value:e.value,descriptions:e.descriptions},null,8,["badge","title","show-indicator","value","descriptions"])):o.value==="link"?(t.openBlock(),t.createBlock(p,{key:1,badge:e.badge,title:e.title,"show-indicator":e.showIndicator,value:e.value,descriptions:e.descriptions,action:(d=e.actions)==null?void 0:d[0],"onFzaction:click":i[0]||(i[0]=s=>c("fzaction:click",0,s))},null,8,["badge","title","show-indicator","value","descriptions","action"])):(t.openBlock(),t.createBlock(F,{key:2,badge:e.badge,title:e.title,"show-indicator":e.showIndicator,value:e.value,descriptions:e.descriptions,actions:e.actions,"onFzaction:click":i[1]||(i[1]=(s,m)=>c("fzaction:click",s,m))},null,8,["badge","title","show-indicator","value","descriptions","actions"]))}}}),V=t.defineComponent({__name:"FzCardList",props:{items:{}},emits:["fzaction:click"],setup(e,{emit:f}){const n=f;function c(o,a,i){n("fzaction:click",o,a,i)}return(o,a)=>(t.openBlock(),t.createBlock(t.unref(r.FzContainer),{gap:"xs"},{default:t.withCtx(()=>[(t.openBlock(!0),t.createElementBlock(t.Fragment,null,t.renderList(e.items,(i,d)=>(t.openBlock(),t.createBlock(C,{key:d,badge:i.badge,title:i.title,value:i.value,descriptions:i.descriptions,showIndicator:i.showIndicator,actions:i.actions,"onFzaction:click":(s,m)=>c(d,s,m)},null,8,["badge","title","value","descriptions","showIndicator","actions","onFzaction:click"]))),128))]),_:1}))}});l.FzCardList=V,l.FzCardListItem=C,Object.defineProperty(l,Symbol.toStringTag,{value:"Module"})});
1
+ (function(l,t){typeof exports=="object"&&typeof module<"u"?t(exports,require("vue"),require("@fiscozen/badge"),require("@fiscozen/container"),require("@fiscozen/divider"),require("@fiscozen/icons"),require("@fiscozen/dropdown")):typeof define=="function"&&define.amd?define(["exports","vue","@fiscozen/badge","@fiscozen/container","@fiscozen/divider","@fiscozen/icons","@fiscozen/dropdown"],t):(l=typeof globalThis<"u"?globalThis:l||self,t(l.FzCardList={},l.Vue,l.badge,l.container,l.divider,l.icons,l.dropdown))})(this,function(l,t,k,r,w,z,C){"use strict";const x=["id"],B=t.defineComponent({__name:"FzCardTitle",props:{showIndicator:{type:Boolean},title:{},titleId:{}},setup(e){return(f,c)=>{const a=t.resolveDirective("color"),n=t.resolveDirective("bold");return t.openBlock(),t.createBlock(t.unref(r.FzContainer),{horizontal:"",gap:"xs",alignItems:"center",class:"min-w-0"},{default:t.withCtx(()=>[e.showIndicator?t.withDirectives((t.openBlock(),t.createBlock(t.unref(z.FzIcon),{key:0,name:"circle-small",size:"xs",variant:"fas"},null,512)),[[a,void 0,"blue"]]):t.createCommentVNode("",!0),t.withDirectives((t.openBlock(),t.createElementBlock("p",{class:"min-w-0 flex-1 truncate",id:e.titleId},[t.createTextVNode(t.toDisplayString(e.title),1)],8,x)),[[n]])]),_:1})}}}),b={key:0,class:"text-base whitespace-nowrap"},h=t.defineComponent({__name:"FzCardHeader",props:{hasTitleOnly:{type:Boolean},value:{},showIndicator:{type:Boolean},title:{},titleId:{}},setup(e){return(f,c)=>{const a=t.resolveDirective("bold"),n=t.resolveDirective("color");return e.hasTitleOnly?(t.openBlock(),t.createBlock(t.unref(r.FzContainer),{key:0,horizontal:"",gap:"xs",alignItems:"center",class:"min-w-0 flex-1"},{default:t.withCtx(()=>[t.createVNode(B,{"show-indicator":e.showIndicator,title:e.title,"title-id":e.titleId},null,8,["show-indicator","title","title-id"])]),_:1})):(t.openBlock(),t.createBlock(t.unref(r.FzContainer),{key:1,horizontal:"",gap:"sm",alignItems:"center",layout:"space-between"},{default:t.withCtx(()=>[t.createVNode(B,{"show-indicator":e.showIndicator,title:e.title,"title-id":e.titleId},null,8,["show-indicator","title","title-id"]),e.value?t.withDirectives((t.openBlock(),t.createElementBlock("p",b,[t.createTextVNode(t.toDisplayString(e.value),1)])),[[a],[n,void 0,"blue"]]):t.createCommentVNode("",!0)]),_:1}))}}}),g=t.defineComponent({__name:"FzCardFooter",props:{descriptions:{}},setup(e){return(f,c)=>{var d;const a=t.resolveDirective("small"),n=t.resolveDirective("color");return(d=e.descriptions)!=null&&d.length?(t.openBlock(),t.createBlock(t.unref(r.FzContainer),{key:0,gap:"none"},{default:t.withCtx(()=>[(t.openBlock(!0),t.createElementBlock(t.Fragment,null,t.renderList(e.descriptions,(i,o)=>t.withDirectives((t.openBlock(),t.createElementBlock("p",{key:o},[t.createTextVNode(t.toDisplayString(i),1)])),[[a],[n,void 0,"grey"]])),128))]),_:1})):t.createCommentVNode("",!0)}}}),p={class:"inline-flex shrink-0 text-inherit","aria-hidden":"true"},I=t.defineComponent({__name:"FzCardActionLink",props:{action:{},hasTitleOnly:{type:Boolean},value:{},showIndicator:{type:Boolean},title:{},titleId:{},descriptions:{},badge:{}},emits:["fzaction:click"],setup(e,{emit:f}){const c=e,a=f,n=t.computed(()=>!c.badge&&!c.value),d=t.computed(()=>!c.action),i=t.useId();function o(s){if(!d.value){if(s instanceof KeyboardEvent){if(s.key!=="Enter"&&s.key!==" ")return;s.preventDefault()}s.stopPropagation(),a("fzaction:click",c.action)}}return(s,m)=>{const u=t.resolveDirective("color");return t.openBlock(),t.createElementBlock(t.Fragment,null,[t.createVNode(t.unref(r.FzContainer),{gap:"xs",role:"button",tabindex:"0","aria-labelledby":t.unref(i),class:"p-8 hover:bg-semantic-info-50 hover:rounded cursor-pointer focus-visible:outline focus-visible:outline-2 focus-visible:outline-blue-200 focus-visible:rounded",onClick:o,onKeydown:o},{default:t.withCtx(()=>[t.createVNode(t.unref(r.FzContainer),{horizontal:"",alignItems:"center"},{default:t.withCtx(()=>[e.badge?(t.openBlock(),t.createBlock(t.unref(k.FzBadge),{key:0,tone:e.badge.tone,variant:"text"},{default:t.withCtx(()=>[t.createTextVNode(t.toDisplayString(e.badge.text),1)]),_:1},8,["tone"])):n.value?(t.openBlock(),t.createBlock(h,{key:1,"has-title-only":"","show-indicator":e.showIndicator,title:e.title,"title-id":t.unref(i)},null,8,["show-indicator","title","title-id"])):t.createCommentVNode("",!0),d.value?t.createCommentVNode("",!0):(t.openBlock(),t.createBlock(t.unref(r.FzContainer),{key:2,horizontal:"",gap:"xs",alignItems:"center",layout:"expand-last",class:"shrink-0 ml-auto"},{default:t.withCtx(()=>[t.createElementVNode("span",p,[t.withDirectives(t.createVNode(t.unref(z.FzIcon),{name:"chevron-right",size:"md",variant:"far"},null,512),[[u,void 0,"grey"]])])]),_:1}))]),_:1}),n.value?t.createCommentVNode("",!0):(t.openBlock(),t.createBlock(h,{key:0,"show-indicator":e.showIndicator,title:e.title,value:e.value,"title-id":t.unref(i)},null,8,["show-indicator","title","value","title-id"])),t.createVNode(g,{descriptions:e.descriptions},null,8,["descriptions"])]),_:1},8,["aria-labelledby"]),t.createVNode(t.unref(w.FzDivider),{margin:"none"})],64)}}}),F=t.defineComponent({__name:"FzCardMultiActions",props:{actions:{},hasTitleOnly:{type:Boolean},value:{},showIndicator:{type:Boolean},title:{},titleId:{},descriptions:{},badge:{}},emits:["fzaction:click"],setup(e,{emit:f}){const c=e,a=f,n=t.computed(()=>!c.badge&&!c.value);function d(i,o){a("fzaction:click",i,o)}return(i,o)=>(t.openBlock(),t.createElementBlock(t.Fragment,null,[t.createVNode(t.unref(r.FzContainer),{gap:"xs",class:"p-8 hover:bg-semantic-info-50 hover:rounded"},{default:t.withCtx(()=>[t.createVNode(t.unref(r.FzContainer),{horizontal:"",alignItems:"center"},{default:t.withCtx(()=>[e.badge?(t.openBlock(),t.createBlock(t.unref(k.FzBadge),{key:0,tone:e.badge.tone,variant:"text"},{default:t.withCtx(()=>[t.createTextVNode(t.toDisplayString(e.badge.text),1)]),_:1},8,["tone"])):n.value?(t.openBlock(),t.createBlock(h,{key:1,"has-title-only":"","show-indicator":e.showIndicator,title:e.title},null,8,["show-indicator","title"])):t.createCommentVNode("",!0),t.createVNode(t.unref(r.FzContainer),{horizontal:"",gap:"xs",alignItems:"center",layout:"expand-last",class:"shrink-0 ml-auto"},{default:t.withCtx(()=>[t.createVNode(t.unref(C.FzIconDropdown),{actions:e.actions,iconName:"ellipsis-vertical",variant:"invisible","aria-label":"Mostra azioni","onFzaction:click":d},null,8,["actions"])]),_:1})]),_:1}),n.value?t.createCommentVNode("",!0):(t.openBlock(),t.createBlock(h,{key:0,"show-indicator":e.showIndicator,title:e.title,value:e.value},null,8,["show-indicator","title","value"])),t.createVNode(g,{descriptions:e.descriptions},null,8,["descriptions"])]),_:1}),t.createVNode(t.unref(w.FzDivider),{margin:"none"})],64))}}),N=t.defineComponent({__name:"FzCardNoAction",props:{badge:{},hasTitleOnly:{type:Boolean},value:{},showIndicator:{type:Boolean},title:{},titleId:{},descriptions:{}},setup(e){return(f,c)=>(t.openBlock(),t.createElementBlock(t.Fragment,null,[t.createVNode(t.unref(r.FzContainer),{gap:"xs",class:"p-8"},{default:t.withCtx(()=>[e.badge?(t.openBlock(),t.createBlock(t.unref(r.FzContainer),{key:0,horizontal:"",alignItems:"center"},{default:t.withCtx(()=>[t.createVNode(t.unref(k.FzBadge),{tone:e.badge.tone,variant:"text"},{default:t.withCtx(()=>[t.createTextVNode(t.toDisplayString(e.badge.text),1)]),_:1},8,["tone"])]),_:1})):t.createCommentVNode("",!0),t.createVNode(h,{"show-indicator":e.showIndicator,title:e.title,value:e.value},null,8,["show-indicator","title","value"]),t.createVNode(g,{descriptions:e.descriptions},null,8,["descriptions"])]),_:1}),t.createVNode(t.unref(w.FzDivider),{margin:"none"})],64))}}),y=t.defineComponent({__name:"FzCardListItem",props:{badge:{},title:{},value:{},descriptions:{},showIndicator:{type:Boolean},actions:{}},emits:["fzaction:click"],setup(e,{emit:f}){const c=e,a=f,n=t.computed(()=>{var i;return((i=c.actions)==null?void 0:i.filter(o=>o.type!=="section"))??[]}),d=t.computed(()=>n.value.length?n.value.length===1&&n.value[0].type==="link"?"link":"actions":"none");return(i,o)=>d.value==="none"?(t.openBlock(),t.createBlock(N,{key:0,badge:e.badge,title:e.title,"show-indicator":e.showIndicator,value:e.value,descriptions:e.descriptions},null,8,["badge","title","show-indicator","value","descriptions"])):d.value==="link"?(t.openBlock(),t.createBlock(I,{key:1,badge:e.badge,title:e.title,"show-indicator":e.showIndicator,value:e.value,descriptions:e.descriptions,action:n.value[0],"onFzaction:click":o[0]||(o[0]=s=>a("fzaction:click",0,s))},null,8,["badge","title","show-indicator","value","descriptions","action"])):(t.openBlock(),t.createBlock(F,{key:2,badge:e.badge,title:e.title,"show-indicator":e.showIndicator,value:e.value,descriptions:e.descriptions,actions:e.actions,"onFzaction:click":o[1]||(o[1]=(s,m)=>a("fzaction:click",s,m))},null,8,["badge","title","show-indicator","value","descriptions","actions"]))}}),V=t.defineComponent({__name:"FzCardList",props:{items:{}},emits:["fzaction:click"],setup(e,{emit:f}){const c=f;function a(n,d,i){c("fzaction:click",n,d,i)}return(n,d)=>(t.openBlock(),t.createBlock(t.unref(r.FzContainer),{gap:"xs"},{default:t.withCtx(()=>[(t.openBlock(!0),t.createElementBlock(t.Fragment,null,t.renderList(e.items,(i,o)=>(t.openBlock(),t.createBlock(y,{key:o,badge:i.badge,title:i.title,value:i.value,descriptions:i.descriptions,showIndicator:i.showIndicator,actions:i.actions,"onFzaction:click":(s,m)=>a(o,s,m)},null,8,["badge","title","value","descriptions","showIndicator","actions","onFzaction:click"]))),128))]),_:1}))}});l.FzCardList=V,l.FzCardListItem=y,Object.defineProperty(l,Symbol.toStringTag,{value:"Module"})});
@@ -1,5 +1,6 @@
1
1
  import { FzActionLinkProps, FzActionProps } from '@fiscozen/action';
2
2
  import { FzBadgeTone } from '@fiscozen/badge';
3
+ import { FzCardListItemAction } from '../types';
3
4
 
4
5
  export type FzCardBadge = {
5
6
  text: string;
@@ -27,7 +28,7 @@ export interface FzCardSingleActionEmits {
27
28
  (event: "fzaction:click", action: FzActionLinkProps): void;
28
29
  }
29
30
  export interface FzCardMultiActionsProps extends FzCardHeaderProps, FzCardListFooterProps, FzCardNoActionProps {
30
- actions: FzActionProps[];
31
+ actions: FzCardListItemAction[];
31
32
  }
32
33
  export interface FzCardMultiActionsEmits {
33
34
  (event: "fzaction:click", actionIndex: number, action: FzActionProps): void;
@@ -1,7 +1,16 @@
1
- import { FzActionProps } from '@fiscozen/action';
1
+ import { FzActionProps, FzActionSectionProps } from '@fiscozen/action';
2
2
  import { FzBadgeTone } from '@fiscozen/badge';
3
3
 
4
4
  export type ActionsMode = "none" | "link" | "actions";
5
+ /**
6
+ * A row action, or a section separator that groups the following actions
7
+ * under a labeled header inside the kebab dropdown (mirrors `FzActionSection`).
8
+ * Section markers are not interactive — they only render as group headers
9
+ * and are skipped by click events.
10
+ */
11
+ export type FzCardListItemAction = FzActionProps | (FzActionSectionProps & {
12
+ type: "section";
13
+ });
5
14
  export interface FzCardListItemProps {
6
15
  /**
7
16
  * Badge displayed inside the card at the top-left.
@@ -34,9 +43,13 @@ export interface FzCardListItemProps {
34
43
  */
35
44
  showIndicator?: boolean;
36
45
  /**
37
- * Row actions. When omitted or `[]`, no trailing control is shown. With one item, an arrow button is shown; with more than one, an ellipsis opens a dropdown.
46
+ * Row actions. When omitted or `[]`, no trailing control is shown. With one
47
+ * non-section action, an arrow button is shown; with more, an ellipsis opens
48
+ * a dropdown. Pass a `{ type: 'section', label }` marker to start a labeled
49
+ * group inside the dropdown (subsequent actions go into that section until
50
+ * the next marker).
38
51
  */
39
- actions?: FzActionProps[];
52
+ actions?: FzCardListItemAction[];
40
53
  }
41
54
  export interface FzCardListItemEmits {
42
55
  /**
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@fiscozen/card-list",
3
- "version": "1.0.3",
3
+ "version": "1.1.0",
4
4
  "description": "Design System CardList component",
5
5
  "main": "src/index.ts",
6
6
  "type": "module",
@@ -9,9 +9,9 @@
9
9
  "dependencies": {
10
10
  "@fiscozen/action": "3.0.1",
11
11
  "@fiscozen/badge": "3.0.1",
12
+ "@fiscozen/button": "3.0.1",
12
13
  "@fiscozen/divider": "1.0.1",
13
14
  "@fiscozen/container": "0.4.2",
14
- "@fiscozen/button": "3.0.1",
15
15
  "@fiscozen/dropdown": "1.0.7"
16
16
  },
17
17
  "peerDependencies": {
@@ -19,6 +19,7 @@
19
19
  import { computed } from "vue";
20
20
  import type {
21
21
  ActionsMode,
22
+ FzCardListItemAction,
22
23
  FzCardListItemProps,
23
24
  FzCardListItemEmits,
24
25
  } from "./types";
@@ -31,9 +32,15 @@ const props = defineProps<FzCardListItemProps>();
31
32
 
32
33
  const emit = defineEmits<FzCardListItemEmits>();
33
34
 
35
+ // Section markers render as group headers in the dropdown but don't count
36
+ // toward the action-count routing (none / link / actions).
37
+ const interactiveActions = computed<FzActionProps[]>(
38
+ () => (props.actions?.filter((a) => a.type !== "section") ?? []) as FzActionProps[],
39
+ );
40
+
34
41
  const actionsMode = computed<ActionsMode>(() => {
35
- if (!props.actions?.length) return "none";
36
- if (props.actions.length === 1 && props.actions[0].type === "link") return "link";
42
+ if (!interactiveActions.value.length) return "none";
43
+ if (interactiveActions.value.length === 1 && interactiveActions.value[0].type === "link") return "link";
37
44
  return "actions";
38
45
  });
39
46
 
@@ -55,7 +62,7 @@ const actionsMode = computed<ActionsMode>(() => {
55
62
  :show-indicator="showIndicator"
56
63
  :value="value"
57
64
  :descriptions="descriptions"
58
- :action="actions?.[0] as FzActionLinkProps"
65
+ :action="interactiveActions[0] as FzActionLinkProps"
59
66
  @fzaction:click="(action) => emit('fzaction:click', 0, action as FzActionProps)"
60
67
  />
61
68
  <FzCardMultiActions
@@ -65,7 +72,7 @@ const actionsMode = computed<ActionsMode>(() => {
65
72
  :show-indicator="showIndicator"
66
73
  :value="value"
67
74
  :descriptions="descriptions"
68
- :actions="actions as FzActionProps[]"
75
+ :actions="actions as FzCardListItemAction[]"
69
76
  @fzaction:click="(index, action) => emit('fzaction:click', index, action)"
70
77
  />
71
78
  </template>
@@ -205,6 +205,39 @@ describe("FzCardListItem", () => {
205
205
  expect(dropdown.props("actions")).toEqual([actionA, actionB]);
206
206
  });
207
207
 
208
+ it("should ignore section markers when deciding actions mode", async () => {
209
+ // Only a section header + one link action → still arrow (link) mode,
210
+ // not dropdown — markers don't count as interactive actions.
211
+ const sectionOnly = mount(FzCardListItem, {
212
+ props: { title: "Item", actions: [{ type: "section", label: "Group" }] },
213
+ });
214
+ const sectionPlusOneLink = mount(FzCardListItem, {
215
+ props: {
216
+ title: "Item",
217
+ actions: [{ type: "section", label: "Group" }, linkAction],
218
+ },
219
+ });
220
+ await Promise.all([sectionOnly.vm.$nextTick(), sectionPlusOneLink.vm.$nextTick()]);
221
+ expect(sectionOnly.findComponent({ name: "FzIconButton" }).exists()).toBe(false);
222
+ expect(sectionOnly.findComponent({ name: "FzIconDropdown" }).exists()).toBe(false);
223
+ expect(
224
+ sectionPlusOneLink
225
+ .findAllComponents({ name: "FzIcon" })
226
+ .some((w) => w.props("name") === "chevron-right"),
227
+ ).toBe(true);
228
+ });
229
+
230
+ it("should pass section markers through to the dropdown", async () => {
231
+ const section = { type: "section" as const, label: "Scarica" };
232
+ const wrapper = mount(FzCardListItem, {
233
+ props: { title: "Item", actions: [actionA, section, actionB] },
234
+ });
235
+ await wrapper.vm.$nextTick();
236
+ const dropdown = wrapper.findComponent({ name: "FzIconDropdown" });
237
+ expect(dropdown.exists()).toBe(true);
238
+ expect(dropdown.props("actions")).toEqual([actionA, section, actionB]);
239
+ });
240
+
208
241
  it("should render badge in the top row when badge is provided", async () => {
209
242
  const wrapper = mount(FzCardListItem, {
210
243
  props: { title: "Item", badge: { text: "Tag", tone: "info" } },
@@ -15,10 +15,7 @@ const emit = defineEmits<FzCardMultiActionsEmits>();
15
15
 
16
16
  const hasTitleOnly = computed(() => !props.badge && !props.value);
17
17
 
18
- function emitActionClick(
19
- actionIndex: number = 0,
20
- action: FzActionProps = props.actions![0],
21
- ) {
18
+ function emitActionClick(actionIndex: number, action: FzActionProps) {
22
19
  emit("fzaction:click", actionIndex, action);
23
20
  }
24
21
  </script>
@@ -1,5 +1,6 @@
1
1
  import { FzActionLinkProps, FzActionProps } from "@fiscozen/action";
2
2
  import { FzBadgeTone } from "@fiscozen/badge";
3
+ import type { FzCardListItemAction } from "../types";
3
4
 
4
5
  export type FzCardBadge = {
5
6
  text: string;
@@ -37,7 +38,7 @@ export interface FzCardSingleActionEmits {
37
38
 
38
39
  export interface FzCardMultiActionsProps
39
40
  extends FzCardHeaderProps, FzCardListFooterProps, FzCardNoActionProps {
40
- actions: FzActionProps[];
41
+ actions: FzCardListItemAction[];
41
42
  }
42
43
 
43
44
  export interface FzCardMultiActionsEmits {
package/src/types.ts CHANGED
@@ -1,8 +1,18 @@
1
- import type { FzActionProps } from "@fiscozen/action";
1
+ import type { FzActionProps, FzActionSectionProps } from "@fiscozen/action";
2
2
  import type { FzBadgeTone } from "@fiscozen/badge";
3
3
 
4
4
  export type ActionsMode = "none" | "link" | "actions";
5
5
 
6
+ /**
7
+ * A row action, or a section separator that groups the following actions
8
+ * under a labeled header inside the kebab dropdown (mirrors `FzActionSection`).
9
+ * Section markers are not interactive — they only render as group headers
10
+ * and are skipped by click events.
11
+ */
12
+ export type FzCardListItemAction =
13
+ | FzActionProps
14
+ | (FzActionSectionProps & { type: "section" });
15
+
6
16
  export interface FzCardListItemProps {
7
17
  /**
8
18
  * Badge displayed inside the card at the top-left.
@@ -35,9 +45,13 @@ export interface FzCardListItemProps {
35
45
  */
36
46
  showIndicator?: boolean;
37
47
  /**
38
- * Row actions. When omitted or `[]`, no trailing control is shown. With one item, an arrow button is shown; with more than one, an ellipsis opens a dropdown.
48
+ * Row actions. When omitted or `[]`, no trailing control is shown. With one
49
+ * non-section action, an arrow button is shown; with more, an ellipsis opens
50
+ * a dropdown. Pass a `{ type: 'section', label }` marker to start a labeled
51
+ * group inside the dropdown (subsequent actions go into that section until
52
+ * the next marker).
39
53
  */
40
- actions?: FzActionProps[];
54
+ actions?: FzCardListItemAction[];
41
55
  }
42
56
 
43
57
  export interface FzCardListItemEmits {
@@ -1 +1 @@
1
- {"program":{"fileNames":["../../node_modules/.pnpm/typescript@5.3.3/node_modules/typescript/lib/lib.es5.d.ts","../../node_modules/.pnpm/typescript@5.3.3/node_modules/typescript/lib/lib.es2015.d.ts","../../node_modules/.pnpm/typescript@5.3.3/node_modules/typescript/lib/lib.es2016.d.ts","../../node_modules/.pnpm/typescript@5.3.3/node_modules/typescript/lib/lib.es2017.d.ts","../../node_modules/.pnpm/typescript@5.3.3/node_modules/typescript/lib/lib.es2018.d.ts","../../node_modules/.pnpm/typescript@5.3.3/node_modules/typescript/lib/lib.es2019.d.ts","../../node_modules/.pnpm/typescript@5.3.3/node_modules/typescript/lib/lib.es2020.d.ts","../../node_modules/.pnpm/typescript@5.3.3/node_modules/typescript/lib/lib.dom.d.ts","../../node_modules/.pnpm/typescript@5.3.3/node_modules/typescript/lib/lib.dom.iterable.d.ts","../../node_modules/.pnpm/typescript@5.3.3/node_modules/typescript/lib/lib.es2015.core.d.ts","../../node_modules/.pnpm/typescript@5.3.3/node_modules/typescript/lib/lib.es2015.collection.d.ts","../../node_modules/.pnpm/typescript@5.3.3/node_modules/typescript/lib/lib.es2015.generator.d.ts","../../node_modules/.pnpm/typescript@5.3.3/node_modules/typescript/lib/lib.es2015.iterable.d.ts","../../node_modules/.pnpm/typescript@5.3.3/node_modules/typescript/lib/lib.es2015.promise.d.ts","../../node_modules/.pnpm/typescript@5.3.3/node_modules/typescript/lib/lib.es2015.proxy.d.ts","../../node_modules/.pnpm/typescript@5.3.3/node_modules/typescript/lib/lib.es2015.reflect.d.ts","../../node_modules/.pnpm/typescript@5.3.3/node_modules/typescript/lib/lib.es2015.symbol.d.ts","../../node_modules/.pnpm/typescript@5.3.3/node_modules/typescript/lib/lib.es2015.symbol.wellknown.d.ts","../../node_modules/.pnpm/typescript@5.3.3/node_modules/typescript/lib/lib.es2016.array.include.d.ts","../../node_modules/.pnpm/typescript@5.3.3/node_modules/typescript/lib/lib.es2017.date.d.ts","../../node_modules/.pnpm/typescript@5.3.3/node_modules/typescript/lib/lib.es2017.object.d.ts","../../node_modules/.pnpm/typescript@5.3.3/node_modules/typescript/lib/lib.es2017.sharedmemory.d.ts","../../node_modules/.pnpm/typescript@5.3.3/node_modules/typescript/lib/lib.es2017.string.d.ts","../../node_modules/.pnpm/typescript@5.3.3/node_modules/typescript/lib/lib.es2017.intl.d.ts","../../node_modules/.pnpm/typescript@5.3.3/node_modules/typescript/lib/lib.es2017.typedarrays.d.ts","../../node_modules/.pnpm/typescript@5.3.3/node_modules/typescript/lib/lib.es2018.asyncgenerator.d.ts","../../node_modules/.pnpm/typescript@5.3.3/node_modules/typescript/lib/lib.es2018.asynciterable.d.ts","../../node_modules/.pnpm/typescript@5.3.3/node_modules/typescript/lib/lib.es2018.intl.d.ts","../../node_modules/.pnpm/typescript@5.3.3/node_modules/typescript/lib/lib.es2018.promise.d.ts","../../node_modules/.pnpm/typescript@5.3.3/node_modules/typescript/lib/lib.es2018.regexp.d.ts","../../node_modules/.pnpm/typescript@5.3.3/node_modules/typescript/lib/lib.es2019.array.d.ts","../../node_modules/.pnpm/typescript@5.3.3/node_modules/typescript/lib/lib.es2019.object.d.ts","../../node_modules/.pnpm/typescript@5.3.3/node_modules/typescript/lib/lib.es2019.string.d.ts","../../node_modules/.pnpm/typescript@5.3.3/node_modules/typescript/lib/lib.es2019.symbol.d.ts","../../node_modules/.pnpm/typescript@5.3.3/node_modules/typescript/lib/lib.es2019.intl.d.ts","../../node_modules/.pnpm/typescript@5.3.3/node_modules/typescript/lib/lib.es2020.bigint.d.ts","../../node_modules/.pnpm/typescript@5.3.3/node_modules/typescript/lib/lib.es2020.date.d.ts","../../node_modules/.pnpm/typescript@5.3.3/node_modules/typescript/lib/lib.es2020.promise.d.ts","../../node_modules/.pnpm/typescript@5.3.3/node_modules/typescript/lib/lib.es2020.sharedmemory.d.ts","../../node_modules/.pnpm/typescript@5.3.3/node_modules/typescript/lib/lib.es2020.string.d.ts","../../node_modules/.pnpm/typescript@5.3.3/node_modules/typescript/lib/lib.es2020.symbol.wellknown.d.ts","../../node_modules/.pnpm/typescript@5.3.3/node_modules/typescript/lib/lib.es2020.intl.d.ts","../../node_modules/.pnpm/typescript@5.3.3/node_modules/typescript/lib/lib.es2020.number.d.ts","../../node_modules/.pnpm/typescript@5.3.3/node_modules/typescript/lib/lib.decorators.d.ts","../../node_modules/.pnpm/typescript@5.3.3/node_modules/typescript/lib/lib.decorators.legacy.d.ts","../../node_modules/.pnpm/@vue+shared@3.5.26/node_modules/@vue/shared/dist/shared.d.ts","../../node_modules/.pnpm/@vue+reactivity@3.5.26/node_modules/@vue/reactivity/dist/reactivity.d.ts","../../node_modules/.pnpm/@vue+runtime-core@3.5.26/node_modules/@vue/runtime-core/dist/runtime-core.d.ts","../../node_modules/.pnpm/csstype@3.2.3/node_modules/csstype/index.d.ts","../../node_modules/.pnpm/@vue+runtime-dom@3.5.26/node_modules/@vue/runtime-dom/dist/runtime-dom.d.ts","../../node_modules/.pnpm/vue@3.5.26_typescript@5.3.3/node_modules/vue/jsx-runtime/index.d.ts","../../node_modules/.pnpm/@babel+types@7.29.0/node_modules/@babel/types/lib/index.d.ts","../../node_modules/.pnpm/@babel+types@7.28.6/node_modules/@babel/types/lib/index.d.ts","../../node_modules/.pnpm/@babel+parser@7.28.6/node_modules/@babel/parser/typings/babel-parser.d.ts","../../node_modules/.pnpm/@vue+compiler-core@3.5.26/node_modules/@vue/compiler-core/dist/compiler-core.d.ts","../../node_modules/.pnpm/@vue+compiler-dom@3.5.26/node_modules/@vue/compiler-dom/dist/compiler-dom.d.ts","../../node_modules/.pnpm/vue@3.5.26_typescript@5.3.3/node_modules/vue/dist/vue.d.mts","../../node_modules/.pnpm/vue@3.5.26_typescript@5.7.3/node_modules/vue/jsx-runtime/index.d.ts","../../node_modules/.pnpm/vue@3.5.26_typescript@5.7.3/node_modules/vue/dist/vue.d.mts","../../node_modules/.pnpm/@fortawesome+fontawesome-common-types@6.7.2/node_modules/@fortawesome/fontawesome-common-types/index.d.ts","../../node_modules/.pnpm/@fortawesome+fontawesome-svg-core@6.7.2/node_modules/@fortawesome/fontawesome-svg-core/index.d.ts","../../node_modules/.pnpm/@awesome.me+kit-8137893ad3@1.0.417/node_modules/@awesome.me/kit-8137893ad3/icons/modules/icon-types.ts","../../node_modules/.pnpm/@awesome.me+kit-8137893ad3@1.0.417/node_modules/@awesome.me/kit-8137893ad3/icons/modules/index.d.ts","../../node_modules/.pnpm/@fortawesome+vue-fontawesome@3.1.3_@fortawesome+fontawesome-svg-core@6.7.2_vue@3.5.26_typescript@5.7.3_/node_modules/@fortawesome/vue-fontawesome/index.d.ts","../icons/src/types.ts","../icons/src/fzicon.vue.ts","../icons/src/fziconbackground.vue.ts","../icons/src/index.ts","../../node_modules/.pnpm/vue-router@4.6.4_vue@3.5.26_typescript@5.7.3_/node_modules/vue-router/dist/router-cwonjprp.d.mts","../../node_modules/.pnpm/vue-router@4.6.4_vue@3.5.26_typescript@5.7.3_/node_modules/vue-router/dist/vue-router.d.mts","../link/src/types.ts","../link/src/fzlink.vue.ts","../link/src/index.ts","../action/src/types.ts","../action/src/composables/useactionclasses.ts","../action/src/fzaction.vue.ts","../action/src/fzactionlist.vue.ts","../action/src/fzactionsection.vue.ts","../action/src/index.ts","../badge/src/types.ts","../badge/src/fzbadge.vue.ts","../badge/src/index.ts","./src/types.ts","../container/src/types.ts","../container/src/fzcontainer.vue.ts","../container/src/index.ts","../divider/src/types.ts","../divider/src/fzdivider.vue.ts","../divider/src/index.ts","./src/components/types.ts","./src/components/fzcardtitle.vue.ts","./src/components/fzcardheader.vue.ts","./src/components/fzcardfooter.vue.ts","./src/components/fzcardactionlink.vue.ts","../button/src/types.ts","../button/src/utils.ts","../button/src/fzbutton.vue.ts","../button/src/fziconbutton.vue.ts","../button/src/fzbuttongroup.vue.ts","../button/src/index.ts","../composables/src/types.ts","../composables/src/utils/number/index.ts","../composables/src/utils/position/index.ts","../composables/src/utils/index.ts","../composables/src/composables/usefloating.ts","../composables/src/composables/usemediaquery.ts","../composables/src/composables/usebreakpoints.ts","../composables/src/composables/useclickoutside.ts","../composables/src/composables/usekeydown.ts","../composables/src/composables/usekeyup.ts","../composables/src/composables/usecurrency.ts","../composables/src/composables/index.ts","../style/src/custom-directives/validation.ts","../style/src/custom-directives/config.ts","../style/src/custom-directives/vbold.ts","../style/tokens.json","../style/safe-colors.json","../style/safe-semantic-colors.json","../style/src/custom-directives/vcolor.ts","../style/src/custom-directives/vsmall.ts","../style/src/custom-directives/index.ts","../style/src/constants.ts","../style/src/index.ts","../composables/src/fzfloating.vue.ts","../composables/src/index.ts","../dropdown/src/types.ts","../dropdown/src/fzdropdown.vue.ts","../dropdown/src/fzicondropdown.vue.ts","../dropdown/src/index.ts","./src/components/fzcardmultiactions.vue.ts","./src/components/fzcardnoaction.vue.ts","./src/fzcardlistitem.vue.ts","./src/fzcardlist.vue.ts","./__vls_types.d.ts","./dist/src/types.d.ts","./dist/src/fzcardlist.vue.d.ts","./dist/src/fzcardlistitem.vue.d.ts","./dist/src/index.d.ts","./dist/index.d.ts","./dist/src/components/types.d.ts","./dist/src/components/fzcardactionlink.vue.d.ts","./dist/src/components/fzcardfooter.vue.d.ts","./dist/src/components/fzcardheader.vue.d.ts","./dist/src/components/fzcardmultiactions.vue.d.ts","./dist/src/components/fzcardnoaction.vue.d.ts","./dist/src/components/fzcardtitle.vue.d.ts","./src/index.ts"],"fileInfos":[{"version":"0","affectsGlobalScope":true},"0","0","0","0","0","0",{"version":"0","affectsGlobalScope":true},{"version":"0","affectsGlobalScope":true},{"version":"0","affectsGlobalScope":true},{"version":"0","affectsGlobalScope":true},{"version":"0","affectsGlobalScope":true},{"version":"0","affectsGlobalScope":true},{"version":"0","affectsGlobalScope":true},{"version":"0","affectsGlobalScope":true},{"version":"0","affectsGlobalScope":true},{"version":"0","affectsGlobalScope":true},{"version":"0","affectsGlobalScope":true},{"version":"0","affectsGlobalScope":true},{"version":"0","affectsGlobalScope":true},{"version":"0","affectsGlobalScope":true},{"version":"0","affectsGlobalScope":true},{"version":"0","affectsGlobalScope":true},{"version":"0","affectsGlobalScope":true},{"version":"0","affectsGlobalScope":true},{"version":"0","affectsGlobalScope":true},{"version":"0","affectsGlobalScope":true},{"version":"0","affectsGlobalScope":true},{"version":"0","affectsGlobalScope":true},{"version":"0","affectsGlobalScope":true},{"version":"0","affectsGlobalScope":true},{"version":"0","affectsGlobalScope":true},{"version":"0","affectsGlobalScope":true},{"version":"0","affectsGlobalScope":true},{"version":"0","affectsGlobalScope":true},{"version":"0","affectsGlobalScope":true},{"version":"0","affectsGlobalScope":true},{"version":"0","affectsGlobalScope":true},{"version":"0","affectsGlobalScope":true},{"version":"0","affectsGlobalScope":true},{"version":"0","affectsGlobalScope":true},{"version":"0","affectsGlobalScope":true},{"version":"0","affectsGlobalScope":true},{"version":"0","affectsGlobalScope":true},{"version":"0","affectsGlobalScope":true},"0","0",{"version":"0","affectsGlobalScope":true},"0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0",{"version":"0","affectsGlobalScope":true},"0","0","0","0","0","0","0","0","0","0","0","0","0"],"root":[83,[90,94],[130,147]],"options":{"composite":true,"esModuleInterop":true,"jsx":1,"jsxImportSource":"vue","module":99,"noImplicitThis":true,"skipLibCheck":true,"strict":true,"target":99,"useDefineForClassFields":true},"fileIdsList":[[51,60],[62],[53],[60],[57,61,70],[46,52,54],[55],[46],[46,47,48,50],[47,48,49,50],[57,70],[57,69,70],[50,56],[50],[51,57,70,74],[51,57,68,70,73,74,75],[51,74,76,77,78],[51,68,70,73],[51,57,68,70,80],[51,80,81],[51,68],[51,57,68,70,95,96],[51,57,70,86,95,96],[51,57,70,95,96,97],[51,95,97,98,99],[51,57,70,95],[51,57,70],[138],[57,70,79,140],[57,70,140],[79,82],[57,70,79,135],[135,136,137],[51,57,68,70,82,86,89,90,92,93],[51,57,70,86,90],[51,57,70,86,90,91],[51,57,70,79,82,86,89,90,92,93,129],[51,57,70,82,86,89,90,92,93],[51,57,68,70,86,90],[51,79,82],[51,57,70,79,83,86,132],[51,57,70,79,83,94,130,131],[51,83,132,133],[51,105,106,107,108,109,110,111],[51,106],[51,101,104],[51,57,70,101,104],[51,57,70,101,112,123],[51,101,104,112,124],[51,102,103],[51],[51,101],[51,57,70,84],[51,84,85],[51,57,70,87],[51,87,88],[51,57,70,79,96,100,125,126],[51,57,70,79,96,100,126,127],[51,126,127,128],[51,57,70,79,100],[51,57,63,64,65,70],[51,57,65,66,70],[51,57,61,63,65,66,67,70],[51,57,70,71],[51,71,72],[51,70],[51,116],[51,113],[51,113,114,115,119,120],[51,57,70,113,114],[51,57,70,113,114,116,117,118],[51,57,70,121,122],[],[51,74],[51,80],[51,95],[51,101,104,112],[51,84],[51,87],[51,126],[51,57,61,65,70],[51,71]],"referencedMap":[[62,1],[63,2],[54,3],[61,4],[64,5],[55,6],[56,7],[47,8],[48,9],[50,10],[69,11],[70,12],[57,13],[51,14],[59,13],[58,14],[75,15],[76,16],[77,15],[78,15],[79,17],[74,18],[81,19],[82,20],[80,21],[97,22],[99,23],[98,24],[100,25],[95,21],[96,26],[134,27],[139,28],[141,29],[142,30],[143,30],[144,29],[145,30],[146,30],[140,31],[136,32],[137,32],[138,33],[135,31],[94,34],[93,35],[92,36],[130,37],[131,38],[91,39],[90,40],[133,41],[132,42],[147,43],[83,40],[112,44],[107,45],[108,27],[111,46],[105,47],[109,27],[110,27],[106,27],[124,48],[125,49],[101,27],[104,50],[102,51],[103,52],[85,53],[86,54],[84,51],[88,55],[89,56],[87,51],[127,57],[128,58],[129,59],[126,60],[66,61],[67,62],[68,63],[65,51],[72,64],[73,65],[71,66],[122,67],[114,68],[121,69],[113,27],[115,70],[119,71],[120,70],[123,72]],"exportedModulesMap":[[62,1],[63,2],[54,3],[53,73],[52,73],[60,73],[61,4],[64,5],[55,6],[56,7],[47,8],[48,9],[50,10],[46,73],[49,73],[44,73],[45,73],[8,73],[9,73],[11,73],[10,73],[2,73],[12,73],[13,73],[14,73],[15,73],[16,73],[17,73],[18,73],[19,73],[3,73],[4,73],[20,73],[24,73],[21,73],[22,73],[23,73],[25,73],[26,73],[27,73],[5,73],[28,73],[29,73],[30,73],[31,73],[6,73],[35,73],[32,73],[33,73],[34,73],[36,73],[7,73],[37,73],[42,73],[43,73],[38,73],[39,73],[40,73],[41,73],[1,73],[69,11],[70,12],[57,13],[51,14],[59,13],[58,14],[75,15],[76,16],[77,15],[78,15],[79,74],[74,18],[81,19],[82,75],[80,21],[97,22],[99,23],[98,24],[100,76],[95,21],[96,26],[134,27],[139,27],[141,27],[142,27],[143,27],[144,27],[145,27],[146,27],[140,27],[136,27],[137,27],[138,27],[135,27],[94,34],[93,35],[92,36],[130,37],[131,38],[91,39],[90,40],[133,41],[132,42],[147,27],[83,40],[112,44],[107,45],[108,27],[111,46],[105,47],[109,27],[110,27],[106,27],[124,48],[125,77],[101,27],[104,50],[102,51],[103,52],[85,53],[86,78],[84,51],[88,55],[89,79],[87,51],[127,57],[128,58],[129,80],[126,60],[66,61],[67,62],[68,81],[65,51],[72,64],[73,82],[71,66],[117,73],[118,73],[122,67],[114,68],[121,69],[113,27],[115,70],[119,71],[120,70],[123,72],[116,73]],"semanticDiagnosticsPerFile":[62,63,54,53,52,60,61,64,55,56,47,48,50,46,49,44,45,8,9,11,10,2,12,13,14,15,16,17,18,19,3,4,20,24,21,22,23,25,26,27,5,28,29,30,31,6,35,32,33,34,36,7,37,42,43,38,39,40,41,1,69,70,57,51,59,58,75,76,77,78,79,74,81,82,80,97,99,98,100,95,96,134,139,141,142,143,144,145,146,140,136,137,138,135,94,93,92,130,131,91,90,133,132,147,83,112,107,108,111,105,109,110,106,124,125,101,104,102,103,85,86,84,88,89,87,127,128,129,126,66,67,68,65,72,73,71,117,118,122,114,121,113,115,119,120,123,116],"affectedFilesPendingEmit":[94,93,92,130,131,91,90,133,132,147,83],"emitSignatures":[83,90,91,92,93,94,130,131,132,133]},"version":"5.3.3"}
1
+ {"program":{"fileNames":["../../node_modules/.pnpm/typescript@5.3.3/node_modules/typescript/lib/lib.es5.d.ts","../../node_modules/.pnpm/typescript@5.3.3/node_modules/typescript/lib/lib.es2015.d.ts","../../node_modules/.pnpm/typescript@5.3.3/node_modules/typescript/lib/lib.es2016.d.ts","../../node_modules/.pnpm/typescript@5.3.3/node_modules/typescript/lib/lib.es2017.d.ts","../../node_modules/.pnpm/typescript@5.3.3/node_modules/typescript/lib/lib.es2018.d.ts","../../node_modules/.pnpm/typescript@5.3.3/node_modules/typescript/lib/lib.es2019.d.ts","../../node_modules/.pnpm/typescript@5.3.3/node_modules/typescript/lib/lib.es2020.d.ts","../../node_modules/.pnpm/typescript@5.3.3/node_modules/typescript/lib/lib.dom.d.ts","../../node_modules/.pnpm/typescript@5.3.3/node_modules/typescript/lib/lib.dom.iterable.d.ts","../../node_modules/.pnpm/typescript@5.3.3/node_modules/typescript/lib/lib.es2015.core.d.ts","../../node_modules/.pnpm/typescript@5.3.3/node_modules/typescript/lib/lib.es2015.collection.d.ts","../../node_modules/.pnpm/typescript@5.3.3/node_modules/typescript/lib/lib.es2015.generator.d.ts","../../node_modules/.pnpm/typescript@5.3.3/node_modules/typescript/lib/lib.es2015.iterable.d.ts","../../node_modules/.pnpm/typescript@5.3.3/node_modules/typescript/lib/lib.es2015.promise.d.ts","../../node_modules/.pnpm/typescript@5.3.3/node_modules/typescript/lib/lib.es2015.proxy.d.ts","../../node_modules/.pnpm/typescript@5.3.3/node_modules/typescript/lib/lib.es2015.reflect.d.ts","../../node_modules/.pnpm/typescript@5.3.3/node_modules/typescript/lib/lib.es2015.symbol.d.ts","../../node_modules/.pnpm/typescript@5.3.3/node_modules/typescript/lib/lib.es2015.symbol.wellknown.d.ts","../../node_modules/.pnpm/typescript@5.3.3/node_modules/typescript/lib/lib.es2016.array.include.d.ts","../../node_modules/.pnpm/typescript@5.3.3/node_modules/typescript/lib/lib.es2017.date.d.ts","../../node_modules/.pnpm/typescript@5.3.3/node_modules/typescript/lib/lib.es2017.object.d.ts","../../node_modules/.pnpm/typescript@5.3.3/node_modules/typescript/lib/lib.es2017.sharedmemory.d.ts","../../node_modules/.pnpm/typescript@5.3.3/node_modules/typescript/lib/lib.es2017.string.d.ts","../../node_modules/.pnpm/typescript@5.3.3/node_modules/typescript/lib/lib.es2017.intl.d.ts","../../node_modules/.pnpm/typescript@5.3.3/node_modules/typescript/lib/lib.es2017.typedarrays.d.ts","../../node_modules/.pnpm/typescript@5.3.3/node_modules/typescript/lib/lib.es2018.asyncgenerator.d.ts","../../node_modules/.pnpm/typescript@5.3.3/node_modules/typescript/lib/lib.es2018.asynciterable.d.ts","../../node_modules/.pnpm/typescript@5.3.3/node_modules/typescript/lib/lib.es2018.intl.d.ts","../../node_modules/.pnpm/typescript@5.3.3/node_modules/typescript/lib/lib.es2018.promise.d.ts","../../node_modules/.pnpm/typescript@5.3.3/node_modules/typescript/lib/lib.es2018.regexp.d.ts","../../node_modules/.pnpm/typescript@5.3.3/node_modules/typescript/lib/lib.es2019.array.d.ts","../../node_modules/.pnpm/typescript@5.3.3/node_modules/typescript/lib/lib.es2019.object.d.ts","../../node_modules/.pnpm/typescript@5.3.3/node_modules/typescript/lib/lib.es2019.string.d.ts","../../node_modules/.pnpm/typescript@5.3.3/node_modules/typescript/lib/lib.es2019.symbol.d.ts","../../node_modules/.pnpm/typescript@5.3.3/node_modules/typescript/lib/lib.es2019.intl.d.ts","../../node_modules/.pnpm/typescript@5.3.3/node_modules/typescript/lib/lib.es2020.bigint.d.ts","../../node_modules/.pnpm/typescript@5.3.3/node_modules/typescript/lib/lib.es2020.date.d.ts","../../node_modules/.pnpm/typescript@5.3.3/node_modules/typescript/lib/lib.es2020.promise.d.ts","../../node_modules/.pnpm/typescript@5.3.3/node_modules/typescript/lib/lib.es2020.sharedmemory.d.ts","../../node_modules/.pnpm/typescript@5.3.3/node_modules/typescript/lib/lib.es2020.string.d.ts","../../node_modules/.pnpm/typescript@5.3.3/node_modules/typescript/lib/lib.es2020.symbol.wellknown.d.ts","../../node_modules/.pnpm/typescript@5.3.3/node_modules/typescript/lib/lib.es2020.intl.d.ts","../../node_modules/.pnpm/typescript@5.3.3/node_modules/typescript/lib/lib.es2020.number.d.ts","../../node_modules/.pnpm/typescript@5.3.3/node_modules/typescript/lib/lib.decorators.d.ts","../../node_modules/.pnpm/typescript@5.3.3/node_modules/typescript/lib/lib.decorators.legacy.d.ts","../../node_modules/.pnpm/@vue+shared@3.5.26/node_modules/@vue/shared/dist/shared.d.ts","../../node_modules/.pnpm/@vue+reactivity@3.5.26/node_modules/@vue/reactivity/dist/reactivity.d.ts","../../node_modules/.pnpm/@vue+runtime-core@3.5.26/node_modules/@vue/runtime-core/dist/runtime-core.d.ts","../../node_modules/.pnpm/csstype@3.2.3/node_modules/csstype/index.d.ts","../../node_modules/.pnpm/@vue+runtime-dom@3.5.26/node_modules/@vue/runtime-dom/dist/runtime-dom.d.ts","../../node_modules/.pnpm/vue@3.5.26_typescript@5.3.3/node_modules/vue/jsx-runtime/index.d.ts","../../node_modules/.pnpm/@babel+types@7.29.0/node_modules/@babel/types/lib/index.d.ts","../../node_modules/.pnpm/@babel+types@7.28.6/node_modules/@babel/types/lib/index.d.ts","../../node_modules/.pnpm/@babel+parser@7.28.6/node_modules/@babel/parser/typings/babel-parser.d.ts","../../node_modules/.pnpm/@vue+compiler-core@3.5.26/node_modules/@vue/compiler-core/dist/compiler-core.d.ts","../../node_modules/.pnpm/@vue+compiler-dom@3.5.26/node_modules/@vue/compiler-dom/dist/compiler-dom.d.ts","../../node_modules/.pnpm/vue@3.5.26_typescript@5.3.3/node_modules/vue/dist/vue.d.mts","../../node_modules/.pnpm/vue@3.5.26_typescript@5.7.3/node_modules/vue/jsx-runtime/index.d.ts","../../node_modules/.pnpm/vue@3.5.26_typescript@5.7.3/node_modules/vue/dist/vue.d.mts","../../node_modules/.pnpm/@fortawesome+fontawesome-common-types@6.7.2/node_modules/@fortawesome/fontawesome-common-types/index.d.ts","../../node_modules/.pnpm/@fortawesome+fontawesome-svg-core@6.7.2/node_modules/@fortawesome/fontawesome-svg-core/index.d.ts","../../node_modules/.pnpm/@awesome.me+kit-8137893ad3@1.0.417/node_modules/@awesome.me/kit-8137893ad3/icons/modules/icon-types.ts","../../node_modules/.pnpm/@awesome.me+kit-8137893ad3@1.0.417/node_modules/@awesome.me/kit-8137893ad3/icons/modules/index.d.ts","../../node_modules/.pnpm/@fortawesome+vue-fontawesome@3.1.3_@fortawesome+fontawesome-svg-core@6.7.2_vue@3.5.26_typescript@5.7.3_/node_modules/@fortawesome/vue-fontawesome/index.d.ts","../icons/src/types.ts","../icons/src/fzicon.vue.ts","../icons/src/fziconbackground.vue.ts","../icons/src/index.ts","../../node_modules/.pnpm/vue-router@4.6.4_vue@3.5.26_typescript@5.7.3_/node_modules/vue-router/dist/router-cwonjprp.d.mts","../../node_modules/.pnpm/vue-router@4.6.4_vue@3.5.26_typescript@5.7.3_/node_modules/vue-router/dist/vue-router.d.mts","../link/src/types.ts","../link/src/fzlink.vue.ts","../link/src/index.ts","../action/src/types.ts","../action/src/composables/useactionclasses.ts","../action/src/fzaction.vue.ts","../action/src/fzactionlist.vue.ts","../action/src/fzactionsection.vue.ts","../action/src/index.ts","../badge/src/types.ts","../badge/src/fzbadge.vue.ts","../badge/src/index.ts","./src/types.ts","../container/src/types.ts","../container/src/fzcontainer.vue.ts","../container/src/index.ts","../divider/src/types.ts","../divider/src/fzdivider.vue.ts","../divider/src/index.ts","./src/components/types.ts","./src/components/fzcardtitle.vue.ts","./src/components/fzcardheader.vue.ts","./src/components/fzcardfooter.vue.ts","./src/components/fzcardactionlink.vue.ts","../button/src/types.ts","../button/src/utils.ts","../button/src/fzbutton.vue.ts","../button/src/fziconbutton.vue.ts","../button/src/fzbuttongroup.vue.ts","../button/src/index.ts","../composables/src/types.ts","../composables/src/utils/number/index.ts","../composables/src/utils/position/index.ts","../composables/src/utils/index.ts","../composables/src/composables/usefloating.ts","../composables/src/composables/usemediaquery.ts","../composables/src/composables/usebreakpoints.ts","../composables/src/composables/useclickoutside.ts","../composables/src/composables/usekeydown.ts","../composables/src/composables/usekeyup.ts","../composables/src/composables/usecurrency.ts","../composables/src/composables/index.ts","../style/src/custom-directives/validation.ts","../style/src/custom-directives/config.ts","../style/src/custom-directives/vbold.ts","../style/tokens.json","../style/safe-colors.json","../style/safe-semantic-colors.json","../style/src/custom-directives/vcolor.ts","../style/src/custom-directives/vsmall.ts","../style/src/custom-directives/index.ts","../style/src/constants.ts","../style/src/index.ts","../composables/src/fzfloating.vue.ts","../composables/src/index.ts","../dropdown/src/types.ts","../dropdown/src/fzdropdown.vue.ts","../dropdown/src/fzicondropdown.vue.ts","../dropdown/src/index.ts","./src/components/fzcardmultiactions.vue.ts","./src/components/fzcardnoaction.vue.ts","./src/fzcardlistitem.vue.ts","./src/fzcardlist.vue.ts","./__vls_types.d.ts","./dist/src/types.d.ts","./dist/src/fzcardlist.vue.d.ts","./dist/src/fzcardlistitem.vue.d.ts","./dist/src/index.d.ts","./dist/index.d.ts","./dist/src/components/types.d.ts","./dist/src/components/fzcardactionlink.vue.d.ts","./dist/src/components/fzcardfooter.vue.d.ts","./dist/src/components/fzcardheader.vue.d.ts","./dist/src/components/fzcardmultiactions.vue.d.ts","./dist/src/components/fzcardnoaction.vue.d.ts","./dist/src/components/fzcardtitle.vue.d.ts","./src/index.ts"],"fileInfos":[{"version":"0","affectsGlobalScope":true},"0","0","0","0","0","0",{"version":"0","affectsGlobalScope":true},{"version":"0","affectsGlobalScope":true},{"version":"0","affectsGlobalScope":true},{"version":"0","affectsGlobalScope":true},{"version":"0","affectsGlobalScope":true},{"version":"0","affectsGlobalScope":true},{"version":"0","affectsGlobalScope":true},{"version":"0","affectsGlobalScope":true},{"version":"0","affectsGlobalScope":true},{"version":"0","affectsGlobalScope":true},{"version":"0","affectsGlobalScope":true},{"version":"0","affectsGlobalScope":true},{"version":"0","affectsGlobalScope":true},{"version":"0","affectsGlobalScope":true},{"version":"0","affectsGlobalScope":true},{"version":"0","affectsGlobalScope":true},{"version":"0","affectsGlobalScope":true},{"version":"0","affectsGlobalScope":true},{"version":"0","affectsGlobalScope":true},{"version":"0","affectsGlobalScope":true},{"version":"0","affectsGlobalScope":true},{"version":"0","affectsGlobalScope":true},{"version":"0","affectsGlobalScope":true},{"version":"0","affectsGlobalScope":true},{"version":"0","affectsGlobalScope":true},{"version":"0","affectsGlobalScope":true},{"version":"0","affectsGlobalScope":true},{"version":"0","affectsGlobalScope":true},{"version":"0","affectsGlobalScope":true},{"version":"0","affectsGlobalScope":true},{"version":"0","affectsGlobalScope":true},{"version":"0","affectsGlobalScope":true},{"version":"0","affectsGlobalScope":true},{"version":"0","affectsGlobalScope":true},{"version":"0","affectsGlobalScope":true},{"version":"0","affectsGlobalScope":true},{"version":"0","affectsGlobalScope":true},{"version":"0","affectsGlobalScope":true},"0","0",{"version":"0","affectsGlobalScope":true},"0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0",{"version":"0","affectsGlobalScope":true},"0","0","0","0","0","0","0","0","0","0","0","0","0"],"root":[83,[90,94],[130,147]],"options":{"composite":true,"esModuleInterop":true,"jsx":1,"jsxImportSource":"vue","module":99,"noImplicitThis":true,"skipLibCheck":true,"strict":true,"target":99,"useDefineForClassFields":true},"fileIdsList":[[51,60],[62],[53],[60],[57,61,70],[46,52,54],[55],[46],[46,47,48,50],[47,48,49,50],[57,70],[57,69,70],[50,56],[50],[51,57,70,74],[51,57,68,70,73,74,75],[51,74,76,77,78],[51,68,70,73],[51,57,68,70,80],[51,80,81],[51,68],[51,57,68,70,95,96],[51,57,70,86,95,96],[51,57,70,95,96,97],[51,95,97,98,99],[51,57,70,95],[51,57,70],[138],[57,70,79,140],[57,70,140],[79,82],[57,70,79,135],[135,136,137],[51,57,68,70,82,86,89,90,92,93],[51,57,70,86,90],[51,57,70,86,90,91],[51,57,70,79,82,86,89,90,92,93,129],[51,57,70,82,86,89,90,92,93],[51,57,68,70,86,90],[51,79,82,83],[51,57,70,79,83,86,132],[51,57,70,79,83,94,130,131],[51,83,132,133],[51,79,82],[51,105,106,107,108,109,110,111],[51,106],[51,101,104],[51,57,70,101,104],[51,57,70,101,112,123],[51,101,104,112,124],[51,102,103],[51],[51,101],[51,57,70,84],[51,84,85],[51,57,70,87],[51,87,88],[51,57,70,79,96,100,125,126],[51,57,70,79,96,100,126,127],[51,126,127,128],[51,57,70,79,100],[51,57,63,64,65,70],[51,57,65,66,70],[51,57,61,63,65,66,67,70],[51,57,70,71],[51,71,72],[51,70],[51,116],[51,113],[51,113,114,115,119,120],[51,57,70,113,114],[51,57,70,113,114,116,117,118],[51,57,70,121,122],[],[51,74],[51,80],[51,95],[51,101,104,112],[51,84],[51,87],[51,126],[51,57,61,65,70],[51,71]],"referencedMap":[[62,1],[63,2],[54,3],[61,4],[64,5],[55,6],[56,7],[47,8],[48,9],[50,10],[69,11],[70,12],[57,13],[51,14],[59,13],[58,14],[75,15],[76,16],[77,15],[78,15],[79,17],[74,18],[81,19],[82,20],[80,21],[97,22],[99,23],[98,24],[100,25],[95,21],[96,26],[134,27],[139,28],[141,29],[142,30],[143,30],[144,29],[145,30],[146,30],[140,31],[136,32],[137,32],[138,33],[135,31],[94,34],[93,35],[92,36],[130,37],[131,38],[91,39],[90,40],[133,41],[132,42],[147,43],[83,44],[112,45],[107,46],[108,27],[111,47],[105,48],[109,27],[110,27],[106,27],[124,49],[125,50],[101,27],[104,51],[102,52],[103,53],[85,54],[86,55],[84,52],[88,56],[89,57],[87,52],[127,58],[128,59],[129,60],[126,61],[66,62],[67,63],[68,64],[65,52],[72,65],[73,66],[71,67],[122,68],[114,69],[121,70],[113,27],[115,71],[119,72],[120,71],[123,73]],"exportedModulesMap":[[62,1],[63,2],[54,3],[53,74],[52,74],[60,74],[61,4],[64,5],[55,6],[56,7],[47,8],[48,9],[50,10],[46,74],[49,74],[44,74],[45,74],[8,74],[9,74],[11,74],[10,74],[2,74],[12,74],[13,74],[14,74],[15,74],[16,74],[17,74],[18,74],[19,74],[3,74],[4,74],[20,74],[24,74],[21,74],[22,74],[23,74],[25,74],[26,74],[27,74],[5,74],[28,74],[29,74],[30,74],[31,74],[6,74],[35,74],[32,74],[33,74],[34,74],[36,74],[7,74],[37,74],[42,74],[43,74],[38,74],[39,74],[40,74],[41,74],[1,74],[69,11],[70,12],[57,13],[51,14],[59,13],[58,14],[75,15],[76,16],[77,15],[78,15],[79,75],[74,18],[81,19],[82,76],[80,21],[97,22],[99,23],[98,24],[100,77],[95,21],[96,26],[134,27],[139,27],[141,27],[142,27],[143,27],[144,27],[145,27],[146,27],[140,27],[136,27],[137,27],[138,27],[135,27],[94,34],[93,35],[92,36],[130,37],[131,38],[91,39],[90,44],[133,41],[132,42],[147,27],[83,44],[112,45],[107,46],[108,27],[111,47],[105,48],[109,27],[110,27],[106,27],[124,49],[125,78],[101,27],[104,51],[102,52],[103,53],[85,54],[86,79],[84,52],[88,56],[89,80],[87,52],[127,58],[128,59],[129,81],[126,61],[66,62],[67,63],[68,82],[65,52],[72,65],[73,83],[71,67],[117,74],[118,74],[122,68],[114,69],[121,70],[113,27],[115,71],[119,72],[120,71],[123,73],[116,74]],"semanticDiagnosticsPerFile":[62,63,54,53,52,60,61,64,55,56,47,48,50,46,49,44,45,8,9,11,10,2,12,13,14,15,16,17,18,19,3,4,20,24,21,22,23,25,26,27,5,28,29,30,31,6,35,32,33,34,36,7,37,42,43,38,39,40,41,1,69,70,57,51,59,58,75,76,77,78,79,74,81,82,80,97,99,98,100,95,96,134,139,141,142,143,144,145,146,140,136,137,138,135,94,93,92,130,131,91,90,133,132,147,83,112,107,108,111,105,109,110,106,124,125,101,104,102,103,85,86,84,88,89,87,127,128,129,126,66,67,68,65,72,73,71,117,118,122,114,121,113,115,119,120,123,116],"affectedFilesPendingEmit":[94,93,92,130,131,91,90,133,132,147,83],"emitSignatures":[83,90,91,92,93,94,130,131,132,133]},"version":"5.3.3"}