@livechat/platform-workflows 0.0.81 → 0.0.83

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/dist/index.js CHANGED
@@ -490,7 +490,7 @@ var getWorkflowsEnv = (key) => {
490
490
  };
491
491
 
492
492
  // src/views/index.tsx
493
- var import_react_router_dom28 = require("react-router-dom");
493
+ var import_react_router_dom29 = require("react-router-dom");
494
494
 
495
495
  // src/views/Waitlist/index.tsx
496
496
  var import_react3 = require("react");
@@ -2302,13 +2302,14 @@ function Waitlist({ image }) {
2302
2302
  var Waitlist_default = Waitlist;
2303
2303
 
2304
2304
  // src/views/Workflows/index.tsx
2305
- var import_react105 = require("react");
2306
- var import_react_router_dom27 = require("react-router-dom");
2305
+ var import_react108 = require("react");
2306
+ var import_react_router_dom28 = require("react-router-dom");
2307
2307
  var import_developer_studio_ui_react46 = require("@livechat/developer-studio-ui-react");
2308
2308
 
2309
2309
  // src/views/Workflows/Creator/index.tsx
2310
2310
  var import_react_router_dom17 = require("react-router-dom");
2311
2311
  var import_developer_studio_ui_react34 = require("@livechat/developer-studio-ui-react");
2312
+ var import_platform_integrations5 = require("@livechat/platform-integrations");
2312
2313
 
2313
2314
  // src/constants/products.ts
2314
2315
  var OTHER_TYPES = {
@@ -11923,7 +11924,7 @@ function OneMessagesProvider({ children }) {
11923
11924
  const generateAiResponseMutation = useGenerateAIResponse();
11924
11925
  const { user } = (0, import_developer_studio_ui_react4.useUserContext)();
11925
11926
  const isLoading = generateAiResponseMutation.isLoading;
11926
- const sendMessage = (message) => __async(this, null, function* () {
11927
+ const sendMessage2 = (message) => __async(this, null, function* () {
11927
11928
  setIsError(null);
11928
11929
  setEvents((prevEvents) => [
11929
11930
  ...prevEvents,
@@ -11985,7 +11986,7 @@ function OneMessagesProvider({ children }) {
11985
11986
  isError,
11986
11987
  groupedEvents: eventsGroup,
11987
11988
  hasAdditionalEvents,
11988
- sendMessage
11989
+ sendMessage: sendMessage2
11989
11990
  },
11990
11991
  children
11991
11992
  }
@@ -12463,7 +12464,7 @@ var validateTasks = (workflow, frames, products) => {
12463
12464
  const resolvingErrors = jsonUtils.getMatchesInObject(task2).map((match2) => {
12464
12465
  const segments = match2.rawValue.split(".");
12465
12466
  const resolved = jsonUtils.resolveTextByContext(match2.value, frame);
12466
- let message = `Invalid field value`;
12467
+ let message = "Invalid field value";
12467
12468
  const params = {};
12468
12469
  if (!(frame == null ? void 0 : frame[segments[0]])) {
12469
12470
  if (segments[0]) {
@@ -12483,7 +12484,7 @@ var validateTasks = (workflow, frames, products) => {
12483
12484
  message += " - trigger not found";
12484
12485
  }
12485
12486
  } else if (!workflow.trigger.type || workflow.trigger.type === "recurring" || workflow.trigger.type === "webhook") {
12486
- message = `Couldn't use manual parameters when trigger is not manual`;
12487
+ message = "Couldn't use manual parameters when trigger is not manual";
12487
12488
  } else {
12488
12489
  message += " - invalid input property";
12489
12490
  }
@@ -12568,7 +12569,7 @@ var validateTasks = (workflow, frames, products) => {
12568
12569
  initial
12569
12570
  );
12570
12571
  }
12571
- return taskReducer(workflow.definition.tasks, [], `/definition/tasks`);
12572
+ return taskReducer(workflow.definition.tasks, [], "/definition/tasks");
12572
12573
  };
12573
12574
  var validateTrigger = (workflow, frames, products) => {
12574
12575
  var _a;
@@ -12581,7 +12582,7 @@ var validateTrigger = (workflow, frames, products) => {
12581
12582
  frames.trigger
12582
12583
  );
12583
12584
  if (!resolved) {
12584
- let message = `Invalid field value`;
12585
+ let message = "Invalid field value";
12585
12586
  const params = {};
12586
12587
  if (segments[0] === "workflow") {
12587
12588
  if (segments[1] === "credentials") {
@@ -12615,14 +12616,14 @@ var validateTrigger = (workflow, frames, products) => {
12615
12616
  }).filter(Boolean);
12616
12617
  const connectionErrors = resolvingErrors.filter((error) => error.params.subType === "credentials").map((error) => {
12617
12618
  return {
12618
- instancePath: `/trigger`,
12619
+ instancePath: "/trigger",
12619
12620
  keyword: "connection",
12620
12621
  message: `Not connected to ${error.params.provider}`,
12621
12622
  params: {}
12622
12623
  };
12623
12624
  });
12624
12625
  const activationError = config2 && config2.customization.provider.startsWith(import_developer_studio_api18.IntegrationNames.Text) && !products.find(({ product }) => product === config2.customization.product) ? {
12625
- instancePath: `/trigger`,
12626
+ instancePath: "/trigger",
12626
12627
  keyword: "activation",
12627
12628
  message: `${config2.customization.product} not activated`,
12628
12629
  params: {}
@@ -12776,8 +12777,8 @@ var getWorkflowValidation = (workflow, internal, external) => {
12776
12777
  if ("missingProperty" in rawError.params) {
12777
12778
  if (rawError.params.missingProperty) {
12778
12779
  rawError.instancePath = `${rawError.instancePath}/${rawError.params.missingProperty}`;
12779
- rawError.message = `property is required`;
12780
- rawError.keyword = `requiredProperty`;
12780
+ rawError.message = "property is required";
12781
+ rawError.keyword = "requiredProperty";
12781
12782
  }
12782
12783
  }
12783
12784
  switch (rawError.keyword) {
@@ -12788,7 +12789,7 @@ var getWorkflowValidation = (workflow, internal, external) => {
12788
12789
  workflow
12789
12790
  )) == null ? void 0 : _a[0] : void 0;
12790
12791
  if (value === null) {
12791
- message = `This field cannot be empty`;
12792
+ message = "This field cannot be empty";
12792
12793
  } else {
12793
12794
  message = "Invalid value type";
12794
12795
  }
@@ -12797,7 +12798,7 @@ var getWorkflowValidation = (workflow, internal, external) => {
12797
12798
  message = `Field '${rawError.params.missingProperty}' is required`;
12798
12799
  break;
12799
12800
  case "requiredProperty":
12800
- message = `This field cannot be empty`;
12801
+ message = "This field cannot be empty";
12801
12802
  break;
12802
12803
  case "minLength":
12803
12804
  message = `Must have more than ${rawError.params.limit} characters`;
@@ -13273,30 +13274,33 @@ function WorkflowCreatorProviderBase({
13273
13274
  return;
13274
13275
  }
13275
13276
  setAction("isSaving", true);
13276
- if (state2.workflow.id) {
13277
- const updateMutationResult = yield updateWorkflowAction.mutateAsync(
13278
- state2.workflow
13279
- );
13280
- if (!silent) {
13281
- notifications.addSuccessToast(
13282
- "Workflow has been updated successfully"
13277
+ try {
13278
+ if (state2.workflow.id) {
13279
+ const updateMutationResult = yield updateWorkflowAction.mutateAsync(
13280
+ state2.workflow
13283
13281
  );
13284
- }
13285
- setWorkflow((prevState) => __spreadProps(__spreadValues({}, prevState), {
13286
- version: updateMutationResult.version
13287
- }));
13288
- } else {
13289
- const workflowId = yield createWorkflowAction.mutateAsync(
13290
- state2.workflow
13291
- );
13292
- if (!silent) {
13293
- notifications.addSuccessToast(
13294
- "Workflow has been created successfully"
13282
+ if (!silent) {
13283
+ notifications.addSuccessToast(
13284
+ "Workflow has been updated successfully"
13285
+ );
13286
+ }
13287
+ setWorkflow((prevState) => __spreadProps(__spreadValues({}, prevState), {
13288
+ version: updateMutationResult.version
13289
+ }));
13290
+ } else {
13291
+ const workflowId = yield createWorkflowAction.mutateAsync(
13292
+ state2.workflow
13295
13293
  );
13294
+ if (!silent) {
13295
+ notifications.addSuccessToast(
13296
+ "Workflow has been created successfully"
13297
+ );
13298
+ }
13299
+ navigate(`/workflow/${workflowId}`);
13296
13300
  }
13297
- navigate(`/workflow/${workflowId}`);
13301
+ } finally {
13302
+ setAction("isSaving", false);
13298
13303
  }
13299
- setAction("isSaving", false);
13300
13304
  }),
13301
13305
  [
13302
13306
  createWorkflowAction,
@@ -13317,33 +13321,39 @@ function WorkflowCreatorProviderBase({
13317
13321
  return;
13318
13322
  }
13319
13323
  setAction("isActivating", true);
13320
- yield activateWorkflowAction.mutateAsync({
13321
- id: state2.workflow.id,
13322
- active: !state2.workflow.active
13323
- });
13324
- setWorkflow((prevState) => __spreadProps(__spreadValues({}, prevState), {
13325
- active: !prevState.active
13326
- }));
13327
- notifications.addSuccessToast(
13328
- `Workflow has been ${state2.workflow.active ? "deactivated" : "activated"}`
13329
- );
13330
- setAction("isActivating", false);
13324
+ try {
13325
+ yield activateWorkflowAction.mutateAsync({
13326
+ id: state2.workflow.id,
13327
+ active: !state2.workflow.active
13328
+ });
13329
+ setWorkflow((prevState) => __spreadProps(__spreadValues({}, prevState), {
13330
+ active: !prevState.active
13331
+ }));
13332
+ notifications.addSuccessToast(
13333
+ `Workflow has been ${state2.workflow.active ? "deactivated" : "activated"}`
13334
+ );
13335
+ } finally {
13336
+ setAction("isActivating", false);
13337
+ }
13331
13338
  }), [activateWorkflowAction, notifications, validate, setWorkflow, setAction]);
13332
13339
  const remove = (0, import_react10.useCallback)(() => __async(this, null, function* () {
13333
13340
  const state2 = autosaveStateRef.current;
13334
13341
  setAction("isRemoving", true);
13335
- if (state2.workflow.draft) {
13336
- if (state2.workflow.related_workflow_id) {
13337
- yield deleteWorkflowAction.mutateAsync({
13338
- id: state2.workflow.related_workflow_id
13339
- });
13342
+ try {
13343
+ if (state2.workflow.draft) {
13344
+ if (state2.workflow.related_workflow_id) {
13345
+ yield deleteWorkflowAction.mutateAsync({
13346
+ id: state2.workflow.related_workflow_id
13347
+ });
13348
+ }
13349
+ } else {
13350
+ yield deleteWorkflowAction.mutateAsync(state2.workflow);
13340
13351
  }
13341
- } else {
13342
- yield deleteWorkflowAction.mutateAsync(state2.workflow);
13352
+ navigate("/workflow/list");
13353
+ notifications.addSuccessToast("Workflow has been removed successfully");
13354
+ } finally {
13355
+ setAction("isRemoving", false);
13343
13356
  }
13344
- navigate("/workflow/list");
13345
- notifications.addSuccessToast("Workflow has been removed successfully");
13346
- setAction("isRemoving", false);
13347
13357
  }), [setAction, navigate, notifications, deleteWorkflowAction]);
13348
13358
  const createDraft = (0, import_react10.useCallback)(
13349
13359
  (options2) => __async(this, null, function* () {
@@ -13358,19 +13368,22 @@ function WorkflowCreatorProviderBase({
13358
13368
  }
13359
13369
  }
13360
13370
  setAction("isCreating", true);
13361
- if (state2.workflow.related_workflow_id) {
13362
- yield deleteWorkflowAction.mutateAsync({
13363
- id: state2.workflow.related_workflow_id
13364
- });
13371
+ try {
13372
+ if (state2.workflow.related_workflow_id) {
13373
+ yield deleteWorkflowAction.mutateAsync({
13374
+ id: state2.workflow.related_workflow_id
13375
+ });
13376
+ }
13377
+ const draftId = yield createWorkflowDraftAction.mutateAsync(
13378
+ state2.workflow
13379
+ );
13380
+ navigate(`/workflow/${draftId}`);
13381
+ notifications.addSuccessToast(
13382
+ "Workflow draft has been created successfully"
13383
+ );
13384
+ } finally {
13385
+ setAction("isCreating", false);
13365
13386
  }
13366
- const draftId = yield createWorkflowDraftAction.mutateAsync(
13367
- state2.workflow
13368
- );
13369
- navigate(`/workflow/${draftId}`);
13370
- notifications.addSuccessToast(
13371
- "Workflow draft has been created successfully"
13372
- );
13373
- setAction("isCreating", false);
13374
13387
  }),
13375
13388
  [
13376
13389
  createWorkflowDraftAction,
@@ -13397,19 +13410,24 @@ function WorkflowCreatorProviderBase({
13397
13410
  return;
13398
13411
  }
13399
13412
  setAction("isPublishing", true);
13400
- if (state2.workflow.id) {
13401
- const { id } = yield publishWorkflowAction.mutateAsync(state2.workflow);
13402
- navigate(`/workflow/${id}`);
13403
- } else {
13404
- const id = yield createWorkflowAction.mutateAsync(__spreadProps(__spreadValues({}, state2.workflow), {
13405
- draft: false
13406
- }));
13407
- navigate(`/workflow/${id}`);
13413
+ try {
13414
+ if (state2.workflow.id) {
13415
+ const { id } = yield publishWorkflowAction.mutateAsync(
13416
+ state2.workflow
13417
+ );
13418
+ navigate(`/workflow/${id}`);
13419
+ } else {
13420
+ const id = yield createWorkflowAction.mutateAsync(__spreadProps(__spreadValues({}, state2.workflow), {
13421
+ draft: false
13422
+ }));
13423
+ navigate(`/workflow/${id}`);
13424
+ }
13425
+ notifications.addSuccessToast(
13426
+ "Workflow draft has been published successfully"
13427
+ );
13428
+ } finally {
13429
+ setAction("isPublishing", false);
13408
13430
  }
13409
- notifications.addSuccessToast(
13410
- "Workflow draft has been published successfully"
13411
- );
13412
- setAction("isPublishing", false);
13413
13431
  }),
13414
13432
  [
13415
13433
  validate,
@@ -13423,26 +13441,29 @@ function WorkflowCreatorProviderBase({
13423
13441
  const discardDraft = (0, import_react10.useCallback)(() => __async(this, null, function* () {
13424
13442
  const state2 = autosaveStateRef.current;
13425
13443
  setAction("isDiscarding", true);
13426
- if (state2.workflow.draft) {
13427
- if (state2.workflow.id) {
13428
- yield deleteWorkflowAction.mutateAsync(state2.workflow);
13429
- }
13430
- if (state2.workflow.related_workflow_id) {
13431
- navigate(`/workflow/${state2.workflow.related_workflow_id}`);
13432
- } else {
13433
- navigate(`/workflow/list`);
13444
+ try {
13445
+ if (state2.workflow.draft) {
13446
+ if (state2.workflow.id) {
13447
+ yield deleteWorkflowAction.mutateAsync(state2.workflow);
13448
+ }
13449
+ if (state2.workflow.related_workflow_id) {
13450
+ navigate(`/workflow/${state2.workflow.related_workflow_id}`);
13451
+ } else {
13452
+ navigate("/workflow/list");
13453
+ }
13454
+ } else if (state2.workflow.related_workflow_id) {
13455
+ yield deleteWorkflowAction.mutateAsync({
13456
+ id: state2.workflow.related_workflow_id,
13457
+ related_workflow_id: state2.workflow.id
13458
+ });
13459
+ navigate(`/workflow/${state2.workflow.id}`);
13434
13460
  }
13435
- } else if (state2.workflow.related_workflow_id) {
13436
- yield deleteWorkflowAction.mutateAsync({
13437
- id: state2.workflow.related_workflow_id,
13438
- related_workflow_id: state2.workflow.id
13439
- });
13440
- navigate(`/workflow/${state2.workflow.id}`);
13461
+ notifications.addSuccessToast(
13462
+ "Workflow draft has been discarded successfully"
13463
+ );
13464
+ } finally {
13465
+ setAction("isDiscarding", false);
13441
13466
  }
13442
- notifications.addSuccessToast(
13443
- "Workflow draft has been discarded successfully"
13444
- );
13445
- setAction("isDiscarding", false);
13446
13467
  }), [deleteWorkflowAction, notifications, navigate, setAction]);
13447
13468
  const [previewModalVisible, setPreviewModalVisible] = (0, import_react10.useState)({ isVisible: false });
13448
13469
  return /* @__PURE__ */ jsx4(
@@ -16186,7 +16207,7 @@ function CustomTagsField({
16186
16207
  error,
16187
16208
  trim: trim2,
16188
16209
  disabled,
16189
- wrapperCss: wrapperCss2,
16210
+ wrapperCss: wrapperCss3,
16190
16211
  onChange
16191
16212
  }) {
16192
16213
  const wrapperRef = (0, import_react33.useRef)(null);
@@ -16194,7 +16215,7 @@ function CustomTagsField({
16194
16215
  (0, import_developer_studio_ui_react15.useOnClickOutside)(wrapperRef, () => {
16195
16216
  setIsPickerVisible(false);
16196
16217
  });
16197
- return /* @__PURE__ */ jsx4("div", { css: wrapperCss2, ref: wrapperRef, children: /* @__PURE__ */ jsx4(
16218
+ return /* @__PURE__ */ jsx4("div", { css: wrapperCss3, ref: wrapperRef, children: /* @__PURE__ */ jsx4(
16198
16219
  CustomTagsInput,
16199
16220
  {
16200
16221
  context,
@@ -18651,16 +18672,16 @@ var import_LexicalComposerContext2 = require("@lexical/react/LexicalComposerCont
18651
18672
  var import_lexical = require("lexical");
18652
18673
  var useSendOneMessage = () => {
18653
18674
  const [editor] = (0, import_LexicalComposerContext2.useLexicalComposerContext)();
18654
- const { sendMessage } = (0, import_react61.useContext)(OneMessagesContext);
18675
+ const { sendMessage: sendMessage2 } = (0, import_react61.useContext)(OneMessagesContext);
18655
18676
  const onSend = (0, import_react61.useCallback)(() => {
18656
18677
  var _a;
18657
18678
  const messageToSend = (_a = editor.getRootElement()) == null ? void 0 : _a.innerText.trim();
18658
18679
  if (!messageToSend) {
18659
18680
  return;
18660
18681
  }
18661
- sendMessage(messageToSend);
18682
+ sendMessage2(messageToSend);
18662
18683
  editor.dispatchCommand(import_lexical.CLEAR_EDITOR_COMMAND, void 0);
18663
- }, [editor, sendMessage]);
18684
+ }, [editor, sendMessage2]);
18664
18685
  return onSend;
18665
18686
  };
18666
18687
 
@@ -21097,9 +21118,16 @@ function PublishWorkflowModal({
21097
21118
  }
21098
21119
 
21099
21120
  // src/views/Workflows/Creator/View.tsx
21121
+ var import_react91 = require("react");
21100
21122
  var import_react_router_dom16 = require("react-router-dom");
21123
+ var import_reactflow17 = require("reactflow");
21101
21124
  var import_design_system_react_components69 = require("@livechat/design-system-react-components");
21102
21125
 
21126
+ // src/utils/sendMessage.ts
21127
+ var sendMessage = (type) => {
21128
+ window.parent.postMessage({ type }, "*");
21129
+ };
21130
+
21103
21131
  // src/views/Workflows/Creator/Panels/Details/index.tsx
21104
21132
  var import_react_router_dom13 = require("react-router-dom");
21105
21133
 
@@ -21313,7 +21341,7 @@ function WorkflowDetailsPanel({
21313
21341
  {
21314
21342
  isSelected: tab === "info",
21315
21343
  onClick: () => {
21316
- navigate(`../info`, { replace: true, relative: "route" });
21344
+ navigate("../info", { replace: true, relative: "route" });
21317
21345
  },
21318
21346
  children: "Info"
21319
21347
  }
@@ -21323,7 +21351,7 @@ function WorkflowDetailsPanel({
21323
21351
  {
21324
21352
  isSelected: tab === "executions",
21325
21353
  onClick: () => {
21326
- navigate(`../executions`, { replace: true, relative: "route" });
21354
+ navigate("../executions", { replace: true, relative: "route" });
21327
21355
  },
21328
21356
  children: "History"
21329
21357
  }
@@ -21774,42 +21802,25 @@ function WorkflowCreatorNavbar() {
21774
21802
  borderBottom: true,
21775
21803
  center: true,
21776
21804
  css: css`
21777
- min-height: 70px;
21805
+ min-height: var(${import_design_system_react_components68.SpacingToken.Spacing14});
21806
+ padding-left: var(${import_design_system_react_components68.SpacingToken.Spacing4});
21778
21807
  `,
21779
21808
  flexEnd: true,
21780
21809
  lowMargin: true,
21781
- lowPadding: true,
21782
21810
  noMaxWidth: true,
21783
21811
  noWrap: true,
21784
21812
  notPadded: true,
21785
- paddingLeft: true,
21786
21813
  spaceBetween: true,
21787
21814
  children: [
21788
- getWorkflowsEnv("isHeadless") && /* @__PURE__ */ jsx4(
21815
+ getWorkflowsEnv("isLiveChatMode") && /* @__PURE__ */ jsx4(
21789
21816
  import_design_system_react_components68.Button,
21790
21817
  {
21791
- css: css`
21792
- font-size: var(${import_design_system_react_components68.SpacingToken.Spacing4});
21793
- text-decoration: none;
21794
- `,
21795
- kind: "text",
21818
+ icon: /* @__PURE__ */ jsx4(import_design_system_react_components68.Icon, { source: import_design_system_icons32.Close }),
21819
+ kind: "plain",
21796
21820
  onClick: () => {
21797
21821
  navigate("/workflow/list");
21798
- },
21799
- children: /* @__PURE__ */ jsxs2(import_developer_studio_ui_react33.Row, { center: true, noWrap: true, notPadded: true, children: [
21800
- /* @__PURE__ */ jsx4(
21801
- import_design_system_react_components68.Icon,
21802
- {
21803
- css: css`
21804
- min-height: var(${import_design_system_react_components68.SpacingToken.Spacing8});
21805
- min-width: var(${import_design_system_react_components68.SpacingToken.Spacing8});
21806
- `,
21807
- size: "large",
21808
- source: import_design_system_icons32.ArrowBarLeft
21809
- }
21810
- ),
21811
- "Workflows"
21812
- ] })
21822
+ sendMessage("openSideNav" /* OpenSideNav */);
21823
+ }
21813
21824
  }
21814
21825
  ),
21815
21826
  /* @__PURE__ */ jsxs2(import_developer_studio_ui_react33.Row, { center: true, noMaxWidth: true, setRowPadding: "4px 16px", spaceBetween: true, children: [
@@ -21995,6 +22006,22 @@ function WorkflowCreatorView() {
21995
22006
  state: { selection },
21996
22007
  focus
21997
22008
  } = useWorkflowCreator();
22009
+ const { fitView } = (0, import_reactflow17.useReactFlow)();
22010
+ (0, import_react91.useEffect)(() => {
22011
+ if (getWorkflowsEnv("isLiveChatMode")) {
22012
+ sendMessage("closeSideNav" /* CloseSideNav */);
22013
+ const timeoutId = setTimeout(() => {
22014
+ fitView({
22015
+ duration: 400,
22016
+ maxZoom: 1.15,
22017
+ minZoom: 1.15
22018
+ });
22019
+ }, 200);
22020
+ return () => {
22021
+ clearTimeout(timeoutId);
22022
+ };
22023
+ }
22024
+ }, [fitView]);
21998
22025
  return /* @__PURE__ */ jsxs2(View2, { children: [
21999
22026
  /* @__PURE__ */ jsx4(Navbar_default, {}),
22000
22027
  /* @__PURE__ */ jsxs2(WorkflowCreatorContent, { grayBackground: getWorkflowsEnv("isHeadless"), children: [
@@ -22028,11 +22055,14 @@ function WorkflowCreator() {
22028
22055
  const { id } = (0, import_react_router_dom17.useParams)();
22029
22056
  const navigate = (0, import_react_router_dom17.useNavigate)();
22030
22057
  const workflowQuery = useFetchWorkflow(id === "new" ? void 0 : id);
22058
+ const credentialsQuery = (0, import_platform_integrations5.useFetchIntegrationCredentialsQuery)();
22059
+ const organizationProducts = (0, import_developer_studio_ui_react34.useFetchOrganizationProducts)();
22031
22060
  useFetchWorkflow((_a = workflowQuery.data) == null ? void 0 : _a.related_workflow_id);
22032
22061
  if (!id) {
22033
22062
  return;
22034
22063
  }
22035
- if (id !== "new" && workflowQuery.isLoading) {
22064
+ const isLoading = workflowQuery.isLoading || credentialsQuery.isInitialLoading || organizationProducts.isInitialLoading;
22065
+ if (id !== "new" && isLoading) {
22036
22066
  return /* @__PURE__ */ jsx4(import_developer_studio_ui_react34.Loader, { stretch: true });
22037
22067
  }
22038
22068
  if (id !== "new" && !workflowQuery.isSuccess) {
@@ -22155,18 +22185,18 @@ function WorkflowCreator() {
22155
22185
  var Creator_default = WorkflowCreator;
22156
22186
 
22157
22187
  // src/views/Workflows/List/index.tsx
22158
- var import_react_router_dom26 = require("react-router-dom");
22188
+ var import_react_router_dom27 = require("react-router-dom");
22159
22189
  var import_developer_studio_ui_react45 = require("@livechat/developer-studio-ui-react");
22160
22190
 
22161
22191
  // src/views/Workflows/List/Modals/Create/index.tsx
22162
22192
  var import_react_router_dom23 = require("react-router-dom");
22163
22193
 
22164
22194
  // src/views/Workflows/List/Modals/PreviewTemplate/index.tsx
22165
- var import_react93 = require("react");
22195
+ var import_react94 = require("react");
22166
22196
  var import_react_router_dom19 = require("react-router-dom");
22167
22197
 
22168
22198
  // src/views/Workflows/List/Modals/PreviewTemplate/Modal.tsx
22169
- var import_react91 = require("react");
22199
+ var import_react92 = require("react");
22170
22200
  var import_react_router_dom18 = require("react-router-dom");
22171
22201
  var import_design_system_icons34 = require("@livechat/design-system-icons");
22172
22202
  var import_design_system_react_components71 = require("@livechat/design-system-react-components");
@@ -22259,7 +22289,7 @@ function WorkflowTemplatePreviewModal({
22259
22289
  const amplitudeWorkflowsJourney = workflowsBlockAmplitudeJourneyFactory(
22260
22290
  user == null ? void 0 : user.meta.email
22261
22291
  );
22262
- const handleClose = (0, import_react91.useCallback)(
22292
+ const handleClose = (0, import_react92.useCallback)(
22263
22293
  (target) => {
22264
22294
  if (onClose) {
22265
22295
  onClose();
@@ -22405,7 +22435,7 @@ function WorkflowTemplatePreview({
22405
22435
  workflow,
22406
22436
  onClose
22407
22437
  }) {
22408
- const flowTemplates = (0, import_react93.useMemo)(() => getWorkflowTemplates(), []);
22438
+ const flowTemplates = (0, import_react94.useMemo)(() => getWorkflowTemplates(), []);
22409
22439
  const params = (0, import_react_router_dom19.useParams)();
22410
22440
  const template = flowTemplates.find((t) => t.id === params.template);
22411
22441
  const targetWorkflow = workflow || (template == null ? void 0 : template.workflow);
@@ -22437,18 +22467,18 @@ function WorkflowTemplatePreview({
22437
22467
  var PreviewTemplate_default = WorkflowTemplatePreview;
22438
22468
 
22439
22469
  // src/views/Workflows/List/Modals/Create/Modal.tsx
22440
- var import_react98 = require("react");
22470
+ var import_react99 = require("react");
22441
22471
  var import_react_router_dom22 = require("react-router-dom");
22442
22472
  var import_design_system_react_components77 = require("@livechat/design-system-react-components");
22443
22473
 
22444
22474
  // src/views/Workflows/List/Home/Home.tsx
22445
- var import_react97 = require("react");
22475
+ var import_react98 = require("react");
22446
22476
  var import_design_system_icons37 = require("@livechat/design-system-icons");
22447
22477
  var import_design_system_react_components76 = require("@livechat/design-system-react-components");
22448
22478
  var import_developer_studio_ui_react41 = require("@livechat/developer-studio-ui-react");
22449
22479
 
22450
22480
  // src/views/Workflows/List/Modals/TemplateList/Filters/Category.tsx
22451
- var import_react94 = require("react");
22481
+ var import_react95 = require("react");
22452
22482
  var import_design_system_icons35 = require("@livechat/design-system-icons");
22453
22483
  var import_design_system_react_components72 = require("@livechat/design-system-react-components");
22454
22484
  var import_developer_studio_api29 = require("@livechat/developer-studio-api");
@@ -22457,8 +22487,9 @@ function WorkflowTemplatesCategoryFilter({
22457
22487
  handleStatus,
22458
22488
  status
22459
22489
  }) {
22460
- const [isVisible, setIsVisible] = (0, import_react94.useState)(false);
22461
- const getItem = (0, import_react94.useCallback)(
22490
+ var _a;
22491
+ const [isVisible, setIsVisible] = (0, import_react95.useState)(false);
22492
+ const getItem = (0, import_react95.useCallback)(
22462
22493
  (key, category, icon2) => ({
22463
22494
  key,
22464
22495
  element: /* @__PURE__ */ jsxs2(import_developer_studio_ui_react37.Row, { gap: `var(${import_design_system_react_components72.SpacingToken.Spacing1});`, notPadded: true, children: [
@@ -22472,25 +22503,26 @@ function WorkflowTemplatesCategoryFilter({
22472
22503
  }),
22473
22504
  [handleStatus]
22474
22505
  );
22506
+ const options = [
22507
+ getItem("0", "All"),
22508
+ getItem("1", import_developer_studio_api29.WorkflowTemplateCategory.NotificationAndAlerts, import_design_system_icons35.Notifications),
22509
+ getItem("2", import_developer_studio_api29.WorkflowTemplateCategory.SalesManagement, import_design_system_icons35.CurrencyDollar),
22510
+ getItem("3", import_developer_studio_api29.WorkflowTemplateCategory.LeadCollection, import_design_system_icons35.TargetArrow),
22511
+ getItem("4", import_developer_studio_api29.WorkflowTemplateCategory.ChatManagement, import_design_system_icons35.ChatDots),
22512
+ getItem("5", import_developer_studio_api29.WorkflowTemplateCategory.CustomerExperience, import_design_system_icons35.Smiles)
22513
+ ];
22514
+ const selectedKey = (_a = options.find(
22515
+ (option) => option.element.props.children[1] === status
22516
+ )) == null ? void 0 : _a.key;
22475
22517
  return /* @__PURE__ */ jsx4(
22476
22518
  import_design_system_react_components72.ActionMenu,
22477
22519
  {
22478
22520
  onClose: () => {
22479
22521
  setIsVisible(false);
22480
22522
  },
22481
- options: [
22482
- getItem("0", "All"),
22483
- getItem(
22484
- "1",
22485
- import_developer_studio_api29.WorkflowTemplateCategory.NotificationAndAlerts,
22486
- import_design_system_icons35.Notifications
22487
- ),
22488
- getItem("2", import_developer_studio_api29.WorkflowTemplateCategory.SalesManagement, import_design_system_icons35.CurrencyDollar),
22489
- getItem("3", import_developer_studio_api29.WorkflowTemplateCategory.LeadCollection, import_design_system_icons35.TargetArrow),
22490
- getItem("4", import_developer_studio_api29.WorkflowTemplateCategory.ChatManagement, import_design_system_icons35.ChatDots),
22491
- getItem("5", import_developer_studio_api29.WorkflowTemplateCategory.CustomerExperience, import_design_system_icons35.Smiles)
22492
- ],
22523
+ options,
22493
22524
  placement: "bottom",
22525
+ selectedOptions: selectedKey ? [selectedKey] : [],
22494
22526
  triggerRenderer: /* @__PURE__ */ jsxs2(
22495
22527
  import_design_system_react_components72.Button,
22496
22528
  {
@@ -22512,7 +22544,7 @@ function WorkflowTemplatesCategoryFilter({
22512
22544
  var Category_default = WorkflowTemplatesCategoryFilter;
22513
22545
 
22514
22546
  // src/views/Workflows/List/Modals/TemplateList/Filters/Product.tsx
22515
- var import_react95 = require("react");
22547
+ var import_react96 = require("react");
22516
22548
  var import_design_system_icons36 = require("@livechat/design-system-icons");
22517
22549
  var import_design_system_react_components73 = require("@livechat/design-system-react-components");
22518
22550
  var import_developer_studio_api30 = require("@livechat/developer-studio-api");
@@ -22521,8 +22553,9 @@ function WorkflowTemplatesProductFilter({
22521
22553
  handleStatus,
22522
22554
  status
22523
22555
  }) {
22524
- const [isVisible, setIsVisible] = (0, import_react95.useState)(false);
22525
- const getItem = (0, import_react95.useCallback)(
22556
+ var _a;
22557
+ const [isVisible, setIsVisible] = (0, import_react96.useState)(false);
22558
+ const getItem = (0, import_react96.useCallback)(
22526
22559
  (key, product, icon2) => ({
22527
22560
  key,
22528
22561
  element: /* @__PURE__ */ jsxs2(import_developer_studio_ui_react38.Row, { gap: `var(${import_design_system_react_components73.SpacingToken.Spacing1});`, notPadded: true, children: [
@@ -22536,23 +22569,28 @@ function WorkflowTemplatesProductFilter({
22536
22569
  }),
22537
22570
  [handleStatus]
22538
22571
  );
22572
+ const options = [
22573
+ getItem("0", "All"),
22574
+ getItem("1", import_developer_studio_api30.IntegrationDisplayNames.LiveChat, import_design_system_icons36.LiveChatColored),
22575
+ getItem("2", import_developer_studio_api30.IntegrationDisplayNames.HelpDesk, import_design_system_icons36.HelpDeskColored),
22576
+ getItem("3", import_developer_studio_api30.IntegrationDisplayNames.OpenAI, import_design_system_icons36.Chatgpt),
22577
+ getItem("4", import_developer_studio_api30.IntegrationDisplayNames.Shopify, import_design_system_icons36.ShopifyColored),
22578
+ getItem("5", import_developer_studio_api30.IntegrationDisplayNames.Mailchimp, import_design_system_icons36.Mailchimp)
22579
+ // getItem('6', IntegrationDisplayNames.Stripe, Stripe),
22580
+ // getItem('7', IntegrationDisplayNames.GoogleSheets, GoogleSheets),
22581
+ ];
22582
+ const selectedKey = (_a = options.find(
22583
+ (option) => option.element.props.children[1] === status
22584
+ )) == null ? void 0 : _a.key;
22539
22585
  return /* @__PURE__ */ jsx4(
22540
22586
  import_design_system_react_components73.ActionMenu,
22541
22587
  {
22542
22588
  onClose: () => {
22543
22589
  setIsVisible(false);
22544
22590
  },
22545
- options: [
22546
- getItem("0", "All"),
22547
- getItem("1", import_developer_studio_api30.IntegrationDisplayNames.LiveChat, import_design_system_icons36.LiveChatColored),
22548
- getItem("2", import_developer_studio_api30.IntegrationDisplayNames.HelpDesk, import_design_system_icons36.HelpDeskColored),
22549
- getItem("3", import_developer_studio_api30.IntegrationDisplayNames.OpenAI, import_design_system_icons36.Chatgpt),
22550
- getItem("4", import_developer_studio_api30.IntegrationDisplayNames.Shopify, import_design_system_icons36.ShopifyColored),
22551
- getItem("5", import_developer_studio_api30.IntegrationDisplayNames.Mailchimp, import_design_system_icons36.Mailchimp)
22552
- // getItem('6', IntegrationDisplayNames.Stripe, Stripe),
22553
- // getItem('7', IntegrationDisplayNames.GoogleSheets, GoogleSheets),
22554
- ],
22591
+ options,
22555
22592
  placement: "bottom",
22593
+ selectedOptions: selectedKey ? [selectedKey] : [],
22556
22594
  triggerRenderer: /* @__PURE__ */ jsxs2(
22557
22595
  import_design_system_react_components73.Button,
22558
22596
  {
@@ -22676,9 +22714,9 @@ var Grid = newStyled.div`
22676
22714
  gap: var(${import_design_system_react_components76.SpacingToken.Spacing3});
22677
22715
  `;
22678
22716
  function WorkflowsHome({ isOnModal }) {
22679
- const [product, setProduct] = (0, import_react97.useState)("All");
22680
- const [category, setCategory] = (0, import_react97.useState)("All");
22681
- const flowTemplates = (0, import_react97.useMemo)(() => getWorkflowTemplates(), []);
22717
+ const [product, setProduct] = (0, import_react98.useState)("All");
22718
+ const [category, setCategory] = (0, import_react98.useState)("All");
22719
+ const flowTemplates = (0, import_react98.useMemo)(() => getWorkflowTemplates(), []);
22682
22720
  const filters = [
22683
22721
  (template) => product === "All" || template.products.includes(product),
22684
22722
  (template) => category === "All" || template.category.includes(category)
@@ -22781,7 +22819,7 @@ var Home_default = WorkflowsHome;
22781
22819
  // src/views/Workflows/List/Modals/Create/Modal.tsx
22782
22820
  function WorkflowCreateModal({ onClose }) {
22783
22821
  const navigate = (0, import_react_router_dom22.useNavigate)();
22784
- const handleClose = (0, import_react98.useCallback)(() => {
22822
+ const handleClose = (0, import_react99.useCallback)(() => {
22785
22823
  if (onClose) {
22786
22824
  onClose();
22787
22825
  return;
@@ -22814,25 +22852,78 @@ function WorkflowCreate() {
22814
22852
  var Create_default = WorkflowCreate;
22815
22853
 
22816
22854
  // src/views/Workflows/List/View.tsx
22817
- var import_react103 = require("react");
22818
- var import_react_router_dom25 = require("react-router-dom");
22819
- var import_design_system_react_components81 = require("@livechat/design-system-react-components");
22855
+ var import_react106 = require("react");
22856
+ var import_react_router_dom26 = require("react-router-dom");
22857
+ var import_design_system_react_components82 = require("@livechat/design-system-react-components");
22820
22858
  var import_developer_studio_api32 = require("@livechat/developer-studio-api");
22821
22859
  var import_developer_studio_ui_react44 = require("@livechat/developer-studio-ui-react");
22822
22860
 
22861
+ // src/views/Workflows/Creator/LiveChatNavbar.tsx
22862
+ var import_react101 = require("react");
22863
+ var import_react_router_dom24 = require("react-router-dom");
22864
+ var import_design_system_icons38 = require("@livechat/design-system-icons");
22865
+ var import_design_system_react_components78 = require("@livechat/design-system-react-components");
22866
+ var wrapperCss = (hasData) => css`
22867
+ flex-shrink: 0;
22868
+ height: var(${import_design_system_react_components78.SpacingToken.Spacing14});
22869
+ width: 100%;
22870
+ display: flex;
22871
+ padding: 0 var(${import_design_system_react_components78.SpacingToken.Spacing6}) 0 var(${import_design_system_react_components78.SpacingToken.Spacing4});
22872
+ align-items: center;
22873
+ gap: var(${import_design_system_react_components78.SpacingToken.Spacing2});
22874
+ border-bottom: 1px solid var(${import_design_system_react_components78.DesignToken.BorderBasicSecondary});
22875
+
22876
+ ${hasData && `> button:last-of-type {
22877
+ margin-left: auto;
22878
+ }`}
22879
+ `;
22880
+ function LiveChatNavbar() {
22881
+ const navigate = (0, import_react_router_dom24.useNavigate)();
22882
+ const workflows = useFetchWorkflows({});
22883
+ const isLoading = workflows.isLoading;
22884
+ const hasNoData = workflows.isSuccess && workflows.data.length === 0;
22885
+ const hasData = !isLoading && !hasNoData;
22886
+ const handleClick = (0, import_react101.useCallback)(() => {
22887
+ sendMessage("toggleSideNav" /* ToggleSideNav */);
22888
+ }, []);
22889
+ return /* @__PURE__ */ jsxs2("div", { css: wrapperCss(hasData), children: [
22890
+ /* @__PURE__ */ jsx4(
22891
+ import_design_system_react_components78.Button,
22892
+ {
22893
+ icon: /* @__PURE__ */ jsx4(import_design_system_react_components78.Icon, { source: import_design_system_icons38.LayoutSidebarLeft }),
22894
+ kind: "plain",
22895
+ onClick: handleClick
22896
+ }
22897
+ ),
22898
+ /* @__PURE__ */ jsx4(import_design_system_react_components78.Heading, { size: "sm", children: "Workflows" }),
22899
+ hasData ? /* @__PURE__ */ jsx4(
22900
+ import_design_system_react_components78.Button,
22901
+ {
22902
+ kind: "primary",
22903
+ onClick: () => {
22904
+ navigate("create");
22905
+ },
22906
+ children: "Create workflow"
22907
+ }
22908
+ ) : null
22909
+ ] });
22910
+ }
22911
+ var LiveChatNavbar_default = LiveChatNavbar;
22912
+
22823
22913
  // src/views/Workflows/List/Grid/Grid.tsx
22824
- var import_design_system_react_components80 = require("@livechat/design-system-react-components");
22914
+ var import_design_system_react_components81 = require("@livechat/design-system-react-components");
22825
22915
  var import_developer_studio_ui_react43 = require("@livechat/developer-studio-ui-react");
22826
22916
 
22827
22917
  // src/views/Workflows/List/Grid/Filters/StatusFilter.tsx
22828
- var import_react100 = require("react");
22829
- var import_design_system_icons38 = require("@livechat/design-system-icons");
22830
- var import_design_system_react_components78 = require("@livechat/design-system-react-components");
22918
+ var import_react103 = require("react");
22919
+ var import_design_system_icons39 = require("@livechat/design-system-icons");
22920
+ var import_design_system_react_components79 = require("@livechat/design-system-react-components");
22831
22921
  function WorkflowStatusFilter({
22832
22922
  handleStatus,
22833
22923
  status
22834
22924
  }) {
22835
- const [isVisible, setIsVisible] = (0, import_react100.useState)(false);
22925
+ var _a;
22926
+ const [isVisible, setIsVisible] = (0, import_react103.useState)(false);
22836
22927
  const items = [
22837
22928
  {
22838
22929
  key: "0",
@@ -22859,18 +22950,20 @@ function WorkflowStatusFilter({
22859
22950
  }
22860
22951
  }
22861
22952
  ];
22953
+ const selectedKey = (_a = items.find((item) => item.element === status)) == null ? void 0 : _a.key;
22862
22954
  return /* @__PURE__ */ jsx4(
22863
- import_design_system_react_components78.ActionMenu,
22955
+ import_design_system_react_components79.ActionMenu,
22864
22956
  {
22865
22957
  onClose: () => {
22866
22958
  setIsVisible(false);
22867
22959
  },
22868
22960
  options: items,
22869
22961
  placement: "bottom",
22962
+ selectedOptions: selectedKey ? [selectedKey] : [],
22870
22963
  triggerRenderer: /* @__PURE__ */ jsxs2(
22871
- import_design_system_react_components78.Button,
22964
+ import_design_system_react_components79.Button,
22872
22965
  {
22873
- icon: /* @__PURE__ */ jsx4(import_design_system_react_components78.Icon, { source: import_design_system_icons38.ToggleLeft }),
22966
+ icon: /* @__PURE__ */ jsx4(import_design_system_react_components79.Icon, { source: import_design_system_icons39.ToggleLeft }),
22874
22967
  kind: "secondary",
22875
22968
  onClick: () => {
22876
22969
  setIsVisible(!isVisible);
@@ -22888,14 +22981,14 @@ function WorkflowStatusFilter({
22888
22981
  var StatusFilter_default = WorkflowStatusFilter;
22889
22982
 
22890
22983
  // src/views/Workflows/List/Grid/Table.tsx
22891
- var import_react_router_dom24 = require("react-router-dom");
22892
- var import_design_system_icons39 = require("@livechat/design-system-icons");
22893
- var import_design_system_react_components79 = require("@livechat/design-system-react-components");
22984
+ var import_react_router_dom25 = require("react-router-dom");
22985
+ var import_design_system_icons40 = require("@livechat/design-system-icons");
22986
+ var import_design_system_react_components80 = require("@livechat/design-system-react-components");
22894
22987
  var import_developer_studio_api31 = require("@livechat/developer-studio-api");
22895
22988
  var import_developer_studio_ui_react42 = require("@livechat/developer-studio-ui-react");
22896
22989
  function WorkflowsTable({ workflowsQuery, state }) {
22897
22990
  var _a, _b, _c;
22898
- const navigate = (0, import_react_router_dom24.useNavigate)();
22991
+ const navigate = (0, import_react_router_dom25.useNavigate)();
22899
22992
  const notifications = (0, import_developer_studio_ui_react42.useNotificationContext)();
22900
22993
  const deleteAction = useDeleteWorkflow();
22901
22994
  const activateWorkflowAction = useActivateWorkflow();
@@ -22932,7 +23025,7 @@ function WorkflowsTable({ workflowsQuery, state }) {
22932
23025
  cursor: pointer;
22933
23026
 
22934
23027
  &:hover {
22935
- background: var(${import_design_system_react_components79.DesignToken.SurfacePrimaryHover});
23028
+ background: var(${import_design_system_react_components80.DesignToken.SurfacePrimaryHover});
22936
23029
  }
22937
23030
  `,
22938
23031
  onClick: () => {
@@ -22940,10 +23033,10 @@ function WorkflowsTable({ workflowsQuery, state }) {
22940
23033
  navigate(`/workflow/${workflow.id}`);
22941
23034
  },
22942
23035
  children: [
22943
- /* @__PURE__ */ jsx4("td", { width: "45%", children: /* @__PURE__ */ jsxs2(import_developer_studio_ui_react42.Row, { gap: `var(${import_design_system_react_components79.SpacingToken.Spacing2})`, noWrap: true, notPadded: true, children: [
22944
- /* @__PURE__ */ jsx4(import_design_system_react_components79.Text, { noMargin: true, size: "sm", children: workflow.name }),
23036
+ /* @__PURE__ */ jsx4("td", { width: "45%", children: /* @__PURE__ */ jsxs2(import_developer_studio_ui_react42.Row, { gap: `var(${import_design_system_react_components80.SpacingToken.Spacing2})`, noWrap: true, notPadded: true, children: [
23037
+ /* @__PURE__ */ jsx4(import_design_system_react_components80.Text, { noMargin: true, size: "sm", children: workflow.name }),
22945
23038
  workflow.related_workflow_id ? /* @__PURE__ */ jsx4(
22946
- import_design_system_react_components79.Tag,
23039
+ import_design_system_react_components80.Tag,
22947
23040
  {
22948
23041
  css: css`
22949
23042
  color: #68afff;
@@ -22970,12 +23063,12 @@ function WorkflowsTable({ workflowsQuery, state }) {
22970
23063
  );
22971
23064
  }) }) }),
22972
23065
  /* @__PURE__ */ jsx4("td", { children: /* @__PURE__ */ jsx4(
22973
- import_design_system_react_components79.Tooltip,
23066
+ import_design_system_react_components80.Tooltip,
22974
23067
  {
22975
23068
  triggerClassName: "tooltip-trigger",
22976
23069
  triggerOnHover: true,
22977
23070
  triggerRenderer: /* @__PURE__ */ jsx4(import_developer_studio_ui_react42.StopPropagation, { children: /* @__PURE__ */ jsx4(
22978
- import_design_system_react_components79.Switch,
23071
+ import_design_system_react_components80.Switch,
22979
23072
  {
22980
23073
  css: css`
22981
23074
  vertical-align: bottom;
@@ -22995,9 +23088,9 @@ function WorkflowsTable({ workflowsQuery, state }) {
22995
23088
  }
22996
23089
  ) }),
22997
23090
  /* @__PURE__ */ jsx4("td", { children: !workflow.draft && /* @__PURE__ */ jsx4(
22998
- import_design_system_react_components79.Button,
23091
+ import_design_system_react_components80.Button,
22999
23092
  {
23000
- icon: /* @__PURE__ */ jsx4(import_design_system_react_components79.Icon, { source: import_design_system_icons39.Info }),
23093
+ icon: /* @__PURE__ */ jsx4(import_design_system_react_components80.Icon, { source: import_design_system_icons40.Info }),
23001
23094
  kind: "plain",
23002
23095
  onClick: (e) => {
23003
23096
  e.stopPropagation();
@@ -23006,15 +23099,15 @@ function WorkflowsTable({ workflowsQuery, state }) {
23006
23099
  }
23007
23100
  ) }),
23008
23101
  /* @__PURE__ */ jsx4("td", { align: "right", children: /* @__PURE__ */ jsx4(import_developer_studio_ui_react42.StopPropagation, { children: /* @__PURE__ */ jsx4(
23009
- import_design_system_react_components79.ActionMenu,
23102
+ import_design_system_react_components80.ActionMenu,
23010
23103
  {
23011
23104
  options: [
23012
23105
  {
23013
23106
  key: "run",
23014
23107
  element: /* @__PURE__ */ jsx4(
23015
- import_design_system_react_components79.ActionMenuItem,
23108
+ import_design_system_react_components80.ActionMenuItem,
23016
23109
  {
23017
- leftNode: /* @__PURE__ */ jsx4(import_design_system_react_components79.Icon, { source: import_design_system_icons39.PlayArrow }),
23110
+ leftNode: /* @__PURE__ */ jsx4(import_design_system_react_components80.Icon, { source: import_design_system_icons40.PlayArrow }),
23018
23111
  children: "Trigger manually"
23019
23112
  }
23020
23113
  ),
@@ -23025,9 +23118,9 @@ function WorkflowsTable({ workflowsQuery, state }) {
23025
23118
  {
23026
23119
  key: "delete",
23027
23120
  element: /* @__PURE__ */ jsx4(
23028
- import_design_system_react_components79.ActionMenuItem,
23121
+ import_design_system_react_components80.ActionMenuItem,
23029
23122
  {
23030
- leftNode: /* @__PURE__ */ jsx4(import_design_system_react_components79.Icon, { source: import_design_system_icons39.Delete }),
23123
+ leftNode: /* @__PURE__ */ jsx4(import_design_system_react_components80.Icon, { source: import_design_system_icons40.Delete }),
23031
23124
  children: "Delete"
23032
23125
  }
23033
23126
  ),
@@ -23043,9 +23136,9 @@ function WorkflowsTable({ workflowsQuery, state }) {
23043
23136
  }
23044
23137
  ],
23045
23138
  triggerRenderer: /* @__PURE__ */ jsx4(
23046
- import_design_system_react_components79.Button,
23139
+ import_design_system_react_components80.Button,
23047
23140
  {
23048
- icon: /* @__PURE__ */ jsx4(import_design_system_react_components79.Icon, { source: import_design_system_icons39.MoreHoriz }),
23141
+ icon: /* @__PURE__ */ jsx4(import_design_system_react_components80.Icon, { source: import_design_system_icons40.MoreHoriz }),
23049
23142
  kind: "text",
23050
23143
  loading: deleteAction.isLoading ? ((_g = deleteAction.variables) == null ? void 0 : _g.id) === workflow.id : void 0,
23051
23144
  size: "compact"
@@ -23064,9 +23157,9 @@ function WorkflowsTable({ workflowsQuery, state }) {
23064
23157
  {
23065
23158
  css: css`
23066
23159
  background: transparent !important;
23067
- color: var(${import_design_system_react_components79.DesignToken.ContentBasicSecondary});
23160
+ color: var(${import_design_system_react_components80.DesignToken.ContentBasicSecondary});
23068
23161
  `,
23069
- children: /* @__PURE__ */ jsx4("td", { align: "left", colSpan: 6, children: /* @__PURE__ */ jsxs2(import_design_system_react_components79.Text, { as: "div", size: "md", children: [
23162
+ children: /* @__PURE__ */ jsx4("td", { align: "left", colSpan: 6, children: /* @__PURE__ */ jsxs2(import_design_system_react_components80.Text, { as: "div", size: "md", children: [
23070
23163
  "There are no",
23071
23164
  " ",
23072
23165
  state.filters.status !== "All" && state.filters.status.toLowerCase(),
@@ -23106,7 +23199,7 @@ function WorkflowsGrid({
23106
23199
  }
23107
23200
  ),
23108
23201
  right: /* @__PURE__ */ jsx4(
23109
- import_design_system_react_components80.SearchInput,
23202
+ import_design_system_react_components81.SearchInput,
23110
23203
  {
23111
23204
  css: () => css`
23112
23205
  min-width: 250px;
@@ -23135,12 +23228,12 @@ var Grid_default = WorkflowsGrid;
23135
23228
 
23136
23229
  // src/views/Workflows/List/View.tsx
23137
23230
  var markedStyles = css`
23138
- color: var(${import_design_system_react_components81.DesignToken.ActionPrimaryDefault});
23231
+ color: var(${import_design_system_react_components82.DesignToken.ActionPrimaryDefault});
23139
23232
  `;
23140
23233
  function WorkflowListView() {
23141
23234
  var _a;
23142
- const navigate = (0, import_react_router_dom25.useNavigate)();
23143
- const [state, setState] = (0, import_react103.useState)({
23235
+ const navigate = (0, import_react_router_dom26.useNavigate)();
23236
+ const [state, setState] = (0, import_react106.useState)({
23144
23237
  filters: {
23145
23238
  status: "All",
23146
23239
  tasks: "All"
@@ -23154,6 +23247,7 @@ function WorkflowListView() {
23154
23247
  return /* @__PURE__ */ jsx4(import_developer_studio_ui_react44.Loader, { stretch: true });
23155
23248
  }
23156
23249
  return /* @__PURE__ */ jsxs2(import_developer_studio_ui_react44.View, { center: hasNoData, noWrap: true, stretch: isLoading, children: [
23250
+ getWorkflowsEnv("isLiveChatMode") ? /* @__PURE__ */ jsx4(import_developer_studio_ui_react44.Row, { noMaxWidth: true, notPadded: true, children: /* @__PURE__ */ jsx4(LiveChatNavbar_default, {}) }) : null,
23157
23251
  /* @__PURE__ */ jsxs2(import_developer_studio_ui_react44.Row, { topMargin: true, verticalCenter: hasNoData, children: [
23158
23252
  /* @__PURE__ */ jsx4(import_developer_studio_ui_react44.Column, { width: hasNoData ? 10 : 8, children: hasNoData ? /* @__PURE__ */ jsx4(import_developer_studio_ui_react44.Row, { notPadded: true, children: /* @__PURE__ */ jsx4(
23159
23253
  import_developer_studio_ui_react44.Intro,
@@ -23164,7 +23258,7 @@ function WorkflowListView() {
23164
23258
  import_developer_studio_ui_react44.Row,
23165
23259
  {
23166
23260
  center: true,
23167
- gap: `var(${import_design_system_react_components81.SpacingToken.Spacing2})`,
23261
+ gap: `var(${import_design_system_react_components82.SpacingToken.Spacing2})`,
23168
23262
  notPadded: true,
23169
23263
  verticalCenter: true,
23170
23264
  children: [
@@ -23184,8 +23278,8 @@ function WorkflowListView() {
23184
23278
  header: "Your workflows"
23185
23279
  }
23186
23280
  ) }),
23187
- hasData ? /* @__PURE__ */ jsx4(import_developer_studio_ui_react44.Column, { pullRight: true, children: /* @__PURE__ */ jsx4(
23188
- import_design_system_react_components81.Button,
23281
+ hasData && !getWorkflowsEnv("isHeadless") ? /* @__PURE__ */ jsx4(import_developer_studio_ui_react44.Column, { pullRight: true, children: /* @__PURE__ */ jsx4(
23282
+ import_design_system_react_components82.Button,
23189
23283
  {
23190
23284
  kind: "primary",
23191
23285
  onClick: () => {
@@ -23195,7 +23289,7 @@ function WorkflowListView() {
23195
23289
  }
23196
23290
  ) }) : null
23197
23291
  ] }),
23198
- /* @__PURE__ */ jsx4(import_developer_studio_ui_react44.Row, { children: /* @__PURE__ */ jsxs2(import_developer_studio_ui_react44.Column, { gap: `var(${import_design_system_react_components81.SpacingToken.Spacing10})`, noMaxWidth: true, width: 12, children: [
23292
+ /* @__PURE__ */ jsx4(import_developer_studio_ui_react44.Row, { children: /* @__PURE__ */ jsxs2(import_developer_studio_ui_react44.Column, { gap: `var(${import_design_system_react_components82.SpacingToken.Spacing10})`, noMaxWidth: true, width: 12, children: [
23199
23293
  hasData ? /* @__PURE__ */ jsx4(
23200
23294
  Grid_default,
23201
23295
  {
@@ -23216,21 +23310,21 @@ var View_default2 = WorkflowListView;
23216
23310
  function WorkflowList() {
23217
23311
  return /* @__PURE__ */ jsxs2(import_developer_studio_ui_react45.Row, { noMaxWidth: true, noWrap: true, notPadded: true, stretch: true, children: [
23218
23312
  /* @__PURE__ */ jsx4(View_default2, {}),
23219
- /* @__PURE__ */ jsxs2(import_react_router_dom26.Routes, { children: [
23220
- /* @__PURE__ */ jsx4(import_react_router_dom26.Route, { element: /* @__PURE__ */ jsx4(PreviewTemplate_default, {}), path: "preview/:template" }),
23221
- /* @__PURE__ */ jsx4(import_react_router_dom26.Route, { element: /* @__PURE__ */ jsx4(Create_default, {}), path: "create/*" }),
23222
- /* @__PURE__ */ jsx4(import_react_router_dom26.Route, { element: /* @__PURE__ */ jsx4(WorkflowDetails, { headerType: "name" }), path: ":id/*" })
23313
+ /* @__PURE__ */ jsxs2(import_react_router_dom27.Routes, { children: [
23314
+ /* @__PURE__ */ jsx4(import_react_router_dom27.Route, { element: /* @__PURE__ */ jsx4(PreviewTemplate_default, {}), path: "preview/:template" }),
23315
+ /* @__PURE__ */ jsx4(import_react_router_dom27.Route, { element: /* @__PURE__ */ jsx4(Create_default, {}), path: "create/*" }),
23316
+ /* @__PURE__ */ jsx4(import_react_router_dom27.Route, { element: /* @__PURE__ */ jsx4(WorkflowDetails, { headerType: "name" }), path: ":id/*" })
23223
23317
  ] })
23224
23318
  ] });
23225
23319
  }
23226
23320
  var List_default2 = WorkflowList;
23227
23321
 
23228
23322
  // src/views/Workflows/index.tsx
23229
- var import_jsx_runtime115 = require("react/jsx-runtime");
23323
+ var import_jsx_runtime116 = require("react/jsx-runtime");
23230
23324
  function Workflows() {
23231
- const navigate = (0, import_react_router_dom27.useNavigate)();
23325
+ const navigate = (0, import_react_router_dom28.useNavigate)();
23232
23326
  const { userHasInstalledWorkflows, isWorkflowAppLoading } = useFetchUserInstalledWorkflows();
23233
- (0, import_react105.useEffect)(() => {
23327
+ (0, import_react108.useEffect)(() => {
23234
23328
  if (isWorkflowAppLoading) {
23235
23329
  return;
23236
23330
  }
@@ -23239,31 +23333,31 @@ function Workflows() {
23239
23333
  }
23240
23334
  }, [navigate, isWorkflowAppLoading, userHasInstalledWorkflows]);
23241
23335
  if (isWorkflowAppLoading) {
23242
- return /* @__PURE__ */ (0, import_jsx_runtime115.jsx)(import_developer_studio_ui_react46.Loader, { stretch: true });
23336
+ return /* @__PURE__ */ (0, import_jsx_runtime116.jsx)(import_developer_studio_ui_react46.Loader, { stretch: true });
23243
23337
  }
23244
- return /* @__PURE__ */ (0, import_jsx_runtime115.jsxs)(import_react_router_dom27.Routes, { children: [
23245
- /* @__PURE__ */ (0, import_jsx_runtime115.jsx)(import_react_router_dom27.Route, { element: /* @__PURE__ */ (0, import_jsx_runtime115.jsx)(import_react_router_dom27.Navigate, { replace: true, to: "list" }), path: "" }),
23246
- /* @__PURE__ */ (0, import_jsx_runtime115.jsx)(import_react_router_dom27.Route, { element: /* @__PURE__ */ (0, import_jsx_runtime115.jsx)(List_default2, {}), path: "list/*" }),
23247
- /* @__PURE__ */ (0, import_jsx_runtime115.jsx)(import_react_router_dom27.Route, { element: /* @__PURE__ */ (0, import_jsx_runtime115.jsx)(Creator_default, {}), path: ":id/*" })
23338
+ return /* @__PURE__ */ (0, import_jsx_runtime116.jsxs)(import_react_router_dom28.Routes, { children: [
23339
+ /* @__PURE__ */ (0, import_jsx_runtime116.jsx)(import_react_router_dom28.Route, { element: /* @__PURE__ */ (0, import_jsx_runtime116.jsx)(import_react_router_dom28.Navigate, { replace: true, to: "list" }), path: "" }),
23340
+ /* @__PURE__ */ (0, import_jsx_runtime116.jsx)(import_react_router_dom28.Route, { element: /* @__PURE__ */ (0, import_jsx_runtime116.jsx)(List_default2, {}), path: "list/*" }),
23341
+ /* @__PURE__ */ (0, import_jsx_runtime116.jsx)(import_react_router_dom28.Route, { element: /* @__PURE__ */ (0, import_jsx_runtime116.jsx)(Creator_default, {}), path: ":id/*" })
23248
23342
  ] });
23249
23343
  }
23250
23344
  var Workflows_default = Workflows;
23251
23345
 
23252
23346
  // src/views/Common/LoginError.tsx
23253
- var import_design_system_react_components82 = require("@livechat/design-system-react-components");
23347
+ var import_design_system_react_components83 = require("@livechat/design-system-react-components");
23254
23348
  var import_developer_studio_ui_react47 = require("@livechat/developer-studio-ui-react");
23255
23349
  var imgContainerCss2 = css`
23256
23350
  img {
23257
23351
  height: auto;
23258
23352
  max-width: 100%;
23259
- margin-bottom: var(${import_design_system_react_components82.SpacingToken.Spacing10});
23353
+ margin-bottom: var(${import_design_system_react_components83.SpacingToken.Spacing10});
23260
23354
  }
23261
23355
  `;
23262
23356
  var paragraphCss = (heading) => css`
23263
23357
  ${heading ? import_developer_studio_ui_react47.theme.typography.heading.xs : import_developer_studio_ui_react47.theme.typography.paragraph.s}
23264
- margin-top: var(${heading ? import_design_system_react_components82.SpacingToken.Spacing10 : import_design_system_react_components82.SpacingToken.Spacing2});
23358
+ margin-top: var(${heading ? import_design_system_react_components83.SpacingToken.Spacing10 : import_design_system_react_components83.SpacingToken.Spacing2});
23265
23359
  `;
23266
- var wrapperCss = css`
23360
+ var wrapperCss2 = css`
23267
23361
  display: flex;
23268
23362
  flex-direction: column;
23269
23363
  align-items: center;
@@ -23277,12 +23371,12 @@ function LoginErrorPage({
23277
23371
  onAuthorize
23278
23372
  }) {
23279
23373
  if (getWorkflowsEnv("isHeadless")) {
23280
- return /* @__PURE__ */ jsxs2("div", { css: wrapperCss, children: [
23374
+ return /* @__PURE__ */ jsxs2("div", { css: wrapperCss2, children: [
23281
23375
  /* @__PURE__ */ jsx4(import_developer_studio_ui_react47.Row, { center: true, noMaxWidth: true, verticalCenter: true, children: /* @__PURE__ */ jsx4(import_developer_studio_ui_react47.Column, { center: true, width: 10, children: /* @__PURE__ */ jsx4("div", { css: imgContainerCss2, children: welcomeImage }) }) }),
23282
23376
  /* @__PURE__ */ jsx4(import_developer_studio_ui_react47.Row, { center: true, noMaxWidth: true, verticalCenter: true, children: /* @__PURE__ */ jsxs2(import_developer_studio_ui_react47.Column, { center: true, width: 10, children: [
23283
23377
  /* @__PURE__ */ jsx4(import_developer_studio_ui_react47.Intro, { center: true, header: "Welcome to Workflows!", headerSize: "m" }),
23284
23378
  /* @__PURE__ */ jsx4("p", { css: paragraphCss(false), children: "You're using a browser that required additional login to access Workflows" }),
23285
- /* @__PURE__ */ jsx4("div", { children: /* @__PURE__ */ jsx4(import_design_system_react_components82.Button, { kind: "primary", onClick: onAuthorize, children: "Login with Text" }) })
23379
+ /* @__PURE__ */ jsx4("div", { children: /* @__PURE__ */ jsx4(import_design_system_react_components83.Button, { kind: "primary", onClick: onAuthorize, children: "Login with Text" }) })
23286
23380
  ] }) })
23287
23381
  ] });
23288
23382
  }
@@ -23291,11 +23385,11 @@ function LoginErrorPage({
23291
23385
  var LoginError_default = LoginErrorPage;
23292
23386
 
23293
23387
  // src/views/index.tsx
23294
- var import_jsx_runtime117 = require("react/jsx-runtime");
23388
+ var import_jsx_runtime118 = require("react/jsx-runtime");
23295
23389
  function WorkflowsModule({ waitlistImage }) {
23296
- return /* @__PURE__ */ (0, import_jsx_runtime117.jsxs)(import_react_router_dom28.Routes, { children: [
23297
- /* @__PURE__ */ (0, import_jsx_runtime117.jsx)(import_react_router_dom28.Route, { element: /* @__PURE__ */ (0, import_jsx_runtime117.jsx)(Workflows_default, {}), path: "*" }),
23298
- /* @__PURE__ */ (0, import_jsx_runtime117.jsx)(import_react_router_dom28.Route, { element: /* @__PURE__ */ (0, import_jsx_runtime117.jsx)(Waitlist_default, { image: waitlistImage }), path: "/waitlist" })
23390
+ return /* @__PURE__ */ (0, import_jsx_runtime118.jsxs)(import_react_router_dom29.Routes, { children: [
23391
+ /* @__PURE__ */ (0, import_jsx_runtime118.jsx)(import_react_router_dom29.Route, { element: /* @__PURE__ */ (0, import_jsx_runtime118.jsx)(Workflows_default, {}), path: "*" }),
23392
+ /* @__PURE__ */ (0, import_jsx_runtime118.jsx)(import_react_router_dom29.Route, { element: /* @__PURE__ */ (0, import_jsx_runtime118.jsx)(Waitlist_default, { image: waitlistImage }), path: "/waitlist" })
23299
23393
  ] });
23300
23394
  }
23301
23395
  // Annotate the CommonJS export names for ESM import in node: