@absolutejs/absolute 0.20.0-beta.5 → 0.20.0-beta.50

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 (142) hide show
  1. package/README.md +205 -0
  2. package/dist/angular/browser.js +392 -361
  3. package/dist/angular/browser.js.map +3 -3
  4. package/dist/angular/components/core/streamingSlotRegistrar.js +7 -7
  5. package/dist/angular/components/core/streamingSlotRegistry.js +4 -4
  6. package/dist/angular/index.js +355 -302
  7. package/dist/angular/index.js.map +5 -5
  8. package/dist/angular/server.js +109 -58
  9. package/dist/angular/server.js.map +5 -5
  10. package/dist/build.js +2261 -1335
  11. package/dist/build.js.map +16 -12
  12. package/dist/cli/config/client.js +12 -12
  13. package/dist/cli/config/server.js +1136 -1090
  14. package/dist/cli/index.js +8247 -1898
  15. package/dist/client/index.js +29 -25
  16. package/dist/client/index.js.map +2 -2
  17. package/dist/core/streamingSlotRegistrar.js +15 -13
  18. package/dist/core/streamingSlotRegistrar.js.map +2 -2
  19. package/dist/core/streamingSlotRegistry.js +11 -9
  20. package/dist/core/streamingSlotRegistry.js.map +2 -2
  21. package/dist/dev/client/hmrClient.ts +35 -3
  22. package/dist/dev/client/hmrTiming.ts +6 -0
  23. package/dist/dev/client/syncDevtools.ts +237 -0
  24. package/dist/dev/serverBootstrap.js +28 -0
  25. package/dist/image-client/imageClient.js +7 -7
  26. package/dist/index.js +3400 -2126
  27. package/dist/index.js.map +30 -23
  28. package/dist/islands/browser.js +11 -9
  29. package/dist/islands/browser.js.map +2 -2
  30. package/dist/islands/index.js +39 -35
  31. package/dist/islands/index.js.map +2 -2
  32. package/dist/mobile/browser.js +167 -20
  33. package/dist/mobile/browser.js.map +7 -5
  34. package/dist/mobile/index.js +7840 -2983
  35. package/dist/mobile/index.js.map +37 -18
  36. package/dist/mobile/remoteMacAgentEntry.js +1184 -14
  37. package/dist/mobile/shellAuth.js +36 -0
  38. package/dist/mobile/shellBootstrap.js +836 -0
  39. package/dist/mobile/shellExpoAuth.js +163 -0
  40. package/dist/mobile/shellExpoDevices.js +77 -0
  41. package/dist/mobile/shellExpoSync.js +104 -0
  42. package/dist/mobile/shellSync.js +173 -0
  43. package/dist/react/browser.js +17 -15
  44. package/dist/react/browser.js.map +2 -2
  45. package/dist/react/components/browser/index.js +107 -107
  46. package/dist/react/components/index.js +118 -116
  47. package/dist/react/components/index.js.map +2 -2
  48. package/dist/react/hooks/index.js +11 -9
  49. package/dist/react/hooks/index.js.map +2 -2
  50. package/dist/react/index.js +92 -49
  51. package/dist/react/index.js.map +4 -4
  52. package/dist/react/jsxDevRuntimeCompat.js +11 -9
  53. package/dist/react/jsxDevRuntimeCompat.js.map +2 -2
  54. package/dist/react/jsxRuntimeCompat.js +11 -9
  55. package/dist/react/jsxRuntimeCompat.js.map +2 -2
  56. package/dist/react/router/browser.js +9 -7
  57. package/dist/react/router/browser.js.map +2 -2
  58. package/dist/react/router/index.js +9 -7
  59. package/dist/react/router/index.js.map +2 -2
  60. package/dist/react/server.js +51 -10
  61. package/dist/react/server.js.map +4 -4
  62. package/dist/src/build/pwa.d.ts +16 -0
  63. package/dist/src/cli/config/server.d.ts +1 -1
  64. package/dist/src/cli/instanceStatus.d.ts +1 -0
  65. package/dist/src/cli/scripts/dev.d.ts +2 -0
  66. package/dist/src/core/devBuild.d.ts +1 -0
  67. package/dist/src/core/prepare.d.ts +376 -0
  68. package/dist/src/dev/clientManager.d.ts +1 -0
  69. package/dist/src/dev/devCert.d.ts +6 -4
  70. package/dist/src/dev/serverEntryCopies.d.ts +3 -0
  71. package/dist/src/mobile/androidEmulatorController.d.ts +8 -1
  72. package/dist/src/mobile/androidRelease.d.ts +9 -2
  73. package/dist/src/mobile/androidTestReport.d.ts +14 -0
  74. package/dist/src/mobile/androidUpgradeConformance.d.ts +47 -0
  75. package/dist/src/mobile/androidWebView.d.ts +1 -0
  76. package/dist/src/mobile/browser.d.ts +1 -0
  77. package/dist/src/mobile/capacitorBundle.d.ts +11 -0
  78. package/dist/src/mobile/ciWorkflow.d.ts +26 -0
  79. package/dist/src/mobile/config.d.ts +4 -1
  80. package/dist/src/mobile/devDeviceAdapter.d.ts +3 -0
  81. package/dist/src/mobile/deviceCapabilities.d.ts +48 -0
  82. package/dist/src/mobile/expoBridge.d.ts +91 -0
  83. package/dist/src/mobile/expoDevController.d.ts +56 -0
  84. package/dist/src/mobile/expoProject.d.ts +16 -0
  85. package/dist/src/mobile/index.d.ts +14 -0
  86. package/dist/src/mobile/iosDeviceAcceptance.d.ts +32 -0
  87. package/dist/src/mobile/iosPhysicalDeviceTransport.d.ts +16 -0
  88. package/dist/src/mobile/iosRelease.d.ts +16 -3
  89. package/dist/src/mobile/iosSimulatorController.d.ts +20 -2
  90. package/dist/src/mobile/iosTestReport.d.ts +24 -0
  91. package/dist/src/mobile/mobileBundleInspection.d.ts +55 -0
  92. package/dist/src/mobile/mobileInspect.d.ts +136 -0
  93. package/dist/src/mobile/mobilePreview.d.ts +174 -0
  94. package/dist/src/mobile/mobilePreviewClient.d.ts +1 -0
  95. package/dist/src/mobile/nativeAuth.d.ts +6 -0
  96. package/dist/src/mobile/nativeBackgroundSync.d.ts +4 -0
  97. package/dist/src/mobile/nativeDeviceCapabilities.d.ts +6 -0
  98. package/dist/src/mobile/nativeRoute.d.ts +13 -0
  99. package/dist/src/mobile/nativeTestReport.d.ts +91 -0
  100. package/dist/src/mobile/pageProtocol.d.ts +2 -0
  101. package/dist/src/mobile/releaseDoctor.d.ts +23 -1
  102. package/dist/src/mobile/remoteMacProtocol.d.ts +38 -0
  103. package/dist/src/mobile/remoteMacWire.d.ts +1 -1
  104. package/dist/src/mobile/shellAuth.d.ts +8 -1
  105. package/dist/src/mobile/shellBootstrap.d.ts +14 -2
  106. package/dist/src/mobile/shellExpoAuth.d.ts +12 -0
  107. package/dist/src/mobile/shellExpoDevices.d.ts +3 -0
  108. package/dist/src/mobile/shellExpoSync.d.ts +18 -0
  109. package/dist/src/mobile/shellHttp.d.ts +2 -0
  110. package/dist/src/mobile/shellPush.d.ts +11 -0
  111. package/dist/src/mobile/shellSync.d.ts +46 -1
  112. package/dist/src/mobile/syncRemediation.d.ts +10 -0
  113. package/dist/src/mobile/syncSchema.d.ts +9 -0
  114. package/dist/src/mobile/transport.d.ts +7 -0
  115. package/dist/src/plugins/hmr.d.ts +3 -0
  116. package/dist/src/plugins/imageOptimizer.d.ts +1 -1
  117. package/dist/src/react/hooks/useMediaQuery.d.ts +1 -1
  118. package/dist/src/utils/imageProcessing.d.ts +3 -0
  119. package/dist/src/utils/loadConfig.d.ts +1 -0
  120. package/dist/src/utils/logger.d.ts +1 -0
  121. package/dist/src/utils/startupBanner.d.ts +1 -0
  122. package/dist/src/utils/userAgentFunctions.d.ts +1 -1
  123. package/dist/svelte/browser.js +12 -10
  124. package/dist/svelte/browser.js.map +2 -2
  125. package/dist/svelte/index.js +86 -43
  126. package/dist/svelte/index.js.map +4 -4
  127. package/dist/svelte/server.js +68 -27
  128. package/dist/svelte/server.js.map +4 -4
  129. package/dist/types/build.d.ts +53 -3
  130. package/dist/types/cli.d.ts +1 -0
  131. package/dist/types/messages.d.ts +1 -1
  132. package/dist/vue/browser.js +14 -12
  133. package/dist/vue/browser.js.map +2 -2
  134. package/dist/vue/components/Image.js +9 -7
  135. package/dist/vue/components/Image.js.map +2 -2
  136. package/dist/vue/components/index.js +11 -9
  137. package/dist/vue/components/index.js.map +2 -2
  138. package/dist/vue/index.js +91 -48
  139. package/dist/vue/index.js.map +4 -4
  140. package/dist/vue/server.js +53 -12
  141. package/dist/vue/server.js.map +4 -4
  142. package/package.json +35 -15
@@ -19,12 +19,14 @@ var __toESM = (mod, isNodeMode, target) => {
19
19
  }
20
20
  target = mod != null ? __create(__getProtoOf(mod)) : {};
21
21
  const to = isNodeMode || !mod || !mod.__esModule ? __defProp(target, "default", { value: mod, enumerable: true }) : target;
22
- for (let key of __getOwnPropNames(mod))
23
- if (!__hasOwnProp.call(to, key))
24
- __defProp(to, key, {
25
- get: __accessProp.bind(mod, key),
26
- enumerable: true
27
- });
22
+ if (mod && typeof mod === "object" || typeof mod === "function") {
23
+ for (let key of __getOwnPropNames(mod))
24
+ if (!__hasOwnProp.call(to, key))
25
+ __defProp(to, key, {
26
+ get: __accessProp.bind(mod, key),
27
+ enumerable: true
28
+ });
29
+ }
28
30
  if (canCache)
29
31
  cache.set(mod, to);
30
32
  return to;
@@ -47,7 +49,7 @@ var __esm = (fn, res) => () => (fn && (res = fn(fn = 0)), res);
47
49
  var __require = import.meta.require;
48
50
 
49
51
  // node_modules/react/cjs/react.development.js
50
- var require_react_development = __commonJS((exports, module) => {
52
+ var require_react_development = __commonJS(function(exports, module) {
51
53
  (function() {
52
54
  function defineDeprecationWarning(methodName, info) {
53
55
  Object.defineProperty(Component.prototype, methodName, {
@@ -870,7 +872,7 @@ See https://react.dev/link/invalid-hook-call for tips about how to debug and fix
870
872
  });
871
873
 
872
874
  // node_modules/react/index.js
873
- var require_react = __commonJS((exports, module) => {
875
+ var require_react = __commonJS(function(exports, module) {
874
876
  var react_development = __toESM(require_react_development());
875
877
  if (false) {} else {
876
878
  module.exports = react_development;
@@ -890,8 +892,8 @@ var getRecord = (value, key) => {
890
892
  return typeof found === "string" ? found : null;
891
893
  }, isMap = (value) => value instanceof Map, isRecord = (value) => typeof value === "object" && value !== null && !Array.isArray(value);
892
894
 
893
- // node_modules/react/cjs/react-jsx-dev-runtime.development.js
894
- var require_react_jsx_dev_runtime_development = __commonJS((exports) => {
895
+ // node_modules/react/cjs/react-jsx-runtime.development.js
896
+ var require_react_jsx_runtime_development = __commonJS(function(exports) {
895
897
  var React = __toESM(require_react());
896
898
  (function() {
897
899
  function getComponentNameFromType(type) {
@@ -1098,18 +1100,22 @@ React keys must be passed directly to JSX without using spread:
1098
1100
  var unknownOwnerDebugTask = createTask(getTaskName(UnknownOwner));
1099
1101
  var didWarnAboutKeySpread = {};
1100
1102
  exports.Fragment = REACT_FRAGMENT_TYPE;
1101
- exports.jsxDEV = function(type, config, maybeKey, isStaticChildren) {
1103
+ exports.jsx = function(type, config, maybeKey) {
1104
+ var trackActualOwner = 1e4 > ReactSharedInternals.recentlyCreatedOwnerStacks++;
1105
+ return jsxDEVImpl(type, config, maybeKey, false, trackActualOwner ? Error("react-stack-top-frame") : unknownOwnerDebugStack, trackActualOwner ? createTask(getTaskName(type)) : unknownOwnerDebugTask);
1106
+ };
1107
+ exports.jsxs = function(type, config, maybeKey) {
1102
1108
  var trackActualOwner = 1e4 > ReactSharedInternals.recentlyCreatedOwnerStacks++;
1103
- return jsxDEVImpl(type, config, maybeKey, isStaticChildren, trackActualOwner ? Error("react-stack-top-frame") : unknownOwnerDebugStack, trackActualOwner ? createTask(getTaskName(type)) : unknownOwnerDebugTask);
1109
+ return jsxDEVImpl(type, config, maybeKey, true, trackActualOwner ? Error("react-stack-top-frame") : unknownOwnerDebugStack, trackActualOwner ? createTask(getTaskName(type)) : unknownOwnerDebugTask);
1104
1110
  };
1105
1111
  })();
1106
1112
  });
1107
1113
 
1108
- // node_modules/react/jsx-dev-runtime.js
1109
- var require_jsx_dev_runtime = __commonJS((exports, module) => {
1110
- var react_jsx_dev_runtime_development = __toESM(require_react_jsx_dev_runtime_development());
1114
+ // node_modules/react/jsx-runtime.js
1115
+ var require_jsx_runtime = __commonJS(function(exports, module) {
1116
+ var react_jsx_runtime_development = __toESM(require_react_jsx_runtime_development());
1111
1117
  if (false) {} else {
1112
- module.exports = react_jsx_dev_runtime_development;
1118
+ module.exports = react_jsx_runtime_development;
1113
1119
  }
1114
1120
  });
1115
1121
 
@@ -1242,7 +1248,7 @@ var init_authCatalog = __esm(() => {
1242
1248
  });
1243
1249
 
1244
1250
  // node_modules/react-dom/cjs/react-dom.development.js
1245
- var require_react_dom_development = __commonJS((exports) => {
1251
+ var require_react_dom_development = __commonJS(function(exports) {
1246
1252
  var React = __toESM(require_react());
1247
1253
  (function() {
1248
1254
  function noop() {}
@@ -1425,7 +1431,7 @@ See https://react.dev/link/invalid-hook-call for tips about how to debug and fix
1425
1431
  });
1426
1432
 
1427
1433
  // node_modules/react-dom/index.js
1428
- var require_react_dom = __commonJS((exports, module) => {
1434
+ var require_react_dom = __commonJS(function(exports, module) {
1429
1435
  var react_dom_development = __toESM(require_react_dom_development());
1430
1436
  if (false) {} else {
1431
1437
  module.exports = react_dom_development;
@@ -1435,8 +1441,8 @@ var require_react_dom = __commonJS((exports, module) => {
1435
1441
  // node_modules/react-dom/cjs/react-dom-server.bun.development.js
1436
1442
  var exports_react_dom_server_bun_development = {};
1437
1443
  __export(exports_react_dom_server_bun_development, {
1438
- version: () => $version,
1439
- renderToReadableStream: () => $renderToReadableStream
1444
+ renderToReadableStream: () => $renderToReadableStream,
1445
+ version: () => $version
1440
1446
  });
1441
1447
  function getIteratorFn(maybeIterable) {
1442
1448
  if (maybeIterable === null || typeof maybeIterable !== "object")
@@ -7136,7 +7142,7 @@ Learn more: https://react.dev/warnings/version-mismatch`));
7136
7142
  });
7137
7143
 
7138
7144
  // node_modules/react-dom/cjs/react-dom-server-legacy.browser.development.js
7139
- var require_react_dom_server_legacy_browser_development = __commonJS((exports) => {
7145
+ var require_react_dom_server_legacy_browser_development = __commonJS(function(exports) {
7140
7146
  var React2 = __toESM(require_react());
7141
7147
  var ReactDOM2 = __toESM(require_react_dom());
7142
7148
  (function() {
@@ -12800,11 +12806,11 @@ $RC=function(a,b){if(b=document.getElementById(b))(a=document.getElementById(a))
12800
12806
  // node_modules/react-dom/server.bun.js
12801
12807
  var exports_server_bun = {};
12802
12808
  __export(exports_server_bun, {
12803
- version: () => $version2,
12804
- resume: () => $resume,
12805
- renderToString: () => $renderToString,
12809
+ renderToReadableStream: () => $renderToReadableStream2,
12806
12810
  renderToStaticMarkup: () => $renderToStaticMarkup,
12807
- renderToReadableStream: () => $renderToReadableStream2
12811
+ renderToString: () => $renderToString,
12812
+ resume: () => $resume,
12813
+ version: () => $version2
12808
12814
  });
12809
12815
  var react_dom_server_legacy_browser_development, b, l, $version2, $renderToReadableStream2, $resume, $renderToString, $renderToStaticMarkup;
12810
12816
  var init_server_bun = __esm(() => {
@@ -19232,7 +19238,7 @@ var init_acorn = __esm(() => {
19232
19238
  });
19233
19239
 
19234
19240
  // node_modules/acorn-jsx/xhtml.js
19235
- var require_xhtml = __commonJS((exports, module) => {
19241
+ var require_xhtml = __commonJS(function(exports, module) {
19236
19242
  module.exports = {
19237
19243
  quot: '"',
19238
19244
  amp: "&",
@@ -19491,7 +19497,7 @@ var require_xhtml = __commonJS((exports, module) => {
19491
19497
  });
19492
19498
 
19493
19499
  // node_modules/acorn/dist/acorn.js
19494
- var require_acorn = __commonJS((exports, module) => {
19500
+ var require_acorn = __commonJS(function(exports, module) {
19495
19501
  (function(global, factory) {
19496
19502
  typeof exports === "object" && typeof module !== "undefined" ? factory(exports) : typeof define === "function" && define.amd ? define(["exports"], factory) : (global = typeof globalThis !== "undefined" ? globalThis : global || self, factory(global.acorn = {}));
19497
19503
  })(exports, function(exports2) {
@@ -24820,7 +24826,7 @@ Defaulting to 2020, but this will stop working in the future.`);
24820
24826
  });
24821
24827
 
24822
24828
  // node_modules/acorn-jsx/index.js
24823
- var require_acorn_jsx = __commonJS((exports, module) => {
24829
+ var require_acorn_jsx = __commonJS(function(exports, module) {
24824
24830
  var XHTMLEntities = require_xhtml();
24825
24831
  var hexNumber = /^[\da-fA-F]+$/;
24826
24832
  var decimalNumber = /^\d+$/;
@@ -26297,7 +26303,7 @@ var init_editConfigRule = __esm(() => {
26297
26303
  });
26298
26304
 
26299
26305
  // node_modules/jiti/dist/jiti.cjs
26300
- var require_jiti = __commonJS((exports, module) => {
26306
+ var require_jiti = __commonJS(function(exports, module) {
26301
26307
  (() => {
26302
26308
  var e = { "./node_modules/.pnpm/mlly@1.8.0/node_modules/mlly/dist lazy recursive": function(e2) {
26303
26309
  function webpackEmptyAsyncContext(e3) {
@@ -29665,8 +29671,8 @@ var init_jiti = __esm(() => {
29665
29671
  // src/cli/config/eslint/resolveConfig.ts
29666
29672
  var exports_resolveConfig = {};
29667
29673
  __export(exports_resolveConfig, {
29668
- resolveRuleCatalog: () => resolveRuleCatalog,
29669
- findConfigPath: () => findConfigPath
29674
+ findConfigPath: () => findConfigPath,
29675
+ resolveRuleCatalog: () => resolveRuleCatalog
29670
29676
  });
29671
29677
  import { existsSync as existsSync3, readFileSync as readFileSync4 } from "fs";
29672
29678
  import { resolve as resolve2 } from "path";
@@ -31282,8 +31288,8 @@ var init_editTsconfig = __esm(() => {
31282
31288
  // src/cli/config/tsconfig/resolveTsconfig.ts
31283
31289
  var exports_resolveTsconfig = {};
31284
31290
  __export(exports_resolveTsconfig, {
31285
- resolveTsconfigState: () => resolveTsconfigState,
31286
- findTsconfigPath: () => findTsconfigPath
31291
+ findTsconfigPath: () => findTsconfigPath,
31292
+ resolveTsconfigState: () => resolveTsconfigState
31287
31293
  });
31288
31294
  import ts from "typescript";
31289
31295
  import { existsSync as existsSync4, readFileSync as readFileSync6 } from "fs";
@@ -31749,11 +31755,11 @@ var init_fromType = __esm(() => {
31749
31755
  // src/cli/config/absolute/resolveAbsoluteConfig.ts
31750
31756
  var exports_resolveAbsoluteConfig = {};
31751
31757
  __export(exports_resolveAbsoluteConfig, {
31752
- resolveAbsoluteConfigState: () => resolveAbsoluteConfigState,
31753
- readAbsoluteConfigValues: () => readAbsoluteConfigValues,
31754
- parseConfigObject: () => parseConfigObject,
31758
+ findConfigObject: () => findConfigObject,
31755
31759
  findConfigPath: () => findConfigPath2,
31756
- findConfigObject: () => findConfigObject
31760
+ parseConfigObject: () => parseConfigObject,
31761
+ readAbsoluteConfigValues: () => readAbsoluteConfigValues,
31762
+ resolveAbsoluteConfigState: () => resolveAbsoluteConfigState
31757
31763
  });
31758
31764
  import ts3 from "typescript";
31759
31765
  import { existsSync as existsSync8, readFileSync as readFileSync10 } from "fs";
@@ -32001,8 +32007,8 @@ var init_editAbsoluteConfig = __esm(() => {
32001
32007
  // src/cli/config/packageJson/editPackageJson.ts
32002
32008
  var exports_editPackageJson = {};
32003
32009
  __export(exports_editPackageJson, {
32004
- applyScriptEdit: () => applyScriptEdit,
32005
- applyFieldEdit: () => applyFieldEdit
32010
+ applyFieldEdit: () => applyFieldEdit,
32011
+ applyScriptEdit: () => applyScriptEdit
32006
32012
  });
32007
32013
  import { readFileSync as readFileSync12, writeFileSync as writeFileSync6 } from "fs";
32008
32014
  var detectFormatting3 = (text) => {
@@ -32050,8 +32056,8 @@ var init_editPackageJson = __esm(() => {
32050
32056
  // src/cli/config/packageJson/resolvePackageJson.ts
32051
32057
  var exports_resolvePackageJson = {};
32052
32058
  __export(exports_resolvePackageJson, {
32053
- resolvePackageJsonState: () => resolvePackageJsonState,
32054
- findPackageJsonPath: () => findPackageJsonPath
32059
+ findPackageJsonPath: () => findPackageJsonPath,
32060
+ resolvePackageJsonState: () => resolvePackageJsonState
32055
32061
  });
32056
32062
  import { existsSync as existsSync9, readFileSync as readFileSync13 } from "fs";
32057
32063
  import { resolve as resolve8 } from "path";
@@ -32371,10 +32377,10 @@ var init_authScaffolds = __esm(() => {
32371
32377
  // src/cli/config/auth/resolveAuthSettings.ts
32372
32378
  var exports_resolveAuthSettings = {};
32373
32379
  __export(exports_resolveAuthSettings, {
32374
- resolveAuthSettingsState: () => resolveAuthSettingsState,
32375
- parseAuthSettingsObject: () => parseAuthSettingsObject,
32380
+ findAuthSettingsObject: () => findAuthSettingsObject,
32376
32381
  findAuthSettingsPath: () => findAuthSettingsPath,
32377
- findAuthSettingsObject: () => findAuthSettingsObject
32382
+ parseAuthSettingsObject: () => parseAuthSettingsObject,
32383
+ resolveAuthSettingsState: () => resolveAuthSettingsState
32378
32384
  });
32379
32385
  import ts5 from "typescript";
32380
32386
  import { existsSync as existsSync10, readFileSync as readFileSync14 } from "fs";
@@ -32889,8 +32895,8 @@ var init_catalog = __esm(() => {
32889
32895
  // src/cli/integrations/addPlugin.ts
32890
32896
  var exports_addPlugin = {};
32891
32897
  __export(exports_addPlugin, {
32892
- resolveIntegrationsState: () => resolveIntegrationsState,
32893
- addIntegration: () => addIntegration
32898
+ addIntegration: () => addIntegration,
32899
+ resolveIntegrationsState: () => resolveIntegrationsState
32894
32900
  });
32895
32901
  import { existsSync as existsSync13, readFileSync as readFileSync17 } from "fs";
32896
32902
  import { join as join4 } from "path";
@@ -33008,7 +33014,7 @@ var import_react2 = __toESM(require_react(), 1);
33008
33014
 
33009
33015
  // src/cli/config/page/FieldEditor.tsx
33010
33016
  var import_react = __toESM(require_react(), 1);
33011
- var jsx_dev_runtime = __toESM(require_jsx_dev_runtime(), 1);
33017
+ var jsx_runtime = __toESM(require_jsx_runtime(), 1);
33012
33018
  var emptyValue = (schema) => {
33013
33019
  switch (schema.kind) {
33014
33020
  case "string":
@@ -33033,58 +33039,58 @@ var emptyValue = (schema) => {
33033
33039
  return null;
33034
33040
  }
33035
33041
  };
33036
- var StringField = ({ onChange, value }) => /* @__PURE__ */ jsx_dev_runtime.jsxDEV("input", {
33042
+ var StringField = ({ onChange, value }) => /* @__PURE__ */ jsx_runtime.jsx("input", {
33037
33043
  className: "ts-input",
33038
33044
  onChange: (event) => onChange(event.target.value),
33039
33045
  spellCheck: false,
33040
33046
  value: typeof value === "string" ? value : ""
33041
- }, undefined, false, undefined, this);
33042
- var NumberField = ({ onChange, value }) => /* @__PURE__ */ jsx_dev_runtime.jsxDEV("input", {
33047
+ });
33048
+ var NumberField = ({ onChange, value }) => /* @__PURE__ */ jsx_runtime.jsx("input", {
33043
33049
  className: "ts-input",
33044
33050
  onChange: (event) => onChange(event.target.value === "" ? "" : Number(event.target.value)),
33045
33051
  type: "number",
33046
33052
  value: typeof value === "number" ? value : ""
33047
- }, undefined, false, undefined, this);
33048
- var BooleanField = ({ onChange, value }) => /* @__PURE__ */ jsx_dev_runtime.jsxDEV("div", {
33053
+ });
33054
+ var BooleanField = ({ onChange, value }) => /* @__PURE__ */ jsx_runtime.jsxs("div", {
33049
33055
  className: "seg",
33050
33056
  children: [
33051
- /* @__PURE__ */ jsx_dev_runtime.jsxDEV("button", {
33057
+ /* @__PURE__ */ jsx_runtime.jsx("button", {
33052
33058
  "data-on": value === false,
33053
33059
  onClick: () => onChange(false),
33054
33060
  type: "button",
33055
33061
  children: "false"
33056
- }, undefined, false, undefined, this),
33057
- /* @__PURE__ */ jsx_dev_runtime.jsxDEV("button", {
33062
+ }),
33063
+ /* @__PURE__ */ jsx_runtime.jsx("button", {
33058
33064
  "data-on": value === true,
33059
33065
  onClick: () => onChange(true),
33060
33066
  type: "button",
33061
33067
  children: "true"
33062
- }, undefined, false, undefined, this)
33068
+ })
33063
33069
  ]
33064
- }, undefined, true, undefined, this);
33070
+ });
33065
33071
  var EnumField = ({ onChange, schema, value }) => {
33066
33072
  if (schema.kind !== "enum")
33067
33073
  return null;
33068
- return /* @__PURE__ */ jsx_dev_runtime.jsxDEV("select", {
33074
+ return /* @__PURE__ */ jsx_runtime.jsx("select", {
33069
33075
  className: "ts-select",
33070
33076
  onChange: (event) => {
33071
33077
  const next = schema.choices.find((choice) => String(choice) === event.target.value);
33072
33078
  onChange(next ?? event.target.value);
33073
33079
  },
33074
33080
  value: String(value ?? ""),
33075
- children: schema.choices.map((choice) => /* @__PURE__ */ jsx_dev_runtime.jsxDEV("option", {
33081
+ children: schema.choices.map((choice) => /* @__PURE__ */ jsx_runtime.jsx("option", {
33076
33082
  value: String(choice),
33077
33083
  children: String(choice)
33078
- }, String(choice), false, undefined, this))
33079
- }, undefined, false, undefined, this);
33084
+ }, String(choice)))
33085
+ });
33080
33086
  };
33081
33087
  var RawField = ({ onChange, schema, value }) => {
33082
33088
  const [draft, setDraft] = import_react.useState(value === undefined ? "" : JSON.stringify(value, null, 2));
33083
33089
  const [error, setError] = import_react.useState(null);
33084
- return /* @__PURE__ */ jsx_dev_runtime.jsxDEV("div", {
33090
+ return /* @__PURE__ */ jsx_runtime.jsxs("div", {
33085
33091
  className: "fe-raw",
33086
33092
  children: [
33087
- /* @__PURE__ */ jsx_dev_runtime.jsxDEV("textarea", {
33093
+ /* @__PURE__ */ jsx_runtime.jsx("textarea", {
33088
33094
  className: error ? "opts-input err" : "opts-input",
33089
33095
  onChange: (event) => {
33090
33096
  setDraft(event.target.value);
@@ -33098,65 +33104,65 @@ var RawField = ({ onChange, schema, value }) => {
33098
33104
  rows: 4,
33099
33105
  spellCheck: false,
33100
33106
  value: draft
33101
- }, undefined, false, undefined, this),
33102
- schema.kind === "opaque" && /* @__PURE__ */ jsx_dev_runtime.jsxDEV("div", {
33107
+ }),
33108
+ schema.kind === "opaque" && /* @__PURE__ */ jsx_runtime.jsx("div", {
33103
33109
  className: "fe-type",
33104
33110
  children: schema.typeText
33105
- }, undefined, false, undefined, this),
33106
- error && /* @__PURE__ */ jsx_dev_runtime.jsxDEV("div", {
33111
+ }),
33112
+ error && /* @__PURE__ */ jsx_runtime.jsx("div", {
33107
33113
  className: "ts-err",
33108
33114
  children: error
33109
- }, undefined, false, undefined, this)
33115
+ })
33110
33116
  ]
33111
- }, undefined, true, undefined, this);
33117
+ });
33112
33118
  };
33113
33119
  var ArrayField = ({ onChange, schema, value }) => {
33114
33120
  if (schema.kind !== "array")
33115
33121
  return null;
33116
33122
  const items = Array.isArray(value) ? value : [];
33117
- return /* @__PURE__ */ jsx_dev_runtime.jsxDEV("div", {
33123
+ return /* @__PURE__ */ jsx_runtime.jsxs("div", {
33118
33124
  className: "fe-array",
33119
33125
  children: [
33120
- items.map((item, index) => /* @__PURE__ */ jsx_dev_runtime.jsxDEV("div", {
33126
+ items.map((item, index) => /* @__PURE__ */ jsx_runtime.jsxs("div", {
33121
33127
  className: "fe-item",
33122
33128
  children: [
33123
- /* @__PURE__ */ jsx_dev_runtime.jsxDEV(FieldEditor, {
33129
+ /* @__PURE__ */ jsx_runtime.jsx(FieldEditor, {
33124
33130
  onChange: (next) => onChange(items.map((existing, i) => i === index ? next : existing)),
33125
33131
  schema: schema.item,
33126
33132
  value: item
33127
- }, undefined, false, undefined, this),
33128
- /* @__PURE__ */ jsx_dev_runtime.jsxDEV("button", {
33133
+ }),
33134
+ /* @__PURE__ */ jsx_runtime.jsx("button", {
33129
33135
  className: "fe-remove",
33130
33136
  onClick: () => onChange(items.filter((_, i) => i !== index)),
33131
33137
  type: "button",
33132
33138
  children: "\xD7"
33133
- }, undefined, false, undefined, this)
33139
+ })
33134
33140
  ]
33135
- }, index, true, undefined, this)),
33136
- /* @__PURE__ */ jsx_dev_runtime.jsxDEV("button", {
33141
+ }, index)),
33142
+ /* @__PURE__ */ jsx_runtime.jsx("button", {
33137
33143
  className: "fe-add",
33138
33144
  onClick: () => onChange([...items, emptyValue(schema.item)]),
33139
33145
  type: "button",
33140
33146
  children: "+ add"
33141
- }, undefined, false, undefined, this)
33147
+ })
33142
33148
  ]
33143
- }, undefined, true, undefined, this);
33149
+ });
33144
33150
  };
33145
33151
  var TupleField = ({ onChange, schema, value }) => {
33146
33152
  if (schema.kind !== "tuple")
33147
33153
  return null;
33148
33154
  const items = Array.isArray(value) ? value : [];
33149
- return /* @__PURE__ */ jsx_dev_runtime.jsxDEV("div", {
33155
+ return /* @__PURE__ */ jsx_runtime.jsx("div", {
33150
33156
  className: "fe-array",
33151
- children: schema.items.map((itemSchema, index) => /* @__PURE__ */ jsx_dev_runtime.jsxDEV("div", {
33157
+ children: schema.items.map((itemSchema, index) => /* @__PURE__ */ jsx_runtime.jsx("div", {
33152
33158
  className: "fe-item",
33153
- children: /* @__PURE__ */ jsx_dev_runtime.jsxDEV(FieldEditor, {
33159
+ children: /* @__PURE__ */ jsx_runtime.jsx(FieldEditor, {
33154
33160
  onChange: (next) => onChange(schema.items.map((_, i) => i === index ? next : items[i])),
33155
33161
  schema: itemSchema,
33156
33162
  value: items[index]
33157
- }, undefined, false, undefined, this)
33158
- }, index, false, undefined, this))
33159
- }, undefined, false, undefined, this);
33163
+ })
33164
+ }, index))
33165
+ });
33160
33166
  };
33161
33167
  var RecordField = ({ onChange, schema, value }) => {
33162
33168
  if (schema.kind !== "record")
@@ -33170,32 +33176,32 @@ var RecordField = ({ onChange, schema, value }) => {
33170
33176
  };
33171
33177
  const setValue = (key, val) => onChange(Object.fromEntries(entries.map((e) => e[0] === key ? [key, val] : e)));
33172
33178
  const remove = (key) => onChange(Object.fromEntries(entries.filter((e) => e[0] !== key)));
33173
- return /* @__PURE__ */ jsx_dev_runtime.jsxDEV("div", {
33179
+ return /* @__PURE__ */ jsx_runtime.jsxs("div", {
33174
33180
  className: "fe-record",
33175
33181
  children: [
33176
- entries.map(([key, val]) => /* @__PURE__ */ jsx_dev_runtime.jsxDEV("div", {
33182
+ entries.map(([key, val]) => /* @__PURE__ */ jsx_runtime.jsxs("div", {
33177
33183
  className: "fe-entry",
33178
33184
  children: [
33179
- /* @__PURE__ */ jsx_dev_runtime.jsxDEV("input", {
33185
+ /* @__PURE__ */ jsx_runtime.jsx("input", {
33180
33186
  className: "ts-input fe-key",
33181
33187
  onChange: (event) => rename(key, event.target.value),
33182
33188
  spellCheck: false,
33183
33189
  value: key
33184
- }, undefined, false, undefined, this),
33185
- /* @__PURE__ */ jsx_dev_runtime.jsxDEV(FieldEditor, {
33190
+ }),
33191
+ /* @__PURE__ */ jsx_runtime.jsx(FieldEditor, {
33186
33192
  onChange: (next) => setValue(key, next),
33187
33193
  schema: schema.value,
33188
33194
  value: val
33189
- }, undefined, false, undefined, this),
33190
- /* @__PURE__ */ jsx_dev_runtime.jsxDEV("button", {
33195
+ }),
33196
+ /* @__PURE__ */ jsx_runtime.jsx("button", {
33191
33197
  className: "fe-remove",
33192
33198
  onClick: () => remove(key),
33193
33199
  type: "button",
33194
33200
  children: "\xD7"
33195
- }, undefined, false, undefined, this)
33201
+ })
33196
33202
  ]
33197
- }, key, true, undefined, this)),
33198
- /* @__PURE__ */ jsx_dev_runtime.jsxDEV("button", {
33203
+ }, key)),
33204
+ /* @__PURE__ */ jsx_runtime.jsx("button", {
33199
33205
  className: "fe-add",
33200
33206
  onClick: () => onChange({
33201
33207
  ...Object.fromEntries(entries),
@@ -33203,9 +33209,9 @@ var RecordField = ({ onChange, schema, value }) => {
33203
33209
  }),
33204
33210
  type: "button",
33205
33211
  children: "+ add key"
33206
- }, undefined, false, undefined, this)
33212
+ })
33207
33213
  ]
33208
- }, undefined, true, undefined, this);
33214
+ });
33209
33215
  };
33210
33216
  var ObjectField = ({ onChange, schema, value }) => {
33211
33217
  if (schema.kind !== "object")
@@ -33220,29 +33226,29 @@ var ObjectField = ({ onChange, schema, value }) => {
33220
33226
  }
33221
33227
  onChange({ ...current, [name]: next });
33222
33228
  };
33223
- return /* @__PURE__ */ jsx_dev_runtime.jsxDEV("div", {
33229
+ return /* @__PURE__ */ jsx_runtime.jsx("div", {
33224
33230
  className: "fe-object",
33225
33231
  children: schema.fields.map((field) => {
33226
33232
  const present = Object.prototype.hasOwnProperty.call(current, field.name);
33227
- return /* @__PURE__ */ jsx_dev_runtime.jsxDEV("div", {
33233
+ return /* @__PURE__ */ jsx_runtime.jsxs("div", {
33228
33234
  className: "fe-field",
33229
33235
  children: [
33230
- /* @__PURE__ */ jsx_dev_runtime.jsxDEV("div", {
33236
+ /* @__PURE__ */ jsx_runtime.jsxs("div", {
33231
33237
  className: "fe-label",
33232
33238
  children: [
33233
- /* @__PURE__ */ jsx_dev_runtime.jsxDEV("span", {
33239
+ /* @__PURE__ */ jsx_runtime.jsx("span", {
33234
33240
  className: "fe-name",
33235
33241
  children: field.name
33236
- }, undefined, false, undefined, this),
33237
- field.optional && present && /* @__PURE__ */ jsx_dev_runtime.jsxDEV("button", {
33242
+ }),
33243
+ field.optional && present && /* @__PURE__ */ jsx_runtime.jsx("button", {
33238
33244
  className: "fe-remove",
33239
33245
  onClick: () => setField(field.name, undefined),
33240
33246
  type: "button",
33241
33247
  children: "unset"
33242
- }, undefined, false, undefined, this)
33248
+ })
33243
33249
  ]
33244
- }, undefined, true, undefined, this),
33245
- field.optional && !present ? /* @__PURE__ */ jsx_dev_runtime.jsxDEV("button", {
33250
+ }),
33251
+ field.optional && !present ? /* @__PURE__ */ jsx_runtime.jsxs("button", {
33246
33252
  className: "fe-add",
33247
33253
  onClick: () => setField(field.name, emptyValue(field.schema)),
33248
33254
  type: "button",
@@ -33250,15 +33256,15 @@ var ObjectField = ({ onChange, schema, value }) => {
33250
33256
  "+ set ",
33251
33257
  field.name
33252
33258
  ]
33253
- }, undefined, true, undefined, this) : /* @__PURE__ */ jsx_dev_runtime.jsxDEV(FieldEditor, {
33259
+ }) : /* @__PURE__ */ jsx_runtime.jsx(FieldEditor, {
33254
33260
  onChange: (next) => setField(field.name, next),
33255
33261
  schema: field.schema,
33256
33262
  value: current[field.name]
33257
- }, undefined, false, undefined, this)
33263
+ })
33258
33264
  ]
33259
- }, field.name, true, undefined, this);
33265
+ }, field.name);
33260
33266
  })
33261
- }, undefined, false, undefined, this);
33267
+ });
33262
33268
  };
33263
33269
  var UnionField = ({ onChange, schema, value }) => {
33264
33270
  if (schema.kind !== "union")
@@ -33278,10 +33284,10 @@ var UnionField = ({ onChange, schema, value }) => {
33278
33284
  };
33279
33285
  const activeIndex = Math.max(0, schema.variants.findIndex(matches));
33280
33286
  const active = schema.variants[activeIndex];
33281
- return /* @__PURE__ */ jsx_dev_runtime.jsxDEV("div", {
33287
+ return /* @__PURE__ */ jsx_runtime.jsxs("div", {
33282
33288
  className: "fe-union",
33283
33289
  children: [
33284
- /* @__PURE__ */ jsx_dev_runtime.jsxDEV("select", {
33290
+ /* @__PURE__ */ jsx_runtime.jsx("select", {
33285
33291
  className: "ts-select",
33286
33292
  onChange: (event) => {
33287
33293
  const variant = schema.variants[Number(event.target.value)];
@@ -33289,61 +33295,61 @@ var UnionField = ({ onChange, schema, value }) => {
33289
33295
  onChange(emptyValue(variant));
33290
33296
  },
33291
33297
  value: String(activeIndex),
33292
- children: schema.variants.map((variant, index) => /* @__PURE__ */ jsx_dev_runtime.jsxDEV("option", {
33298
+ children: schema.variants.map((variant, index) => /* @__PURE__ */ jsx_runtime.jsx("option", {
33293
33299
  value: String(index),
33294
33300
  children: variant.kind
33295
- }, index, false, undefined, this))
33296
- }, undefined, false, undefined, this),
33297
- active && /* @__PURE__ */ jsx_dev_runtime.jsxDEV(FieldEditor, {
33301
+ }, index))
33302
+ }),
33303
+ active && /* @__PURE__ */ jsx_runtime.jsx(FieldEditor, {
33298
33304
  onChange,
33299
33305
  schema: active,
33300
33306
  value
33301
- }, undefined, false, undefined, this)
33307
+ })
33302
33308
  ]
33303
- }, undefined, true, undefined, this);
33309
+ });
33304
33310
  };
33305
33311
  var FieldEditor = (props) => {
33306
33312
  switch (props.schema.kind) {
33307
33313
  case "string":
33308
- return /* @__PURE__ */ jsx_dev_runtime.jsxDEV(StringField, {
33314
+ return /* @__PURE__ */ jsx_runtime.jsx(StringField, {
33309
33315
  ...props
33310
- }, undefined, false, undefined, this);
33316
+ });
33311
33317
  case "number":
33312
- return /* @__PURE__ */ jsx_dev_runtime.jsxDEV(NumberField, {
33318
+ return /* @__PURE__ */ jsx_runtime.jsx(NumberField, {
33313
33319
  ...props
33314
- }, undefined, false, undefined, this);
33320
+ });
33315
33321
  case "boolean":
33316
- return /* @__PURE__ */ jsx_dev_runtime.jsxDEV(BooleanField, {
33322
+ return /* @__PURE__ */ jsx_runtime.jsx(BooleanField, {
33317
33323
  ...props
33318
- }, undefined, false, undefined, this);
33324
+ });
33319
33325
  case "enum":
33320
- return /* @__PURE__ */ jsx_dev_runtime.jsxDEV(EnumField, {
33326
+ return /* @__PURE__ */ jsx_runtime.jsx(EnumField, {
33321
33327
  ...props
33322
- }, undefined, false, undefined, this);
33328
+ });
33323
33329
  case "array":
33324
- return /* @__PURE__ */ jsx_dev_runtime.jsxDEV(ArrayField, {
33330
+ return /* @__PURE__ */ jsx_runtime.jsx(ArrayField, {
33325
33331
  ...props
33326
- }, undefined, false, undefined, this);
33332
+ });
33327
33333
  case "tuple":
33328
- return /* @__PURE__ */ jsx_dev_runtime.jsxDEV(TupleField, {
33334
+ return /* @__PURE__ */ jsx_runtime.jsx(TupleField, {
33329
33335
  ...props
33330
- }, undefined, false, undefined, this);
33336
+ });
33331
33337
  case "record":
33332
- return /* @__PURE__ */ jsx_dev_runtime.jsxDEV(RecordField, {
33338
+ return /* @__PURE__ */ jsx_runtime.jsx(RecordField, {
33333
33339
  ...props
33334
- }, undefined, false, undefined, this);
33340
+ });
33335
33341
  case "object":
33336
- return /* @__PURE__ */ jsx_dev_runtime.jsxDEV(ObjectField, {
33342
+ return /* @__PURE__ */ jsx_runtime.jsx(ObjectField, {
33337
33343
  ...props
33338
- }, undefined, false, undefined, this);
33344
+ });
33339
33345
  case "union":
33340
- return /* @__PURE__ */ jsx_dev_runtime.jsxDEV(UnionField, {
33346
+ return /* @__PURE__ */ jsx_runtime.jsx(UnionField, {
33341
33347
  ...props
33342
- }, undefined, false, undefined, this);
33348
+ });
33343
33349
  default:
33344
- return /* @__PURE__ */ jsx_dev_runtime.jsxDEV(RawField, {
33350
+ return /* @__PURE__ */ jsx_runtime.jsx(RawField, {
33345
33351
  ...props
33346
- }, undefined, false, undefined, this);
33352
+ });
33347
33353
  }
33348
33354
  };
33349
33355
 
@@ -33429,7 +33435,7 @@ var fromJsonSchema = (schema, depth = 0) => {
33429
33435
  };
33430
33436
 
33431
33437
  // src/cli/config/eslint/EslintPanel.tsx
33432
- var jsx_dev_runtime2 = __toESM(require_jsx_dev_runtime(), 1);
33438
+ var jsx_runtime2 = __toESM(require_jsx_runtime(), 1);
33433
33439
  var SEVERITIES = ["off", "warn", "error"];
33434
33440
  var CATALOG_RENDER_CAP = 250;
33435
33441
  var splitName = (name) => {
@@ -33439,52 +33445,52 @@ var splitName = (name) => {
33439
33445
  return { prefix: name.slice(0, slash + 1), short: name.slice(slash + 1) };
33440
33446
  };
33441
33447
  var formatOptions = (options) => options.map((option) => JSON.stringify(option)).join(", ");
33442
- var SeveritySegment = ({ busy, onChange, value }) => /* @__PURE__ */ jsx_dev_runtime2.jsxDEV("div", {
33448
+ var SeveritySegment = ({ busy, onChange, value }) => /* @__PURE__ */ jsx_runtime2.jsx("div", {
33443
33449
  className: busy ? "seg busy" : "seg",
33444
- children: SEVERITIES.map((severity) => /* @__PURE__ */ jsx_dev_runtime2.jsxDEV("button", {
33450
+ children: SEVERITIES.map((severity) => /* @__PURE__ */ jsx_runtime2.jsx("button", {
33445
33451
  "data-on": value === severity,
33446
33452
  "data-sev": severity,
33447
33453
  onClick: () => onChange(severity),
33448
33454
  type: "button",
33449
33455
  children: severity
33450
- }, severity, false, undefined, this))
33451
- }, undefined, false, undefined, this);
33456
+ }, severity))
33457
+ });
33452
33458
  var RuleName = ({ meta, name }) => {
33453
33459
  const parts = splitName(name);
33454
- return /* @__PURE__ */ jsx_dev_runtime2.jsxDEV("div", {
33460
+ return /* @__PURE__ */ jsx_runtime2.jsxs("div", {
33455
33461
  className: "rule-name-row",
33456
33462
  children: [
33457
- /* @__PURE__ */ jsx_dev_runtime2.jsxDEV("span", {
33463
+ /* @__PURE__ */ jsx_runtime2.jsxs("span", {
33458
33464
  className: "rule-name",
33459
33465
  children: [
33460
- /* @__PURE__ */ jsx_dev_runtime2.jsxDEV("span", {
33466
+ /* @__PURE__ */ jsx_runtime2.jsx("span", {
33461
33467
  className: "pfx",
33462
33468
  children: parts.prefix
33463
- }, undefined, false, undefined, this),
33469
+ }),
33464
33470
  parts.short
33465
33471
  ]
33466
- }, undefined, true, undefined, this),
33467
- meta && /* @__PURE__ */ jsx_dev_runtime2.jsxDEV("span", {
33472
+ }),
33473
+ meta && /* @__PURE__ */ jsx_runtime2.jsx("span", {
33468
33474
  className: "badge src",
33469
33475
  children: meta.source
33470
- }, undefined, false, undefined, this),
33471
- meta?.fixable && /* @__PURE__ */ jsx_dev_runtime2.jsxDEV("span", {
33476
+ }),
33477
+ meta?.fixable && /* @__PURE__ */ jsx_runtime2.jsx("span", {
33472
33478
  className: "badge fix",
33473
33479
  children: "fixable"
33474
- }, undefined, false, undefined, this),
33475
- meta?.deprecated && /* @__PURE__ */ jsx_dev_runtime2.jsxDEV("span", {
33480
+ }),
33481
+ meta?.deprecated && /* @__PURE__ */ jsx_runtime2.jsx("span", {
33476
33482
  className: "badge dep",
33477
33483
  children: "deprecated"
33478
- }, undefined, false, undefined, this),
33479
- meta?.docsUrl && /* @__PURE__ */ jsx_dev_runtime2.jsxDEV("a", {
33484
+ }),
33485
+ meta?.docsUrl && /* @__PURE__ */ jsx_runtime2.jsx("a", {
33480
33486
  className: "docs",
33481
33487
  href: meta.docsUrl,
33482
33488
  rel: "noreferrer",
33483
33489
  target: "_blank",
33484
33490
  children: "docs \u2197"
33485
- }, undefined, false, undefined, this)
33491
+ })
33486
33492
  ]
33487
- }, undefined, true, undefined, this);
33493
+ });
33488
33494
  };
33489
33495
  var ConfigRow = ({
33490
33496
  busy,
@@ -33501,39 +33507,39 @@ var ConfigRow = ({
33501
33507
  setDraft(options);
33502
33508
  setEditing(true);
33503
33509
  };
33504
- return /* @__PURE__ */ jsx_dev_runtime2.jsxDEV("div", {
33510
+ return /* @__PURE__ */ jsx_runtime2.jsxs("div", {
33505
33511
  className: "rule",
33506
33512
  children: [
33507
- /* @__PURE__ */ jsx_dev_runtime2.jsxDEV("div", {
33513
+ /* @__PURE__ */ jsx_runtime2.jsxs("div", {
33508
33514
  className: "rule-main",
33509
33515
  children: [
33510
- /* @__PURE__ */ jsx_dev_runtime2.jsxDEV(RuleName, {
33516
+ /* @__PURE__ */ jsx_runtime2.jsx(RuleName, {
33511
33517
  meta,
33512
33518
  name
33513
- }, undefined, false, undefined, this),
33514
- meta?.description && /* @__PURE__ */ jsx_dev_runtime2.jsxDEV("p", {
33519
+ }),
33520
+ meta?.description && /* @__PURE__ */ jsx_runtime2.jsx("p", {
33515
33521
  className: "rule-desc",
33516
33522
  children: meta.description
33517
- }, undefined, false, undefined, this),
33518
- options.length > 0 && !editing && /* @__PURE__ */ jsx_dev_runtime2.jsxDEV("code", {
33523
+ }),
33524
+ options.length > 0 && !editing && /* @__PURE__ */ jsx_runtime2.jsx("code", {
33519
33525
  className: "rule-opts",
33520
33526
  children: formatOptions(options)
33521
- }, undefined, false, undefined, this),
33522
- editing && /* @__PURE__ */ jsx_dev_runtime2.jsxDEV("div", {
33527
+ }),
33528
+ editing && /* @__PURE__ */ jsx_runtime2.jsxs("div", {
33523
33529
  className: "opts-editor",
33524
33530
  children: [
33525
- /* @__PURE__ */ jsx_dev_runtime2.jsxDEV("div", {
33531
+ /* @__PURE__ */ jsx_runtime2.jsx("div", {
33526
33532
  className: "fe-root",
33527
- children: /* @__PURE__ */ jsx_dev_runtime2.jsxDEV(FieldEditor, {
33533
+ children: /* @__PURE__ */ jsx_runtime2.jsx(FieldEditor, {
33528
33534
  onChange: (value) => setDraft(Array.isArray(value) ? value : []),
33529
33535
  schema: optionsSchema,
33530
33536
  value: draft
33531
- }, undefined, false, undefined, this)
33532
- }, undefined, false, undefined, this),
33533
- /* @__PURE__ */ jsx_dev_runtime2.jsxDEV("div", {
33537
+ })
33538
+ }),
33539
+ /* @__PURE__ */ jsx_runtime2.jsxs("div", {
33534
33540
  className: "opts-actions",
33535
33541
  children: [
33536
- /* @__PURE__ */ jsx_dev_runtime2.jsxDEV("button", {
33542
+ /* @__PURE__ */ jsx_runtime2.jsx("button", {
33537
33543
  className: "opts-btn save",
33538
33544
  onClick: () => {
33539
33545
  onSave(severity, draft);
@@ -33541,38 +33547,38 @@ var ConfigRow = ({
33541
33547
  },
33542
33548
  type: "button",
33543
33549
  children: "Save options"
33544
- }, undefined, false, undefined, this),
33545
- /* @__PURE__ */ jsx_dev_runtime2.jsxDEV("button", {
33550
+ }),
33551
+ /* @__PURE__ */ jsx_runtime2.jsx("button", {
33546
33552
  className: "opts-btn",
33547
33553
  onClick: () => setEditing(false),
33548
33554
  type: "button",
33549
33555
  children: "Cancel"
33550
- }, undefined, false, undefined, this)
33556
+ })
33551
33557
  ]
33552
- }, undefined, true, undefined, this)
33558
+ })
33553
33559
  ]
33554
- }, undefined, true, undefined, this)
33560
+ })
33555
33561
  ]
33556
- }, undefined, true, undefined, this),
33557
- /* @__PURE__ */ jsx_dev_runtime2.jsxDEV("div", {
33562
+ }),
33563
+ /* @__PURE__ */ jsx_runtime2.jsxs("div", {
33558
33564
  className: "rule-controls",
33559
33565
  children: [
33560
- /* @__PURE__ */ jsx_dev_runtime2.jsxDEV("button", {
33566
+ /* @__PURE__ */ jsx_runtime2.jsx("button", {
33561
33567
  className: "opts-toggle",
33562
33568
  "data-on": editing,
33563
33569
  onClick: () => editing ? setEditing(false) : openEditor(),
33564
33570
  type: "button",
33565
33571
  children: "options"
33566
- }, undefined, false, undefined, this),
33567
- /* @__PURE__ */ jsx_dev_runtime2.jsxDEV(SeveritySegment, {
33572
+ }),
33573
+ /* @__PURE__ */ jsx_runtime2.jsx(SeveritySegment, {
33568
33574
  busy,
33569
33575
  onChange: (next) => onSave(next),
33570
33576
  value: severity
33571
- }, undefined, false, undefined, this)
33577
+ })
33572
33578
  ]
33573
- }, undefined, true, undefined, this)
33579
+ })
33574
33580
  ]
33575
- }, undefined, true, undefined, this);
33581
+ });
33576
33582
  };
33577
33583
  var CatalogCard = ({
33578
33584
  busy,
@@ -33581,47 +33587,47 @@ var CatalogCard = ({
33581
33587
  meta,
33582
33588
  name,
33583
33589
  onChange
33584
- }) => /* @__PURE__ */ jsx_dev_runtime2.jsxDEV("div", {
33590
+ }) => /* @__PURE__ */ jsx_runtime2.jsxs("div", {
33585
33591
  className: "rule",
33586
33592
  children: [
33587
- /* @__PURE__ */ jsx_dev_runtime2.jsxDEV("div", {
33593
+ /* @__PURE__ */ jsx_runtime2.jsxs("div", {
33588
33594
  className: "rule-main",
33589
33595
  children: [
33590
- /* @__PURE__ */ jsx_dev_runtime2.jsxDEV(RuleName, {
33596
+ /* @__PURE__ */ jsx_runtime2.jsx(RuleName, {
33591
33597
  meta,
33592
33598
  name
33593
- }, undefined, false, undefined, this),
33594
- meta?.description && /* @__PURE__ */ jsx_dev_runtime2.jsxDEV("p", {
33599
+ }),
33600
+ meta?.description && /* @__PURE__ */ jsx_runtime2.jsx("p", {
33595
33601
  className: "rule-desc",
33596
33602
  children: meta.description
33597
- }, undefined, false, undefined, this)
33603
+ })
33598
33604
  ]
33599
- }, undefined, true, undefined, this),
33600
- /* @__PURE__ */ jsx_dev_runtime2.jsxDEV("div", {
33605
+ }),
33606
+ /* @__PURE__ */ jsx_runtime2.jsxs("div", {
33601
33607
  className: "cat-control",
33602
33608
  children: [
33603
- /* @__PURE__ */ jsx_dev_runtime2.jsxDEV("span", {
33609
+ /* @__PURE__ */ jsx_runtime2.jsx("span", {
33604
33610
  className: "effective",
33605
- children: configuredLabel ? /* @__PURE__ */ jsx_dev_runtime2.jsxDEV(jsx_dev_runtime2.Fragment, {
33611
+ children: configuredLabel ? /* @__PURE__ */ jsx_runtime2.jsxs(jsx_runtime2.Fragment, {
33606
33612
  children: [
33607
33613
  "in ",
33608
- /* @__PURE__ */ jsx_dev_runtime2.jsxDEV("b", {
33614
+ /* @__PURE__ */ jsx_runtime2.jsx("b", {
33609
33615
  children: configuredLabel
33610
- }, undefined, false, undefined, this)
33616
+ })
33611
33617
  ]
33612
- }, undefined, true, undefined, this) : /* @__PURE__ */ jsx_dev_runtime2.jsxDEV(jsx_dev_runtime2.Fragment, {
33618
+ }) : /* @__PURE__ */ jsx_runtime2.jsx(jsx_runtime2.Fragment, {
33613
33619
  children: "inherited"
33614
- }, undefined, false, undefined, this)
33615
- }, undefined, false, undefined, this),
33616
- /* @__PURE__ */ jsx_dev_runtime2.jsxDEV(SeveritySegment, {
33620
+ })
33621
+ }),
33622
+ /* @__PURE__ */ jsx_runtime2.jsx(SeveritySegment, {
33617
33623
  busy,
33618
33624
  onChange,
33619
33625
  value: effective
33620
- }, undefined, false, undefined, this)
33626
+ })
33621
33627
  ]
33622
- }, undefined, true, undefined, this)
33628
+ })
33623
33629
  ]
33624
- }, undefined, true, undefined, this);
33630
+ });
33625
33631
  var buildMetaIndex = (meta) => {
33626
33632
  const byName = new Map;
33627
33633
  for (const entry of meta)
@@ -33722,100 +33728,100 @@ var EslintPanel = ({ catalog: initialCatalog }) => {
33722
33728
  };
33723
33729
  const matchesSource = (ruleSource) => source === "all" || ruleSource === source;
33724
33730
  const visibleBlocks = catalog.blocks.filter((block) => block.rules.length > 0);
33725
- return /* @__PURE__ */ jsx_dev_runtime2.jsxDEV("div", {
33731
+ return /* @__PURE__ */ jsx_runtime2.jsxs("div", {
33726
33732
  className: "shell",
33727
33733
  children: [
33728
- /* @__PURE__ */ jsx_dev_runtime2.jsxDEV("header", {
33734
+ /* @__PURE__ */ jsx_runtime2.jsxs("header", {
33729
33735
  className: "topbar",
33730
33736
  children: [
33731
- /* @__PURE__ */ jsx_dev_runtime2.jsxDEV("div", {
33737
+ /* @__PURE__ */ jsx_runtime2.jsxs("div", {
33732
33738
  className: "brand",
33733
33739
  children: [
33734
- /* @__PURE__ */ jsx_dev_runtime2.jsxDEV("h1", {
33740
+ /* @__PURE__ */ jsx_runtime2.jsxs("h1", {
33735
33741
  className: "wordmark",
33736
33742
  children: [
33737
33743
  "ESLint ",
33738
- /* @__PURE__ */ jsx_dev_runtime2.jsxDEV("em", {
33744
+ /* @__PURE__ */ jsx_runtime2.jsx("em", {
33739
33745
  children: "rules"
33740
- }, undefined, false, undefined, this)
33746
+ })
33741
33747
  ]
33742
- }, undefined, true, undefined, this),
33743
- /* @__PURE__ */ jsx_dev_runtime2.jsxDEV("div", {
33748
+ }),
33749
+ /* @__PURE__ */ jsx_runtime2.jsxs("div", {
33744
33750
  className: "subpath",
33745
33751
  children: [
33746
- /* @__PURE__ */ jsx_dev_runtime2.jsxDEV("span", {
33752
+ /* @__PURE__ */ jsx_runtime2.jsx("span", {
33747
33753
  className: "dot"
33748
- }, undefined, false, undefined, this),
33754
+ }),
33749
33755
  catalog.configPath
33750
33756
  ]
33751
- }, undefined, true, undefined, this)
33757
+ })
33752
33758
  ]
33753
- }, undefined, true, undefined, this),
33754
- /* @__PURE__ */ jsx_dev_runtime2.jsxDEV("div", {
33759
+ }),
33760
+ /* @__PURE__ */ jsx_runtime2.jsxs("div", {
33755
33761
  className: "counts",
33756
33762
  children: [
33757
- /* @__PURE__ */ jsx_dev_runtime2.jsxDEV("div", {
33763
+ /* @__PURE__ */ jsx_runtime2.jsxs("div", {
33758
33764
  className: "count",
33759
33765
  children: [
33760
- /* @__PURE__ */ jsx_dev_runtime2.jsxDEV("b", {
33766
+ /* @__PURE__ */ jsx_runtime2.jsx("b", {
33761
33767
  children: configuredCount
33762
- }, undefined, false, undefined, this),
33763
- /* @__PURE__ */ jsx_dev_runtime2.jsxDEV("span", {
33768
+ }),
33769
+ /* @__PURE__ */ jsx_runtime2.jsx("span", {
33764
33770
  children: "configured"
33765
- }, undefined, false, undefined, this)
33771
+ })
33766
33772
  ]
33767
- }, undefined, true, undefined, this),
33768
- /* @__PURE__ */ jsx_dev_runtime2.jsxDEV("div", {
33773
+ }),
33774
+ /* @__PURE__ */ jsx_runtime2.jsxs("div", {
33769
33775
  className: "count",
33770
33776
  children: [
33771
- /* @__PURE__ */ jsx_dev_runtime2.jsxDEV("b", {
33777
+ /* @__PURE__ */ jsx_runtime2.jsx("b", {
33772
33778
  children: catalog.meta.length
33773
- }, undefined, false, undefined, this),
33774
- /* @__PURE__ */ jsx_dev_runtime2.jsxDEV("span", {
33779
+ }),
33780
+ /* @__PURE__ */ jsx_runtime2.jsx("span", {
33775
33781
  children: "available"
33776
- }, undefined, false, undefined, this)
33782
+ })
33777
33783
  ]
33778
- }, undefined, true, undefined, this)
33784
+ })
33779
33785
  ]
33780
- }, undefined, true, undefined, this)
33786
+ })
33781
33787
  ]
33782
- }, undefined, true, undefined, this),
33783
- /* @__PURE__ */ jsx_dev_runtime2.jsxDEV("div", {
33788
+ }),
33789
+ /* @__PURE__ */ jsx_runtime2.jsxs("div", {
33784
33790
  className: "controls",
33785
33791
  children: [
33786
- /* @__PURE__ */ jsx_dev_runtime2.jsxDEV("div", {
33792
+ /* @__PURE__ */ jsx_runtime2.jsxs("div", {
33787
33793
  className: "tabs",
33788
33794
  children: [
33789
- /* @__PURE__ */ jsx_dev_runtime2.jsxDEV("button", {
33795
+ /* @__PURE__ */ jsx_runtime2.jsx("button", {
33790
33796
  className: "tab",
33791
33797
  "data-active": tab === "config",
33792
33798
  onClick: () => setTab("config"),
33793
33799
  type: "button",
33794
33800
  children: "Your config"
33795
- }, undefined, false, undefined, this),
33796
- /* @__PURE__ */ jsx_dev_runtime2.jsxDEV("button", {
33801
+ }),
33802
+ /* @__PURE__ */ jsx_runtime2.jsx("button", {
33797
33803
  className: "tab",
33798
33804
  "data-active": tab === "catalog",
33799
33805
  onClick: () => setTab("catalog"),
33800
33806
  type: "button",
33801
33807
  children: "Browse all rules"
33802
- }, undefined, false, undefined, this),
33803
- /* @__PURE__ */ jsx_dev_runtime2.jsxDEV("button", {
33808
+ }),
33809
+ /* @__PURE__ */ jsx_runtime2.jsx("button", {
33804
33810
  className: "tab",
33805
33811
  "data-active": tab === "effective",
33806
33812
  onClick: () => setTab("effective"),
33807
33813
  type: "button",
33808
33814
  children: "Effective for file"
33809
- }, undefined, false, undefined, this)
33815
+ })
33810
33816
  ]
33811
- }, undefined, true, undefined, this),
33812
- /* @__PURE__ */ jsx_dev_runtime2.jsxDEV("input", {
33817
+ }),
33818
+ /* @__PURE__ */ jsx_runtime2.jsx("input", {
33813
33819
  className: "search",
33814
33820
  onChange: (event) => setQuery(event.target.value),
33815
33821
  placeholder: "Search rules or descriptions\u2026",
33816
33822
  value: query
33817
- }, undefined, false, undefined, this),
33818
- /* @__PURE__ */ jsx_dev_runtime2.jsxDEV("input", {
33823
+ }),
33824
+ /* @__PURE__ */ jsx_runtime2.jsx("input", {
33819
33825
  className: "scope",
33820
33826
  onChange: (event) => setScopeDraft(event.target.value),
33821
33827
  onKeyDown: (event) => {
@@ -33824,8 +33830,8 @@ var EslintPanel = ({ catalog: initialCatalog }) => {
33824
33830
  },
33825
33831
  placeholder: "Scope to a file, e.g. src/app.ts \u21B5",
33826
33832
  value: scopeDraft
33827
- }, undefined, false, undefined, this),
33828
- scopeFile !== "" && /* @__PURE__ */ jsx_dev_runtime2.jsxDEV("button", {
33833
+ }),
33834
+ scopeFile !== "" && /* @__PURE__ */ jsx_runtime2.jsx("button", {
33829
33835
  className: "scope-clear",
33830
33836
  onClick: () => {
33831
33837
  setScopeDraft("");
@@ -33833,71 +33839,71 @@ var EslintPanel = ({ catalog: initialCatalog }) => {
33833
33839
  },
33834
33840
  type: "button",
33835
33841
  children: "clear scope"
33836
- }, undefined, false, undefined, this)
33842
+ })
33837
33843
  ]
33838
- }, undefined, true, undefined, this),
33839
- /* @__PURE__ */ jsx_dev_runtime2.jsxDEV("div", {
33844
+ }),
33845
+ /* @__PURE__ */ jsx_runtime2.jsxs("div", {
33840
33846
  className: "layout",
33841
33847
  children: [
33842
- /* @__PURE__ */ jsx_dev_runtime2.jsxDEV("nav", {
33848
+ /* @__PURE__ */ jsx_runtime2.jsxs("nav", {
33843
33849
  className: "rail",
33844
33850
  children: [
33845
- /* @__PURE__ */ jsx_dev_runtime2.jsxDEV("div", {
33851
+ /* @__PURE__ */ jsx_runtime2.jsx("div", {
33846
33852
  className: "rail-label",
33847
33853
  children: "Source"
33848
- }, undefined, false, undefined, this),
33849
- /* @__PURE__ */ jsx_dev_runtime2.jsxDEV("button", {
33854
+ }),
33855
+ /* @__PURE__ */ jsx_runtime2.jsxs("button", {
33850
33856
  className: "source-btn",
33851
33857
  "data-active": source === "all",
33852
33858
  onClick: () => setSource("all"),
33853
33859
  type: "button",
33854
33860
  children: [
33855
- /* @__PURE__ */ jsx_dev_runtime2.jsxDEV("span", {
33861
+ /* @__PURE__ */ jsx_runtime2.jsx("span", {
33856
33862
  children: "all"
33857
- }, undefined, false, undefined, this),
33858
- /* @__PURE__ */ jsx_dev_runtime2.jsxDEV("span", {
33863
+ }),
33864
+ /* @__PURE__ */ jsx_runtime2.jsx("span", {
33859
33865
  className: "n",
33860
33866
  children: catalog.meta.length
33861
- }, undefined, false, undefined, this)
33867
+ })
33862
33868
  ]
33863
- }, undefined, true, undefined, this),
33864
- sources.map(([name, count]) => /* @__PURE__ */ jsx_dev_runtime2.jsxDEV("button", {
33869
+ }),
33870
+ sources.map(([name, count]) => /* @__PURE__ */ jsx_runtime2.jsxs("button", {
33865
33871
  className: "source-btn",
33866
33872
  "data-active": source === name,
33867
33873
  onClick: () => setSource(name),
33868
33874
  type: "button",
33869
33875
  children: [
33870
- /* @__PURE__ */ jsx_dev_runtime2.jsxDEV("span", {
33876
+ /* @__PURE__ */ jsx_runtime2.jsx("span", {
33871
33877
  children: name
33872
- }, undefined, false, undefined, this),
33873
- /* @__PURE__ */ jsx_dev_runtime2.jsxDEV("span", {
33878
+ }),
33879
+ /* @__PURE__ */ jsx_runtime2.jsx("span", {
33874
33880
  className: "n",
33875
33881
  children: count
33876
- }, undefined, false, undefined, this)
33882
+ })
33877
33883
  ]
33878
- }, name, true, undefined, this))
33884
+ }, name))
33879
33885
  ]
33880
- }, undefined, true, undefined, this),
33881
- /* @__PURE__ */ jsx_dev_runtime2.jsxDEV("main", {
33886
+ }),
33887
+ /* @__PURE__ */ jsx_runtime2.jsxs("main", {
33882
33888
  children: [
33883
33889
  tab === "config" && renderConfig(visibleBlocks, metaByName, busyRule, matchesSource, query, save),
33884
33890
  tab === "catalog" && renderCatalog(catalog.meta, configuredByName, effectiveByName, defaultBlock, busyRule, matchesSource, query, save),
33885
33891
  tab === "effective" && renderEffective(catalog.effective, catalog.representativeFile, metaByName, configuredByName, defaultBlock, busyRule, matchesSource, query, save)
33886
33892
  ]
33887
- }, undefined, true, undefined, this)
33893
+ })
33888
33894
  ]
33889
- }, undefined, true, undefined, this),
33890
- notice && /* @__PURE__ */ jsx_dev_runtime2.jsxDEV("div", {
33895
+ }),
33896
+ notice && /* @__PURE__ */ jsx_runtime2.jsxs("div", {
33891
33897
  className: `toast ${notice.kind}`,
33892
33898
  children: [
33893
- /* @__PURE__ */ jsx_dev_runtime2.jsxDEV("b", {
33899
+ /* @__PURE__ */ jsx_runtime2.jsx("b", {
33894
33900
  children: notice.kind === "ok" ? "\u2713" : "\u2715"
33895
- }, undefined, false, undefined, this),
33901
+ }),
33896
33902
  notice.text
33897
33903
  ]
33898
- }, undefined, true, undefined, this)
33904
+ })
33899
33905
  ]
33900
- }, undefined, true, undefined, this);
33906
+ });
33901
33907
  };
33902
33908
  var renderConfig = (blocks, metaByName, busyRule, matchesSource, query, save) => {
33903
33909
  const sections = blocks.map((block) => {
@@ -33909,22 +33915,22 @@ var renderConfig = (blocks, metaByName, busyRule, matchesSource, query, save) =>
33909
33915
  return { block, rules };
33910
33916
  }).filter((section) => section.rules.length > 0);
33911
33917
  if (sections.length === 0) {
33912
- return /* @__PURE__ */ jsx_dev_runtime2.jsxDEV("div", {
33918
+ return /* @__PURE__ */ jsx_runtime2.jsx("div", {
33913
33919
  className: "empty",
33914
33920
  children: "No configured rules match this filter."
33915
- }, undefined, false, undefined, this);
33921
+ });
33916
33922
  }
33917
- return sections.map(({ block, rules }) => /* @__PURE__ */ jsx_dev_runtime2.jsxDEV("section", {
33923
+ return sections.map(({ block, rules }) => /* @__PURE__ */ jsx_runtime2.jsxs("section", {
33918
33924
  className: "section",
33919
33925
  children: [
33920
- /* @__PURE__ */ jsx_dev_runtime2.jsxDEV("div", {
33926
+ /* @__PURE__ */ jsx_runtime2.jsxs("div", {
33921
33927
  className: "section-head",
33922
33928
  children: [
33923
- /* @__PURE__ */ jsx_dev_runtime2.jsxDEV("h2", {
33929
+ /* @__PURE__ */ jsx_runtime2.jsx("h2", {
33924
33930
  className: "section-title",
33925
33931
  children: block.label
33926
- }, undefined, false, undefined, this),
33927
- /* @__PURE__ */ jsx_dev_runtime2.jsxDEV("span", {
33932
+ }),
33933
+ /* @__PURE__ */ jsx_runtime2.jsxs("span", {
33928
33934
  className: "section-files",
33929
33935
  children: [
33930
33936
  "block #",
@@ -33933,10 +33939,10 @@ var renderConfig = (blocks, metaByName, busyRule, matchesSource, query, save) =>
33933
33939
  rules.length,
33934
33940
  " rules"
33935
33941
  ]
33936
- }, undefined, true, undefined, this)
33942
+ })
33937
33943
  ]
33938
- }, undefined, true, undefined, this),
33939
- rules.map((rule) => /* @__PURE__ */ jsx_dev_runtime2.jsxDEV(ConfigRow, {
33944
+ }),
33945
+ rules.map((rule) => /* @__PURE__ */ jsx_runtime2.jsx(ConfigRow, {
33940
33946
  busy: busyRule === rule.name,
33941
33947
  meta: metaByName.get(rule.name) ?? null,
33942
33948
  name: rule.name,
@@ -33948,27 +33954,27 @@ var renderConfig = (blocks, metaByName, busyRule, matchesSource, query, save) =>
33948
33954
  }),
33949
33955
  options: rule.options,
33950
33956
  severity: rule.severity
33951
- }, `${block.sourceIndex}:${rule.name}`, false, undefined, this))
33957
+ }, `${block.sourceIndex}:${rule.name}`))
33952
33958
  ]
33953
- }, block.sourceIndex, true, undefined, this));
33959
+ }, block.sourceIndex));
33954
33960
  };
33955
33961
  var renderCatalog = (meta, configuredByName, effectiveByName, defaultBlock, busyRule, matchesSource, query, save) => {
33956
33962
  const matches = meta.filter((entry) => matchesSource(entry.source) && matchesQuery(query, entry.name, entry.description));
33957
33963
  if (matches.length === 0) {
33958
- return /* @__PURE__ */ jsx_dev_runtime2.jsxDEV("div", {
33964
+ return /* @__PURE__ */ jsx_runtime2.jsx("div", {
33959
33965
  className: "empty",
33960
33966
  children: "No rules match this filter."
33961
- }, undefined, false, undefined, this);
33967
+ });
33962
33968
  }
33963
33969
  const shown = matches.slice(0, CATALOG_RENDER_CAP);
33964
- return /* @__PURE__ */ jsx_dev_runtime2.jsxDEV("section", {
33970
+ return /* @__PURE__ */ jsx_runtime2.jsxs("section", {
33965
33971
  className: "section",
33966
33972
  children: [
33967
33973
  shown.map((entry) => {
33968
33974
  const configured = configuredByName.get(entry.name) ?? null;
33969
33975
  const effective = configured === null ? effectiveByName.get(entry.name) ?? "off" : effectiveSeverity(entry.name, effectiveByName);
33970
33976
  const target = configured?.sourceIndex ?? defaultBlock;
33971
- return /* @__PURE__ */ jsx_dev_runtime2.jsxDEV(CatalogCard, {
33977
+ return /* @__PURE__ */ jsx_runtime2.jsx(CatalogCard, {
33972
33978
  busy: busyRule === entry.name,
33973
33979
  configuredLabel: configured?.label ?? null,
33974
33980
  effective,
@@ -33979,18 +33985,18 @@ var renderCatalog = (meta, configuredByName, effectiveByName, defaultBlock, busy
33979
33985
  severity,
33980
33986
  sourceIndex: target
33981
33987
  })
33982
- }, entry.name, false, undefined, this);
33988
+ }, entry.name);
33983
33989
  }),
33984
- matches.length > shown.length && /* @__PURE__ */ jsx_dev_runtime2.jsxDEV("div", {
33990
+ matches.length > shown.length && /* @__PURE__ */ jsx_runtime2.jsxs("div", {
33985
33991
  className: "more",
33986
33992
  children: [
33987
33993
  "+",
33988
33994
  matches.length - shown.length,
33989
33995
  " more \u2014 refine your search to see them"
33990
33996
  ]
33991
- }, undefined, true, undefined, this)
33997
+ })
33992
33998
  ]
33993
- }, undefined, true, undefined, this);
33999
+ });
33994
34000
  };
33995
34001
  var renderEffective = (effective, representativeFile, metaByName, configuredByName, defaultBlock, busyRule, matchesSource, query, save) => {
33996
34002
  const rows = effective.filter((rule) => {
@@ -33999,23 +34005,23 @@ var renderEffective = (effective, representativeFile, metaByName, configuredByNa
33999
34005
  return matchesSource(ruleSource) && matchesQuery(query, rule.name, meta?.description ?? null);
34000
34006
  });
34001
34007
  if (rows.length === 0) {
34002
- return /* @__PURE__ */ jsx_dev_runtime2.jsxDEV("div", {
34008
+ return /* @__PURE__ */ jsx_runtime2.jsx("div", {
34003
34009
  className: "empty",
34004
34010
  children: "No effective rules for this file match the filter."
34005
- }, undefined, false, undefined, this);
34011
+ });
34006
34012
  }
34007
34013
  const shown = rows.slice(0, CATALOG_RENDER_CAP);
34008
- return /* @__PURE__ */ jsx_dev_runtime2.jsxDEV("section", {
34014
+ return /* @__PURE__ */ jsx_runtime2.jsxs("section", {
34009
34015
  className: "section",
34010
34016
  children: [
34011
- /* @__PURE__ */ jsx_dev_runtime2.jsxDEV("div", {
34017
+ /* @__PURE__ */ jsx_runtime2.jsxs("div", {
34012
34018
  className: "section-head",
34013
34019
  children: [
34014
- /* @__PURE__ */ jsx_dev_runtime2.jsxDEV("h2", {
34020
+ /* @__PURE__ */ jsx_runtime2.jsx("h2", {
34015
34021
  className: "section-title",
34016
34022
  children: "Effective ruleset"
34017
- }, undefined, false, undefined, this),
34018
- /* @__PURE__ */ jsx_dev_runtime2.jsxDEV("span", {
34023
+ }),
34024
+ /* @__PURE__ */ jsx_runtime2.jsxs("span", {
34019
34025
  className: "section-files",
34020
34026
  children: [
34021
34027
  representativeFile,
@@ -34023,13 +34029,13 @@ var renderEffective = (effective, representativeFile, metaByName, configuredByNa
34023
34029
  rows.length,
34024
34030
  " rules in effect"
34025
34031
  ]
34026
- }, undefined, true, undefined, this)
34032
+ })
34027
34033
  ]
34028
- }, undefined, true, undefined, this),
34034
+ }),
34029
34035
  shown.map((rule) => {
34030
34036
  const configured = configuredByName.get(rule.name) ?? null;
34031
34037
  const target = configured?.sourceIndex ?? defaultBlock;
34032
- return /* @__PURE__ */ jsx_dev_runtime2.jsxDEV(CatalogCard, {
34038
+ return /* @__PURE__ */ jsx_runtime2.jsx(CatalogCard, {
34033
34039
  busy: busyRule === rule.name,
34034
34040
  configuredLabel: configured?.label ?? null,
34035
34041
  effective: rule.severity,
@@ -34040,24 +34046,24 @@ var renderEffective = (effective, representativeFile, metaByName, configuredByNa
34040
34046
  severity,
34041
34047
  sourceIndex: target
34042
34048
  })
34043
- }, rule.name, false, undefined, this);
34049
+ }, rule.name);
34044
34050
  }),
34045
- rows.length > shown.length && /* @__PURE__ */ jsx_dev_runtime2.jsxDEV("div", {
34051
+ rows.length > shown.length && /* @__PURE__ */ jsx_runtime2.jsxs("div", {
34046
34052
  className: "more",
34047
34053
  children: [
34048
34054
  "+",
34049
34055
  rows.length - shown.length,
34050
34056
  " more \u2014 refine your search to see them"
34051
34057
  ]
34052
- }, undefined, true, undefined, this)
34058
+ })
34053
34059
  ]
34054
- }, undefined, true, undefined, this);
34060
+ });
34055
34061
  };
34056
34062
  var effectiveSeverity = (name, effectiveByName) => effectiveByName.get(name) ?? "off";
34057
34063
 
34058
34064
  // src/cli/config/tsconfig/TsconfigPanel.tsx
34059
34065
  var import_react3 = __toESM(require_react(), 1);
34060
- var jsx_dev_runtime3 = __toESM(require_jsx_dev_runtime(), 1);
34066
+ var jsx_runtime3 = __toESM(require_jsx_runtime(), 1);
34061
34067
  var matchesQuery2 = (query, name, description) => {
34062
34068
  if (query === "")
34063
34069
  return true;
@@ -34083,49 +34089,49 @@ var BooleanControl = ({
34083
34089
  isSet,
34084
34090
  onSave,
34085
34091
  value
34086
- }) => /* @__PURE__ */ jsx_dev_runtime3.jsxDEV("div", {
34092
+ }) => /* @__PURE__ */ jsx_runtime3.jsxs("div", {
34087
34093
  className: "ts-control",
34088
34094
  children: [
34089
- /* @__PURE__ */ jsx_dev_runtime3.jsxDEV("div", {
34095
+ /* @__PURE__ */ jsx_runtime3.jsxs("div", {
34090
34096
  className: busy ? "seg busy" : "seg",
34091
34097
  children: [
34092
- /* @__PURE__ */ jsx_dev_runtime3.jsxDEV("button", {
34098
+ /* @__PURE__ */ jsx_runtime3.jsx("button", {
34093
34099
  "data-on": value === false,
34094
34100
  onClick: () => onSave(false),
34095
34101
  type: "button",
34096
34102
  children: "false"
34097
- }, undefined, false, undefined, this),
34098
- /* @__PURE__ */ jsx_dev_runtime3.jsxDEV("button", {
34103
+ }),
34104
+ /* @__PURE__ */ jsx_runtime3.jsx("button", {
34099
34105
  "data-on": value === true,
34100
34106
  onClick: () => onSave(true),
34101
34107
  type: "button",
34102
34108
  children: "true"
34103
- }, undefined, false, undefined, this)
34109
+ })
34104
34110
  ]
34105
- }, undefined, true, undefined, this),
34106
- isSet && /* @__PURE__ */ jsx_dev_runtime3.jsxDEV("button", {
34111
+ }),
34112
+ isSet && /* @__PURE__ */ jsx_runtime3.jsx("button", {
34107
34113
  className: "ts-clear",
34108
34114
  onClick: () => onSave(undefined, true),
34109
34115
  type: "button",
34110
34116
  children: "unset"
34111
- }, undefined, false, undefined, this)
34117
+ })
34112
34118
  ]
34113
- }, undefined, true, undefined, this);
34114
- var EnumControl = ({ isSet, onSave, option, value }) => /* @__PURE__ */ jsx_dev_runtime3.jsxDEV("select", {
34119
+ });
34120
+ var EnumControl = ({ isSet, onSave, option, value }) => /* @__PURE__ */ jsx_runtime3.jsxs("select", {
34115
34121
  className: "ts-select",
34116
34122
  onChange: (event) => event.target.value === "" ? onSave(undefined, true) : onSave(event.target.value),
34117
34123
  value: isSet ? String(value) : "",
34118
34124
  children: [
34119
- /* @__PURE__ */ jsx_dev_runtime3.jsxDEV("option", {
34125
+ /* @__PURE__ */ jsx_runtime3.jsx("option", {
34120
34126
  value: "",
34121
34127
  children: "\u2014 unset \u2014"
34122
- }, undefined, false, undefined, this),
34123
- option.enumValues.map((choice) => /* @__PURE__ */ jsx_dev_runtime3.jsxDEV("option", {
34128
+ }),
34129
+ option.enumValues.map((choice) => /* @__PURE__ */ jsx_runtime3.jsx("option", {
34124
34130
  value: choice,
34125
34131
  children: choice
34126
- }, choice, false, undefined, this))
34132
+ }, choice))
34127
34133
  ]
34128
- }, undefined, true, undefined, this);
34134
+ });
34129
34135
  var TextControl = ({ kind, onSave, value }) => {
34130
34136
  const [draft, setDraft] = import_react3.useState(seedText(kind, value));
34131
34137
  const [error, setError] = import_react3.useState(null);
@@ -34163,12 +34169,12 @@ var TextControl = ({ kind, onSave, value }) => {
34163
34169
  onSave(text);
34164
34170
  setError(null);
34165
34171
  };
34166
- return /* @__PURE__ */ jsx_dev_runtime3.jsxDEV("div", {
34172
+ return /* @__PURE__ */ jsx_runtime3.jsxs("div", {
34167
34173
  children: [
34168
- /* @__PURE__ */ jsx_dev_runtime3.jsxDEV("div", {
34174
+ /* @__PURE__ */ jsx_runtime3.jsxs("div", {
34169
34175
  className: "ts-control",
34170
34176
  children: [
34171
- /* @__PURE__ */ jsx_dev_runtime3.jsxDEV("input", {
34177
+ /* @__PURE__ */ jsx_runtime3.jsx("input", {
34172
34178
  className: error ? "ts-input err" : "ts-input",
34173
34179
  onChange: (event) => setDraft(event.target.value),
34174
34180
  onKeyDown: (event) => {
@@ -34178,21 +34184,21 @@ var TextControl = ({ kind, onSave, value }) => {
34178
34184
  placeholder: placeholderFor(kind),
34179
34185
  spellCheck: false,
34180
34186
  value: draft
34181
- }, undefined, false, undefined, this),
34182
- /* @__PURE__ */ jsx_dev_runtime3.jsxDEV("button", {
34187
+ }),
34188
+ /* @__PURE__ */ jsx_runtime3.jsx("button", {
34183
34189
  className: "ts-btn",
34184
34190
  onClick: commit,
34185
34191
  type: "button",
34186
34192
  children: "save"
34187
- }, undefined, false, undefined, this)
34193
+ })
34188
34194
  ]
34189
- }, undefined, true, undefined, this),
34190
- error && /* @__PURE__ */ jsx_dev_runtime3.jsxDEV("div", {
34195
+ }),
34196
+ error && /* @__PURE__ */ jsx_runtime3.jsx("div", {
34191
34197
  className: "ts-err",
34192
34198
  children: error
34193
- }, undefined, false, undefined, this)
34199
+ })
34194
34200
  ]
34195
- }, undefined, true, undefined, this);
34201
+ });
34196
34202
  };
34197
34203
  var ListControl = ({ onSave, option, value }) => {
34198
34204
  const [draft, setDraft] = import_react3.useState(Array.isArray(value) ? value : []);
@@ -34200,103 +34206,103 @@ var ListControl = ({ onSave, option, value }) => {
34200
34206
  item: option.enumValues.length > 0 ? { choices: option.enumValues, kind: "enum" } : { kind: "string" },
34201
34207
  kind: "array"
34202
34208
  };
34203
- return /* @__PURE__ */ jsx_dev_runtime3.jsxDEV("div", {
34209
+ return /* @__PURE__ */ jsx_runtime3.jsxs("div", {
34204
34210
  className: "ts-control",
34205
34211
  children: [
34206
- /* @__PURE__ */ jsx_dev_runtime3.jsxDEV("div", {
34212
+ /* @__PURE__ */ jsx_runtime3.jsx("div", {
34207
34213
  className: "fe-root",
34208
- children: /* @__PURE__ */ jsx_dev_runtime3.jsxDEV(FieldEditor, {
34214
+ children: /* @__PURE__ */ jsx_runtime3.jsx(FieldEditor, {
34209
34215
  onChange: setDraft,
34210
34216
  schema,
34211
34217
  value: draft
34212
- }, undefined, false, undefined, this)
34213
- }, undefined, false, undefined, this),
34214
- /* @__PURE__ */ jsx_dev_runtime3.jsxDEV("button", {
34218
+ })
34219
+ }),
34220
+ /* @__PURE__ */ jsx_runtime3.jsx("button", {
34215
34221
  className: "ts-btn",
34216
34222
  onClick: () => onSave(draft),
34217
34223
  type: "button",
34218
34224
  children: "save"
34219
- }, undefined, false, undefined, this)
34225
+ })
34220
34226
  ]
34221
- }, undefined, true, undefined, this);
34227
+ });
34222
34228
  };
34223
34229
  var Control = ({ busy, isSet, onSave, option, value }) => {
34224
34230
  if (option.kind === "boolean") {
34225
- return /* @__PURE__ */ jsx_dev_runtime3.jsxDEV(BooleanControl, {
34231
+ return /* @__PURE__ */ jsx_runtime3.jsx(BooleanControl, {
34226
34232
  busy,
34227
34233
  isSet,
34228
34234
  onSave,
34229
34235
  value
34230
- }, undefined, false, undefined, this);
34236
+ });
34231
34237
  }
34232
34238
  if (option.kind === "enum") {
34233
- return /* @__PURE__ */ jsx_dev_runtime3.jsxDEV(EnumControl, {
34239
+ return /* @__PURE__ */ jsx_runtime3.jsx(EnumControl, {
34234
34240
  isSet,
34235
34241
  onSave,
34236
34242
  option,
34237
34243
  value
34238
- }, undefined, false, undefined, this);
34244
+ });
34239
34245
  }
34240
34246
  if (option.kind === "list") {
34241
- return /* @__PURE__ */ jsx_dev_runtime3.jsxDEV(ListControl, {
34247
+ return /* @__PURE__ */ jsx_runtime3.jsx(ListControl, {
34242
34248
  onSave,
34243
34249
  option,
34244
34250
  value
34245
- }, undefined, false, undefined, this);
34251
+ });
34246
34252
  }
34247
- return /* @__PURE__ */ jsx_dev_runtime3.jsxDEV(TextControl, {
34253
+ return /* @__PURE__ */ jsx_runtime3.jsx(TextControl, {
34248
34254
  kind: option.kind,
34249
34255
  onSave,
34250
34256
  value
34251
- }, undefined, false, undefined, this);
34257
+ });
34252
34258
  };
34253
34259
  var OptionRow = ({ busy, current, onSave, option }) => {
34254
34260
  const isSet = Object.prototype.hasOwnProperty.call(current, option.name);
34255
34261
  const value = current[option.name];
34256
- return /* @__PURE__ */ jsx_dev_runtime3.jsxDEV("div", {
34262
+ return /* @__PURE__ */ jsx_runtime3.jsxs("div", {
34257
34263
  className: "rule",
34258
34264
  children: [
34259
- /* @__PURE__ */ jsx_dev_runtime3.jsxDEV("div", {
34265
+ /* @__PURE__ */ jsx_runtime3.jsxs("div", {
34260
34266
  className: "rule-main",
34261
34267
  children: [
34262
- /* @__PURE__ */ jsx_dev_runtime3.jsxDEV("div", {
34268
+ /* @__PURE__ */ jsx_runtime3.jsxs("div", {
34263
34269
  className: "rule-name-row",
34264
34270
  children: [
34265
- /* @__PURE__ */ jsx_dev_runtime3.jsxDEV("span", {
34271
+ /* @__PURE__ */ jsx_runtime3.jsx("span", {
34266
34272
  className: "rule-name",
34267
34273
  children: option.name
34268
- }, undefined, false, undefined, this),
34269
- isSet && /* @__PURE__ */ jsx_dev_runtime3.jsxDEV("span", {
34274
+ }),
34275
+ isSet && /* @__PURE__ */ jsx_runtime3.jsx("span", {
34270
34276
  className: "badge src",
34271
34277
  children: "set"
34272
- }, undefined, false, undefined, this),
34273
- option.defaultLabel !== "" && /* @__PURE__ */ jsx_dev_runtime3.jsxDEV("span", {
34278
+ }),
34279
+ option.defaultLabel !== "" && /* @__PURE__ */ jsx_runtime3.jsxs("span", {
34274
34280
  className: "ts-default",
34275
34281
  children: [
34276
34282
  "default: ",
34277
34283
  option.defaultLabel
34278
34284
  ]
34279
- }, undefined, true, undefined, this)
34285
+ })
34280
34286
  ]
34281
- }, undefined, true, undefined, this),
34282
- option.description !== "" && /* @__PURE__ */ jsx_dev_runtime3.jsxDEV("p", {
34287
+ }),
34288
+ option.description !== "" && /* @__PURE__ */ jsx_runtime3.jsx("p", {
34283
34289
  className: "rule-desc",
34284
34290
  children: option.description
34285
- }, undefined, false, undefined, this)
34291
+ })
34286
34292
  ]
34287
- }, undefined, true, undefined, this),
34288
- /* @__PURE__ */ jsx_dev_runtime3.jsxDEV("div", {
34293
+ }),
34294
+ /* @__PURE__ */ jsx_runtime3.jsx("div", {
34289
34295
  className: "rule-controls",
34290
- children: /* @__PURE__ */ jsx_dev_runtime3.jsxDEV(Control, {
34296
+ children: /* @__PURE__ */ jsx_runtime3.jsx(Control, {
34291
34297
  busy,
34292
34298
  isSet,
34293
34299
  onSave,
34294
34300
  option,
34295
34301
  value
34296
- }, undefined, false, undefined, this)
34297
- }, undefined, false, undefined, this)
34302
+ })
34303
+ })
34298
34304
  ]
34299
- }, undefined, true, undefined, this);
34305
+ });
34300
34306
  };
34301
34307
  var TsconfigPanel = ({ state: initial }) => {
34302
34308
  const [state, setState] = import_react3.useState(initial);
@@ -34340,165 +34346,165 @@ var TsconfigPanel = ({ state: initial }) => {
34340
34346
  setBusy(null);
34341
34347
  }
34342
34348
  };
34343
- return /* @__PURE__ */ jsx_dev_runtime3.jsxDEV("div", {
34349
+ return /* @__PURE__ */ jsx_runtime3.jsxs("div", {
34344
34350
  className: "shell",
34345
34351
  children: [
34346
- /* @__PURE__ */ jsx_dev_runtime3.jsxDEV("header", {
34352
+ /* @__PURE__ */ jsx_runtime3.jsxs("header", {
34347
34353
  className: "topbar",
34348
34354
  children: [
34349
- /* @__PURE__ */ jsx_dev_runtime3.jsxDEV("div", {
34355
+ /* @__PURE__ */ jsx_runtime3.jsxs("div", {
34350
34356
  className: "brand",
34351
34357
  children: [
34352
- /* @__PURE__ */ jsx_dev_runtime3.jsxDEV("h1", {
34358
+ /* @__PURE__ */ jsx_runtime3.jsxs("h1", {
34353
34359
  className: "wordmark",
34354
34360
  children: [
34355
34361
  "tsconfig ",
34356
- /* @__PURE__ */ jsx_dev_runtime3.jsxDEV("em", {
34362
+ /* @__PURE__ */ jsx_runtime3.jsx("em", {
34357
34363
  children: "options"
34358
- }, undefined, false, undefined, this)
34364
+ })
34359
34365
  ]
34360
- }, undefined, true, undefined, this),
34361
- /* @__PURE__ */ jsx_dev_runtime3.jsxDEV("div", {
34366
+ }),
34367
+ /* @__PURE__ */ jsx_runtime3.jsxs("div", {
34362
34368
  className: "subpath",
34363
34369
  children: [
34364
- /* @__PURE__ */ jsx_dev_runtime3.jsxDEV("span", {
34370
+ /* @__PURE__ */ jsx_runtime3.jsx("span", {
34365
34371
  className: "dot"
34366
- }, undefined, false, undefined, this),
34372
+ }),
34367
34373
  state.configPath
34368
34374
  ]
34369
- }, undefined, true, undefined, this)
34375
+ })
34370
34376
  ]
34371
- }, undefined, true, undefined, this),
34372
- /* @__PURE__ */ jsx_dev_runtime3.jsxDEV("div", {
34377
+ }),
34378
+ /* @__PURE__ */ jsx_runtime3.jsxs("div", {
34373
34379
  className: "counts",
34374
34380
  children: [
34375
- /* @__PURE__ */ jsx_dev_runtime3.jsxDEV("div", {
34381
+ /* @__PURE__ */ jsx_runtime3.jsxs("div", {
34376
34382
  className: "count",
34377
34383
  children: [
34378
- /* @__PURE__ */ jsx_dev_runtime3.jsxDEV("b", {
34384
+ /* @__PURE__ */ jsx_runtime3.jsx("b", {
34379
34385
  children: Object.keys(state.current).length
34380
- }, undefined, false, undefined, this),
34381
- /* @__PURE__ */ jsx_dev_runtime3.jsxDEV("span", {
34386
+ }),
34387
+ /* @__PURE__ */ jsx_runtime3.jsx("span", {
34382
34388
  children: "set"
34383
- }, undefined, false, undefined, this)
34389
+ })
34384
34390
  ]
34385
- }, undefined, true, undefined, this),
34386
- /* @__PURE__ */ jsx_dev_runtime3.jsxDEV("div", {
34391
+ }),
34392
+ /* @__PURE__ */ jsx_runtime3.jsxs("div", {
34387
34393
  className: "count",
34388
34394
  children: [
34389
- /* @__PURE__ */ jsx_dev_runtime3.jsxDEV("b", {
34395
+ /* @__PURE__ */ jsx_runtime3.jsx("b", {
34390
34396
  children: state.options.length
34391
- }, undefined, false, undefined, this),
34392
- /* @__PURE__ */ jsx_dev_runtime3.jsxDEV("span", {
34397
+ }),
34398
+ /* @__PURE__ */ jsx_runtime3.jsx("span", {
34393
34399
  children: "available"
34394
- }, undefined, false, undefined, this)
34400
+ })
34395
34401
  ]
34396
- }, undefined, true, undefined, this)
34402
+ })
34397
34403
  ]
34398
- }, undefined, true, undefined, this)
34404
+ })
34399
34405
  ]
34400
- }, undefined, true, undefined, this),
34401
- /* @__PURE__ */ jsx_dev_runtime3.jsxDEV("div", {
34406
+ }),
34407
+ /* @__PURE__ */ jsx_runtime3.jsx("div", {
34402
34408
  className: "controls",
34403
- children: /* @__PURE__ */ jsx_dev_runtime3.jsxDEV("input", {
34409
+ children: /* @__PURE__ */ jsx_runtime3.jsx("input", {
34404
34410
  className: "search",
34405
34411
  onChange: (event) => setQuery(event.target.value),
34406
34412
  placeholder: "Search options or descriptions\u2026",
34407
34413
  value: query
34408
- }, undefined, false, undefined, this)
34409
- }, undefined, false, undefined, this),
34410
- /* @__PURE__ */ jsx_dev_runtime3.jsxDEV("div", {
34414
+ })
34415
+ }),
34416
+ /* @__PURE__ */ jsx_runtime3.jsxs("div", {
34411
34417
  className: "layout",
34412
34418
  children: [
34413
- /* @__PURE__ */ jsx_dev_runtime3.jsxDEV("nav", {
34419
+ /* @__PURE__ */ jsx_runtime3.jsxs("nav", {
34414
34420
  className: "rail",
34415
34421
  children: [
34416
- /* @__PURE__ */ jsx_dev_runtime3.jsxDEV("div", {
34422
+ /* @__PURE__ */ jsx_runtime3.jsx("div", {
34417
34423
  className: "rail-label",
34418
34424
  children: "Category"
34419
- }, undefined, false, undefined, this),
34420
- /* @__PURE__ */ jsx_dev_runtime3.jsxDEV("button", {
34425
+ }),
34426
+ /* @__PURE__ */ jsx_runtime3.jsxs("button", {
34421
34427
  className: "source-btn",
34422
34428
  "data-active": category === "all",
34423
34429
  onClick: () => setCategory("all"),
34424
34430
  type: "button",
34425
34431
  children: [
34426
- /* @__PURE__ */ jsx_dev_runtime3.jsxDEV("span", {
34432
+ /* @__PURE__ */ jsx_runtime3.jsx("span", {
34427
34433
  children: "all"
34428
- }, undefined, false, undefined, this),
34429
- /* @__PURE__ */ jsx_dev_runtime3.jsxDEV("span", {
34434
+ }),
34435
+ /* @__PURE__ */ jsx_runtime3.jsx("span", {
34430
34436
  className: "n",
34431
34437
  children: state.options.length
34432
- }, undefined, false, undefined, this)
34438
+ })
34433
34439
  ]
34434
- }, undefined, true, undefined, this),
34435
- state.categories.map((entry) => /* @__PURE__ */ jsx_dev_runtime3.jsxDEV("button", {
34440
+ }),
34441
+ state.categories.map((entry) => /* @__PURE__ */ jsx_runtime3.jsxs("button", {
34436
34442
  className: "source-btn",
34437
34443
  "data-active": category === entry,
34438
34444
  onClick: () => setCategory(entry),
34439
34445
  type: "button",
34440
34446
  children: [
34441
- /* @__PURE__ */ jsx_dev_runtime3.jsxDEV("span", {
34447
+ /* @__PURE__ */ jsx_runtime3.jsx("span", {
34442
34448
  children: entry
34443
- }, undefined, false, undefined, this),
34444
- /* @__PURE__ */ jsx_dev_runtime3.jsxDEV("span", {
34449
+ }),
34450
+ /* @__PURE__ */ jsx_runtime3.jsx("span", {
34445
34451
  className: "n",
34446
34452
  children: categoryCounts.get(entry)
34447
- }, undefined, false, undefined, this)
34453
+ })
34448
34454
  ]
34449
- }, entry, true, undefined, this))
34455
+ }, entry))
34450
34456
  ]
34451
- }, undefined, true, undefined, this),
34452
- /* @__PURE__ */ jsx_dev_runtime3.jsxDEV("main", {
34453
- children: sections.length === 0 ? /* @__PURE__ */ jsx_dev_runtime3.jsxDEV("div", {
34457
+ }),
34458
+ /* @__PURE__ */ jsx_runtime3.jsx("main", {
34459
+ children: sections.length === 0 ? /* @__PURE__ */ jsx_runtime3.jsx("div", {
34454
34460
  className: "empty",
34455
34461
  children: "No options match this filter."
34456
- }, undefined, false, undefined, this) : sections.map((section) => /* @__PURE__ */ jsx_dev_runtime3.jsxDEV("section", {
34462
+ }) : sections.map((section) => /* @__PURE__ */ jsx_runtime3.jsxs("section", {
34457
34463
  className: "section",
34458
34464
  children: [
34459
- /* @__PURE__ */ jsx_dev_runtime3.jsxDEV("div", {
34465
+ /* @__PURE__ */ jsx_runtime3.jsxs("div", {
34460
34466
  className: "section-head",
34461
34467
  children: [
34462
- /* @__PURE__ */ jsx_dev_runtime3.jsxDEV("h2", {
34468
+ /* @__PURE__ */ jsx_runtime3.jsx("h2", {
34463
34469
  className: "section-title",
34464
34470
  children: section.label
34465
- }, undefined, false, undefined, this),
34466
- /* @__PURE__ */ jsx_dev_runtime3.jsxDEV("span", {
34471
+ }),
34472
+ /* @__PURE__ */ jsx_runtime3.jsxs("span", {
34467
34473
  className: "section-files",
34468
34474
  children: [
34469
34475
  section.items.length,
34470
34476
  " options"
34471
34477
  ]
34472
- }, undefined, true, undefined, this)
34478
+ })
34473
34479
  ]
34474
- }, undefined, true, undefined, this),
34475
- section.items.map((option) => /* @__PURE__ */ jsx_dev_runtime3.jsxDEV(OptionRow, {
34480
+ }),
34481
+ section.items.map((option) => /* @__PURE__ */ jsx_runtime3.jsx(OptionRow, {
34476
34482
  busy: busy === option.name,
34477
34483
  current: state.current,
34478
34484
  onSave: save(option.name),
34479
34485
  option
34480
- }, option.name, false, undefined, this))
34486
+ }, option.name))
34481
34487
  ]
34482
- }, section.label, true, undefined, this))
34483
- }, undefined, false, undefined, this)
34488
+ }, section.label))
34489
+ })
34484
34490
  ]
34485
- }, undefined, true, undefined, this),
34486
- notice && /* @__PURE__ */ jsx_dev_runtime3.jsxDEV("div", {
34491
+ }),
34492
+ notice && /* @__PURE__ */ jsx_runtime3.jsxs("div", {
34487
34493
  className: `toast ${notice.kind}`,
34488
34494
  children: [
34489
- /* @__PURE__ */ jsx_dev_runtime3.jsxDEV("b", {
34495
+ /* @__PURE__ */ jsx_runtime3.jsx("b", {
34490
34496
  children: notice.kind === "ok" ? "\u2713" : "\u2715"
34491
- }, undefined, false, undefined, this),
34497
+ }),
34492
34498
  notice.text
34493
34499
  ]
34494
- }, undefined, true, undefined, this)
34500
+ })
34495
34501
  ]
34496
- }, undefined, true, undefined, this);
34502
+ });
34497
34503
  };
34498
34504
 
34499
34505
  // src/cli/config/prettier/PrettierPanel.tsx
34500
34506
  var import_react4 = __toESM(require_react(), 1);
34501
- var jsx_dev_runtime4 = __toESM(require_jsx_dev_runtime(), 1);
34507
+ var jsx_runtime4 = __toESM(require_jsx_runtime(), 1);
34502
34508
  var formatDefault = (value) => typeof value === "string" ? value : JSON.stringify(value);
34503
34509
  var matchesQuery3 = (query, name, description) => {
34504
34510
  if (query === "")
@@ -34511,54 +34517,54 @@ var BooleanControl2 = ({
34511
34517
  isSet,
34512
34518
  onSave,
34513
34519
  value
34514
- }) => /* @__PURE__ */ jsx_dev_runtime4.jsxDEV("div", {
34520
+ }) => /* @__PURE__ */ jsx_runtime4.jsxs("div", {
34515
34521
  className: "ts-control",
34516
34522
  children: [
34517
- /* @__PURE__ */ jsx_dev_runtime4.jsxDEV("div", {
34523
+ /* @__PURE__ */ jsx_runtime4.jsxs("div", {
34518
34524
  className: busy ? "seg busy" : "seg",
34519
34525
  children: [
34520
- /* @__PURE__ */ jsx_dev_runtime4.jsxDEV("button", {
34526
+ /* @__PURE__ */ jsx_runtime4.jsx("button", {
34521
34527
  "data-on": value === false,
34522
34528
  onClick: () => onSave(false),
34523
34529
  type: "button",
34524
34530
  children: "false"
34525
- }, undefined, false, undefined, this),
34526
- /* @__PURE__ */ jsx_dev_runtime4.jsxDEV("button", {
34531
+ }),
34532
+ /* @__PURE__ */ jsx_runtime4.jsx("button", {
34527
34533
  "data-on": value === true,
34528
34534
  onClick: () => onSave(true),
34529
34535
  type: "button",
34530
34536
  children: "true"
34531
- }, undefined, false, undefined, this)
34537
+ })
34532
34538
  ]
34533
- }, undefined, true, undefined, this),
34534
- isSet && /* @__PURE__ */ jsx_dev_runtime4.jsxDEV("button", {
34539
+ }),
34540
+ isSet && /* @__PURE__ */ jsx_runtime4.jsx("button", {
34535
34541
  className: "ts-clear",
34536
34542
  onClick: () => onSave(undefined, true),
34537
34543
  type: "button",
34538
34544
  children: "unset"
34539
- }, undefined, false, undefined, this)
34545
+ })
34540
34546
  ]
34541
- }, undefined, true, undefined, this);
34547
+ });
34542
34548
  var ChoiceControl = ({
34543
34549
  choices,
34544
34550
  isSet,
34545
34551
  onSave,
34546
34552
  value
34547
- }) => /* @__PURE__ */ jsx_dev_runtime4.jsxDEV("select", {
34553
+ }) => /* @__PURE__ */ jsx_runtime4.jsxs("select", {
34548
34554
  className: "ts-select",
34549
34555
  onChange: (event) => event.target.value === "" ? onSave(undefined, true) : onSave(event.target.value),
34550
34556
  value: isSet ? String(value) : "",
34551
34557
  children: [
34552
- /* @__PURE__ */ jsx_dev_runtime4.jsxDEV("option", {
34558
+ /* @__PURE__ */ jsx_runtime4.jsx("option", {
34553
34559
  value: "",
34554
34560
  children: "\u2014 unset \u2014"
34555
- }, undefined, false, undefined, this),
34556
- choices.map((choice) => /* @__PURE__ */ jsx_dev_runtime4.jsxDEV("option", {
34561
+ }),
34562
+ choices.map((choice) => /* @__PURE__ */ jsx_runtime4.jsx("option", {
34557
34563
  value: choice,
34558
34564
  children: choice
34559
- }, choice, false, undefined, this))
34565
+ }, choice))
34560
34566
  ]
34561
- }, undefined, true, undefined, this);
34567
+ });
34562
34568
  var TextControl2 = ({ numeric, onSave, value }) => {
34563
34569
  const [draft, setDraft] = import_react4.useState(value === undefined ? "" : String(value));
34564
34570
  const [error, setError] = import_react4.useState(null);
@@ -34582,12 +34588,12 @@ var TextControl2 = ({ numeric, onSave, value }) => {
34582
34588
  onSave(text);
34583
34589
  setError(null);
34584
34590
  };
34585
- return /* @__PURE__ */ jsx_dev_runtime4.jsxDEV("div", {
34591
+ return /* @__PURE__ */ jsx_runtime4.jsxs("div", {
34586
34592
  children: [
34587
- /* @__PURE__ */ jsx_dev_runtime4.jsxDEV("div", {
34593
+ /* @__PURE__ */ jsx_runtime4.jsxs("div", {
34588
34594
  className: "ts-control",
34589
34595
  children: [
34590
- /* @__PURE__ */ jsx_dev_runtime4.jsxDEV("input", {
34596
+ /* @__PURE__ */ jsx_runtime4.jsx("input", {
34591
34597
  className: error ? "ts-input err" : "ts-input",
34592
34598
  onChange: (event) => setDraft(event.target.value),
34593
34599
  onKeyDown: (event) => {
@@ -34597,94 +34603,94 @@ var TextControl2 = ({ numeric, onSave, value }) => {
34597
34603
  placeholder: numeric ? "e.g. 80" : "value",
34598
34604
  spellCheck: false,
34599
34605
  value: draft
34600
- }, undefined, false, undefined, this),
34601
- /* @__PURE__ */ jsx_dev_runtime4.jsxDEV("button", {
34606
+ }),
34607
+ /* @__PURE__ */ jsx_runtime4.jsx("button", {
34602
34608
  className: "ts-btn",
34603
34609
  onClick: commit,
34604
34610
  type: "button",
34605
34611
  children: "save"
34606
- }, undefined, false, undefined, this)
34612
+ })
34607
34613
  ]
34608
- }, undefined, true, undefined, this),
34609
- error && /* @__PURE__ */ jsx_dev_runtime4.jsxDEV("div", {
34614
+ }),
34615
+ error && /* @__PURE__ */ jsx_runtime4.jsx("div", {
34610
34616
  className: "ts-err",
34611
34617
  children: error
34612
- }, undefined, false, undefined, this)
34618
+ })
34613
34619
  ]
34614
- }, undefined, true, undefined, this);
34620
+ });
34615
34621
  };
34616
34622
  var Control2 = ({ busy, isSet, onSave, option, value }) => {
34617
34623
  if (option.type === "boolean") {
34618
- return /* @__PURE__ */ jsx_dev_runtime4.jsxDEV(BooleanControl2, {
34624
+ return /* @__PURE__ */ jsx_runtime4.jsx(BooleanControl2, {
34619
34625
  busy,
34620
34626
  isSet,
34621
34627
  onSave,
34622
34628
  value
34623
- }, undefined, false, undefined, this);
34629
+ });
34624
34630
  }
34625
34631
  if (option.type === "choice") {
34626
- return /* @__PURE__ */ jsx_dev_runtime4.jsxDEV(ChoiceControl, {
34632
+ return /* @__PURE__ */ jsx_runtime4.jsx(ChoiceControl, {
34627
34633
  choices: option.choices.map((choice) => String(choice.value)),
34628
34634
  isSet,
34629
34635
  onSave,
34630
34636
  value
34631
- }, undefined, false, undefined, this);
34637
+ });
34632
34638
  }
34633
- return /* @__PURE__ */ jsx_dev_runtime4.jsxDEV(TextControl2, {
34639
+ return /* @__PURE__ */ jsx_runtime4.jsx(TextControl2, {
34634
34640
  numeric: option.type === "int",
34635
34641
  onSave,
34636
34642
  value
34637
- }, undefined, false, undefined, this);
34643
+ });
34638
34644
  };
34639
34645
  var OptionRow2 = ({ busy, current, onSave, option }) => {
34640
34646
  const { name } = option;
34641
34647
  if (name === undefined)
34642
34648
  return null;
34643
34649
  const isSet = Object.prototype.hasOwnProperty.call(current, name);
34644
- return /* @__PURE__ */ jsx_dev_runtime4.jsxDEV("div", {
34650
+ return /* @__PURE__ */ jsx_runtime4.jsxs("div", {
34645
34651
  className: "rule",
34646
34652
  children: [
34647
- /* @__PURE__ */ jsx_dev_runtime4.jsxDEV("div", {
34653
+ /* @__PURE__ */ jsx_runtime4.jsxs("div", {
34648
34654
  className: "rule-main",
34649
34655
  children: [
34650
- /* @__PURE__ */ jsx_dev_runtime4.jsxDEV("div", {
34656
+ /* @__PURE__ */ jsx_runtime4.jsxs("div", {
34651
34657
  className: "rule-name-row",
34652
34658
  children: [
34653
- /* @__PURE__ */ jsx_dev_runtime4.jsxDEV("span", {
34659
+ /* @__PURE__ */ jsx_runtime4.jsx("span", {
34654
34660
  className: "rule-name",
34655
34661
  children: name
34656
- }, undefined, false, undefined, this),
34657
- isSet && /* @__PURE__ */ jsx_dev_runtime4.jsxDEV("span", {
34662
+ }),
34663
+ isSet && /* @__PURE__ */ jsx_runtime4.jsx("span", {
34658
34664
  className: "badge src",
34659
34665
  children: "set"
34660
- }, undefined, false, undefined, this),
34661
- option.default !== undefined && /* @__PURE__ */ jsx_dev_runtime4.jsxDEV("span", {
34666
+ }),
34667
+ option.default !== undefined && /* @__PURE__ */ jsx_runtime4.jsxs("span", {
34662
34668
  className: "ts-default",
34663
34669
  children: [
34664
34670
  "default: ",
34665
34671
  formatDefault(option.default)
34666
34672
  ]
34667
- }, undefined, true, undefined, this)
34673
+ })
34668
34674
  ]
34669
- }, undefined, true, undefined, this),
34670
- option.description !== undefined && /* @__PURE__ */ jsx_dev_runtime4.jsxDEV("p", {
34675
+ }),
34676
+ option.description !== undefined && /* @__PURE__ */ jsx_runtime4.jsx("p", {
34671
34677
  className: "rule-desc",
34672
34678
  children: option.description
34673
- }, undefined, false, undefined, this)
34679
+ })
34674
34680
  ]
34675
- }, undefined, true, undefined, this),
34676
- /* @__PURE__ */ jsx_dev_runtime4.jsxDEV("div", {
34681
+ }),
34682
+ /* @__PURE__ */ jsx_runtime4.jsx("div", {
34677
34683
  className: "rule-controls",
34678
- children: /* @__PURE__ */ jsx_dev_runtime4.jsxDEV(Control2, {
34684
+ children: /* @__PURE__ */ jsx_runtime4.jsx(Control2, {
34679
34685
  busy: busy === name,
34680
34686
  isSet,
34681
34687
  onSave: onSave(name),
34682
34688
  option,
34683
34689
  value: current[name]
34684
- }, undefined, false, undefined, this)
34685
- }, undefined, false, undefined, this)
34690
+ })
34691
+ })
34686
34692
  ]
34687
- }, undefined, true, undefined, this);
34693
+ });
34688
34694
  };
34689
34695
  var PrettierPanel = ({ state: initial }) => {
34690
34696
  const [state, setState] = import_react4.useState(initial);
@@ -34728,165 +34734,165 @@ var PrettierPanel = ({ state: initial }) => {
34728
34734
  setBusy(null);
34729
34735
  }
34730
34736
  };
34731
- return /* @__PURE__ */ jsx_dev_runtime4.jsxDEV("div", {
34737
+ return /* @__PURE__ */ jsx_runtime4.jsxs("div", {
34732
34738
  className: "shell",
34733
34739
  children: [
34734
- /* @__PURE__ */ jsx_dev_runtime4.jsxDEV("header", {
34740
+ /* @__PURE__ */ jsx_runtime4.jsxs("header", {
34735
34741
  className: "topbar",
34736
34742
  children: [
34737
- /* @__PURE__ */ jsx_dev_runtime4.jsxDEV("div", {
34743
+ /* @__PURE__ */ jsx_runtime4.jsxs("div", {
34738
34744
  className: "brand",
34739
34745
  children: [
34740
- /* @__PURE__ */ jsx_dev_runtime4.jsxDEV("h1", {
34746
+ /* @__PURE__ */ jsx_runtime4.jsxs("h1", {
34741
34747
  className: "wordmark",
34742
34748
  children: [
34743
34749
  "prettier ",
34744
- /* @__PURE__ */ jsx_dev_runtime4.jsxDEV("em", {
34750
+ /* @__PURE__ */ jsx_runtime4.jsx("em", {
34745
34751
  children: "options"
34746
- }, undefined, false, undefined, this)
34752
+ })
34747
34753
  ]
34748
- }, undefined, true, undefined, this),
34749
- /* @__PURE__ */ jsx_dev_runtime4.jsxDEV("div", {
34754
+ }),
34755
+ /* @__PURE__ */ jsx_runtime4.jsxs("div", {
34750
34756
  className: "subpath",
34751
34757
  children: [
34752
- /* @__PURE__ */ jsx_dev_runtime4.jsxDEV("span", {
34758
+ /* @__PURE__ */ jsx_runtime4.jsx("span", {
34753
34759
  className: "dot"
34754
- }, undefined, false, undefined, this),
34760
+ }),
34755
34761
  state.configPath ?? "no config yet \u2014 edits create .prettierrc.json"
34756
34762
  ]
34757
- }, undefined, true, undefined, this)
34763
+ })
34758
34764
  ]
34759
- }, undefined, true, undefined, this),
34760
- /* @__PURE__ */ jsx_dev_runtime4.jsxDEV("div", {
34765
+ }),
34766
+ /* @__PURE__ */ jsx_runtime4.jsxs("div", {
34761
34767
  className: "counts",
34762
34768
  children: [
34763
- /* @__PURE__ */ jsx_dev_runtime4.jsxDEV("div", {
34769
+ /* @__PURE__ */ jsx_runtime4.jsxs("div", {
34764
34770
  className: "count",
34765
34771
  children: [
34766
- /* @__PURE__ */ jsx_dev_runtime4.jsxDEV("b", {
34772
+ /* @__PURE__ */ jsx_runtime4.jsx("b", {
34767
34773
  children: Object.keys(state.current).length
34768
- }, undefined, false, undefined, this),
34769
- /* @__PURE__ */ jsx_dev_runtime4.jsxDEV("span", {
34774
+ }),
34775
+ /* @__PURE__ */ jsx_runtime4.jsx("span", {
34770
34776
  children: "set"
34771
- }, undefined, false, undefined, this)
34777
+ })
34772
34778
  ]
34773
- }, undefined, true, undefined, this),
34774
- /* @__PURE__ */ jsx_dev_runtime4.jsxDEV("div", {
34779
+ }),
34780
+ /* @__PURE__ */ jsx_runtime4.jsxs("div", {
34775
34781
  className: "count",
34776
34782
  children: [
34777
- /* @__PURE__ */ jsx_dev_runtime4.jsxDEV("b", {
34783
+ /* @__PURE__ */ jsx_runtime4.jsx("b", {
34778
34784
  children: state.options.length
34779
- }, undefined, false, undefined, this),
34780
- /* @__PURE__ */ jsx_dev_runtime4.jsxDEV("span", {
34785
+ }),
34786
+ /* @__PURE__ */ jsx_runtime4.jsx("span", {
34781
34787
  children: "available"
34782
- }, undefined, false, undefined, this)
34788
+ })
34783
34789
  ]
34784
- }, undefined, true, undefined, this)
34790
+ })
34785
34791
  ]
34786
- }, undefined, true, undefined, this)
34792
+ })
34787
34793
  ]
34788
- }, undefined, true, undefined, this),
34789
- /* @__PURE__ */ jsx_dev_runtime4.jsxDEV("div", {
34794
+ }),
34795
+ /* @__PURE__ */ jsx_runtime4.jsx("div", {
34790
34796
  className: "controls",
34791
- children: /* @__PURE__ */ jsx_dev_runtime4.jsxDEV("input", {
34797
+ children: /* @__PURE__ */ jsx_runtime4.jsx("input", {
34792
34798
  className: "search",
34793
34799
  onChange: (event) => setQuery(event.target.value),
34794
34800
  placeholder: "Search options or descriptions\u2026",
34795
34801
  value: query
34796
- }, undefined, false, undefined, this)
34797
- }, undefined, false, undefined, this),
34798
- /* @__PURE__ */ jsx_dev_runtime4.jsxDEV("div", {
34802
+ })
34803
+ }),
34804
+ /* @__PURE__ */ jsx_runtime4.jsxs("div", {
34799
34805
  className: "layout",
34800
34806
  children: [
34801
- /* @__PURE__ */ jsx_dev_runtime4.jsxDEV("nav", {
34807
+ /* @__PURE__ */ jsx_runtime4.jsxs("nav", {
34802
34808
  className: "rail",
34803
34809
  children: [
34804
- /* @__PURE__ */ jsx_dev_runtime4.jsxDEV("div", {
34810
+ /* @__PURE__ */ jsx_runtime4.jsx("div", {
34805
34811
  className: "rail-label",
34806
34812
  children: "Category"
34807
- }, undefined, false, undefined, this),
34808
- /* @__PURE__ */ jsx_dev_runtime4.jsxDEV("button", {
34813
+ }),
34814
+ /* @__PURE__ */ jsx_runtime4.jsxs("button", {
34809
34815
  className: "source-btn",
34810
34816
  "data-active": category === "all",
34811
34817
  onClick: () => setCategory("all"),
34812
34818
  type: "button",
34813
34819
  children: [
34814
- /* @__PURE__ */ jsx_dev_runtime4.jsxDEV("span", {
34820
+ /* @__PURE__ */ jsx_runtime4.jsx("span", {
34815
34821
  children: "all"
34816
- }, undefined, false, undefined, this),
34817
- /* @__PURE__ */ jsx_dev_runtime4.jsxDEV("span", {
34822
+ }),
34823
+ /* @__PURE__ */ jsx_runtime4.jsx("span", {
34818
34824
  className: "n",
34819
34825
  children: state.options.length
34820
- }, undefined, false, undefined, this)
34826
+ })
34821
34827
  ]
34822
- }, undefined, true, undefined, this),
34823
- state.categories.map((entry) => /* @__PURE__ */ jsx_dev_runtime4.jsxDEV("button", {
34828
+ }),
34829
+ state.categories.map((entry) => /* @__PURE__ */ jsx_runtime4.jsxs("button", {
34824
34830
  className: "source-btn",
34825
34831
  "data-active": category === entry,
34826
34832
  onClick: () => setCategory(entry),
34827
34833
  type: "button",
34828
34834
  children: [
34829
- /* @__PURE__ */ jsx_dev_runtime4.jsxDEV("span", {
34835
+ /* @__PURE__ */ jsx_runtime4.jsx("span", {
34830
34836
  children: entry
34831
- }, undefined, false, undefined, this),
34832
- /* @__PURE__ */ jsx_dev_runtime4.jsxDEV("span", {
34837
+ }),
34838
+ /* @__PURE__ */ jsx_runtime4.jsx("span", {
34833
34839
  className: "n",
34834
34840
  children: categoryCounts.get(entry)
34835
- }, undefined, false, undefined, this)
34841
+ })
34836
34842
  ]
34837
- }, entry, true, undefined, this))
34843
+ }, entry))
34838
34844
  ]
34839
- }, undefined, true, undefined, this),
34840
- /* @__PURE__ */ jsx_dev_runtime4.jsxDEV("main", {
34841
- children: sections.length === 0 ? /* @__PURE__ */ jsx_dev_runtime4.jsxDEV("div", {
34845
+ }),
34846
+ /* @__PURE__ */ jsx_runtime4.jsx("main", {
34847
+ children: sections.length === 0 ? /* @__PURE__ */ jsx_runtime4.jsx("div", {
34842
34848
  className: "empty",
34843
34849
  children: "No options match this filter."
34844
- }, undefined, false, undefined, this) : sections.map((section) => /* @__PURE__ */ jsx_dev_runtime4.jsxDEV("section", {
34850
+ }) : sections.map((section) => /* @__PURE__ */ jsx_runtime4.jsxs("section", {
34845
34851
  className: "section",
34846
34852
  children: [
34847
- /* @__PURE__ */ jsx_dev_runtime4.jsxDEV("div", {
34853
+ /* @__PURE__ */ jsx_runtime4.jsxs("div", {
34848
34854
  className: "section-head",
34849
34855
  children: [
34850
- /* @__PURE__ */ jsx_dev_runtime4.jsxDEV("h2", {
34856
+ /* @__PURE__ */ jsx_runtime4.jsx("h2", {
34851
34857
  className: "section-title",
34852
34858
  children: section.label
34853
- }, undefined, false, undefined, this),
34854
- /* @__PURE__ */ jsx_dev_runtime4.jsxDEV("span", {
34859
+ }),
34860
+ /* @__PURE__ */ jsx_runtime4.jsxs("span", {
34855
34861
  className: "section-files",
34856
34862
  children: [
34857
34863
  section.items.length,
34858
34864
  " options"
34859
34865
  ]
34860
- }, undefined, true, undefined, this)
34866
+ })
34861
34867
  ]
34862
- }, undefined, true, undefined, this),
34863
- section.items.map((option) => /* @__PURE__ */ jsx_dev_runtime4.jsxDEV(OptionRow2, {
34868
+ }),
34869
+ section.items.map((option) => /* @__PURE__ */ jsx_runtime4.jsx(OptionRow2, {
34864
34870
  busy,
34865
34871
  current: state.current,
34866
34872
  onSave: save,
34867
34873
  option
34868
- }, option.name, false, undefined, this))
34874
+ }, option.name))
34869
34875
  ]
34870
- }, section.label, true, undefined, this))
34871
- }, undefined, false, undefined, this)
34876
+ }, section.label))
34877
+ })
34872
34878
  ]
34873
- }, undefined, true, undefined, this),
34874
- notice && /* @__PURE__ */ jsx_dev_runtime4.jsxDEV("div", {
34879
+ }),
34880
+ notice && /* @__PURE__ */ jsx_runtime4.jsxs("div", {
34875
34881
  className: `toast ${notice.kind}`,
34876
34882
  children: [
34877
- /* @__PURE__ */ jsx_dev_runtime4.jsxDEV("b", {
34883
+ /* @__PURE__ */ jsx_runtime4.jsx("b", {
34878
34884
  children: notice.kind === "ok" ? "\u2713" : "\u2715"
34879
- }, undefined, false, undefined, this),
34885
+ }),
34880
34886
  notice.text
34881
34887
  ]
34882
- }, undefined, true, undefined, this)
34888
+ })
34883
34889
  ]
34884
- }, undefined, true, undefined, this);
34890
+ });
34885
34891
  };
34886
34892
 
34887
34893
  // src/cli/config/absolute/AbsoluteConfigPanel.tsx
34888
34894
  var import_react5 = __toESM(require_react(), 1);
34889
- var jsx_dev_runtime5 = __toESM(require_jsx_dev_runtime(), 1);
34895
+ var jsx_runtime5 = __toESM(require_jsx_runtime(), 1);
34890
34896
  var matchesQuery4 = (query, name, description) => {
34891
34897
  if (query === "")
34892
34898
  return true;
@@ -34895,59 +34901,59 @@ var matchesQuery4 = (query, name, description) => {
34895
34901
  };
34896
34902
  var FieldRow = ({ busy, field, isSet, onSave, value }) => {
34897
34903
  const [draft, setDraft] = import_react5.useState(value);
34898
- return /* @__PURE__ */ jsx_dev_runtime5.jsxDEV("div", {
34904
+ return /* @__PURE__ */ jsx_runtime5.jsxs("div", {
34899
34905
  className: "rule fe-block",
34900
34906
  children: [
34901
- /* @__PURE__ */ jsx_dev_runtime5.jsxDEV("div", {
34907
+ /* @__PURE__ */ jsx_runtime5.jsxs("div", {
34902
34908
  className: "rule-main",
34903
34909
  children: [
34904
- /* @__PURE__ */ jsx_dev_runtime5.jsxDEV("div", {
34910
+ /* @__PURE__ */ jsx_runtime5.jsxs("div", {
34905
34911
  className: "rule-name-row",
34906
34912
  children: [
34907
- /* @__PURE__ */ jsx_dev_runtime5.jsxDEV("span", {
34913
+ /* @__PURE__ */ jsx_runtime5.jsx("span", {
34908
34914
  className: "rule-name",
34909
34915
  children: field.name
34910
- }, undefined, false, undefined, this),
34911
- isSet && /* @__PURE__ */ jsx_dev_runtime5.jsxDEV("span", {
34916
+ }),
34917
+ isSet && /* @__PURE__ */ jsx_runtime5.jsx("span", {
34912
34918
  className: "badge src",
34913
34919
  children: "set"
34914
- }, undefined, false, undefined, this)
34920
+ })
34915
34921
  ]
34916
- }, undefined, true, undefined, this),
34917
- field.description !== "" && /* @__PURE__ */ jsx_dev_runtime5.jsxDEV("p", {
34922
+ }),
34923
+ field.description !== "" && /* @__PURE__ */ jsx_runtime5.jsx("p", {
34918
34924
  className: "rule-desc",
34919
34925
  children: field.description
34920
- }, undefined, false, undefined, this),
34921
- /* @__PURE__ */ jsx_dev_runtime5.jsxDEV("div", {
34926
+ }),
34927
+ /* @__PURE__ */ jsx_runtime5.jsx("div", {
34922
34928
  className: "fe-root",
34923
- children: /* @__PURE__ */ jsx_dev_runtime5.jsxDEV(FieldEditor, {
34929
+ children: /* @__PURE__ */ jsx_runtime5.jsx(FieldEditor, {
34924
34930
  onChange: setDraft,
34925
34931
  schema: field.schema,
34926
34932
  value: draft
34927
- }, undefined, false, undefined, this)
34928
- }, undefined, false, undefined, this)
34933
+ })
34934
+ })
34929
34935
  ]
34930
- }, undefined, true, undefined, this),
34931
- /* @__PURE__ */ jsx_dev_runtime5.jsxDEV("div", {
34936
+ }),
34937
+ /* @__PURE__ */ jsx_runtime5.jsxs("div", {
34932
34938
  className: "rule-controls fe-actions",
34933
34939
  children: [
34934
- /* @__PURE__ */ jsx_dev_runtime5.jsxDEV("button", {
34940
+ /* @__PURE__ */ jsx_runtime5.jsx("button", {
34935
34941
  className: "ts-btn",
34936
34942
  disabled: busy,
34937
34943
  onClick: () => onSave(draft),
34938
34944
  type: "button",
34939
34945
  children: "save"
34940
- }, undefined, false, undefined, this),
34941
- isSet && /* @__PURE__ */ jsx_dev_runtime5.jsxDEV("button", {
34946
+ }),
34947
+ isSet && /* @__PURE__ */ jsx_runtime5.jsx("button", {
34942
34948
  className: "ts-clear",
34943
34949
  onClick: () => onSave(undefined, true),
34944
34950
  type: "button",
34945
34951
  children: "unset"
34946
- }, undefined, false, undefined, this)
34952
+ })
34947
34953
  ]
34948
- }, undefined, true, undefined, this)
34954
+ })
34949
34955
  ]
34950
- }, undefined, true, undefined, this);
34956
+ });
34951
34957
  };
34952
34958
  var AbsoluteConfigPanel = ({
34953
34959
  state: initial
@@ -34985,226 +34991,226 @@ var AbsoluteConfigPanel = ({
34985
34991
  const visible = state.fields.filter((field) => matchesQuery4(query, field.name, field.description));
34986
34992
  const editable = visible.filter((field) => !opaque.has(field.name));
34987
34993
  const advanced = visible.filter((field) => opaque.has(field.name));
34988
- return /* @__PURE__ */ jsx_dev_runtime5.jsxDEV("div", {
34994
+ return /* @__PURE__ */ jsx_runtime5.jsxs("div", {
34989
34995
  className: "shell",
34990
34996
  children: [
34991
- /* @__PURE__ */ jsx_dev_runtime5.jsxDEV("header", {
34997
+ /* @__PURE__ */ jsx_runtime5.jsxs("header", {
34992
34998
  className: "topbar",
34993
34999
  children: [
34994
- /* @__PURE__ */ jsx_dev_runtime5.jsxDEV("div", {
35000
+ /* @__PURE__ */ jsx_runtime5.jsxs("div", {
34995
35001
  className: "brand",
34996
35002
  children: [
34997
- /* @__PURE__ */ jsx_dev_runtime5.jsxDEV("h1", {
35003
+ /* @__PURE__ */ jsx_runtime5.jsxs("h1", {
34998
35004
  className: "wordmark",
34999
35005
  children: [
35000
35006
  "absolute.config ",
35001
- /* @__PURE__ */ jsx_dev_runtime5.jsxDEV("em", {
35007
+ /* @__PURE__ */ jsx_runtime5.jsx("em", {
35002
35008
  children: "\xB7ts"
35003
- }, undefined, false, undefined, this)
35009
+ })
35004
35010
  ]
35005
- }, undefined, true, undefined, this),
35006
- /* @__PURE__ */ jsx_dev_runtime5.jsxDEV("div", {
35011
+ }),
35012
+ /* @__PURE__ */ jsx_runtime5.jsxs("div", {
35007
35013
  className: "subpath",
35008
35014
  children: [
35009
- /* @__PURE__ */ jsx_dev_runtime5.jsxDEV("span", {
35015
+ /* @__PURE__ */ jsx_runtime5.jsx("span", {
35010
35016
  className: "dot"
35011
- }, undefined, false, undefined, this),
35017
+ }),
35012
35018
  state.configPath ?? "no absolute.config.ts found"
35013
35019
  ]
35014
- }, undefined, true, undefined, this)
35020
+ })
35015
35021
  ]
35016
- }, undefined, true, undefined, this),
35017
- /* @__PURE__ */ jsx_dev_runtime5.jsxDEV("div", {
35022
+ }),
35023
+ /* @__PURE__ */ jsx_runtime5.jsxs("div", {
35018
35024
  className: "counts",
35019
35025
  children: [
35020
- /* @__PURE__ */ jsx_dev_runtime5.jsxDEV("div", {
35026
+ /* @__PURE__ */ jsx_runtime5.jsxs("div", {
35021
35027
  className: "count",
35022
35028
  children: [
35023
- /* @__PURE__ */ jsx_dev_runtime5.jsxDEV("b", {
35029
+ /* @__PURE__ */ jsx_runtime5.jsx("b", {
35024
35030
  children: Object.keys(state.current).length
35025
- }, undefined, false, undefined, this),
35026
- /* @__PURE__ */ jsx_dev_runtime5.jsxDEV("span", {
35031
+ }),
35032
+ /* @__PURE__ */ jsx_runtime5.jsx("span", {
35027
35033
  children: "set"
35028
- }, undefined, false, undefined, this)
35034
+ })
35029
35035
  ]
35030
- }, undefined, true, undefined, this),
35031
- /* @__PURE__ */ jsx_dev_runtime5.jsxDEV("div", {
35036
+ }),
35037
+ /* @__PURE__ */ jsx_runtime5.jsxs("div", {
35032
35038
  className: "count",
35033
35039
  children: [
35034
- /* @__PURE__ */ jsx_dev_runtime5.jsxDEV("b", {
35040
+ /* @__PURE__ */ jsx_runtime5.jsx("b", {
35035
35041
  children: editable.length
35036
- }, undefined, false, undefined, this),
35037
- /* @__PURE__ */ jsx_dev_runtime5.jsxDEV("span", {
35042
+ }),
35043
+ /* @__PURE__ */ jsx_runtime5.jsx("span", {
35038
35044
  children: "editable"
35039
- }, undefined, false, undefined, this)
35045
+ })
35040
35046
  ]
35041
- }, undefined, true, undefined, this)
35047
+ })
35042
35048
  ]
35043
- }, undefined, true, undefined, this)
35049
+ })
35044
35050
  ]
35045
- }, undefined, true, undefined, this),
35046
- /* @__PURE__ */ jsx_dev_runtime5.jsxDEV("div", {
35051
+ }),
35052
+ /* @__PURE__ */ jsx_runtime5.jsx("div", {
35047
35053
  className: "controls",
35048
- children: /* @__PURE__ */ jsx_dev_runtime5.jsxDEV("input", {
35054
+ children: /* @__PURE__ */ jsx_runtime5.jsx("input", {
35049
35055
  className: "search",
35050
35056
  onChange: (event) => setQuery(event.target.value),
35051
35057
  placeholder: "Search config fields\u2026",
35052
35058
  value: query
35053
- }, undefined, false, undefined, this)
35054
- }, undefined, false, undefined, this),
35055
- /* @__PURE__ */ jsx_dev_runtime5.jsxDEV("main", {
35059
+ })
35060
+ }),
35061
+ /* @__PURE__ */ jsx_runtime5.jsxs("main", {
35056
35062
  children: [
35057
- editable.length > 0 && /* @__PURE__ */ jsx_dev_runtime5.jsxDEV("section", {
35063
+ editable.length > 0 && /* @__PURE__ */ jsx_runtime5.jsxs("section", {
35058
35064
  className: "section",
35059
35065
  children: [
35060
- /* @__PURE__ */ jsx_dev_runtime5.jsxDEV("div", {
35066
+ /* @__PURE__ */ jsx_runtime5.jsxs("div", {
35061
35067
  className: "section-head",
35062
35068
  children: [
35063
- /* @__PURE__ */ jsx_dev_runtime5.jsxDEV("h2", {
35069
+ /* @__PURE__ */ jsx_runtime5.jsx("h2", {
35064
35070
  className: "section-title",
35065
35071
  children: "Fields"
35066
- }, undefined, false, undefined, this),
35067
- /* @__PURE__ */ jsx_dev_runtime5.jsxDEV("span", {
35072
+ }),
35073
+ /* @__PURE__ */ jsx_runtime5.jsxs("span", {
35068
35074
  className: "section-files",
35069
35075
  children: [
35070
35076
  editable.length,
35071
35077
  " editable"
35072
35078
  ]
35073
- }, undefined, true, undefined, this)
35079
+ })
35074
35080
  ]
35075
- }, undefined, true, undefined, this),
35076
- editable.map((field) => /* @__PURE__ */ jsx_dev_runtime5.jsxDEV(FieldRow, {
35081
+ }),
35082
+ editable.map((field) => /* @__PURE__ */ jsx_runtime5.jsx(FieldRow, {
35077
35083
  busy: busy === field.name,
35078
35084
  field,
35079
35085
  isSet: Object.prototype.hasOwnProperty.call(state.current, field.name),
35080
35086
  onSave: save(field.name),
35081
35087
  value: state.current[field.name]
35082
- }, field.name, false, undefined, this))
35088
+ }, field.name))
35083
35089
  ]
35084
- }, undefined, true, undefined, this),
35085
- advanced.length > 0 && /* @__PURE__ */ jsx_dev_runtime5.jsxDEV("section", {
35090
+ }),
35091
+ advanced.length > 0 && /* @__PURE__ */ jsx_runtime5.jsxs("section", {
35086
35092
  className: "section",
35087
35093
  children: [
35088
- /* @__PURE__ */ jsx_dev_runtime5.jsxDEV("div", {
35094
+ /* @__PURE__ */ jsx_runtime5.jsxs("div", {
35089
35095
  className: "section-head",
35090
35096
  children: [
35091
- /* @__PURE__ */ jsx_dev_runtime5.jsxDEV("h2", {
35097
+ /* @__PURE__ */ jsx_runtime5.jsx("h2", {
35092
35098
  className: "section-title",
35093
35099
  children: "Advanced"
35094
- }, undefined, false, undefined, this),
35095
- /* @__PURE__ */ jsx_dev_runtime5.jsxDEV("span", {
35100
+ }),
35101
+ /* @__PURE__ */ jsx_runtime5.jsx("span", {
35096
35102
  className: "section-files",
35097
35103
  children: "values reference code \u2014 edit in the file"
35098
- }, undefined, false, undefined, this)
35104
+ })
35099
35105
  ]
35100
- }, undefined, true, undefined, this),
35101
- advanced.map((field) => /* @__PURE__ */ jsx_dev_runtime5.jsxDEV("div", {
35106
+ }),
35107
+ advanced.map((field) => /* @__PURE__ */ jsx_runtime5.jsx("div", {
35102
35108
  className: "rule",
35103
- children: /* @__PURE__ */ jsx_dev_runtime5.jsxDEV("div", {
35109
+ children: /* @__PURE__ */ jsx_runtime5.jsxs("div", {
35104
35110
  className: "rule-main",
35105
35111
  children: [
35106
- /* @__PURE__ */ jsx_dev_runtime5.jsxDEV("div", {
35112
+ /* @__PURE__ */ jsx_runtime5.jsxs("div", {
35107
35113
  className: "rule-name-row",
35108
35114
  children: [
35109
- /* @__PURE__ */ jsx_dev_runtime5.jsxDEV("span", {
35115
+ /* @__PURE__ */ jsx_runtime5.jsx("span", {
35110
35116
  className: "rule-name",
35111
35117
  children: field.name
35112
- }, undefined, false, undefined, this),
35113
- /* @__PURE__ */ jsx_dev_runtime5.jsxDEV("span", {
35118
+ }),
35119
+ /* @__PURE__ */ jsx_runtime5.jsx("span", {
35114
35120
  className: "badge dep",
35115
35121
  children: "edit in file"
35116
- }, undefined, false, undefined, this)
35122
+ })
35117
35123
  ]
35118
- }, undefined, true, undefined, this),
35119
- field.description !== "" && /* @__PURE__ */ jsx_dev_runtime5.jsxDEV("p", {
35124
+ }),
35125
+ field.description !== "" && /* @__PURE__ */ jsx_runtime5.jsx("p", {
35120
35126
  className: "rule-desc",
35121
35127
  children: field.description
35122
- }, undefined, false, undefined, this)
35128
+ })
35123
35129
  ]
35124
- }, undefined, true, undefined, this)
35125
- }, field.name, false, undefined, this))
35130
+ })
35131
+ }, field.name))
35126
35132
  ]
35127
- }, undefined, true, undefined, this)
35133
+ })
35128
35134
  ]
35129
- }, undefined, true, undefined, this),
35130
- notice && /* @__PURE__ */ jsx_dev_runtime5.jsxDEV("div", {
35135
+ }),
35136
+ notice && /* @__PURE__ */ jsx_runtime5.jsxs("div", {
35131
35137
  className: `toast ${notice.kind}`,
35132
35138
  children: [
35133
- /* @__PURE__ */ jsx_dev_runtime5.jsxDEV("b", {
35139
+ /* @__PURE__ */ jsx_runtime5.jsx("b", {
35134
35140
  children: notice.kind === "ok" ? "\u2713" : "\u2715"
35135
- }, undefined, false, undefined, this),
35141
+ }),
35136
35142
  notice.text
35137
35143
  ]
35138
- }, undefined, true, undefined, this)
35144
+ })
35139
35145
  ]
35140
- }, undefined, true, undefined, this);
35146
+ });
35141
35147
  };
35142
35148
 
35143
35149
  // src/cli/config/integrations/IntegrationsPanel.tsx
35144
35150
  var import_react6 = __toESM(require_react(), 1);
35145
- var jsx_dev_runtime6 = __toESM(require_jsx_dev_runtime(), 1);
35146
- var IntegrationCard = ({ busy, item, onAdd, onDisable }) => /* @__PURE__ */ jsx_dev_runtime6.jsxDEV("div", {
35151
+ var jsx_runtime6 = __toESM(require_jsx_runtime(), 1);
35152
+ var IntegrationCard = ({ busy, item, onAdd, onDisable }) => /* @__PURE__ */ jsx_runtime6.jsxs("div", {
35147
35153
  className: "rule",
35148
35154
  children: [
35149
- /* @__PURE__ */ jsx_dev_runtime6.jsxDEV("div", {
35155
+ /* @__PURE__ */ jsx_runtime6.jsxs("div", {
35150
35156
  className: "rule-main",
35151
35157
  children: [
35152
- /* @__PURE__ */ jsx_dev_runtime6.jsxDEV("div", {
35158
+ /* @__PURE__ */ jsx_runtime6.jsxs("div", {
35153
35159
  className: "rule-name-row",
35154
35160
  children: [
35155
- /* @__PURE__ */ jsx_dev_runtime6.jsxDEV("span", {
35161
+ /* @__PURE__ */ jsx_runtime6.jsx("span", {
35156
35162
  className: "rule-name",
35157
35163
  children: item.label
35158
- }, undefined, false, undefined, this),
35159
- /* @__PURE__ */ jsx_dev_runtime6.jsxDEV("span", {
35164
+ }),
35165
+ /* @__PURE__ */ jsx_runtime6.jsx("span", {
35160
35166
  className: "badge",
35161
35167
  children: item.kind === "config" ? "config" : "plugin"
35162
- }, undefined, false, undefined, this),
35163
- item.installed && item.packages.length > 0 && /* @__PURE__ */ jsx_dev_runtime6.jsxDEV("span", {
35168
+ }),
35169
+ item.installed && item.packages.length > 0 && /* @__PURE__ */ jsx_runtime6.jsx("span", {
35164
35170
  className: "badge dep",
35165
35171
  children: "installed"
35166
- }, undefined, false, undefined, this),
35167
- item.enabled && /* @__PURE__ */ jsx_dev_runtime6.jsxDEV("span", {
35172
+ }),
35173
+ item.enabled && /* @__PURE__ */ jsx_runtime6.jsx("span", {
35168
35174
  className: "badge src",
35169
35175
  children: item.kind === "config" ? "enabled" : "ready"
35170
- }, undefined, false, undefined, this)
35176
+ })
35171
35177
  ]
35172
- }, undefined, true, undefined, this),
35173
- /* @__PURE__ */ jsx_dev_runtime6.jsxDEV("p", {
35178
+ }),
35179
+ /* @__PURE__ */ jsx_runtime6.jsx("p", {
35174
35180
  className: "rule-desc",
35175
35181
  children: item.blurb
35176
- }, undefined, false, undefined, this),
35177
- item.note && /* @__PURE__ */ jsx_dev_runtime6.jsxDEV("p", {
35182
+ }),
35183
+ item.note && /* @__PURE__ */ jsx_runtime6.jsx("p", {
35178
35184
  className: "intg-note",
35179
35185
  children: item.note
35180
- }, undefined, false, undefined, this),
35181
- item.kind === "use" && item.wiringSnippet && /* @__PURE__ */ jsx_dev_runtime6.jsxDEV("pre", {
35186
+ }),
35187
+ item.kind === "use" && item.wiringSnippet && /* @__PURE__ */ jsx_runtime6.jsx("pre", {
35182
35188
  className: "intg-code",
35183
35189
  children: item.wiringSnippet
35184
- }, undefined, false, undefined, this)
35190
+ })
35185
35191
  ]
35186
- }, undefined, true, undefined, this),
35187
- /* @__PURE__ */ jsx_dev_runtime6.jsxDEV("div", {
35192
+ }),
35193
+ /* @__PURE__ */ jsx_runtime6.jsxs("div", {
35188
35194
  className: "rule-controls fe-actions",
35189
35195
  children: [
35190
- /* @__PURE__ */ jsx_dev_runtime6.jsxDEV("button", {
35196
+ /* @__PURE__ */ jsx_runtime6.jsx("button", {
35191
35197
  className: "ts-btn",
35192
35198
  disabled: busy,
35193
35199
  onClick: onAdd,
35194
35200
  type: "button",
35195
35201
  children: item.kind === "config" ? "enable" : "install"
35196
- }, undefined, false, undefined, this),
35197
- item.kind === "config" && item.enabled && /* @__PURE__ */ jsx_dev_runtime6.jsxDEV("button", {
35202
+ }),
35203
+ item.kind === "config" && item.enabled && /* @__PURE__ */ jsx_runtime6.jsx("button", {
35198
35204
  className: "ts-clear",
35199
35205
  disabled: busy,
35200
35206
  onClick: onDisable,
35201
35207
  type: "button",
35202
35208
  children: "disable"
35203
- }, undefined, false, undefined, this)
35209
+ })
35204
35210
  ]
35205
- }, undefined, true, undefined, this)
35211
+ })
35206
35212
  ]
35207
- }, undefined, true, undefined, this);
35213
+ });
35208
35214
  var IntegrationsPanel = ({
35209
35215
  state: initial
35210
35216
  }) => {
@@ -35256,260 +35262,260 @@ var IntegrationsPanel = ({
35256
35262
  setBusy(null);
35257
35263
  }
35258
35264
  };
35259
- return /* @__PURE__ */ jsx_dev_runtime6.jsxDEV("div", {
35265
+ return /* @__PURE__ */ jsx_runtime6.jsxs("div", {
35260
35266
  className: "shell",
35261
35267
  children: [
35262
- /* @__PURE__ */ jsx_dev_runtime6.jsxDEV("header", {
35268
+ /* @__PURE__ */ jsx_runtime6.jsx("header", {
35263
35269
  className: "topbar",
35264
- children: /* @__PURE__ */ jsx_dev_runtime6.jsxDEV("div", {
35270
+ children: /* @__PURE__ */ jsx_runtime6.jsxs("div", {
35265
35271
  className: "brand",
35266
35272
  children: [
35267
- /* @__PURE__ */ jsx_dev_runtime6.jsxDEV("h1", {
35273
+ /* @__PURE__ */ jsx_runtime6.jsxs("h1", {
35268
35274
  className: "wordmark",
35269
35275
  children: [
35270
35276
  "integrations ",
35271
- /* @__PURE__ */ jsx_dev_runtime6.jsxDEV("em", {
35277
+ /* @__PURE__ */ jsx_runtime6.jsx("em", {
35272
35278
  children: "\xB7plugins"
35273
- }, undefined, false, undefined, this)
35279
+ })
35274
35280
  ]
35275
- }, undefined, true, undefined, this),
35276
- /* @__PURE__ */ jsx_dev_runtime6.jsxDEV("div", {
35281
+ }),
35282
+ /* @__PURE__ */ jsx_runtime6.jsxs("div", {
35277
35283
  className: "subpath",
35278
35284
  children: [
35279
- /* @__PURE__ */ jsx_dev_runtime6.jsxDEV("span", {
35285
+ /* @__PURE__ */ jsx_runtime6.jsx("span", {
35280
35286
  className: "dot"
35281
- }, undefined, false, undefined, this),
35287
+ }),
35282
35288
  "official Elysia plugins \u2014 install & wire from here or ",
35283
- /* @__PURE__ */ jsx_dev_runtime6.jsxDEV("code", {
35289
+ /* @__PURE__ */ jsx_runtime6.jsx("code", {
35284
35290
  children: "absolute add"
35285
- }, undefined, false, undefined, this)
35291
+ })
35286
35292
  ]
35287
- }, undefined, true, undefined, this)
35293
+ })
35288
35294
  ]
35289
- }, undefined, true, undefined, this)
35290
- }, undefined, false, undefined, this),
35291
- /* @__PURE__ */ jsx_dev_runtime6.jsxDEV("main", {
35292
- children: /* @__PURE__ */ jsx_dev_runtime6.jsxDEV("section", {
35295
+ })
35296
+ }),
35297
+ /* @__PURE__ */ jsx_runtime6.jsx("main", {
35298
+ children: /* @__PURE__ */ jsx_runtime6.jsxs("section", {
35293
35299
  className: "section",
35294
35300
  children: [
35295
- /* @__PURE__ */ jsx_dev_runtime6.jsxDEV("div", {
35301
+ /* @__PURE__ */ jsx_runtime6.jsxs("div", {
35296
35302
  className: "section-head",
35297
35303
  children: [
35298
- /* @__PURE__ */ jsx_dev_runtime6.jsxDEV("h2", {
35304
+ /* @__PURE__ */ jsx_runtime6.jsx("h2", {
35299
35305
  className: "section-title",
35300
35306
  children: "Official plugins"
35301
- }, undefined, false, undefined, this),
35302
- /* @__PURE__ */ jsx_dev_runtime6.jsxDEV("span", {
35307
+ }),
35308
+ /* @__PURE__ */ jsx_runtime6.jsxs("span", {
35303
35309
  className: "section-files",
35304
35310
  children: [
35305
35311
  items.filter((item) => item.enabled).length,
35306
35312
  " ",
35307
35313
  "enabled"
35308
35314
  ]
35309
- }, undefined, true, undefined, this)
35315
+ })
35310
35316
  ]
35311
- }, undefined, true, undefined, this),
35312
- items.map((item) => /* @__PURE__ */ jsx_dev_runtime6.jsxDEV(IntegrationCard, {
35317
+ }),
35318
+ items.map((item) => /* @__PURE__ */ jsx_runtime6.jsx(IntegrationCard, {
35313
35319
  busy: busy === item.id,
35314
35320
  item,
35315
35321
  onAdd: add(item.id),
35316
35322
  onDisable: disable(item)
35317
- }, item.id, false, undefined, this))
35323
+ }, item.id))
35318
35324
  ]
35319
- }, undefined, true, undefined, this)
35320
- }, undefined, false, undefined, this),
35321
- notice && /* @__PURE__ */ jsx_dev_runtime6.jsxDEV("div", {
35325
+ })
35326
+ }),
35327
+ notice && /* @__PURE__ */ jsx_runtime6.jsxs("div", {
35322
35328
  className: `toast ${notice.kind}`,
35323
35329
  children: [
35324
- /* @__PURE__ */ jsx_dev_runtime6.jsxDEV("b", {
35330
+ /* @__PURE__ */ jsx_runtime6.jsx("b", {
35325
35331
  children: notice.kind === "ok" ? "\u2713" : "\u2715"
35326
- }, undefined, false, undefined, this),
35332
+ }),
35327
35333
  notice.text
35328
35334
  ]
35329
- }, undefined, true, undefined, this)
35335
+ })
35330
35336
  ]
35331
- }, undefined, true, undefined, this);
35337
+ });
35332
35338
  };
35333
35339
 
35334
35340
  // src/cli/config/auth/AuthPanel.tsx
35335
35341
  init_authCatalog();
35336
35342
  var import_react7 = __toESM(require_react(), 1);
35337
- var jsx_dev_runtime7 = __toESM(require_jsx_dev_runtime(), 1);
35343
+ var jsx_runtime7 = __toESM(require_jsx_runtime(), 1);
35338
35344
  var SettingRow = ({ busy, field, isSet, onSave, value }) => {
35339
35345
  const [draft, setDraft] = import_react7.useState(value);
35340
- return /* @__PURE__ */ jsx_dev_runtime7.jsxDEV("div", {
35346
+ return /* @__PURE__ */ jsx_runtime7.jsxs("div", {
35341
35347
  className: "rule fe-block",
35342
35348
  children: [
35343
- /* @__PURE__ */ jsx_dev_runtime7.jsxDEV("div", {
35349
+ /* @__PURE__ */ jsx_runtime7.jsxs("div", {
35344
35350
  className: "rule-main",
35345
35351
  children: [
35346
- /* @__PURE__ */ jsx_dev_runtime7.jsxDEV("div", {
35352
+ /* @__PURE__ */ jsx_runtime7.jsxs("div", {
35347
35353
  className: "rule-name-row",
35348
35354
  children: [
35349
- /* @__PURE__ */ jsx_dev_runtime7.jsxDEV("span", {
35355
+ /* @__PURE__ */ jsx_runtime7.jsx("span", {
35350
35356
  className: "rule-name",
35351
35357
  children: field.name
35352
- }, undefined, false, undefined, this),
35353
- isSet && /* @__PURE__ */ jsx_dev_runtime7.jsxDEV("span", {
35358
+ }),
35359
+ isSet && /* @__PURE__ */ jsx_runtime7.jsx("span", {
35354
35360
  className: "badge src",
35355
35361
  children: "set"
35356
- }, undefined, false, undefined, this)
35362
+ })
35357
35363
  ]
35358
- }, undefined, true, undefined, this),
35359
- field.description !== "" && /* @__PURE__ */ jsx_dev_runtime7.jsxDEV("p", {
35364
+ }),
35365
+ field.description !== "" && /* @__PURE__ */ jsx_runtime7.jsx("p", {
35360
35366
  className: "rule-desc",
35361
35367
  children: field.description
35362
- }, undefined, false, undefined, this),
35363
- /* @__PURE__ */ jsx_dev_runtime7.jsxDEV("div", {
35368
+ }),
35369
+ /* @__PURE__ */ jsx_runtime7.jsx("div", {
35364
35370
  className: "fe-root",
35365
- children: /* @__PURE__ */ jsx_dev_runtime7.jsxDEV(FieldEditor, {
35371
+ children: /* @__PURE__ */ jsx_runtime7.jsx(FieldEditor, {
35366
35372
  onChange: setDraft,
35367
35373
  schema: field.schema,
35368
35374
  value: draft
35369
- }, undefined, false, undefined, this)
35370
- }, undefined, false, undefined, this)
35375
+ })
35376
+ })
35371
35377
  ]
35372
- }, undefined, true, undefined, this),
35373
- /* @__PURE__ */ jsx_dev_runtime7.jsxDEV("div", {
35378
+ }),
35379
+ /* @__PURE__ */ jsx_runtime7.jsxs("div", {
35374
35380
  className: "rule-controls fe-actions",
35375
35381
  children: [
35376
- /* @__PURE__ */ jsx_dev_runtime7.jsxDEV("button", {
35382
+ /* @__PURE__ */ jsx_runtime7.jsx("button", {
35377
35383
  className: "ts-btn",
35378
35384
  disabled: busy,
35379
35385
  onClick: () => onSave(draft),
35380
35386
  type: "button",
35381
35387
  children: "save"
35382
- }, undefined, false, undefined, this),
35383
- isSet && /* @__PURE__ */ jsx_dev_runtime7.jsxDEV("button", {
35388
+ }),
35389
+ isSet && /* @__PURE__ */ jsx_runtime7.jsx("button", {
35384
35390
  className: "ts-clear",
35385
35391
  onClick: () => onSave(undefined, true),
35386
35392
  type: "button",
35387
35393
  children: "unset"
35388
- }, undefined, false, undefined, this)
35394
+ })
35389
35395
  ]
35390
- }, undefined, true, undefined, this)
35396
+ })
35391
35397
  ]
35392
- }, undefined, true, undefined, this);
35398
+ });
35393
35399
  };
35394
35400
  var FeatureCard = ({
35395
35401
  busy,
35396
35402
  feature,
35397
35403
  onScaffold,
35398
35404
  result
35399
- }) => /* @__PURE__ */ jsx_dev_runtime7.jsxDEV("div", {
35405
+ }) => /* @__PURE__ */ jsx_runtime7.jsxs("div", {
35400
35406
  className: "rule",
35401
35407
  children: [
35402
- /* @__PURE__ */ jsx_dev_runtime7.jsxDEV("div", {
35408
+ /* @__PURE__ */ jsx_runtime7.jsxs("div", {
35403
35409
  className: "rule-main",
35404
35410
  children: [
35405
- /* @__PURE__ */ jsx_dev_runtime7.jsxDEV("div", {
35411
+ /* @__PURE__ */ jsx_runtime7.jsxs("div", {
35406
35412
  className: "rule-name-row",
35407
35413
  children: [
35408
- /* @__PURE__ */ jsx_dev_runtime7.jsxDEV("span", {
35414
+ /* @__PURE__ */ jsx_runtime7.jsx("span", {
35409
35415
  className: "rule-name",
35410
35416
  children: feature.label
35411
- }, undefined, false, undefined, this),
35412
- /* @__PURE__ */ jsx_dev_runtime7.jsxDEV("span", {
35417
+ }),
35418
+ /* @__PURE__ */ jsx_runtime7.jsx("span", {
35413
35419
  className: "badge dep",
35414
35420
  children: feature.configKey
35415
- }, undefined, false, undefined, this),
35416
- /* @__PURE__ */ jsx_dev_runtime7.jsxDEV("span", {
35421
+ }),
35422
+ /* @__PURE__ */ jsx_runtime7.jsx("span", {
35417
35423
  className: "badge",
35418
35424
  children: feature.kind
35419
- }, undefined, false, undefined, this),
35420
- feature.configured && /* @__PURE__ */ jsx_dev_runtime7.jsxDEV("span", {
35425
+ }),
35426
+ feature.configured && /* @__PURE__ */ jsx_runtime7.jsx("span", {
35421
35427
  className: "badge src",
35422
35428
  children: "configured"
35423
- }, undefined, false, undefined, this)
35429
+ })
35424
35430
  ]
35425
- }, undefined, true, undefined, this),
35426
- /* @__PURE__ */ jsx_dev_runtime7.jsxDEV("p", {
35431
+ }),
35432
+ /* @__PURE__ */ jsx_runtime7.jsx("p", {
35427
35433
  className: "rule-desc",
35428
35434
  children: feature.blurb
35429
- }, undefined, false, undefined, this),
35430
- result?.spreadSnippet && /* @__PURE__ */ jsx_dev_runtime7.jsxDEV("pre", {
35435
+ }),
35436
+ result?.spreadSnippet && /* @__PURE__ */ jsx_runtime7.jsx("pre", {
35431
35437
  className: "intg-code",
35432
35438
  children: result.spreadSnippet
35433
- }, undefined, false, undefined, this)
35439
+ })
35434
35440
  ]
35435
- }, undefined, true, undefined, this),
35436
- !feature.configured && feature.scaffoldable && /* @__PURE__ */ jsx_dev_runtime7.jsxDEV("div", {
35441
+ }),
35442
+ !feature.configured && feature.scaffoldable && /* @__PURE__ */ jsx_runtime7.jsx("div", {
35437
35443
  className: "rule-controls fe-actions",
35438
- children: /* @__PURE__ */ jsx_dev_runtime7.jsxDEV("button", {
35444
+ children: /* @__PURE__ */ jsx_runtime7.jsx("button", {
35439
35445
  className: "ts-btn",
35440
35446
  disabled: busy,
35441
35447
  onClick: onScaffold,
35442
35448
  type: "button",
35443
35449
  children: result?.created ? "scaffolded" : "scaffold wiring"
35444
- }, undefined, false, undefined, this)
35445
- }, undefined, false, undefined, this)
35450
+ })
35451
+ })
35446
35452
  ]
35447
- }, undefined, true, undefined, this);
35448
- var NotInstalled = ({ npmUrl, repoUrl }) => /* @__PURE__ */ jsx_dev_runtime7.jsxDEV("div", {
35453
+ });
35454
+ var NotInstalled = ({ npmUrl, repoUrl }) => /* @__PURE__ */ jsx_runtime7.jsxs("div", {
35449
35455
  className: "shell",
35450
35456
  children: [
35451
- /* @__PURE__ */ jsx_dev_runtime7.jsxDEV("header", {
35457
+ /* @__PURE__ */ jsx_runtime7.jsx("header", {
35452
35458
  className: "topbar",
35453
- children: /* @__PURE__ */ jsx_dev_runtime7.jsxDEV("div", {
35459
+ children: /* @__PURE__ */ jsx_runtime7.jsxs("div", {
35454
35460
  className: "brand",
35455
35461
  children: [
35456
- /* @__PURE__ */ jsx_dev_runtime7.jsxDEV("h1", {
35462
+ /* @__PURE__ */ jsx_runtime7.jsxs("h1", {
35457
35463
  className: "wordmark",
35458
35464
  children: [
35459
35465
  "auth ",
35460
- /* @__PURE__ */ jsx_dev_runtime7.jsxDEV("em", {
35466
+ /* @__PURE__ */ jsx_runtime7.jsx("em", {
35461
35467
  children: "\xB7@absolutejs/auth"
35462
- }, undefined, false, undefined, this)
35468
+ })
35463
35469
  ]
35464
- }, undefined, true, undefined, this),
35465
- /* @__PURE__ */ jsx_dev_runtime7.jsxDEV("div", {
35470
+ }),
35471
+ /* @__PURE__ */ jsx_runtime7.jsxs("div", {
35466
35472
  className: "subpath",
35467
35473
  children: [
35468
- /* @__PURE__ */ jsx_dev_runtime7.jsxDEV("span", {
35474
+ /* @__PURE__ */ jsx_runtime7.jsx("span", {
35469
35475
  className: "dot"
35470
- }, undefined, false, undefined, this),
35476
+ }),
35471
35477
  "not installed in this project"
35472
35478
  ]
35473
- }, undefined, true, undefined, this)
35479
+ })
35474
35480
  ]
35475
- }, undefined, true, undefined, this)
35476
- }, undefined, false, undefined, this),
35477
- /* @__PURE__ */ jsx_dev_runtime7.jsxDEV("main", {
35478
- children: /* @__PURE__ */ jsx_dev_runtime7.jsxDEV("section", {
35481
+ })
35482
+ }),
35483
+ /* @__PURE__ */ jsx_runtime7.jsx("main", {
35484
+ children: /* @__PURE__ */ jsx_runtime7.jsxs("section", {
35479
35485
  className: "section",
35480
35486
  children: [
35481
- /* @__PURE__ */ jsx_dev_runtime7.jsxDEV("p", {
35487
+ /* @__PURE__ */ jsx_runtime7.jsx("p", {
35482
35488
  className: "rule-desc",
35483
35489
  children: "Enterprise auth for AbsoluteJS \u2014 OAuth2, credentials, SSO, SCIM, MFA, passkeys, organizations, and more. Install it, then this panel introspects your setup."
35484
- }, undefined, false, undefined, this),
35485
- /* @__PURE__ */ jsx_dev_runtime7.jsxDEV("pre", {
35490
+ }),
35491
+ /* @__PURE__ */ jsx_runtime7.jsx("pre", {
35486
35492
  className: "intg-code",
35487
35493
  children: "bun add @absolutejs/auth"
35488
- }, undefined, false, undefined, this),
35489
- /* @__PURE__ */ jsx_dev_runtime7.jsxDEV("div", {
35494
+ }),
35495
+ /* @__PURE__ */ jsx_runtime7.jsxs("div", {
35490
35496
  className: "auth-links",
35491
35497
  children: [
35492
- /* @__PURE__ */ jsx_dev_runtime7.jsxDEV("a", {
35498
+ /* @__PURE__ */ jsx_runtime7.jsx("a", {
35493
35499
  className: "auth-link",
35494
35500
  href: repoUrl,
35495
35501
  rel: "noreferrer",
35496
35502
  target: "_blank",
35497
35503
  children: "GitHub \u2197"
35498
- }, undefined, false, undefined, this),
35499
- /* @__PURE__ */ jsx_dev_runtime7.jsxDEV("a", {
35504
+ }),
35505
+ /* @__PURE__ */ jsx_runtime7.jsx("a", {
35500
35506
  className: "auth-link",
35501
35507
  href: npmUrl,
35502
35508
  rel: "noreferrer",
35503
35509
  target: "_blank",
35504
35510
  children: "npm \u2197"
35505
- }, undefined, false, undefined, this)
35511
+ })
35506
35512
  ]
35507
- }, undefined, true, undefined, this)
35513
+ })
35508
35514
  ]
35509
- }, undefined, true, undefined, this)
35510
- }, undefined, false, undefined, this)
35515
+ })
35516
+ })
35511
35517
  ]
35512
- }, undefined, true, undefined, this);
35518
+ });
35513
35519
  var AuthPanel = ({ state: initial }) => {
35514
35520
  const [state, setState] = import_react7.useState(initial);
35515
35521
  const [busy, setBusy] = import_react7.useState(null);
@@ -35556,137 +35562,137 @@ var AuthPanel = ({ state: initial }) => {
35556
35562
  }
35557
35563
  };
35558
35564
  if (!state.installed)
35559
- return /* @__PURE__ */ jsx_dev_runtime7.jsxDEV(NotInstalled, {
35565
+ return /* @__PURE__ */ jsx_runtime7.jsx(NotInstalled, {
35560
35566
  ...state
35561
- }, undefined, false, undefined, this);
35567
+ });
35562
35568
  const configuredCount = state.features.filter((feature) => feature.configured).length;
35563
35569
  const version = state.installedVersion ?? state.declaredVersion ?? "\u2014";
35564
35570
  const { settings } = state;
35565
35571
  const canEditSettings = settings.available && settings.configPath !== null;
35566
- return /* @__PURE__ */ jsx_dev_runtime7.jsxDEV("div", {
35572
+ return /* @__PURE__ */ jsx_runtime7.jsxs("div", {
35567
35573
  className: "shell",
35568
35574
  children: [
35569
- /* @__PURE__ */ jsx_dev_runtime7.jsxDEV("header", {
35575
+ /* @__PURE__ */ jsx_runtime7.jsxs("header", {
35570
35576
  className: "topbar",
35571
35577
  children: [
35572
- /* @__PURE__ */ jsx_dev_runtime7.jsxDEV("div", {
35578
+ /* @__PURE__ */ jsx_runtime7.jsxs("div", {
35573
35579
  className: "brand",
35574
35580
  children: [
35575
- /* @__PURE__ */ jsx_dev_runtime7.jsxDEV("h1", {
35581
+ /* @__PURE__ */ jsx_runtime7.jsxs("h1", {
35576
35582
  className: "wordmark",
35577
35583
  children: [
35578
35584
  "auth ",
35579
- /* @__PURE__ */ jsx_dev_runtime7.jsxDEV("em", {
35585
+ /* @__PURE__ */ jsx_runtime7.jsx("em", {
35580
35586
  children: "\xB7@absolutejs/auth"
35581
- }, undefined, false, undefined, this)
35587
+ })
35582
35588
  ]
35583
- }, undefined, true, undefined, this),
35584
- /* @__PURE__ */ jsx_dev_runtime7.jsxDEV("div", {
35589
+ }),
35590
+ /* @__PURE__ */ jsx_runtime7.jsxs("div", {
35585
35591
  className: "subpath",
35586
35592
  children: [
35587
- /* @__PURE__ */ jsx_dev_runtime7.jsxDEV("span", {
35593
+ /* @__PURE__ */ jsx_runtime7.jsx("span", {
35588
35594
  className: "dot"
35589
- }, undefined, false, undefined, this),
35595
+ }),
35590
35596
  state.setupPath ?? "no auth() call found"
35591
35597
  ]
35592
- }, undefined, true, undefined, this)
35598
+ })
35593
35599
  ]
35594
- }, undefined, true, undefined, this),
35595
- /* @__PURE__ */ jsx_dev_runtime7.jsxDEV("div", {
35600
+ }),
35601
+ /* @__PURE__ */ jsx_runtime7.jsxs("div", {
35596
35602
  className: "counts",
35597
35603
  children: [
35598
- /* @__PURE__ */ jsx_dev_runtime7.jsxDEV("div", {
35604
+ /* @__PURE__ */ jsx_runtime7.jsxs("div", {
35599
35605
  className: "count",
35600
35606
  children: [
35601
- /* @__PURE__ */ jsx_dev_runtime7.jsxDEV("b", {
35607
+ /* @__PURE__ */ jsx_runtime7.jsx("b", {
35602
35608
  children: version
35603
- }, undefined, false, undefined, this),
35604
- /* @__PURE__ */ jsx_dev_runtime7.jsxDEV("span", {
35609
+ }),
35610
+ /* @__PURE__ */ jsx_runtime7.jsx("span", {
35605
35611
  children: "version"
35606
- }, undefined, false, undefined, this)
35612
+ })
35607
35613
  ]
35608
- }, undefined, true, undefined, this),
35609
- /* @__PURE__ */ jsx_dev_runtime7.jsxDEV("div", {
35614
+ }),
35615
+ /* @__PURE__ */ jsx_runtime7.jsxs("div", {
35610
35616
  className: "count",
35611
35617
  children: [
35612
- /* @__PURE__ */ jsx_dev_runtime7.jsxDEV("b", {
35618
+ /* @__PURE__ */ jsx_runtime7.jsx("b", {
35613
35619
  children: configuredCount
35614
- }, undefined, false, undefined, this),
35615
- /* @__PURE__ */ jsx_dev_runtime7.jsxDEV("span", {
35620
+ }),
35621
+ /* @__PURE__ */ jsx_runtime7.jsx("span", {
35616
35622
  children: "features on"
35617
- }, undefined, false, undefined, this)
35623
+ })
35618
35624
  ]
35619
- }, undefined, true, undefined, this)
35625
+ })
35620
35626
  ]
35621
- }, undefined, true, undefined, this)
35627
+ })
35622
35628
  ]
35623
- }, undefined, true, undefined, this),
35624
- /* @__PURE__ */ jsx_dev_runtime7.jsxDEV("main", {
35629
+ }),
35630
+ /* @__PURE__ */ jsx_runtime7.jsxs("main", {
35625
35631
  children: [
35626
- state.introspected ? /* @__PURE__ */ jsx_dev_runtime7.jsxDEV("div", {
35632
+ state.introspected ? /* @__PURE__ */ jsx_runtime7.jsxs("div", {
35627
35633
  className: "auth-banner",
35628
35634
  children: [
35629
35635
  "Detected your ",
35630
- /* @__PURE__ */ jsx_dev_runtime7.jsxDEV("code", {
35636
+ /* @__PURE__ */ jsx_runtime7.jsx("code", {
35631
35637
  children: "auth()"
35632
- }, undefined, false, undefined, this),
35638
+ }),
35633
35639
  " setup",
35634
35640
  state.setupPath ? ` in ${state.setupPath}` : "",
35635
35641
  state.providerCount === null ? "" : ` \xB7 ${state.providerCount} OAuth providers`,
35636
35642
  state.usesSpread ? " \xB7 config uses a spread, some keys may be hidden" : "",
35637
35643
  "."
35638
35644
  ]
35639
- }, undefined, true, undefined, this) : /* @__PURE__ */ jsx_dev_runtime7.jsxDEV("div", {
35645
+ }) : /* @__PURE__ */ jsx_runtime7.jsxs("div", {
35640
35646
  className: "auth-banner warn",
35641
35647
  children: [
35642
35648
  "Couldn\u2019t find an ",
35643
- /* @__PURE__ */ jsx_dev_runtime7.jsxDEV("code", {
35649
+ /* @__PURE__ */ jsx_runtime7.jsx("code", {
35644
35650
  children: "auth()"
35645
- }, undefined, false, undefined, this),
35651
+ }),
35646
35652
  " call to introspect \u2014 showing the full capability catalog as a reference. Features are configured in code where you call",
35647
35653
  " ",
35648
- /* @__PURE__ */ jsx_dev_runtime7.jsxDEV("code", {
35654
+ /* @__PURE__ */ jsx_runtime7.jsx("code", {
35649
35655
  children: "auth()"
35650
- }, undefined, false, undefined, this),
35656
+ }),
35651
35657
  "."
35652
35658
  ]
35653
- }, undefined, true, undefined, this),
35654
- /* @__PURE__ */ jsx_dev_runtime7.jsxDEV("section", {
35659
+ }),
35660
+ /* @__PURE__ */ jsx_runtime7.jsxs("section", {
35655
35661
  className: "section",
35656
35662
  children: [
35657
- /* @__PURE__ */ jsx_dev_runtime7.jsxDEV("div", {
35663
+ /* @__PURE__ */ jsx_runtime7.jsxs("div", {
35658
35664
  className: "section-head",
35659
35665
  children: [
35660
- /* @__PURE__ */ jsx_dev_runtime7.jsxDEV("h2", {
35666
+ /* @__PURE__ */ jsx_runtime7.jsx("h2", {
35661
35667
  className: "section-title",
35662
35668
  children: "Core OAuth2 routes"
35663
- }, undefined, false, undefined, this),
35664
- /* @__PURE__ */ jsx_dev_runtime7.jsxDEV("span", {
35669
+ }),
35670
+ /* @__PURE__ */ jsx_runtime7.jsx("span", {
35665
35671
  className: "section-files",
35666
35672
  children: "always mounted"
35667
- }, undefined, false, undefined, this)
35673
+ })
35668
35674
  ]
35669
- }, undefined, true, undefined, this),
35670
- /* @__PURE__ */ jsx_dev_runtime7.jsxDEV("div", {
35675
+ }),
35676
+ /* @__PURE__ */ jsx_runtime7.jsx("div", {
35671
35677
  className: "auth-chips",
35672
- children: AUTH_CORE_ROUTES.map((route) => /* @__PURE__ */ jsx_dev_runtime7.jsxDEV("span", {
35678
+ children: AUTH_CORE_ROUTES.map((route) => /* @__PURE__ */ jsx_runtime7.jsx("span", {
35673
35679
  className: "auth-chip",
35674
35680
  children: route
35675
- }, route, false, undefined, this))
35676
- }, undefined, false, undefined, this)
35681
+ }, route))
35682
+ })
35677
35683
  ]
35678
- }, undefined, true, undefined, this),
35679
- /* @__PURE__ */ jsx_dev_runtime7.jsxDEV("section", {
35684
+ }),
35685
+ /* @__PURE__ */ jsx_runtime7.jsxs("section", {
35680
35686
  className: "section",
35681
35687
  children: [
35682
- /* @__PURE__ */ jsx_dev_runtime7.jsxDEV("div", {
35688
+ /* @__PURE__ */ jsx_runtime7.jsxs("div", {
35683
35689
  className: "section-head",
35684
35690
  children: [
35685
- /* @__PURE__ */ jsx_dev_runtime7.jsxDEV("h2", {
35691
+ /* @__PURE__ */ jsx_runtime7.jsx("h2", {
35686
35692
  className: "section-title",
35687
35693
  children: "Features"
35688
- }, undefined, false, undefined, this),
35689
- /* @__PURE__ */ jsx_dev_runtime7.jsxDEV("span", {
35694
+ }),
35695
+ /* @__PURE__ */ jsx_runtime7.jsxs("span", {
35690
35696
  className: "section-files",
35691
35697
  children: [
35692
35698
  configuredCount,
@@ -35695,218 +35701,218 @@ var AuthPanel = ({ state: initial }) => {
35695
35701
  " ",
35696
35702
  "configured"
35697
35703
  ]
35698
- }, undefined, true, undefined, this)
35704
+ })
35699
35705
  ]
35700
- }, undefined, true, undefined, this),
35701
- state.features.map((feature) => /* @__PURE__ */ jsx_dev_runtime7.jsxDEV(FeatureCard, {
35706
+ }),
35707
+ state.features.map((feature) => /* @__PURE__ */ jsx_runtime7.jsx(FeatureCard, {
35702
35708
  busy: busy === feature.id,
35703
35709
  feature,
35704
35710
  onScaffold: scaffold(feature.id),
35705
35711
  result: results[feature.id] ?? null
35706
- }, feature.id, false, undefined, this))
35712
+ }, feature.id))
35707
35713
  ]
35708
- }, undefined, true, undefined, this),
35709
- /* @__PURE__ */ jsx_dev_runtime7.jsxDEV("section", {
35714
+ }),
35715
+ /* @__PURE__ */ jsx_runtime7.jsxs("section", {
35710
35716
  className: "section",
35711
35717
  children: [
35712
- /* @__PURE__ */ jsx_dev_runtime7.jsxDEV("div", {
35718
+ /* @__PURE__ */ jsx_runtime7.jsxs("div", {
35713
35719
  className: "section-head",
35714
35720
  children: [
35715
- /* @__PURE__ */ jsx_dev_runtime7.jsxDEV("h2", {
35721
+ /* @__PURE__ */ jsx_runtime7.jsx("h2", {
35716
35722
  className: "section-title",
35717
35723
  children: "Settings"
35718
- }, undefined, false, undefined, this),
35719
- /* @__PURE__ */ jsx_dev_runtime7.jsxDEV("span", {
35724
+ }),
35725
+ /* @__PURE__ */ jsx_runtime7.jsx("span", {
35720
35726
  className: "section-files",
35721
35727
  children: settings.configPath ?? "auth.config.ts"
35722
- }, undefined, false, undefined, this)
35728
+ })
35723
35729
  ]
35724
- }, undefined, true, undefined, this),
35725
- !settings.available && /* @__PURE__ */ jsx_dev_runtime7.jsxDEV("p", {
35730
+ }),
35731
+ !settings.available && /* @__PURE__ */ jsx_runtime7.jsxs("p", {
35726
35732
  className: "rule-desc",
35727
35733
  children: [
35728
35734
  "Upgrade ",
35729
- /* @__PURE__ */ jsx_dev_runtime7.jsxDEV("code", {
35735
+ /* @__PURE__ */ jsx_runtime7.jsx("code", {
35730
35736
  children: "@absolutejs/auth"
35731
- }, undefined, false, undefined, this),
35737
+ }),
35732
35738
  " to a version that exports ",
35733
- /* @__PURE__ */ jsx_dev_runtime7.jsxDEV("code", {
35739
+ /* @__PURE__ */ jsx_runtime7.jsx("code", {
35734
35740
  children: "AuthSettings"
35735
- }, undefined, false, undefined, this),
35741
+ }),
35736
35742
  " to edit settings here."
35737
35743
  ]
35738
- }, undefined, true, undefined, this),
35739
- settings.available && settings.configPath === null && /* @__PURE__ */ jsx_dev_runtime7.jsxDEV("p", {
35744
+ }),
35745
+ settings.available && settings.configPath === null && /* @__PURE__ */ jsx_runtime7.jsxs("p", {
35740
35746
  className: "rule-desc",
35741
35747
  children: [
35742
35748
  "Create an ",
35743
- /* @__PURE__ */ jsx_dev_runtime7.jsxDEV("code", {
35749
+ /* @__PURE__ */ jsx_runtime7.jsx("code", {
35744
35750
  children: "auth.config.ts"
35745
- }, undefined, false, undefined, this),
35751
+ }),
35746
35752
  " exporting",
35747
35753
  " ",
35748
- /* @__PURE__ */ jsx_dev_runtime7.jsxDEV("code", {
35754
+ /* @__PURE__ */ jsx_runtime7.jsx("code", {
35749
35755
  children: "defineAuthSettings({})"
35750
- }, undefined, false, undefined, this),
35756
+ }),
35751
35757
  " and spread it into your ",
35752
- /* @__PURE__ */ jsx_dev_runtime7.jsxDEV("code", {
35758
+ /* @__PURE__ */ jsx_runtime7.jsx("code", {
35753
35759
  children: "auth()"
35754
- }, undefined, false, undefined, this),
35760
+ }),
35755
35761
  " call, then edit the route paths, durations, and limits here."
35756
35762
  ]
35757
- }, undefined, true, undefined, this),
35758
- canEditSettings && settings.fields.map((field) => /* @__PURE__ */ jsx_dev_runtime7.jsxDEV(SettingRow, {
35763
+ }),
35764
+ canEditSettings && settings.fields.map((field) => /* @__PURE__ */ jsx_runtime7.jsx(SettingRow, {
35759
35765
  busy: busy === `setting:${field.name}`,
35760
35766
  field,
35761
35767
  isSet: Object.prototype.hasOwnProperty.call(settings.current, field.name),
35762
35768
  onSave: saveSetting(field.name),
35763
35769
  value: settings.current[field.name]
35764
- }, field.name, false, undefined, this))
35770
+ }, field.name))
35765
35771
  ]
35766
- }, undefined, true, undefined, this),
35767
- /* @__PURE__ */ jsx_dev_runtime7.jsxDEV("section", {
35772
+ }),
35773
+ /* @__PURE__ */ jsx_runtime7.jsxs("section", {
35768
35774
  className: "section",
35769
35775
  children: [
35770
- /* @__PURE__ */ jsx_dev_runtime7.jsxDEV("div", {
35776
+ /* @__PURE__ */ jsx_runtime7.jsx("div", {
35771
35777
  className: "section-head",
35772
- children: /* @__PURE__ */ jsx_dev_runtime7.jsxDEV("h2", {
35778
+ children: /* @__PURE__ */ jsx_runtime7.jsx("h2", {
35773
35779
  className: "section-title",
35774
35780
  children: "Related"
35775
- }, undefined, false, undefined, this)
35776
- }, undefined, false, undefined, this),
35777
- /* @__PURE__ */ jsx_dev_runtime7.jsxDEV("p", {
35781
+ })
35782
+ }),
35783
+ /* @__PURE__ */ jsx_runtime7.jsxs("p", {
35778
35784
  className: "rule-desc",
35779
35785
  children: [
35780
35786
  "Signing your own API/service tokens (not user login)? See ",
35781
- /* @__PURE__ */ jsx_dev_runtime7.jsxDEV("code", {
35787
+ /* @__PURE__ */ jsx_runtime7.jsx("code", {
35782
35788
  children: "@elysia/jwt"
35783
- }, undefined, false, undefined, this),
35789
+ }),
35784
35790
  " in the",
35785
35791
  " ",
35786
- /* @__PURE__ */ jsx_dev_runtime7.jsxDEV("a", {
35792
+ /* @__PURE__ */ jsx_runtime7.jsx("a", {
35787
35793
  className: "auth-link",
35788
35794
  href: "/integrations",
35789
35795
  children: "Integrations panel"
35790
- }, undefined, false, undefined, this),
35796
+ }),
35791
35797
  "."
35792
35798
  ]
35793
- }, undefined, true, undefined, this),
35794
- /* @__PURE__ */ jsx_dev_runtime7.jsxDEV("div", {
35799
+ }),
35800
+ /* @__PURE__ */ jsx_runtime7.jsxs("div", {
35795
35801
  className: "auth-links",
35796
35802
  children: [
35797
- /* @__PURE__ */ jsx_dev_runtime7.jsxDEV("a", {
35803
+ /* @__PURE__ */ jsx_runtime7.jsx("a", {
35798
35804
  className: "auth-link",
35799
35805
  href: `${state.repoUrl}#features`,
35800
35806
  rel: "noreferrer",
35801
35807
  target: "_blank",
35802
35808
  children: "Features \u2197"
35803
- }, undefined, false, undefined, this),
35804
- /* @__PURE__ */ jsx_dev_runtime7.jsxDEV("a", {
35809
+ }),
35810
+ /* @__PURE__ */ jsx_runtime7.jsx("a", {
35805
35811
  className: "auth-link",
35806
35812
  href: `${state.repoUrl}#configuration-options`,
35807
35813
  rel: "noreferrer",
35808
35814
  target: "_blank",
35809
35815
  children: "Configuration \u2197"
35810
- }, undefined, false, undefined, this),
35811
- /* @__PURE__ */ jsx_dev_runtime7.jsxDEV("a", {
35816
+ }),
35817
+ /* @__PURE__ */ jsx_runtime7.jsx("a", {
35812
35818
  className: "auth-link",
35813
35819
  href: state.npmUrl,
35814
35820
  rel: "noreferrer",
35815
35821
  target: "_blank",
35816
35822
  children: "npm \u2197"
35817
- }, undefined, false, undefined, this)
35823
+ })
35818
35824
  ]
35819
- }, undefined, true, undefined, this)
35825
+ })
35820
35826
  ]
35821
- }, undefined, true, undefined, this)
35827
+ })
35822
35828
  ]
35823
- }, undefined, true, undefined, this),
35824
- notice && /* @__PURE__ */ jsx_dev_runtime7.jsxDEV("div", {
35829
+ }),
35830
+ notice && /* @__PURE__ */ jsx_runtime7.jsxs("div", {
35825
35831
  className: `toast ${notice.kind}`,
35826
35832
  children: [
35827
- /* @__PURE__ */ jsx_dev_runtime7.jsxDEV("b", {
35833
+ /* @__PURE__ */ jsx_runtime7.jsx("b", {
35828
35834
  children: notice.kind === "ok" ? "\u2713" : "\u2715"
35829
- }, undefined, false, undefined, this),
35835
+ }),
35830
35836
  notice.text
35831
35837
  ]
35832
- }, undefined, true, undefined, this)
35838
+ })
35833
35839
  ]
35834
- }, undefined, true, undefined, this);
35840
+ });
35835
35841
  };
35836
35842
 
35837
35843
  // src/cli/config/packageJson/PackageJsonPanel.tsx
35838
35844
  var import_react8 = __toESM(require_react(), 1);
35839
- var jsx_dev_runtime8 = __toESM(require_jsx_dev_runtime(), 1);
35845
+ var jsx_runtime8 = __toESM(require_jsx_runtime(), 1);
35840
35846
  var matchesQuery5 = (query, text) => query === "" || text.toLowerCase().includes(query.toLowerCase());
35841
35847
  var FieldRow2 = ({ field, isSet, onSave, value }) => {
35842
35848
  const [draft, setDraft] = import_react8.useState(value);
35843
- return /* @__PURE__ */ jsx_dev_runtime8.jsxDEV("div", {
35849
+ return /* @__PURE__ */ jsx_runtime8.jsxs("div", {
35844
35850
  className: "rule fe-block",
35845
35851
  children: [
35846
- /* @__PURE__ */ jsx_dev_runtime8.jsxDEV("div", {
35852
+ /* @__PURE__ */ jsx_runtime8.jsxs("div", {
35847
35853
  className: "rule-main",
35848
35854
  children: [
35849
- /* @__PURE__ */ jsx_dev_runtime8.jsxDEV("div", {
35855
+ /* @__PURE__ */ jsx_runtime8.jsxs("div", {
35850
35856
  className: "rule-name-row",
35851
35857
  children: [
35852
- /* @__PURE__ */ jsx_dev_runtime8.jsxDEV("span", {
35858
+ /* @__PURE__ */ jsx_runtime8.jsx("span", {
35853
35859
  className: "rule-name",
35854
35860
  children: field.name
35855
- }, undefined, false, undefined, this),
35856
- isSet && /* @__PURE__ */ jsx_dev_runtime8.jsxDEV("span", {
35861
+ }),
35862
+ isSet && /* @__PURE__ */ jsx_runtime8.jsx("span", {
35857
35863
  className: "badge src",
35858
35864
  children: "set"
35859
- }, undefined, false, undefined, this)
35865
+ })
35860
35866
  ]
35861
- }, undefined, true, undefined, this),
35862
- /* @__PURE__ */ jsx_dev_runtime8.jsxDEV("div", {
35867
+ }),
35868
+ /* @__PURE__ */ jsx_runtime8.jsx("div", {
35863
35869
  className: "fe-root",
35864
- children: /* @__PURE__ */ jsx_dev_runtime8.jsxDEV(FieldEditor, {
35870
+ children: /* @__PURE__ */ jsx_runtime8.jsx(FieldEditor, {
35865
35871
  onChange: setDraft,
35866
35872
  schema: field.schema,
35867
35873
  value: draft
35868
- }, undefined, false, undefined, this)
35869
- }, undefined, false, undefined, this)
35874
+ })
35875
+ })
35870
35876
  ]
35871
- }, undefined, true, undefined, this),
35872
- /* @__PURE__ */ jsx_dev_runtime8.jsxDEV("div", {
35877
+ }),
35878
+ /* @__PURE__ */ jsx_runtime8.jsxs("div", {
35873
35879
  className: "rule-controls fe-actions",
35874
35880
  children: [
35875
- /* @__PURE__ */ jsx_dev_runtime8.jsxDEV("button", {
35881
+ /* @__PURE__ */ jsx_runtime8.jsx("button", {
35876
35882
  className: "ts-btn",
35877
35883
  onClick: () => onSave(draft),
35878
35884
  type: "button",
35879
35885
  children: "save"
35880
- }, undefined, false, undefined, this),
35881
- isSet && /* @__PURE__ */ jsx_dev_runtime8.jsxDEV("button", {
35886
+ }),
35887
+ isSet && /* @__PURE__ */ jsx_runtime8.jsx("button", {
35882
35888
  className: "ts-clear",
35883
35889
  onClick: () => onSave(undefined, true),
35884
35890
  type: "button",
35885
35891
  children: "unset"
35886
- }, undefined, false, undefined, this)
35892
+ })
35887
35893
  ]
35888
- }, undefined, true, undefined, this)
35894
+ })
35889
35895
  ]
35890
- }, undefined, true, undefined, this);
35896
+ });
35891
35897
  };
35892
35898
  var ScriptRow = ({ onRemove, onSave, script }) => {
35893
35899
  const [draft, setDraft] = import_react8.useState(script.command);
35894
- return /* @__PURE__ */ jsx_dev_runtime8.jsxDEV("div", {
35900
+ return /* @__PURE__ */ jsx_runtime8.jsx("div", {
35895
35901
  className: "rule",
35896
- children: /* @__PURE__ */ jsx_dev_runtime8.jsxDEV("div", {
35902
+ children: /* @__PURE__ */ jsx_runtime8.jsxs("div", {
35897
35903
  className: "rule-main",
35898
35904
  children: [
35899
- /* @__PURE__ */ jsx_dev_runtime8.jsxDEV("div", {
35905
+ /* @__PURE__ */ jsx_runtime8.jsx("div", {
35900
35906
  className: "rule-name-row",
35901
- children: /* @__PURE__ */ jsx_dev_runtime8.jsxDEV("span", {
35907
+ children: /* @__PURE__ */ jsx_runtime8.jsx("span", {
35902
35908
  className: "rule-name",
35903
35909
  children: script.name
35904
- }, undefined, false, undefined, this)
35905
- }, undefined, false, undefined, this),
35906
- /* @__PURE__ */ jsx_dev_runtime8.jsxDEV("div", {
35910
+ })
35911
+ }),
35912
+ /* @__PURE__ */ jsx_runtime8.jsxs("div", {
35907
35913
  className: "ts-control",
35908
35914
  children: [
35909
- /* @__PURE__ */ jsx_dev_runtime8.jsxDEV("input", {
35915
+ /* @__PURE__ */ jsx_runtime8.jsx("input", {
35910
35916
  className: "ts-input wide",
35911
35917
  onChange: (event) => setDraft(event.target.value),
35912
35918
  onKeyDown: (event) => {
@@ -35915,24 +35921,24 @@ var ScriptRow = ({ onRemove, onSave, script }) => {
35915
35921
  },
35916
35922
  spellCheck: false,
35917
35923
  value: draft
35918
- }, undefined, false, undefined, this),
35919
- /* @__PURE__ */ jsx_dev_runtime8.jsxDEV("button", {
35924
+ }),
35925
+ /* @__PURE__ */ jsx_runtime8.jsx("button", {
35920
35926
  className: "ts-btn",
35921
35927
  onClick: () => onSave(draft),
35922
35928
  type: "button",
35923
35929
  children: "save"
35924
- }, undefined, false, undefined, this),
35925
- /* @__PURE__ */ jsx_dev_runtime8.jsxDEV("button", {
35930
+ }),
35931
+ /* @__PURE__ */ jsx_runtime8.jsx("button", {
35926
35932
  className: "ts-clear",
35927
35933
  onClick: onRemove,
35928
35934
  type: "button",
35929
35935
  children: "remove"
35930
- }, undefined, false, undefined, this)
35936
+ })
35931
35937
  ]
35932
- }, undefined, true, undefined, this)
35938
+ })
35933
35939
  ]
35934
- }, undefined, true, undefined, this)
35935
- }, undefined, false, undefined, this);
35940
+ })
35941
+ });
35936
35942
  };
35937
35943
  var AddScript = ({ onAdd }) => {
35938
35944
  const [name, setName] = import_react8.useState("");
@@ -35944,21 +35950,21 @@ var AddScript = ({ onAdd }) => {
35944
35950
  setName("");
35945
35951
  setCommand("");
35946
35952
  };
35947
- return /* @__PURE__ */ jsx_dev_runtime8.jsxDEV("div", {
35953
+ return /* @__PURE__ */ jsx_runtime8.jsx("div", {
35948
35954
  className: "rule",
35949
- children: /* @__PURE__ */ jsx_dev_runtime8.jsxDEV("div", {
35955
+ children: /* @__PURE__ */ jsx_runtime8.jsx("div", {
35950
35956
  className: "rule-main",
35951
- children: /* @__PURE__ */ jsx_dev_runtime8.jsxDEV("div", {
35957
+ children: /* @__PURE__ */ jsx_runtime8.jsxs("div", {
35952
35958
  className: "ts-control",
35953
35959
  children: [
35954
- /* @__PURE__ */ jsx_dev_runtime8.jsxDEV("input", {
35960
+ /* @__PURE__ */ jsx_runtime8.jsx("input", {
35955
35961
  className: "ts-input",
35956
35962
  onChange: (event) => setName(event.target.value),
35957
35963
  placeholder: "script name",
35958
35964
  spellCheck: false,
35959
35965
  value: name
35960
- }, undefined, false, undefined, this),
35961
- /* @__PURE__ */ jsx_dev_runtime8.jsxDEV("input", {
35966
+ }),
35967
+ /* @__PURE__ */ jsx_runtime8.jsx("input", {
35962
35968
  className: "ts-input wide",
35963
35969
  onChange: (event) => setCommand(event.target.value),
35964
35970
  onKeyDown: (event) => {
@@ -35968,17 +35974,17 @@ var AddScript = ({ onAdd }) => {
35968
35974
  placeholder: "command",
35969
35975
  spellCheck: false,
35970
35976
  value: command
35971
- }, undefined, false, undefined, this),
35972
- /* @__PURE__ */ jsx_dev_runtime8.jsxDEV("button", {
35977
+ }),
35978
+ /* @__PURE__ */ jsx_runtime8.jsx("button", {
35973
35979
  className: "ts-btn",
35974
35980
  onClick: add,
35975
35981
  type: "button",
35976
35982
  children: "add"
35977
- }, undefined, false, undefined, this)
35983
+ })
35978
35984
  ]
35979
- }, undefined, true, undefined, this)
35980
- }, undefined, false, undefined, this)
35981
- }, undefined, false, undefined, this);
35985
+ })
35986
+ })
35987
+ });
35982
35988
  };
35983
35989
  var PackageJsonPanel = ({ state: initial }) => {
35984
35990
  const [state, setState] = import_react8.useState(initial);
@@ -36009,95 +36015,95 @@ var PackageJsonPanel = ({ state: initial }) => {
36009
36015
  const saveField = (name) => (value, remove) => post("/api/package/field", { name, remove, value });
36010
36016
  const scripts = state.scripts.filter((script) => matchesQuery5(query, script.name) || matchesQuery5(query, script.command));
36011
36017
  const fields = state.fields.filter((field) => matchesQuery5(query, field.name));
36012
- return /* @__PURE__ */ jsx_dev_runtime8.jsxDEV("div", {
36018
+ return /* @__PURE__ */ jsx_runtime8.jsxs("div", {
36013
36019
  className: "shell",
36014
36020
  children: [
36015
- /* @__PURE__ */ jsx_dev_runtime8.jsxDEV("header", {
36021
+ /* @__PURE__ */ jsx_runtime8.jsxs("header", {
36016
36022
  className: "topbar",
36017
36023
  children: [
36018
- /* @__PURE__ */ jsx_dev_runtime8.jsxDEV("div", {
36024
+ /* @__PURE__ */ jsx_runtime8.jsxs("div", {
36019
36025
  className: "brand",
36020
36026
  children: [
36021
- /* @__PURE__ */ jsx_dev_runtime8.jsxDEV("h1", {
36027
+ /* @__PURE__ */ jsx_runtime8.jsxs("h1", {
36022
36028
  className: "wordmark",
36023
36029
  children: [
36024
36030
  "package ",
36025
- /* @__PURE__ */ jsx_dev_runtime8.jsxDEV("em", {
36031
+ /* @__PURE__ */ jsx_runtime8.jsx("em", {
36026
36032
  children: ".json"
36027
- }, undefined, false, undefined, this)
36033
+ })
36028
36034
  ]
36029
- }, undefined, true, undefined, this),
36030
- /* @__PURE__ */ jsx_dev_runtime8.jsxDEV("div", {
36035
+ }),
36036
+ /* @__PURE__ */ jsx_runtime8.jsxs("div", {
36031
36037
  className: "subpath",
36032
36038
  children: [
36033
- /* @__PURE__ */ jsx_dev_runtime8.jsxDEV("span", {
36039
+ /* @__PURE__ */ jsx_runtime8.jsx("span", {
36034
36040
  className: "dot"
36035
- }, undefined, false, undefined, this),
36041
+ }),
36036
36042
  state.configPath ?? "no package.json found"
36037
36043
  ]
36038
- }, undefined, true, undefined, this)
36044
+ })
36039
36045
  ]
36040
- }, undefined, true, undefined, this),
36041
- /* @__PURE__ */ jsx_dev_runtime8.jsxDEV("div", {
36046
+ }),
36047
+ /* @__PURE__ */ jsx_runtime8.jsxs("div", {
36042
36048
  className: "counts",
36043
36049
  children: [
36044
- /* @__PURE__ */ jsx_dev_runtime8.jsxDEV("div", {
36050
+ /* @__PURE__ */ jsx_runtime8.jsxs("div", {
36045
36051
  className: "count",
36046
36052
  children: [
36047
- /* @__PURE__ */ jsx_dev_runtime8.jsxDEV("b", {
36053
+ /* @__PURE__ */ jsx_runtime8.jsx("b", {
36048
36054
  children: state.scripts.length
36049
- }, undefined, false, undefined, this),
36050
- /* @__PURE__ */ jsx_dev_runtime8.jsxDEV("span", {
36055
+ }),
36056
+ /* @__PURE__ */ jsx_runtime8.jsx("span", {
36051
36057
  children: "scripts"
36052
- }, undefined, false, undefined, this)
36058
+ })
36053
36059
  ]
36054
- }, undefined, true, undefined, this),
36055
- /* @__PURE__ */ jsx_dev_runtime8.jsxDEV("div", {
36060
+ }),
36061
+ /* @__PURE__ */ jsx_runtime8.jsxs("div", {
36056
36062
  className: "count",
36057
36063
  children: [
36058
- /* @__PURE__ */ jsx_dev_runtime8.jsxDEV("b", {
36064
+ /* @__PURE__ */ jsx_runtime8.jsx("b", {
36059
36065
  children: state.fields.length
36060
- }, undefined, false, undefined, this),
36061
- /* @__PURE__ */ jsx_dev_runtime8.jsxDEV("span", {
36066
+ }),
36067
+ /* @__PURE__ */ jsx_runtime8.jsx("span", {
36062
36068
  children: "fields"
36063
- }, undefined, false, undefined, this)
36069
+ })
36064
36070
  ]
36065
- }, undefined, true, undefined, this)
36071
+ })
36066
36072
  ]
36067
- }, undefined, true, undefined, this)
36073
+ })
36068
36074
  ]
36069
- }, undefined, true, undefined, this),
36070
- /* @__PURE__ */ jsx_dev_runtime8.jsxDEV("div", {
36075
+ }),
36076
+ /* @__PURE__ */ jsx_runtime8.jsx("div", {
36071
36077
  className: "controls",
36072
- children: /* @__PURE__ */ jsx_dev_runtime8.jsxDEV("input", {
36078
+ children: /* @__PURE__ */ jsx_runtime8.jsx("input", {
36073
36079
  className: "search",
36074
36080
  onChange: (event) => setQuery(event.target.value),
36075
36081
  placeholder: "Search scripts or fields\u2026",
36076
36082
  value: query
36077
- }, undefined, false, undefined, this)
36078
- }, undefined, false, undefined, this),
36079
- /* @__PURE__ */ jsx_dev_runtime8.jsxDEV("main", {
36083
+ })
36084
+ }),
36085
+ /* @__PURE__ */ jsx_runtime8.jsxs("main", {
36080
36086
  children: [
36081
- /* @__PURE__ */ jsx_dev_runtime8.jsxDEV("section", {
36087
+ /* @__PURE__ */ jsx_runtime8.jsxs("section", {
36082
36088
  className: "section",
36083
36089
  children: [
36084
- /* @__PURE__ */ jsx_dev_runtime8.jsxDEV("div", {
36090
+ /* @__PURE__ */ jsx_runtime8.jsxs("div", {
36085
36091
  className: "section-head",
36086
36092
  children: [
36087
- /* @__PURE__ */ jsx_dev_runtime8.jsxDEV("h2", {
36093
+ /* @__PURE__ */ jsx_runtime8.jsx("h2", {
36088
36094
  className: "section-title",
36089
36095
  children: "Scripts"
36090
- }, undefined, false, undefined, this),
36091
- /* @__PURE__ */ jsx_dev_runtime8.jsxDEV("span", {
36096
+ }),
36097
+ /* @__PURE__ */ jsx_runtime8.jsxs("span", {
36092
36098
  className: "section-files",
36093
36099
  children: [
36094
36100
  state.scripts.length,
36095
36101
  " scripts"
36096
36102
  ]
36097
- }, undefined, true, undefined, this)
36103
+ })
36098
36104
  ]
36099
- }, undefined, true, undefined, this),
36100
- scripts.map((script) => /* @__PURE__ */ jsx_dev_runtime8.jsxDEV(ScriptRow, {
36105
+ }),
36106
+ scripts.map((script) => /* @__PURE__ */ jsx_runtime8.jsx(ScriptRow, {
36101
36107
  onRemove: () => post("/api/package/script", {
36102
36108
  name: script.name,
36103
36109
  remove: true
@@ -36107,56 +36113,56 @@ var PackageJsonPanel = ({ state: initial }) => {
36107
36113
  name: script.name
36108
36114
  }),
36109
36115
  script
36110
- }, script.name, false, undefined, this)),
36111
- query === "" && /* @__PURE__ */ jsx_dev_runtime8.jsxDEV(AddScript, {
36116
+ }, script.name)),
36117
+ query === "" && /* @__PURE__ */ jsx_runtime8.jsx(AddScript, {
36112
36118
  onAdd: (name, command) => post("/api/package/script", { command, name })
36113
- }, undefined, false, undefined, this)
36119
+ })
36114
36120
  ]
36115
- }, undefined, true, undefined, this),
36116
- /* @__PURE__ */ jsx_dev_runtime8.jsxDEV("section", {
36121
+ }),
36122
+ /* @__PURE__ */ jsx_runtime8.jsxs("section", {
36117
36123
  className: "section",
36118
36124
  children: [
36119
- /* @__PURE__ */ jsx_dev_runtime8.jsxDEV("div", {
36125
+ /* @__PURE__ */ jsx_runtime8.jsxs("div", {
36120
36126
  className: "section-head",
36121
36127
  children: [
36122
- /* @__PURE__ */ jsx_dev_runtime8.jsxDEV("h2", {
36128
+ /* @__PURE__ */ jsx_runtime8.jsx("h2", {
36123
36129
  className: "section-title",
36124
36130
  children: "Fields"
36125
- }, undefined, false, undefined, this),
36126
- /* @__PURE__ */ jsx_dev_runtime8.jsxDEV("span", {
36131
+ }),
36132
+ /* @__PURE__ */ jsx_runtime8.jsxs("span", {
36127
36133
  className: "section-files",
36128
36134
  children: [
36129
36135
  state.fields.length,
36130
36136
  " fields"
36131
36137
  ]
36132
- }, undefined, true, undefined, this)
36138
+ })
36133
36139
  ]
36134
- }, undefined, true, undefined, this),
36135
- fields.map((field) => /* @__PURE__ */ jsx_dev_runtime8.jsxDEV(FieldRow2, {
36140
+ }),
36141
+ fields.map((field) => /* @__PURE__ */ jsx_runtime8.jsx(FieldRow2, {
36136
36142
  field,
36137
36143
  isSet: Object.prototype.hasOwnProperty.call(state.current, field.name),
36138
36144
  onSave: saveField(field.name),
36139
36145
  value: state.current[field.name]
36140
- }, field.name, false, undefined, this))
36146
+ }, field.name))
36141
36147
  ]
36142
- }, undefined, true, undefined, this)
36148
+ })
36143
36149
  ]
36144
- }, undefined, true, undefined, this),
36145
- notice && /* @__PURE__ */ jsx_dev_runtime8.jsxDEV("div", {
36150
+ }),
36151
+ notice && /* @__PURE__ */ jsx_runtime8.jsxs("div", {
36146
36152
  className: `toast ${notice.kind}`,
36147
36153
  children: [
36148
- /* @__PURE__ */ jsx_dev_runtime8.jsxDEV("b", {
36154
+ /* @__PURE__ */ jsx_runtime8.jsx("b", {
36149
36155
  children: notice.kind === "ok" ? "\u2713" : "\u2715"
36150
- }, undefined, false, undefined, this),
36156
+ }),
36151
36157
  notice.text
36152
36158
  ]
36153
- }, undefined, true, undefined, this)
36159
+ })
36154
36160
  ]
36155
- }, undefined, true, undefined, this);
36161
+ });
36156
36162
  };
36157
36163
 
36158
36164
  // src/cli/config/page/PanelHost.tsx
36159
- var jsx_dev_runtime9 = __toESM(require_jsx_dev_runtime(), 1);
36165
+ var jsx_runtime9 = __toESM(require_jsx_runtime(), 1);
36160
36166
  var ENDPOINTS = {
36161
36167
  absolute: "/api/absolute",
36162
36168
  auth: "/api/auth",
@@ -36175,36 +36181,36 @@ var LABELS = {
36175
36181
  prettier: "Prettier",
36176
36182
  tsconfig: "tsconfig"
36177
36183
  };
36178
- var Message = ({ body, title }) => /* @__PURE__ */ jsx_dev_runtime9.jsxDEV("div", {
36184
+ var Message = ({ body, title }) => /* @__PURE__ */ jsx_runtime9.jsxs("div", {
36179
36185
  className: "cfg-placeholder",
36180
36186
  children: [
36181
- /* @__PURE__ */ jsx_dev_runtime9.jsxDEV("h2", {
36187
+ /* @__PURE__ */ jsx_runtime9.jsx("h2", {
36182
36188
  className: "cfg-placeholder-title",
36183
36189
  children: title
36184
- }, undefined, false, undefined, this),
36185
- /* @__PURE__ */ jsx_dev_runtime9.jsxDEV("p", {
36190
+ }),
36191
+ /* @__PURE__ */ jsx_runtime9.jsx("p", {
36186
36192
  className: "cfg-placeholder-text",
36187
36193
  children: body
36188
- }, undefined, false, undefined, this)
36194
+ })
36189
36195
  ]
36190
- }, undefined, true, undefined, this);
36191
- var Skeleton = ({ label }) => /* @__PURE__ */ jsx_dev_runtime9.jsxDEV("div", {
36196
+ });
36197
+ var Skeleton = ({ label }) => /* @__PURE__ */ jsx_runtime9.jsxs("div", {
36192
36198
  className: "cfg-placeholder",
36193
36199
  children: [
36194
- /* @__PURE__ */ jsx_dev_runtime9.jsxDEV("h2", {
36200
+ /* @__PURE__ */ jsx_runtime9.jsxs("h2", {
36195
36201
  className: "cfg-placeholder-title cfg-loading",
36196
36202
  children: [
36197
36203
  "Loading ",
36198
36204
  label,
36199
36205
  "\u2026"
36200
36206
  ]
36201
- }, undefined, true, undefined, this),
36202
- /* @__PURE__ */ jsx_dev_runtime9.jsxDEV("p", {
36207
+ }),
36208
+ /* @__PURE__ */ jsx_runtime9.jsx("p", {
36203
36209
  className: "cfg-placeholder-text",
36204
36210
  children: "Reading your configuration."
36205
- }, undefined, false, undefined, this)
36211
+ })
36206
36212
  ]
36207
- }, undefined, true, undefined, this);
36213
+ });
36208
36214
  var isCatalog = (value) => isRecord(value) && Array.isArray(value.meta) && Array.isArray(value.blocks);
36209
36215
  var isTsState = (value) => isRecord(value) && Array.isArray(value.options);
36210
36216
  var isPrettierState = (value) => isRecord(value) && Array.isArray(value.options);
@@ -36214,60 +36220,60 @@ var isIntegrationsState = (value) => isRecord(value) && Array.isArray(value.item
36214
36220
  var isPackageState = (value) => isRecord(value) && Array.isArray(value.scripts) && Array.isArray(value.fields);
36215
36221
  var renderPanel = (panel, data) => {
36216
36222
  if (panel === "eslint") {
36217
- return isCatalog(data) && data.configPath ? /* @__PURE__ */ jsx_dev_runtime9.jsxDEV(EslintPanel, {
36223
+ return isCatalog(data) && data.configPath ? /* @__PURE__ */ jsx_runtime9.jsx(EslintPanel, {
36218
36224
  catalog: data
36219
- }, undefined, false, undefined, this) : /* @__PURE__ */ jsx_dev_runtime9.jsxDEV(Message, {
36225
+ }) : /* @__PURE__ */ jsx_runtime9.jsx(Message, {
36220
36226
  body: "No flat ESLint config (eslint.config.{js,mjs,cjs,ts}) was found in this project.",
36221
36227
  title: "No ESLint config"
36222
- }, undefined, false, undefined, this);
36228
+ });
36223
36229
  }
36224
36230
  if (panel === "tsconfig") {
36225
- return isTsState(data) && data.configPath ? /* @__PURE__ */ jsx_dev_runtime9.jsxDEV(TsconfigPanel, {
36231
+ return isTsState(data) && data.configPath ? /* @__PURE__ */ jsx_runtime9.jsx(TsconfigPanel, {
36226
36232
  state: data
36227
- }, undefined, false, undefined, this) : /* @__PURE__ */ jsx_dev_runtime9.jsxDEV(Message, {
36233
+ }) : /* @__PURE__ */ jsx_runtime9.jsx(Message, {
36228
36234
  body: "No tsconfig.json or jsconfig.json was found in this project.",
36229
36235
  title: "No tsconfig found"
36230
- }, undefined, false, undefined, this);
36236
+ });
36231
36237
  }
36232
36238
  if (panel === "prettier") {
36233
- return isPrettierState(data) && data.editable ? /* @__PURE__ */ jsx_dev_runtime9.jsxDEV(PrettierPanel, {
36239
+ return isPrettierState(data) && data.editable ? /* @__PURE__ */ jsx_runtime9.jsx(PrettierPanel, {
36234
36240
  state: data
36235
- }, undefined, false, undefined, this) : /* @__PURE__ */ jsx_dev_runtime9.jsxDEV(Message, {
36241
+ }) : /* @__PURE__ */ jsx_runtime9.jsx(Message, {
36236
36242
  body: "Prettier isn't installed, or your config uses a JS/YAML format this editor can't rewrite. Switch to .prettierrc.json to edit it here.",
36237
36243
  title: "Prettier unavailable"
36238
- }, undefined, false, undefined, this);
36244
+ });
36239
36245
  }
36240
36246
  if (panel === "absolute") {
36241
- return isAbsoluteState(data) && data.configPath ? /* @__PURE__ */ jsx_dev_runtime9.jsxDEV(AbsoluteConfigPanel, {
36247
+ return isAbsoluteState(data) && data.configPath ? /* @__PURE__ */ jsx_runtime9.jsx(AbsoluteConfigPanel, {
36242
36248
  state: data
36243
- }, undefined, false, undefined, this) : /* @__PURE__ */ jsx_dev_runtime9.jsxDEV(Message, {
36249
+ }) : /* @__PURE__ */ jsx_runtime9.jsx(Message, {
36244
36250
  body: "No absolute.config.ts was found. Run with --config <path> to point at one.",
36245
36251
  title: "No absolute.config"
36246
- }, undefined, false, undefined, this);
36252
+ });
36247
36253
  }
36248
36254
  if (panel === "integrations") {
36249
- return isIntegrationsState(data) ? /* @__PURE__ */ jsx_dev_runtime9.jsxDEV(IntegrationsPanel, {
36255
+ return isIntegrationsState(data) ? /* @__PURE__ */ jsx_runtime9.jsx(IntegrationsPanel, {
36250
36256
  state: data
36251
- }, undefined, false, undefined, this) : /* @__PURE__ */ jsx_dev_runtime9.jsxDEV(Message, {
36257
+ }) : /* @__PURE__ */ jsx_runtime9.jsx(Message, {
36252
36258
  body: "Couldn't read the integrations status for this project.",
36253
36259
  title: "Integrations unavailable"
36254
- }, undefined, false, undefined, this);
36260
+ });
36255
36261
  }
36256
36262
  if (panel === "auth") {
36257
- return isAuthState(data) ? /* @__PURE__ */ jsx_dev_runtime9.jsxDEV(AuthPanel, {
36263
+ return isAuthState(data) ? /* @__PURE__ */ jsx_runtime9.jsx(AuthPanel, {
36258
36264
  state: data
36259
- }, undefined, false, undefined, this) : /* @__PURE__ */ jsx_dev_runtime9.jsxDEV(Message, {
36265
+ }) : /* @__PURE__ */ jsx_runtime9.jsx(Message, {
36260
36266
  body: "Couldn't read the @absolutejs/auth setup for this project.",
36261
36267
  title: "Auth unavailable"
36262
- }, undefined, false, undefined, this);
36268
+ });
36263
36269
  }
36264
36270
  if (panel === "package") {
36265
- return isPackageState(data) && data.configPath ? /* @__PURE__ */ jsx_dev_runtime9.jsxDEV(PackageJsonPanel, {
36271
+ return isPackageState(data) && data.configPath ? /* @__PURE__ */ jsx_runtime9.jsx(PackageJsonPanel, {
36266
36272
  state: data
36267
- }, undefined, false, undefined, this) : /* @__PURE__ */ jsx_dev_runtime9.jsxDEV(Message, {
36273
+ }) : /* @__PURE__ */ jsx_runtime9.jsx(Message, {
36268
36274
  body: "No package.json was found in this project.",
36269
36275
  title: "No package.json"
36270
- }, undefined, false, undefined, this);
36276
+ });
36271
36277
  }
36272
36278
  return null;
36273
36279
  };
@@ -36291,14 +36297,14 @@ var PanelHost = ({ panel }) => {
36291
36297
  };
36292
36298
  }, [panel]);
36293
36299
  if (phase === "loading")
36294
- return /* @__PURE__ */ jsx_dev_runtime9.jsxDEV(Skeleton, {
36300
+ return /* @__PURE__ */ jsx_runtime9.jsx(Skeleton, {
36295
36301
  label: LABELS[panel]
36296
- }, undefined, false, undefined, this);
36302
+ });
36297
36303
  if (phase === "error") {
36298
- return /* @__PURE__ */ jsx_dev_runtime9.jsxDEV(Message, {
36304
+ return /* @__PURE__ */ jsx_runtime9.jsx(Message, {
36299
36305
  body: "The config server didn't respond \u2014 check the terminal where it's running.",
36300
36306
  title: "Couldn't load"
36301
- }, undefined, false, undefined, this);
36307
+ });
36302
36308
  }
36303
36309
  return renderPanel(panel, data);
36304
36310
  };
@@ -36936,32 +36942,32 @@ var CONFIG_PANELS = [
36936
36942
  var DEFAULT_PANEL = "absolute";
36937
36943
 
36938
36944
  // src/cli/config/page/ConfigShell.tsx
36939
- var jsx_dev_runtime10 = __toESM(require_jsx_dev_runtime(), 1);
36940
- var NavItem = ({ active, panel }) => /* @__PURE__ */ jsx_dev_runtime10.jsxDEV("a", {
36945
+ var jsx_runtime10 = __toESM(require_jsx_runtime(), 1);
36946
+ var NavItem = ({ active, panel }) => /* @__PURE__ */ jsx_runtime10.jsxs("a", {
36941
36947
  className: "cfg-item",
36942
36948
  "data-active": active,
36943
36949
  "data-soon": panel.status === "soon",
36944
36950
  href: `/${panel.id}`,
36945
36951
  children: [
36946
- /* @__PURE__ */ jsx_dev_runtime10.jsxDEV("span", {
36952
+ /* @__PURE__ */ jsx_runtime10.jsxs("span", {
36947
36953
  className: "cfg-item-top",
36948
36954
  children: [
36949
- /* @__PURE__ */ jsx_dev_runtime10.jsxDEV("span", {
36955
+ /* @__PURE__ */ jsx_runtime10.jsx("span", {
36950
36956
  className: "cfg-item-name",
36951
36957
  children: panel.label
36952
- }, undefined, false, undefined, this),
36953
- panel.status === "soon" && /* @__PURE__ */ jsx_dev_runtime10.jsxDEV("span", {
36958
+ }),
36959
+ panel.status === "soon" && /* @__PURE__ */ jsx_runtime10.jsx("span", {
36954
36960
  className: "cfg-soon",
36955
36961
  children: "soon"
36956
- }, undefined, false, undefined, this)
36962
+ })
36957
36963
  ]
36958
- }, undefined, true, undefined, this),
36959
- /* @__PURE__ */ jsx_dev_runtime10.jsxDEV("span", {
36964
+ }),
36965
+ /* @__PURE__ */ jsx_runtime10.jsx("span", {
36960
36966
  className: "cfg-item-blurb",
36961
36967
  children: panel.blurb
36962
- }, undefined, false, undefined, this)
36968
+ })
36963
36969
  ]
36964
- }, undefined, true, undefined, this);
36970
+ });
36965
36971
  var addToGroup = (entry, order, byGroup) => {
36966
36972
  const list = byGroup.get(entry.group);
36967
36973
  if (list) {
@@ -36978,102 +36984,102 @@ var groupedPanels = () => {
36978
36984
  addToGroup(entry, order, byGroup);
36979
36985
  return order.map((label) => ({ items: byGroup.get(label) ?? [], label }));
36980
36986
  };
36981
- var NavGroup = ({ active, group }) => /* @__PURE__ */ jsx_dev_runtime10.jsxDEV("div", {
36987
+ var NavGroup = ({ active, group }) => /* @__PURE__ */ jsx_runtime10.jsxs("div", {
36982
36988
  className: "cfg-group",
36983
36989
  children: [
36984
- /* @__PURE__ */ jsx_dev_runtime10.jsxDEV("div", {
36990
+ /* @__PURE__ */ jsx_runtime10.jsx("div", {
36985
36991
  className: "cfg-rail-label",
36986
36992
  children: group.label
36987
- }, undefined, false, undefined, this),
36988
- group.items.map((entry) => /* @__PURE__ */ jsx_dev_runtime10.jsxDEV(NavItem, {
36993
+ }),
36994
+ group.items.map((entry) => /* @__PURE__ */ jsx_runtime10.jsx(NavItem, {
36989
36995
  active: entry.id === active,
36990
36996
  panel: entry
36991
- }, entry.id, false, undefined, this))
36997
+ }, entry.id))
36992
36998
  ]
36993
- }, undefined, true, undefined, this);
36999
+ });
36994
37000
  var ConfigShell = ({ panel }) => {
36995
37001
  const active = CONFIG_PANELS.find((entry) => entry.id === panel);
36996
37002
  const activeLabel = active?.label ?? "Config";
36997
- return /* @__PURE__ */ jsx_dev_runtime10.jsxDEV("html", {
37003
+ return /* @__PURE__ */ jsx_runtime10.jsxs("html", {
36998
37004
  lang: "en",
36999
37005
  children: [
37000
- /* @__PURE__ */ jsx_dev_runtime10.jsxDEV("head", {
37006
+ /* @__PURE__ */ jsx_runtime10.jsxs("head", {
37001
37007
  children: [
37002
- /* @__PURE__ */ jsx_dev_runtime10.jsxDEV("meta", {
37008
+ /* @__PURE__ */ jsx_runtime10.jsx("meta", {
37003
37009
  charSet: "utf-8"
37004
- }, undefined, false, undefined, this),
37005
- /* @__PURE__ */ jsx_dev_runtime10.jsxDEV("meta", {
37010
+ }),
37011
+ /* @__PURE__ */ jsx_runtime10.jsx("meta", {
37006
37012
  content: "width=device-width, initial-scale=1",
37007
37013
  name: "viewport"
37008
- }, undefined, false, undefined, this),
37009
- /* @__PURE__ */ jsx_dev_runtime10.jsxDEV("title", {
37014
+ }),
37015
+ /* @__PURE__ */ jsx_runtime10.jsx("title", {
37010
37016
  children: `Absolute Config \xB7 ${activeLabel}`
37011
- }, undefined, false, undefined, this),
37012
- /* @__PURE__ */ jsx_dev_runtime10.jsxDEV("link", {
37017
+ }),
37018
+ /* @__PURE__ */ jsx_runtime10.jsx("link", {
37013
37019
  href: "https://fonts.googleapis.com",
37014
37020
  rel: "preconnect"
37015
- }, undefined, false, undefined, this),
37016
- /* @__PURE__ */ jsx_dev_runtime10.jsxDEV("link", {
37021
+ }),
37022
+ /* @__PURE__ */ jsx_runtime10.jsx("link", {
37017
37023
  crossOrigin: "anonymous",
37018
37024
  href: "https://fonts.gstatic.com",
37019
37025
  rel: "preconnect"
37020
- }, undefined, false, undefined, this),
37021
- /* @__PURE__ */ jsx_dev_runtime10.jsxDEV("link", {
37026
+ }),
37027
+ /* @__PURE__ */ jsx_runtime10.jsx("link", {
37022
37028
  href: "https://fonts.googleapis.com/css2?family=Instrument+Serif:ital@0;1&family=JetBrains+Mono:wght@400;500&display=swap",
37023
37029
  rel: "stylesheet"
37024
- }, undefined, false, undefined, this),
37025
- /* @__PURE__ */ jsx_dev_runtime10.jsxDEV("style", {
37030
+ }),
37031
+ /* @__PURE__ */ jsx_runtime10.jsx("style", {
37026
37032
  dangerouslySetInnerHTML: {
37027
37033
  __html: ESLINT_CSS + TSCONFIG_CSS + CONFIG_CSS
37028
37034
  }
37029
- }, undefined, false, undefined, this)
37035
+ })
37030
37036
  ]
37031
- }, undefined, true, undefined, this),
37032
- /* @__PURE__ */ jsx_dev_runtime10.jsxDEV("body", {
37033
- children: /* @__PURE__ */ jsx_dev_runtime10.jsxDEV("div", {
37037
+ }),
37038
+ /* @__PURE__ */ jsx_runtime10.jsx("body", {
37039
+ children: /* @__PURE__ */ jsx_runtime10.jsxs("div", {
37034
37040
  className: "cfg",
37035
37041
  children: [
37036
- /* @__PURE__ */ jsx_dev_runtime10.jsxDEV("aside", {
37042
+ /* @__PURE__ */ jsx_runtime10.jsxs("aside", {
37037
37043
  className: "cfg-nav",
37038
37044
  children: [
37039
- /* @__PURE__ */ jsx_dev_runtime10.jsxDEV("div", {
37045
+ /* @__PURE__ */ jsx_runtime10.jsxs("div", {
37040
37046
  className: "cfg-brand",
37041
37047
  children: [
37042
- /* @__PURE__ */ jsx_dev_runtime10.jsxDEV("span", {
37048
+ /* @__PURE__ */ jsx_runtime10.jsxs("span", {
37043
37049
  className: "cfg-word",
37044
37050
  children: [
37045
37051
  "absolute ",
37046
- /* @__PURE__ */ jsx_dev_runtime10.jsxDEV("em", {
37052
+ /* @__PURE__ */ jsx_runtime10.jsx("em", {
37047
37053
  children: "config"
37048
- }, undefined, false, undefined, this)
37054
+ })
37049
37055
  ]
37050
- }, undefined, true, undefined, this),
37051
- /* @__PURE__ */ jsx_dev_runtime10.jsxDEV("span", {
37056
+ }),
37057
+ /* @__PURE__ */ jsx_runtime10.jsx("span", {
37052
37058
  className: "cfg-tag",
37053
37059
  children: "project tooling"
37054
- }, undefined, false, undefined, this)
37060
+ })
37055
37061
  ]
37056
- }, undefined, true, undefined, this),
37057
- /* @__PURE__ */ jsx_dev_runtime10.jsxDEV("nav", {
37062
+ }),
37063
+ /* @__PURE__ */ jsx_runtime10.jsx("nav", {
37058
37064
  className: "cfg-panels",
37059
- children: groupedPanels().map((group) => /* @__PURE__ */ jsx_dev_runtime10.jsxDEV(NavGroup, {
37065
+ children: groupedPanels().map((group) => /* @__PURE__ */ jsx_runtime10.jsx(NavGroup, {
37060
37066
  active: panel,
37061
37067
  group
37062
- }, group.label, false, undefined, this))
37063
- }, undefined, false, undefined, this)
37068
+ }, group.label))
37069
+ })
37064
37070
  ]
37065
- }, undefined, true, undefined, this),
37066
- /* @__PURE__ */ jsx_dev_runtime10.jsxDEV("main", {
37071
+ }),
37072
+ /* @__PURE__ */ jsx_runtime10.jsx("main", {
37067
37073
  className: "cfg-main",
37068
- children: /* @__PURE__ */ jsx_dev_runtime10.jsxDEV(PanelHost, {
37074
+ children: /* @__PURE__ */ jsx_runtime10.jsx(PanelHost, {
37069
37075
  panel
37070
- }, undefined, false, undefined, this)
37071
- }, undefined, false, undefined, this)
37076
+ })
37077
+ })
37072
37078
  ]
37073
- }, undefined, true, undefined, this)
37074
- }, undefined, false, undefined, this)
37079
+ })
37080
+ })
37075
37081
  ]
37076
- }, undefined, true, undefined, this);
37082
+ });
37077
37083
  };
37078
37084
 
37079
37085
  // src/cli/config/configCert.ts
@@ -37426,6 +37432,7 @@ var getCurrentAbsoluteMobileProducerContext = () => {
37426
37432
  // src/mobile/pageProtocol.ts
37427
37433
  var ABSOLUTE_MOBILE_PAGE_MEDIA_TYPE = "application/vnd.absolute.page+json";
37428
37434
  var ABSOLUTE_MOBILE_PAGE_PROTOCOL_VERSION = 1;
37435
+ var ABSOLUTE_NATIVE_ROUTE_DATA_MEDIA_TYPE = "application/vnd.absolute.native-route+json";
37429
37436
  var BAD_REQUEST_STATUS = 400;
37430
37437
  var OK_STATUS = 200;
37431
37438
  var SERVER_ERROR_STATUS = 500;
@@ -37444,6 +37451,11 @@ var acceptsAbsoluteMobilePage = (request) => {
37444
37451
  return false;
37445
37452
  return (request.headers.get("accept") ?? "").split(",").some((value) => parseMediaType(value) === ABSOLUTE_MOBILE_PAGE_MEDIA_TYPE);
37446
37453
  };
37454
+ var acceptsAbsoluteNativeRouteData = (request) => {
37455
+ if (!request)
37456
+ return false;
37457
+ return (request.headers.get("accept") ?? "").split(",").some((value) => parseMediaType(value) === ABSOLUTE_NATIVE_ROUTE_DATA_MEDIA_TYPE);
37458
+ };
37447
37459
  var readRequiredHeader = (request, name) => {
37448
37460
  const value = request.headers.get(name)?.trim();
37449
37461
  return value ? value : undefined;
@@ -37574,6 +37586,33 @@ var finalizeArchivedMobilePage = (context, input) => {
37574
37586
  return createAbsoluteMobilePageErrorResponse(page.pageId);
37575
37587
  }
37576
37588
  };
37589
+ var finalizeAbsoluteNativeRouteDevelopmentPage = (input) => {
37590
+ if (false) {}
37591
+ if (input.request?.method !== "GET") {
37592
+ return createAbsoluteMobileInvalidRequestResponse("Native-route data requests must use GET.");
37593
+ }
37594
+ if (input.request.headers.get(MOBILE_PAGE_REQUEST_HEADERS.protocol) !== String(ABSOLUTE_MOBILE_PAGE_PROTOCOL_VERSION)) {
37595
+ return createAbsoluteMobileInvalidRequestResponse(`Native-route data requires protocol ${ABSOLUTE_MOBILE_PAGE_PROTOCOL_VERSION}.`);
37596
+ }
37597
+ const [representation] = input.compatibility.representations;
37598
+ if (!representation) {
37599
+ return createAbsoluteMobilePageErrorResponse(input.compatibility.pageId);
37600
+ }
37601
+ try {
37602
+ return envelopeResponse({
37603
+ contract: representation.contract,
37604
+ framework: input.compatibility.framework,
37605
+ kind: "page",
37606
+ pageId: input.compatibility.pageId,
37607
+ props: normalizeJsonValue(representation.mapProps(input.props)),
37608
+ status: input.status ?? OK_STATUS
37609
+ }, input.status ?? OK_STATUS);
37610
+ } catch (error) {
37611
+ console.error(`[Mobile] Failed to produce development native route ${input.compatibility.pageId}:`, error);
37612
+ return createAbsoluteMobilePageErrorResponse(input.compatibility.pageId);
37613
+ }
37614
+ };
37615
+ var createAbsoluteMobileInvalidRequestResponse = (message) => envelopeResponse({ kind: "invalid-request", message }, BAD_REQUEST_STATUS);
37577
37616
  var createAbsoluteMobilePageErrorResponse = (pageId) => envelopeResponse({
37578
37617
  code: "representation-failed",
37579
37618
  kind: "error",
@@ -37581,6 +37620,9 @@ var createAbsoluteMobilePageErrorResponse = (pageId) => envelopeResponse({
37581
37620
  status: SERVER_ERROR_STATUS
37582
37621
  }, SERVER_ERROR_STATUS);
37583
37622
  var finalizeAbsoluteMobilePage = (input) => {
37623
+ if (acceptsAbsoluteNativeRouteData(input.request)) {
37624
+ return finalizeAbsoluteNativeRouteDevelopmentPage(input);
37625
+ }
37584
37626
  const parsed = parseAbsoluteMobilePageRequest(input.request);
37585
37627
  if (parsed.kind === "not-mobile")
37586
37628
  return;
@@ -38501,6 +38543,7 @@ var startupBanner = (options) => {
38501
38543
  port,
38502
38544
  host,
38503
38545
  networkUrl,
38546
+ mobilePreviewUrl,
38504
38547
  protocol = "http"
38505
38548
  } = options;
38506
38549
  const name = `${colors.cyan}${colors.bold}ABSOLUTEJS${colors.reset}`;
@@ -38514,6 +38557,9 @@ var startupBanner = (options) => {
38514
38557
  if (networkUrl) {
38515
38558
  console.log(` ${colors.green}\u279C${colors.reset} ${colors.bold}Network:${colors.reset} ${networkUrl}`);
38516
38559
  }
38560
+ if (mobilePreviewUrl) {
38561
+ console.log(` ${colors.green}\u279C${colors.reset} ${colors.bold}Mobile:${colors.reset} ${mobilePreviewUrl}`);
38562
+ }
38517
38563
  console.log("");
38518
38564
  };
38519
38565