@superblocksteam/library 2.0.9 → 2.0.10-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-Bz9CB7oW.js → allPaths-CW3F1I_u.js} +2 -2
  2. package/dist/{allPaths-Bz9CB7oW.js.map → allPaths-CW3F1I_u.js.map} +1 -1
  3. package/dist/{allPaths-ZEd4tAGf.js → allPaths-P4XCJuqq.js} +2 -2
  4. package/dist/{allPaths-ZEd4tAGf.js.map → allPaths-P4XCJuqq.js.map} +1 -1
  5. package/dist/{allPathsLoader-Bjbplgx0.js → allPathsLoader-Cz5VsVki.js} +3 -3
  6. package/dist/{allPathsLoader-DG6rhoUd.js.map → allPathsLoader-Cz5VsVki.js.map} +1 -1
  7. package/dist/{allPathsLoader-DG6rhoUd.js → allPathsLoader-KAe-oTuv.js} +3 -3
  8. package/dist/{allPathsLoader-Bjbplgx0.js.map → allPathsLoader-KAe-oTuv.js.map} +1 -1
  9. package/dist/{devtools-consolidated-BShIHcMF.js → devtools-consolidated-CllMcdxZ.js} +2 -2
  10. package/dist/{devtools-consolidated-BShIHcMF.js.map → devtools-consolidated-CllMcdxZ.js.map} +1 -1
  11. package/dist/{index-jyTMrRlu.js → index-CMtDuuoU.js} +35 -13
  12. package/dist/{index-jyTMrRlu.js.map → index-CMtDuuoU.js.map} +1 -1
  13. package/dist/index.js +2 -2
  14. package/dist/{splitPathsBySizeLoader-BdqT5gk5.js → splitPathsBySizeLoader-B19wHjBp.js} +2 -2
  15. package/dist/{splitPathsBySizeLoader-BdqT5gk5.js.map → splitPathsBySizeLoader-B19wHjBp.js.map} +1 -1
  16. package/dist/{splitPathsBySizeLoader-CHakB9pq.js → splitPathsBySizeLoader-hfvmlX0_.js} +2 -2
  17. package/dist/{splitPathsBySizeLoader-CHakB9pq.js.map → splitPathsBySizeLoader-hfvmlX0_.js.map} +1 -1
  18. package/dist-types/docs-utils/generate-docs-utils.d.ts +27 -0
  19. package/dist-types/lib/user-facing/components/custom/register-custom-component.d.ts +11 -2
  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-jyTMrRlu.js";
3
+ import { p as pascalCase, I as IconSize } from "./index-CMtDuuoU.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-Bz9CB7oW.js.map
17
+ //# sourceMappingURL=allPaths-CW3F1I_u.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"allPaths-Bz9CB7oW.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-CW3F1I_u.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-jyTMrRlu.js";
3
+ import { p as pascalCase, b as IconSize } from "./index-CMtDuuoU.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-ZEd4tAGf.js.map
17
+ //# sourceMappingURL=allPaths-P4XCJuqq.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"allPaths-ZEd4tAGf.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-P4XCJuqq.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-jyTMrRlu.js";
1
+ import { _ as __awaiter, a as __generator } from "./index-CMtDuuoU.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-ZEd4tAGf.js"
10
+ "./allPaths-CW3F1I_u.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-Bjbplgx0.js.map
22
+ //# sourceMappingURL=allPathsLoader-Cz5VsVki.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"allPathsLoader-DG6rhoUd.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-Cz5VsVki.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,4 +1,4 @@
1
- import { _ as __awaiter, a as __generator } from "./index-jyTMrRlu.js";
1
+ import { _ as __awaiter, a as __generator } from "./index-CMtDuuoU.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-Bz9CB7oW.js"
10
+ "./allPaths-P4XCJuqq.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-DG6rhoUd.js.map
22
+ //# sourceMappingURL=allPathsLoader-KAe-oTuv.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"allPathsLoader-Bjbplgx0.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-KAe-oTuv.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,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-jyTMrRlu.js";
4
+ import { t as toJS, o as observer, j as jsxRuntimeExports, m as makeAutoObservable } from "./index-CMtDuuoU.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-BShIHcMF.js.map
590
+ //# sourceMappingURL=devtools-consolidated-CllMcdxZ.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"devtools-consolidated-BShIHcMF.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-CllMcdxZ.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]}
@@ -95020,7 +95020,7 @@ function registerStores(stores) {
95020
95020
  internalStores = { ...internalStores, ...stores };
95021
95021
  if (SUPPORTED_MODES.includes("production")) {
95022
95022
  if (Object.keys(internalStores).length === Object.keys(stores).length) {
95023
- import("./devtools-consolidated-BShIHcMF.js").then(({ initializeCustomDevTools, setRegisteredStores }) => {
95023
+ import("./devtools-consolidated-CllMcdxZ.js").then(({ initializeCustomDevTools, setRegisteredStores }) => {
95024
95024
  setRegisteredStores(internalStores);
95025
95025
  initializeCustomDevTools();
95026
95026
  }).catch((error) => {
@@ -95033,7 +95033,7 @@ function registerStores(stores) {
95033
95033
  }
95034
95034
  }
95035
95035
  const DevToolsInternal = React__default.lazy(() => {
95036
- return import("./devtools-consolidated-BShIHcMF.js").then((module2) => ({
95036
+ return import("./devtools-consolidated-CllMcdxZ.js").then((module2) => ({
95037
95037
  default: module2.CustomDevTools
95038
95038
  }));
95039
95039
  });
@@ -102571,14 +102571,14 @@ function getLoaderFn$1(options) {
102571
102571
  if (!(loader === "all")) return [3, 3];
102572
102572
  return [4, import(
102573
102573
  /* webpackChunkName: "blueprint-icons-all-paths-loader" */
102574
- "./allPathsLoader-DG6rhoUd.js"
102574
+ "./allPathsLoader-Cz5VsVki.js"
102575
102575
  )];
102576
102576
  case 2:
102577
102577
  return [2, _b2.sent().allPathsLoader];
102578
102578
  case 3:
102579
102579
  return [4, import(
102580
102580
  /* webpackChunkName: "blueprint-icons-split-paths-by-size-loader" */
102581
- "./splitPathsBySizeLoader-CHakB9pq.js"
102581
+ "./splitPathsBySizeLoader-hfvmlX0_.js"
102582
102582
  )];
102583
102583
  case 4:
102584
102584
  return [2, _b2.sent().splitPathsBySizeLoader];
@@ -159667,14 +159667,14 @@ function getLoaderFn(options) {
159667
159667
  if (!(loader === "all")) return [3, 3];
159668
159668
  return [4, import(
159669
159669
  /* webpackChunkName: "blueprint-icons-all-paths-loader" */
159670
- "./allPathsLoader-Bjbplgx0.js"
159670
+ "./allPathsLoader-KAe-oTuv.js"
159671
159671
  )];
159672
159672
  case 2:
159673
159673
  return [2, _b2.sent().allPathsLoader];
159674
159674
  case 3:
159675
159675
  return [4, import(
159676
159676
  /* webpackChunkName: "blueprint-icons-split-paths-by-size-loader" */
159677
- "./splitPathsBySizeLoader-BdqT5gk5.js"
159677
+ "./splitPathsBySizeLoader-B19wHjBp.js"
159678
159678
  )];
159679
159679
  case 4:
159680
159680
  return [2, _b2.sent().splitPathsBySizeLoader];
@@ -175933,6 +175933,9 @@ const propertiesDefinition$9 = {
175933
175933
  controlType: "DEFAULT_TABLE_SORT",
175934
175934
  isRemovable: true,
175935
175935
  visibility: "SHOW_NAME",
175936
+ defaultOnAdd: () => Property.Static({
175937
+ asc: true
175938
+ }),
175936
175939
  childrenDisplayMode: {
175937
175940
  type: "popover",
175938
175941
  title: "Default sort"
@@ -175943,6 +175946,7 @@ const propertiesDefinition$9 = {
175943
175946
  helpText: "Sets the default search text",
175944
175947
  isRemovable: true,
175945
175948
  visibility: "SHOW_NAME",
175949
+ defaultOnAdd: () => Property.Static(""),
175946
175950
  isVisible: function() {
175947
175951
  return this.enableClientSideSearch !== false;
175948
175952
  }
@@ -195572,21 +195576,39 @@ const defaultSections = {
195572
195576
  }),
195573
195577
  layout: basicLayout()
195574
195578
  };
195579
+ const restrictedKeys = Object.values(defaultSections).reduce(
195580
+ (keys2, section) => {
195581
+ return [...keys2, ...Object.keys(section.props)];
195582
+ },
195583
+ []
195584
+ );
195575
195585
  function registerComponent(name, propertiesDefinition2, component) {
195576
195586
  const contentSection = Section$1.category(PropsPanelCategory.Content).children(
195577
195587
  Object.fromEntries(
195578
- Object.entries(propertiesDefinition2).filter(
195579
- ([_15, prop]) => prop.type !== "event"
195580
- )
195588
+ Object.entries(propertiesDefinition2).filter(([key2, prop]) => {
195589
+ if (restrictedKeys.includes(key2)) {
195590
+ console.warn(
195591
+ `Cannot set custom component property "${key2}" because it is already defined in the default sections.`
195592
+ );
195593
+ return false;
195594
+ }
195595
+ return prop.type !== "event";
195596
+ })
195581
195597
  )
195582
195598
  );
195583
195599
  const eventSection = Section$1.category(
195584
195600
  PropsPanelCategory.EventHandlers
195585
195601
  ).children(
195586
195602
  Object.fromEntries(
195587
- Object.entries(propertiesDefinition2).filter(
195588
- ([_15, prop]) => prop.type === "event"
195589
- )
195603
+ Object.entries(propertiesDefinition2).filter(([key2, prop]) => {
195604
+ if (restrictedKeys.includes(key2)) {
195605
+ console.warn(
195606
+ `Cannot set custom component property "${key2}" because it is already defined in the default sections.`
195607
+ );
195608
+ return false;
195609
+ }
195610
+ return prop.type === "event";
195611
+ })
195590
195612
  )
195591
195613
  );
195592
195614
  return registerComponent$1(
@@ -200401,4 +200423,4 @@ export {
200401
200423
  setQueryParams as y,
200402
200424
  download as z
200403
200425
  };
200404
- //# sourceMappingURL=index-jyTMrRlu.js.map
200426
+ //# sourceMappingURL=index-CMtDuuoU.js.map