pixel-react 1.15.69 → 1.15.71

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.
@@ -1,2 +1,2 @@
1
- export declare const truncateText: (text: string, maxLimit?: number, truncateType?: "count" | "pixel", fontSize?: number, fontFamily?: string) => string;
1
+ export declare const truncateText: (text: string, maxLimit?: number, truncateType?: "count" | "pixel", fontSize?: number, fontFamily?: string, letterSpacing?: number) => string;
2
2
  export declare const isTextTruncated: (text: string, maxLimit?: number, truncateType?: "count" | "pixel", fontSize?: number, fontFamily?: string) => boolean;
@@ -8,7 +8,7 @@ const getCanvasContext = (fontSize = DEFAULT_FONT_SIZE, fontFamily = DEFAULT_FON
8
8
  }
9
9
  return context;
10
10
  };
11
- export const truncateText = (text, maxLimit = 100, truncateType = 'count', fontSize = DEFAULT_FONT_SIZE, fontFamily = DEFAULT_FONT_FAMILY) => {
11
+ export const truncateText = (text, maxLimit = 100, truncateType = 'count', fontSize = DEFAULT_FONT_SIZE, fontFamily = DEFAULT_FONT_FAMILY, letterSpacing = 0) => {
12
12
  if (!text || maxLimit <= 0)
13
13
  return '';
14
14
  const ellipsis = '...';
@@ -21,12 +21,16 @@ export const truncateText = (text, maxLimit = 100, truncateType = 'count', fontS
21
21
  if (!context)
22
22
  return text;
23
23
  const ellipsisWidth = context.measureText(ellipsis).width;
24
- if (context.measureText(text).width <= maxLimit)
24
+ const baseWidth = context.measureText(text).width;
25
+ const totalLetterSpacing = letterSpacing > 0 ? letterSpacing * Math.max(0, text.length - 1) : 0;
26
+ if (baseWidth + totalLetterSpacing <= maxLimit)
25
27
  return text;
26
28
  let truncated = '';
27
29
  for (let i = 0; i < text.length; i++) {
28
30
  const temp = text.slice(0, i + 1);
29
- if (context.measureText(temp).width + ellipsisWidth > maxLimit) {
31
+ const baseWidth = context.measureText(temp).width;
32
+ const spacingWidth = letterSpacing > 0 ? letterSpacing * i : 0;
33
+ if (baseWidth + spacingWidth + ellipsisWidth > maxLimit) {
30
34
  return `${truncated}${ellipsis}`;
31
35
  }
32
36
  truncated = temp;
@@ -1 +1 @@
1
- {"version":3,"file":"truncateText.js","sourceRoot":"","sources":["../../../src/utils/truncateText/truncateText.ts"],"names":[],"mappings":"AAAA,MAAM,iBAAiB,GAAG,EAAE,CAAC;AAC7B,MAAM,mBAAmB,GAAG,SAAS,CAAC;AAEtC,MAAM,gBAAgB,GAAG,CACvB,WAAmB,iBAAiB,EACpC,aAAqB,mBAAmB,EACP,EAAE;IACnC,MAAM,MAAM,GAAG,QAAQ,CAAC,aAAa,CAAC,QAAQ,CAAC,CAAC;IAChD,MAAM,OAAO,GAAG,MAAM,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC;IACxC,IAAI,OAAO,EAAE,CAAC;QACZ,OAAO,CAAC,IAAI,GAAG,GAAG,QAAQ,MAAM,UAAU,EAAE,CAAC;IAC/C,CAAC;IACD,OAAO,OAAO,CAAC;AACjB,CAAC,CAAC;AAEF,MAAM,CAAC,MAAM,YAAY,GAAG,CAC1B,IAAY,EACZ,WAAmB,GAAG,EACtB,eAAkC,OAAO,EACzC,WAAmB,iBAAiB,EACpC,aAAqB,mBAAmB,EAChC,EAAE;IACV,IAAI,CAAC,IAAI,IAAI,QAAQ,IAAI,CAAC;QAAE,OAAO,EAAE,CAAC;IAEtC,MAAM,QAAQ,GAAG,KAAK,CAAC;IAEvB,IAAI,YAAY,KAAK,OAAO,EAAE,CAAC;QAC7B,OAAO,IAAI,CAAC,MAAM,GAAG,QAAQ;YAC3B,CAAC,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,EAAE,QAAQ,CAAC,GAAG,QAAQ,EAAE;YACzC,CAAC,CAAC,IAAI,CAAC;IACX,CAAC;IAED,MAAM,OAAO,GAAG,gBAAgB,CAAC,QAAQ,EAAE,UAAU,CAAC,CAAC;IACvD,IAAI,CAAC,OAAO;QAAE,OAAO,IAAI,CAAC;IAE1B,MAAM,aAAa,GAAG,OAAO,CAAC,WAAW,CAAC,QAAQ,CAAC,CAAC,KAAK,CAAC;IAE1D,IAAI,OAAO,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC,KAAK,IAAI,QAAQ;QAAE,OAAO,IAAI,CAAC;IAE7D,IAAI,SAAS,GAAG,EAAE,CAAC;IACnB,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;QACrC,MAAM,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC;QAClC,IAAI,OAAO,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC,KAAK,GAAG,aAAa,GAAG,QAAQ,EAAE,CAAC;YAC/D,OAAO,GAAG,SAAS,GAAG,QAAQ,EAAE,CAAC;QACnC,CAAC;QACD,SAAS,GAAG,IAAI,CAAC;IACnB,CAAC;IAED,OAAO,SAAS,CAAC;AACnB,CAAC,CAAC;AAEF,MAAM,CAAC,MAAM,eAAe,GAAG,CAC7B,IAAY,EACZ,WAAmB,GAAG,EACtB,eAAkC,OAAO,EACzC,WAAmB,iBAAiB,EACpC,aAAqB,mBAAmB,EAC/B,EAAE;IACX,IAAI,CAAC,IAAI,IAAI,QAAQ,IAAI,CAAC;QAAE,OAAO,KAAK,CAAC;IACzC,IAAI,YAAY,KAAK,OAAO,EAAE,CAAC;QAC7B,OAAO,IAAI,CAAC,MAAM,GAAG,QAAQ,CAAC;IAChC,CAAC;IACD,MAAM,OAAO,GAAG,gBAAgB,CAAC,QAAQ,EAAE,UAAU,CAAC,CAAC;IACvD,IAAI,CAAC,OAAO;QAAE,OAAO,KAAK,CAAC;IAE3B,OAAO,OAAO,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC,KAAK,GAAG,QAAQ,CAAC;AACpD,CAAC,CAAC"}
1
+ {"version":3,"file":"truncateText.js","sourceRoot":"","sources":["../../../src/utils/truncateText/truncateText.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "pixel-react",
3
3
  "description": "Great for pixel-perfect, design-focused components in React",
4
- "version": "1.15.69",
4
+ "version": "1.15.71",
5
5
  "main": "lib/index.js",
6
6
  "module": "lib/index.js",
7
7
  "types": "lib/index.d.ts",
@@ -51,37 +51,11 @@
51
51
  "storybook": "^8.4.5",
52
52
  "storybook-addon-theme-provider": "^0.2.6",
53
53
  "typescript": "^5.7.2",
54
- "vite": "^5.4.10",
55
- "@monaco-editor/react": "^4.6.0",
56
- "js-beautify": "^1.15.1",
57
- "react-phone-input-2": "^2.15.1",
58
- "react-phone-number-input": "^3.4.12"
54
+ "vite": "^5.4.10"
59
55
  },
60
56
  "peerDependencies": {
61
- "react": ">=18.2.0 <19.0.0",
62
- "react-dom": ">=18.2.0 <19.0.0",
63
- "@monaco-editor/react": "^4.6.0",
64
- "js-beautify": "^1.15.1",
65
- "@types/js-beautify": "^1.14.3",
66
- "react-phone-input-2": "^2.15.1",
67
- "react-phone-number-input": "^3.4.12"
68
- },
69
- "peerDependenciesMeta": {
70
- "react-phone-input-2": {
71
- "optional": true
72
- },
73
- "react-phone-number-input": {
74
- "optional": true
75
- },
76
- "@monaco-editor/react": {
77
- "optional": true
78
- },
79
- "js-beautify": {
80
- "optional": true
81
- },
82
- "@types/js-beautify": {
83
- "optional": true
84
- }
57
+ "react": "^18.2.0",
58
+ "react-dom": "^18.2.0"
85
59
  },
86
60
  "scripts": {
87
61
  "storybook": "storybook dev -p 6006",
@@ -118,7 +92,11 @@
118
92
  "webrtc-adapter": "^9.0.1",
119
93
  "react-virtuoso": "^4.13.0",
120
94
  "react-draft-wysiwyg": "^1.15.0",
121
- "@types/react-draft-wysiwyg": "^1.13.8"
95
+ "@types/react-draft-wysiwyg": "^1.13.8",
96
+ "@monaco-editor/react": "^4.6.0",
97
+ "js-beautify": "^1.15.1",
98
+ "react-phone-input-2": "^2.15.1",
99
+ "react-phone-number-input": "^3.4.12"
122
100
  },
123
101
  "files": [
124
102
  "lib",