@burdenoff/fluidgrids-fe-sdk 2026.803.4 → 2026.804.2

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 (55) hide show
  1. package/dist/ExecutionDetailPage-FF2DYKAZ.js +10 -0
  2. package/dist/{ExecutionDetailPage-FCY3S336.js.map → ExecutionDetailPage-FF2DYKAZ.js.map} +1 -1
  3. package/dist/ExecutionsListPage-NKISRFMA.js +9 -0
  4. package/dist/{ExecutionsListPage-IZJPACQV.js.map → ExecutionsListPage-NKISRFMA.js.map} +1 -1
  5. package/dist/MissingNodesInstallModal-HA5L3FK2.js +185 -0
  6. package/dist/MissingNodesInstallModal-HA5L3FK2.js.map +1 -0
  7. package/dist/{TemplateConfigurationModal-MTR7VP6G.js → TemplateConfigurationModal-MXNGZQIC.js} +91 -21
  8. package/dist/TemplateConfigurationModal-MXNGZQIC.js.map +1 -0
  9. package/dist/{TemplateDetailPanel-T3ZHXOHX.js → TemplateDetailPanel-CJ3NPVTP.js} +50 -14
  10. package/dist/TemplateDetailPanel-CJ3NPVTP.js.map +1 -0
  11. package/dist/{WorkflowBuilder-WMAHTZEI.js → WorkflowBuilder-ETVB66U6.js} +9 -9
  12. package/dist/{WorkflowBuilder-WMAHTZEI.js.map → WorkflowBuilder-ETVB66U6.js.map} +1 -1
  13. package/dist/WorkflowsList-TZAN3YBA.js +11 -0
  14. package/dist/{WorkflowsList-BXESQVAH.js.map → WorkflowsList-TZAN3YBA.js.map} +1 -1
  15. package/dist/{chunk-WAVGHDYH.js → chunk-6PNRM3KQ.js} +469 -114
  16. package/dist/chunk-6PNRM3KQ.js.map +1 -0
  17. package/dist/chunk-7VNIEIR6.js +21 -0
  18. package/dist/chunk-7VNIEIR6.js.map +1 -0
  19. package/dist/{chunk-F5ACDIYR.js → chunk-IWKLEFC7.js} +205 -51
  20. package/dist/chunk-IWKLEFC7.js.map +1 -0
  21. package/dist/{chunk-MRVS73S2.js → chunk-OHGXRM6Z.js} +7 -23
  22. package/dist/chunk-OHGXRM6Z.js.map +1 -0
  23. package/dist/chunk-P5PKRQAO.js +25 -0
  24. package/dist/chunk-P5PKRQAO.js.map +1 -0
  25. package/dist/{chunk-CQAHXNT2.js → chunk-SG7Z2IRQ.js} +55 -18
  26. package/dist/chunk-SG7Z2IRQ.js.map +1 -0
  27. package/dist/chunk-WQ4QNHDN.js +29639 -0
  28. package/dist/chunk-WQ4QNHDN.js.map +1 -0
  29. package/dist/{chunk-ZM4SSEVI.js → chunk-Y36DJHU3.js} +211 -3
  30. package/dist/chunk-Y36DJHU3.js.map +1 -0
  31. package/dist/{chunk-CBUOMHGH.js → chunk-YJKZSUNC.js} +140 -47
  32. package/dist/chunk-YJKZSUNC.js.map +1 -0
  33. package/dist/index.d.ts +33 -2
  34. package/dist/index.js +643 -182
  35. package/dist/index.js.map +1 -1
  36. package/package.json +1 -1
  37. package/dist/ExecutionDetailPage-FCY3S336.js +0 -9
  38. package/dist/ExecutionsListPage-IZJPACQV.js +0 -8
  39. package/dist/TemplateConfigurationModal-MTR7VP6G.js.map +0 -1
  40. package/dist/TemplateDetailPanel-T3ZHXOHX.js.map +0 -1
  41. package/dist/WorkflowsList-BXESQVAH.js +0 -11
  42. package/dist/blocks-7KN7ZRE6.js +0 -11
  43. package/dist/blocks-7KN7ZRE6.js.map +0 -1
  44. package/dist/chunk-7LLCYNKY.js +0 -10910
  45. package/dist/chunk-7LLCYNKY.js.map +0 -1
  46. package/dist/chunk-CBUOMHGH.js.map +0 -1
  47. package/dist/chunk-CQAHXNT2.js.map +0 -1
  48. package/dist/chunk-F5ACDIYR.js.map +0 -1
  49. package/dist/chunk-MRVS73S2.js.map +0 -1
  50. package/dist/chunk-OAPYQFQU.js +0 -197
  51. package/dist/chunk-OAPYQFQU.js.map +0 -1
  52. package/dist/chunk-WAVGHDYH.js.map +0 -1
  53. package/dist/chunk-Z3NRSPTV.js +0 -15355
  54. package/dist/chunk-Z3NRSPTV.js.map +0 -1
  55. package/dist/chunk-ZM4SSEVI.js.map +0 -1
@@ -1,5 +1,6 @@
1
1
  import { Button, Badge } from './chunk-DBOMRIP5.js';
2
2
  import './chunk-3ZYUGTIT.js';
3
+ import { useTr } from './chunk-7VNIEIR6.js';
3
4
  import { X, Sparkles, Star, Download, Eye, User, Calendar, Tag, ExternalLink } from 'lucide-react';
4
5
  import { jsxs, jsx } from 'react/jsx-runtime';
5
6
 
@@ -29,11 +30,15 @@ function TemplateDetailPanel({
29
30
  onClose,
30
31
  onUseTemplate
31
32
  }) {
33
+ const tr = useTr();
32
34
  const previewImage = template.screenshots?.[0] || template.icon;
33
35
  template.videoUrls && template.videoUrls.length > 0;
34
36
  return /* @__PURE__ */ jsxs("div", { className: "w-full md:w-1/2 lg:w-2/5 border-l bg-background overflow-y-auto", children: [
35
37
  /* @__PURE__ */ jsxs("div", { className: "sticky top-0 z-10 flex items-center justify-between px-4 py-3 bg-background border-b", children: [
36
- /* @__PURE__ */ jsx("h3", { className: "text-sm font-semibold truncate pr-4", children: "Template Details" }),
38
+ /* @__PURE__ */ jsx("h3", { className: "text-sm font-semibold truncate pr-4", children: tr(
39
+ "fluidgrids.builder.templateDetailPanel.title",
40
+ "Template Details"
41
+ ) }),
37
42
  /* @__PURE__ */ jsx(
38
43
  Button,
39
44
  {
@@ -60,7 +65,7 @@ function TemplateDetailPanel({
60
65
  {
61
66
  variant: "secondary",
62
67
  className: "bg-green-500 text-white border-0",
63
- children: "Free"
68
+ children: tr("fluidgrids.builder.templateDetailPanel.freeBadge", "Free")
64
69
  }
65
70
  ) : /* @__PURE__ */ jsxs(
66
71
  Badge,
@@ -80,14 +85,20 @@ function TemplateDetailPanel({
80
85
  className: "bg-gradient-to-r from-yellow-500 to-orange-500 text-white border-0 shadow-lg",
81
86
  children: [
82
87
  /* @__PURE__ */ jsx(Star, { className: "size-3 mr-1 fill-white" }),
83
- "Featured"
88
+ tr(
89
+ "fluidgrids.builder.templateDetailPanel.featuredBadge",
90
+ "Featured"
91
+ )
84
92
  ]
85
93
  }
86
94
  ) })
87
95
  ] }),
88
96
  /* @__PURE__ */ jsxs("div", { children: [
89
97
  /* @__PURE__ */ jsx("h2", { className: "text-lg font-bold", children: template.name }),
90
- /* @__PURE__ */ jsx("p", { className: "text-sm text-muted-foreground mt-1.5 leading-relaxed", children: template.longDescription || template.description || "No description available" })
98
+ /* @__PURE__ */ jsx("p", { className: "text-sm text-muted-foreground mt-1.5 leading-relaxed", children: template.longDescription || template.description || tr(
99
+ "fluidgrids.builder.templateDetailPanel.noDescription",
100
+ "No description available"
101
+ ) })
91
102
  ] }),
92
103
  /* @__PURE__ */ jsxs("div", { className: "flex items-center gap-4 text-sm text-muted-foreground", children: [
93
104
  template.rating && /* @__PURE__ */ jsxs("div", { className: "flex items-center gap-1", children: [
@@ -110,20 +121,33 @@ function TemplateDetailPanel({
110
121
  ] }),
111
122
  /* @__PURE__ */ jsxs("div", { className: "flex items-center gap-2 text-sm", children: [
112
123
  /* @__PURE__ */ jsx(User, { className: "size-4 text-muted-foreground" }),
113
- /* @__PURE__ */ jsx("span", { className: "font-medium", children: template.authorName || template.publisher?.name || "Unknown" }),
114
- template.publisher?.isVerified && /* @__PURE__ */ jsx(Badge, { variant: "secondary", className: "text-xs px-1.5 py-0", children: "Verified" })
124
+ /* @__PURE__ */ jsx("span", { className: "font-medium", children: template.authorName || template.publisher?.name || tr(
125
+ "fluidgrids.builder.templateDetailPanel.unknownAuthor",
126
+ "Unknown"
127
+ ) }),
128
+ template.publisher?.isVerified && /* @__PURE__ */ jsx(Badge, { variant: "secondary", className: "text-xs px-1.5 py-0", children: tr(
129
+ "fluidgrids.builder.templateDetailPanel.verifiedBadge",
130
+ "Verified"
131
+ ) })
115
132
  ] }),
116
133
  template.publishedAt && /* @__PURE__ */ jsxs("div", { className: "flex items-center gap-2 text-sm text-muted-foreground", children: [
117
134
  /* @__PURE__ */ jsx(Calendar, { className: "size-4" }),
118
135
  /* @__PURE__ */ jsxs("span", { children: [
119
- "Published ",
136
+ tr(
137
+ "fluidgrids.builder.templateDetailPanel.publishedLabel",
138
+ "Published"
139
+ ),
140
+ " ",
120
141
  formatDate(template.publishedAt)
121
142
  ] })
122
143
  ] }),
123
144
  (template.category || template.tags && template.tags.length > 0) && /* @__PURE__ */ jsxs("div", { className: "space-y-2", children: [
124
145
  /* @__PURE__ */ jsxs("div", { className: "flex items-center gap-2 text-sm text-muted-foreground", children: [
125
146
  /* @__PURE__ */ jsx(Tag, { className: "size-4" }),
126
- /* @__PURE__ */ jsx("span", { children: "Category & Tags" })
147
+ /* @__PURE__ */ jsx("span", { children: tr(
148
+ "fluidgrids.builder.templateDetailPanel.categoryAndTagsLabel",
149
+ "Category & Tags"
150
+ ) })
127
151
  ] }),
128
152
  /* @__PURE__ */ jsxs("div", { className: "flex flex-wrap gap-1.5", children: [
129
153
  template.category && /* @__PURE__ */ jsx(Badge, { variant: "default", className: "text-xs", children: template.category }),
@@ -131,11 +155,17 @@ function TemplateDetailPanel({
131
155
  ] })
132
156
  ] }),
133
157
  template.compatibleProducts && template.compatibleProducts.length > 0 && /* @__PURE__ */ jsxs("div", { className: "text-xs text-muted-foreground", children: [
134
- /* @__PURE__ */ jsx("span", { children: "Compatible with: " }),
158
+ /* @__PURE__ */ jsx("span", { children: tr(
159
+ "fluidgrids.builder.templateDetailPanel.compatibleWithLabel",
160
+ "Compatible with: "
161
+ ) }),
135
162
  /* @__PURE__ */ jsx("span", { className: "font-medium", children: template.compatibleProducts.join(", ") })
136
163
  ] }),
137
164
  template.screenshots && template.screenshots.length > 1 && /* @__PURE__ */ jsxs("div", { className: "space-y-2", children: [
138
- /* @__PURE__ */ jsx("h4", { className: "text-sm font-semibold", children: "Screenshots" }),
165
+ /* @__PURE__ */ jsx("h4", { className: "text-sm font-semibold", children: tr(
166
+ "fluidgrids.builder.templateDetailPanel.screenshotsHeading",
167
+ "Screenshots"
168
+ ) }),
139
169
  /* @__PURE__ */ jsx("div", { className: "grid grid-cols-2 gap-2", children: template.screenshots.slice(1, 5).map((screenshot, i) => /* @__PURE__ */ jsx(
140
170
  "img",
141
171
  {
@@ -149,7 +179,10 @@ function TemplateDetailPanel({
149
179
  /* @__PURE__ */ jsxs("div", { className: "pt-2 space-y-2", children: [
150
180
  /* @__PURE__ */ jsxs(Button, { className: "w-full", onClick: () => onUseTemplate(template), children: [
151
181
  /* @__PURE__ */ jsx(Sparkles, { className: "size-4 mr-2" }),
152
- "Use This Template"
182
+ tr(
183
+ "fluidgrids.builder.templateDetailPanel.useTemplateButton",
184
+ "Use This Template"
185
+ )
153
186
  ] }),
154
187
  template.publisher?.websiteUrl && /* @__PURE__ */ jsx(Button, { variant: "outline", className: "w-full", asChild: true, children: /* @__PURE__ */ jsxs(
155
188
  "a",
@@ -159,7 +192,10 @@ function TemplateDetailPanel({
159
192
  rel: "noopener noreferrer",
160
193
  children: [
161
194
  /* @__PURE__ */ jsx(ExternalLink, { className: "size-4 mr-2" }),
162
- "View Publisher"
195
+ tr(
196
+ "fluidgrids.builder.templateDetailPanel.viewPublisherButton",
197
+ "View Publisher"
198
+ )
163
199
  ]
164
200
  }
165
201
  ) })
@@ -169,5 +205,5 @@ function TemplateDetailPanel({
169
205
  }
170
206
 
171
207
  export { TemplateDetailPanel };
172
- //# sourceMappingURL=TemplateDetailPanel-T3ZHXOHX.js.map
173
- //# sourceMappingURL=TemplateDetailPanel-T3ZHXOHX.js.map
208
+ //# sourceMappingURL=TemplateDetailPanel-CJ3NPVTP.js.map
209
+ //# sourceMappingURL=TemplateDetailPanel-CJ3NPVTP.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/builder/components/flow-builder/components/templates/TemplateDetailPanel.tsx"],"names":[],"mappings":"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","file":"TemplateDetailPanel-CJ3NPVTP.js","sourcesContent":["import { Button } from \"../../../../../ui/button\";\nimport { Badge } from \"../../../../../ui/badge\";\nimport type { StoreProduct } from \"../../../../../generated/global-types\";\nimport {\n X,\n Star,\n Download,\n Eye,\n Sparkles,\n ExternalLink,\n Calendar,\n User,\n Tag,\n} from \"lucide-react\";\nimport { useTr } from \"../../../../../hooks/useTr\";\n\nexport interface TemplateDetailPanelProps {\n template: StoreProduct;\n onClose: () => void;\n onUseTemplate: (template: StoreProduct) => void;\n}\n\nfunction formatNumber(count: number): string {\n if (count >= 1000000) {\n return `${(count / 1000000).toFixed(1)}M`;\n }\n if (count >= 1000) {\n return `${(count / 1000).toFixed(1)}k`;\n }\n return count.toString();\n}\n\nfunction formatDate(dateStr: string | null | undefined): string {\n if (!dateStr) return \"Unknown\";\n try {\n return new Date(dateStr).toLocaleDateString(\"en-US\", {\n year: \"numeric\",\n month: \"short\",\n day: \"numeric\",\n });\n } catch {\n return \"Unknown\";\n }\n}\n\n/**\n * Side panel that slides in within the TemplatesModal when a template card is clicked.\n * Shows detailed information about the template before the user decides to import.\n */\nexport function TemplateDetailPanel({\n template,\n onClose,\n onUseTemplate,\n}: TemplateDetailPanelProps) {\n const tr = useTr();\n const previewImage = template.screenshots?.[0] || template.icon;\n const hasVideo = template.videoUrls && template.videoUrls.length > 0;\n\n return (\n <div className=\"w-full md:w-1/2 lg:w-2/5 border-l bg-background overflow-y-auto\">\n {/* Close Button */}\n <div className=\"sticky top-0 z-10 flex items-center justify-between px-4 py-3 bg-background border-b\">\n <h3 className=\"text-sm font-semibold truncate pr-4\">\n {tr(\n \"fluidgrids.builder.templateDetailPanel.title\",\n \"Template Details\",\n )}\n </h3>\n <Button\n variant=\"ghost\"\n size=\"icon\"\n onClick={onClose}\n className=\"size-8 shrink-0\"\n >\n <X className=\"size-4\" />\n </Button>\n </div>\n\n <div className=\"p-4 space-y-5\">\n {/* Preview Image / Video */}\n <div className=\"relative aspect-video w-full rounded-lg overflow-hidden bg-gradient-to-br from-primary/5 to-primary/10\">\n {previewImage ? (\n <img\n src={previewImage}\n alt={template.name}\n className=\"w-full h-full object-cover\"\n />\n ) : (\n <div className=\"w-full h-full flex items-center justify-center\">\n <Sparkles className=\"size-16 text-primary/30\" />\n </div>\n )}\n\n {/* Pricing Badge */}\n <div className=\"absolute top-2 left-2\">\n {template.pricingModel === \"FREE\" ? (\n <Badge\n variant=\"secondary\"\n className=\"bg-green-500 text-white border-0\"\n >\n {tr(\"fluidgrids.builder.templateDetailPanel.freeBadge\", \"Free\")}\n </Badge>\n ) : (\n <Badge\n variant=\"default\"\n className=\"bg-blue-500 text-white border-0\"\n >\n ${template.price?.toString() || \"0\"}\n </Badge>\n )}\n </div>\n\n {template.featured && (\n <div className=\"absolute top-2 right-2\">\n <Badge\n variant=\"default\"\n className=\"bg-gradient-to-r from-yellow-500 to-orange-500 text-white border-0 shadow-lg\"\n >\n <Star className=\"size-3 mr-1 fill-white\" />\n {tr(\n \"fluidgrids.builder.templateDetailPanel.featuredBadge\",\n \"Featured\",\n )}\n </Badge>\n </div>\n )}\n </div>\n\n {/* Title & Description */}\n <div>\n <h2 className=\"text-lg font-bold\">{template.name}</h2>\n <p className=\"text-sm text-muted-foreground mt-1.5 leading-relaxed\">\n {template.longDescription ||\n template.description ||\n tr(\n \"fluidgrids.builder.templateDetailPanel.noDescription\",\n \"No description available\",\n )}\n </p>\n </div>\n\n {/* Stats Row */}\n <div className=\"flex items-center gap-4 text-sm text-muted-foreground\">\n {template.rating && (\n <div className=\"flex items-center gap-1\">\n <Star className=\"size-4 fill-yellow-400 text-yellow-400\" />\n <span className=\"font-medium text-foreground\">\n {template.rating.toFixed(1)}\n </span>\n <span>({template.reviewCount || 0})</span>\n </div>\n )}\n <div className=\"flex items-center gap-1\">\n <Download className=\"size-4\" />\n <span>{formatNumber(template.downloads || 0)}</span>\n </div>\n <div className=\"flex items-center gap-1\">\n <Eye className=\"size-4\" />\n <span>{formatNumber(template.viewCount || 0)}</span>\n </div>\n </div>\n\n {/* Author */}\n <div className=\"flex items-center gap-2 text-sm\">\n <User className=\"size-4 text-muted-foreground\" />\n <span className=\"font-medium\">\n {template.authorName ||\n template.publisher?.name ||\n tr(\n \"fluidgrids.builder.templateDetailPanel.unknownAuthor\",\n \"Unknown\",\n )}\n </span>\n {template.publisher?.isVerified && (\n <Badge variant=\"secondary\" className=\"text-xs px-1.5 py-0\">\n {tr(\n \"fluidgrids.builder.templateDetailPanel.verifiedBadge\",\n \"Verified\",\n )}\n </Badge>\n )}\n </div>\n\n {/* Published Date */}\n {template.publishedAt && (\n <div className=\"flex items-center gap-2 text-sm text-muted-foreground\">\n <Calendar className=\"size-4\" />\n <span>\n {tr(\n \"fluidgrids.builder.templateDetailPanel.publishedLabel\",\n \"Published\",\n )}{\" \"}\n {formatDate(template.publishedAt)}\n </span>\n </div>\n )}\n\n {/* Category & Tags */}\n {(template.category || (template.tags && template.tags.length > 0)) && (\n <div className=\"space-y-2\">\n <div className=\"flex items-center gap-2 text-sm text-muted-foreground\">\n <Tag className=\"size-4\" />\n <span>\n {tr(\n \"fluidgrids.builder.templateDetailPanel.categoryAndTagsLabel\",\n \"Category & Tags\",\n )}\n </span>\n </div>\n <div className=\"flex flex-wrap gap-1.5\">\n {template.category && (\n <Badge variant=\"default\" className=\"text-xs\">\n {template.category}\n </Badge>\n )}\n {template.tags?.map((tag) => (\n <Badge key={tag} variant=\"outline\" className=\"text-xs\">\n {tag}\n </Badge>\n ))}\n </div>\n </div>\n )}\n\n {/* Compatible Products */}\n {template.compatibleProducts &&\n template.compatibleProducts.length > 0 && (\n <div className=\"text-xs text-muted-foreground\">\n <span>\n {tr(\n \"fluidgrids.builder.templateDetailPanel.compatibleWithLabel\",\n \"Compatible with: \",\n )}\n </span>\n <span className=\"font-medium\">\n {template.compatibleProducts.join(\", \")}\n </span>\n </div>\n )}\n\n {/* Additional Screenshots */}\n {template.screenshots && template.screenshots.length > 1 && (\n <div className=\"space-y-2\">\n <h4 className=\"text-sm font-semibold\">\n {tr(\n \"fluidgrids.builder.templateDetailPanel.screenshotsHeading\",\n \"Screenshots\",\n )}\n </h4>\n <div className=\"grid grid-cols-2 gap-2\">\n {template.screenshots.slice(1, 5).map((screenshot, i) => (\n <img\n key={i}\n src={screenshot}\n alt={`${template.name} screenshot ${i + 2}`}\n className=\"w-full h-auto rounded-md border\"\n />\n ))}\n </div>\n </div>\n )}\n\n {/* Action Buttons */}\n <div className=\"pt-2 space-y-2\">\n <Button className=\"w-full\" onClick={() => onUseTemplate(template)}>\n <Sparkles className=\"size-4 mr-2\" />\n {tr(\n \"fluidgrids.builder.templateDetailPanel.useTemplateButton\",\n \"Use This Template\",\n )}\n </Button>\n {template.publisher?.websiteUrl && (\n <Button variant=\"outline\" className=\"w-full\" asChild>\n <a\n href={template.publisher.websiteUrl}\n target=\"_blank\"\n rel=\"noopener noreferrer\"\n >\n <ExternalLink className=\"size-4 mr-2\" />\n {tr(\n \"fluidgrids.builder.templateDetailPanel.viewPublisherButton\",\n \"View Publisher\",\n )}\n </a>\n </Button>\n )}\n </div>\n </div>\n </div>\n );\n}\n"]}
@@ -1,17 +1,17 @@
1
- export { WorkflowBuilder } from './chunk-Z3NRSPTV.js';
2
- import './chunk-MRVS73S2.js';
3
- import './chunk-DBOMRIP5.js';
4
- import './chunk-7LLCYNKY.js';
1
+ export { WorkflowBuilder } from './chunk-WQ4QNHDN.js';
2
+ import './chunk-P5PKRQAO.js';
3
+ import './chunk-OHGXRM6Z.js';
5
4
  import './chunk-BQXHJIER.js';
6
5
  import './chunk-PNOA7CQV.js';
7
- import './chunk-OAPYQFQU.js';
6
+ import './chunk-Y36DJHU3.js';
8
7
  import './chunk-MH4AHYK3.js';
9
- import './chunk-ZM4SSEVI.js';
10
8
  import './chunk-UIY2HBWA.js';
11
- import './chunk-3ZYUGTIT.js';
12
9
  import './chunk-V5UEEB74.js';
13
10
  import './chunk-5BDQNSP3.js';
14
11
  import './chunk-WWU2O2SR.js';
15
12
  import './chunk-XQP33UJR.js';
16
- //# sourceMappingURL=WorkflowBuilder-WMAHTZEI.js.map
17
- //# sourceMappingURL=WorkflowBuilder-WMAHTZEI.js.map
13
+ import './chunk-DBOMRIP5.js';
14
+ import './chunk-3ZYUGTIT.js';
15
+ import './chunk-7VNIEIR6.js';
16
+ //# sourceMappingURL=WorkflowBuilder-ETVB66U6.js.map
17
+ //# sourceMappingURL=WorkflowBuilder-ETVB66U6.js.map
@@ -1 +1 @@
1
- {"version":3,"sources":[],"names":[],"mappings":"","file":"WorkflowBuilder-WMAHTZEI.js"}
1
+ {"version":3,"sources":[],"names":[],"mappings":"","file":"WorkflowBuilder-ETVB66U6.js"}
@@ -0,0 +1,11 @@
1
+ export { WorkflowsList } from './chunk-YJKZSUNC.js';
2
+ import './chunk-Y36DJHU3.js';
3
+ import './chunk-MH4AHYK3.js';
4
+ import './chunk-UIY2HBWA.js';
5
+ import './chunk-V5UEEB74.js';
6
+ import './chunk-5BDQNSP3.js';
7
+ import './chunk-WWU2O2SR.js';
8
+ import './chunk-3ZYUGTIT.js';
9
+ import './chunk-7VNIEIR6.js';
10
+ //# sourceMappingURL=WorkflowsList-TZAN3YBA.js.map
11
+ //# sourceMappingURL=WorkflowsList-TZAN3YBA.js.map
@@ -1 +1 @@
1
- {"version":3,"sources":[],"names":[],"mappings":"","file":"WorkflowsList-BXESQVAH.js"}
1
+ {"version":3,"sources":[],"names":[],"mappings":"","file":"WorkflowsList-TZAN3YBA.js"}