@septkit/ui 0.0.60 → 0.0.62

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 (25) hide show
  1. package/dist/diagram-layout/diagram-node-card.js +7 -0
  2. package/dist/diagram-layout/diagram-node-card.vue_vue_type_script_setup_true_lang.js +147 -0
  3. package/dist/diagram-layout/diagram-node-group.js +7 -0
  4. package/dist/diagram-layout/diagram-node-group.vue_vue_type_script_setup_true_lang.js +107 -0
  5. package/dist/diagram-layout/group-geometry.js +7 -0
  6. package/dist/diagram-layout/index.js +7 -4
  7. package/dist/external/.pnpm/@lucide_vue@1.23.0_vue@3.5.39_typescript@5.8.3_/node_modules/@lucide/vue/dist/esm/icons/arrow-up-down.js +22 -0
  8. package/dist/external/.pnpm/@lucide_vue@1.23.0_vue@3.5.39_typescript@5.8.3_/node_modules/@lucide/vue/dist/esm/icons/funnel.js +8 -0
  9. package/dist/external/.pnpm/@lucide_vue@1.23.0_vue@3.5.39_typescript@5.8.3_/node_modules/@lucide/vue/dist/esm/icons/info.js +20 -0
  10. package/dist/index.d.ts +288 -6
  11. package/dist/index.js +18 -8
  12. package/dist/table/column-filter-context.js +13 -0
  13. package/dist/table/filterable-column-header.js +7 -0
  14. package/dist/table/filterable-column-header.vue_vue_type_script_setup_true_lang.js +175 -0
  15. package/dist/table/filters/build-filter-options.js +101 -0
  16. package/dist/table/filters/filter-popover.js +7 -0
  17. package/dist/table/filters/filter-popover.vue_vue_type_script_setup_true_lang.js +169 -0
  18. package/dist/table/filters/filter-tree-node.js +7 -0
  19. package/dist/table/filters/filter-tree-node.vue_vue_type_script_setup_true_lang.js +79 -0
  20. package/dist/table/filters/use-column-filters.js +61 -0
  21. package/dist/table/filters/use-row-sort.js +43 -0
  22. package/dist/table/index.js +7 -0
  23. package/dist/table/row-sort-context.js +11 -0
  24. package/dist/ui.css +1 -1
  25. package/package.json +1 -1
@@ -0,0 +1,7 @@
1
+ import e from "../_virtual/_plugin-vue_export-helper.js";
2
+ import t from "./diagram-node-card.vue_vue_type_script_setup_true_lang.js";
3
+ /* empty css */
4
+ //#region lib/diagram-layout/diagram-node-card.vue
5
+ var n = /*#__PURE__*/ e(t, [["__scopeId", "data-v-b6238586"]]);
6
+ //#endregion
7
+ export { n as default };
@@ -0,0 +1,147 @@
1
+ import e from "../external/.pnpm/@lucide_vue@1.23.0_vue@3.5.39_typescript@5.8.3_/node_modules/@lucide/vue/dist/esm/icons/info.js";
2
+ import { ELEMENT_TO_COLOR as t } from "../icons/element-color-map.generated.js";
3
+ import { ELEMENT_TO_ICON as n } from "../icons/element-icon-mapper.js";
4
+ import { Fragment as r, computed as i, createBlock as a, createCommentVNode as o, createElementBlock as s, createElementVNode as c, createVNode as l, defineComponent as u, normalizeClass as d, normalizeStyle as f, openBlock as p, ref as m, renderList as h, resolveDynamicComponent as g, toDisplayString as _, unref as v, withModifiers as y } from "vue";
5
+ //#region lib/diagram-layout/diagram-node-card.vue?vue&type=script&setup=true&lang.ts
6
+ var b = [
7
+ "data-testid",
8
+ "data-testid-node",
9
+ "data-node-id",
10
+ "tabindex",
11
+ "role",
12
+ "aria-expanded",
13
+ "aria-label",
14
+ "aria-level",
15
+ "aria-setsize",
16
+ "aria-posinset",
17
+ "aria-selected"
18
+ ], x = ["data-tip"], S = ["title"], C = ["data-testid"], w = {
19
+ key: 1,
20
+ class: "node-footer"
21
+ }, T = {
22
+ "data-testid": "capsules",
23
+ class: "node-capsules"
24
+ }, E = ["data-tip"], D = {
25
+ key: 1,
26
+ class: "capsule-tag"
27
+ }, O = { class: "capsule-value" }, k = /*@__PURE__*/ u({
28
+ __name: "diagram-node-card",
29
+ props: {
30
+ nodeId: {},
31
+ tagName: {},
32
+ label: {},
33
+ hasChildren: { type: Boolean },
34
+ isExpanded: { type: Boolean },
35
+ width: {},
36
+ height: { default: void 0 },
37
+ compact: {
38
+ type: Boolean,
39
+ default: !1
40
+ },
41
+ selected: {
42
+ type: Boolean,
43
+ default: !1
44
+ },
45
+ childCounts: { default: () => [] },
46
+ testId: { default: "diagram-node-card" },
47
+ detailsTestId: { default: "diagram-node-card-show-details" },
48
+ tabbable: {
49
+ type: Boolean,
50
+ default: !1
51
+ },
52
+ treeMeta: { default: void 0 }
53
+ },
54
+ emits: [
55
+ "select",
56
+ "toggle-expand",
57
+ "show-details",
58
+ "keydown"
59
+ ],
60
+ setup(u, { expose: k, emit: A }) {
61
+ let j = u, M = A, N = m(null);
62
+ k({ focus: () => N.value?.focus() });
63
+ let P = i(() => ({
64
+ width: `${j.width}px`,
65
+ ...j.height ? { height: `${j.height}px` } : {}
66
+ })), F = i(() => `${j.tagName}: ${j.label}`), I = i(() => n[j.tagName]), L = i(() => t[j.tagName]), R = i(() => {
67
+ let e = j.childCounts.reduce((e, t) => e + t.count, 0), t = e > 0 ? `, ${e} child element${e === 1 ? "" : "s"}` : "";
68
+ return `${j.tagName}: ${j.label}${t}`;
69
+ }), z = i(() => j.treeMeta ? "treeitem" : void 0);
70
+ function B() {
71
+ M("select", j.nodeId), j.hasChildren && M("toggle-expand", j.nodeId);
72
+ }
73
+ function V(e) {
74
+ if (e.key === "Enter" || e.key === " ") {
75
+ e.preventDefault(), B();
76
+ return;
77
+ }
78
+ M("keydown", e);
79
+ }
80
+ return (i, u) => (p(), s("div", {
81
+ ref_key: "rootEl",
82
+ ref: N,
83
+ class: d(["node-root", { selected: j.selected }]),
84
+ "data-testid": j.testId,
85
+ "data-testid-node": j.tagName,
86
+ "data-node-id": j.nodeId,
87
+ style: f(P.value),
88
+ tabindex: j.tabbable ? 0 : -1,
89
+ role: z.value,
90
+ "aria-expanded": j.hasChildren ? j.isExpanded : void 0,
91
+ "aria-label": R.value,
92
+ "aria-level": j.treeMeta?.level,
93
+ "aria-setsize": j.treeMeta?.setsize,
94
+ "aria-posinset": j.treeMeta?.posinset,
95
+ "aria-selected": j.selected,
96
+ onClick: y(B, ["stop"]),
97
+ onKeydown: V
98
+ }, [c("div", {
99
+ "data-testid": "node-body",
100
+ class: d(["node-body", { compact: j.compact }])
101
+ }, [
102
+ j.compact ? o("", !0) : (p(), s("div", {
103
+ key: 0,
104
+ "data-testid": "type-label",
105
+ class: d(["node-type-label", [L.value?.background, L.value?.text]])
106
+ }, _(j.tagName), 3)),
107
+ c("div", {
108
+ "data-testid": "header",
109
+ class: d(["header", {
110
+ collapsed: !j.isExpanded,
111
+ expanded: j.isExpanded
112
+ }])
113
+ }, [
114
+ I.value ? (p(), s("div", {
115
+ key: 0,
116
+ "data-testid": "icon-circle",
117
+ class: d(["node-icon-circle tooltip", [L.value?.background, L.value?.text]]),
118
+ "data-tip": j.tagName
119
+ }, [(p(), a(g(I.value)))], 10, x)) : o("", !0),
120
+ c("div", {
121
+ "data-testid": "node-label",
122
+ class: "node-label",
123
+ title: F.value
124
+ }, _(j.label), 9, S),
125
+ c("button", {
126
+ type: "button",
127
+ class: "details-button tooltip",
128
+ "data-testid": j.detailsTestId,
129
+ "data-tip": "Show details",
130
+ "aria-label": "Show details",
131
+ onClick: u[0] ||= y((e) => M("show-details", j.nodeId), ["stop"])
132
+ }, [l(v(e), { size: 16 })], 8, C)
133
+ ], 2),
134
+ j.childCounts.length > 0 ? (p(), s("div", w, [c("div", T, [(p(!0), s(r, null, h(j.childCounts, (e) => (p(), s("div", {
135
+ key: e.tagName,
136
+ "data-testid": "capsule",
137
+ class: d(["capsule tooltip", [v(t)[e.tagName]?.text]]),
138
+ "data-tip": `${e.count} × ${e.tagName}`
139
+ }, [v(n)[e.tagName] ? (p(), a(g(v(n)[e.tagName]), {
140
+ key: 0,
141
+ class: "capsule-icon"
142
+ })) : (p(), s("span", D, _(e.tagName), 1)), c("span", O, _(e.label ?? e.count), 1)], 10, E))), 128))])])) : o("", !0)
143
+ ], 2)], 46, b));
144
+ }
145
+ });
146
+ //#endregion
147
+ export { k as default };
@@ -0,0 +1,7 @@
1
+ import e from "../_virtual/_plugin-vue_export-helper.js";
2
+ import t from "./diagram-node-group.vue_vue_type_script_setup_true_lang.js";
3
+ /* empty css */
4
+ //#region lib/diagram-layout/diagram-node-group.vue
5
+ var n = /*#__PURE__*/ e(t, [["__scopeId", "data-v-636fa72f"]]);
6
+ //#endregion
7
+ export { n as default };
@@ -0,0 +1,107 @@
1
+ import e from "../external/.pnpm/@lucide_vue@1.23.0_vue@3.5.39_typescript@5.8.3_/node_modules/@lucide/vue/dist/esm/icons/chevron-down.js";
2
+ import t from "../external/.pnpm/@lucide_vue@1.23.0_vue@3.5.39_typescript@5.8.3_/node_modules/@lucide/vue/dist/esm/icons/chevron-right.js";
3
+ import { ELEMENT_TO_COLOR as n } from "../icons/element-color-map.generated.js";
4
+ import { Fragment as r, computed as i, createBlock as a, createCommentVNode as o, createElementBlock as s, createElementVNode as c, defineComponent as l, normalizeClass as u, normalizeStyle as d, openBlock as f, ref as p, renderList as m, renderSlot as h, toDisplayString as g, unref as _ } from "vue";
5
+ //#region lib/diagram-layout/diagram-node-group.vue?vue&type=script&setup=true&lang.ts
6
+ var v = ["data-testid"], y = [
7
+ "data-testid",
8
+ "role",
9
+ "tabindex",
10
+ "aria-expanded",
11
+ "aria-label",
12
+ "aria-level",
13
+ "aria-setsize",
14
+ "aria-posinset"
15
+ ], b = ["title"], x = {
16
+ key: 0,
17
+ class: "group-toggle"
18
+ }, S = ["role"], C = /*@__PURE__*/ l({
19
+ __name: "diagram-node-group",
20
+ props: {
21
+ groupId: {},
22
+ tagName: {},
23
+ label: {},
24
+ count: {},
25
+ width: {},
26
+ collapsedMembersHeight: {},
27
+ members: { default: () => [] },
28
+ expanded: {
29
+ type: Boolean,
30
+ default: !1
31
+ },
32
+ expandable: {
33
+ type: Boolean,
34
+ default: !1
35
+ },
36
+ testId: { default: "diagram-node-group" },
37
+ toggleTestId: { default: "diagram-node-group-toggle" },
38
+ tabbable: {
39
+ type: Boolean,
40
+ default: void 0
41
+ },
42
+ treeMeta: { default: void 0 }
43
+ },
44
+ emits: ["toggle", "keydown"],
45
+ setup(l, { expose: C, emit: w }) {
46
+ let T = l, E = w, D = p(null);
47
+ C({ focus: () => D.value?.focus() });
48
+ let O = i(() => n[T.tagName]), k = i(() => ({ width: `${T.width}px` })), A = i(() => T.expanded ? {} : {
49
+ height: `${T.collapsedMembersHeight}px`,
50
+ overflowY: "auto",
51
+ overflowX: "hidden"
52
+ }), j = i(() => `${T.tagName} group, ${T.count} item${T.count === 1 ? "" : "s"}`), M = i(() => {
53
+ if (T.tabbable !== void 0) return T.tabbable ? 0 : -1;
54
+ }), N = i(() => T.treeMeta ? "treeitem" : void 0), P = i(() => T.treeMeta ? "group" : void 0);
55
+ function F() {
56
+ T.expandable && E("toggle", T.groupId);
57
+ }
58
+ function I(e) {
59
+ if (e.key === "Enter" || e.key === " ") {
60
+ e.preventDefault(), F();
61
+ return;
62
+ }
63
+ E("keydown", e);
64
+ }
65
+ return (n, i) => (f(), s("div", {
66
+ class: u(["group-root", O.value?.text]),
67
+ style: d(k.value),
68
+ "data-testid": T.testId
69
+ }, [c("div", {
70
+ ref_key: "headerEl",
71
+ ref: D,
72
+ class: u(["group-header", [
73
+ O.value?.background,
74
+ O.value?.text,
75
+ { "is-expandable": T.expandable }
76
+ ]]),
77
+ "data-testid": T.toggleTestId,
78
+ role: N.value,
79
+ tabindex: M.value,
80
+ "aria-expanded": T.expandable ? T.expanded : void 0,
81
+ "aria-label": j.value,
82
+ "aria-level": T.treeMeta?.level,
83
+ "aria-setsize": T.treeMeta?.setsize,
84
+ "aria-posinset": T.treeMeta?.posinset,
85
+ onClick: F,
86
+ onKeydown: I
87
+ }, [c("div", {
88
+ class: "group-label",
89
+ title: `${T.tagName} group (${T.count})`
90
+ }, g(T.label), 9, b), T.expandable ? (f(), s("div", x, [T.expanded ? (f(), a(_(e), {
91
+ key: 0,
92
+ size: 24
93
+ })) : (f(), a(_(t), {
94
+ key: 1,
95
+ size: 24
96
+ }))])) : o("", !0)], 42, y), c("div", {
97
+ class: "group-members",
98
+ role: P.value,
99
+ style: d(A.value)
100
+ }, [(f(!0), s(r, null, m(T.members, (e) => h(n.$slots, "member", {
101
+ key: e.id,
102
+ member: e
103
+ }, void 0, !0)), 128))], 12, S)], 14, v));
104
+ }
105
+ });
106
+ //#endregion
107
+ export { C as default };
@@ -0,0 +1,7 @@
1
+ //#region lib/diagram-layout/group-geometry.ts
2
+ var e = 34, t = 72, n = 48, r = 12, i = 156;
3
+ function a(e) {
4
+ return e ? 72 : 48;
5
+ }
6
+ //#endregion
7
+ export { i as GROUP_COLLAPSED_MEMBERS_HEIGHT, e as GROUP_HEADER_HEIGHT, r as GROUP_MEMBER_GAP, t as GROUP_MEMBER_HEIGHT, n as GROUP_MEMBER_HEIGHT_COMPACT, a as memberCardHeight };
@@ -1,6 +1,9 @@
1
1
  import { applyInitialVisibility as e, buildRecordCache as t, collectVisibleIds as n, hideDescendants as r } from "./visibility-model.js";
2
2
  import { groupStackMetrics as i } from "./group-stack.js";
3
- import { computeGroups as a, isGroupId as o, makeGroupId as s } from "./grouping.js";
4
- import { createElkLayoutEngine as c } from "./elk-layout-engine.js";
5
- import { useDiagramLayout as l } from "./use-diagram-layout.js";
6
- export { e as applyInitialVisibility, t as buildRecordCache, n as collectVisibleIds, a as computeGroups, c as createElkLayoutEngine, i as groupStackMetrics, r as hideDescendants, o as isGroupId, s as makeGroupId, l as useDiagramLayout };
3
+ import { GROUP_COLLAPSED_MEMBERS_HEIGHT as a, GROUP_HEADER_HEIGHT as o, GROUP_MEMBER_GAP as s, GROUP_MEMBER_HEIGHT as c, GROUP_MEMBER_HEIGHT_COMPACT as l, memberCardHeight as u } from "./group-geometry.js";
4
+ import { computeGroups as d, isGroupId as f, makeGroupId as p } from "./grouping.js";
5
+ import { createElkLayoutEngine as m } from "./elk-layout-engine.js";
6
+ import { useDiagramLayout as h } from "./use-diagram-layout.js";
7
+ import g from "./diagram-node-card.js";
8
+ import _ from "./diagram-node-group.js";
9
+ export { g as DiagramNodeCard, _ as DiagramNodeGroup, a as GROUP_COLLAPSED_MEMBERS_HEIGHT, o as GROUP_HEADER_HEIGHT, s as GROUP_MEMBER_GAP, c as GROUP_MEMBER_HEIGHT, l as GROUP_MEMBER_HEIGHT_COMPACT, e as applyInitialVisibility, t as buildRecordCache, n as collectVisibleIds, d as computeGroups, m as createElkLayoutEngine, i as groupStackMetrics, r as hideDescendants, f as isGroupId, p as makeGroupId, u as memberCardHeight, h as useDiagramLayout };
@@ -0,0 +1,22 @@
1
+ import e from "../createLucideIcon.js";
2
+ //#region node_modules/.pnpm/@lucide+vue@1.23.0_vue@3.5.39_typescript@5.8.3_/node_modules/@lucide/vue/dist/esm/icons/arrow-up-down.mjs
3
+ var t = [
4
+ ["path", {
5
+ d: "m21 16-4 4-4-4",
6
+ key: "f6ql7i"
7
+ }],
8
+ ["path", {
9
+ d: "M17 20V4",
10
+ key: "1ejh1v"
11
+ }],
12
+ ["path", {
13
+ d: "m3 8 4-4 4 4",
14
+ key: "11wl7u"
15
+ }],
16
+ ["path", {
17
+ d: "M7 4v16",
18
+ key: "1glfcx"
19
+ }]
20
+ ], n = e("arrow-up-down", t);
21
+ //#endregion
22
+ export { t as __iconNode, n as default };
@@ -0,0 +1,8 @@
1
+ import e from "../createLucideIcon.js";
2
+ //#region node_modules/.pnpm/@lucide+vue@1.23.0_vue@3.5.39_typescript@5.8.3_/node_modules/@lucide/vue/dist/esm/icons/funnel.mjs
3
+ var t = [["path", {
4
+ d: "M10 20a1 1 0 0 0 .553.895l2 1A1 1 0 0 0 14 21v-7a2 2 0 0 1 .517-1.341L21.74 4.67A1 1 0 0 0 21 3H3a1 1 0 0 0-.742 1.67l7.225 7.989A2 2 0 0 1 10 14z",
5
+ key: "sc7q7i"
6
+ }]], n = e("funnel", t);
7
+ //#endregion
8
+ export { t as __iconNode, n as default };
@@ -0,0 +1,20 @@
1
+ import e from "../createLucideIcon.js";
2
+ //#region node_modules/.pnpm/@lucide+vue@1.23.0_vue@3.5.39_typescript@5.8.3_/node_modules/@lucide/vue/dist/esm/icons/info.mjs
3
+ var t = [
4
+ ["circle", {
5
+ cx: "12",
6
+ cy: "12",
7
+ r: "10",
8
+ key: "1mglay"
9
+ }],
10
+ ["path", {
11
+ d: "M12 16v-4",
12
+ key: "1dtifu"
13
+ }],
14
+ ["path", {
15
+ d: "M12 8h.01",
16
+ key: "e9boi3"
17
+ }]
18
+ ], n = e("info", t);
19
+ //#endregion
20
+ export { t as __iconNode, n as default };