@datatechsolutions/ui 2.11.32 → 2.11.33

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.
@@ -1,10 +1,10 @@
1
1
  "use client";
2
2
  'use strict';
3
3
 
4
- var chunk3N76EFJM_js = require('./chunk-3N76EFJM.js');
5
- var chunkYXN2K77G_js = require('./chunk-YXN2K77G.js');
4
+ var chunkLH2JDCO3_js = require('./chunk-LH2JDCO3.js');
6
5
  var chunkP4YYEM4B_js = require('./chunk-P4YYEM4B.js');
7
6
  var chunkPWBWP5FJ_js = require('./chunk-PWBWP5FJ.js');
7
+ var chunkYXN2K77G_js = require('./chunk-YXN2K77G.js');
8
8
  var react = require('react');
9
9
  var react$1 = require('@xyflow/react');
10
10
  require('@xyflow/react/dist/style.css');
@@ -30,6 +30,10 @@ var useWorkflowStore = zustand.create((set, get) => ({
30
30
  showVariableInspector: false,
31
31
  showVersionHistory: false,
32
32
  showRunPanel: false,
33
+ showMinimap: true,
34
+ showDots: true,
35
+ showShortcuts: false,
36
+ cardDisplayMode: "detailed",
33
37
  isRunning: false,
34
38
  nodeResults: {},
35
39
  selectedRunId: null,
@@ -173,6 +177,21 @@ var useWorkflowStore = zustand.create((set, get) => ({
173
177
  toggleRunPanel: () => {
174
178
  set((state) => ({ showRunPanel: !state.showRunPanel }));
175
179
  },
180
+ toggleMinimap: () => {
181
+ set((state) => ({ showMinimap: !state.showMinimap }));
182
+ },
183
+ toggleDots: () => {
184
+ set((state) => ({ showDots: !state.showDots }));
185
+ },
186
+ toggleShortcuts: () => {
187
+ set((state) => ({ showShortcuts: !state.showShortcuts }));
188
+ },
189
+ closeShortcuts: () => {
190
+ set({ showShortcuts: false });
191
+ },
192
+ toggleCardDisplayMode: () => {
193
+ set((state) => ({ cardDisplayMode: state.cardDisplayMode === "detailed" ? "compact" : "detailed" }));
194
+ },
176
195
  setIsRunning: (running) => {
177
196
  set({ isRunning: running });
178
197
  },
@@ -203,6 +222,10 @@ var useWorkflowStore = zustand.create((set, get) => ({
203
222
  showVariableInspector: false,
204
223
  showVersionHistory: false,
205
224
  showRunPanel: false,
225
+ showMinimap: true,
226
+ showDots: true,
227
+ showShortcuts: false,
228
+ cardDisplayMode: "detailed",
206
229
  isRunning: false,
207
230
  nodeResults: {},
208
231
  selectedRunId: null,
@@ -795,6 +818,8 @@ var DraggableCommandBar = react.memo(function DraggableCommandBar2({
795
818
  onControlModeChange,
796
819
  showMinimap,
797
820
  onToggleMinimap,
821
+ showDots,
822
+ onToggleDots,
798
823
  cardDisplayMode,
799
824
  onToggleCardDisplayMode,
800
825
  layoutDirection,
@@ -918,6 +943,16 @@ var DraggableCommandBar = react.memo(function DraggableCommandBar2({
918
943
  children: /* @__PURE__ */ jsxRuntime.jsx(outline.MapIcon, { className: "h-4 w-4" })
919
944
  }
920
945
  ),
946
+ /* @__PURE__ */ jsxRuntime.jsx(
947
+ "button",
948
+ {
949
+ type: "button",
950
+ onClick: onToggleDots,
951
+ title: tWorkflow("toggleDots"),
952
+ className: showDots ? activeButtonClassName : inactiveButtonClassName,
953
+ children: /* @__PURE__ */ jsxRuntime.jsx(outline.EllipsisHorizontalIcon, { className: "h-4 w-4" })
954
+ }
955
+ ),
921
956
  /* @__PURE__ */ jsxRuntime.jsx(
922
957
  "button",
923
958
  {
@@ -994,7 +1029,9 @@ var DraggableCommandBar = react.memo(function DraggableCommandBar2({
994
1029
  { keys: "\u21E7 5", label: tWorkflow("shortcutZoom50") },
995
1030
  { keys: "Esc", label: tWorkflow("shortcutDeselect") },
996
1031
  { keys: "\u232B", label: tWorkflow("shortcutDelete") },
997
- { keys: "L", label: tWorkflow("layoutMode") }
1032
+ { keys: "L", label: tWorkflow("layoutMode") },
1033
+ { keys: "G", label: tWorkflow("toggleDots") },
1034
+ { keys: "M", label: tWorkflow("toggleMinimap") }
998
1035
  ].map((shortcut) => /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "flex items-center justify-between", children: [
999
1036
  /* @__PURE__ */ jsxRuntime.jsx("span", { className: "text-[11px] text-gray-600 dark:text-gray-300", children: shortcut.label }),
1000
1037
  /* @__PURE__ */ jsxRuntime.jsx("span", { className: "flex items-center gap-0.5", children: shortcut.keys.split(" ").map((key) => /* @__PURE__ */ jsxRuntime.jsx(
@@ -1601,7 +1638,7 @@ var AgentToolFlowNode = react.memo(function AgentToolFlowNode2({ id, data, selec
1601
1638
  event.stopPropagation();
1602
1639
  },
1603
1640
  children: /* @__PURE__ */ jsxRuntime.jsx(
1604
- chunk3N76EFJM_js.ToggleSwitch,
1641
+ chunkLH2JDCO3_js.ToggleSwitch,
1605
1642
  {
1606
1643
  checked: Boolean(agentTool.enabled),
1607
1644
  onChange: () => data.onToggle?.(agentTool),
@@ -1709,7 +1746,7 @@ var ToolFlowNode = react.memo(function ToolFlowNode2({ id, data, selected }) {
1709
1746
  event.preventDefault();
1710
1747
  },
1711
1748
  children: /* @__PURE__ */ jsxRuntime.jsx(
1712
- chunk3N76EFJM_js.ToggleSwitch,
1749
+ chunkLH2JDCO3_js.ToggleSwitch,
1713
1750
  {
1714
1751
  checked: Boolean(tool.enabled),
1715
1752
  onChange: () => onToggle(tool),
@@ -1861,7 +1898,7 @@ var RuleFlowNode = react.memo(function RuleFlowNode2({ id, data, selected }) {
1861
1898
  event.preventDefault();
1862
1899
  },
1863
1900
  children: /* @__PURE__ */ jsxRuntime.jsx(
1864
- chunk3N76EFJM_js.ToggleSwitch,
1901
+ chunkLH2JDCO3_js.ToggleSwitch,
1865
1902
  {
1866
1903
  checked: Boolean(rule.enabled),
1867
1904
  onChange: () => onToggle(rule),
@@ -3153,8 +3190,8 @@ function ConfigFormActions({
3153
3190
  saveDisabled = false
3154
3191
  }) {
3155
3192
  return /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "flex justify-end gap-2 border-t border-gray-200 pt-4 dark:border-gray-700", children: [
3156
- /* @__PURE__ */ jsxRuntime.jsx(chunk3N76EFJM_js.Button, { type: "button", outline: true, onClick: onCancel, children: cancelLabel }),
3157
- /* @__PURE__ */ jsxRuntime.jsx(chunk3N76EFJM_js.Button, { type: "button", onClick: onSave, disabled: saveDisabled, children: saveLabel })
3193
+ /* @__PURE__ */ jsxRuntime.jsx(chunkLH2JDCO3_js.Button, { type: "button", outline: true, onClick: onCancel, children: cancelLabel }),
3194
+ /* @__PURE__ */ jsxRuntime.jsx(chunkLH2JDCO3_js.Button, { type: "button", onClick: onSave, disabled: saveDisabled, children: saveLabel })
3158
3195
  ] });
3159
3196
  }
3160
3197
  var COLOR_CLASSES = {
@@ -3401,7 +3438,7 @@ function IfElseNodeConfigForm({ config, onSave, onCancel }) {
3401
3438
  /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "mb-3 flex items-center justify-between", children: [
3402
3439
  /* @__PURE__ */ jsxRuntime.jsx("label", { className: "text-sm font-medium text-gray-700 dark:text-gray-300", children: t("conditionsLabel") }),
3403
3440
  /* @__PURE__ */ jsxRuntime.jsx(
3404
- chunk3N76EFJM_js.Button,
3441
+ chunkLH2JDCO3_js.Button,
3405
3442
  {
3406
3443
  type: "button",
3407
3444
  onClick: handleAddCondition,
@@ -3412,7 +3449,7 @@ function IfElseNodeConfigForm({ config, onSave, onCancel }) {
3412
3449
  /* @__PURE__ */ jsxRuntime.jsx("div", { className: "space-y-3", children: conditions.map((condition, index) => /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "flex items-start gap-2 rounded-lg border border-gray-200 bg-gray-50 p-3 dark:border-gray-700 dark:bg-gray-800/50", children: [
3413
3450
  /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "grid flex-1 grid-cols-3 gap-2", children: [
3414
3451
  /* @__PURE__ */ jsxRuntime.jsx("div", { children: /* @__PURE__ */ jsxRuntime.jsx(
3415
- chunk3N76EFJM_js.FormInput,
3452
+ chunkLH2JDCO3_js.FormInput,
3416
3453
  {
3417
3454
  type: "text",
3418
3455
  label: t("variableLabel"),
@@ -3423,7 +3460,7 @@ function IfElseNodeConfigForm({ config, onSave, onCancel }) {
3423
3460
  }
3424
3461
  ) }),
3425
3462
  /* @__PURE__ */ jsxRuntime.jsx("div", { children: /* @__PURE__ */ jsxRuntime.jsx(
3426
- chunk3N76EFJM_js.FormSelect,
3463
+ chunkLH2JDCO3_js.FormSelect,
3427
3464
  {
3428
3465
  label: t("operatorLabel"),
3429
3466
  value: condition.operator,
@@ -3433,7 +3470,7 @@ function IfElseNodeConfigForm({ config, onSave, onCancel }) {
3433
3470
  }
3434
3471
  ) }),
3435
3472
  /* @__PURE__ */ jsxRuntime.jsx("div", { children: /* @__PURE__ */ jsxRuntime.jsx(
3436
- chunk3N76EFJM_js.FormInput,
3473
+ chunkLH2JDCO3_js.FormInput,
3437
3474
  {
3438
3475
  type: "text",
3439
3476
  label: t("valueLabel"),
@@ -3445,7 +3482,7 @@ function IfElseNodeConfigForm({ config, onSave, onCancel }) {
3445
3482
  ) })
3446
3483
  ] }),
3447
3484
  conditions.length > 1 && /* @__PURE__ */ jsxRuntime.jsx(
3448
- chunk3N76EFJM_js.IconButton,
3485
+ chunkLH2JDCO3_js.IconButton,
3449
3486
  {
3450
3487
  onClick: () => handleRemoveCondition(index),
3451
3488
  icon: /* @__PURE__ */ jsxRuntime.jsx(outline.TrashIcon, { className: "h-4 w-4" }),
@@ -3600,7 +3637,7 @@ function HttpRequestNodeConfigForm({ config, onSave, onCancel }) {
3600
3637
  };
3601
3638
  return /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "space-y-4", children: [
3602
3639
  /* @__PURE__ */ jsxRuntime.jsx(
3603
- chunk3N76EFJM_js.FormSelect,
3640
+ chunkLH2JDCO3_js.FormSelect,
3604
3641
  {
3605
3642
  label: t("methodLabel"),
3606
3643
  value: method,
@@ -3609,7 +3646,7 @@ function HttpRequestNodeConfigForm({ config, onSave, onCancel }) {
3609
3646
  }
3610
3647
  ),
3611
3648
  /* @__PURE__ */ jsxRuntime.jsx(
3612
- chunk3N76EFJM_js.FormInput,
3649
+ chunkLH2JDCO3_js.FormInput,
3613
3650
  {
3614
3651
  type: "text",
3615
3652
  label: t("urlLabel"),
@@ -3622,7 +3659,7 @@ function HttpRequestNodeConfigForm({ config, onSave, onCancel }) {
3622
3659
  /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "mb-2 flex items-center justify-between", children: [
3623
3660
  /* @__PURE__ */ jsxRuntime.jsx("label", { className: "text-sm font-medium text-gray-700 dark:text-gray-300", children: t("headersLabel") }),
3624
3661
  /* @__PURE__ */ jsxRuntime.jsx(
3625
- chunk3N76EFJM_js.Button,
3662
+ chunkLH2JDCO3_js.Button,
3626
3663
  {
3627
3664
  type: "button",
3628
3665
  onClick: handleAddHeader,
@@ -3632,7 +3669,7 @@ function HttpRequestNodeConfigForm({ config, onSave, onCancel }) {
3632
3669
  ] }),
3633
3670
  /* @__PURE__ */ jsxRuntime.jsx("div", { className: "space-y-2", children: headerEntries.map((entry, index) => /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "flex items-center gap-2", children: [
3634
3671
  /* @__PURE__ */ jsxRuntime.jsx(
3635
- chunk3N76EFJM_js.FormInput,
3672
+ chunkLH2JDCO3_js.FormInput,
3636
3673
  {
3637
3674
  type: "text",
3638
3675
  value: entry.key,
@@ -3642,7 +3679,7 @@ function HttpRequestNodeConfigForm({ config, onSave, onCancel }) {
3642
3679
  }
3643
3680
  ),
3644
3681
  /* @__PURE__ */ jsxRuntime.jsx(
3645
- chunk3N76EFJM_js.FormInput,
3682
+ chunkLH2JDCO3_js.FormInput,
3646
3683
  {
3647
3684
  type: "text",
3648
3685
  value: entry.value,
@@ -3652,7 +3689,7 @@ function HttpRequestNodeConfigForm({ config, onSave, onCancel }) {
3652
3689
  }
3653
3690
  ),
3654
3691
  /* @__PURE__ */ jsxRuntime.jsx(
3655
- chunk3N76EFJM_js.IconButton,
3692
+ chunkLH2JDCO3_js.IconButton,
3656
3693
  {
3657
3694
  onClick: () => handleRemoveHeader(index),
3658
3695
  icon: /* @__PURE__ */ jsxRuntime.jsx(outline.TrashIcon, { className: "h-4 w-4" }),
@@ -3664,7 +3701,7 @@ function HttpRequestNodeConfigForm({ config, onSave, onCancel }) {
3664
3701
  ] }, index)) })
3665
3702
  ] }),
3666
3703
  method !== "GET" && /* @__PURE__ */ jsxRuntime.jsx(
3667
- chunk3N76EFJM_js.FormTextarea,
3704
+ chunkLH2JDCO3_js.FormTextarea,
3668
3705
  {
3669
3706
  label: t("bodyLabel"),
3670
3707
  value: body,
@@ -3675,7 +3712,7 @@ function HttpRequestNodeConfigForm({ config, onSave, onCancel }) {
3675
3712
  }
3676
3713
  ),
3677
3714
  /* @__PURE__ */ jsxRuntime.jsx(
3678
- chunk3N76EFJM_js.FormInput,
3715
+ chunkLH2JDCO3_js.FormInput,
3679
3716
  {
3680
3717
  type: "number",
3681
3718
  label: t("timeoutLabel"),
@@ -3706,7 +3743,7 @@ function TemplateTransformNodeConfigForm({ config, onSave, onCancel }) {
3706
3743
  };
3707
3744
  return /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "space-y-4", children: [
3708
3745
  /* @__PURE__ */ jsxRuntime.jsx(
3709
- chunk3N76EFJM_js.FormTextarea,
3746
+ chunkLH2JDCO3_js.FormTextarea,
3710
3747
  {
3711
3748
  label: t("templateLabel"),
3712
3749
  value: template,
@@ -3717,7 +3754,7 @@ function TemplateTransformNodeConfigForm({ config, onSave, onCancel }) {
3717
3754
  }
3718
3755
  ),
3719
3756
  /* @__PURE__ */ jsxRuntime.jsx(
3720
- chunk3N76EFJM_js.FormInput,
3757
+ chunkLH2JDCO3_js.FormInput,
3721
3758
  {
3722
3759
  type: "text",
3723
3760
  label: t("outputVariableLabel"),
@@ -3746,7 +3783,7 @@ function IterationNodeConfigForm({ config, onSave, onCancel }) {
3746
3783
  };
3747
3784
  return /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "space-y-4", children: [
3748
3785
  /* @__PURE__ */ jsxRuntime.jsx(
3749
- chunk3N76EFJM_js.FormInput,
3786
+ chunkLH2JDCO3_js.FormInput,
3750
3787
  {
3751
3788
  type: "text",
3752
3789
  label: t("iteratorVariableLabel"),
@@ -3756,7 +3793,7 @@ function IterationNodeConfigForm({ config, onSave, onCancel }) {
3756
3793
  }
3757
3794
  ),
3758
3795
  /* @__PURE__ */ jsxRuntime.jsx(
3759
- chunk3N76EFJM_js.FormInput,
3796
+ chunkLH2JDCO3_js.FormInput,
3760
3797
  {
3761
3798
  type: "number",
3762
3799
  label: t("maxIterationsLabel"),
@@ -3787,7 +3824,7 @@ function KnowledgeBaseNodeConfigForm({ config, onSave, onCancel }) {
3787
3824
  };
3788
3825
  return /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "space-y-4", children: [
3789
3826
  /* @__PURE__ */ jsxRuntime.jsx(
3790
- chunk3N76EFJM_js.FormInput,
3827
+ chunkLH2JDCO3_js.FormInput,
3791
3828
  {
3792
3829
  type: "text",
3793
3830
  label: t("sourceIdLabel"),
@@ -3797,7 +3834,7 @@ function KnowledgeBaseNodeConfigForm({ config, onSave, onCancel }) {
3797
3834
  }
3798
3835
  ),
3799
3836
  /* @__PURE__ */ jsxRuntime.jsx(
3800
- chunk3N76EFJM_js.FormInput,
3837
+ chunkLH2JDCO3_js.FormInput,
3801
3838
  {
3802
3839
  type: "number",
3803
3840
  label: t("topKLabel"),
@@ -3808,7 +3845,7 @@ function KnowledgeBaseNodeConfigForm({ config, onSave, onCancel }) {
3808
3845
  }
3809
3846
  ),
3810
3847
  /* @__PURE__ */ jsxRuntime.jsx(
3811
- chunk3N76EFJM_js.FormInput,
3848
+ chunkLH2JDCO3_js.FormInput,
3812
3849
  {
3813
3850
  type: "number",
3814
3851
  label: t("similarityThresholdLabel"),
@@ -3839,7 +3876,7 @@ function AnswerNodeConfigForm({ config, onSave, onCancel }) {
3839
3876
  };
3840
3877
  return /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "space-y-4", children: [
3841
3878
  /* @__PURE__ */ jsxRuntime.jsx(
3842
- chunk3N76EFJM_js.FormTextarea,
3879
+ chunkLH2JDCO3_js.FormTextarea,
3843
3880
  {
3844
3881
  label: t("outputTemplateLabel"),
3845
3882
  hint: t("outputTemplateHelp"),
@@ -4273,7 +4310,7 @@ function VariableAggregatorNodeConfigForm({ config, onSave, onCancel }) {
4273
4310
  }
4274
4311
  ),
4275
4312
  /* @__PURE__ */ jsxRuntime.jsx(
4276
- chunk3N76EFJM_js.FormInput,
4313
+ chunkLH2JDCO3_js.FormInput,
4277
4314
  {
4278
4315
  type: "text",
4279
4316
  label: t("outputVariableLabel"),
@@ -4283,7 +4320,7 @@ function VariableAggregatorNodeConfigForm({ config, onSave, onCancel }) {
4283
4320
  }
4284
4321
  ),
4285
4322
  /* @__PURE__ */ jsxRuntime.jsx(
4286
- chunk3N76EFJM_js.FormSelect,
4323
+ chunkLH2JDCO3_js.FormSelect,
4287
4324
  {
4288
4325
  label: t("aggregationModeLabel"),
4289
4326
  value: aggregationMode,
@@ -4316,7 +4353,7 @@ function DocumentExtractorNodeConfigForm({ config, onSave, onCancel }) {
4316
4353
  };
4317
4354
  return /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "space-y-4", children: [
4318
4355
  /* @__PURE__ */ jsxRuntime.jsx(
4319
- chunk3N76EFJM_js.FormSelect,
4356
+ chunkLH2JDCO3_js.FormSelect,
4320
4357
  {
4321
4358
  label: t("extractionModeLabel"),
4322
4359
  value: extractionMode,
@@ -4325,7 +4362,7 @@ function DocumentExtractorNodeConfigForm({ config, onSave, onCancel }) {
4325
4362
  }
4326
4363
  ),
4327
4364
  /* @__PURE__ */ jsxRuntime.jsx(
4328
- chunk3N76EFJM_js.FormInput,
4365
+ chunkLH2JDCO3_js.FormInput,
4329
4366
  {
4330
4367
  type: "text",
4331
4368
  label: t("outputVariableLabel"),
@@ -4502,7 +4539,7 @@ function IterationStartNodeConfigForm({ config, onSave, onCancel }) {
4502
4539
  };
4503
4540
  return /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "space-y-4", children: [
4504
4541
  /* @__PURE__ */ jsxRuntime.jsx(
4505
- chunk3N76EFJM_js.FormInput,
4542
+ chunkLH2JDCO3_js.FormInput,
4506
4543
  {
4507
4544
  type: "text",
4508
4545
  label: t("iteratorVariableLabel"),
@@ -4512,7 +4549,7 @@ function IterationStartNodeConfigForm({ config, onSave, onCancel }) {
4512
4549
  }
4513
4550
  ),
4514
4551
  /* @__PURE__ */ jsxRuntime.jsx(
4515
- chunk3N76EFJM_js.FormInput,
4552
+ chunkLH2JDCO3_js.FormInput,
4516
4553
  {
4517
4554
  type: "text",
4518
4555
  label: t("itemVariableLabel"),
@@ -4522,7 +4559,7 @@ function IterationStartNodeConfigForm({ config, onSave, onCancel }) {
4522
4559
  }
4523
4560
  ),
4524
4561
  /* @__PURE__ */ jsxRuntime.jsx(
4525
- chunk3N76EFJM_js.FormInput,
4562
+ chunkLH2JDCO3_js.FormInput,
4526
4563
  {
4527
4564
  type: "text",
4528
4565
  label: t("indexVariableLabel"),
@@ -5116,7 +5153,7 @@ function GroupNodeConfigForm({ config, onSave, onCancel }) {
5116
5153
  };
5117
5154
  return /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "space-y-4", children: [
5118
5155
  /* @__PURE__ */ jsxRuntime.jsx(
5119
- chunk3N76EFJM_js.FormInput,
5156
+ chunkLH2JDCO3_js.FormInput,
5120
5157
  {
5121
5158
  type: "text",
5122
5159
  label: translations("labelField"),
@@ -5126,7 +5163,7 @@ function GroupNodeConfigForm({ config, onSave, onCancel }) {
5126
5163
  }
5127
5164
  ),
5128
5165
  /* @__PURE__ */ jsxRuntime.jsx(
5129
- chunk3N76EFJM_js.FormTextarea,
5166
+ chunkLH2JDCO3_js.FormTextarea,
5130
5167
  {
5131
5168
  label: translations("descriptionField"),
5132
5169
  value: description,
@@ -5284,7 +5321,7 @@ function ModelProviderNodeConfigForm({ config, onSave, onCancel }) {
5284
5321
  };
5285
5322
  return /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "space-y-4", children: [
5286
5323
  /* @__PURE__ */ jsxRuntime.jsx(
5287
- chunk3N76EFJM_js.FormInput,
5324
+ chunkLH2JDCO3_js.FormInput,
5288
5325
  {
5289
5326
  type: "text",
5290
5327
  label: t("nameLabel"),
@@ -5294,7 +5331,7 @@ function ModelProviderNodeConfigForm({ config, onSave, onCancel }) {
5294
5331
  }
5295
5332
  ),
5296
5333
  /* @__PURE__ */ jsxRuntime.jsx(
5297
- chunk3N76EFJM_js.FormSelect,
5334
+ chunkLH2JDCO3_js.FormSelect,
5298
5335
  {
5299
5336
  label: t("providerTypeLabel"),
5300
5337
  value: providerType,
@@ -5303,7 +5340,7 @@ function ModelProviderNodeConfigForm({ config, onSave, onCancel }) {
5303
5340
  }
5304
5341
  ),
5305
5342
  showRegion && /* @__PURE__ */ jsxRuntime.jsx(
5306
- chunk3N76EFJM_js.FormSelect,
5343
+ chunkLH2JDCO3_js.FormSelect,
5307
5344
  {
5308
5345
  label: t("regionLabel"),
5309
5346
  value: region,
@@ -5312,7 +5349,7 @@ function ModelProviderNodeConfigForm({ config, onSave, onCancel }) {
5312
5349
  }
5313
5350
  ),
5314
5351
  showEndpoint && /* @__PURE__ */ jsxRuntime.jsx(
5315
- chunk3N76EFJM_js.FormInput,
5352
+ chunkLH2JDCO3_js.FormInput,
5316
5353
  {
5317
5354
  type: "text",
5318
5355
  label: t("endpointLabel"),
@@ -5322,7 +5359,7 @@ function ModelProviderNodeConfigForm({ config, onSave, onCancel }) {
5322
5359
  }
5323
5360
  ),
5324
5361
  showApiKey && /* @__PURE__ */ jsxRuntime.jsx(
5325
- chunk3N76EFJM_js.FormInput,
5362
+ chunkLH2JDCO3_js.FormInput,
5326
5363
  {
5327
5364
  type: "password",
5328
5365
  label: t("apiKeyLabel"),
@@ -5332,7 +5369,7 @@ function ModelProviderNodeConfigForm({ config, onSave, onCancel }) {
5332
5369
  }
5333
5370
  ),
5334
5371
  showCredentialRef && /* @__PURE__ */ jsxRuntime.jsx(
5335
- chunk3N76EFJM_js.FormInput,
5372
+ chunkLH2JDCO3_js.FormInput,
5336
5373
  {
5337
5374
  type: "text",
5338
5375
  label: t("credentialRefLabel"),
@@ -5476,7 +5513,7 @@ function LogicNodeModal({ onSave, entities = [], datasources = [], onLoadTables,
5476
5513
  }
5477
5514
  };
5478
5515
  return /* @__PURE__ */ jsxRuntime.jsx(
5479
- chunk3N76EFJM_js.GlassModal,
5516
+ chunkLH2JDCO3_js.GlassModal,
5480
5517
  {
5481
5518
  open,
5482
5519
  onClose: closeModal,
@@ -5536,7 +5573,7 @@ function NodeContextMenu({ position, targetId, onClose, onEdit, onDuplicate, onC
5536
5573
  }
5537
5574
  ];
5538
5575
  return /* @__PURE__ */ jsxRuntime.jsx(
5539
- chunk3N76EFJM_js.ContextMenu,
5576
+ chunkLH2JDCO3_js.ContextMenu,
5540
5577
  {
5541
5578
  position,
5542
5579
  onClose,
@@ -5593,7 +5630,7 @@ function PanelContextMenu({ position, onClose, onPaste, onSelectAll, onFitView,
5593
5630
  }
5594
5631
  ];
5595
5632
  return /* @__PURE__ */ jsxRuntime.jsx(
5596
- chunk3N76EFJM_js.ContextMenu,
5633
+ chunkLH2JDCO3_js.ContextMenu,
5597
5634
  {
5598
5635
  position,
5599
5636
  onClose,
@@ -5740,7 +5777,7 @@ function SelectionContextMenu({
5740
5777
  }
5741
5778
  ];
5742
5779
  return /* @__PURE__ */ jsxRuntime.jsx(
5743
- chunk3N76EFJM_js.ContextMenu,
5780
+ chunkLH2JDCO3_js.ContextMenu,
5744
5781
  {
5745
5782
  position,
5746
5783
  onClose,
@@ -5956,10 +5993,16 @@ function WorkflowCanvasInner({
5956
5993
  const canRedo = useWorkflowStore((state) => state.future.length > 0);
5957
5994
  const controlMode = useWorkflowStore((state) => state.controlMode);
5958
5995
  const setControlMode = useWorkflowStore((state) => state.setControlMode);
5959
- const [showMinimap, setShowMinimap] = react.useState(true);
5960
- const [showShortcuts, setShowShortcuts] = react.useState(false);
5961
- const [cardDisplayMode, setCardDisplayMode] = react.useState("detailed");
5996
+ const showMinimap = useWorkflowStore((s) => s.showMinimap);
5997
+ const showDots = useWorkflowStore((s) => s.showDots);
5998
+ const showShortcuts = useWorkflowStore((s) => s.showShortcuts);
5999
+ const cardDisplayMode = useWorkflowStore((s) => s.cardDisplayMode);
5962
6000
  const layoutDirection = useWorkflowStore((s) => s.layoutDirection);
6001
+ const toggleMinimap = useWorkflowStore((s) => s.toggleMinimap);
6002
+ const toggleDots = useWorkflowStore((s) => s.toggleDots);
6003
+ const toggleShortcuts = useWorkflowStore((s) => s.toggleShortcuts);
6004
+ const closeShortcuts = useWorkflowStore((s) => s.closeShortcuts);
6005
+ const toggleCardDisplayMode = useWorkflowStore((s) => s.toggleCardDisplayMode);
5963
6006
  const setLayoutDirection = useWorkflowStore((s) => s.setLayoutDirection);
5964
6007
  const [editingLogicNodeId, setEditingLogicNodeId] = react.useState(null);
5965
6008
  const handleEditLogicNode = react.useCallback((nodeId) => {
@@ -6734,6 +6777,14 @@ function WorkflowCanvasInner({
6734
6777
  setControlMode("hand");
6735
6778
  return;
6736
6779
  }
6780
+ if (event.key.toLowerCase() === "g") {
6781
+ toggleDots();
6782
+ return;
6783
+ }
6784
+ if (event.key.toLowerCase() === "m") {
6785
+ toggleMinimap();
6786
+ return;
6787
+ }
6737
6788
  if (event.shiftKey && event.key === "!") {
6738
6789
  event.preventDefault();
6739
6790
  zoomTo(1);
@@ -7299,7 +7350,7 @@ function WorkflowCanvasInner({
7299
7350
  deleteKeyCode: ["Backspace", "Delete"],
7300
7351
  connectionLineStyle: { stroke: GRAPH_ACTIVE_EDGE_COLOR, strokeWidth: 2 },
7301
7352
  children: [
7302
- /* @__PURE__ */ jsxRuntime.jsx(
7353
+ showDots && /* @__PURE__ */ jsxRuntime.jsx(
7303
7354
  Background,
7304
7355
  {
7305
7356
  variant: react$1.BackgroundVariant.Dots,
@@ -7335,14 +7386,16 @@ function WorkflowCanvasInner({
7335
7386
  controlMode,
7336
7387
  onControlModeChange: setControlMode,
7337
7388
  showMinimap,
7338
- onToggleMinimap: () => setShowMinimap((previous) => !previous),
7389
+ onToggleMinimap: toggleMinimap,
7390
+ showDots,
7391
+ onToggleDots: toggleDots,
7339
7392
  cardDisplayMode,
7340
- onToggleCardDisplayMode: () => setCardDisplayMode((previous) => previous === "detailed" ? "compact" : "detailed"),
7393
+ onToggleCardDisplayMode: toggleCardDisplayMode,
7341
7394
  layoutDirection,
7342
7395
  onLayoutDirectionChange: handleLayoutDirectionChange,
7343
7396
  showShortcuts,
7344
- onToggleShortcuts: () => setShowShortcuts((previous) => !previous),
7345
- onCloseShortcuts: () => setShowShortcuts(false),
7397
+ onToggleShortcuts: toggleShortcuts,
7398
+ onCloseShortcuts: closeShortcuts,
7346
7399
  tWorkflow
7347
7400
  }
7348
7401
  ),
@@ -7613,5 +7666,5 @@ exports.useModalStore = useModalStore;
7613
7666
  exports.useWorkflowBuilderClient = useWorkflowBuilderClient;
7614
7667
  exports.useWorkflowBuilderClientOptional = useWorkflowBuilderClientOptional;
7615
7668
  exports.useWorkflowStore = useWorkflowStore;
7616
- //# sourceMappingURL=chunk-7O3FQ2PW.js.map
7617
- //# sourceMappingURL=chunk-7O3FQ2PW.js.map
7669
+ //# sourceMappingURL=chunk-HSUB5MTJ.js.map
7670
+ //# sourceMappingURL=chunk-HSUB5MTJ.js.map