@xxmachina/components 19.21.8 → 19.25.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 (79) hide show
  1. package/extras/flow/index.d.ts +13 -3
  2. package/extras/flow/index.d.ts.map +1 -1
  3. package/features/query/index.d.ts.map +1 -1
  4. package/fesm2022/xxmachina-components-extras-flow.mjs +110 -11
  5. package/fesm2022/xxmachina-components-extras-flow.mjs.map +1 -1
  6. package/fesm2022/xxmachina-components-groups-query-form.mjs.map +1 -1
  7. package/fesm2022/xxmachina-components-molecules-inline-edit-field.mjs +117 -0
  8. package/fesm2022/xxmachina-components-molecules-inline-edit-field.mjs.map +1 -0
  9. package/fesm2022/xxmachina-components-molecules-weekly-header.mjs +2 -2
  10. package/fesm2022/xxmachina-components-molecules-weekly-header.mjs.map +1 -1
  11. package/fesm2022/xxmachina-components-organisms-calendar-section.mjs +2 -2
  12. package/fesm2022/xxmachina-components-organisms-calendar-section.mjs.map +1 -1
  13. package/fesm2022/xxmachina-components-organisms-terminal-input-section.mjs +19 -4
  14. package/fesm2022/xxmachina-components-organisms-terminal-input-section.mjs.map +1 -1
  15. package/fesm2022/xxmachina-components-organisms-xterm.mjs +849 -49
  16. package/fesm2022/xxmachina-components-organisms-xterm.mjs.map +1 -1
  17. package/fesm2022/xxmachina-components-pages-command-harness.mjs +28 -0
  18. package/fesm2022/xxmachina-components-pages-command-harness.mjs.map +1 -0
  19. package/fesm2022/xxmachina-components-pages-command.mjs +10 -6
  20. package/fesm2022/xxmachina-components-pages-command.mjs.map +1 -1
  21. package/fesm2022/xxmachina-components-pages-query.mjs +2 -2
  22. package/fesm2022/xxmachina-components-pages-query.mjs.map +1 -1
  23. package/fesm2022/xxmachina-components-pages-thread.mjs +2 -2
  24. package/fesm2022/xxmachina-components-pages-thread.mjs.map +1 -1
  25. package/fesm2022/xxmachina-components-services-message.mjs.map +1 -1
  26. package/fesm2022/xxmachina-components-templates-agent.mjs +151 -123
  27. package/fesm2022/xxmachina-components-templates-agent.mjs.map +1 -1
  28. package/fesm2022/xxmachina-components-templates-background.mjs +376 -242
  29. package/fesm2022/xxmachina-components-templates-background.mjs.map +1 -1
  30. package/fesm2022/xxmachina-components-templates-flow-nodes-group.mjs +164 -0
  31. package/fesm2022/xxmachina-components-templates-flow-nodes-group.mjs.map +1 -0
  32. package/fesm2022/xxmachina-components-templates-flow-nodes-issue.mjs +157 -0
  33. package/fesm2022/xxmachina-components-templates-flow-nodes-issue.mjs.map +1 -0
  34. package/fesm2022/xxmachina-components-templates-flow-nodes-task.mjs +154 -0
  35. package/fesm2022/xxmachina-components-templates-flow-nodes-task.mjs.map +1 -0
  36. package/fesm2022/xxmachina-components-templates-flow.mjs +337 -0
  37. package/fesm2022/xxmachina-components-templates-flow.mjs.map +1 -0
  38. package/fesm2022/xxmachina-components.mjs +2 -2
  39. package/fesm2022/xxmachina-components.mjs.map +1 -1
  40. package/groups/query-form/index.d.ts +3 -4
  41. package/groups/query-form/index.d.ts.map +1 -1
  42. package/index.d.ts.map +1 -1
  43. package/molecules/inline-edit-field/index.d.ts +32 -0
  44. package/molecules/inline-edit-field/index.d.ts.map +1 -0
  45. package/organisms/terminal-input-section/index.d.ts +2 -1
  46. package/organisms/terminal-input-section/index.d.ts.map +1 -1
  47. package/organisms/xterm/index.d.ts +176 -4
  48. package/organisms/xterm/index.d.ts.map +1 -1
  49. package/package.json +25 -9
  50. package/pages/command/harness/index.d.ts +14 -0
  51. package/pages/command/harness/index.d.ts.map +1 -0
  52. package/pages/command/index.d.ts +12 -4
  53. package/pages/command/index.d.ts.map +1 -1
  54. package/pages/query/index.d.ts +2 -2
  55. package/pages/query/index.d.ts.map +1 -1
  56. package/pages/query-v2/index.d.ts.map +1 -1
  57. package/services/command/index.d.ts.map +1 -1
  58. package/services/message/index.d.ts +3 -3
  59. package/services/message/index.d.ts.map +1 -1
  60. package/templates/agent/index.d.ts +11 -2
  61. package/templates/agent/index.d.ts.map +1 -1
  62. package/templates/background/index.d.ts +14 -20
  63. package/templates/background/index.d.ts.map +1 -1
  64. package/templates/flow/index.d.ts +61 -0
  65. package/templates/flow/index.d.ts.map +1 -0
  66. package/templates/flow/nodes/group/index.d.ts +44 -0
  67. package/templates/flow/nodes/group/index.d.ts.map +1 -0
  68. package/templates/flow/nodes/issue/index.d.ts +46 -0
  69. package/templates/flow/nodes/issue/index.d.ts.map +1 -0
  70. package/templates/flow/nodes/task/index.d.ts +37 -0
  71. package/templates/flow/nodes/task/index.d.ts.map +1 -0
  72. package/fesm2022/xxmachina-components-services-calendar.mjs +0 -25
  73. package/fesm2022/xxmachina-components-services-calendar.mjs.map +0 -1
  74. package/fesm2022/xxmachina-components-services-schedule.mjs +0 -51
  75. package/fesm2022/xxmachina-components-services-schedule.mjs.map +0 -1
  76. package/services/calendar/index.d.ts +0 -14
  77. package/services/calendar/index.d.ts.map +0 -1
  78. package/services/schedule/index.d.ts +0 -27
  79. package/services/schedule/index.d.ts.map +0 -1
@@ -0,0 +1,157 @@
1
+ import * as i0 from '@angular/core';
2
+ import { Input, Component } from '@angular/core';
3
+ import * as i1 from '@angular/common';
4
+ import { CommonModule } from '@angular/common';
5
+ import * as i2 from '@angular/material/icon';
6
+ import { MatIconModule } from '@angular/material/icon';
7
+
8
+ class IssueNodeComponent {
9
+ data;
10
+ get hasDeps() {
11
+ return !!this.data.blockedBy?.length;
12
+ }
13
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.0.5", ngImport: i0, type: IssueNodeComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
14
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "20.0.5", type: IssueNodeComponent, isStandalone: true, selector: "flow-issue-node", inputs: { data: "data" }, ngImport: i0, template: `
15
+ <div class="issue-node" [class]="'s-' + data.status" [class.has-deps]="hasDeps">
16
+ <div class="issue-header">
17
+ <span class="dot"></span>
18
+ <span class="id">#{{ data.id }}</span>
19
+ @if (data.priority) {
20
+ <span class="priority" [class]="'p-' + data.priority">
21
+ {{ data.priority[0] | uppercase }}
22
+ </span>
23
+ }
24
+ </div>
25
+ <div class="issue-title">{{ data.title }}</div>
26
+ @if (data.assignee) {
27
+ <div class="assignee">
28
+ @if (data.assigneeIcon) {
29
+ <img [src]="data.assigneeIcon" class="assignee-avatar" alt="" />
30
+ } @else {
31
+ <mat-icon class="assignee-icon">person</mat-icon>
32
+ }
33
+ {{ data.assignee }}
34
+ </div>
35
+ }
36
+ @if (hasDeps) {
37
+ <div class="deps">blocked by: {{ data.blockedBy?.length }}</div>
38
+ }
39
+ @if (data.effectiveLevel !== undefined) {
40
+ <div class="coords">{{ data.effectiveLevel }}, {{ data.effectiveRow }}</div>
41
+ }
42
+ </div>
43
+ `, isInline: true, styles: [":host{display:block;width:160px;height:120px}.issue-node{background:#1a1a1a;border:1px solid rgba(51,51,51,.8);border-radius:8px;padding:10px;font-family:SF Mono,Monaco,monospace;transition:all .2s ease;box-shadow:0 4px 12px #0006;height:100%;box-sizing:border-box;overflow:hidden}.issue-node:hover{transform:translateY(-2px);box-shadow:0 8px 24px #00000080;border-color:#505050cc}.issue-node.s-open{border-color:#3b82f699}.issue-node.s-in_progress{border-color:#f59e0b99}.issue-node.s-closed{border-color:#10b98199;opacity:.7}.issue-node.s-blocked{border-color:#ef444499}.issue-node.has-deps{border-style:dashed}.issue-header{display:flex;align-items:center;gap:6px;margin-bottom:6px}.dot{width:8px;height:8px;border-radius:50%;flex-shrink:0;box-shadow:0 0 8px currentColor}.s-open .dot{background:#3b82f6;color:#3b82f6}.s-in_progress .dot{background:#f59e0b;color:#f59e0b;animation:pulse 2s infinite}.s-closed .dot{background:#10b981;color:#10b981}.s-blocked .dot{background:#ef4444;color:#ef4444}@keyframes pulse{0%,to{box-shadow:0 0 4px #f59e0b66}50%{box-shadow:0 0 12px #f59e0bcc}}.id{font-size:10px;font-weight:500;color:#888;font-family:SF Mono,Monaco,monospace}.priority{margin-left:auto;font-size:9px;font-weight:600;padding:2px 5px;border-radius:4px;text-transform:uppercase}.p-critical{background:#ef444433;color:#ef4444}.p-high{background:#f59e0b33;color:#f59e0b}.p-medium{background:#3b82f633;color:#3b82f6}.p-low{background:#8883;color:#888}.issue-title{font-size:12px;font-weight:500;color:#e0e0e0;line-height:1.4;margin-bottom:6px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.assignee{display:inline-flex;align-items:center;gap:4px;font-size:10px;color:#888;font-weight:500}.assignee-icon{font-size:12px;width:12px;height:12px;color:#666}.assignee-avatar{width:14px;height:14px;border-radius:50%;object-fit:cover;border:1px solid rgba(255,255,255,.1)}.deps{margin-top:6px;padding-top:6px;border-top:1px solid rgba(51,51,51,.5);font-size:10px;color:#ff79c6;font-weight:500}.coords{margin-top:4px;font-size:9px;color:#666;font-family:SF Mono,Monaco,monospace}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "pipe", type: i1.UpperCasePipe, name: "uppercase" }, { kind: "ngmodule", type: MatIconModule }, { kind: "component", type: i2.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }] });
44
+ }
45
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.0.5", ngImport: i0, type: IssueNodeComponent, decorators: [{
46
+ type: Component,
47
+ args: [{ selector: 'flow-issue-node', standalone: true, imports: [CommonModule, MatIconModule], template: `
48
+ <div class="issue-node" [class]="'s-' + data.status" [class.has-deps]="hasDeps">
49
+ <div class="issue-header">
50
+ <span class="dot"></span>
51
+ <span class="id">#{{ data.id }}</span>
52
+ @if (data.priority) {
53
+ <span class="priority" [class]="'p-' + data.priority">
54
+ {{ data.priority[0] | uppercase }}
55
+ </span>
56
+ }
57
+ </div>
58
+ <div class="issue-title">{{ data.title }}</div>
59
+ @if (data.assignee) {
60
+ <div class="assignee">
61
+ @if (data.assigneeIcon) {
62
+ <img [src]="data.assigneeIcon" class="assignee-avatar" alt="" />
63
+ } @else {
64
+ <mat-icon class="assignee-icon">person</mat-icon>
65
+ }
66
+ {{ data.assignee }}
67
+ </div>
68
+ }
69
+ @if (hasDeps) {
70
+ <div class="deps">blocked by: {{ data.blockedBy?.length }}</div>
71
+ }
72
+ @if (data.effectiveLevel !== undefined) {
73
+ <div class="coords">{{ data.effectiveLevel }}, {{ data.effectiveRow }}</div>
74
+ }
75
+ </div>
76
+ `, styles: [":host{display:block;width:160px;height:120px}.issue-node{background:#1a1a1a;border:1px solid rgba(51,51,51,.8);border-radius:8px;padding:10px;font-family:SF Mono,Monaco,monospace;transition:all .2s ease;box-shadow:0 4px 12px #0006;height:100%;box-sizing:border-box;overflow:hidden}.issue-node:hover{transform:translateY(-2px);box-shadow:0 8px 24px #00000080;border-color:#505050cc}.issue-node.s-open{border-color:#3b82f699}.issue-node.s-in_progress{border-color:#f59e0b99}.issue-node.s-closed{border-color:#10b98199;opacity:.7}.issue-node.s-blocked{border-color:#ef444499}.issue-node.has-deps{border-style:dashed}.issue-header{display:flex;align-items:center;gap:6px;margin-bottom:6px}.dot{width:8px;height:8px;border-radius:50%;flex-shrink:0;box-shadow:0 0 8px currentColor}.s-open .dot{background:#3b82f6;color:#3b82f6}.s-in_progress .dot{background:#f59e0b;color:#f59e0b;animation:pulse 2s infinite}.s-closed .dot{background:#10b981;color:#10b981}.s-blocked .dot{background:#ef4444;color:#ef4444}@keyframes pulse{0%,to{box-shadow:0 0 4px #f59e0b66}50%{box-shadow:0 0 12px #f59e0bcc}}.id{font-size:10px;font-weight:500;color:#888;font-family:SF Mono,Monaco,monospace}.priority{margin-left:auto;font-size:9px;font-weight:600;padding:2px 5px;border-radius:4px;text-transform:uppercase}.p-critical{background:#ef444433;color:#ef4444}.p-high{background:#f59e0b33;color:#f59e0b}.p-medium{background:#3b82f633;color:#3b82f6}.p-low{background:#8883;color:#888}.issue-title{font-size:12px;font-weight:500;color:#e0e0e0;line-height:1.4;margin-bottom:6px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.assignee{display:inline-flex;align-items:center;gap:4px;font-size:10px;color:#888;font-weight:500}.assignee-icon{font-size:12px;width:12px;height:12px;color:#666}.assignee-avatar{width:14px;height:14px;border-radius:50%;object-fit:cover;border:1px solid rgba(255,255,255,.1)}.deps{margin-top:6px;padding-top:6px;border-top:1px solid rgba(51,51,51,.5);font-size:10px;color:#ff79c6;font-weight:500}.coords{margin-top:4px;font-size:9px;color:#666;font-family:SF Mono,Monaco,monospace}\n"] }]
77
+ }], propDecorators: { data: [{
78
+ type: Input
79
+ }] } });
80
+
81
+ const issueNodeMeta = {
82
+ title: 'Flow Issue Node',
83
+ group: 'molecules',
84
+ component: IssueNodeComponent,
85
+ viewport: { width: 260, height: 180 },
86
+ variants: [
87
+ {
88
+ name: 'open',
89
+ inputs: {
90
+ data: {
91
+ id: '123',
92
+ title: 'Fix authentication bug',
93
+ status: 'open',
94
+ priority: 'high',
95
+ assignee: 'dev-001',
96
+ },
97
+ },
98
+ },
99
+ {
100
+ name: 'in progress',
101
+ inputs: {
102
+ data: {
103
+ id: '456',
104
+ title: 'Implement dark mode',
105
+ status: 'in_progress',
106
+ priority: 'medium',
107
+ assignee: 'dev-002',
108
+ },
109
+ },
110
+ },
111
+ {
112
+ name: 'closed',
113
+ inputs: {
114
+ data: {
115
+ id: '789',
116
+ title: 'Update dependencies',
117
+ status: 'closed',
118
+ priority: 'low',
119
+ assignee: 'dev-003',
120
+ },
121
+ },
122
+ },
123
+ {
124
+ name: 'blocked',
125
+ inputs: {
126
+ data: {
127
+ id: '101',
128
+ title: 'Deploy to production',
129
+ status: 'blocked',
130
+ priority: 'critical',
131
+ assignee: 'ops-001',
132
+ blockedBy: ['456', '789'],
133
+ },
134
+ },
135
+ },
136
+ {
137
+ name: 'with avatar',
138
+ inputs: {
139
+ data: {
140
+ id: '202',
141
+ title: 'Code review needed',
142
+ status: 'open',
143
+ priority: 'high',
144
+ assignee: 'reviewer',
145
+ assigneeIcon: 'https://api.dicebear.com/7.x/avataaars/svg?seed=Review',
146
+ },
147
+ },
148
+ },
149
+ ],
150
+ };
151
+
152
+ /**
153
+ * Generated bundle index. Do not edit.
154
+ */
155
+
156
+ export { IssueNodeComponent, issueNodeMeta };
157
+ //# sourceMappingURL=xxmachina-components-templates-flow-nodes-issue.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"xxmachina-components-templates-flow-nodes-issue.mjs","sources":["../tmp-esm2022/templates/flow/nodes/issue/issue.node.js","../tmp-esm2022/templates/flow/nodes/issue/issue.node.meta.js","../tmp-esm2022/templates/flow/nodes/issue/xxmachina-components-templates-flow-nodes-issue.js"],"sourcesContent":["import { Component, Input } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { MatIconModule } from '@angular/material/icon';\nimport * as i0 from \"@angular/core\";\nimport * as i1 from \"@angular/common\";\nimport * as i2 from \"@angular/material/icon\";\nexport class IssueNodeComponent {\n data;\n get hasDeps() {\n return !!this.data.blockedBy?.length;\n }\n static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.0.5\", ngImport: i0, type: IssueNodeComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });\n static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: \"17.0.0\", version: \"20.0.5\", type: IssueNodeComponent, isStandalone: true, selector: \"flow-issue-node\", inputs: { data: \"data\" }, ngImport: i0, template: `\n <div class=\"issue-node\" [class]=\"'s-' + data.status\" [class.has-deps]=\"hasDeps\">\n <div class=\"issue-header\">\n <span class=\"dot\"></span>\n <span class=\"id\">#{{ data.id }}</span>\n @if (data.priority) {\n <span class=\"priority\" [class]=\"'p-' + data.priority\">\n {{ data.priority[0] | uppercase }}\n </span>\n }\n </div>\n <div class=\"issue-title\">{{ data.title }}</div>\n @if (data.assignee) {\n <div class=\"assignee\">\n @if (data.assigneeIcon) {\n <img [src]=\"data.assigneeIcon\" class=\"assignee-avatar\" alt=\"\" />\n } @else {\n <mat-icon class=\"assignee-icon\">person</mat-icon>\n }\n {{ data.assignee }}\n </div>\n }\n @if (hasDeps) {\n <div class=\"deps\">blocked by: {{ data.blockedBy?.length }}</div>\n }\n @if (data.effectiveLevel !== undefined) {\n <div class=\"coords\">{{ data.effectiveLevel }}, {{ data.effectiveRow }}</div>\n }\n </div>\n `, isInline: true, styles: [\":host{display:block;width:160px;height:120px}.issue-node{background:#1a1a1a;border:1px solid rgba(51,51,51,.8);border-radius:8px;padding:10px;font-family:SF Mono,Monaco,monospace;transition:all .2s ease;box-shadow:0 4px 12px #0006;height:100%;box-sizing:border-box;overflow:hidden}.issue-node:hover{transform:translateY(-2px);box-shadow:0 8px 24px #00000080;border-color:#505050cc}.issue-node.s-open{border-color:#3b82f699}.issue-node.s-in_progress{border-color:#f59e0b99}.issue-node.s-closed{border-color:#10b98199;opacity:.7}.issue-node.s-blocked{border-color:#ef444499}.issue-node.has-deps{border-style:dashed}.issue-header{display:flex;align-items:center;gap:6px;margin-bottom:6px}.dot{width:8px;height:8px;border-radius:50%;flex-shrink:0;box-shadow:0 0 8px currentColor}.s-open .dot{background:#3b82f6;color:#3b82f6}.s-in_progress .dot{background:#f59e0b;color:#f59e0b;animation:pulse 2s infinite}.s-closed .dot{background:#10b981;color:#10b981}.s-blocked .dot{background:#ef4444;color:#ef4444}@keyframes pulse{0%,to{box-shadow:0 0 4px #f59e0b66}50%{box-shadow:0 0 12px #f59e0bcc}}.id{font-size:10px;font-weight:500;color:#888;font-family:SF Mono,Monaco,monospace}.priority{margin-left:auto;font-size:9px;font-weight:600;padding:2px 5px;border-radius:4px;text-transform:uppercase}.p-critical{background:#ef444433;color:#ef4444}.p-high{background:#f59e0b33;color:#f59e0b}.p-medium{background:#3b82f633;color:#3b82f6}.p-low{background:#8883;color:#888}.issue-title{font-size:12px;font-weight:500;color:#e0e0e0;line-height:1.4;margin-bottom:6px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.assignee{display:inline-flex;align-items:center;gap:4px;font-size:10px;color:#888;font-weight:500}.assignee-icon{font-size:12px;width:12px;height:12px;color:#666}.assignee-avatar{width:14px;height:14px;border-radius:50%;object-fit:cover;border:1px solid rgba(255,255,255,.1)}.deps{margin-top:6px;padding-top:6px;border-top:1px solid rgba(51,51,51,.5);font-size:10px;color:#ff79c6;font-weight:500}.coords{margin-top:4px;font-size:9px;color:#666;font-family:SF Mono,Monaco,monospace}\\n\"], dependencies: [{ kind: \"ngmodule\", type: CommonModule }, { kind: \"pipe\", type: i1.UpperCasePipe, name: \"uppercase\" }, { kind: \"ngmodule\", type: MatIconModule }, { kind: \"component\", type: i2.MatIcon, selector: \"mat-icon\", inputs: [\"color\", \"inline\", \"svgIcon\", \"fontSet\", \"fontIcon\"], exportAs: [\"matIcon\"] }] });\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.0.5\", ngImport: i0, type: IssueNodeComponent, decorators: [{\n type: Component,\n args: [{ selector: 'flow-issue-node', standalone: true, imports: [CommonModule, MatIconModule], template: `\n <div class=\"issue-node\" [class]=\"'s-' + data.status\" [class.has-deps]=\"hasDeps\">\n <div class=\"issue-header\">\n <span class=\"dot\"></span>\n <span class=\"id\">#{{ data.id }}</span>\n @if (data.priority) {\n <span class=\"priority\" [class]=\"'p-' + data.priority\">\n {{ data.priority[0] | uppercase }}\n </span>\n }\n </div>\n <div class=\"issue-title\">{{ data.title }}</div>\n @if (data.assignee) {\n <div class=\"assignee\">\n @if (data.assigneeIcon) {\n <img [src]=\"data.assigneeIcon\" class=\"assignee-avatar\" alt=\"\" />\n } @else {\n <mat-icon class=\"assignee-icon\">person</mat-icon>\n }\n {{ data.assignee }}\n </div>\n }\n @if (hasDeps) {\n <div class=\"deps\">blocked by: {{ data.blockedBy?.length }}</div>\n }\n @if (data.effectiveLevel !== undefined) {\n <div class=\"coords\">{{ data.effectiveLevel }}, {{ data.effectiveRow }}</div>\n }\n </div>\n `, styles: [\":host{display:block;width:160px;height:120px}.issue-node{background:#1a1a1a;border:1px solid rgba(51,51,51,.8);border-radius:8px;padding:10px;font-family:SF Mono,Monaco,monospace;transition:all .2s ease;box-shadow:0 4px 12px #0006;height:100%;box-sizing:border-box;overflow:hidden}.issue-node:hover{transform:translateY(-2px);box-shadow:0 8px 24px #00000080;border-color:#505050cc}.issue-node.s-open{border-color:#3b82f699}.issue-node.s-in_progress{border-color:#f59e0b99}.issue-node.s-closed{border-color:#10b98199;opacity:.7}.issue-node.s-blocked{border-color:#ef444499}.issue-node.has-deps{border-style:dashed}.issue-header{display:flex;align-items:center;gap:6px;margin-bottom:6px}.dot{width:8px;height:8px;border-radius:50%;flex-shrink:0;box-shadow:0 0 8px currentColor}.s-open .dot{background:#3b82f6;color:#3b82f6}.s-in_progress .dot{background:#f59e0b;color:#f59e0b;animation:pulse 2s infinite}.s-closed .dot{background:#10b981;color:#10b981}.s-blocked .dot{background:#ef4444;color:#ef4444}@keyframes pulse{0%,to{box-shadow:0 0 4px #f59e0b66}50%{box-shadow:0 0 12px #f59e0bcc}}.id{font-size:10px;font-weight:500;color:#888;font-family:SF Mono,Monaco,monospace}.priority{margin-left:auto;font-size:9px;font-weight:600;padding:2px 5px;border-radius:4px;text-transform:uppercase}.p-critical{background:#ef444433;color:#ef4444}.p-high{background:#f59e0b33;color:#f59e0b}.p-medium{background:#3b82f633;color:#3b82f6}.p-low{background:#8883;color:#888}.issue-title{font-size:12px;font-weight:500;color:#e0e0e0;line-height:1.4;margin-bottom:6px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.assignee{display:inline-flex;align-items:center;gap:4px;font-size:10px;color:#888;font-weight:500}.assignee-icon{font-size:12px;width:12px;height:12px;color:#666}.assignee-avatar{width:14px;height:14px;border-radius:50%;object-fit:cover;border:1px solid rgba(255,255,255,.1)}.deps{margin-top:6px;padding-top:6px;border-top:1px solid rgba(51,51,51,.5);font-size:10px;color:#ff79c6;font-weight:500}.coords{margin-top:4px;font-size:9px;color:#666;font-family:SF Mono,Monaco,monospace}\\n\"] }]\n }], propDecorators: { data: [{\n type: Input\n }] } });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaXNzdWUubm9kZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL0B4eG1hY2hpbmEvY29tcG9uZW50cy9zcmMvbGliL3RlbXBsYXRlcy9mbG93L25vZGVzL2lzc3VlL2lzc3VlLm5vZGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxLQUFLLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDakQsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQy9DLE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSx3QkFBd0IsQ0FBQzs7OztBQW9MdkQsTUFBTSxPQUFPLGtCQUFrQjtJQUNwQixJQUFJLENBQWlCO0lBRTlCLElBQUksT0FBTztRQUNULE9BQU8sQ0FBQyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsU0FBUyxFQUFFLE1BQU0sQ0FBQztJQUN2QyxDQUFDO3VHQUxVLGtCQUFrQjsyRkFBbEIsa0JBQWtCLHFHQTNKbkI7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0dBNkJULGtuRUE5QlMsWUFBWSwyRkFBRSxhQUFhOzsyRkE0SjFCLGtCQUFrQjtrQkEvSjlCLFNBQVM7K0JBQ0UsaUJBQWlCLGNBQ2YsSUFBSSxXQUNQLENBQUMsWUFBWSxFQUFFLGFBQWEsQ0FBQyxZQUM1Qjs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7R0E2QlQ7OEJBK0hRLElBQUk7c0JBQVosS0FBSyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgSW5wdXQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IENvbW1vbk1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XG5pbXBvcnQgeyBNYXRJY29uTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvaWNvbic7XG5cbmV4cG9ydCB0eXBlIElzc3VlU3RhdHVzID0gJ29wZW4nIHwgJ2luX3Byb2dyZXNzJyB8ICdjbG9zZWQnIHwgJ2Jsb2NrZWQnO1xuZXhwb3J0IHR5cGUgSXNzdWVQcmlvcml0eSA9ICdjcml0aWNhbCcgfCAnaGlnaCcgfCAnbWVkaXVtJyB8ICdsb3cnO1xuXG5leHBvcnQgaW50ZXJmYWNlIElzc3VlTm9kZURhdGEge1xuICBpZDogc3RyaW5nO1xuICB0aXRsZTogc3RyaW5nO1xuICBzdGF0dXM6IElzc3VlU3RhdHVzO1xuICBwcmlvcml0eT86IElzc3VlUHJpb3JpdHk7XG4gIGFzc2lnbmVlPzogc3RyaW5nO1xuICBhc3NpZ25lZUljb24/OiBzdHJpbmc7XG4gIGJsb2NrZWRCeT86IHN0cmluZ1tdO1xuICBsZXZlbD86IG51bWJlcjtcbiAgcm93PzogbnVtYmVyO1xuICAvKiogRWZmZWN0aXZlIGxldmVsIGNhbGN1bGF0ZWQgZnJvbSBjdXJyZW50IHBvc2l0aW9uICovXG4gIGVmZmVjdGl2ZUxldmVsPzogbnVtYmVyO1xuICAvKiogRWZmZWN0aXZlIHJvdyBjYWxjdWxhdGVkIGZyb20gY3VycmVudCBwb3NpdGlvbiAqL1xuICBlZmZlY3RpdmVSb3c/OiBudW1iZXI7XG59XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2Zsb3ctaXNzdWUtbm9kZScsXG4gIHN0YW5kYWxvbmU6IHRydWUsXG4gIGltcG9ydHM6IFtDb21tb25Nb2R1bGUsIE1hdEljb25Nb2R1bGVdLFxuICB0ZW1wbGF0ZTogYFxuICAgIDxkaXYgY2xhc3M9XCJpc3N1ZS1ub2RlXCIgW2NsYXNzXT1cIidzLScgKyBkYXRhLnN0YXR1c1wiIFtjbGFzcy5oYXMtZGVwc109XCJoYXNEZXBzXCI+XG4gICAgICA8ZGl2IGNsYXNzPVwiaXNzdWUtaGVhZGVyXCI+XG4gICAgICAgIDxzcGFuIGNsYXNzPVwiZG90XCI+PC9zcGFuPlxuICAgICAgICA8c3BhbiBjbGFzcz1cImlkXCI+I3t7IGRhdGEuaWQgfX08L3NwYW4+XG4gICAgICAgIEBpZiAoZGF0YS5wcmlvcml0eSkge1xuICAgICAgICAgIDxzcGFuIGNsYXNzPVwicHJpb3JpdHlcIiBbY2xhc3NdPVwiJ3AtJyArIGRhdGEucHJpb3JpdHlcIj5cbiAgICAgICAgICAgIHt7IGRhdGEucHJpb3JpdHlbMF0gfCB1cHBlcmNhc2UgfX1cbiAgICAgICAgICA8L3NwYW4+XG4gICAgICAgIH1cbiAgICAgIDwvZGl2PlxuICAgICAgPGRpdiBjbGFzcz1cImlzc3VlLXRpdGxlXCI+e3sgZGF0YS50aXRsZSB9fTwvZGl2PlxuICAgICAgQGlmIChkYXRhLmFzc2lnbmVlKSB7XG4gICAgICAgIDxkaXYgY2xhc3M9XCJhc3NpZ25lZVwiPlxuICAgICAgICAgIEBpZiAoZGF0YS5hc3NpZ25lZUljb24pIHtcbiAgICAgICAgICAgIDxpbWcgW3NyY109XCJkYXRhLmFzc2lnbmVlSWNvblwiIGNsYXNzPVwiYXNzaWduZWUtYXZhdGFyXCIgYWx0PVwiXCIgLz5cbiAgICAgICAgICB9IEBlbHNlIHtcbiAgICAgICAgICAgIDxtYXQtaWNvbiBjbGFzcz1cImFzc2lnbmVlLWljb25cIj5wZXJzb248L21hdC1pY29uPlxuICAgICAgICAgIH1cbiAgICAgICAgICB7eyBkYXRhLmFzc2lnbmVlIH19XG4gICAgICAgIDwvZGl2PlxuICAgICAgfVxuICAgICAgQGlmIChoYXNEZXBzKSB7XG4gICAgICAgIDxkaXYgY2xhc3M9XCJkZXBzXCI+YmxvY2tlZCBieToge3sgZGF0YS5ibG9ja2VkQnk/Lmxlbmd0aCB9fTwvZGl2PlxuICAgICAgfVxuICAgICAgQGlmIChkYXRhLmVmZmVjdGl2ZUxldmVsICE9PSB1bmRlZmluZWQpIHtcbiAgICAgICAgPGRpdiBjbGFzcz1cImNvb3Jkc1wiPnt7IGRhdGEuZWZmZWN0aXZlTGV2ZWwgfX0sIHt7IGRhdGEuZWZmZWN0aXZlUm93IH19PC9kaXY+XG4gICAgICB9XG4gICAgPC9kaXY+XG4gIGAsXG4gIHN0eWxlczogW2BcbiAgICA6aG9zdCB7IGRpc3BsYXk6IGJsb2NrOyB3aWR0aDogMTYwcHg7IGhlaWdodDogMTIwcHg7IH1cblxuICAgIC5pc3N1ZS1ub2RlIHtcbiAgICAgIGJhY2tncm91bmQ6ICMxYTFhMWE7XG4gICAgICBib3JkZXI6IDFweCBzb2xpZCByZ2JhKDUxLCA1MSwgNTEsIDAuOCk7XG4gICAgICBib3JkZXItcmFkaXVzOiA4cHg7XG4gICAgICBwYWRkaW5nOiAxMHB4O1xuICAgICAgZm9udC1mYW1pbHk6ICdTRiBNb25vJywgTW9uYWNvLCBtb25vc3BhY2U7XG4gICAgICB0cmFuc2l0aW9uOiBhbGwgMC4ycyBlYXNlO1xuICAgICAgYm94LXNoYWRvdzogMCA0cHggMTJweCByZ2JhKDAsIDAsIDAsIDAuNCk7XG4gICAgICBoZWlnaHQ6IDEwMCU7XG4gICAgICBib3gtc2l6aW5nOiBib3JkZXItYm94O1xuICAgICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgICB9XG5cbiAgICAuaXNzdWUtbm9kZTpob3ZlciB7XG4gICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoLTJweCk7XG4gICAgICBib3gtc2hhZG93OiAwIDhweCAyNHB4IHJnYmEoMCwgMCwgMCwgMC41KTtcbiAgICAgIGJvcmRlci1jb2xvcjogcmdiYSg4MCwgODAsIDgwLCAwLjgpO1xuICAgIH1cblxuICAgIC5pc3N1ZS1ub2RlLnMtb3BlbiB7IGJvcmRlci1jb2xvcjogcmdiYSg1OSwgMTMwLCAyNDYsIDAuNik7IH1cbiAgICAuaXNzdWUtbm9kZS5zLWluX3Byb2dyZXNzIHsgYm9yZGVyLWNvbG9yOiByZ2JhKDI0NSwgMTU4LCAxMSwgMC42KTsgfVxuICAgIC5pc3N1ZS1ub2RlLnMtY2xvc2VkIHsgYm9yZGVyLWNvbG9yOiByZ2JhKDE2LCAxODUsIDEyOSwgMC42KTsgb3BhY2l0eTogMC43OyB9XG4gICAgLmlzc3VlLW5vZGUucy1ibG9ja2VkIHsgYm9yZGVyLWNvbG9yOiByZ2JhKDIzOSwgNjgsIDY4LCAwLjYpOyB9XG4gICAgLmlzc3VlLW5vZGUuaGFzLWRlcHMgeyBib3JkZXItc3R5bGU6IGRhc2hlZDsgfVxuXG4gICAgLmlzc3VlLWhlYWRlciB7XG4gICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICAgIGdhcDogNnB4O1xuICAgICAgbWFyZ2luLWJvdHRvbTogNnB4O1xuICAgIH1cblxuICAgIC5kb3Qge1xuICAgICAgd2lkdGg6IDhweDtcbiAgICAgIGhlaWdodDogOHB4O1xuICAgICAgYm9yZGVyLXJhZGl1czogNTAlO1xuICAgICAgZmxleC1zaHJpbms6IDA7XG4gICAgICBib3gtc2hhZG93OiAwIDAgOHB4IGN1cnJlbnRDb2xvcjtcbiAgICB9XG5cbiAgICAucy1vcGVuIC5kb3QgeyBiYWNrZ3JvdW5kOiAjM2I4MmY2OyBjb2xvcjogIzNiODJmNjsgfVxuICAgIC5zLWluX3Byb2dyZXNzIC5kb3QgeyBiYWNrZ3JvdW5kOiAjZjU5ZTBiOyBjb2xvcjogI2Y1OWUwYjsgYW5pbWF0aW9uOiBwdWxzZSAycyBpbmZpbml0ZTsgfVxuICAgIC5zLWNsb3NlZCAuZG90IHsgYmFja2dyb3VuZDogIzEwYjk4MTsgY29sb3I6ICMxMGI5ODE7IH1cbiAgICAucy1ibG9ja2VkIC5kb3QgeyBiYWNrZ3JvdW5kOiAjZWY0NDQ0OyBjb2xvcjogI2VmNDQ0NDsgfVxuXG4gICAgQGtleWZyYW1lcyBwdWxzZSB7XG4gICAgICAwJSwgMTAwJSB7IGJveC1zaGFkb3c6IDAgMCA0cHggcmdiYSgyNDUsIDE1OCwgMTEsIDAuNCk7IH1cbiAgICAgIDUwJSB7IGJveC1zaGFkb3c6IDAgMCAxMnB4IHJnYmEoMjQ1LCAxNTgsIDExLCAwLjgpOyB9XG4gICAgfVxuXG4gICAgLmlkIHtcbiAgICAgIGZvbnQtc2l6ZTogMTBweDtcbiAgICAgIGZvbnQtd2VpZ2h0OiA1MDA7XG4gICAgICBjb2xvcjogIzg4ODtcbiAgICAgIGZvbnQtZmFtaWx5OiAnU0YgTW9ubycsIE1vbmFjbywgbW9ub3NwYWNlO1xuICAgIH1cblxuICAgIC5wcmlvcml0eSB7XG4gICAgICBtYXJnaW4tbGVmdDogYXV0bztcbiAgICAgIGZvbnQtc2l6ZTogOXB4O1xuICAgICAgZm9udC13ZWlnaHQ6IDYwMDtcbiAgICAgIHBhZGRpbmc6IDJweCA1cHg7XG4gICAgICBib3JkZXItcmFkaXVzOiA0cHg7XG4gICAgICB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlO1xuICAgIH1cblxuICAgIC5wLWNyaXRpY2FsIHsgYmFja2dyb3VuZDogcmdiYSgyMzksIDY4LCA2OCwgMC4yKTsgY29sb3I6ICNlZjQ0NDQ7IH1cbiAgICAucC1oaWdoIHsgYmFja2dyb3VuZDogcmdiYSgyNDUsIDE1OCwgMTEsIDAuMik7IGNvbG9yOiAjZjU5ZTBiOyB9XG4gICAgLnAtbWVkaXVtIHsgYmFja2dyb3VuZDogcmdiYSg1OSwgMTMwLCAyNDYsIDAuMik7IGNvbG9yOiAjM2I4MmY2OyB9XG4gICAgLnAtbG93IHsgYmFja2dyb3VuZDogcmdiYSgxMzYsIDEzNiwgMTM2LCAwLjIpOyBjb2xvcjogIzg4ODsgfVxuXG4gICAgLmlzc3VlLXRpdGxlIHtcbiAgICAgIGZvbnQtc2l6ZTogMTJweDtcbiAgICAgIGZvbnQtd2VpZ2h0OiA1MDA7XG4gICAgICBjb2xvcjogI2UwZTBlMDtcbiAgICAgIGxpbmUtaGVpZ2h0OiAxLjQ7XG4gICAgICBtYXJnaW4tYm90dG9tOiA2cHg7XG4gICAgICB3aGl0ZS1zcGFjZTogbm93cmFwO1xuICAgICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgICAgIHRleHQtb3ZlcmZsb3c6IGVsbGlwc2lzO1xuICAgIH1cblxuICAgIC5hc3NpZ25lZSB7XG4gICAgICBkaXNwbGF5OiBpbmxpbmUtZmxleDtcbiAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgICBnYXA6IDRweDtcbiAgICAgIGZvbnQtc2l6ZTogMTBweDtcbiAgICAgIGNvbG9yOiAjODg4O1xuICAgICAgZm9udC13ZWlnaHQ6IDUwMDtcbiAgICB9XG5cbiAgICAuYXNzaWduZWUtaWNvbiB7XG4gICAgICBmb250LXNpemU6IDEycHg7XG4gICAgICB3aWR0aDogMTJweDtcbiAgICAgIGhlaWdodDogMTJweDtcbiAgICAgIGNvbG9yOiAjNjY2O1xuICAgIH1cblxuICAgIC5hc3NpZ25lZS1hdmF0YXIge1xuICAgICAgd2lkdGg6IDE0cHg7XG4gICAgICBoZWlnaHQ6IDE0cHg7XG4gICAgICBib3JkZXItcmFkaXVzOiA1MCU7XG4gICAgICBvYmplY3QtZml0OiBjb3ZlcjtcbiAgICAgIGJvcmRlcjogMXB4IHNvbGlkIHJnYmEoMjU1LCAyNTUsIDI1NSwgMC4xKTtcbiAgICB9XG5cbiAgICAuZGVwcyB7XG4gICAgICBtYXJnaW4tdG9wOiA2cHg7XG4gICAgICBwYWRkaW5nLXRvcDogNnB4O1xuICAgICAgYm9yZGVyLXRvcDogMXB4IHNvbGlkIHJnYmEoNTEsIDUxLCA1MSwgMC41KTtcbiAgICAgIGZvbnQtc2l6ZTogMTBweDtcbiAgICAgIGNvbG9yOiAjZmY3OWM2O1xuICAgICAgZm9udC13ZWlnaHQ6IDUwMDtcbiAgICB9XG4gICAgLmNvb3JkcyB7XG4gICAgICBtYXJnaW4tdG9wOiA0cHg7XG4gICAgICBmb250LXNpemU6IDlweDtcbiAgICAgIGNvbG9yOiAjNjY2O1xuICAgICAgZm9udC1mYW1pbHk6ICdTRiBNb25vJywgTW9uYWNvLCBtb25vc3BhY2U7XG4gICAgfVxuICBgXVxufSlcbmV4cG9ydCBjbGFzcyBJc3N1ZU5vZGVDb21wb25lbnQge1xuICBASW5wdXQoKSBkYXRhITogSXNzdWVOb2RlRGF0YTtcblxuICBnZXQgaGFzRGVwcygpOiBib29sZWFuIHtcbiAgICByZXR1cm4gISF0aGlzLmRhdGEuYmxvY2tlZEJ5Py5sZW5ndGg7XG4gIH1cbn1cbiJdfQ==","import { IssueNodeComponent } from './issue.node';\nexport const issueNodeMeta = {\n title: 'Flow Issue Node',\n group: 'molecules',\n component: IssueNodeComponent,\n viewport: { width: 260, height: 180 },\n variants: [\n {\n name: 'open',\n inputs: {\n data: {\n id: '123',\n title: 'Fix authentication bug',\n status: 'open',\n priority: 'high',\n assignee: 'dev-001',\n },\n },\n },\n {\n name: 'in progress',\n inputs: {\n data: {\n id: '456',\n title: 'Implement dark mode',\n status: 'in_progress',\n priority: 'medium',\n assignee: 'dev-002',\n },\n },\n },\n {\n name: 'closed',\n inputs: {\n data: {\n id: '789',\n title: 'Update dependencies',\n status: 'closed',\n priority: 'low',\n assignee: 'dev-003',\n },\n },\n },\n {\n name: 'blocked',\n inputs: {\n data: {\n id: '101',\n title: 'Deploy to production',\n status: 'blocked',\n priority: 'critical',\n assignee: 'ops-001',\n blockedBy: ['456', '789'],\n },\n },\n },\n {\n name: 'with avatar',\n inputs: {\n data: {\n id: '202',\n title: 'Code review needed',\n status: 'open',\n priority: 'high',\n assignee: 'reviewer',\n assigneeIcon: 'https://api.dicebear.com/7.x/avataaars/svg?seed=Review',\n },\n },\n },\n ],\n};\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaXNzdWUubm9kZS5tZXRhLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vcGFja2FnZXMvQHh4bWFjaGluYS9jb21wb25lbnRzL3NyYy9saWIvdGVtcGxhdGVzL2Zsb3cvbm9kZXMvaXNzdWUvaXNzdWUubm9kZS5tZXRhLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUNBLE9BQU8sRUFBRSxrQkFBa0IsRUFBaUIsTUFBTSxjQUFjLENBQUM7QUFXakUsTUFBTSxDQUFDLE1BQU0sYUFBYSxHQUFrQjtJQUMxQyxLQUFLLEVBQUUsaUJBQWlCO0lBQ3hCLEtBQUssRUFBRSxXQUFXO0lBQ2xCLFNBQVMsRUFBRSxrQkFBa0I7SUFDN0IsUUFBUSxFQUFFLEVBQUUsS0FBSyxFQUFFLEdBQUcsRUFBRSxNQUFNLEVBQUUsR0FBRyxFQUFFO0lBQ3JDLFFBQVEsRUFBRTtRQUNSO1lBQ0UsSUFBSSxFQUFFLE1BQU07WUFDWixNQUFNLEVBQUU7Z0JBQ04sSUFBSSxFQUFFO29CQUNKLEVBQUUsRUFBRSxLQUFLO29CQUNULEtBQUssRUFBRSx3QkFBd0I7b0JBQy9CLE1BQU0sRUFBRSxNQUFNO29CQUNkLFFBQVEsRUFBRSxNQUFNO29CQUNoQixRQUFRLEVBQUUsU0FBUztpQkFDSDthQUNuQjtTQUNGO1FBQ0Q7WUFDRSxJQUFJLEVBQUUsYUFBYTtZQUNuQixNQUFNLEVBQUU7Z0JBQ04sSUFBSSxFQUFFO29CQUNKLEVBQUUsRUFBRSxLQUFLO29CQUNULEtBQUssRUFBRSxxQkFBcUI7b0JBQzVCLE1BQU0sRUFBRSxhQUFhO29CQUNyQixRQUFRLEVBQUUsUUFBUTtvQkFDbEIsUUFBUSxFQUFFLFNBQVM7aUJBQ0g7YUFDbkI7U0FDRjtRQUNEO1lBQ0UsSUFBSSxFQUFFLFFBQVE7WUFDZCxNQUFNLEVBQUU7Z0JBQ04sSUFBSSxFQUFFO29CQUNKLEVBQUUsRUFBRSxLQUFLO29CQUNULEtBQUssRUFBRSxxQkFBcUI7b0JBQzVCLE1BQU0sRUFBRSxRQUFRO29CQUNoQixRQUFRLEVBQUUsS0FBSztvQkFDZixRQUFRLEVBQUUsU0FBUztpQkFDSDthQUNuQjtTQUNGO1FBQ0Q7WUFDRSxJQUFJLEVBQUUsU0FBUztZQUNmLE1BQU0sRUFBRTtnQkFDTixJQUFJLEVBQUU7b0JBQ0osRUFBRSxFQUFFLEtBQUs7b0JBQ1QsS0FBSyxFQUFFLHNCQUFzQjtvQkFDN0IsTUFBTSxFQUFFLFNBQVM7b0JBQ2pCLFFBQVEsRUFBRSxVQUFVO29CQUNwQixRQUFRLEVBQUUsU0FBUztvQkFDbkIsU0FBUyxFQUFFLENBQUMsS0FBSyxFQUFFLEtBQUssQ0FBQztpQkFDVDthQUNuQjtTQUNGO1FBQ0Q7WUFDRSxJQUFJLEVBQUUsYUFBYTtZQUNuQixNQUFNLEVBQUU7Z0JBQ04sSUFBSSxFQUFFO29CQUNKLEVBQUUsRUFBRSxLQUFLO29CQUNULEtBQUssRUFBRSxvQkFBb0I7b0JBQzNCLE1BQU0sRUFBRSxNQUFNO29CQUNkLFFBQVEsRUFBRSxNQUFNO29CQUNoQixRQUFRLEVBQUUsVUFBVTtvQkFDcEIsWUFBWSxFQUFFLHdEQUF3RDtpQkFDdEQ7YUFDbkI7U0FDRjtLQUNGO0NBQ0YsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IFR5cGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IElzc3VlTm9kZUNvbXBvbmVudCwgSXNzdWVOb2RlRGF0YSB9IGZyb20gJy4vaXNzdWUubm9kZSc7XG5cbmludGVyZmFjZSBDb21wb25lbnRNZXRhPFQgPSB1bmtub3duPiB7XG4gIHRpdGxlOiBzdHJpbmc7XG4gIGdyb3VwPzogJ2F0b21zJyB8ICdtb2xlY3VsZXMnIHwgJ29yZ2FuaXNtcycgfCAndGVtcGxhdGVzJyB8ICdwcmVzZW50ZXJzJyB8ICdleHRyYXMnO1xuICBjb21wb25lbnQ6IFR5cGU8VD47XG4gIGlucHV0cz86IFJlY29yZDxzdHJpbmcsIHVua25vd24+O1xuICB2aWV3cG9ydD86IHsgd2lkdGg/OiBudW1iZXI7IGhlaWdodD86IG51bWJlciB9O1xuICB2YXJpYW50cz86IHsgbmFtZTogc3RyaW5nOyBpbnB1dHM6IFJlY29yZDxzdHJpbmcsIHVua25vd24+IH1bXTtcbn1cblxuZXhwb3J0IGNvbnN0IGlzc3VlTm9kZU1ldGE6IENvbXBvbmVudE1ldGEgPSB7XG4gIHRpdGxlOiAnRmxvdyBJc3N1ZSBOb2RlJyxcbiAgZ3JvdXA6ICdtb2xlY3VsZXMnLFxuICBjb21wb25lbnQ6IElzc3VlTm9kZUNvbXBvbmVudCxcbiAgdmlld3BvcnQ6IHsgd2lkdGg6IDI2MCwgaGVpZ2h0OiAxODAgfSxcbiAgdmFyaWFudHM6IFtcbiAgICB7XG4gICAgICBuYW1lOiAnb3BlbicsXG4gICAgICBpbnB1dHM6IHtcbiAgICAgICAgZGF0YToge1xuICAgICAgICAgIGlkOiAnMTIzJyxcbiAgICAgICAgICB0aXRsZTogJ0ZpeCBhdXRoZW50aWNhdGlvbiBidWcnLFxuICAgICAgICAgIHN0YXR1czogJ29wZW4nLFxuICAgICAgICAgIHByaW9yaXR5OiAnaGlnaCcsXG4gICAgICAgICAgYXNzaWduZWU6ICdkZXYtMDAxJyxcbiAgICAgICAgfSBhcyBJc3N1ZU5vZGVEYXRhLFxuICAgICAgfSxcbiAgICB9LFxuICAgIHtcbiAgICAgIG5hbWU6ICdpbiBwcm9ncmVzcycsXG4gICAgICBpbnB1dHM6IHtcbiAgICAgICAgZGF0YToge1xuICAgICAgICAgIGlkOiAnNDU2JyxcbiAgICAgICAgICB0aXRsZTogJ0ltcGxlbWVudCBkYXJrIG1vZGUnLFxuICAgICAgICAgIHN0YXR1czogJ2luX3Byb2dyZXNzJyxcbiAgICAgICAgICBwcmlvcml0eTogJ21lZGl1bScsXG4gICAgICAgICAgYXNzaWduZWU6ICdkZXYtMDAyJyxcbiAgICAgICAgfSBhcyBJc3N1ZU5vZGVEYXRhLFxuICAgICAgfSxcbiAgICB9LFxuICAgIHtcbiAgICAgIG5hbWU6ICdjbG9zZWQnLFxuICAgICAgaW5wdXRzOiB7XG4gICAgICAgIGRhdGE6IHtcbiAgICAgICAgICBpZDogJzc4OScsXG4gICAgICAgICAgdGl0bGU6ICdVcGRhdGUgZGVwZW5kZW5jaWVzJyxcbiAgICAgICAgICBzdGF0dXM6ICdjbG9zZWQnLFxuICAgICAgICAgIHByaW9yaXR5OiAnbG93JyxcbiAgICAgICAgICBhc3NpZ25lZTogJ2Rldi0wMDMnLFxuICAgICAgICB9IGFzIElzc3VlTm9kZURhdGEsXG4gICAgICB9LFxuICAgIH0sXG4gICAge1xuICAgICAgbmFtZTogJ2Jsb2NrZWQnLFxuICAgICAgaW5wdXRzOiB7XG4gICAgICAgIGRhdGE6IHtcbiAgICAgICAgICBpZDogJzEwMScsXG4gICAgICAgICAgdGl0bGU6ICdEZXBsb3kgdG8gcHJvZHVjdGlvbicsXG4gICAgICAgICAgc3RhdHVzOiAnYmxvY2tlZCcsXG4gICAgICAgICAgcHJpb3JpdHk6ICdjcml0aWNhbCcsXG4gICAgICAgICAgYXNzaWduZWU6ICdvcHMtMDAxJyxcbiAgICAgICAgICBibG9ja2VkQnk6IFsnNDU2JywgJzc4OSddLFxuICAgICAgICB9IGFzIElzc3VlTm9kZURhdGEsXG4gICAgICB9LFxuICAgIH0sXG4gICAge1xuICAgICAgbmFtZTogJ3dpdGggYXZhdGFyJyxcbiAgICAgIGlucHV0czoge1xuICAgICAgICBkYXRhOiB7XG4gICAgICAgICAgaWQ6ICcyMDInLFxuICAgICAgICAgIHRpdGxlOiAnQ29kZSByZXZpZXcgbmVlZGVkJyxcbiAgICAgICAgICBzdGF0dXM6ICdvcGVuJyxcbiAgICAgICAgICBwcmlvcml0eTogJ2hpZ2gnLFxuICAgICAgICAgIGFzc2lnbmVlOiAncmV2aWV3ZXInLFxuICAgICAgICAgIGFzc2lnbmVlSWNvbjogJ2h0dHBzOi8vYXBpLmRpY2ViZWFyLmNvbS83LngvYXZhdGFhYXJzL3N2Zz9zZWVkPVJldmlldycsXG4gICAgICAgIH0gYXMgSXNzdWVOb2RlRGF0YSxcbiAgICAgIH0sXG4gICAgfSxcbiAgXSxcbn07XG4iXX0=","/**\n * Generated bundle index. Do not edit.\n */\nexport * from './index';\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoieHhtYWNoaW5hLWNvbXBvbmVudHMtdGVtcGxhdGVzLWZsb3ctbm9kZXMtaXNzdWUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9AeHhtYWNoaW5hL2NvbXBvbmVudHMvc3JjL2xpYi90ZW1wbGF0ZXMvZmxvdy9ub2Rlcy9pc3N1ZS94eG1hY2hpbmEtY29tcG9uZW50cy10ZW1wbGF0ZXMtZmxvdy1ub2Rlcy1pc3N1ZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7R0FFRztBQUVILGNBQWMsU0FBUyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBHZW5lcmF0ZWQgYnVuZGxlIGluZGV4LiBEbyBub3QgZWRpdC5cbiAqL1xuXG5leHBvcnQgKiBmcm9tICcuL2luZGV4JztcbiJdfQ=="],"names":[],"mappings":"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"}
@@ -0,0 +1,154 @@
1
+ import * as i0 from '@angular/core';
2
+ import { Input, Component } from '@angular/core';
3
+ import { CommonModule } from '@angular/common';
4
+ import * as i1 from '@angular/material/icon';
5
+ import { MatIconModule } from '@angular/material/icon';
6
+
7
+ class TaskNodeComponent {
8
+ data;
9
+ get hasDeps() {
10
+ return !!this.data.task?.dependsOn?.length;
11
+ }
12
+ getStatusLabel(status) {
13
+ const labels = {
14
+ 'completed': 'DONE',
15
+ 'in_progress': 'WIP',
16
+ 'pending': 'TODO',
17
+ };
18
+ return labels[status || ''] || status?.toUpperCase() || '';
19
+ }
20
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.0.5", ngImport: i0, type: TaskNodeComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
21
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "20.0.5", type: TaskNodeComponent, isStandalone: true, selector: "flow-task-node", inputs: { data: "data" }, ngImport: i0, template: `
22
+ <div class="task-node" [class]="'s-' + data.status" [class.has-deps]="hasDeps">
23
+ <div class="task-header">
24
+ <span class="dot"></span>
25
+ <span class="task-id">{{ data.task?.id?.slice(0, 8) }}</span>
26
+ <span class="status-badge">{{ getStatusLabel(data.status) }}</span>
27
+ </div>
28
+ <div class="task-title">{{ data.label }}</div>
29
+ @if (data.task?.result) {
30
+ <div class="task-result">{{ data.task.result }}</div>
31
+ }
32
+ <div class="task-footer">
33
+ @if (data.assignee) {
34
+ <span class="assignee">
35
+ @if (data.assigneeIcon) {
36
+ <img [src]="data.assigneeIcon" class="assignee-avatar" alt="" />
37
+ } @else {
38
+ <mat-icon class="assignee-icon">person</mat-icon>
39
+ }
40
+ {{ data.assignee }}
41
+ </span>
42
+ }
43
+ @if (hasDeps) {
44
+ <span class="deps">依存: {{ data.task?.dependsOn?.length }}</span>
45
+ }
46
+ </div>
47
+ </div>
48
+ `, isInline: true, styles: [":host{display:block;width:200px}.task-node{background:#1a1a1a;border:1px solid rgba(51,51,51,.8);border-radius:8px;padding:12px;font-family:SF Mono,Monaco,monospace;transition:all .2s ease;box-shadow:0 4px 12px #0006}.task-node:hover{transform:translateY(-2px);box-shadow:0 8px 24px #00000080;border-color:#505050cc}.task-node.s-completed{border-color:#10b98199}.task-node.s-in_progress{border-color:#3b82f699}.task-node.s-pending{border-color:#8889}.task-node.has-deps{border-style:dashed}.task-header{display:flex;align-items:center;gap:6px;margin-bottom:8px}.dot{width:8px;height:8px;border-radius:50%;flex-shrink:0;box-shadow:0 0 8px currentColor}.s-completed .dot{background:#10b981;color:#10b981}.s-in_progress .dot{background:#3b82f6;color:#3b82f6;animation:pulse 2s infinite}.s-pending .dot{background:#888;color:#888}@keyframes pulse{0%,to{box-shadow:0 0 4px #3b82f666}50%{box-shadow:0 0 12px #3b82f6cc}}.task-id{font-size:10px;font-weight:500;color:#888;font-family:SF Mono,Monaco,monospace;background:#ffffff0d;padding:2px 6px;border-radius:4px}.status-badge{margin-left:auto;font-size:9px;font-weight:600;padding:2px 6px;border-radius:4px;text-transform:uppercase;letter-spacing:.5px}.s-completed .status-badge{background:#10b98133;color:#10b981}.s-in_progress .status-badge{background:#3b82f633;color:#3b82f6}.s-pending .status-badge{background:#8883;color:#888}.task-title{font-size:13px;font-weight:500;color:#e0e0e0;line-height:1.4;margin-bottom:8px;overflow:hidden;text-overflow:ellipsis;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical}.task-result{font-size:11px;color:#888;background:#ffffff08;padding:6px 8px;border-radius:4px;margin-bottom:8px;border:1px solid rgba(51,51,51,.5)}.task-footer{display:flex;align-items:center;justify-content:space-between;padding-top:8px;border-top:1px solid rgba(51,51,51,.5);font-size:11px}.assignee{display:inline-flex;align-items:center;gap:4px;color:#888;font-weight:500}.assignee-icon{font-size:14px;width:14px;height:14px;color:#666}.assignee-avatar{width:18px;height:18px;border-radius:50%;object-fit:cover;border:1px solid rgba(255,255,255,.1)}.deps{font-size:10px;color:#ff79c6;font-weight:500}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "ngmodule", type: MatIconModule }, { kind: "component", type: i1.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }] });
49
+ }
50
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.0.5", ngImport: i0, type: TaskNodeComponent, decorators: [{
51
+ type: Component,
52
+ args: [{ selector: 'flow-task-node', standalone: true, imports: [CommonModule, MatIconModule], template: `
53
+ <div class="task-node" [class]="'s-' + data.status" [class.has-deps]="hasDeps">
54
+ <div class="task-header">
55
+ <span class="dot"></span>
56
+ <span class="task-id">{{ data.task?.id?.slice(0, 8) }}</span>
57
+ <span class="status-badge">{{ getStatusLabel(data.status) }}</span>
58
+ </div>
59
+ <div class="task-title">{{ data.label }}</div>
60
+ @if (data.task?.result) {
61
+ <div class="task-result">{{ data.task.result }}</div>
62
+ }
63
+ <div class="task-footer">
64
+ @if (data.assignee) {
65
+ <span class="assignee">
66
+ @if (data.assigneeIcon) {
67
+ <img [src]="data.assigneeIcon" class="assignee-avatar" alt="" />
68
+ } @else {
69
+ <mat-icon class="assignee-icon">person</mat-icon>
70
+ }
71
+ {{ data.assignee }}
72
+ </span>
73
+ }
74
+ @if (hasDeps) {
75
+ <span class="deps">依存: {{ data.task?.dependsOn?.length }}</span>
76
+ }
77
+ </div>
78
+ </div>
79
+ `, styles: [":host{display:block;width:200px}.task-node{background:#1a1a1a;border:1px solid rgba(51,51,51,.8);border-radius:8px;padding:12px;font-family:SF Mono,Monaco,monospace;transition:all .2s ease;box-shadow:0 4px 12px #0006}.task-node:hover{transform:translateY(-2px);box-shadow:0 8px 24px #00000080;border-color:#505050cc}.task-node.s-completed{border-color:#10b98199}.task-node.s-in_progress{border-color:#3b82f699}.task-node.s-pending{border-color:#8889}.task-node.has-deps{border-style:dashed}.task-header{display:flex;align-items:center;gap:6px;margin-bottom:8px}.dot{width:8px;height:8px;border-radius:50%;flex-shrink:0;box-shadow:0 0 8px currentColor}.s-completed .dot{background:#10b981;color:#10b981}.s-in_progress .dot{background:#3b82f6;color:#3b82f6;animation:pulse 2s infinite}.s-pending .dot{background:#888;color:#888}@keyframes pulse{0%,to{box-shadow:0 0 4px #3b82f666}50%{box-shadow:0 0 12px #3b82f6cc}}.task-id{font-size:10px;font-weight:500;color:#888;font-family:SF Mono,Monaco,monospace;background:#ffffff0d;padding:2px 6px;border-radius:4px}.status-badge{margin-left:auto;font-size:9px;font-weight:600;padding:2px 6px;border-radius:4px;text-transform:uppercase;letter-spacing:.5px}.s-completed .status-badge{background:#10b98133;color:#10b981}.s-in_progress .status-badge{background:#3b82f633;color:#3b82f6}.s-pending .status-badge{background:#8883;color:#888}.task-title{font-size:13px;font-weight:500;color:#e0e0e0;line-height:1.4;margin-bottom:8px;overflow:hidden;text-overflow:ellipsis;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical}.task-result{font-size:11px;color:#888;background:#ffffff08;padding:6px 8px;border-radius:4px;margin-bottom:8px;border:1px solid rgba(51,51,51,.5)}.task-footer{display:flex;align-items:center;justify-content:space-between;padding-top:8px;border-top:1px solid rgba(51,51,51,.5);font-size:11px}.assignee{display:inline-flex;align-items:center;gap:4px;color:#888;font-weight:500}.assignee-icon{font-size:14px;width:14px;height:14px;color:#666}.assignee-avatar{width:18px;height:18px;border-radius:50%;object-fit:cover;border:1px solid rgba(255,255,255,.1)}.deps{font-size:10px;color:#ff79c6;font-weight:500}\n"] }]
80
+ }], propDecorators: { data: [{
81
+ type: Input
82
+ }] } });
83
+
84
+ const taskNodeMeta = {
85
+ title: 'Flow Task Node',
86
+ group: 'molecules',
87
+ component: TaskNodeComponent,
88
+ viewport: { width: 300, height: 200 },
89
+ variants: [
90
+ {
91
+ name: 'completed',
92
+ inputs: {
93
+ data: {
94
+ label: 'Implement user authentication',
95
+ status: 'completed',
96
+ assignee: 'dev-001',
97
+ task: {
98
+ id: 'abc12345-6789-0123-4567-890abcdef012',
99
+ result: 'OAuth2 implemented',
100
+ },
101
+ },
102
+ },
103
+ },
104
+ {
105
+ name: 'in progress',
106
+ inputs: {
107
+ data: {
108
+ label: 'Build API endpoints',
109
+ status: 'in_progress',
110
+ assignee: 'dev-002',
111
+ task: {
112
+ id: 'def12345-6789-0123-4567-890abcdef012',
113
+ dependsOn: ['abc12345'],
114
+ },
115
+ },
116
+ },
117
+ },
118
+ {
119
+ name: 'pending',
120
+ inputs: {
121
+ data: {
122
+ label: 'Write unit tests',
123
+ status: 'pending',
124
+ assignee: 'dev-003',
125
+ task: {
126
+ id: 'ghi12345-6789-0123-4567-890abcdef012',
127
+ },
128
+ },
129
+ },
130
+ },
131
+ {
132
+ name: 'with avatar',
133
+ inputs: {
134
+ data: {
135
+ label: 'Integration testing',
136
+ status: 'in_progress',
137
+ assignee: 'qa-team',
138
+ assigneeIcon: 'https://api.dicebear.com/7.x/avataaars/svg?seed=Felix',
139
+ task: {
140
+ id: 'jkl12345-6789-0123-4567-890abcdef012',
141
+ dependsOn: ['abc12345', 'def12345'],
142
+ },
143
+ },
144
+ },
145
+ },
146
+ ],
147
+ };
148
+
149
+ /**
150
+ * Generated bundle index. Do not edit.
151
+ */
152
+
153
+ export { TaskNodeComponent, taskNodeMeta };
154
+ //# sourceMappingURL=xxmachina-components-templates-flow-nodes-task.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"xxmachina-components-templates-flow-nodes-task.mjs","sources":["../tmp-esm2022/templates/flow/nodes/task/task.component.js","../tmp-esm2022/templates/flow/nodes/task/task.component.meta.js","../tmp-esm2022/templates/flow/nodes/task/xxmachina-components-templates-flow-nodes-task.js"],"sourcesContent":["import { Component, Input } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { MatIconModule } from '@angular/material/icon';\nimport * as i0 from \"@angular/core\";\nimport * as i1 from \"@angular/material/icon\";\nexport class TaskNodeComponent {\n data;\n get hasDeps() {\n return !!this.data.task?.dependsOn?.length;\n }\n getStatusLabel(status) {\n const labels = {\n 'completed': 'DONE',\n 'in_progress': 'WIP',\n 'pending': 'TODO',\n };\n return labels[status || ''] || status?.toUpperCase() || '';\n }\n static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.0.5\", ngImport: i0, type: TaskNodeComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });\n static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: \"17.0.0\", version: \"20.0.5\", type: TaskNodeComponent, isStandalone: true, selector: \"flow-task-node\", inputs: { data: \"data\" }, ngImport: i0, template: `\n <div class=\"task-node\" [class]=\"'s-' + data.status\" [class.has-deps]=\"hasDeps\">\n <div class=\"task-header\">\n <span class=\"dot\"></span>\n <span class=\"task-id\">{{ data.task?.id?.slice(0, 8) }}</span>\n <span class=\"status-badge\">{{ getStatusLabel(data.status) }}</span>\n </div>\n <div class=\"task-title\">{{ data.label }}</div>\n @if (data.task?.result) {\n <div class=\"task-result\">{{ data.task.result }}</div>\n }\n <div class=\"task-footer\">\n @if (data.assignee) {\n <span class=\"assignee\">\n @if (data.assigneeIcon) {\n <img [src]=\"data.assigneeIcon\" class=\"assignee-avatar\" alt=\"\" />\n } @else {\n <mat-icon class=\"assignee-icon\">person</mat-icon>\n }\n {{ data.assignee }}\n </span>\n }\n @if (hasDeps) {\n <span class=\"deps\">依存: {{ data.task?.dependsOn?.length }}</span>\n }\n </div>\n </div>\n `, isInline: true, styles: [\":host{display:block;width:200px}.task-node{background:#1a1a1a;border:1px solid rgba(51,51,51,.8);border-radius:8px;padding:12px;font-family:SF Mono,Monaco,monospace;transition:all .2s ease;box-shadow:0 4px 12px #0006}.task-node:hover{transform:translateY(-2px);box-shadow:0 8px 24px #00000080;border-color:#505050cc}.task-node.s-completed{border-color:#10b98199}.task-node.s-in_progress{border-color:#3b82f699}.task-node.s-pending{border-color:#8889}.task-node.has-deps{border-style:dashed}.task-header{display:flex;align-items:center;gap:6px;margin-bottom:8px}.dot{width:8px;height:8px;border-radius:50%;flex-shrink:0;box-shadow:0 0 8px currentColor}.s-completed .dot{background:#10b981;color:#10b981}.s-in_progress .dot{background:#3b82f6;color:#3b82f6;animation:pulse 2s infinite}.s-pending .dot{background:#888;color:#888}@keyframes pulse{0%,to{box-shadow:0 0 4px #3b82f666}50%{box-shadow:0 0 12px #3b82f6cc}}.task-id{font-size:10px;font-weight:500;color:#888;font-family:SF Mono,Monaco,monospace;background:#ffffff0d;padding:2px 6px;border-radius:4px}.status-badge{margin-left:auto;font-size:9px;font-weight:600;padding:2px 6px;border-radius:4px;text-transform:uppercase;letter-spacing:.5px}.s-completed .status-badge{background:#10b98133;color:#10b981}.s-in_progress .status-badge{background:#3b82f633;color:#3b82f6}.s-pending .status-badge{background:#8883;color:#888}.task-title{font-size:13px;font-weight:500;color:#e0e0e0;line-height:1.4;margin-bottom:8px;overflow:hidden;text-overflow:ellipsis;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical}.task-result{font-size:11px;color:#888;background:#ffffff08;padding:6px 8px;border-radius:4px;margin-bottom:8px;border:1px solid rgba(51,51,51,.5)}.task-footer{display:flex;align-items:center;justify-content:space-between;padding-top:8px;border-top:1px solid rgba(51,51,51,.5);font-size:11px}.assignee{display:inline-flex;align-items:center;gap:4px;color:#888;font-weight:500}.assignee-icon{font-size:14px;width:14px;height:14px;color:#666}.assignee-avatar{width:18px;height:18px;border-radius:50%;object-fit:cover;border:1px solid rgba(255,255,255,.1)}.deps{font-size:10px;color:#ff79c6;font-weight:500}\\n\"], dependencies: [{ kind: \"ngmodule\", type: CommonModule }, { kind: \"ngmodule\", type: MatIconModule }, { kind: \"component\", type: i1.MatIcon, selector: \"mat-icon\", inputs: [\"color\", \"inline\", \"svgIcon\", \"fontSet\", \"fontIcon\"], exportAs: [\"matIcon\"] }] });\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.0.5\", ngImport: i0, type: TaskNodeComponent, decorators: [{\n type: Component,\n args: [{ selector: 'flow-task-node', standalone: true, imports: [CommonModule, MatIconModule], template: `\n <div class=\"task-node\" [class]=\"'s-' + data.status\" [class.has-deps]=\"hasDeps\">\n <div class=\"task-header\">\n <span class=\"dot\"></span>\n <span class=\"task-id\">{{ data.task?.id?.slice(0, 8) }}</span>\n <span class=\"status-badge\">{{ getStatusLabel(data.status) }}</span>\n </div>\n <div class=\"task-title\">{{ data.label }}</div>\n @if (data.task?.result) {\n <div class=\"task-result\">{{ data.task.result }}</div>\n }\n <div class=\"task-footer\">\n @if (data.assignee) {\n <span class=\"assignee\">\n @if (data.assigneeIcon) {\n <img [src]=\"data.assigneeIcon\" class=\"assignee-avatar\" alt=\"\" />\n } @else {\n <mat-icon class=\"assignee-icon\">person</mat-icon>\n }\n {{ data.assignee }}\n </span>\n }\n @if (hasDeps) {\n <span class=\"deps\">依存: {{ data.task?.dependsOn?.length }}</span>\n }\n </div>\n </div>\n `, styles: [\":host{display:block;width:200px}.task-node{background:#1a1a1a;border:1px solid rgba(51,51,51,.8);border-radius:8px;padding:12px;font-family:SF Mono,Monaco,monospace;transition:all .2s ease;box-shadow:0 4px 12px #0006}.task-node:hover{transform:translateY(-2px);box-shadow:0 8px 24px #00000080;border-color:#505050cc}.task-node.s-completed{border-color:#10b98199}.task-node.s-in_progress{border-color:#3b82f699}.task-node.s-pending{border-color:#8889}.task-node.has-deps{border-style:dashed}.task-header{display:flex;align-items:center;gap:6px;margin-bottom:8px}.dot{width:8px;height:8px;border-radius:50%;flex-shrink:0;box-shadow:0 0 8px currentColor}.s-completed .dot{background:#10b981;color:#10b981}.s-in_progress .dot{background:#3b82f6;color:#3b82f6;animation:pulse 2s infinite}.s-pending .dot{background:#888;color:#888}@keyframes pulse{0%,to{box-shadow:0 0 4px #3b82f666}50%{box-shadow:0 0 12px #3b82f6cc}}.task-id{font-size:10px;font-weight:500;color:#888;font-family:SF Mono,Monaco,monospace;background:#ffffff0d;padding:2px 6px;border-radius:4px}.status-badge{margin-left:auto;font-size:9px;font-weight:600;padding:2px 6px;border-radius:4px;text-transform:uppercase;letter-spacing:.5px}.s-completed .status-badge{background:#10b98133;color:#10b981}.s-in_progress .status-badge{background:#3b82f633;color:#3b82f6}.s-pending .status-badge{background:#8883;color:#888}.task-title{font-size:13px;font-weight:500;color:#e0e0e0;line-height:1.4;margin-bottom:8px;overflow:hidden;text-overflow:ellipsis;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical}.task-result{font-size:11px;color:#888;background:#ffffff08;padding:6px 8px;border-radius:4px;margin-bottom:8px;border:1px solid rgba(51,51,51,.5)}.task-footer{display:flex;align-items:center;justify-content:space-between;padding-top:8px;border-top:1px solid rgba(51,51,51,.5);font-size:11px}.assignee{display:inline-flex;align-items:center;gap:4px;color:#888;font-weight:500}.assignee-icon{font-size:14px;width:14px;height:14px;color:#666}.assignee-avatar{width:18px;height:18px;border-radius:50%;object-fit:cover;border:1px solid rgba(255,255,255,.1)}.deps{font-size:10px;color:#ff79c6;font-weight:500}\\n\"] }]\n }], propDecorators: { data: [{\n type: Input\n }] } });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGFzay5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9AeHhtYWNoaW5hL2NvbXBvbmVudHMvc3JjL2xpYi90ZW1wbGF0ZXMvZmxvdy9ub2Rlcy90YXNrL3Rhc2suY29tcG9uZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsS0FBSyxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ2pELE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUMvQyxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sd0JBQXdCLENBQUM7OztBQWdMdkQsTUFBTSxPQUFPLGlCQUFpQjtJQUNuQixJQUFJLENBQWdCO0lBRTdCLElBQUksT0FBTztRQUNULE9BQU8sQ0FBQyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsSUFBSSxFQUFFLFNBQVMsRUFBRSxNQUFNLENBQUM7SUFDN0MsQ0FBQztJQUVELGNBQWMsQ0FBQyxNQUFlO1FBQzVCLE1BQU0sTUFBTSxHQUEyQjtZQUNyQyxXQUFXLEVBQUUsTUFBTTtZQUNuQixhQUFhLEVBQUUsS0FBSztZQUNwQixTQUFTLEVBQUUsTUFBTTtTQUNsQixDQUFDO1FBQ0YsT0FBTyxNQUFNLENBQUMsTUFBTSxJQUFJLEVBQUUsQ0FBQyxJQUFJLE1BQU0sRUFBRSxXQUFXLEVBQUUsSUFBSSxFQUFFLENBQUM7SUFDN0QsQ0FBQzt1R0FkVSxpQkFBaUI7MkZBQWpCLGlCQUFpQixvR0FsS2xCOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7R0EyQlQsNnNFQTVCUyxZQUFZLDhCQUFFLGFBQWE7OzJGQW1LMUIsaUJBQWlCO2tCQXRLN0IsU0FBUzsrQkFDRSxnQkFBZ0IsY0FDZCxJQUFJLFdBQ1AsQ0FBQyxZQUFZLEVBQUUsYUFBYSxDQUFDLFlBQzVCOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7R0EyQlQ7OEJBd0lRLElBQUk7c0JBQVosS0FBSyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgSW5wdXQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IENvbW1vbk1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XG5pbXBvcnQgeyBNYXRJY29uTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvaWNvbic7XG5cbmV4cG9ydCBpbnRlcmZhY2UgVGFza05vZGVEYXRhIHtcbiAgbGFiZWw6IHN0cmluZztcbiAgc3RhdHVzPzogc3RyaW5nO1xuICBhc3NpZ25lZT86IHN0cmluZztcbiAgYXNzaWduZWVJY29uPzogc3RyaW5nO1xuICB0YXNrPzogYW55O1xufVxuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdmbG93LXRhc2stbm9kZScsXG4gIHN0YW5kYWxvbmU6IHRydWUsXG4gIGltcG9ydHM6IFtDb21tb25Nb2R1bGUsIE1hdEljb25Nb2R1bGVdLFxuICB0ZW1wbGF0ZTogYFxuICAgIDxkaXYgY2xhc3M9XCJ0YXNrLW5vZGVcIiBbY2xhc3NdPVwiJ3MtJyArIGRhdGEuc3RhdHVzXCIgW2NsYXNzLmhhcy1kZXBzXT1cImhhc0RlcHNcIj5cbiAgICAgIDxkaXYgY2xhc3M9XCJ0YXNrLWhlYWRlclwiPlxuICAgICAgICA8c3BhbiBjbGFzcz1cImRvdFwiPjwvc3Bhbj5cbiAgICAgICAgPHNwYW4gY2xhc3M9XCJ0YXNrLWlkXCI+e3sgZGF0YS50YXNrPy5pZD8uc2xpY2UoMCwgOCkgfX08L3NwYW4+XG4gICAgICAgIDxzcGFuIGNsYXNzPVwic3RhdHVzLWJhZGdlXCI+e3sgZ2V0U3RhdHVzTGFiZWwoZGF0YS5zdGF0dXMpIH19PC9zcGFuPlxuICAgICAgPC9kaXY+XG4gICAgICA8ZGl2IGNsYXNzPVwidGFzay10aXRsZVwiPnt7IGRhdGEubGFiZWwgfX08L2Rpdj5cbiAgICAgIEBpZiAoZGF0YS50YXNrPy5yZXN1bHQpIHtcbiAgICAgICAgPGRpdiBjbGFzcz1cInRhc2stcmVzdWx0XCI+e3sgZGF0YS50YXNrLnJlc3VsdCB9fTwvZGl2PlxuICAgICAgfVxuICAgICAgPGRpdiBjbGFzcz1cInRhc2stZm9vdGVyXCI+XG4gICAgICAgIEBpZiAoZGF0YS5hc3NpZ25lZSkge1xuICAgICAgICAgIDxzcGFuIGNsYXNzPVwiYXNzaWduZWVcIj5cbiAgICAgICAgICAgIEBpZiAoZGF0YS5hc3NpZ25lZUljb24pIHtcbiAgICAgICAgICAgICAgPGltZyBbc3JjXT1cImRhdGEuYXNzaWduZWVJY29uXCIgY2xhc3M9XCJhc3NpZ25lZS1hdmF0YXJcIiBhbHQ9XCJcIiAvPlxuICAgICAgICAgICAgfSBAZWxzZSB7XG4gICAgICAgICAgICAgIDxtYXQtaWNvbiBjbGFzcz1cImFzc2lnbmVlLWljb25cIj5wZXJzb248L21hdC1pY29uPlxuICAgICAgICAgICAgfVxuICAgICAgICAgICAge3sgZGF0YS5hc3NpZ25lZSB9fVxuICAgICAgICAgIDwvc3Bhbj5cbiAgICAgICAgfVxuICAgICAgICBAaWYgKGhhc0RlcHMpIHtcbiAgICAgICAgICA8c3BhbiBjbGFzcz1cImRlcHNcIj7kvp3lrZg6IHt7IGRhdGEudGFzaz8uZGVwZW5kc09uPy5sZW5ndGggfX08L3NwYW4+XG4gICAgICAgIH1cbiAgICAgIDwvZGl2PlxuICAgIDwvZGl2PlxuICBgLFxuICBzdHlsZXM6IFtgXG4gICAgOmhvc3QgeyBkaXNwbGF5OiBibG9jazsgd2lkdGg6IDIwMHB4OyB9XG5cbiAgICAudGFzay1ub2RlIHtcbiAgICAgIGJhY2tncm91bmQ6ICMxYTFhMWE7XG4gICAgICBib3JkZXI6IDFweCBzb2xpZCByZ2JhKDUxLCA1MSwgNTEsIDAuOCk7XG4gICAgICBib3JkZXItcmFkaXVzOiA4cHg7XG4gICAgICBwYWRkaW5nOiAxMnB4O1xuICAgICAgZm9udC1mYW1pbHk6ICdTRiBNb25vJywgTW9uYWNvLCBtb25vc3BhY2U7XG4gICAgICB0cmFuc2l0aW9uOiBhbGwgMC4ycyBlYXNlO1xuICAgICAgYm94LXNoYWRvdzogMCA0cHggMTJweCByZ2JhKDAsIDAsIDAsIDAuNCk7XG4gICAgfVxuXG4gICAgLnRhc2stbm9kZTpob3ZlciB7XG4gICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoLTJweCk7XG4gICAgICBib3gtc2hhZG93OiAwIDhweCAyNHB4IHJnYmEoMCwgMCwgMCwgMC41KTtcbiAgICAgIGJvcmRlci1jb2xvcjogcmdiYSg4MCwgODAsIDgwLCAwLjgpO1xuICAgIH1cblxuICAgIC50YXNrLW5vZGUucy1jb21wbGV0ZWQgeyBib3JkZXItY29sb3I6IHJnYmEoMTYsIDE4NSwgMTI5LCAwLjYpOyB9XG4gICAgLnRhc2stbm9kZS5zLWluX3Byb2dyZXNzIHsgYm9yZGVyLWNvbG9yOiByZ2JhKDU5LCAxMzAsIDI0NiwgMC42KTsgfVxuICAgIC50YXNrLW5vZGUucy1wZW5kaW5nIHsgYm9yZGVyLWNvbG9yOiByZ2JhKDEzNiwgMTM2LCAxMzYsIDAuNik7IH1cbiAgICAudGFzay1ub2RlLmhhcy1kZXBzIHsgYm9yZGVyLXN0eWxlOiBkYXNoZWQ7IH1cblxuICAgIC50YXNrLWhlYWRlciB7XG4gICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICAgIGdhcDogNnB4O1xuICAgICAgbWFyZ2luLWJvdHRvbTogOHB4O1xuICAgIH1cblxuICAgIC5kb3Qge1xuICAgICAgd2lkdGg6IDhweDtcbiAgICAgIGhlaWdodDogOHB4O1xuICAgICAgYm9yZGVyLXJhZGl1czogNTAlO1xuICAgICAgZmxleC1zaHJpbms6IDA7XG4gICAgICBib3gtc2hhZG93OiAwIDAgOHB4IGN1cnJlbnRDb2xvcjtcbiAgICB9XG5cbiAgICAucy1jb21wbGV0ZWQgLmRvdCB7IGJhY2tncm91bmQ6ICMxMGI5ODE7IGNvbG9yOiAjMTBiOTgxOyB9XG4gICAgLnMtaW5fcHJvZ3Jlc3MgLmRvdCB7IGJhY2tncm91bmQ6ICMzYjgyZjY7IGNvbG9yOiAjM2I4MmY2OyBhbmltYXRpb246IHB1bHNlIDJzIGluZmluaXRlOyB9XG4gICAgLnMtcGVuZGluZyAuZG90IHsgYmFja2dyb3VuZDogIzg4ODsgY29sb3I6ICM4ODg7IH1cblxuICAgIEBrZXlmcmFtZXMgcHVsc2Uge1xuICAgICAgMCUsIDEwMCUgeyBib3gtc2hhZG93OiAwIDAgNHB4IHJnYmEoNTksIDEzMCwgMjQ2LCAwLjQpOyB9XG4gICAgICA1MCUgeyBib3gtc2hhZG93OiAwIDAgMTJweCByZ2JhKDU5LCAxMzAsIDI0NiwgMC44KTsgfVxuICAgIH1cblxuICAgIC50YXNrLWlkIHtcbiAgICAgIGZvbnQtc2l6ZTogMTBweDtcbiAgICAgIGZvbnQtd2VpZ2h0OiA1MDA7XG4gICAgICBjb2xvcjogIzg4ODtcbiAgICAgIGZvbnQtZmFtaWx5OiAnU0YgTW9ubycsIE1vbmFjbywgbW9ub3NwYWNlO1xuICAgICAgYmFja2dyb3VuZDogcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjA1KTtcbiAgICAgIHBhZGRpbmc6IDJweCA2cHg7XG4gICAgICBib3JkZXItcmFkaXVzOiA0cHg7XG4gICAgfVxuXG4gICAgLnN0YXR1cy1iYWRnZSB7XG4gICAgICBtYXJnaW4tbGVmdDogYXV0bztcbiAgICAgIGZvbnQtc2l6ZTogOXB4O1xuICAgICAgZm9udC13ZWlnaHQ6IDYwMDtcbiAgICAgIHBhZGRpbmc6IDJweCA2cHg7XG4gICAgICBib3JkZXItcmFkaXVzOiA0cHg7XG4gICAgICB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlO1xuICAgICAgbGV0dGVyLXNwYWNpbmc6IDAuNXB4O1xuICAgIH1cblxuICAgIC5zLWNvbXBsZXRlZCAuc3RhdHVzLWJhZGdlIHsgYmFja2dyb3VuZDogcmdiYSgxNiwgMTg1LCAxMjksIDAuMik7IGNvbG9yOiAjMTBiOTgxOyB9XG4gICAgLnMtaW5fcHJvZ3Jlc3MgLnN0YXR1cy1iYWRnZSB7IGJhY2tncm91bmQ6IHJnYmEoNTksIDEzMCwgMjQ2LCAwLjIpOyBjb2xvcjogIzNiODJmNjsgfVxuICAgIC5zLXBlbmRpbmcgLnN0YXR1cy1iYWRnZSB7IGJhY2tncm91bmQ6IHJnYmEoMTM2LCAxMzYsIDEzNiwgMC4yKTsgY29sb3I6ICM4ODg7IH1cblxuICAgIC50YXNrLXRpdGxlIHtcbiAgICAgIGZvbnQtc2l6ZTogMTNweDtcbiAgICAgIGZvbnQtd2VpZ2h0OiA1MDA7XG4gICAgICBjb2xvcjogI2UwZTBlMDtcbiAgICAgIGxpbmUtaGVpZ2h0OiAxLjQ7XG4gICAgICBtYXJnaW4tYm90dG9tOiA4cHg7XG4gICAgICBvdmVyZmxvdzogaGlkZGVuO1xuICAgICAgdGV4dC1vdmVyZmxvdzogZWxsaXBzaXM7XG4gICAgICBkaXNwbGF5OiAtd2Via2l0LWJveDtcbiAgICAgIC13ZWJraXQtbGluZS1jbGFtcDogMjtcbiAgICAgIC13ZWJraXQtYm94LW9yaWVudDogdmVydGljYWw7XG4gICAgfVxuXG4gICAgLnRhc2stcmVzdWx0IHtcbiAgICAgIGZvbnQtc2l6ZTogMTFweDtcbiAgICAgIGNvbG9yOiAjODg4O1xuICAgICAgYmFja2dyb3VuZDogcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjAzKTtcbiAgICAgIHBhZGRpbmc6IDZweCA4cHg7XG4gICAgICBib3JkZXItcmFkaXVzOiA0cHg7XG4gICAgICBtYXJnaW4tYm90dG9tOiA4cHg7XG4gICAgICBib3JkZXI6IDFweCBzb2xpZCByZ2JhKDUxLCA1MSwgNTEsIDAuNSk7XG4gICAgfVxuXG4gICAgLnRhc2stZm9vdGVyIHtcbiAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xuICAgICAgcGFkZGluZy10b3A6IDhweDtcbiAgICAgIGJvcmRlci10b3A6IDFweCBzb2xpZCByZ2JhKDUxLCA1MSwgNTEsIDAuNSk7XG4gICAgICBmb250LXNpemU6IDExcHg7XG4gICAgfVxuXG4gICAgLmFzc2lnbmVlIHtcbiAgICAgIGRpc3BsYXk6IGlubGluZS1mbGV4O1xuICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICAgIGdhcDogNHB4O1xuICAgICAgY29sb3I6ICM4ODg7XG4gICAgICBmb250LXdlaWdodDogNTAwO1xuICAgIH1cblxuICAgIC5hc3NpZ25lZS1pY29uIHtcbiAgICAgIGZvbnQtc2l6ZTogMTRweDtcbiAgICAgIHdpZHRoOiAxNHB4O1xuICAgICAgaGVpZ2h0OiAxNHB4O1xuICAgICAgY29sb3I6ICM2NjY7XG4gICAgfVxuXG4gICAgLmFzc2lnbmVlLWF2YXRhciB7XG4gICAgICB3aWR0aDogMThweDtcbiAgICAgIGhlaWdodDogMThweDtcbiAgICAgIGJvcmRlci1yYWRpdXM6IDUwJTtcbiAgICAgIG9iamVjdC1maXQ6IGNvdmVyO1xuICAgICAgYm9yZGVyOiAxcHggc29saWQgcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjEpO1xuICAgIH1cblxuICAgIC5kZXBzIHtcbiAgICAgIGZvbnQtc2l6ZTogMTBweDtcbiAgICAgIGNvbG9yOiAjZmY3OWM2O1xuICAgICAgZm9udC13ZWlnaHQ6IDUwMDtcbiAgICB9XG4gIGBdXG59KVxuZXhwb3J0IGNsYXNzIFRhc2tOb2RlQ29tcG9uZW50IHtcbiAgQElucHV0KCkgZGF0YSE6IFRhc2tOb2RlRGF0YTtcblxuICBnZXQgaGFzRGVwcygpOiBib29sZWFuIHtcbiAgICByZXR1cm4gISF0aGlzLmRhdGEudGFzaz8uZGVwZW5kc09uPy5sZW5ndGg7XG4gIH1cblxuICBnZXRTdGF0dXNMYWJlbChzdGF0dXM/OiBzdHJpbmcpOiBzdHJpbmcge1xuICAgIGNvbnN0IGxhYmVsczogUmVjb3JkPHN0cmluZywgc3RyaW5nPiA9IHtcbiAgICAgICdjb21wbGV0ZWQnOiAnRE9ORScsXG4gICAgICAnaW5fcHJvZ3Jlc3MnOiAnV0lQJyxcbiAgICAgICdwZW5kaW5nJzogJ1RPRE8nLFxuICAgIH07XG4gICAgcmV0dXJuIGxhYmVsc1tzdGF0dXMgfHwgJyddIHx8IHN0YXR1cz8udG9VcHBlckNhc2UoKSB8fCAnJztcbiAgfVxufVxuIl19","import { TaskNodeComponent } from './task.component';\nexport const taskNodeMeta = {\n title: 'Flow Task Node',\n group: 'molecules',\n component: TaskNodeComponent,\n viewport: { width: 300, height: 200 },\n variants: [\n {\n name: 'completed',\n inputs: {\n data: {\n label: 'Implement user authentication',\n status: 'completed',\n assignee: 'dev-001',\n task: {\n id: 'abc12345-6789-0123-4567-890abcdef012',\n result: 'OAuth2 implemented',\n },\n },\n },\n },\n {\n name: 'in progress',\n inputs: {\n data: {\n label: 'Build API endpoints',\n status: 'in_progress',\n assignee: 'dev-002',\n task: {\n id: 'def12345-6789-0123-4567-890abcdef012',\n dependsOn: ['abc12345'],\n },\n },\n },\n },\n {\n name: 'pending',\n inputs: {\n data: {\n label: 'Write unit tests',\n status: 'pending',\n assignee: 'dev-003',\n task: {\n id: 'ghi12345-6789-0123-4567-890abcdef012',\n },\n },\n },\n },\n {\n name: 'with avatar',\n inputs: {\n data: {\n label: 'Integration testing',\n status: 'in_progress',\n assignee: 'qa-team',\n assigneeIcon: 'https://api.dicebear.com/7.x/avataaars/svg?seed=Felix',\n task: {\n id: 'jkl12345-6789-0123-4567-890abcdef012',\n dependsOn: ['abc12345', 'def12345'],\n },\n },\n },\n },\n ],\n};\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGFzay5jb21wb25lbnQubWV0YS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL0B4eG1hY2hpbmEvY29tcG9uZW50cy9zcmMvbGliL3RlbXBsYXRlcy9mbG93L25vZGVzL3Rhc2svdGFzay5jb21wb25lbnQubWV0YS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFDQSxPQUFPLEVBQUUsaUJBQWlCLEVBQWdCLE1BQU0sa0JBQWtCLENBQUM7QUFXbkUsTUFBTSxDQUFDLE1BQU0sWUFBWSxHQUFrQjtJQUN6QyxLQUFLLEVBQUUsZ0JBQWdCO0lBQ3ZCLEtBQUssRUFBRSxXQUFXO0lBQ2xCLFNBQVMsRUFBRSxpQkFBaUI7SUFDNUIsUUFBUSxFQUFFLEVBQUUsS0FBSyxFQUFFLEdBQUcsRUFBRSxNQUFNLEVBQUUsR0FBRyxFQUFFO0lBQ3JDLFFBQVEsRUFBRTtRQUNSO1lBQ0UsSUFBSSxFQUFFLFdBQVc7WUFDakIsTUFBTSxFQUFFO2dCQUNOLElBQUksRUFBRTtvQkFDSixLQUFLLEVBQUUsK0JBQStCO29CQUN0QyxNQUFNLEVBQUUsV0FBVztvQkFDbkIsUUFBUSxFQUFFLFNBQVM7b0JBQ25CLElBQUksRUFBRTt3QkFDSixFQUFFLEVBQUUsc0NBQXNDO3dCQUMxQyxNQUFNLEVBQUUsb0JBQW9CO3FCQUM3QjtpQkFDYzthQUNsQjtTQUNGO1FBQ0Q7WUFDRSxJQUFJLEVBQUUsYUFBYTtZQUNuQixNQUFNLEVBQUU7Z0JBQ04sSUFBSSxFQUFFO29CQUNKLEtBQUssRUFBRSxxQkFBcUI7b0JBQzVCLE1BQU0sRUFBRSxhQUFhO29CQUNyQixRQUFRLEVBQUUsU0FBUztvQkFDbkIsSUFBSSxFQUFFO3dCQUNKLEVBQUUsRUFBRSxzQ0FBc0M7d0JBQzFDLFNBQVMsRUFBRSxDQUFDLFVBQVUsQ0FBQztxQkFDeEI7aUJBQ2M7YUFDbEI7U0FDRjtRQUNEO1lBQ0UsSUFBSSxFQUFFLFNBQVM7WUFDZixNQUFNLEVBQUU7Z0JBQ04sSUFBSSxFQUFFO29CQUNKLEtBQUssRUFBRSxrQkFBa0I7b0JBQ3pCLE1BQU0sRUFBRSxTQUFTO29CQUNqQixRQUFRLEVBQUUsU0FBUztvQkFDbkIsSUFBSSxFQUFFO3dCQUNKLEVBQUUsRUFBRSxzQ0FBc0M7cUJBQzNDO2lCQUNjO2FBQ2xCO1NBQ0Y7UUFDRDtZQUNFLElBQUksRUFBRSxhQUFhO1lBQ25CLE1BQU0sRUFBRTtnQkFDTixJQUFJLEVBQUU7b0JBQ0osS0FBSyxFQUFFLHFCQUFxQjtvQkFDNUIsTUFBTSxFQUFFLGFBQWE7b0JBQ3JCLFFBQVEsRUFBRSxTQUFTO29CQUNuQixZQUFZLEVBQUUsdURBQXVEO29CQUNyRSxJQUFJLEVBQUU7d0JBQ0osRUFBRSxFQUFFLHNDQUFzQzt3QkFDMUMsU0FBUyxFQUFFLENBQUMsVUFBVSxFQUFFLFVBQVUsQ0FBQztxQkFDcEM7aUJBQ2M7YUFDbEI7U0FDRjtLQUNGO0NBQ0YsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IFR5cGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IFRhc2tOb2RlQ29tcG9uZW50LCBUYXNrTm9kZURhdGEgfSBmcm9tICcuL3Rhc2suY29tcG9uZW50JztcblxuaW50ZXJmYWNlIENvbXBvbmVudE1ldGE8VCA9IHVua25vd24+IHtcbiAgdGl0bGU6IHN0cmluZztcbiAgZ3JvdXA/OiAnYXRvbXMnIHwgJ21vbGVjdWxlcycgfCAnb3JnYW5pc21zJyB8ICd0ZW1wbGF0ZXMnIHwgJ3ByZXNlbnRlcnMnIHwgJ2V4dHJhcyc7XG4gIGNvbXBvbmVudDogVHlwZTxUPjtcbiAgaW5wdXRzPzogUmVjb3JkPHN0cmluZywgdW5rbm93bj47XG4gIHZpZXdwb3J0PzogeyB3aWR0aD86IG51bWJlcjsgaGVpZ2h0PzogbnVtYmVyIH07XG4gIHZhcmlhbnRzPzogeyBuYW1lOiBzdHJpbmc7IGlucHV0czogUmVjb3JkPHN0cmluZywgdW5rbm93bj4gfVtdO1xufVxuXG5leHBvcnQgY29uc3QgdGFza05vZGVNZXRhOiBDb21wb25lbnRNZXRhID0ge1xuICB0aXRsZTogJ0Zsb3cgVGFzayBOb2RlJyxcbiAgZ3JvdXA6ICdtb2xlY3VsZXMnLFxuICBjb21wb25lbnQ6IFRhc2tOb2RlQ29tcG9uZW50LFxuICB2aWV3cG9ydDogeyB3aWR0aDogMzAwLCBoZWlnaHQ6IDIwMCB9LFxuICB2YXJpYW50czogW1xuICAgIHtcbiAgICAgIG5hbWU6ICdjb21wbGV0ZWQnLFxuICAgICAgaW5wdXRzOiB7XG4gICAgICAgIGRhdGE6IHtcbiAgICAgICAgICBsYWJlbDogJ0ltcGxlbWVudCB1c2VyIGF1dGhlbnRpY2F0aW9uJyxcbiAgICAgICAgICBzdGF0dXM6ICdjb21wbGV0ZWQnLFxuICAgICAgICAgIGFzc2lnbmVlOiAnZGV2LTAwMScsXG4gICAgICAgICAgdGFzazoge1xuICAgICAgICAgICAgaWQ6ICdhYmMxMjM0NS02Nzg5LTAxMjMtNDU2Ny04OTBhYmNkZWYwMTInLFxuICAgICAgICAgICAgcmVzdWx0OiAnT0F1dGgyIGltcGxlbWVudGVkJyxcbiAgICAgICAgICB9LFxuICAgICAgICB9IGFzIFRhc2tOb2RlRGF0YSxcbiAgICAgIH0sXG4gICAgfSxcbiAgICB7XG4gICAgICBuYW1lOiAnaW4gcHJvZ3Jlc3MnLFxuICAgICAgaW5wdXRzOiB7XG4gICAgICAgIGRhdGE6IHtcbiAgICAgICAgICBsYWJlbDogJ0J1aWxkIEFQSSBlbmRwb2ludHMnLFxuICAgICAgICAgIHN0YXR1czogJ2luX3Byb2dyZXNzJyxcbiAgICAgICAgICBhc3NpZ25lZTogJ2Rldi0wMDInLFxuICAgICAgICAgIHRhc2s6IHtcbiAgICAgICAgICAgIGlkOiAnZGVmMTIzNDUtNjc4OS0wMTIzLTQ1NjctODkwYWJjZGVmMDEyJyxcbiAgICAgICAgICAgIGRlcGVuZHNPbjogWydhYmMxMjM0NSddLFxuICAgICAgICAgIH0sXG4gICAgICAgIH0gYXMgVGFza05vZGVEYXRhLFxuICAgICAgfSxcbiAgICB9LFxuICAgIHtcbiAgICAgIG5hbWU6ICdwZW5kaW5nJyxcbiAgICAgIGlucHV0czoge1xuICAgICAgICBkYXRhOiB7XG4gICAgICAgICAgbGFiZWw6ICdXcml0ZSB1bml0IHRlc3RzJyxcbiAgICAgICAgICBzdGF0dXM6ICdwZW5kaW5nJyxcbiAgICAgICAgICBhc3NpZ25lZTogJ2Rldi0wMDMnLFxuICAgICAgICAgIHRhc2s6IHtcbiAgICAgICAgICAgIGlkOiAnZ2hpMTIzNDUtNjc4OS0wMTIzLTQ1NjctODkwYWJjZGVmMDEyJyxcbiAgICAgICAgICB9LFxuICAgICAgICB9IGFzIFRhc2tOb2RlRGF0YSxcbiAgICAgIH0sXG4gICAgfSxcbiAgICB7XG4gICAgICBuYW1lOiAnd2l0aCBhdmF0YXInLFxuICAgICAgaW5wdXRzOiB7XG4gICAgICAgIGRhdGE6IHtcbiAgICAgICAgICBsYWJlbDogJ0ludGVncmF0aW9uIHRlc3RpbmcnLFxuICAgICAgICAgIHN0YXR1czogJ2luX3Byb2dyZXNzJyxcbiAgICAgICAgICBhc3NpZ25lZTogJ3FhLXRlYW0nLFxuICAgICAgICAgIGFzc2lnbmVlSWNvbjogJ2h0dHBzOi8vYXBpLmRpY2ViZWFyLmNvbS83LngvYXZhdGFhYXJzL3N2Zz9zZWVkPUZlbGl4JyxcbiAgICAgICAgICB0YXNrOiB7XG4gICAgICAgICAgICBpZDogJ2prbDEyMzQ1LTY3ODktMDEyMy00NTY3LTg5MGFiY2RlZjAxMicsXG4gICAgICAgICAgICBkZXBlbmRzT246IFsnYWJjMTIzNDUnLCAnZGVmMTIzNDUnXSxcbiAgICAgICAgICB9LFxuICAgICAgICB9IGFzIFRhc2tOb2RlRGF0YSxcbiAgICAgIH0sXG4gICAgfSxcbiAgXSxcbn07XG4iXX0=","/**\n * Generated bundle index. Do not edit.\n */\nexport * from './index';\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoieHhtYWNoaW5hLWNvbXBvbmVudHMtdGVtcGxhdGVzLWZsb3ctbm9kZXMtdGFzay5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL0B4eG1hY2hpbmEvY29tcG9uZW50cy9zcmMvbGliL3RlbXBsYXRlcy9mbG93L25vZGVzL3Rhc2sveHhtYWNoaW5hLWNvbXBvbmVudHMtdGVtcGxhdGVzLWZsb3ctbm9kZXMtdGFzay50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7R0FFRztBQUVILGNBQWMsU0FBUyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBHZW5lcmF0ZWQgYnVuZGxlIGluZGV4LiBEbyBub3QgZWRpdC5cbiAqL1xuXG5leHBvcnQgKiBmcm9tICcuL2luZGV4JztcbiJdfQ=="],"names":[],"mappings":"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"}