@flanksource/clicky-ui 0.2.17 → 0.2.18

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 (46) hide show
  1. package/dist/components/FilterBar.cjs +5 -0
  2. package/dist/components/FilterBar.cjs.map +1 -1
  3. package/dist/components/FilterBar.js +5 -0
  4. package/dist/components/FilterBar.js.map +1 -1
  5. package/dist/components/json-schema-form-types.d.ts +2 -0
  6. package/dist/components/json-schema-form-types.d.ts.map +1 -1
  7. package/dist/components.cjs +1 -0
  8. package/dist/components.cjs.map +1 -1
  9. package/dist/components.d.ts +1 -1
  10. package/dist/components.d.ts.map +1 -1
  11. package/dist/components.js +2 -1
  12. package/dist/data/test-runner/TestDetailPanel.cjs +8 -1
  13. package/dist/data/test-runner/TestDetailPanel.cjs.map +1 -1
  14. package/dist/data/test-runner/TestDetailPanel.d.ts.map +1 -1
  15. package/dist/data/test-runner/TestDetailPanel.js +8 -1
  16. package/dist/data/test-runner/TestDetailPanel.js.map +1 -1
  17. package/dist/data/test-runner/TestRunner.cjs +6 -0
  18. package/dist/data/test-runner/TestRunner.cjs.map +1 -1
  19. package/dist/data/test-runner/TestRunner.d.ts +5 -1
  20. package/dist/data/test-runner/TestRunner.d.ts.map +1 -1
  21. package/dist/data/test-runner/TestRunner.js +6 -0
  22. package/dist/data/test-runner/TestRunner.js.map +1 -1
  23. package/dist/data/test-runner/context.cjs.map +1 -1
  24. package/dist/data/test-runner/context.d.ts +7 -0
  25. package/dist/data/test-runner/context.d.ts.map +1 -1
  26. package/dist/data/test-runner/context.js.map +1 -1
  27. package/dist/data/test-runner/index.d.ts +1 -0
  28. package/dist/data/test-runner/index.d.ts.map +1 -1
  29. package/dist/data/test-runner/routePath.cjs +39 -0
  30. package/dist/data/test-runner/routePath.cjs.map +1 -0
  31. package/dist/data/test-runner/routePath.d.ts +11 -0
  32. package/dist/data/test-runner/routePath.d.ts.map +1 -0
  33. package/dist/data/test-runner/routePath.js +39 -0
  34. package/dist/data/test-runner/routePath.js.map +1 -0
  35. package/dist/data/version-info.cjs +2 -2
  36. package/dist/data/version-info.js +2 -2
  37. package/dist/data.cjs +4 -0
  38. package/dist/data.cjs.map +1 -1
  39. package/dist/data.js +4 -0
  40. package/dist/data.js.map +1 -1
  41. package/dist/index.cjs +5 -0
  42. package/dist/index.cjs.map +1 -1
  43. package/dist/index.js +6 -1
  44. package/dist/index.js.map +1 -1
  45. package/dist/styles.css +1 -1
  46. package/package.json +1 -1
@@ -0,0 +1,39 @@
1
+ function slugify(value) {
2
+ const slug = (value || "").toLowerCase().replace(/[^a-z0-9]+/g, "-").replace(/^-+|-+$/g, "");
3
+ return slug || "node";
4
+ }
5
+ function annotateRoutePaths(nodes, parentSegments = []) {
6
+ const counts = /* @__PURE__ */ new Map();
7
+ for (const node of nodes) {
8
+ const slug = slugify(node.name);
9
+ counts.set(slug, (counts.get(slug) || 0) + 1);
10
+ }
11
+ const seen = /* @__PURE__ */ new Map();
12
+ return nodes.map((node) => {
13
+ const slug = slugify(node.name);
14
+ const ordinal = (seen.get(slug) || 0) + 1;
15
+ seen.set(slug, ordinal);
16
+ const finalSlug = (counts.get(slug) || 0) > 1 ? `${slug}~${ordinal}` : slug;
17
+ const segments = [...parentSegments, finalSlug];
18
+ const annotated = { ...node, route_path: segments.join("/") };
19
+ if (node.children) annotated.children = annotateRoutePaths(node.children, segments);
20
+ return annotated;
21
+ });
22
+ }
23
+ function findNodeByRoutePath(nodes, target) {
24
+ if (!target) return null;
25
+ for (const node of nodes) {
26
+ if (node.route_path === target) return node;
27
+ if (node.children) {
28
+ const child = findNodeByRoutePath(node.children, target);
29
+ if (child) return child;
30
+ }
31
+ }
32
+ return null;
33
+ }
34
+ export {
35
+ annotateRoutePaths,
36
+ findNodeByRoutePath,
37
+ slugify
38
+ };
39
+ //# sourceMappingURL=routePath.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"routePath.js","sources":["../../../src/data/test-runner/routePath.ts"],"sourcesContent":["// Stable, URL-safe paths for selection/navigation. A host that wants to encode\n// the selected node in its route annotates the forest once with annotateRoutePaths\n// (writing Test.route_path), then resolves a path back to a node with\n// findNodeByRoutePath. Tree's nodeKey already prefers route_path, so an annotated\n// forest also gets stable React keys for free.\n\nimport type { Test } from \"./types\";\n\nexport function slugify(value: string): string {\n const slug = (value || \"\")\n .toLowerCase()\n .replace(/[^a-z0-9]+/g, \"-\")\n .replace(/^-+|-+$/g, \"\");\n return slug || \"node\";\n}\n\n/**\n * Return a deep copy of the forest with a stable, unique `route_path` on every\n * node. Each segment is the slug of the node's name; siblings that slug to the\n * same value are disambiguated with a `~N` ordinal so paths stay unique.\n */\nexport function annotateRoutePaths(nodes: Test[], parentSegments: string[] = []): Test[] {\n const counts = new Map<string, number>();\n for (const node of nodes) {\n const slug = slugify(node.name);\n counts.set(slug, (counts.get(slug) || 0) + 1);\n }\n\n const seen = new Map<string, number>();\n return nodes.map((node) => {\n const slug = slugify(node.name);\n const ordinal = (seen.get(slug) || 0) + 1;\n seen.set(slug, ordinal);\n const finalSlug = (counts.get(slug) || 0) > 1 ? `${slug}~${ordinal}` : slug;\n const segments = [...parentSegments, finalSlug];\n const annotated: Test = { ...node, route_path: segments.join(\"/\") };\n if (node.children) annotated.children = annotateRoutePaths(node.children, segments);\n return annotated;\n });\n}\n\n/** Depth-first lookup of the node whose route_path equals target, or null. */\nexport function findNodeByRoutePath(nodes: Test[], target: string): Test | null {\n if (!target) return null;\n for (const node of nodes) {\n if (node.route_path === target) return node;\n if (node.children) {\n const child = findNodeByRoutePath(node.children, target);\n if (child) return child;\n }\n }\n return null;\n}\n"],"names":[],"mappings":"AAQO,SAAS,QAAQ,OAAuB;AAC7C,QAAM,QAAQ,SAAS,IACpB,YAAA,EACA,QAAQ,eAAe,GAAG,EAC1B,QAAQ,YAAY,EAAE;AACzB,SAAO,QAAQ;AACjB;AAOO,SAAS,mBAAmB,OAAe,iBAA2B,IAAY;AACvF,QAAM,6BAAa,IAAA;AACnB,aAAW,QAAQ,OAAO;AACxB,UAAM,OAAO,QAAQ,KAAK,IAAI;AAC9B,WAAO,IAAI,OAAO,OAAO,IAAI,IAAI,KAAK,KAAK,CAAC;AAAA,EAC9C;AAEA,QAAM,2BAAW,IAAA;AACjB,SAAO,MAAM,IAAI,CAAC,SAAS;AACzB,UAAM,OAAO,QAAQ,KAAK,IAAI;AAC9B,UAAM,WAAW,KAAK,IAAI,IAAI,KAAK,KAAK;AACxC,SAAK,IAAI,MAAM,OAAO;AACtB,UAAM,aAAa,OAAO,IAAI,IAAI,KAAK,KAAK,IAAI,GAAG,IAAI,IAAI,OAAO,KAAK;AACvE,UAAM,WAAW,CAAC,GAAG,gBAAgB,SAAS;AAC9C,UAAM,YAAkB,EAAE,GAAG,MAAM,YAAY,SAAS,KAAK,GAAG,EAAA;AAChE,QAAI,KAAK,SAAU,WAAU,WAAW,mBAAmB,KAAK,UAAU,QAAQ;AAClF,WAAO;AAAA,EACT,CAAC;AACH;AAGO,SAAS,oBAAoB,OAAe,QAA6B;AAC9E,MAAI,CAAC,OAAQ,QAAO;AACpB,aAAW,QAAQ,OAAO;AACxB,QAAI,KAAK,eAAe,OAAQ,QAAO;AACvC,QAAI,KAAK,UAAU;AACjB,YAAM,QAAQ,oBAAoB,KAAK,UAAU,MAAM;AACvD,UAAI,MAAO,QAAO;AAAA,IACpB;AAAA,EACF;AACA,SAAO;AACT;"}
@@ -15,9 +15,9 @@ function detectMode() {
15
15
  }
16
16
  function getVersionInfo() {
17
17
  return {
18
- commit: read(() => "31903cd", ""),
18
+ commit: read(() => "cd413ec", ""),
19
19
  tag: read(() => "clicky-ui@0.2.16", ""),
20
- date: read(() => "2026-06-12T10:05:04.159Z", ""),
20
+ date: read(() => "2026-06-14T20:30:58.296Z", ""),
21
21
  dirty: read(() => true, false),
22
22
  mode: detectMode()
23
23
  };
@@ -13,9 +13,9 @@ function detectMode() {
13
13
  }
14
14
  function getVersionInfo() {
15
15
  return {
16
- commit: read(() => "31903cd", ""),
16
+ commit: read(() => "cd413ec", ""),
17
17
  tag: read(() => "clicky-ui@0.2.16", ""),
18
- date: read(() => "2026-06-12T10:04:52.267Z", ""),
18
+ date: read(() => "2026-06-14T20:30:46.600Z", ""),
19
19
  dirty: read(() => true, false),
20
20
  mode: detectMode()
21
21
  };
package/dist/data.cjs CHANGED
@@ -330,6 +330,7 @@ const UiWrench = require("./icons/components/UiWrench.cjs");
330
330
  const UiZap = require("./icons/components/UiZap.cjs");
331
331
  const UiZoomIn = require("./icons/components/UiZoomIn.cjs");
332
332
  const UiZoomOut = require("./icons/components/UiZoomOut.cjs");
333
+ const routePath = require("./data/test-runner/routePath.cjs");
333
334
  const api = require("./data/cache-browser/api.cjs");
334
335
  const changeIconAliases = require("./icons/changeIconAliases.cjs");
335
336
  const status = require("./data/test-runner/status.cjs");
@@ -947,6 +948,9 @@ exports.UiZoomIn = UiZoomIn.UiZoomIn;
947
948
  exports.UiZoomInFilled = UiZoomIn.UiZoomInFilled;
948
949
  exports.UiZoomOut = UiZoomOut.UiZoomOut;
949
950
  exports.UiZoomOutFilled = UiZoomOut.UiZoomOutFilled;
951
+ exports.annotateRoutePaths = routePath.annotateRoutePaths;
952
+ exports.findNodeByRoutePath = routePath.findNodeByRoutePath;
953
+ exports.slugify = routePath.slugify;
950
954
  exports.cacheQueryKeys = api.cacheQueryKeys;
951
955
  exports.createCacheClient = api.createCacheClient;
952
956
  exports.changeIconAliases = changeIconAliases.changeIconAliases;
package/dist/data.cjs.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"data.cjs","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"}
1
+ {"version":3,"file":"data.cjs","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"}
package/dist/data.js CHANGED
@@ -328,6 +328,7 @@ import { UiWrench, UiWrenchFilled } from "./icons/components/UiWrench.js";
328
328
  import { UiZap, UiZapFilled } from "./icons/components/UiZap.js";
329
329
  import { UiZoomIn, UiZoomInFilled } from "./icons/components/UiZoomIn.js";
330
330
  import { UiZoomOut, UiZoomOutFilled } from "./icons/components/UiZoomOut.js";
331
+ import { annotateRoutePaths, findNodeByRoutePath, slugify } from "./data/test-runner/routePath.js";
331
332
  import { cacheQueryKeys, createCacheClient } from "./data/cache-browser/api.js";
332
333
  import { changeIconAliases, getChangeIcon } from "./icons/changeIconAliases.js";
333
334
  import { collapseSingleChildChains, collectFrameworks, filterTests, formatCount, formatTestDuration, hasFailed, hasPending, humanizeName, statusIconFor, statusToneFor, sum, sumNonTaskTests, testStatus, totalDuration } from "./data/test-runner/status.js";
@@ -893,6 +894,7 @@ export {
893
894
  UiZoomOutFilled,
894
895
  Version,
895
896
  allGroupsTerminal,
897
+ annotateRoutePaths,
896
898
  badgeVariants,
897
899
  bucketTasks,
898
900
  cacheQueryKeys,
@@ -915,6 +917,7 @@ export {
915
917
  emptyTestFilters,
916
918
  encodeFilterState,
917
919
  filterTests,
920
+ findNodeByRoutePath,
918
921
  findProcessByPID,
919
922
  formatCount,
920
923
  formatDateTimeRelative,
@@ -955,6 +958,7 @@ export {
955
958
  resolveSeries,
956
959
  segment,
957
960
  setFallbackIconProvider,
961
+ slugify,
958
962
  splitTagToken,
959
963
  statusIconFor,
960
964
  statusToneFor,
package/dist/data.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"data.js","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"}
1
+ {"version":3,"file":"data.js","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"}
package/dist/index.cjs CHANGED
@@ -393,6 +393,7 @@ const UiWrench = require("./icons/components/UiWrench.cjs");
393
393
  const UiZap = require("./icons/components/UiZap.cjs");
394
394
  const UiZoomIn = require("./icons/components/UiZoomIn.cjs");
395
395
  const UiZoomOut = require("./icons/components/UiZoomOut.cjs");
396
+ const routePath = require("./data/test-runner/routePath.cjs");
396
397
  const api = require("./data/cache-browser/api.cjs");
397
398
  const changeIconAliases = require("./icons/changeIconAliases.cjs");
398
399
  const status = require("./data/test-runner/status.cjs");
@@ -436,6 +437,7 @@ exports.DateTimePicker = DateTimePicker.DateTimePicker;
436
437
  exports.TimeRange = TimeRange.TimeRange;
437
438
  exports.RangeSlider = RangeSlider.RangeSlider;
438
439
  exports.FilterBar = FilterBar.FilterBar;
440
+ exports.TriStateMultiSelect = FilterBar.TriStateMultiSelect;
439
441
  exports.applyFilterExtensions = FilterBar.applyFilterExtensions;
440
442
  exports.MultiSelect = MultiSelect.MultiSelect;
441
443
  exports.Select = select.Select;
@@ -1106,6 +1108,9 @@ exports.UiZoomIn = UiZoomIn.UiZoomIn;
1106
1108
  exports.UiZoomInFilled = UiZoomIn.UiZoomInFilled;
1107
1109
  exports.UiZoomOut = UiZoomOut.UiZoomOut;
1108
1110
  exports.UiZoomOutFilled = UiZoomOut.UiZoomOutFilled;
1111
+ exports.annotateRoutePaths = routePath.annotateRoutePaths;
1112
+ exports.findNodeByRoutePath = routePath.findNodeByRoutePath;
1113
+ exports.slugify = routePath.slugify;
1109
1114
  exports.cacheQueryKeys = api.cacheQueryKeys;
1110
1115
  exports.createCacheClient = api.createCacheClient;
1111
1116
  exports.changeIconAliases = changeIconAliases.changeIconAliases;
@@ -1 +1 @@
1
- {"version":3,"file":"index.cjs","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"}
1
+ {"version":3,"file":"index.cjs","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"}
package/dist/index.js CHANGED
@@ -21,7 +21,7 @@ import { DatePicker } from "./components/DatePicker.js";
21
21
  import { DateTimePicker } from "./components/DateTimePicker.js";
22
22
  import { TimeRange } from "./components/TimeRange.js";
23
23
  import { RangeSlider } from "./components/RangeSlider.js";
24
- import { FilterBar, applyFilterExtensions } from "./components/FilterBar.js";
24
+ import { FilterBar, TriStateMultiSelect, applyFilterExtensions } from "./components/FilterBar.js";
25
25
  import { MultiSelect } from "./components/MultiSelect.js";
26
26
  import { Select } from "./components/select.js";
27
27
  import { Combobox } from "./components/Combobox.js";
@@ -391,6 +391,7 @@ import { UiWrench, UiWrenchFilled } from "./icons/components/UiWrench.js";
391
391
  import { UiZap, UiZapFilled } from "./icons/components/UiZap.js";
392
392
  import { UiZoomIn, UiZoomInFilled } from "./icons/components/UiZoomIn.js";
393
393
  import { UiZoomOut, UiZoomOutFilled } from "./icons/components/UiZoomOut.js";
394
+ import { annotateRoutePaths, findNodeByRoutePath, slugify } from "./data/test-runner/routePath.js";
394
395
  import { cacheQueryKeys, createCacheClient } from "./data/cache-browser/api.js";
395
396
  import { changeIconAliases, getChangeIcon } from "./icons/changeIconAliases.js";
396
397
  import { collapseSingleChildChains, collectFrameworks, filterTests, formatCount, formatTestDuration, hasFailed, hasPending, humanizeName, statusIconFor, statusToneFor, sum, sumNonTaskTests, testStatus, totalDuration } from "./data/test-runner/status.js";
@@ -517,6 +518,7 @@ export {
517
518
  TreeGroupHeader,
518
519
  TreeNode,
519
520
  TreePickerField,
521
+ TriStateMultiSelect,
520
522
  UiActivity,
521
523
  UiAdd,
522
524
  UiAddFilled,
@@ -1010,6 +1012,7 @@ export {
1010
1012
  Version,
1011
1013
  WorkloadPicker,
1012
1014
  allGroupsTerminal,
1015
+ annotateRoutePaths,
1013
1016
  applyFilterExtensions,
1014
1017
  badgeVariants,
1015
1018
  bucketTasks,
@@ -1040,6 +1043,7 @@ export {
1040
1043
  filterTests,
1041
1044
  findDetailEndpoint,
1042
1045
  findListEndpoint,
1046
+ findNodeByRoutePath,
1043
1047
  findProcessByPID,
1044
1048
  fnv1a32,
1045
1049
  formatBytes,
@@ -1098,6 +1102,7 @@ export {
1098
1102
  resolveSize,
1099
1103
  segment,
1100
1104
  setFallbackIconProvider,
1105
+ slugify,
1101
1106
  splitTagToken,
1102
1107
  statusIconFor,
1103
1108
  statusToneFor,
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"}
1
+ {"version":3,"file":"index.js","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"}