pixelize-design-library 2.4.2-beta.41 → 2.4.2-beta.42

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.
@@ -1094,6 +1094,19 @@ and submenu items. `disabled` is unchanged and still works independently.
1094
1094
  **Apply:** `locked: true` alone now prevents interaction; you no longer need to also set
1095
1095
  `disabled: true`.
1096
1096
 
1097
+ ### `SideBar` menu-item labels clipped the bottom of descenders (g/y/p/q/j) — fixed
1098
+
1099
+ `TextTruncation.tsx`'s label used `overflow="hidden"` (both axes) with `lineHeight="1"`, so the line
1100
+ box was exactly font-size tall and any glyph descender got clipped flat — reported live on
1101
+ lfour.pixelizetech.com ("Legal Requests"). Fixed by splitting the axes: `overflowX="hidden"` (kept,
1102
+ needed for the ellipsis) and `overflowY="visible"`, which the browser computes as `auto` — no layout
1103
+ height change, descenders just aren't painted-over anymore. If you rolled your own workaround (extra
1104
+ line-height, padding-bottom) for this on a consumer's own nav text, it's no longer needed upstream.
1105
+
1106
+ **Apply:** nothing to do — this was a rendering bug, not a prop. If you build another
1107
+ truncated-single-line label elsewhere in this library, split `overflowX`/`overflowY` the same way
1108
+ rather than a single `overflow="hidden"`.
1109
+
1097
1110
  ### `KanbanBoard`'s `permissions.isViewable: false` hides everything, including header actions
1098
1111
 
1099
1112
  Not just the columns — the select/edit/create header bar disappears too, since the whole component
@@ -24,6 +24,8 @@ const TruncatedTextWithTooltip = ({ children, ...props }) => {
24
24
  }
25
25
  return () => resizeObserver.disconnect();
26
26
  }, [children]);
27
- return ((0, jsx_runtime_1.jsxs)(jsx_runtime_1.Fragment, { children: [(0, jsx_runtime_1.jsx)(react_2.Tooltip, { label: children, isDisabled: !isTruncated, hasArrow: true, placement: "right", children: (0, jsx_runtime_1.jsx)(react_2.Text, { ref: textRef, isTruncated: true, whiteSpace: "nowrap", overflow: "hidden", textOverflow: "ellipsis", maxW: "100%", ...props, children: children }) }), (0, jsx_runtime_1.jsx)(react_2.Box, { ref: shadowRef, position: "fixed", top: "-9999px", left: "-9999px", visibility: "hidden", whiteSpace: "nowrap", fontSize: props.fontSize, fontWeight: props.fontWeight, fontFamily: props.fontFamily, lineHeight: props.lineHeight, px: props.px, py: props.py, children: children })] }));
27
+ return ((0, jsx_runtime_1.jsxs)(jsx_runtime_1.Fragment, { children: [(0, jsx_runtime_1.jsx)(react_2.Tooltip, { label: children, isDisabled: !isTruncated, hasArrow: true, placement: "right", children: (0, jsx_runtime_1.jsx)(react_2.Text, { ref: textRef, isTruncated: true, whiteSpace: "nowrap", overflowX: "hidden",
28
+ // overflowY stays visible — a tight lineHeight clips descenders (g/y/p) otherwise.
29
+ overflowY: "visible", textOverflow: "ellipsis", maxW: "100%", ...props, children: children }) }), (0, jsx_runtime_1.jsx)(react_2.Box, { ref: shadowRef, position: "fixed", top: "-9999px", left: "-9999px", visibility: "hidden", whiteSpace: "nowrap", fontSize: props.fontSize, fontWeight: props.fontWeight, fontFamily: props.fontFamily, lineHeight: props.lineHeight, px: props.px, py: props.py, children: children })] }));
28
30
  };
29
31
  exports.default = TruncatedTextWithTooltip;
@@ -22,6 +22,8 @@ const TruncatedTextWithTooltip = ({ children, ...props }) => {
22
22
  }
23
23
  return () => resizeObserver.disconnect();
24
24
  }, [children]);
25
- return (_jsxs(_Fragment, { children: [_jsx(Tooltip, { label: children, isDisabled: !isTruncated, hasArrow: true, placement: "right", children: _jsx(Text, { ref: textRef, isTruncated: true, whiteSpace: "nowrap", overflow: "hidden", textOverflow: "ellipsis", maxW: "100%", ...props, children: children }) }), _jsx(Box, { ref: shadowRef, position: "fixed", top: "-9999px", left: "-9999px", visibility: "hidden", whiteSpace: "nowrap", fontSize: props.fontSize, fontWeight: props.fontWeight, fontFamily: props.fontFamily, lineHeight: props.lineHeight, px: props.px, py: props.py, children: children })] }));
25
+ return (_jsxs(_Fragment, { children: [_jsx(Tooltip, { label: children, isDisabled: !isTruncated, hasArrow: true, placement: "right", children: _jsx(Text, { ref: textRef, isTruncated: true, whiteSpace: "nowrap", overflowX: "hidden",
26
+ // overflowY stays visible — a tight lineHeight clips descenders (g/y/p) otherwise.
27
+ overflowY: "visible", textOverflow: "ellipsis", maxW: "100%", ...props, children: children }) }), _jsx(Box, { ref: shadowRef, position: "fixed", top: "-9999px", left: "-9999px", visibility: "hidden", whiteSpace: "nowrap", fontSize: props.fontSize, fontWeight: props.fontWeight, fontFamily: props.fontFamily, lineHeight: props.lineHeight, px: props.px, py: props.py, children: children })] }));
26
28
  };
27
29
  export default TruncatedTextWithTooltip;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "pixelize-design-library",
3
- "version": "2.4.2-beta.41",
3
+ "version": "2.4.2-beta.42",
4
4
  "description": "React component library for Pixelize apps: themeable Chakra-based components, design tokens and light/dark brand theming.",
5
5
  "keywords": [
6
6
  "react",
@@ -53,7 +53,8 @@
53
53
  "format:check": "prettier --check .",
54
54
  "format": "prettier --write .",
55
55
  "test:coverage": "jest --coverage",
56
- "clean": "node -e \"require('fs').rmSync('dist',{recursive:true,force:true})\""
56
+ "clean": "node -e \"require('fs').rmSync('dist',{recursive:true,force:true})\"",
57
+ "prepare": "husky"
57
58
  },
58
59
  "jest": {
59
60
  "testEnvironment": "jsdom",
@@ -105,6 +106,9 @@
105
106
  "**/?(*.)+(spec|test).[jt]s?(x)"
106
107
  ]
107
108
  },
109
+ "lint-staged": {
110
+ "**/*Props.{ts,tsx}": "eslint"
111
+ },
108
112
  "browserslist": {
109
113
  "production": [
110
114
  ">0.2%",
@@ -150,9 +154,11 @@
150
154
  "eslint-plugin-react-hooks": "^7.1.1",
151
155
  "framer-motion": "^10.18.0",
152
156
  "globals": "^17.6.0",
157
+ "husky": "^9.1.7",
153
158
  "jest": "^29.7.0",
154
159
  "jest-axe": "^11.0.0",
155
160
  "jest-environment-jsdom": "^29.7.0",
161
+ "lint-staged": "^17.5.1",
156
162
  "postcss": "^8.5.4",
157
163
  "prettier": "^3.3.2",
158
164
  "prop-types": "^15.8.1",