@wix/cli-app 1.1.70 → 1.1.72

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 (70) hide show
  1. package/build/{CreateVersionCommand-SP5IPVGU.js → CreateVersionCommand-I6EHK2T2.js} +14 -14
  2. package/build/{DevCommand-TCV5QWXG.js → DevCommand-DLODMFKI.js} +12 -12
  3. package/build/{GenerateCommand-54ISTYYO.js → GenerateCommand-5KR6GRHW.js} +832 -574
  4. package/build/GenerateCommand-5KR6GRHW.js.map +1 -0
  5. package/build/{LogsCommand-H7TEJMU7.js → LogsCommand-EAOVZZG6.js} +4 -4
  6. package/build/PreviewCommand-B6XM6FQV.js +23 -0
  7. package/build/{ReleaseCommand-6TNACMTW.js → ReleaseCommand-W36AG2IN.js} +15 -15
  8. package/build/{ServeCommand-R7DZRKEJ.js → ServeCommand-BEXBK5ZA.js} +14 -14
  9. package/build/ServeCommand-BEXBK5ZA.js.map +1 -0
  10. package/build/{build-GAYTNX3U.js → build-KITE7EW3.js} +33 -14
  11. package/build/build-KITE7EW3.js.map +1 -0
  12. package/build/{chunk-ZWTX6NE6.js → chunk-4JQ75QTB.js} +3 -3
  13. package/build/{chunk-H27IPZI4.js → chunk-5KBGN6AI.js} +161 -65
  14. package/build/{chunk-H27IPZI4.js.map → chunk-5KBGN6AI.js.map} +1 -1
  15. package/build/{chunk-ZEKT3LRI.js → chunk-AKMZVY3B.js} +3 -3
  16. package/build/{chunk-G6UZ5AZ6.js → chunk-AU6RLQTX.js} +3 -3
  17. package/build/{chunk-OHC3CHII.js → chunk-DN2W5I6V.js} +7 -3
  18. package/build/chunk-DN2W5I6V.js.map +1 -0
  19. package/build/{chunk-BCLAONW5.js → chunk-EK4R4AAZ.js} +3 -3
  20. package/build/{chunk-DHGAE3R5.js → chunk-EQX4ZNQY.js} +28 -30
  21. package/build/{chunk-DHGAE3R5.js.map → chunk-EQX4ZNQY.js.map} +1 -1
  22. package/build/{chunk-UY2MROJE.js → chunk-EZYYTB4A.js} +16 -8
  23. package/build/chunk-EZYYTB4A.js.map +1 -0
  24. package/build/{chunk-MMYH4YFU.js → chunk-F6K4Z645.js} +5 -5
  25. package/build/{chunk-HY44AJBX.js → chunk-FUJL6MQF.js} +10 -2
  26. package/build/chunk-FUJL6MQF.js.map +1 -0
  27. package/build/{chunk-RTHHQIW6.js → chunk-JHRMWYBU.js} +3 -3
  28. package/build/{chunk-WSC7O536.js → chunk-JVG7ATK2.js} +3 -3
  29. package/build/{chunk-7V3AXMMP.js → chunk-M7NEF3JI.js} +5 -5
  30. package/build/{chunk-GZNYJNVI.js → chunk-MXNYBCOX.js} +8975 -8690
  31. package/build/chunk-MXNYBCOX.js.map +1 -0
  32. package/build/{chunk-MX6MY676.js → chunk-OU2SCVZ4.js} +4 -3
  33. package/build/{chunk-TFBVDCPM.js → chunk-P7Z3QMUB.js} +3 -3
  34. package/build/{chunk-JTGROBAJ.js → chunk-U7NOLQSJ.js} +2 -2
  35. package/build/{chunk-KG6JXI3B.js → chunk-VYH54DVP.js} +8 -8
  36. package/build/index.js +20 -20
  37. package/build/{preview-MYNAHHYE.js → preview-MYW7A4XF.js} +12 -12
  38. package/build/{render-command-NFMTZDGL.js → render-command-5UQ5JPA6.js} +6 -6
  39. package/package.json +7 -6
  40. package/templates/blocks-support/dependencies.json +6 -0
  41. package/templates/blocks-widget/files/api.ts.ejs +1 -1
  42. package/templates/blocks-widget/files/widget.ts.ejs +8 -1
  43. package/templates/blocks-widget-panel/files/panel.ts.ejs +8 -0
  44. package/build/GenerateCommand-54ISTYYO.js.map +0 -1
  45. package/build/PreviewCommand-CTYKGXWG.js +0 -23
  46. package/build/ServeCommand-R7DZRKEJ.js.map +0 -1
  47. package/build/build-GAYTNX3U.js.map +0 -1
  48. package/build/chunk-GZNYJNVI.js.map +0 -1
  49. package/build/chunk-HY44AJBX.js.map +0 -1
  50. package/build/chunk-OHC3CHII.js.map +0 -1
  51. package/build/chunk-UY2MROJE.js.map +0 -1
  52. /package/build/{CreateVersionCommand-SP5IPVGU.js.map → CreateVersionCommand-I6EHK2T2.js.map} +0 -0
  53. /package/build/{DevCommand-TCV5QWXG.js.map → DevCommand-DLODMFKI.js.map} +0 -0
  54. /package/build/{LogsCommand-H7TEJMU7.js.map → LogsCommand-EAOVZZG6.js.map} +0 -0
  55. /package/build/{PreviewCommand-CTYKGXWG.js.map → PreviewCommand-B6XM6FQV.js.map} +0 -0
  56. /package/build/{ReleaseCommand-6TNACMTW.js.map → ReleaseCommand-W36AG2IN.js.map} +0 -0
  57. /package/build/{chunk-ZWTX6NE6.js.map → chunk-4JQ75QTB.js.map} +0 -0
  58. /package/build/{chunk-ZEKT3LRI.js.map → chunk-AKMZVY3B.js.map} +0 -0
  59. /package/build/{chunk-G6UZ5AZ6.js.map → chunk-AU6RLQTX.js.map} +0 -0
  60. /package/build/{chunk-BCLAONW5.js.map → chunk-EK4R4AAZ.js.map} +0 -0
  61. /package/build/{chunk-MMYH4YFU.js.map → chunk-F6K4Z645.js.map} +0 -0
  62. /package/build/{chunk-RTHHQIW6.js.map → chunk-JHRMWYBU.js.map} +0 -0
  63. /package/build/{chunk-WSC7O536.js.map → chunk-JVG7ATK2.js.map} +0 -0
  64. /package/build/{chunk-7V3AXMMP.js.map → chunk-M7NEF3JI.js.map} +0 -0
  65. /package/build/{chunk-MX6MY676.js.map → chunk-OU2SCVZ4.js.map} +0 -0
  66. /package/build/{chunk-TFBVDCPM.js.map → chunk-P7Z3QMUB.js.map} +0 -0
  67. /package/build/{chunk-JTGROBAJ.js.map → chunk-U7NOLQSJ.js.map} +0 -0
  68. /package/build/{chunk-KG6JXI3B.js.map → chunk-VYH54DVP.js.map} +0 -0
  69. /package/build/{preview-MYNAHHYE.js.map → preview-MYW7A4XF.js.map} +0 -0
  70. /package/build/{render-command-NFMTZDGL.js.map → render-command-5UQ5JPA6.js.map} +0 -0
@@ -2,23 +2,25 @@ import { createRequire as _createRequire } from 'node:module';
2
2
  const require = _createRequire(import.meta.url);
3
3
  import {
4
4
  createI18nT
5
- } from "./chunk-ZWTX6NE6.js";
6
- import "./chunk-HY44AJBX.js";
5
+ } from "./chunk-4JQ75QTB.js";
6
+ import "./chunk-FUJL6MQF.js";
7
7
  import {
8
8
  useWixCliAppBi
9
- } from "./chunk-ZEKT3LRI.js";
9
+ } from "./chunk-AKMZVY3B.js";
10
10
  import {
11
11
  componentGenerator,
12
+ dependenciesUpdater,
12
13
  require_lodash,
13
14
  useBackendComponents
14
- } from "./chunk-MX6MY676.js";
15
+ } from "./chunk-OU2SCVZ4.js";
15
16
  import {
16
17
  execaCommand
17
18
  } from "./chunk-ZR3N5INU.js";
18
19
  import {
19
20
  require_baseUniq
20
- } from "./chunk-JTGROBAJ.js";
21
+ } from "./chunk-U7NOLQSJ.js";
21
22
  import {
23
+ BLOCKS_TYPES_PATH,
22
24
  ComponentType,
23
25
  DASHBOARD_MENU_PLUGINS_DIR,
24
26
  DASHBOARD_PAGES_DIR,
@@ -30,6 +32,7 @@ import {
30
32
  SITE_PLUGINS_DIR,
31
33
  SITE_WIDGETS_DIR,
32
34
  ServicePluginTypeToFolderName,
35
+ TS_CONFIG_FILENAME,
33
36
  WEB_METHOD_DIR,
34
37
  composeValidations,
35
38
  createDashboardRouteValidation,
@@ -46,6 +49,7 @@ import {
46
49
  getServicePluginsFolder,
47
50
  getSitePluginsDir,
48
51
  getSiteWidgetsDir,
52
+ getTSConfigFilePath,
49
53
  pRetry,
50
54
  pathExists,
51
55
  pathValidation,
@@ -55,6 +59,7 @@ import {
55
59
  require_memoize,
56
60
  saveWixConfig,
57
61
  toJsonString,
62
+ tsConfigSchema,
58
63
  useCustomElementDirectoryValidation,
59
64
  useCustomElementNameValidation,
60
65
  useDevCenterClient,
@@ -65,7 +70,7 @@ import {
65
70
  useValidation,
66
71
  uuidValidation,
67
72
  writeJson
68
- } from "./chunk-H27IPZI4.js";
73
+ } from "./chunk-5KBGN6AI.js";
69
74
  import {
70
75
  AsyncCallbackStatus,
71
76
  Box_default,
@@ -90,7 +95,7 @@ import {
90
95
  useAsyncCallback,
91
96
  useTranslation,
92
97
  z
93
- } from "./chunk-OHC3CHII.js";
98
+ } from "./chunk-DN2W5I6V.js";
94
99
  import {
95
100
  __commonJS,
96
101
  __dirname,
@@ -117,8 +122,8 @@ init_esm_shims();
117
122
 
118
123
  // src/components/GenerateCommand/GenerateCommand.tsx
119
124
  init_esm_shims();
120
- var import_react25 = __toESM(require_react(), 1);
121
- var import_variant27 = __toESM(require_lib(), 1);
125
+ var import_react27 = __toESM(require_react(), 1);
126
+ var import_variant28 = __toESM(require_lib(), 1);
122
127
 
123
128
  // src/components/GenerateCommand/dashboad-page/DashboardPage.tsx
124
129
  init_esm_shims();
@@ -194,7 +199,7 @@ function createServicePluginValidation(servicePlugins, servicePluginType) {
194
199
  "Plugin name must be unique"
195
200
  ],
196
201
  [
197
- (path14) => path14.length < 20,
202
+ (path15) => path15.length < 20,
198
203
  "Plugin name must be shorter than 20 characters"
199
204
  ],
200
205
  [
@@ -355,14 +360,6 @@ async function isUsingWorkspaces(rootDir) {
355
360
  var NPM = class {
356
361
  constructor(repoType) {
357
362
  this.repoType = repoType;
358
- if ((0, import_variant3.isType)(repoType, RepoType.Monorepo)) {
359
- throw new CliError({
360
- code: CliErrorCode.UnsupportedPackageManagerWorkspaces({
361
- packageManagerName: this.name
362
- }),
363
- cause: null
364
- });
365
- }
366
363
  }
367
364
  name = "npm";
368
365
  getUsage(name) {
@@ -375,9 +372,47 @@ var NPM = class {
375
372
  return "npm run";
376
373
  }
377
374
  async setup(_cwd) {
375
+ if ((0, import_variant3.isType)(this.repoType, RepoType.Monorepo)) {
376
+ throw new CliError({
377
+ code: CliErrorCode.UnsupportedPackageManagerWorkspaces({
378
+ packageManagerName: this.name
379
+ }),
380
+ cause: null
381
+ });
382
+ }
378
383
  }
379
384
  async runInstall(cwd) {
380
- await runCommand(this.getInstallCmd(), { cwd });
385
+ try {
386
+ await runCommand(this.getInstallCmd(), { cwd });
387
+ } catch (e) {
388
+ throw new CliError({
389
+ code: CliErrorCode.FailedToInstallPackages(),
390
+ info: { packageManager: this.name },
391
+ cause: e
392
+ });
393
+ }
394
+ }
395
+ async runInstallPackage(cwd, packageName) {
396
+ try {
397
+ await runCommand(`npm install ${packageName}`, { cwd });
398
+ } catch (e) {
399
+ throw new CliError({
400
+ code: CliErrorCode.FailedToInstallPackage({ packageName }),
401
+ info: { packageManager: this.name },
402
+ cause: e
403
+ });
404
+ }
405
+ }
406
+ async runUninstallPackage(cwd, packageName) {
407
+ try {
408
+ await runCommand(`npm uninstall ${packageName}`, { cwd });
409
+ } catch (e) {
410
+ throw new CliError({
411
+ code: CliErrorCode.FailedToUninstallPackage({ packageName }),
412
+ info: { packageManager: this.name },
413
+ cause: e
414
+ });
415
+ }
381
416
  }
382
417
  };
383
418
 
@@ -426,7 +461,37 @@ var Yarn = class {
426
461
  }).complete();
427
462
  }
428
463
  async runInstall(cwd) {
429
- await runCommand(this.getInstallCmd(), { cwd });
464
+ try {
465
+ await runCommand(this.getInstallCmd(), { cwd });
466
+ } catch (e) {
467
+ throw new CliError({
468
+ code: CliErrorCode.FailedToInstallPackages(),
469
+ info: { packageManager: this.name },
470
+ cause: e
471
+ });
472
+ }
473
+ }
474
+ async runInstallPackage(cwd, packageName) {
475
+ try {
476
+ await runCommand(`yarn add ${packageName}`, { cwd });
477
+ } catch (e) {
478
+ throw new CliError({
479
+ code: CliErrorCode.FailedToInstallPackage({ packageName }),
480
+ info: { packageManager: this.name },
481
+ cause: e
482
+ });
483
+ }
484
+ }
485
+ async runUninstallPackage(cwd, packageName) {
486
+ try {
487
+ await runCommand(`yarn remove ${packageName}`, { cwd });
488
+ } catch (e) {
489
+ throw new CliError({
490
+ code: CliErrorCode.FailedToUninstallPackage({ packageName }),
491
+ info: { packageManager: this.name },
492
+ cause: e
493
+ });
494
+ }
430
495
  }
431
496
  };
432
497
  async function getPackagesRelativePaths(rootDir, yarnVersion) {
@@ -1053,189 +1118,113 @@ var GenerateSidebarCategory = () => {
1053
1118
  )));
1054
1119
  };
1055
1120
 
1056
- // src/components/GenerateCommand/custom-element/CustomElement.tsx
1121
+ // src/components/GenerateCommand/dashboard-modal/DashboardModal.tsx
1057
1122
  init_esm_shims();
1058
1123
  var import_react6 = __toESM(require_react(), 1);
1059
1124
  var import_variant10 = __toESM(require_lib(), 1);
1060
1125
  var import_lodash3 = __toESM(require_lodash(), 1);
1061
1126
 
1062
- // src/components/GenerateCommand/custom-element/generate.ts
1127
+ // src/components/GenerateCommand/dashboard-modal/generate.ts
1063
1128
  init_esm_shims();
1064
1129
  import path5 from "node:path";
1065
1130
  import { randomUUID as randomUUID4 } from "node:crypto";
1066
- var CUSTOM_ELEMENT_TEMPLATE = path5.resolve(
1131
+ var DASHBOARD_MODAL_TEMPLATE = path5.resolve(
1067
1132
  __dirname,
1068
- "../templates/custom-element"
1133
+ "../templates/dashboard-modal"
1069
1134
  );
1070
- async function generateCustomElement(projectFolder, folder, name, dashboardPageId) {
1071
- const readablePath = path5.join(SITE_WIDGETS_DIR, folder);
1072
- const cwd = path5.join(getSiteWidgetsDir(projectFolder), folder);
1073
- const behaviorsConfig = dashboardPageId ? {
1074
- dashboard: {
1075
- dashboardPageComponentId: dashboardPageId
1076
- }
1077
- } : void 0;
1078
- const defaultThumbnailPath = path5.join(
1079
- projectFolder,
1080
- "src/assets",
1081
- folder,
1082
- "thumbnail.png"
1083
- );
1084
- const customElementConfig = {
1085
- $schema: "https://dev.wix.com/wix-cli/schemas/custom-element.json",
1135
+ async function generateDashboardModal(projectFolder, route, title) {
1136
+ const cwd = path5.join(getDashboardModalsDir(projectFolder), route);
1137
+ const modalConfig = {
1138
+ $schema: "https://dev.wix.com/wix-cli/schemas/dashboard-modal.json",
1086
1139
  id: randomUUID4(),
1087
- name,
1088
- width: {
1089
- defaultWidth: 450,
1090
- allowStretch: true
1091
- },
1092
- height: {
1093
- defaultHeight: 250
1094
- },
1095
- installation: {
1096
- autoAddToSite: true
1097
- },
1098
- behaviors: behaviorsConfig,
1099
- presets: [
1100
- {
1101
- id: randomUUID4(),
1102
- thumbnailUrl: path5.relative(cwd, defaultThumbnailPath)
1103
- }
1104
- ]
1140
+ title,
1141
+ width: 550,
1142
+ height: 600
1105
1143
  };
1106
- const customElementConfigJSON = toJsonString(customElementConfig, {
1107
- spaces: 2
1108
- });
1144
+ const modalConfigJSON = toJsonString(modalConfig, { spaces: 2 });
1109
1145
  return await componentGenerator({
1110
- template: CUSTOM_ELEMENT_TEMPLATE,
1146
+ template: DASHBOARD_MODAL_TEMPLATE,
1111
1147
  projectFolder,
1112
1148
  cwd,
1113
- assetsOutputPath: folder,
1114
1149
  data: {
1115
- customElementConfigJSON,
1116
- readablePath,
1117
- name
1150
+ modalId: modalConfig.id,
1151
+ route,
1152
+ title,
1153
+ modalConfigJSON
1118
1154
  }
1119
1155
  });
1120
1156
  }
1121
1157
 
1122
- // src/components/GenerateCommand/custom-element/CustomElement.tsx
1123
- var GenerateCustomElement = () => {
1158
+ // src/components/GenerateCommand/dashboard-modal/DashboardModal.tsx
1159
+ var GenerateDashboardModal = () => {
1124
1160
  const bi = useWixCliAppBi();
1125
1161
  const { t: t2 } = useTranslation();
1126
1162
  const { model } = useProjectModel();
1127
- const [elementName, setElementName] = (0, import_react6.useState)();
1128
- const [elementFolder, setElementFolder] = (0, import_react6.useState)();
1129
- const [linkDashboardPage, setLinkDashboardPage] = (0, import_react6.useState)();
1130
- const [generationData, setGenerationData] = (0, import_react6.useState)();
1131
- const validateFolderName = useCustomElementDirectoryValidation("Site widget");
1132
- const validateName = useCustomElementNameValidation();
1133
1163
  const { getExtensions } = useExtensions();
1164
+ const extensionType = t2(
1165
+ "generate_command.flow.dashboard_modal"
1166
+ ).toLowerCase();
1167
+ const dashboardModals = getExtensions("DashboardModal");
1168
+ const [modalFolder, setModalFolder] = (0, import_react6.useState)();
1169
+ const [modalTitle, setModalTitle] = (0, import_react6.useState)();
1134
1170
  const [finishedInstallation, setFinishedInstallation] = (0, import_react6.useState)(false);
1135
- const defaultElementFolder = (0, import_lodash3.kebabCase)(elementName);
1136
- const dashboardPages = getExtensions("DashboardPage");
1137
- const dashboardPagesOptions = dashboardPages.map(
1138
- ({ id, title }) => ({
1139
- value: id,
1140
- title
1141
- })
1171
+ const defaultModalFolder = (0, import_lodash3.kebabCase)(modalTitle);
1172
+ const modalQuestionsAnswered = modalFolder && modalTitle;
1173
+ const validateDashboardFolder = useValidation(
1174
+ composeValidations([
1175
+ [
1176
+ (folder) => {
1177
+ return dashboardModals.every(
1178
+ (modal) => relativeFolderName(
1179
+ getDashboardModalsDir(model.projectFolder),
1180
+ modal.relativePath
1181
+ ) !== folder
1182
+ );
1183
+ },
1184
+ t2("generate_command.dashboard_modal.validation.folder_exists")
1185
+ ],
1186
+ [
1187
+ pathValidation,
1188
+ t2("generate_command.dashboard_modal.validation.folder_invalid")
1189
+ ]
1190
+ ])
1142
1191
  );
1143
- const dashboardPagesExist = Boolean(dashboardPages.length);
1144
- const extensionType = t2("generate_command.flow.custom_element").toLowerCase();
1145
1192
  const generationTask = useGenerationTask(async () => {
1146
- if (generationData) {
1147
- return generateCustomElement(
1148
- model.projectFolder,
1149
- generationData.folder,
1150
- generationData.name,
1151
- generationData.dashboardPageId
1152
- );
1193
+ if (!modalQuestionsAnswered) {
1194
+ return;
1153
1195
  }
1154
- }, [generationData]);
1196
+ return generateDashboardModal(model.projectFolder, modalFolder, modalTitle);
1197
+ }, [modalQuestionsAnswered]);
1155
1198
  return /* @__PURE__ */ import_react6.default.createElement(import_react6.default.Fragment, null, /* @__PURE__ */ import_react6.default.createElement(
1156
1199
  TextInput,
1157
1200
  {
1158
- label: t2("generate_command.custom_element.choose_name"),
1159
- placeholder: t2("generate_command.custom_element.name_placeholder"),
1160
- onSubmit: (value) => {
1201
+ label: t2("generate_command.dashboard_modal.choose_title"),
1202
+ placeholder: t2("generate_command.dashboard_modal.title_placeholder"),
1203
+ onSubmit: (modalTitle2) => {
1161
1204
  bi.cliFlowStepAnswered({
1162
- question: t2("generate_command.custom_element.choose_name"),
1163
- questionKey: "generate_command.custom_element.choose_name",
1164
- answer: value,
1165
- additionalInfo: {
1166
- extensionType
1167
- }
1205
+ question: t2("generate_command.dashboard_modal.choose_title"),
1206
+ questionKey: "generate_command.dashboard_modal.choose_title",
1207
+ answer: modalTitle2,
1208
+ additionalInfo: { extensionType }
1168
1209
  });
1169
- setElementName(value);
1170
- },
1171
- validate: validateName
1210
+ setModalTitle(modalTitle2);
1211
+ }
1172
1212
  }
1173
- ), elementName && /* @__PURE__ */ import_react6.default.createElement(
1213
+ ), modalTitle && /* @__PURE__ */ import_react6.default.createElement(
1174
1214
  TextInput,
1175
1215
  {
1176
- label: t2("generate_command.custom_element.choose_folder"),
1177
- placeholder: defaultElementFolder,
1216
+ label: t2("generate_command.dashboard_modal.choose_folder"),
1217
+ placeholder: defaultModalFolder,
1178
1218
  onSubmit: (value) => {
1179
1219
  bi.cliFlowStepAnswered({
1180
- question: t2("generate_command.custom_element.choose_folder"),
1181
- questionKey: "generate_command.custom_element.choose_folder",
1220
+ question: t2("generate_command.dashboard_modal.choose_folder"),
1221
+ questionKey: "generate_command.dashboard_modal.choose_folder",
1182
1222
  answer: value,
1183
- additionalInfo: {
1184
- extensionType
1185
- }
1186
- });
1187
- setElementFolder(value);
1188
- if (!dashboardPagesExist) {
1189
- setGenerationData({
1190
- name: elementName,
1191
- folder: value
1192
- });
1193
- }
1194
- },
1195
- validate: validateFolderName
1196
- }
1197
- ), elementName && elementFolder && dashboardPagesExist && /* @__PURE__ */ import_react6.default.createElement(
1198
- ConfirmInput,
1199
- {
1200
- label: t2("generate_command.custom_element.link_dashboard_page"),
1201
- onSubmit: (shouldLinkDashboardPage) => {
1202
- bi.cliFlowStepAnswered({
1203
- question: t2(
1204
- "generate_command.custom_element.link_dashboard_page"
1205
- ),
1206
- questionKey: "generate_command.custom_element.link_dashboard_page",
1207
- answer: String(shouldLinkDashboardPage),
1208
- additionalInfo: { extensionType }
1209
- });
1210
- setLinkDashboardPage(shouldLinkDashboardPage);
1211
- if (!shouldLinkDashboardPage) {
1212
- setGenerationData({
1213
- name: elementName,
1214
- folder: elementFolder
1215
- });
1216
- }
1217
- }
1218
- }
1219
- ), elementName && elementFolder && dashboardPagesExist && linkDashboardPage && /* @__PURE__ */ import_react6.default.createElement(
1220
- SelectInput,
1221
- {
1222
- label: t2("generate_command.custom_element.choose_dashboard_page"),
1223
- options: dashboardPagesOptions,
1224
- onSubmit: (option) => {
1225
- bi.cliFlowStepAnswered({
1226
- question: t2(
1227
- "generate_command.custom_element.choose_dashboard_page"
1228
- ),
1229
- questionKey: "generate_command.custom_element.choose_dashboard_page",
1230
- answer: option.title,
1231
1223
  additionalInfo: { extensionType }
1232
1224
  });
1233
- setGenerationData({
1234
- name: elementName,
1235
- folder: elementFolder,
1236
- dashboardPageId: option.value
1237
- });
1238
- }
1225
+ setModalFolder(value);
1226
+ },
1227
+ validate: validateDashboardFolder
1239
1228
  }
1240
1229
  ), (0, import_react6.useMemo)(
1241
1230
  () => (0, import_variant10.match)(generationTask, {
@@ -1255,14 +1244,14 @@ var GenerateCustomElement = () => {
1255
1244
  Spinner,
1256
1245
  {
1257
1246
  text: t2("generate_command.generation.loading", {
1258
- subject: extensionType
1247
+ subject: `${extensionType} ${modalFolder}`
1259
1248
  })
1260
1249
  }
1261
1250
  ),
1262
- NotRequested: () => null,
1263
- Error: () => null
1251
+ Error: () => null,
1252
+ NotRequested: () => null
1264
1253
  }),
1265
- [generationTask, setFinishedInstallation, t2, extensionType]
1254
+ [generationTask, setFinishedInstallation, t2, extensionType, modalFolder]
1266
1255
  ), finishedInstallation && /* @__PURE__ */ import_react6.default.createElement(import_react6.default.Fragment, null, /* @__PURE__ */ import_react6.default.createElement(Text, null, t2("generate_command.generation.done", {
1267
1256
  extensionType
1268
1257
  })), /* @__PURE__ */ import_react6.default.createElement(
@@ -1270,187 +1259,41 @@ var GenerateCustomElement = () => {
1270
1259
  {
1271
1260
  i18nKey: "generate_command.generation.learn_more",
1272
1261
  values: { extensionType },
1273
- components: [/* @__PURE__ */ import_react6.default.createElement(Learn, null), /* @__PURE__ */ import_react6.default.createElement(Link, { url: "https://wix.to/rEfCfbY" })]
1262
+ components: [/* @__PURE__ */ import_react6.default.createElement(Learn, null), /* @__PURE__ */ import_react6.default.createElement(Link, { url: "https://wix.to/zh5ZfMK" })]
1274
1263
  }
1275
1264
  )));
1276
1265
  };
1277
1266
 
1278
- // src/components/GenerateCommand/dashboard-modal/DashboardModal.tsx
1267
+ // src/components/GenerateCommand/service-plugin/index.ts
1279
1268
  init_esm_shims();
1280
- var import_react7 = __toESM(require_react(), 1);
1281
- var import_variant11 = __toESM(require_lib(), 1);
1282
- var import_lodash4 = __toESM(require_lodash(), 1);
1283
1269
 
1284
- // src/components/GenerateCommand/dashboard-modal/generate.ts
1270
+ // src/components/GenerateCommand/service-plugin/ServicePlugin.tsx
1285
1271
  init_esm_shims();
1286
- import path6 from "node:path";
1287
- import { randomUUID as randomUUID5 } from "node:crypto";
1288
- var DASHBOARD_MODAL_TEMPLATE = path6.resolve(
1289
- __dirname,
1290
- "../templates/dashboard-modal"
1291
- );
1292
- async function generateDashboardModal(projectFolder, route, title) {
1293
- const cwd = path6.join(getDashboardModalsDir(projectFolder), route);
1294
- const modalConfig = {
1295
- $schema: "https://dev.wix.com/wix-cli/schemas/dashboard-modal.json",
1296
- id: randomUUID5(),
1297
- title,
1298
- width: 550,
1299
- height: 600
1300
- };
1301
- const modalConfigJSON = toJsonString(modalConfig, { spaces: 2 });
1302
- return await componentGenerator({
1303
- template: DASHBOARD_MODAL_TEMPLATE,
1304
- projectFolder,
1305
- cwd,
1306
- data: {
1307
- modalId: modalConfig.id,
1308
- route,
1309
- title,
1310
- modalConfigJSON
1311
- }
1312
- });
1313
- }
1314
-
1315
- // src/components/GenerateCommand/dashboard-modal/DashboardModal.tsx
1316
- var GenerateDashboardModal = () => {
1317
- const bi = useWixCliAppBi();
1318
- const { t: t2 } = useTranslation();
1319
- const { model } = useProjectModel();
1320
- const { getExtensions } = useExtensions();
1321
- const extensionType = t2(
1322
- "generate_command.flow.dashboard_modal"
1323
- ).toLowerCase();
1324
- const dashboardModals = getExtensions("DashboardModal");
1325
- const [modalFolder, setModalFolder] = (0, import_react7.useState)();
1326
- const [modalTitle, setModalTitle] = (0, import_react7.useState)();
1327
- const [finishedInstallation, setFinishedInstallation] = (0, import_react7.useState)(false);
1328
- const defaultModalFolder = (0, import_lodash4.kebabCase)(modalTitle);
1329
- const modalQuestionsAnswered = modalFolder && modalTitle;
1330
- const validateDashboardFolder = useValidation(
1331
- composeValidations([
1332
- [
1333
- (folder) => {
1334
- return dashboardModals.every(
1335
- (modal) => relativeFolderName(
1336
- getDashboardModalsDir(model.projectFolder),
1337
- modal.relativePath
1338
- ) !== folder
1339
- );
1340
- },
1341
- t2("generate_command.dashboard_modal.validation.folder_exists")
1342
- ],
1343
- [
1344
- pathValidation,
1345
- t2("generate_command.dashboard_modal.validation.folder_invalid")
1346
- ]
1347
- ])
1348
- );
1349
- const generationTask = useGenerationTask(async () => {
1350
- if (!modalQuestionsAnswered) {
1351
- return;
1352
- }
1353
- return generateDashboardModal(model.projectFolder, modalFolder, modalTitle);
1354
- }, [modalQuestionsAnswered]);
1355
- return /* @__PURE__ */ import_react7.default.createElement(import_react7.default.Fragment, null, /* @__PURE__ */ import_react7.default.createElement(
1356
- TextInput,
1357
- {
1358
- label: t2("generate_command.dashboard_modal.choose_title"),
1359
- placeholder: t2("generate_command.dashboard_modal.title_placeholder"),
1360
- onSubmit: (modalTitle2) => {
1361
- bi.cliFlowStepAnswered({
1362
- question: t2("generate_command.dashboard_modal.choose_title"),
1363
- questionKey: "generate_command.dashboard_modal.choose_title",
1364
- answer: modalTitle2,
1365
- additionalInfo: { extensionType }
1366
- });
1367
- setModalTitle(modalTitle2);
1368
- }
1369
- }
1370
- ), modalTitle && /* @__PURE__ */ import_react7.default.createElement(
1371
- TextInput,
1372
- {
1373
- label: t2("generate_command.dashboard_modal.choose_folder"),
1374
- placeholder: defaultModalFolder,
1375
- onSubmit: (value) => {
1376
- bi.cliFlowStepAnswered({
1377
- question: t2("generate_command.dashboard_modal.choose_folder"),
1378
- questionKey: "generate_command.dashboard_modal.choose_folder",
1379
- answer: value,
1380
- additionalInfo: { extensionType }
1381
- });
1382
- setModalFolder(value);
1383
- },
1384
- validate: validateDashboardFolder
1385
- }
1386
- ), (0, import_react7.useMemo)(
1387
- () => (0, import_variant11.match)(generationTask, {
1388
- Success: ({ hasUpdatedDependencies }) => {
1389
- if (hasUpdatedDependencies) {
1390
- return /* @__PURE__ */ import_react7.default.createElement(
1391
- InstallDependencies,
1392
- {
1393
- onFinish: () => setFinishedInstallation(true)
1394
- }
1395
- );
1396
- }
1397
- setFinishedInstallation(true);
1398
- return null;
1399
- },
1400
- Loading: () => /* @__PURE__ */ import_react7.default.createElement(
1401
- Spinner,
1402
- {
1403
- text: t2("generate_command.generation.loading", {
1404
- subject: `${extensionType} ${modalFolder}`
1405
- })
1406
- }
1407
- ),
1408
- Error: () => null,
1409
- NotRequested: () => null
1410
- }),
1411
- [generationTask, setFinishedInstallation, t2, extensionType, modalFolder]
1412
- ), finishedInstallation && /* @__PURE__ */ import_react7.default.createElement(import_react7.default.Fragment, null, /* @__PURE__ */ import_react7.default.createElement(Text, null, t2("generate_command.generation.done", {
1413
- extensionType
1414
- })), /* @__PURE__ */ import_react7.default.createElement(
1415
- Trans,
1416
- {
1417
- i18nKey: "generate_command.generation.learn_more",
1418
- values: { extensionType },
1419
- components: [/* @__PURE__ */ import_react7.default.createElement(Learn, null), /* @__PURE__ */ import_react7.default.createElement(Link, { url: "https://wix.to/zh5ZfMK" })]
1420
- }
1421
- )));
1422
- };
1423
-
1424
- // src/components/GenerateCommand/service-plugin/index.ts
1425
- init_esm_shims();
1426
-
1427
- // src/components/GenerateCommand/service-plugin/ServicePlugin.tsx
1428
- init_esm_shims();
1429
- var import_react8 = __toESM(require_react(), 1);
1430
- var import_variant13 = __toESM(require_lib(), 1);
1272
+ var import_react7 = __toESM(require_react(), 1);
1273
+ var import_variant12 = __toESM(require_lib(), 1);
1431
1274
 
1432
1275
  // src/components/GenerateCommand/service-plugin/generate.ts
1433
1276
  init_esm_shims();
1434
- import path7 from "node:path";
1435
- import { randomUUID as randomUUID6 } from "node:crypto";
1436
- var import_variant12 = __toESM(require_lib(), 1);
1437
- var SERVICE_PLUGIN_TEMPLATE = path7.resolve(
1277
+ import path6 from "node:path";
1278
+ import { randomUUID as randomUUID5 } from "node:crypto";
1279
+ var import_variant11 = __toESM(require_lib(), 1);
1280
+ var SERVICE_PLUGIN_TEMPLATE = path6.resolve(
1438
1281
  __dirname,
1439
1282
  "../templates/service-plugin"
1440
1283
  );
1441
1284
  async function generateServicePlugin(projectFolder, servicePluginType, name) {
1442
1285
  const servicePluginTypeLower = ServicePluginTypeToFolderName(servicePluginType);
1443
- const cwd = path7.join(
1286
+ const cwd = path6.join(
1444
1287
  getServicePluginsFolder(projectFolder),
1445
1288
  servicePluginTypeLower,
1446
1289
  name
1447
1290
  );
1448
1291
  const servicePluginConfigBase = {
1449
1292
  $schema: `https://dev.wix.com/wix-cli/schemas/${servicePluginTypeLower}.json`,
1450
- id: randomUUID6(),
1293
+ id: randomUUID5(),
1451
1294
  name
1452
1295
  };
1453
- const servicePluginConfig = (0, import_variant12.match)(servicePluginType, {
1296
+ const servicePluginConfig = (0, import_variant11.match)(servicePluginType, {
1454
1297
  ECOM_ADDITIONAL_FEES: () => ({}),
1455
1298
  ECOM_SHIPPING_RATES: () => ({
1456
1299
  name: "Shipping Rates Provider",
@@ -1473,7 +1316,7 @@ async function generateServicePlugin(projectFolder, servicePluginType, name) {
1473
1316
  }
1474
1317
  );
1475
1318
  return await componentGenerator({
1476
- template: path7.join(SERVICE_PLUGIN_TEMPLATE, servicePluginTypeLower),
1319
+ template: path6.join(SERVICE_PLUGIN_TEMPLATE, servicePluginTypeLower),
1477
1320
  projectFolder,
1478
1321
  cwd,
1479
1322
  data: {
@@ -1488,10 +1331,10 @@ var GenerateServicePlugin = () => {
1488
1331
  const { t: t2 } = useTranslation();
1489
1332
  const { model } = useProjectModel();
1490
1333
  const { getExtensions } = useExtensions();
1491
- const [type, setType] = (0, import_react8.useState)();
1492
- const [name, setName] = (0, import_react8.useState)();
1493
- const [finishedInstallation, setFinishedInstallation] = (0, import_react8.useState)(false);
1494
- const generateServicePluginOptions = (0, import_react8.useMemo)(
1334
+ const [type, setType] = (0, import_react7.useState)();
1335
+ const [name, setName] = (0, import_react7.useState)();
1336
+ const [finishedInstallation, setFinishedInstallation] = (0, import_react7.useState)(false);
1337
+ const generateServicePluginOptions = (0, import_react7.useMemo)(
1495
1338
  () => [
1496
1339
  {
1497
1340
  title: t2("generate_command.service_plugin.groups.stores"),
@@ -1528,7 +1371,7 @@ var GenerateServicePlugin = () => {
1528
1371
  [t2]
1529
1372
  );
1530
1373
  const extensionType = t2("generate_command.flow.service_plugin").toLowerCase();
1531
- const selectSupportedServicePlugin = (0, import_react8.useCallback)(
1374
+ const selectSupportedServicePlugin = (0, import_react7.useCallback)(
1532
1375
  (supportedServicePlugin) => {
1533
1376
  bi.cliFlowStepAnswered({
1534
1377
  question: t2("generate_command.service_plugin.choose_type"),
@@ -1552,7 +1395,7 @@ var GenerateServicePlugin = () => {
1552
1395
  return result;
1553
1396
  }
1554
1397
  }, [name, type]);
1555
- return /* @__PURE__ */ import_react8.default.createElement(import_react8.default.Fragment, null, /* @__PURE__ */ import_react8.default.createElement(
1398
+ return /* @__PURE__ */ import_react7.default.createElement(import_react7.default.Fragment, null, /* @__PURE__ */ import_react7.default.createElement(
1556
1399
  SelectGroupsInput,
1557
1400
  {
1558
1401
  label: t2("generate_command.service_plugin.choose_type"),
@@ -1560,7 +1403,7 @@ var GenerateServicePlugin = () => {
1560
1403
  onSubmit: selectSupportedServicePlugin,
1561
1404
  maxHeight: 14
1562
1405
  }
1563
- ), type && /* @__PURE__ */ import_react8.default.createElement(
1406
+ ), type && /* @__PURE__ */ import_react7.default.createElement(
1564
1407
  TextInput,
1565
1408
  {
1566
1409
  label: t2("generate_command.service_plugin.choose_name"),
@@ -1576,11 +1419,11 @@ var GenerateServicePlugin = () => {
1576
1419
  },
1577
1420
  validate: validateServicePluginFolder
1578
1421
  }
1579
- ), (0, import_react8.useMemo)(
1580
- () => (0, import_variant13.match)(generationTask, {
1422
+ ), (0, import_react7.useMemo)(
1423
+ () => (0, import_variant12.match)(generationTask, {
1581
1424
  Success: ({ hasUpdatedDependencies }) => {
1582
1425
  if (hasUpdatedDependencies) {
1583
- return /* @__PURE__ */ import_react8.default.createElement(
1426
+ return /* @__PURE__ */ import_react7.default.createElement(
1584
1427
  InstallDependencies,
1585
1428
  {
1586
1429
  onFinish: () => setFinishedInstallation(true)
@@ -1590,7 +1433,7 @@ var GenerateServicePlugin = () => {
1590
1433
  setFinishedInstallation(true);
1591
1434
  return null;
1592
1435
  },
1593
- Loading: () => /* @__PURE__ */ import_react8.default.createElement(
1436
+ Loading: () => /* @__PURE__ */ import_react7.default.createElement(
1594
1437
  Spinner,
1595
1438
  {
1596
1439
  text: t2("generate_command.generation.loading", {
@@ -1602,42 +1445,42 @@ var GenerateServicePlugin = () => {
1602
1445
  NotRequested: () => null
1603
1446
  }),
1604
1447
  [generationTask, setFinishedInstallation, extensionType, t2]
1605
- ), finishedInstallation && /* @__PURE__ */ import_react8.default.createElement(import_react8.default.Fragment, null, /* @__PURE__ */ import_react8.default.createElement(Text, null, t2("generate_command.generation.done", {
1448
+ ), finishedInstallation && /* @__PURE__ */ import_react7.default.createElement(import_react7.default.Fragment, null, /* @__PURE__ */ import_react7.default.createElement(Text, null, t2("generate_command.generation.done", {
1606
1449
  extensionType
1607
- })), /* @__PURE__ */ import_react8.default.createElement(
1450
+ })), /* @__PURE__ */ import_react7.default.createElement(
1608
1451
  Trans,
1609
1452
  {
1610
1453
  i18nKey: "generate_command.generation.learn_more",
1611
1454
  values: { extensionType },
1612
- components: [/* @__PURE__ */ import_react8.default.createElement(Learn, null), /* @__PURE__ */ import_react8.default.createElement(Link, { url: "https://wix.to/YWyluDf" })]
1455
+ components: [/* @__PURE__ */ import_react7.default.createElement(Learn, null), /* @__PURE__ */ import_react7.default.createElement(Link, { url: "https://wix.to/YWyluDf" })]
1613
1456
  }
1614
1457
  )));
1615
1458
  };
1616
1459
 
1617
1460
  // src/components/GenerateCommand/dashboard-plugin/DashboardPlugin.tsx
1618
1461
  init_esm_shims();
1619
- var import_react13 = __toESM(require_react(), 1);
1620
- var import_variant17 = __toESM(require_lib(), 1);
1462
+ var import_react12 = __toESM(require_react(), 1);
1463
+ var import_variant16 = __toESM(require_lib(), 1);
1621
1464
 
1622
1465
  // src/components/GenerateCommand/dashboard-plugin/DashboardPluginWizard.tsx
1623
1466
  init_esm_shims();
1624
- var import_react12 = __toESM(require_react(), 1);
1625
- var import_variant16 = __toESM(require_lib(), 1);
1626
- var import_lodash5 = __toESM(require_lodash(), 1);
1467
+ var import_react11 = __toESM(require_react(), 1);
1468
+ var import_variant15 = __toESM(require_lib(), 1);
1469
+ var import_lodash4 = __toESM(require_lodash(), 1);
1627
1470
 
1628
1471
  // src/components/GenerateCommand/dashboard-plugin/generate.ts
1629
1472
  init_esm_shims();
1630
- import path8 from "node:path";
1631
- import { randomUUID as randomUUID7 } from "node:crypto";
1632
- var DASHBOARD_PLUGIN_TEMPLATE = path8.resolve(
1473
+ import path7 from "node:path";
1474
+ import { randomUUID as randomUUID6 } from "node:crypto";
1475
+ var DASHBOARD_PLUGIN_TEMPLATE = path7.resolve(
1633
1476
  __dirname,
1634
1477
  "../templates/dashboard-plugin"
1635
1478
  );
1636
1479
  async function generateDashboardPlugin(projectFolder, extended, folder, title, params) {
1637
- const cwd = path8.join(getDashboardPluginsDir(projectFolder), folder);
1480
+ const cwd = path7.join(getDashboardPluginsDir(projectFolder), folder);
1638
1481
  const pluginConfig = {
1639
1482
  $schema: "https://dev.wix.com/wix-cli/schemas/dashboard-plugin.json",
1640
- id: randomUUID7(),
1483
+ id: randomUUID6(),
1641
1484
  title,
1642
1485
  extends: extended
1643
1486
  };
@@ -1655,8 +1498,8 @@ async function generateDashboardPlugin(projectFolder, extended, folder, title, p
1655
1498
 
1656
1499
  // src/components/GenerateCommand/AppRequirement.tsx
1657
1500
  init_esm_shims();
1658
- var import_react9 = __toESM(require_react(), 1);
1659
- var import_variant14 = __toESM(require_lib(), 1);
1501
+ var import_react8 = __toESM(require_react(), 1);
1502
+ var import_variant13 = __toESM(require_lib(), 1);
1660
1503
  var AppRequirement = ({
1661
1504
  appId,
1662
1505
  requiredApps,
@@ -1683,9 +1526,9 @@ var AppRequirement = ({
1683
1526
  }
1684
1527
  return appsToRequire;
1685
1528
  }, []);
1686
- const handleSubmit = (0, import_react9.useCallback)(
1529
+ const handleSubmit = (0, import_react8.useCallback)(
1687
1530
  (shouldRequire) => {
1688
- if ((0, import_variant14.isType)(status, "Success")) {
1531
+ if ((0, import_variant13.isType)(status, "Success")) {
1689
1532
  bi.cliFlowStepAnswered({
1690
1533
  question: t2("generate_command.required_app", {
1691
1534
  appsNames: status.result.map((requiredApp) => requiredApp.name).join(", ")
@@ -1705,37 +1548,37 @@ var AppRequirement = ({
1705
1548
  },
1706
1549
  [bi, onSubmit, t2, status]
1707
1550
  );
1708
- return /* @__PURE__ */ import_react9.default.createElement(import_react9.default.Fragment, null, (0, import_variant14.match)(status, {
1709
- Success: ({ result: appsToRequire }) => appsToRequire.length > 0 && /* @__PURE__ */ import_react9.default.createElement(Box_default, { marginBottom: 1 }, /* @__PURE__ */ import_react9.default.createElement(
1551
+ return /* @__PURE__ */ import_react8.default.createElement(import_react8.default.Fragment, null, (0, import_variant13.match)(status, {
1552
+ Success: ({ result: appsToRequire }) => appsToRequire.length > 0 && /* @__PURE__ */ import_react8.default.createElement(Box_default, { marginBottom: 1 }, /* @__PURE__ */ import_react8.default.createElement(
1710
1553
  ConfirmInput,
1711
1554
  {
1712
1555
  label: t2("generate_command.required_app", {
1713
1556
  appsNames: appsToRequire.map((requiredApp) => requiredApp.name).join(", ")
1714
1557
  }),
1715
- info: /* @__PURE__ */ import_react9.default.createElement(
1558
+ info: /* @__PURE__ */ import_react8.default.createElement(
1716
1559
  Trans,
1717
1560
  {
1718
1561
  i18nKey: "generate_command.required_app.description",
1719
1562
  values: {
1720
1563
  appsNames: appsToRequire.map((requiredApp) => requiredApp.name).join(", ")
1721
1564
  },
1722
- components: [/* @__PURE__ */ import_react9.default.createElement(Link, { url: "https://wix.to/YAydHiJ" })]
1565
+ components: [/* @__PURE__ */ import_react8.default.createElement(Link, { url: "https://wix.to/YAydHiJ" })]
1723
1566
  }
1724
1567
  ),
1725
1568
  onSubmit: handleSubmit
1726
1569
  }
1727
1570
  )),
1728
- Loading: () => /* @__PURE__ */ import_react9.default.createElement(Spinner, null),
1571
+ Loading: () => /* @__PURE__ */ import_react8.default.createElement(Spinner, null),
1729
1572
  Error: () => null
1730
1573
  }));
1731
1574
  };
1732
1575
 
1733
1576
  // src/components/GenerateCommand/MultipleAppRequirement.tsx
1734
1577
  init_esm_shims();
1735
- var import_react10 = __toESM(require_react(), 1);
1736
- var import_variant15 = __toESM(require_lib(), 1);
1737
- var RequiredAppOptions = (0, import_variant15.variant)({
1738
- Available: (0, import_variant15.fields)(),
1578
+ var import_react9 = __toESM(require_react(), 1);
1579
+ var import_variant14 = __toESM(require_lib(), 1);
1580
+ var RequiredAppOptions = (0, import_variant14.variant)({
1581
+ Available: (0, import_variant14.fields)(),
1739
1582
  FailedToGetRequiredApps: {}
1740
1583
  });
1741
1584
  var MultipleAppRequirement = ({
@@ -1747,7 +1590,7 @@ var MultipleAppRequirement = ({
1747
1590
  const { t: t2 } = useTranslation();
1748
1591
  const { getRequiredApps } = useDevCenterClient();
1749
1592
  const { reportError } = useErrorReporter();
1750
- const handleSubmit = (0, import_react10.useCallback)(
1593
+ const handleSubmit = (0, import_react9.useCallback)(
1751
1594
  (option) => {
1752
1595
  bi.cliFlowStepAnswered({
1753
1596
  question: t2("generate_command.required_business_solution"),
@@ -1781,12 +1624,12 @@ var MultipleAppRequirement = ({
1781
1624
  value: ""
1782
1625
  });
1783
1626
  const initialIndex = options.findIndex(
1784
- (_) => !(0, import_variant15.isType)(_.availability, SelectOptionAvailability.Disabled)
1627
+ (_) => !(0, import_variant14.isType)(_.availability, SelectOptionAvailability.Disabled)
1785
1628
  );
1786
1629
  return RequiredAppOptions.Available({ options, initialIndex });
1787
1630
  }, [getRequiredApps, appId]);
1788
- return /* @__PURE__ */ import_react10.default.createElement(import_react10.default.Fragment, null, (0, import_variant15.match)(status, {
1789
- Loading: () => /* @__PURE__ */ import_react10.default.createElement(
1631
+ return /* @__PURE__ */ import_react9.default.createElement(import_react9.default.Fragment, null, (0, import_variant14.match)(status, {
1632
+ Loading: () => /* @__PURE__ */ import_react9.default.createElement(
1790
1633
  Spinner,
1791
1634
  {
1792
1635
  text: t2("generate_command.required_business_solution.loading")
@@ -1794,8 +1637,8 @@ var MultipleAppRequirement = ({
1794
1637
  ),
1795
1638
  Error: () => null,
1796
1639
  Success: ({ result }) => {
1797
- return (0, import_variant15.match)(result, {
1798
- Available: ({ options, initialIndex }) => /* @__PURE__ */ import_react10.default.createElement(
1640
+ return (0, import_variant14.match)(result, {
1641
+ Available: ({ options, initialIndex }) => /* @__PURE__ */ import_react9.default.createElement(
1799
1642
  SelectInput,
1800
1643
  {
1801
1644
  label: t2("generate_command.required_business_solution"),
@@ -1807,18 +1650,18 @@ var MultipleAppRequirement = ({
1807
1650
  onSubmit: handleSubmit
1808
1651
  }
1809
1652
  ),
1810
- FailedToGetRequiredApps: () => /* @__PURE__ */ import_react10.default.createElement(Box_default, { marginBottom: 1, gap: 1, flexDirection: "column" }, /* @__PURE__ */ import_react10.default.createElement(InputLabel, null, t2("generate_command.required_business_solution")), /* @__PURE__ */ import_react10.default.createElement(
1653
+ FailedToGetRequiredApps: () => /* @__PURE__ */ import_react9.default.createElement(Box_default, { marginBottom: 1, gap: 1, flexDirection: "column" }, /* @__PURE__ */ import_react9.default.createElement(InputLabel, null, t2("generate_command.required_business_solution")), /* @__PURE__ */ import_react9.default.createElement(
1811
1654
  ErrorDetails,
1812
1655
  {
1813
1656
  message: t2(
1814
1657
  "generate_command.required_business_solution.error"
1815
1658
  ),
1816
- hint: /* @__PURE__ */ import_react10.default.createElement(
1659
+ hint: /* @__PURE__ */ import_react9.default.createElement(
1817
1660
  Trans,
1818
1661
  {
1819
1662
  i18nKey: "generate_command.required_business_solution.error.hint",
1820
1663
  components: [
1821
- /* @__PURE__ */ import_react10.default.createElement(
1664
+ /* @__PURE__ */ import_react9.default.createElement(
1822
1665
  Link,
1823
1666
  {
1824
1667
  url: `https://manage.wix.com/apps/${appId}/dev-center-giza-market-listing/app-audience?referralInfo=wix-cli`
@@ -1836,7 +1679,7 @@ var MultipleAppRequirement = ({
1836
1679
 
1837
1680
  // src/components/GenerateCommand/dashboard-plugin/DashboardPluginGeneratedNote.tsx
1838
1681
  init_esm_shims();
1839
- var import_react11 = __toESM(require_react(), 1);
1682
+ var import_react10 = __toESM(require_react(), 1);
1840
1683
  var customGroupMessages = /* @__PURE__ */ new Map([
1841
1684
  ["Wix eCommerce", "generate_command.generation.ecommerce_notification"]
1842
1685
  ]);
@@ -1846,12 +1689,12 @@ var DashboardPluginGeneratedNote = ({ backofficeExtensionWidget }) => {
1846
1689
  "generate_command.flow.dashboard_plugin"
1847
1690
  ).toLowerCase();
1848
1691
  const customKey = customGroupMessages.get(backofficeExtensionWidget.category);
1849
- return /* @__PURE__ */ import_react11.default.createElement(import_react11.default.Fragment, null, /* @__PURE__ */ import_react11.default.createElement(Text, null, t2("generate_command.generation.done", { extensionType })), customKey ? /* @__PURE__ */ import_react11.default.createElement(Text, null, t2(customKey)) : null, /* @__PURE__ */ import_react11.default.createElement(
1692
+ return /* @__PURE__ */ import_react10.default.createElement(import_react10.default.Fragment, null, /* @__PURE__ */ import_react10.default.createElement(Text, null, t2("generate_command.generation.done", { extensionType })), customKey ? /* @__PURE__ */ import_react10.default.createElement(Text, null, t2(customKey)) : null, /* @__PURE__ */ import_react10.default.createElement(
1850
1693
  Trans,
1851
1694
  {
1852
1695
  i18nKey: "generate_command.generation.learn_more",
1853
1696
  values: { extensionType },
1854
- components: [/* @__PURE__ */ import_react11.default.createElement(Learn, null), /* @__PURE__ */ import_react11.default.createElement(Link, { url: "https://wix.to/dFFuEki" })]
1697
+ components: [/* @__PURE__ */ import_react10.default.createElement(Learn, null), /* @__PURE__ */ import_react10.default.createElement(Link, { url: "https://wix.to/dFFuEki" })]
1855
1698
  }
1856
1699
  ));
1857
1700
  };
@@ -1860,7 +1703,7 @@ var DashboardPluginGeneratedNote = ({ backofficeExtensionWidget }) => {
1860
1703
  var DashboardPluginWizard = ({ backofficeExtensionWidgets }) => {
1861
1704
  const bi = useWixCliAppBi();
1862
1705
  const { t: t2 } = useTranslation();
1863
- const [backofficeExtensionWidget, setBackofficeExtensionWidget] = (0, import_react12.useState)();
1706
+ const [backofficeExtensionWidget, setBackofficeExtensionWidget] = (0, import_react11.useState)();
1864
1707
  const { addRequiredApp } = useDevCenterClient();
1865
1708
  const { model } = useProjectModel();
1866
1709
  const { getExtensions } = useExtensions();
@@ -1868,11 +1711,11 @@ var DashboardPluginWizard = ({ backofficeExtensionWidgets }) => {
1868
1711
  "generate_command.flow.dashboard_plugin"
1869
1712
  ).toLowerCase();
1870
1713
  const dashboardPlugins = getExtensions("DashboardPlugin");
1871
- const [folder, setFolder] = (0, import_react12.useState)();
1872
- const [title, setTitle] = (0, import_react12.useState)();
1873
- const [requireAppsIds, setRequireAppsIds] = (0, import_react12.useState)();
1874
- const [finishedInstallation, setFinishedInstallation] = (0, import_react12.useState)(false);
1875
- const defaultFolderName = (0, import_lodash5.kebabCase)(title);
1714
+ const [folder, setFolder] = (0, import_react11.useState)();
1715
+ const [title, setTitle] = (0, import_react11.useState)();
1716
+ const [requireAppsIds, setRequireAppsIds] = (0, import_react11.useState)();
1717
+ const [finishedInstallation, setFinishedInstallation] = (0, import_react11.useState)(false);
1718
+ const defaultFolderName = (0, import_lodash4.kebabCase)(title);
1876
1719
  const validatePluginFolder = useValidation(
1877
1720
  createDashboardPluginValidation(dashboardPlugins)
1878
1721
  );
@@ -1894,7 +1737,7 @@ var DashboardPluginWizard = ({ backofficeExtensionWidgets }) => {
1894
1737
  );
1895
1738
  }
1896
1739
  }, [backofficeExtensionWidget?.id, folder, title, requireAppsIds]);
1897
- const extensionGroups = (0, import_react12.useMemo)(
1740
+ const extensionGroups = (0, import_react11.useMemo)(
1898
1741
  () => Object.values(
1899
1742
  backofficeExtensionWidgets.reduce((extensionsByApps, extension) => {
1900
1743
  const [requiredApp] = extension.requiredApps;
@@ -1903,11 +1746,11 @@ var DashboardPluginWizard = ({ backofficeExtensionWidgets }) => {
1903
1746
  extensionsByApps[groupBy].items.push({
1904
1747
  title: extension.name,
1905
1748
  key: extension.id,
1906
- description: /* @__PURE__ */ import_react12.default.createElement(
1749
+ description: /* @__PURE__ */ import_react11.default.createElement(
1907
1750
  Trans,
1908
1751
  {
1909
1752
  i18nKey: "generate_command.dashboard_plugin.what_to_extend.item_description",
1910
- components: [/* @__PURE__ */ import_react12.default.createElement(Link, { url: requiredApp.docsUrl })]
1753
+ components: [/* @__PURE__ */ import_react11.default.createElement(Link, { url: requiredApp.docsUrl })]
1911
1754
  }
1912
1755
  ),
1913
1756
  value: extension
@@ -1917,15 +1760,15 @@ var DashboardPluginWizard = ({ backofficeExtensionWidgets }) => {
1917
1760
  ),
1918
1761
  [backofficeExtensionWidgets]
1919
1762
  );
1920
- return /* @__PURE__ */ import_react12.default.createElement(import_react12.default.Fragment, null, /* @__PURE__ */ import_react12.default.createElement(
1763
+ return /* @__PURE__ */ import_react11.default.createElement(import_react11.default.Fragment, null, /* @__PURE__ */ import_react11.default.createElement(
1921
1764
  SelectGroupsInput,
1922
1765
  {
1923
1766
  label: t2("generate_command.dashboard_plugin.what_to_extend"),
1924
- info: /* @__PURE__ */ import_react12.default.createElement(
1767
+ info: /* @__PURE__ */ import_react11.default.createElement(
1925
1768
  Trans,
1926
1769
  {
1927
1770
  i18nKey: "generate_command.dashboard_plugin.what_to_extend.description",
1928
- components: [/* @__PURE__ */ import_react12.default.createElement(Link, { url: "https://wix.to/ZeCt07g" })]
1771
+ components: [/* @__PURE__ */ import_react11.default.createElement(Link, { url: "https://wix.to/ZeCt07g" })]
1929
1772
  }
1930
1773
  ),
1931
1774
  hideScroll: true,
@@ -1940,7 +1783,7 @@ var DashboardPluginWizard = ({ backofficeExtensionWidgets }) => {
1940
1783
  setBackofficeExtensionWidget(option.value);
1941
1784
  }
1942
1785
  }
1943
- ), backofficeExtensionWidget && (backofficeExtensionWidget.requiredApps.length === 1 ? /* @__PURE__ */ import_react12.default.createElement(
1786
+ ), backofficeExtensionWidget && (backofficeExtensionWidget.requiredApps.length === 1 ? /* @__PURE__ */ import_react11.default.createElement(
1944
1787
  AppRequirement,
1945
1788
  {
1946
1789
  appId: model.config.appId,
@@ -1952,7 +1795,7 @@ var DashboardPluginWizard = ({ backofficeExtensionWidgets }) => {
1952
1795
  ],
1953
1796
  onSubmit: setRequireAppsIds
1954
1797
  }
1955
- ) : /* @__PURE__ */ import_react12.default.createElement(
1798
+ ) : /* @__PURE__ */ import_react11.default.createElement(
1956
1799
  MultipleAppRequirement,
1957
1800
  {
1958
1801
  appId: model.config.appId,
@@ -1964,7 +1807,7 @@ var DashboardPluginWizard = ({ backofficeExtensionWidgets }) => {
1964
1807
  ),
1965
1808
  onSubmit: setRequireAppsIds
1966
1809
  }
1967
- )), requireAppsIds && /* @__PURE__ */ import_react12.default.createElement(
1810
+ )), requireAppsIds && /* @__PURE__ */ import_react11.default.createElement(
1968
1811
  TextInput,
1969
1812
  {
1970
1813
  label: t2("generate_command.dashboard_plugin.choose_title"),
@@ -1979,7 +1822,7 @@ var DashboardPluginWizard = ({ backofficeExtensionWidgets }) => {
1979
1822
  setTitle(value);
1980
1823
  }
1981
1824
  }
1982
- ), title && /* @__PURE__ */ import_react12.default.createElement(
1825
+ ), title && /* @__PURE__ */ import_react11.default.createElement(
1983
1826
  TextInput,
1984
1827
  {
1985
1828
  label: t2("generate_command.dashboard_plugin.choose_folder"),
@@ -1995,11 +1838,11 @@ var DashboardPluginWizard = ({ backofficeExtensionWidgets }) => {
1995
1838
  },
1996
1839
  validate: validatePluginFolder
1997
1840
  }
1998
- ), (0, import_react12.useMemo)(
1999
- () => (0, import_variant16.match)(generationTask, {
1841
+ ), (0, import_react11.useMemo)(
1842
+ () => (0, import_variant15.match)(generationTask, {
2000
1843
  Success: ({ hasUpdatedDependencies }) => {
2001
1844
  if (hasUpdatedDependencies) {
2002
- return /* @__PURE__ */ import_react12.default.createElement(
1845
+ return /* @__PURE__ */ import_react11.default.createElement(
2003
1846
  InstallDependencies,
2004
1847
  {
2005
1848
  onFinish: () => setFinishedInstallation(true)
@@ -2009,7 +1852,7 @@ var DashboardPluginWizard = ({ backofficeExtensionWidgets }) => {
2009
1852
  setFinishedInstallation(true);
2010
1853
  return null;
2011
1854
  },
2012
- Loading: () => /* @__PURE__ */ import_react12.default.createElement(
1855
+ Loading: () => /* @__PURE__ */ import_react11.default.createElement(
2013
1856
  Spinner,
2014
1857
  {
2015
1858
  text: t2("generate_command.generation.loading", {
@@ -2021,7 +1864,7 @@ var DashboardPluginWizard = ({ backofficeExtensionWidgets }) => {
2021
1864
  NotRequested: () => null
2022
1865
  }),
2023
1866
  [generationTask, setFinishedInstallation, t2, extensionType]
2024
- ), finishedInstallation && backofficeExtensionWidget ? /* @__PURE__ */ import_react12.default.createElement(
1867
+ ), finishedInstallation && backofficeExtensionWidget ? /* @__PURE__ */ import_react11.default.createElement(
2025
1868
  DashboardPluginGeneratedNote,
2026
1869
  {
2027
1870
  backofficeExtensionWidget
@@ -2033,10 +1876,10 @@ var DashboardPluginWizard = ({ backofficeExtensionWidgets }) => {
2033
1876
  var DashboardPlugin = () => {
2034
1877
  const { t: t2 } = useTranslation();
2035
1878
  const { status } = useAsync(getBackofficeExtensionWidgets, []);
2036
- return (0, import_variant17.match)(status, {
1879
+ return (0, import_variant16.match)(status, {
2037
1880
  Error: () => null,
2038
- Loading: () => /* @__PURE__ */ import_react13.default.createElement(Spinner, { text: t2("general.loading") }),
2039
- Success: ({ result: backofficeExtensionWidgets }) => /* @__PURE__ */ import_react13.default.createElement(
1881
+ Loading: () => /* @__PURE__ */ import_react12.default.createElement(Spinner, { text: t2("general.loading") }),
1882
+ Success: ({ result: backofficeExtensionWidgets }) => /* @__PURE__ */ import_react12.default.createElement(
2040
1883
  DashboardPluginWizard,
2041
1884
  {
2042
1885
  backofficeExtensionWidgets
@@ -2047,28 +1890,28 @@ var DashboardPlugin = () => {
2047
1890
 
2048
1891
  // src/components/GenerateCommand/dashboad-menu-plugin/DashboardMenuPlugin.tsx
2049
1892
  init_esm_shims();
2050
- var import_react18 = __toESM(require_react(), 1);
2051
- var import_variant21 = __toESM(require_lib(), 1);
1893
+ var import_react17 = __toESM(require_react(), 1);
1894
+ var import_variant20 = __toESM(require_lib(), 1);
2052
1895
 
2053
1896
  // src/components/GenerateCommand/dashboad-menu-plugin/DashboardMenuPluginWizard.tsx
2054
1897
  init_esm_shims();
2055
- var import_react17 = __toESM(require_react(), 1);
2056
- var import_variant20 = __toESM(require_lib(), 1);
2057
- var import_lodash6 = __toESM(require_lodash(), 1);
1898
+ var import_react16 = __toESM(require_react(), 1);
1899
+ var import_variant19 = __toESM(require_lib(), 1);
1900
+ var import_lodash5 = __toESM(require_lodash(), 1);
2058
1901
 
2059
1902
  // src/components/GenerateCommand/dashboad-menu-plugin/generate.ts
2060
1903
  init_esm_shims();
2061
- import path9 from "node:path";
2062
- import { randomUUID as randomUUID8 } from "node:crypto";
2063
- var DASHBOARD_MENU_PLUGIN_TEMPLATE = path9.resolve(
1904
+ import path8 from "node:path";
1905
+ import { randomUUID as randomUUID7 } from "node:crypto";
1906
+ var DASHBOARD_MENU_PLUGIN_TEMPLATE = path8.resolve(
2064
1907
  __dirname,
2065
1908
  "../templates/dashboard-menu-plugin"
2066
1909
  );
2067
1910
  async function generateDashboardMenuPlugin(projectFolder, extended, action, folder, title) {
2068
- const cwd = path9.join(getDashboardMenuPluginsDir(projectFolder), folder);
1911
+ const cwd = path8.join(getDashboardMenuPluginsDir(projectFolder), folder);
2069
1912
  const menuPluginConfig = {
2070
1913
  $schema: "https://dev.wix.com/wix-cli/schemas/dashboard-menu-plugin.json",
2071
- id: randomUUID8(),
1914
+ id: randomUUID7(),
2072
1915
  title,
2073
1916
  iconKey: "Sparkles",
2074
1917
  extends: extended,
@@ -2087,20 +1930,20 @@ async function generateDashboardMenuPlugin(projectFolder, extended, action, fold
2087
1930
 
2088
1931
  // src/components/GenerateCommand/dashboad-menu-plugin/NavigateToPage.tsx
2089
1932
  init_esm_shims();
2090
- var import_react14 = __toESM(require_react(), 1);
2091
- var import_variant18 = __toESM(require_lib(), 1);
2092
- var NavigateToPageOption = (0, import_variant18.variant)({
2093
- Page: (0, import_variant18.fields)(),
1933
+ var import_react13 = __toESM(require_react(), 1);
1934
+ var import_variant17 = __toESM(require_lib(), 1);
1935
+ var NavigateToPageOption = (0, import_variant17.variant)({
1936
+ Page: (0, import_variant17.fields)(),
2094
1937
  Other: {}
2095
1938
  });
2096
1939
  var NavigateToPage = ({ onActionSelected }) => {
2097
1940
  const bi = useWixCliAppBi();
2098
1941
  const { model } = useProjectModel();
2099
1942
  const { t: t2 } = useTranslation();
2100
- const [pageId, setPageId] = (0, import_react14.useState)();
2101
- const [shouldUseCustomPageId, setShouldUseCustomPageId] = (0, import_react14.useState)(false);
2102
- const dashboardPages = (0, import_react14.useMemo)(
2103
- () => model.components.filter((0, import_variant18.isType)(DevCenterComponent.DashboardPage)),
1943
+ const [pageId, setPageId] = (0, import_react13.useState)();
1944
+ const [shouldUseCustomPageId, setShouldUseCustomPageId] = (0, import_react13.useState)(false);
1945
+ const dashboardPages = (0, import_react13.useMemo)(
1946
+ () => model.components.filter((0, import_variant17.isType)(DevCenterComponent.DashboardPage)),
2104
1947
  [model.components]
2105
1948
  );
2106
1949
  const validatePageId = useValidation(
@@ -2113,7 +1956,7 @@ var NavigateToPage = ({ onActionSelected }) => {
2113
1956
  ]
2114
1957
  ])
2115
1958
  );
2116
- (0, import_react14.useEffect)(() => {
1959
+ (0, import_react13.useEffect)(() => {
2117
1960
  if (pageId) {
2118
1961
  onActionSelected({
2119
1962
  navigateToPage: {
@@ -2122,7 +1965,7 @@ var NavigateToPage = ({ onActionSelected }) => {
2122
1965
  });
2123
1966
  }
2124
1967
  }, [pageId, onActionSelected]);
2125
- return /* @__PURE__ */ import_react14.default.createElement(import_react14.default.Fragment, null, /* @__PURE__ */ import_react14.default.createElement(
1968
+ return /* @__PURE__ */ import_react13.default.createElement(import_react13.default.Fragment, null, /* @__PURE__ */ import_react13.default.createElement(
2126
1969
  SelectInput,
2127
1970
  {
2128
1971
  label: t2(
@@ -2153,13 +1996,13 @@ var NavigateToPage = ({ onActionSelected }) => {
2153
1996
  questionKey: "generate_command.dashboard_menu_plugin.what_to_do.navigate_to_page.choose_page",
2154
1997
  answer: option.title
2155
1998
  });
2156
- return (0, import_variant18.match)(option.value, {
1999
+ return (0, import_variant17.match)(option.value, {
2157
2000
  Page: ({ pageId: pageId2 }) => setPageId(pageId2),
2158
2001
  Other: () => setShouldUseCustomPageId(true)
2159
2002
  });
2160
2003
  }
2161
2004
  }
2162
- ), shouldUseCustomPageId && /* @__PURE__ */ import_react14.default.createElement(
2005
+ ), shouldUseCustomPageId && /* @__PURE__ */ import_react13.default.createElement(
2163
2006
  TextInput,
2164
2007
  {
2165
2008
  label: t2(
@@ -2182,20 +2025,20 @@ var NavigateToPage = ({ onActionSelected }) => {
2182
2025
 
2183
2026
  // src/components/GenerateCommand/dashboad-menu-plugin/OpenModal.tsx
2184
2027
  init_esm_shims();
2185
- var import_react15 = __toESM(require_react(), 1);
2186
- var import_variant19 = __toESM(require_lib(), 1);
2187
- var OpenModalOption = (0, import_variant19.variant)({
2188
- Component: (0, import_variant19.fields)(),
2028
+ var import_react14 = __toESM(require_react(), 1);
2029
+ var import_variant18 = __toESM(require_lib(), 1);
2030
+ var OpenModalOption = (0, import_variant18.variant)({
2031
+ Component: (0, import_variant18.fields)(),
2189
2032
  Other: {}
2190
2033
  });
2191
2034
  var OpenModal = ({ onActionSelected }) => {
2192
2035
  const bi = useWixCliAppBi();
2193
2036
  const { model } = useProjectModel();
2194
2037
  const { t: t2 } = useTranslation();
2195
- const [componentId, setComponentId] = (0, import_react15.useState)();
2196
- const [shouldUseCustomComponentId, setShouldUseCustomComponentId] = (0, import_react15.useState)(false);
2197
- const dashboardModals = (0, import_react15.useMemo)(
2198
- () => model.components.filter((0, import_variant19.isType)(DevCenterComponent.DashboardModal)),
2038
+ const [componentId, setComponentId] = (0, import_react14.useState)();
2039
+ const [shouldUseCustomComponentId, setShouldUseCustomComponentId] = (0, import_react14.useState)(false);
2040
+ const dashboardModals = (0, import_react14.useMemo)(
2041
+ () => model.components.filter((0, import_variant18.isType)(DevCenterComponent.DashboardModal)),
2199
2042
  [model.components]
2200
2043
  );
2201
2044
  const validateComponentId = useValidation(
@@ -2208,7 +2051,7 @@ var OpenModal = ({ onActionSelected }) => {
2208
2051
  ]
2209
2052
  ])
2210
2053
  );
2211
- (0, import_react15.useEffect)(() => {
2054
+ (0, import_react14.useEffect)(() => {
2212
2055
  if (componentId) {
2213
2056
  onActionSelected({
2214
2057
  openModal: {
@@ -2217,7 +2060,7 @@ var OpenModal = ({ onActionSelected }) => {
2217
2060
  });
2218
2061
  }
2219
2062
  }, [componentId, onActionSelected]);
2220
- return /* @__PURE__ */ import_react15.default.createElement(import_react15.default.Fragment, null, /* @__PURE__ */ import_react15.default.createElement(
2063
+ return /* @__PURE__ */ import_react14.default.createElement(import_react14.default.Fragment, null, /* @__PURE__ */ import_react14.default.createElement(
2221
2064
  SelectInput,
2222
2065
  {
2223
2066
  label: t2(
@@ -2246,13 +2089,13 @@ var OpenModal = ({ onActionSelected }) => {
2246
2089
  questionKey: "generate_command.dashboard_menu_plugin.what_to_do.open_modal.choose_component",
2247
2090
  answer: option.title
2248
2091
  });
2249
- return (0, import_variant19.match)(option.value, {
2092
+ return (0, import_variant18.match)(option.value, {
2250
2093
  Component: ({ componentId: componentId2 }) => setComponentId(componentId2),
2251
2094
  Other: () => setShouldUseCustomComponentId(true)
2252
2095
  });
2253
2096
  }
2254
2097
  }
2255
- ), shouldUseCustomComponentId && /* @__PURE__ */ import_react15.default.createElement(
2098
+ ), shouldUseCustomComponentId && /* @__PURE__ */ import_react14.default.createElement(
2256
2099
  TextInput,
2257
2100
  {
2258
2101
  label: t2(
@@ -2275,7 +2118,7 @@ var OpenModal = ({ onActionSelected }) => {
2275
2118
 
2276
2119
  // src/components/GenerateCommand/dashboad-menu-plugin/DashboardMenuPluginGeneratedNote.tsx
2277
2120
  init_esm_shims();
2278
- var import_react16 = __toESM(require_react(), 1);
2121
+ var import_react15 = __toESM(require_react(), 1);
2279
2122
  var customGroupMessages2 = /* @__PURE__ */ new Map([
2280
2123
  ["Wix eCommerce", "generate_command.generation.ecommerce_notification"]
2281
2124
  ]);
@@ -2285,18 +2128,18 @@ var DashboardMenuPluginGeneratedNote = ({ backofficeMenuItem }) => {
2285
2128
  "generate_command.flow.dashboard_menu_plugin"
2286
2129
  ).toLowerCase();
2287
2130
  const customKey = customGroupMessages2.get(backofficeMenuItem.category);
2288
- return /* @__PURE__ */ import_react16.default.createElement(Box_default, { flexDirection: "column" }, /* @__PURE__ */ import_react16.default.createElement(Text, null, t2("generate_command.generation.done", { extensionType })), customKey ? /* @__PURE__ */ import_react16.default.createElement(Text, null, t2(customKey)) : null, /* @__PURE__ */ import_react16.default.createElement(
2131
+ return /* @__PURE__ */ import_react15.default.createElement(Box_default, { flexDirection: "column" }, /* @__PURE__ */ import_react15.default.createElement(Text, null, t2("generate_command.generation.done", { extensionType })), customKey ? /* @__PURE__ */ import_react15.default.createElement(Text, null, t2(customKey)) : null, /* @__PURE__ */ import_react15.default.createElement(
2289
2132
  Trans,
2290
2133
  {
2291
2134
  i18nKey: "generate_command.generation.learn_more",
2292
2135
  values: { extensionType },
2293
- components: [/* @__PURE__ */ import_react16.default.createElement(Learn, null), /* @__PURE__ */ import_react16.default.createElement(Link, { url: "https://wix.to/YwaogfU" })]
2136
+ components: [/* @__PURE__ */ import_react15.default.createElement(Learn, null), /* @__PURE__ */ import_react15.default.createElement(Link, { url: "https://wix.to/YwaogfU" })]
2294
2137
  }
2295
2138
  ));
2296
2139
  };
2297
2140
 
2298
2141
  // src/components/GenerateCommand/dashboad-menu-plugin/DashboardMenuPluginWizard.tsx
2299
- var DashboardMenuPluginAction = (0, import_variant20.variant)({
2142
+ var DashboardMenuPluginAction = (0, import_variant19.variant)({
2300
2143
  NavigateToPage: {},
2301
2144
  OpenModal: {}
2302
2145
  });
@@ -2310,15 +2153,15 @@ var DashboardMenuPluginWizard = ({ backofficeMenuItems }) => {
2310
2153
  "generate_command.flow.dashboard_menu_plugin"
2311
2154
  ).toLowerCase();
2312
2155
  const dashboardMenuPlugins = getExtensions("DashboardMenuPlugin");
2313
- const [backofficeMenuItem, setBackofficeMenuItem] = (0, import_react17.useState)();
2314
- const [actionType, setActionType] = (0, import_react17.useState)();
2315
- const [requireAppsIds, setRequireAppsIds] = (0, import_react17.useState)();
2316
- const [action, setAction] = (0, import_react17.useState)();
2317
- const [folder, setFolder] = (0, import_react17.useState)();
2318
- const [title, setTitle] = (0, import_react17.useState)();
2319
- const [finishedInstallation, setFinishedInstallation] = (0, import_react17.useState)(false);
2320
- const defaultFolderName = (0, import_lodash6.kebabCase)(title);
2321
- const [additionalInfo, setAdditionalInfo] = (0, import_react17.useState)();
2156
+ const [backofficeMenuItem, setBackofficeMenuItem] = (0, import_react16.useState)();
2157
+ const [actionType, setActionType] = (0, import_react16.useState)();
2158
+ const [requireAppsIds, setRequireAppsIds] = (0, import_react16.useState)();
2159
+ const [action, setAction] = (0, import_react16.useState)();
2160
+ const [folder, setFolder] = (0, import_react16.useState)();
2161
+ const [title, setTitle] = (0, import_react16.useState)();
2162
+ const [finishedInstallation, setFinishedInstallation] = (0, import_react16.useState)(false);
2163
+ const defaultFolderName = (0, import_lodash5.kebabCase)(title);
2164
+ const [additionalInfo, setAdditionalInfo] = (0, import_react16.useState)();
2322
2165
  const validateMenuPluginFolder = useValidation(
2323
2166
  createDashboardMenuPluginValidation(dashboardMenuPlugins)
2324
2167
  );
@@ -2340,11 +2183,11 @@ var DashboardMenuPluginWizard = ({ backofficeMenuItems }) => {
2340
2183
  );
2341
2184
  }
2342
2185
  }, [backofficeMenuItem, action, folder, title]);
2343
- const handleActionSelected = (0, import_react17.useCallback)(
2186
+ const handleActionSelected = (0, import_react16.useCallback)(
2344
2187
  (action2) => setAction(action2),
2345
2188
  []
2346
2189
  );
2347
- const menuItemsGroups = (0, import_react17.useMemo)(
2190
+ const menuItemsGroups = (0, import_react16.useMemo)(
2348
2191
  () => Object.values(
2349
2192
  backofficeMenuItems.reduce((menuItemsByApps, menuItem) => {
2350
2193
  const [requiredApp] = menuItem.requiredApps;
@@ -2353,11 +2196,11 @@ var DashboardMenuPluginWizard = ({ backofficeMenuItems }) => {
2353
2196
  menuItemsByApps[groupBy].items.push({
2354
2197
  title: menuItem.name,
2355
2198
  key: menuItem.id,
2356
- description: /* @__PURE__ */ import_react17.default.createElement(
2199
+ description: /* @__PURE__ */ import_react16.default.createElement(
2357
2200
  Trans,
2358
2201
  {
2359
2202
  i18nKey: "generate_command.dashboard_menu_plugin.what_to_extend.item_description",
2360
- components: [/* @__PURE__ */ import_react17.default.createElement(Link, { url: requiredApp.docsUrl })]
2203
+ components: [/* @__PURE__ */ import_react16.default.createElement(Link, { url: requiredApp.docsUrl })]
2361
2204
  }
2362
2205
  ),
2363
2206
  value: menuItem
@@ -2367,16 +2210,16 @@ var DashboardMenuPluginWizard = ({ backofficeMenuItems }) => {
2367
2210
  ),
2368
2211
  [backofficeMenuItems]
2369
2212
  );
2370
- return /* @__PURE__ */ import_react17.default.createElement(import_react17.default.Fragment, null, /* @__PURE__ */ import_react17.default.createElement(
2213
+ return /* @__PURE__ */ import_react16.default.createElement(import_react16.default.Fragment, null, /* @__PURE__ */ import_react16.default.createElement(
2371
2214
  SelectGroupsInput,
2372
2215
  {
2373
2216
  label: t2("generate_command.dashboard_menu_plugin.what_to_extend"),
2374
2217
  hideScroll: true,
2375
- info: /* @__PURE__ */ import_react17.default.createElement(
2218
+ info: /* @__PURE__ */ import_react16.default.createElement(
2376
2219
  Trans,
2377
2220
  {
2378
2221
  i18nKey: "generate_command.dashboard_menu_plugin.what_to_extend.description",
2379
- components: [/* @__PURE__ */ import_react17.default.createElement(Link, { url: "https://wix.to/h8AJ7f5" })]
2222
+ components: [/* @__PURE__ */ import_react16.default.createElement(Link, { url: "https://wix.to/h8AJ7f5" })]
2380
2223
  }
2381
2224
  ),
2382
2225
  groups: menuItemsGroups,
@@ -2398,7 +2241,7 @@ var DashboardMenuPluginWizard = ({ backofficeMenuItems }) => {
2398
2241
  setBackofficeMenuItem(item.value);
2399
2242
  }
2400
2243
  }
2401
- ), backofficeMenuItem && (backofficeMenuItem.requiredApps.length === 1 ? /* @__PURE__ */ import_react17.default.createElement(
2244
+ ), backofficeMenuItem && (backofficeMenuItem.requiredApps.length === 1 ? /* @__PURE__ */ import_react16.default.createElement(
2402
2245
  AppRequirement,
2403
2246
  {
2404
2247
  appId: model.config.appId,
@@ -2410,7 +2253,7 @@ var DashboardMenuPluginWizard = ({ backofficeMenuItems }) => {
2410
2253
  ],
2411
2254
  onSubmit: setRequireAppsIds
2412
2255
  }
2413
- ) : /* @__PURE__ */ import_react17.default.createElement(
2256
+ ) : /* @__PURE__ */ import_react16.default.createElement(
2414
2257
  MultipleAppRequirement,
2415
2258
  {
2416
2259
  appId: model.config.appId,
@@ -2422,7 +2265,7 @@ var DashboardMenuPluginWizard = ({ backofficeMenuItems }) => {
2422
2265
  ),
2423
2266
  onSubmit: setRequireAppsIds
2424
2267
  }
2425
- )), requireAppsIds && /* @__PURE__ */ import_react17.default.createElement(
2268
+ )), requireAppsIds && /* @__PURE__ */ import_react16.default.createElement(
2426
2269
  SelectInput,
2427
2270
  {
2428
2271
  label: t2("generate_command.dashboard_menu_plugin.what_to_do"),
@@ -2452,10 +2295,10 @@ var DashboardMenuPluginWizard = ({ backofficeMenuItems }) => {
2452
2295
  setActionType(action2.value);
2453
2296
  }
2454
2297
  }
2455
- ), actionType && (0, import_variant20.match)(actionType, {
2456
- NavigateToPage: () => /* @__PURE__ */ import_react17.default.createElement(NavigateToPage, { onActionSelected: handleActionSelected }),
2457
- OpenModal: () => /* @__PURE__ */ import_react17.default.createElement(OpenModal, { onActionSelected: handleActionSelected })
2458
- }), action && /* @__PURE__ */ import_react17.default.createElement(
2298
+ ), actionType && (0, import_variant19.match)(actionType, {
2299
+ NavigateToPage: () => /* @__PURE__ */ import_react16.default.createElement(NavigateToPage, { onActionSelected: handleActionSelected }),
2300
+ OpenModal: () => /* @__PURE__ */ import_react16.default.createElement(OpenModal, { onActionSelected: handleActionSelected })
2301
+ }), action && /* @__PURE__ */ import_react16.default.createElement(
2459
2302
  TextInput,
2460
2303
  {
2461
2304
  label: t2("generate_command.dashboard_menu_plugin.choose_title"),
@@ -2474,7 +2317,7 @@ var DashboardMenuPluginWizard = ({ backofficeMenuItems }) => {
2474
2317
  setTitle(value);
2475
2318
  }
2476
2319
  }
2477
- ), title && /* @__PURE__ */ import_react17.default.createElement(
2320
+ ), title && /* @__PURE__ */ import_react16.default.createElement(
2478
2321
  TextInput,
2479
2322
  {
2480
2323
  label: t2("generate_command.dashboard_menu_plugin.choose_folder"),
@@ -2492,11 +2335,11 @@ var DashboardMenuPluginWizard = ({ backofficeMenuItems }) => {
2492
2335
  },
2493
2336
  validate: validateMenuPluginFolder
2494
2337
  }
2495
- ), (0, import_react17.useMemo)(
2496
- () => (0, import_variant20.match)(generationTask, {
2338
+ ), (0, import_react16.useMemo)(
2339
+ () => (0, import_variant19.match)(generationTask, {
2497
2340
  Success: ({ hasUpdatedDependencies }) => {
2498
2341
  if (hasUpdatedDependencies) {
2499
- return /* @__PURE__ */ import_react17.default.createElement(
2342
+ return /* @__PURE__ */ import_react16.default.createElement(
2500
2343
  InstallDependencies,
2501
2344
  {
2502
2345
  onFinish: () => setFinishedInstallation(true)
@@ -2506,7 +2349,7 @@ var DashboardMenuPluginWizard = ({ backofficeMenuItems }) => {
2506
2349
  setFinishedInstallation(true);
2507
2350
  return null;
2508
2351
  },
2509
- Loading: () => /* @__PURE__ */ import_react17.default.createElement(
2352
+ Loading: () => /* @__PURE__ */ import_react16.default.createElement(
2510
2353
  Spinner,
2511
2354
  {
2512
2355
  text: t2("generate_command.generation.loading", {
@@ -2518,7 +2361,7 @@ var DashboardMenuPluginWizard = ({ backofficeMenuItems }) => {
2518
2361
  NotRequested: () => null
2519
2362
  }),
2520
2363
  [generationTask, setFinishedInstallation, t2, extensionType]
2521
- ), finishedInstallation && backofficeMenuItem ? /* @__PURE__ */ import_react17.default.createElement(
2364
+ ), finishedInstallation && backofficeMenuItem ? /* @__PURE__ */ import_react16.default.createElement(
2522
2365
  DashboardMenuPluginGeneratedNote,
2523
2366
  {
2524
2367
  backofficeMenuItem
@@ -2530,17 +2373,17 @@ var DashboardMenuPluginWizard = ({ backofficeMenuItems }) => {
2530
2373
  var DashboardMenuPlugin = () => {
2531
2374
  const { t: t2 } = useTranslation();
2532
2375
  const { status } = useAsync(getBackofficeMenuItems, []);
2533
- return (0, import_variant21.match)(status, {
2376
+ return (0, import_variant20.match)(status, {
2534
2377
  Error: () => null,
2535
- Loading: () => /* @__PURE__ */ import_react18.default.createElement(Spinner, { text: t2("general.loading") }),
2536
- Success: ({ result: backofficeMenuItems }) => /* @__PURE__ */ import_react18.default.createElement(DashboardMenuPluginWizard, { backofficeMenuItems })
2378
+ Loading: () => /* @__PURE__ */ import_react17.default.createElement(Spinner, { text: t2("general.loading") }),
2379
+ Success: ({ result: backofficeMenuItems }) => /* @__PURE__ */ import_react17.default.createElement(DashboardMenuPluginWizard, { backofficeMenuItems })
2537
2380
  });
2538
2381
  };
2539
2382
 
2540
2383
  // src/components/GenerateCommand/site-plugin/SitePlugin.tsx
2541
2384
  init_esm_shims();
2542
- var import_react21 = __toESM(require_react(), 1);
2543
- var import_variant23 = __toESM(require_lib(), 1);
2385
+ var import_react20 = __toESM(require_react(), 1);
2386
+ var import_variant22 = __toESM(require_lib(), 1);
2544
2387
 
2545
2388
  // ../site-plugin-client/src/index.ts
2546
2389
  init_esm_shims();
@@ -2608,31 +2451,31 @@ var SitePluginClient = class {
2608
2451
 
2609
2452
  // ../site-plugin-client/src/useSitePluginClient.ts
2610
2453
  init_esm_shims();
2611
- var import_react19 = __toESM(require_react(), 1);
2454
+ var import_react18 = __toESM(require_react(), 1);
2612
2455
  function useSitePluginClient() {
2613
2456
  const httpClient = useHttpClient({ type: "general" });
2614
- return (0, import_react19.useMemo)(() => new SitePluginClient(httpClient), [httpClient]);
2457
+ return (0, import_react18.useMemo)(() => new SitePluginClient(httpClient), [httpClient]);
2615
2458
  }
2616
2459
 
2617
2460
  // src/components/GenerateCommand/site-plugin/SitePluginWizard.tsx
2618
2461
  init_esm_shims();
2619
- var import_react20 = __toESM(require_react(), 1);
2620
- var import_variant22 = __toESM(require_lib(), 1);
2621
- var import_lodash7 = __toESM(require_lodash(), 1);
2462
+ var import_react19 = __toESM(require_react(), 1);
2463
+ var import_variant21 = __toESM(require_lib(), 1);
2464
+ var import_lodash6 = __toESM(require_lodash(), 1);
2622
2465
  var import_uniqBy = __toESM(require_uniqBy(), 1);
2623
2466
 
2624
2467
  // src/components/GenerateCommand/site-plugin/generate.tsx
2625
2468
  init_esm_shims();
2626
- import path10 from "node:path";
2627
- import { randomUUID as randomUUID9 } from "node:crypto";
2628
- var SITE_PLUGIN_TEMPLATE = path10.resolve(
2469
+ import path9 from "node:path";
2470
+ import { randomUUID as randomUUID8 } from "node:crypto";
2471
+ var SITE_PLUGIN_TEMPLATE = path9.resolve(
2629
2472
  __dirname,
2630
2473
  "../templates/site-plugin"
2631
2474
  );
2632
2475
  async function generateSitePlugin(projectFolder, placements, folder, name, widgetName, widgetDocsLink) {
2633
- const readablePath = path10.join(SITE_PLUGINS_DIR, folder);
2634
- const cwd = path10.join(getSitePluginsDir(projectFolder), folder);
2635
- const defaultLogoPath = path10.join(
2476
+ const readablePath = path9.join(SITE_PLUGINS_DIR, folder);
2477
+ const cwd = path9.join(getSitePluginsDir(projectFolder), folder);
2478
+ const defaultLogoPath = path9.join(
2636
2479
  projectFolder,
2637
2480
  "src/assets",
2638
2481
  folder,
@@ -2640,11 +2483,11 @@ async function generateSitePlugin(projectFolder, placements, folder, name, widge
2640
2483
  );
2641
2484
  const sitePluginConfig = {
2642
2485
  $schema: "https://dev.wix.com/wix-cli/schemas/site-plugin.json",
2643
- id: randomUUID9(),
2644
- referenceComponentId: randomUUID9(),
2486
+ id: randomUUID8(),
2487
+ referenceComponentId: randomUUID8(),
2645
2488
  marketData: {
2646
2489
  name,
2647
- logoUrl: path10.relative(cwd, defaultLogoPath)
2490
+ logoUrl: path9.relative(cwd, defaultLogoPath)
2648
2491
  },
2649
2492
  placements,
2650
2493
  installation: {
@@ -2676,7 +2519,7 @@ var SitePluginWizard = ({ placements }) => {
2676
2519
  const { model } = useProjectModel();
2677
2520
  const { addRequiredApp } = useDevCenterClient();
2678
2521
  const { getWidgetDocsUrl } = useSitePluginClient();
2679
- const pluginApplications = (0, import_react20.useMemo)(
2522
+ const pluginApplications = (0, import_react19.useMemo)(
2680
2523
  () => (0, import_uniqBy.default)(placements, "appName").map((pluginPlacement) => ({
2681
2524
  value: pluginPlacement.appName,
2682
2525
  title: pluginPlacement.appName
@@ -2686,23 +2529,23 @@ var SitePluginWizard = ({ placements }) => {
2686
2529
  const extensionType = t2("generate_command.flow.site_plugin").toLowerCase();
2687
2530
  const validateFolderName = useCustomElementDirectoryValidation("Site plugin");
2688
2531
  const validateName = useCustomElementNameValidation();
2689
- const [appsToRequire, setAppsToRequire] = (0, import_react20.useState)();
2690
- const [placement, setPlacement] = (0, import_react20.useState)();
2691
- const [placementApp, setPlacementApp] = (0, import_react20.useState)();
2692
- const [pluginFolder, setPluginFolder] = (0, import_react20.useState)();
2693
- const [pluginName, setPluginName] = (0, import_react20.useState)();
2694
- const [finishedInstallation, setFinishedInstallation] = (0, import_react20.useState)(false);
2695
- const defaultPluginFolder = (0, import_lodash7.kebabCase)(pluginName);
2696
- const widgetSlots = (0, import_react20.useMemo)(
2532
+ const [appsToRequire, setAppsToRequire] = (0, import_react19.useState)();
2533
+ const [placement, setPlacement] = (0, import_react19.useState)();
2534
+ const [placementApp, setPlacementApp] = (0, import_react19.useState)();
2535
+ const [pluginFolder, setPluginFolder] = (0, import_react19.useState)();
2536
+ const [pluginName, setPluginName] = (0, import_react19.useState)();
2537
+ const [finishedInstallation, setFinishedInstallation] = (0, import_react19.useState)(false);
2538
+ const defaultPluginFolder = (0, import_lodash6.kebabCase)(pluginName);
2539
+ const widgetSlots = (0, import_react19.useMemo)(
2697
2540
  () => placementApp ? Object.values(
2698
2541
  placements.filter((placement2) => placement2.appName === placementApp).reduce(
2699
2542
  (_widgetSlots, placement2) => {
2700
2543
  const widgetDocsUrl = getWidgetDocsUrl(placement2.widgetId);
2701
- const description = widgetDocsUrl && /* @__PURE__ */ import_react20.default.createElement(Text, { skin: "secondary" }, /* @__PURE__ */ import_react20.default.createElement(
2544
+ const description = widgetDocsUrl && /* @__PURE__ */ import_react19.default.createElement(Text, { skin: "secondary" }, /* @__PURE__ */ import_react19.default.createElement(
2702
2545
  Trans,
2703
2546
  {
2704
2547
  i18nKey: "generate_command.site_plugin.widget_docs",
2705
- components: [/* @__PURE__ */ import_react20.default.createElement(Link, { url: widgetDocsUrl })]
2548
+ components: [/* @__PURE__ */ import_react19.default.createElement(Link, { url: widgetDocsUrl })]
2706
2549
  }
2707
2550
  ));
2708
2551
  _widgetSlots[placement2.widgetId] ??= {
@@ -2742,15 +2585,15 @@ var SitePluginWizard = ({ placements }) => {
2742
2585
  );
2743
2586
  }
2744
2587
  }, [pluginFolder, pluginName, placement, appsToRequire]);
2745
- return /* @__PURE__ */ import_react20.default.createElement(import_react20.default.Fragment, null, /* @__PURE__ */ import_react20.default.createElement(
2588
+ return /* @__PURE__ */ import_react19.default.createElement(import_react19.default.Fragment, null, /* @__PURE__ */ import_react19.default.createElement(
2746
2589
  SelectInput,
2747
2590
  {
2748
2591
  label: t2("generate_command.site_plugin.plugin_app"),
2749
- info: /* @__PURE__ */ import_react20.default.createElement(
2592
+ info: /* @__PURE__ */ import_react19.default.createElement(
2750
2593
  Trans,
2751
2594
  {
2752
2595
  i18nKey: "generate_command.site_plugin.plugin_app.description",
2753
- components: [/* @__PURE__ */ import_react20.default.createElement(Link, { url: "https://wix.to/Onfe4XJ" })]
2596
+ components: [/* @__PURE__ */ import_react19.default.createElement(Link, { url: "https://wix.to/Onfe4XJ" })]
2754
2597
  }
2755
2598
  ),
2756
2599
  options: pluginApplications,
@@ -2764,7 +2607,7 @@ var SitePluginWizard = ({ placements }) => {
2764
2607
  setPlacementApp(option.value);
2765
2608
  }
2766
2609
  }
2767
- ), placementApp && /* @__PURE__ */ import_react20.default.createElement(
2610
+ ), placementApp && /* @__PURE__ */ import_react19.default.createElement(
2768
2611
  SelectGroupsInput,
2769
2612
  {
2770
2613
  label: t2("generate_command.site_plugin.choose_placement"),
@@ -2779,7 +2622,7 @@ var SitePluginWizard = ({ placements }) => {
2779
2622
  setPlacement(option.value);
2780
2623
  }
2781
2624
  }
2782
- ), placement && /* @__PURE__ */ import_react20.default.createElement(
2625
+ ), placement && /* @__PURE__ */ import_react19.default.createElement(
2783
2626
  AppRequirement,
2784
2627
  {
2785
2628
  appId: model.config.appId,
@@ -2791,7 +2634,7 @@ var SitePluginWizard = ({ placements }) => {
2791
2634
  ],
2792
2635
  onSubmit: setAppsToRequire
2793
2636
  }
2794
- ), appsToRequire && /* @__PURE__ */ import_react20.default.createElement(
2637
+ ), appsToRequire && /* @__PURE__ */ import_react19.default.createElement(
2795
2638
  TextInput,
2796
2639
  {
2797
2640
  label: t2("generate_command.site_plugin.choose_name"),
@@ -2809,7 +2652,7 @@ var SitePluginWizard = ({ placements }) => {
2809
2652
  },
2810
2653
  validate: validateName
2811
2654
  }
2812
- ), pluginName && /* @__PURE__ */ import_react20.default.createElement(
2655
+ ), pluginName && /* @__PURE__ */ import_react19.default.createElement(
2813
2656
  TextInput,
2814
2657
  {
2815
2658
  label: t2("generate_command.site_plugin.choose_folder"),
@@ -2827,11 +2670,11 @@ var SitePluginWizard = ({ placements }) => {
2827
2670
  },
2828
2671
  validate: validateFolderName
2829
2672
  }
2830
- ), (0, import_react20.useMemo)(
2831
- () => (0, import_variant22.match)(generationTask, {
2673
+ ), (0, import_react19.useMemo)(
2674
+ () => (0, import_variant21.match)(generationTask, {
2832
2675
  Success: ({ hasUpdatedDependencies }) => {
2833
2676
  if (hasUpdatedDependencies) {
2834
- return /* @__PURE__ */ import_react20.default.createElement(
2677
+ return /* @__PURE__ */ import_react19.default.createElement(
2835
2678
  InstallDependencies,
2836
2679
  {
2837
2680
  onFinish: () => setFinishedInstallation(true)
@@ -2841,7 +2684,7 @@ var SitePluginWizard = ({ placements }) => {
2841
2684
  setFinishedInstallation(true);
2842
2685
  return null;
2843
2686
  },
2844
- Loading: () => /* @__PURE__ */ import_react20.default.createElement(
2687
+ Loading: () => /* @__PURE__ */ import_react19.default.createElement(
2845
2688
  Spinner,
2846
2689
  {
2847
2690
  text: t2("generate_command.generation.loading", {
@@ -2853,14 +2696,14 @@ var SitePluginWizard = ({ placements }) => {
2853
2696
  NotRequested: () => null
2854
2697
  }),
2855
2698
  [generationTask, setFinishedInstallation, t2, extensionType]
2856
- ), finishedInstallation && /* @__PURE__ */ import_react20.default.createElement(import_react20.default.Fragment, null, /* @__PURE__ */ import_react20.default.createElement(Text, null, t2("generate_command.generation.done", {
2699
+ ), finishedInstallation && /* @__PURE__ */ import_react19.default.createElement(import_react19.default.Fragment, null, /* @__PURE__ */ import_react19.default.createElement(Text, null, t2("generate_command.generation.done", {
2857
2700
  extensionType
2858
- })), /* @__PURE__ */ import_react20.default.createElement(
2701
+ })), /* @__PURE__ */ import_react19.default.createElement(
2859
2702
  Trans,
2860
2703
  {
2861
2704
  i18nKey: "generate_command.generation.learn_more",
2862
2705
  values: { extensionType },
2863
- components: [/* @__PURE__ */ import_react20.default.createElement(Learn, null), /* @__PURE__ */ import_react20.default.createElement(Link, { url: "https://wix.to/rEfCfbY" })]
2706
+ components: [/* @__PURE__ */ import_react19.default.createElement(Learn, null), /* @__PURE__ */ import_react19.default.createElement(Link, { url: "https://wix.to/rEfCfbY" })]
2864
2707
  }
2865
2708
  )));
2866
2709
  };
@@ -2870,24 +2713,24 @@ var GenerateSitePlugin = () => {
2870
2713
  const { t: t2 } = useTranslation();
2871
2714
  const { getPlacements } = useSitePluginClient();
2872
2715
  const { status } = useAsync(getPlacements, []);
2873
- return (0, import_variant23.match)(status, {
2716
+ return (0, import_variant22.match)(status, {
2874
2717
  Error: () => null,
2875
- Loading: () => /* @__PURE__ */ import_react21.default.createElement(Spinner, { text: t2("general.loading") }),
2876
- Success: ({ result }) => /* @__PURE__ */ import_react21.default.createElement(SitePluginWizard, { placements: result.placements })
2718
+ Loading: () => /* @__PURE__ */ import_react20.default.createElement(Spinner, { text: t2("general.loading") }),
2719
+ Success: ({ result }) => /* @__PURE__ */ import_react20.default.createElement(SitePluginWizard, { placements: result.placements })
2877
2720
  });
2878
2721
  };
2879
2722
 
2880
2723
  // src/components/GenerateCommand/api/Api.tsx
2881
2724
  init_esm_shims();
2882
- var import_react22 = __toESM(require_react(), 1);
2883
- var import_variant24 = __toESM(require_lib(), 1);
2725
+ var import_react21 = __toESM(require_react(), 1);
2726
+ var import_variant23 = __toESM(require_lib(), 1);
2884
2727
 
2885
2728
  // src/components/GenerateCommand/api/generate.ts
2886
2729
  init_esm_shims();
2887
- import path11 from "node:path";
2888
- var API_TEMPLATE = path11.resolve(__dirname, "../templates/api");
2730
+ import path10 from "node:path";
2731
+ var API_TEMPLATE = path10.resolve(__dirname, "../templates/api");
2889
2732
  async function generateApi(projectFolder, folderName) {
2890
- const cwd = path11.join(getApiFolder(projectFolder), folderName);
2733
+ const cwd = path10.join(getApiFolder(projectFolder), folderName);
2891
2734
  await componentGenerator({
2892
2735
  template: API_TEMPLATE,
2893
2736
  cwd,
@@ -2903,9 +2746,9 @@ var GenerateApi = () => {
2903
2746
  const { t: t2 } = useTranslation();
2904
2747
  const { model } = useProjectModel();
2905
2748
  const { cliFlowStepAnswered } = useWixCliAppBi();
2906
- const [apiFolder, setApiFolder] = (0, import_react22.useState)();
2749
+ const [apiFolder, setApiFolder] = (0, import_react21.useState)();
2907
2750
  const { backendComponentsByType } = useBackendComponents();
2908
- const [finishedInstallation, setFinishedInstallation] = (0, import_react22.useState)(false);
2751
+ const [finishedInstallation, setFinishedInstallation] = (0, import_react21.useState)(false);
2909
2752
  const apis = backendComponentsByType.Api;
2910
2753
  const extensionType = t2("generate_command.flow.api.title").toLowerCase();
2911
2754
  const validateApiFolder = useValidation(
@@ -2921,7 +2764,7 @@ var GenerateApi = () => {
2921
2764
  return generateApi(model.projectFolder, apiFolder);
2922
2765
  }
2923
2766
  }, [model.projectFolder, apiFolder]);
2924
- return /* @__PURE__ */ import_react22.default.createElement(import_react22.default.Fragment, null, /* @__PURE__ */ import_react22.default.createElement(
2767
+ return /* @__PURE__ */ import_react21.default.createElement(import_react21.default.Fragment, null, /* @__PURE__ */ import_react21.default.createElement(
2925
2768
  TextInput,
2926
2769
  {
2927
2770
  label: t2("generate_command.api.choose_api_name"),
@@ -2936,11 +2779,11 @@ var GenerateApi = () => {
2936
2779
  },
2937
2780
  validate: validateApiFolder
2938
2781
  }
2939
- ), (0, import_react22.useMemo)(
2940
- () => (0, import_variant24.match)(generationTask, {
2782
+ ), (0, import_react21.useMemo)(
2783
+ () => (0, import_variant23.match)(generationTask, {
2941
2784
  Success: ({ hasUpdatedDependencies }) => {
2942
2785
  if (hasUpdatedDependencies) {
2943
- return /* @__PURE__ */ import_react22.default.createElement(
2786
+ return /* @__PURE__ */ import_react21.default.createElement(
2944
2787
  InstallDependencies,
2945
2788
  {
2946
2789
  onFinish: () => setFinishedInstallation(true)
@@ -2950,7 +2793,7 @@ var GenerateApi = () => {
2950
2793
  setFinishedInstallation(true);
2951
2794
  return null;
2952
2795
  },
2953
- Loading: () => /* @__PURE__ */ import_react22.default.createElement(
2796
+ Loading: () => /* @__PURE__ */ import_react21.default.createElement(
2954
2797
  Spinner,
2955
2798
  {
2956
2799
  text: t2("generate_command.generation.loading", {
@@ -2962,29 +2805,29 @@ var GenerateApi = () => {
2962
2805
  NotRequested: () => null
2963
2806
  }),
2964
2807
  [generationTask, setFinishedInstallation, t2, extensionType]
2965
- ), finishedInstallation && /* @__PURE__ */ import_react22.default.createElement(Box_default, { flexDirection: "column" }, /* @__PURE__ */ import_react22.default.createElement(Text, null, t2("generate_command.generation.done", {
2808
+ ), finishedInstallation && /* @__PURE__ */ import_react21.default.createElement(Box_default, { flexDirection: "column" }, /* @__PURE__ */ import_react21.default.createElement(Text, null, t2("generate_command.generation.done", {
2966
2809
  extensionType
2967
- })), /* @__PURE__ */ import_react22.default.createElement(
2810
+ })), /* @__PURE__ */ import_react21.default.createElement(
2968
2811
  Trans,
2969
2812
  {
2970
2813
  i18nKey: "generate_command.generation.learn_more",
2971
2814
  values: { extensionType },
2972
- components: [/* @__PURE__ */ import_react22.default.createElement(Learn, null), /* @__PURE__ */ import_react22.default.createElement(Link, { url: "https://wix.to/BEkD5a1" })]
2815
+ components: [/* @__PURE__ */ import_react21.default.createElement(Learn, null), /* @__PURE__ */ import_react21.default.createElement(Link, { url: "https://wix.to/BEkD5a1" })]
2973
2816
  }
2974
2817
  )));
2975
2818
  };
2976
2819
 
2977
2820
  // src/components/GenerateCommand/event/Event.tsx
2978
2821
  init_esm_shims();
2979
- var import_react23 = __toESM(require_react(), 1);
2980
- var import_variant25 = __toESM(require_lib(), 1);
2822
+ var import_react22 = __toESM(require_react(), 1);
2823
+ var import_variant24 = __toESM(require_lib(), 1);
2981
2824
 
2982
2825
  // src/components/GenerateCommand/event/generate.ts
2983
2826
  init_esm_shims();
2984
- import path12 from "node:path";
2985
- var EVENT_TEMPLATE = path12.resolve(__dirname, "../templates/event");
2827
+ import path11 from "node:path";
2828
+ var EVENT_TEMPLATE = path11.resolve(__dirname, "../templates/event");
2986
2829
  async function generateEvent(projectFolder, folderName) {
2987
- const cwd = path12.join(getEventsFolder(projectFolder), folderName);
2830
+ const cwd = path11.join(getEventsFolder(projectFolder), folderName);
2988
2831
  return await componentGenerator({
2989
2832
  template: EVENT_TEMPLATE,
2990
2833
  cwd,
@@ -2998,8 +2841,8 @@ var GenerateEvent = () => {
2998
2841
  const { model } = useProjectModel();
2999
2842
  const { backendComponentsByType } = useBackendComponents();
3000
2843
  const { cliFlowStepAnswered } = useWixCliAppBi();
3001
- const [eventFolder, setEventFolder] = (0, import_react23.useState)();
3002
- const [finishedInstallation, setFinishedInstallation] = (0, import_react23.useState)(false);
2844
+ const [eventFolder, setEventFolder] = (0, import_react22.useState)();
2845
+ const [finishedInstallation, setFinishedInstallation] = (0, import_react22.useState)(false);
3003
2846
  const events = backendComponentsByType.Event;
3004
2847
  const extensionType = t2("generate_command.flow.event").toLowerCase();
3005
2848
  const validateEventFolder = useValidation(
@@ -3015,7 +2858,7 @@ var GenerateEvent = () => {
3015
2858
  return generateEvent(model.projectFolder, eventFolder);
3016
2859
  }
3017
2860
  }, [model.projectFolder, eventFolder]);
3018
- return /* @__PURE__ */ import_react23.default.createElement(import_react23.default.Fragment, null, /* @__PURE__ */ import_react23.default.createElement(
2861
+ return /* @__PURE__ */ import_react22.default.createElement(import_react22.default.Fragment, null, /* @__PURE__ */ import_react22.default.createElement(
3019
2862
  TextInput,
3020
2863
  {
3021
2864
  label: t2("generate_command.event.choose_folder"),
@@ -3030,11 +2873,11 @@ var GenerateEvent = () => {
3030
2873
  },
3031
2874
  validate: validateEventFolder
3032
2875
  }
3033
- ), (0, import_react23.useMemo)(
3034
- () => (0, import_variant25.match)(generationTask, {
2876
+ ), (0, import_react22.useMemo)(
2877
+ () => (0, import_variant24.match)(generationTask, {
3035
2878
  Success: ({ hasUpdatedDependencies }) => {
3036
2879
  if (hasUpdatedDependencies) {
3037
- return /* @__PURE__ */ import_react23.default.createElement(
2880
+ return /* @__PURE__ */ import_react22.default.createElement(
3038
2881
  InstallDependencies,
3039
2882
  {
3040
2883
  onFinish: () => setFinishedInstallation(true)
@@ -3044,7 +2887,7 @@ var GenerateEvent = () => {
3044
2887
  setFinishedInstallation(true);
3045
2888
  return null;
3046
2889
  },
3047
- Loading: () => /* @__PURE__ */ import_react23.default.createElement(
2890
+ Loading: () => /* @__PURE__ */ import_react22.default.createElement(
3048
2891
  Spinner,
3049
2892
  {
3050
2893
  text: t2("generate_command.generation.loading", {
@@ -3056,28 +2899,28 @@ var GenerateEvent = () => {
3056
2899
  NotRequested: () => null
3057
2900
  }),
3058
2901
  [generationTask, setFinishedInstallation, t2, extensionType]
3059
- ), finishedInstallation && /* @__PURE__ */ import_react23.default.createElement(import_react23.default.Fragment, null, /* @__PURE__ */ import_react23.default.createElement(Text, null, t2("generate_command.generation.done", {
2902
+ ), finishedInstallation && /* @__PURE__ */ import_react22.default.createElement(import_react22.default.Fragment, null, /* @__PURE__ */ import_react22.default.createElement(Text, null, t2("generate_command.generation.done", {
3060
2903
  extensionType
3061
- })), /* @__PURE__ */ import_react23.default.createElement(
2904
+ })), /* @__PURE__ */ import_react22.default.createElement(
3062
2905
  Trans,
3063
2906
  {
3064
2907
  i18nKey: "generate_command.generation.learn_more",
3065
2908
  values: { extensionType },
3066
- components: [/* @__PURE__ */ import_react23.default.createElement(Learn, null), /* @__PURE__ */ import_react23.default.createElement(Link, { url: "https://wix.to/BEkD5a1" })]
2909
+ components: [/* @__PURE__ */ import_react22.default.createElement(Learn, null), /* @__PURE__ */ import_react22.default.createElement(Link, { url: "https://wix.to/BEkD5a1" })]
3067
2910
  }
3068
2911
  )));
3069
2912
  };
3070
2913
 
3071
2914
  // src/components/GenerateCommand/web-method-module/WebMethod.tsx
3072
2915
  init_esm_shims();
3073
- var import_react24 = __toESM(require_react(), 1);
3074
- var import_variant26 = __toESM(require_lib(), 1);
2916
+ var import_react23 = __toESM(require_react(), 1);
2917
+ var import_variant25 = __toESM(require_lib(), 1);
3075
2918
  import { join as join5 } from "node:path";
3076
2919
 
3077
2920
  // src/components/GenerateCommand/web-method-module/generate.ts
3078
2921
  init_esm_shims();
3079
- import path13, { join as join4 } from "node:path";
3080
- var WEB_METHOD_TEMPLATE = path13.resolve(__dirname, "../templates/web-method");
2922
+ import path12, { join as join4 } from "node:path";
2923
+ var WEB_METHOD_TEMPLATE = path12.resolve(__dirname, "../templates/web-method");
3081
2924
  async function generateWebMethod(projectFolder, folderPath) {
3082
2925
  const filePath = join4(WEB_METHOD_DIR, folderPath);
3083
2926
  await componentGenerator({
@@ -3086,7 +2929,7 @@ async function generateWebMethod(projectFolder, folderPath) {
3086
2929
  projectFolder,
3087
2930
  data: {
3088
2931
  filePath,
3089
- fileName: path13.basename(filePath)
2932
+ fileName: path12.basename(filePath)
3090
2933
  }
3091
2934
  });
3092
2935
  }
@@ -3096,9 +2939,9 @@ var GenerateWebMethod = () => {
3096
2939
  const { t: t2 } = useTranslation();
3097
2940
  const { model } = useProjectModel();
3098
2941
  const { cliFlowStepAnswered } = useWixCliAppBi();
3099
- const [webMethodFolder, setWebMethodFolder] = (0, import_react24.useState)();
2942
+ const [webMethodFolder, setWebMethodFolder] = (0, import_react23.useState)();
3100
2943
  const { backendComponentsByType } = useBackendComponents();
3101
- const [finishedInstallation, setFinishedInstallation] = (0, import_react24.useState)(false);
2944
+ const [finishedInstallation, setFinishedInstallation] = (0, import_react23.useState)(false);
3102
2945
  const webMethods = backendComponentsByType.WebMethod;
3103
2946
  const extensionType = t2(
3104
2947
  "generate_command.flow.web_method.title"
@@ -3121,7 +2964,7 @@ var GenerateWebMethod = () => {
3121
2964
  return generateWebMethod(model.projectFolder, webMethodFolder);
3122
2965
  }
3123
2966
  }, [model.projectFolder, webMethodFolder]);
3124
- return /* @__PURE__ */ import_react24.default.createElement(import_react24.default.Fragment, null, /* @__PURE__ */ import_react24.default.createElement(
2967
+ return /* @__PURE__ */ import_react23.default.createElement(import_react23.default.Fragment, null, /* @__PURE__ */ import_react23.default.createElement(
3125
2968
  TextInput,
3126
2969
  {
3127
2970
  label: t2("generate_command.web_method.choose_filename"),
@@ -3138,6 +2981,235 @@ var GenerateWebMethod = () => {
3138
2981
  },
3139
2982
  validate: validateWebMethodFolder
3140
2983
  }
2984
+ ), (0, import_react23.useMemo)(
2985
+ () => (0, import_variant25.match)(generationTask, {
2986
+ Success: ({ hasUpdatedDependencies }) => {
2987
+ if (hasUpdatedDependencies) {
2988
+ return /* @__PURE__ */ import_react23.default.createElement(
2989
+ InstallDependencies,
2990
+ {
2991
+ onFinish: () => setFinishedInstallation(true)
2992
+ }
2993
+ );
2994
+ }
2995
+ setFinishedInstallation(true);
2996
+ return null;
2997
+ },
2998
+ Loading: () => /* @__PURE__ */ import_react23.default.createElement(
2999
+ Spinner,
3000
+ {
3001
+ text: t2("generate_command.generation.loading", {
3002
+ subject: extensionType
3003
+ })
3004
+ }
3005
+ ),
3006
+ Error: () => null,
3007
+ NotRequested: () => null
3008
+ }),
3009
+ [generationTask, setFinishedInstallation, t2, extensionType]
3010
+ ), finishedInstallation && /* @__PURE__ */ import_react23.default.createElement(Box_default, { flexDirection: "column" }, /* @__PURE__ */ import_react23.default.createElement(Text, null, t2("generate_command.generation.done", {
3011
+ extensionType
3012
+ })), /* @__PURE__ */ import_react23.default.createElement(
3013
+ Trans,
3014
+ {
3015
+ i18nKey: "generate_command.generation.learn_more",
3016
+ values: { extensionType },
3017
+ components: [/* @__PURE__ */ import_react23.default.createElement(Learn, null), /* @__PURE__ */ import_react23.default.createElement(Link, { url: "https://wix.to/BEkD5a1" })]
3018
+ }
3019
+ )));
3020
+ };
3021
+
3022
+ // src/components/GenerateCommand/site-widget/index.ts
3023
+ init_esm_shims();
3024
+
3025
+ // src/components/GenerateCommand/site-widget/SiteWidgetWizard.tsx
3026
+ init_esm_shims();
3027
+ var import_react26 = __toESM(require_react(), 1);
3028
+
3029
+ // src/components/GenerateCommand/site-widget/custom-element/CustomElement.tsx
3030
+ init_esm_shims();
3031
+ var import_react24 = __toESM(require_react(), 1);
3032
+ var import_variant26 = __toESM(require_lib(), 1);
3033
+ var import_lodash7 = __toESM(require_lodash(), 1);
3034
+
3035
+ // src/components/GenerateCommand/site-widget/custom-element/generate.ts
3036
+ init_esm_shims();
3037
+ import path13 from "node:path";
3038
+ import { randomUUID as randomUUID9 } from "node:crypto";
3039
+ var CUSTOM_ELEMENT_TEMPLATE = path13.resolve(
3040
+ __dirname,
3041
+ "../templates/custom-element"
3042
+ );
3043
+ async function generateCustomElement(projectFolder, folder, name, dashboardPageId) {
3044
+ const readablePath = path13.join(SITE_WIDGETS_DIR, folder);
3045
+ const cwd = path13.join(getSiteWidgetsDir(projectFolder), folder);
3046
+ const behaviorsConfig = dashboardPageId ? {
3047
+ dashboard: {
3048
+ dashboardPageComponentId: dashboardPageId
3049
+ }
3050
+ } : void 0;
3051
+ const defaultThumbnailPath = path13.join(
3052
+ projectFolder,
3053
+ "src/assets",
3054
+ folder,
3055
+ "thumbnail.png"
3056
+ );
3057
+ const customElementConfig = {
3058
+ $schema: "https://dev.wix.com/wix-cli/schemas/custom-element.json",
3059
+ id: randomUUID9(),
3060
+ name,
3061
+ width: {
3062
+ defaultWidth: 450,
3063
+ allowStretch: true
3064
+ },
3065
+ height: {
3066
+ defaultHeight: 250
3067
+ },
3068
+ installation: {
3069
+ autoAddToSite: true
3070
+ },
3071
+ behaviors: behaviorsConfig,
3072
+ presets: [
3073
+ {
3074
+ id: randomUUID9(),
3075
+ thumbnailUrl: path13.relative(cwd, defaultThumbnailPath)
3076
+ }
3077
+ ]
3078
+ };
3079
+ const customElementConfigJSON = toJsonString(customElementConfig, {
3080
+ spaces: 2
3081
+ });
3082
+ return await componentGenerator({
3083
+ template: CUSTOM_ELEMENT_TEMPLATE,
3084
+ projectFolder,
3085
+ cwd,
3086
+ assetsOutputPath: folder,
3087
+ data: {
3088
+ customElementConfigJSON,
3089
+ readablePath,
3090
+ name
3091
+ }
3092
+ });
3093
+ }
3094
+
3095
+ // src/components/GenerateCommand/site-widget/custom-element/CustomElement.tsx
3096
+ var GenerateCustomElement = () => {
3097
+ const bi = useWixCliAppBi();
3098
+ const { t: t2 } = useTranslation();
3099
+ const { model } = useProjectModel();
3100
+ const [elementName, setElementName] = (0, import_react24.useState)();
3101
+ const [elementFolder, setElementFolder] = (0, import_react24.useState)();
3102
+ const [linkDashboardPage, setLinkDashboardPage] = (0, import_react24.useState)();
3103
+ const [generationData, setGenerationData] = (0, import_react24.useState)();
3104
+ const validateFolderName = useCustomElementDirectoryValidation("Site widget");
3105
+ const validateName = useCustomElementNameValidation();
3106
+ const { getExtensions } = useExtensions();
3107
+ const [finishedInstallation, setFinishedInstallation] = (0, import_react24.useState)(false);
3108
+ const defaultElementFolder = (0, import_lodash7.kebabCase)(elementName);
3109
+ const dashboardPages = getExtensions("DashboardPage");
3110
+ const dashboardPagesOptions = dashboardPages.map(
3111
+ ({ id, title }) => ({
3112
+ value: id,
3113
+ title
3114
+ })
3115
+ );
3116
+ const dashboardPagesExist = Boolean(dashboardPages.length);
3117
+ const extensionType = t2("generate_command.flow.custom_element").toLowerCase();
3118
+ const generationTask = useGenerationTask(async () => {
3119
+ if (generationData) {
3120
+ return generateCustomElement(
3121
+ model.projectFolder,
3122
+ generationData.folder,
3123
+ generationData.name,
3124
+ generationData.dashboardPageId
3125
+ );
3126
+ }
3127
+ }, [generationData]);
3128
+ return /* @__PURE__ */ import_react24.default.createElement(import_react24.default.Fragment, null, /* @__PURE__ */ import_react24.default.createElement(
3129
+ TextInput,
3130
+ {
3131
+ label: t2("generate_command.custom_element.choose_name"),
3132
+ placeholder: t2("generate_command.custom_element.name_placeholder"),
3133
+ onSubmit: (value) => {
3134
+ bi.cliFlowStepAnswered({
3135
+ question: t2("generate_command.custom_element.choose_name"),
3136
+ questionKey: "generate_command.custom_element.choose_name",
3137
+ answer: value,
3138
+ additionalInfo: {
3139
+ extensionType
3140
+ }
3141
+ });
3142
+ setElementName(value);
3143
+ },
3144
+ validate: validateName
3145
+ }
3146
+ ), elementName && /* @__PURE__ */ import_react24.default.createElement(
3147
+ TextInput,
3148
+ {
3149
+ label: t2("generate_command.custom_element.choose_folder"),
3150
+ placeholder: defaultElementFolder,
3151
+ onSubmit: (value) => {
3152
+ bi.cliFlowStepAnswered({
3153
+ question: t2("generate_command.custom_element.choose_folder"),
3154
+ questionKey: "generate_command.custom_element.choose_folder",
3155
+ answer: value,
3156
+ additionalInfo: {
3157
+ extensionType
3158
+ }
3159
+ });
3160
+ setElementFolder(value);
3161
+ if (!dashboardPagesExist) {
3162
+ setGenerationData({
3163
+ name: elementName,
3164
+ folder: value
3165
+ });
3166
+ }
3167
+ },
3168
+ validate: validateFolderName
3169
+ }
3170
+ ), elementName && elementFolder && dashboardPagesExist && /* @__PURE__ */ import_react24.default.createElement(
3171
+ ConfirmInput,
3172
+ {
3173
+ label: t2("generate_command.custom_element.link_dashboard_page"),
3174
+ onSubmit: (shouldLinkDashboardPage) => {
3175
+ bi.cliFlowStepAnswered({
3176
+ question: t2(
3177
+ "generate_command.custom_element.link_dashboard_page"
3178
+ ),
3179
+ questionKey: "generate_command.custom_element.link_dashboard_page",
3180
+ answer: String(shouldLinkDashboardPage),
3181
+ additionalInfo: { extensionType }
3182
+ });
3183
+ setLinkDashboardPage(shouldLinkDashboardPage);
3184
+ if (!shouldLinkDashboardPage) {
3185
+ setGenerationData({
3186
+ name: elementName,
3187
+ folder: elementFolder
3188
+ });
3189
+ }
3190
+ }
3191
+ }
3192
+ ), elementName && elementFolder && dashboardPagesExist && linkDashboardPage && /* @__PURE__ */ import_react24.default.createElement(
3193
+ SelectInput,
3194
+ {
3195
+ label: t2("generate_command.custom_element.choose_dashboard_page"),
3196
+ options: dashboardPagesOptions,
3197
+ onSubmit: (option) => {
3198
+ bi.cliFlowStepAnswered({
3199
+ question: t2(
3200
+ "generate_command.custom_element.choose_dashboard_page"
3201
+ ),
3202
+ questionKey: "generate_command.custom_element.choose_dashboard_page",
3203
+ answer: option.title,
3204
+ additionalInfo: { extensionType }
3205
+ });
3206
+ setGenerationData({
3207
+ name: elementName,
3208
+ folder: elementFolder,
3209
+ dashboardPageId: option.value
3210
+ });
3211
+ }
3212
+ }
3141
3213
  ), (0, import_react24.useMemo)(
3142
3214
  () => (0, import_variant26.match)(generationTask, {
3143
3215
  Success: ({ hasUpdatedDependencies }) => {
@@ -3160,29 +3232,215 @@ var GenerateWebMethod = () => {
3160
3232
  })
3161
3233
  }
3162
3234
  ),
3163
- Error: () => null,
3164
- NotRequested: () => null
3235
+ NotRequested: () => null,
3236
+ Error: () => null
3165
3237
  }),
3166
3238
  [generationTask, setFinishedInstallation, t2, extensionType]
3167
- ), finishedInstallation && /* @__PURE__ */ import_react24.default.createElement(Box_default, { flexDirection: "column" }, /* @__PURE__ */ import_react24.default.createElement(Text, null, t2("generate_command.generation.done", {
3239
+ ), finishedInstallation && /* @__PURE__ */ import_react24.default.createElement(import_react24.default.Fragment, null, /* @__PURE__ */ import_react24.default.createElement(Text, null, t2("generate_command.generation.done", {
3168
3240
  extensionType
3169
3241
  })), /* @__PURE__ */ import_react24.default.createElement(
3170
3242
  Trans,
3171
3243
  {
3172
3244
  i18nKey: "generate_command.generation.learn_more",
3173
3245
  values: { extensionType },
3174
- components: [/* @__PURE__ */ import_react24.default.createElement(Learn, null), /* @__PURE__ */ import_react24.default.createElement(Link, { url: "https://wix.to/BEkD5a1" })]
3246
+ components: [/* @__PURE__ */ import_react24.default.createElement(Learn, null), /* @__PURE__ */ import_react24.default.createElement(Link, { url: "https://wix.to/rEfCfbY" })]
3247
+ }
3248
+ )));
3249
+ };
3250
+
3251
+ // src/components/GenerateCommand/site-widget/blocks/Blocks.tsx
3252
+ init_esm_shims();
3253
+ var import_react25 = __toESM(require_react(), 1);
3254
+ var import_variant27 = __toESM(require_lib(), 1);
3255
+
3256
+ // src/components/GenerateCommand/site-widget/blocks/generate.ts
3257
+ init_esm_shims();
3258
+ import path14 from "node:path";
3259
+
3260
+ // src/files/tsconfig.ts
3261
+ init_esm_shims();
3262
+ import {
3263
+ DiagnosticCategory,
3264
+ readConfigFile,
3265
+ sys as typescriptSys
3266
+ } from "typescript";
3267
+ function readTSConfig(projectFolder) {
3268
+ const tsConfigResult = readConfigFile(
3269
+ getTSConfigFilePath(projectFolder),
3270
+ typescriptSys.readFile
3271
+ );
3272
+ if (tsConfigResult.error?.category === DiagnosticCategory.Error) {
3273
+ if (tsConfigResult.error.code === 5083) {
3274
+ throw new CliError({
3275
+ code: CliErrorCode.TSConfigNotFound({
3276
+ configPath: TS_CONFIG_FILENAME
3277
+ }),
3278
+ cause: tsConfigResult.error.messageText
3279
+ });
3280
+ }
3281
+ throw new CliError({
3282
+ code: CliErrorCode.InvalidTSConfigError({
3283
+ configPath: TS_CONFIG_FILENAME
3284
+ }),
3285
+ cause: tsConfigResult.error.messageText
3286
+ });
3287
+ }
3288
+ const config = tsConfigSchema.safeParse(tsConfigResult.config);
3289
+ if (config.success) {
3290
+ return config.data;
3291
+ }
3292
+ throw new CliError({
3293
+ code: CliErrorCode.InvalidConfigSchemaError({
3294
+ configPath: TS_CONFIG_FILENAME,
3295
+ zodError: config.error
3296
+ }),
3297
+ cause: config.error
3298
+ });
3299
+ }
3300
+ async function saveTSConfig(projectFolder, config) {
3301
+ await writeJson(getTSConfigFilePath(projectFolder), config, { spaces: 2 });
3302
+ }
3303
+
3304
+ // src/components/GenerateCommand/site-widget/blocks/generate.ts
3305
+ var BLOCKS_SUPPORT_TEMPLATE = path14.resolve(
3306
+ __dirname,
3307
+ "../templates/blocks-support"
3308
+ );
3309
+ async function enableBlocksInProject(projectFolder, config) {
3310
+ await saveWixConfig(projectFolder, {
3311
+ ...config,
3312
+ blocks: {
3313
+ uiRevision: ""
3314
+ }
3315
+ });
3316
+ const tsconfig = readTSConfig(projectFolder);
3317
+ if (!tsconfig.include?.includes(BLOCKS_TYPES_PATH)) {
3318
+ await saveTSConfig(projectFolder, {
3319
+ ...tsconfig,
3320
+ include: [...tsconfig.include ?? [], BLOCKS_TYPES_PATH]
3321
+ });
3322
+ }
3323
+ const newDependencies = await dependenciesUpdater({
3324
+ projectFolder,
3325
+ dependenciesJsonPath: path14.join(
3326
+ BLOCKS_SUPPORT_TEMPLATE,
3327
+ "dependencies.json"
3328
+ )
3329
+ });
3330
+ return { newDependencies };
3331
+ }
3332
+
3333
+ // src/components/GenerateCommand/site-widget/blocks/Blocks.tsx
3334
+ var AddBlocksSupportToProject = () => {
3335
+ const { t: t2 } = useTranslation();
3336
+ const { model } = useProjectModel();
3337
+ const [finishedInstallation, setFinishedInstallation] = (0, import_react25.useState)(false);
3338
+ const extensionType = t2(
3339
+ "generate_command.site_widget_wizard.blocks.title"
3340
+ ).toLowerCase();
3341
+ const supportBlocksTask = useGenerationTask(async () => {
3342
+ if (model.config.blocks) {
3343
+ return;
3344
+ }
3345
+ return enableBlocksInProject(model.projectFolder, model.config);
3346
+ }, []);
3347
+ return /* @__PURE__ */ import_react25.default.createElement(import_react25.default.Fragment, null, (0, import_react25.useMemo)(
3348
+ () => (0, import_variant27.match)(supportBlocksTask, {
3349
+ Success: ({ hasUpdatedDependencies }) => {
3350
+ if (hasUpdatedDependencies) {
3351
+ return /* @__PURE__ */ import_react25.default.createElement(
3352
+ InstallDependencies,
3353
+ {
3354
+ onFinish: () => setFinishedInstallation(true)
3355
+ }
3356
+ );
3357
+ }
3358
+ setFinishedInstallation(true);
3359
+ },
3360
+ Loading: () => /* @__PURE__ */ import_react25.default.createElement(
3361
+ Spinner,
3362
+ {
3363
+ text: t2("generate_command.generation.loading", {
3364
+ subject: extensionType
3365
+ })
3366
+ }
3367
+ ),
3368
+ NotRequested: () => null,
3369
+ Error: () => null
3370
+ }),
3371
+ [supportBlocksTask, t2, extensionType]
3372
+ ), finishedInstallation && /* @__PURE__ */ import_react25.default.createElement(Box_default, { marginTop: 1 }, /* @__PURE__ */ import_react25.default.createElement(
3373
+ Trans,
3374
+ {
3375
+ i18nKey: "generate_command.blocks.success",
3376
+ components: [
3377
+ /* @__PURE__ */ import_react25.default.createElement(Link, { url: "https://dev.wix.com/docs/build-apps/develop-your-app/frameworks/wix-cli/supported-extensions/site-extensions/blocks-site-widgets/add-a-blocks-site-widget-extension-in-the-cli" })
3378
+ ]
3175
3379
  }
3176
3380
  )));
3177
3381
  };
3178
3382
 
3383
+ // src/components/GenerateCommand/site-widget/SiteWidgetWizard.tsx
3384
+ var GenerateSiteWidgetWizard = () => {
3385
+ const bi = useWixCliAppBi();
3386
+ const { t: t2 } = useTranslation();
3387
+ const [selectedSiteWidgetType, setSelectedSiteWidgetType] = (0, import_react26.useState)();
3388
+ return /* @__PURE__ */ import_react26.default.createElement(import_react26.default.Fragment, null, /* @__PURE__ */ import_react26.default.createElement(
3389
+ SelectInput,
3390
+ {
3391
+ label: t2("generate_command.site_widget_wizard.choose_extention.title"),
3392
+ info: t2("generate_command.site_widget_wizard.choose_extention.info"),
3393
+ options: [
3394
+ {
3395
+ title: t2(
3396
+ "generate_command.site_widget_wizard.custom_element_option.title"
3397
+ ),
3398
+ description: /* @__PURE__ */ import_react26.default.createElement(
3399
+ Trans,
3400
+ {
3401
+ i18nKey: "generate_command.site_widget_wizard.custom_element_option.description",
3402
+ components: [
3403
+ /* @__PURE__ */ import_react26.default.createElement(Link, { url: "https://dev.wix.com/docs/build-apps/develop-your-app/frameworks/wix-cli/supported-extensions/site-extensions/site-widgets/add-a-site-widget-extension-in-the-cli" })
3404
+ ]
3405
+ }
3406
+ ),
3407
+ value: "customElement"
3408
+ },
3409
+ {
3410
+ title: t2("generate_command.site_widget_wizard.blocks.title"),
3411
+ description: /* @__PURE__ */ import_react26.default.createElement(
3412
+ Trans,
3413
+ {
3414
+ i18nKey: "generate_command.site_widget_wizard.blocks.description",
3415
+ components: [
3416
+ /* @__PURE__ */ import_react26.default.createElement(Link, { url: "https://dev.wix.com/docs/build-apps/develop-your-app/frameworks/wix-cli/supported-extensions/site-extensions/blocks-site-widgets/add-a-blocks-site-widget-extension-in-the-cli" })
3417
+ ]
3418
+ }
3419
+ ),
3420
+ value: "blocks"
3421
+ }
3422
+ ],
3423
+ onSubmit: (option) => {
3424
+ bi.cliFlowStepAnswered({
3425
+ question: t2(
3426
+ "generate_command.site_widget_wizard.choose_extention.title"
3427
+ ),
3428
+ questionKey: "generate_command.site_widget_wizard.choose_extention.title",
3429
+ answer: option.title
3430
+ });
3431
+ setSelectedSiteWidgetType(option.value);
3432
+ }
3433
+ }
3434
+ ), selectedSiteWidgetType === "customElement" && /* @__PURE__ */ import_react26.default.createElement(GenerateCustomElement, null), selectedSiteWidgetType === "blocks" && /* @__PURE__ */ import_react26.default.createElement(AddBlocksSupportToProject, null));
3435
+ };
3436
+
3179
3437
  // src/components/GenerateCommand/GenerateCommand.tsx
3180
- var DevCenterGenerateFlow = (0, import_variant27.variant)((0, import_variant27.types)(DevCenterComponent));
3438
+ var DevCenterGenerateFlow = (0, import_variant28.variant)((0, import_variant28.types)(DevCenterComponent));
3181
3439
  var GenerateCommand = () => {
3182
3440
  const { t: t2 } = useTranslation();
3183
3441
  const bi = useWixCliAppBi();
3184
- const [generateFlow, setGenerateFlow] = (0, import_react25.useState)();
3185
- const generateFlows = (0, import_react25.useMemo)(
3442
+ const [generateFlow, setGenerateFlow] = (0, import_react27.useState)();
3443
+ const generateFlows = (0, import_react27.useMemo)(
3186
3444
  () => [
3187
3445
  {
3188
3446
  title: t2("generate_command.flow.dashboard_category"),
@@ -3263,7 +3521,7 @@ var GenerateCommand = () => {
3263
3521
  ],
3264
3522
  [t2]
3265
3523
  );
3266
- const selectFlow = (0, import_react25.useCallback)(
3524
+ const selectFlow = (0, import_react27.useCallback)(
3267
3525
  (selectedType) => {
3268
3526
  bi.cliFlowStepAnswered({
3269
3527
  question: t2("generate_command.flow.choose_flow"),
@@ -3274,7 +3532,7 @@ var GenerateCommand = () => {
3274
3532
  },
3275
3533
  [bi, t2]
3276
3534
  );
3277
- return /* @__PURE__ */ import_react25.default.createElement(Box_default, { flexDirection: "column", paddingTop: 1 }, /* @__PURE__ */ import_react25.default.createElement(
3535
+ return /* @__PURE__ */ import_react27.default.createElement(Box_default, { flexDirection: "column", paddingTop: 1 }, /* @__PURE__ */ import_react27.default.createElement(
3278
3536
  SelectGroupsInput,
3279
3537
  {
3280
3538
  label: t2("generate_command.flow.choose_flow"),
@@ -3282,21 +3540,21 @@ var GenerateCommand = () => {
3282
3540
  onSubmit: selectFlow,
3283
3541
  maxHeight: 14
3284
3542
  }
3285
- ), generateFlow && (0, import_variant27.match)(
3543
+ ), generateFlow && (0, import_variant28.match)(
3286
3544
  generateFlow,
3287
- (0, import_variant27.partial)({
3288
- DashboardPage: () => /* @__PURE__ */ import_react25.default.createElement(GenerateDashboardPage, null),
3289
- DashboardSidebarCategory: () => /* @__PURE__ */ import_react25.default.createElement(GenerateSidebarCategory, null),
3290
- EmbeddedScript: () => /* @__PURE__ */ import_react25.default.createElement(GenerateEmbeddedScript, null),
3291
- CustomElement: () => /* @__PURE__ */ import_react25.default.createElement(GenerateCustomElement, null),
3292
- SitePlugin: () => /* @__PURE__ */ import_react25.default.createElement(GenerateSitePlugin, null),
3293
- DashboardModal: () => /* @__PURE__ */ import_react25.default.createElement(GenerateDashboardModal, null),
3294
- DashboardPlugin: () => /* @__PURE__ */ import_react25.default.createElement(DashboardPlugin, null),
3295
- DashboardMenuPlugin: () => /* @__PURE__ */ import_react25.default.createElement(DashboardMenuPlugin, null),
3296
- ServicePlugin: () => /* @__PURE__ */ import_react25.default.createElement(GenerateServicePlugin, null),
3297
- Api: () => /* @__PURE__ */ import_react25.default.createElement(GenerateApi, null),
3298
- WebMethod: () => /* @__PURE__ */ import_react25.default.createElement(GenerateWebMethod, null),
3299
- Event: () => /* @__PURE__ */ import_react25.default.createElement(GenerateEvent, null),
3545
+ (0, import_variant28.partial)({
3546
+ DashboardPage: () => /* @__PURE__ */ import_react27.default.createElement(GenerateDashboardPage, null),
3547
+ DashboardSidebarCategory: () => /* @__PURE__ */ import_react27.default.createElement(GenerateSidebarCategory, null),
3548
+ EmbeddedScript: () => /* @__PURE__ */ import_react27.default.createElement(GenerateEmbeddedScript, null),
3549
+ CustomElement: () => /* @__PURE__ */ import_react27.default.createElement(GenerateSiteWidgetWizard, null),
3550
+ SitePlugin: () => /* @__PURE__ */ import_react27.default.createElement(GenerateSitePlugin, null),
3551
+ DashboardModal: () => /* @__PURE__ */ import_react27.default.createElement(GenerateDashboardModal, null),
3552
+ DashboardPlugin: () => /* @__PURE__ */ import_react27.default.createElement(DashboardPlugin, null),
3553
+ DashboardMenuPlugin: () => /* @__PURE__ */ import_react27.default.createElement(DashboardMenuPlugin, null),
3554
+ ServicePlugin: () => /* @__PURE__ */ import_react27.default.createElement(GenerateServicePlugin, null),
3555
+ Api: () => /* @__PURE__ */ import_react27.default.createElement(GenerateApi, null),
3556
+ WebMethod: () => /* @__PURE__ */ import_react27.default.createElement(GenerateWebMethod, null),
3557
+ Event: () => /* @__PURE__ */ import_react27.default.createElement(GenerateEvent, null),
3300
3558
  default: () => null
3301
3559
  })
3302
3560
  ));
@@ -3304,4 +3562,4 @@ var GenerateCommand = () => {
3304
3562
  export {
3305
3563
  GenerateCommand
3306
3564
  };
3307
- //# sourceMappingURL=GenerateCommand-54ISTYYO.js.map
3565
+ //# sourceMappingURL=GenerateCommand-5KR6GRHW.js.map