@superblocksteam/library 2.0.14 → 2.0.15-next.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (20) hide show
  1. package/dist/{allPaths-Du1DSiml.js → allPaths-Csq78zud.js} +2 -2
  2. package/dist/{allPaths-Du1DSiml.js.map → allPaths-Csq78zud.js.map} +1 -1
  3. package/dist/{allPaths-Da7xcRmY.js → allPaths-DumeBjaP.js} +2 -2
  4. package/dist/{allPaths-Da7xcRmY.js.map → allPaths-DumeBjaP.js.map} +1 -1
  5. package/dist/{allPathsLoader-NHCvVjCQ.js → allPathsLoader-CeNQ1vrz.js} +3 -3
  6. package/dist/{allPathsLoader-NHCvVjCQ.js.map → allPathsLoader-CeNQ1vrz.js.map} +1 -1
  7. package/dist/{allPathsLoader-_h8gjJEf.js → allPathsLoader-Y6TksEhH.js} +3 -3
  8. package/dist/{allPathsLoader-_h8gjJEf.js.map → allPathsLoader-Y6TksEhH.js.map} +1 -1
  9. package/dist/{devtools-consolidated-DAxETYB9.js → devtools-consolidated-Bl7R4hJL.js} +2 -2
  10. package/dist/{devtools-consolidated-DAxETYB9.js.map → devtools-consolidated-Bl7R4hJL.js.map} +1 -1
  11. package/dist/{index-2SgHYkHQ.js → index-BoQ2bq34.js} +33 -16
  12. package/dist/{index-2SgHYkHQ.js.map → index-BoQ2bq34.js.map} +1 -1
  13. package/dist/index.js +2 -2
  14. package/dist/{splitPathsBySizeLoader-B-wSYA3-.js → splitPathsBySizeLoader-CDwO7oq9.js} +2 -2
  15. package/dist/{splitPathsBySizeLoader-B-wSYA3-.js.map → splitPathsBySizeLoader-CDwO7oq9.js.map} +1 -1
  16. package/dist/{splitPathsBySizeLoader-BfsW9Mz_.js → splitPathsBySizeLoader-DCK7yj_J.js} +2 -2
  17. package/dist/{splitPathsBySizeLoader-BfsW9Mz_.js.map → splitPathsBySizeLoader-DCK7yj_J.js.map} +1 -1
  18. package/dist-types/lib/internal-details/lib/evaluator/base-entity-manager.d.ts +1 -0
  19. package/dist-types/lib/internal-details/lib/evaluator/entity-manager.d.ts +1 -1
  20. package/package.json +2 -2
@@ -1,6 +1,6 @@
1
1
  import { I as IconSvgPaths16 } from "./index-DIJYif9G.js";
2
2
  import { I as IconSvgPaths20 } from "./index-LHtbj0-V.js";
3
- import { p as pascalCase, I as IconSize } from "./index-2SgHYkHQ.js";
3
+ import { p as pascalCase, I as IconSize } from "./index-BoQ2bq34.js";
4
4
  function getIconPaths(name, size) {
5
5
  var key = pascalCase(name);
6
6
  return size === IconSize.STANDARD ? IconSvgPaths16[key] : IconSvgPaths20[key];
@@ -14,4 +14,4 @@ export {
14
14
  getIconPaths,
15
15
  iconNameToPathsRecordKey
16
16
  };
17
- //# sourceMappingURL=allPaths-Du1DSiml.js.map
17
+ //# sourceMappingURL=allPaths-Csq78zud.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"allPaths-Du1DSiml.js","sources":["../../../node_modules/.pnpm/@blueprintjs+icons@5.18.1_@types+react@18.3.18_react-dom@18.3.1_react@18.3.1__react@18.3.1/node_modules/@blueprintjs/icons/lib/esm/allPaths.js"],"sourcesContent":["/*\n * Copyright 2021 Palantir Technologies, Inc. All rights reserved.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\nimport { pascalCase } from \"change-case\";\nimport * as IconSvgPaths16 from \"./generated/16px/paths\";\nimport * as IconSvgPaths20 from \"./generated/20px/paths\";\nimport { IconSize } from \"./iconTypes\";\nexport { IconSvgPaths16, IconSvgPaths20 };\n/**\n * Get the list of vector paths that define a given icon. These path strings are used to render `<path>`\n * elements inside an `<svg>` icon element. For full implementation details and nuances, see the icon component\n * handlebars template and `generate-icon-components` script in the __@blueprintjs/icons__ package.\n *\n * Note: this function loads all icon definitions __statically__, which means every icon is included in your\n * JS bundle. Only use this API if your app is likely to use all Blueprint icons at runtime. If you are looking for a\n * dynamic icon loader which loads icon definitions on-demand, use `{ Icons } from \"@blueprintjs/icons\"` instead.\n */\nexport function getIconPaths(name, size) {\n var key = pascalCase(name);\n return size === IconSize.STANDARD ? IconSvgPaths16[key] : IconSvgPaths20[key];\n}\n/**\n * Type safe string literal conversion of snake-case icon names to PascalCase icon names.\n * This is useful for indexing into the SVG paths record to extract a single icon's SVG path definition.\n *\n * @deprecated use `getIconPaths` instead\n */\nexport function iconNameToPathsRecordKey(name) {\n return pascalCase(name);\n}\n//# sourceMappingURL=allPaths.js.map"],"names":[],"mappings":";;;AA6BO,SAAS,aAAa,MAAM,MAAM;AACrC,MAAI,MAAM,WAAW,IAAI;AACzB,SAAO,SAAS,SAAS,WAAW,eAAe,GAAG,IAAI,eAAe,GAAG;AAChF;AAOO,SAAS,yBAAyB,MAAM;AAC3C,SAAO,WAAW,IAAI;AAC1B;","x_google_ignoreList":[0]}
1
+ {"version":3,"file":"allPaths-Csq78zud.js","sources":["../../../node_modules/.pnpm/@blueprintjs+icons@5.18.1_@types+react@18.3.18_react-dom@18.3.1_react@18.3.1__react@18.3.1/node_modules/@blueprintjs/icons/lib/esm/allPaths.js"],"sourcesContent":["/*\n * Copyright 2021 Palantir Technologies, Inc. All rights reserved.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\nimport { pascalCase } from \"change-case\";\nimport * as IconSvgPaths16 from \"./generated/16px/paths\";\nimport * as IconSvgPaths20 from \"./generated/20px/paths\";\nimport { IconSize } from \"./iconTypes\";\nexport { IconSvgPaths16, IconSvgPaths20 };\n/**\n * Get the list of vector paths that define a given icon. These path strings are used to render `<path>`\n * elements inside an `<svg>` icon element. For full implementation details and nuances, see the icon component\n * handlebars template and `generate-icon-components` script in the __@blueprintjs/icons__ package.\n *\n * Note: this function loads all icon definitions __statically__, which means every icon is included in your\n * JS bundle. Only use this API if your app is likely to use all Blueprint icons at runtime. If you are looking for a\n * dynamic icon loader which loads icon definitions on-demand, use `{ Icons } from \"@blueprintjs/icons\"` instead.\n */\nexport function getIconPaths(name, size) {\n var key = pascalCase(name);\n return size === IconSize.STANDARD ? IconSvgPaths16[key] : IconSvgPaths20[key];\n}\n/**\n * Type safe string literal conversion of snake-case icon names to PascalCase icon names.\n * This is useful for indexing into the SVG paths record to extract a single icon's SVG path definition.\n *\n * @deprecated use `getIconPaths` instead\n */\nexport function iconNameToPathsRecordKey(name) {\n return pascalCase(name);\n}\n//# sourceMappingURL=allPaths.js.map"],"names":[],"mappings":";;;AA6BO,SAAS,aAAa,MAAM,MAAM;AACrC,MAAI,MAAM,WAAW,IAAI;AACzB,SAAO,SAAS,SAAS,WAAW,eAAe,GAAG,IAAI,eAAe,GAAG;AAChF;AAOO,SAAS,yBAAyB,MAAM;AAC3C,SAAO,WAAW,IAAI;AAC1B;","x_google_ignoreList":[0]}
@@ -1,6 +1,6 @@
1
1
  import { I as IconSvgPaths16 } from "./index-BxzKdlqH.js";
2
2
  import { I as IconSvgPaths20 } from "./index-DIn-fanT.js";
3
- import { p as pascalCase, b as IconSize } from "./index-2SgHYkHQ.js";
3
+ import { p as pascalCase, b as IconSize } from "./index-BoQ2bq34.js";
4
4
  function getIconPaths(name, size) {
5
5
  var key = pascalCase(name);
6
6
  return size === IconSize.STANDARD ? IconSvgPaths16[key] : IconSvgPaths20[key];
@@ -14,4 +14,4 @@ export {
14
14
  getIconPaths,
15
15
  iconNameToPathsRecordKey
16
16
  };
17
- //# sourceMappingURL=allPaths-Da7xcRmY.js.map
17
+ //# sourceMappingURL=allPaths-DumeBjaP.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"allPaths-Da7xcRmY.js","sources":["../../../node_modules/.pnpm/@blueprintjs+icons@5.20.0_@types+react@18.3.18_react-dom@18.3.1_react@18.3.1__react@18.3.1/node_modules/@blueprintjs/icons/lib/esm/allPaths.js"],"sourcesContent":["/*\n * Copyright 2021 Palantir Technologies, Inc. All rights reserved.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\nimport { pascalCase } from \"change-case\";\nimport * as IconSvgPaths16 from \"./generated/16px/paths\";\nimport * as IconSvgPaths20 from \"./generated/20px/paths\";\nimport { IconSize } from \"./iconTypes\";\nexport { IconSvgPaths16, IconSvgPaths20 };\n/**\n * Get the list of vector paths that define a given icon. These path strings are used to render `<path>`\n * elements inside an `<svg>` icon element. For full implementation details and nuances, see the icon component\n * handlebars template and `generate-icon-components` script in the __@blueprintjs/icons__ package.\n *\n * Note: this function loads all icon definitions __statically__, which means every icon is included in your\n * JS bundle. Only use this API if your app is likely to use all Blueprint icons at runtime. If you are looking for a\n * dynamic icon loader which loads icon definitions on-demand, use `{ Icons } from \"@blueprintjs/icons\"` instead.\n */\nexport function getIconPaths(name, size) {\n var key = pascalCase(name);\n return size === IconSize.STANDARD ? IconSvgPaths16[key] : IconSvgPaths20[key];\n}\n/**\n * Type safe string literal conversion of snake-case icon names to PascalCase icon names.\n * This is useful for indexing into the SVG paths record to extract a single icon's SVG path definition.\n *\n * @deprecated use `getIconPaths` instead\n */\nexport function iconNameToPathsRecordKey(name) {\n return pascalCase(name);\n}\n//# sourceMappingURL=allPaths.js.map"],"names":[],"mappings":";;;AA6BO,SAAS,aAAa,MAAM,MAAM;AACrC,MAAI,MAAM,WAAW,IAAI;AACzB,SAAO,SAAS,SAAS,WAAW,eAAe,GAAG,IAAI,eAAe,GAAG;AAChF;AAOO,SAAS,yBAAyB,MAAM;AAC3C,SAAO,WAAW,IAAI;AAC1B;","x_google_ignoreList":[0]}
1
+ {"version":3,"file":"allPaths-DumeBjaP.js","sources":["../../../node_modules/.pnpm/@blueprintjs+icons@5.20.0_@types+react@18.3.18_react-dom@18.3.1_react@18.3.1__react@18.3.1/node_modules/@blueprintjs/icons/lib/esm/allPaths.js"],"sourcesContent":["/*\n * Copyright 2021 Palantir Technologies, Inc. All rights reserved.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\nimport { pascalCase } from \"change-case\";\nimport * as IconSvgPaths16 from \"./generated/16px/paths\";\nimport * as IconSvgPaths20 from \"./generated/20px/paths\";\nimport { IconSize } from \"./iconTypes\";\nexport { IconSvgPaths16, IconSvgPaths20 };\n/**\n * Get the list of vector paths that define a given icon. These path strings are used to render `<path>`\n * elements inside an `<svg>` icon element. For full implementation details and nuances, see the icon component\n * handlebars template and `generate-icon-components` script in the __@blueprintjs/icons__ package.\n *\n * Note: this function loads all icon definitions __statically__, which means every icon is included in your\n * JS bundle. Only use this API if your app is likely to use all Blueprint icons at runtime. If you are looking for a\n * dynamic icon loader which loads icon definitions on-demand, use `{ Icons } from \"@blueprintjs/icons\"` instead.\n */\nexport function getIconPaths(name, size) {\n var key = pascalCase(name);\n return size === IconSize.STANDARD ? IconSvgPaths16[key] : IconSvgPaths20[key];\n}\n/**\n * Type safe string literal conversion of snake-case icon names to PascalCase icon names.\n * This is useful for indexing into the SVG paths record to extract a single icon's SVG path definition.\n *\n * @deprecated use `getIconPaths` instead\n */\nexport function iconNameToPathsRecordKey(name) {\n return pascalCase(name);\n}\n//# sourceMappingURL=allPaths.js.map"],"names":[],"mappings":";;;AA6BO,SAAS,aAAa,MAAM,MAAM;AACrC,MAAI,MAAM,WAAW,IAAI;AACzB,SAAO,SAAS,SAAS,WAAW,eAAe,GAAG,IAAI,eAAe,GAAG;AAChF;AAOO,SAAS,yBAAyB,MAAM;AAC3C,SAAO,WAAW,IAAI;AAC1B;","x_google_ignoreList":[0]}
@@ -1,4 +1,4 @@
1
- import { _ as __awaiter, a as __generator } from "./index-2SgHYkHQ.js";
1
+ import { _ as __awaiter, a as __generator } from "./index-BoQ2bq34.js";
2
2
  var allPathsLoader = function(name, size) {
3
3
  return __awaiter(void 0, void 0, void 0, function() {
4
4
  var getIconPaths;
@@ -7,7 +7,7 @@ var allPathsLoader = function(name, size) {
7
7
  case 0:
8
8
  return [4, import(
9
9
  /* webpackChunkName: "blueprint-icons-all-paths" */
10
- "./allPaths-Da7xcRmY.js"
10
+ "./allPaths-DumeBjaP.js"
11
11
  )];
12
12
  case 1:
13
13
  getIconPaths = _a.sent().getIconPaths;
@@ -19,4 +19,4 @@ var allPathsLoader = function(name, size) {
19
19
  export {
20
20
  allPathsLoader
21
21
  };
22
- //# sourceMappingURL=allPathsLoader-NHCvVjCQ.js.map
22
+ //# sourceMappingURL=allPathsLoader-CeNQ1vrz.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"allPathsLoader-NHCvVjCQ.js","sources":["../../../node_modules/.pnpm/@blueprintjs+icons@5.20.0_@types+react@18.3.18_react-dom@18.3.1_react@18.3.1__react@18.3.1/node_modules/@blueprintjs/icons/lib/esm/paths-loaders/allPathsLoader.js"],"sourcesContent":["/*\n * Copyright 2023 Palantir Technologies, Inc. All rights reserved.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\nimport { __awaiter, __generator } from \"tslib\";\n/**\n * A simple module loader which concatenates all icon paths into a single chunk.\n */\nexport var allPathsLoader = function (name, size) { return __awaiter(void 0, void 0, void 0, function () {\n var getIconPaths;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0: return [4 /*yield*/, import(\n /* webpackChunkName: \"blueprint-icons-all-paths\" */\n \"../allPaths\")];\n case 1:\n getIconPaths = (_a.sent()).getIconPaths;\n return [2 /*return*/, getIconPaths(name, size)];\n }\n });\n}); };\n//# sourceMappingURL=allPathsLoader.js.map"],"names":[],"mappings":";AAmBU,IAAC,iBAAiB,SAAU,MAAM,MAAM;AAAE,SAAO,UAAU,QAAQ,QAAQ,QAAQ,WAAY;AACrG,QAAI;AACJ,WAAO,YAAY,MAAM,SAAU,IAAI;AACnC,cAAQ,GAAG,OAAK;AAAA,QACZ,KAAK;AAAG,iBAAO,CAAC,GAAa;AAAA;AAAA,YAEzB;AAAA,UAAa,CAAC;AAAA,QAClB,KAAK;AACD,yBAAgB,GAAG,KAAI,EAAI;AAC3B,iBAAO,CAAC,GAAc,aAAa,MAAM,IAAI,CAAC;AAAA,MAC9D;AAAA,IACA,CAAK;AAAA,EACL,CAAC;AAAE;","x_google_ignoreList":[0]}
1
+ {"version":3,"file":"allPathsLoader-CeNQ1vrz.js","sources":["../../../node_modules/.pnpm/@blueprintjs+icons@5.20.0_@types+react@18.3.18_react-dom@18.3.1_react@18.3.1__react@18.3.1/node_modules/@blueprintjs/icons/lib/esm/paths-loaders/allPathsLoader.js"],"sourcesContent":["/*\n * Copyright 2023 Palantir Technologies, Inc. All rights reserved.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\nimport { __awaiter, __generator } from \"tslib\";\n/**\n * A simple module loader which concatenates all icon paths into a single chunk.\n */\nexport var allPathsLoader = function (name, size) { return __awaiter(void 0, void 0, void 0, function () {\n var getIconPaths;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0: return [4 /*yield*/, import(\n /* webpackChunkName: \"blueprint-icons-all-paths\" */\n \"../allPaths\")];\n case 1:\n getIconPaths = (_a.sent()).getIconPaths;\n return [2 /*return*/, getIconPaths(name, size)];\n }\n });\n}); };\n//# sourceMappingURL=allPathsLoader.js.map"],"names":[],"mappings":";AAmBU,IAAC,iBAAiB,SAAU,MAAM,MAAM;AAAE,SAAO,UAAU,QAAQ,QAAQ,QAAQ,WAAY;AACrG,QAAI;AACJ,WAAO,YAAY,MAAM,SAAU,IAAI;AACnC,cAAQ,GAAG,OAAK;AAAA,QACZ,KAAK;AAAG,iBAAO,CAAC,GAAa;AAAA;AAAA,YAEzB;AAAA,UAAa,CAAC;AAAA,QAClB,KAAK;AACD,yBAAgB,GAAG,KAAI,EAAI;AAC3B,iBAAO,CAAC,GAAc,aAAa,MAAM,IAAI,CAAC;AAAA,MAC9D;AAAA,IACA,CAAK;AAAA,EACL,CAAC;AAAE;","x_google_ignoreList":[0]}
@@ -1,4 +1,4 @@
1
- import { _ as __awaiter, a as __generator } from "./index-2SgHYkHQ.js";
1
+ import { _ as __awaiter, a as __generator } from "./index-BoQ2bq34.js";
2
2
  var allPathsLoader = function(name, size) {
3
3
  return __awaiter(void 0, void 0, void 0, function() {
4
4
  var getIconPaths;
@@ -7,7 +7,7 @@ var allPathsLoader = function(name, size) {
7
7
  case 0:
8
8
  return [4, import(
9
9
  /* webpackChunkName: "blueprint-icons-all-paths" */
10
- "./allPaths-Du1DSiml.js"
10
+ "./allPaths-Csq78zud.js"
11
11
  )];
12
12
  case 1:
13
13
  getIconPaths = _a.sent().getIconPaths;
@@ -19,4 +19,4 @@ var allPathsLoader = function(name, size) {
19
19
  export {
20
20
  allPathsLoader
21
21
  };
22
- //# sourceMappingURL=allPathsLoader-_h8gjJEf.js.map
22
+ //# sourceMappingURL=allPathsLoader-Y6TksEhH.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"allPathsLoader-_h8gjJEf.js","sources":["../../../node_modules/.pnpm/@blueprintjs+icons@5.18.1_@types+react@18.3.18_react-dom@18.3.1_react@18.3.1__react@18.3.1/node_modules/@blueprintjs/icons/lib/esm/paths-loaders/allPathsLoader.js"],"sourcesContent":["/*\n * Copyright 2023 Palantir Technologies, Inc. All rights reserved.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\nimport { __awaiter, __generator } from \"tslib\";\n/**\n * A simple module loader which concatenates all icon paths into a single chunk.\n */\nexport var allPathsLoader = function (name, size) { return __awaiter(void 0, void 0, void 0, function () {\n var getIconPaths;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0: return [4 /*yield*/, import(\n /* webpackChunkName: \"blueprint-icons-all-paths\" */\n \"../allPaths\")];\n case 1:\n getIconPaths = (_a.sent()).getIconPaths;\n return [2 /*return*/, getIconPaths(name, size)];\n }\n });\n}); };\n//# sourceMappingURL=allPathsLoader.js.map"],"names":[],"mappings":";AAmBU,IAAC,iBAAiB,SAAU,MAAM,MAAM;AAAE,SAAO,UAAU,QAAQ,QAAQ,QAAQ,WAAY;AACrG,QAAI;AACJ,WAAO,YAAY,MAAM,SAAU,IAAI;AACnC,cAAQ,GAAG,OAAK;AAAA,QACZ,KAAK;AAAG,iBAAO,CAAC,GAAa;AAAA;AAAA,YAEzB;AAAA,UAAa,CAAC;AAAA,QAClB,KAAK;AACD,yBAAgB,GAAG,KAAI,EAAI;AAC3B,iBAAO,CAAC,GAAc,aAAa,MAAM,IAAI,CAAC;AAAA,MAC9D;AAAA,IACA,CAAK;AAAA,EACL,CAAC;AAAE;","x_google_ignoreList":[0]}
1
+ {"version":3,"file":"allPathsLoader-Y6TksEhH.js","sources":["../../../node_modules/.pnpm/@blueprintjs+icons@5.18.1_@types+react@18.3.18_react-dom@18.3.1_react@18.3.1__react@18.3.1/node_modules/@blueprintjs/icons/lib/esm/paths-loaders/allPathsLoader.js"],"sourcesContent":["/*\n * Copyright 2023 Palantir Technologies, Inc. All rights reserved.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\nimport { __awaiter, __generator } from \"tslib\";\n/**\n * A simple module loader which concatenates all icon paths into a single chunk.\n */\nexport var allPathsLoader = function (name, size) { return __awaiter(void 0, void 0, void 0, function () {\n var getIconPaths;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0: return [4 /*yield*/, import(\n /* webpackChunkName: \"blueprint-icons-all-paths\" */\n \"../allPaths\")];\n case 1:\n getIconPaths = (_a.sent()).getIconPaths;\n return [2 /*return*/, getIconPaths(name, size)];\n }\n });\n}); };\n//# sourceMappingURL=allPathsLoader.js.map"],"names":[],"mappings":";AAmBU,IAAC,iBAAiB,SAAU,MAAM,MAAM;AAAE,SAAO,UAAU,QAAQ,QAAQ,QAAQ,WAAY;AACrG,QAAI;AACJ,WAAO,YAAY,MAAM,SAAU,IAAI;AACnC,cAAQ,GAAG,OAAK;AAAA,QACZ,KAAK;AAAG,iBAAO,CAAC,GAAa;AAAA;AAAA,YAEzB;AAAA,UAAa,CAAC;AAAA,QAClB,KAAK;AACD,yBAAgB,GAAG,KAAI,EAAI;AAC3B,iBAAO,CAAC,GAAc,aAAa,MAAM,IAAI,CAAC;AAAA,MAC9D;AAAA,IACA,CAAK;AAAA,EACL,CAAC;AAAE;","x_google_ignoreList":[0]}
@@ -1,7 +1,7 @@
1
1
  var __defProp = Object.defineProperty;
2
2
  var __defNormalProp = (obj, key, value) => key in obj ? __defProp(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;
3
3
  var __publicField = (obj, key, value) => __defNormalProp(obj, typeof key !== "symbol" ? key + "" : key, value);
4
- import { t as toJS, o as observer, j as jsxRuntimeExports, m as makeAutoObservable } from "./index-2SgHYkHQ.js";
4
+ import { t as toJS, o as observer, j as jsxRuntimeExports, m as makeAutoObservable } from "./index-BoQ2bq34.js";
5
5
  import { useRef, createElement, useState, useEffect, useId, useCallback } from "react";
6
6
  import { createPortal } from "react-dom";
7
7
  const isBoolean = (data) => {
@@ -587,4 +587,4 @@ export {
587
587
  initializeCustomDevTools,
588
588
  setRegisteredStores
589
589
  };
590
- //# sourceMappingURL=devtools-consolidated-DAxETYB9.js.map
590
+ //# sourceMappingURL=devtools-consolidated-Bl7R4hJL.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"devtools-consolidated-DAxETYB9.js","sources":["../../../node_modules/.pnpm/react-json-view-lite@2.4.1_react@18.3.1/node_modules/react-json-view-lite/dist/index.modern.js","../src/lib/internal-details/lib/devtools/serialize-store-data.tsx","../src/lib/internal-details/lib/devtools/devtools-consolidated.tsx"],"sourcesContent":["import { createElement, useRef, useState, useEffect, useId } from 'react';\n\nconst isBoolean = data => {\n return typeof data === 'boolean' || data instanceof Boolean;\n};\nconst isNumber = data => {\n return typeof data === 'number' || data instanceof Number;\n};\nconst isBigInt = data => {\n return typeof data === 'bigint' || data instanceof BigInt;\n};\nconst isDate = data => {\n return !!data && data instanceof Date;\n};\nconst isString = data => {\n return typeof data === 'string' || data instanceof String;\n};\nconst isArray = data => {\n return Array.isArray(data);\n};\nconst isObject = data => {\n return typeof data === 'object' && data !== null;\n};\nconst isFunction = data => {\n return !!data && data instanceof Object && typeof data === 'function';\n};\n\nfunction quoteString(value, quoted) {\n if (quoted === void 0) {\n quoted = false;\n }\n return !value || quoted ? `\"${value}\"` : value;\n}\nfunction quoteStringValue(value, quoted, stringify) {\n if (stringify) {\n return JSON.stringify(value);\n }\n return quoted ? `\"${value}\"` : value;\n}\nfunction ExpandableObject(_ref) {\n let {\n field,\n value,\n data,\n lastElement,\n openBracket,\n closeBracket,\n level,\n style,\n shouldExpandNode,\n clickToExpandNode,\n outerRef,\n beforeExpandChange\n } = _ref;\n const shouldExpandNodeCalledRef = useRef(false);\n const [expanded, setExpanded] = useState(() => shouldExpandNode(level, value, field));\n const expanderButtonRef = useRef(null);\n useEffect(() => {\n if (!shouldExpandNodeCalledRef.current) {\n shouldExpandNodeCalledRef.current = true;\n } else {\n setExpanded(shouldExpandNode(level, value, field));\n }\n }, [shouldExpandNode]);\n const contentsId = useId();\n if (data.length === 0) {\n return EmptyObject({\n field,\n openBracket,\n closeBracket,\n lastElement,\n style\n });\n }\n const expanderIconStyle = expanded ? style.collapseIcon : style.expandIcon;\n const ariaLabel = expanded ? style.ariaLables.collapseJson : style.ariaLables.expandJson;\n const childLevel = level + 1;\n const lastIndex = data.length - 1;\n const setExpandWithCallback = newExpandValue => {\n if (expanded !== newExpandValue && (!beforeExpandChange || beforeExpandChange({\n level,\n value,\n field,\n newExpandValue\n }))) {\n setExpanded(newExpandValue);\n }\n };\n const onKeyDown = e => {\n if (e.key === 'ArrowRight' || e.key === 'ArrowLeft') {\n e.preventDefault();\n setExpandWithCallback(e.key === 'ArrowRight');\n } else if (e.key === 'ArrowUp' || e.key === 'ArrowDown') {\n e.preventDefault();\n const direction = e.key === 'ArrowUp' ? -1 : 1;\n if (!outerRef.current) return;\n const buttonElements = outerRef.current.querySelectorAll('[role=button]');\n let currentIndex = -1;\n for (let i = 0; i < buttonElements.length; i++) {\n if (buttonElements[i].tabIndex === 0) {\n currentIndex = i;\n break;\n }\n }\n if (currentIndex < 0) {\n return;\n }\n const nextIndex = (currentIndex + direction + buttonElements.length) % buttonElements.length;\n buttonElements[currentIndex].tabIndex = -1;\n buttonElements[nextIndex].tabIndex = 0;\n buttonElements[nextIndex].focus();\n }\n };\n const onClick = () => {\n var _outerRef$current;\n setExpandWithCallback(!expanded);\n const buttonElement = expanderButtonRef.current;\n if (!buttonElement) return;\n const prevButtonElement = (_outerRef$current = outerRef.current) === null || _outerRef$current === void 0 ? void 0 : _outerRef$current.querySelector('[role=button][tabindex=\"0\"]');\n if (prevButtonElement) {\n prevButtonElement.tabIndex = -1;\n }\n buttonElement.tabIndex = 0;\n buttonElement.focus();\n };\n return /*#__PURE__*/createElement(\"div\", {\n className: style.basicChildStyle,\n role: 'treeitem',\n \"aria-expanded\": expanded,\n \"aria-selected\": undefined\n }, /*#__PURE__*/createElement(\"span\", {\n className: expanderIconStyle,\n onClick: onClick,\n onKeyDown: onKeyDown,\n role: 'button',\n \"aria-label\": ariaLabel,\n \"aria-expanded\": expanded,\n \"aria-controls\": expanded ? contentsId : undefined,\n ref: expanderButtonRef,\n tabIndex: level === 0 ? 0 : -1\n }), (field || field === '') && (clickToExpandNode ? (\n /*#__PURE__*/\n createElement(\"span\", {\n className: style.clickableLabel,\n onClick: onClick,\n onKeyDown: onKeyDown\n }, quoteString(field, style.quotesForFieldNames), \":\")) : (/*#__PURE__*/createElement(\"span\", {\n className: style.label\n }, quoteString(field, style.quotesForFieldNames), \":\"))), /*#__PURE__*/createElement(\"span\", {\n className: style.punctuation\n }, openBracket), expanded ? (/*#__PURE__*/createElement(\"ul\", {\n id: contentsId,\n role: 'group',\n className: style.childFieldsContainer\n }, data.map((dataElement, index) => (/*#__PURE__*/createElement(DataRender, {\n key: dataElement[0] || index,\n field: dataElement[0],\n value: dataElement[1],\n style: style,\n lastElement: index === lastIndex,\n level: childLevel,\n shouldExpandNode: shouldExpandNode,\n clickToExpandNode: clickToExpandNode,\n outerRef: outerRef\n }))))) : (\n /*#__PURE__*/\n createElement(\"span\", {\n className: style.collapsedContent,\n onClick: onClick,\n onKeyDown: onKeyDown\n })), /*#__PURE__*/createElement(\"span\", {\n className: style.punctuation\n }, closeBracket), !lastElement && /*#__PURE__*/createElement(\"span\", {\n className: style.punctuation\n }, \",\"));\n}\nfunction EmptyObject(_ref2) {\n let {\n field,\n openBracket,\n closeBracket,\n lastElement,\n style\n } = _ref2;\n return /*#__PURE__*/createElement(\"div\", {\n className: style.basicChildStyle,\n role: 'treeitem',\n \"aria-selected\": undefined\n }, (field || field === '') && (/*#__PURE__*/createElement(\"span\", {\n className: style.label\n }, quoteString(field, style.quotesForFieldNames), \":\")), /*#__PURE__*/createElement(\"span\", {\n className: style.punctuation\n }, openBracket), /*#__PURE__*/createElement(\"span\", {\n className: style.punctuation\n }, closeBracket), !lastElement && /*#__PURE__*/createElement(\"span\", {\n className: style.punctuation\n }, \",\"));\n}\nfunction JsonObject(_ref3) {\n let {\n field,\n value,\n style,\n lastElement,\n shouldExpandNode,\n clickToExpandNode,\n level,\n outerRef,\n beforeExpandChange\n } = _ref3;\n return ExpandableObject({\n field,\n value,\n lastElement: lastElement || false,\n level,\n openBracket: '{',\n closeBracket: '}',\n style,\n shouldExpandNode,\n clickToExpandNode,\n data: Object.keys(value).map(key => [key, value[key]]),\n outerRef,\n beforeExpandChange\n });\n}\nfunction JsonArray(_ref4) {\n let {\n field,\n value,\n style,\n lastElement,\n level,\n shouldExpandNode,\n clickToExpandNode,\n outerRef,\n beforeExpandChange\n } = _ref4;\n return ExpandableObject({\n field,\n value,\n lastElement: lastElement || false,\n level,\n openBracket: '[',\n closeBracket: ']',\n style,\n shouldExpandNode,\n clickToExpandNode,\n data: value.map(element => [undefined, element]),\n outerRef,\n beforeExpandChange\n });\n}\nfunction JsonPrimitiveValue(_ref5) {\n let {\n field,\n value,\n style,\n lastElement\n } = _ref5;\n let stringValue;\n let valueStyle = style.otherValue;\n if (value === null) {\n stringValue = 'null';\n valueStyle = style.nullValue;\n } else if (value === undefined) {\n stringValue = 'undefined';\n valueStyle = style.undefinedValue;\n } else if (isString(value)) {\n stringValue = quoteStringValue(value, !style.noQuotesForStringValues, style.stringifyStringValues);\n valueStyle = style.stringValue;\n } else if (isBoolean(value)) {\n stringValue = value ? 'true' : 'false';\n valueStyle = style.booleanValue;\n } else if (isNumber(value)) {\n stringValue = value.toString();\n valueStyle = style.numberValue;\n } else if (isBigInt(value)) {\n stringValue = `${value.toString()}n`;\n valueStyle = style.numberValue;\n } else if (isDate(value)) {\n stringValue = value.toISOString();\n } else if (isFunction(value)) {\n stringValue = 'function() { }';\n } else {\n stringValue = value.toString();\n }\n return /*#__PURE__*/createElement(\"div\", {\n className: style.basicChildStyle,\n role: 'treeitem',\n \"aria-selected\": undefined\n }, (field || field === '') && (/*#__PURE__*/createElement(\"span\", {\n className: style.label\n }, quoteString(field, style.quotesForFieldNames), \":\")), /*#__PURE__*/createElement(\"span\", {\n className: valueStyle\n }, stringValue), !lastElement && /*#__PURE__*/createElement(\"span\", {\n className: style.punctuation\n }, \",\"));\n}\nfunction DataRender(props) {\n const value = props.value;\n if (isArray(value)) {\n return /*#__PURE__*/createElement(JsonArray, Object.assign({}, props));\n }\n if (isObject(value) && !isDate(value) && !isFunction(value)) {\n return /*#__PURE__*/createElement(JsonObject, Object.assign({}, props));\n }\n return /*#__PURE__*/createElement(JsonPrimitiveValue, Object.assign({}, props));\n}\n\nvar styles = {\"container-base\":\"_GzYRV\",\"punctuation-base\":\"_3eOF8\",\"pointer\":\"_1MFti\",\"expander-base\":\"_f10Tu _1MFti\",\"expand-icon\":\"_1UmXx\",\"collapse-icon\":\"_1LId0\",\"collapsed-content-base\":\"_1pNG9 _1MFti\",\"container-light\":\"_2IvMF _GzYRV\",\"basic-element-style\":\"_2bkNM\",\"child-fields-container\":\"_1BXBN\",\"label-light\":\"_1MGIk\",\"clickable-label-light\":\"_2YKJg _1MGIk _1MFti\",\"punctuation-light\":\"_3uHL6 _3eOF8\",\"value-null-light\":\"_2T6PJ\",\"value-undefined-light\":\"_1Gho6\",\"value-string-light\":\"_vGjyY\",\"value-number-light\":\"_1bQdo\",\"value-boolean-light\":\"_3zQKs\",\"value-other-light\":\"_1xvuR\",\"collapse-icon-light\":\"_oLqym _f10Tu _1MFti _1LId0\",\"expand-icon-light\":\"_2AXVT _f10Tu _1MFti _1UmXx\",\"collapsed-content-light\":\"_2KJWg _1pNG9 _1MFti\",\"container-dark\":\"_11RoI _GzYRV\",\"expand-icon-dark\":\"_17H2C _f10Tu _1MFti _1UmXx\",\"collapse-icon-dark\":\"_3QHg2 _f10Tu _1MFti _1LId0\",\"collapsed-content-dark\":\"_3fDAz _1pNG9 _1MFti\",\"label-dark\":\"_2bSDX\",\"clickable-label-dark\":\"_1RQEj _2bSDX _1MFti\",\"punctuation-dark\":\"_gsbQL _3eOF8\",\"value-null-dark\":\"_LaAZe\",\"value-undefined-dark\":\"_GTKgm\",\"value-string-dark\":\"_Chy1W\",\"value-number-dark\":\"_2bveF\",\"value-boolean-dark\":\"_2vRm-\",\"value-other-dark\":\"_1prJR\"};\n\nconst defaultAriaLables = {\n collapseJson: 'collapse JSON',\n expandJson: 'expand JSON'\n};\nconst defaultStyles = {\n container: styles['container-light'],\n basicChildStyle: styles['basic-element-style'],\n childFieldsContainer: styles['child-fields-container'],\n label: styles['label-light'],\n clickableLabel: styles['clickable-label-light'],\n nullValue: styles['value-null-light'],\n undefinedValue: styles['value-undefined-light'],\n stringValue: styles['value-string-light'],\n booleanValue: styles['value-boolean-light'],\n numberValue: styles['value-number-light'],\n otherValue: styles['value-other-light'],\n punctuation: styles['punctuation-light'],\n collapseIcon: styles['collapse-icon-light'],\n expandIcon: styles['expand-icon-light'],\n collapsedContent: styles['collapsed-content-light'],\n noQuotesForStringValues: false,\n quotesForFieldNames: false,\n ariaLables: defaultAriaLables,\n stringifyStringValues: false\n};\nconst darkStyles = {\n container: styles['container-dark'],\n basicChildStyle: styles['basic-element-style'],\n childFieldsContainer: styles['child-fields-container'],\n label: styles['label-dark'],\n clickableLabel: styles['clickable-label-dark'],\n nullValue: styles['value-null-dark'],\n undefinedValue: styles['value-undefined-dark'],\n stringValue: styles['value-string-dark'],\n booleanValue: styles['value-boolean-dark'],\n numberValue: styles['value-number-dark'],\n otherValue: styles['value-other-dark'],\n punctuation: styles['punctuation-dark'],\n collapseIcon: styles['collapse-icon-dark'],\n expandIcon: styles['expand-icon-dark'],\n collapsedContent: styles['collapsed-content-dark'],\n noQuotesForStringValues: false,\n quotesForFieldNames: false,\n ariaLables: defaultAriaLables,\n stringifyStringValues: false\n};\nconst allExpanded = () => true;\nconst collapseAllNested = level => level < 1;\nconst JsonView = _ref => {\n let {\n data,\n style = defaultStyles,\n shouldExpandNode = allExpanded,\n clickToExpandNode = false,\n beforeExpandChange,\n ...ariaAttrs\n } = _ref;\n const outerRef = useRef(null);\n return /*#__PURE__*/createElement(\"div\", Object.assign({\n \"aria-label\": 'JSON view'\n }, ariaAttrs, {\n className: style.container,\n ref: outerRef,\n role: 'tree'\n }), /*#__PURE__*/createElement(DataRender, {\n value: data,\n style: {\n ...defaultStyles,\n ...style\n },\n lastElement: true,\n level: 0,\n shouldExpandNode: shouldExpandNode,\n clickToExpandNode: clickToExpandNode,\n outerRef: outerRef,\n beforeExpandChange: beforeExpandChange\n }));\n};\n\nexport { JsonView, allExpanded, collapseAllNested, darkStyles, defaultStyles };\n//# sourceMappingURL=index.modern.js.map\n","import { toJS } from \"mobx\";\n\nexport function serializeStoreData(\n stores_: Record<string, any>,\n): Record<string, any> {\n try {\n const stores = toJS(stores_);\n const seen = new Set();\n function serialize(obj: any): any {\n if (obj === null || typeof obj !== \"object\") {\n return obj;\n }\n\n if (seen.has(obj)) {\n return \"[Already Seen]\";\n }\n\n // Create new path for this branch of recursion\n seen.add(obj);\n\n if (Array.isArray(obj)) {\n return obj.map(serialize);\n }\n\n const result: any = {};\n\n for (const key of Object.keys(obj)) {\n if (typeof obj[key] === \"function\") {\n result[key] = \"[Function]\";\n }\n\n try {\n const descriptor = Object.getOwnPropertyDescriptor(obj, key);\n if (descriptor && descriptor.get) {\n try {\n result[key] = serialize(obj[key]);\n } catch {\n result[key] = \"[Getter Error]\";\n }\n } else {\n result[key] = serialize(obj[key]);\n }\n } catch {\n result[key] = \"[Access Error]\";\n }\n }\n\n // Add type information\n if (obj.constructor && obj.constructor.name !== \"Object\") {\n result.__type__ = obj.constructor.name;\n }\n\n return result;\n }\n\n return serialize(stores);\n } catch (error) {\n return {\n error: `Error serializing data: ${error instanceof Error ? error.message : \"Unknown error\"}`,\n };\n }\n}\n","import { makeAutoObservable } from \"mobx\";\nimport { observer } from \"mobx-react-lite\";\nimport React, { useCallback, useEffect } from \"react\";\nimport { createPortal } from \"react-dom\";\nimport { JsonView } from \"react-json-view-lite\";\nimport \"react-json-view-lite/dist/index.css\";\nimport { serializeStoreData } from \"./serialize-store-data.js\";\n\n// ============================================================================\n// STATE MANAGEMENT\n// ============================================================================\n\nclass DevToolsState {\n isVisible = false;\n\n constructor() {\n makeAutoObservable(this);\n }\n\n show() {\n this.isVisible = true;\n }\n\n hide() {\n this.isVisible = false;\n }\n\n toggle() {\n this.isVisible = !this.isVisible;\n }\n}\n\nconst devToolsState = new DevToolsState();\n\n// ============================================================================\n// KEYBOARD SHORTCUT MANAGER\n// ============================================================================\n\nclass KeyboardShortcutManager {\n private isListening = false;\n private shortcutKeys = {\n key: \"KeyD\",\n ctrlKey: true,\n shiftKey: true,\n altKey: false,\n };\n\n constructor() {\n this.handleKeyDown = this.handleKeyDown.bind(this);\n }\n\n private handleKeyDown(event: KeyboardEvent) {\n const { ctrlKey, shiftKey, altKey, metaKey } = event;\n const isModifierMatch = (ctrlKey || metaKey) && shiftKey && !altKey;\n const isKeyMatch = event.code === this.shortcutKeys.key;\n if (isModifierMatch && isKeyMatch) {\n event.preventDefault();\n event.stopPropagation();\n devToolsState.toggle();\n }\n }\n\n private handleEscapeKey = (event: KeyboardEvent) => {\n if (event.key === \"Escape\" && devToolsState.isVisible) {\n event.preventDefault();\n devToolsState.hide();\n }\n };\n\n startListening() {\n if (this.isListening) return;\n\n this.isListening = true;\n document.addEventListener(\"keydown\", this.handleKeyDown, true);\n document.addEventListener(\"keydown\", this.handleEscapeKey, true);\n }\n\n stopListening() {\n if (!this.isListening) return;\n\n this.isListening = false;\n document.removeEventListener(\"keydown\", this.handleKeyDown, true);\n document.removeEventListener(\"keydown\", this.handleEscapeKey, true);\n }\n\n updateShortcut(options: Partial<typeof this.shortcutKeys>) {\n this.shortcutKeys = { ...this.shortcutKeys, ...options };\n }\n}\n\nconst keyboardShortcutManager = new KeyboardShortcutManager();\n\n// ============================================================================\n// STORE ACCESS\n// ============================================================================\n\n// This will be populated by the registerStores function\nlet registeredStores: Record<string, any> = {};\n\nexport function setRegisteredStores(stores: Record<string, any>) {\n registeredStores = stores;\n}\n\nfunction getRegisteredStores() {\n return registeredStores;\n}\n\n// ============================================================================\n// DEVTOOLS PANEL COMPONENT\n// ============================================================================\n\nconst overlayStyles: React.CSSProperties = {\n position: \"fixed\",\n top: 0,\n left: 0,\n right: 0,\n bottom: 0,\n backgroundColor: \"rgba(0, 0, 0, 0.5)\",\n zIndex: 9999,\n};\n\nconst panelStyles: React.CSSProperties = {\n position: \"fixed\",\n top: \"50%\",\n left: \"50%\",\n transform: \"translate(-50%, -50%)\",\n width: \"90vw\",\n height: \"90vh\",\n backgroundColor: \"#fff\",\n zIndex: 10000,\n display: \"flex\",\n flexDirection: \"column\",\n borderRadius: 12,\n};\n\nconst headerStyles: React.CSSProperties = {\n padding: 12,\n borderBottom: \"1px solid #ccc\",\n display: \"flex\",\n justifyContent: \"space-between\",\n alignItems: \"center\",\n};\n\nconst closeButtonStyles: React.CSSProperties = {\n background: \"none\",\n border: \"none\",\n cursor: \"pointer\",\n};\n\nconst contentStyles: React.CSSProperties = {\n padding: 8,\n display: \"flex\",\n flex: 1,\n overflow: \"auto\",\n flexDirection: \"column\",\n};\n\nconst DevToolsPanelContent: React.FC = observer(() => {\n const stores = getRegisteredStores();\n const storeNames = Object.keys(stores);\n\n const serializedData = serializeStoreData(stores);\n const onClose = useCallback(() => {\n devToolsState.hide();\n }, []);\n\n return createPortal(\n <>\n <div style={overlayStyles} onClick={onClose} />\n <div style={panelStyles}>\n <div style={headerStyles}>\n <h3>\n MobX DevTools ({storeNames.length} store\n {storeNames.length !== 1 ? \"s\" : \"\"})\n </h3>\n <button\n style={closeButtonStyles}\n onClick={onClose}\n title=\"Close (ESC)\"\n >\n ×\n </button>\n </div>\n {storeNames.length === 0 ? (\n <div>No stores registered yet.</div>\n ) : (\n <div style={contentStyles}>\n <JsonView\n data={serializedData}\n clickToExpandNode={true}\n shouldExpandNode={(level) => level < 2}\n />\n </div>\n )}\n </div>\n </>,\n document.body,\n );\n});\n\n// ============================================================================\n// PROVIDER COMPONENT\n// ============================================================================\n\nexport const CustomDevTools: React.FC = observer(() => {\n useEffect(() => {\n if (devToolsState.isVisible) {\n const handleEscape = (event: KeyboardEvent) => {\n if (event.key === \"Escape\") {\n devToolsState.hide();\n }\n };\n document.addEventListener(\"keydown\", handleEscape);\n return () => document.removeEventListener(\"keydown\", handleEscape);\n }\n }, []);\n\n if (!devToolsState.isVisible) {\n return null;\n }\n\n return <DevToolsPanelContent />;\n});\n\n// ============================================================================\n// INITIALIZATION\n// ============================================================================\n\nexport function initializeCustomDevTools() {\n keyboardShortcutManager.startListening();\n console.log(\n \"[CustomDevTools] Initialized - Press Ctrl+Shift+D (or Cmd+Shift+D) to open\",\n );\n}\n"],"names":["jsxs","Fragment","jsx"],"mappings":"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","x_google_ignoreList":[0]}
1
+ {"version":3,"file":"devtools-consolidated-Bl7R4hJL.js","sources":["../../../node_modules/.pnpm/react-json-view-lite@2.4.1_react@18.3.1/node_modules/react-json-view-lite/dist/index.modern.js","../src/lib/internal-details/lib/devtools/serialize-store-data.tsx","../src/lib/internal-details/lib/devtools/devtools-consolidated.tsx"],"sourcesContent":["import { createElement, useRef, useState, useEffect, useId } from 'react';\n\nconst isBoolean = data => {\n return typeof data === 'boolean' || data instanceof Boolean;\n};\nconst isNumber = data => {\n return typeof data === 'number' || data instanceof Number;\n};\nconst isBigInt = data => {\n return typeof data === 'bigint' || data instanceof BigInt;\n};\nconst isDate = data => {\n return !!data && data instanceof Date;\n};\nconst isString = data => {\n return typeof data === 'string' || data instanceof String;\n};\nconst isArray = data => {\n return Array.isArray(data);\n};\nconst isObject = data => {\n return typeof data === 'object' && data !== null;\n};\nconst isFunction = data => {\n return !!data && data instanceof Object && typeof data === 'function';\n};\n\nfunction quoteString(value, quoted) {\n if (quoted === void 0) {\n quoted = false;\n }\n return !value || quoted ? `\"${value}\"` : value;\n}\nfunction quoteStringValue(value, quoted, stringify) {\n if (stringify) {\n return JSON.stringify(value);\n }\n return quoted ? `\"${value}\"` : value;\n}\nfunction ExpandableObject(_ref) {\n let {\n field,\n value,\n data,\n lastElement,\n openBracket,\n closeBracket,\n level,\n style,\n shouldExpandNode,\n clickToExpandNode,\n outerRef,\n beforeExpandChange\n } = _ref;\n const shouldExpandNodeCalledRef = useRef(false);\n const [expanded, setExpanded] = useState(() => shouldExpandNode(level, value, field));\n const expanderButtonRef = useRef(null);\n useEffect(() => {\n if (!shouldExpandNodeCalledRef.current) {\n shouldExpandNodeCalledRef.current = true;\n } else {\n setExpanded(shouldExpandNode(level, value, field));\n }\n }, [shouldExpandNode]);\n const contentsId = useId();\n if (data.length === 0) {\n return EmptyObject({\n field,\n openBracket,\n closeBracket,\n lastElement,\n style\n });\n }\n const expanderIconStyle = expanded ? style.collapseIcon : style.expandIcon;\n const ariaLabel = expanded ? style.ariaLables.collapseJson : style.ariaLables.expandJson;\n const childLevel = level + 1;\n const lastIndex = data.length - 1;\n const setExpandWithCallback = newExpandValue => {\n if (expanded !== newExpandValue && (!beforeExpandChange || beforeExpandChange({\n level,\n value,\n field,\n newExpandValue\n }))) {\n setExpanded(newExpandValue);\n }\n };\n const onKeyDown = e => {\n if (e.key === 'ArrowRight' || e.key === 'ArrowLeft') {\n e.preventDefault();\n setExpandWithCallback(e.key === 'ArrowRight');\n } else if (e.key === 'ArrowUp' || e.key === 'ArrowDown') {\n e.preventDefault();\n const direction = e.key === 'ArrowUp' ? -1 : 1;\n if (!outerRef.current) return;\n const buttonElements = outerRef.current.querySelectorAll('[role=button]');\n let currentIndex = -1;\n for (let i = 0; i < buttonElements.length; i++) {\n if (buttonElements[i].tabIndex === 0) {\n currentIndex = i;\n break;\n }\n }\n if (currentIndex < 0) {\n return;\n }\n const nextIndex = (currentIndex + direction + buttonElements.length) % buttonElements.length;\n buttonElements[currentIndex].tabIndex = -1;\n buttonElements[nextIndex].tabIndex = 0;\n buttonElements[nextIndex].focus();\n }\n };\n const onClick = () => {\n var _outerRef$current;\n setExpandWithCallback(!expanded);\n const buttonElement = expanderButtonRef.current;\n if (!buttonElement) return;\n const prevButtonElement = (_outerRef$current = outerRef.current) === null || _outerRef$current === void 0 ? void 0 : _outerRef$current.querySelector('[role=button][tabindex=\"0\"]');\n if (prevButtonElement) {\n prevButtonElement.tabIndex = -1;\n }\n buttonElement.tabIndex = 0;\n buttonElement.focus();\n };\n return /*#__PURE__*/createElement(\"div\", {\n className: style.basicChildStyle,\n role: 'treeitem',\n \"aria-expanded\": expanded,\n \"aria-selected\": undefined\n }, /*#__PURE__*/createElement(\"span\", {\n className: expanderIconStyle,\n onClick: onClick,\n onKeyDown: onKeyDown,\n role: 'button',\n \"aria-label\": ariaLabel,\n \"aria-expanded\": expanded,\n \"aria-controls\": expanded ? contentsId : undefined,\n ref: expanderButtonRef,\n tabIndex: level === 0 ? 0 : -1\n }), (field || field === '') && (clickToExpandNode ? (\n /*#__PURE__*/\n createElement(\"span\", {\n className: style.clickableLabel,\n onClick: onClick,\n onKeyDown: onKeyDown\n }, quoteString(field, style.quotesForFieldNames), \":\")) : (/*#__PURE__*/createElement(\"span\", {\n className: style.label\n }, quoteString(field, style.quotesForFieldNames), \":\"))), /*#__PURE__*/createElement(\"span\", {\n className: style.punctuation\n }, openBracket), expanded ? (/*#__PURE__*/createElement(\"ul\", {\n id: contentsId,\n role: 'group',\n className: style.childFieldsContainer\n }, data.map((dataElement, index) => (/*#__PURE__*/createElement(DataRender, {\n key: dataElement[0] || index,\n field: dataElement[0],\n value: dataElement[1],\n style: style,\n lastElement: index === lastIndex,\n level: childLevel,\n shouldExpandNode: shouldExpandNode,\n clickToExpandNode: clickToExpandNode,\n outerRef: outerRef\n }))))) : (\n /*#__PURE__*/\n createElement(\"span\", {\n className: style.collapsedContent,\n onClick: onClick,\n onKeyDown: onKeyDown\n })), /*#__PURE__*/createElement(\"span\", {\n className: style.punctuation\n }, closeBracket), !lastElement && /*#__PURE__*/createElement(\"span\", {\n className: style.punctuation\n }, \",\"));\n}\nfunction EmptyObject(_ref2) {\n let {\n field,\n openBracket,\n closeBracket,\n lastElement,\n style\n } = _ref2;\n return /*#__PURE__*/createElement(\"div\", {\n className: style.basicChildStyle,\n role: 'treeitem',\n \"aria-selected\": undefined\n }, (field || field === '') && (/*#__PURE__*/createElement(\"span\", {\n className: style.label\n }, quoteString(field, style.quotesForFieldNames), \":\")), /*#__PURE__*/createElement(\"span\", {\n className: style.punctuation\n }, openBracket), /*#__PURE__*/createElement(\"span\", {\n className: style.punctuation\n }, closeBracket), !lastElement && /*#__PURE__*/createElement(\"span\", {\n className: style.punctuation\n }, \",\"));\n}\nfunction JsonObject(_ref3) {\n let {\n field,\n value,\n style,\n lastElement,\n shouldExpandNode,\n clickToExpandNode,\n level,\n outerRef,\n beforeExpandChange\n } = _ref3;\n return ExpandableObject({\n field,\n value,\n lastElement: lastElement || false,\n level,\n openBracket: '{',\n closeBracket: '}',\n style,\n shouldExpandNode,\n clickToExpandNode,\n data: Object.keys(value).map(key => [key, value[key]]),\n outerRef,\n beforeExpandChange\n });\n}\nfunction JsonArray(_ref4) {\n let {\n field,\n value,\n style,\n lastElement,\n level,\n shouldExpandNode,\n clickToExpandNode,\n outerRef,\n beforeExpandChange\n } = _ref4;\n return ExpandableObject({\n field,\n value,\n lastElement: lastElement || false,\n level,\n openBracket: '[',\n closeBracket: ']',\n style,\n shouldExpandNode,\n clickToExpandNode,\n data: value.map(element => [undefined, element]),\n outerRef,\n beforeExpandChange\n });\n}\nfunction JsonPrimitiveValue(_ref5) {\n let {\n field,\n value,\n style,\n lastElement\n } = _ref5;\n let stringValue;\n let valueStyle = style.otherValue;\n if (value === null) {\n stringValue = 'null';\n valueStyle = style.nullValue;\n } else if (value === undefined) {\n stringValue = 'undefined';\n valueStyle = style.undefinedValue;\n } else if (isString(value)) {\n stringValue = quoteStringValue(value, !style.noQuotesForStringValues, style.stringifyStringValues);\n valueStyle = style.stringValue;\n } else if (isBoolean(value)) {\n stringValue = value ? 'true' : 'false';\n valueStyle = style.booleanValue;\n } else if (isNumber(value)) {\n stringValue = value.toString();\n valueStyle = style.numberValue;\n } else if (isBigInt(value)) {\n stringValue = `${value.toString()}n`;\n valueStyle = style.numberValue;\n } else if (isDate(value)) {\n stringValue = value.toISOString();\n } else if (isFunction(value)) {\n stringValue = 'function() { }';\n } else {\n stringValue = value.toString();\n }\n return /*#__PURE__*/createElement(\"div\", {\n className: style.basicChildStyle,\n role: 'treeitem',\n \"aria-selected\": undefined\n }, (field || field === '') && (/*#__PURE__*/createElement(\"span\", {\n className: style.label\n }, quoteString(field, style.quotesForFieldNames), \":\")), /*#__PURE__*/createElement(\"span\", {\n className: valueStyle\n }, stringValue), !lastElement && /*#__PURE__*/createElement(\"span\", {\n className: style.punctuation\n }, \",\"));\n}\nfunction DataRender(props) {\n const value = props.value;\n if (isArray(value)) {\n return /*#__PURE__*/createElement(JsonArray, Object.assign({}, props));\n }\n if (isObject(value) && !isDate(value) && !isFunction(value)) {\n return /*#__PURE__*/createElement(JsonObject, Object.assign({}, props));\n }\n return /*#__PURE__*/createElement(JsonPrimitiveValue, Object.assign({}, props));\n}\n\nvar styles = {\"container-base\":\"_GzYRV\",\"punctuation-base\":\"_3eOF8\",\"pointer\":\"_1MFti\",\"expander-base\":\"_f10Tu _1MFti\",\"expand-icon\":\"_1UmXx\",\"collapse-icon\":\"_1LId0\",\"collapsed-content-base\":\"_1pNG9 _1MFti\",\"container-light\":\"_2IvMF _GzYRV\",\"basic-element-style\":\"_2bkNM\",\"child-fields-container\":\"_1BXBN\",\"label-light\":\"_1MGIk\",\"clickable-label-light\":\"_2YKJg _1MGIk _1MFti\",\"punctuation-light\":\"_3uHL6 _3eOF8\",\"value-null-light\":\"_2T6PJ\",\"value-undefined-light\":\"_1Gho6\",\"value-string-light\":\"_vGjyY\",\"value-number-light\":\"_1bQdo\",\"value-boolean-light\":\"_3zQKs\",\"value-other-light\":\"_1xvuR\",\"collapse-icon-light\":\"_oLqym _f10Tu _1MFti _1LId0\",\"expand-icon-light\":\"_2AXVT _f10Tu _1MFti _1UmXx\",\"collapsed-content-light\":\"_2KJWg _1pNG9 _1MFti\",\"container-dark\":\"_11RoI _GzYRV\",\"expand-icon-dark\":\"_17H2C _f10Tu _1MFti _1UmXx\",\"collapse-icon-dark\":\"_3QHg2 _f10Tu _1MFti _1LId0\",\"collapsed-content-dark\":\"_3fDAz _1pNG9 _1MFti\",\"label-dark\":\"_2bSDX\",\"clickable-label-dark\":\"_1RQEj _2bSDX _1MFti\",\"punctuation-dark\":\"_gsbQL _3eOF8\",\"value-null-dark\":\"_LaAZe\",\"value-undefined-dark\":\"_GTKgm\",\"value-string-dark\":\"_Chy1W\",\"value-number-dark\":\"_2bveF\",\"value-boolean-dark\":\"_2vRm-\",\"value-other-dark\":\"_1prJR\"};\n\nconst defaultAriaLables = {\n collapseJson: 'collapse JSON',\n expandJson: 'expand JSON'\n};\nconst defaultStyles = {\n container: styles['container-light'],\n basicChildStyle: styles['basic-element-style'],\n childFieldsContainer: styles['child-fields-container'],\n label: styles['label-light'],\n clickableLabel: styles['clickable-label-light'],\n nullValue: styles['value-null-light'],\n undefinedValue: styles['value-undefined-light'],\n stringValue: styles['value-string-light'],\n booleanValue: styles['value-boolean-light'],\n numberValue: styles['value-number-light'],\n otherValue: styles['value-other-light'],\n punctuation: styles['punctuation-light'],\n collapseIcon: styles['collapse-icon-light'],\n expandIcon: styles['expand-icon-light'],\n collapsedContent: styles['collapsed-content-light'],\n noQuotesForStringValues: false,\n quotesForFieldNames: false,\n ariaLables: defaultAriaLables,\n stringifyStringValues: false\n};\nconst darkStyles = {\n container: styles['container-dark'],\n basicChildStyle: styles['basic-element-style'],\n childFieldsContainer: styles['child-fields-container'],\n label: styles['label-dark'],\n clickableLabel: styles['clickable-label-dark'],\n nullValue: styles['value-null-dark'],\n undefinedValue: styles['value-undefined-dark'],\n stringValue: styles['value-string-dark'],\n booleanValue: styles['value-boolean-dark'],\n numberValue: styles['value-number-dark'],\n otherValue: styles['value-other-dark'],\n punctuation: styles['punctuation-dark'],\n collapseIcon: styles['collapse-icon-dark'],\n expandIcon: styles['expand-icon-dark'],\n collapsedContent: styles['collapsed-content-dark'],\n noQuotesForStringValues: false,\n quotesForFieldNames: false,\n ariaLables: defaultAriaLables,\n stringifyStringValues: false\n};\nconst allExpanded = () => true;\nconst collapseAllNested = level => level < 1;\nconst JsonView = _ref => {\n let {\n data,\n style = defaultStyles,\n shouldExpandNode = allExpanded,\n clickToExpandNode = false,\n beforeExpandChange,\n ...ariaAttrs\n } = _ref;\n const outerRef = useRef(null);\n return /*#__PURE__*/createElement(\"div\", Object.assign({\n \"aria-label\": 'JSON view'\n }, ariaAttrs, {\n className: style.container,\n ref: outerRef,\n role: 'tree'\n }), /*#__PURE__*/createElement(DataRender, {\n value: data,\n style: {\n ...defaultStyles,\n ...style\n },\n lastElement: true,\n level: 0,\n shouldExpandNode: shouldExpandNode,\n clickToExpandNode: clickToExpandNode,\n outerRef: outerRef,\n beforeExpandChange: beforeExpandChange\n }));\n};\n\nexport { JsonView, allExpanded, collapseAllNested, darkStyles, defaultStyles };\n//# sourceMappingURL=index.modern.js.map\n","import { toJS } from \"mobx\";\n\nexport function serializeStoreData(\n stores_: Record<string, any>,\n): Record<string, any> {\n try {\n const stores = toJS(stores_);\n const seen = new Set();\n function serialize(obj: any): any {\n if (obj === null || typeof obj !== \"object\") {\n return obj;\n }\n\n if (seen.has(obj)) {\n return \"[Already Seen]\";\n }\n\n // Create new path for this branch of recursion\n seen.add(obj);\n\n if (Array.isArray(obj)) {\n return obj.map(serialize);\n }\n\n const result: any = {};\n\n for (const key of Object.keys(obj)) {\n if (typeof obj[key] === \"function\") {\n result[key] = \"[Function]\";\n }\n\n try {\n const descriptor = Object.getOwnPropertyDescriptor(obj, key);\n if (descriptor && descriptor.get) {\n try {\n result[key] = serialize(obj[key]);\n } catch {\n result[key] = \"[Getter Error]\";\n }\n } else {\n result[key] = serialize(obj[key]);\n }\n } catch {\n result[key] = \"[Access Error]\";\n }\n }\n\n // Add type information\n if (obj.constructor && obj.constructor.name !== \"Object\") {\n result.__type__ = obj.constructor.name;\n }\n\n return result;\n }\n\n return serialize(stores);\n } catch (error) {\n return {\n error: `Error serializing data: ${error instanceof Error ? error.message : \"Unknown error\"}`,\n };\n }\n}\n","import { makeAutoObservable } from \"mobx\";\nimport { observer } from \"mobx-react-lite\";\nimport React, { useCallback, useEffect } from \"react\";\nimport { createPortal } from \"react-dom\";\nimport { JsonView } from \"react-json-view-lite\";\nimport \"react-json-view-lite/dist/index.css\";\nimport { serializeStoreData } from \"./serialize-store-data.js\";\n\n// ============================================================================\n// STATE MANAGEMENT\n// ============================================================================\n\nclass DevToolsState {\n isVisible = false;\n\n constructor() {\n makeAutoObservable(this);\n }\n\n show() {\n this.isVisible = true;\n }\n\n hide() {\n this.isVisible = false;\n }\n\n toggle() {\n this.isVisible = !this.isVisible;\n }\n}\n\nconst devToolsState = new DevToolsState();\n\n// ============================================================================\n// KEYBOARD SHORTCUT MANAGER\n// ============================================================================\n\nclass KeyboardShortcutManager {\n private isListening = false;\n private shortcutKeys = {\n key: \"KeyD\",\n ctrlKey: true,\n shiftKey: true,\n altKey: false,\n };\n\n constructor() {\n this.handleKeyDown = this.handleKeyDown.bind(this);\n }\n\n private handleKeyDown(event: KeyboardEvent) {\n const { ctrlKey, shiftKey, altKey, metaKey } = event;\n const isModifierMatch = (ctrlKey || metaKey) && shiftKey && !altKey;\n const isKeyMatch = event.code === this.shortcutKeys.key;\n if (isModifierMatch && isKeyMatch) {\n event.preventDefault();\n event.stopPropagation();\n devToolsState.toggle();\n }\n }\n\n private handleEscapeKey = (event: KeyboardEvent) => {\n if (event.key === \"Escape\" && devToolsState.isVisible) {\n event.preventDefault();\n devToolsState.hide();\n }\n };\n\n startListening() {\n if (this.isListening) return;\n\n this.isListening = true;\n document.addEventListener(\"keydown\", this.handleKeyDown, true);\n document.addEventListener(\"keydown\", this.handleEscapeKey, true);\n }\n\n stopListening() {\n if (!this.isListening) return;\n\n this.isListening = false;\n document.removeEventListener(\"keydown\", this.handleKeyDown, true);\n document.removeEventListener(\"keydown\", this.handleEscapeKey, true);\n }\n\n updateShortcut(options: Partial<typeof this.shortcutKeys>) {\n this.shortcutKeys = { ...this.shortcutKeys, ...options };\n }\n}\n\nconst keyboardShortcutManager = new KeyboardShortcutManager();\n\n// ============================================================================\n// STORE ACCESS\n// ============================================================================\n\n// This will be populated by the registerStores function\nlet registeredStores: Record<string, any> = {};\n\nexport function setRegisteredStores(stores: Record<string, any>) {\n registeredStores = stores;\n}\n\nfunction getRegisteredStores() {\n return registeredStores;\n}\n\n// ============================================================================\n// DEVTOOLS PANEL COMPONENT\n// ============================================================================\n\nconst overlayStyles: React.CSSProperties = {\n position: \"fixed\",\n top: 0,\n left: 0,\n right: 0,\n bottom: 0,\n backgroundColor: \"rgba(0, 0, 0, 0.5)\",\n zIndex: 9999,\n};\n\nconst panelStyles: React.CSSProperties = {\n position: \"fixed\",\n top: \"50%\",\n left: \"50%\",\n transform: \"translate(-50%, -50%)\",\n width: \"90vw\",\n height: \"90vh\",\n backgroundColor: \"#fff\",\n zIndex: 10000,\n display: \"flex\",\n flexDirection: \"column\",\n borderRadius: 12,\n};\n\nconst headerStyles: React.CSSProperties = {\n padding: 12,\n borderBottom: \"1px solid #ccc\",\n display: \"flex\",\n justifyContent: \"space-between\",\n alignItems: \"center\",\n};\n\nconst closeButtonStyles: React.CSSProperties = {\n background: \"none\",\n border: \"none\",\n cursor: \"pointer\",\n};\n\nconst contentStyles: React.CSSProperties = {\n padding: 8,\n display: \"flex\",\n flex: 1,\n overflow: \"auto\",\n flexDirection: \"column\",\n};\n\nconst DevToolsPanelContent: React.FC = observer(() => {\n const stores = getRegisteredStores();\n const storeNames = Object.keys(stores);\n\n const serializedData = serializeStoreData(stores);\n const onClose = useCallback(() => {\n devToolsState.hide();\n }, []);\n\n return createPortal(\n <>\n <div style={overlayStyles} onClick={onClose} />\n <div style={panelStyles}>\n <div style={headerStyles}>\n <h3>\n MobX DevTools ({storeNames.length} store\n {storeNames.length !== 1 ? \"s\" : \"\"})\n </h3>\n <button\n style={closeButtonStyles}\n onClick={onClose}\n title=\"Close (ESC)\"\n >\n ×\n </button>\n </div>\n {storeNames.length === 0 ? (\n <div>No stores registered yet.</div>\n ) : (\n <div style={contentStyles}>\n <JsonView\n data={serializedData}\n clickToExpandNode={true}\n shouldExpandNode={(level) => level < 2}\n />\n </div>\n )}\n </div>\n </>,\n document.body,\n );\n});\n\n// ============================================================================\n// PROVIDER COMPONENT\n// ============================================================================\n\nexport const CustomDevTools: React.FC = observer(() => {\n useEffect(() => {\n if (devToolsState.isVisible) {\n const handleEscape = (event: KeyboardEvent) => {\n if (event.key === \"Escape\") {\n devToolsState.hide();\n }\n };\n document.addEventListener(\"keydown\", handleEscape);\n return () => document.removeEventListener(\"keydown\", handleEscape);\n }\n }, []);\n\n if (!devToolsState.isVisible) {\n return null;\n }\n\n return <DevToolsPanelContent />;\n});\n\n// ============================================================================\n// INITIALIZATION\n// ============================================================================\n\nexport function initializeCustomDevTools() {\n keyboardShortcutManager.startListening();\n console.log(\n \"[CustomDevTools] Initialized - Press Ctrl+Shift+D (or Cmd+Shift+D) to open\",\n );\n}\n"],"names":["jsxs","Fragment","jsx"],"mappings":"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","x_google_ignoreList":[0]}
@@ -95087,7 +95087,7 @@ function registerStores(stores) {
95087
95087
  internalStores = { ...internalStores, ...stores };
95088
95088
  if (SUPPORTED_MODES.includes("production")) {
95089
95089
  if (Object.keys(internalStores).length === Object.keys(stores).length) {
95090
- import("./devtools-consolidated-DAxETYB9.js").then(({ initializeCustomDevTools, setRegisteredStores }) => {
95090
+ import("./devtools-consolidated-Bl7R4hJL.js").then(({ initializeCustomDevTools, setRegisteredStores }) => {
95091
95091
  setRegisteredStores(internalStores);
95092
95092
  initializeCustomDevTools();
95093
95093
  }).catch((error) => {
@@ -95100,7 +95100,7 @@ function registerStores(stores) {
95100
95100
  }
95101
95101
  }
95102
95102
  const DevToolsInternal = React__default.lazy(() => {
95103
- return import("./devtools-consolidated-DAxETYB9.js").then((module2) => ({
95103
+ return import("./devtools-consolidated-Bl7R4hJL.js").then((module2) => ({
95104
95104
  default: module2.CustomDevTools
95105
95105
  }));
95106
95106
  });
@@ -96801,6 +96801,14 @@ class ApiManager {
96801
96801
  }
96802
96802
  updateApi(api2, scopeId) {
96803
96803
  this.apisByName[api2.apiPb.metadata.name] = api2;
96804
+ const scope = this.rootStore.entityManager.getPossibleScope(scopeId);
96805
+ if (!scope) {
96806
+ console.warn(
96807
+ `Scope ${scopeId} not found. Could not update API.`,
96808
+ api2.apiPb.metadata.name
96809
+ );
96810
+ return;
96811
+ }
96804
96812
  const name = {
96805
96813
  value: api2.apiPb.metadata.name,
96806
96814
  isAnonymous: false
@@ -96819,16 +96827,25 @@ class ApiManager {
96819
96827
  }
96820
96828
  deleteApi(apiName, scopeId) {
96821
96829
  delete this.apisByName[apiName];
96822
- if (scopeId) {
96823
- const name = {
96824
- value: apiName,
96825
- isAnonymous: false
96826
- };
96827
- this.rootStore.entityManager.deleteEntity({
96828
- name,
96829
- scopeId
96830
- });
96830
+ if (!scopeId) {
96831
+ return;
96831
96832
  }
96833
+ const scope = this.rootStore.entityManager.getPossibleScope(scopeId);
96834
+ if (!scope) {
96835
+ console.warn(
96836
+ `Scope ${scopeId} not found. Could not delete API.`,
96837
+ apiName
96838
+ );
96839
+ return;
96840
+ }
96841
+ const name = {
96842
+ value: apiName,
96843
+ isAnonymous: false
96844
+ };
96845
+ this.rootStore.entityManager.deleteEntity({
96846
+ name,
96847
+ scopeId
96848
+ });
96832
96849
  }
96833
96850
  renameApi({
96834
96851
  api: api2,
@@ -102726,14 +102743,14 @@ function getLoaderFn$1(options) {
102726
102743
  if (!(loader === "all")) return [3, 3];
102727
102744
  return [4, import(
102728
102745
  /* webpackChunkName: "blueprint-icons-all-paths-loader" */
102729
- "./allPathsLoader-_h8gjJEf.js"
102746
+ "./allPathsLoader-Y6TksEhH.js"
102730
102747
  )];
102731
102748
  case 2:
102732
102749
  return [2, _b2.sent().allPathsLoader];
102733
102750
  case 3:
102734
102751
  return [4, import(
102735
102752
  /* webpackChunkName: "blueprint-icons-split-paths-by-size-loader" */
102736
- "./splitPathsBySizeLoader-BfsW9Mz_.js"
102753
+ "./splitPathsBySizeLoader-DCK7yj_J.js"
102737
102754
  )];
102738
102755
  case 4:
102739
102756
  return [2, _b2.sent().splitPathsBySizeLoader];
@@ -159847,14 +159864,14 @@ function getLoaderFn(options) {
159847
159864
  if (!(loader === "all")) return [3, 3];
159848
159865
  return [4, import(
159849
159866
  /* webpackChunkName: "blueprint-icons-all-paths-loader" */
159850
- "./allPathsLoader-NHCvVjCQ.js"
159867
+ "./allPathsLoader-CeNQ1vrz.js"
159851
159868
  )];
159852
159869
  case 2:
159853
159870
  return [2, _b2.sent().allPathsLoader];
159854
159871
  case 3:
159855
159872
  return [4, import(
159856
159873
  /* webpackChunkName: "blueprint-icons-split-paths-by-size-loader" */
159857
- "./splitPathsBySizeLoader-B-wSYA3-.js"
159874
+ "./splitPathsBySizeLoader-CDwO7oq9.js"
159858
159875
  )];
159859
159876
  case 4:
159860
159877
  return [2, _b2.sent().splitPathsBySizeLoader];
@@ -200760,4 +200777,4 @@ export {
200760
200777
  setQueryParams as y,
200761
200778
  download as z
200762
200779
  };
200763
- //# sourceMappingURL=index-2SgHYkHQ.js.map
200780
+ //# sourceMappingURL=index-BoQ2bq34.js.map