@paubox/ui 3.2.1 → 3.3.0

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.
package/index.esm.js CHANGED
@@ -1994,7 +1994,7 @@ function _templateObject4$e() {
1994
1994
  };
1995
1995
  return data;
1996
1996
  }
1997
- function _templateObject5$7() {
1997
+ function _templateObject5$8() {
1998
1998
  var data = _tagged_template_literal$v([
1999
1999
  "\n ",
2000
2000
  "\n font-size: ",
@@ -2002,7 +2002,7 @@ function _templateObject5$7() {
2002
2002
  "rem;\n letter-spacing: ",
2003
2003
  "px;\n font-weight: 400;\n"
2004
2004
  ]);
2005
- _templateObject5$7 = function _templateObject() {
2005
+ _templateObject5$8 = function _templateObject() {
2006
2006
  return data;
2007
2007
  };
2008
2008
  return data;
@@ -2273,7 +2273,7 @@ var $headline100Regular = css(_templateObject1$l(), commonStyles, headline100Fon
2273
2273
  var $headline100Semibold = css(_templateObject2$l(), commonStyles, headline100FontSize / BASE_FONT_SIZE, headline100LineHeight / BASE_FONT_SIZE, headline100LetterSpacing);
2274
2274
  var $headline200Regular = css(_templateObject3$h(), commonStyles, headline200FontSize / BASE_FONT_SIZE, headline200LineHeight / BASE_FONT_SIZE, headline200LetterSpacing);
2275
2275
  var $headline200Semibold = css(_templateObject4$e(), commonStyles, headline200FontSize / BASE_FONT_SIZE, headline200LineHeight / BASE_FONT_SIZE, headline200LetterSpacing);
2276
- var $headline300Regular = css(_templateObject5$7(), commonStyles, headline300FontSize / BASE_FONT_SIZE, headline300LineHeight / BASE_FONT_SIZE, headline300LetterSpacing);
2276
+ var $headline300Regular = css(_templateObject5$8(), commonStyles, headline300FontSize / BASE_FONT_SIZE, headline300LineHeight / BASE_FONT_SIZE, headline300LetterSpacing);
2277
2277
  var $headline300Semibold = css(_templateObject6$4(), commonStyles, headline300FontSize / BASE_FONT_SIZE, headline300LineHeight / BASE_FONT_SIZE, headline300LetterSpacing);
2278
2278
  // PARAGRAPH
2279
2279
  var $paragraph100Regular = css(_templateObject7$3(), commonStyles, paragraph100FontSize / BASE_FONT_SIZE, paragraph100LineHeight / BASE_FONT_SIZE, paragraph100LetterSpacing);
@@ -2461,13 +2461,13 @@ function _templateObject4$d() {
2461
2461
  };
2462
2462
  return data;
2463
2463
  }
2464
- function _templateObject5$6() {
2464
+ function _templateObject5$7() {
2465
2465
  var data = _tagged_template_literal$u([
2466
2466
  "\n background-color: transparent;\n border: none;\n color: ",
2467
2467
  ";\n cursor: pointer;\n padding: 0.25rem;\n font-size: 0.75rem;\n margin-left: ",
2468
2468
  ";\n"
2469
2469
  ]);
2470
- _templateObject5$6 = function _templateObject() {
2470
+ _templateObject5$7 = function _templateObject() {
2471
2471
  return data;
2472
2472
  };
2473
2473
  return data;
@@ -2489,7 +2489,7 @@ var StyledIcon = styled.div(_templateObject3$g(), function(param) {
2489
2489
  return type === 'info' ? primary700$1 : type === 'error' ? danger700$1 : type === 'success' ? success700$1 : warning700$1;
2490
2490
  });
2491
2491
  var TextWrapper = styled.div(_templateObject4$d());
2492
- var TruncaterButton = styled.button(_templateObject5$6(), primary700$1, function(param) {
2492
+ var TruncaterButton = styled.button(_templateObject5$7(), primary700$1, function(param) {
2493
2493
  var isExpanded = param.isExpanded;
2494
2494
  return !isExpanded ? '0' : '0.25rem';
2495
2495
  });
@@ -23024,7 +23024,7 @@ var ArrowIcon = styled(ChevronDown)(_templateObject$m(), spacing(1), function(pa
23024
23024
  var DropdownMenu = function(param) {
23025
23025
  var label = param.label, items = param.items, children = param.children, openProp = param.open, onOpenChange = param.onOpenChange, iconLeft = param.iconLeft, _param_size = param.size, size = _param_size === void 0 ? 'small' : _param_size, align = param.align, _param_buttonProps = param.buttonProps, buttonProps = _param_buttonProps === void 0 ? {
23026
23026
  color: 'primary'
23027
- } : _param_buttonProps, _param_testId = param.testId, testId = _param_testId === void 0 ? 'dropdown' : _param_testId, childContainerRefs = param.childContainerRefs, disabled = param.disabled;
23027
+ } : _param_buttonProps, _param_testId = param.testId, testId = _param_testId === void 0 ? 'dropdown' : _param_testId, childContainerRefs = param.childContainerRefs, disabled = param.disabled, _param_detectEdges = param.detectEdges, detectEdges = _param_detectEdges === void 0 ? true : _param_detectEdges;
23028
23028
  var _useState = _sliced_to_array$g(useState(false), 2), open = _useState[0], setOpen = _useState[1];
23029
23029
  var buttonRef = useRef(null);
23030
23030
  var isControlled = openProp !== undefined && onOpenChange;
@@ -23070,7 +23070,7 @@ var DropdownMenu = function(param) {
23070
23070
  anchorRef: buttonRef,
23071
23071
  align: align === 'center' ? 'middle' : align === 'right' ? 'end' : 'start',
23072
23072
  offset: 4,
23073
- detectEdges: false,
23073
+ detectEdges: detectEdges,
23074
23074
  style: {
23075
23075
  padding: "".concat(spacing(1), "px 0")
23076
23076
  },
@@ -23437,11 +23437,11 @@ function _templateObject4$c() {
23437
23437
  };
23438
23438
  return data;
23439
23439
  }
23440
- function _templateObject5$5() {
23440
+ function _templateObject5$6() {
23441
23441
  var data = _tagged_template_literal$k([
23442
23442
  "\n display: flex;\n flex-direction: row;\n gap: 0.5rem;\n"
23443
23443
  ]);
23444
- _templateObject5$5 = function _templateObject() {
23444
+ _templateObject5$6 = function _templateObject() {
23445
23445
  return data;
23446
23446
  };
23447
23447
  return data;
@@ -23466,7 +23466,7 @@ var FilterGroup = styled.div(_templateObject1$h(), function(param) {
23466
23466
  var CloseButton$1 = styled.button(_templateObject2$h());
23467
23467
  var FilterRowsContainer = styled.div(_templateObject3$e());
23468
23468
  var OrButton = styled.button(_templateObject4$c(), neutral100$1);
23469
- var ButtonGroup = styled.div(_templateObject5$5());
23469
+ var ButtonGroup = styled.div(_templateObject5$6());
23470
23470
  var AndButtonContainer = styled.div(_templateObject6$3());
23471
23471
  var FilterForm = function(param) {
23472
23472
  var values = param.values, fieldOptions = param.fieldOptions, operatorOptions = param.operatorOptions, onSubmit = param.onSubmit, onClear = param.onClear, onChange = param.onChange, errors = param.errors, touched = param.touched;
@@ -24120,11 +24120,11 @@ function _templateObject4$a() {
24120
24120
  };
24121
24121
  return data;
24122
24122
  }
24123
- function _templateObject5$4() {
24123
+ function _templateObject5$5() {
24124
24124
  var data = _tagged_template_literal$i([
24125
24125
  '\n /* role="option" wrapper — visual state is delegated to inner MenuItem */\n'
24126
24126
  ]);
24127
- _templateObject5$4 = function _templateObject() {
24127
+ _templateObject5$5 = function _templateObject() {
24128
24128
  return data;
24129
24129
  };
24130
24130
  return data;
@@ -24155,7 +24155,7 @@ var BaseInput$2 = styled.input(_templateObject1$f(), textPrimary$1, neutral500$1
24155
24155
  var Chip$2 = styled.button(_templateObject2$f(), neutral100$1, $label200Medium, primary600$1, surfaceRaised, textPrimaryWhite, primary500);
24156
24156
  var RightIconWrapper = styled.div(_templateObject3$c(), neutral600$1, surfaceMuted);
24157
24157
  var EmptyState = styled.div(_templateObject4$a(), neutral500$1, $paragraph200Regular, surfaceMuted);
24158
- var OptionWrapper = styled.div(_templateObject5$4());
24158
+ var OptionWrapper = styled.div(_templateObject5$5());
24159
24159
  /**
24160
24160
  * AutoComplete: single-line input that filters a closed list of options as
24161
24161
  * the user types. Selected items render as removable chips. Multi-select.
@@ -24882,12 +24882,12 @@ function _templateObject4$9() {
24882
24882
  };
24883
24883
  return data;
24884
24884
  }
24885
- function _templateObject5$3() {
24885
+ function _templateObject5$4() {
24886
24886
  var data = _tagged_template_literal$g([
24887
24887
  "\n position: absolute;\n right: 0rem;\n width: 2rem;\n background-color: inherit;\n display: flex;\n align-items: center;\n justify-content: center;\n z-index: 0;\n border: none;\n cursor: pointer;\n z-index: 0;\n transition: all 150ms ease-in-out;\n transform: ",
24888
24888
  ";\n"
24889
24889
  ]);
24890
- _templateObject5$3 = function _templateObject() {
24890
+ _templateObject5$4 = function _templateObject() {
24891
24891
  return data;
24892
24892
  };
24893
24893
  return data;
@@ -24973,7 +24973,7 @@ var MultiSelectChip = function(option) {
24973
24973
  });
24974
24974
  };
24975
24975
  // Style for the Icons
24976
- var IconWrapper$2 = styled.div(_templateObject5$3(), function(param) {
24976
+ var IconWrapper$2 = styled.div(_templateObject5$4(), function(param) {
24977
24977
  var open = param.open;
24978
24978
  return open ? 'rotate(180deg)' : 'rotate(0deg)';
24979
24979
  });
@@ -30879,11 +30879,11 @@ function _templateObject4$5() {
30879
30879
  };
30880
30880
  return data;
30881
30881
  }
30882
- function _templateObject5$2() {
30882
+ function _templateObject5$3() {
30883
30883
  var data = _tagged_template_literal$6([
30884
30884
  "\n width: 100%;\n max-height: 420px;\n overflow-y: auto;\n"
30885
30885
  ]);
30886
- _templateObject5$2 = function _templateObject() {
30886
+ _templateObject5$3 = function _templateObject() {
30887
30887
  return data;
30888
30888
  };
30889
30889
  return data;
@@ -30982,7 +30982,7 @@ var ClearButton = styled(IconButton)(_templateObject3$5(), spacing(1));
30982
30982
  * Inner content of the dropdown. Popper provides the outer container
30983
30983
  * (positioning, portal, elevation, dark-mode background). We just lay out
30984
30984
  * the rows full-width inside it, with our own max-height + scroll behavior.
30985
- */ var DropdownContent = styled.div(_templateObject5$2());
30985
+ */ var DropdownContent = styled.div(_templateObject5$3());
30986
30986
  var DropdownRow = styled.button(_templateObject6$1(), spacing(1), spacing(1), spacing(2), function(param) {
30987
30987
  var highlighted = param.highlighted;
30988
30988
  return highlighted ? neutral100$1 : 'transparent';
@@ -32003,6 +32003,17 @@ function _templateObject4$4() {
32003
32003
  };
32004
32004
  return data;
32005
32005
  }
32006
+ function _templateObject5$2() {
32007
+ var data = _tagged_template_literal$5([
32008
+ "\n color: ",
32009
+ ";\n font-size: 12px;\n line-height: 1.2;\n font-family: 'Roboto', sans-serif;\n\n html.dark & {\n color: ",
32010
+ ";\n }\n"
32011
+ ]);
32012
+ _templateObject5$2 = function _templateObject() {
32013
+ return data;
32014
+ };
32015
+ return data;
32016
+ }
32006
32017
  var variantMap = {
32007
32018
  blue: {
32008
32019
  bg: primary100$1,
@@ -32028,8 +32039,9 @@ var IconBadge = styled.div(_templateObject1$5(), function(param) {
32028
32039
  var TextBlock = styled.div(_templateObject2$5());
32029
32040
  var Label = styled.div(_templateObject3$4(), neutral500$1, neutral400$1);
32030
32041
  var Value = styled.div(_templateObject4$4(), neutral900$1, neutral100$1);
32042
+ var Caption = styled.div(_templateObject5$2(), neutral400$1, neutral500$1);
32031
32043
  var StatCard = function(param) {
32032
- var label = param.label, value = param.value, icon = param.icon, _param_variant = param.variant, variant = _param_variant === void 0 ? 'blue' : _param_variant, className = param.className;
32044
+ var label = param.label, value = param.value, icon = param.icon, _param_variant = param.variant, variant = _param_variant === void 0 ? 'blue' : _param_variant, className = param.className, caption = param.caption;
32033
32045
  var _variantMap_variant = variantMap[variant], bg = _variantMap_variant.bg, color = _variantMap_variant.color;
32034
32046
  return /*#__PURE__*/ jsxs(Card, {
32035
32047
  className: className,
@@ -32046,6 +32058,9 @@ var StatCard = function(param) {
32046
32058
  }),
32047
32059
  /*#__PURE__*/ jsx(Value, {
32048
32060
  children: typeof value === 'number' ? value.toLocaleString() : value
32061
+ }),
32062
+ caption && /*#__PURE__*/ jsx(Caption, {
32063
+ children: caption
32049
32064
  })
32050
32065
  ]
32051
32066
  })
package/package.json CHANGED
@@ -2,7 +2,7 @@
2
2
  "name": "@paubox/ui",
3
3
  "author": "Paubox, Inc.",
4
4
  "description": "Paubox Component Library",
5
- "version": "3.2.1",
5
+ "version": "3.3.0",
6
6
  "type": "module",
7
7
  "private": false,
8
8
  "publishConfig": {
@@ -13,5 +13,10 @@ export interface DropdownMenuProps {
13
13
  size?: 'small' | 'large';
14
14
  childContainerRefs?: RefObject<HTMLElement>[];
15
15
  disabled?: boolean;
16
+ /**
17
+ * Keep the menu within the viewport, shifting it away from the window edge
18
+ * when it would otherwise be clipped. Defaults to `true`.
19
+ */
20
+ detectEdges?: boolean;
16
21
  }
17
- export declare const DropdownMenu: ({ label, items, children, open: openProp, onOpenChange, iconLeft, size, align, buttonProps, testId, childContainerRefs, disabled, }: DropdownMenuProps) => import("@emotion/react/jsx-runtime").JSX.Element;
22
+ export declare const DropdownMenu: ({ label, items, children, open: openProp, onOpenChange, iconLeft, size, align, buttonProps, testId, childContainerRefs, disabled, detectEdges, }: DropdownMenuProps) => import("@emotion/react/jsx-runtime").JSX.Element;
@@ -6,5 +6,10 @@ export interface StatCardProps {
6
6
  icon: React.ReactNode;
7
7
  variant?: StatCardVariant;
8
8
  className?: string;
9
+ /**
10
+ * Optional third line rendered as a smaller, muted label beneath the value
11
+ * (e.g. a time window like "Last 24 hours").
12
+ */
13
+ caption?: string;
9
14
  }
10
- export declare const StatCard: ({ label, value, icon, variant, className, }: StatCardProps) => import("@emotion/react/jsx-runtime").JSX.Element;
15
+ export declare const StatCard: ({ label, value, icon, variant, className, caption, }: StatCardProps) => import("@emotion/react/jsx-runtime").JSX.Element;