@agentmark-ai/ui-components 0.2.0 → 0.3.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 (3) hide show
  1. package/dist/index.js +186 -182
  2. package/dist/index.mjs +81 -77
  3. package/package.json +8 -8
package/dist/index.mjs CHANGED
@@ -1190,7 +1190,7 @@ import {
1190
1190
  getGridNumericOperators,
1191
1191
  getGridStringOperators
1192
1192
  } from "@mui/x-data-grid";
1193
- import { useMemo } from "react";
1193
+ import { useMemo as useMemo2 } from "react";
1194
1194
 
1195
1195
  // src/components/iconify/iconify.tsx
1196
1196
  import { forwardRef } from "react";
@@ -1284,6 +1284,7 @@ function EmptyContent({
1284
1284
  }
1285
1285
 
1286
1286
  // src/components/datagrid/datagrid.tsx
1287
+ import { memo, useMemo } from "react";
1287
1288
  import {
1288
1289
  DataGrid as MuiDataGrid,
1289
1290
  Toolbar,
@@ -1291,57 +1292,60 @@ import {
1291
1292
  FilterPanelTrigger
1292
1293
  } from "@mui/x-data-grid";
1293
1294
  import { jsx as jsx3, jsxs as jsxs2 } from "react/jsx-runtime";
1295
+ var DataGridToolbar = memo(function DataGridToolbar2() {
1296
+ return /* @__PURE__ */ jsxs2(Toolbar, { children: [
1297
+ /* @__PURE__ */ jsx3(ColumnsPanelTrigger, { startIcon: /* @__PURE__ */ jsx3(Iconify, { icon: "solar:eye-bold" }), children: "Columns" }),
1298
+ /* @__PURE__ */ jsx3(FilterPanelTrigger, { startIcon: /* @__PURE__ */ jsx3(Iconify, { icon: "solar:filter-bold" }), children: "Filters" })
1299
+ ] });
1300
+ });
1294
1301
  var DataGrid = ({
1295
1302
  t,
1296
1303
  emptyContentImgUrl,
1297
1304
  ...props
1298
1305
  }) => {
1306
+ const slots = useMemo(
1307
+ () => ({
1308
+ toolbar: DataGridToolbar,
1309
+ noRowsOverlay: () => /* @__PURE__ */ jsx3(
1310
+ EmptyContent,
1311
+ {
1312
+ sx: { margin: 2 },
1313
+ title: t("noResults"),
1314
+ imgUrl: emptyContentImgUrl
1315
+ }
1316
+ ),
1317
+ noResultsOverlay: () => /* @__PURE__ */ jsx3(
1318
+ EmptyContent,
1319
+ {
1320
+ title: t("noResults"),
1321
+ sx: { py: 10 },
1322
+ imgUrl: emptyContentImgUrl
1323
+ }
1324
+ )
1325
+ }),
1326
+ [t, emptyContentImgUrl]
1327
+ );
1299
1328
  return /* @__PURE__ */ jsx3(
1300
1329
  MuiDataGrid,
1301
1330
  {
1302
1331
  sx: { "--DataGrid-overlayHeight": "530px" },
1303
1332
  ...props,
1304
- slots: {
1305
- toolbar: () => {
1306
- return /* @__PURE__ */ jsxs2(Toolbar, { children: [
1307
- /* @__PURE__ */ jsx3(
1308
- ColumnsPanelTrigger,
1309
- {
1310
- startIcon: /* @__PURE__ */ jsx3(Iconify, { icon: "solar:eye-bold" }),
1311
- children: "Columns"
1312
- }
1313
- ),
1314
- /* @__PURE__ */ jsx3(
1315
- FilterPanelTrigger,
1316
- {
1317
- startIcon: /* @__PURE__ */ jsx3(Iconify, { icon: "solar:filter-bold" }),
1318
- children: "Filters"
1319
- }
1320
- )
1321
- ] });
1322
- },
1323
- noRowsOverlay: () => /* @__PURE__ */ jsx3(
1324
- EmptyContent,
1325
- {
1326
- sx: { margin: 2 },
1327
- title: t("noResults"),
1328
- imgUrl: emptyContentImgUrl
1329
- }
1330
- ),
1331
- noResultsOverlay: () => /* @__PURE__ */ jsx3(
1332
- EmptyContent,
1333
- {
1334
- title: t("noResults"),
1335
- sx: { py: 10 },
1336
- imgUrl: emptyContentImgUrl
1337
- }
1338
- )
1339
- },
1333
+ slots,
1340
1334
  slotProps: {
1341
1335
  loadingOverlay: {
1342
1336
  sx: {
1343
1337
  padding: 5
1344
1338
  }
1339
+ },
1340
+ filterPanel: {
1341
+ sx: {
1342
+ maxWidth: "100vw"
1343
+ }
1344
+ },
1345
+ columnsPanel: {
1346
+ sx: {
1347
+ maxWidth: "100vw"
1348
+ }
1345
1349
  }
1346
1350
  }
1347
1351
  }
@@ -17448,7 +17452,7 @@ var RequestTable = ({
17448
17452
  t,
17449
17453
  emptyContentImgUrl
17450
17454
  }) => {
17451
- const tableData = useMemo(() => {
17455
+ const tableData = useMemo2(() => {
17452
17456
  if (requests) {
17453
17457
  return requests.map((item) => ({
17454
17458
  ...item,
@@ -17458,7 +17462,7 @@ var RequestTable = ({
17458
17462
  }));
17459
17463
  } else return [];
17460
17464
  }, [requests]);
17461
- const columns = useMemo(() => {
17465
+ const columns = useMemo2(() => {
17462
17466
  const col = [
17463
17467
  {
17464
17468
  field: "input",
@@ -19428,7 +19432,7 @@ var TracesList = ({
19428
19432
  import {
19429
19433
  createContext as createContext2,
19430
19434
  useContext as useContext3,
19431
- useMemo as useMemo2,
19435
+ useMemo as useMemo3,
19432
19436
  useCallback as useCallback2,
19433
19437
  useState as useState4,
19434
19438
  useEffect as useEffect2
@@ -19494,7 +19498,7 @@ var TraceDrawerProvider = ({
19494
19498
  onSpanChange
19495
19499
  }) => {
19496
19500
  const [selectedSpanId, setSelectedSpanId] = useState4(null);
19497
- const selectedSpan = useMemo2(() => {
19501
+ const selectedSpan = useMemo3(() => {
19498
19502
  if (!selectedSpanId) {
19499
19503
  if (traces.length > 0 && traces[0]) {
19500
19504
  return {
@@ -19530,7 +19534,7 @@ var TraceDrawerProvider = ({
19530
19534
  }
19531
19535
  return null;
19532
19536
  }, [selectedSpanId, traces]);
19533
- const spanTree = useMemo2(() => {
19537
+ const spanTree = useMemo3(() => {
19534
19538
  const buildSpanTree = (traces2) => {
19535
19539
  const tree = [];
19536
19540
  const lookup = {};
@@ -20285,7 +20289,7 @@ var TraceLabel = ({
20285
20289
  };
20286
20290
 
20287
20291
  // src/sections/traces/trace-drawer/trace-tree/trace-tree.tsx
20288
- import { useMemo as useMemo3 } from "react";
20292
+ import { useMemo as useMemo4 } from "react";
20289
20293
  import { jsx as jsx33 } from "react/jsx-runtime";
20290
20294
  var renderTree = (node, findCostAndTokens) => {
20291
20295
  if (!node) {
@@ -20323,7 +20327,7 @@ var TraceTree = () => {
20323
20327
  findCostAndTokens,
20324
20328
  traceId
20325
20329
  } = useTraceDrawerContext();
20326
- const tree = useMemo3(() => {
20330
+ const tree = useMemo4(() => {
20327
20331
  return spanTree.map((node) => renderTree(node, findCostAndTokens));
20328
20332
  }, [spanTree]);
20329
20333
  return /* @__PURE__ */ jsx33(Box15, { sx: { height: "100%", overflowY: "auto", p: 2 }, children: selectedSpan?.id && /* @__PURE__ */ jsx33(
@@ -20349,10 +20353,10 @@ var TraceTree = () => {
20349
20353
 
20350
20354
  // src/sections/traces/trace-drawer/trace-graph/trace-graph-canvas.tsx
20351
20355
  import { Box as Box17, CircularProgress, useTheme as useTheme8 } from "@mui/material";
20352
- import { useCallback as useCallback3, useEffect as useEffect3, useState as useState5, useMemo as useMemo6 } from "react";
20356
+ import { useCallback as useCallback3, useEffect as useEffect3, useState as useState5, useMemo as useMemo7 } from "react";
20353
20357
 
20354
20358
  // src/sections/traces/trace-drawer/trace-graph/use-trace-graph.ts
20355
- import { useMemo as useMemo4 } from "react";
20359
+ import { useMemo as useMemo5 } from "react";
20356
20360
 
20357
20361
  // src/sections/traces/trace-drawer/trace-graph/workflow-graph-generator.ts
20358
20362
  function hasManualGraphMetadata(spans) {
@@ -20610,7 +20614,7 @@ function convertWorkflowEdgesToGraphEdges(workflowEdges) {
20610
20614
  }));
20611
20615
  }
20612
20616
  var useTraceGraph = (graphData, spans) => {
20613
- const result2 = useMemo4(() => {
20617
+ const result2 = useMemo5(() => {
20614
20618
  if (graphData && graphData.length > 0) {
20615
20619
  return processManualGraphData(graphData);
20616
20620
  }
@@ -20646,7 +20650,7 @@ import {
20646
20650
  } from "@xyflow/react";
20647
20651
 
20648
20652
  // src/sections/traces/trace-drawer/trace-graph/trace-node.tsx
20649
- import { memo } from "react";
20653
+ import { memo as memo2 } from "react";
20650
20654
  import { Handle, Position } from "@xyflow/react";
20651
20655
  import { Box as Box16, Typography as Typography8, useTheme as useTheme6 } from "@mui/material";
20652
20656
  import { Fragment as Fragment2, jsx as jsx34, jsxs as jsxs19 } from "react/jsx-runtime";
@@ -20795,10 +20799,10 @@ function TraceNodeComponent(props) {
20795
20799
  )
20796
20800
  ] });
20797
20801
  }
20798
- var TraceNode = memo(TraceNodeComponent);
20802
+ var TraceNode = memo2(TraceNodeComponent);
20799
20803
 
20800
20804
  // src/sections/traces/trace-drawer/trace-graph/use-graph-data.ts
20801
- import { useMemo as useMemo5 } from "react";
20805
+ import { useMemo as useMemo6 } from "react";
20802
20806
  import { useTheme as useTheme7 } from "@mui/material";
20803
20807
  function useGraphData({
20804
20808
  nodes: rawNodes,
@@ -20808,7 +20812,7 @@ function useGraphData({
20808
20812
  nodeSpanIndices
20809
20813
  }) {
20810
20814
  const theme2 = useTheme7();
20811
- const reactFlowNodes = useMemo5(() => {
20815
+ const reactFlowNodes = useMemo6(() => {
20812
20816
  if (!rawNodes.length) return [];
20813
20817
  const initialNodes = rawNodes.map((node) => ({
20814
20818
  id: node.id,
@@ -20846,7 +20850,7 @@ function useGraphData({
20846
20850
  });
20847
20851
  return styledNodes;
20848
20852
  }, [rawNodes, rawEdges, theme2, onNodeClick, onNodeCycleClick, nodeSpanIndices]);
20849
- const reactFlowEdges = useMemo5(() => {
20853
+ const reactFlowEdges = useMemo6(() => {
20850
20854
  const edges = [];
20851
20855
  rawEdges.forEach((edge) => {
20852
20856
  edges.push({
@@ -20859,7 +20863,7 @@ function useGraphData({
20859
20863
  });
20860
20864
  return edges;
20861
20865
  }, [rawEdges]);
20862
- const { nodes: layoutedNodes, edges: layoutedEdges } = useMemo5(
20866
+ const { nodes: layoutedNodes, edges: layoutedEdges } = useMemo6(
20863
20867
  () => applyDagreLayout(reactFlowNodes, reactFlowEdges),
20864
20868
  [reactFlowNodes, reactFlowEdges]
20865
20869
  );
@@ -20881,7 +20885,7 @@ function TraceGraphCanvas({
20881
20885
  }) {
20882
20886
  const theme2 = useTheme8();
20883
20887
  const { onSelectSpan, traces } = useTraceDrawerContext();
20884
- const spansForAutoGeneration = useMemo6(() => {
20888
+ const spansForAutoGeneration = useMemo7(() => {
20885
20889
  if (graphData && graphData.length > 0) {
20886
20890
  return [];
20887
20891
  }
@@ -20903,7 +20907,7 @@ function TraceGraphCanvas({
20903
20907
  const [nodeSpanIndices, setNodeSpanIndices] = useState5(
20904
20908
  () => /* @__PURE__ */ new Map()
20905
20909
  );
20906
- const nodeMap = useMemo6(() => {
20910
+ const nodeMap = useMemo7(() => {
20907
20911
  const map = /* @__PURE__ */ new Map();
20908
20912
  rawNodes.forEach((node) => map.set(node.id, node));
20909
20913
  return map;
@@ -21385,9 +21389,9 @@ function computeTimelineLayout(spans) {
21385
21389
  }
21386
21390
 
21387
21391
  // src/sections/traces/trace-drawer/trace-timeline/use-timeline-layout.ts
21388
- import { useMemo as useMemo7 } from "react";
21392
+ import { useMemo as useMemo8 } from "react";
21389
21393
  function useTimelineLayout(spans) {
21390
- return useMemo7(() => computeTimelineLayout(spans), [spans]);
21394
+ return useMemo8(() => computeTimelineLayout(spans), [spans]);
21391
21395
  }
21392
21396
 
21393
21397
  // src/sections/traces/trace-drawer/trace-timeline/use-timeline-zoom.ts
@@ -21643,12 +21647,12 @@ function useTimelineViewPreference() {
21643
21647
  }
21644
21648
 
21645
21649
  // src/sections/traces/trace-drawer/trace-timeline/trace-timeline.tsx
21646
- import { memo as memo6, useRef as useRef2, useState as useState8, useCallback as useCallback6, useEffect as useEffect5, useMemo as useMemo9 } from "react";
21650
+ import { memo as memo7, useRef as useRef2, useState as useState8, useCallback as useCallback6, useEffect as useEffect5, useMemo as useMemo10 } from "react";
21647
21651
  import { Box as Box21, Skeleton as Skeleton3, Typography as Typography12, IconButton as IconButton3, Tooltip as Tooltip2 } from "@mui/material";
21648
21652
  import { useTheme as useTheme13 } from "@mui/material/styles";
21649
21653
 
21650
21654
  // src/sections/traces/trace-drawer/trace-timeline/timeline-bar.tsx
21651
- import { memo as memo2 } from "react";
21655
+ import { memo as memo3 } from "react";
21652
21656
  import { useTheme as useTheme9 } from "@mui/material/styles";
21653
21657
  import { jsx as jsx36, jsxs as jsxs21 } from "react/jsx-runtime";
21654
21658
  var { ROW_HEIGHT, MIN_BAR_WIDTH, BAR_HEIGHT_RATIO } = TIMELINE_CONSTANTS;
@@ -21658,7 +21662,7 @@ function formatBarDuration(ms) {
21658
21662
  }
21659
21663
  return `${(ms / 1e3).toFixed(1)}s`;
21660
21664
  }
21661
- var TimelineBar = memo2(function TimelineBar2({
21665
+ var TimelineBar = memo3(function TimelineBar2({
21662
21666
  layout,
21663
21667
  isSelected,
21664
21668
  isFocused = false,
@@ -21746,11 +21750,11 @@ var TimelineBar = memo2(function TimelineBar2({
21746
21750
  });
21747
21751
 
21748
21752
  // src/sections/traces/trace-drawer/trace-timeline/timeline-ruler.tsx
21749
- import { memo as memo3 } from "react";
21753
+ import { memo as memo4 } from "react";
21750
21754
  import { useTheme as useTheme10 } from "@mui/material/styles";
21751
21755
  import { jsx as jsx37, jsxs as jsxs22 } from "react/jsx-runtime";
21752
21756
  var { RULER_HEIGHT } = TIMELINE_CONSTANTS;
21753
- var TimelineRuler = memo3(function TimelineRuler2({
21757
+ var TimelineRuler = memo4(function TimelineRuler2({
21754
21758
  ticks,
21755
21759
  width: width2,
21756
21760
  height: height2 = RULER_HEIGHT
@@ -21816,7 +21820,7 @@ var TimelineRuler = memo3(function TimelineRuler2({
21816
21820
  });
21817
21821
 
21818
21822
  // src/sections/traces/trace-drawer/trace-timeline/timeline-tooltip.tsx
21819
- import { memo as memo4, useMemo as useMemo8 } from "react";
21823
+ import { memo as memo5, useMemo as useMemo9 } from "react";
21820
21824
  import { Box as Box18, Typography as Typography9, Paper, Divider as Divider2, Chip as Chip2 } from "@mui/material";
21821
21825
  import { useTheme as useTheme11 } from "@mui/material/styles";
21822
21826
  import { Fragment as Fragment3, jsx as jsx38, jsxs as jsxs23 } from "react/jsx-runtime";
@@ -21864,13 +21868,13 @@ function truncateText(text, maxLength) {
21864
21868
  if (cleanText.length <= maxLength) return cleanText;
21865
21869
  return cleanText.slice(0, maxLength) + "...";
21866
21870
  }
21867
- var TimelineTooltip = memo4(function TimelineTooltip2({
21871
+ var TimelineTooltip = memo5(function TimelineTooltip2({
21868
21872
  layout,
21869
21873
  position,
21870
21874
  visible
21871
21875
  }) {
21872
21876
  const theme2 = useTheme11();
21873
- const parsedAttributes = useMemo8(() => {
21877
+ const parsedAttributes = useMemo9(() => {
21874
21878
  const attributes = layout?.span?.data?.attributes;
21875
21879
  if (!attributes) return null;
21876
21880
  try {
@@ -22153,7 +22157,7 @@ var TimelineTooltip = memo4(function TimelineTooltip2({
22153
22157
  });
22154
22158
 
22155
22159
  // src/sections/traces/trace-drawer/trace-timeline/timeline-legend.tsx
22156
- import { memo as memo5 } from "react";
22160
+ import { memo as memo6 } from "react";
22157
22161
  import { Box as Box19, Typography as Typography10 } from "@mui/material";
22158
22162
  import { useTheme as useTheme12 } from "@mui/material/styles";
22159
22163
  import { jsx as jsx39, jsxs as jsxs24 } from "react/jsx-runtime";
@@ -22177,7 +22181,7 @@ var NODE_TYPE_ORDER = [
22177
22181
  "memory",
22178
22182
  "default"
22179
22183
  ];
22180
- var TimelineLegend = memo5(function TimelineLegend2({
22184
+ var TimelineLegend = memo6(function TimelineLegend2({
22181
22185
  typeBreakdown,
22182
22186
  showCounts = false
22183
22187
  }) {
@@ -22328,7 +22332,7 @@ import { jsx as jsx41, jsxs as jsxs26 } from "react/jsx-runtime";
22328
22332
  var { ROW_HEIGHT: ROW_HEIGHT2, RULER_HEIGHT: RULER_HEIGHT2, PADDING, LABEL_WIDTH } = TIMELINE_CONSTANTS;
22329
22333
  var VIRTUALIZATION_THRESHOLD = 100;
22330
22334
  var VIRTUALIZATION_OVERSCAN = 5;
22331
- var TraceTimeline = memo6(function TraceTimeline2({
22335
+ var TraceTimeline = memo7(function TraceTimeline2({
22332
22336
  spans,
22333
22337
  selectedSpanId,
22334
22338
  onSelectSpan,
@@ -22358,7 +22362,7 @@ var TraceTimeline = memo6(function TraceTimeline2({
22358
22362
  onWheel,
22359
22363
  panHandlers
22360
22364
  } = useTimelineZoom(timelineWidth, contentHeight);
22361
- const { visibleLayouts } = useMemo9(() => {
22365
+ const { visibleLayouts } = useMemo10(() => {
22362
22366
  if (layouts.length < VIRTUALIZATION_THRESHOLD) {
22363
22367
  return {
22364
22368
  visibleLayouts: layouts,
@@ -22713,11 +22717,11 @@ import { Typography as Typography14, Stack as Stack11 } from "@mui/material";
22713
22717
  import { createContext as createContext3, useContext as useContext4 } from "react";
22714
22718
 
22715
22719
  // src/sections/traces/trace-drawer/span-info/hooks/use-span-info.ts
22716
- import { useState as useState9, useEffect as useEffect6, useMemo as useMemo10 } from "react";
22720
+ import { useState as useState9, useEffect as useEffect6, useMemo as useMemo11 } from "react";
22717
22721
  var useSpanInfo = ({ span }) => {
22718
22722
  const [activeTab, setActiveTab] = useState9("attributes");
22719
22723
  const [tabs, setTabs] = useState9([]);
22720
- const isLLMCall = useMemo10(() => {
22724
+ const isLLMCall = useMemo11(() => {
22721
22725
  return span?.data?.type === "GENERATION" || !!span?.data?.model;
22722
22726
  }, [span?.data?.type, span?.data?.model]);
22723
22727
  useEffect6(() => {
@@ -22868,7 +22872,7 @@ var SpanInfoTabs = ({ children }) => {
22868
22872
  import { TabPanel } from "@mui/lab";
22869
22873
 
22870
22874
  // src/sections/traces/trace-drawer/span-info/tabs/hooks/use-span-attributes.ts
22871
- import { useMemo as useMemo11 } from "react";
22875
+ import { useMemo as useMemo12 } from "react";
22872
22876
 
22873
22877
  // src/sections/traces/trace-drawer/span-info/tabs/attribute-transformer-registry.ts
22874
22878
  var AttributeTransformerRegistry = class {
@@ -23174,7 +23178,7 @@ var transformAttributes = (attributes, normalizedData) => {
23174
23178
  // src/sections/traces/trace-drawer/span-info/tabs/hooks/use-span-attributes.ts
23175
23179
  var useSpanAttributes = () => {
23176
23180
  const { selectedSpan } = useTraceDrawerContext();
23177
- const rawAttributes = useMemo11(() => {
23181
+ const rawAttributes = useMemo12(() => {
23178
23182
  if (!selectedSpan?.data?.attributes) return {};
23179
23183
  try {
23180
23184
  return JSON.parse(selectedSpan.data.attributes);
@@ -23182,7 +23186,7 @@ var useSpanAttributes = () => {
23182
23186
  return {};
23183
23187
  }
23184
23188
  }, [selectedSpan]);
23185
- const transformedAttributes = useMemo11(() => {
23189
+ const transformedAttributes = useMemo12(() => {
23186
23190
  return transformAttributes(rawAttributes, selectedSpan?.data);
23187
23191
  }, [rawAttributes, selectedSpan?.data]);
23188
23192
  return {
@@ -23258,7 +23262,7 @@ var AttributesTab = () => {
23258
23262
  };
23259
23263
 
23260
23264
  // src/sections/traces/trace-drawer/span-info/tabs/hooks/use-span-prompts.ts
23261
- import { useMemo as useMemo12 } from "react";
23265
+ import { useMemo as useMemo13 } from "react";
23262
23266
  var extractPromptsFromSpan = (span) => {
23263
23267
  if (!span?.data?.input) return [];
23264
23268
  try {
@@ -23301,10 +23305,10 @@ var extractOutputFromSpan = (span) => {
23301
23305
  };
23302
23306
  var useSpanPrompts = () => {
23303
23307
  const { selectedSpan } = useTraceDrawerContext();
23304
- const prompts = useMemo12(() => {
23308
+ const prompts = useMemo13(() => {
23305
23309
  return extractPromptsFromSpan(selectedSpan);
23306
23310
  }, [selectedSpan]);
23307
- const outputData = useMemo12(() => {
23311
+ const outputData = useMemo13(() => {
23308
23312
  return extractOutputFromSpan(selectedSpan);
23309
23313
  }, [selectedSpan]);
23310
23314
  return {
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@agentmark-ai/ui-components",
3
- "version": "0.2.0",
3
+ "version": "0.3.1",
4
4
  "source": "./src/index.ts",
5
5
  "main": "./dist/index.js",
6
6
  "module": "./dist/index.mjs",
@@ -42,11 +42,11 @@
42
42
  "devDependencies": {
43
43
  "@chromatic-com/storybook": "^4.1.1",
44
44
  "@eslint/eslintrc": "^3",
45
- "@storybook/addon-a11y": "^9.1.15",
46
- "@storybook/addon-docs": "^9.1.15",
47
- "@storybook/addon-vitest": "^9.1.15",
45
+ "@storybook/addon-a11y": "^9.1.17",
46
+ "@storybook/addon-docs": "^9.1.17",
47
+ "@storybook/addon-vitest": "^9.1.17",
48
48
  "@storybook/components": "^8.6.14",
49
- "@storybook/react-vite": "^9.1.15",
49
+ "@storybook/react-vite": "^9.1.17",
50
50
  "@types/dagre": "^0",
51
51
  "@types/node": "^20",
52
52
  "@types/numeral": "^2",
@@ -57,11 +57,11 @@
57
57
  "@vitest/browser-playwright": "^4.0.4",
58
58
  "@vitest/coverage-v8": "^4.0.4",
59
59
  "eslint": "^9",
60
- "eslint-config-next": "15.5.6",
61
- "eslint-plugin-storybook": "^9.1.15",
60
+ "eslint-config-next": "15.5.9",
61
+ "eslint-plugin-storybook": "^9.1.17",
62
62
  "playwright": "^1.56.1",
63
63
  "refractor": "^5.0.0",
64
- "storybook": "^9.1.15",
64
+ "storybook": "^9.1.17",
65
65
  "tsup": "^8.5.0",
66
66
  "typescript": "^5",
67
67
  "vitest": "^4.0.4"