@bundle-stats/ui 4.22.3 → 4.23.0-beta.2

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 (198) hide show
  1. package/lib/app/app.js +3 -0
  2. package/lib/app/app.js.map +1 -1
  3. package/lib/app/app.module.css +12 -2
  4. package/lib/chart-colors.json +58 -44
  5. package/lib/components/delta/delta.js +3 -13
  6. package/lib/components/delta/delta.js.map +1 -1
  7. package/lib/components/delta/delta.module.css +13 -12
  8. package/lib/components/delta/index.js.map +1 -1
  9. package/lib/components/entry-info/entry-info.js +1 -1
  10. package/lib/components/entry-info/entry-info.js.map +1 -1
  11. package/lib/components/entry-info/entry-info.module.css +1 -1
  12. package/lib/components/index.js +3 -1
  13. package/lib/components/index.js.map +1 -1
  14. package/lib/components/insight-icon/insight-icon.module.css +6 -6
  15. package/lib/components/job-name/job-name.js +1 -2
  16. package/lib/components/job-name/job-name.js.map +1 -1
  17. package/lib/components/metric-change-legend/index.js +18 -0
  18. package/lib/components/metric-change-legend/index.js.map +1 -0
  19. package/lib/components/metric-change-legend/metric-change-legend.js +91 -0
  20. package/lib/components/metric-change-legend/metric-change-legend.js.map +1 -0
  21. package/lib/components/metric-change-legend/metric-change-legend.module.css +80 -0
  22. package/lib/components/metric-run-info/metric-run-info.js +22 -7
  23. package/lib/components/metric-run-info/metric-run-info.js.map +1 -1
  24. package/lib/components/metrics-display-selector/metrics-display-selector.js +7 -9
  25. package/lib/components/metrics-display-selector/metrics-display-selector.js.map +1 -1
  26. package/lib/components/metrics-display-selector/metrics-display-selector.module.css +0 -25
  27. package/lib/components/metrics-table-header/metrics-table-header.js +6 -6
  28. package/lib/components/metrics-table-header/metrics-table-header.js.map +1 -1
  29. package/lib/components/metrics-table-header/metrics-table-header.module.css +8 -12
  30. package/lib/components/metrics-table-options/metrics-table-options.js +2 -3
  31. package/lib/components/metrics-table-options/metrics-table-options.js.map +1 -1
  32. package/lib/components/metrics-table-title/metrics-table-title.js +1 -1
  33. package/lib/components/metrics-table-title/metrics-table-title.js.map +1 -1
  34. package/lib/components/metrics-treemap/metrics-treemap.constants.js +3 -1
  35. package/lib/components/metrics-treemap/metrics-treemap.constants.js.map +1 -1
  36. package/lib/components/metrics-treemap/metrics-treemap.js +68 -57
  37. package/lib/components/metrics-treemap/metrics-treemap.js.map +1 -1
  38. package/lib/components/metrics-treemap/metrics-treemap.module.css +9 -16
  39. package/lib/components/metrics-treemap/metrics-treemap.utils.js +72 -16
  40. package/lib/components/metrics-treemap/metrics-treemap.utils.js.map +1 -1
  41. package/lib/components/run-info/run-info.js +26 -14
  42. package/lib/components/run-info/run-info.js.map +1 -1
  43. package/lib/components/run-info/run-info.module.css +35 -26
  44. package/lib/components/summary/summary.js +9 -10
  45. package/lib/components/summary/summary.js.map +1 -1
  46. package/lib/components/summary/summary.module.css +60 -10
  47. package/lib/constants.js +13 -1
  48. package/lib/constants.js.map +1 -1
  49. package/lib/css/variables.css +71 -58
  50. package/lib/ui/button/button.js +2 -2
  51. package/lib/ui/button/button.js.map +1 -1
  52. package/lib/ui/dialog/dialog.js +4 -2
  53. package/lib/ui/dialog/dialog.js.map +1 -1
  54. package/lib/ui/dialog/dialog.module.css +22 -0
  55. package/lib/ui/dropdown/dropdown.js +13 -4
  56. package/lib/ui/dropdown/dropdown.js.map +1 -1
  57. package/lib/ui/dropdown/dropdown.module.css +51 -6
  58. package/lib/ui/filters/filters.js +22 -11
  59. package/lib/ui/filters/filters.js.map +1 -1
  60. package/lib/ui/filters/filters.module.css +0 -14
  61. package/lib/ui/hover-card/hover-card.js +7 -1
  62. package/lib/ui/hover-card/hover-card.js.map +1 -1
  63. package/lib/ui/hover-card/hover-card.module.css +14 -0
  64. package/lib/ui/table/table.module.css +0 -1
  65. package/lib/ui/tooltip/tooltip.js +6 -1
  66. package/lib/ui/tooltip/tooltip.js.map +1 -1
  67. package/lib/ui/tooltip/tooltip.module.css +11 -0
  68. package/lib-esm/app/app.js +4 -1
  69. package/lib-esm/app/app.js.map +1 -1
  70. package/lib-esm/app/app.module.css +12 -2
  71. package/lib-esm/chart-colors.json +58 -44
  72. package/lib-esm/components/delta/delta.js +3 -13
  73. package/lib-esm/components/delta/delta.js.map +1 -1
  74. package/lib-esm/components/delta/delta.module.css +13 -12
  75. package/lib-esm/components/delta/index.js.map +1 -1
  76. package/lib-esm/components/entry-info/entry-info.js +1 -1
  77. package/lib-esm/components/entry-info/entry-info.js.map +1 -1
  78. package/lib-esm/components/entry-info/entry-info.module.css +1 -1
  79. package/lib-esm/components/index.js +1 -0
  80. package/lib-esm/components/index.js.map +1 -1
  81. package/lib-esm/components/insight-icon/insight-icon.module.css +6 -6
  82. package/lib-esm/components/job-name/job-name.js +1 -2
  83. package/lib-esm/components/job-name/job-name.js.map +1 -1
  84. package/lib-esm/components/metric-change-legend/index.js +2 -0
  85. package/lib-esm/components/metric-change-legend/index.js.map +1 -0
  86. package/lib-esm/components/metric-change-legend/metric-change-legend.js +84 -0
  87. package/lib-esm/components/metric-change-legend/metric-change-legend.js.map +1 -0
  88. package/lib-esm/components/metric-change-legend/metric-change-legend.module.css +80 -0
  89. package/lib-esm/components/metric-run-info/metric-run-info.js +22 -7
  90. package/lib-esm/components/metric-run-info/metric-run-info.js.map +1 -1
  91. package/lib-esm/components/metrics-display-selector/metrics-display-selector.js +7 -9
  92. package/lib-esm/components/metrics-display-selector/metrics-display-selector.js.map +1 -1
  93. package/lib-esm/components/metrics-display-selector/metrics-display-selector.module.css +0 -25
  94. package/lib-esm/components/metrics-table-header/metrics-table-header.js +6 -6
  95. package/lib-esm/components/metrics-table-header/metrics-table-header.js.map +1 -1
  96. package/lib-esm/components/metrics-table-header/metrics-table-header.module.css +8 -12
  97. package/lib-esm/components/metrics-table-options/metrics-table-options.js +3 -4
  98. package/lib-esm/components/metrics-table-options/metrics-table-options.js.map +1 -1
  99. package/lib-esm/components/metrics-table-title/metrics-table-title.js +1 -1
  100. package/lib-esm/components/metrics-table-title/metrics-table-title.js.map +1 -1
  101. package/lib-esm/components/metrics-treemap/metrics-treemap.constants.js +2 -0
  102. package/lib-esm/components/metrics-treemap/metrics-treemap.constants.js.map +1 -1
  103. package/lib-esm/components/metrics-treemap/metrics-treemap.js +74 -63
  104. package/lib-esm/components/metrics-treemap/metrics-treemap.js.map +1 -1
  105. package/lib-esm/components/metrics-treemap/metrics-treemap.module.css +9 -16
  106. package/lib-esm/components/metrics-treemap/metrics-treemap.utils.js +71 -17
  107. package/lib-esm/components/metrics-treemap/metrics-treemap.utils.js.map +1 -1
  108. package/lib-esm/components/run-info/run-info.js +26 -14
  109. package/lib-esm/components/run-info/run-info.js.map +1 -1
  110. package/lib-esm/components/run-info/run-info.module.css +35 -26
  111. package/lib-esm/components/summary/summary.js +10 -11
  112. package/lib-esm/components/summary/summary.js.map +1 -1
  113. package/lib-esm/components/summary/summary.module.css +60 -10
  114. package/lib-esm/constants.js +12 -0
  115. package/lib-esm/constants.js.map +1 -1
  116. package/lib-esm/css/variables.css +71 -58
  117. package/lib-esm/ui/button/button.js +2 -2
  118. package/lib-esm/ui/button/button.js.map +1 -1
  119. package/lib-esm/ui/dialog/dialog.js +4 -2
  120. package/lib-esm/ui/dialog/dialog.js.map +1 -1
  121. package/lib-esm/ui/dialog/dialog.module.css +22 -0
  122. package/lib-esm/ui/dropdown/dropdown.js +11 -3
  123. package/lib-esm/ui/dropdown/dropdown.js.map +1 -1
  124. package/lib-esm/ui/dropdown/dropdown.module.css +51 -6
  125. package/lib-esm/ui/filters/filters.js +23 -12
  126. package/lib-esm/ui/filters/filters.js.map +1 -1
  127. package/lib-esm/ui/filters/filters.module.css +0 -14
  128. package/lib-esm/ui/hover-card/hover-card.js +7 -1
  129. package/lib-esm/ui/hover-card/hover-card.js.map +1 -1
  130. package/lib-esm/ui/hover-card/hover-card.module.css +14 -0
  131. package/lib-esm/ui/table/table.module.css +0 -1
  132. package/lib-esm/ui/tooltip/tooltip.js +6 -1
  133. package/lib-esm/ui/tooltip/tooltip.js.map +1 -1
  134. package/lib-esm/ui/tooltip/tooltip.module.css +11 -0
  135. package/package.json +16 -16
  136. package/src/app/app.jsx +6 -1
  137. package/src/app/app.module.css +12 -2
  138. package/src/chart-colors.json +58 -44
  139. package/src/components/delta/delta.module.css +13 -12
  140. package/src/components/delta/delta.tsx +32 -0
  141. package/src/components/entry-info/entry-info.module.css +1 -1
  142. package/src/components/entry-info/entry-info.tsx +2 -2
  143. package/src/components/index.ts +3 -0
  144. package/src/components/insight-icon/insight-icon.module.css +6 -6
  145. package/src/components/job-name/job-name.jsx +2 -3
  146. package/src/components/metric-change-legend/index.ts +1 -0
  147. package/src/components/metric-change-legend/metric-change-legend.module.css +80 -0
  148. package/src/components/metric-change-legend/metric-change-legend.stories.tsx +13 -0
  149. package/src/components/metric-change-legend/metric-change-legend.tsx +148 -0
  150. package/src/components/metric-run-info/metric-run-info.tsx +32 -17
  151. package/src/components/metrics-display-selector/metrics-display-selector.module.css +0 -25
  152. package/src/components/metrics-display-selector/metrics-display-selector.tsx +25 -37
  153. package/src/components/metrics-table-header/metrics-table-header.module.css +8 -12
  154. package/src/components/metrics-table-header/metrics-table-header.tsx +5 -6
  155. package/src/components/metrics-table-options/metrics-table-options.tsx +5 -6
  156. package/src/components/metrics-table-title/metrics-table-title.jsx +1 -1
  157. package/src/components/metrics-treemap/metrics-treemap.constants.ts +8 -0
  158. package/src/components/metrics-treemap/metrics-treemap.module.css +9 -16
  159. package/src/components/metrics-treemap/metrics-treemap.tsx +160 -135
  160. package/src/components/metrics-treemap/metrics-treemap.utils.ts +141 -27
  161. package/src/components/run-info/run-info.module.css +35 -26
  162. package/src/components/run-info/run-info.stories.tsx +16 -10
  163. package/src/components/run-info/run-info.tsx +132 -73
  164. package/src/components/summary/summary.module.css +60 -10
  165. package/src/components/summary/summary.tsx +47 -50
  166. package/src/constants.ts +13 -0
  167. package/src/css/variables.css +71 -58
  168. package/src/ui/button/button.tsx +2 -1
  169. package/src/ui/dialog/dialog.module.css +22 -0
  170. package/src/ui/dialog/dialog.tsx +9 -2
  171. package/src/ui/dropdown/dropdown.module.css +51 -6
  172. package/src/ui/dropdown/dropdown.tsx +17 -2
  173. package/src/ui/filters/filters.module.css +0 -14
  174. package/src/ui/filters/filters.tsx +111 -47
  175. package/src/ui/hover-card/hover-card.module.css +14 -0
  176. package/src/ui/hover-card/hover-card.tsx +7 -1
  177. package/src/ui/table/table.module.css +0 -1
  178. package/src/ui/tooltip/tooltip.module.css +11 -0
  179. package/src/ui/tooltip/tooltip.tsx +6 -1
  180. package/types/components/delta/delta.d.ts +7 -21
  181. package/types/components/delta/index.d.ts +1 -1
  182. package/types/components/index.d.ts +3 -0
  183. package/types/components/metric-change-legend/index.d.ts +1 -0
  184. package/types/components/metric-change-legend/metric-change-legend.d.ts +4 -0
  185. package/types/components/metric-run-info/metric-run-info.d.ts +3 -6
  186. package/types/components/metrics-treemap/metrics-treemap.constants.d.ts +2 -0
  187. package/types/components/metrics-treemap/metrics-treemap.utils.d.ts +11 -5
  188. package/types/components/run-info/run-info.d.ts +16 -7
  189. package/types/constants.d.ts +12 -0
  190. package/types/ui/dialog/dialog.d.ts +3 -2
  191. package/types/ui/dropdown/dropdown.d.ts +4 -1
  192. package/types/ui/filters/filters.d.ts +2 -1
  193. package/vitest.config.ts +4 -0
  194. package/lib/components/metrics-table-options/metrics-table-options.module.css +0 -15
  195. package/lib-esm/components/metrics-table-options/metrics-table-options.module.css +0 -15
  196. package/src/components/delta/delta.jsx +0 -22
  197. package/src/components/metrics-table-options/metrics-table-options.module.css +0 -15
  198. /package/src/components/delta/{index.js → index.ts} +0 -0
@@ -16,7 +16,6 @@
16
16
 
17
17
  .root thead th {
18
18
  border-width: 0 0 1px;
19
- text-transform: uppercase;
20
19
  vertical-align: top;
21
20
  background: var(--color-highlight);
22
21
  }
@@ -21,6 +21,17 @@
21
21
  text-align: center;
22
22
  filter: drop-shadow(var(--shadow-layer));
23
23
  will-change: filter;
24
+ opacity: 0;
25
+ transition: var(--transition-out);
26
+ }
27
+
28
+ .tooltip[data-enter] {
29
+ opacity: 1;
30
+ transition: var(--transition-in);
31
+ }
32
+
33
+ .tooltip[data-leave] {
34
+ pointer-events: none;
24
35
  }
25
36
 
26
37
  .arrow svg {
@@ -29,7 +29,12 @@ export const Tooltip = <T extends React.ElementType = 'span'>(
29
29
  ...restProps
30
30
  } = props;
31
31
 
32
- const tooltip = useTooltipState({ placement: 'top', timeout: 300 });
32
+ const tooltip = useTooltipState({
33
+ animated: true,
34
+ placement: 'top',
35
+ overflowPadding: 48,
36
+ timeout: 300,
37
+ });
33
38
 
34
39
  return (
35
40
  <>
@@ -1,22 +1,8 @@
1
- export function Delta({ className, displayValue, deltaType, inverted }: {
2
- className?: string | undefined;
3
- displayValue: any;
4
- deltaType: any;
5
- inverted?: boolean | undefined;
6
- }): React.JSX.Element;
7
- export namespace Delta {
8
- namespace defaultProps {
9
- let className: string;
10
- let inverted: boolean;
11
- }
12
- namespace propTypes {
13
- let className_1: PropTypes.Requireable<string>;
14
- export { className_1 as className };
15
- export let displayValue: PropTypes.Validator<string>;
16
- export let deltaType: PropTypes.Validator<string>;
17
- let inverted_1: PropTypes.Requireable<boolean>;
18
- export { inverted_1 as inverted };
19
- }
20
- }
21
1
  import React from 'react';
22
- import PropTypes from 'prop-types';
2
+ import type { MetricRunInfoDeltaType } from '@bundle-stats/utils';
3
+ export interface DeltaProps {
4
+ displayValue: string;
5
+ deltaType: MetricRunInfoDeltaType;
6
+ inverted?: boolean;
7
+ }
8
+ export declare const Delta: (props: DeltaProps & React.ComponentProps<"span">) => React.JSX.Element;
@@ -1 +1 @@
1
- export * from "./delta";
1
+ export * from './delta';
@@ -5,12 +5,15 @@ export { BundlePackages } from './bundle-packages';
5
5
  export { BundleModules } from './bundle-modules';
6
6
  export { ComponentLink } from './component-link';
7
7
  export { Delta } from './delta';
8
+ export type { DeltaProps } from './delta';
8
9
  export { InsightIcon } from './insight-icon';
9
10
  export { Insights } from './insights';
10
11
  export { JobName } from './job-name';
11
12
  export { JobsHeader } from './jobs-header';
12
13
  export { LighthouseTable } from './lighthouse-table';
13
14
  export { Metric } from './metric';
15
+ export { MetricChangeLegend } from './metric-change-legend';
16
+ export type { MetricChangeLegendProps } from './metric-change-legend';
14
17
  export { MetricRunInfo } from './metric-run-info';
15
18
  export type { MetricRunInfoProps } from './metric-run-info';
16
19
  export { MetricsTable } from './metrics-table';
@@ -0,0 +1 @@
1
+ export * from './metric-change-legend';
@@ -0,0 +1,4 @@
1
+ import React from 'react';
2
+ export interface MetricChangeLegendProps extends React.ComponentProps<'div'> {
3
+ }
4
+ export declare const MetricChangeLegend: (props: MetricChangeLegendProps) => React.JSX.Element;
@@ -1,14 +1,11 @@
1
1
  import React, { ElementType } from 'react';
2
2
  import { RunInfoProps } from '../run-info';
3
- export interface MetricRunInfoProps {
3
+ export type MetricRunInfoProps = {
4
4
  metricId: string;
5
5
  current: number;
6
6
  baseline?: number;
7
- showDelta?: boolean;
8
7
  showMetricDescription?: boolean;
9
- showBaseline?: boolean;
10
8
  titleWrapper?: ElementType;
11
- size?: RunInfoProps['size'];
12
- loading?: RunInfoProps['loading'];
13
- }
9
+ showDeltaValue?: boolean;
10
+ } & Pick<RunInfoProps, 'showDelta' | 'showBaseline' | 'size' | 'loading'>;
14
11
  export declare const MetricRunInfo: (props: MetricRunInfoProps & React.ComponentProps<"div">) => React.JSX.Element;
@@ -20,6 +20,8 @@ export type TreeNode = Tree | TreeLeaf;
20
20
  export type TreeNodeChildren = Array<TreeNode>;
21
21
  export type TileGroupSizeDisplay = 'minimal' | 'small' | 'default';
22
22
  export type TileSizeDisplay = 'minimal' | 'small' | 'default';
23
+ export declare const NODE_ID_ATTRIBUTE = "data-treemap-id";
24
+ export declare const NODE_ID_SELECTOR = "[data-treemap-id]";
23
25
  export declare const SQUARIFY_RATIO = 1.66;
24
26
  export declare const PADDING_OUTER = 1;
25
27
  export declare const PADDING_INNER = 2;
@@ -1,15 +1,21 @@
1
- import { type RefObject } from 'react';
2
1
  import { DeltaType, type MetricRunInfoBaseline, type MetricRunInfo, type ReportMetricRow } from '@bundle-stats/utils';
3
- import { type Tree, type TileSizeDisplay, type TileGroupSizeDisplay } from './metrics-treemap.constants';
2
+ import { type TreeNode, type Tree, type TileSizeDisplay, type TileGroupSizeDisplay } from './metrics-treemap.constants';
4
3
  export declare function getTreemapNodes(items: Array<ReportMetricRow>): Tree;
5
4
  export declare function getTreemapNodesGroupedByPath(items: Array<ReportMetricRow>): Tree;
5
+ export declare function getTreemapNodesIndex(node: Tree, index?: Map<string, TreeNode>): Map<string, TreeNode>;
6
6
  export declare function resolveGroupDeltaType(metricRunInfo?: MetricRunInfo | MetricRunInfoBaseline): DeltaType.NO_CHANGE | DeltaType.NEGATIVE | DeltaType.POSITIVE;
7
7
  export declare function resolveTileGroupSizeDisplay(width: number, height: number): TileGroupSizeDisplay;
8
8
  export declare function resolveTileSizeDisplay(width: number, height: number): TileSizeDisplay;
9
- interface UseTooltipStateWithMouseFollowOptions {
10
- parentRef: RefObject<Element>;
9
+ interface UseTreemapTooltipStateOptions {
11
10
  gutter?: number;
12
11
  timeout?: number;
12
+ hideTimeout?: number;
13
13
  }
14
- export declare function useTooltipStateWithMouseFollow(options: UseTooltipStateWithMouseFollowOptions): import("ariakit/tooltip").TooltipState;
14
+ export declare function useTreemapTooltipState(options?: UseTreemapTooltipStateOptions): {
15
+ tooltipState: import("ariakit/tooltip").TooltipState;
16
+ setPointer: (x: number, y: number) => void;
17
+ hoveredNodeId: string | null;
18
+ setHoveredNode: (nodeId: string | null) => void;
19
+ clearHoveredNode: () => void;
20
+ };
15
21
  export {};
@@ -1,17 +1,26 @@
1
1
  import React, { type ReactNode } from 'react';
2
- export interface RunInfoProps {
2
+ import type { MetricRunInfoDeltaType } from '@bundle-stats/utils';
3
+ type RunInfoTitleProps = {
4
+ className?: string;
3
5
  title?: ReactNode;
4
6
  titleHoverCard?: ReactNode;
5
7
  titleTooltip?: ReactNode;
8
+ };
9
+ type RunInfoContentProps = {
10
+ className?: string;
11
+ loading?: boolean;
6
12
  current?: ReactNode;
13
+ enhance?: boolean;
7
14
  baseline?: string;
8
15
  delta?: string;
9
16
  deltaPercentage?: string;
10
- deltaType?: string;
17
+ deltaType?: MetricRunInfoDeltaType;
18
+ showBaseline?: boolean;
19
+ showDelta?: boolean;
20
+ };
21
+ export type RunInfoProps = Pick<RunInfoTitleProps, 'title' | 'titleHoverCard' | 'titleTooltip'> & Pick<RunInfoContentProps, 'current' | 'baseline' | 'delta' | 'deltaPercentage' | 'deltaType' | 'showBaseline' | 'showDelta' | 'loading' | 'enhance'> & {
11
22
  as?: React.ElementType;
12
23
  size?: 'small' | 'medium' | 'large' | 'xlarge';
13
- showBaseline?: boolean;
14
- loading?: boolean;
15
- enhance?: boolean;
16
- }
17
- export declare const RunInfo: ({ className, title, titleHoverCard, titleTooltip, current, baseline, delta, deltaPercentage, deltaType, as: Component, size, showBaseline, loading, enhance, ...restProps }: RunInfoProps & Omit<React.ComponentProps<"div">, "title">) => React.JSX.Element;
24
+ };
25
+ export declare const RunInfo: ({ className, title, titleHoverCard, titleTooltip, current, baseline, delta, deltaPercentage, deltaType, as: Component, size, showBaseline, showDelta, loading, enhance, children, ...restProps }: RunInfoProps & Omit<React.ComponentProps<"div">, "title">) => React.JSX.Element;
26
+ export {};
@@ -16,6 +16,18 @@ export declare const METRICS_WEBPACK_GENERAL: string[];
16
16
  export declare const METRICS_WEBPACK_ASSETS: string[];
17
17
  export declare const METRICS_WEBPACK_MODULES: string[];
18
18
  export declare const METRICS_WEBPACK_PACKAGES: string[];
19
+ export declare const METRICS_GROUP_ASSETS: {
20
+ title: string;
21
+ metrics: string[];
22
+ };
23
+ export declare const METRICS_GROUP_MODULES: {
24
+ title: string;
25
+ metrics: string[];
26
+ };
27
+ export declare const METRICS_GROUP_PACKAGES: {
28
+ title: string;
29
+ metrics: string[];
30
+ };
19
31
  export declare const SORT: {
20
32
  readonly ASC: "asc";
21
33
  readonly DESC: "desc";
@@ -1,7 +1,7 @@
1
1
  import type { ComponentProps, ReactNode } from 'react';
2
2
  import React from 'react';
3
- import { Dialog as AriakitDialog } from 'ariakit/dialog';
4
- export { useDialogState } from 'ariakit/dialog';
3
+ import { Dialog as AriakitDialog, type DialogStateProps } from 'ariakit/dialog';
4
+ export declare const useDialogState: (options?: DialogStateProps) => import("ariakit/ts/disclosure/disclosure-state").DisclosureState;
5
5
  type AriakitDialogProps = ComponentProps<typeof AriakitDialog>;
6
6
  type DialogProps = {
7
7
  title?: ReactNode;
@@ -11,3 +11,4 @@ type DialogProps = {
11
11
  state: AriakitDialogProps['state'];
12
12
  } & Omit<ComponentProps<'div'>, 'title'>;
13
13
  export declare const Dialog: (props: DialogProps) => React.JSX.Element;
14
+ export {};
@@ -1,5 +1,7 @@
1
- import React from 'react';
1
+ import React, { ComponentProps } from 'react';
2
2
  import { MenuItem, MenuStateProps } from 'ariakit/menu';
3
+ export type DropdownGroupProps = ComponentProps<'div'>;
4
+ export declare const DropdownGroup: (props: DropdownGroupProps) => React.JSX.Element;
3
5
  interface DropdownItemProps {
4
6
  isActive?: boolean;
5
7
  }
@@ -13,6 +15,7 @@ interface DropdownProps {
13
15
  placement?: MenuStateProps['placement'];
14
16
  gutter?: MenuStateProps['gutter'];
15
17
  shift?: MenuStateProps['shift'];
18
+ showChevron?: boolean;
16
19
  }
17
20
  export declare const Dropdown: (props: DropdownProps & React.ComponentProps<"div">) => React.JSX.Element;
18
21
  export {};
@@ -3,12 +3,13 @@ import type { FilterFieldsData, FilterGroupFieldData } from '../../types';
3
3
  interface FilterBooleanProps extends React.ComponentProps<'input'> {
4
4
  label: string;
5
5
  }
6
+ type ToggleFilters = (newFilters: Record<string, boolean>) => void;
6
7
  interface FilterGroupProps extends React.ComponentProps<'div'> {
7
8
  groupKey: string;
8
9
  data: FilterGroupFieldData;
9
10
  values: Record<string, boolean>;
10
11
  onCheckboxChange: FilterBooleanProps['onChange'];
11
- toggleFilters: (newFilters: Record<string, boolean>) => void;
12
+ toggleFilters: ToggleFilters;
12
13
  }
13
14
  interface FiltersProps extends React.ComponentProps<'div'> {
14
15
  values: Record<string, boolean>;
package/vitest.config.ts CHANGED
@@ -35,6 +35,10 @@ export default defineConfig({
35
35
  },
36
36
  test: {
37
37
  name: 'ui:storybook',
38
+ // Same `configDir` misassumption as `fix-storybook-vitest-root` above, but on the Vitest
39
+ // side: `storybookTest` resolves the story globs and `setupFiles` against a root it derives
40
+ // from `configDir`. `dir` is the first source it reads, so set it explicitly.
41
+ dir: PACKAGE_ROOT,
38
42
  setupFiles: ['./vitest.setup.ts'],
39
43
  retry: 2,
40
44
  browser: {
@@ -1,15 +0,0 @@
1
- .group:empty {
2
- display: none;
3
- }
4
-
5
- .group {
6
- margin-bottom: calc(var(--space-xxxsmall) / 2);
7
- border-bottom: 1px solid var(--color-outline);
8
- padding-bottom: calc(var(--space-xxxsmall) / 2);
9
- }
10
-
11
- .group:last-child {
12
- margin-bottom: 0;
13
- padding-bottom: 0;
14
- border-bottom: none;
15
- }
@@ -1,15 +0,0 @@
1
- .group:empty {
2
- display: none;
3
- }
4
-
5
- .group {
6
- margin-bottom: calc(var(--space-xxxsmall) / 2);
7
- border-bottom: 1px solid var(--color-outline);
8
- padding-bottom: calc(var(--space-xxxsmall) / 2);
9
- }
10
-
11
- .group:last-child {
12
- margin-bottom: 0;
13
- padding-bottom: 0;
14
- border-bottom: none;
15
- }
@@ -1,22 +0,0 @@
1
- import React from 'react';
2
- import PropTypes from 'prop-types';
3
- import cx from 'classnames';
4
-
5
- import css from './delta.module.css';
6
-
7
- export const Delta = ({ className = '', displayValue, deltaType, inverted = false }) => {
8
- const rootClassName = cx(css.root, className, inverted && css.inverted, css[deltaType]);
9
- return <span className={rootClassName}>{displayValue}</span>;
10
- };
11
-
12
- Delta.defaultProps = {
13
- className: '',
14
- inverted: false,
15
- };
16
-
17
- Delta.propTypes = {
18
- className: PropTypes.string,
19
- displayValue: PropTypes.string.isRequired,
20
- deltaType: PropTypes.string.isRequired,
21
- inverted: PropTypes.bool,
22
- };
@@ -1,15 +0,0 @@
1
- .group:empty {
2
- display: none;
3
- }
4
-
5
- .group {
6
- margin-bottom: calc(var(--space-xxxsmall) / 2);
7
- border-bottom: 1px solid var(--color-outline);
8
- padding-bottom: calc(var(--space-xxxsmall) / 2);
9
- }
10
-
11
- .group:last-child {
12
- margin-bottom: 0;
13
- padding-bottom: 0;
14
- border-bottom: none;
15
- }
File without changes