@module-federation/devtools 0.21.6 → 0.22.1

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 (100) hide show
  1. package/dist/es/App.css +12 -0
  2. package/dist/es/App.js +330 -22
  3. package/dist/es/App.module.js +1 -1
  4. package/dist/es/App_module.css +291 -5
  5. package/dist/es/component/DependencyGraph/index.js +205 -0
  6. package/dist/es/component/DependencyGraph/index.module.js +5 -0
  7. package/dist/es/component/DependencyGraph/index_module.css +97 -0
  8. package/dist/es/component/{GraphItem → DependencyGraphItem}/index.js +15 -6
  9. package/dist/es/component/DependencyGraphItem/index.module.js +5 -0
  10. package/dist/es/component/DependencyGraphItem/index_module.css +95 -0
  11. package/dist/es/component/Form/index.js +191 -109
  12. package/dist/es/component/Form/index.module.js +1 -1
  13. package/dist/es/component/Form/index_module.css +179 -25
  14. package/dist/es/component/Layout/index.js +300 -49
  15. package/dist/es/component/Layout/index.module.js +1 -1
  16. package/dist/es/component/Layout/index_module.css +52 -32
  17. package/dist/es/component/ModuleInfo/index.js +289 -0
  18. package/dist/es/component/ModuleInfo/index.module.js +5 -0
  19. package/dist/es/component/ModuleInfo/index_module.css +183 -0
  20. package/dist/es/component/SharedDepsExplorer/FocusResultDisplay.js +33 -0
  21. package/dist/es/component/SharedDepsExplorer/FocusResultDisplay.module.js +5 -0
  22. package/dist/es/component/SharedDepsExplorer/FocusResultDisplay_module.css +45 -0
  23. package/dist/es/component/SharedDepsExplorer/index.js +506 -0
  24. package/dist/es/component/SharedDepsExplorer/index.module.js +5 -0
  25. package/dist/es/component/SharedDepsExplorer/index_module.css +457 -0
  26. package/dist/es/component/SharedDepsExplorer/share-utils.js +206 -0
  27. package/dist/es/template/constant.js +3 -19
  28. package/dist/es/utils/chrome/index.js +91 -38
  29. package/dist/es/utils/chrome/messages.js +6 -0
  30. package/dist/es/utils/chrome/override-remote.js +42 -0
  31. package/dist/es/utils/chrome/post-message-listener.js +2 -1
  32. package/dist/es/utils/chrome/post-message-start.js +10 -2
  33. package/dist/es/utils/chrome/storage.js +6 -1
  34. package/dist/es/utils/sdk/graph.js +25 -4
  35. package/dist/es/utils/sdk/index.js +9 -0
  36. package/dist/es/worker/index.js +168 -1
  37. package/dist/lib/App.css +12 -0
  38. package/dist/lib/App.js +321 -18
  39. package/dist/lib/App.module.js +1 -1
  40. package/dist/lib/App_module.css +291 -5
  41. package/dist/lib/component/DependencyGraph/index.js +227 -0
  42. package/dist/lib/component/{GraphItem → DependencyGraph}/index.module.js +1 -1
  43. package/dist/lib/component/DependencyGraph/index_module.css +97 -0
  44. package/dist/lib/component/{GraphItem → DependencyGraphItem}/index.js +18 -9
  45. package/dist/lib/component/{Graph → DependencyGraphItem}/index.module.js +1 -1
  46. package/dist/lib/component/DependencyGraphItem/index_module.css +95 -0
  47. package/dist/lib/component/Form/index.js +188 -107
  48. package/dist/lib/component/Form/index.module.js +1 -1
  49. package/dist/lib/component/Form/index_module.css +179 -25
  50. package/dist/lib/component/Layout/index.js +294 -47
  51. package/dist/lib/component/Layout/index.module.js +1 -1
  52. package/dist/lib/component/Layout/index_module.css +52 -32
  53. package/dist/lib/component/ModuleInfo/index.js +319 -0
  54. package/dist/lib/component/ModuleInfo/index.module.js +25 -0
  55. package/dist/lib/component/ModuleInfo/index_module.css +183 -0
  56. package/dist/lib/component/SharedDepsExplorer/FocusResultDisplay.js +63 -0
  57. package/dist/lib/component/SharedDepsExplorer/FocusResultDisplay.module.js +25 -0
  58. package/dist/lib/component/SharedDepsExplorer/FocusResultDisplay_module.css +45 -0
  59. package/dist/lib/component/SharedDepsExplorer/index.js +513 -0
  60. package/dist/lib/component/SharedDepsExplorer/index.module.js +25 -0
  61. package/dist/lib/component/SharedDepsExplorer/index_module.css +457 -0
  62. package/dist/lib/component/SharedDepsExplorer/share-utils.js +237 -0
  63. package/dist/lib/template/constant.js +4 -17
  64. package/dist/lib/utils/chrome/index.js +94 -38
  65. package/dist/lib/utils/chrome/messages.js +31 -0
  66. package/dist/lib/utils/chrome/override-remote.js +65 -0
  67. package/dist/lib/utils/chrome/post-message-listener.js +2 -1
  68. package/dist/lib/utils/chrome/post-message-start.js +10 -2
  69. package/dist/lib/utils/chrome/storage.js +5 -0
  70. package/dist/lib/utils/sdk/graph.js +25 -4
  71. package/dist/lib/utils/sdk/index.js +10 -0
  72. package/dist/lib/worker/index.js +156 -1
  73. package/dist/types/src/App.d.ts +2 -1
  74. package/dist/types/src/component/{Graph → DependencyGraph}/index.d.ts +0 -1
  75. package/dist/types/src/component/{GraphItem → DependencyGraphItem}/index.d.ts +0 -1
  76. package/dist/types/src/component/Form/index.d.ts +2 -0
  77. package/dist/types/src/component/Layout/index.d.ts +0 -1
  78. package/dist/types/src/component/ModuleInfo/index.d.ts +8 -0
  79. package/dist/types/src/component/SharedDepsExplorer/FocusResultDisplay.d.ts +15 -0
  80. package/dist/types/src/component/SharedDepsExplorer/index.d.ts +6 -0
  81. package/dist/types/src/component/SharedDepsExplorer/share-utils.d.ts +44 -0
  82. package/dist/types/src/init.d.ts +0 -1
  83. package/dist/types/src/template/constant.d.ts +2 -5
  84. package/dist/types/src/utils/chrome/index.d.ts +5 -3
  85. package/dist/types/src/utils/chrome/messages.d.ts +2 -0
  86. package/dist/types/src/utils/chrome/override-remote.d.ts +1 -0
  87. package/dist/types/src/utils/chrome/storage.d.ts +5 -4
  88. package/dist/types/src/utils/sdk/graph.d.ts +2 -1
  89. package/dist/types/src/utils/sdk/index.d.ts +1 -0
  90. package/dist/types/src/utils/types/common.d.ts +4 -0
  91. package/dist/types/src/worker/index.d.ts +1 -0
  92. package/package.json +16 -14
  93. package/dist/es/component/Graph/index.js +0 -127
  94. package/dist/es/component/Graph/index.module.js +0 -5
  95. package/dist/es/component/Graph/index_module.css +0 -12
  96. package/dist/es/component/GraphItem/index.module.js +0 -5
  97. package/dist/es/component/GraphItem/index_module.css +0 -61
  98. package/dist/lib/component/Graph/index.js +0 -149
  99. package/dist/lib/component/Graph/index_module.css +0 -12
  100. package/dist/lib/component/GraphItem/index_module.css +0 -61
@@ -53,7 +53,6 @@ __export(Form_exports, {
53
53
  module.exports = __toCommonJS(Form_exports);
54
54
  var import_jsx_runtime = require("react/jsx-runtime");
55
55
  var import_react = require("react");
56
- var import_react_dom = require("react-dom");
57
56
  var import_web_react = require("@arco-design/web-react");
58
57
  var import_icon = require("@arco-design/web-react/icon");
59
58
  var import_constant = require("../../template/constant");
@@ -74,9 +73,15 @@ const FormComponent = (props) => {
74
73
  versionList,
75
74
  setVersionList,
76
75
  getVersion,
77
- customValueValidate
76
+ customValueValidate,
77
+ enableClip,
78
+ onClipChange
78
79
  } = props;
79
- const { moduleInfo } = window.__FEDERATION__;
80
+ const federation = window.__FEDERATION__ || {
81
+ moduleInfo: {},
82
+ originModuleInfo: {}
83
+ };
84
+ const { moduleInfo } = federation;
80
85
  let { producer } = (0, import_utils.separateType)(moduleInfo);
81
86
  const filterDupMap = /* @__PURE__ */ new Map();
82
87
  producer = producer.filter((t) => {
@@ -127,11 +132,16 @@ const FormComponent = (props) => {
127
132
  }
128
133
  if (key) {
129
134
  statusSet[index].keyStatus = true;
130
- (0, import_react_dom.flushSync)(() => setFormStatus(statusSet));
131
- return callback();
135
+ setTimeout(() => {
136
+ setFormStatus(statusSet);
137
+ callback();
138
+ }, 0);
139
+ return;
132
140
  }
133
141
  statusSet[index].keyStatus = false;
134
- (0, import_react_dom.flushSync)(() => setFormStatus(statusSet));
142
+ setTimeout(() => {
143
+ setFormStatus(statusSet);
144
+ }, 0);
135
145
  return callback("Module name can not be empty");
136
146
  };
137
147
  const validateValue = (value, callback, index) => {
@@ -148,11 +158,16 @@ const FormComponent = (props) => {
148
158
  }
149
159
  if ((0, import_utils.validateCustom)(value) || (0, import_utils.validateSemver)(value) || (0, import_utils.validatePort)(value) || (customValueValidate == null ? void 0 : customValueValidate(value))) {
150
160
  statusSet[index].valueStatus = true;
151
- (0, import_react_dom.flushSync)(() => setFormStatus(statusSet));
152
- return callback();
161
+ setTimeout(() => {
162
+ setFormStatus(statusSet);
163
+ callback();
164
+ }, 0);
165
+ return;
153
166
  }
154
167
  statusSet[index].valueStatus = false;
155
- (0, import_react_dom.flushSync)(() => setFormStatus(statusSet));
168
+ setTimeout(() => {
169
+ setFormStatus(statusSet);
170
+ }, 0);
156
171
  return callback(
157
172
  "The module information format is incorrect, check the format in the upper left corner"
158
173
  );
@@ -172,6 +187,9 @@ const FormComponent = (props) => {
172
187
  const hmrChange = (on) => {
173
188
  onHMRChange(on);
174
189
  };
190
+ const handleSwitchChange = (on) => {
191
+ onClipChange(on);
192
+ };
175
193
  const onKeyChange = (key, index) => __async(void 0, null, function* () {
176
194
  const version = yield getVersion == null ? void 0 : getVersion(key);
177
195
  if (version) {
@@ -180,31 +198,52 @@ const FormComponent = (props) => {
180
198
  setVersionList == null ? void 0 : setVersionList(list);
181
199
  }
182
200
  });
183
- return /* @__PURE__ */ (0, import_jsx_runtime.jsx)(FormList, { field: import_constant.proxyFormField, children: (fields, { add, remove }) => /* @__PURE__ */ (0, import_jsx_runtime.jsxs)("div", { children: [
184
- /* @__PURE__ */ (0, import_jsx_runtime.jsxs)("div", { className: import_index.default.header, children: [
185
- /* @__PURE__ */ (0, import_jsx_runtime.jsx)(
186
- import_web_react.Tooltip,
187
- {
188
- content: /* @__PURE__ */ (0, import_jsx_runtime.jsx)("div", { children: "Example: Customize the remote module address, which should end with 「.json」, for example key: @module-federation/button, value: http://localhost:3000/mf-manifest.json" }),
189
- children: /* @__PURE__ */ (0, import_jsx_runtime.jsx)(import_icon.IconInfoCircle, {})
190
- }
191
- ),
192
- /* @__PURE__ */ (0, import_jsx_runtime.jsx)("div", { className: import_index.default.title, children: "Module Proxy" }),
193
- /* @__PURE__ */ (0, import_jsx_runtime.jsx)(
194
- import_web_react.Button,
195
- {
196
- icon: /* @__PURE__ */ (0, import_jsx_runtime.jsx)(import_icon.IconPlus, {}),
197
- shape: "circle",
198
- className: import_index.default.add,
199
- onClick: () => onAdd(add),
200
- "data-set-e2e": "e2eAdd"
201
- }
202
- ),
203
- /* @__PURE__ */ (0, import_jsx_runtime.jsxs)("div", { className: import_index.default.status, children: [
204
- /* @__PURE__ */ (0, import_jsx_runtime.jsx)(import_web_react.Badge, { color: condition.color, className: import_index.default.badge }),
205
- /* @__PURE__ */ (0, import_jsx_runtime.jsx)("span", { className: import_index.default.message, children: condition.message }),
206
- /* @__PURE__ */ (0, import_jsx_runtime.jsxs)("span", { className: import_index.default.headerSlot, children: [
201
+ return /* @__PURE__ */ (0, import_jsx_runtime.jsx)(FormList, { field: import_constant.proxyFormField, children: (fields, { add, remove }) => /* @__PURE__ */ (0, import_jsx_runtime.jsxs)("div", { className: import_index.default.wrapper, children: [
202
+ /* @__PURE__ */ (0, import_jsx_runtime.jsxs)("div", { className: import_index.default.sectionHeader, children: [
203
+ /* @__PURE__ */ (0, import_jsx_runtime.jsxs)("div", { className: import_index.default.heading, children: [
204
+ /* @__PURE__ */ (0, import_jsx_runtime.jsxs)("div", { className: import_index.default.titleRow, children: [
205
+ /* @__PURE__ */ (0, import_jsx_runtime.jsx)(
206
+ import_web_react.Tooltip,
207
+ {
208
+ content: /* @__PURE__ */ (0, import_jsx_runtime.jsx)("div", { children: "Example: Customise the remote module address ending with 「.json」. For instance key: @module-federation/button, value: http://localhost:3000/mf-manifest.json" }),
209
+ children: /* @__PURE__ */ (0, import_jsx_runtime.jsx)(import_icon.IconInfoCircle, {})
210
+ }
211
+ ),
212
+ /* @__PURE__ */ (0, import_jsx_runtime.jsx)("span", { className: import_index.default.title, children: "Proxy Overrides" }),
213
+ /* @__PURE__ */ (0, import_jsx_runtime.jsxs)(
214
+ "span",
215
+ {
216
+ className: import_index.default.statusMessage,
217
+ style: { marginLeft: 8 },
218
+ children: [
219
+ /* @__PURE__ */ (0, import_jsx_runtime.jsx)(import_web_react.Badge, { color: condition.color, className: import_index.default.badge }),
220
+ condition.message
221
+ ]
222
+ }
223
+ )
224
+ ] }),
225
+ /* @__PURE__ */ (0, import_jsx_runtime.jsx)("span", { className: import_index.default.subtitle, children: "Point consumers to specific remote bundles or manifests for quicker validation." })
226
+ ] }),
227
+ /* @__PURE__ */ (0, import_jsx_runtime.jsxs)("div", { className: import_index.default.headerActions, children: [
228
+ /* @__PURE__ */ (0, import_jsx_runtime.jsxs)("span", { className: import_index.default.hmrArea, children: [
207
229
  props.headerSlot,
230
+ /* @__PURE__ */ (0, import_jsx_runtime.jsx)(
231
+ import_web_react.Switch,
232
+ {
233
+ checked: enableClip,
234
+ checkedText: "Enable Clip",
235
+ uncheckedText: "Disable Clip",
236
+ onChange: handleSwitchChange,
237
+ className: import_index.default.switch
238
+ }
239
+ ),
240
+ /* @__PURE__ */ (0, import_jsx_runtime.jsx)(import_web_react.Tooltip, { content: "After enabling data clipping, snapshot modules and shared information will be removed, affecting preloading logic.", children: /* @__PURE__ */ (0, import_jsx_runtime.jsx)(
241
+ import_icon.IconQuestionCircle,
242
+ {
243
+ style: { marginLeft: 5, cursor: "pointer" }
244
+ }
245
+ ) }),
246
+ /* @__PURE__ */ (0, import_jsx_runtime.jsx)("div", { className: import_index.default.divider }),
208
247
  /* @__PURE__ */ (0, import_jsx_runtime.jsx)(
209
248
  import_web_react.Switch,
210
249
  {
@@ -215,85 +254,127 @@ const FormComponent = (props) => {
215
254
  className: import_index.default.switch
216
255
  }
217
256
  )
218
- ] })
257
+ ] }),
258
+ /* @__PURE__ */ (0, import_jsx_runtime.jsx)(
259
+ import_web_react.Button,
260
+ {
261
+ icon: /* @__PURE__ */ (0, import_jsx_runtime.jsx)(import_icon.IconPlus, {}),
262
+ shape: "circle",
263
+ className: import_index.default.add,
264
+ onClick: () => onAdd(add),
265
+ "data-set-e2e": "e2eAdd",
266
+ type: "primary"
267
+ }
268
+ )
219
269
  ] })
220
270
  ] }),
221
- fields.length ? /* @__PURE__ */ (0, import_jsx_runtime.jsx)(import_jsx_runtime.Fragment, { children: fields.map((item, index) => {
271
+ fields.length ? /* @__PURE__ */ (0, import_jsx_runtime.jsx)("div", { className: import_index.default.rules, children: fields.map((item, index) => {
222
272
  var _a, _b;
223
- return /* @__PURE__ */ (0, import_jsx_runtime.jsxs)(
224
- "div",
225
- {
226
- className: import_index.default.container,
227
- "data-set-e2e": "e2eProxyItem",
228
- children: [
229
- /* @__PURE__ */ (0, import_jsx_runtime.jsx)("div", { children: /* @__PURE__ */ (0, import_jsx_runtime.jsx)(
230
- FormItem,
231
- {
232
- field: `${item.field}.checked`,
233
- triggerPropName: "checked",
234
- children: /* @__PURE__ */ (0, import_jsx_runtime.jsx)(import_web_react.Checkbox, { className: import_index.default.checkBox })
235
- }
236
- ) }),
237
- /* @__PURE__ */ (0, import_jsx_runtime.jsx)("div", { className: import_index.default.input, children: /* @__PURE__ */ (0, import_jsx_runtime.jsx)(
238
- FormItem,
239
- {
240
- field: `${item.field}.key`,
241
- rules: [
242
- {
243
- validator: (value, cb) => validateKey(value, cb, index)
244
- }
245
- ],
246
- children: /* @__PURE__ */ (0, import_jsx_runtime.jsx)(
247
- import_web_react.Select,
248
- {
249
- "data-set-e2e": "e2eProxyKey",
250
- placeholder: "Module Name",
251
- onChange: (key) => onKeyChange(key, index),
252
- allowClear: true,
253
- showSearch: true,
254
- children: formatProducer.map((item2) => /* @__PURE__ */ (0, import_jsx_runtime.jsx)(Option, { value: item2.value, children: item2.label }, item2.value))
255
- }
256
- )
257
- }
258
- ) }),
259
- /* @__PURE__ */ (0, import_jsx_runtime.jsx)("div", { className: import_index.default.input, children: /* @__PURE__ */ (0, import_jsx_runtime.jsx)(
260
- FormItem,
261
- {
262
- field: `${item.field}.value`,
263
- rules: [
264
- {
265
- validator: (value, cb) => validateValue(value, cb, index)
273
+ return /* @__PURE__ */ (0, import_jsx_runtime.jsxs)("div", { className: import_index.default.ruleCard, children: [
274
+ /* @__PURE__ */ (0, import_jsx_runtime.jsxs)("div", { className: import_index.default.ruleHeader, children: [
275
+ /* @__PURE__ */ (0, import_jsx_runtime.jsx)(
276
+ FormItem,
277
+ {
278
+ field: `${item.field}.checked`,
279
+ triggerPropName: "checked",
280
+ children: /* @__PURE__ */ (0, import_jsx_runtime.jsx)(import_web_react.Checkbox, { className: import_index.default.toggle })
281
+ }
282
+ ),
283
+ /* @__PURE__ */ (0, import_jsx_runtime.jsx)(
284
+ import_web_react.Button,
285
+ {
286
+ icon: /* @__PURE__ */ (0, import_jsx_runtime.jsx)(import_icon.IconDelete, {}),
287
+ shape: "circle",
288
+ status: "danger",
289
+ className: import_index.default.delete,
290
+ "data-set-e2e": "e2eDelete",
291
+ onClick: () => onRemove(remove, index)
292
+ }
293
+ )
294
+ ] }),
295
+ /* @__PURE__ */ (0, import_jsx_runtime.jsxs)("div", { className: import_index.default.inputs, "data-set-e2e": "e2eProxyItem", children: [
296
+ /* @__PURE__ */ (0, import_jsx_runtime.jsx)(
297
+ FormItem,
298
+ {
299
+ field: `${item.field}.key`,
300
+ rules: [
301
+ {
302
+ validator: (value, cb) => {
303
+ const isValid = Boolean(value);
304
+ if (isValid) {
305
+ cb();
306
+ validateKey(value, () => {
307
+ }, index);
308
+ } else {
309
+ cb("Module name can not be empty");
310
+ validateKey(value, () => {
311
+ }, index);
312
+ }
266
313
  }
267
- ],
268
- children: /* @__PURE__ */ (0, import_jsx_runtime.jsx)(
269
- import_web_react.Select,
270
- {
271
- "data-set-e2e": "e2eProxyValue",
272
- placeholder: "Custom Manifest URL",
273
- allowClear: true,
274
- showSearch: true,
275
- allowCreate: true,
276
- children: (_b = (_a = versionList || []) == null ? void 0 : _a[index]) == null ? void 0 : _b.map((version) => /* @__PURE__ */ (0, import_jsx_runtime.jsx)(Option, { value: version, children: version }, version))
314
+ }
315
+ ],
316
+ className: import_index.default.field,
317
+ children: /* @__PURE__ */ (0, import_jsx_runtime.jsx)(
318
+ import_web_react.Select,
319
+ {
320
+ "data-set-e2e": "e2eProxyKey",
321
+ placeholder: "Module Name",
322
+ onChange: (key) => onKeyChange(key, index),
323
+ allowClear: true,
324
+ showSearch: true,
325
+ dropdownMenuClassName: import_index.default.dropdown,
326
+ children: formatProducer.map((item2) => /* @__PURE__ */ (0, import_jsx_runtime.jsx)(Option, { value: item2.value, children: item2.label }, item2.value))
327
+ }
328
+ )
329
+ }
330
+ ),
331
+ /* @__PURE__ */ (0, import_jsx_runtime.jsx)(
332
+ FormItem,
333
+ {
334
+ field: `${item.field}.value`,
335
+ rules: [
336
+ {
337
+ validator: (value, cb) => {
338
+ const isValid = (0, import_utils.validateCustom)(value) || (0, import_utils.validateSemver)(value) || (0, import_utils.validatePort)(value) || (customValueValidate == null ? void 0 : customValueValidate(value));
339
+ if (isValid) {
340
+ cb();
341
+ validateValue(value, () => {
342
+ }, index);
343
+ } else {
344
+ cb(
345
+ "The module information format is incorrect, check the format in the upper left corner"
346
+ );
347
+ validateValue(value, () => {
348
+ }, index);
349
+ }
277
350
  }
278
- )
279
- }
280
- ) }),
281
- /* @__PURE__ */ (0, import_jsx_runtime.jsx)(
282
- import_web_react.Button,
283
- {
284
- icon: /* @__PURE__ */ (0, import_jsx_runtime.jsx)(import_icon.IconDelete, {}),
285
- shape: "circle",
286
- status: "danger",
287
- className: import_index.default.delete,
288
- "data-set-e2e": "e2eDelete",
289
- onClick: () => onRemove(remove, index)
290
- }
291
- )
292
- ]
293
- },
294
- item.field
295
- );
296
- }) }) : /* @__PURE__ */ (0, import_jsx_runtime.jsx)(import_web_react.Empty, {})
351
+ }
352
+ ],
353
+ className: import_index.default.field,
354
+ children: /* @__PURE__ */ (0, import_jsx_runtime.jsx)(
355
+ import_web_react.Select,
356
+ {
357
+ "data-set-e2e": "e2eProxyValue",
358
+ placeholder: "Custom Manifest URL",
359
+ allowClear: true,
360
+ showSearch: true,
361
+ allowCreate: true,
362
+ dropdownMenuClassName: import_index.default.dropdown,
363
+ children: (_b = (_a = versionList || []) == null ? void 0 : _a[index]) == null ? void 0 : _b.map((version) => /* @__PURE__ */ (0, import_jsx_runtime.jsx)(Option, { value: version, children: version }, version))
364
+ }
365
+ )
366
+ }
367
+ )
368
+ ] })
369
+ ] }, item.field);
370
+ }) }) : /* @__PURE__ */ (0, import_jsx_runtime.jsx)("div", { className: import_index.default.emptyWrapper, children: /* @__PURE__ */ (0, import_jsx_runtime.jsx)(
371
+ import_web_react.Empty,
372
+ {
373
+ description: "Add your first override to begin redirecting remotes.",
374
+ className: import_index.default.empty
375
+ }
376
+ ) }),
377
+ /* @__PURE__ */ (0, import_jsx_runtime.jsx)("div", { className: import_index.default.footerHint, children: "Changes persist per domain and refresh the inspected tab when valid." })
297
378
  ] }) });
298
379
  };
299
380
  var Form_default = FormComponent;
@@ -22,4 +22,4 @@ __export(index_module_exports, {
22
22
  });
23
23
  module.exports = __toCommonJS(index_module_exports);
24
24
  var import_index_module = require("./index_module.css");
25
- var index_module_default = { "container": "container_20b79", "checkBox": "checkBox_20b79", "input": "input_20b79", "delete": "delete_20b79", "header": "header_20b79", "add": "add_20b79", "title": "title_20b79", "status": "status_20b79", "message": "message_20b79", "switch": "switch_20b79", "headerSlot": "headerSlot_20b79", "badge": "badge_20b79" };
25
+ var index_module_default = { "wrapper": "wrapper_20b79", "sectionHeader": "sectionHeader_20b79", "heading": "heading_20b79", "titleRow": "titleRow_20b79", "title": "title_20b79", "subtitle": "subtitle_20b79", "headerActions": "headerActions_20b79", "add": "add_20b79", "badge": "badge_20b79", "statusMessage": "statusMessage_20b79", "divider": "divider_20b79", "hmrArea": "hmrArea_20b79", "switch": "switch_20b79", "rules": "rules_20b79", "ruleCard": "ruleCard_20b79", "ruleHeader": "ruleHeader_20b79", "toggle": "toggle_20b79", "inputs": "inputs_20b79", "field": "field_20b79", "dropdown": "dropdown_20b79", "delete": "delete_20b79", "emptyWrapper": "emptyWrapper_20b79", "empty": "empty_20b79", "footerHint": "footerHint_20b79" };
@@ -1,47 +1,201 @@
1
- .container_20b79 {
1
+ .wrapper_20b79 {
2
2
  display: flex;
3
- justify-content: center;
3
+ flex-direction: column;
4
+ gap: 18px;
5
+ color: #1f2937;
4
6
  }
5
- .container_20b79 .checkBox_20b79 {
6
- transform: scale(1.25);
7
+
8
+ .sectionHeader_20b79 {
9
+ display: flex;
10
+ align-items: center;
11
+ justify-content: space-between;
12
+ gap: 18px;
13
+ padding: 12px 16px;
14
+ background: rgba(228, 228, 231, 0.5);
15
+ border: 1px solid rgba(228, 228, 231, 0.5);
7
16
  }
8
- .container_20b79 .input_20b79 {
9
- margin: 0 1vw 0 0;
17
+
18
+ .heading_20b79 {
19
+ display: flex;
20
+ flex-direction: column;
21
+ gap: 6px;
10
22
  flex: 1 1;
11
23
  }
12
- .container_20b79 .delete_20b79 {
13
- margin: 0 0 0 1vw;
24
+
25
+ .titleRow_20b79 {
26
+ display: flex;
27
+ align-items: center;
28
+ gap: 10px;
29
+ font-size: 16px;
30
+ font-weight: 600;
31
+ color: #1f2937;
32
+ }
33
+ .titleRow_20b79 .arco-icon {
34
+ color: rgba(23, 75, 180, 0.9);
35
+ font-size: 18px;
36
+ }
37
+
38
+ .title_20b79 {
39
+ letter-spacing: 0.02em;
14
40
  }
15
41
 
16
- .header_20b79 {
42
+ .subtitle_20b79 {
43
+ font-size: 12px;
44
+ color: #4b5563;
45
+ line-height: 1.5;
46
+ }
47
+
48
+ .headerActions_20b79 {
17
49
  display: flex;
18
50
  align-items: center;
19
- margin: 1vh 0;
51
+ gap: 12px;
52
+ flex-wrap: wrap;
53
+ }
54
+ .headerActions_20b79 .add_20b79 {
55
+ box-shadow: 0 8px 16px rgba(243, 244, 246, 0.9);
20
56
  }
21
- .header_20b79 .add_20b79 {
22
- margin: 0 0.5vw;
57
+
58
+ .badge_20b79 {
59
+ transform: scale(1.4);
60
+ margin-right: 6px;
61
+ }
62
+
63
+ .statusMessage_20b79 {
64
+ font-size: 12px;
65
+ color: #4b5563;
66
+ max-width: 260px;
67
+ line-height: 1.4;
23
68
  }
24
- .header_20b79 .title_20b79 {
25
- margin: 0 0.5vw;
69
+
70
+ .divider_20b79 {
71
+ width: 1px;
72
+ height: 1px;
73
+ background: rgba(96, 165, 250, 0.3);
26
74
  }
27
- .header_20b79 .status_20b79 {
75
+
76
+ .hmrArea_20b79 {
28
77
  display: flex;
29
- flex: 1 1;
30
- justify-content: flex-end;
31
78
  align-items: center;
79
+ gap: 8px;
80
+ font-size: 12px;
81
+ color: #4b5563;
32
82
  }
33
- .header_20b79 .status_20b79 .message_20b79 {
34
- flex: 1 1;
83
+
84
+ .switch_20b79 .arco-switch {
85
+ background: rgba(243, 244, 246, 0.9);
86
+ border-color: rgba(96, 165, 250, 0.35);
87
+ color: #4b5563;
35
88
  }
36
- .header_20b79 .status_20b79 .switch_20b79 {
37
- margin-left: 0.5vw;
89
+ .switch_20b79 .arco-switch-checked {
90
+ background: rgba(243, 244, 246, 0.9);
91
+ border-color: rgba(96, 165, 250, 0.35);
38
92
  }
39
- .header_20b79 .headerSlot_20b79 {
93
+
94
+ .rules_20b79 {
95
+ display: flex;
96
+ flex-direction: column;
97
+ gap: 16px;
98
+ }
99
+
100
+ .ruleCard_20b79 {
101
+ display: flex;
102
+ flex-direction: column;
103
+ gap: 14px;
104
+ padding: 18px;
105
+ border-radius: 18px;
106
+ border: 1px solid rgba(228, 228, 231, 0.5);
107
+ background: rgba(255, 255, 255, 0.9);
108
+ box-shadow: 0 15px 32px rgba(8, 11, 25, 0.45);
109
+ }
110
+
111
+ .ruleHeader_20b79 {
40
112
  display: flex;
41
113
  align-items: center;
114
+ justify-content: space-between;
42
115
  }
43
- .header_20b79 .badge_20b79 {
116
+
117
+ .toggle_20b79 .arco-checkbox {
118
+ transform: scale(1.4);
119
+ }
120
+ .toggle_20b79 .arco-checkbox-icon {
121
+ border-radius: 6px;
122
+ border-color: rgba(228, 228, 231, 0.5);
123
+ background: rgba(243, 244, 246, 0.9);
124
+ }
125
+ .toggle_20b79 .arco-checkbox-checked .arco-checkbox-icon {
126
+ background: rgba(243, 244, 246, 0.9);
127
+ border-color: rgba(228, 228, 231, 0.5);
128
+ }
129
+
130
+ .inputs_20b79 {
131
+ display: flex;
132
+ flex-direction: column;
133
+ gap: 12px;
134
+ }
135
+
136
+ @media (min-width: 520px) {
137
+ .inputs_20b79 {
138
+ flex-direction: row;
139
+ }
140
+ }
141
+ .field_20b79 {
142
+ flex: 1 1;
143
+ }
144
+ .field_20b79 .arco-form-item-content {
145
+ width: 100%;
146
+ }
147
+ .field_20b79 .arco-select-view {
148
+ background: rgba(243, 244, 246, 0.9);
149
+ border: 1px solid rgba(228, 228, 231, 0.5);
150
+ border-radius: 14px;
151
+ color: #1f2937;
152
+ min-height: 42px;
153
+ padding: 6px 12px;
154
+ }
155
+ .field_20b79 .arco-select-view-input {
156
+ color: #4b5563;
157
+ }
158
+ .field_20b79 .arco-select-view-placeholder {
159
+ color: #4b5563;
160
+ }
161
+
162
+ .dropdown_20b79 {
163
+ background: rgba(255, 255, 255, 0.9);
164
+ border: 1px solid rgba(228, 228, 231, 0.5);
165
+ box-shadow: 0 16px 30px rgba(8, 11, 25, 0.45);
166
+ }
167
+ .dropdown_20b79 .arco-select-option {
168
+ color: #4b5563;
169
+ }
170
+ .dropdown_20b79 .arco-select-option:hover,
171
+ .dropdown_20b79 .arco-select-option.arco-select-option-selected {
172
+ background: rgba(243, 244, 246, 0.9);
173
+ }
174
+
175
+ .delete_20b79 {
176
+ box-shadow: 0 8px 16px rgba(248, 113, 113, 0.18);
177
+ }
178
+
179
+ .emptyWrapper_20b79 {
180
+ border-radius: 16px;
181
+ border: 1px dashed rgba(228, 228, 231, 0.5);
182
+ padding: 28px 16px;
183
+ background: rgba(255, 255, 255, 0.9);
184
+ display: flex;
185
+ justify-content: center;
186
+ }
187
+
188
+ .empty_20b79 .arco-empty-description {
189
+ color: #4b5563;
190
+ }
191
+
192
+ .footerHint_20b79 {
193
+ font-size: 11px;
194
+ color: #4b5563;
195
+ text-align: right;
196
+ letter-spacing: 0.04em;
197
+ text-transform: uppercase;
198
+ align-items: center;
199
+ justify-content: center;
44
200
  display: flex;
45
- transform: scale(1.6);
46
- margin: 0 0.6vw;
47
201
  }